:root{--colour-deep-black:#0B0F14;--colour-charcoal:#2A3138;--colour-off-white:#F5F4F1;--colour-slate-blue:#8CA6BC;--colour-cyan:#00C7FF;--colour-orange:#FF6A00;--colour-background:var(--colour-deep-black);--colour-surface:var(--colour-charcoal);--colour-text:var(--colour-off-white);--colour-text-secondary:var(--colour-slate-blue);--colour-text-muted:rgba(245,244,241,0.72);--colour-text-subtle:rgba(245,244,241,0.52);--colour-accent-primary:var(--colour-cyan);--colour-accent-secondary:var(--colour-orange);--colour-link:var(--colour-cyan);--colour-link-hover:var(--colour-orange);--colour-focus-ring:var(--colour-cyan);--colour-selection-bg:rgba(0,199,255,0.28);--colour-selection-text:var(--colour-off-white);--colour-border:rgba(245,244,241,0.12);--colour-border-strong:rgba(245,244,241,0.24);--colour-divider:rgba(245,244,241,0.08);--colour-overlay-04:rgba(245,244,241,0.04);--colour-overlay-08:rgba(245,244,241,0.08);--colour-overlay-12:rgba(245,244,241,0.12);--colour-overlay-24:rgba(245,244,241,0.24);--colour-scrim:rgba(11,15,20,0.72);--colour-cyan-12:rgba(0,199,255,0.12);--colour-cyan-24:rgba(0,199,255,0.24);--colour-orange-12:rgba(255,106,0,0.12);--colour-orange-24:rgba(255,106,0,0.24);--surface-canvas:#0B0F14;--surface-panel:#11161C;--surface-card:#161C23;--surface-card-hover:#1B222A;--surface-raised:#2A3138;--surface-sunken:#080C10;--status-ok:#3FBF8F;--status-ok-12:rgba(63,191,143,0.14);--status-warn:var(--colour-orange);--status-warn-12:var(--colour-orange-12);--status-info:var(--colour-cyan);--status-info-12:var(--colour-cyan-12);--status-muted:var(--colour-slate-blue);--font-heading:"Space Grotesk","Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-mono:"JetBrains Mono","SF Mono","Menlo","Consolas","Liberation Mono",monospace;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--text-h1:3.052rem;--text-h2:2.441rem;--text-h3:1.953rem;--text-h4:1.563rem;--text-h5:1.25rem;--text-h6:1.0rem;--text-lead:1.25rem;--text-body:1.0rem;--text-small:0.875rem;--text-caption:0.75rem;--text-code:0.9375rem;--text-tagline:1.25rem;--line-tight:1.15;--line-snug:1.25;--line-normal:1.4;--line-relaxed:1.55;--line-loose:1.6;--tracking-tight:-0.02em;--tracking-snug:-0.01em;--tracking-normal:0;--tracking-wide:0.02em;--tracking-wider:0.04em;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--radius-sm:0.25rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--radius-pill:9999px;--border-width-1:1px;--border-width-2:2px;--shadow-sm:0 1px 2px rgba(0,0,0,0.4);--shadow-md:0 8px 24px -8px rgba(0,0,0,0.55);--shadow-lg:0 24px 64px -16px rgba(0,0,0,0.65);--shadow-glow-cyan:0 0 0 1px var(--colour-cyan-24),0 12px 40px -12px rgba(0,199,255,0.25);--sidebar-w:268px;--topbar-h:64px;--motion-fast:120ms;--motion-base:200ms;--ease:cubic-bezier(0.4,0,0.2,1)}*{box-sizing:border-box}html{font-size:16px}body{background-color:var(--surface-canvas);color:var(--colour-text);font-family:var(--font-body);font-size:var(--text-body);font-weight:var(--fw-regular);line-height:var(--line-loose);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}::-moz-selection{background:var(--colour-selection-bg);color:var(--colour-selection-text)}::selection{background:var(--colour-selection-bg);color:var(--colour-selection-text)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);margin:0;color:var(--colour-text)}a{color:var(--colour-link);text-decoration:none;transition:color var(--motion-fast) var(--ease)}a:hover{color:var(--colour-link-hover)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--colour-overlay-12);border-radius:var(--radius-pill);border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--colour-overlay-24);background-clip:content-box}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#0C1116,#0B0F14);border-right:var(--border-width-1) solid var(--colour-divider);display:flex;flex-direction:column;padding:var(--space-5) 0;z-index:20}.brand{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-5) var(--space-5);margin-bottom:var(--space-2);border-bottom:var(--border-width-1) solid var(--colour-divider)}.brand .brand-lockup{height:42px;width:auto;display:block}.brand .brand-mark{height:34px;width:auto;display:none}.nav{flex:1;padding:var(--space-4) var(--space-3);overflow-y:auto}.nav-label{font-size:.62rem;text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--colour-text-subtle);padding:var(--space-3) var(--space-3) var(--space-2);font-family:var(--font-mono)}.nav-item,.nav-label{font-weight:var(--fw-medium)}.nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3);border-radius:var(--radius-md);color:var(--colour-text-muted);font-size:var(--text-small);cursor:pointer;position:relative;transition:background var(--motion-fast) var(--ease),color var(--motion-fast) var(--ease);margin-bottom:2px}.nav-item svg{width:18px;height:18px;flex:none;stroke:currentColor}.nav-item:hover{background:var(--colour-overlay-04);color:var(--colour-text)}.nav-item.active{background:var(--colour-overlay-08);color:var(--colour-off-white)}.nav-item.active:before{content:"";position:absolute;left:-3px;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:var(--radius-pill);background:var(--colour-cyan)}.nav-item.active svg{stroke:var(--colour-cyan)}.nav-item .badge{margin-left:auto;font-family:var(--font-mono);font-size:.66rem;background:var(--colour-overlay-08);color:var(--colour-text-secondary);padding:1px 7px;border-radius:var(--radius-pill);min-width:20px;text-align:center}.nav-item.active .badge{background:var(--colour-cyan-12);color:var(--colour-cyan)}.sidebar-footer{padding:var(--space-4) var(--space-5) 0;border-top:var(--border-width-1) solid var(--colour-divider);margin-top:auto}.sidebar-footer .tagline{font-family:var(--font-mono);font-size:.72rem;font-weight:var(--fw-medium);letter-spacing:.02em;color:var(--colour-text-secondary);white-space:nowrap}.sidebar-footer .tagline .blink{color:var(--colour-cyan);animation:blink 1.2s steps(2) infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.operator{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-2);border-radius:var(--radius-md);cursor:pointer;transition:background var(--motion-fast) var(--ease)}.operator:hover{background:var(--colour-overlay-04)}.operator .avatar{width:30px;height:30px;border-radius:var(--radius-pill);background:linear-gradient(135deg,#2A3138,#1B222A);border:1px solid var(--colour-border);display:grid;place-items:center;font-family:var(--font-mono);font-size:.7rem;color:var(--colour-off-white)}.operator .meta{line-height:1.2}.operator .meta .n{font-size:var(--text-small);font-weight:var(--fw-medium)}.operator .meta .r{font-size:.66rem;color:var(--colour-text-subtle)}.main{display:flex;flex-direction:column;min-width:0}.topbar{height:var(--topbar-h);display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-8);border-bottom:var(--border-width-1) solid var(--colour-divider);background:rgba(11,15,20,.7);backdrop-filter:blur(12px);position:sticky;top:0;z-index:15}.topbar .crumb{font-size:var(--text-small);color:var(--colour-text-muted)}.topbar .crumb b{color:var(--colour-text);font-weight:var(--fw-medium)}.topbar .spacer{flex:1}.cmdk{display:flex;align-items:center;gap:var(--space-3);background:var(--surface-card);border:var(--border-width-1) solid var(--colour-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--colour-text-subtle);font-size:var(--text-small);cursor:pointer;min-width:220px;transition:border-color var(--motion-fast) var(--ease)}.cmdk:hover{border-color:var(--colour-border-strong)}.cmdk kbd{margin-left:auto;font-family:var(--font-mono);font-size:.66rem;background:var(--colour-overlay-08);padding:1px 6px;border-radius:var(--radius-sm);color:var(--colour-text-secondary)}.icon-btn{width:36px;height:36px;border-radius:var(--radius-md);border:var(--border-width-1) solid var(--colour-border);background:var(--surface-card);display:grid;place-items:center;cursor:pointer;color:var(--colour-text-muted);transition:all var(--motion-fast) var(--ease);position:relative}.icon-btn:hover{color:var(--colour-text);border-color:var(--colour-border-strong)}.icon-btn svg{width:18px;height:18px;stroke:currentColor}.icon-btn .dot{position:absolute;top:7px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--colour-orange);border:2px solid var(--surface-card)}.view{padding:var(--space-8);max-width:1480px;width:100%;margin:0 auto;animation:viewin var(--motion-base) var(--ease)}@keyframes viewin{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.view.hidden{display:none}.view-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-8)}.view-head h1{font-size:var(--text-h3);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-snug)}.view-head .sub{color:var(--colour-text-secondary);font-size:var(--text-small);margin-top:var(--space-2)}.view-actions{display:flex;gap:var(--space-3)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-body);font-size:var(--text-small);font-weight:var(--fw-medium);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:var(--border-width-1) solid var(--colour-border);background:var(--surface-card);color:var(--colour-text);cursor:pointer;transition:all var(--motion-fast) var(--ease)}.btn:hover{border-color:var(--colour-border-strong);background:var(--surface-card-hover)}.btn svg{width:15px;height:15px;stroke:currentColor}.btn.primary{background:var(--colour-cyan);color:#04222C;border-color:transparent;font-weight:var(--fw-semibold)}.btn.primary:hover{background:#2BD2FF;box-shadow:0 6px 20px -6px rgba(0,199,255,.5)}.btn.ghost{background:transparent}.card{background:var(--surface-card);border:var(--border-width-1) solid var(--colour-border);border-radius:var(--radius-lg);padding:var(--space-6)}.grid{gap:var(--space-5)}.cols-2{grid-template-columns:repeat(2,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}.cols-6{grid-template-columns:repeat(6,1fr)}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.span-4{grid-column:span 4}.kpi{background:var(--surface-card);border:var(--border-width-1) solid var(--colour-border);border-radius:var(--radius-lg);padding:var(--space-5);position:relative;overflow:hidden;transition:border-color var(--motion-base) var(--ease),transform var(--motion-base) var(--ease)}.kpi:hover{border-color:var(--colour-border-strong);transform:translateY(-2px)}.kpi .kpi-label{display:flex;align-items:center;gap:var(--space-2);font-size:.7rem;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--colour-text-secondary);font-family:var(--font-mono);margin-bottom:var(--space-3)}.kpi .kpi-label .ic{width:14px;height:14px;stroke:currentColor;opacity:.8}.kpi .kpi-value{font-family:var(--font-heading);font-size:2rem;font-weight:var(--fw-semibold);letter-spacing:var(--tracking-tight);line-height:1}.kpi .kpi-value .cur{font-size:1.05rem;color:var(--colour-text-secondary);font-weight:var(--fw-medium);margin-right:2px}.kpi .kpi-foot{margin-top:var(--space-3);font-size:var(--text-small);color:var(--colour-text-muted);display:flex;align-items:center;gap:var(--space-2)}.kpi .accent-line{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--colour-cyan),transparent 70%);opacity:0;transition:opacity var(--motion-base) var(--ease)}.kpi:hover .accent-line{opacity:1}.kpi.warn .accent-line{background:linear-gradient(90deg,var(--colour-orange),transparent 70%)}.delta{font-family:var(--font-mono);font-size:.72rem;padding:1px 6px;border-radius:var(--radius-sm)}.delta.up{color:var(--status-ok);background:var(--status-ok-12)}.delta.down{color:var(--colour-orange);background:var(--colour-orange-12)}.delta.flat{color:var(--colour-text-secondary);background:var(--colour-overlay-08)}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.section-title h2{font-size:var(--text-h5);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-snug)}.section-title .link{font-size:var(--text-small);color:var(--colour-text-secondary);cursor:pointer}.section-title .link:hover{color:var(--colour-cyan)}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.panel-head h3{font-size:var(--text-h5);font-weight:var(--fw-semibold)}.panel-head .meta{font-size:var(--text-caption);color:var(--colour-text-subtle)}.mono,.panel-head .meta{font-family:var(--font-mono)}.mono{font-variant-numeric:tabular-nums}.t-sec{color:var(--colour-text-secondary)}.t-mut{color:var(--colour-text-muted)}.t-sub{color:var(--colour-text-subtle)}.t-cyan{color:var(--colour-cyan)}.t-orange{color:var(--colour-orange)}.cap{font-size:var(--text-caption);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--colour-text-subtle)}.cap,.chip{font-family:var(--font-mono)}.chip{display:inline-flex;align-items:center;gap:var(--space-2);font-size:.7rem;font-weight:var(--fw-medium);padding:2px 9px;border-radius:var(--radius-pill);border:var(--border-width-1) solid var(--colour-border);color:var(--colour-text-secondary);white-space:nowrap}.chip .led{width:6px;height:6px;border-radius:50%;background:currentColor}.chip.info{color:var(--colour-cyan);border-color:var(--colour-cyan-24);background:var(--colour-cyan-12)}.chip.ok{color:var(--status-ok);border-color:rgba(63,191,143,.3);background:var(--status-ok-12)}.chip.warn{color:var(--colour-orange);border-color:var(--colour-orange-24);background:var(--colour-orange-12)}.chip.neutral{background:var(--colour-overlay-04)}.chip.neutral,.tier{color:var(--colour-text-secondary)}.tier{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.04em;text-transform:uppercase;padding:1px 7px;border-radius:var(--radius-sm);border:1px solid var(--colour-border)}.tier.partner{color:var(--colour-cyan);border-color:var(--colour-cyan-24)}.tier.foundation{color:var(--colour-text-muted)}.tier.growth{color:var(--colour-slate-blue)}.tier.custom{color:var(--colour-orange);border-color:var(--colour-orange-24)}.tbl{width:100%;border-collapse:collapse;font-size:var(--text-small)}.tbl thead th{text-align:left;font-family:var(--font-mono);font-size:.66rem;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--colour-text-subtle);font-weight:var(--fw-medium);padding:var(--space-2) var(--space-3);border-bottom:var(--border-width-1) solid var(--colour-border)}.tbl tbody td{padding:var(--space-3);border-bottom:var(--border-width-1) solid var(--colour-divider);color:var(--colour-text-muted);vertical-align:middle}.tbl tbody tr{transition:background var(--motion-fast) var(--ease);cursor:pointer}.tbl tbody tr:hover{background:var(--colour-overlay-04)}.tbl tbody tr:hover td:first-child,.tbl td.num{color:var(--colour-text)}.tbl td.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right}.tbl td .co{color:var(--colour-text);font-weight:var(--fw-medium)}.tbl td .sub{font-size:var(--text-caption);color:var(--colour-text-subtle)}.action-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:var(--border-width-1) solid var(--colour-divider)}.action-row:last-child{border-bottom:0}.action-row .check{width:18px;height:18px;border-radius:var(--radius-sm);border:1.5px solid var(--colour-border-strong);flex:none;cursor:pointer;transition:all var(--motion-fast) var(--ease)}.action-row .check:hover{border-color:var(--colour-cyan)}.action-row .body{flex:1;min-width:0}.action-row .body .t{font-size:var(--text-small);color:var(--colour-text)}.action-row .body .m{font-size:var(--text-caption);color:var(--colour-text-subtle);margin-top:1px}.action-row .when{font-family:var(--font-mono);font-size:.7rem;flex:none}.action-row .when.overdue{color:var(--colour-orange)}.action-row .when.today{color:var(--colour-cyan)}.feed-item{display:flex;gap:var(--space-3);padding:var(--space-3) 0;position:relative}.feed-item .tl{display:flex;flex-direction:column;align-items:center;flex:none}.feed-item .node{width:9px;height:9px;border-radius:50%;background:var(--colour-charcoal);border:2px solid var(--colour-slate-blue);margin-top:5px;z-index:1}.feed-item .node.cyan{border-color:var(--colour-cyan);background:var(--colour-cyan-12)}.feed-item .node.orange{border-color:var(--colour-orange)}.feed-item .line{width:2px;flex:1;background:var(--colour-divider);margin-top:2px}.feed-item:last-child .line{display:none}.feed-item .fc .fco{font-size:.7rem;font-weight:var(--fw-semibold);color:var(--colour-cyan);letter-spacing:.01em;margin-bottom:1px}.feed-item .fc .ft{font-size:var(--text-small);color:var(--colour-text)}.feed-item .fc .ft b{color:var(--colour-text);font-weight:var(--fw-medium)}.feed-item .fc .fm{font-family:var(--font-mono);font-size:.68rem;color:var(--colour-text-subtle);margin-top:1px}.kanban{display:flex;gap:var(--space-4);overflow-x:auto;padding-bottom:var(--space-4)}.kan-col{flex:0 0 264px;display:flex;flex-direction:column}.kan-col-head{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);border-bottom:2px solid var(--colour-divider)}.kan-col-head .dot{width:8px;height:8px;border-radius:50%}.kan-col-head .nm{font-size:var(--text-small);font-weight:var(--fw-semibold)}.kan-col-head .ct{margin-left:auto;font-family:var(--font-mono);font-size:.7rem;color:var(--colour-text-subtle)}.kan-col-body{display:flex;flex-direction:column;gap:var(--space-3);min-height:140px;flex:1 1 auto}.kan-card{background:var(--surface-card);border:var(--border-width-1) solid var(--colour-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);cursor:pointer;transition:all var(--motion-base) var(--ease)}.kan-card:hover{border-color:var(--colour-border-strong);background:var(--surface-card-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.kan-card .kc-co{font-size:var(--text-small);font-weight:var(--fw-medium);color:var(--colour-text);margin-bottom:var(--space-1)}.kan-card .kc-meta{font-size:var(--text-caption);color:var(--colour-text-subtle);margin-bottom:var(--space-3)}.kan-card .kc-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.kan-card .kc-val{font-family:var(--font-mono);font-size:var(--text-small);color:var(--colour-text);font-variant-numeric:tabular-nums}.toggle{display:inline-flex;background:var(--surface-card);border:var(--border-width-1) solid var(--colour-border);border-radius:var(--radius-md);padding:3px}.toggle button{background:transparent;border:0;color:var(--colour-text-muted);font-size:var(--text-small);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-body);display:inline-flex;align-items:center;gap:6px}.toggle button svg{width:15px;height:15px;stroke:currentColor}.toggle button.active{background:var(--colour-overlay-08);color:var(--colour-text)}.chart-wrap{width:100%}@keyframes draw{to{stroke-dashoffset:0}}@keyframes fade{to{opacity:1}}.chart-legend{display:flex;gap:var(--space-4);margin-top:var(--space-3);flex-wrap:wrap}.chart-legend .lg{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-caption);color:var(--colour-text-secondary);font-family:var(--font-mono)}.chart-legend .lg .sw{width:10px;height:3px;border-radius:2px}.scrim{position:fixed;inset:0;background:var(--colour-scrim);backdrop-filter:blur(2px);z-index:40;opacity:0;pointer-events:none;transition:opacity var(--motion-base) var(--ease)}.scrim.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:0;height:100vh;width:440px;max-width:92vw;background:var(--surface-panel);border-left:var(--border-width-1) solid var(--colour-border);z-index:50;transform:translateX(100%);transition:transform var(--motion-base) var(--ease);display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.drawer.open{transform:none}.drawer-head{padding:var(--space-6);border-bottom:var(--border-width-1) solid var(--colour-divider)}.drawer-body{padding:var(--space-6);overflow-y:auto;flex:1}.drawer .close{position:absolute;top:var(--space-5);right:var(--space-5);cursor:pointer;color:var(--colour-text-subtle);background:none;border:0}.drawer .close:hover{color:var(--colour-text)}.drawer .close svg{width:20px;height:20px;stroke:currentColor}.client-hero{background:linear-gradient(135deg,#161C23,#11161C);border:var(--border-width-1) solid var(--colour-border);border-radius:var(--radius-lg);padding:var(--space-6);position:relative;overflow:hidden}.client-hero:before{content:"";position:absolute;top:-40%;right:-10%;width:360px;height:360px;background:radial-gradient(circle,var(--colour-cyan-12),transparent 70%);pointer-events:none}.client-hero .ch-top{display:flex;align-items:flex-start;gap:var(--space-4);position:relative}.client-hero .ch-logo{width:56px;height:56px;border-radius:var(--radius-md);background:var(--surface-raised);border:1px solid var(--colour-border);display:grid;place-items:center;font-family:var(--font-heading);font-weight:var(--fw-bold);color:var(--colour-cyan);font-size:1.1rem;flex:none}.client-hero h1{font-size:var(--text-h4);font-weight:var(--fw-semibold)}.client-hero .ch-sub{color:var(--colour-text-secondary);font-size:var(--text-small);margin-top:2px}.rollups{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5);margin-top:var(--space-6);position:relative}.rollup{border-left:2px solid var(--colour-divider);padding-left:var(--space-4)}.rollup .rl{font-size:.66rem;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--colour-text-subtle);font-family:var(--font-mono)}.rollup .rv{font-family:var(--font-heading);font-size:1.4rem;font-weight:var(--fw-semibold);margin-top:var(--space-2)}.rollup.alert{border-left-color:var(--colour-orange)}.rollup.live{border-left-color:var(--colour-cyan)}.progress{height:7px;background:var(--colour-overlay-08);overflow:hidden}.progress,.progress>span{border-radius:var(--radius-pill)}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--colour-cyan),#4FD8FF)}.progress.orange>span{background:linear-gradient(90deg,var(--colour-orange),#FF8C3C)}.phase{border:var(--border-width-1) solid var(--colour-border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-3);transition:border-color var(--motion-fast) var(--ease)}.phase:hover{border-color:var(--colour-border-strong)}.phase.done{opacity:.7}.phase.active{border-color:var(--colour-cyan-24);background:linear-gradient(90deg,var(--colour-cyan-12),transparent 60%)}.phase-head{display:flex;align-items:center;gap:var(--space-3)}.phase-head .pn{width:26px;height:26px;border-radius:var(--radius-pill);border:1.5px solid var(--colour-border-strong);display:grid;place-items:center;font-family:var(--font-mono);font-size:.72rem;color:var(--colour-text-secondary);flex:none}.phase.done .phase-head .pn{background:var(--status-ok-12);border-color:rgba(63,191,143,.4);color:var(--status-ok)}.phase.active .phase-head .pn{background:var(--colour-cyan-12);border-color:var(--colour-cyan);color:var(--colour-cyan)}.phase-head .pt{font-weight:var(--fw-medium);font-size:var(--text-small)}.phase-head .pw{margin-left:auto;font-family:var(--font-mono);font-size:.7rem;color:var(--colour-text-subtle)}.deliverables{margin-top:var(--space-4);padding-left:38px;display:grid;gap:var(--space-2)}.deliv{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-small);color:var(--colour-text-muted)}.deliv .box{width:15px;height:15px;border-radius:var(--radius-sm);border:1.5px solid var(--colour-border-strong);flex:none;display:grid;place-items:center}.deliv.done .box{background:var(--status-ok-12);border-color:rgba(63,191,143,.4)}.deliv.done .box svg{width:10px;height:10px;stroke:var(--status-ok)}.deliv.done span{color:var(--colour-text-muted);text-decoration:line-through;text-decoration-color:var(--colour-text-subtle)}.deliv.signed .box{background:var(--colour-cyan-12);border-color:var(--colour-cyan)}.deliv.signed .box svg{width:10px;height:10px;stroke:var(--colour-cyan)}.deliv .so{margin-left:auto;font-family:var(--font-mono);font-size:.64rem;color:var(--colour-text-subtle)}.file-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);transition:background var(--motion-fast) var(--ease);cursor:pointer}.file-row:hover{background:var(--colour-overlay-04)}.file-row .fi{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--colour-overlay-08);display:grid;place-items:center;flex:none;color:var(--colour-text-secondary)}.file-row .fi svg{width:16px;height:16px;stroke:currentColor}.file-row .fn{font-size:var(--text-small);color:var(--colour-text)}.file-row .fm{font-family:var(--font-mono);font-size:var(--text-caption);color:var(--colour-text-subtle)}.tabs{display:flex;gap:var(--space-1);border-bottom:var(--border-width-1) solid var(--colour-divider);margin-bottom:var(--space-6)}.tabs button{background:none;border:0;color:var(--colour-text-muted);font-family:var(--font-body);font-size:var(--text-small);font-weight:var(--fw-medium);padding:var(--space-3) var(--space-4);cursor:pointer;position:relative}.tabs button.active,.tabs button:hover{color:var(--colour-text)}.tabs button.active:after{content:"";position:absolute;bottom:-1px;left:var(--space-4);right:var(--space-4);height:2px;background:var(--colour-cyan);border-radius:var(--radius-pill)}.back-link{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--colour-text-secondary);font-size:var(--text-small);cursor:pointer;margin-bottom:var(--space-5)}.back-link:hover{color:var(--colour-cyan)}.back-link svg{width:15px;height:15px;stroke:currentColor}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.stack{display:flex;flex-direction:column}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.wrap{flex-wrap:wrap}.hint{font-size:var(--text-caption);color:var(--colour-text-subtle);font-style:italic}.modal-scrim{position:fixed;inset:0;background:var(--colour-scrim);backdrop-filter:blur(3px);z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:8vh var(--space-6) var(--space-6);overflow-y:auto;animation:fade .16s var(--ease) both}.modal{width:520px;max-width:100%;background:var(--surface-panel);border:var(--border-width-1) solid var(--colour-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:modalin .18s var(--ease) both}.modal.wide{width:680px}@keyframes modalin{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:var(--border-width-1) solid var(--colour-divider)}.modal-head h3{font-size:var(--text-h5,1.05rem);font-weight:var(--fw-semibold)}.modal-sub{font-size:var(--text-caption);margin-top:3px}.modal-head .close,.modal-sub{color:var(--colour-text-subtle)}.modal-head .close{background:none;border:0;cursor:pointer;padding:2px}.modal-head .close:hover{color:var(--colour-text)}.modal-head .close svg{width:18px;height:18px;stroke:currentColor}.modal-body{padding:var(--space-6)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field.span{grid-column:1/-1}.field-label{font-size:.66rem;text-transform:uppercase;letter-spacing:var(--tracking-wide);font-family:var(--font-mono)}.field-hint,.field-label{color:var(--colour-text-subtle)}.field-hint{font-size:var(--text-caption)}.field input[type=date],.field input[type=number],.field input[type=text],.field select,.field textarea,.input{width:100%;background:var(--colour-overlay-04);color:var(--colour-text);border:var(--border-width-1) solid var(--colour-border);border-radius:var(--radius-md);padding:var(--space-3);font-family:var(--font-body);font-size:var(--text-small);transition:border-color var(--motion-fast) var(--ease),background var(--motion-fast) var(--ease)}.field input:focus,.field select:focus,.field textarea:focus,.input:focus{outline:none;border-color:var(--colour-cyan);background:var(--colour-overlay-08)}.field input.mono,.field input[type=number]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.field textarea{resize:vertical;min-height:64px;line-height:1.5}.field select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.chip-select{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip-select label{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:var(--text-small);color:var(--colour-text-muted);border:var(--border-width-1) solid var(--colour-border);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-3);transition:all var(--motion-fast) var(--ease)}.chip-select label:hover{border-color:var(--colour-border-strong);color:var(--colour-text)}.chip-select input{position:absolute;opacity:0;pointer-events:none}.chip-select label:has(input:checked){border-color:var(--colour-cyan);background:var(--colour-cyan-12);color:var(--colour-cyan)}.check-row{display:flex;align-items:center;gap:var(--space-3)}.check-row input{width:16px;height:16px;accent-color:var(--colour-cyan);cursor:pointer}.check-row span{font-size:var(--text-small);color:var(--colour-text-muted)}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-5);border-top:var(--border-width-1) solid var(--colour-divider)}.btn:disabled{opacity:.55;cursor:progress}.form-error{background:var(--status-warn-12,rgba(255,106,0,.12));border:var(--border-width-1) solid var(--colour-orange);color:var(--colour-text);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-small);margin-bottom:var(--space-4)}.kan-card[draggable=true]{cursor:grab}.kan-card.dragging{opacity:.4}.kan-col-body.drop-target{background:var(--colour-cyan-12);border-radius:var(--radius-md);outline:1px dashed var(--colour-cyan-24)}.stage-move{display:inline-flex;align-items:center;gap:6px}.stage-move select{background:var(--colour-overlay-04);color:var(--colour-text-secondary);border:var(--border-width-1) solid var(--colour-border);border-radius:var(--radius-sm);font-size:.7rem;font-family:var(--font-mono);padding:3px 6px;cursor:pointer}.stage-move select:focus{outline:none;border-color:var(--colour-cyan)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--space-3);padding:var(--space-10) var(--space-6);min-height:180px}.empty-state.inset{padding:var(--space-6) var(--space-4);min-height:120px;gap:var(--space-2)}.empty-state .es-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);border:1px solid var(--colour-divider);background:var(--colour-overlay-12,rgba(245,244,241,.04));color:var(--colour-text-subtle);margin-bottom:var(--space-1)}.empty-state.inset .es-icon{width:34px;height:34px;border-radius:var(--radius-md)}.empty-state .es-icon svg{width:20px;height:20px;stroke:var(--colour-slate-blue)}.empty-state.inset .es-icon svg{width:16px;height:16px}.empty-state .es-title{font-size:var(--text-small);font-weight:var(--fw-medium);color:var(--colour-text-secondary,var(--colour-text-muted))}.empty-state .es-hint{font-size:var(--text-caption);color:var(--colour-text-subtle);max-width:34ch;line-height:1.5}@media (max-width:1100px){.app{grid-template-columns:72px 1fr}.brand .brand-lockup,.nav-item .badge,.nav-item span.lbl,.nav-label,.operator .meta,.sidebar-footer .tagline{display:none}.brand .brand-mark{display:block;margin:0 auto}.brand,.nav-item{justify-content:center}.cols-3,.cols-4,.cols-6,.rollups{grid-template-columns:repeat(2,1fr)}}.task-list{display:flex;flex-direction:column;gap:var(--space-5)}.task-group-head{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-small);font-weight:var(--fw-semibold);color:var(--colour-text-secondary);margin-bottom:var(--space-2)}.task-group-head .dot{width:8px;height:8px;border-radius:50%}.task-group-head .ct{margin-left:6px;font-family:var(--font-mono);font-size:.7rem;color:var(--colour-text-subtle)}.task-row{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-card);border:var(--border-width-1) solid var(--colour-border);border-radius:var(--radius-md);margin-bottom:var(--space-2);transition:all var(--motion-base) var(--ease)}.task-row:hover{border-color:var(--colour-border-strong);background:var(--surface-card-hover)}.task-check{flex-shrink:0;width:20px;height:20px;margin-top:1px;border-radius:50%;border:1.5px solid var(--colour-border-strong);background:transparent;cursor:pointer;display:grid;place-items:center;color:var(--colour-deep-black);transition:all var(--motion-base) var(--ease)}.task-check:hover{border-color:var(--colour-cyan)}.task-check.done{background:var(--status-ok);border-color:var(--status-ok)}.task-check svg{width:13px;height:13px;stroke:var(--colour-deep-black);stroke-width:3}.task-main{flex:1;min-width:0;cursor:pointer}.task-title{font-size:var(--text-small);color:var(--colour-text);margin-bottom:4px}.kc-co.is-done,.task-title.is-done{text-decoration:line-through;color:var(--colour-text-subtle)}.task-meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.task-meta .overdue{color:var(--colour-orange)}.task-del{flex-shrink:0;background:transparent;border:none;color:var(--colour-text-subtle);cursor:pointer;padding:4px;border-radius:var(--radius-sm);opacity:0;transition:all var(--motion-base) var(--ease)}.task-row:hover .task-del{opacity:1}.task-del:hover{color:var(--colour-orange);background:var(--colour-overlay-04)}.task-del svg{width:15px;height:15px}.task-cal-wrap{display:grid;grid-template-columns:1fr 300px;gap:var(--space-5);align-items:start}.cal-head{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-2);margin-bottom:var(--space-2)}.cal-head>div{font-size:.66rem;font-family:var(--font-mono);color:var(--colour-text-subtle);text-transform:uppercase;letter-spacing:.04em;text-align:center}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-2)}.cal-cell{min-height:84px;border:var(--border-width-1) solid var(--colour-border);border-radius:var(--radius-sm);padding:5px;display:flex;flex-direction:column;gap:3px;background:var(--colour-overlay-04)}.cal-cell.other{opacity:.4}.cal-cell.today{border-color:var(--colour-cyan);box-shadow:inset 0 0 0 1px var(--colour-cyan-24)}.cal-day{font-size:.66rem;font-family:var(--font-mono);color:var(--colour-text-subtle);text-align:right}.cal-task{width:100%;text-align:left;font-size:.62rem;line-height:1.25;padding:2px 5px;border-radius:4px;border:none;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--colour-text);background:var(--colour-charcoal);border-left:2px solid var(--colour-slate-blue)}.cal-task.prio-high{border-left-color:var(--colour-orange)}.cal-task.prio-medium{border-left-color:var(--colour-cyan)}.cal-task.prio-low{border-left-color:var(--colour-slate-blue)}.cal-task.is-done{text-decoration:line-through;opacity:.55}.rhythm-row{padding:var(--space-2) 0;border-bottom:var(--border-width-1) solid var(--colour-border)}.rhythm-row:last-child{border-bottom:none}.rhythm-when{font-size:var(--text-small);font-weight:var(--fw-medium);color:var(--colour-text);margin-bottom:2px}.rhythm-what{font-size:var(--text-caption);line-height:1.4}@media (max-width:1100px){.task-cal-wrap{grid-template-columns:1fr}}.sync-btn{white-space:nowrap;gap:6px}@keyframes tt-spin{to{transform:rotate(1turn)}}.spin{animation:tt-spin .8s linear infinite;transform-origin:center}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }

/* ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com */*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.static{position:static}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.items-center{align-items:center}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.uppercase{text-transform:uppercase}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}body,html{min-height:100vh}#root,main{min-width:0}a.row-link{display:block;text-decoration:none}a.row-link,a.row-link:hover{color:inherit}