@font-face{font-family:Cera Bold;src:url(/api/fonts/CeraBold.woff2) format("woff2"),url(/api/fonts/CeraBold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:100;font-display:swap;src:url(/api/fonts/bevietnampro-100-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:100;font-display:swap;src:url(/api/fonts/bevietnampro-100-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/api/fonts/bevietnampro-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/api/fonts/bevietnampro-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/api/fonts/bevietnampro-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/api/fonts/bevietnampro-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--white: #ffffff;--slate-50: #f6f7f9;--slate-100: #eaecef;--slate-200: #d8dade;--slate-300: #c4c8ce;--slate-400: #808fa0;--slate-500: #5c6b7a;--slate-600: #4a5868;--slate-700: #334658;--slate-800: #1c3348;--slate-900: #1e2440;--slate-950: #141828;--glacier-100: #dcedf3;--glacier-200: #bcdde8;--glacier-300: #90c8da;--glacier-400: #48b0c8;--glacier-500: #3a95af;--glacier-600: #2e7c99;--glacier-700: #26647e;--glacier-900: #193e4d;--berry-100: #f4dee2;--berry-300: #d795a2;--berry-400: #b8536a;--berry-500: #a4475a;--berry-700: #723240;--pine-100: #dfeae9;--pine-400: #6fa3a1;--pine-600: #3f7a78;--pine-800: #2b4f4e;--ochre-100: #f2ebdb;--ochre-400: #c49f5e;--ochre-500: #b08843;--ochre-700: #7a5b2c;--font-display: "Cera Bold", "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", sans-serif;--font-sans: "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-xs: 11px;--text-sm: 12.5px;--text-base: 13.5px;--text-md: 15px;--text-lg: 19px;--text-xl: 25px;--text-2xl: 32px;--track-kicker: .22em;--track-label: .1em;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--radius-sm: 4px;--radius: 8px;--radius-lg: 12px;--radius-pill: 999px;--shadow-sm: 0 1px 3px rgb(20 24 40 / .05);--shadow: 0 1px 4px rgb(20 24 40 / .06);--shadow-lg: 0 4px 20px rgb(20 24 40 / .12);--shadow-modal: 0 14px 40px rgb(20 24 40 / .3);--dur: .15s;--ease: cubic-bezier(.4, 0, .2, 1);--z-sticky: 20;--z-dropdown: 40;--z-modal: 60;--z-toast: 80;--bg: var(--slate-100);--bg-gradient: var(--slate-100);--surface: var(--white);--surface-2: var(--slate-50);--surface-raised: var(--white);--surface-hover: rgb(28 51 72 / .04);--surface-sunken: rgb(28 51 72 / .03);--ink: var(--slate-800);--ink-soft: var(--slate-500);--ink-faint: var(--slate-400);--ink-inverse: var(--white);--line: var(--slate-300);--line-soft: var(--slate-200);--line-strong: var(--slate-400);--accent: var(--glacier-600);--accent-hover: var(--glacier-700);--accent-soft: var(--glacier-100);--accent-ink: var(--white);--heat: var(--berry-500);--heat-soft: var(--berry-100);--heat-ink: var(--white);--good: var(--pine-600);--good-soft: var(--pine-100);--warn: var(--ochre-500);--warn-soft: var(--ochre-100);--focus: var(--glacier-600);--scrim: rgb(20 24 40 / .5);--col-backlog: rgb(74 88 104 / .06);--col-inprogress: rgb(46 124 153 / .08);--col-blocked: rgb(164 71 90 / .07);--col-review: rgb(63 122 120 / .08);--col-done: rgb(74 88 104 / .04);color-scheme:light}[data-theme=dark]{--bg: var(--slate-950);--bg-gradient: linear-gradient(160deg, #141828, #1e2440);--surface: rgb(255 255 255 / .05);--surface-2: rgb(255 255 255 / .03);--surface-raised: #1e2440;--surface-hover: rgb(255 255 255 / .07);--surface-sunken: rgb(0 0 0 / .16);--ink: var(--slate-100);--ink-soft: rgb(234 236 239 / .62);--ink-faint: rgb(234 236 239 / .4);--ink-inverse: var(--slate-800);--line: rgb(255 255 255 / .1);--line-soft: rgb(255 255 255 / .06);--line-strong: rgb(255 255 255 / .2);--accent: var(--glacier-400);--accent-hover: var(--glacier-300);--accent-soft: rgb(72 176 200 / .14);--accent-ink: var(--slate-800);--heat: var(--berry-300);--heat-soft: rgb(215 149 162 / .14);--heat-ink: var(--slate-800);--good: var(--pine-400);--good-soft: rgb(111 163 161 / .14);--warn: var(--ochre-400);--warn-soft: rgb(196 159 94 / .14);--focus: var(--glacier-400);--scrim: rgb(10 12 22 / .66);--col-backlog: rgb(255 255 255 / .03);--col-inprogress: rgb(72 176 200 / .07);--col-blocked: rgb(215 149 162 / .07);--col-review: rgb(111 163 161 / .07);--col-done: rgb(255 255 255 / .02);--shadow-sm: 0 1px 3px rgb(0 0 0 / .3);--shadow: 0 2px 8px rgb(0 0 0 / .35);--shadow-lg: 0 6px 24px rgb(0 0 0 / .45);--shadow-modal: 0 18px 50px rgb(0 0 0 / .6);color-scheme:dark}@media (prefers-reduced-motion: reduce){:root{--dur: 0ms}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--bg);background-image:var(--bg-gradient);background-attachment:fixed;color:var(--ink);font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;letter-spacing:-.01em;margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}.app{display:flex;flex-direction:column;min-height:100vh}.topbar{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-6);background:var(--bg);background-image:var(--bg-gradient);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:var(--sp-3);min-width:0}.brand-mark{width:26px;height:26px;flex:none}.brand-text{min-width:0}.wordmark{display:block;font-family:var(--font-display);font-size:var(--text-md);letter-spacing:.16em;text-transform:lowercase;line-height:1.1}.brand-kicker{display:block;font-size:var(--text-xs);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--ink-soft);line-height:1.4}.nav{display:flex;gap:var(--sp-1);margin-left:var(--sp-6);flex-wrap:wrap}.nav button{background:none;border:1px solid transparent;border-radius:var(--radius-pill);padding:6px 14px;font-size:var(--text-sm);color:var(--ink-soft);cursor:pointer;transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.nav button:hover{color:var(--ink);background:var(--surface-hover)}.nav button[aria-current=page]{color:var(--accent);background:var(--accent-soft);font-weight:700}.nav .count{margin-left:6px;font-size:var(--text-xs);color:inherit;opacity:.75}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2)}.who{text-align:right;line-height:1.25;max-width:220px}.who b{display:block;font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.who span{font-size:var(--text-xs);color:var(--ink-soft)}.main{flex:1;padding:var(--sp-5) var(--sp-6) var(--sp-10);min-width:0}.view-head{display:flex;align-items:flex-end;gap:var(--sp-4);margin-bottom:var(--sp-4);flex-wrap:wrap}.view-head h1{font-size:var(--text-xl)}.view-head .kicker{font-size:var(--text-xs);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--accent);display:block;margin-bottom:2px}.view-head .spacer{flex:1}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:var(--radius-sm);padding:7px 13px;font-size:var(--text-sm);cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease);white-space:nowrap}.btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--line-strong)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn.danger{background:transparent;border-color:var(--heat);color:var(--heat)}.btn.danger:hover:not(:disabled){background:var(--heat-soft)}.btn.ghost{border-color:transparent;background:transparent;color:var(--ink-soft)}.btn.ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--ink)}.btn.sm{padding:4px 9px;font-size:var(--text-xs)}.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius-pill);overflow:hidden;background:var(--surface)}.seg button{background:none;border:0;padding:5px 11px;font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-soft);cursor:pointer}.seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);font-weight:700}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.card.pad{padding:var(--sp-4)}.card.raised{background:var(--surface-raised);box-shadow:var(--shadow)}.panel-title{font-size:var(--text-xs);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--ink-soft);margin:0 0 var(--sp-3);font-family:var(--font-sans);font-weight:700}.hint{font-size:var(--text-sm);color:var(--ink-soft);margin:0 0 var(--sp-3);max-width:78ch}.hint.rule{border-left:2px solid var(--accent);padding-left:var(--sp-3)}.empty{color:var(--ink-soft);font-size:var(--text-sm);padding:var(--sp-6);text-align:center}.stats{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-4)}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-3) var(--sp-4);min-width:104px}.stat b{display:block;font-family:var(--font-display);font-size:var(--text-xl);line-height:1.1;letter-spacing:-.02em}.stat span{font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-soft)}.stat.heat b{color:var(--heat)}.stat.accent b{color:var(--accent)}.badge{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-xs);border-radius:var(--radius-pill);padding:2px 9px;border:1px solid var(--line);white-space:nowrap}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.badge.s-backlog{color:var(--ink-soft)}.badge.s-inprogress{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.badge.s-blocked{color:var(--heat);border-color:var(--heat);background:var(--heat-soft)}.badge.s-review{color:var(--good);border-color:var(--good);background:var(--good-soft)}.badge.s-done{color:var(--ink-faint)}.kind-tag{font-size:var(--text-xs);border-radius:var(--radius-sm);padding:1px 7px;color:var(--white);white-space:nowrap}.ref{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);white-space:nowrap}.project-chip{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:1px 6px;white-space:nowrap}.project-chip .bar{width:3px;height:10px;border-radius:1px;background:var(--accent)}.risk-flag{color:var(--heat);font-size:var(--text-xs);white-space:nowrap}.stream-dot{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block}.field{display:block;margin-bottom:var(--sp-3);min-width:0}.field .field-label{display:block;font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-soft);margin-bottom:4px;font-weight:700}.field .note{display:block;font-size:var(--text-xs);color:var(--ink-soft);margin-top:3px}.field .err{display:block;font-size:var(--text-xs);color:var(--heat);margin-top:3px}input[type=text],input[type=date],input[type=email],input[type=number],select,textarea{width:100%;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:7px 9px;font-size:var(--text-base);transition:border-color var(--dur) var(--ease)}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}textarea{resize:vertical;min-height:62px;line-height:1.45}select{cursor:pointer}.row{display:flex;gap:var(--sp-3)}.row>*{flex:1;min-width:0}.check{display:inline-flex;align-items:center;gap:7px;font-size:var(--text-sm);cursor:pointer}.check input{width:auto;accent-color:var(--accent)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:var(--z-modal);display:flex;align-items:flex-start;justify-content:center;padding:var(--sp-6) var(--sp-4);overflow:auto}.dialog{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);width:100%;max-width:720px;margin:auto}.dialog.wide{max-width:940px}.dialog-head{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--line)}.dialog-head h2{font-size:var(--text-lg)}.dialog-head .kicker{font-size:var(--text-xs);letter-spacing:var(--track-kicker);text-transform:uppercase;color:var(--accent);display:block;margin-bottom:2px}.dialog-head .spacer{flex:1}.dialog-body{padding:var(--sp-5)}.dialog-foot{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--line)}.dialog-foot .spacer{flex:1}.toast{position:fixed;bottom:var(--sp-5);left:50%;transform:translate(-50%);z-index:var(--z-toast);background:var(--surface-raised);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:var(--sp-3) var(--sp-4);font-size:var(--text-sm);max-width:560px}.toast.error{border-left-color:var(--heat)}.gate{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--sp-6)}.gate-box{max-width:460px}.gate-box .rule{width:56px;height:2px;background:var(--accent);margin:var(--sp-3) 0 var(--sp-4)}.gate-box h1{font-size:var(--text-2xl)}.tbl{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.tbl th{text-align:left;font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-soft);font-weight:700;border-bottom:1px solid var(--line);padding:0 var(--sp-3) 6px 0;white-space:nowrap}.tbl td{border-bottom:1px solid var(--line-soft);padding:8px var(--sp-3) 8px 0;vertical-align:top}.tbl tbody tr:hover{background:var(--surface-hover)}.tbl .num{text-align:right;white-space:nowrap}.tbl .nowrap{white-space:nowrap}.scroll-x{overflow-x:auto;max-width:100%}@media (max-width: 860px){.topbar{flex-wrap:wrap;padding:var(--sp-3) var(--sp-4)}.nav{margin-left:0;order:3;width:100%}.main{padding:var(--sp-4) var(--sp-4) var(--sp-8)}.who{display:none}}.filters{padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-4)}.filters-row{display:flex;align-items:flex-end;gap:var(--sp-3);flex-wrap:wrap}.filters-row.toggles{align-items:center;margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--line-soft);gap:var(--sp-4)}.filters-row .spacer{flex:1}.ms{position:relative;min-width:0}.ms-label{display:block;font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-soft);font-weight:700;margin-bottom:4px;white-space:nowrap}.ms-btn{display:flex;align-items:center;gap:var(--sp-2);min-width:128px;max-width:230px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:7px 9px;font-size:var(--text-sm);cursor:pointer;text-align:left}.ms-btn:hover:not(:disabled){border-color:var(--line-strong)}.ms-btn:disabled{opacity:.45;cursor:default}.ms-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);font-weight:700}.ms-summary{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ms-caret{font-size:10px;opacity:.7}.ms-pop{position:absolute;top:calc(100% + 4px);left:0;z-index:var(--z-dropdown);min-width:250px;max-width:340px;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden}.ms-pop-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);border-bottom:1px solid var(--line-soft)}.ms-pop-head .spacer{flex:1}.ms-count{font-size:var(--text-xs);color:var(--ink-faint);padding-right:var(--sp-2)}.ms-list{max-height:320px;overflow-y:auto;padding:var(--sp-1) 0}.ms-group{font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-faint);padding:var(--sp-2) var(--sp-3) 2px}.ms-item{display:flex;align-items:center;gap:var(--sp-2);padding:5px var(--sp-3);font-size:var(--text-sm);cursor:pointer}.ms-item:hover{background:var(--surface-hover)}.ms-item input{width:auto;accent-color:var(--accent)}.ms-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.f-dates .f-dates-row{display:flex;align-items:center;gap:6px}.f-dates input{width:138px}.f-sep{color:var(--ink-faint)}.f-search{min-width:180px;flex:1;max-width:320px}.opt{display:flex;align-items:center;gap:var(--sp-2)}.opt>span{font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--ink-soft);font-weight:700}.opt-seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.opt-seg button{background:var(--surface-2);border:0;border-right:1px solid var(--line);padding:5px 10px;font-size:var(--text-xs);color:var(--ink-soft);cursor:pointer}.opt-seg button:last-child{border-right:0}.opt-seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);font-weight:700}@media (max-width: 720px){.ms-btn{min-width:110px}.f-search{max-width:none}}.ov{overflow:hidden}.ov-group+.ov-group{border-top:1px solid var(--line)}.ov-group-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);background:var(--surface-sunken);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;font-weight:700;color:var(--ink-soft)}.ov-group-count{color:var(--ink-faint);font-weight:400}.ov-tbl{min-width:940px}.ov-tbl th:first-child,.ov-tbl td:first-child{padding-left:var(--sp-4)}.ov-tbl th:last-child,.ov-tbl td:last-child{padding-right:var(--sp-4)}.ov-tbl tbody tr{cursor:pointer}.ov-tbl tr.overdue td:first-child{box-shadow:inset 2px 0 0 var(--heat)}.ov-title{min-width:260px;max-width:520px}.ov-title-main{display:flex;align-items:center;gap:7px;font-weight:400}.ov-sub{color:var(--ink-soft);font-size:var(--text-xs);margin-top:2px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-clamp:2}.ov-flags{display:flex;gap:var(--sp-3);align-items:center;margin-top:3px;flex-wrap:wrap}.ov-sub-count,.ov-serie{font-size:var(--text-xs);color:var(--ink-faint)}.ov-diamond{width:8px;height:8px;background:var(--accent);transform:rotate(45deg);flex:none}.ov-stream{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--text-xs)}.ov-overdue{color:var(--heat);font-size:var(--text-xs);margin-top:2px}.ink-faint{color:var(--ink-faint)}.tl{overflow:auto;max-width:100%;max-height:calc(100vh - 340px);min-height:320px}.tl-inner{position:relative}.tl-head{display:flex;position:sticky;top:0;z-index:3;background:var(--surface-raised);border-bottom:1px solid var(--line)}.tl-head-label{position:sticky;left:0;z-index:4;flex:none;background:var(--surface-raised);border-right:1px solid var(--line);padding:var(--sp-3) var(--sp-3);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;font-weight:700;color:var(--ink-soft);display:flex;align-items:flex-end}.tl-col-resize{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize}.tl-col-resize:hover{background:var(--accent);opacity:.5}.tl-head-cols{flex:none}.tl-head-months{display:flex;height:26px}.tl-month{flex:none;border-left:1px solid var(--line);padding:5px 6px 0;font-size:var(--text-xs);font-weight:700;color:var(--ink);overflow:hidden;white-space:nowrap}.tl-head-weeks{display:flex;height:20px;border-top:1px solid var(--line-soft)}.tl-week{flex:none;border-left:1px solid var(--line-soft);font-size:10px;color:var(--ink-faint);text-align:center;overflow:hidden;white-space:nowrap;line-height:19px}.tl-body{position:relative;padding-bottom:var(--sp-4)}.tl-grid{position:absolute;top:0;bottom:0;pointer-events:none}.tl-gline,.tl-wline{position:absolute;top:0;bottom:0;width:1px}.tl-gline{background:var(--line)}.tl-wline{background:var(--line-soft)}.tl-today{position:absolute;top:0;bottom:0;width:2px;background:var(--heat);z-index:2}.tl-today b{position:absolute;top:2px;left:4px;font-size:10px;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--heat);white-space:nowrap}.tl-project-head{position:sticky;left:0;z-index:2;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-3) var(--sp-1);font-size:var(--text-sm);font-weight:700;font-family:var(--font-display)}.tl-lane{position:sticky;left:0;z-index:2;display:flex;align-items:center;gap:var(--sp-2);padding:5px var(--sp-3);background:var(--surface-sunken);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;font-weight:700;color:var(--ink-soft)}.tl-lane-count{color:var(--ink-faint);font-weight:400}.tl-row{display:flex;align-items:stretch;border-bottom:1px solid var(--line-soft)}.tl-row:hover{background:var(--surface-hover)}.tl-label{position:sticky;left:0;z-index:2;flex:none;background:var(--surface);border-right:1px solid var(--line);padding:6px var(--sp-3);cursor:pointer;min-width:0}.tl-row:hover .tl-label{background:var(--surface-raised)}.tl-title{font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tl-meta{display:flex;align-items:center;gap:var(--sp-2);margin-top:3px;flex-wrap:wrap}.tl-serie{font-size:var(--text-xs);color:var(--ink-faint);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:0 5px}.tl-roles{margin-top:3px;display:flex;flex-direction:column;gap:1px}.tl-role{display:flex;gap:6px;font-size:var(--text-xs);min-width:0}.tl-role .k{color:var(--ink-faint);text-transform:uppercase;letter-spacing:var(--track-label);font-size:10px;flex:none;width:66px}.tl-role .v{color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tl-track{position:relative;flex:none;min-height:46px}.tl-bar{position:absolute;top:50%;transform:translateY(-50%);height:18px;border-radius:var(--radius-sm);display:flex;align-items:center;touch-action:none;opacity:.92}.tl-bar:hover{opacity:1}.tl-bar.dragging{opacity:1;box-shadow:0 0 0 2px var(--accent);cursor:grabbing}.tl-bar.s-done{opacity:.42}.tl-bar.s-blocked{outline:1px solid var(--heat);outline-offset:1px}.tl-bar.overdue:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border:1px solid var(--heat);border-radius:var(--radius-sm);pointer-events:none}.tl-bar-text{position:absolute;left:4px;font-size:10.5px;line-height:15px;color:var(--white);padding:0 4px;border-radius:2px;white-space:nowrap;pointer-events:none;max-width:460px;overflow:hidden;text-overflow:ellipsis}.tl-handle{position:absolute;top:0;bottom:0;width:7px;cursor:col-resize;touch-action:none}.tl-handle.left{left:-3px}.tl-handle.right{right:-3px}.tl-handle:hover{background:var(--white);opacity:.5}.tl-diamond{position:absolute;top:50%;width:11px;height:11px;margin-left:-5px;transform:translateY(-50%) rotate(45deg);cursor:pointer;border:1px solid var(--surface-raised)}.tl-diamond:hover{outline:2px solid var(--accent);outline-offset:1px}.tl-diamond.spent{opacity:.35}.kb{display:flex;gap:var(--sp-3);align-items:flex-start;padding-bottom:var(--sp-3)}.kb-col{flex:1 1 0;min-width:232px;background:var(--col-backlog);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;max-height:calc(100vh - 300px)}.kb-col.c-inprogress{background:var(--col-inprogress)}.kb-col.c-blocked{background:var(--col-blocked)}.kb-col.c-review{background:var(--col-review)}.kb-col.c-done{background:var(--col-done)}.kb-col.over{border-color:var(--accent);border-style:dashed;box-shadow:inset 0 0 0 1px var(--accent)}.kb-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);border-bottom:1px solid var(--line-soft)}.kb-title{font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;font-weight:700}.kb-count{margin-left:auto;font-size:var(--text-xs);color:var(--ink-faint)}.kb-cards{padding:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-2);overflow-y:auto;min-height:90px}.kb-empty{color:var(--ink-faint);font-size:var(--text-xs);text-align:center;padding:var(--sp-4) var(--sp-2)}.kb-card{background:var(--surface-raised);border:1px solid var(--line);border-top:3px solid var(--line-strong);border-radius:var(--radius-sm);padding:var(--sp-3);cursor:pointer;transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.kb-card:hover{box-shadow:var(--shadow)}.kb-card.dragging{opacity:.45}.kb-card.overdue{border-left:2px solid var(--heat)}.kb-card.milestone{border-top-color:var(--accent);border-top-style:dashed}.kb-card-top{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:5px}.kb-diamond{width:7px;height:7px;background:var(--accent);transform:rotate(45deg);margin-left:auto;flex:none}.kb-card-title{font-size:var(--text-base);line-height:1.35;margin-bottom:var(--sp-2)}.kb-card-meta{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-2)}.kb-effort{font-size:var(--text-xs);color:var(--ink-soft)}.kb-cancelled{font-size:var(--text-xs);color:var(--ink-faint);text-decoration:line-through}.kb-card-foot{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xs);color:var(--ink-soft);border-top:1px solid var(--line-soft);padding-top:6px}.kb-card-foot .spacer{flex:1}.kb-owner{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.kb-sub{font-family:var(--font-mono);color:var(--ink-faint)}.kb-due.over{color:var(--heat);font-weight:700}@media (max-width: 900px){.kb-col{max-height:none}}.nb{display:flex;gap:var(--sp-3);align-items:flex-start}.nb-col{flex:1 1 0;min-width:260px;background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius)}.nb-col.n-open{background:var(--col-inprogress);border-color:var(--accent)}.nb-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);border-bottom:1px solid var(--line-soft)}.nb-title{font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;font-weight:700}.nb-count{margin-left:auto;font-size:var(--text-xs);color:var(--ink-faint)}.nb-cards{padding:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-2)}.nb-card{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-3);cursor:pointer}.nb-card:hover{box-shadow:var(--shadow)}.nb-card-top{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:5px}.nb-card-title{font-size:var(--text-base);line-height:1.35}.nb-card-text{margin-top:4px;font-size:var(--text-xs);color:var(--ink-soft);overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;line-clamp:4;white-space:pre-wrap}.nb-card-foot{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-2);font-size:var(--text-xs);color:var(--ink-soft)}.nb-card-foot .spacer{flex:1}.nb-result b{color:var(--accent);font-family:var(--font-mono)}@media (max-width: 900px){.nb{flex-direction:column}.nb-col{width:100%}}.dlg-state{display:flex;align-items:center;gap:var(--sp-2);margin-right:var(--sp-2);flex-wrap:wrap}.st-cols{display:flex;gap:var(--sp-2);align-items:flex-start}.st-col{flex:1 1 0;min-width:0;background:var(--surface-sunken);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:var(--sp-2)}.st-col.st-doing{background:var(--col-inprogress)}.st-col.st-done{opacity:.82}.st-head{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;font-weight:700;color:var(--ink-soft);margin-bottom:var(--sp-2)}.st-count{margin-left:auto;color:var(--ink-faint);font-weight:400}.st-card{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-2);margin-bottom:var(--sp-2)}.st-card-title{font-size:var(--text-sm);cursor:pointer;line-height:1.35}.st-people{font-size:var(--text-xs);color:var(--ink-soft);margin-top:3px}.st-detail{margin-top:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-2)}.st-actions{display:flex;align-items:center;gap:2px;margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--line-soft);flex-wrap:wrap}.st-actions .spacer{flex:1}.st-add{display:flex;gap:var(--sp-2);margin-top:var(--sp-3)}.st-add input:first-child{flex:2}.st-add input{flex:1}@media (max-width: 760px){.st-cols{flex-direction:column}.st-col{width:100%}.row{flex-direction:column}}.adm-tabs{margin-left:0;margin-bottom:var(--sp-4)}.adm-split{display:grid;grid-template-columns:260px minmax(0,1fr);gap:var(--sp-4);align-items:start}.adm-detail{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.adm-list{list-style:none;margin:0 0 var(--sp-3);padding:0}.adm-list-btn{display:block;width:100%;text-align:left;background:none;border:1px solid transparent;border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);cursor:pointer;margin-bottom:2px}.adm-list-btn:hover{background:var(--surface-hover)}.adm-list-btn.on{background:var(--accent-soft);border-color:var(--accent)}.adm-list-btn b{display:block;font-size:var(--text-sm)}.adm-list-btn span{font-size:var(--text-xs);color:var(--ink-soft)}.adm-actions{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3)}.adm-actions.wrap{flex-wrap:wrap}.adm-actions .spacer{flex:1}.adm-addrow{display:flex;gap:var(--sp-2);margin-top:var(--sp-3);align-items:center}.adm-addrow input,.adm-addrow select{width:auto;flex:1;min-width:0}.adm-swatches{display:flex;gap:3px}.adm-swatch{width:16px;height:16px;border-radius:3px;border:1px solid var(--line);cursor:pointer;padding:0}.adm-swatch.on{outline:2px solid var(--ink);outline-offset:1px}.adm-swatch:disabled{cursor:default}.adm-inactive{opacity:.55}.adm-projects{display:flex;flex-wrap:wrap;gap:3px}.adm-report{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--line-soft)}.cn-url{display:flex;align-items:center;gap:var(--sp-2)}.cn-url code{flex:1;font-family:var(--font-mono);font-size:var(--text-sm);background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 10px;overflow-x:auto;white-space:nowrap}.cn-secret{margin-top:var(--sp-3);border:1px solid var(--heat);background:var(--heat-soft);border-radius:var(--radius);padding:var(--sp-3)}.cn-secret code{display:block;font-family:var(--font-mono);font-size:var(--text-sm);word-break:break-all;margin:var(--sp-2) 0}.cn-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--sp-2);margin-top:var(--sp-3)}.cn-tool{border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3)}.cn-tool b{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--accent)}.cn-tool span{display:block;font-size:var(--text-xs);color:var(--ink-soft);margin-top:2px}.au-changes{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-soft);max-width:460px;white-space:pre-wrap;word-break:break-word}.au-channel{font-size:var(--text-xs);letter-spacing:var(--track-label);text-transform:uppercase;border:1px solid var(--line);border-radius:var(--radius-sm);padding:1px 6px}.au-channel.mcp{color:var(--accent);border-color:var(--accent)}.au-channel.slack{color:var(--good);border-color:var(--good)}@media (max-width: 900px){.adm-split{grid-template-columns:minmax(0,1fr)}}
