:root {
  color-scheme: dark;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bg: #070b14; --panel: #101827; --panel-2: #0b121f; --panel-3: #172236;
  --line: #28364e; --border: var(--line); --line-soft: #1c2940; --text: #edf3ff; --muted: #9cabc5;
  --accent: #7a8cff; --accent-2: #55c4ff; --good: #42d99a; --warn: #f5c55d;
  --bad: #ff7587; --reference: #bd91ff; --info: #6ab8ff;
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: radial-gradient(circle at 10% -5%, #1a2857 0, transparent 34rem), var(--bg); color: var(--text); }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
.app-header, .main-nav, .app-shell { width: min(96rem, calc(100% - 2rem)); margin-inline: auto; }
.app-header { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: 2.1rem 0 1.3rem; }
h1, h2, h3, h4, p { margin-top: 0; }
h1 { margin-bottom: .35rem; font-size: clamp(2rem, 4vw, 3.25rem); letter-spacing: -.045em; }
h2 { letter-spacing: -.025em; }
.eyebrow { margin-bottom: .4rem; color: #9eb1ff; font-size: .75rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.subtitle, .muted { color: var(--muted); }
.system-strip { display: flex; flex-wrap: wrap; justify-content: end; align-items: center; gap: .55rem; }
.system-strip > span { display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .62rem; border: 1px solid var(--line); border-radius: 999px; background: #0b121fe8; font-size: .78rem; font-weight: 700; }
.status-dot { width: .55rem; height: .55rem; border-radius: 50%; background: var(--warn); }
.status-dot.good { background: var(--good); box-shadow: 0 0 .65rem #42d99a88; }
.status-dot.bad { background: var(--bad); box-shadow: 0 0 .65rem #ff758788; }
.main-nav { position: sticky; top: 0; z-index: 10; display: flex; gap: .35rem; overflow-x: auto; padding: .6rem; border: 1px solid var(--line); border-radius: .9rem; background: #0a111eed; backdrop-filter: blur(12px); }
.nav-button, .subtab { border: 0; border-radius: .55rem; background: transparent; padding: .72rem .9rem; white-space: nowrap; cursor: pointer; color: var(--muted); font-weight: 750; }
.nav-button:hover, .subtab:hover { background: var(--panel-3); color: var(--text); }
.nav-button.active, .subtab.active { background: #25335a; color: white; }
.app-shell { padding: 1rem 0 4rem; }
.panel { border: 1px solid var(--line); border-radius: 1rem; background: #0e1726e8; box-shadow: 0 1.5rem 5rem #0003; }
.section { margin-top: 1rem; padding: clamp(1.1rem, 2.5vw, 2rem); }
.section-head { display: flex; justify-content: space-between; align-items: start; gap: 1rem; margin-bottom: 1rem; }
.section-head h2, .section-head h3 { margin-bottom: .35rem; }
.loading { min-height: 18rem; display: grid; place-items: center; align-content: center; color: var(--muted); }
.spinner { width: 2rem; height: 2rem; border: 3px solid #34405a; border-top-color: var(--accent); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.badge { display: inline-flex; align-items: center; width: fit-content; padding: .3rem .52rem; border: 1px solid var(--line); border-radius: 999px; font-size: .68rem; font-weight: 850; letter-spacing: .045em; text-transform: uppercase; white-space: nowrap; }
.badge.good, .badge.approved { border-color: #287253; color: #8ef1be; background: #123126; }
.badge.warning, .badge.unpriced, .badge.partial { border-color: #755e2b; color: #ffe09a; background: #322913; }
.badge.reference, .badge.integrated { border-color: #684c92; color: #d9bcff; background: #281b3a; }
.badge.bad { border-color: #783645; color: #ffbbc4; background: #351923; }
.badge.info, .badge.neutral { color: #bcd8ff; background: #15253d; }
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: .75rem; }
.kpi-card { min-height: 7.5rem; padding: 1rem; border: 1px solid var(--line); border-radius: .75rem; background: linear-gradient(145deg, #152038, #0b121f); }
.kpi-label { color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.kpi-value { display: block; margin: .55rem 0 .2rem; font-size: clamp(1.25rem, 2.5vw, 1.8rem); font-weight: 850; }
.kpi-note { color: var(--muted); font-size: .8rem; }
.table-wrap { overflow: auto; max-width: 100%; border: 1px solid var(--line); border-radius: .75rem; }
table { width: 100%; border-collapse: collapse; min-width: 58rem; font-size: .82rem; }
thead th { position: sticky; top: 0; z-index: 2; background: #172238; color: #cbd7ec; text-align: right; white-space: nowrap; }
th, td { padding: .72rem .66rem; border-bottom: 1px solid var(--line-soft); text-align: right; vertical-align: top; }
th:first-child, td:first-child, .left { text-align: left; }
tbody tr:hover { background: #17223888; }
.offer-link { border: 0; padding: 0; background: transparent; color: #b7c5ff; text-align: left; cursor: pointer; font-weight: 800; }
.offer-link:hover { text-decoration: underline; }
.help { display: inline-grid; place-items: center; width: 1rem; height: 1rem; margin-left: .25rem; border: 1px solid #61708d; border-radius: 50%; color: #aebddb; font-size: .65rem; cursor: help; }
.scope-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr)); gap: .65rem; }
.scope-card { padding: .85rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--panel-2); }
.scope-card-head { display: flex; justify-content: space-between; align-items: start; gap: .7rem; }
.scope-item { display: grid; grid-template-columns: 7.5rem 1fr auto; gap: .6rem; padding: .5rem 0; border-top: 1px solid var(--line-soft); font-size: .78rem; }
.scope-item:first-of-type { margin-top: .5rem; }
.scope-label { color: var(--muted); text-transform: capitalize; }
.subtabs { display: flex; gap: .35rem; overflow-x: auto; margin-bottom: 1rem; padding-bottom: .2rem; }
.method-note { padding: .8rem 1rem; border-left: 3px solid var(--info); background: #122139; color: #c9d8ec; font-size: .84rem; }
.composition { display: grid; gap: .65rem; margin-top: 1rem; }
.composition-row { display: grid; grid-template-columns: minmax(10rem, 1.2fr) 3fr auto; align-items: center; gap: .7rem; }
.bar { display: flex; height: 1.25rem; overflow: hidden; border-radius: .3rem; background: #1c273a; }
.segment { min-width: 2px; }
.segment.dc { background: #6479f5; } .segment.ac { background: #51b4d8; } .segment.other { background: #aa7bd7; } .segment.integrated { background: #7b63c7; }
.legend { display: flex; flex-wrap: wrap; gap: .75rem; color: var(--muted); font-size: .76rem; }
.legend i { display: inline-block; width: .65rem; height: .65rem; margin-right: .3rem; border-radius: .15rem; }
.warning-list { display: grid; gap: .5rem; }
.warning-item { padding: .75rem; border: 1px solid #65404a; border-radius: .65rem; background: #281820; color: #ffd1d7; font-size: .82rem; }
details { border: 1px solid var(--line); border-radius: .7rem; background: var(--panel-2); }
details > summary { padding: .85rem; cursor: pointer; font-weight: 800; }
details > div { padding: 0 .85rem .85rem; }
.controls { display: grid; grid-template-columns: repeat(4, minmax(8rem, 1fr)) auto; gap: .65rem; align-items: end; margin-bottom: 1rem; }
label { display: grid; gap: .35rem; color: #c8d4e9; font-size: .76rem; font-weight: 700; }
label[hidden] { display: none !important; }
label small { color: var(--muted); font-weight: 500; line-height: 1.4; }
input, select { width: 100%; padding: .65rem; border: 1px solid #35445e; border-radius: .5rem; background: #09111e; color: var(--text); }
.button { border: 0; border-radius: .55rem; padding: .7rem .9rem; background: var(--accent); color: white; cursor: pointer; font-weight: 800; }
.button.secondary { background: #253149; }
.button.danger { background: #48232d; }
.chart-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: .75rem; background: #09111e; padding: .5rem; }
.chart { min-width: 700px; width: 100%; height: auto; }
.chart text { fill: #aab8cf; font-size: 11px; }
.chart .grid { stroke: #26344a; stroke-width: 1; }
.chart .axis { stroke: #60708e; stroke-width: 1; }
.chart polyline { fill: none; stroke-width: 2.4; }
.revision-grid { display: grid; gap: 1rem; }
.detail-dialog, .ingestion-dialog { width: min(54rem, calc(100% - 1rem)); max-height: 92vh; border: 1px solid var(--line); border-radius: 1rem; background: var(--panel); color: var(--text); padding: 1.4rem; box-shadow: 0 2rem 8rem #000c; }
.detail-dialog::backdrop, .ingestion-dialog::backdrop { background: #02050ac9; backdrop-filter: blur(4px); }
.dialog-close { position: sticky; z-index: 3; top: 0; float: right; border: 0; border-radius: .5rem; background: #253149; padding: .35rem .65rem; cursor: pointer; font-size: 1.3rem; }
.detail-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .65rem; }
.detail-box { padding: .8rem; border: 1px solid var(--line); border-radius: .65rem; background: var(--panel-2); }
.ingestion-hero { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.draft-callout { padding: 1rem; border: 1px solid #6b5728; border-radius: .7rem; background: #2c2514; color: #ffe2a5; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.file-list { display: grid; gap: .5rem; margin-top: .7rem; }
.file-row { display: grid; grid-template-columns: 1fr 10rem auto; gap: .5rem; align-items: center; padding: .6rem; border-radius: .5rem; background: var(--panel-3); }
.progress { padding: .8rem; border-radius: .5rem; background: #08101d; color: #c9d8ff; white-space: pre-wrap; }
.empty { padding: 2rem; text-align: center; color: var(--muted); }
.error { color: var(--bad); }
@media (max-width: 800px) {
  .app-header, .section-head, .ingestion-hero { align-items: start; flex-direction: column; }
  .system-strip { justify-content: start; }
  .controls { grid-template-columns: 1fr 1fr; }
  .detail-grid, .form-grid { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .app-header, .main-nav, .app-shell { width: min(100% - 1rem, 96rem); }
  .controls { grid-template-columns: 1fr; }
  .scope-item, .composition-row, .file-row { grid-template-columns: 1fr; }
}

.document-card{margin:1rem 0;padding:1rem;border:1px solid var(--border);border-radius:12px;background:var(--panel-2);display:grid;gap:.8rem}.hash{font-family:ui-monospace,monospace;font-size:.72rem;overflow-wrap:anywhere;color:var(--muted)}.parse-summary{display:flex;gap:1rem;flex-wrap:wrap;padding:.7rem;border-radius:8px;background:#0b223e}.sheet-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.6rem}.sheet-list button{padding:.75rem;text-align:left;color:var(--text);background:#102946;border:1px solid var(--border);border-radius:8px;cursor:pointer}.sheet-list span{display:block;color:var(--muted);font-size:.78rem;margin-top:.25rem}.excel-grid-wrap{max-height:520px;overflow:auto;border:1px solid var(--border);border-radius:8px}.excel-grid{border-collapse:separate;border-spacing:0;min-width:max-content}.excel-grid th{position:sticky;top:0;z-index:2;background:#10243b}.excel-grid tbody th{left:0;z-index:1}.excel-grid td{min-width:110px;max-width:240px;padding:0;border-right:1px solid #27425e;border-bottom:1px solid #27425e}.excel-cell{width:100%;min-height:34px;padding:.35rem;border:0;background:transparent;color:var(--text);text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.excel-cell:hover{background:#17436d}.excel-cell.formula::before{content:'ƒx ';color:#57c7ff}.cell-inspector{margin-top:1rem;padding:1rem;border:1px solid var(--border);border-radius:8px;background:#0c2037}.cell-inspector dl{display:grid;grid-template-columns:150px 1fr;gap:.4rem}.cell-inspector dt{color:var(--muted)}.cell-inspector dd{margin:0;overflow-wrap:anywhere}
.review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.8rem;margin-bottom:1rem}.review-grid .detail-box{overflow-wrap:anywhere}
.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.7rem;margin:1rem 0}.summary-grid article{display:grid;gap:.3rem;padding:.8rem;border:1px solid var(--border);border-radius:10px;background:var(--panel-2)}.summary-grid span{color:var(--muted)}
.review-filters,.review-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}.filter-button{border:1px solid var(--border);border-radius:999px;padding:.4rem .7rem;background:#102946;color:var(--text);cursor:pointer}.filter-button.active{border-color:#57c7ff;background:#17436d}.filter-button span{color:var(--muted);margin-left:.25rem}.button.small{padding:.35rem .55rem;font-size:.78rem}.review-card{display:flex;flex-direction:column}.review-card .review-actions{margin-top:auto}.performance-review-group{margin:.55rem 0;border:1px solid var(--border);border-radius:10px;background:var(--panel-2)}.performance-review-group>summary{padding:.8rem;cursor:pointer}.performance-review-group>div{padding:0 .8rem .8rem}.success{color:#8ef1be}

/* Operational review-by-exception workspace */
.review-workspace{position:relative;display:grid;gap:.85rem;min-width:0;padding-bottom:5.5rem}
.review-sticky-header{position:sticky;top:4.15rem;z-index:8;padding:1rem 1.15rem;border:1px solid var(--line);border-radius:.9rem;background:#0b1422f2;box-shadow:0 1rem 2.5rem #0008;backdrop-filter:blur(16px)}
.review-title,.review-toolbar,.review-section-head,.approval-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.review-title h2{margin-bottom:0;font-size:clamp(1.1rem,2vw,1.45rem)}
.review-progress-line{display:grid;grid-template-columns:1fr 1fr minmax(12rem,1.2fr);align-items:center;gap:1rem;margin:.8rem 0;padding:.7rem .8rem;border:1px solid var(--line-soft);border-radius:.65rem;background:#08101d}
.review-progress-line div{display:grid;gap:.15rem}.review-progress-line span{color:var(--muted);font-size:.74rem}.review-progress-line progress{width:100%;height:.65rem;accent-color:var(--accent)}
.review-toolbar{align-items:end}.review-toolbar .review-actions{margin:.25rem 0}.review-search{width:min(28rem,100%)}
.review-search input,textarea{padding:.65rem;border:1px solid #35445e;border-radius:.5rem;background:#09111e;color:var(--text);resize:vertical}
.review-filters{margin:.45rem 0 0}.secondary-filters{padding-top:.45rem;border-top:1px solid var(--line-soft)}
.filter-button{border-color:var(--line);background:#121d2e}.filter-button.secondary-filter{padding:.32rem .6rem;font-size:.75rem}.filter-button:hover{border-color:#5f73a6}.filter-button.active{border-color:var(--accent-2);background:#203b61;color:#fff}
.review-executive-summary{display:grid;grid-template-columns:repeat(5,minmax(9rem,1fr));gap:.65rem}
.review-headline{display:grid;gap:.2rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:.7rem;background:linear-gradient(145deg,#142039,#0b121f);color:var(--text);font:inherit;text-align:left;cursor:pointer}
.review-headline:hover,.review-headline:focus-visible{border-color:#7193ce;transform:translateY(-1px)}
.review-headline strong{font-size:1.45rem}.review-headline span{color:var(--muted);font-size:.75rem}
.review-area-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.65rem}.review-area-card{display:grid;gap:.2rem;text-align:left;padding:.8rem;border:1px solid var(--line);border-radius:.65rem;background:var(--panel);cursor:pointer}.review-area-card:hover{border-color:var(--accent-2);transform:translateY(-1px)}.review-area-card span,.review-area-card small{color:var(--muted)}.bulk-action-card{border-color:#39765d;background:#102b22}.bulk-action-card strong{color:#91efc1}
.review-content{display:grid;gap:.8rem;min-width:0}.review-content button,.review-content input,.review-content select{scroll-margin-top:22rem}.review-section,.review-source-panel,.auto-validated-section{min-width:0;max-width:100%}.review-section,.review-source-panel{overflow:hidden;padding:1rem;border:1px solid var(--line);border-radius:.8rem;background:#0d1625}.review-section-head{align-items:center;margin-bottom:.7rem}.review-section-head h3{margin-bottom:.2rem}.review-section-head p{margin-bottom:0;color:var(--muted);font-size:.78rem}
.review-table-wrap{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:.6rem}.review-table{min-width:64rem;font-size:.76rem}.review-table th,.review-table td{padding:.52rem .55rem}.review-table thead th{top:0;background:#18263d}.review-table select{min-width:9rem;padding:.38rem}.review-table input[type=checkbox]{width:auto;accent-color:var(--accent)}
.review-table .conflict-row,.conflict-row{background:#332815aa}.review-table .conflict-row:hover{background:#49371a}.row-link,.source-link{border:0;background:transparent;color:#b7caff;cursor:pointer;text-align:left;padding:0;font-weight:750}.row-link:hover,.source-link:hover{text-decoration:underline;color:#d6e0ff}.empty-cell{padding:2rem!important;text-align:center!important;color:var(--muted)}
.conflict-section{border-color:#735c2c;background:#211b10}.conflict-list{display:grid;gap:.65rem}.conflict-group{display:grid;grid-template-columns:minmax(10rem,.7fr) minmax(22rem,2fr);gap:.8rem;padding:.8rem;border:1px solid #735c2c;border-radius:.65rem;background:#151512}.conflict-group>div:first-child p{color:var(--muted);font-size:.76rem}.conflict-group>.review-actions{grid-column:1/-1;margin:0}.conflict-occurrences{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.5rem}.conflict-occurrence,.drawer-occurrence{display:grid;gap:.28rem;padding:.65rem;border:1px solid #604f2b;border-radius:.55rem;background:#211c12}.conflict-occurrence span{font-size:.74rem;color:var(--muted)}
.curve-list{display:grid;gap:.4rem}.curve-row{display:grid;grid-template-columns:minmax(17rem,2fr) minmax(10rem,.8fr) auto;align-items:center;gap:.8rem;padding:.65rem .75rem;border:1px solid var(--line-soft);border-radius:.55rem;background:#0a1220}.curve-row>div{display:grid;gap:.18rem}.curve-row span{color:var(--muted);font-size:.73rem}.pagination{display:flex;justify-content:center;align-items:center;gap:.75rem;margin-top:.75rem}
.auto-validated-section>summary{display:flex;justify-content:space-between;gap:1rem}.auto-validated-section>summary span{color:var(--muted);font-size:.75rem;font-weight:500}.review-source-panel{background:#101d30}
.review-drawer{position:fixed;z-index:30;top:0;right:0;width:min(35rem,96vw);height:100vh;overflow:auto;padding:1.4rem;border-left:1px solid #48618a;background:#0b1422;box-shadow:-2rem 0 6rem #000d}.drawer-close{position:sticky;top:0;float:right;border:1px solid var(--line);border-radius:.45rem;background:#24334c;color:white;padding:.3rem .65rem;font-size:1.25rem;cursor:pointer}.review-drawer form{display:grid;gap:.7rem;margin:1rem 0}.source-claim-panel{margin:1rem 0;padding:.8rem;border:1px solid var(--line);border-radius:.6rem;background:#08101d}.source-claim-panel pre{max-height:12rem;overflow:auto;white-space:pre-wrap;color:#b9c8dd;font-size:.7rem}.provenance-list{display:grid;grid-template-columns:8rem 1fr;gap:.45rem;font-size:.76rem}.provenance-list dt{color:var(--muted)}.provenance-list dd{margin:0;overflow-wrap:anywhere}.drawer-occurrence{margin:.65rem 0;border-color:var(--line)}
.missing-information-section{border-color:#6d5931;background:#1b1811}.manual-safety-panel{border-color:#6d5931;background:#251e10;color:#ffe3a8}.review-success-state{padding:1rem;border:1px solid #285d48;border-radius:.65rem;background:#10251e;color:#b8efd8}.review-success-state p{margin:.25rem 0 0;color:#8fcbb2}
.manual-drawer-host>.button{white-space:nowrap}.manual-drawer-host>.manual-value-drawer{display:none}.manual-drawer-host.open>.manual-value-drawer,.manual-drawer-host:focus-within>.manual-value-drawer{display:block}
.approval-bar{position:fixed;z-index:7;right:max(1rem,calc((100vw - 96rem)/2));bottom:.65rem;left:max(1rem,calc((100vw - 96rem)/2));align-items:center;padding:.7rem 1rem;border:1px solid #40547a;border-radius:.8rem;background:#101b2cf2;box-shadow:0 -1rem 3rem #000a;backdrop-filter:blur(14px)}.approval-bar p,.approval-bar span{display:block;margin-bottom:.1rem}.approval-bar span{color:var(--muted);font-size:.74rem}.approval-bar .review-actions{margin:0}.button:disabled{opacity:.45;cursor:not-allowed}

@media(max-width:1000px){.review-sticky-header{top:4rem}.review-progress-line{grid-template-columns:1fr 1fr}.review-progress-line progress{grid-column:1/-1}.review-executive-summary,.review-area-grid{grid-template-columns:repeat(2,1fr)}.conflict-group{grid-template-columns:1fr}.conflict-group>.review-actions{grid-column:1}.curve-row{grid-template-columns:1fr auto}.curve-row>div:first-child{grid-column:1/-1}}
@media(max-width:700px){.review-sticky-header{position:relative;top:auto}.review-content button,.review-content input,.review-content select{scroll-margin-top:1rem}.review-title,.review-toolbar,.review-section-head,.approval-bar{flex-direction:column}.review-progress-line,.review-executive-summary,.review-area-grid{grid-template-columns:1fr 1fr}.review-progress-line progress{grid-column:1/-1}.review-toolbar .review-search{width:100%}.approval-bar{right:.5rem;left:.5rem}.approval-bar .review-actions{width:100%}.approval-bar .button{flex:1}.auto-validated-section>summary{display:grid}.curve-row{grid-template-columns:1fr}}
@media(max-width:440px){.review-progress-line,.review-executive-summary,.review-area-grid{grid-template-columns:1fr}.review-progress-line progress{grid-column:1}.review-drawer{width:100vw}.provenance-list{grid-template-columns:1fr}.approval-bar .review-actions{display:grid;grid-template-columns:1fr}}
