/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--container-sm:24rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-semibold:600;--tracking-wider:.05em;--radius-md:.375rem;--radius-lg:.5rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-background:var(--paper);--color-card:var(--surface);--color-border:var(--line);--color-input:var(--line-strong);--color-accent:var(--surface-2);--color-muted-foreground:var(--muted);--color-primary:var(--accent);--color-primary-foreground:var(--surface)}}@layer base;@layer legacy{:root{--ink:#16202c;--ink-2:#445269;--muted:#77869b;--paper:#f3f5f8;--surface:#fff;--surface-2:#eaeef3;--line:#d7dee7;--line-strong:#c1cbd8;--accent:#2e5eaa;--accent-ink:#1f4483;--accent-tint:#e4ecf9;--actual:#b9711a;--actual-tint:#f6e9d8;--good:#1e8e5a;--good-tint:#e1f3ea;--warning:#b9711a;--warning-tint:#f6e9d8;--critical:#c0392b;--critical-tint:#fbe4e1;--font-display:"Archivo",system-ui,sans-serif;--font-body:"IBM Plex Sans",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",monospace;--radius:8px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ink:#e7ecf3;--ink-2:#b7c2d1;--muted:#8493a8;--paper:#0e1520;--surface:#16202c;--surface-2:#1d2836;--line:#2a3646;--line-strong:#39485c;--accent:#5c8fd6;--accent-ink:#8fb3e6;--accent-tint:#1e2c40;--actual:#b87f30;--actual-tint:#332615;--good:#3fae7a;--good-tint:#123326;--warning:#c79a4b;--warning-tint:#332615;--critical:#e0645c;--critical-tint:#3a1b17}}:root[data-theme=dark]{--ink:#e7ecf3;--ink-2:#b7c2d1;--muted:#8493a8;--paper:#0e1520;--surface:#16202c;--surface-2:#1d2836;--line:#2a3646;--line-strong:#39485c;--accent:#5c8fd6;--accent-ink:#8fb3e6;--accent-tint:#1e2c40;--actual:#b87f30;--actual-tint:#332615;--good:#3fae7a;--good-tint:#123326;--warning:#c79a4b;--warning-tint:#332615;--critical:#e0645c;--critical-tint:#3a1b17}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);margin:0;padding-inline:0;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;text-wrap:balance;margin:0;font-weight:800}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}a{color:var(--accent)}button{font-family:var(--font-body)}.wrap{max-width:1180px;margin:0 auto;padding:0 20px 64px}header.titleblock{border-bottom:3px solid var(--ink);background:var(--surface);padding:18px 20px 0}.titleblock-inner{max-width:1180px;margin:0 auto}.tb-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.tb-eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px}.tb-title{margin-top:4px;font-size:clamp(20px,3vw,28px)}.tb-meta{font-family:var(--font-mono);color:var(--ink-2);flex-wrap:wrap;gap:18px;margin-top:10px;font-size:12px;display:flex}.tb-meta div span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:10px;display:block}.tb-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:6px;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.btn:hover{border-color:var(--accent);color:var(--accent-ink)}.btn.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.tb-actions select{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:12.5px;font-weight:600;font-family:var(--font-body);border-radius:6px;padding:6px 10px}.data-notes{background:var(--warning-tint);border:1px solid var(--warning);border-radius:var(--radius);color:var(--ink);margin:0 0 18px;padding:12px 16px;font-size:12.5px}.data-notes h4{color:var(--warning);margin-bottom:6px;font-size:13px}.data-notes ul{margin:0;padding-left:18px}.data-notes li{margin:3px 0}.data-notes .sev{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;margin-right:6px;font-size:10.5px}.data-notes .sev.error{color:var(--critical)}.data-notes .sev.warning{color:var(--warning)}.data-notes .sev.info{color:var(--muted)}.data-notes .src{color:var(--muted);font-size:11.5px}.dash-status{text-align:center;color:var(--muted);padding:40px 20px;font-size:13px}.dash-status.err{color:var(--critical)}@media print{.data-notes{break-inside:avoid}.tb-actions select{display:none!important}}.toggle{color:var(--ink-2);-webkit-user-select:none;user-select:none;cursor:pointer;align-items:center;gap:7px;font-size:12.5px;display:inline-flex}.toggle input{accent-color:var(--accent);width:15px;height:15px}nav.tabs{gap:2px;margin-top:16px;display:flex;overflow-x:auto}nav.tabs button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;padding:10px 14px;font-size:13px;font-weight:600}nav.tabs button.active{color:var(--ink);border-bottom-color:var(--accent)}nav.tabs button:hover{color:var(--ink)}main{padding-top:22px}section.panel{display:none}section.panel.active{display:block}.kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:26px;display:grid}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.kpi .lbl{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;font-weight:600}.kpi .val{font-family:var(--font-mono);align-items:baseline;gap:8px;margin-top:6px;font-size:26px;font-weight:600;display:flex}.kpi .sub{color:var(--ink-2);margin-top:4px;font-size:12px}.delta{font-size:13px;font-weight:600}.delta.neg{color:var(--critical)}.delta.pos{color:var(--good)}@media (width<=760px){.kpis{grid-template-columns:repeat(2,1fr)}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:18px;padding:18px 20px}.card h3{font-size:16px}.card .desc{color:var(--muted);margin-top:2px;font-size:12.5px}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.legend{color:var(--ink-2);gap:16px;font-size:12px;display:flex}.legend .sw{vertical-align:-1px;border-radius:2px;width:10px;height:10px;margin-right:5px;display:inline-block}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--line-strong);padding:8px 10px;font-size:11px;font-weight:600}td{border-bottom:1px solid var(--line);vertical-align:top;padding:9px 10px}tr:last-child td{border-bottom:none}.tblwrap{overflow-x:auto}.chip{border-radius:99px;align-items:center;gap:5px;padding:3px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.chip.tendering{background:var(--warning-tint);color:var(--warning)}.chip.awarded{background:var(--good-tint);color:var(--good)}.chip.open,.chip.escalated{background:var(--critical-tint);color:var(--critical)}.chip.onhold{background:var(--surface-2);color:var(--muted)}.chip .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.stagebar-row{border-bottom:1px solid var(--line);grid-template-columns:220px 1fr 60px;align-items:center;gap:12px;padding:7px 0;display:grid}.stagebar-row:last-child{border-bottom:none}.stagebar-name{font-size:12.5px;font-weight:600}.stagebar-dates{color:var(--muted);font-size:10.5px;font-family:var(--font-mono)}.stagebar-track{height:20px;position:relative}.stagebar-bg{background:var(--surface-2);border-radius:4px;position:absolute;inset:0}.stagebar-fill{border-radius:4px;position:absolute;top:0;bottom:0;left:0}.stagebar-fill.planned{background:var(--accent);opacity:.35}.stagebar-fill.actual{background:var(--actual)}.stagebar-pct{font-family:var(--font-mono);text-align:right;font-size:12px}.delay-item{border:1px solid var(--line);border-left:4px solid var(--warning);background:var(--surface);border-radius:6px;margin-bottom:12px;padding:14px 16px}.delay-item .dh{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.delay-item .date{font-family:var(--font-mono);color:var(--muted);font-size:12px}.delay-item h4{margin-top:2px;font-size:14.5px}.delay-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px;font-size:12px;display:grid}.delay-grid .k{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:10px}.delay-grid .v{color:var(--ink-2);margin-top:2px}.delay-narrative{color:var(--ink-2);border-top:1px dashed var(--line);margin-top:10px;padding-top:10px;font-size:13px}@media (width<=700px){.delay-grid{grid-template-columns:repeat(2,1fr)}}.empty-state{border:1px dashed var(--line-strong);border-radius:var(--radius);text-align:center;color:var(--muted);padding:26px;font-size:13px}.empty-state .glyph{font-family:var(--font-mono);color:var(--line-strong);margin-bottom:6px;font-size:22px}.scurve-wrap{width:100%;overflow-x:auto}.scurve-wrap svg{width:100%;min-width:520px;height:auto;display:block}.scurve-wrap .grid-line{stroke:var(--line);stroke-width:1px}.scurve-wrap .axis-line{stroke:var(--line-strong);stroke-width:1px}.scurve-wrap .tick-label{font-family:var(--font-mono);fill:var(--muted);font-size:10px}.scurve-wrap .planned-path{fill:none;stroke:var(--accent);stroke-width:2px;stroke-dasharray:5 4}.scurve-wrap .actual-path{fill:none;stroke:var(--actual);stroke-width:2.5px}.scurve-wrap .planned-dot{fill:var(--surface);stroke:var(--accent);stroke-width:2px}.scurve-wrap .actual-dot{fill:var(--actual);stroke:var(--surface);stroke-width:2px}.scurve-wrap .ref-line{stroke:var(--line-strong);stroke-width:1px;stroke-dasharray:2 3}.scurve-wrap .pt-label{font-family:var(--font-mono);font-size:11px;font-weight:600}.scurve-note{color:var(--muted);margin-top:10px;font-size:12px;line-height:1.5}.source-note{color:var(--muted);font-size:11px;font-family:var(--font-mono);border-top:1px solid var(--line);margin-top:22px;padding-top:14px}body.client-view [data-internal],body.client-view .card[data-internal-card]{display:none!important}.client-banner{background:var(--accent-tint);color:var(--accent-ink);text-align:center;padding:8px 20px;font-size:12px;font-weight:600;display:none}body.client-view .client-banner{display:block}.accordion summary{cursor:pointer;justify-content:space-between;align-items:center;padding:6px 0;font-size:13px;font-weight:600;list-style:none;display:flex}.accordion summary::-webkit-details-marker{display:none}.accordion summary:after{content:"+";color:var(--muted);font-family:var(--font-mono)}.accordion[open] summary:after{content:"–"}.accordion .body{color:var(--ink-2);padding:6px 0 12px;font-size:12.5px}@media print{header.titleblock nav.tabs,.tb-actions,.toggle{display:none!important}section.panel{page-break-inside:avoid;margin-bottom:24px;display:block!important}body{color:#000;background:#fff}.card{break-inside:avoid;border-color:#999}.wrap{max-width:100%}}}@layer components;@layer utilities{.static{position:static}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.block{display:block}.flex{display:flex}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-9{height:calc(var(--spacing) * 9)}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-full{width:100%}.max-w-sm{max-width:var(--container-sm)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.animate-spin{animation:var(--animate-spin)}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-border{border-color:var(--color-border)}.border-input{border-color:var(--color-input)}.bg-background{background-color:var(--color-background)}.bg-card{background-color:var(--color-card)}.bg-primary{background-color:var(--color-primary)}.p-6{padding:calc(var(--spacing) * 6)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.text-muted-foreground{color:var(--color-muted-foreground)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.uppercase{text-transform:uppercase}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.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,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-primary\/90:hover{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--color-primary) 90%, transparent)}}}.disabled\:opacity-50:disabled{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
