.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}:root{--bg: #0c0c0b;--surface: #151513;--surface-2: #1d1d1a;--text: #f1e9d6;--text-muted: #8f897b;--border: #2a2925;--accent: #ffb000;--accent-contrast: #14100a;--ok: #5fd38d;--danger: #ff6a4d;--flap-top: #383833;--flap-bot: #22221f;--flap-ink: #f1e9d6;--flap-edge: #0a0a09;--flap-seam: #080807;--font-flap: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--font-head: "IBM Plex Sans Condensed", "Arial Narrow", sans-serif;--font-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--radius: 8px;--radius-sm: 5px;--shadow: 0 1px 0 rgb(255 255 255 / .03) inset, 0 12px 32px rgb(0 0 0 / .45);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--dur-fast: .14s;--dur: .3s;--sidebar-w: 264px;--tabbar-h: 66px}@media(prefers-color-scheme:light){:root{--bg: #ece8dd;--surface: #f8f5ec;--surface-2: #e4dfd1;--text: #17150f;--text-muted: #6a6556;--border: #cfc9b8;--accent: #b86a00;--accent-contrast: #fff8ea;--ok: #1c7a45;--danger: #c2371b;--flap-top: #2b2a25;--flap-bot: #1d1c18;--flap-ink: #f6eed9;--flap-edge: #0e0d0a;--flap-seam: #070706;--shadow: 0 1px 0 rgb(255 255 255 / .6) inset, 0 10px 28px rgb(40 30 10 / .14)}}.flaps-tone-danger .flap{color:var(--danger)}.tasks{margin-top:1.1rem}.quick{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem}.quick-input{font-family:var(--font-sans);font-weight:500;min-width:0}.quick-btn:disabled{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);cursor:not-allowed}.quick-suggest{grid-column:1 / -1;display:flex;gap:.4rem;flex-wrap:wrap}.quick-hint{grid-column:1 / -1;margin:0;font-size:.66rem;max-height:0;opacity:0;overflow:hidden;transition:opacity var(--dur),max-height var(--dur)}.quick:focus-within .quick-hint,.quick-hint.on{max-height:4.2rem;opacity:1}.quick-hint b{color:var(--text);font-weight:600}.quick-hint .quick-legend{display:block;margin-top:.25rem;text-transform:none;letter-spacing:.02em;font-size:.72rem;opacity:.85}.quick-hint.on{color:var(--accent)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1.1rem 0 .3rem}.tcount{margin:0}.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.seg-btn{all:unset;box-sizing:border-box;cursor:pointer;padding:.55rem .9rem;min-height:40px;display:inline-flex;align-items:center;font:600 .72rem/1 var(--font-flap);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);transition:background var(--dur-fast),color var(--dur-fast)}.seg-wrap{flex-wrap:wrap;max-width:100%}.seg-wrap .seg-btn{border:0!important;border-right:1px solid var(--border)!important;border-bottom:1px solid var(--border)!important}.seg-btn+.seg-btn{border-left:1px solid var(--border)}.seg-btn:hover{color:var(--text)}.seg-btn.on{background:var(--surface-2);color:var(--text)}.seg-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.cols{display:none}.rows{display:block}.sortable{touch-action:manipulation}.trow{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"check main due";gap:.8rem;align-items:center;margin-inline:-1rem;padding:.8rem 1rem;border-bottom:1px solid var(--border);background:var(--bg);transition:background var(--dur-fast),opacity var(--dur);cursor:default;position:relative}.trow:hover{background:var(--surface)}.trow-doing:before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:3px;background:var(--accent);border-radius:0 3px 3px 0}.trow.is-overlay{background:var(--surface-2);border:1px solid var(--text-muted);border-radius:var(--radius);box-shadow:var(--shadow);margin-inline:0;cursor:grabbing}.tcheck{grid-area:check;all:unset;box-sizing:border-box;cursor:pointer;width:28px;height:28px;display:grid;place-items:center;border-radius:6px;border:1.5px solid var(--text-muted);color:transparent;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast),transform var(--dur) var(--ease-spring)}.tcheck:hover{border-color:var(--text)}.tcheck:active{transform:scale(.88)}.tcheck:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tcheck.is-done{background:var(--text);border-color:var(--text);color:var(--bg);animation:stamp var(--dur) var(--ease-spring)}@keyframes stamp{0%{transform:rotateX(-90deg) scale(.7)}to{transform:none}}.tmain{grid-area:main;all:unset;box-sizing:border-box;display:grid;gap:.15rem;min-width:0;cursor:pointer;padding-block:.15rem}.tmain:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.ttitle{font-weight:500;font-size:1.05rem;line-height:1.3;overflow-wrap:anywhere}.tmeta{font-size:.68rem;display:flex;gap:.6rem;flex-wrap:wrap}.pri-urgent{color:var(--danger);font-weight:600}.pri-high{color:var(--accent);font-weight:600}.doing-tag{color:var(--text)}.rec-tag{color:var(--text-muted);font:600 .68rem var(--font-flap);letter-spacing:.1em;text-transform:uppercase}.tdue{grid-area:due;font:600 1.02rem/1 var(--font-flap);font-variant-numeric:tabular-nums;letter-spacing:.04em;white-space:nowrap}.due-ink{color:var(--text)}.due-muted{color:var(--text-muted)}.due-amber{color:var(--accent)}.due-danger{color:var(--danger)}.trow-doing .ttitle{font-weight:600}.trow-done .ttitle{color:var(--text-muted);text-decoration:line-through}.trow-done .tcheck{opacity:.6}@media(min-width:640px){.cols{display:grid;grid-template-columns:2.2rem 1fr 6.9rem;gap:.8rem;padding:.8rem .5rem .55rem;border-bottom:1px solid var(--text-muted)}.trow{grid-template-columns:2.2rem 1fr 6.9rem;grid-template-areas:"check main due";margin-inline:0;padding-inline:.5rem}.trow-doing:before{left:-1rem}}.kan{display:grid;grid-auto-flow:column;grid-auto-columns:84%;gap:.9rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.6rem;margin-top:.6rem}.kcol{scroll-snap-align:start;min-height:220px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.7rem;transition:border-color var(--dur-fast),background var(--dur-fast)}.kcol.is-over{border-color:var(--accent)}.kcol-head{display:flex;justify-content:space-between;padding:.2rem .3rem .7rem;border-bottom:1px solid var(--border);margin-bottom:.6rem}.kcol-count{color:var(--text)}.kcol-body{display:grid;gap:.5rem;align-content:start;min-height:120px}.trow-card{grid-template-columns:auto 1fr;grid-template-areas:"check main" ". due";margin-inline:0;padding:.8rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg)}.trow-card .tdue{justify-self:start}.trow-card.trow-doing:before{left:-1px}@media(min-width:900px){.kan{grid-auto-flow:row;grid-template-columns:repeat(3,1fr);grid-auto-columns:auto;overflow:visible}}.skeletons{margin-top:1rem}.skeleton{height:62px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--surface-2) 70%,transparent),transparent);background-size:200% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-board{margin-top:1.25rem;padding:2.2rem 1.2rem;border:1px dashed var(--border);border-radius:var(--radius);display:grid;gap:.9rem;justify-items:start}.empty-board p{margin:0;color:var(--text-muted);max-width:48ch}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--tabbar-h) + 1rem + env(safe-area-inset-bottom));z-index:40;background:var(--surface-2);border:1px solid var(--danger);color:var(--text);padding:.7rem 1rem;border-radius:var(--radius-sm);animation:rise var(--dur) var(--ease-out) both}@media(min-width:900px){.toast{bottom:1.5rem}}.drawer-root{position:fixed;inset:0;z-index:30}.drawer-scrim{position:absolute;inset:0;background:#0000008c;animation:fade var(--dur) both}.drawer{position:absolute;background:var(--surface);border:1px solid var(--border);padding:1.2rem 1.2rem calc(1.4rem + env(safe-area-inset-bottom));overflow-y:auto;left:0;right:0;bottom:0;max-height:90dvh;border-radius:16px 16px 0 0;animation:sheet var(--dur) var(--ease-out) both}@media(min-width:900px){.drawer{left:auto;top:0;width:440px;max-height:none;border-radius:0;border-width:0 0 0 1px;animation-name:slide-in}}.drawer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.drawer-close{min-height:38px;padding:0 .9rem}.drawer-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.field-label{display:block}.title-input{resize:none;overflow:hidden;display:block;width:100%;min-height:48px;padding:.75rem .9rem;font:600 1.1rem/1.35 var(--font-head);overflow-wrap:anywhere;white-space:pre-wrap}.notes{padding:.7rem .9rem;resize:vertical;font-family:var(--font-sans);line-height:1.5}select.input,input[type=datetime-local].input{font:500 1rem var(--font-sans);min-height:48px}input[type=datetime-local].input{padding-block:0}.drawer .seg{display:flex;width:100%}.drawer .seg-btn{flex:1;justify-content:center}.chip-new .chip-input{min-height:34px;height:34px}.drawer textarea.title-input{font:600 1.1rem/1.35 var(--font-head);padding:.72rem .9rem}.btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--border));margin-top:.4rem}@keyframes fade{0%{opacity:0}}.readonly-text{white-space:pre-wrap;overflow-wrap:anywhere;padding:.7rem .8rem;border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--text);max-height:min(22rem,45dvh);overflow-y:auto;font-size:.95rem;line-height:1.55}.muted-text{color:var(--text-muted);font-size:.9rem;margin:.3rem 0}.ro-tag{color:var(--text-muted);font-weight:400;letter-spacing:.06em;text-transform:none;margin-left:.4rem}input[readonly].input{border-style:dashed;cursor:default}.confirm-root{position:fixed;inset:0;z-index:40}.confirm{position:absolute;left:0;right:0;bottom:0;background:var(--surface);border:1px solid var(--border);border-radius:16px 16px 0 0;padding:1.3rem 1.2rem calc(1.2rem + env(safe-area-inset-bottom));animation:sheet var(--dur) var(--ease-out) both}.confirm h2{font-size:1.25rem;margin:0 0 .5rem}.confirm-text{color:var(--text-muted);margin:0 0 1.2rem;overflow-wrap:anywhere}.confirm-text strong{color:var(--text)}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.confirm-actions .btn{min-height:48px}@media(min-width:900px){.confirm{inset:50% auto auto 50%;width:min(420px,calc(100vw - 2rem));transform:translate(-50%,-50%);border-radius:var(--radius);animation:fade var(--dur) both}.confirm-actions{display:flex;justify-content:flex-end}.confirm-actions .btn{min-height:40px}}@keyframes sheet{0%{transform:translateY(100%)}}@keyframes slide-in{0%{transform:translate(100%)}}.done-fold{margin-top:.4rem}.fold-btn{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;gap:.5rem;align-items:center;padding:.8rem .5rem;min-height:44px}.fold-btn:hover{color:var(--text)}.fold-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tag{font-weight:500}.chips{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.chip{all:unset;box-sizing:border-box;cursor:pointer;padding:.35rem .75rem;min-height:34px;display:inline-flex;align-items:center;gap:.4rem;border:1px dashed var(--text-muted);border-radius:999px;font:500 .8rem var(--font-flap);color:var(--text-muted);transition:background var(--dur-fast),border-color var(--dur-fast),color var(--dur-fast)}.chip:before{content:"+";font-weight:700}.chip:hover{border-color:var(--accent);color:var(--text)}.chip.on{background:var(--accent);border:1px solid transparent;color:var(--accent-contrast)}.chip.on:before{content:"✓"}.chip.on:hover{color:var(--accent-contrast);filter:brightness(1.06)}.chip-plain{border-style:solid;border-color:var(--border);color:var(--text)}.chip-plain:before{content:none}.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chip-new{display:inline-flex}.chip-input{min-height:34px;width:7.5rem;padding:0 .7rem;font-size:.8rem;border-radius:999px}.comments{margin:1.2rem 0;padding-top:1rem;border-top:1px solid var(--border)}.clist{list-style:none;margin:.6rem 0;padding:0;display:grid;gap:.8rem}.cmeta{margin:0;font-size:.8rem;color:var(--text-muted)}.cmeta strong{color:var(--text);font-weight:600;margin-right:.4rem}.cbody{margin:.15rem 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.cform{display:grid;gap:.5rem;justify-items:start}.cform .notes{width:100%}.cerr{margin:0;color:var(--danger)}.cform .btn:disabled{opacity:.5;cursor:not-allowed}.pal-root{position:fixed;inset:0;z-index:50;display:grid;justify-items:center;align-items:start;padding:12vh 1rem 1rem}.pal{position:relative;width:min(560px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;animation:rise var(--dur) var(--ease-out) both}.pal-input{width:100%;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);padding:1rem 1.1rem;font:500 1.05rem var(--font-sans)}.pal-input:focus{outline:none}.pal-list{list-style:none;margin:0;padding:.4rem;max-height:50vh;overflow-y:auto}.pal-list li{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.7rem .75rem;border-radius:var(--radius-sm);cursor:pointer;min-height:44px}.pal-list li.on{background:var(--surface-2)}.pal-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pal-empty{cursor:default!important}.pal-foot{margin:0;padding:.6rem 1rem;border-top:1px solid var(--border);font-size:.64rem}.toast-info{border-color:var(--accent)}.ext{color:var(--text);font-weight:600}.ext-line{margin:0 0 1rem;padding:.6rem .8rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.9rem}.ext-line a{color:var(--accent);font-weight:600}.ext-line .caps{font-size:.62rem}.saving{display:inline-flex;align-items:center;gap:.45em;margin-left:.9rem;color:var(--accent)}.saving .spinner{width:.85em;height:.85em;border-width:1.5px}.trow.is-saving{opacity:.72;transition:opacity var(--dur-fast)}.trow.is-saving:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);background-size:40% 100%;background-repeat:no-repeat;animation:sweep 1s linear infinite}@keyframes sweep{0%{background-position:-40% 0}to{background-position:140% 0}}.quick-btn .spinner,.cform .btn .spinner{margin-right:.5em}.pal-empty .spinner{margin-right:.6em}.pal-list li.pal-empty{justify-content:flex-start}.chipbar{display:flex;gap:.5rem;align-items:center;margin-top:1rem;overflow-x:auto;padding-bottom:.25rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}.chipbar::-webkit-scrollbar{display:none}.fchip{all:unset;box-sizing:border-box;cursor:pointer;flex:none;display:inline-flex;align-items:center;min-height:36px;padding:0 .85rem;border:1px solid var(--border);border-radius:999px;font:600 .78rem var(--font-flap);letter-spacing:.04em;color:var(--text-muted);transition:background var(--dur-fast),border-color var(--dur-fast),color var(--dur-fast)}.fchip:hover{color:var(--text);border-color:var(--text-muted)}.fchip.on{color:var(--accent-contrast);background:var(--accent);border-color:transparent}.fchip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fcount{margin-left:.5em;font-size:.7rem;opacity:.7}.fselect{flex:none;min-height:36px;max-width:12rem;padding:0 .7rem;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:999px;font:500 .82rem var(--font-sans)}.fselect:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.empty-board .btn{min-height:40px}.ext-st{color:var(--text);border:1px solid var(--border);border-radius:999px;padding:0 .5rem;font-weight:600;letter-spacing:.04em;white-space:nowrap}.ext-line .ext-st{margin-left:.4rem;font-size:.72rem;padding:.05rem .5rem}*,*:before,*:after{box-sizing:border-box}html{color-scheme:dark light;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 var(--font-sans);-webkit-font-smoothing:antialiased;padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left)}h1,h2,h3{margin:0;font-family:var(--font-head);line-height:1.1}a{color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.caps{font-family:var(--font-flap);font-size:.72rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}.flaps{display:inline-flex;flex-wrap:wrap;gap:3px;perspective:700px}.flap{--size: 1em;display:inline-grid;place-items:center;position:relative;min-width:.82em;height:1.42em;padding:0 .08em;font:600 var(--size)/1 var(--font-flap);color:var(--flap-ink);background:linear-gradient(to bottom,var(--flap-top) 0 50%,var(--flap-bot) 50% 100%);border-radius:4px;box-shadow:inset 0 0 0 1px var(--flap-edge);transform-origin:50% 50%;animation:flip var(--dur) var(--ease-out) both;animation-delay:var(--d, 0ms)}.flap:after{content:"";position:absolute;inset-inline:0;top:50%;height:1px;opacity:.7;background:var(--flap-seam);box-shadow:0 1px #ffffff0d}.flap-blank{min-width:.4em;width:.4em;padding:0;background:none;box-shadow:none;animation:none}.flap-blank:after{display:none}.flaps-lg{font-size:clamp(1.7rem,7vw,2.9rem)}.flaps-md{font-size:1.25rem}.flaps-sm{font-size:.82rem}.flaps-amber .flap,.flaps-tone-amber .flap{color:var(--accent)}.flaps-tone-muted .flap{color:var(--text-muted)}.flaps-tone-ok .flap{color:var(--ok)}@keyframes flip{0%{transform:rotateX(-88deg);opacity:0}55%{transform:rotateX(8deg);opacity:1}to{transform:none;opacity:1}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:46px;padding:0 1.2rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font:600 .9rem/1 var(--font-flap);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast),border-color var(--dur-fast)}.btn:hover{border-color:var(--text-muted)}.btn:active{transform:translateY(1px) scale(.985)}.btn-primary{background:var(--accent);color:var(--accent-contrast);border-color:transparent}.btn-primary:hover{filter:brightness(1.08);border-color:transparent}.btn-block{width:100%}.field{display:grid;gap:.4rem;margin-bottom:1rem}.field label{font:500 .72rem/1 var(--font-flap);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}.input{width:100%;min-height:48px;padding:0 .9rem;font:500 1rem var(--font-flap);color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 24%,transparent)}.notice{padding:.7rem .9rem;border-radius:var(--radius-sm);font-size:.92rem;margin-bottom:1rem;border-left:3px solid currentColor;animation:rise var(--dur) var(--ease-out) both}.notice-error{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.notice-info{background:color-mix(in srgb,var(--ok) 12%,transparent);color:var(--ok)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.rise{animation:rise var(--dur) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 60ms)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}.navbar{position:fixed;inset:0 0 auto;height:3px;z-index:100;pointer-events:none;opacity:0;transition:opacity .25s}.navbar>span{display:block;height:100%;width:0;background:var(--accent);box-shadow:0 0 8px color-mix(in srgb,var(--accent) 60%,transparent)}.navbar.on{opacity:1}.navbar.on>span{width:82%;transition:width 6s cubic-bezier(.08,.7,.2,1)}.navbar.on.done>span{width:100%;transition:width .18s ease-out}.navbar.on.done{opacity:0;transition:opacity .3s .12s}.spinner{display:inline-block;width:1em;height:1em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;flex:none;vertical-align:-.15em}@keyframes spin{to{transform:rotate(360deg)}}.is-pending{pointer-events:none;cursor:progress;opacity:.85}.is-pending .spinner{margin-right:.5em}form[aria-busy=true]{cursor:progress}@media(prefers-reduced-motion:reduce){.spinner{animation:spin 1.6s steps(8) infinite!important;animation-duration:1.6s!important}.navbar.on>span{transition:none}}[hidden]{display:none!important}
