:root{
  --bg:#f3f6fb;
  --card:#ffffff;
  --ink:#172033;
  --muted:#6b7485;
  --line:#e6eaf0;
  --primary:#1d4ed8;
  --primary-soft:#e8efff;
  --good:#15803d;
  --good-soft:#eaf7ef;
  --warn:#b45309;
  --warn-soft:#fff5e6;
  --danger:#b91c1c;
  --danger-soft:#fff0f0;
  --shadow:0 12px 28px rgba(24,39,75,.07);
  --radius:18px;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
button,input,textarea,select{font:inherit}
.app-shell{display:flex;min-height:100vh}
.sidebar{width:270px;background:#101828;color:#fff;padding:22px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;gap:12px;align-items:center;padding:4px 8px 22px}
.brand-mark{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#4f46e5);font-weight:800}
.brand-title{font-weight:800;font-size:15px}.brand-sub{font-size:12px;color:#9aa5b5;margin-top:2px}
.side-group{margin-top:18px}.side-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#8490a4;padding:0 8px 9px}
.nav-btn,.section-nav-btn{width:100%;border:0;background:transparent;color:#cbd5e1;text-align:left;border-radius:10px;padding:11px 12px;cursor:pointer;margin-bottom:4px}.nav-btn:hover,.section-nav-btn:hover{background:#182338}.nav-btn.active,.section-nav-btn.active{background:#1d4ed8;color:#fff}.section-nav-btn{font-size:13px;display:flex;justify-content:space-between;gap:10px}.section-nav-btn .weight{font-size:11px;opacity:.8}
.sidebar-footer{margin-top:auto;padding:16px 8px 4px;color:#d7dde7;font-size:11px;line-height:1.55}.mini-note{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#8490a4;margin-bottom:5px}.muted{color:#8f9aad}
.main{flex:1;min-width:0}.topbar{background:#fff;border-bottom:1px solid var(--line);padding:22px 30px;display:flex;align-items:center;justify-content:space-between;gap:18px;position:sticky;top:0;z-index:20}.eyebrow{font-size:10px;letter-spacing:.12em;color:var(--primary);font-weight:800}.topbar h1{font-size:25px;margin:6px 0 0}.top-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{border:1px solid transparent;border-radius:10px;padding:9px 13px;cursor:pointer;font-weight:700;font-size:13px}.btn.primary{background:var(--primary);color:#fff}.btn.secondary{background:#fff;border-color:#d9deea;color:#263246}.btn.ghost{background:transparent;color:#586173}.file-btn{display:inline-flex;align-items:center}
.content{padding:26px 30px 40px;max-width:1500px;margin:auto}.view.hidden{display:none}
.grid{display:grid;gap:16px}.grid.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.two{grid-template-columns:1.25fr .75fr}.grid.cards{grid-template-columns:repeat(3,minmax(0,1fr))}
.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius);padding:18px}.card h3,.card h2{margin:0 0 8px}.card-sub{font-size:12px;color:var(--muted)}
.kpi-value{font-size:30px;font-weight:850;letter-spacing:-.04em;margin-top:8px}.kpi-label{font-size:12px;color:var(--muted)}
.progress{height:10px;background:#edf0f5;border-radius:999px;overflow:hidden}.progress > div{height:100%;background:linear-gradient(90deg,#1d4ed8,#4f46e5);border-radius:999px;transition:width .2s}.progress.good > div{background:linear-gradient(90deg,#16a34a,#22c55e)}
.section-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.section-row:last-child{border-bottom:0}.section-meta{display:flex;align-items:center;gap:10px}.code-badge{min-width:31px;height:31px;border-radius:9px;background:var(--primary-soft);display:grid;place-items:center;color:var(--primary);font-weight:800;font-size:12px}.section-name{font-weight:700}.section-badge{font-size:11px;color:var(--muted);background:#f5f7fa;padding:6px 8px;border-radius:8px}
.rank-box{padding:18px;border-radius:14px;border:1px solid var(--line);background:#fbfcff}.rank-name{font-weight:800;font-size:21px;margin:2px 0 6px}.rank-range{color:var(--muted);font-size:13px}
.note{font-size:12px;color:var(--muted);line-height:1.55}
.toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:15px;flex-wrap:wrap}.toolbar-left{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.select,.text-input,.text-area{border:1px solid #dbe1eb;border-radius:10px;background:#fff;padding:9px 11px;outline:none}.text-area{width:100%;min-height:80px;resize:vertical}.text-input:focus,.text-area:focus,.select:focus{border-color:#8aa8f6;box-shadow:0 0 0 3px #dfe8ff}
.section-card{margin-bottom:18px;overflow:hidden}.section-head{padding:18px 18px 14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.section-head h2{margin:0;font-size:18px}.section-head p{margin:5px 0 0;font-size:12px;color:var(--muted)}.section-score{text-align:right}.section-score .big{font-weight:850;font-size:22px}.section-score .small{font-size:11px;color:var(--muted)}
.criteria{padding:0}.criterion{border-bottom:1px solid var(--line);padding:16px 18px}.criterion:last-child{border-bottom:0}.criterion-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.criterion-title{font-weight:800;font-size:14px}.criterion-code{display:inline-flex;align-items:center;gap:6px;margin-right:7px;color:var(--primary)}.answered{font-size:11px;color:var(--good);font-weight:700;background:var(--good-soft);padding:5px 7px;border-radius:7px;white-space:nowrap}.options{display:grid;gap:8px;margin-top:11px}.option-card{display:flex;gap:11px;border:1px solid #dde3ec;padding:11px 12px;border-radius:12px;cursor:pointer;align-items:flex-start;transition:.15s}.option-card:hover{border-color:#9eb4ee;background:#fbfcff}.option-card:has(input:checked){border-color:#7ea2f0;background:var(--primary-soft)}.option-card input{margin-top:4px}.option-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.option-code{font-weight:800;font-size:12px;color:#344054}.score-pill{font-size:11px;font-weight:800;color:var(--primary);background:#fff;padding:4px 7px;border-radius:999px;border:1px solid #cfdcff;white-space:nowrap}.option-text{font-size:12px;line-height:1.5;color:#354052;margin-top:5px}.evidence{margin-top:12px;display:grid;grid-template-columns:1fr 1.5fr;gap:9px}
.status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.status-card{border:1px solid #dde3ec;padding:12px;border-radius:12px;cursor:pointer;text-align:center;font-size:12px;font-weight:800;background:#fff}.status-card.active.pass{background:var(--good-soft);border-color:#9ad4af;color:var(--good)}.status-card.active.fail{background:var(--danger-soft);border-color:#e7aaaa;color:var(--danger)}.status-card.active.na{background:#f7f8fa;border-color:#cfd5df;color:#5c6677}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.data-table{width:100%;border-collapse:collapse;min-width:740px}.data-table th,.data-table td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:12px;vertical-align:top}.data-table th{background:#f8fafc;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#667085}.data-table tr:last-child td{border-bottom:0}.check{width:18px;height:18px}
.callout{padding:14px 16px;border-radius:13px;background:#eff6ff;border:1px solid #cfe0ff;color:#24427d;font-size:12px;line-height:1.55}.callout.warn{background:var(--warn-soft);border-color:#f0d2a8;color:#7b4a0b}.disincentive{border-left:4px solid var(--danger)}
.footer-space{height:40px}
@media(max-width:1100px){.sidebar{width:230px}.grid.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.two,.grid.cards{grid-template-columns:1fr}.evidence{grid-template-columns:1fr}}
@media(max-width:780px){.sidebar{display:none}.topbar{position:static;padding:17px}.content{padding:17px}.top-actions{width:100%}.topbar{align-items:flex-start;flex-direction:column}.grid.kpis{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.grid.kpis{grid-template-columns:1fr}.status-grid{grid-template-columns:1fr}.criterion-head,.section-head{flex-direction:column}.section-score{text-align:left}}
@media print{.sidebar,.top-actions{display:none!important}.topbar{position:static}.main{width:100%}.content{padding:0}.card,.section-card{box-shadow:none;break-inside:avoid}.view.hidden{display:none!important}}
