@charset "UTF-8";:root{--bg: #eceff3;--surface: #ffffff;--surface-2: #f5f7fa;--line: #d4dae1;--ink: #17202b;--ink-2: #5a6572;--accent: #f2b705;--accent-ink: #1c1600;--todo: #7f8b98;--doing: #2563eb;--done: #15803d;--danger: #c2362b;--shadow: 0 1px 2px rgba(23, 32, 43, .06), 0 2px 8px rgba(23, 32, 43, .05);--scrim: rgba(15, 20, 27, .45);--f-display: "Bricolage Grotesque", "Avenir Next", system-ui, sans-serif;--f-body: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--r: 10px;--top-h: 57px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #111519;--surface: #1a2027;--surface-2: #212932;--line: #2e3843;--ink: #e5eaf0;--ink-2: #93a0ad;--accent: #f5c330;--todo: #7a8794;--doing: #5b93ff;--done: #3ebd72;--danger: #f0695e;--shadow: 0 1px 2px rgba(0, 0, 0, .3);--scrim: rgba(0, 0, 0, .6);color-scheme:dark}}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.4;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit}:focus-visible{outline:2px solid var(--doing);outline-offset:2px}[hidden]{display:none!important}.icon{display:inline-flex;width:16px;height:16px;flex:none}.icon svg{width:100%;height:100%}.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.top{position:sticky;top:0;z-index:20;padding-top:env(safe-area-inset-top,0px);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.top-in{max-width:1400px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:16px}.brand{font-family:var(--f-display);font-weight:700;font-size:20px;letter-spacing:-.01em;display:flex;align-items:center;gap:8px;margin-right:auto;text-decoration:none}.brand-mark{width:22px;height:22px;border-radius:6px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center}.brand-mark svg{width:14px;height:14px}.tabs{display:flex;gap:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:3px}.tab{border:0;background:none;padding:6px 16px;border-radius:999px;font-weight:600;color:var(--ink-2);display:flex;align-items:center;gap:6px;text-decoration:none}.tab.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.tab .icon{width:18px;height:18px}.account{width:34px;height:34px;border-radius:50%;padding:0;justify-content:center;background:var(--surface-2)}main{max-width:1400px;margin:0 auto;padding:16px 16px 40px}.banner{font-size:14px;color:var(--ink-2);background:var(--surface-2);border:1px dashed var(--line);border-radius:var(--r);padding:10px 12px;margin:0 0 12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.banner.error{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}.bottombar{display:none}@media(max-width:759px){.top .tabs{display:none}.bottombar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--surface);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:6px 16px calc(6px + env(safe-area-inset-bottom,0px))}.bottombar .tab{flex-direction:column;gap:2px;font-size:12px;padding:6px;border-radius:10px;justify-content:center}.bottombar .tab .icon{width:22px;height:22px}.bottombar .tab.active{box-shadow:none;background:var(--surface-2)}main{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}}.btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px 12px;font-weight:600;font-size:14px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;text-decoration:none}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:transparent;color:var(--accent-ink)}.btn.primary:hover{filter:brightness(.96)}.btn.ghost{border-color:transparent;background:none}.btn.danger{color:var(--danger)}.btn.danger.armed{background:var(--danger);color:#fff;border-color:transparent}.btn.icon-only{padding:7px}.btn.spin .icon{animation:spin .8s linear infinite}.seg{display:flex;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:3px;gap:2px}.seg button{flex:1;border:0;background:none;border-radius:7px;padding:7px 10px;font-weight:600;font-size:14px;color:var(--ink-2);display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.count{font-family:var(--f-mono);font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}.dot{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block}.dot.todo{background:var(--todo)}.dot.doing{background:var(--doing)}.dot.done{background:var(--done)}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}.toolbar .spacer{flex:1}h1.view-title{font-family:var(--f-display);font-size:26px;font-weight:700;letter-spacing:-.015em;margin:0;text-wrap:balance}.empty{text-align:center;padding:48px 16px;color:var(--ink-2);border:1px dashed var(--line);border-radius:14px;background:var(--surface)}.empty h2{font-family:var(--f-display);color:var(--ink);font-size:20px;margin:0 0 6px}.empty p{margin:0 auto 16px;max-width:42ch}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 12px;display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:14px}.chip.with-av{padding-left:4px}.chip[aria-pressed=false]{opacity:.5}.chip[aria-pressed=false] .av{filter:grayscale(1)}.chip.solid[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink);opacity:1}.chip.solid[aria-pressed=false]{opacity:1}.av{width:24px;height:24px;border-radius:50%;background:var(--pc);color:#fff;font-weight:700;font-size:12px;display:grid;place-items:center;flex:none}.av.sm{width:20px;height:20px;font-size:11px}.colheads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:6px 10px;margin-bottom:8px;position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--top-h));z-index:5;background:var(--bg)}.colheads div{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.status-seg{display:none}.feature{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}.feature-h{display:flex;align-items:baseline;gap:10px;margin:4px 2px 0}.feature-h h2{font-family:var(--f-display);font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);margin:0}.feature-h .count{margin-right:auto}.lane{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.lane-h{display:flex;align-items:center;gap:8px;padding:8px 8px 8px 4px}.lane-toggle{border:0;background:none;padding:6px;border-radius:6px;display:flex;align-items:center;gap:8px;color:var(--ink);min-width:0;flex:1;text-align:left}.lane-toggle>.icon{width:18px;height:18px;color:var(--ink-2);transition:transform .15s}.lane.collapsed .lane-toggle>.icon{transform:rotate(-90deg)}.lane-name{font-family:var(--f-display);font-weight:700;font-size:17px;letter-spacing:-.01em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lane-num{font-family:var(--f-mono);font-size:12px;color:var(--ink-2)}.lane-stats{display:flex;gap:10px;margin-left:auto;font-family:var(--f-mono);font-size:12px;color:var(--ink-2);align-items:center;flex:none}.lane-stats span{display:inline-flex;align-items:center;gap:4px}.progress{height:3px;background:var(--surface-2)}.progress i{display:block;height:100%;background:var(--done)}.lane.collapsed .lane-cols{display:none}.lane-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:10px;background:var(--surface-2);border-top:1px solid var(--line)}.col{display:flex;flex-direction:column;gap:8px;min-height:52px;border-radius:10px;padding:2px;transition:background .12s;min-width:0}.col.over{background:color-mix(in srgb,var(--doing) 12%,transparent);outline:2px dashed color-mix(in srgb,var(--doing) 50%,transparent)}.col-empty{font-size:13px;color:var(--ink-2);padding:10px;text-align:center;opacity:.7}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:10px 10px 8px;box-shadow:var(--shadow);cursor:pointer;display:flex;flex-direction:column;gap:6px;text-align:left;width:100%}.card:hover{border-color:color-mix(in srgb,var(--ink-2) 50%,var(--line))}.card.dragging{opacity:.4}.card.busy{opacity:.7}.card-t{display:flex;gap:8px;align-items:baseline}.card-t .num{font-family:var(--f-mono);font-size:12px;color:var(--ink-2);flex:none}.card-t .title{font-weight:600;min-width:0;overflow-wrap:anywhere}.card.is-done .title{color:var(--ink-2);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--ink-2) 60%,transparent)}.card-note{font-size:13px;color:var(--ink-2);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:pre-line}.card-f{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);margin-right:auto}.mv{border:1px solid var(--line);background:var(--surface-2);border-radius:7px;padding:4px 9px;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:4px}.mv:hover{background:var(--surface)}.mv.go{border-color:color-mix(in srgb,var(--doing) 45%,var(--line));color:var(--doing)}.mv.ok{border-color:color-mix(in srgb,var(--done) 45%,var(--line));color:var(--done)}.mv .icon{width:14px;height:14px}.add-card{border:1px dashed var(--line);background:none;border-radius:var(--r);padding:8px;color:var(--ink-2);font-weight:600;font-size:14px;display:flex;align-items:center;justify-content:center;gap:6px}.add-card:hover{background:var(--surface);color:var(--ink)}.more-done{border:0;background:none;color:var(--ink-2);font-size:13px;font-weight:600;padding:6px;text-decoration:underline;text-underline-offset:3px}.stamp{font-size:12px;color:var(--ink-2)}@media(max-width:759px){.colheads{display:none}.status-seg{display:flex;position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--top-h));z-index:6;margin-bottom:12px;box-shadow:0 4px 12px var(--bg)}.status-seg button{padding:10px 4px;font-size:14px;gap:5px}.lane-cols{grid-template-columns:1fr}.board[data-show="To Do"] .col:not([data-status="To Do"]),.board[data-show="In Progress"] .col:not([data-status="In Progress"]),.board[data-show=Done] .col:not([data-status=Done]){display:none}.board[data-show="In Progress"] .lane[data-none~=doing],.board[data-show=Done] .lane[data-none~=done],.board[data-show="In Progress"] .feature:not(:has(.lane:not([data-none~=doing]))),.board[data-show=Done] .feature:not(:has(.lane:not([data-none~=done]))){display:none}.lane-stats .lbl{display:none}.card{padding:12px;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;align-items:center}.card-t,.card-note{grid-column:1}.card-f{grid-column:2;grid-row:1/span 2;flex-wrap:nowrap}.card-t .title{font-size:16px}.card .status-pill{display:none}.mv{padding:7px 12px;font-size:14px}.hide-sm{display:none}}.week-nav{display:flex;align-items:center;gap:6px}.week-label{display:flex;flex-direction:column;line-height:1.15;padding:0 6px;min-width:0}.week-label b{font-family:var(--f-display);font-size:22px;letter-spacing:-.01em}.week-label span{font-size:13px;color:var(--ink-2)}.daystrip{display:none}.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.day{background:var(--surface);border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;min-width:0;min-height:220px}.day-h{display:flex;align-items:baseline;gap:6px;padding:10px 10px 8px;border-bottom:1px solid var(--line)}.day-h .dn{font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.day-h .dd{font-family:var(--f-display);font-weight:700;font-size:20px}.day.today .day-h{background:color-mix(in srgb,var(--accent) 20%,var(--surface));border-radius:13px 13px 0 0}.day.today .day-h .dn{color:var(--ink)}.day.past{opacity:.72}.day-ev{display:flex;flex-direction:column;gap:6px;padding:8px;flex:1}.free{color:var(--ink-2);font-size:13px;text-align:center;padding:14px 0;opacity:.7}.ev{border:0;text-align:left;width:100%;border-radius:9px;padding:8px;background:color-mix(in srgb,var(--pc) 15%,var(--surface));display:flex;flex-direction:column;gap:3px}.ev:hover{background:color-mix(in srgb,var(--pc) 24%,var(--surface))}.ev .t{font-family:var(--f-mono);font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}.ev .t small:before{content:"\2013"}.ev .body{display:contents}.ev .n{font-weight:700;font-size:14px;overflow-wrap:anywhere}.ev .w{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-2);min-width:0}.ev .w .place{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ev.skipped{background:var(--surface-2);opacity:.6}.ev.skipped .n{text-decoration:line-through}.ev .tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2)}.day-add{border:0;background:none;color:var(--ink-2);padding:8px;font-size:13px;font-weight:600;border-top:1px dashed var(--line);display:flex;align-items:center;justify-content:center;gap:4px;border-radius:0 0 13px 13px}.day-add:hover{background:var(--surface-2);color:var(--ink)}.day-add .icon{width:14px;height:14px}@media(max-width:1080px)and (min-width:760px){.days{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:759px){.daystrip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:12px}.ds{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:6px 0 5px;display:flex;flex-direction:column;align-items:center;gap:1px}.ds .dn{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2)}.ds .dd{font-family:var(--f-display);font-weight:700;font-size:18px}.ds .pips{display:flex;gap:2px;height:6px;align-items:center}.ds .pips i{width:5px;height:5px;border-radius:50%;background:var(--pc)}.ds.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.ds[aria-pressed=true]{background:var(--ink);border-color:var(--ink)}.ds[aria-pressed=true] .dn,.ds[aria-pressed=true] .dd{color:var(--bg)}.days{grid-template-columns:1fr}.day:not(.sel){display:none}.day{min-height:0}.day.past{opacity:1}.ev{padding:12px;flex-direction:row;align-items:center;gap:12px}.ev .t{font-size:14px;color:var(--ink);width:52px;flex:none;display:flex;flex-direction:column}.ev .t small{color:var(--ink-2);font-size:12px}.ev .t small:before{content:none}.ev .body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.ev .n{font-size:16px}.week-label b{font-size:20px}}.scrim{position:fixed;inset:0;background:var(--scrim);z-index:50;display:flex;align-items:center;justify-content:center;padding:16px;animation:fade .12s ease-out}.sheet{background:var(--surface);border-radius:16px;width:100%;max-width:500px;max-height:calc(100% - 32px);overflow:auto;box-shadow:0 20px 60px #0000004d;animation:rise .16s ease-out;overscroll-behavior:contain}.sheet-h{display:flex;align-items:center;gap:8px;padding:16px 16px 4px}.sheet-h h2{font-family:var(--f-display);font-size:21px;margin:0 auto 0 0;letter-spacing:-.01em}.sheet-b{padding:8px 16px 16px;display:flex;flex-direction:column;gap:14px}.sheet-f{display:flex;gap:8px;padding:12px 16px calc(16px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);align-items:center;position:sticky;bottom:0;background:var(--surface);flex-wrap:wrap}.sheet-f .spacer{flex:1}.sheet-f:empty{display:none}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field>label,.field>.lbl{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.field input,.field select,.field textarea{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;padding:9px 10px;width:100%;min-width:0;font-size:16px}.field textarea{min-height:90px;resize:vertical}.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.swatches{display:flex;gap:8px;flex-wrap:wrap}.sw{width:30px;height:30px;border-radius:50%;border:2px solid transparent;background:var(--pc);padding:0;flex:none}.sw[aria-pressed=true]{border-color:var(--surface);box-shadow:0 0 0 2px var(--ink)}.hint{font-size:13px;color:var(--ink-2);margin:0}.plist{display:flex;flex-direction:column;gap:10px}.prow{display:flex;gap:8px;align-items:center}.prow input{flex:1;min-width:0;border:1px solid var(--line);background:var(--surface-2);border-radius:8px;padding:8px 10px;font-size:16px}.prow .sw{width:26px;height:26px}.feed{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}.feed-h{display:flex;align-items:center;gap:8px;font-weight:700}.feed-h .spacer{flex:1}.feed code{font-family:var(--f-mono);font-size:12px;color:var(--ink-2);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.steps{margin:0;padding-left:20px;font-size:14px;color:var(--ink-2);display:flex;flex-direction:column;gap:4px}@media(max-width:759px){.scrim{align-items:flex-end;padding:0}.sheet{border-radius:18px 18px 0 0;max-height:92%;animation:up .2s ease-out}}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(24px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;font-weight:600;font-size:14px;z-index:60;max-width:calc(100% - 32px)}@media(max-width:759px){.toast{bottom:calc(86px + env(safe-area-inset-bottom,0px))}}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(8px);opacity:0}}@keyframes up{0%{transform:translateY(40px)}}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
