@import url('https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=Figtree:wght@400;500;600;700&display=swap');

:root{
  color-scheme:dark;
  --bg:#091a2a;
  --bg-deep:#071421;
  --surface:#10263a;
  --surface-raised:#153247;
  --surface-soft:#0d2032;
  --stroke:rgba(172,205,214,.17);
  --stroke2:rgba(172,205,214,.11);
  --text:#edf5f3;
  --muted:#b1c6c8;
  --muted2:#8fa9ad;
  --accent:#82d5c1;
  --accent-strong:#347f78;
  --accent-wash:rgba(130,213,193,.12);
  --warn:#e4c28a;
  --bad:#df999b;
  --good:#8bd4b8;
  --shadow:0 20px 52px rgba(0,8,19,.22);
  --radius:16px;
  --font-body:"Figtree",sans-serif;
  --font-display:"Syne",sans-serif;
}
*{box-sizing:border-box}
html{font-size:16px}
html,body{min-height:100%;scroll-behavior:smooth}
body{margin:0;color:var(--text);font-family:var(--font-body);background:radial-gradient(ellipse at 72% -20%,rgba(48,123,119,.18),transparent 48%),linear-gradient(155deg,#0b2031 0%,var(--bg) 55%,#0a1b2a 100%);overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E");z-index:-1}
a{color:#a8e0d3;text-decoration:none}a:hover{color:#d0f2e9}
button,input,select,textarea{font:inherit}
.wrap{position:relative;width:min(100% - 48px,1600px);margin:0 auto;padding:25px 0 60px;min-height:100dvh}
.topbar{position:fixed;z-index:20;inset:20px auto 20px max(18px,calc((100vw - 1600px)/2));width:236px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:26px;padding:18px 13px;border:1px solid var(--stroke);border-radius:20px;background:rgba(9,27,42,.93);box-shadow:0 18px 44px rgba(0,8,19,.24);backdrop-filter:blur(16px)}
.brand{display:flex;align-items:center;gap:11px;padding:5px 5px 17px;border-bottom:1px solid var(--stroke2)}
.brand-mark{display:grid;place-items:center;width:42px;height:42px;flex:none;border:1px solid rgba(130,213,193,.4);border-radius:12px;background:linear-gradient(145deg,#214d57,#123242);color:#d9f4ec}
.brand-copy{display:grid;gap:1px}.brand-name{color:#edf5f3}.brand-acronym{color:var(--muted2)}
.synthetic-badge{display:block;margin:0 2px;padding:7px 9px;border:1px solid rgba(228,194,138,.35);border-radius:8px;background:rgba(228,194,138,.09);color:#f0d9ad}
.nav{display:flex;flex-direction:column;align-items:stretch;gap:5px}.nav form{margin:0}.nav .nav-label{margin:2px 10px 7px;color:#78969d}
.pill{display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:11px 12px;border:1px solid transparent;border-radius:10px;background:transparent;color:#afc2c5;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease}
.pill:hover{background:rgba(255,255,255,.05);color:#f3f8f7}.pill.primary{border-color:rgba(130,213,193,.22);background:rgba(73,155,140,.16);color:#c9eee4}
.nav .nav-spacer{height:1px;margin:12px 4px;background:var(--stroke2)}
.nav .nav-foot{margin-top:auto}
.header{margin:0 0 22px;padding:0 2px}.h1,h1{margin:0;color:#f0f7f5}
h2,h3{color:#edf5f3}
.header .section-sub{margin-top:8px}.page-content{margin-left:264px}
.card{min-width:0;border:1px solid var(--stroke);border-radius:var(--radius);background:linear-gradient(150deg,rgba(20,47,66,.96),rgba(13,34,51,.97));box-shadow:var(--shadow)}
.card.pad{padding:22px}
.muted{color:var(--muted)}.muted2{color:var(--muted2)}
.section-title{margin:0 0 5px;color:#eef6f4}
.section-sub{margin:0;color:var(--muted)}
.eyebrow{margin:0 0 8px;color:#8dd5c5}
.grid{display:grid;gap:14px}.grid>*{min-width:0}.grid.cols2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols5{grid-template-columns:repeat(5,minmax(0,1fr))}
.k{color:#bdcfce}
.v{margin-top:8px;color:#f3f8f6;font-family:var(--font-display);font-size:21px;font-weight:700;line-height:1.25;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.small{margin-top:6px;color:var(--muted2)}
.badge{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--stroke);border-radius:9px;background:rgba(255,255,255,.035);color:#dce9e7;white-space:nowrap}
.badge.blue{border-color:rgba(130,213,193,.3);background:var(--accent-wash);color:#c8eee4}.badge.amber{border-color:rgba(228,194,138,.34);background:rgba(228,194,138,.1);color:#f0d9ad}.badge.red{border-color:rgba(223,153,155,.36);background:rgba(223,153,155,.1);color:#f1c6c7}.badge.green{border-color:rgba(139,212,184,.32);background:rgba(139,212,184,.1);color:#c1e9d9}
.hr{height:1px;background:var(--stroke2);margin:17px 0}
table{width:100%;border-collapse:collapse;color:#e5efed}th,td{padding:11px 12px;border-bottom:1px solid var(--stroke2);text-align:left;vertical-align:top}th{color:#b8cdca;background:rgba(255,255,255,.025)}tr:last-child td{border-bottom:0}
.onboarding-form{max-width:720px}.onboarding-form label{display:block;margin:16px 0 7px;color:#e0ece9}
.onboarding-form input:not([type=checkbox]):not([type=radio]),.onboarding-form select,.onboarding-form textarea,.wrap input:not([type=checkbox]):not([type=radio]),.wrap select,.wrap textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid rgba(172,205,214,.24);border-radius:9px;background:#0b2031;color:#f1f7f5;outline:none}
.onboarding-form textarea,.wrap textarea{min-height:110px;resize:vertical}.onboarding-form input:focus,.onboarding-form select:focus,.onboarding-form textarea:focus,.wrap input:focus,.wrap select:focus,.wrap textarea:focus{border-color:#82d5c1;box-shadow:0 0 0 3px rgba(130,213,193,.13)}
.onboarding-form input[type=checkbox],.wrap input[type=checkbox]{accent-color:#82d5c1}
.onboarding-form button,.btn-primary,.wrap button[type=submit]:not(.pill){display:inline-flex;align-items:center;justify-content:center;min-height:42px;margin-top:16px;padding:10px 16px;border:1px solid rgba(130,213,193,.34);border-radius:9px;background:#347f78;color:#f3f8f7;cursor:pointer;transition:background .18s ease,transform .18s ease}
.onboarding-form button:hover,.btn-primary:hover,.wrap button[type=submit]:not(.pill):hover{background:#3d9588;transform:translateY(-1px)}
.onboarding-form .errorlist,.errorlist{margin:6px 0;padding-left:18px;color:#efb4b8}.helptext{display:block;margin-top:6px;color:var(--muted2)}
.alert{margin:12px 0;padding:11px 13px;border:1px solid var(--stroke);border-radius:10px;background:rgba(255,255,255,.04);color:#e6efed}.alert.error,.alert.danger{border-color:rgba(223,153,155,.35);background:rgba(223,153,155,.09)}.alert.success{border-color:rgba(139,212,184,.34);background:rgba(139,212,184,.08)}
.owner-shell{display:grid;gap:14px;margin-top:14px}.owner-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}
.owner-kpi{position:relative;min-width:0;min-height:140px;padding:17px;border:1px solid var(--stroke2);border-radius:14px;background:linear-gradient(150deg,rgba(255,255,255,.05),rgba(255,255,255,.018));overflow:hidden}
.owner-kpi:before{content:"";position:absolute;top:0;left:17px;width:30px;height:2px;background:var(--accent);opacity:.8}
.owner-kpi .k{min-height:28px;color:#bdcfce}
.owner-kpi .v{margin-top:9px;font-size:clamp(18px,1.8vw,24px)}.kpi-context{margin-top:8px;color:#9eafb2}
.risk-line{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;padding:14px;border:1px solid var(--stroke2);border-radius:12px;background:rgba(8,21,36,.36)}
.risk-facts{display:flex;gap:8px 16px;flex-wrap:wrap;color:var(--muted)}.break-even{flex-basis:100%;margin-top:3px;color:#c6d6d2}
.actions-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}
.priority-card,.action-card{min-width:0;padding:19px;border:1px solid var(--stroke2);border-radius:14px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.015))}
.priority-card{border-top:2px solid rgba(130,213,193,.52)}.action-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;flex-wrap:wrap}
.action-topic{color:#a9d4cb}
.action-title{margin:9px 0 0;color:#edf5f3}
.action-copy{margin:8px 0 0;color:#bdcfce}
.action-list{margin:7px 0 10px;padding-left:18px;color:#dbe8e5}.action-list li+li{margin-top:5px}
.action-label{margin-top:14px;color:#a9c9c3}
.priority-number{display:inline-grid;place-items:center;width:25px;height:25px;margin-right:7px;border:1px solid rgba(130,213,193,.35);border-radius:8px;background:rgba(130,213,193,.1);color:#d9f1eb}
.tagpill{display:inline-flex;align-items:center;max-width:100%;padding:4px 8px;border:1px solid rgba(172,205,214,.18);border-radius:7px;background:rgba(255,255,255,.035);color:#c6d6d2;white-space:nowrap}
.tagpill.red{border-color:rgba(223,153,155,.35);background:rgba(223,153,155,.1);color:#f0c1c3}.tagpill.orange{border-color:rgba(228,194,138,.35);background:rgba(228,194,138,.1);color:#eed9b0}.tagpill.green{border-color:rgba(139,212,184,.34);background:rgba(139,212,184,.1);color:#c2e9d9}
.primary-flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.flow-panel{min-width:0;padding:19px;border:1px solid var(--stroke2);border-radius:14px;background:rgba(7,20,35,.30)}
.flow-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.chartBox{height:300px;max-width:100%;margin-top:13px;padding:12px;border:1px solid var(--stroke2);border-radius:11px;background:rgba(5,17,30,.38)}.chartBox canvas{width:100%!important;height:100%!important}
.legendrow{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:11px;color:#c1d2cf}.legenditem{display:inline-flex;align-items:center;gap:6px}.legenddot{width:8px;height:8px;border-radius:50%;background:#8dd5c5}.legenddot.received{background:#8dd5c5}.legenddot.paid{background:#e4c28a}.legenddot.closing{background:#70a7bd}
.chart-missing{display:none;margin-top:10px;padding:10px 12px;border:1px solid var(--stroke2);border-radius:9px;color:var(--muted)}
.details-block{margin-top:14px}.details-block>summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px}.details-block>summary::-webkit-details-marker{display:none}.details-block>summary:after{content:"＋";color:#b7c6d7;font-size:18px}.details-block[open]>summary:after{content:"−"}.detail-body{padding:0 18px 18px}.detail-section+.detail-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--stroke2)}
.table-scroll{max-width:100%;overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.data-table th,.data-table td{padding:9px 10px;border-bottom:1px solid var(--stroke2);text-align:left;white-space:nowrap}.data-table th{color:#b7c6d7}.data-table td.right,.data-table th.right{text-align:right}
.source-note{max-width:950px;color:#bacdca}.table-wrap{max-width:100%;overflow-x:auto;margin:10px 0;border:1px solid var(--stroke2);border-radius:11px}.table-wrap table{min-width:640px}
.overview-section{margin-top:15px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:14px}.section-kicker{color:#8dd5c5}
.availability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:15px}.availability-item{padding:12px;border:1px solid var(--stroke2);border-radius:10px;background:rgba(255,255,255,.025)}.availability-item strong{display:block;color:#dce9e6}.availability-item span{display:block;margin-top:4px;color:#95abad}
.diagnostic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.diagnostic-item{padding:12px 13px;border:1px solid var(--stroke2);border-radius:10px;background:rgba(255,255,255,.025)}.diagnostic-item .v{font-size:16px;margin-top:5px}
.table-overflow{max-width:100%;overflow-x:auto}
.upload-page section:not(.card){margin:18px 0;padding:18px;border:1px solid var(--stroke2);border-radius:13px;background:rgba(16,35,58,.66)}
.upload-page form{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:14px 0}.upload-page form label{display:block;margin:8px 0 6px;color:#d7e1ec}.upload-page form>input,.upload-page form>select{width:auto;min-width:180px}.upload-page ul{padding-left:20px;color:#d7e1ec}.upload-page li{padding:5px 0}.upload-page [type=file]{max-width:100%;padding:10px;border:1px dashed rgba(172,205,214,.3);border-radius:10px;background:rgba(8,22,38,.42);color:#cbd7e4}
.upload-page button[type=submit]{margin-top:0}.upload-page .btn-primary{margin-right:8px}.progress-list{display:grid;gap:8px;padding-left:24px}.progress-list li{padding:10px 12px;border:1px solid var(--stroke2);border-radius:9px;background:rgba(255,255,255,.025)}
.profile-list{display:grid;grid-template-columns:minmax(150px,.35fr) 1fr;gap:0 16px}.profile-list dt,.profile-list dd{margin:0;padding:9px 0;border-bottom:1px solid var(--stroke2)}.profile-list dt{color:var(--muted)}.profile-list dd{color:#e2e9f1}
code{padding:2px 6px;border:1px solid var(--stroke);border-radius:6px;background:rgba(255,255,255,.05);font-family:ui-monospace,monospace;font-size:12px}
:focus-visible{outline:2px solid #9ac2e8;outline-offset:3px}
@media(max-width:1250px){.topbar{width:208px}.page-content{margin-left:232px}.owner-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.actions-grid,.primary-flow{grid-template-columns:1fr}}
@media(max-width:1050px){.actions-grid,.primary-flow,.grid.cols2,.grid.cols3{grid-template-columns:1fr}.availability-grid{grid-template-columns:1fr}}
@media(max-width:760px){.wrap{width:min(100% - 24px,1280px);padding:12px 0 42px}.topbar{position:relative;inset:auto;width:100%;align-items:flex-start;flex-direction:row;flex-wrap:wrap;gap:12px;padding:11px;border-radius:14px}.brand{min-width:0;flex:1;padding:0;border:0}.nav{width:100%;flex-direction:row;justify-content:flex-start;flex-wrap:wrap;gap:5px}.nav .nav-label,.nav .nav-spacer{display:none}.nav .nav-foot{margin-top:0}.pill{padding:8px 9px}.synthetic-badge{width:100%;order:3}.page-content{margin-left:0}.owner-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.card.pad{padding:16px}.flow-panel{padding:13px}.chartBox{height:270px}.detail-body{padding:0 12px 14px}.details-block>summary{padding:14px 12px}.profile-list{grid-template-columns:1fr}.profile-list dt{padding-bottom:1px;border-bottom:0}.profile-list dd{padding-top:2px}.upload-page form{display:block}.upload-page form>input,.upload-page form>select{width:100%}.section-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:390px){.owner-kpis,.diagnostic-grid{grid-template-columns:1fr}.owner-kpi{min-height:unset}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Pilot intelligence overview */
.business-context{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);align-items:center;gap:18px}
.business-context .section-title{margin-top:5px}
.driver-list{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.driver-chip{display:inline-flex;max-width:100%;padding:7px 10px;border:1px solid rgba(130,213,193,.2);border-radius:8px;background:rgba(130,213,193,.07);color:#c9e5df}
.chart-legend{margin:0 0 10px}
.chart-legend [hidden]{display:none}
.legenddot.actual-dot{background:#82d5c1}
.legenddot.expected-dot{background:#70a7bd}
.legenddot.budget-dot{background:#e4c28a}
.legenddot.target-dot{background:#d5a86e}
.legenddot.pipeline-dot{background:#9dc0a7}
.legenddot.receipt-existing{background:#82d5c1}
.legenddot.receipt-sales{background:#69b9a5}
.legenddot.receipt-other{background:#70a7bd}
.legenddot.payment-fixed{background:#e4c28a}
.legenddot.payment-variable{background:#c79a69}
.legenddot.payment-suppliers{background:#df999b}
.legenddot.payment-other{background:#b48d89}
.component-legend{gap:7px 12px}
.chartBox-wide{height:340px}
.sales-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:12px}
.metric-strip{min-width:0;padding:12px 13px;border:1px solid var(--stroke2);border-radius:10px;background:rgba(255,255,255,.025)}
.metric-strip .v{margin-top:5px;font-size:16px}
.explanation-block{margin-top:15px;padding:14px 15px;border-left:2px solid rgba(130,213,193,.55);border-radius:0 9px 9px 0;background:rgba(130,213,193,.045)}
.explanation-list{display:grid;gap:6px;margin:8px 0 0;padding-left:17px;color:#cfddda}
.sales-forward-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:11px}
.sales-forward-grid .availability-item{padding:10px 12px}
.fixed-cost-total{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;padding:12px 13px;border:1px solid rgba(130,213,193,.18);border-radius:10px;background:rgba(130,213,193,.055);color:#c2d9d5}
.fixed-cost-total strong{color:#edf5f3;font-variant-numeric:tabular-nums;text-align:right}
.pipeline-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}
.metric-strip,.availability-item,.diagnostic-item{overflow-wrap:anywhere}
@media(max-width:1050px){.business-context{grid-template-columns:1fr}.driver-list{justify-content:flex-start}.pipeline-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.chartBox-wide{height:285px}.sales-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.sales-forward-grid{grid-template-columns:1fr}.pipeline-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:390px){.sales-metrics,.pipeline-metrics{grid-template-columns:1fr}.fixed-cost-total{align-items:flex-start;flex-direction:column}.fixed-cost-total strong{text-align:left}}

/* BFI owner workspace refinements */
.brand{min-height:54px}
.brand-logo{display:block;width:82px;height:auto;max-height:42px;object-fit:contain;flex:none}
.brand-copy{min-width:0}
.topbar{background:rgba(8,25,41,.97)}
.pill:focus-visible,.btn-primary:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #9de5d3;outline-offset:3px}
.owner-kpi .v,.diagnostic-item .v,.metric-strip .v,.fixed-cost-total strong{overflow-wrap:anywhere;word-break:normal}
.guidance-summary{max-width:900px;padding:13px 15px;border-left:2px solid var(--accent);border-radius:0 10px 10px 0;background:rgba(130,213,193,.07)}
.action-card{padding:clamp(17px,2vw,23px);background:linear-gradient(145deg,rgba(25,55,72,.8),rgba(12,32,49,.86))}
.action-card .action-topic{color:#b7ecdd}
.action-impact{margin:7px 0 10px;color:#edf5f3;overflow-wrap:anywhere}
.action-label{margin-top:16px}
.checklist-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 22px;margin:18px 0 0;padding:0;list-style:none}
.checklist-list li{padding:11px 12px;border:1px solid var(--stroke2);border-radius:9px;background:rgba(255,255,255,.025);color:#dce9e6}
.checklist-list li:before{content:"";display:inline-block;width:6px;height:6px;margin:0 10px 1px 0;border-radius:50%;background:var(--accent)}
.journey{display:flex;flex-wrap:wrap;gap:7px;margin:17px 0 20px;padding:0;list-style:none}
.journey span{padding:7px 10px;border:1px solid var(--stroke2);border-radius:8px;color:#afc2c5}
.journey span+span:before{content:"›";margin-right:9px;color:#658b8b}
.journey .is-current{border-color:rgba(130,213,193,.45);background:var(--accent-wash);color:#d5f2e9}
.processing-note{margin:17px 0;padding:15px;border:1px solid rgba(228,194,138,.28);border-radius:11px;background:rgba(228,194,138,.06)}
.processing-note strong{color:#f0d9ad}
.analysis-checklist{margin-bottom:16px}
.upload-intro{max-width:800px}
.upload-form{display:block!important}
.upload-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.upload-dataset{min-width:0;padding:17px;border:1px solid var(--stroke);border-radius:13px;background:linear-gradient(150deg,rgba(23,52,71,.82),rgba(11,31,48,.82))}
.upload-dataset-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.upload-dataset h2{margin:0}
.upload-purpose{min-height:42px;margin:9px 0;color:#bdcfce}
.dataset-status{display:inline-flex;padding:5px 8px;border:1px solid var(--stroke);border-radius:7px;color:#cfddda;white-space:nowrap}
.dataset-status.ready,.dataset-status.uploaded{border-color:rgba(139,212,184,.33);background:rgba(139,212,184,.08);color:#c1e9d9}
.dataset-status.attention{border-color:rgba(223,153,155,.34);background:rgba(223,153,155,.08);color:#f1c6c7}
.dataset-status.validating{border-color:rgba(228,194,138,.34);background:rgba(228,194,138,.08);color:#f0d9ad}
.upload-dataset label{display:block;margin:12px 0 6px;color:#dce9e6}
.upload-dataset input[type=file]{width:100%;min-width:0;max-width:100%;padding:9px;border:1px dashed rgba(172,205,214,.35);border-radius:9px;background:rgba(8,22,38,.42);color:#dce9e6}
.dataset-meta{margin:9px 0 0;color:#9db4b5;overflow-wrap:anywhere}
.upload-hint{padding:12px 14px;border-left:2px solid var(--accent);background:rgba(130,213,193,.06);color:#dce9e6}
.upload-submit-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0}
.upload-submit-row .btn-primary{margin:0}
.upload-legacy{margin-top:14px;padding:12px 14px;border:1px solid var(--stroke2);border-radius:10px;background:rgba(255,255,255,.02)}
.upload-legacy summary{cursor:pointer;color:#c9eee4}
.upload-progress{display:none;align-items:center;gap:10px;margin:12px 0;padding:12px 14px;border:1px solid rgba(130,213,193,.3);border-radius:10px;background:rgba(130,213,193,.07);color:#d5f2e9}
.upload-progress.is-visible{display:flex}
.upload-progress:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--accent);animation:uploadPulse 1.3s ease-in-out infinite}
@keyframes uploadPulse{50%{opacity:.38;transform:scale(.78)}}
.upload-dataset-error{color:#f1c6c7}
.upload-stage{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0}
.upload-stage span{padding:7px 10px;border:1px solid var(--stroke2);border-radius:8px;color:#afc2c5}
.upload-stage .is-current{border-color:rgba(130,213,193,.4);background:var(--accent-wash);color:#d5f2e9}
.upload-page section:not(.card){background:rgba(13,34,51,.78)}
.upload-page table{min-width:650px}
.upload-progress:not(.is-visible){display:none}
.upload-submit-row button:disabled{opacity:.72;cursor:wait;transform:none}
.card[aria-labelledby="login-heading"],.card[aria-labelledby="application-heading"],.card[aria-labelledby="reset-heading"]{max-width:760px;margin-inline:auto}
.onboarding-form p{margin:16px 0}
.onboarding-form p label{display:block;margin:0 0 7px;color:#e0ece9}
.onboarding-form p input:not([type=checkbox]),.onboarding-form p select,.onboarding-form p textarea{width:100%}
.onboarding-form .helptext{max-width:680px}
@media(max-width:1050px){.actions-grid{grid-template-columns:1fr}.upload-cards{grid-template-columns:1fr}.upload-purpose{min-height:0}.checklist-list{grid-template-columns:1fr}}
@media(max-width:900px){.owner-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.brand-logo{width:66px;max-height:36px}.upload-page form{display:block}.upload-submit-row{align-items:flex-start;flex-direction:column}.upload-dataset{padding:14px}.journey{gap:5px}}
@media(max-width:390px){.brand-logo{width:58px}.upload-dataset-head{flex-direction:column}.owner-kpis{grid-template-columns:1fr}}

/* Baseline Financial Intelligence brand alignment */
:root{
  color-scheme:light;
  --bg:#F7F9FC;--bg-deep:#071528;--surface:#FFFFFF;--surface-raised:#FFFFFF;--surface-soft:#F7F9FC;
  --stroke:#E3E8F0;--stroke2:#E3E8F0;--text:#101828;--muted:#5A6B85;--muted2:#5A6B85;
  --accent:#2F6BFF;--accent-strong:#2458D8;--accent-wash:#EDF3FF;--warn:#98651A;--bad:#B42318;--good:#19734A;
  --shadow:0 8px 24px rgba(16,24,40,.055);--radius:16px;
  --font-body:"Figtree",sans-serif;--font-display:"Syne",sans-serif;
}
body{color:var(--text);background:var(--bg)}
body:before{display:none}
a{color:#2458D8}a:hover{color:#1746B5}
.wrap{width:min(100% - 48px,1500px);padding-top:24px}
.page-content{max-width:1200px}
.topbar{background:#0B1F3A;border-color:rgba(255,255,255,.12);box-shadow:0 14px 36px rgba(7,21,40,.18);backdrop-filter:none}
.brand{gap:10px}
.brand-logo{width:74px;max-height:40px}
.brand-copy{display:block}
.brand-name{display:block;color:#fff;white-space:nowrap}
.brand-period{color:#7FA6FF}
.pill{border-radius:50px;color:#D7E0EF;padding:12px 15px}
.pill:hover{background:rgba(255,255,255,.09);color:#fff}
.pill.primary{border-color:#2F6BFF;background:#2F6BFF;color:#fff}
.page-content .pill:not(.primary){border-color:#D5DDE9;color:#34445C;background:transparent}
.page-content .pill:not(.primary):hover{border-color:#2F6BFF;color:#2458D8;background:#EDF3FF}
.page-content .pill{min-height:48px;justify-content:center}
.nav .nav-label{color:#AAB9CE}
.nav .nav-spacer{background:rgba(255,255,255,.14)}
.header{margin-bottom:25px}
.h1,h1{color:#101828}
h2,h3{color:#101828}
.section-title{color:#101828}
.eyebrow,.section-kicker{color:#2458D8}
.driver-chip{color:#34445C;border-color:#D5E2FF;background:#EDF3FF}
.section-sub,.muted,.small,.source-note,.helptext{color:#5A6B85}
.card{border:1px solid #E3E8F0;border-radius:16px;background:#fff;box-shadow:var(--shadow)}
.card.pad{padding:24px}
.owner-kpi,.priority-card,.action-card,.flow-panel,.metric-strip,.availability-item,.diagnostic-item,.upload-dataset,.progress-list li,.checklist-list li{
  border-color:#E3E8F0;background:#fff;box-shadow:0 3px 12px rgba(16,24,40,.035)
}
.owner-kpi:before{background:#2F6BFF}
.k,.owner-kpi .k,.metric-strip .k{color:#5A6B85}
.v,.owner-kpi .v,.diagnostic-item .v,.metric-strip .v{color:#101828}
.kpi-context,.action-copy,.action-list,.action-label,.action-title,.action-impact,.availability-item strong,.availability-item span,
.diagnostic-item,.risk-facts,.break-even,.dataset-meta,.upload-purpose,.upload-dataset label,.upload-page ul,
.checklist-list li,.journey span,.upload-stage span,.profile-list dd{color:#34445C}
.badge{border-color:#E3E8F0;background:#F7F9FC;color:#34445C}
.badge.blue{border-color:#C9D8FF;background:#EDF3FF;color:#2458D8}
.badge.amber{border-color:#F0D7A8;background:#FFF8E8;color:#80530D}
.badge.red{border-color:#F4C7C3;background:#FFF1F0;color:#B42318}
.badge.green{border-color:#B8E2CB;background:#ECF8F0;color:#19734A}
.hr{background:#E3E8F0}
table{color:#34445C}th{background:#F3F6FA;color:#5A6B85}td{color:#34445C}
.data-table th,.data-table td{border-bottom-color:#E3E8F0}
.data-table th{color:#5A6B85}
.onboarding-form label,.onboarding-form p label,.upload-page form label{color:#34445C}
.onboarding-form input:not([type=checkbox]):not([type=radio]),.onboarding-form select,.onboarding-form textarea,
.wrap input:not([type=checkbox]):not([type=radio]),.wrap select,.wrap textarea{
  border:1px solid #D5DDE9;border-radius:10px;background:#fff;color:#101828
}
.onboarding-form input:focus,.onboarding-form select:focus,.onboarding-form textarea:focus,.wrap input:focus,.wrap select:focus,.wrap textarea:focus{
  border-color:#2F6BFF;box-shadow:0 0 0 3px rgba(47,107,255,.14)
}
.onboarding-form input[type=checkbox],.wrap input[type=checkbox]{accent-color:#2F6BFF}
.onboarding-form button,.btn-primary,.wrap button[type=submit]:not(.pill){
  min-height:48px;border:1px solid #2F6BFF;border-radius:50px;background:#2F6BFF;color:#fff
}
.onboarding-form button:hover,.btn-primary:hover,.wrap button[type=submit]:not(.pill):hover,.page-content .pill.primary:hover{background:#1E56E0;border-color:#1E56E0;color:#fff}
.errorlist{color:#B42318}
.alert{border-color:#E3E8F0;background:#F7F9FC;color:#34445C}
.alert.error,.alert.danger{border-color:#F4C7C3;background:#FFF1F0;color:#B42318}
.alert.success{border-color:#B8E2CB;background:#ECF8F0;color:#19734A}
.risk-line{border-color:#E3E8F0;background:#F7F9FC}
.risk-status{color:#34445C}
.action-topic,.action-card .action-topic{color:#2458D8}
.action-label{color:#5A6B85}
.priority-card{border-top:2px solid #2F6BFF}
.priority-number{border-color:#C9D8FF;background:#EDF3FF;color:#2458D8}
.tagpill{border-color:#E3E8F0;background:#F7F9FC;color:#34445C}
.tagpill.red{border-color:#F4C7C3;background:#FFF1F0;color:#B42318}
.tagpill.orange{border-color:#F0D7A8;background:#FFF8E8;color:#80530D}
.tagpill.green{border-color:#B8E2CB;background:#ECF8F0;color:#19734A}
.flow-panel{background:#FBFCFE}
.chartBox{border-color:#E3E8F0;background:#FBFCFE}
.legendrow{color:#5A6B85}
.legenddot{background:#2F6BFF}
.legenddot.received,.legenddot.actual-dot,.legenddot.receipt-existing{background:#2F6BFF}
.legenddot.expected-dot{background:#9BB9FF}
.legenddot.budget-dot{background:#6A7FA5}
.legenddot.target-dot{background:#8495B2}
.legenddot.pipeline-dot{background:#B2C2DA}
.legenddot.receipt-sales{background:#5D8EFF}
.legenddot.receipt-other{background:#A6B8D3}
.legenddot.paid,.legenddot.payment-fixed{background:#546987}
.legenddot.payment-variable{background:#7489A8}
.legenddot.payment-suppliers{background:#9AAAC2}
.legenddot.payment-other{background:#C0CAD8}
.legenddot.closing{background:#8AA7D9}
.details-block>summary:after{color:#5A6B85}
.table-wrap{border-color:#E3E8F0}
.overview-section{margin-top:17px}
.section-heading{margin-bottom:16px}
.availability-item strong{color:#34445C}
.availability-item span{color:#5A6B85}
.diagnostic-item .k{color:#5A6B85}
.upload-page section:not(.card){border-color:#E3E8F0;border-radius:16px;background:#fff;box-shadow:var(--shadow)}
.upload-page [type=file],.upload-dataset input[type=file]{
  border:1px dashed #AAB8CD;border-radius:10px;background:#F7F9FC;color:#34445C
}
.upload-page input[type=file]::file-selector-button,.upload-dataset input[type=file]::file-selector-button{
  margin-right:10px;padding:8px 12px;border:0;border-radius:50px;background:#EDF3FF;color:#2458D8;cursor:pointer
}
.upload-page input[type=file]::file-selector-button:hover,.upload-dataset input[type=file]::file-selector-button:hover{background:#DDE8FF}
.upload-dataset{border-radius:14px}
.dataset-status{border-color:#E3E8F0;background:#F7F9FC;color:#34445C}
.dataset-status.ready,.dataset-status.uploaded{border-color:#B8E2CB;background:#ECF8F0;color:#19734A}
.dataset-status.attention{border-color:#F4C7C3;background:#FFF1F0;color:#B42318}
.dataset-status.validating{border-color:#C9D8FF;background:#EDF3FF;color:#2458D8}
.upload-hint,.explanation-block,.guidance-summary{border-color:#2F6BFF;background:#EDF3FF;color:#34445C}
.explanation-list{color:#34445C}
.fixed-cost-total{border-color:#D8E3F7;background:#F3F7FF;color:#34445C}
.fixed-cost-total strong{color:#101828}
.journey span,.upload-stage span{border-color:#E3E8F0;color:#5A6B85}
.journey .is-current,.upload-stage .is-current{border-color:#AFC5FF;background:#EDF3FF;color:#2458D8}
.processing-note{border-color:#F0D7A8;background:#FFF8E8;color:#5D4826}
.processing-note strong{color:#80530D}
.upload-legacy{border-color:#E3E8F0;background:#F7F9FC}
.upload-legacy summary{color:#2458D8}
.upload-progress{border-color:#C9D8FF;background:#EDF3FF;color:#2458D8}
.upload-progress:before{background:#2F6BFF}
.upload-dataset-error{color:#B42318}
.card[aria-labelledby="login-heading"],.card[aria-labelledby="application-heading"],.card[aria-labelledby="reset-heading"]{max-width:760px}
.brand:focus-visible,.pill:focus-visible,.btn-primary:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #7FA6FF;outline-offset:3px}
.assessment-card{background:linear-gradient(145deg,#0B1F3A,#071528);border-color:#0B1F3A}
.assessment-card .section-kicker{color:#9BB9FF}
.assessment-card .section-title,.assessment-card .owner-summary{color:#fff}
.assessment-card .owner-summary{max-width:920px}
.synthetic-badge{border-color:rgba(255,209,102,.35);background:rgba(255,209,102,.1);color:#FFE2A3}
.chart-missing{border-color:#E3E8F0;color:#5A6B85}
@media(max-width:1250px){
  .wrap{width:min(100% - 40px,1500px)}
  .topbar .brand-logo{width:58px}
}
@media(max-width:1050px){.guidance-summary{max-width:none}}
@media(max-width:760px){
  .wrap{width:min(100% - 24px,1280px);padding-top:12px}
  .topbar{background:#0B1F3A}
  .brand{flex:0 0 auto}
  .brand-logo{width:62px;max-height:36px}
  .nav{justify-content:flex-start}
  .pill{min-height:42px}
}
@media(max-width:390px){.brand-logo{width:55px}}

/* BFI typography follows the live Baseline brand system. */
body{
  font-family:var(--font-body);
  font-size:16px;
  font-weight:400;
  line-height:1.75;
  letter-spacing:normal;
  text-transform:none;
}
.brand-name{
  font-family:var(--font-display);
  font-size:1.35rem;
  font-weight:700;
  line-height:1.1;
  letter-spacing:-.02em;
}
.h1,h1{
  font-family:var(--font-display);
  font-size:clamp(2.5rem,5.4vw,4.2rem);
  font-weight:700;
  line-height:1.15;
  letter-spacing:-.02em;
}
h2,h3,.section-title,.action-title{
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.15;
  letter-spacing:-.02em;
}
.section-title,h2{font-size:clamp(1.6rem,3vw,2.2rem)}
h3,.action-title,.upload-dataset h2{
  font-size:clamp(1.4rem,2.6vw,1.9rem);
}
h3.section-title{font-size:clamp(1.4rem,2.6vw,1.9rem)}
.header .section-sub{
  font-family:var(--font-body);
  font-size:clamp(1rem,1.6vw,1.15rem);
  font-weight:400;
  line-height:1.75;
}
.owner-summary,.action-copy,
.section-sub,.source-note,.helptext,.small,.kpi-context,
.action-list,.upload-purpose,.upload-hint,.explanation-list,
.risk-facts,.break-even,.profile-list,.checklist-list li,.availability-item span,
.journey span,.upload-stage span,.processing-note,.guidance-summary{
  font-family:var(--font-body);
  font-weight:400;
  line-height:1.75;
  letter-spacing:normal;
  text-transform:none;
}
.owner-summary,.action-copy{font-size:16px}
.section-sub,.source-note,.helptext,.small,.kpi-context,.dataset-meta,.action-list,
.upload-purpose,.upload-hint,.explanation-list,.risk-facts,.break-even,
.profile-list,.checklist-list li,.availability-item span,.journey span,
.upload-stage span,.processing-note,.guidance-summary{
  font-size:.95rem;
}
.nav .pill{
  font-family:var(--font-body);
  font-size:.9rem;
  font-weight:500;
  line-height:1.75;
  letter-spacing:normal;
  text-transform:none;
}
.pill,.btn-primary,.upload-submit-row button{
  font-family:var(--font-body);
  font-size:.95rem;
  font-weight:600;
  line-height:1.75;
  letter-spacing:normal;
  text-transform:none;
}
.onboarding-form label,.onboarding-form p label,.upload-page form label,
.upload-dataset label{
  font-family:var(--font-body);
  font-size:.88rem;
  font-weight:600;
  line-height:1.75;
  letter-spacing:normal;
  text-transform:none;
}
.onboarding-form label:has(input[type=checkbox]),
.onboarding-form label:has(+ input[type=checkbox]),
.onboarding-form p:has(input[type=checkbox]) label,
.upload-page label:has(input[type=checkbox]),
.upload-page label:has(+ input[type=checkbox]),
.upload-page p:has(input[type=checkbox]) label{
  font-family:var(--font-body);
  font-size:.9rem;
  font-weight:500;
  line-height:1.5;
  letter-spacing:normal;
  text-transform:none;
}
.onboarding-form input:not([type=checkbox]):not([type=radio]),
.onboarding-form select,.onboarding-form textarea,
.wrap input:not([type=checkbox]):not([type=radio]),.wrap select,.wrap textarea,
.upload-dataset input[type=file]{
  font-family:var(--font-body);
  font-size:.95rem;
  font-weight:400;
  line-height:normal;
  letter-spacing:normal;
  text-transform:none;
}
.wrap input::placeholder,.wrap textarea::placeholder,
.onboarding-form input::placeholder,.onboarding-form textarea::placeholder{
  font-family:var(--font-body);
  font-size:.95rem;
  font-weight:400;
  line-height:normal;
  letter-spacing:normal;
  text-transform:none;
}
.onboarding-form button,.wrap button[type=submit]:not(.pill),
.upload-page button[type=submit]{
  font-family:var(--font-body);
  font-size:16px;
  font-weight:600;
  line-height:normal;
  letter-spacing:normal;
  text-transform:none;
}
.k,.owner-kpi .k,.metric-strip .k,.diagnostic-item .k,.eyebrow,.section-kicker,
.action-topic,.action-card .action-topic,.action-label,.dataset-status,.tagpill,.badge,
.risk-status,.chart-missing,.legendrow,.data-table th,th,
.availability-item strong,.synthetic-badge,.nav .nav-label,.brand-acronym,.driver-chip{
  font-family:var(--font-body);
  font-size:.78rem;
  font-weight:600;
  line-height:1.3;
  letter-spacing:normal;
  text-transform:none;
}
.brand-mark,.priority-number{
  font-family:var(--font-display);
  font-weight:700;
  font-size:11px;
  line-height:normal;
  letter-spacing:normal;
  text-transform:none;
}
.brand-mark{font-weight:800}
.fixed-cost-total strong{font-size:15px;line-height:normal}
.v,.owner-kpi .v,.diagnostic-item .v,.metric-strip .v,
.fixed-cost-total strong,.priority-number{
  font-family:var(--font-display);
  font-weight:700;
}
.v,.owner-kpi .v,.diagnostic-item .v,.metric-strip .v,
.fixed-cost-total strong{
  font-variant-numeric:tabular-nums;
}
@media(max-width:767px){
  .nav .pill{font-size:1.1rem}
}
.upload-page input[type=file]::file-selector-button,
.upload-dataset input[type=file]::file-selector-button{
  font-family:var(--font-body);
  font-size:.95rem;
  font-weight:600;
  line-height:1.75;
  letter-spacing:normal;
  text-transform:none;
}
