:root{--font-sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--font-disp:"Archivo","IBM Plex Sans",system-ui,sans-serif;--fs-micro:11px;--fs-sm:12px;--fs-md:13px;--fs-base:14px;--fs-lg:16px;--fs-h1:24px;--ctl-sm:28px;--ctl-md:32px;--ctl-lg:40px;--ctl-touch:44px;--space-gap:14px;--space-panel:18px;--space-card:20px;--space-gutter:30px;--radius-xs:4px;--radius-sm:6px;--radius-md:7px;--radius-lg:10px;--radius-xl:12px;--radius-2xl:14px;--radius-3xl:16px;--radius-pill:20px}:root,[data-theme=dark]{--bg:#16171a;--ground:#16171a;--surface:#1e2024;--glass-1:rgba(26,28,32,.5);--glass-2:rgba(20,22,26,.72);--glass-brd:rgba(255,255,255,.1);--surface2:rgba(255,255,255,.05);--surface3:rgba(255,255,255,.09);--rule:rgba(255,255,255,.13);--rule2:rgba(255,255,255,.07);--border:var(--rule);--ink:#e7e8ea;--fg:var(--ink);--ink2:#c3c5c9;--muted:#a8aab0;--faint:#6e7076;--accent:#c9ccd0;--accent-ink:#e9ebee;--accent-soft:rgba(255,255,255,.1);--accent-brd:rgba(255,255,255,.16);--steel:#a6a7ab;--steel-ink:#cdced1;--brand-red:#ff5a4d;--logo-red:#e4171f;--logo-red-deep:#c11217;--logo-red-hi:#ff1f2a;--logo-steel:#a4a4a4;--logo-steel-deep:#545454;--logo-wordmark:#c9cbce;--ok:#4fb07e;--ok-text:#68bb90;--ok-soft:rgba(79,176,126,.16);--warn:#e0a63a;--warn-text:var(--warn);--warn-soft:rgba(224,166,58,.16);--amber:var(--warn);--amber-soft:var(--warn-soft);--crit:#f0554a;--crit-text:#f69088;--crit-soft:rgba(240,85,74,.16);--error:var(--crit);--impact-1:#d6c04a;--impact-1-soft:rgba(214,192,74,.16);--impact-2:#e8863f;--impact-2-soft:rgba(232,134,63,.16);--curve-actual:#7fa8dd;--curve-actual-soft:rgba(127,168,221,.14);--curve-planned:#5c7396;--curve-cost:#4fb8ae;--curve-hours:#a98fd9;--btn-new:#d62f29;--btn-new-hover:#b92520;--btn-export:#f2b705;--btn-export-hover:#dfa700;--btn-export-ink:#1b1d20;--shadow:0 1px 1px rgba(0,0,0,.4),0 3px 8px -3px rgba(0,0,0,.45),0 26px 50px -22px rgba(0,0,0,.7);--glass-hi:inset 0 1px 0 rgba(255,255,255,.09);--shadow-hover:0 1px 1px #12141a0d,0 6px 14px -4px #12141a1f,0 30px 56px -22px #2228345c;--shadow-tip:0 6px 20px #00000059}[data-theme=light]{--bg:#eef0f1;--ground:#eef0f1;--surface:#ffffff;--glass-1:rgba(255,255,255,.56);--glass-2:rgba(255,255,255,.76);--glass-brd:rgba(255,255,255,.75);--surface2:rgba(20,22,28,.05);--surface3:rgba(20,22,28,.09);--rule:rgba(24,26,32,.14);--rule2:rgba(24,26,32,.08);--ink:#23242a;--ink2:#45474d;--muted:#5c5e64;--faint:#92949b;--accent:#2f3236;--accent-ink:#1b1d20;--accent-soft:rgba(47,50,54,.09);--accent-brd:rgba(35,36,42,.16);--steel:#8a8b8f;--steel-ink:#54555a;--brand-red:#e2001a;--logo-wordmark:#626262;--ok:#27784c;--ok-text:#1c6039;--ok-soft:rgba(47,143,91,.14);--warn:#876100;--warn-text:#6a4b00;--warn-soft:rgba(191,138,0,.16);--crit:#c72b2b;--crit-text:#9b2020;--crit-soft:rgba(210,47,47,.13);--impact-1:#8a7600;--impact-1-soft:rgba(138,118,0,.16);--impact-2:#a8500d;--impact-2-soft:rgba(168,80,13,.16);--curve-actual:#2f5fa3;--curve-actual-soft:rgba(47,95,163,.12);--curve-planned:#93a8c4;--curve-cost:#1f7a72;--curve-hours:#6b4fa0;--shadow:0 1px 1px rgba(18,20,26,.04),0 3px 8px -3px rgba(18,20,26,.08),0 22px 44px -20px rgba(34,40,52,.32);--glass-hi:inset 0 1px 0 rgba(255,255,255,.6)}:root,[data-theme=dark]{--glass-sheen:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,0) 42%);--glass-sheen-hover:linear-gradient(165deg,rgba(255,255,255,.1),rgba(255,255,255,.02) 46%,rgba(255,255,255,.04) 90%);--bg-gradient:radial-gradient(1000px 680px at 8% -14%,rgba(150,154,162,.12),transparent 58%),radial-gradient(880px 600px at 106% 114%,rgba(120,124,132,.14),transparent 55%),linear-gradient(152deg,#151619,#1b1c20 55%,#1c1d21);--ease:cubic-bezier(.2,.7,.2,1);--ease-out:cubic-bezier(.16,1,.3,1);color-scheme:dark}[data-theme=light]{--glass-sheen:linear-gradient(180deg,rgba(255,255,255,.5),rgba(255,255,255,0) 42%);--glass-sheen-hover:linear-gradient(165deg,rgba(255,255,255,.6),rgba(255,255,255,.05) 46%,rgba(255,255,255,.14) 90%);--bg-gradient:radial-gradient(1000px 680px at 8% -12%,rgba(120,124,132,.2),transparent 58%),radial-gradient(880px 600px at 104% 112%,rgba(90,94,102,.16),transparent 55%),linear-gradient(152deg,#f4f5f6,#e9eaec 55%,#eef0f1);color-scheme:light}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-base);line-height:1.5;-webkit-font-smoothing:antialiased;background:var(--bg-gradient) fixed var(--bg);background-repeat:no-repeat;min-height:100vh}h1,h2,h3,h4{font-family:var(--font-disp);margin:0;text-wrap:balance;letter-spacing:-.012em}h2{font-size:var(--fs-lg)}h3{font-size:var(--fs-base)}a{color:var(--ink2);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;-webkit-text-decoration-color:color-mix(in srgb,var(--ink2) 32%,transparent);text-decoration-color:color-mix(in srgb,var(--ink2) 32%,transparent)}a:hover{-webkit-text-decoration-color:var(--ink2);text-decoration-color:var(--ink2)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}code{font-family:var(--font-mono);font-size:max(var(--fs-sm),.92em);background:var(--surface3);color:var(--ink2);padding:1px 5px;border-radius:4px}.mono,.num{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.num{text-align:right;white-space:nowrap}.muted{color:var(--muted)}.crit,.error{color:var(--crit-text)}.ok{color:var(--ok)}.warn{color:var(--warn)}.small{font-size:var(--fs-sm)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.hint{cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-underline-offset:3px;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint)}.code{font:600 var(--fs-sm)/1 var(--font-mono);letter-spacing:.04em;color:var(--muted)}.code.lg{font-size:var(--fs-lg);color:var(--ink)}.grid{display:grid;grid-gap:14px;gap:14px}.shell{display:grid;grid-template-columns:236px 1fr;min-height:100vh}.main{min-width:0;display:flex;flex-direction:column}.wrap{padding:26px 30px 60px;max-width:1240px;width:100%;box-sizing:border-box}.panorama{display:flex;flex-direction:column;gap:16px}.row-actions{display:flex;gap:8px;align-items:center;margin-top:12px;flex-wrap:wrap}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}button[disabled]{opacity:.5;cursor:default}.btn-plain,button:not([class]){border:1px solid var(--rule);background:var(--glass-2);color:var(--ink);padding:6px 12px;border-radius:7px;box-shadow:var(--glass-hi);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-plain:hover,button:not([class]):hover{border-color:var(--accent);color:var(--accent)}.btn,button.primary{font-size:var(--fs-md);font-weight:600;padding:0 14px;min-height:var(--ctl-md);box-sizing:border-box;border-radius:7px;background:var(--accent);color:var(--surface);border:1px solid transparent;box-shadow:inset 0 1px #ffffff29,var(--shadow);width:auto;min-width:116px;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;transition:background .14s var(--ease),color .14s var(--ease),border-color .14s var(--ease),transform .14s var(--ease)}.btn:hover:not(:disabled),button.primary:hover:not(:disabled){background:var(--accent-ink)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled,button.primary:disabled{background:var(--surface3);color:var(--faint);box-shadow:none;cursor:default;opacity:1}.btn.ghost{background:var(--glass-2);color:var(--ink2);border:1px solid var(--rule);box-shadow:var(--glass-hi);font-weight:500}.btn.ghost:hover:not(:disabled){background:var(--surface2);color:var(--ink);border-color:var(--muted)}.btn.ghost.btn-danger-ghost:hover:not(:disabled){background:var(--crit-soft);color:var(--crit);border-color:var(--crit)}.btn.btn-sm{min-height:var(--ctl-sm);font-size:var(--fs-sm);padding-block:0}.btn.danger{background:var(--crit);border-color:transparent;color:#fff}.btn.danger:hover:not(:disabled){background:color-mix(in srgb,var(--crit),#000 14%);color:#fff}.btn.btn-new{background:var(--btn-new);border-color:transparent;color:#fff}.btn.btn-new:hover:not(:disabled){background:var(--btn-new-hover);border-color:transparent;color:#fff}.btn.btn-export{background:var(--btn-export);border-color:transparent;color:var(--btn-export-ink)}.btn.btn-export:hover:not(:disabled){background:var(--btn-export-hover);border-color:transparent;color:var(--btn-export-ink)}.btn.btn-export:disabled,.btn.btn-new:disabled{background:var(--surface3);color:var(--faint)}.linklike{background:none;border:0;color:var(--ink2);font:inherit;width:auto;box-shadow:none;text-decoration:underline;text-underline-offset:2px}.icon-btn,.linklike{padding:0;cursor:pointer}.icon-btn{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--ctl-sm);height:var(--ctl-sm);flex:none;border-radius:7px;border:1px solid var(--rule);background:var(--glass-2);color:var(--ink);box-shadow:var(--glass-hi);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .14s var(--ease),color .14s var(--ease),border-color .14s var(--ease)}.icon-btn:hover{background:var(--surface2);color:var(--accent);border-color:var(--accent)}.icon-btn svg{width:14px;height:14px;flex:none}.icon-btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.icon-btn[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent-brd)}.bell,.bell>button{position:relative}.bell-count{position:absolute;top:-4px;right:-6px;background:var(--ink);color:var(--surface);font:700 var(--fs-micro)/1 var(--font-sans);padding:2px 4px;border-radius:999px}.status-control{display:inline-flex;align-items:center;gap:6px}.status-icons{display:inline-flex;gap:3px}.status-icon{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--ctl-sm);height:var(--ctl-sm);padding:0;flex:none;border-radius:6px;border:1px solid var(--rule);background:var(--glass-2);color:var(--ink2);cursor:pointer;transition:background .14s var(--ease),color .14s var(--ease),border-color .14s var(--ease)}.status-icon:hover:not(:disabled){background:var(--surface2);color:var(--ink);border-color:var(--muted)}.status-icon svg{width:11px;height:11px;flex:none}.status-icon:disabled{cursor:not-allowed;pointer-events:none;opacity:1}.status-icon.current{border-color:transparent}.status-icon.current.p-ok{background:var(--ok-soft);color:var(--ok)}.status-icon.current.p-warn{background:var(--warn-soft);color:var(--warn)}.status-icon.current.p-neutral{background:var(--surface3);color:var(--muted)}label{display:block;margin:8px 0;font-size:var(--fs-sm);color:var(--muted)}label input,label select{margin-top:3px}input,select,textarea{font:inherit;padding:6px 9px;border:1px solid var(--rule);border-radius:6px;background:color-mix(in srgb,var(--surface) 78%,transparent);color:var(--ink);width:100%}input,select{box-sizing:border-box;height:var(--ctl-md);padding-block:0}input[type=checkbox],input[type=color],input[type=file],input[type=radio],input[type=range]{height:auto;width:auto}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input::placeholder,textarea::placeholder{color:var(--faint)}.input-currency{position:relative;display:block}.input-currency-symbol{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:var(--fs-md);pointer-events:none}.input-currency input{padding-left:30px;width:100%}.password-field{position:relative;display:block}.password-field input{padding-right:34px}.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:22px;height:22px;display:grid;place-items:center;color:var(--muted)}.password-toggle:hover{color:var(--ink)}.card,.list,.panel,.rail,.topbar{background:var(--glass-1);-webkit-backdrop-filter:blur(16px) saturate(150%);backdrop-filter:blur(16px) saturate(150%);border:1px solid var(--glass-brd);box-shadow:var(--glass-hi),var(--shadow)}@supports not (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))){.card,.list,.panel,.rail,.topbar{background:var(--surface)}}.card,.kpi,.msg,.panel,.rail,.topbar{position:relative;isolation:isolate}.card:before,.kpi:before,.panel:before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--glass-sheen);opacity:.7;pointer-events:none;z-index:-1;transition:opacity .3s var(--ease),background .3s var(--ease)}.card,.kpi,.panel{transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s var(--ease)}.kpi:hover,.panel:hover{box-shadow:var(--glass-hi),var(--shadow-hover)}.card.proj:hover:before,.kpi:hover:before,.panel:hover:before{opacity:1;background:var(--glass-sheen-hover)}.card{border-radius:12px;padding:20px}.card>header{margin:-20px -20px 16px;padding:13px 16px;border-bottom:1px solid var(--rule2);display:flex;align-items:center;gap:10px}.card>header h2{font-size:var(--fs-base);font-weight:600}.card>header .sub{font-size:var(--fs-sm);color:var(--muted);font-family:var(--font-mono);margin-left:auto}.card.proj{display:block;padding:16px;color:inherit;text-decoration:none;transition:transform .18s var(--ease),border-color .18s var(--ease),box-shadow .18s var(--ease)}.card.proj:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-3px)}.card.proj.flag{border-left:3px solid var(--warn)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:14px;gap:14px;margin-top:12px}.proj-head{display:flex;justify-content:space-between;align-items:center}.proj-name{font-weight:600;margin:4px 0 10px}.proj-meta{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px 14px;gap:8px 14px;margin:12px 0 0}.proj-meta dt{font-size:var(--fs-micro);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-family:var(--font-mono)}.proj-meta dd{margin:2px 0 0;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.proj-foot{display:flex;justify-content:flex-end;margin-top:8px;padding-top:8px;border-top:1px solid var(--rule2)}.proj-new-plus{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--rule);font-size:20px;line-height:1}.card.proj-new{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:150px;padding:16px;border:1px dashed var(--rule);background:transparent;box-shadow:none;text-align:center;text-decoration:none;color:var(--ink2)}.card.proj-new:before{display:none}.card.proj-new:hover{border-color:var(--accent);color:var(--ink)}.panel{border-radius:12px;padding:18px}.panel h2{margin:0 0 12px;font-size:var(--fs-base);font-weight:600}.panel h3{margin:14px 0 8px;font-size:var(--fs-sm);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.issue-mini{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.issue-mini li{display:grid;grid-template-columns:10px 1fr auto;grid-gap:8px;gap:8px;align-items:baseline}.mini-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpis{grid-template-columns:repeat(auto-fit,minmax(178px,1fr))}.kpi{border-radius:12px;padding:15px 16px;display:flex;flex-direction:column;gap:5px;background:var(--glass-1);-webkit-backdrop-filter:blur(16px) saturate(150%);backdrop-filter:blur(16px) saturate(150%);border:1px solid var(--glass-brd);box-shadow:var(--glass-hi),var(--shadow)}.kpi .lab{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.kpi .val{font-family:var(--font-disp);font-size:29px;font-weight:700;letter-spacing:-.03em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1}.kpi .val small{font-size:var(--fs-lg);font-weight:600;color:var(--muted);margin-left:1px}.kpi .note{font-size:var(--fs-sm);color:var(--muted)}.kpi-lines{margin:0;display:flex;flex-direction:column;gap:3px;font-size:var(--fs-md)}.kpi-lines>div{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.kpi-lines dt{color:var(--muted)}.kpi-lines dd{margin:0;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi-lines .status dd{font-family:var(--font-disp);font-size:22px;font-weight:700;letter-spacing:-.02em}.kpi.flag-ok .kpi-lines .status dd{color:var(--ok)}.kpi.flag-amber .kpi-lines .status dd{color:var(--warn)}.kpi.flag-crit .kpi-lines .status dd{color:var(--crit-text)}.kpi .note.kpi-sub{font-weight:600}.kpi .note.kpi-sub.ok{color:var(--ok)}.kpi .note.kpi-sub.crit{color:var(--crit-text)}.kpi.flag-crit{border-left:3px solid var(--crit)}.kpi.flag-ok{border-left:3px solid var(--ok)}.kpi.flag-amber{border-left:3px solid var(--warn)}.head{margin-bottom:20px}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.17em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}.head h1{font-size:var(--fs-h1);font-weight:700}.head p{margin:6px 0 0;color:var(--muted);max-width:64ch}.head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.head-action{display:flex;gap:8px;align-items:center;flex:none}.head-compact{margin-bottom:4px}.head-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;min-width:0}.head-line .eyebrow{margin:0;flex:none}.head-line h1{margin:0;min-width:0;overflow-wrap:anywhere}@media (max-width:640px){.head-line h1{font-size:18px}}.head-compact p{margin:3px 0 0;max-width:none}.days-left{margin-left:8px;font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.02em;color:var(--ink2)}.freshness-note{margin-left:10px;font-size:var(--fs-sm)}.freshness-note,.pill{color:var(--muted);white-space:nowrap}.pill{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-micro);font-weight:600;padding:2.5px 8px;border-radius:20px;font-family:var(--font-mono);letter-spacing:.02em;border:1px solid transparent;background:var(--surface3)}.p-ok{background:var(--ok-soft);color:var(--ok-text)}.p-warn{background:var(--warn-soft);color:var(--warn-text)}.p-crit{background:var(--crit-soft);color:var(--crit-text)}.p-neutral{background:var(--surface3);color:color-mix(in srgb,var(--muted),var(--ink) 35%)}.p-axis{background:var(--accent-soft);color:var(--accent-ink)}.crit-dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:var(--faint)}.crit-dot.c1{background:var(--impact-1)}.crit-dot.c2{background:var(--impact-2)}.crit-dot.c3{background:var(--crit)}.chips,.filterbar{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.filterbar{margin-bottom:12px}.chip{font-size:var(--fs-sm);padding:0 11px;min-height:var(--ctl-sm);box-sizing:border-box;border-radius:20px;border:1px solid var(--rule);color:var(--muted);background:var(--glass-2);box-shadow:var(--glass-hi);font-weight:500;width:auto;min-width:92px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;transition:background .14s var(--ease),color .14s var(--ease),border-color .14s var(--ease),transform .14s var(--ease)}.chip:active{transform:scale(.97)}.chip.on,.chip[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink);box-shadow:none}.chip.crit{background:var(--crit-soft);color:var(--crit-text);border-color:transparent;box-shadow:none;padding:2px 7px;min-height:0;min-width:0}.filterbar .spacer{flex:1 1}.fb-sep{flex:none;width:1px;align-self:stretch;background:var(--rule);margin:0 4px}.chip-clear{font-size:var(--fs-sm);padding:5px 9px;color:var(--muted);text-decoration:underline;background:none;border:0;cursor:pointer}.chip-clear:hover{color:var(--ink2)}.subtabs{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:thin;margin:11px -5px 15px;padding:5px}.subtabs a{flex:none;padding:6px 13px;border-radius:20px;border:1px solid var(--rule);color:var(--muted);background:var(--glass-2);box-shadow:var(--glass-hi);font-size:var(--fs-md);font-weight:500;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;transition:background .14s var(--ease),color .14s var(--ease),border-color .14s var(--ease)}.subtabs a:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}.subtabs a.active,.subtabs a[aria-current=page]{background:var(--accent-soft);border-color:transparent;color:var(--accent-ink);font-weight:600;box-shadow:inset 0 0 0 1px var(--accent-brd)}.seg-tabs{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:10px;border:1px solid var(--rule);background:var(--glass-2)}.seg-tab{flex:none;min-width:108px;min-height:var(--ctl-md);padding:0 14px;border-radius:7px;font-size:var(--fs-md);font-weight:600;color:var(--ink2);text-align:center;white-space:nowrap;transition:background .14s var(--ease),color .14s var(--ease)}.seg-tab:hover{background:var(--surface2);color:var(--ink)}.seg-tab.active{background:var(--ink);color:var(--surface)}.bar{height:16px;background:var(--surface3);overflow:hidden;position:relative}.bar,.bar i{border-radius:4px}.bar i{display:block;height:100%;background:var(--accent);position:absolute;inset:0 auto 0 0;transition:width 2s var(--ease-out)}.bar i.ok{background:var(--ok)}.bar i.warn{background:var(--warn)}.bar .bar-mark,.bar i.crit{background:var(--crit)}.bar .bar-mark{position:absolute;top:-1px;bottom:-1px;width:3px;margin-left:-1px;box-shadow:0 0 0 1px color-mix(in srgb,var(--surface) 70%,transparent);z-index:2}.bar .bar-num{position:absolute;right:4px;top:50%;transform:translateY(-50%);font:600 var(--fs-micro)/1 var(--font-mono);color:var(--ink2);background:color-mix(in srgb,var(--surface) 82%,transparent);padding:1px 3px;border-radius:3px;z-index:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.progress-cell{display:flex;align-items:center;gap:8px}.progress-cell .bar{flex:1 1;min-width:60px}table{width:100%;border-collapse:collapse;font-size:var(--fs-md);background:transparent}th{text-align:left;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);font-weight:500;border-bottom:1px solid var(--rule);white-space:nowrap;background:var(--glass-2)}td,th{padding:9px 12px}td{border-bottom:1px solid var(--rule2);vertical-align:top}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface2)}table.tight td,table.tight th{padding:6px 8px}.tscroll{overflow-x:auto;position:relative}.warn-row td,tr.row-hold td{background:var(--warn-soft)}.crit-row td{background:var(--crit-soft)}.row-archived td{opacity:.58}.th-sort{all:unset;display:inline-flex;align-items:center;gap:4px;cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}.th-sort:focus-visible,.th-sort:hover{color:var(--ink)}.th-sort-mark{display:inline-block;min-width:.8em;font-size:var(--fs-micro);color:var(--ink2)}.rail{gap:2px;padding:18px 12px 22px;border-radius:0;border-width:0 1px 0 0;-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);background:var(--glass-2)}.brand,.rail{display:flex;flex-direction:column}.brand{align-items:center;gap:6px;padding:4px 8px 18px;text-align:center}.brand .brand-full{width:152px;height:auto}.axis-logo{display:block}.axis-logo.axis-logo-on-light{display:none}[data-theme=light] .axis-logo.axis-logo-on-light{display:block}[data-theme=light] .axis-logo.axis-logo-on-dark{display:none}.navbtn{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:8px 10px;border-radius:7px;color:var(--ink2);font-weight:500;font-size:var(--fs-md);text-decoration:none;transition:background .14s var(--ease),color .14s var(--ease),border-color .14s var(--ease),transform .14s var(--ease)}.navbtn:hover{background:var(--surface2);color:var(--ink);text-decoration:none;transform:translate(1px)}.navbtn.active,.navbtn[aria-current=page],.navbtn[aria-current=true]{background:var(--accent-soft);color:var(--accent-ink);font-weight:600;box-shadow:inset 0 0 0 1px var(--accent-brd)}.rail-body{display:flex;flex-direction:column;flex:1 1;min-height:0;gap:2px}.railgroup{font-family:var(--font-mono);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.14em;color:var(--muted);padding:16px 10px 7px}.railfoot{margin-top:auto;padding:14px 4px 0;border-top:1px solid var(--rule2)}.rail-persona{position:relative}.rail-persona-btn{display:flex;align-items:center;gap:9px;width:100%;border:0;background:none;box-shadow:none;border-radius:8px;padding:6px;cursor:pointer;text-align:left}.rail-persona-btn:hover{background:var(--surface2)}.rail-persona-info{display:flex;flex-direction:column;min-width:0;flex:1 1}.rail-persona-name{font-size:var(--fs-md);font-weight:600;color:var(--ink)}.rail-persona-name,.rail-persona-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-persona-sub{font-size:var(--fs-sm);color:var(--muted)}.persona-caret{font-size:var(--fs-micro);color:var(--muted)}.navbtn .dot{width:6px;height:6px;border-radius:50%;flex:none;background:var(--faint)}.navbtn .n{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--muted);margin-left:auto;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.navbtn.active .n,.navbtn[aria-current] .n{color:var(--accent-ink)}.topbar{z-index:20;border-radius:0;border-width:0 0 1px;padding:11px 30px;display:flex;align-items:center;gap:12px;-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);background:var(--glass-2)}.topbar .spacer{flex:1 1}.topbar .live{width:6px;height:6px;border-radius:50%;background:var(--ok)}.av{width:25px;height:25px;border-radius:6px;flex:none;display:grid;place-items:center;font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:600;color:#16171a;background:linear-gradient(180deg,var(--steel),var(--steel-ink))}[data-theme=light] .av{color:#fff;background:linear-gradient(180deg,#63656b,#45474c)}.modal-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:24px;background:color-mix(in srgb,var(--ground) 55%,rgba(0,0,0,.4));-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{width:100%;max-width:420px;box-sizing:border-box;background:var(--glass-2);-webkit-backdrop-filter:blur(20px) saturate(150%);backdrop-filter:blur(20px) saturate(150%);border:1px solid var(--glass-brd);border-radius:14px;box-shadow:var(--glass-hi),var(--shadow);padding:20px;animation:modal-in .2s var(--ease-out) both}.modal h2{font-size:var(--fs-lg);font-weight:600;margin:0 0 6px}.modal .modal-fields{display:flex;flex-direction:column;gap:10px 14px;margin-top:12px}.modal .modal-fields label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-sm);color:var(--muted);margin:0}.modal .modal-actions{justify-content:flex-end;margin-top:16px}.cmdk{width:min(520px,92vw);max-height:60vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--rule);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.cmdk-input{flex:none;padding:14px 16px;height:auto;border:none;border-bottom:1px solid var(--rule2);border-radius:0;background:transparent;color:var(--ink);font-size:var(--fs-base)}.cmdk-input:focus,.cmdk-input:focus-visible{outline:none}.cmdk-list{flex:1 1;overflow-y:auto;list-style:none;margin:0;padding:6px}.cmdk-item{display:flex;align-items:baseline;gap:10px;width:100%;text-align:left;padding:9px 10px;border-radius:8px;font-size:var(--fs-md);color:var(--ink)}.cmdk-item.active,.cmdk-item:hover{background:var(--accent-soft)}.cmdk-hint{flex:none;padding:8px 12px;border-top:1px solid var(--rule2);font-size:var(--fs-sm);color:var(--muted)}.tip-layer{max-width:min(320px,calc(100vw - 16px));padding:6px 10px;border-radius:6px;background:var(--ink);color:var(--surface);font:500 var(--fs-sm)/1.4 var(--font-sans);white-space:pre-line;box-shadow:var(--shadow-tip)}.menu{background:var(--glass-2);-webkit-backdrop-filter:blur(16px) saturate(150%);backdrop-filter:blur(16px) saturate(150%);border:1px solid var(--glass-brd);border-radius:10px;box-shadow:var(--glass-hi),var(--shadow);padding:5px}.menu a,.menu button{display:block;width:100%;text-align:left;background:none;border:0;box-shadow:none;padding:8px 10px;border-radius:7px;font-size:var(--fs-md);color:var(--ink2);text-decoration:none;cursor:pointer}.menu a:hover,.menu button:hover{background:var(--surface2);color:var(--ink)}.menu button.danger{color:var(--crit-text)}.thread{display:flex;flex-direction:column;gap:10px}.msg{border:1px solid var(--rule);border-radius:12px;padding:10px 12px;max-width:80%;background:var(--glass-1);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--glass-hi)}.msg.axis{align-self:flex-start}.msg.client{align-self:flex-end;background:var(--accent-soft);border-color:transparent}.msg-head{display:flex;gap:8px;align-items:baseline;margin-bottom:4px}.msg p{margin:0;white-space:pre-wrap}.skel-cell{display:block;height:12px;border-radius:5px;background:linear-gradient(90deg,var(--surface3),color-mix(in srgb,var(--surface3) 40%,transparent),var(--surface3));animation:skel-pulse 1.4s ease-in-out infinite}.skel-table{border:1px solid var(--rule);border-radius:12px;overflow:hidden;background:var(--glass-1);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.skel-row{display:flex;gap:16px;padding:12px 14px;border-bottom:1px solid var(--rule2)}.skel-row:last-child{border-bottom:none}.skel-row .skel-cell{flex:1 1}.spinner{display:inline-flex;gap:4px;align-items:center;vertical-align:middle}.spinner-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);animation:skel-pulse 1s ease-in-out infinite}.spinner-dot:nth-child(2){animation-delay:.15s}.spinner-dot:nth-child(3){animation-delay:.3s}.login-bg{--grid-line:rgba(255,255,255,.028);--grid-line-strong:rgba(255,255,255,.05);--login-vignette:rgba(0,0,0,.5);background-image:radial-gradient(52% 48% at 50% 42%,transparent 0,transparent 42%,var(--login-vignette) 100%),linear-gradient(to right,var(--grid-line) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-line) 1px,transparent 1px),linear-gradient(to right,var(--grid-line-strong) 1px,transparent 1px),linear-gradient(to bottom,var(--grid-line-strong) 1px,transparent 1px);background-size:100% 100%,22px 22px,22px 22px,110px 110px,110px 110px}[data-theme=light] .login-bg{--grid-line:rgba(24,26,32,.035);--grid-line-strong:rgba(24,26,32,.06);--login-vignette:rgba(18,20,26,.14)}.login-card{position:relative;z-index:1;min-width:320px;max-width:380px;box-sizing:border-box;padding:32px 28px 28px;border-radius:16px;text-align:center;animation:login-rise .5s cubic-bezier(.2,.7,.2,1) both;box-shadow:var(--glass-hi),var(--shadow),0 50px 90px -28px #0000008c}.login-card label{text-align:left}.login-logo{display:block;margin:0 auto 16px;width:186px;height:auto;opacity:.95;filter:saturate(1.2) drop-shadow(0 16px 30px rgba(0,0,0,.4))}.login-submit{width:100%;margin-top:6px;padding:9px 14px}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@keyframes login-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes skel-pulse{0%,to{opacity:.55}50%{opacity:.9}}@media (prefers-reduced-motion:reduce){.login-card,.modal{animation:none}.skel-cell,.spinner-dot{animation:none;opacity:.7}.bar i{transition:none}}@media (pointer:coarse){.btn,.chip,.seg-tab,button.primary{min-height:var(--ctl-touch)}.icon-btn{width:var(--ctl-touch);height:var(--ctl-touch)}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]),select,textarea{font-size:var(--fs-lg);height:var(--ctl-touch)}}.rail{position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.brand-hub{display:block;padding:4px 8px 16px;text-decoration:none}.brand-hub .brand-logo{width:176px;margin:0 auto}.brand-mark-only{display:none;width:34px;height:auto}.topbar{position:-webkit-sticky;position:sticky;top:0}.topbar .crumb{font:400 var(--fs-micro)/1 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.signout{font-size:var(--fs-sm)}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.stack{flex-direction:column;gap:14px}.row,.stack{display:flex}.row{gap:8px;align-items:center;flex-wrap:wrap}.spacer{flex:1 1}.filterbar+.panel,.kpis+.grid,.kpis+.panel{margin-top:14px}.head-action form{margin:0}a.btn,a.card,a.chip{text-decoration:none}.panel-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.panel-head h2{margin:0}.panel-head a{margin-left:auto;font-size:var(--fs-sm)}.panel.flush{padding:0;overflow:hidden}.panel.flush:hover{box-shadow:var(--glass-hi),var(--shadow)}td .sub{display:block;font-size:var(--fs-sm);color:var(--muted)}td.title-cell a{color:var(--ink);font-weight:600;text-decoration:none}td.title-cell a:hover{text-decoration:underline}td{vertical-align:middle}.empty{padding:28px 16px;text-align:center;color:var(--muted);font-size:var(--fs-md)}.timeline{list-style:none;margin:0;padding:0}.timeline li{padding:10px 0;border-bottom:1px solid var(--rule2)}.timeline li:first-child{padding-top:0}.timeline li:last-child{border-bottom:0;padding-bottom:0}.timeline .meta{font-size:var(--fs-sm);color:var(--muted)}.timeline a{color:var(--ink);text-decoration:none;font-weight:600}.dl{display:grid;grid-template-columns:150px 1fr;grid-gap:7px 14px;gap:7px 14px;margin:0;font-size:var(--fs-md)}.dl dt{font:400 var(--fs-micro)/1.9 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.dl dd{margin:0;overflow-wrap:anywhere}.milestones{list-style:none;margin:0;padding:0}.milestones li{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--rule2);font-size:var(--fs-md)}.milestones li:last-child{border-bottom:0}.milestones form{margin:0;display:flex}.milestones .done{text-decoration:line-through;color:var(--muted)}.check-btn{width:18px;height:18px;border-radius:var(--radius-sm);border:1.5px solid var(--muted);display:grid;place-items:center;padding:0;color:var(--surface);font-size:11px;line-height:1}.check-btn.on{background:var(--ok);border-color:var(--ok)}.phase-track{display:flex;gap:4px}.phase-track span{flex:1 1;text-align:center;padding:6px 2px;border-radius:var(--radius-md);background:var(--surface3);color:var(--muted);font:500 var(--fs-micro)/1.3 var(--font-mono);letter-spacing:.09em;text-transform:uppercase}.phase-track span.past{background:var(--accent-soft);color:var(--ink2)}.phase-track span.now{background:var(--accent);color:var(--surface);font-weight:600}.funnel{display:flex;flex-direction:column;gap:9px}.funnel>div{display:grid;grid-template-columns:96px 1fr 28px;grid-gap:10px;gap:10px;align-items:center;font-size:var(--fs-md)}.funnel .bar{height:10px}.funnel .num{font-weight:600}.scurve-legend{display:flex;gap:16px;font-size:var(--fs-sm);color:var(--muted);margin-bottom:6px}.scurve-legend span{display:inline-flex;align-items:center;gap:6px}.scurve-legend .sw{width:18px;height:0;border-top:2px solid var(--curve-actual)}.scurve-legend .sw.planned{border-top:2px dashed var(--curve-planned)}.scurve-plot{position:relative}.scurve svg{display:block;width:100%;height:auto;touch-action:none}.scurve .grid{stroke:var(--rule2);stroke-width:1}.scurve .tick{fill:var(--muted);font:400 var(--fs-micro) var(--font-mono)}.scurve .label{fill:var(--ink2);font:600 var(--fs-micro) var(--font-mono)}.scurve .today{stroke:var(--faint);stroke-width:1;stroke-dasharray:2 3}.scurve .cross{stroke:var(--muted);stroke-width:1}.scurve .area{fill:var(--curve-actual-soft)}.scurve .actual{fill:none;stroke:var(--curve-actual);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.scurve .planned{fill:none;stroke:var(--curve-planned);stroke-width:2;stroke-dasharray:6 4;stroke-linecap:round}.scurve .dot{fill:var(--curve-actual);stroke:var(--surface);stroke-width:2}.scurve .planned-dot{fill:var(--curve-planned)}.scurve-tip{position:absolute;top:8px;transform:translateX(-50%);pointer-events:none;z-index:5}.scurve-table{margin-top:8px;font-size:var(--fs-sm);color:var(--muted)}.scurve-table summary{cursor:pointer}.scurve-table .tscroll{max-height:220px;overflow-y:auto;margin-top:6px}.health-reasons{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.front,.health-reasons{margin-bottom:14px}.front-head{display:grid;grid-template-columns:1fr auto;grid-gap:10px;gap:10px;align-items:center;margin-bottom:10px}.front-head h2{margin:0}.front-meta{font:400 var(--fs-sm) var(--font-mono);color:var(--muted)}.front-edit{margin-top:10px}.front-edit summary,.row-edit summary{cursor:pointer;font-size:var(--fs-sm);color:var(--ink2)}.entry-form{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:nowrap;margin:0}.entry-form input[type=number]{width:70px;height:var(--ctl-sm)}.entry-form input[name=note]{width:160px;height:var(--ctl-sm)}.entry-form label{margin:0;display:inline-flex;gap:4px;align-items:center;white-space:nowrap}.front-bars{display:flex;flex-direction:column;gap:10px}.front-bars>div{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;grid-gap:12px;gap:12px;align-items:center;font-size:var(--fs-md)}.front-bars small{display:block;color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-micro)}.na{color:var(--faint)}.guide section+section{margin-top:14px;padding-top:12px;border-top:1px solid var(--rule2)}.guide h3{margin:0 0 6px!important}.guide p{margin:0;line-height:1.55}.callout,.guide p{white-space:pre-wrap;font-size:var(--fs-md)}.callout{padding:12px 14px;border-radius:var(--radius-lg);background:var(--warn-soft);color:var(--warn-text);margin-bottom:14px}.soft-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:14px;gap:14px;margin-bottom:18px}.soft-card{display:flex;flex-direction:column;gap:6px;padding:16px}.soft-card strong{font-family:var(--font-disp);font-size:var(--fs-base);color:var(--ink)}.soft-card .meta{font-size:var(--fs-sm);color:var(--muted)}.soft-card .row{margin-top:auto}.cat-title{font:400 var(--fs-micro)/1.5 var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px}.codeblock{margin:8px 0 12px;padding:12px 14px;border-radius:var(--radius-lg);background:var(--surface3);color:var(--ink);font:400 var(--fs-sm)/1.5 var(--font-mono);white-space:pre-wrap;word-break:break-all}.manager-banner{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:14px 16px;margin-bottom:18px;border-radius:var(--radius-xl);background:var(--glass-1);border:1px solid var(--glass-brd);border-left:3px solid var(--btn-new);box-shadow:var(--glass-hi),var(--shadow)}.manager-banner-text{display:flex;flex-direction:column;gap:3px;max-width:760px}.manager-banner-text strong{font-family:var(--font-disp);font-size:var(--fs-base)}.manager-banner-text span{font-size:var(--fs-md);color:var(--ink2)}.manager-banner-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}form.form{display:grid;grid-gap:4px;gap:4px}.form-grid{display:grid;grid-gap:4px 16px;gap:4px 16px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid .full{grid-column:1/-1}label textarea{margin-top:3px;min-height:84px;resize:vertical}label small{display:block;margin-top:3px;color:var(--muted)}.form-section{margin:14px 0 2px;font:400 var(--fs-micro)/1.5 var(--font-mono);letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.currency-row{display:flex;gap:6px;margin-top:3px}.currency-row select{width:84px;flex:none;margin:0}.currency-row input{margin:0}.filterbar input,.filterbar select{width:auto;min-width:170px}.filterbar input[name=q]{min-width:260px}.inline-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}.inline-form input{flex:1 1;min-width:160px}.inline-form input[type=date]{flex:none;width:150px}.alert{padding:10px 14px;border-radius:var(--radius-lg);margin-bottom:16px;font-size:var(--fs-md);font-weight:500}.alert.error{background:var(--crit-soft);color:var(--crit-text)}.alert.note{background:var(--accent-soft);color:var(--ink2);box-shadow:inset 0 0 0 1px var(--accent-brd)}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.brand-logo{margin:0 auto 18px;width:250px}.brand-logo img{width:100%;height:auto}.login-card .alert,.login-card form{text-align:left}@media (max-width:980px){.shell{grid-template-columns:1fr}.rail{position:static;height:auto;align-items:center;padding:10px 12px;border-width:0 0 1px}.rail,.rail-body{flex-direction:row;flex-wrap:wrap}.brand-hub{padding:0 8px 0 0}.brand-hub .brand-logo{display:none}.brand-mark-only{display:block}.railfoot,.railgroup{display:none}.navbtn{width:auto}.wrap{padding:18px 16px 40px}.topbar{padding:10px 16px}.form-grid,.grid-2{grid-template-columns:1fr}}