:root{--accent: #14b8a6;--bg: #f4f7f9;--surface: #ffffff;--surface-2: #eef3f6;--border: #d9e2e8;--text: #12232d;--muted: #5b6e7a;--side-bg: #0b2530;--side-text: #cfe3ea;--side-muted: #8fb0bd;--side-active: rgba(255,255,255,.1);--danger: #c4314b;--ok: #1f9d6b;--warn: #c2790c;--violet: #7c5cd6;--blue: #2f80d1;--shadow: 0 1px 2px rgba(10,30,40,.06), 0 4px 14px rgba(10,30,40,.06);--radius: 14px;--pad: 16px;--card-pad: 12px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,Ubuntu,sans-serif;color-scheme:light}:root[data-theme=dark]{--bg: #0a161d;--surface: #11222c;--surface-2: #162b37;--border: #24404f;--text: #e6f0f4;--muted: #92aab6;--side-bg: #071117;--side-text: #cfe3ea;--side-muted: #7fa0ad;--side-active: rgba(255,255,255,.08);--shadow: 0 1px 2px rgba(0,0,0,.4), 0 6px 18px rgba(0,0,0,.35);color-scheme:dark}:root[data-density=compact]{--pad: 10px;--card-pad: 8px}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text)}body{min-height:100dvh;font-size:15px;line-height:1.45;-webkit-text-size-adjust:100%}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:1.55rem}h2{font-size:1.05rem;margin-bottom:10px}h3{font-size:.98rem}p{margin:0 0 8px}code{background:var(--surface-2);padding:1px 6px;border-radius:6px;font-size:.86em;word-break:break-all}kbd{background:var(--surface-2);border:1px solid var(--border);border-bottom-width:2px;border-radius:6px;padding:0 6px;font-size:.78rem;font-family:inherit}a{color:var(--accent)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 70%,white);outline-offset:2px;border-radius:8px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip{position:absolute;left:-999px;top:8px;background:var(--accent);color:#04211d;padding:8px 14px;border-radius:8px;z-index:999}.skip:focus{left:8px}.muted{color:var(--muted)}.pre{white-space:pre-wrap;overflow-wrap:anywhere}.pad{padding:14px}.center{text-align:center;justify-content:center}.row{display:flex;align-items:center;gap:8px}.row.wrap{flex-wrap:wrap}.row.tight{gap:4px}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}.top-gap{margin-top:14px}.stack{display:grid;gap:8px}.lead{font-size:1.02rem;color:var(--muted);max-width:70ch}.boot{min-height:100dvh;display:grid;place-content:center;gap:10px;text-align:center;padding:24px}.boot-logo{font-size:3rem}.app{display:grid;grid-template-columns:auto 1fr;min-height:100dvh}.content{min-width:0;display:flex;flex-direction:column}main{padding:8px 24px 40px;max-width:1500px;width:100%;margin:0 auto;outline:none}.topbar{display:flex;align-items:center;gap:10px;padding:10px 24px 0}.menu-btn{display:none}.sidebar{width:288px;background:var(--side-bg);color:var(--side-text);display:flex;flex-direction:column;gap:12px;padding:16px 12px;position:sticky;top:0;height:100dvh;overflow-y:auto;transition:width .2s}.brand{display:flex;align-items:center;gap:10px;padding:0 6px}.brand-logo{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),#5eead4);font-size:1.3rem}.brand-text{display:grid;line-height:1.15}.brand-text small{color:var(--side-muted);font-size:.72rem}.project-switch{display:flex;gap:8px;align-items:flex-start;background:var(--side-active);border-radius:12px;padding:10px}.project-dot{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex:none}.project-meta{flex:1;min-width:0;display:grid;gap:4px}.project-meta select{background:transparent;border:0;color:#fff;font-weight:600;width:100%;padding:0;text-overflow:ellipsis}.project-meta select option{color:#12232d}.project-meta small{color:var(--side-muted)}.search-btn{display:flex;align-items:center;gap:8px;width:100%;background:var(--side-active);border:1px solid transparent;color:var(--side-muted);padding:9px 10px;border-radius:10px;text-align:left}.search-btn:hover{border-color:var(--accent)}.search-btn kbd{background:transparent;color:var(--side-muted);border-color:var(--side-muted)}.nav{display:grid;gap:12px;flex:1;align-content:start}.nav-title{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--side-muted);margin:0 8px 4px}.nav-item{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;color:var(--side-text);padding:9px 10px;border-radius:10px;text-align:left;position:relative}.nav-item:hover{background:var(--side-active)}.nav-item.active{background:var(--side-active);color:#fff;font-weight:600;box-shadow:inset 3px 0 0 var(--accent)}.nav-emoji{width:24px;text-align:center;font-size:1.1rem}.nav-label{flex:1}.badge{background:var(--accent);color:#04211d;border-radius:99px;font-size:.72rem;font-weight:700;padding:1px 8px}.badge.red{background:#ef4444;color:#fff}.badge.violet{background:#8b5cf6;color:#fff}.side-foot{display:grid;gap:8px;font-size:.78rem;color:var(--side-muted)}.side-foot .chip{--c: #14b8a6;background:transparent}.status-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.dot{width:9px;height:9px;border-radius:50%;background:var(--ok)}.dot.warn{background:#f59e0b}.sidebar .icon-btn{filter:grayscale(.2)}.sidebar.collapsed{width:72px}.sidebar.collapsed .brand-text,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-title,.sidebar.collapsed .project-meta,.sidebar.collapsed .search-btn .grow,.sidebar.collapsed .search-btn kbd,.sidebar.collapsed .side-foot .chip,.sidebar.collapsed .status-row span:not(.dot),.sidebar.collapsed .badge{display:none}.sidebar.collapsed .project-switch>.icon-btn{display:none}.scrim{display:none;position:fixed;inset:0;background:#00000080;z-index:40}.btn{display:inline-flex;align-items:center;gap:6px;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 14px;font-weight:600;min-height:38px}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#04211d}.btn.danger{background:transparent;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 50%,transparent)}.btn.danger:hover:not(:disabled){background:var(--danger);color:#fff;border-color:var(--danger)}.btn.violet{background:color-mix(in srgb,var(--violet) 14%,var(--surface));border-color:var(--violet);color:var(--violet)}.btn.small{padding:4px 10px;min-height:30px;font-size:.85rem}.icon-btn{background:transparent;border:0;border-radius:8px;width:34px;height:34px;display:inline-grid;place-items:center;flex:none}.icon-btn:hover:not(:disabled){background:var(--surface-2)}.icon-btn:disabled{opacity:.35}.sidebar .icon-btn:hover{background:var(--side-active)}input,select,textarea{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 10px;width:100%;min-height:38px}input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--accent)}input[type=color]{padding:2px;width:40px;height:38px;flex:none}input[type=range]{padding:0;accent-color:var(--accent)}textarea{resize:vertical}.field{display:grid;gap:4px;font-size:.85rem;font-weight:600;color:var(--muted);align-content:start}.field>input,.field>select,.field>textarea{color:var(--text);font-weight:400}.field.inline{display:flex;align-items:center;gap:8px}.field.inline input{width:80px}.span2,.span-all{grid-column:1 / -1}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.check{display:inline-flex;align-items:center;gap:6px;font-size:.88rem;font-weight:500;color:var(--text);white-space:nowrap}.seg{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}.seg button{border:0;background:transparent;padding:7px 12px;font-weight:600}.seg button.on{background:var(--accent);color:#04211d}.seg button:disabled{opacity:.4}.chip{--c: #64748b;display:inline-flex;align-items:center;gap:4px;border:1px solid color-mix(in srgb,var(--c) 55%,transparent);color:color-mix(in srgb,var(--c) 78%,var(--text));background:color-mix(in srgb,var(--c) 10%,transparent);border-radius:99px;padding:1px 9px;font-size:.76rem;font-weight:600;white-space:nowrap}.chip.solid{background:color-mix(in srgb,var(--c) 22%,transparent)}.chip.link{cursor:pointer}.chip.link:hover:not(:disabled){background:color-mix(in srgb,var(--c) 25%,transparent)}.chip.big{padding:6px 12px;font-size:.88rem;--c: #8b5cf6}.progress{height:7px;background:var(--surface-2);border-radius:99px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .3s}.notice{border-radius:12px;padding:10px 14px;border:1px solid var(--border);background:var(--surface-2);display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.notice.violet{border-color:var(--violet);background:color-mix(in srgb,var(--violet) 10%,var(--surface))}.notice.amber{border-color:#d49633;background:color-mix(in srgb,#f59e0b 12%,var(--surface))}.notice.red{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--surface))}.notice.green{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--surface))}.notice.blue{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 10%,var(--surface));display:block}.swatches{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.swatch{width:28px;height:28px;border-radius:50%;border:3px solid transparent;box-shadow:0 0 0 1px var(--border);padding:0}.swatch.on{border-color:var(--surface);box-shadow:0 0 0 3px var(--accent)}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:4px;max-height:150px;overflow:auto}.emoji-btn{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:4px;font-size:1.15rem}.emoji-btn.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,var(--surface))}.emoji-input{width:54px;text-align:center;flex:none}.wip-input{width:70px;flex:none}dialog.modal{border:0;padding:0;background:transparent;width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);color:var(--text)}dialog.modal.wide{width:min(860px,calc(100vw - 24px))}dialog.modal::backdrop{background:#050f1499;backdrop-filter:blur(2px)}.modal-card{background:var(--surface);border-radius:18px;box-shadow:var(--shadow);display:flex;flex-direction:column;max-height:calc(100dvh - 24px);border:1px solid var(--border)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.modal-body{padding:16px 18px;overflow-y:auto}.modal-foot{padding:12px 18px;border-top:1px solid var(--border);display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.toasts{position:fixed;right:14px;bottom:14px;display:grid;gap:8px;z-index:100;max-width:min(380px,calc(100vw - 28px))}.toast{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--ok);border-radius:12px;padding:10px 14px;box-shadow:var(--shadow)}.toast.warn{border-left-color:#f59e0b}.toast.err{border-left-color:var(--danger)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 0 16px}.page-head p{margin:4px 0 0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--pad);box-shadow:var(--shadow)}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grid-2>.panel{min-width:0}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:14px}.stat{--c: var(--accent);display:grid;gap:2px;text-align:left;padding:14px;border-radius:var(--radius);border:1px solid var(--border);background:linear-gradient(160deg,color-mix(in srgb,var(--c) 12%,var(--surface)),var(--surface));box-shadow:var(--shadow)}button.stat:hover{border-color:var(--c)}.stat-emoji{font-size:1.3rem}.stat-value{font-size:1.6rem;font-weight:800}.stat-label{color:var(--muted);font-size:.8rem}.plain-list{list-style:none;padding:0;margin:0;display:grid;gap:2px}.panel.plain-list{padding:6px var(--pad)}.plain-list li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);justify-content:space-between;flex-wrap:wrap}.plain-list li:last-child{border-bottom:0}.link-btn{background:none;border:0;padding:0;color:var(--text);text-align:left;font-weight:600}.link-btn:hover{color:var(--accent);text-decoration:underline}.bars{list-style:none;margin:0;padding:0;display:grid;gap:8px}.bars li{display:grid;grid-template-columns:minmax(110px,38%) 1fr 32px;gap:8px;align-items:center;font-size:.86rem}.bar{height:10px;background:var(--surface-2);border-radius:99px;overflow:hidden}.bar>span{display:block;height:100%;border-radius:99px}.bar-n{text-align:right;font-weight:700}.timeline{list-style:none;margin:0;padding:0;display:grid;gap:8px}.timeline li{display:flex;gap:10px;align-items:flex-start;font-size:.9rem}.count{background:var(--surface-2);border-radius:99px;padding:0 9px;font-size:.78rem;font-weight:700}.count.bad{background:var(--danger);color:#fff}.empty{text-align:center;padding:36px 16px;color:var(--muted)}.empty-emoji{font-size:2.6rem}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.table{width:100%;border-collapse:collapse;min-width:720px}.table th,.table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}.table th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-2)}.table tbody tr{cursor:default}.table tbody tr:hover{background:var(--surface-2)}.w120{width:130px}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.toolbar select{width:auto}.toolbar input[type=search]{min-width:220px}.manage-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.manage-list li{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.danger-zone{border-color:color-mix(in srgb,var(--danger) 50%,var(--border))}.board{display:flex;gap:12px;overflow-x:auto;padding-bottom:14px;align-items:flex-start;min-height:60dvh;scroll-snap-type:x proximity}.column{--c: #64748b;flex:0 0 296px;background:var(--surface-2);border-radius:var(--radius);border-top:4px solid var(--c);display:flex;flex-direction:column;max-height:calc(100dvh - 250px);scroll-snap-align:start;transition:box-shadow .15s}.column.over{box-shadow:0 0 0 3px var(--accent)}.column-head{display:flex;align-items:center;gap:8px;padding:10px 10px 6px 12px}.column-head h3{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wip-warn{margin:0 12px 6px;font-size:.78rem;color:var(--danger);font-weight:700}.column-body{padding:4px 10px 12px;overflow-y:auto;display:grid;gap:8px;align-content:start;min-height:60px}.column-empty{text-align:center;color:var(--muted);font-size:.82rem;border:2px dashed var(--border);border-radius:12px;padding:18px 8px;margin:0}.card{--c: #64748b;background:var(--surface);border:1px solid var(--border);border-left:5px solid var(--c);border-radius:12px;box-shadow:var(--shadow);cursor:grab;display:grid}.card.dragging{opacity:.4}.card.ai{border-style:dashed;border-left-style:solid;background:color-mix(in srgb,var(--violet) 6%,var(--surface))}.card-main{display:grid;gap:7px;padding:var(--card-pad);text-align:left;background:none;border:0;width:100%}.card-top{display:flex;justify-content:space-between;align-items:center;gap:6px}.pts{background:var(--surface-2);border-radius:99px;min-width:24px;text-align:center;font-weight:800;font-size:.78rem;padding:1px 7px}.card-title{font-size:.95rem;overflow-wrap:anywhere}.card-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.78rem;color:var(--muted)}.due.bad{color:var(--danger);font-weight:700}.move{padding:0 var(--card-pad) var(--card-pad)}.move select{min-height:30px;padding:3px 8px;font-size:.8rem;color:var(--muted)}.label-toggle{background:none;border:2px solid transparent;border-radius:99px;padding:0;opacity:.55}.label-toggle.on{opacity:1;border-color:var(--accent)}.check-list,.link-list,.comments{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:4px}.check-list li,.link-list li{display:flex;align-items:center;justify-content:space-between;gap:8px}.check-list label{display:flex;gap:8px;align-items:center;font-weight:400;color:var(--text)}.done{text-decoration:line-through;color:var(--muted)}.link-list a{overflow-wrap:anywhere;font-weight:400}.comments li{background:var(--surface-2);border-radius:10px;padding:8px 10px;font-weight:400;color:var(--text)}.comments p{margin:4px 0 0}.req-pick{max-height:160px;overflow:auto;border:1px solid var(--border);border-radius:10px;padding:6px 10px;display:grid;gap:4px}.req-pick label{display:flex;gap:8px;font-weight:400;color:var(--text);align-items:flex-start}.palette-input{font-size:1.05rem;padding:12px 14px}.palette-list{list-style:none;margin:10px 0 0;padding:0;max-height:50dvh;overflow:auto}.palette-item{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;padding:9px 10px;border-radius:10px;text-align:left}.palette-item.on{background:color-mix(in srgb,var(--accent) 18%,var(--surface))}.ctx{background:var(--surface-2);border-radius:10px;padding:10px;max-height:240px;overflow:auto;white-space:pre-wrap;font-size:.8rem}.chat{background:var(--surface-2);border-radius:14px;margin-top:12px;padding:10px;display:grid;gap:8px;max-height:46dvh;overflow-y:auto;min-height:90px}.bubble{max-width:88%;padding:9px 13px;border-radius:14px;background:var(--surface);border:1px solid var(--border)}.bubble p{margin:0}.bubble.user{justify-self:end;background:color-mix(in srgb,var(--accent) 20%,var(--surface));border-color:color-mix(in srgb,var(--accent) 45%,var(--border))}.bubble.err{border-color:var(--danger)}.proposals{margin-top:12px;display:grid;gap:8px}.proposal{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--border);border-radius:12px;padding:10px;background:var(--surface)}.proposal.on{border-color:var(--violet);background:color-mix(in srgb,var(--violet) 7%,var(--surface))}.tool-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.tool-tab,.tpl{display:grid;gap:2px;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow)}.tool-tab.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface))}.tool-tab small{color:var(--muted)}.tpl:hover{border-color:var(--accent)}.tool-emoji{font-size:1.6rem}.tool{display:grid;gap:14px}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.pomo{--p: 0deg;width:220px;height:220px;margin:0 auto;border-radius:50%;background:conic-gradient(var(--accent) var(--p),var(--surface-2) 0);display:grid;place-items:center}.pomo-inner{width:188px;height:188px;border-radius:50%;background:var(--surface);display:grid;place-content:center;text-align:center}.pomo-time{font-size:2.6rem;font-weight:800;font-variant-numeric:tabular-nums}.players{display:flex;gap:10px;flex-wrap:wrap}.player{display:grid;gap:4px;justify-items:center;background:none;border:2px solid transparent;border-radius:12px;padding:6px 10px}.player.on{border-color:var(--accent)}.pcard{display:inline-grid;place-items:center;width:46px;height:64px;border-radius:10px;background:var(--surface);border:2px solid var(--accent);font-size:1.2rem;font-weight:800}.pcard.big{width:54px;height:76px;cursor:pointer}.pcard.big:hover{background:color-mix(in srgb,var(--accent) 18%,var(--surface))}.deck{display:flex;flex-wrap:wrap;gap:8px}.secret-box{background:var(--surface-2);border-radius:12px;padding:14px;text-align:center;font-size:1.15rem;letter-spacing:.03em}.secret-box code{background:none;font-size:inherit}@media(max-width:960px){.app{grid-template-columns:1fr}main{padding:4px 14px 36px}.topbar{padding:10px 14px 0}.menu-btn{display:inline-grid}.scrim{display:block}.sidebar{position:fixed;z-index:50;left:0;top:0;transform:translate(-105%);transition:transform .22s;width:min(300px,86vw)}.sidebar.open{transform:none}.sidebar.collapsed{width:min(300px,86vw)}.sidebar.collapsed .brand-text,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-title,.sidebar.collapsed .project-meta,.sidebar.collapsed .search-btn .grow,.sidebar.collapsed .badge{display:revert}.grid-2,.form-grid{grid-template-columns:1fr}.column{flex-basis:84vw;max-height:none}.bubble{max-width:96%}}
