@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,400&display=swap";:root{--paper:#fbfaf7;--paper-2:#f5f3ee;--paper-3:#eeeae2;--surface:#fff;--surface-sunken:#f8f6f1;--fg-1:#15181c;--fg-2:#3d424a;--fg-3:#6b7280;--fg-4:#97a0ac;--fg-on-accent:#fff;--border-1:#e4e0d7;--border-2:#d1ccc0;--border-3:#b7b0a1;--border-focus:#3f5f8f;--accent:#2d4a7c;--accent-hover:#243c66;--accent-press:#1c2f50;--accent-soft:#e8eef7;--accent-soft-2:#d2deef;--accent-fg:#1f3560;--success:#2f6f4f;--success-soft:#e4efe8;--success-fg:#1f4f36;--warning:#946a1f;--warning-soft:#f5ecd8;--warning-fg:#6b4a12;--danger:#9a3a2e;--danger-soft:#f2e1dd;--danger-fg:#6e2a21;--qc-draft:#6b7280;--qc-draft-soft:#eceae3;--qc-pending:#946a1f;--qc-pending-soft:#f5ecd8;--qc-approved:#2f6f4f;--qc-approved-soft:#e4efe8;--qc-stale:#9a3a2e;--qc-stale-soft:#f2e1dd;--font-sans:"Inter", ui-sans-serif, -apple-system, "Segoe UI", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-serif:"Source Serif 4", "Source Serif Pro", "Iowan Old Style", Georgia, serif;--fs-11:11px;--fs-12:12px;--fs-13:13px;--fs-14:14px;--fs-15:15px;--fs-17:17px;--fs-20:20px;--fs-24:24px;--fs-30:30px;--lh-tight:1.15;--lh-snug:1.3;--lh-normal:1.45;--lh-prose:1.6;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--tracking-eyebrow:.08em;--sp-1:2px;--sp-2:4px;--sp-3:6px;--sp-4:8px;--sp-5:12px;--sp-6:16px;--sp-7:20px;--sp-8:24px;--sp-9:32px;--sp-10:40px;--r-1:2px;--r-2:4px;--r-3:6px;--r-4:8px;--r-pill:999px;--shadow-1:0 1px 0 #14181c0a, 0 1px 2px #14181c0a;--shadow-2:0 1px 0 #14181c0a, 0 2px 6px #14181c0f, 0 0 0 1px #14181c0a;--shadow-pop:0 12px 32px #14181c29, 0 0 0 1px #14181c14;--focus-ring:0 0 0 3px #3f5f8f47;--ease-standard:cubic-bezier(.2, 0, .2, 1);--dur-1:80ms;--dur-2:.14s}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);font-family:var(--font-sans);font-size:var(--fs-14);line-height:var(--lh-normal);color:var(--fg-1);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4{font-weight:var(--fw-semibold);color:var(--fg-1);margin:0}.serif{font-family:var(--font-serif);font-weight:var(--fw-regular)}.eyebrow{font-size:var(--fs-11);font-weight:var(--fw-semibold);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--fg-3)}.num,code,.tnum{font-family:var(--font-mono);font-feature-settings:"tnum", "zero"}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:var(--focus-ring);outline:none}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{align-items:center;gap:var(--sp-6);height:48px;padding:0 var(--sp-6);background:var(--surface);border-bottom:1px solid var(--border-2);display:flex}.topbar-brand{font-family:var(--font-serif);font-size:var(--fs-17);color:var(--fg-1);font-weight:600}.topbar-nav{gap:var(--sp-2);display:flex}.topbar-nav a{padding:var(--sp-2) var(--sp-4);border-radius:var(--r-2);font-size:var(--fs-13);color:var(--fg-2)}.topbar-nav a:hover{background:var(--paper-2);color:var(--fg-1);text-decoration:none}.topbar-spacer{flex:1}.mandate-chip{align-items:center;gap:var(--sp-2);padding:3px var(--sp-4);border-radius:var(--r-2);font-size:var(--fs-12);border:1px solid;font-weight:500;text-decoration:none;display:inline-flex}.mandate-chip .dot{border-radius:var(--r-pill);width:6px;height:6px}.mandate-chip.on{background:var(--accent-soft);color:var(--accent-fg);border-color:var(--accent-soft-2)}.mandate-chip.on .dot{background:var(--accent)}.mandate-chip.off{background:var(--paper-2);color:var(--fg-3);border-color:var(--border-2)}.mandate-chip.off .dot{background:var(--fg-4)}.page{padding:var(--sp-8);flex:1;width:100%;max-width:980px;margin:0 auto}.page-head{margin-bottom:var(--sp-7)}.page-head h1{font-size:var(--fs-24);letter-spacing:-.01em;margin-bottom:var(--sp-2)}.page-sub{color:var(--fg-3);font-size:var(--fs-13)}.back-link{font-size:var(--fs-12);color:var(--fg-3);margin-bottom:var(--sp-4);display:inline-block}.card{background:var(--surface);border:1px solid var(--border-1);border-radius:var(--r-3);box-shadow:var(--shadow-1);margin-bottom:var(--sp-6)}.card-h{padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--border-1);align-items:center;gap:var(--sp-4);display:flex}.card-h h3{font-size:var(--fs-13);font-weight:600}.card-h .meta{font-size:var(--fs-11);color:var(--fg-3);font-family:var(--font-mono);margin-left:auto}.card-b{padding:var(--sp-6)}.btn{font-family:var(--font-sans);font-size:var(--fs-13);border-radius:var(--r-2);cursor:pointer;white-space:nowrap;transition:background var(--dur-2) var(--ease-standard);border:1px solid #0000;align-items:center;gap:6px;padding:6px 12px;font-weight:500;line-height:1.2;display:inline-flex}.btn:disabled{cursor:not-allowed;opacity:.5}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent-hover)}.btn.secondary{background:var(--surface);color:var(--fg-1);border-color:var(--border-2)}.btn.secondary:hover:not(:disabled){background:var(--paper-2)}.btn.ghost{color:var(--fg-2);background:0 0}.btn.ghost:hover:not(:disabled){background:var(--paper-2);color:var(--fg-1)}.btn.danger{background:var(--danger);color:#fff}.btn.danger:hover:not(:disabled){background:var(--danger-fg)}.btn.sm{font-size:var(--fs-12);padding:4px 8px}.field{margin-bottom:var(--sp-5)}.field label{font-size:var(--fs-12);color:var(--fg-2);margin-bottom:var(--sp-2);font-weight:500;display:block}.field input[type=text],.field input[type=number],.field input[type=file],.field textarea{width:100%;font-family:var(--font-sans);font-size:var(--fs-13);border-radius:var(--r-2);border:1px solid var(--border-2);background:var(--surface);color:var(--fg-1);padding:7px 10px}.field textarea{resize:vertical;line-height:1.5}.field .hint{font-size:var(--fs-11);color:var(--fg-3);margin-top:var(--sp-2)}.field-row{gap:var(--sp-5);align-items:flex-end;display:flex}.badge{border-radius:var(--r-pill);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid;align-items:center;gap:5px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-flex}.badge .dot{border-radius:var(--r-pill);width:5px;height:5px}.badge.status-active,.badge.status-uploaded,.badge.status-complete,.badge.status-accepted{background:var(--qc-approved-soft);color:var(--qc-approved);border-color:#bfd9c7}.badge.status-active .dot,.badge.status-uploaded .dot,.badge.status-complete .dot,.badge.status-accepted .dot{background:var(--qc-approved)}.badge.status-pending,.badge.status-running,.badge.status-awaiting_qc,.badge.status-awaiting_cost_approval,.badge.status-queued{background:var(--qc-pending-soft);color:var(--qc-pending);border-color:#e4d2a6}.badge.status-pending .dot,.badge.status-running .dot,.badge.status-awaiting_qc .dot,.badge.status-awaiting_cost_approval .dot,.badge.status-queued .dot{background:var(--qc-pending)}.badge.status-failed,.badge.status-rejected,.badge.status-abandoned{background:var(--qc-stale-soft);color:var(--qc-stale);border-color:#e1b9b0}.badge.status-failed .dot,.badge.status-rejected .dot,.badge.status-abandoned .dot{background:var(--qc-stale)}.badge.status-archived,.badge.status-superseded{background:var(--qc-draft-soft);color:var(--fg-2);border-color:var(--border-2)}.badge.status-archived .dot,.badge.status-superseded .dot{background:var(--qc-draft)}.banner{align-items:flex-start;gap:var(--sp-4);padding:var(--sp-5) var(--sp-6);border-radius:var(--r-2);font-size:var(--fs-13);margin-bottom:var(--sp-5);border:1px solid;display:flex}.banner.warning{background:var(--warning-soft);color:var(--warning-fg);border-color:#e4d2a6}.banner.danger{background:var(--danger-soft);color:var(--danger-fg);border-color:#dcb7af}.banner.info{background:var(--accent-soft);color:var(--accent-fg);border-color:var(--accent-soft-2)}.deal-list{margin:0;padding:0;list-style:none}.deal-row{align-items:center;gap:var(--sp-5);padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--border-1);display:flex;position:relative}.deal-row:last-child{border-bottom:none}.deal-row:hover{background:var(--paper-2)}.deal-name{font-family:var(--font-serif);font-size:var(--fs-15);color:var(--fg-1);font-weight:600}.deal-name a{color:inherit}.deal-name a:after{content:"";z-index:0;position:absolute;inset:0}.deal-meta{font-size:var(--fs-11);color:var(--fg-3);font-family:var(--font-mono)}.deal-row-spacer{flex:1}.empty-state{padding:var(--sp-9) var(--sp-6);text-align:center;color:var(--fg-3);font-size:var(--fs-13)}.upload-drop{border:1px dashed var(--border-2);border-radius:var(--r-3);padding:var(--sp-8);text-align:center;color:var(--fg-3);font-size:var(--fs-13);background:var(--surface-sunken)}.stage-rail{flex-direction:column;gap:0;display:flex}.stage-row{align-items:center;gap:var(--sp-5);padding:var(--sp-4) 0;border-bottom:1px solid var(--border-1);display:flex}.stage-row:last-child{border-bottom:none}.stage-name{width:110px;font-size:var(--fs-13);color:var(--fg-1);text-transform:capitalize;font-weight:500}.stage-attempt{font-size:var(--fs-11);color:var(--fg-3);font-family:var(--font-mono);width:70px}.stage-error{color:var(--danger-fg);font-size:var(--fs-12);flex:1}.stage-actions{margin-left:auto}.kpi-strip{gap:var(--sp-6);margin-bottom:var(--sp-6);display:flex}.kpi{background:var(--surface);border:1px solid var(--border-1);border-radius:var(--r-3);padding:var(--sp-5);flex:1}.kpi .lbl{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3);font-size:10px;font-weight:600}.kpi .val{font-family:var(--font-mono);font-feature-settings:"tnum", "zero";font-size:var(--fs-20);color:var(--fg-1);margin-top:var(--sp-2);font-weight:500}.qc-tally{gap:var(--sp-6);padding:var(--sp-4) var(--sp-6);background:var(--surface-sunken);border-bottom:1px solid var(--border-1);font-size:var(--fs-12);display:flex}.qc-tally b{font-family:var(--font-mono);font-feature-settings:"tnum", "zero"}.qc-tally .accepted b{color:var(--qc-approved)}.qc-tally .rejected b{color:var(--qc-stale)}.qc-tally .remaining b{color:var(--fg-2)}.qc-progress{background:var(--border-1);height:3px}.qc-progress-bar{background:var(--accent);height:100%;transition:width var(--dur-2) var(--ease-standard)}.qc-addback{padding:var(--sp-6)}.qc-addback-amount{font-family:var(--font-mono);font-feature-settings:"tnum", "zero";font-size:var(--fs-20);color:var(--fg-1);font-weight:500}.qc-addback-field{font-size:var(--fs-11);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3);margin-top:var(--sp-5);margin-bottom:var(--sp-1)}.qc-addback-value{font-size:var(--fs-13);color:var(--fg-1);line-height:var(--lh-prose)}.qc-addback-concern{color:var(--warning-fg)}.qc-quote{font-family:var(--font-serif);font-style:italic;font-size:var(--fs-13);color:var(--fg-2);background:var(--surface-sunken);border-left:2px solid var(--border-2);padding:var(--sp-3) var(--sp-5);margin-top:var(--sp-2)}.qc-actions{gap:var(--sp-4);margin-top:var(--sp-7);display:flex}.qc-review-list{margin:0;padding:0;list-style:none}.qc-review-row{align-items:center;gap:var(--sp-4);padding:var(--sp-3) 0;border-bottom:1px solid var(--border-1);font-size:var(--fs-13);display:flex}.qc-review-row:last-child{border-bottom:none}.qc-review-desc{flex:1}.qc-review-amount{font-family:var(--font-mono);font-feature-settings:"tnum", "zero"}.deliverable-row{align-items:center;gap:var(--sp-5);padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--border-1);display:flex}.deliverable-row:last-child{border-bottom:none}.deliverable-name{color:var(--fg-1);font-weight:500}.deliverable-meta{font-size:var(--fs-11);color:var(--fg-3);font-family:var(--font-mono)}.deliverable-spacer{flex:1}.loading{color:var(--fg-3);font-size:var(--fs-13);padding:var(--sp-6)}.dev-hint{font-size:var(--fs-11);color:var(--fg-3);margin-top:var(--sp-3)}.error-headline{align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.error-message{font-weight:500}.error-guidance{margin:var(--sp-3) 0 0;font-size:var(--fs-12)}.error-fields{margin:var(--sp-3) 0 0;padding-left:var(--sp-6);font-size:var(--fs-12)}.error-fields b{font-family:var(--font-mono)}.error-request-id{margin:var(--sp-3) 0 0;font-size:var(--fs-11);color:var(--fg-3)}.field-error{margin:var(--sp-2) 0 0;font-size:var(--fs-11);color:var(--danger-fg)}.stage-latest-event{font-size:var(--fs-11);color:var(--fg-3)}.event-timeline{margin:0;padding:0;list-style:none}.event-row{align-items:baseline;gap:var(--sp-4);padding:var(--sp-3) 0;border-bottom:1px solid var(--border-1);font-size:var(--fs-12);display:flex}.event-row:last-child{border-bottom:none}.event-row.event-problem .event-type{color:var(--danger-fg);font-weight:500}.event-stage{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--fg-3);width:90px}.event-time{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--fg-3);margin-left:auto}.event-detail{color:var(--fg-2);font-size:var(--fs-11);flex-basis:100%}.qc-current-decision{margin-top:var(--sp-5);font-size:var(--fs-12);color:var(--fg-2)}
