/* SHIP — Social Housing Intelligence Platform — Design System
   Extracted from ux-full.html prototype. This IS the design system. */

:root {
  --bg: #0a0b0f;
  --surface: #12131a;
  --raised: #1a1b24;
  --hover: #22232e;
  --border: #2a2b36;
  --border-s: #1e1f28;
  --text: #e8e9ed;
  --muted: #a0a2ad;
  --dim: #7f8290;
  --accent: #4f8cff;
  --accent-glow: rgba(79,140,255,0.15);
  --accent-soft: rgba(79,140,255,0.08);
  --green: #34d399;
  --green-s: rgba(52,211,153,0.1);
  --amber: #fbbf24;
  --amber-s: rgba(251,191,36,0.1);
  --rose: #f472b6;
  --rose-s: rgba(244,114,182,0.1);
  --purple: #a78bfa;
  --purple-s: rgba(167,139,250,0.1);
  --radius: 12px;
  --radius-sm: 8px;
  --radius-lg: 16px;
  --font: 'DM Sans', sans-serif;
  --font-d: 'Fraunces', serif;
  --mono: 'JetBrains Mono', monospace;
}
* { margin:0; padding:0; box-sizing:border-box; }
body { background:var(--bg); color:var(--text); font-family:var(--font); overflow-x:hidden; }
::-webkit-scrollbar { width:6px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--border); border-radius:3px; }

@keyframes fadeUp { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
@keyframes slideR { from{opacity:0;transform:translateX(-16px)} to{opacity:1;transform:translateX(0)} }
@keyframes pulse { 0%,100%{opacity:.4} 50%{opacity:1} }
@keyframes glow { 0%,100%{box-shadow:0 0 8px rgba(79,140,255,0.2)} 50%{box-shadow:0 0 20px rgba(79,140,255,0.4)} }
@keyframes breathe { 0%,100%{transform:scale(1)} 50%{transform:scale(1.02)} }

/* ─── Layout ─── */
.app { display:flex; height:100vh; }
.sidebar { width:240px; border-right:1px solid var(--border); display:flex; flex-direction:column; background:var(--surface); flex-shrink:0; transition:width .25s ease, opacity .2s ease; overflow:hidden; }
.app.sidebar-collapsed .sidebar { width:0; border-right:none; opacity:0; pointer-events:none; }
.main { flex:1; display:flex; flex-direction:column; overflow:hidden; }
.content { flex:1; overflow-y:auto; padding:28px 36px; scroll-behavior:smooth; }

/* ─── Sidebar ─── */
.logo { padding:20px; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:12px; }
.logo-mark { width:36px; height:36px; border-radius:10px; background:linear-gradient(135deg,var(--accent),#7c5cfc); display:flex; align-items:center; justify-content:center; font-size:18px; font-weight:700; color:#fff; font-family:var(--font-d); }
.logo-text { font-family:var(--font-d); font-size:18px; font-weight:600; }
.logo-sub { font-size:10px; color:var(--dim); letter-spacing:.5px; }

.nav { padding:12px 10px; flex:1; overflow-y:auto; }
.nav-section { font-size:10px; color:var(--dim); text-transform:uppercase; letter-spacing:1.5px; padding:8px 14px 4px; }
.nav-item { display:flex; align-items:center; gap:10px; padding:9px 14px; border-radius:var(--radius-sm); cursor:pointer; font-size:13px; color:var(--muted); transition:all .15s; user-select:none; }
.nav-item:hover { background:var(--raised); color:var(--text); }
.nav-item.active { background:var(--accent-soft); color:var(--accent); }
.nav-item.disabled { opacity:.35; cursor:default; pointer-events:none; }
.nav-item .icon { width:20px; text-align:center; }
.nav-badge { margin-left:auto; background:var(--accent); color:#fff; font-size:9px; padding:2px 6px; border-radius:8px; font-weight:600; }
.source-dot { width:6px; height:6px; border-radius:3px; background:var(--green); flex-shrink:0; }
.sidebar-footer { padding:12px 20px; border-top:1px solid var(--border); font-size:11px; color:var(--dim); }

/* ─── Sidebar Toggle ─── */
.sidebar-toggle { width:36px; height:36px; border-radius:var(--radius-sm); border:1px solid var(--border); background:var(--raised); color:var(--muted); font-size:16px; cursor:pointer; transition:all .2s; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.sidebar-toggle:hover { border-color:var(--accent); color:var(--text); background:var(--accent-soft); }

/* ─── Top bar ─── */
.topbar { padding:14px 36px; border-bottom:1px solid var(--border); background:var(--surface); display:flex; align-items:center; gap:16px; }
.topbar-spacer { flex:1; }
.query-box { flex:1; position:relative; display:flex; gap:8px; }
.query-input { flex:1; background:var(--raised); border:1px solid var(--border); border-radius:var(--radius); padding:12px 20px; color:var(--text); font-family:var(--font); font-size:14px; outline:none; transition:all .2s; }
.query-input:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.query-input::placeholder { color:var(--dim); }
.query-submit { padding:12px 24px; border-radius:var(--radius); background:linear-gradient(135deg,var(--accent),#7c5cfc); border:none; color:#fff; font-size:13px; font-weight:600; cursor:pointer; font-family:var(--font); transition:all .2s; white-space:nowrap; }
.query-submit:hover { filter:brightness(1.1); }
.query-submit:disabled { opacity:.5; cursor:default; }

/* ─── Tab bar ─── */
.tabs { display:flex; gap:2px; margin-bottom:24px; background:var(--surface); border-radius:var(--radius-sm); padding:3px; width:fit-content; }
.tab { padding:8px 16px; border-radius:6px; font-size:12px; font-weight:500; color:var(--muted); cursor:pointer; transition:all .15s; border:none; background:transparent; font-family:var(--font); }
.tab:hover { color:var(--text); }
.tab.active { background:var(--raised); color:var(--accent); }

/* ─── Insight Card ─── */
.card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; transition:all .3s; animation:fadeUp .5s ease both; margin-bottom:16px; }
.card:hover { border-color:rgba(79,140,255,.25); }
.card.expanded { box-shadow:0 8px 48px rgba(0,0,0,.4); }
.card-head { padding:20px 24px; cursor:pointer; display:flex; justify-content:space-between; align-items:flex-start; }
.card-meta { display:flex; align-items:center; gap:10px; margin-bottom:8px; flex-wrap:wrap; }
.card-title { font-family:var(--font-d); font-size:17px; font-weight:600; line-height:1.4; }
.card-chevron { color:var(--dim); font-size:16px; transition:transform .2s; padding:4px; }
.card.expanded .card-chevron { transform:rotate(180deg); }
.card-body { padding:0 24px 20px; animation:fadeIn .3s; }

/* ─── Status & Badges ─── */
.badge { display:inline-flex; align-items:center; gap:5px; padding:4px 10px; border-radius:12px; font-size:11px; font-weight:500; }
.badge-asked { color:var(--dim); background:rgba(92,94,106,.1); }
.badge-interpreted { color:var(--amber); background:var(--amber-s); }
.badge-queried { color:var(--accent); background:var(--accent-soft); }
.badge-analysed { color:var(--purple); background:var(--purple-s); }
.badge-reviewed { color:var(--green); background:var(--green-s); }
.badge-shared { color:var(--rose); background:var(--rose-s); }
.badge-error { color:var(--rose); background:var(--rose-s); }
.pin-btn { background:none; border:none; font-size:13px; cursor:pointer; padding:2px 6px; transition:all .15s; opacity:0.3; filter:grayscale(1); }
.pin-btn:hover { transform:scale(1.15); opacity:0.7; filter:grayscale(0); }
.pin-btn.pinned { opacity:1; filter:grayscale(0); }
.card-pinned { border-left:3px solid var(--accent) !important; }
.flag-btn { background:none; border:none; font-size:12px; cursor:pointer; padding:2px 6px; transition:all .15s; opacity:0.25; filter:grayscale(1); }
.flag-btn:hover { transform:scale(1.15); opacity:0.7; filter:grayscale(0); }
.flag-btn.flagged { opacity:1; filter:grayscale(0); }
.card-flagged { border-left:3px solid var(--amber) !important; }
.card-pinned.card-flagged { border-left:3px solid var(--amber) !important; }
.timestamp { font-size:11px; color:var(--dim); }

/* ─── Confidence ─── */
.conf { display:flex; align-items:center; gap:8px; }
.conf-bar { height:3px; width:60px; border-radius:2px; background:var(--border-s); overflow:hidden; }
.conf-fill { height:100%; border-radius:2px; transition:width 1s; }
.conf-val { font-size:11px; color:var(--dim); font-family:var(--mono); }

/* ─── Answer Lineage ─── */
.lineage-bar { padding:0 0 14px; margin-bottom:14px; border-bottom:1px solid var(--border-s); animation:fadeIn .3s; }
.lineage-chips { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.lineage-chip { display:inline-flex; align-items:center; gap:4px; padding:3px 10px; border-radius:12px; font-size:11px; font-family:var(--mono); color:var(--muted); border:1px solid var(--border); background:var(--raised); }
.lineage-table { color:var(--accent); border-color:rgba(79,140,255,.2); }
.lineage-table::before { content:''; display:inline-block; width:6px; height:6px; border-radius:2px; background:var(--accent); margin-right:2px; }
.lineage-rows { color:var(--green); border-color:rgba(52,211,153,.2); }
.lineage-reasoning { font-size:12px; color:var(--dim); line-height:1.5; margin-top:8px; font-style:italic; max-height:40px; overflow:hidden; text-overflow:ellipsis; }

/* ─── Inline Widgets (Charts & KPIs) ─── */
.widget-container { margin-bottom:16px; border-radius:var(--radius); overflow:hidden; background:var(--raised); border:1px solid var(--border-s); padding:12px; position:relative; }
.widget-container::after { content:'Click any bar to drill down'; position:absolute; bottom:4px; right:12px; font-size:10px; color:var(--dim); opacity:0; transition:opacity .2s; pointer-events:none; }
.widget-container:hover::after { opacity:.7; }
.kpi-grid { display:flex; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.kpi-card { flex:1; min-width:120px; background:var(--raised); border:1px solid var(--border); border-radius:var(--radius); padding:16px 20px; text-align:center; animation:fadeUp .4s ease both; }
.kpi-label { font-size:11px; color:var(--dim); text-transform:uppercase; letter-spacing:.5px; margin-bottom:6px; }
.kpi-value { font-family:var(--font-d); font-size:28px; font-weight:600; color:var(--text); line-height:1.2; }

/* ─── Level Pills ─── */
.levels { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:16px; }
.level-pill { display:inline-flex; align-items:center; gap:6px; padding:6px 14px; border-radius:20px; font-size:12px; font-weight:500; cursor:pointer; transition:all .2s; border:1px solid transparent; background:transparent; font-family:var(--font); position:relative; }
.level-pill:hover { transform:translateY(-1px); }
.level-pill.active { border-color:currentColor; }
.level-pill.generating { animation:pulse 2s infinite; }
.level-pill.empty { opacity:.35; cursor:default; }
.level-code { font-family:var(--mono); font-size:11px; font-weight:600; }

/* ─── Level Content ─── */
.level-content { padding:20px 24px; background:var(--raised); border-radius:var(--radius); border-left:3px solid; animation:fadeIn .3s; }
.level-label { font-size:11px; font-weight:600; margin-bottom:6px; }
.level-text { font-size:14px; line-height:1.75; }

/* ─── Depth Indicator ─── */
.depth-bar { display:flex; gap:2px; margin-top:12px; align-items:center; }
.depth-label { font-size:10px; color:var(--dim); margin-right:8px; }
.depth-seg { flex:1; height:3px; border-radius:2px; transition:background .3s; }

/* ─── Action Strip ─── */
.actions { display:flex; gap:8px; padding:12px 24px; border-top:1px solid var(--border-s); flex-wrap:wrap; }
.action-btn { display:flex; align-items:center; gap:6px; padding:7px 14px; border-radius:var(--radius-sm); border:1px solid var(--border); background:transparent; color:var(--muted); font-family:var(--font); font-size:12px; cursor:pointer; transition:all .2s; white-space:nowrap; }
.action-btn:hover { background:var(--raised); color:var(--text); border-color:var(--accent); }
.action-btn.primary { background:var(--accent); border-color:var(--accent); color:#fff; }
.action-btn.primary:hover { background:#6ba0ff; }

/* ─── Glass Floor ─── */
.glass { border-top:1px solid var(--border-s); animation:fadeIn .4s; }
.glass-section { padding:16px 24px; border-bottom:1px solid var(--border-s); }
.glass-section:last-child { border-bottom:none; }
.glass-label { font-size:10px; color:var(--dim); text-transform:uppercase; letter-spacing:1px; margin-bottom:8px; }
.glass-interp { padding:10px 14px; background:var(--accent-soft); border-radius:var(--radius-sm); font-size:13px; color:var(--accent); border-left:2px solid var(--accent); line-height:1.6; }
.source-tag { display:inline-flex; padding:3px 10px; border-radius:12px; background:var(--raised); font-size:11px; color:var(--muted); border:1px solid var(--border-s); }
.sql-pre { padding:14px 18px; background:#0d0e14; border-radius:var(--radius-sm); font-size:12px; line-height:1.6; color:#8b9fc7; font-family:var(--mono); overflow-x:auto; border:1px solid var(--border-s); white-space:pre-wrap; word-break:break-all; }

/* ─── Loading ─── */
.loading-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:24px; margin-bottom:16px; animation:glow 2s infinite; }
.loading-text { color:var(--dim); font-size:13px; }
.spinner { display:inline-block; width:16px; height:16px; border:2px solid var(--border); border-top-color:var(--accent); border-radius:50%; animation:spin .6s linear infinite; margin-right:8px; vertical-align:middle; }
@keyframes spin { to { transform:rotate(360deg); } }

/* ─── Empty state ─── */
.empty-state { text-align:center; padding:80px 40px; }
.empty-state .icon { font-size:48px; margin-bottom:16px; opacity:.3; }
.empty-state .title { font-family:var(--font-d); font-size:20px; font-weight:600; margin-bottom:8px; }
.empty-state .desc { font-size:13px; color:var(--dim); line-height:1.6; max-width:400px; margin:0 auto; }

/* ─── Briefing ─── */
.briefing { background:linear-gradient(135deg,rgba(79,140,255,.06),rgba(124,92,252,.06)); border:1px solid rgba(79,140,255,.15); border-radius:var(--radius-lg); padding:28px 32px; margin-bottom:24px; animation:fadeUp .5s ease both; position:relative; overflow:hidden; }
.briefing::before { content:''; position:absolute; top:-50%; right:-20%; width:300px; height:300px; background:radial-gradient(circle,rgba(79,140,255,.08),transparent 70%); pointer-events:none; }
.briefing-header { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.briefing-icon { font-size:24px; }
.briefing-title { font-family:var(--font-d); font-size:20px; font-weight:600; }
.briefing-time { font-size:11px; color:var(--dim); font-family:var(--mono); margin-left:auto; }
.briefing-items { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.briefing-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px; cursor:pointer; transition:all .2s; }
.briefing-card:hover { border-color:rgba(79,140,255,.3); transform:translateY(-2px); }
.briefing-metric { font-family:var(--font-d); font-size:28px; font-weight:600; margin-bottom:4px; }
.briefing-desc { font-size:12px; color:var(--muted); line-height:1.4; margin-bottom:8px; }
.briefing-delta { font-size:11px; font-weight:500; }
.briefing-action { font-size:11px; color:var(--accent); margin-top:8px; cursor:pointer; }
.briefing-action:hover { text-decoration:underline; }
.delta-up { color:var(--green); }
.delta-down { color:var(--rose); }

/* ─── Compare / Peer Benchmarking ─── */
.cmp-header { margin-bottom:20px; }
.cmp-title { font-family:var(--font-d); font-size:22px; font-weight:600; margin:0; }
.cmp-subtitle { font-size:13px; color:var(--dim); margin-top:4px; }

.cmp-search-bar { margin-bottom:16px; }
.cmp-search-wrap { position:relative; max-width:480px; }
.cmp-search-input { width:100%; padding:10px 14px; background:var(--surface); border:1px solid var(--border); border-radius:8px; color:var(--fg); font-size:13px; font-family:var(--font); outline:none; }
.cmp-search-input:focus { border-color:var(--accent); }
.cmp-search-dropdown { position:absolute; top:100%; left:0; right:0; background:var(--surface); border:1px solid var(--border); border-top:none; border-radius:0 0 8px 8px; z-index:100; max-height:280px; overflow-y:auto; }
.cmp-search-item { padding:10px 14px; cursor:pointer; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--border); }
.cmp-search-item:last-child { border-bottom:none; }
.cmp-search-item:hover { background:rgba(255,255,255,0.03); }
.cmp-sr-name { font-size:13px; font-weight:500; }
.cmp-sr-meta { font-size:11px; color:var(--dim); font-family:var(--mono); }

.cmp-chips { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.cmp-chip { display:inline-flex; align-items:center; gap:6px; padding:6px 12px; background:var(--surface); border:1px solid var(--border); border-radius:20px; font-size:12px; }
.cmp-chip small { color:var(--dim); }
.cmp-chip-target { border-color:var(--accent); background:rgba(99,102,241,0.08); }
.cmp-chip-x { cursor:pointer; color:var(--dim); font-size:14px; line-height:1; }
.cmp-chip-x:hover { color:var(--rose); }

.cmp-table-wrap { overflow-x:auto; margin-bottom:16px; border:1px solid var(--border); border-radius:8px; }
.cmp-table { width:100%; border-collapse:collapse; font-size:12px; }
.cmp-table th { padding:10px 12px; text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); border-bottom:2px solid var(--border); white-space:nowrap; background:var(--surface); position:sticky; top:0; }
.cmp-th-measure { min-width:160px; }
.cmp-th-target { background:rgba(99,102,241,0.06) !important; }
.cmp-th-name { font-size:12px; font-weight:600; color:var(--fg); text-transform:none; letter-spacing:0; }
.cmp-th-units { font-size:10px; color:var(--dim); font-weight:400; text-transform:none; letter-spacing:0; margin-top:2px; }
.cmp-th-sector { min-width:90px; text-align:center; }

.cmp-table td { padding:8px 12px; border-bottom:1px solid var(--border); vertical-align:middle; }
.cmp-table tr:hover td { background:rgba(255,255,255,0.02); }
.cmp-td-measure { }
.cmp-measure-code { font-family:var(--mono); font-size:11px; color:var(--accent); font-weight:500; }
.cmp-measure-name { font-size:11px; color:var(--dim); margin-top:1px; line-height:1.3; }
.cmp-td-target { background:rgba(99,102,241,0.04); }
.cmp-td-empty { color:var(--dim); text-align:center; }
.cmp-td-sector { text-align:center; }

.cmp-cell { display:flex; align-items:center; gap:6px; }
.cmp-score { font-size:13px; font-weight:600; font-family:var(--mono); }
.cmp-trend { margin-top:2px; }
.cmp-spark { display:block; }

.cmp-q { display:inline-block; padding:1px 6px; border-radius:4px; font-size:10px; font-weight:700; font-family:var(--mono); }
.cmp-q1 { background:rgba(34,197,94,0.15); color:#22c55e; }
.cmp-q2 { background:rgba(99,102,241,0.15); color:#6366f1; }
.cmp-q3 { background:rgba(245,158,11,0.15); color:#f59e0b; }
.cmp-q4 { background:rgba(239,68,68,0.15); color:#ef4444; }
.cmp-qn { background:rgba(255,255,255,0.05); color:var(--dim); }

.cmp-sector-row { font-size:10px; color:var(--dim); line-height:1.6; }
.cmp-sector-label { display:inline-block; width:26px; font-weight:600; color:var(--muted); }

.cmp-legend { display:flex; align-items:center; gap:8px; padding:12px 0; flex-wrap:wrap; }

/* ─── Lifecycle ─── */
.lifecycle-grid { display:grid; grid-template-columns:200px 1fr; gap:32px; }
.journey-step { display:flex; align-items:center; gap:12px; padding:8px 0; font-size:13px; }
.journey-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.journey-line { width:1px; height:20px; margin-left:4.5px; }
.journey-current { font-size:10px; color:var(--dim); font-family:var(--mono); animation:pulse 2s infinite; }
.stage-card { padding:16px 20px; background:var(--raised); border-radius:var(--radius-sm); margin-bottom:8px; border-left:3px solid; animation:slideR .3s ease both; }
.stage-name { font-size:13px; font-weight:600; margin-bottom:4px; }
.stage-desc { font-size:12px; color:var(--muted); line-height:1.5; margin-bottom:6px; }
.stage-intervention { font-size:11px; color:var(--accent); font-style:italic; }

/* ─── Alert / Schedule ─── */
.sched-grid { display:grid; gap:12px; }
.alert-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:20px 24px; margin-bottom:12px; animation:fadeUp .4s ease both; }
.alert-head { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.alert-icon { font-size:18px; }
.alert-title { font-size:14px; font-weight:500; }
.alert-time { font-size:11px; color:var(--dim); margin-left:auto; font-family:var(--mono); }
.alert-body { font-size:13px; color:var(--muted); line-height:1.5; margin-bottom:12px; }
.alert-trigger { padding:8px 12px; background:var(--raised); border-radius:var(--radius-sm); font-size:11px; color:var(--dim); border:1px solid var(--border-s); }
.alert-triggered { border-color:var(--amber) !important; background:rgba(251,191,36,0.03); }
.alert-trigger-msg { display:flex; gap:10px; align-items:flex-start; padding:10px 14px; background:var(--amber-s); border-radius:var(--radius-sm); font-size:13px; color:var(--text); line-height:1.5; margin:8px 0; border-left:3px solid var(--amber); }
.alert-delta { font-family:var(--mono); font-size:14px; font-weight:700; white-space:nowrap; padding:2px 8px; border-radius:4px; background:rgba(0,0,0,0.2); }
.create-alert-box { margin-top:24px; padding:16px 20px; background:var(--raised); border-radius:var(--radius); border:1px dashed var(--border); text-align:center; transition:all .2s; }
.create-alert-box:hover { border-color:var(--accent); }

/* ─── Briefing Widgets ─── */
.widget-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-bottom:16px; animation:fadeUp .4s ease both; }
.widget-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:14px 16px; cursor:pointer; transition:all .2s; position:relative; overflow:hidden; }
.widget-card:hover { border-color:rgba(79,140,255,.35); transform:translateY(-2px); box-shadow:0 4px 16px rgba(0,0,0,.15); }
.widget-label { font-size:11px; color:var(--dim); font-weight:500; letter-spacing:.3px; text-transform:uppercase; margin-bottom:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.widget-value { font-family:var(--font-d); font-size:26px; font-weight:700; line-height:1.1; color:var(--text); }
.widget-unit { font-size:14px; font-weight:400; color:var(--muted); margin-left:2px; }
.widget-row { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.widget-chart { flex-shrink:0; display:flex; align-items:center; }
.widget-sub { font-size:11px; color:var(--dim); margin-top:6px; line-height:1.4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.widget-business .widget-sub, .widget-risk .widget-sub, .widget-opportunity .widget-sub { white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.widget-delta { font-size:11px; font-weight:600; margin-top:2px; display:inline-block; }
.widget-delta.up { color:var(--green); }
.widget-delta.down { color:var(--rose); }
.widget-delta.neutral { color:var(--dim); }
.widget-spark { display:block; }
.widget-business { border-left:3px solid var(--accent); }
.widget-risk { border-left:3px solid var(--amber); }
.widget-opportunity { border-left:3px solid var(--green); }
.widget-gaps { border-left:3px solid var(--purple); }
.widget-gap-tag { display:inline-block; padding:1px 6px; background:var(--raised); border:1px solid var(--border); border-radius:10px; font-size:10px; color:var(--muted); margin:1px 2px; }
.widget-alert-hot { color:var(--amber); font-weight:600; }
.widget-alert-active { border-left:3px solid var(--amber); background:rgba(251,191,36,0.03); }
.status-dots { display:flex; gap:4px; align-items:center; }
.status-dot { width:8px; height:8px; border-radius:50%; }
.status-dot.ok { background:var(--green); }
.status-dot.critical { background:var(--rose); animation:pulse 2s infinite; }
.status-dot.paused { background:var(--dim); }
@media (max-width:900px) {
  .widget-grid { grid-template-columns:repeat(2,1fr); }
}

/* ─── Error State ─── */
.error-state { padding:24px 0; text-align:center; }
.error-icon { font-size:32px; margin-bottom:12px; opacity:.6; }
.error-message { font-size:14px; color:var(--rose); line-height:1.6; margin-bottom:8px; max-width:480px; margin-left:auto; margin-right:auto; }
.error-hint { font-size:12px; color:var(--dim); line-height:1.5; max-width:400px; margin-left:auto; margin-right:auto; }

/* ─── Synthesis / Meta ─── */
.meta-level { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:24px 28px; margin-bottom:16px; animation:fadeUp .5s ease both; }
.meta-header { display:flex; align-items:center; justify-content:space-between; cursor:pointer; user-select:none; }
.meta-title { font-family:var(--font-d); font-size:17px; font-weight:600; margin:0; }
.meta-chevron { color:var(--dim); font-size:14px; transition:transform .2s; }
.meta-body { margin-top:16px; font-size:14px; line-height:1.8; color:var(--muted); transition:all .3s ease; overflow:hidden; }
.meta-body.collapsed { max-height:0; margin-top:0; opacity:0; pointer-events:none; }

/* Meta bullet list */
.meta-bullets { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.meta-bullet { padding:12px 16px; background:var(--raised); border:1px solid var(--border-s); border-radius:var(--radius-sm); font-size:13px; line-height:1.7; color:var(--text); position:relative; padding-left:28px; }
.meta-bullet::before { content:'\2022'; position:absolute; left:12px; top:12px; color:var(--accent); font-size:16px; font-weight:700; }

/* Meta prose paragraphs */
.meta-para { margin-bottom:14px; font-size:14px; line-height:1.8; color:var(--muted); }
.meta-para:last-child { margin-bottom:0; }

/* Highlighted numbers */
.hl-money { color:var(--green); font-weight:600; }
.hl-pct { color:var(--amber); font-weight:600; }
.hl-num { color:var(--text); font-weight:600; }
.suggested-q { display:block; width:100%; text-align:left; padding:12px 18px; background:var(--raised); border:1px solid var(--border); border-radius:var(--radius); color:var(--accent); font-size:13px; font-family:var(--font); cursor:pointer; transition:all .2s; line-height:1.4; }
.suggested-q:hover { border-color:var(--accent); background:var(--accent-soft); transform:translateX(4px); }
.theme-summary-panel { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:24px 28px; margin-bottom:8px; animation:fadeUp .4s ease both; }
.theme-pill { display:inline-flex; align-items:center; gap:6px; padding:6px 14px; border-radius:20px; font-size:12px; font-weight:500; background:var(--raised); border:1px solid var(--border); color:var(--text); cursor:pointer; transition:all .2s; }
.theme-pill:hover { border-color:var(--accent); background:var(--accent-soft); }
.synthesis-loading { padding:24px; text-align:center; color:var(--dim); font-size:13px; }
.sq-arrow { color:var(--green); font-weight:700; margin-right:6px; }
mark.diff-hl { background:rgba(99,179,237,.15); color:var(--accent); border-radius:2px; padding:0 2px; font-weight:600; }

/* ─── Workspace Filter Bar ─── */
.ws-filter-bar { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.ws-search-wrap { position:relative; flex:1; }
.ws-search-icon { position:absolute; left:10px; top:50%; transform:translateY(-50%); font-size:13px; opacity:.4; pointer-events:none; }
.ws-search { width:100%; padding:8px 12px 8px 32px; background:var(--raised); border:1px solid var(--border); border-radius:var(--radius-sm); color:var(--text); font-size:13px; font-family:var(--font); outline:none; transition:border-color .2s; }
.ws-search:focus { border-color:var(--accent); }
.ws-search-clear { position:absolute; right:8px; top:50%; transform:translateY(-50%); background:none; border:none; color:var(--dim); cursor:pointer; font-size:12px; padding:2px 4px; }
.ws-search-clear:hover { color:var(--text); }
.ws-sort { padding:8px 12px; background:var(--raised); border:1px solid var(--border); border-radius:var(--radius-sm); color:var(--text); font-size:12px; font-family:var(--font); cursor:pointer; outline:none; }
.ws-sort:focus { border-color:var(--accent); }
.ws-count { font-size:11px; color:var(--dim); white-space:nowrap; }

/* ─── Digest Section ─── */
.digest-section { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:24px 28px; margin-bottom:20px; animation:fadeUp .4s ease both; }
.digest-header { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.digest-emoji { font-size:22px; }
.digest-title { font-family:var(--font-d); font-size:17px; font-weight:600; color:var(--text); }
.digest-headline { font-family:var(--font-d); font-size:20px; font-weight:600; color:var(--accent); margin-bottom:16px; line-height:1.3; }
.digest-grid { display:grid; grid-template-columns:280px 1fr; gap:24px; margin-bottom:16px; }
@media (max-width:800px) { .digest-grid { grid-template-columns:1fr; } }
.digest-col {}
.digest-subtitle { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--dim); margin-bottom:8px; }
.digest-bars { display:flex; flex-direction:column; gap:6px; }
.digest-bar-row { display:flex; align-items:center; gap:8px; }
.digest-bar-label { font-size:11px; color:var(--muted); width:72px; text-align:right; font-family:var(--font-mono); }
.digest-bar-track { flex:1; height:14px; background:var(--raised); border-radius:3px; overflow:hidden; }
.digest-bar-fill { height:100%; border-radius:3px; transition:width .6s ease; }
.digest-bar-val { font-size:11px; color:var(--text); font-weight:600; width:20px; }
.digest-dims { display:flex; flex-wrap:wrap; gap:6px; }
.digest-dim-chip { font-size:11px; padding:3px 8px; background:var(--raised); border:1px solid var(--border); border-radius:var(--radius-sm); color:var(--muted); }
.digest-body { font-size:13px; line-height:1.7; color:var(--muted); }
.digest-narrative { margin-top:16px; padding-top:16px; border-top:1px solid var(--border); }
.digest-blind-spots { margin-top:16px; padding-top:16px; border-top:1px solid var(--border); }
.digest-spots-list { margin:0; padding-left:20px; font-size:13px; color:var(--muted); line-height:1.7; }
.digest-spots-list li { margin-bottom:6px; }
.digest-suggested { margin-top:16px; padding-top:16px; border-top:1px solid var(--border); }

/* ─── Ambiguity / Clarify ─── */
.clarify-panel { background:var(--surface); border:1px solid var(--accent); border-radius:var(--radius-lg); padding:24px 28px; margin-bottom:20px; animation:fadeUp .4s ease both; box-shadow:0 0 20px rgba(79,140,255,0.08); }
.clarify-header { display:flex; align-items:flex-start; gap:12px; margin-bottom:16px; }
.clarify-icon { font-size:24px; line-height:1; }
.clarify-title { font-family:var(--font-d); font-size:17px; font-weight:600; color:var(--text); }
.clarify-reason { font-size:12px; color:var(--muted); margin-top:2px; line-height:1.4; }
.clarify-original { font-size:13px; color:var(--dim); font-style:italic; margin-bottom:16px; padding:8px 14px; background:var(--raised); border-radius:var(--radius-sm); border:1px solid var(--border-s); }
.clarify-options { display:flex; flex-direction:column; gap:8px; }
.clarify-option { display:flex; flex-direction:column; gap:4px; text-align:left; padding:14px 18px; background:var(--raised); border:1px solid var(--border); border-radius:var(--radius); cursor:pointer; transition:all .2s; font-family:var(--font); }
.clarify-option:hover { border-color:var(--accent); background:var(--accent-soft); transform:translateX(4px); }
.clarify-label { font-size:12px; font-weight:600; color:var(--accent); text-transform:uppercase; letter-spacing:0.3px; }
.clarify-query { font-size:13px; color:var(--text); line-height:1.4; }
.clarify-dismiss { margin-top:4px; padding:10px 18px; background:transparent; border:1px dashed var(--border); border-radius:var(--radius); color:var(--dim); font-size:12px; cursor:pointer; transition:all .2s; font-family:var(--font); text-align:left; }
.clarify-dismiss:hover { border-color:var(--muted); color:var(--muted); }

/* ─── Welcome / Starters ─── */
.welcome { max-width:720px; margin:0 auto; padding:20px 0; }
.welcome-hero { text-align:center; margin-bottom:40px; animation:fadeUp .5s ease both; }
.welcome-greeting { font-size:14px; color:var(--accent); font-weight:500; letter-spacing:0.5px; text-transform:uppercase; margin-bottom:8px; }
.welcome-title { font-family:var(--font-d); font-size:28px; font-weight:600; color:var(--text); line-height:1.3; margin-bottom:12px; }
.welcome-sub { font-size:14px; color:var(--muted); line-height:1.7; max-width:520px; margin:0 auto; }
.welcome-section-label { font-size:11px; font-weight:600; color:var(--dim); text-transform:uppercase; letter-spacing:0.8px; margin-bottom:14px; animation:fadeUp .5s ease both; animation-delay:0.1s; }
.starter-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:40px; animation:fadeUp .5s ease both; animation-delay:0.15s; }
.starter-card { display:flex; flex-direction:column; gap:6px; text-align:left; padding:16px 20px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); cursor:pointer; transition:all .25s; font-family:var(--font); }
.starter-card:hover { border-color:var(--accent); background:var(--accent-soft); transform:translateY(-2px); box-shadow:0 4px 20px rgba(79,140,255,0.08); }
.starter-icon { font-size:20px; }
.starter-hint { font-size:11px; font-weight:600; color:var(--accent); text-transform:uppercase; letter-spacing:0.3px; }
.starter-q { font-size:13px; color:var(--text); line-height:1.4; }
.welcome-flow { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:24px 28px; animation:fadeUp .5s ease both; animation-delay:0.25s; }
.welcome-flow-label { font-size:11px; font-weight:600; color:var(--dim); text-transform:uppercase; letter-spacing:0.8px; margin-bottom:16px; }
.welcome-steps { display:flex; align-items:center; justify-content:center; gap:8px; flex-wrap:wrap; }
.welcome-step { display:flex; align-items:center; gap:8px; padding:8px 14px; background:var(--raised); border-radius:var(--radius-sm); font-size:13px; color:var(--text); border:1px solid var(--border-s); }
.welcome-step-num { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; background:var(--accent); color:var(--bg); font-size:11px; font-weight:700; }
.welcome-step-arrow { color:var(--dim); font-size:16px; }

/* ─── Toast Notification System ─── */
#toast-container { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); z-index:9999; display:flex; flex-direction:column-reverse; gap:8px; align-items:center; pointer-events:none; }
.toast { padding:10px 24px; border-radius:var(--radius); font-size:13px; font-weight:500; color:#fff; opacity:0; transform:translateY(12px); transition:all .3s ease; pointer-events:auto; box-shadow:0 4px 20px rgba(0,0,0,0.3); white-space:nowrap; }
.toast.toast-visible { opacity:1; transform:translateY(0); }
.toast-info { background:var(--accent); box-shadow:0 4px 20px rgba(79,140,255,0.3); }
.toast-success { background:var(--green); box-shadow:0 4px 20px rgba(52,211,153,0.3); }
.toast-error { background:var(--rose); box-shadow:0 4px 20px rgba(244,114,182,0.3); }
.toast-warning { background:var(--amber); color:var(--bg); box-shadow:0 4px 20px rgba(251,191,36,0.3); }

/* ─── KPI Dashboard (Repairs Director) ─── */
.kpi-summary-bar { display:flex; align-items:center; gap:8px; margin-bottom:12px; padding:8px 0; flex-wrap:wrap; }
.kpi-rag-chip { display:inline-flex; align-items:center; padding:4px 12px; border-radius:12px; font-size:12px; font-weight:600; color:#fff; letter-spacing:0.3px; }
.kpi-dash-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:10px; margin-bottom:16px; animation:fadeUp .4s ease both; }
.kpi-dash-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:14px 16px; transition:all .2s; position:relative; cursor:default; }
.kpi-dash-card:hover { transform:translateY(-2px); box-shadow:0 4px 16px rgba(0,0,0,.15); }
.kpi-dash-label { font-size:11px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:0.3px; margin-bottom:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.kpi-dash-value { font-family:var(--font-d); font-size:28px; font-weight:700; line-height:1.2; margin-bottom:4px; }
.kpi-dash-rag { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.4px; display:flex; align-items:center; gap:5px; color:var(--dim); }
.kpi-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
@media (max-width:1100px) { .kpi-dash-grid { grid-template-columns:repeat(3, 1fr); } }
@media (max-width:768px) { .kpi-dash-grid { grid-template-columns:repeat(2, 1fr); } }

/* ─── Keyboard Hint ─── */
.kbd-hint { position:absolute; right:120px; top:50%; transform:translateY(-50%); padding:2px 8px; border-radius:4px; font-size:10px; font-family:var(--mono); color:var(--dim); background:var(--raised); border:1px solid var(--border-s); pointer-events:none; opacity:.6; }
/* ─── Search Toggle ─── */
.search-toggle { width:38px; height:38px; border-radius:var(--radius-sm); border:1px solid var(--border); background:var(--raised); color:var(--dim); font-size:15px; cursor:pointer; transition:all .2s; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.search-toggle:hover { border-color:var(--accent); color:var(--text); }
.search-toggle.active { background:var(--accent-soft); border-color:var(--accent); color:var(--accent); }

/* ─── Follow-Up Suggestions ─── */
.suggestion-chips { display:flex; gap:8px; flex-wrap:wrap; margin:12px 0; align-items:center; }
.suggestion-label { font-size:11px; font-weight:600; color:var(--dim); text-transform:uppercase; letter-spacing:0.5px; margin-right:4px; }
.suggestion-chip { display:inline-flex; padding:8px 16px; border-radius:20px; font-size:12px; color:var(--accent); background:var(--raised); border:1px solid var(--border); cursor:pointer; transition:all .2s; font-family:var(--font); line-height:1.3; text-align:left; }
.suggestion-chip:hover { border-color:var(--accent); background:var(--accent-soft); transform:translateY(-1px); }

/* ─── Follow-Up Input ─── */
.followup-input-bar { display:flex; gap:8px; padding:14px 0 0; border-top:1px solid var(--border-s); margin-top:12px; }
.followup-input { flex:1; background:var(--raised); border:1px solid var(--border); border-radius:var(--radius); padding:10px 16px; color:var(--text); font-family:var(--font); font-size:13px; outline:none; transition:all .2s; }
.followup-input:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.followup-input::placeholder { color:var(--dim); }
.followup-send { width:36px; height:36px; border-radius:var(--radius); background:var(--accent); border:none; color:#fff; font-size:14px; cursor:pointer; transition:all .2s; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.followup-send:hover { filter:brightness(1.1); }
.card-followup { margin-left:24px; border-left:2px solid var(--accent-soft) !important; }

/* ─── Narrative Summary ─── */
.narrative-section { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:24px 28px; animation:fadeUp .5s ease both; }
.narrative-empty { border-style:dashed; text-align:center; }
.narrative-header { display:flex; align-items:center; gap:10px; margin-bottom:16px; flex-wrap:wrap; }
.narrative-body { font-size:14px; line-height:1.85; color:var(--text); }
.narrative-audience-tabs { display:flex; gap:2px; background:var(--raised); border-radius:6px; padding:2px; }
.narrative-tab { padding:5px 12px; border-radius:4px; font-size:11px; font-weight:500; color:var(--muted); cursor:pointer; transition:all .15s; border:none; background:transparent; font-family:var(--font); }
.narrative-tab:hover { color:var(--text); }
.narrative-tab.active { background:var(--accent-soft); color:var(--accent); }

/* ─── Tag Pills ─── */
.card-tags { display:flex; gap:4px; flex-wrap:wrap; margin-top:6px; min-height:0; }
.tag-pill { display:inline-flex; padding:2px 8px; border-radius:10px; font-size:10px; color:var(--dim); background:var(--raised); border:1px solid var(--border-s); font-family:var(--font); }

/* ─── Conversation Thread ─── */
.conversation-thread { max-width:840px; margin:0 auto; display:flex; flex-direction:column; gap:0; padding-bottom:80px; position:relative; }
.thread-item { padding:24px 0; border-bottom:1px solid var(--border-s); animation:fadeUp .4s ease both; }
.thread-item:last-of-type { border-bottom:none; }
.thread-question { display:flex; align-items:baseline; gap:10px; margin-bottom:14px; }
.thread-q-icon { font-size:15px; flex-shrink:0; opacity:.6; }
.thread-q-text { font-family:var(--font-d); font-size:17px; font-weight:600; line-height:1.4; flex:1; }
.thread-q-time { font-size:11px; color:var(--dim); font-family:var(--mono); flex-shrink:0; white-space:nowrap; }
.thread-response { padding-left:25px; }
.thread-followup { margin-left:20px; border-left:2px solid var(--accent-soft); padding-left:20px; }
.thread-followup .thread-response { padding-left:25px; }
.thread-actions { display:flex; gap:8px; padding:12px 0 0; flex-wrap:wrap; }
.thread-input-bar { position:sticky; bottom:0; background:var(--bg); padding:16px 0; border-top:1px solid var(--border); display:flex; gap:8px; z-index:10; margin-top:8px; }
.thread-input-bar .followup-input { flex:1; }

/* ─── Nav: New Conversation Button ─── */
.nav-new-convo { display:flex; align-items:center; gap:10px; padding:9px 14px; border-radius:var(--radius-sm); cursor:pointer; font-size:13px; color:var(--muted); transition:all .15s; user-select:none; border:1px dashed var(--border); margin:4px 0 8px; }
.nav-new-convo:hover { border-color:var(--accent); color:var(--accent); background:var(--accent-soft); }

/* ─── Modal Overlay (kept for lever board / risk register) ─── */
.modal-overlay { position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.6); z-index:1000; display:flex; align-items:center; justify-content:center; }
.modal-content { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:20px; max-width:900px; width:90%; max-height:80vh; overflow:auto; box-shadow:0 8px 32px rgba(0,0,0,.4); }
.modal-content.modal-wide { max-width:1100px; }
.modal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.modal-header h3 { margin:0; font-size:16px; font-weight:600; }

/* ─── KPI Full-Page Drilldown ─── */
.kdd-container { max-width:100%; margin:0 auto; padding:24px 32px; }
.kdd-topbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.kdd-back { background:none; border:1px solid var(--border); border-radius:var(--radius-sm); padding:6px 14px; color:var(--fg); cursor:pointer; font-size:13px; font-family:inherit; transition:all .15s; }
.kdd-back:hover { border-color:var(--accent); color:var(--accent); background:var(--accent-soft); }
.kdd-header { margin-bottom:16px; }
.kdd-title-row { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; }
.kdd-title { margin:0; font-size:24px; font-weight:700; font-family:'Fraunces',serif; letter-spacing:-0.01em; }
.kdd-desc { color:var(--muted); font-size:13px; margin-top:4px; max-width:600px; line-height:1.4; }
.kdd-hero { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.kdd-hero-value { font-size:40px; font-weight:700; font-family:'Fraunces',serif; line-height:1; }
.kdd-hero-rag { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; padding:3px 10px; border-radius:4px; color:#fff; }
.kdd-hero-context { font-size:12px; color:var(--muted); text-align:right; margin-top:4px; }
.kdd-meta { display:flex; gap:20px; font-size:12px; color:var(--muted); margin-top:8px; }
.kdd-meta strong { color:var(--fg); }

/* ─── Stat Strip ─── */
.kdd-stats { display:flex; gap:12px; margin-bottom:18px; }
.kdd-stat-card { flex:1; min-width:0; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:20px 16px; text-align:center; transition:border-color .2s; display:flex; flex-direction:column; }
.kdd-stat-card:hover { border-color:var(--accent); }
.kdd-stat-arrow { font-size:32px; line-height:1; margin-bottom:4px; }
.kdd-stat-val { font-size:26px; font-weight:700; font-family:'Fraunces',serif; line-height:1.2; color:var(--fg); }
.kdd-stat-sub { font-size:12px; color:var(--muted); margin-top:auto; padding-top:5px; letter-spacing:.02em; }
.kdd-stat-ph { opacity:0.35; }

/* ─── Chart Section ─── */
.kdd-section { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:20px; margin-bottom:16px; }
.kdd-chart-section { padding:20px 16px 16px; }
.kdd-section h3 { margin:0 0 16px; font-size:14px; font-weight:600; }
.kdd-section-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.kdd-section-header h3 { margin:0; }
.kdd-range-group { display:flex; gap:0; border:1px solid var(--border); border-radius:var(--radius-sm); overflow:hidden; }
.kdd-range-btn { background:var(--bg); border:none; padding:5px 10px; font-size:11px; color:var(--muted); cursor:pointer; font-family:inherit; transition:all .15s; border-right:1px solid var(--border); }
.kdd-range-btn:last-child { border-right:none; }
.kdd-range-btn.active { background:var(--accent); color:#fff; }
.kdd-range-btn:hover:not(.active) { color:var(--fg); background:var(--raised); }

/* ─── Legend ─── */
.kdd-legend { display:flex; gap:20px; font-size:11px; color:var(--muted); margin-top:10px; padding-top:10px; border-top:1px solid var(--border); }
.kdd-legend span { display:flex; align-items:center; gap:6px; }
.kdd-legend-bar { display:inline-block; width:14px; height:10px; background:var(--accent); border-radius:2px; }
.kdd-legend-line { display:inline-block; width:16px; height:3px; border-radius:2px; }
.kdd-legend-ma { background:#a78bfa; }
.kdd-legend-trend { background:transparent; border-top:2px dashed rgba(251,191,36,0.6); height:0; }
.kdd-legend-target { display:inline-block; width:16px; height:0; border-top:2px dashed #34d399; }

/* ─── Filter banner + chart total ─── */
.kdd-filter-banner { background:rgba(79,140,255,0.08); border:1px solid rgba(79,140,255,0.25); border-radius:var(--radius-sm); padding:6px 14px; font-size:12px; color:var(--accent); margin-bottom:10px; font-weight:500; }
.kdd-chart-total { text-align:center; font-size:11px; color:var(--muted); margin-top:4px; }

/* ─── Expiry countdown bars ─── */
.kdd-expiry-bar { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; min-width:0; }
.kdd-expiry-bar:hover { opacity:0.85; }

/* ─── Pagination ─── */
.dd-pagination { display:flex; align-items:center; justify-content:center; gap:4px; padding:10px 0 4px; }
.dd-pagination .action-btn:disabled { opacity:0.3; cursor:not-allowed; }

/* ─── Drilldown Table ─── */
.drilldown-table { width:100%; border-collapse:collapse; font-size:12px; }
.drilldown-table th { background:var(--bg); padding:6px 10px; text-align:left; font-weight:600; border-bottom:1px solid var(--border); position:sticky; top:0; }
.drilldown-table td { padding:5px 10px; border-bottom:1px solid var(--border); white-space:nowrap; max-width:200px; overflow:hidden; text-overflow:ellipsis; }
.drilldown-table tr:hover td { background:rgba(255,255,255,0.02); }

/* Sort indicators */
.drilldown-table th[data-dd-sort] { cursor:pointer; user-select:none; }
.drilldown-table th.sorted { color:var(--accent); }

/* Filter */
.dd-filter-icon { cursor:pointer; opacity:0.3; margin-left:4px; font-size:10px; }
.dd-filter-icon:hover { opacity:1; }
.dd-filter-icon.active { opacity:1; color:var(--accent); }
.dd-filter-row th { padding:2px 4px; background:var(--bg); }
.dd-filter-input { width:100%; padding:3px 6px; font-size:11px; background:var(--surface); border:1px solid var(--border); border-radius:3px; color:var(--fg); box-sizing:border-box; }
.dd-filter-input:focus { border-color:var(--accent); outline:none; }

/* Group rows */
.dd-group-row { cursor:pointer; background:var(--bg); font-weight:600; }
.dd-group-row:hover td { background:rgba(255,255,255,0.04) !important; }
.dd-group-row td:first-child { padding-left:10px; }
.dd-detail-row { font-size:11px; }
.dd-detail-row td:first-child { padding-left:24px; }
.dd-detail-row td { color:var(--muted); }

/* Toolbar */
.dd-toolbar { display:flex; justify-content:space-between; align-items:center; padding:8px 0; margin-bottom:8px; border-bottom:1px solid var(--border); font-size:12px; }
.dd-group-select { font-size:11px; padding:3px 8px; background:var(--bg); border:1px solid var(--border); border-radius:4px; color:var(--fg); cursor:pointer; }
.dd-group-select:focus { border-color:var(--accent); outline:none; }

/* ─── Facet Dimension Panels ─── */
.kdd-facets-section { padding:16px 20px; }
.facet-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; }
.facet-panel { background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-sm); padding:10px 12px; display:flex; flex-direction:column; }
.facet-title { font-size:11px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; }
.facet-bar { display:flex; align-items:center; gap:6px; padding:3px 4px; border-radius:3px; cursor:pointer; transition:background .15s; }
.facet-bar:hover { background:var(--raised); }
.facet-bar.active { background:var(--accent-soft); }
.facet-label { width:70px; font-size:11px; color:var(--fg); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; flex-shrink:0; }
.facet-track { flex:1; height:14px; background:var(--surface); border-radius:2px; overflow:hidden; }
.facet-fill { height:100%; border-radius:2px; transition:width .2s; min-width:2px; }
.facet-count { font-size:10px; color:var(--muted); min-width:24px; text-align:right; font-family:var(--font-m); }
.facet-bars { flex:1; }
.facet-total { display:flex; justify-content:space-between; align-items:center; margin-top:auto; padding-top:8px; border-top:1px solid var(--border); font-size:13px; color:var(--fg); font-weight:700; letter-spacing:.03em; }
.facet-total span { font-family:var(--font-m); font-size:14px; font-weight:700; }

/* ─── Facet Filter Chips ─── */
.facet-chipbar { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px; }
.facet-chip { font-size:10px; padding:3px 8px; border-radius:10px; background:var(--accent-soft); color:var(--accent); cursor:pointer; transition:all .15s; border:1px solid var(--accent); }
.facet-chip:hover { background:var(--accent); color:#fff; }
.facet-chip-reset { background:transparent; border-color:var(--border); color:var(--muted); }
.facet-chip-reset:hover { border-color:var(--rose); color:var(--rose); background:var(--rose-s); }

/* ─── Priority Visit List ─── */
.kdd-priority-section { padding:16px 20px; }
.pvl-tier { margin-bottom:12px; overflow-x:auto; }
.pvl-tier-header { font-size:13px; font-weight:600; color:var(--fg); margin-bottom:6px; display:flex; align-items:center; gap:8px; }
.pvl-tier-count { font-weight:400; color:var(--muted); font-size:11px; }
.priority-p1 .pvl-tier-header { color:#ef4444; }
.priority-p2 .pvl-tier-header { color:#f59e0b; }
.priority-p3 .pvl-tier-header { color:var(--muted); }
.pvl-header-row { display:grid; grid-template-columns:150px 260px 100px 55px 70px 55px 1fr; gap:8px; padding:4px 8px; font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); border-bottom:1px solid var(--border); min-width:780px; }
.pvl-row { display:grid; grid-template-columns:150px 260px 100px 55px 70px 55px 1fr; gap:8px; align-items:center; padding:6px 8px; border-radius:var(--radius-sm); cursor:pointer; transition:background .15s; border-bottom:1px solid var(--border); min-width:780px; }
.pvl-row:not([data-dd-property]) { cursor:default; }
.pvl-row:hover { background:var(--raised); }
.pvl-block-header { display:grid; grid-template-columns:150px 260px 100px 55px 70px 55px 1fr; gap:8px; align-items:center; padding:8px; border-radius:var(--radius-sm); cursor:pointer; transition:background .15s; border-bottom:1px solid var(--border); background:var(--surface); min-width:780px; }
.pvl-block-header:hover { background:var(--raised); }
.pvl-tenant { font-size:12px; color:var(--fg); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pvl-addr { font-size:12px; color:var(--fg); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pvl-area { font-size:11px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pvl-score { font-size:12px; font-weight:600; font-family:var(--font-m); color:var(--fg); text-align:left; }
.pvl-score-tip { position:relative; cursor:help; text-decoration:underline dotted var(--muted); text-underline-offset:3px; }
.pvl-score-critical { color:#ef4444; animation:pvl-pulse 1.5s ease-in-out infinite; }
.pvl-row-flash { animation:pvl-row-pulse 2s ease-in-out infinite; background:rgba(239,68,68,0.08); border-left:3px solid #ef4444 !important; }
@keyframes pvl-pulse { 0%,100%{ opacity:1; } 50%{ opacity:0.5; } }
@keyframes pvl-row-pulse { 0%,100%{ background:rgba(239,68,68,0.08); } 50%{ background:rgba(239,68,68,0.18); } }
.pvl-score-tip:hover::after { content:attr(data-tip); position:absolute; left:0; top:100%; z-index:100; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); padding:10px 14px; font-size:11px; font-weight:400; white-space:pre; line-height:1.6; color:var(--fg); box-shadow:0 4px 16px rgba(0,0,0,0.4); pointer-events:none; min-width:280px; }
.pvl-days { font-size:12px; font-weight:600; font-family:var(--font-m); text-align:left; white-space:nowrap; }
.pvl-date { font-size:11px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pvl-cat { font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--muted); }
.pvl-badges { display:flex; gap:4px; flex-wrap:wrap; }
.pvl-wide-complaint .pvl-header-row, .pvl-wide-complaint .pvl-row { grid-template-columns:130px 200px 80px 45px 40px 100px 170px 1fr; min-width:850px; }
.pvl-resp { font-size:11px; font-weight:600; font-family:var(--font-m); color:var(--muted); white-space:nowrap; }
.pvl-wide-breach .pvl-header-row, .pvl-wide-breach .pvl-row { grid-template-columns:0.8fr 1.4fr 90px 80px 70px 50px 50px 80px 1.5fr; min-width:850px; }
.pvl-wide-score .pvl-header-row, .pvl-wide-score .pvl-row { grid-template-columns:130px 220px 90px 55px 70px 45px 90px 1fr; min-width:800px; }
.pvl-wide-decent .pvl-header-row, .pvl-wide-decent .pvl-row { grid-template-columns:110px 1.5fr 65px 42px 140px 80px 78px 1fr; min-width:800px; }
.pvl-wide-decent .pvl-row > div, .pvl-wide-decent .pvl-header-row > div { min-width:0; }
.pvl-wide-decent .pvl-days { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pvl-wide-decent .pvl-date { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pvl-wide-decent .pvl-cat { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pvl-wide-wip .pvl-header-row, .pvl-wide-wip .pvl-row { grid-template-columns:85px 110px 1.2fr 65px 80px 42px 65px 45px 1fr; min-width:780px; }
.pvl-wide-na .pvl-header-row, .pvl-wide-na .pvl-row { grid-template-columns:140px 240px 90px 100px 75px 95px 110px; min-width:850px; }
.pvl-wide-nc .pvl-header-row, .pvl-wide-nc .pvl-row { grid-template-columns:140px 220px 90px 55px 100px 65px 1fr; min-width:800px; }
.pvl-wide-wip .pvl-row > div, .pvl-wide-wip .pvl-header-row > div { min-width:0; }
.pvl-wide-wip .pvl-ref { font-family:var(--font-m); font-size:10px; color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pvl-wide-wip .pvl-trade { font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pvl-bucket { font-size:10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pvl-badge { font-size:9px; padding:2px 6px; border-radius:8px; font-weight:600; letter-spacing:.02em; white-space:nowrap; }
.pvl-badge-red { background:rgba(239,68,68,0.15); color:#ef4444; }
.pvl-badge-amber { background:rgba(245,158,11,0.15); color:#f59e0b; }
.pvl-badge-green { background:rgba(52,211,153,0.15); color:#34d399; }
.pvl-badge-grey { background:rgba(107,114,128,0.15); color:#6b7280; }
.pvl-nav { display:flex; align-items:center; gap:8px; padding:6px 8px; }
.pvl-nav-btn { font-size:11px; color:var(--accent); background:none; border:1px solid var(--border); border-radius:var(--radius-sm); padding:2px 10px; cursor:pointer; }
.pvl-nav-btn:hover:not([disabled]) { background:var(--raised); }
.pvl-nav-btn[disabled] { opacity:.3; cursor:default; }
.pvl-nav-info { font-size:11px; color:var(--muted); font-family:var(--font-m); }

/* ─── Lever Board v2 ─── */
.lever-board-v2 { max-height:70vh; overflow-y:auto; padding:4px 0; }
.lev-section { margin-bottom:16px; }
.lev-section:last-child { margin-bottom:0; }
.lev-section-header { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; margin-bottom:8px; display:flex; align-items:center; gap:6px; }
.lev-section-header small { font-weight:400; color:var(--dim); }
.lever-card-v2 { background:var(--raised); border-radius:var(--radius-sm); padding:12px 14px; margin-bottom:8px; }
.lev-header { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:6px; }
.lev-title { font-size:13px; font-weight:600; flex:1; }
.lev-impact { font-size:11px; font-weight:700; font-family:'JetBrains Mono',monospace; white-space:nowrap; padding:2px 8px; background:var(--bg); border-radius:4px; color:var(--fg); }
.lev-detail { font-size:12px; color:var(--dim); line-height:1.5; margin-bottom:8px; }
.lev-footer { display:flex; align-items:center; gap:8px; }
.lev-kpi-tag { font-size:10px; padding:2px 8px; border-radius:10px; background:var(--bg); color:var(--muted); font-weight:600; letter-spacing:.02em; }
.lev-cohort { font-size:10px; color:var(--dim); }
.lev-dot-red { color:var(--rose); }
.lev-dot-amber { color:var(--amber); }
.lev-dot-blue { color:var(--accent); }

/* ─── Actions Panel ─── */
.actions-panel { background:var(--raised); border-radius:var(--radius); padding:14px 16px; margin-top:12px; }
.actions-header { display:flex; align-items:center; justify-content:space-between; font-size:14px; font-weight:600; margin-bottom:10px; }
.actions-count { font-size:12px; color:var(--muted); font-weight:400; }
.action-item { display:flex; align-items:flex-start; gap:8px; padding:6px 0; border-bottom:1px solid var(--border); }
.action-item:last-child { border-bottom:none; }
.action-status { font-size:14px; flex-shrink:0; margin-top:1px; }
.action-body { flex:1; min-width:0; }
.action-title { font-size:13px; font-weight:500; }
.action-meta { font-size:11px; color:var(--muted); margin-top:2px; }
.action-priority { font-weight:600; text-transform:uppercase; font-size:10px; letter-spacing:.3px; }

/* ─── Three-Pillar KPI Layout ─── */
.kpi-pillars-container { display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; margin-top:10px; }
.kpi-pillar { min-width:0; }
.kpi-pillar-header { padding:8px 12px; margin-bottom:10px; border-bottom:3px solid var(--border); }
.kpi-pillar-title { font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; }
.kpi-pillar-subtitle { font-size:11px; color:var(--muted); margin-left:6px; }
.kpi-pillar-grid { display:flex; flex-direction:column; gap:8px; }
.kpi-dash-benchmarks { display:flex; gap:10px; margin-top:4px; align-items:center; flex-wrap:wrap; }
.kpi-bench { font-size:11px; color:var(--muted); display:inline-flex; align-items:center; gap:2px; }
.kpi-bench-icon { font-size:12px; }
.kpi-quartile { font-size:11px; font-weight:600; padding:1px 5px; border-radius:3px; background:rgba(255,255,255,0.06); }
.kpi-trend { display:inline-flex; align-items:center; }

@media (max-width: 900px) {
  .kpi-pillars-container { grid-template-columns:1fr; }
}

/* ─── Risk Register ─── */
.risk-register-table { width:100%; border-collapse:collapse; font-size:12px; }
.risk-register-table th { text-align:left; padding:8px 10px; border-bottom:2px solid var(--border); font-size:11px; text-transform:uppercase; letter-spacing:.3px; color:var(--muted); white-space:nowrap; }
.risk-register-table td { padding:8px 10px; border-bottom:1px solid var(--border); vertical-align:top; }
.risk-row:hover { background:rgba(255,255,255,0.02); }
.risk-severity { display:inline-block; padding:2px 8px; border-radius:3px; color:#fff; font-size:10px; font-weight:700; letter-spacing:.3px; }
.risk-pillar-tag { font-size:10px; padding:2px 6px; border-radius:3px; background:var(--bg); color:var(--muted); text-transform:uppercase; letter-spacing:.3px; }
.risk-kpi-label { font-weight:600; white-space:nowrap; }
.risk-mitigation { max-width:300px; line-height:1.4; }

/* ─── Legal Workspace ──────────────────────────────────────────────────── */
.legal-workspace { display:grid; grid-template-columns:240px 1fr 280px; height:calc(100vh - 80px); gap:0; }
.legal-sidebar { border-right:1px solid var(--border); overflow-y:auto; }
.legal-main { display:flex; flex-direction:column; overflow:hidden; }
.legal-obligations { border-left:1px solid var(--border); overflow-y:auto; }

.legal-thread-item { padding:10px 16px; cursor:pointer; border-bottom:1px solid var(--border); transition:background .15s; }
.legal-thread-item:hover { background:rgba(255,255,255,0.03); }
.legal-thread-active { background:rgba(99,102,241,0.08); border-left:2px solid var(--accent); }

.legal-header { display:flex; justify-content:space-between; align-items:center; padding:12px 16px; border-bottom:1px solid var(--border); }
.legal-messages { flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:12px; }
.legal-msg { padding:12px 16px; border-radius:8px; max-width:85%; }
.legal-msg-user { align-self:flex-end; background:rgba(99,102,241,0.12); }
.legal-msg-assistant { align-self:flex-start; background:var(--surface); border:1px solid var(--border); }
.legal-msg-role { font-size:11px; font-weight:600; opacity:.6; margin-bottom:4px; text-transform:uppercase; letter-spacing:.3px; }
.legal-msg-body { font-size:13px; line-height:1.6; white-space:pre-wrap; }

.legal-citations { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.legal-citation { font-size:11px; padding:2px 8px; border-radius:3px; background:rgba(99,102,241,0.1); color:var(--accent); text-decoration:none; }
.legal-citation:hover { background:rgba(99,102,241,0.2); }

.legal-input-bar { display:flex; gap:8px; padding:12px 16px; border-top:1px solid var(--border); }
.legal-input { flex:1; background:var(--surface); border:1px solid var(--border); border-radius:6px; padding:8px 12px; color:var(--fg); font-size:13px; }
.legal-input:focus { outline:none; border-color:var(--accent); }

.legal-ob-card { padding:12px 16px; border-bottom:1px solid var(--border); }
.legal-risk-badge { display:inline-block; padding:1px 6px; border-radius:3px; color:#fff; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.3px; }
.legal-ob-status { cursor:pointer; font-size:14px; opacity:.7; }
.legal-ob-status:hover { opacity:1; }

.legal-action-pack { margin-top:8px; padding-left:12px; border-left:2px solid var(--border); }
.legal-action-item { display:flex; align-items:flex-start; gap:6px; padding:4px 0; }
.legal-action-status { cursor:pointer; font-size:12px; opacity:.7; margin-top:1px; }
.legal-action-status:hover { opacity:1; }

/* ─── Legal Sub-navigation ────────────────────────────────────────────── */
.legal-subnav { display:flex; gap:4px; margin-bottom:16px; }
.legal-subnav-tab { padding:6px 16px; border-radius:6px; cursor:pointer; font-size:13px; color:var(--muted); transition:all .15s; }
.legal-subnav-tab:hover { color:var(--fg); background:rgba(255,255,255,0.03); }
.legal-subnav-tab.active { background:var(--accent); color:#fff; }

/* ─── Watches ─────────────────────────────────────────────────────────── */
.legal-watch-list { display:flex; flex-direction:column; gap:8px; }
.legal-watch-row { padding:12px; background:var(--raised); border-radius:8px; }
.legal-watch-name { font-weight:600; margin-bottom:4px; }
.legal-watch-query { font-size:12px; color:var(--muted); }

/* ─── Radar Events ────────────────────────────────────────────────────── */
.legal-radar-list { display:flex; flex-direction:column; gap:8px; }
.legal-radar-row { padding:12px; background:var(--raised); border-radius:8px; cursor:pointer; transition:background .15s; }
.legal-radar-row:hover { background:rgba(255,255,255,0.04); }
.legal-radar-title { font-weight:600; }
.legal-radar-summary { font-size:13px; color:var(--muted); margin-top:4px; }

/* ─── Impacts ─────────────────────────────────────────────────────────── */
.legal-impact-list { margin-top:8px; padding-left:16px; }
.legal-impact-row { padding:8px 12px; border-left:3px solid var(--accent); margin-bottom:6px; background:rgba(0,0,0,0.1); border-radius:0 6px 6px 0; }

/* ─── Training Modules ────────────────────────────────────────────────── */
.legal-training-group { margin-bottom:16px; }
.legal-training-role { font-size:14px; font-weight:600; margin-bottom:8px; color:var(--accent); }
.legal-training-card { padding:12px; background:var(--raised); border-radius:8px; margin-bottom:8px; cursor:pointer; transition:background .15s; }
.legal-training-card:hover { background:rgba(255,255,255,0.04); }
.legal-training-content { padding:12px; font-size:13px; line-height:1.6; margin-top:8px; border-top:1px solid var(--border); }

/* ─── Severity Badges ─────────────────────────────────────────────────── */
.severity-critical { color:#ef4444; }
.severity-high { color:#f97316; }
.severity-medium { color:#eab308; }
.severity-low { color:#22c55e; }

/* ─── Insight Progress Bar ────────────────────────────────────────────── */
.insight-progress { display:flex; align-items:center; gap:8px; margin:8px 0; }
.progress-step { display:flex; align-items:center; gap:4px; font-size:12px; color:var(--muted); }
.progress-dot { width:8px; height:8px; border-radius:50%; background:var(--border); }
.progress-dot.active { background:var(--accent); animation:pulse 1.2s ease-in-out infinite; }
.progress-dot.done { background:var(--accent); }
.progress-activity { font-size:11px; color:var(--muted); font-style:italic; margin-left:4px; }

/* ─── Knowledge Pipeline ─────────────────────────────────────────────── */
.knowledge-status-card { padding:16px; background:var(--raised); border-radius:8px; margin-bottom:16px; }
.knowledge-stat { display:inline-block; margin-right:24px; }
.knowledge-stat-value { font-size:24px; font-weight:700; }
.knowledge-stat-label { font-size:12px; color:var(--muted); }
.knowledge-source-table { width:100%; font-size:13px; border-collapse:collapse; }
.knowledge-source-table th { text-align:left; padding:8px; border-bottom:1px solid var(--border); }
.knowledge-source-table td { padding:8px; }
.knowledge-freshness-green { color:#22c55e; }
.knowledge-freshness-amber { color:#eab308; }
.knowledge-freshness-red { color:#ef4444; }

@media (max-width:900px) {
  .legal-workspace { grid-template-columns:1fr; }
  .legal-sidebar, .legal-obligations { display:none; }
}

/* ─── Keyboard Shortcut Help Modal ─────────────────────────────────────────── */
.shortcut-modal-overlay { position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.6); z-index:1100; display:flex; align-items:center; justify-content:center; animation:fadeIn .15s ease; }
.shortcut-modal { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:24px 28px; width:420px; max-width:90vw; box-shadow:0 16px 64px rgba(0,0,0,0.5); }
.shortcut-table { width:100%; border-collapse:collapse; }
.shortcut-table td { padding:8px 0; font-size:13px; color:var(--muted); border-bottom:1px solid var(--border-s); }
.shortcut-table td:first-child { white-space:nowrap; padding-right:24px; }
.shortcut-table tr:last-child td { border-bottom:none; }
kbd { display:inline-block; padding:2px 8px; border-radius:4px; font-size:11px; font-family:var(--mono); color:var(--text); background:var(--raised); border:1px solid var(--border); box-shadow:0 1px 0 var(--border); }

/* ─── Micro-interactions & Transitions ─────────────────────────────────────── */

/* Smooth view transitions */
.content { transition:opacity .15s ease; }

/* Focus rings for accessibility */
.query-input:focus, .followup-input:focus, .legal-input:focus, .ws-search:focus {
  border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-soft);
  outline:none;
}

/* Disabled button states */
.action-btn:disabled, .query-submit:disabled, button:disabled {
  opacity:0.4;
  cursor:not-allowed;
  pointer-events:none;
}

/* Clickable hover effects */
.nav-item, .tab, .legal-subnav-tab, .action-btn, .starter-card, .suggested-q, .theme-pill, .clarify-option, .briefing-card, .widget-card { transition:all .15s ease; }

/* Badge count animation */
@keyframes badge-ping { 0% { transform:scale(1); } 50% { transform:scale(1.25); } 100% { transform:scale(1); } }
.nav-badge.ping { animation:badge-ping .3s ease; }

/* Card expand/collapse smooth */
.card-body { animation:fadeIn .2s ease; }

/* ─── Responsive: Legal 2-column at <1200px ────────────────────────────────── */
@media (max-width:1200px) {
  .legal-workspace { grid-template-columns:1fr 1fr; }
  .legal-obligations { border-left:none; border-top:1px solid var(--border); }
}

/* ─── Responsive: Narrow widths ────────────────────────────────────────────── */
@media (max-width:768px) {
  .sidebar { width:0; border-right:none; opacity:0; pointer-events:none; }
  .content { padding:16px; }
  .topbar { padding:10px 16px; }
  .briefing-items { grid-template-columns:1fr; }
  .starter-grid { grid-template-columns:1fr; }
  .cmp-table-wrap { font-size:11px; }
  .lifecycle-grid { grid-template-columns:1fr; }
  .kpi-pillars-container { grid-template-columns:1fr; }
}

/* ─── Paul's Drill-Down Framework ─────────────────────────────────────────── */

/* Universal filter bar */
.paul-filter-bar { display:flex; gap:8px; padding:10px 16px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); margin-bottom:16px; flex-wrap:wrap; align-items:center; }
.paul-filter-label { font-size:11px; color:var(--dim); text-transform:uppercase; letter-spacing:.5px; font-weight:600; margin-right:4px; white-space:nowrap; }
.paul-filter-select { padding:5px 10px; border-radius:6px; font-size:12px; background:var(--raised); border:1px solid var(--border); color:var(--text); font-family:var(--font); cursor:pointer; outline:none; transition:border-color .2s; }
.paul-filter-select:focus { border-color:var(--accent); }
.paul-filter-clear { font-size:11px; color:var(--accent); cursor:pointer; padding:4px 10px; border-radius:4px; border:1px solid var(--border); background:transparent; font-family:var(--font); transition:all .15s; margin-left:auto; }
.paul-filter-clear:hover { background:var(--accent-soft); border-color:var(--accent); }

/* Paul sub-tabs */
.paul-subtabs { display:flex; gap:2px; margin-bottom:16px; background:var(--surface); border-radius:var(--radius-sm); padding:3px; width:fit-content; }
.paul-subtab { padding:8px 16px; border-radius:6px; font-size:12px; font-weight:500; color:var(--muted); cursor:pointer; transition:all .15s; border:none; background:transparent; font-family:var(--font); white-space:nowrap; }
.paul-subtab:hover { color:var(--text); }
.paul-subtab.active { background:var(--accent); color:#fff; }

/* Capability chart container */
.capability-chart { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px; margin-bottom:16px; }
.capability-chart-title { font-size:13px; font-weight:600; color:var(--text); margin-bottom:8px; }

/* Compliance table */
.compliance-table { width:100%; border-collapse:collapse; font-size:12px; }
.compliance-table th { text-align:left; padding:8px 10px; border-bottom:2px solid var(--border); font-size:11px; text-transform:uppercase; letter-spacing:.3px; color:var(--muted); white-space:nowrap; }
.compliance-table td { padding:6px 10px; border-bottom:1px solid var(--border); }
.compliance-table tr:hover td { background:rgba(255,255,255,0.02); }
.compliance-overdue { color:#ef4444; font-weight:600; }

/* Paul summary cards */
.paul-summary-cards { display:flex; gap:10px; margin-bottom:16px; flex-wrap:wrap; }
.paul-summary-card { flex:1; min-width:120px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:14px 16px; text-align:center; }
.paul-summary-value { font-family:var(--font-d); font-size:24px; font-weight:700; color:var(--text); line-height:1.2; }
.paul-summary-label { font-size:11px; color:var(--dim); margin-top:4px; text-transform:uppercase; letter-spacing:.3px; }

/* Paul drill chart containers */
.paul-chart-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.paul-chart-box { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px; }
.paul-chart-title { font-size:13px; font-weight:600; color:var(--text); margin-bottom:8px; }
.paul-chart-full { grid-column:1/-1; }

@media (max-width:900px) {
  .paul-chart-row { grid-template-columns:1fr; }
  .paul-summary-cards { flex-direction:column; }
}

/* ─── Awaab's Law Panel ────────────────────────────────────────────────────── */
.awaab-container { display:flex; flex-direction:column; gap:16px; }
.awaab-header { margin-bottom:4px; }
.awaab-phase { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px 18px; }
.awaab-phase-empty { opacity:.6; }
.awaab-phase-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; flex-wrap:wrap; gap:8px; }
.awaab-phase-label { font-size:14px; font-weight:600; margin-right:8px; }
.awaab-phase-count { font-size:12px; color:var(--dim); font-family:var(--font-d); }
.awaab-phase-placeholder { font-size:12px; color:var(--muted); font-style:italic; padding:8px 0; }
.awaab-status { display:inline-block; padding:2px 8px; border-radius:10px; font-size:10px; font-weight:600; letter-spacing:.3px; text-transform:uppercase; }
.awaab-status-live { background:rgba(34,197,94,.12); color:var(--green); border:1px solid rgba(34,197,94,.25); }
.awaab-status-pending { background:rgba(245,158,11,.10); color:var(--amber, #f59e0b); border:1px solid rgba(245,158,11,.2); }
.awaab-status-future { background:rgba(100,116,139,.10); color:var(--dim); border:1px solid rgba(100,116,139,.15); }
.awaab-metrics-row { display:grid; grid-template-columns:repeat(3, 1fr); gap:12px; margin-bottom:14px; }
/* RAG-glowing metric cards */
.awaab-metric-card { background:var(--bg); border:1px solid var(--border); border-radius:var(--radius-sm); padding:14px 12px; text-align:center; cursor:pointer; transition:border-color .15s, box-shadow .15s; }
.awaab-metric-card:hover { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent); }
.awaab-metric-card.awaab-rag-green { border-color:rgba(34,197,94,.3); box-shadow:0 0 8px rgba(34,197,94,.08); }
.awaab-metric-card.awaab-rag-amber { border-color:rgba(245,158,11,.3); box-shadow:0 0 8px rgba(245,158,11,.08); }
.awaab-metric-card.awaab-rag-red { border-color:rgba(239,68,68,.35); box-shadow:0 0 10px rgba(239,68,68,.12); }
.awaab-metric-card.awaab-drill-active { border-color:var(--accent); box-shadow:0 0 0 2px var(--accent); }
.awaab-metric-pct { font-family:var(--font-d); font-size:26px; font-weight:700; line-height:1.2; }
.awaab-metric-label { font-size:10px; color:var(--dim); margin-top:4px; line-height:1.3; }
.awaab-metric-counts { font-size:11px; color:var(--muted); margin-top:2px; font-family:var(--font-d); }
.awaab-metric-benchmark { font-size:9px; color:var(--dim); margin-top:4px; opacity:.7; }
.awaab-spark-wrap { display:inline-flex; align-items:center; }
/* Heatmap grid */
.awaab-heatmap { margin-bottom:14px; }
.awaab-heatmap-table { width:100%; font-size:12px; border-collapse:collapse; }
.awaab-heatmap-table th { text-align:left; padding:5px 8px; font-weight:500; color:var(--muted); border-bottom:1px solid var(--border); font-size:10px; text-transform:uppercase; letter-spacing:.3px; }
.awaab-heatmap-area { font-weight:500; padding:5px 8px; }
.awaab-heatmap-count { font-family:var(--font-d); padding:5px 8px; color:var(--dim); }
.awaab-heatmap-cell { padding:5px 8px; text-align:center; font-family:var(--font-d); font-weight:600; cursor:pointer; border-radius:3px; transition:opacity .15s; }
.awaab-heatmap-cell:hover { opacity:.8; }
.awaab-heatmap-cell.awaab-rag-green { background:rgba(34,197,94,.12); color:var(--green); }
.awaab-heatmap-cell.awaab-rag-amber { background:rgba(245,158,11,.12); color:var(--amber, #f59e0b); }
.awaab-heatmap-cell.awaab-rag-red { background:rgba(239,68,68,.15); color:var(--rose); }
.awaab-heatmap-table tr { border-bottom:1px solid var(--border-light, rgba(148,163,184,.08)); }
.awaab-heatmap-table tr:last-child { border-bottom:none; }
/* Breakdown tables (trade, hazard) */
.awaab-breakdowns-row { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:14px; margin-top:8px; }
.awaab-breakdown-title { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.4px; color:var(--dim); margin-bottom:6px; }
.awaab-breakdown-table { width:100%; font-size:12px; border-collapse:collapse; }
.awaab-breakdown-table th { text-align:left; padding:4px 6px; font-weight:500; color:var(--muted); border-bottom:1px solid var(--border); font-size:10px; text-transform:uppercase; letter-spacing:.3px; }
.awaab-breakdown-table td { padding:4px 6px; border-bottom:1px solid var(--border-light, rgba(148,163,184,.08)); }
.awaab-breakdown-table td.awaab-rag-green { color:var(--green); font-weight:500; }
.awaab-breakdown-table td.awaab-rag-amber { color:var(--amber, #f59e0b); font-weight:500; }
.awaab-breakdown-table td.awaab-rag-red { color:var(--rose); font-weight:600; }
.awaab-breakdown-table tr:last-child td { border-bottom:none; }
/* Data provenance panel */
.awaab-provenance { margin-top:12px; padding:10px 12px; background:rgba(96,165,250,.04); border:1px solid rgba(96,165,250,.12); border-radius:var(--radius-sm); }
.awaab-provenance-title { font-size:11px; font-weight:600; color:var(--amber, #f59e0b); margin-bottom:6px; }
.awaab-provenance-flag { font-size:11px; color:var(--dim); padding:2px 0; line-height:1.4; }
.awaab-prov-warn { color:var(--amber, #f59e0b); }
.awaab-prov-gap { color:var(--rose); }
.awaab-prov-icon { margin-right:4px; }
.awaab-provenance-source { font-size:10px; color:var(--muted); margin-top:6px; }
.awaab-provenance-source code { font-size:10px; background:var(--surface); padding:1px 4px; border-radius:2px; }
/* ─── Evidence Drill-Down Panel ─────────────────────────────────────────────── */
.awaab-evidence-panel { }
.awaab-ev-header { display:flex; align-items:center; gap:12px; margin-bottom:12px; flex-wrap:wrap; }
.awaab-ev-back { background:none; border:1px solid var(--border); color:var(--fg); padding:4px 10px; border-radius:var(--radius-sm); cursor:pointer; font-size:12px; }
.awaab-ev-back:hover { border-color:var(--accent); color:var(--accent); }
.awaab-ev-crumb { font-size:12px; color:var(--dim); }
.awaab-ev-finding { background:var(--surface); border-left:3px solid var(--accent); padding:10px 14px; font-size:13px; line-height:1.5; color:var(--fg); margin-bottom:16px; border-radius:0 var(--radius-sm) var(--radius-sm) 0; }
.awaab-ev-charts-row { display:grid; grid-template-columns:1fr auto; gap:16px; margin-bottom:16px; align-items:start; }
.awaab-ev-trend { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px; }
.awaab-ev-trend-labels { display:flex; justify-content:space-between; font-size:9px; color:var(--muted); margin-top:2px; padding:0 4px; }
.awaab-ev-stats { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.awaab-ev-stat { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); padding:10px 12px; text-align:center; min-width:80px; }
.awaab-ev-stat-val { font-family:var(--font-d); font-size:20px; font-weight:700; display:block; }
.awaab-ev-stat-label { font-size:10px; color:var(--dim); margin-top:2px; }
.awaab-ev-section-title { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.4px; color:var(--dim); margin-bottom:8px; }
.awaab-ev-analysis-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
/* Horizontal bars */
.awaab-ev-bars { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px; }
.awaab-ev-bar-row { display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.awaab-ev-bar-row:last-child { margin-bottom:0; }
.awaab-ev-bar-label { font-size:11px; min-width:80px; text-align:right; color:var(--fg); }
.awaab-ev-bar-track { flex:1; height:14px; background:var(--bg); border-radius:3px; overflow:hidden; }
.awaab-ev-bar-fill { height:100%; background:var(--rose); border-radius:3px; min-width:4px; transition:width .3s; }
.awaab-ev-bar-fill.awaab-ev-bar-area { background:var(--amber, #f59e0b); }
.awaab-ev-bar-val { font-family:var(--font-d); font-size:11px; font-weight:600; min-width:20px; }
/* Concentration risk callouts */
.awaab-ev-concentration { margin-bottom:16px; }
.awaab-ev-conc-item { font-size:12px; color:var(--amber, #f59e0b); padding:4px 0; }
/* Breach evidence table */
.awaab-ev-breaches { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); padding:14px; }
.awaab-ev-filter-toggle { display:inline-flex; gap:2px; }
.awaab-ev-filt-btn { background:var(--bg); border:1px solid var(--border); color:var(--dim); padding:2px 8px; font-size:10px; cursor:pointer; border-radius:3px; }
.awaab-ev-filt-btn.active { background:var(--accent); color:#fff; border-color:var(--accent); }
.awaab-ev-table { width:100%; font-size:12px; border-collapse:collapse; margin-top:8px; }
.awaab-ev-table th { text-align:left; padding:5px 8px; font-weight:500; color:var(--muted); border-bottom:1px solid var(--border); font-size:10px; text-transform:uppercase; }
.awaab-ev-table td { padding:5px 8px; border-bottom:1px solid var(--border-light, rgba(148,163,184,.08)); }
.awaab-ev-table tr:last-child td { border-bottom:none; }
.awaab-ev-ref { font-family:var(--font-d); font-weight:500; white-space:nowrap; }
.awaab-ev-addr { max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.awaab-ev-overdue { min-width:80px; }
.awaab-ev-od-bar { display:flex; align-items:center; gap:4px; }
.awaab-ev-od-fill { height:10px; background:var(--rose); border-radius:2px; min-width:4px; }
.awaab-ev-od-bar span { font-family:var(--font-d); font-size:11px; font-weight:600; color:var(--rose); white-space:nowrap; }
.awaab-ev-prop-link { color:var(--accent); text-decoration:none; font-size:14px; }
.awaab-ev-prop-link:hover { text-decoration:underline; }
[class*="awaab-ev-status-"] { font-size:10px; padding:1px 6px; border-radius:8px; }
.awaab-ev-status-open, .awaab-ev-status-in-progress { background:rgba(239,68,68,.1); color:var(--rose); }
.awaab-ev-status-completed, .awaab-ev-status-closed { background:rgba(34,197,94,.1); color:var(--green); }
/* ─── Dimension Theme Panels (Paul's lever analysis) ──────────────────────── */
.awaab-dimensions { margin-top:12px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px; }
.awaab-dimensions-title { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.4px; color:var(--accent); margin-bottom:8px; }
.awaab-dim-tabs { display:flex; gap:4px; margin-bottom:10px; flex-wrap:wrap; }
.awaab-dim-tab { background:var(--bg); border:1px solid var(--border); color:var(--dim); padding:4px 12px; font-size:11px; cursor:pointer; border-radius:var(--radius-sm); transition:all .15s; }
.awaab-dim-tab:hover { border-color:var(--accent); color:var(--fg); }
.awaab-dim-tab.active { background:var(--accent); color:#fff; border-color:var(--accent); }
.awaab-dim-panel { padding:8px 0; }
.awaab-dim-insight { font-size:12px; line-height:1.5; padding:8px 12px; background:rgba(96,165,250,.06); border-left:3px solid var(--accent); border-radius:0 var(--radius-sm) var(--radius-sm) 0; margin-bottom:10px; color:var(--fg); }
/* ─── Empty Homes Safety ──────────────────────────────────────────────────── */
.awaab-empty-homes { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); padding:14px; }
@media (max-width:700px) {
  .awaab-metrics-row { grid-template-columns:1fr; }
  .awaab-breakdowns-row { grid-template-columns:1fr; }
  .awaab-ev-charts-row { grid-template-columns:1fr; }
  .awaab-ev-analysis-row { grid-template-columns:1fr; }
  .awaab-ev-stats { grid-template-columns:1fr 1fr; }
  .awaab-dim-tabs { flex-direction:column; }
}

/* ─── Electrical Safety TSM Readiness ─────────────────────────────────────── */
.elec-ready-container { max-width:860px; margin:0 auto; padding:8px; }
.elec-header { margin-bottom:28px; }
.elec-header-pulse { width:8px; height:8px; border-radius:50%; background:var(--rose); display:inline-block; animation:pulse 2s ease infinite; margin-right:8px; vertical-align:middle; }
.elec-header-module { font-size:10px; font-weight:700; color:var(--rose); letter-spacing:.2em; text-transform:uppercase; }
.elec-header-title { font-family:var(--font-d); font-size:24px; font-weight:700; margin:8px 0; background:linear-gradient(135deg, var(--fg), var(--accent)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.elec-header-sub { font-size:13px; color:var(--dim); line-height:1.6; margin:0; }
.elec-tabs { display:flex; gap:4px; margin-bottom:24px; background:rgba(255,255,255,.02); border-radius:10px; padding:4px; border:1px solid var(--border); }
.elec-tab { flex:1; padding:9px 16px; border-radius:8px; border:none; background:transparent; color:var(--dim); font-size:12px; font-weight:600; cursor:pointer; transition:all .2s; letter-spacing:.02em; }
.elec-tab.active { background:rgba(96,165,250,.12); color:var(--accent); }
.elec-tab:hover:not(.active) { color:var(--fg); }
/* Countdown banner */
.elec-countdown-banner { display:flex; flex-wrap:wrap; gap:16px; padding:16px 20px; background:rgba(239,68,68,.06); border:1px solid rgba(239,68,68,.15); border-radius:12px; margin-bottom:24px; }
.elec-countdown-item { flex:1 1 100px; }
.elec-countdown-num { font-family:var(--font-d); font-size:28px; font-weight:700; color:var(--rose); line-height:1; }
.elec-countdown-label { font-size:10px; color:var(--dim); margin-top:4px; line-height:1.4; }
/* Timeline */
.elec-timeline { padding-top:8px; }
.elec-tl-item { position:relative; padding-left:48px; padding-bottom:24px; cursor:pointer; }
.elec-tl-item:last-child { padding-bottom:0; }
.elec-tl-passed { opacity:.55; }
.elec-tl-line { position:absolute; left:18px; top:20px; bottom:0; width:2px; background:var(--border); }
.elec-tl-line-done { background:rgba(148,163,184,.15); }
.elec-tl-dot { position:absolute; left:12px; top:6px; width:14px; height:14px; border-radius:50%; border:2px solid var(--dim); display:flex; align-items:center; justify-content:center; font-size:8px; color:var(--dim); background:var(--bg); }
.elec-tl-dot-current { left:8px; top:2px; width:22px; height:22px; border:none; box-shadow:0 0 16px rgba(239,68,68,.5); }
.elec-tl-dot-done { border-color:var(--dim); }
.elec-tl-pulse { width:8px; height:8px; border-radius:50%; background:#fff; display:block; }
.elec-tl-card { background:rgba(255,255,255,.02); border:1px solid var(--border); border-radius:12px; padding:14px 18px; transition:all .2s; }
.elec-tl-card:hover { border-color:rgba(96,165,250,.3); }
.elec-tl-card-current { background:rgba(239,68,68,.06); border-color:rgba(239,68,68,.25); }
.elec-tl-meta { display:flex; align-items:center; gap:10px; margin-bottom:4px; flex-wrap:wrap; }
.elec-tl-date { font-family:var(--font-m); font-size:11px; color:var(--muted); letter-spacing:.05em; }
.elec-tl-badge { font-size:9px; font-weight:700; letter-spacing:.1em; padding:2px 8px; border-radius:4px; border:1px solid transparent; }
.elec-tl-days { font-size:10px; color:var(--muted); }
.elec-tl-label { font-size:14px; font-weight:600; color:var(--fg); }
.elec-tl-current .elec-tl-label { color:#fff; }
.elec-tl-detail { animation:fadeUp .2s ease; }
.elec-tl-detail p { font-size:12px; color:var(--dim); line-height:1.6; margin:8px 0; }
.elec-tl-action { background:rgba(96,165,250,.06); border:1px solid rgba(96,165,250,.15); border-radius:8px; padding:10px 14px; }
.elec-tl-action-label { font-size:9px; font-weight:700; color:var(--accent); letter-spacing:.1em; display:block; margin-bottom:4px; }
.elec-tl-action span { font-size:12px; color:var(--dim); line-height:1.5; }
/* Access callout */
.elec-access-callout { margin-top:24px; background:rgba(245,166,35,.05); border:1px solid rgba(245,166,35,.15); border-radius:12px; padding:18px; }
.elec-access-title { font-size:10px; font-weight:700; color:var(--amber); letter-spacing:.12em; margin-bottom:6px; }
.elec-access-callout p { font-size:12px; color:rgba(176,160,128,.9); line-height:1.7; margin:0; }
/* Coverage tab */
.elec-coverage-header { display:grid; grid-template-columns:auto 1fr; gap:24px; margin-bottom:20px; align-items:center; }
.elec-cov-gauge { width:140px; height:140px; }
.elec-cov-ring { width:140px; height:140px; border-radius:50%; background:conic-gradient(var(--col) calc(var(--pct) * 1%), rgba(148,163,184,.1) calc(var(--pct) * 1%)); display:flex; align-items:center; justify-content:center; }
.elec-cov-inner { width:108px; height:108px; border-radius:50%; background:var(--bg); display:flex; flex-direction:column; align-items:center; justify-content:center; }
.elec-cov-pct { font-family:var(--font-d); font-size:28px; font-weight:700; }
.elec-cov-label { font-size:10px; color:var(--dim); margin-top:2px; }
.elec-cov-stats { display:grid; grid-template-columns:repeat(auto-fit, minmax(100px, 1fr)); gap:10px; }
.elec-cov-stat { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px; text-align:center; }
.elec-cov-stat-val { font-family:var(--font-d); font-size:20px; font-weight:700; display:block; }
.elec-cov-stat-lbl { font-size:10px; color:var(--dim); margin-top:2px; }
/* Rate chart */
.elec-rate-chart { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); padding:14px; margin-bottom:16px; }
.elec-rate-title { font-size:11px; font-weight:600; color:var(--dim); text-transform:uppercase; letter-spacing:.04em; margin-bottom:10px; }
.elec-rate-bars { display:flex; align-items:flex-end; gap:3px; height:80px; }
.elec-rate-bar { flex:1; background:var(--accent); border-radius:3px 3px 0 0; min-width:8px; position:relative; transition:height .3s; }
.elec-rate-val { position:absolute; top:-16px; left:50%; transform:translateX(-50%); font-size:9px; font-family:var(--font-d); color:var(--dim); white-space:nowrap; }
.elec-rate-labels { display:flex; justify-content:space-between; font-size:9px; color:var(--muted); margin-top:4px; }
/* Remedial section */
.elec-remedial { margin-bottom:16px; }
.elec-section-title { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--dim); margin-bottom:10px; }
.elec-rem-summary { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.elec-rem-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-sm); padding:10px 14px; text-align:center; min-width:100px; }
.elec-rem-val { font-family:var(--font-d); font-size:20px; font-weight:700; }
.elec-rem-label { font-size:10px; color:var(--dim); margin-top:2px; }
/* Area coverage */
.elec-area-cov { margin-bottom:16px; }
/* Data spec tab */
.elec-dataspec { }
.elec-entity-box { background:rgba(255,255,255,.02); border:1px solid var(--border); border-radius:12px; padding:18px; margin-bottom:20px; }
.elec-entity-label { font-size:10px; font-weight:700; color:var(--muted); letter-spacing:.12em; margin-bottom:6px; }
.elec-entity-name { font-family:var(--font-m); font-size:16px; font-weight:600; color:var(--accent); margin-bottom:8px; }
.elec-entity-box p { font-size:12px; color:var(--dim); line-height:1.6; margin:0; }
.elec-tsm-calc { background:rgba(96,165,250,.05); border:1px solid rgba(96,165,250,.12); border-radius:12px; padding:18px; margin-bottom:20px; }
.elec-tsm-formula { font-family:var(--font-m); font-size:12px; line-height:2.2; }
.elec-tsm-lbl { color:var(--muted); }
.elec-tsm-result { font-size:14px; font-weight:600; margin-top:4px; }
.elec-tsm-note { margin-top:12px; padding:10px 14px; background:rgba(245,166,35,.06); border:1px solid rgba(245,166,35,.15); border-radius:8px; font-size:11px; color:rgba(204,170,102,.9); line-height:1.6; }
.elec-integration-notes { background:rgba(123,104,238,.05); border:1px solid rgba(123,104,238,.15); border-radius:12px; padding:18px; }
.elec-note-item { font-size:12px; color:var(--dim); line-height:1.7; margin-bottom:8px; }
.elec-note-item:last-child { margin-bottom:0; }
.elec-note-label { color:var(--accent); font-weight:600; }
.elec-footer { margin-top:32px; padding-top:16px; border-top:1px solid var(--border); font-size:10px; color:var(--muted); line-height:1.6; }
@keyframes pulse { 0%,100% { opacity:1; } 50% { opacity:.4; } }
@media (max-width:700px) {
  .elec-countdown-banner { flex-direction:column; }
  .elec-coverage-header { grid-template-columns:1fr; }
  .elec-tabs { flex-direction:column; }
}
/* ─── Workforce Dashboard ──────────────────────────────────────────────────── */
.wf-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:24px; flex-wrap:wrap; }
.wf-title { font-family:var(--font-d); font-size:22px; font-weight:600; margin:0; }
.wf-subtitle { font-size:12px; color:var(--dim); margin-top:4px; }
.wf-kpi-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(140px, 1fr)); gap:10px; margin-bottom:24px; }
.wf-kpi { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px 18px; text-align:center; animation:fadeUp .4s ease both; }
.wf-kpi-label { font-size:10px; color:var(--dim); text-transform:uppercase; letter-spacing:.6px; margin-bottom:6px; }
.wf-kpi-value { font-family:var(--font-d); font-size:28px; font-weight:700; line-height:1.2; }
.wf-kpi-unit { font-size:14px; font-weight:400; color:var(--muted); margin-left:2px; }
.wf-kpi-sub { font-size:11px; color:var(--dim); margin-top:4px; }
.wf-section-title { font-size:13px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.6px; margin-bottom:12px; }
.wf-year-filter { display:flex; gap:4px; align-items:center; flex-wrap:wrap; }
.wf-year-btn { padding:6px 14px; border-radius:20px; font-size:12px; font-weight:500; color:var(--muted); background:var(--raised); border:1px solid var(--border); cursor:pointer; transition:all .15s; font-family:var(--font); }
.wf-year-btn:hover { border-color:var(--accent); color:var(--text); }
.wf-year-btn.active { background:var(--accent-soft); border-color:var(--accent); color:var(--accent); }
.wf-trade-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:12px; margin-bottom:24px; }
.wf-trade-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px 20px; cursor:pointer; transition:all .2s; }
.wf-trade-card:hover { border-color:rgba(79,140,255,.35); transform:translateY(-2px); box-shadow:0 4px 16px rgba(0,0,0,.15); }
.wf-trade-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.wf-trade-name { font-size:14px; font-weight:600; color:var(--text); }
.wf-trade-count { font-size:11px; color:var(--dim); }
.wf-trade-kpis { display:flex; flex-direction:column; gap:6px; margin-bottom:10px; }
.wf-trade-footer { display:flex; gap:12px; font-size:11px; color:var(--dim); flex-wrap:wrap; }
.wf-bar-row { display:flex; align-items:center; gap:8px; }
.wf-bar-label { font-size:11px; color:var(--muted); width:60px; text-align:right; font-family:var(--mono); flex-shrink:0; }
.wf-bar-track { flex:1; height:8px; background:var(--raised); border-radius:4px; overflow:hidden; }
.wf-bar-fill { height:100%; border-radius:4px; transition:width .6s ease; }
.wf-bar-val { font-size:11px; color:var(--text); font-weight:600; width:40px; flex-shrink:0; }
.wf-back { background:none; border:none; color:var(--accent); font-size:12px; cursor:pointer; padding:4px 0; margin-bottom:4px; font-family:var(--font); transition:color .15s; }
.wf-back:hover { color:var(--text); }
.wf-op-table { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; }
.wf-op-header { display:flex; padding:10px 16px; background:var(--raised); border-bottom:1px solid var(--border); font-size:10px; font-weight:600; color:var(--dim); text-transform:uppercase; letter-spacing:.5px; }
.wf-op-row { display:flex; padding:10px 16px; border-bottom:1px solid var(--border-s); cursor:pointer; transition:background .15s; font-size:13px; }
.wf-op-row:last-child { border-bottom:none; }
.wf-op-row:hover { background:var(--raised); }
.wf-op-col-name { flex:1.5; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.wf-op-col { flex:1; text-align:right; font-family:var(--mono); font-size:12px; }
@media (max-width:900px) { .wf-trade-grid { grid-template-columns:1fr; } .wf-kpi-grid { grid-template-columns:repeat(2, 1fr); } }

/* KPI expansion panel */
.wf-kpi-expansion { max-height:0; overflow:hidden; transition:max-height 0.3s ease; background:var(--surface); border-radius:var(--radius); margin:0 0 16px 0; }
.wf-kpi-expansion.open { max-height:350px; padding:16px; border:1px solid var(--border); }

/* Monthly metrics grid (3x2) */
.wf-metrics-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; margin-bottom:24px; }
@media (max-width:1200px) { .wf-metrics-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:768px) { .wf-metrics-grid { grid-template-columns:1fr; } }

/* View Operatives button */
.wf-drill-btn { display:inline-flex; align-items:center; gap:8px; padding:10px 24px; background:var(--accent); color:#fff; border:none; border-radius:var(--radius); cursor:pointer; font-size:14px; font-weight:500; font-family:var(--font); transition:opacity .15s; }
.wf-drill-btn:hover { opacity:0.9; }

/* Clickable KPI cards */
.wf-kpi[data-wf-kpi-expand] { cursor:pointer; transition:border-color 0.2s; }
.wf-kpi[data-wf-kpi-expand]:hover { border-color:var(--accent); }

/* ─── Provider Intelligence ────────────────────────────────────────────────── */
.pi-container { padding:24px 32px; max-width:1400px; }
.pi-header { margin-bottom:24px; }
.pi-header h2 { font-family:var(--font-d); font-size:22px; margin:0 0 4px; }
.pi-subtitle { color:var(--dim); font-size:13px; }
.pi-search-box { display:flex; gap:8px; margin-bottom:24px; }
.pi-search-input { flex:1; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:10px 14px; color:var(--text); font-size:14px; }
.pi-search-input:focus { outline:none; border-color:var(--accent); }
.pi-search-btn { background:var(--accent); color:#fff; border:none; border-radius:var(--radius); padding:10px 20px; cursor:pointer; font-weight:600; }
.pi-search-btn:hover { opacity:0.9; }
.pi-loading { text-align:center; padding:40px; color:var(--dim); }
.pi-empty { text-align:center; padding:24px; color:var(--dim); font-style:italic; }
.pi-results { display:flex; flex-direction:column; gap:8px; }
.pi-result-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:14px 18px; cursor:pointer; transition:border-color .15s; }
.pi-result-card:hover { border-color:var(--accent); }
.pi-result-name { font-weight:600; font-size:15px; }
.pi-result-meta { color:var(--dim); font-size:12px; margin-top:4px; }
.pi-dossier-header { margin-bottom:20px; }
.pi-dossier-header h2 { font-family:var(--font-d); font-size:20px; margin:8px 0 4px; }
.pi-provider-meta { color:var(--dim); font-size:12px; }
.pi-back-btn { background:none; border:1px solid var(--border); border-radius:var(--radius); padding:6px 14px; color:var(--text); cursor:pointer; font-size:13px; }
.pi-back-btn:hover { border-color:var(--accent); color:var(--accent); }
.pi-risk-banner { background:rgba(255,80,80,0.08); border:1px solid rgba(255,80,80,0.25); border-radius:var(--radius); padding:14px 18px; margin-bottom:20px; }
.pi-risk-title { font-weight:700; color:var(--rose); margin-bottom:8px; font-size:14px; }
.pi-risk-item { padding:4px 0; font-size:13px; }
.pi-risk-high { color:var(--rose); }
.pi-risk-medium { color:var(--amber); }
.pi-risk-low { color:var(--dim); }
.pi-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:16px; }
.pi-timeline-chart { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:18px; margin-bottom:16px; }
.pi-timeline-chart h3 { font-family:var(--font-d); font-size:15px; margin:0 0 12px; }
.pi-timeline-chart .pi-timeline-loading { color:var(--dim); font-size:12px; }
.pi-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:18px; }
.pi-card h3 { font-family:var(--font-d); font-size:15px; margin:0 0 12px; }
.pi-card h4 { font-size:13px; color:var(--dim); margin:14px 0 8px; border-top:1px solid var(--border); padding-top:12px; }
.pi-badges { display:flex; gap:8px; margin-bottom:12px; flex-wrap:wrap; }
.pi-badge { display:inline-block; padding:4px 10px; border-radius:4px; font-size:12px; font-weight:600; }
.pi-badge-ok { background:rgba(52,211,153,0.12); color:var(--green); }
.pi-badge-warn { background:rgba(255,80,80,0.12); color:var(--rose); }
.pi-badge-na { background:var(--raised); color:var(--dim); }
.pi-conf-high { background:rgba(52,211,153,0.12); color:var(--green); }
.pi-conf-med { background:rgba(255,171,0,0.12); color:#ffab00; }
.pi-conf-low { background:rgba(255,80,80,0.12); color:var(--rose); }
.pi-detail-row { display:flex; justify-content:space-between; padding:4px 0; font-size:13px; border-bottom:1px solid var(--border); }
.pi-detail-row span:first-child { color:var(--dim); }
.pi-kpi-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; }
.pi-kpi { text-align:center; padding:8px; background:var(--raised); border-radius:var(--radius); }
.pi-kpi-label { font-size:11px; color:var(--dim); margin-bottom:4px; }
.pi-kpi-value { font-family:var(--mono); font-size:16px; font-weight:600; }
.pi-kpi-value small { font-size:11px; color:var(--dim); margin-left:2px; }
.pi-highlight { text-align:center; font-size:16px; margin-bottom:12px; padding:10px; background:var(--raised); border-radius:var(--radius); }
.pi-tsm-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:8px; }
.pi-tsm-item { text-align:center; padding:8px; background:var(--raised); border-radius:var(--radius); }
.pi-tsm-score { font-family:var(--mono); font-size:15px; font-weight:600; }
.pi-tsm-label { font-size:10px; color:var(--dim); margin-top:4px; line-height:1.2; }
.pi-details { margin-top:10px; }
.pi-details summary { cursor:pointer; color:var(--accent); font-size:13px; }
.pi-table { width:100%; border-collapse:collapse; margin-top:8px; font-size:12px; }
.pi-table th { text-align:left; padding:6px 8px; background:var(--raised); border-bottom:1px solid var(--border); color:var(--dim); font-weight:600; }
.pi-table td { padding:6px 8px; border-bottom:1px solid var(--border); }
.pi-hansard-item { padding:10px 0; border-bottom:1px solid var(--border); }
.pi-hansard-meta { font-size:11px; color:var(--dim); margin-bottom:4px; }
.pi-hansard-text { font-size:13px; line-height:1.4; }
@media (max-width:900px) { .pi-grid { grid-template-columns:1fr; } .pi-kpi-grid { grid-template-columns:repeat(2, 1fr); } .pi-tsm-grid { grid-template-columns:repeat(2, 1fr); } .pi-traffic-grid { grid-template-columns:repeat(2, 1fr); } }

/* ─── Provider Intel: TSM RAG Traffic Grid ──────────────────────────────── */
.pi-traffic-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:8px; }
.pi-traffic-cell { text-align:center; padding:10px 8px; background:var(--raised); border-radius:var(--radius); border-left:3px solid var(--border); transition:border-color 0.2s; }
.pi-traffic-cell.pi-rag-green { border-left-color:var(--green); }
.pi-traffic-cell.pi-rag-amber { border-left-color:var(--amber); }
.pi-traffic-cell.pi-rag-red { border-left-color:var(--rose); }
.pi-traffic-score { font-family:var(--mono); font-size:16px; font-weight:700; }
.pi-rag-green .pi-traffic-score { color:var(--green); }
.pi-rag-amber .pi-traffic-score { color:var(--amber); }
.pi-rag-red .pi-traffic-score { color:var(--rose); }
.pi-traffic-median { font-size:10px; color:var(--dim); margin-top:2px; }
.pi-traffic-label { font-size:10px; color:var(--dim); margin-top:4px; line-height:1.2; }
.pi-rag-dot { display:inline-block; width:8px; height:8px; border-radius:50%; }
.pi-rag-dot.pi-rag-green { background:var(--green); }
.pi-rag-dot.pi-rag-amber { background:var(--amber); }
.pi-rag-dot.pi-rag-red { background:var(--rose); }

/* ─── Provider Intel: Stock Charts ──────────────────────────────────────── */
.pi-card-wide { grid-column: 1 / -1; }
.pi-chart-row { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:16px; margin-top:16px; }
.pi-chart-container { min-height:220px; }

/* ─── Provider Intel: Peer Comparison ───────────────────────────────────── */
.pi-peer-table td, .pi-peer-table th { font-size:12px; }
.pi-peer-link { background:none; border:1px solid var(--accent); color:var(--accent); padding:3px 10px; border-radius:var(--radius-sm); font-size:11px; cursor:pointer; font-family:var(--font); transition:all 0.15s; }
.pi-peer-link:hover { background:var(--accent); color:#fff; }

/* ─── Provider Intel: Status Badge + Geo ────────────────────────────────── */
.pi-status-badge { display:inline-block; padding:3px 10px; border-radius:12px; font-size:11px; font-weight:600; margin-left:8px; vertical-align:middle; font-family:var(--font); }
.pi-status-ok { background:rgba(52,211,153,0.12); color:var(--green); }
.pi-status-warn { background:rgba(251,191,36,0.12); color:var(--amber); }
.pi-status-na { background:var(--raised); color:var(--dim); }
.pi-geo-context { font-size:12px; color:var(--muted); margin-top:4px; }

/* ─── Provider Intel: Tab Bar ──────────────────────────────────────────── */
.pi-tabs { display:flex; gap:0; border-bottom:2px solid var(--border); margin-bottom:16px; overflow-x:auto; }
.pi-tab { padding:10px 18px; font-size:13px; font-weight:600; color:var(--dim); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px; white-space:nowrap; transition:color 0.15s, border-color 0.15s; font-family:var(--font); background:none; border-top:none; border-left:none; border-right:none; }
.pi-tab:hover { color:var(--fg); }
.pi-tab.active { color:var(--accent); border-bottom-color:var(--accent); }
div.pi-tab-panel { display:none !important; }
div.pi-tab-panel.active { display:block !important; }
.pi-tab-count { font-size:10px; color:var(--muted); margin-left:4px; font-weight:400; }

/* ─── Compliance Countdown ──────────────────────────────────────────────── */
.countdown-summary { display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; margin-bottom:24px; }
.countdown-stat { text-align:center; padding:16px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); }
.countdown-stat-val { font-family:var(--font-d); font-size:28px; font-weight:700; line-height:1.2; }
.countdown-stat-label { font-size:11px; color:var(--dim); text-transform:uppercase; letter-spacing:0.5px; margin-top:4px; }
.countdown-stat.overdue .countdown-stat-val { color:var(--rose); }
.countdown-stat.critical .countdown-stat-val { color:var(--amber); }
.countdown-stat.warning .countdown-stat-val { color:#e2b93d; }
.countdown-stat.ok .countdown-stat-val { color:var(--green); }

.countdown-domains { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:16px; margin-bottom:24px; }
.countdown-domain { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px; cursor:pointer; transition:all 0.2s; }
.countdown-domain:hover { border-color:var(--accent); }
.countdown-domain h4 { font-family:var(--font-d); font-size:14px; margin:0 0 8px; }
.countdown-domain-chart { min-height:160px; }
.countdown-domain-counts { display:flex; gap:8px; flex-wrap:wrap; font-size:11px; margin-top:8px; }
.countdown-badge { padding:2px 8px; border-radius:10px; font-weight:600; }
.countdown-badge.overdue { background:rgba(244,114,182,0.12); color:var(--rose); }
.countdown-badge.critical { background:rgba(251,191,36,0.12); color:var(--amber); }
.countdown-badge.warning { background:rgba(226,185,61,0.12); color:#e2b93d; }
.countdown-badge.ok { background:rgba(52,211,153,0.12); color:var(--green); }

.countdown-timeline { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px; margin-bottom:24px; }
.countdown-timeline h3 { font-family:var(--font-d); font-size:15px; margin:0 0 12px; }
.countdown-timeline-chart { min-height:200px; }

.countdown-awaab { background:rgba(244,114,182,0.08); border:1px solid rgba(244,114,182,0.25); border-radius:var(--radius); padding:16px; margin-bottom:24px; }
.countdown-awaab h3 { color:var(--rose); font-size:14px; margin:0 0 8px; }

.countdown-drill { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px; }
.countdown-drill h3 { font-family:var(--font-d); font-size:15px; margin:0 0 12px; }

/* ─── Failure Demand ────────────────────────────────────────────────────── */
/* Cost of Failure banner */
.fd-cost-banner { display:flex; align-items:center; gap:24px; padding:20px 24px; margin-bottom:20px; background:linear-gradient(135deg, rgba(244,114,182,0.08), rgba(244,114,182,0.02)); border:1px solid rgba(244,114,182,0.25); border-radius:var(--radius); }
.fd-cost-main { flex-shrink:0; }
.fd-cost-val { font-family:var(--font-d); font-size:36px; font-weight:700; color:var(--rose); line-height:1.1; }
.fd-cost-label { font-size:11px; color:var(--rose); text-transform:uppercase; letter-spacing:0.5px; font-weight:600; margin-top:2px; }
.fd-cost-detail { flex:1; }
.fd-cost-sub { font-size:13px; color:var(--muted); }
.fd-cost-saving { font-size:13px; color:var(--green); margin-top:4px; }

.fd-summary { display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; margin-bottom:24px; }
.fd-stat { text-align:center; padding:16px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); transition:border-color 0.15s; }
.fd-stat-click { cursor:pointer; }
.fd-stat-click:hover { border-color:var(--accent); }
.fd-stat-val { font-family:var(--font-d); font-size:28px; font-weight:700; line-height:1.2; }
.fd-stat-label { font-size:11px; color:var(--dim); text-transform:uppercase; letter-spacing:0.5px; margin-top:4px; display:flex; align-items:center; justify-content:center; gap:6px; }
.fd-stat-sub { font-size:10px; color:var(--muted); margin-top:2px; }

/* Trend arrows */
.fd-trend { font-size:10px; font-weight:600; }
.fd-trend-up { color:var(--green); }
.fd-trend-down { color:var(--rose); }
.fd-trend-flat { color:var(--dim); }

.fd-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:24px; }
@media (max-width:900px) { .fd-grid { grid-template-columns:1fr; } .countdown-summary { grid-template-columns:repeat(2, 1fr); } .fd-summary { grid-template-columns:repeat(2, 1fr); } }
.fd-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px; }
.fd-card h3 { font-family:var(--font-d); font-size:15px; margin:0 0 12px; }
.fd-card-wide { grid-column: 1 / -1; }
.fd-chart { min-height:220px; }

/* Trade drill-down panel */
.fd-drill-panel { background:var(--surface); border:1px solid var(--accent); border-radius:var(--radius); padding:16px; margin-bottom:24px; animation:fdSlide 0.2s ease-out; }
@keyframes fdSlide { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:translateY(0); } }
.fd-drill-header { display:flex; align-items:center; gap:16px; margin-bottom:12px; }
.fd-drill-header h3 { font-family:var(--font-d); font-size:16px; margin:0; color:var(--accent); }
.fd-drill-stats { display:flex; gap:16px; font-size:12px; color:var(--muted); flex:1; }
.fd-drill-close { background:none; border:none; color:var(--dim); font-size:20px; cursor:pointer; padding:0 4px; line-height:1; }
.fd-drill-close:hover { color:var(--text); }

.fd-flyer-table { width:100%; border-collapse:collapse; font-size:12px; }
.fd-flyer-table th { text-align:left; padding:6px 8px; background:var(--raised); border-bottom:1px solid var(--border); color:var(--dim); font-weight:600; font-size:11px; }
.fd-flyer-table td { padding:6px 8px; border-bottom:1px solid var(--border); }
.fd-flyer-table tr:hover { background:var(--raised); }

/* ─── Text overflow prevention ─────────────────────────────────────────────── */
.card-title, .legal-thread-item, .alert-title, .kpi-dash-label { overflow:hidden; text-overflow:ellipsis; }
.level-text, .meta-body, .narrative-body { overflow-wrap:break-word; word-break:break-word; }

/* ─── Workforce V2: Operative List Sorting ─────────────────────────────────── */
.wf-op-header span[data-sort] { cursor: pointer; }
.wf-op-header span[data-sort]:hover { color: var(--accent); }
.wf-op-header span[data-sort].sorted::after { content: ' \25B2'; font-size: 9px; }
.wf-op-header span[data-sort].sorted.desc::after { content: ' \25BC'; }

/* ─── Workforce V2: RAG Row Highlighting ───────────────────────────────────── */
.wf-op-row-red { border-left: 3px solid var(--rose); background: rgba(255,99,132,0.05); }
.wf-op-row-amber { border-left: 3px solid var(--amber); background: rgba(255,159,64,0.04); }
.wf-sor-below-trade { border-left: 3px solid var(--rose); }

/* ─── Workforce V2: Complaint Badge ────────────────────────────────────────── */
.wf-complaint-badge { background: var(--rose); color: white; font-size: 10px; padding: 1px 6px; border-radius: 8px; margin-left: 6px; }

/* ─── Workforce V2: Complaint Timeline ─────────────────────────────────────── */
.wf-complaint-timeline { max-height: 300px; overflow-y: auto; }
.wf-complaint-item { display: flex; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--border); font-size: 12px; }
.wf-complaint-date { color: var(--muted); min-width: 80px; }
.wf-complaint-status.resolved { color: var(--green); }
.wf-complaint-status.open { color: var(--rose); }

/* ─── Workforce V2: Recent Jobs Table ──────────────────────────────────────── */
.wf-jobs-table { font-size: 12px; width: 100%; border-collapse: collapse; }
.wf-jobs-table th { text-align: left; padding: 6px 8px; color: var(--muted); border-bottom: 1px solid var(--border); font-weight: 500; }
.wf-jobs-table td { padding: 6px 8px; border-bottom: 1px solid var(--border); }
.wf-jobs-table tr:hover { background: var(--hover); }

/* ─── Workforce V2: 1-to-1 Preparation Card ───────────────────────────────── */
.wf-121-card { background: var(--surface); border: 1px solid var(--accent); border-radius: var(--radius); padding: 16px 20px; margin-bottom: 24px; }
.wf-121-card h3 { margin: 0 0 12px 0; font-size: 14px; color: var(--accent); }
.wf-121-strengths, .wf-121-concerns, .wf-121-trend { font-size: 13px; margin: 6px 0; line-height: 1.5; }

/* ─── Workforce V2: Trend Arrows ───────────────────────────────────────────── */
.wf-trend-up { color: var(--green); font-size: 11px; }
.wf-trend-down { color: var(--rose); font-size: 11px; }
.wf-trend-flat { color: var(--muted); font-size: 11px; }

/* ─── Workforce V2: Area Cards ─────────────────────────────────────────────── */
.wf-area-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-bottom: 24px; }
.wf-area-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px; }

/* ─── Pac-Man Overlay Upload ─────────────────────────────────────────────── */

.overlay-upload-btn {
  background: var(--surface); border: 1px solid var(--border); color: var(--muted); padding: 6px 14px;
  border-radius: var(--radius-sm); font-size: 12px; font-family: var(--font); cursor: pointer;
  white-space: nowrap; transition: all 0.15s;
}
.overlay-upload-btn:hover { color: var(--accent); border-color: var(--accent); background: var(--accent-soft); }

.overlay-modal-backdrop {
  position: fixed; inset: 0; background: rgba(0,0,0,0.65); z-index: 9000;
  display: flex; align-items: center; justify-content: center; backdrop-filter: blur(4px);
}
.overlay-modal {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg);
  width: 820px; max-width: 92vw; max-height: 85vh; overflow-y: auto;
}
.overlay-modal-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 16px 20px; border-bottom: 1px solid var(--border);
}
.overlay-modal-title { font-weight: 600; font-size: 15px; }
.overlay-modal-close {
  background: none; border: none; color: var(--muted); font-size: 20px; cursor: pointer; padding: 2px 6px;
}
.overlay-modal-close:hover { color: var(--text); }
.overlay-modal-body { padding: 20px; }

/* Dropzone */
.overlay-dropzone {
  border: 2px dashed var(--border); border-radius: var(--radius); padding: 48px 24px;
  text-align: center; cursor: pointer; transition: all 0.2s;
}
.overlay-dropzone:hover, .overlay-dropzone.dragover {
  border-color: var(--accent); background: var(--accent-soft);
}
.overlay-dropzone-icon { font-size: 36px; margin-bottom: 8px; }
.overlay-dropzone-text { font-size: 14px; color: var(--text); margin-bottom: 4px; }
.overlay-dropzone-sub { font-size: 12px; color: var(--muted); }

/* Progress */
.overlay-progress { text-align: center; padding: 40px 0; }
.overlay-progress-spinner {
  width: 32px; height: 32px; border: 3px solid var(--border); border-top-color: var(--accent);
  border-radius: 50%; margin: 0 auto 16px; animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.overlay-progress-text { font-size: 14px; margin-bottom: 6px; }
.overlay-progress-sub { font-size: 12px; color: var(--muted); }

/* Error / Success */
.overlay-error { color: var(--rose); padding: 16px 0; font-size: 13px; }
.overlay-success { text-align: center; padding: 24px 0; }
.overlay-success-icon { font-size: 36px; margin-bottom: 8px; }
.overlay-success-title { font-size: 16px; font-weight: 600; margin-bottom: 8px; }
.overlay-success-detail { font-size: 13px; color: var(--muted); line-height: 1.6; }

/* Preview */
.overlay-preview-header { margin-bottom: 16px; }
.overlay-preview-file { font-size: 14px; font-weight: 500; margin-bottom: 8px; }
.overlay-preview-meta { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.overlay-badge {
  background: var(--accent-soft); color: var(--accent); padding: 2px 10px; border-radius: 12px;
  font-size: 11px; font-weight: 500;
}
.overlay-badge.vendor { background: var(--purple-s); color: var(--purple); }
.overlay-badge.cached { background: var(--green-s); color: var(--green); }
.overlay-confidence { font-size: 12px; color: var(--muted); }

.overlay-section { margin-bottom: 16px; }
.overlay-section-title { font-size: 12px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 8px; }

/* Mapping table */
.overlay-mapping-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.overlay-mapping-table th { text-align: left; padding: 6px 8px; color: var(--muted); border-bottom: 1px solid var(--border); font-weight: 500; }
.overlay-mapping-table td { padding: 4px 8px; border-bottom: 1px solid var(--border-s); }
.overlay-map-input {
  background: var(--raised); border: 1px solid var(--border); border-radius: 4px;
  color: var(--text); padding: 3px 8px; font-size: 12px; font-family: var(--mono); width: 100%;
}
.overlay-map-input:focus { border-color: var(--accent); outline: none; }
.overlay-unmapped { margin-top: 8px; font-size: 11px; color: var(--muted); }
.overlay-tag { background: var(--raised); padding: 2px 6px; border-radius: 4px; margin: 0 2px; font-family: var(--mono); }

/* Stats */
.overlay-stats { display: flex; gap: 16px; }
.overlay-stat { text-align: center; flex: 1; background: var(--raised); border-radius: var(--radius-sm); padding: 12px; }
.overlay-stat-num { display: block; font-size: 20px; font-weight: 600; }
.overlay-stat-label { font-size: 11px; color: var(--muted); }
.overlay-stat.good .overlay-stat-num { color: var(--green); }
.overlay-stat.warn .overlay-stat-num { color: var(--amber); }
.overlay-stat.flagged .overlay-stat-num { color: var(--amber); }
.overlay-stat.quarantined .overlay-stat-num { color: var(--rose); }

/* Actions */
.overlay-actions { display: flex; gap: 10px; margin-top: 20px; justify-content: flex-end; }
.overlay-confirm-btn {
  background: var(--accent); color: #fff; border: none; padding: 8px 20px;
  border-radius: var(--radius-sm); font-size: 13px; font-weight: 500; cursor: pointer; transition: opacity 0.15s;
}
.overlay-confirm-btn:hover { opacity: 0.9; }
.overlay-cancel-btn {
  background: var(--raised); color: var(--muted); border: 1px solid var(--border);
  padding: 8px 20px; border-radius: var(--radius-sm); font-size: 13px; cursor: pointer;
}
.overlay-cancel-btn:hover { color: var(--text); }

/* Success hint */
.overlay-success-hint { font-size: 12px; color: var(--muted); margin-top: 8px; }

/* ─── Pac-Man Animation ──────────────────────────────────────────────────── */

.pacman-animation { text-align: center; padding: 32px 0; }
.pacman-scene { display: flex; align-items: center; justify-content: center; gap: 0; margin-bottom: 20px; }
.pacman-svg { flex-shrink: 0; }
.pacman-text { font-size: 15px; font-weight: 500; margin-bottom: 4px; }
.pacman-sub { font-size: 12px; color: var(--muted); }

.pacman-dots {
  display: flex; gap: 12px; align-items: center; padding-left: 8px;
}
.pacman-dot {
  width: 8px; height: 8px; border-radius: 50%; background: var(--accent);
  animation: pacman-chomp 1.2s ease-in-out infinite;
  opacity: 1;
}
.pacman-dot:nth-child(1) { animation-delay: 0s; }
.pacman-dot:nth-child(2) { animation-delay: 0.15s; }
.pacman-dot:nth-child(3) { animation-delay: 0.3s; }
.pacman-dot:nth-child(4) { animation-delay: 0.45s; }
.pacman-dot:nth-child(5) { animation-delay: 0.6s; }
.pacman-dot:nth-child(6) { animation-delay: 0.75s; }
.pacman-dot:nth-child(7) { animation-delay: 0.9s; }
.pacman-dot:nth-child(8) { animation-delay: 1.05s; }

@keyframes pacman-chomp {
  0%, 60% { opacity: 1; transform: scale(1); }
  80% { opacity: 0; transform: scale(0); }
  100% { opacity: 0; transform: scale(0); }
}

/* Pac-Man inline in buttons/titles */
.overlay-modal-title .pacman-svg,
.overlay-preview-file .pacman-svg,
.overlay-confirm-btn .pacman-svg { vertical-align: middle; margin-right: 6px; }
.overlay-dropzone-icon .pacman-svg { margin-bottom: 4px; }

/* ─── Company Switcher + Overlay Toggle ──────────────────────────────────── */

.company-switcher {
  display: flex; align-items: center; gap: 12px; margin-right: auto; padding-left: 8px;
}

.company-select {
  background: var(--raised); color: var(--text); border: 1px solid var(--border);
  border-radius: var(--radius-sm); padding: 5px 28px 5px 10px; font-size: 12px;
  font-family: var(--sans); cursor: pointer;
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%237a7f8e'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 8px center;
}
.company-select:focus { border-color: var(--accent); outline: none; }

.overlay-toggle-wrap {
  display: flex; align-items: center; gap: 6px;
}
.overlay-toggle {
  position: relative; display: inline-block; width: 36px; height: 20px; cursor: pointer;
}
.overlay-toggle input { opacity: 0; width: 0; height: 0; }
.overlay-toggle-slider {
  position: absolute; inset: 0; background: var(--border); border-radius: 20px;
  transition: background 0.2s;
}
.overlay-toggle-slider::before {
  content: ''; position: absolute; width: 16px; height: 16px; left: 2px; bottom: 2px;
  background: var(--text); border-radius: 50%; transition: transform 0.2s;
}
.overlay-toggle input:checked + .overlay-toggle-slider { background: var(--accent); }
.overlay-toggle input:checked + .overlay-toggle-slider::before { transform: translateX(16px); background: #fff; }
.overlay-toggle-label { font-size: 11px; color: var(--muted); white-space: nowrap; }

/* ─── Overlay Badge on KPI Cards ─────────────────────────────────────────── */

.kpi-overlay-badge {
  position: absolute; top: 6px; right: 6px;
  display: inline-flex; align-items: center; gap: 3px;
  padding: 2px 7px; border-radius: 8px;
  background: rgba(0, 212, 255, 0.12); border: 1px solid rgba(0, 212, 255, 0.25);
  color: #00d4ff; font-size: 9px; font-weight: 600; letter-spacing: 0.3px;
  cursor: default; z-index: 2; transition: background 0.15s;
}
.kpi-overlay-badge:hover { background: rgba(0, 212, 255, 0.22); }
.kpi-overlay-badge svg { flex-shrink: 0; }

/* ─── Property Intelligence Card ─────────────────────────────────────────── */

/* Breadcrumb */
.prop-breadcrumb { display: flex; align-items: center; gap: 6px; margin-bottom: 16px; font-size: 12px; flex-wrap: wrap; }
.prop-bc-link { color: var(--accent); cursor: pointer; text-decoration: none; transition: color 0.15s; background: none; border: none; font-family: var(--font); font-size: 12px; padding: 0; }
.prop-bc-link:hover { color: var(--text); text-decoration: underline; }
.prop-bc-sep { color: var(--dim); font-size: 11px; }
.prop-bc-current { color: var(--muted); }

/* Grid */
.prop-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 900px) { .prop-grid { grid-template-columns: 1fr; } }

/* Property section with colored left border */
.prop-section-person { border-left: 4px solid var(--accent); padding-left: 16px; }
.prop-section-building { border-left: 4px solid var(--amber); padding-left: 16px; }
.prop-section-environment { border-left: 4px solid var(--green); padding-left: 16px; }

/* Panel */
.prop-panel { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 16px; animation: fadeUp 0.4s ease both; }
.prop-panel-title { font-size: 13px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.6px; margin-bottom: 14px; }
.prop-no-data { color: var(--dim); font-size: 12px; padding: 12px 0; font-style: italic; }

/* Property type badge */
.prop-type-badge { display: inline-block; padding: 3px 10px; border-radius: 12px; font-size: 11px; font-weight: 500; color: var(--accent); background: var(--accent-soft); margin-bottom: 12px; }

/* Stats row */
.prop-stats-row { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.prop-stat { background: var(--raised); border: 1px solid var(--border-s); border-radius: var(--radius-sm); padding: 10px 14px; text-align: center; min-width: 70px; flex: 1; }
.prop-stat-val { display: block; font-family: var(--font-d); font-size: 20px; font-weight: 700; line-height: 1.2; }
.prop-stat-lbl { display: block; font-size: 10px; color: var(--dim); text-transform: uppercase; letter-spacing: 0.4px; margin-top: 3px; }

/* Details row */
.prop-details { display: flex; gap: 12px; flex-wrap: wrap; font-size: 12px; color: var(--muted); margin-bottom: 10px; }
.prop-detail-item { display: inline-block; }
.prop-detail-item strong { color: var(--text); font-weight: 500; }

/* Stock condition components */
.prop-component-grid { display: flex; flex-direction: column; gap: 6px; margin: 12px 0; }
.prop-component { display: flex; align-items: center; gap: 8px; padding: 6px 10px; background: var(--raised); border-radius: var(--radius-sm); font-size: 12px; }
.prop-component-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.prop-component-info { flex: 1; display: flex; justify-content: space-between; align-items: center; }
.prop-component-name { font-weight: 500; color: var(--text); }
.prop-component-life { font-size: 11px; color: var(--dim); font-family: var(--mono); }
.prop-component-label { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.3px; flex-shrink: 0; }

/* Decent homes badge */
.prop-decent-badge { display: inline-block; padding: 4px 12px; border-radius: 12px; font-size: 11px; font-weight: 600; margin-top: 8px; }
.prop-decent-pass { color: var(--green); background: var(--green-s); }
.prop-decent-fail { color: var(--rose); background: var(--rose-s); }

/* Flags (frequent flyer, damp & mould) */
.prop-flags { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.prop-flag-badge { display: inline-flex; align-items: center; padding: 4px 12px; border-radius: 12px; font-size: 11px; font-weight: 600; }
.prop-flag-amber { color: var(--amber); background: var(--amber-s); animation: breathe 3s ease infinite; }
.prop-flag-rose { color: var(--rose); background: var(--rose-s); }

/* Trade bars container */
.prop-trade-bars { margin: 12px 0; }

/* Property drill link in Recent Jobs */
.property-drill { color: var(--accent); cursor: pointer; text-decoration: none; font-family: var(--mono); font-size: 11px; transition: color 0.15s; }
.property-drill:hover { color: var(--text); text-decoration: underline; }

/* Vulnerability badges */
.prop-vuln-flags { display: flex; gap: 6px; flex-wrap: wrap; margin: 10px 0; }
.prop-vuln-badge { display: inline-block; padding: 3px 10px; border-radius: 12px; font-size: 11px; font-weight: 600; text-transform: capitalize; }
.prop-vuln-red { color: #fff; background: var(--rose); }
.prop-vuln-amber { color: #1a1a2e; background: var(--amber); }
.prop-vuln-blue { color: #fff; background: var(--accent); }

/* Contact summary */
.prop-contact-summary { font-size: 12px; color: var(--muted); margin-top: 8px; display: flex; flex-wrap: wrap; gap: 12px; }

/* Compliance */
.prop-compliance-overall { display: inline-block; padding: 4px 14px; border-radius: 12px; font-size: 12px; font-weight: 600; margin-bottom: 12px; }
.prop-compliance-green { color: var(--green); background: var(--green-s); }
.prop-compliance-amber { color: var(--amber); background: var(--amber-s); }
.prop-compliance-red { color: var(--rose); background: var(--rose-s); }

.prop-cert-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; }
.prop-cert-card { background: var(--raised); border-radius: var(--radius-sm); padding: 12px 14px; border-left: 3px solid var(--border); }
.prop-cert-title { font-size: 12px; font-weight: 600; color: var(--text); margin-bottom: 6px; }
.prop-cert-details { font-size: 11px; color: var(--muted); line-height: 1.6; }

/* Map placeholder */
.prop-map-placeholder { background: var(--raised); border: 1px dashed var(--border); border-radius: var(--radius-sm); padding: 24px; text-align: center; color: var(--dim); font-size: 12px; }

/* Batch opportunity callout */
.prop-batch-callout { margin-top: 12px; padding: 12px 16px; background: rgba(79,140,255,0.08); border: 1px solid rgba(79,140,255,0.25); border-radius: var(--radius-sm); font-size: 12px; color: var(--accent); line-height: 1.5; }
.prop-batch-callout strong { color: var(--text); }

/* VFM quartile badges */
.pi-vfm-table { font-size: 12px; }
.pi-quartile-badge { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 11px; font-weight: 600; }
.pi-q4 { background: rgba(46,204,113,0.18); color: #2ecc71; }
.pi-q3 { background: rgba(46,204,113,0.10); color: #a3d977; }
.pi-q2 { background: rgba(243,156,18,0.15); color: #f39c12; }
.pi-q1 { background: rgba(231,76,60,0.15); color: #e74c3c; }

/* Source attribution text */
.pi-source-text { font-size: 10px; color: var(--dim); margin-top: 4px; }

/* Dossier content rendering */
.pi-dossier-content { max-height: 600px; overflow-y: auto; font-size: 12px; line-height: 1.7; color: var(--muted); padding: 8px 0; }
.pi-dossier-content h3 { font-size: 14px; color: var(--text); margin: 16px 0 8px; }
.pi-dossier-content h4 { font-size: 13px; color: var(--text); margin: 12px 0 6px; }
.pi-dossier-content h5 { font-size: 12px; color: var(--text); margin: 10px 0 4px; }
.pi-dossier-content strong { color: var(--text); }
.pi-dossier-content blockquote { border-left: 2px solid var(--accent); padding-left: 12px; margin: 8px 0; color: var(--muted); }
.pi-dossier-content ul { padding-left: 20px; margin: 6px 0; }
.pi-dossier-content hr { border: none; border-top: 1px solid var(--border); margin: 16px 0; }
.pi-dossier-content table { width: 100%; border-collapse: collapse; margin: 8px 0; font-size: 11px; }
.pi-dossier-content td, .pi-dossier-content th { padding: 4px 8px; border-bottom: 1px solid var(--border); text-align: left; }
.pi-dossier-table { width:100%; border-collapse:collapse; margin:0.75rem 0; font-size:0.85rem; }
.pi-dossier-table th { background:rgba(255,255,255,0.05); padding:0.5rem 0.75rem; text-align:left; border-bottom:1px solid rgba(255,255,255,0.15); font-weight:600; color:var(--text); }
.pi-dossier-table td { padding:0.4rem 0.75rem; border-bottom:1px solid rgba(255,255,255,0.05); color:var(--muted); }
.pi-dossier-table tr:hover td { background:rgba(255,255,255,0.03); }

/* Data health badges */
.dh-subtitle { color: var(--muted); font-size: 13px; margin-bottom: 16px; }
.dh-badge { display: inline-block; padding: 2px 10px; border-radius: 10px; font-size: 11px; font-weight: 600; text-transform: capitalize; }
.dh-fresh { background: rgba(46,204,113,0.18); color: #2ecc71; }
.dh-aging { background: rgba(243,156,18,0.15); color: #f39c12; }
.dh-stale { background: rgba(230,126,34,0.15); color: #e67e22; }
.dh-overdue { background: rgba(231,76,60,0.15); color: #e74c3c; }
.dh-unknown { background: rgba(100,100,100,0.15); color: #999; }

/* Trajectory sparklines */
.pi-spark-wrap { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; vertical-align: middle; margin-left: 6px; padding: 2px 4px; border-radius: 4px; transition: background 0.15s; }
.pi-spark-wrap:hover { background: rgba(79,140,255,0.12); }
.pi-sparkline { display: inline-block; vertical-align: middle; }
.pi-spark-delta { font-size: 10px; font-weight: 600; font-family: var(--mono); }
.pi-spark-inline { display: inline-flex; align-items: center; margin-left: 4px; }
.pi-years-badge { font-size: 11px; font-weight: 500; color: var(--accent); background: rgba(79,140,255,0.10); padding: 2px 8px; border-radius: 8px; margin-left: 8px; }

/* Trajectory detail panel */
.pi-trajectory-panel { background: var(--raised); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 16px 20px; margin-top: 12px; }
.pi-trajectory-header { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.pi-trajectory-header h4 { margin: 0; font-size: 14px; flex: 1; }
.pi-trajectory-close { background: none; border: none; color: var(--muted); font-size: 18px; cursor: pointer; padding: 4px 8px; border-radius: 4px; transition: color 0.15s; }
.pi-trajectory-close:hover { color: var(--text); }
.pi-trajectory-chart { height: 220px; margin-bottom: 12px; }
.pi-trend-badge { display: inline-block; padding: 2px 10px; border-radius: 10px; font-size: 11px; font-weight: 600; }
.pi-trend-up { background: rgba(46,204,113,0.18); color: #2ecc71; }
.pi-trend-down { background: rgba(231,76,60,0.15); color: #e74c3c; }
.pi-trend-flat { background: rgba(243,156,18,0.15); color: #f39c12; }

/* ─── Provider Intel: Repairs Performance Card ───────────────────────────── */
.pi-repairs-card { grid-column: 1 / -1; }
.pi-repairs-kpis { display: flex; gap: 16px; margin-bottom: 16px; }
.pi-repairs-kpi { flex: 1; background: var(--raised); border-radius: var(--radius-sm); padding: 16px; text-align: center; }
.pi-repairs-score { font-family: var(--mono); font-size: 36px; font-weight: 700; line-height: 1.1; }
.pi-repairs-change { font-size: 12px; font-weight: 600; margin-top: 4px; }
.pi-repairs-change.negative { color: var(--rose); }
.pi-repairs-change.positive { color: var(--green); }
.pi-repairs-detail { font-size: 11px; color: var(--dim); margin-top: 6px; line-height: 1.3; }
.pi-repairs-quartile { display: inline-block; padding: 2px 10px; border-radius: 10px; font-size: 11px; font-weight: 600; margin-top: 8px; }
.pi-repairs-quartile.q1 { background: rgba(52,211,153,0.15); color: var(--green); }
.pi-repairs-quartile.q2 { background: rgba(52,211,153,0.10); color: var(--green); }
.pi-repairs-quartile.q3 { background: rgba(251,191,36,0.15); color: var(--amber); }
.pi-repairs-quartile.q4 { background: rgba(244,114,182,0.15); color: var(--rose); }
.pi-repairs-median { font-size: 11px; color: var(--dim); margin-top: 4px; }
.pi-repairs-median span { font-family: var(--mono); font-weight: 500; }
.pi-repairs-peers { width: 100%; border-collapse: collapse; margin-top: 12px; font-size: 12px; }
.pi-repairs-peers th { text-align: left; padding: 8px 10px; background: var(--raised); border-bottom: 1px solid var(--border); color: var(--dim); font-weight: 600; font-size: 11px; text-transform: uppercase; letter-spacing: 0.03em; }
.pi-repairs-peers td { padding: 7px 10px; border-bottom: 1px solid var(--border); font-family: var(--mono); font-size: 12px; }
.pi-repairs-peers tr:nth-child(even) td { background: rgba(255,255,255,0.02); }
.pi-repairs-peers .current-provider { background: rgba(79,140,255,0.08); }
.pi-repairs-peers .current-provider td { font-weight: 600; color: var(--accent); }

/* ─── Provider Intel: Lettings & Turnover Card ───────────────────────────── */
.pi-lettings-card { }
.pi-lettings-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 12px; }
.pi-lettings-kpi { text-align: center; padding: 12px 8px; background: var(--raised); border-radius: var(--radius-sm); }
.pi-lettings-value { font-family: var(--mono); font-size: 20px; font-weight: 700; line-height: 1.2; }
.pi-lettings-label { font-size: 11px; color: var(--dim); margin-top: 4px; line-height: 1.2; }

/* ─── Provider Intel: Stock Dynamics Card ────────────────────────────────── */
.pi-stock-card { }
.pi-stock-headline { font-family: var(--mono); font-size: 24px; font-weight: 700; margin-bottom: 14px; }
.pi-stock-headline.positive { color: var(--green); }
.pi-stock-headline.negative { color: var(--rose); }
.pi-stock-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.pi-stock-col { }
.pi-stock-col-title { font-size: 12px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 8px; padding-bottom: 6px; border-bottom: 1px solid var(--border); }
.pi-stock-row { display: flex; justify-content: space-between; padding: 5px 0; font-size: 13px; border-bottom: 1px solid rgba(255,255,255,0.04); }
.pi-stock-row span:first-child { color: var(--muted); }
.pi-stock-row span:last-child { font-family: var(--mono); font-weight: 500; }
.pi-stock-total { display: flex; justify-content: space-between; padding: 8px 0 0; font-size: 13px; font-weight: 700; border-top: 1px solid var(--border); margin-top: 4px; }
.pi-stock-total span:last-child { font-family: var(--mono); }

/* ─── Provider Intel: Rent Analysis Card ─────────────────────────────────── */
.pi-rent-card { }
.pi-rent-headline { font-family: var(--mono); font-size: 28px; font-weight: 700; margin-bottom: 4px; }
.pi-rent-headline small { font-size: 13px; color: var(--dim); font-weight: 400; font-family: var(--font); margin-left: 4px; }
.pi-rent-table { width: 100%; border-collapse: collapse; margin-top: 12px; font-size: 12px; }
.pi-rent-table th { text-align: left; padding: 7px 10px; background: var(--raised); border-bottom: 1px solid var(--border); color: var(--dim); font-weight: 600; font-size: 11px; }
.pi-rent-table td { padding: 6px 10px; border-bottom: 1px solid var(--border); }
.pi-rent-table td:not(:first-child) { font-family: var(--mono); text-align: right; }
.pi-rent-table th:not(:first-child) { text-align: right; }
.pi-rent-table tr:nth-child(even) td { background: rgba(255,255,255,0.02); }

/* ─── Provider Intel: Responsive (new cards) ─────────────────────────────── */
@media (max-width:900px) {
  .pi-repairs-kpis { flex-direction: column; }
  .pi-lettings-kpis { grid-template-columns: repeat(2, 1fr); }
  .pi-stock-columns { grid-template-columns: 1fr; }
}

/* ─── Complaint Risk Analysis ─────────────────────────────────────────────── */
.cr-container { max-width: 1200px; }
.cr-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.cr-header h2 { margin: 0; font-size: 20px; font-weight: 600; }
.cr-stage-tabs { display: flex; gap: 4px; }
.cr-stage-tab { background: var(--surface); border: 1px solid var(--border); border-radius: 6px; padding: 6px 14px; color: var(--muted); cursor: pointer; font-size: 12px; font-weight: 500; transition: all 0.15s; }
.cr-stage-tab:hover { color: var(--text); border-color: var(--accent); }
.cr-stage-tab.active { background: var(--accent); color: #fff; border-color: var(--accent); }

/* Cost + escalation banner */
.cr-cost-banner { display: flex; align-items: center; gap: 0; padding: 20px 24px; margin-bottom: 20px; background: linear-gradient(135deg, rgba(229,72,77,0.08), rgba(229,72,77,0.02)); border: 1px solid rgba(229,72,77,0.25); border-radius: var(--radius); }
.cr-cost-block { flex: 1; text-align: center; }
.cr-cost-val { font-family: var(--font-d); font-size: 32px; font-weight: 700; color: var(--rose); }
.cr-cost-label { font-size: 12px; font-weight: 600; color: var(--text); margin-top: 2px; letter-spacing: 0.02em; }
.cr-cost-sub { font-size: 11px; color: var(--dim); margin-top: 2px; }
.cr-cost-divider { width: 1px; height: 50px; background: rgba(255,255,255,0.08); margin: 0 8px; }

/* Summary cards */
.cr-summary { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 20px; }
.cr-stat { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 16px; text-align: center; transition: border-color 0.15s, transform 0.15s; position: relative; }
.cr-stat-click { cursor: pointer; }
.cr-stat-click:hover { border-color: var(--accent); transform: translateY(-2px); }
.cr-stat[data-cr-drill]:hover { border-color: var(--accent); transform: translateY(-2px); }
.cr-stat-val { font-size: 28px; font-weight: 700; font-family: 'JetBrains Mono', monospace; }

/* Trend arrows */
.cr-trend { font-size: 11px; font-weight: 600; display: block; margin-top: 4px; }
.cr-trend-good { color: var(--green); }
.cr-trend-bad { color: var(--rose); }
.cr-stat-label { font-size: 12px; color: var(--muted); margin-top: 4px; font-weight: 500; }
.cr-stat-sub { font-size: 11px; color: var(--dim); margin-top: 2px; }

/* Grid layout for donut + segment list */
.cr-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 20px; }
.cr-card { background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 20px; }
.cr-card h3 { margin: 0 0 4px; font-size: 14px; font-weight: 600; }
.cr-card-sub { margin: 0 0 12px; font-size: 11px; color: var(--dim); }
.cr-card-wide { grid-column: 1 / -1; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 20px; margin-bottom: 16px; }
.cr-card-wide h3 { margin: 0 0 4px; font-size: 14px; font-weight: 600; }
.cr-chart { height: 320px; }

/* Segment list */
.cr-segment-list { display: flex; flex-direction: column; gap: 8px; }
.cr-segment-row { display: grid; grid-template-columns: 12px 1fr 60px 50px 80px; gap: 8px; align-items: center; padding: 6px 8px; border-radius: 6px; transition: background 0.15s; }
.cr-segment-row:hover { background: rgba(255,255,255,0.04); }
.cr-seg-dot { width: 10px; height: 10px; border-radius: 50%; }
.cr-seg-label { font-size: 12px; color: var(--text); }
.cr-seg-count { font-size: 12px; color: var(--muted); text-align: right; font-family: 'JetBrains Mono', monospace; }
.cr-seg-pct { font-size: 11px; color: var(--dim); text-align: right; font-family: 'JetBrains Mono', monospace; }
.cr-seg-bar { height: 4px; background: var(--border); border-radius: 2px; overflow: hidden; }
.cr-seg-bar > div { height: 100%; border-radius: 2px; transition: width 0.3s; }

/* Category grid */
.cr-cat-grid { display: flex; flex-direction: column; gap: 12px; }
.cr-cat-row { padding: 12px; border-radius: 8px; border: 1px solid var(--border); transition: border-color 0.15s, background 0.15s; }
.cr-cat-row:hover { border-color: var(--accent); background: rgba(255,255,255,0.02); }
.cr-cat-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.cr-cat-name { font-size: 13px; font-weight: 600; }
.cr-cat-total { font-size: 12px; color: var(--muted); font-family: 'JetBrains Mono', monospace; }
.cr-risk-bars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.cr-risk-bar { position: relative; height: 22px; background: rgba(255,255,255,0.04); border-radius: 4px; overflow: hidden; }
.cr-risk-fill { position: absolute; top: 0; left: 0; height: 100%; border-radius: 4px; opacity: 0.7; transition: width 0.3s; }
.cr-risk-text { position: relative; z-index: 1; font-size: 10px; color: var(--text); line-height: 22px; padding-left: 6px; font-weight: 500; }

/* Stage comparison */
.cr-stage-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 12px; }
.cr-stage-col { }
.cr-stage-title { font-size: 14px; font-weight: 600; margin-bottom: 10px; }
.cr-stage-n { font-weight: 400; color: var(--muted); font-size: 12px; }
.cr-stage-bars { display: flex; flex-direction: column; gap: 8px; }
.cr-stage-bar-row { display: grid; grid-template-columns: 80px 1fr 50px; gap: 8px; align-items: center; font-size: 12px; }
.cr-stage-bar-row > span:first-child { color: var(--muted); }
.cr-stage-bar-row > span:last-child { text-align: right; font-family: 'JetBrains Mono', monospace; color: var(--text); }
.cr-stage-bar-track { height: 8px; background: var(--border); border-radius: 4px; overflow: hidden; }
.cr-stage-bar-track > div { height: 100%; border-radius: 4px; transition: width 0.3s; }

/* Outcome table */
.cr-outcome-table { width: 100%; border-collapse: collapse; margin-top: 12px; }
.cr-outcome-table th { text-align: left; font-size: 11px; color: var(--muted); font-weight: 500; padding: 8px 12px; border-bottom: 1px solid var(--border); }
.cr-outcome-table td { font-size: 12px; padding: 8px 12px; border-bottom: 1px solid rgba(255,255,255,0.04); font-family: 'JetBrains Mono', monospace; }

/* Drill-down panel */
.cr-drill-panel { background: var(--surface); border: 1px solid var(--accent); border-radius: 10px; padding: 20px; margin-top: 20px; }
.cr-drill-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.cr-drill-header h3 { margin: 0; font-size: 14px; }
.cr-drill-count { font-weight: 400; color: var(--muted); font-size: 12px; margin-left: 8px; }
.cr-drill-table-wrap { overflow: auto; max-height: 400px; }
.cr-drill-table { width: 100%; border-collapse: collapse; }
.cr-drill-table th { text-align: left; font-size: 11px; color: var(--muted); font-weight: 500; padding: 6px 10px; border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--surface); }
.cr-drill-table td { font-size: 12px; padding: 6px 10px; border-bottom: 1px solid rgba(255,255,255,0.04); }
.cr-drill-table tr:hover { background: rgba(255,255,255,0.03); }
.cr-prop-ref { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--accent); }
.cr-risk-bad { color: var(--rose); font-weight: 600; }
.cr-risk-ok { color: var(--green); }
.cr-repair-count { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 600; color: var(--amber); }

/* ── Complaint Risk Drill Accordion ── */
.cr-drill-cat-section { border-bottom: 1px solid var(--border); }
.cr-drill-cat-section:last-child { border-bottom: none; }
.cr-drill-cat-header { display: flex; align-items: center; gap: 10px; padding: 12px 10px; cursor: pointer; transition: background 0.15s; }
.cr-drill-cat-header:hover { background: rgba(255,255,255,0.04); }
.cr-drill-cat-header.expanded { background: rgba(255,255,255,0.03); }
.cr-drill-cat-chevron { font-size: 10px; color: var(--muted); width: 14px; text-align: center; transition: transform 0.2s; }
.cr-drill-cat-name { font-size: 13px; font-weight: 600; flex: 1; }
.cr-drill-cat-stats { display: flex; gap: 10px; }
.cr-drill-stat { font-size: 11px; color: var(--muted); background: rgba(255,255,255,0.05); padding: 2px 8px; border-radius: 10px; }
.cr-drill-stat-repairs { color: var(--amber); background: rgba(251,191,36,0.1); }
.cr-drill-props { display: none; padding: 0 10px 12px; }
.cr-drill-props.expanded { display: block; }

/* ── Property Complaint Panel ── */
.prop-complaint-cats { display: flex; flex-wrap: wrap; gap: 6px; }
.prop-complaint-cat { display: inline-block; padding: 3px 10px; border-radius: 12px; font-size: 11px; color: var(--muted); background: var(--raised); border: 1px solid var(--border-s); }
.prop-complaint-cat strong { color: var(--text); font-weight: 600; margin-left: 4px; }
.prop-complaint-timeline { max-height: 300px; overflow-y: auto; border-radius: var(--radius-sm); }
.prop-complaint-table { width: 100%; border-collapse: collapse; }
.prop-complaint-table th { text-align: left; font-size: 11px; color: var(--muted); font-weight: 500; padding: 6px 10px; border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--surface); }
.prop-complaint-table td { font-size: 12px; padding: 6px 10px; border-bottom: 1px solid rgba(255,255,255,0.04); }
.prop-complaint-table tr:hover { background: rgba(255,255,255,0.03); }

/* ── EPC Trajectory Panel ── */
.epc-timeline { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; margin-bottom: 12px; }
.epc-timeline-item { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.epc-dot { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; color: #000; }
.epc-timeline-year { font-size: 10px; color: var(--dim); font-family: var(--mono); }
.epc-timeline-arrow { color: var(--dim); font-size: 14px; margin: 0 2px; align-self: center; margin-bottom: 18px; }

/* ── Action Plan Panel ── */
.ap-toggle-btn { font-size:12px; padding:6px 14px; background:transparent; border:1px solid var(--border); border-radius:6px; color:var(--text); cursor:pointer; display:inline-flex; align-items:center; gap:6px; margin-bottom:16px; }
.ap-toggle-btn:hover { border-color:var(--accent); color:var(--accent); }
.ap-count { font-size:10px; padding:2px 6px; border-radius:10px; font-weight:700; }
.ap-count-red { background:var(--rose); color:#fff; }
.ap-count-amber { background:var(--amber); color:#000; }
.ap-count-blue { background:var(--accent); color:#fff; }

.prop-action-plan { display:none; margin:0 0 16px; padding:16px; background:var(--surface); border:1px solid var(--border); border-radius:8px; }
.prop-action-plan.open { display:block; }

.ap-section { margin-bottom:12px; }
.ap-section:last-child { margin-bottom:0; }
.ap-section-header { font-size:11px; font-weight:700; letter-spacing:0.05em; color:var(--dim); margin-bottom:6px; text-transform:uppercase; }
.ap-section-header small { font-weight:400; margin-left:6px; text-transform:none; letter-spacing:0; }

.ap-item { font-size:12px; padding:4px 0 4px 16px; position:relative; line-height:1.5; color:var(--text); }
.ap-dot { position:absolute; left:0; top:10px; width:8px; height:8px; border-radius:50%; }
.ap-dot-red { background:var(--rose); }
.ap-dot-amber { background:var(--amber); }
.ap-dot-blue { background:var(--accent); }
.ap-source { color:var(--dim); margin-left:6px; font-size:10px; }

.ap-assessment { font-size:12px; line-height:1.6; color:var(--text); padding:12px 14px; margin-bottom:14px; background:var(--accent-soft); border-left:3px solid var(--accent); border-radius:4px; }
.ap-assessment:empty { display:none; }
.ap-assess-loading { font-size:11px; color:var(--dim); display:flex; align-items:center; }

/* Responsive */
@media (max-width: 900px) {
  .cr-summary { grid-template-columns: repeat(3, 1fr); }
  .cr-grid { grid-template-columns: 1fr; }
  .cr-stage-compare { grid-template-columns: 1fr; }
  .cr-risk-bars { grid-template-columns: repeat(2, 1fr); }
  .cr-cost-banner { flex-wrap: wrap; gap: 12px; }
  .cr-cost-divider { display: none; }
  .cr-cost-block { min-width: 45%; }
}

/* ─── Regulatory Audit ─── */
.ra-container { max-width:1100px; margin:0 auto; }
.ra-header { margin-bottom:28px; }
.ra-header h2 { font-family:var(--font-d); font-size:24px; font-weight:600; margin-bottom:4px; }
.ra-subtitle { font-size:13px; color:var(--muted); }

.ra-search-box { display:flex; gap:8px; margin-bottom:20px; }
.ra-search-input { flex:1; background:var(--raised); border:1px solid var(--border); border-radius:var(--radius-sm); padding:10px 14px; color:var(--text); font-size:14px; outline:none; }
.ra-search-input:focus { border-color:var(--accent); }
.ra-search-btn { background:var(--accent); color:#fff; border:none; border-radius:var(--radius-sm); padding:10px 20px; font-size:13px; font-weight:600; cursor:pointer; white-space:nowrap; }
.ra-search-btn:hover { filter:brightness(1.1); }

.ra-results { display:flex; flex-direction:column; gap:6px; margin-top:12px; }
.ra-result-card { background:var(--raised); border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px 16px; cursor:pointer; transition:border-color .15s; }
.ra-result-card:hover { border-color:var(--accent); }
.ra-result-name { font-weight:600; font-size:14px; }
.ra-result-meta { font-size:12px; color:var(--muted); margin-top:2px; }
.ra-loading { color:var(--muted); font-size:13px; padding:20px 0; }

.ra-back-btn { background:none; border:none; color:var(--accent); cursor:pointer; font-size:13px; margin-bottom:12px; padding:0; }
.ra-back-btn:hover { text-decoration:underline; }

.ra-report-header { background:var(--raised); border:1px solid var(--border); border-radius:var(--radius); padding:20px 24px; margin-bottom:20px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.ra-provider-info h2 { font-family:var(--font-d); font-size:22px; font-weight:600; margin:0; }
.ra-provider-meta { font-size:12px; color:var(--muted); margin-top:4px; }
.ra-overall { display:flex; align-items:center; gap:12px; }
.ra-overall-badge { font-size:14px; font-weight:700; padding:8px 18px; border-radius:var(--radius-sm); letter-spacing:.5px; }
.ra-audit-date { font-size:11px; color:var(--dim); }

.ra-rag-GREEN { background:var(--green-s); color:var(--green); }
.ra-rag-AMBER { background:var(--amber-s); color:var(--amber); }
.ra-rag-RED { background:var(--rose-s); color:var(--rose); }

.ra-exec-summary { background:var(--raised); border:1px solid var(--border); border-radius:var(--radius); padding:18px 22px; margin-bottom:20px; line-height:1.7; font-size:13px; color:var(--text); border-left:3px solid var(--accent); }

.ra-grades { display:flex; gap:8px; margin-top:8px; }
.ra-grade-badge { font-size:11px; font-weight:600; padding:4px 10px; border-radius:6px; }

.ra-standard { background:var(--raised); border:1px solid var(--border); border-radius:var(--radius); margin-bottom:16px; overflow:hidden; }
.ra-standard-header { display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid var(--border-s); }
.ra-standard-header h3 { font-size:15px; font-weight:600; margin:0; }
.ra-standard-rag { font-size:11px; font-weight:700; padding:4px 12px; border-radius:6px; letter-spacing:.5px; }
.ra-standard-body { padding:16px 20px; }
.ra-standard-narrative { font-size:13px; line-height:1.6; color:var(--muted); margin-bottom:14px; padding:10px 14px; background:var(--accent-soft); border-radius:var(--radius-sm); }

.ra-measures-table { width:100%; border-collapse:collapse; font-size:12px; margin-bottom:14px; }
.ra-measures-table th { text-align:left; padding:6px 10px; font-size:10px; text-transform:uppercase; letter-spacing:.5px; color:var(--dim); border-bottom:1px solid var(--border-s); }
.ra-measures-table td { padding:8px 10px; border-bottom:1px solid var(--border-s); }
.ra-measures-table tr:last-child td { border-bottom:none; }

.ra-obligations { margin-top:12px; }
.ra-obligations h4 { font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:var(--dim); margin-bottom:8px; }
.ra-obligation-row { display:grid; grid-template-columns:1fr 1fr auto; gap:8px; padding:8px 10px; border-bottom:1px solid var(--border-s); font-size:12px; align-items:center; }
.ra-obligation-row:last-child { border-bottom:none; }
.ra-obligation-name { color:var(--text); }
.ra-obligation-evidence { color:var(--muted); font-family:var(--mono); font-size:11px; }
.ra-obligation-legislation { font-size:10px; color:var(--dim); margin-top:2px; }

.ra-rag-dot { display:inline-block; width:10px; height:10px; border-radius:50%; }
.ra-rag-dot.GREEN { background:var(--green); }
.ra-rag-dot.AMBER { background:var(--amber); }
.ra-rag-dot.RED { background:var(--rose); }

.ra-summary-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); gap:16px; margin-bottom:20px; }
.ra-summary-card { background:var(--raised); border:1px solid var(--border); border-radius:var(--radius); padding:16px 20px; }
.ra-summary-card h3 { font-size:14px; font-weight:600; margin:0 0 12px; }
.ra-summary-row { display:flex; justify-content:space-between; padding:4px 0; font-size:12px; }
.ra-summary-label { color:var(--muted); }
.ra-summary-value { font-weight:500; font-family:var(--mono); font-size:11px; }

.ra-evidence-chain { background:var(--raised); border:1px solid var(--border); border-radius:var(--radius); margin-bottom:20px; }
.ra-evidence-chain summary { padding:14px 20px; cursor:pointer; font-size:13px; font-weight:600; color:var(--muted); }
.ra-evidence-table { width:100%; border-collapse:collapse; font-size:11px; }
.ra-evidence-table th { text-align:left; padding:6px 12px; font-size:10px; text-transform:uppercase; letter-spacing:.5px; color:var(--dim); border-bottom:1px solid var(--border-s); }
.ra-evidence-table td { padding:6px 12px; border-bottom:1px solid var(--border-s); }

.ra-export-bar { display:flex; gap:8px; margin-bottom:20px; }
.ra-export-btn { background:var(--raised); border:1px solid var(--border); border-radius:var(--radius-sm); padding:8px 16px; font-size:12px; color:var(--text); cursor:pointer; font-weight:500; }
.ra-export-btn:hover { border-color:var(--accent); color:var(--accent); }

/* Print styles for regulatory audit */
@media print {
  .sidebar, .topbar, .ra-search-box, .ra-export-bar, .ra-back-btn { display:none !important; }
  .content { padding:0 !important; }
  .ra-container { max-width:100%; }
  .ra-standard { break-inside:avoid; page-break-inside:avoid; }
  .ra-report-header { break-after:avoid; }
  body { background:#fff; color:#000; }
  .ra-report-header, .ra-standard, .ra-summary-card, .ra-exec-summary, .ra-evidence-chain { background:#fff; border-color:#ddd; }
  .ra-measures-table th, .ra-measures-table td, .ra-evidence-table th, .ra-evidence-table td { border-color:#ddd; }
  .ra-rag-GREEN { background:#d1fae5; color:#065f46; }
  .ra-rag-AMBER { background:#fef3c7; color:#92400e; }
  .ra-rag-RED { background:#fce7f3; color:#9d174d; }
}

/* ─── Crime Profile (cp-*) ─────────────────────────────────────────────────── */
.cp-panel { border-left:3px solid var(--blue); }
.cp-meta { font-size:11px; color:var(--dim); margin-bottom:12px; }
.cp-summary { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
.cp-kpi { flex:1 1 100px; min-width:100px; background:var(--bg); border:1px solid var(--border); border-radius:var(--radius); padding:10px 12px; text-align:center; }
.cp-kpi-value { font-family:var(--mono); font-size:18px; font-weight:700; }
.cp-kpi-label { font-size:10px; text-transform:uppercase; letter-spacing:.5px; color:var(--dim); margin-top:2px; }
.cp-kpi-sub { font-size:10px; color:var(--muted); margin-top:2px; }
.cp-rag-green { border-color:var(--green); }
.cp-rag-green .cp-kpi-value { color:var(--green); }
.cp-rag-amber { border-color:var(--amber); }
.cp-rag-amber .cp-kpi-value { color:var(--amber); }
.cp-rag-red { border-color:var(--rose); }
.cp-rag-red .cp-kpi-value { color:var(--rose); }
.cp-trend-chart { border-top:1px solid var(--border); padding-top:12px; }
@media (max-width:600px) { .cp-summary { flex-direction:column; } .cp-kpi { min-width:auto; } }

/* ─── Crime Profile: Tier Tabs ─────────────────────────────────────────────── */
.cp-tier-tabs { display:flex; gap:4px; margin-bottom:16px; }
.cp-tier-tab { padding:6px 14px; border-radius:var(--radius); cursor:pointer; font-size:12px; background:var(--bg); border:1px solid var(--border); color:var(--muted); transition:all .15s ease; user-select:none; }
.cp-tier-tab:hover { border-color:var(--accent); color:var(--fg); }
.cp-tier-tab.active { background:var(--accent); color:white; border-color:var(--accent); }
.cp-tier-tab .cp-tab-count { font-size:10px; opacity:.7; margin-left:4px; }
.cp-tier-content { animation:fadeUp .25s ease both; }
.cp-tier-empty { padding:20px; text-align:center; color:var(--dim); font-size:12px; }

/* Crime Profile: Sortable table headers */
.cp-sortable { cursor:pointer; user-select:none; white-space:nowrap; }
.cp-sortable:hover { color:var(--accent); }
.cp-sort-arrow { font-size:9px; margin-left:3px; opacity:.5; }
.cp-sort-arrow.active { opacity:1; color:var(--accent); }

/* Crime Profile: Action list row */
.cp-action-row { cursor:pointer; transition:background .12s; }
.cp-action-row:hover { background:rgba(79,140,255,0.06); }
.cp-action-label { font-size:11px; font-weight:600; color:var(--amber); margin-bottom:8px; }

/* ─── Spatial Risk in Property Card (sp-*) ─────────────────────────────────── */
.sp-section { margin-top:16px; padding:14px; background:var(--bg); border-radius:var(--radius); border:1px solid var(--border); }
.sp-header { font-weight:600; font-size:13px; margin-bottom:8px; display:flex; align-items:center; gap:8px; }
.sp-composite { display:flex; align-items:center; gap:16px; margin-bottom:14px; padding:12px 16px; border-radius:var(--radius); border:1px solid var(--border); }
.sp-risk-score { font-family:var(--mono); font-size:28px; font-weight:700; }
.sp-risk-rag { padding:3px 10px; border-radius:6px; font-weight:700; font-size:11px; letter-spacing:.5px; }
.sp-risk-rag.RED { background:rgba(244,67,54,0.15); color:var(--rose); }
.sp-risk-rag.AMBER { background:rgba(255,152,0,0.15); color:var(--amber); }
.sp-risk-rag.GREEN { background:rgba(76,175,80,0.15); color:var(--green); }
.sp-risk-factors { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.sp-risk-factor { font-size:11px; padding:3px 8px; border-radius:12px; background:var(--bg); border:1px solid var(--border); color:var(--muted); }
.sp-mini-table { width:100%; font-size:11px; border-collapse:collapse; }
.sp-mini-table th { text-align:left; padding:4px 6px; font-size:10px; text-transform:uppercase; letter-spacing:.4px; color:var(--dim); border-bottom:1px solid var(--border); }
.sp-mini-table td { padding:4px 6px; border-bottom:1px solid rgba(255,255,255,0.04); }
.sp-mini-table tr:last-child td { border-bottom:none; }
.sp-stat { font-family:var(--mono); font-size:13px; font-weight:600; }
.sp-stat-label { font-size:11px; color:var(--dim); margin-top:2px; }
.sp-inline-badge { display:inline-block; font-size:10px; padding:2px 6px; border-radius:8px; font-weight:600; }
.sp-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:10px; }
@media (max-width:600px) { .sp-grid { grid-template-columns:1fr; } }

/* ─── Multi-Select Area Filter ──────────────────────────────────────────── */
.paul-ms { position: relative; display: inline-flex; }
.paul-ms-display { display:flex; gap:4px; flex-wrap:wrap; align-items:center; min-width:100px; padding:3px 8px; border-radius:6px; border:1px solid var(--border); background:var(--raised); cursor:pointer; font-size:12px; min-height:28px; }
.paul-ms-placeholder { color:var(--dim); font-size:12px; }
.paul-ms-caret { color:var(--dim); font-size:10px; margin-left:auto; }
.paul-ms-chip { display:inline-flex; align-items:center; gap:2px; padding:1px 6px; border-radius:4px; font-size:11px; background:var(--accent-soft); color:var(--accent); white-space:nowrap; }
.paul-ms-x { cursor:pointer; font-weight:bold; opacity:.7; }
.paul-ms-x:hover { opacity:1; }
.paul-ms-dropdown { display:none; position:absolute; top:100%; left:0; min-width:160px; background:var(--surface); border:1px solid var(--border); border-radius:6px; box-shadow:0 4px 12px rgba(0,0,0,.15); z-index:100; padding:4px 0; margin-top:4px; }
.paul-ms.open .paul-ms-dropdown { display:block; }
.paul-ms-option { display:flex; align-items:center; gap:6px; padding:6px 12px; font-size:12px; cursor:pointer; white-space:nowrap; }
.paul-ms-option:hover { background:var(--raised); }
.paul-ms-actions { display:flex; gap:6px; padding:6px 10px; border-top:1px solid var(--border); margin-top:4px; }
.paul-ms-apply { flex:1; padding:5px 0; border:none; border-radius:4px; background:var(--accent); color:#fff; font-size:11px; font-weight:600; cursor:pointer; font-family:var(--font); }
.paul-ms-apply:hover { opacity:.9; }
.paul-ms-clear-btn { padding:5px 10px; border:1px solid var(--border); border-radius:4px; background:transparent; color:var(--dim); font-size:11px; cursor:pointer; font-family:var(--font); }
.paul-ms-clear-btn:hover { color:var(--fg); border-color:var(--muted); }
.dd-active-filters { display:flex; gap:4px; flex-wrap:wrap; margin-bottom:8px; }
/* Data Requirements rendered markdown */
.data-req-rendered h1 { font-size:20px; margin:20px 0 8px; color:var(--fg); border-bottom:1px solid var(--border); padding-bottom:6px; }
.data-req-rendered h2 { font-size:16px; margin:18px 0 6px; color:var(--accent); }
.data-req-rendered h3 { font-size:14px; margin:14px 0 4px; color:var(--fg); }
.data-req-rendered table { width:100%; border-collapse:collapse; margin:8px 0 12px; font-size:12px; }
.data-req-rendered td { padding:4px 8px; border:1px solid var(--border); }
.data-req-rendered tr:first-child td { font-weight:600; background:var(--raised); }
.data-req-rendered code { background:var(--raised); padding:1px 4px; border-radius:3px; font-size:11px; color:var(--accent); }
.data-req-rendered hr { border:none; border-top:1px solid var(--border); margin:16px 0; }
.data-req-rendered strong { color:var(--fg); }

/* ─── Regulatory Audit: Verified Enrichment ──────────────────────────────── */
.ra-verified-banner { display:flex; align-items:center; gap:8px; padding:10px 14px; margin-bottom:16px; background:rgba(0,212,255,0.08); border:1px solid rgba(0,212,255,0.2); border-radius:8px; font-size:12px; color:var(--muted); }
.ra-verified-badge { display:inline-block; background:rgba(0,212,255,0.15); color:#00d4ff; font-size:9px; font-weight:700; padding:2px 6px; border-radius:4px; letter-spacing:.5px; text-transform:uppercase; }
.ra-verified-value { font-weight:600; }
.ra-verified-value.GREEN { color:var(--green); }
.ra-verified-value.AMBER { color:var(--amber); }
.ra-verified-value.RED { color:var(--rose); }
.ra-obligation-verified { margin-top:4px; display:flex; align-items:center; gap:6px; font-size:11px; color:var(--muted); }
.ra-obligation-verified .ra-verified-badge { font-size:8px; }
.ra-obligation-verified .ra-rag-dot { width:8px; height:8px; }
tr.ra-discrepancy { background:rgba(251,191,36,0.08); }
tr.ra-discrepancy td:first-child { border-left:3px solid var(--amber); }

/* ─── Property Risk Portfolio ─────────────────────────────────────────────── */
.pr-dashboard { display:flex; flex-direction:column; gap:20px; }
.pr-dashboard h2 { margin:0; font-size:20px; font-weight:600; }
.pr-dashboard h3 { margin:0 0 12px; font-family:var(--font-d); font-size:15px; }

/* Filter pills */
.pr-filter-pills { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.pr-pill { display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:500; padding:3px 10px; border:1px solid var(--accent); color:var(--accent); border-radius:20px; cursor:pointer; transition:background 0.15s; }
.pr-pill:hover { background:rgba(79,140,255,0.1); }

/* Level cards */
.pr-level-cards { display:grid; grid-template-columns:repeat(5, 1fr); gap:12px; }
.pr-level-card { background:var(--surface); border:1px solid var(--border); border-bottom:3px solid #94A3B8; border-radius:var(--radius); padding:16px; text-align:center; cursor:pointer; transition:all 0.15s; }
.pr-level-card:hover { border-color:var(--accent); transform:translateY(-2px); }
.pr-level-card.active { background:var(--raised); }
.pr-level-count { font-family:var(--font-d); font-size:28px; font-weight:700; line-height:1.2; }
.pr-level-label { font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:0.5px; margin-top:4px; }
.pr-level-tag { font-size:10px; color:var(--dim); margin-top:2px; font-family:var(--mono); }

/* Actions panel */
.pr-actions { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px; }
.pr-action-section { border-bottom:1px solid var(--border); }
.pr-action-section:last-child { border-bottom:none; }
.pr-action-row { display:flex; align-items:center; gap:10px; padding:10px 8px; cursor:pointer; transition:background 0.15s; border-radius:6px; }
.pr-action-row:hover { background:rgba(255,255,255,0.04); }
.pr-action-row.expanded { background:rgba(255,255,255,0.03); }
.pr-action-icon { font-size:14px; width:20px; text-align:center; }
.pr-action-count { font-family:var(--mono); font-size:12px; font-weight:600; padding:2px 8px; border-radius:10px; min-width:36px; text-align:center; }
.pr-action-label { flex:1; font-size:13px; color:var(--text); }
.pr-action-chevron { font-size:10px; color:var(--dim); transition:transform 0.2s; }
.pr-action-props { padding:0 8px 12px; }

/* Areas table */
.pr-areas { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px; }
.pr-areas-table { width:100%; border-collapse:collapse; font-size:12px; }
.pr-areas-table th { text-align:left; padding:8px 10px; background:var(--raised); border-bottom:1px solid var(--border); color:var(--dim); font-weight:600; font-size:11px; }
.pr-areas-table td { padding:8px 10px; border-bottom:1px solid var(--border); }
.pr-area-row { transition:background 0.15s; }
.pr-area-row:hover { background:var(--raised); }
.pr-area-row.active { background:rgba(79,140,255,0.06); }
.pr-area-row.active td:first-child { border-left:3px solid var(--accent); }

/* Stacked bar for area risk distribution */
.pr-stacked-bar { display:flex; height:10px; border-radius:5px; overflow:hidden; background:var(--border); min-width:120px; }
.pr-bar-seg { height:100%; transition:width 0.3s; }

/* Properties list */
.pr-properties { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px; }
.pr-props-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.pr-props-showing { font-size:11px; color:var(--dim); font-family:var(--mono); }

/* Shared property table (used in actions and properties sections) */
.pr-props-table { width:100%; border-collapse:collapse; font-size:12px; }
.pr-props-table th { text-align:left; padding:6px 10px; background:var(--raised); border-bottom:1px solid var(--border); color:var(--dim); font-weight:600; font-size:11px; position:sticky; top:0; }
.pr-props-table td { padding:6px 10px; border-bottom:1px solid rgba(255,255,255,0.04); }
.pr-prop-row { transition:background 0.15s; }
.pr-prop-row:hover { background:rgba(255,255,255,0.04); }

/* Score badge */
.pr-score-badge { display:inline-block; font-family:var(--mono); font-size:14px; font-weight:700; padding:2px 8px; border-radius:6px; min-width:32px; text-align:center; }
.pr-score-label { font-size:9px; text-transform:uppercase; letter-spacing:0.3px; text-align:center; margin-top:2px; }

/* Silent customer badge */
.pr-silent-badge { display:inline-block; background:rgba(0,212,255,0.15); color:#00d4ff; font-size:9px; font-weight:700; padding:1px 6px; border-radius:4px; letter-spacing:0.5px; text-transform:uppercase; margin-left:4px; vertical-align:middle; }

/* Responsive (legacy level cards fallback) */
@media (max-width: 900px) {
  .pr-level-cards { grid-template-columns: repeat(3, 1fr); }
}

/* Widget strip for PR level + vuln + freshness */
.pr-widget-strip { display:grid; grid-template-columns:repeat(7, 1fr); gap:12px; }
.pr-level-widget { cursor:pointer; transition:all .25s ease; }
.pr-level-widget.active { box-shadow:0 0 16px var(--wb-tint, rgba(79,140,255,0.3)); border-color:rgba(255,255,255,0.12); }

/* Toolbar: period toggle + export */
.pr-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.pr-period-toggle { display:inline-flex; background:var(--surface); border:1px solid var(--border); border-radius:10px; overflow:hidden; }
.pr-period-btn { padding:6px 14px; font-size:11px; font-weight:600; color:var(--dim); cursor:pointer; transition:all .15s; border:none; background:none; font-family:var(--mono); letter-spacing:.3px; }
.pr-period-btn:hover { color:var(--text); background:rgba(255,255,255,0.04); }
.pr-period-btn.active { background:var(--accent); color:#fff; }
.pr-export-btn { display:inline-flex; align-items:center; gap:6px; padding:6px 14px; font-size:11px; font-weight:600; color:var(--accent); background:rgba(79,140,255,0.08); border:1px solid rgba(79,140,255,0.2); border-radius:10px; cursor:pointer; transition:all .15s; font-family:var(--mono); }
.pr-export-btn:hover { background:rgba(79,140,255,0.15); }

/* Vulnerability badge */
.pr-vuln-badge { display:inline-block; font-size:9px; font-weight:700; padding:2px 7px; border-radius:4px; letter-spacing:.5px; text-transform:uppercase; }
.pr-vuln-high { background:rgba(239,68,68,0.15); color:#EF4444; }
.pr-vuln-medium { background:rgba(245,158,11,0.15); color:#F59E0B; }
.pr-vuln-low { background:rgba(34,197,94,0.15); color:#22C55E; }
.pr-vuln-none { background:rgba(148,163,184,0.10); color:var(--dim); font-weight:500; }

/* Dimension mini-bar (10-segment horizontal) */
.pr-dim-bar { display:flex; height:8px; border-radius:4px; overflow:hidden; background:var(--border); min-width:100px; gap:1px; }
.pr-dim-seg { height:100%; min-width:2px; border-radius:1px; transition:width .3s; }

/* Freshness tags (compact monospace) */
.pr-fresh-tag { display:inline-block; font-size:9px; font-family:var(--mono); padding:1px 5px; border-radius:3px; margin-right:3px; white-space:nowrap; }
.pr-fresh-green { background:rgba(34,197,94,0.10); color:#22C55E; }
.pr-fresh-amber { background:rgba(245,158,11,0.10); color:#F59E0B; }
.pr-fresh-red { background:rgba(239,68,68,0.10); color:#EF4444; }
.pr-fresh-unknown { background:rgba(148,163,184,0.06); color:var(--dim); }

/* Responsive breakpoints for widget strip */
@media (max-width: 1400px) {
  .pr-widget-strip { grid-template-columns:repeat(4, 1fr); }
}
@media (max-width: 900px) {
  .pr-widget-strip { grid-template-columns:repeat(2, 1fr); }
}

/* ─── WIP ─────────────────────────────────────────────────────────────────── */

.wip-dashboard { display:flex; flex-direction:column; gap:20px; }
.wip-dashboard h2 { margin:0; font-size:20px; font-weight:600; }

/* Urgency summary cards */
.wip-urgency-cards { display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; }
.wip-urgency-card {
  background:var(--surface);
  border:1px solid var(--border);
  border-bottom:3px solid #94A3B8;
  border-radius:var(--radius);
  padding:16px;
  text-align:center;
  transition:all 0.15s;
}
.wip-urgency-card:hover { transform:translateY(-2px); box-shadow:0 4px 12px rgba(0,0,0,0.3); }
.wip-urgency-count { font-family:var(--mono); font-size:28px; font-weight:700; line-height:1.1; }
.wip-urgency-label { font-size:10px; font-weight:600; letter-spacing:0.8px; text-transform:uppercase; color:var(--dim); margin-top:4px; }
.wip-urgency-icon { font-size:14px; margin-top:6px; }

/* Awaab alert banner */
.wip-awaab-banner {
  background:rgba(239,68,68,0.12);
  border:1px solid rgba(239,68,68,0.3);
  border-left:4px solid #EF4444;
  border-radius:var(--radius);
  padding:12px 16px;
  font-size:13px;
  color:#FCA5A5;
}

/* Category sections */
.wip-category {
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
}
.wip-cat-header {
  display:flex;
  align-items:center;
  gap:8px;
  padding:14px 16px;
  cursor:pointer;
  transition:background 0.15s;
  user-select:none;
}
.wip-cat-header:hover { background:rgba(255,255,255,0.04); }
.wip-cat-header.active { background:rgba(255,255,255,0.03); border-bottom:1px solid var(--border); }
.wip-cat-icon { font-size:16px; width:22px; text-align:center; }
.wip-cat-name { font-weight:600; font-size:14px; color:var(--text); }
.wip-cat-total { font-family:var(--mono); font-size:13px; color:var(--dim); }
.wip-cat-overdue { margin-left:auto; font-family:var(--mono); font-size:12px; color:var(--rose); font-weight:500; }
.wip-cat-chevron { font-size:10px; color:var(--dim); margin-left:8px; transition:transform 0.2s; }
.wip-cat-body { padding:4px 0; }

/* Job rows */
.wip-job-row {
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:10px 16px;
  border-left:3px solid #94A3B8;
  margin-left:12px;
  margin-right:12px;
  border-bottom:1px solid var(--border);
  transition:background 0.12s;
}
.wip-job-row:last-child { border-bottom:none; }
.wip-job-row:hover { background:rgba(255,255,255,0.03); }

.wip-job-main {
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.wip-job-wo {
  font-family:var(--mono);
  font-size:11px;
  color:var(--dim);
  min-width:140px;
}
.wip-job-prop {
  font-family:var(--mono);
  font-size:12px;
  color:var(--accent);
  text-decoration:none;
  cursor:pointer;
  font-weight:500;
}
.wip-job-prop:hover { text-decoration:underline; }
.wip-job-addr {
  font-size:12px;
  color:var(--muted);
  flex:1;
  min-width:120px;
}
.wip-job-desc {
  font-size:12px;
  color:var(--text-secondary);
  flex:2;
  min-width:150px;
}

.wip-job-meta {
  display:flex;
  align-items:center;
  gap:10px;
  margin-left:140px;
}
.wip-job-trade {
  font-size:11px;
  color:var(--dim);
  background:rgba(255,255,255,0.05);
  padding:1px 8px;
  border-radius:4px;
}
.wip-job-operative {
  font-size:11px;
  color:var(--dim);
}

/* Days badge */
.wip-days-badge {
  display:inline-block;
  font-family:var(--mono);
  font-size:11px;
  font-weight:600;
  padding:2px 8px;
  border-radius:6px;
  white-space:nowrap;
  margin-left:auto;
}

/* Awaab phase indicators */
.wip-awaab-phases {
  display:flex;
  gap:4px;
  align-items:center;
}
.wip-phase {
  font-size:14px;
  cursor:default;
}
.wip-phase-complete { opacity:1; }
.wip-phase-overdue { opacity:1; }
.wip-phase-pending { opacity:0.5; }

/* Show more button */
.wip-show-more {
  display:block;
  width:calc(100% - 24px);
  margin:8px 12px 12px;
  padding:8px 16px;
  background:rgba(255,255,255,0.04);
  border:1px solid var(--border);
  border-radius:var(--radius);
  color:var(--accent);
  font-size:12px;
  font-weight:500;
  cursor:pointer;
  text-align:center;
  transition:all 0.15s;
}
.wip-show-more:hover { background:rgba(255,255,255,0.08); border-color:var(--accent); }

/* Empty state */
.wip-empty { padding:16px; text-align:center; font-size:12px; color:var(--dim); }

/* Responsive */
@media (max-width: 900px) {
  .wip-urgency-cards { grid-template-columns: repeat(2, 1fr); }
  .wip-job-meta { margin-left:0; }
}

/* ─── iOS Widget-Style Briefing ──────────────────────────────────────────── */
.wb-canvas { padding:8px 0; }
.wb-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:24px; }
.wb-card {
  background:rgba(28,29,38,0.7);
  border-radius:16px;
  padding:14px 16px 12px;
  cursor:pointer;
  transition:all .25s ease;
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,0.04);
}
.wb-card:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(0,0,0,.3); border-color:rgba(255,255,255,0.08); }
.wb-card::before {
  content:'';
  position:absolute; top:0; left:0; right:0; bottom:0;
  background:var(--wb-tint, transparent);
  opacity:0.06;
  pointer-events:none;
  border-radius:16px;
}
.wb-card-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.wb-label { font-size:11px; font-weight:600; color:var(--muted); letter-spacing:.3px; text-transform:uppercase; display:flex; align-items:center; gap:6px; margin:0; line-height:1.2; }
.wb-label-dot { width:6px; height:6px; border-radius:50%; flex-shrink:0; }
.wb-dir { font-size:16px; flex-shrink:0; line-height:1; }
.wb-body { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.wb-metric { font-family:var(--font-d); font-size:28px; font-weight:700; line-height:1; letter-spacing:-0.5px; }
.wb-unit { font-size:16px; font-weight:500; opacity:0.6; }
.wb-spark { flex-shrink:0; }
.wb-context { display:flex; align-items:center; justify-content:space-between; font-size:11px; color:var(--dim); line-height:1; }
.wb-bench { opacity:0.7; }
.wb-gap { font-size:11px; white-space:nowrap; }
.wb-sub { font-size:11px; color:var(--dim); margin-top:8px; line-height:1.4; }
.wb-sub strong { color:var(--text); font-weight:600; }
.wb-rag-badge { display:inline-block; font-size:10px; font-weight:700; letter-spacing:.5px; padding:3px 10px; border-radius:12px; text-transform:uppercase; }
.wb-rag-green { background:rgba(34,197,94,0.12); color:#22c55e; }
.wb-rag-amber { background:rgba(245,158,11,0.12); color:#f59e0b; }
.wb-rag-red { background:rgba(239,68,68,0.12); color:#ef4444; }
.wb-rag-grey { background:rgba(107,114,128,0.12); color:#6b7280; }

/* Pillar section headers */
.wb-section { margin-bottom:8px; }
.wb-section-label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--dim); padding:0 4px; display:flex; align-items:center; gap:8px; }
.wb-section-line { flex:1; height:1px; background:var(--border); }

/* Summary strip */
.wb-summary { display:flex; align-items:center; gap:12px; margin-bottom:24px; padding:14px 20px; background:rgba(28,29,38,0.5); border-radius:16px; border:1px solid rgba(255,255,255,0.04); }
.wb-summary-stat { font-size:13px; font-weight:600; display:flex; align-items:center; gap:6px; }
.wb-summary-stat .kpi-dot { width:10px; height:10px; }
.wb-summary-actions { margin-left:auto; display:flex; gap:8px; }

/* Quick-nav row */
.wb-nav { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:20px; }
.wb-nav-pill { padding:8px 18px; border-radius:14px; font-size:12px; font-weight:600; color:var(--muted); background:rgba(28,29,38,0.5); border:1px solid rgba(255,255,255,0.04); cursor:pointer; transition:all .2s; }
.wb-nav-pill:hover { border-color:rgba(255,255,255,0.12); color:var(--text); }
.wb-nav-pill.active { background:var(--accent-soft); border-color:var(--accent); color:var(--accent); }

@media (max-width:1400px) { .wb-grid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:1000px) { .wb-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px) { .wb-grid { grid-template-columns:1fr; gap:10px; } }

/* ─── No-Access Intelligence ─────────────────────────────────────────────── */
.na-tab-btn { padding:10px 18px; font-size:12px; font-weight:600; color:var(--muted); background:transparent; border:none; border-bottom:2px solid transparent; cursor:pointer; transition:all .2s; font-family:var(--font); }
.na-tab-btn:hover { color:var(--fg); }
.na-tab-btn.active { color:var(--accent); border-bottom-color:var(--accent); }
.na-hero-card { transition:border-color .2s, box-shadow .2s; }
.na-hero-card:hover { border-color:rgba(79,140,255,.3); box-shadow:0 4px 20px rgba(0,0,0,.3); }
.na-profile-card { transition:border-color .2s, background .2s; }
.na-profile-card:hover { background:var(--hover); border-color:var(--accent) !important; }
[data-na-factor]:hover { background:var(--hover); border-radius:6px; }
@media (max-width:900px) { .na-hero-stats { flex-wrap:wrap; } .na-hero-card { min-width:120px; } }

/* ─── Property View: Expandable Sections ─────────────────────────────────── */
.prop-expandable { margin-top:12px; }
.prop-expand-trigger {
  cursor:pointer; font-size:12px; font-weight:600; color:var(--accent);
  padding:6px 10px; border-radius:6px; background:rgba(99,102,241,0.08);
  list-style:none; display:flex; align-items:center; gap:6px;
}
.prop-expand-trigger::-webkit-details-marker { display:none; }
.prop-expand-trigger::before { content:'\25B8'; font-size:10px; transition:transform 0.2s; }
details[open] > .prop-expand-trigger::before { transform:rotate(90deg); }
.prop-expand-content { margin-top:12px; }
.prop-expand-content .prop-panel { background:transparent; padding:0; }

/* ─── Action Bar ─── */
.action-bar { background: var(--raised); border: 1px solid var(--border); border-radius: 12px; padding: 1rem; margin-top: 1.5rem; }
.action-bar-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.75rem; }
.action-bar-title { font-size: 14px; font-weight: 600; color: var(--fg); display: flex; align-items: center; gap: 8px; }
.action-bar-count { background: var(--accent); color: var(--bg); border-radius: 999px; padding: 2px 8px; font-size: 11px; font-weight: 700; }
.action-bar-actions { display: flex; gap: 8px; }
.action-bar-btn { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 6px 12px; font-size: 12px; color: var(--fg); cursor: pointer; transition: background 0.15s; }
.action-bar-btn:hover { background: var(--raised); }
.action-bar-btn--primary { background: var(--accent); color: var(--bg); border-color: var(--accent); }
.action-bar-btn--primary:hover { opacity: 0.9; }
.action-list { display: flex; flex-direction: column; gap: 6px; }
.action-item { display: grid; grid-template-columns: 32px 1fr 120px 120px 80px 32px; align-items: center; gap: 8px; padding: 8px 12px; background: var(--surface); border-radius: 8px; border: 1px solid var(--border); font-size: 13px; }
.action-item:hover { border-color: var(--accent); }
.action-priority { width: 8px; height: 8px; border-radius: 50%; }
.action-priority--p1 { background: var(--rose); }
.action-priority--p2 { background: var(--amber); }
.action-priority--p3 { background: var(--dim); }
.action-status { font-size: 11px; padding: 2px 8px; border-radius: 999px; font-weight: 600; text-transform: uppercase; }
.action-status--open { background: rgba(244,114,182,0.15); color: var(--rose); }
.action-status--assigned { background: rgba(96,165,250,0.15); color: var(--accent); }
.action-status--fixed { background: rgba(251,191,36,0.15); color: var(--amber); }
.action-status--finished { background: rgba(52,211,153,0.15); color: var(--green); }

/* Action create modal */
.action-modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 1000; display: flex; align-items: center; justify-content: center; }
.action-modal { background: var(--raised); border: 1px solid var(--border); border-radius: 16px; padding: 1.5rem; width: min(520px, 90vw); max-height: 80vh; overflow-y: auto; }
.action-modal h3 { margin: 0 0 1rem; font-size: 16px; }
.action-modal label { display: block; font-size: 12px; font-weight: 600; color: var(--dim); margin-bottom: 4px; margin-top: 12px; }
.action-modal input, .action-modal select, .action-modal textarea { width: 100%; background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 8px; font-size: 13px; color: var(--fg); }
.action-modal textarea { resize: vertical; min-height: 60px; }
.action-modal-footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 1rem; }

/* Action detail panel */
.action-detail { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 1rem; margin-top: 6px; }
.action-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.action-detail-field { font-size: 12px; }
.action-detail-field dt { color: var(--dim); font-weight: 600; margin-bottom: 2px; }
.action-detail-field dd { margin: 0; color: var(--fg); }
.action-detail-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.action-detail-log { margin-top: 12px; border-top: 1px solid var(--border); padding-top: 8px; }
.action-log-entry { font-size: 12px; color: var(--dim); padding: 4px 0; border-bottom: 1px solid rgba(255,255,255,0.03); }
.action-log-entry strong { color: var(--fg); }

/* ─── Mode Toggle ────────────────────────────────────────────────────────── */
.mode-toggle {
  display: flex; gap: 2px; padding: 8px 12px; margin-bottom: 4px;
  background: rgba(255,255,255,0.03); border-radius: var(--radius-sm);
}
.mode-btn {
  flex: 1; padding: 6px 0; text-align: center; border: none;
  background: transparent; color: var(--muted); cursor: pointer;
  border-radius: var(--radius-sm); font-size: 12px; font-weight: 600;
  transition: all 0.15s;
}
.mode-btn:hover { color: var(--fg); }
.mode-btn.active { background: var(--accent); color: var(--bg); }

/* ─── National Intelligence ──────────────────────────────────────────────── */
.nat-container { max-width: 1200px; margin: 0 auto; padding: 1rem; }
.nat-header { margin-bottom: 1.5rem; }
.nat-header h2 { font-size: 1.5rem; margin: 0; }
.nat-subtitle { color: var(--muted); font-size: 0.85rem; margin-top: 4px; }
.nat-kpi-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin-bottom: 1.5rem; }
.nat-kpi { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 16px; text-align: center; }
.nat-kpi-value { font-size: 1.8rem; font-weight: 700; font-family: var(--mono); }
.nat-kpi-label { font-size: 0.75rem; color: var(--muted); margin-top: 4px; text-transform: uppercase; letter-spacing: 0.05em; }
.nat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 1.5rem; }
.nat-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 16px; }
.nat-card h3 { margin: 0 0 12px; font-size: 0.95rem; }
.nat-card-wide { grid-column: 1 / -1; }
.nat-risk-chart { display: flex; flex-direction: column; gap: 4px; }
.nat-risk-bar { display: flex; align-items: center; gap: 8px; }
.nat-risk-label { width: 20px; text-align: right; font-size: 11px; color: var(--muted); font-family: var(--mono); }
.nat-risk-fill { height: 16px; border-radius: 2px; min-width: 2px; transition: width 0.3s; }
.nat-risk-count { font-size: 11px; color: var(--dim); font-family: var(--mono); }
.nat-grade-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 12px; }
.nat-grade { text-align: center; padding: 16px 8px; border-radius: var(--radius-sm); font-size: 0.75rem; color: var(--muted); }
.nat-grade span { display: block; font-size: 1.6rem; font-weight: 700; font-family: var(--mono); margin-bottom: 4px; }
.nat-grade-g1 { background: rgba(52,211,153,0.1); }
.nat-grade-g1 span { color: var(--green); }
.nat-grade-g2 { background: rgba(96,165,250,0.1); }
.nat-grade-g2 span { color: var(--accent); }
.nat-grade-g3 { background: rgba(251,191,36,0.1); }
.nat-grade-g3 span { color: var(--amber); }
.nat-grade-g4 { background: rgba(244,114,182,0.1); }
.nat-grade-g4 span { color: var(--rose); }
.nat-high-risk { color: var(--rose); font-weight: 600; }
.nat-region-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.nat-region-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 20px; cursor: pointer; transition: border-color 0.2s; }
.nat-region-card:hover { border-color: var(--accent); }
.nat-region-name { font-weight: 600; font-size: 1rem; }
.nat-region-stats { color: var(--muted); font-size: 0.8rem; margin-top: 6px; }
.nat-breadcrumb { font-size: 0.8rem; color: var(--muted); margin-bottom: 12px; }
.nat-bc-link { cursor: pointer; color: var(--accent); }
.nat-bc-link:hover { text-decoration: underline; }
.nat-risk-banner { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-radius: var(--radius-sm); margin-bottom: 16px; }
.nat-risk-low { background: rgba(52,211,153,0.1); border: 1px solid rgba(52,211,153,0.3); }
.nat-risk-medium { background: rgba(251,191,36,0.1); border: 1px solid rgba(251,191,36,0.3); }
.nat-risk-high { background: rgba(244,114,182,0.1); border: 1px solid rgba(244,114,182,0.3); }
.nat-risk-badge { font-size: 1.4rem; font-weight: 700; font-family: var(--mono); }
.nat-risk-alert { color: var(--rose); font-weight: 600; font-size: 0.85rem; margin-left: auto; }
/* TSM Performance Grid */
.nat-section-title { font-size: 1.1rem; font-weight: 600; margin: 1.5rem 0 0.75rem; padding-bottom: 6px; border-bottom: 1px solid var(--border); color: var(--fg); }
.nat-tsm-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin-bottom: 1.5rem; }
.nat-tsm-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 14px 10px; text-align: center; }
.nat-tsm-icon { font-size: 1.3rem; margin-bottom: 4px; }
.nat-tsm-val { font-size: 1.5rem; font-weight: 700; font-family: var(--mono); }
.nat-tsm-label { font-size: 0.7rem; color: var(--muted); margin-top: 4px; text-transform: uppercase; letter-spacing: 0.03em; }
/* Big stat card */
.nat-card-header { font-size: 0.8rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 8px; }
.nat-big-stat { font-size: 2.2rem; font-weight: 700; font-family: var(--mono); }
.nat-card-sub { font-size: 0.75rem; color: var(--dim); margin-top: 4px; }
/* Stat list (ICO, CQC details) */
.nat-stat-list { display: flex; flex-direction: column; gap: 8px; }
.nat-stat-row { display: flex; justify-content: space-between; align-items: center; font-size: 0.85rem; padding: 4px 0; border-bottom: 1px solid var(--border); }
.nat-stat-row span:last-child { font-weight: 600; font-family: var(--mono); }
/* 3-column grid */
.nat-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 1.5rem; }
/* Warn KPI */
.nat-kpi-warn .nat-kpi-value { color: var(--rose); }
/* ─── Regulatory Heatmap ─── */
.hm-summary-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 1.5rem; }
.hm-filter-bar { display: flex; gap: 10px; margin-bottom: 1.5rem; flex-wrap: wrap; }
.hm-select { background: var(--raised); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 8px 14px; color: var(--text); font-family: var(--font); font-size: 13px; outline: none; cursor: pointer; min-width: 140px; transition: border-color .15s; }
.hm-select:focus { border-color: var(--accent); }
.hm-grade-bars { display: flex; flex-direction: column; gap: 14px; margin-bottom: 1.5rem; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 20px; }
.hm-grade-row { display: flex; align-items: center; gap: 12px; }
.hm-grade-title { width: 90px; font-size: 12px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; flex-shrink: 0; }
.hm-stacked-bar { flex: 1; display: flex; height: 32px; border-radius: 6px; overflow: hidden; }
.hm-bar-seg { display: flex; align-items: center; justify-content: center; min-width: 24px; transition: width .4s ease; }
.hm-bar-label { font-size: 11px; font-weight: 700; color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.4); }
.hm-grade-legend { display: flex; gap: 10px; font-size: 11px; font-family: var(--mono); flex-shrink: 0; width: 200px; }
.hm-treemap-section { margin-bottom: 1.5rem; }
.hm-treemap-wrap { height: 500px; }
.hm-region-table { margin-bottom: 1.5rem; overflow-x: auto; }
.hm-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.hm-table th { text-align: left; padding: 10px 12px; font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); border-bottom: 1px solid var(--border); font-weight: 600; }
.hm-table td { padding: 10px 12px; border-bottom: 1px solid var(--border-s); }
.hm-table tbody tr:hover { background: var(--hover); }
.hm-region-row.hm-region-active { background: var(--accent-soft); }
.hm-region-row.hm-region-active td:first-child { color: var(--accent); }
.hm-movement { margin-top: 12px; }
.hm-movement h3 { font-size: 0.9rem; margin-bottom: 10px; }

@media (max-width: 768px) {
  .hm-summary-strip { grid-template-columns: repeat(2, 1fr); }
  .hm-filter-bar { flex-direction: column; }
  .hm-grade-row { flex-direction: column; align-items: stretch; }
  .hm-grade-legend { width: auto; }
  .hm-treemap-wrap { height: 350px; }
}

/* ─── Risk Profile ─── */
.rp-container { max-width: 960px; animation: fadeUp .3s ease; }
.rp-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.rp-header h2 { font-family: var(--font-d); font-weight: 600; font-size: 1.5rem; }
.rp-actions { display: flex; gap: 10px; }
.rp-btn { padding: 8px 18px; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--raised); color: var(--text); font-size: 13px; font-weight: 500; cursor: pointer; transition: all .15s ease; }
.rp-btn:hover { background: var(--hover); }
.rp-btn-save { background: var(--accent); border-color: var(--accent); color: #fff; }
.rp-btn-save:hover { filter: brightness(1.15); }
.rp-btn-save.disabled { opacity: 0.4; pointer-events: none; }
.rp-btn-reset { color: var(--muted); }
.rp-btn-reset:hover { color: var(--rose); border-color: var(--rose); }

.rp-grid { display: flex; flex-direction: column; gap: 20px; }
.rp-section { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px 24px; }
.rp-section-title { font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--accent); margin-bottom: 4px; }
.rp-section-sub { font-size: 12px; color: var(--dim); margin-bottom: 16px; }
.rp-dims { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; }
.rp-dim { background: var(--raised); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 14px 16px; }
.rp-dim-label { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); margin-bottom: 10px; padding-bottom: 6px; border-bottom: 1px solid var(--border); }
.rp-row { display: flex; align-items: center; justify-content: space-between; padding: 5px 0; font-size: 13px; border-bottom: 1px solid var(--border-s); }
.rp-row:last-child { border-bottom: none; }
.rp-row.rp-dirty { background: rgba(251,191,36,0.08); margin: 0 -8px; padding: 5px 8px; border-radius: 4px; }
.rp-cat { color: var(--text); }
.rp-weight { display: flex; align-items: center; }
.rp-input { width: 60px; padding: 4px 8px; border-radius: 6px; border: 1px solid var(--border); background: var(--bg); color: var(--text); font-family: var(--mono); font-size: 13px; text-align: right; transition: border-color .15s ease; }
.rp-input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-glow); }
.rp-dirty .rp-input { border-color: var(--amber); }

/* Tier thresholds */
.rp-tier-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.rp-tier-card { background: var(--raised); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 16px; text-align: center; }
.rp-tier-card label { display: block; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: var(--muted); margin-bottom: 8px; }
.rp-tier-card .rp-input { width: 80px; text-align: center; font-size: 16px; font-weight: 600; }

/* Audit log */
.rp-log-section { margin-top: 24px; }
.rp-log-section h3 { font-size: 14px; font-weight: 600; color: var(--muted); margin-bottom: 12px; }
.rp-log-row { display: flex; gap: 12px; align-items: baseline; font-size: 12px; padding: 6px 0; border-bottom: 1px solid var(--border-s); }
.rp-log-row:last-child { border-bottom: none; }
.rp-log-ts { color: var(--dim); font-family: var(--mono); white-space: nowrap; min-width: 130px; }
.rp-log-dim { color: var(--accent); font-weight: 500; min-width: 160px; }
.rp-log-change { color: var(--muted); }
.rp-log-change .rp-old { color: var(--rose); }
.rp-log-change .rp-new { color: var(--green); }
.rp-log-empty { color: var(--dim); font-size: 13px; font-style: italic; padding: 12px 0; }

/* Loading state */
.rp-loading { text-align: center; padding: 60px 0; color: var(--dim); font-size: 14px; }

@media (max-width: 768px) {
  .rp-dims { grid-template-columns: 1fr; }
  .rp-tier-grid { grid-template-columns: 1fr; }
  .rp-header { flex-direction: column; gap: 12px; align-items: flex-start; }
  .rp-log-row { flex-direction: column; gap: 2px; }
}

@media (max-width: 768px) {
  .nat-kpi-row { grid-template-columns: repeat(2, 1fr); }
  .nat-grid, .nat-grid-3 { grid-template-columns: 1fr; }
  .nat-region-grid { grid-template-columns: 1fr; }
  .nat-tsm-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── Captain AI Assistant ──────────────────────────────────────────────── */
.captain-fab {
  position: fixed; bottom: 24px; right: 24px; z-index: 8000;
  width: 56px; height: 56px; border-radius: 50%;
  background: linear-gradient(135deg, var(--accent), #7c5cfc);
  border: none; cursor: pointer; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 20px rgba(99,102,241,.4);
  transition: transform .2s, box-shadow .2s;
}
.captain-fab:hover { transform: scale(1.08); box-shadow: 0 6px 28px rgba(99,102,241,.55); }
.captain-fab svg { width: 28px; height: 28px; fill: #fff; }
.captain-fab.hidden { display: none; }

.captain-panel {
  position: fixed; top: 24px; right: 24px; z-index: 8000;
  width: 945px; max-height: 1040px;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius-lg); box-shadow: 0 8px 40px rgba(0,0,0,.5);
  display: flex; flex-direction: column; cursor: default;
  transform: translateY(-20px); opacity: 0; pointer-events: none;
  transition: transform .25s ease, opacity .25s ease;
}
.captain-panel.open {
  transform: translateY(0); opacity: 1; pointer-events: auto;
}
.captain-panel.dragging {
  transition: none; user-select: none;
}

.captain-header {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 16px; border-bottom: 1px solid var(--border);
  cursor: grab;
}
.captain-header.dragging { cursor: grabbing; }
.captain-avatar {
  width: 32px; height: 32px; border-radius: 50%;
  background: linear-gradient(135deg, var(--accent), #7c5cfc);
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; color: #fff; flex-shrink: 0;
}
.captain-title { font-weight: 600; font-size: 14px; color: var(--text); flex: 1; }
.captain-close {
  background: none; border: none; color: var(--muted); cursor: pointer;
  font-size: 18px; padding: 4px; line-height: 1;
}
.captain-close:hover { color: var(--text); }

.captain-body {
  flex: 1; overflow-y: auto; padding: 16px;
  display: flex; flex-direction: column; gap: 12px;
  min-height: 200px; max-height: 360px;
}

.captain-context-bar {
  background: var(--raised); border-radius: var(--radius-sm);
  padding: 10px 12px; font-size: 12px; color: var(--muted);
  display: flex; align-items: center; gap: 8px;
}
.captain-context-bar .ctx-kpi { color: var(--accent); font-weight: 600; }
.captain-context-bar .ctx-value { font-family: var(--mono); font-weight: 500; }

.captain-chips {
  display: flex; flex-wrap: wrap; gap: 6px;
}
.captain-chip {
  background: var(--raised); border: 1px solid var(--border);
  border-radius: 20px; padding: 6px 14px; font-size: 12px;
  color: var(--text); cursor: pointer; transition: all .15s;
  font-family: var(--font); white-space: nowrap;
}
.captain-chip:hover { border-color: var(--accent); background: var(--hover); color: var(--accent); }

.captain-messages {
  display: flex; flex-direction: column; gap: 10px;
}

.captain-msg {
  padding: 10px 14px; border-radius: var(--radius-sm);
  font-size: 13px; line-height: 1.6; max-width: 95%;
}
.captain-msg.user {
  background: var(--accent); color: #fff; align-self: flex-end;
  border-bottom-right-radius: 4px;
}
.captain-msg.assistant {
  background: var(--raised); color: var(--text); align-self: flex-start;
  border-bottom-left-radius: 4px; padding: 16px 20px;
}
.captain-msg.assistant strong { color: var(--accent); }
.captain-msg.assistant code { background: var(--bg); padding: 1px 5px; border-radius: 4px; font-family: var(--mono); font-size: 11px; }

/* ── Captain report headings ── */
.captain-msg .cpt-h2 {
  font-family: var(--heading, var(--font)); font-size: 16px; font-weight: 700;
  color: #e2e8f0; margin: 20px 0 6px; padding-bottom: 6px;
  border-bottom: 2px solid var(--accent); letter-spacing: -.01em;
}
.captain-msg .cpt-h2:first-child { margin-top: 0; }
.captain-msg .cpt-h3 {
  font-size: 13px; font-weight: 600; color: #cbd5e1;
  margin: 16px 0 4px; padding-left: 10px;
  border-left: 3px solid var(--accent); letter-spacing: .01em;
  text-transform: uppercase;
}
.captain-msg .cpt-h4 {
  font-size: 12px; font-weight: 600; color: var(--muted);
  margin: 12px 0 4px; text-transform: uppercase; letter-spacing: .03em;
}

/* ── Horizontal rule section divider ── */
.captain-msg .cpt-hr {
  border: none; height: 1px; margin: 14px 0;
  background: linear-gradient(90deg, var(--accent), transparent 60%);
  opacity: .35;
}

/* ── Callout boxes: pass / warn / fail ── */
/* ── Blockquotes (legal notices etc.) ── */
.captain-msg .cpt-blockquote {
  padding: 10px 14px; border-radius: 6px; margin: 8px 0;
  background: rgba(251,191,36,.06); border-left: 3px solid #fbbf24;
  font-size: 11.5px; line-height: 1.55; color: #fde68a;
}

.captain-msg .cpt-callout {
  padding: 6px 10px; border-radius: 6px; margin: 3px 0;
  font-size: 12px; line-height: 1.5; display: flex; align-items: baseline; gap: 2px;
}
.captain-msg .cpt-pass {
  background: rgba(52,211,153,.08); border-left: 3px solid #34d399; color: #a7f3d0;
}
.captain-msg .cpt-warn {
  background: rgba(251,191,36,.08); border-left: 3px solid #fbbf24; color: #fde68a;
}
.captain-msg .cpt-fail {
  background: rgba(239,68,68,.08); border-left: 3px solid #ef4444; color: #fca5a5;
}

/* ── Numbered & bullet lists ── */
.captain-msg .cpt-li {
  display: flex; align-items: baseline; gap: 8px;
  padding: 2px 0 2px 4px; font-size: 12.5px;
}
.captain-msg .cpt-li-num {
  flex-shrink: 0; width: 20px; height: 20px; border-radius: 50%;
  background: rgba(96,165,250,.12); color: var(--accent);
  font-size: 10px; font-weight: 700; font-family: var(--mono);
  display: flex; align-items: center; justify-content: center;
}
.captain-msg .cpt-bullet .cpt-li-dot {
  flex-shrink: 0; width: 5px; height: 5px; border-radius: 50%;
  background: var(--accent); margin: 0 4px; position: relative; top: -1px;
}

.captain-msg .typing-dots { display: inline-flex; gap: 4px; padding: 4px 0; }
.captain-msg .typing-dots span {
  width: 6px; height: 6px; border-radius: 50%; background: var(--muted);
  animation: captainDot .6s ease-in-out infinite alternate;
}
.captain-msg .typing-dots span:nth-child(2) { animation-delay: .2s; }
.captain-msg .typing-dots span:nth-child(3) { animation-delay: .4s; }
@keyframes captainDot { to { opacity: .3; transform: translateY(-3px); } }

.captain-input-bar {
  display: flex; gap: 8px; padding: 12px 16px;
  border-top: 1px solid var(--border);
}
.captain-input {
  flex: 1; background: var(--raised); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 10px 14px; color: var(--text);
  font-family: var(--font); font-size: 13px; outline: none;
}
.captain-input:focus { border-color: var(--accent); }
.captain-input::placeholder { color: var(--dim); }
.captain-send {
  background: linear-gradient(135deg, var(--accent), #7c5cfc);
  border: none; border-radius: var(--radius); padding: 10px 16px;
  color: #fff; font-size: 13px; font-weight: 600; cursor: pointer;
  font-family: var(--font); transition: filter .15s;
}
.captain-send:hover { filter: brightness(1.1); }
.captain-send:disabled { opacity: .5; cursor: default; }
.captain-stop {
  background: rgba(239,68,68,.15); border: 1px solid rgba(239,68,68,.3);
  border-radius: var(--radius); padding: 10px 16px;
  color: #ef4444; font-size: 15px; cursor: pointer;
  font-family: var(--font); transition: all .15s; line-height: 1;
}
.captain-stop:hover { background: rgba(239,68,68,.25); border-color: rgba(239,68,68,.5); }

.captain-reset {
  background: none; border: none; color: var(--dim); cursor: pointer;
  font-size: 12px; padding: 4px 8px; font-family: var(--font);
  transition: color .15s;
}
.captain-reset:hover { color: var(--text); }

/* Captain thinking — fab pulse */
.captain-fab.thinking {
  animation: captainFabPulse 1.8s ease-in-out infinite;
}
@keyframes captainFabPulse {
  0%, 100% { box-shadow: 0 4px 20px rgba(99,102,241,.4); }
  50% { box-shadow: 0 4px 30px rgba(99,102,241,.8), 0 0 40px rgba(99,102,241,.3); }
}
/* Captain thinking — header subtitle */
.captain-thinking-sub {
  display: block; font-size: 11px; font-weight: 400;
  color: var(--accent); letter-spacing: .3px;
  margin-top: 1px; transition: opacity .2s ease;
  animation: captainSubPulse 2s ease-in-out infinite;
}
@keyframes captainSubPulse {
  0%, 100% { opacity: .6; }
  50% { opacity: 1; }
}

.captain-chart { margin: 10px 0; border-radius: var(--radius-sm); overflow: hidden; }
.captain-chart .apexcharts-canvas { background: transparent !important; }

.captain-confidence {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 10px; padding: 3px 8px; border-radius: 10px;
  margin-top: 6px; font-family: var(--font);
}
.captain-confidence.high { background: rgba(52,211,153,.12); color: #34d399; }
.captain-confidence.medium { background: rgba(251,191,36,.12); color: #fbbf24; }
.captain-confidence.low { background: rgba(239,68,68,.12); color: #ef4444; }

.captain-word-count {
  font-size: 10px; color: var(--dim); text-align: right; padding: 2px 14px 0;
  font-family: var(--mono);
}

.captain-status-banner {
  background: rgba(99,102,241,.08);
  border-left: 3px solid var(--accent);
  padding: 8px 12px;
  margin: 4px 14px 8px;
  border-radius: 0 6px 6px 0;
  font-size: 12px;
  color: var(--muted);
  display: flex;
  gap: 8px;
  align-items: center;
  font-family: var(--mono);
  animation: captainStatusFade 0.3s ease;
}
@keyframes captainStatusFade {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}
.captain-status-icon {
  font-size: 8px;
  color: var(--accent);
  animation: captainStatusPulse 1s ease-in-out infinite;
}
@keyframes captainStatusPulse {
  0%, 100% { opacity: .4; }
  50% { opacity: 1; }
}
.captain-status-banner.complete .captain-status-icon {
  color: #34d399;
  animation: none;
  opacity: 1;
  font-size: 12px;
}
.captain-status-text {
  flex: 1;
  color: var(--text-muted);
  transition: opacity 0.25s ease;
}
.captain-status-meta {
  color: var(--dim);
  font-size: 10px;
}

/* Captain SQL Preview */
.captain-sql-preview {
  margin: 4px 12px 8px 12px;
  font-size: 11px;
  border-left: 2px solid var(--accent);
  padding-left: 8px;
}
.captain-sql-preview summary {
  cursor: pointer;
  color: var(--muted);
  font-size: 10px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}
.captain-sql-preview pre {
  margin: 4px 0 0 0;
  padding: 8px;
  background: var(--bg);
  border-radius: 4px;
  overflow-x: auto;
  max-height: 150px;
  font-size: 11px;
  line-height: 1.4;
  color: var(--text);
}

.captain-table {
  width: 100%; border-collapse: collapse; font-size: 11px; margin: 10px 0;
  border-radius: 6px; overflow: hidden;
}
.captain-table th {
  text-align: left; padding: 6px 10px;
  background: rgba(96,165,250,.08); border-bottom: 1px solid var(--border);
  color: var(--accent); font-weight: 600; font-family: var(--mono);
  font-size: 10px; text-transform: uppercase; letter-spacing: .04em;
}
.captain-table td {
  padding: 5px 10px; border-bottom: 1px solid rgba(255,255,255,.04);
  font-family: var(--mono);
}
.captain-table tr:nth-child(even) td {
  background: rgba(255,255,255,.015);
}
.captain-table tr:hover td {
  background: rgba(96,165,250,.05);
}

/* Captain feedback buttons */
.captain-feedback { display: flex; gap: 8px; margin-top: 8px; }
.captain-fb-btn { background: none; border: none; cursor: pointer; font-size: 16px; opacity: 0.4; transition: opacity 0.2s; padding: 2px 4px; }
.captain-fb-btn:hover { opacity: 1; }

/* ─── Provider Compare ────────────────────────────────────────────────────── */
.pc-grid { display: grid; gap: 1px; background: rgba(255,255,255,0.04); border-radius: var(--radius-sm); margin-bottom: 12px; }
.pc-grid > div { padding: 10px 12px; background: var(--surface, #1e1e2e); }
.pc-header-label { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.5px; display: flex; align-items: center; }
.pc-header-cell { text-align: center; }
.pc-row-label { font-size: 13px; color: var(--muted); display: flex; align-items: center; }
.pc-section-title { font-size: 14px; font-weight: 600; color: var(--text-primary, #e2e8f0); margin: 16px 0 6px; padding-bottom: 4px; border-bottom: 1px solid rgba(255,255,255,0.06); }
.pc-grade-cell { display: flex; gap: 6px; justify-content: center; align-items: center; flex-wrap: wrap; }
.pc-badge { display: inline-block; padding: 3px 8px; border-radius: 4px; font-size: 12px; font-weight: 600; font-family: var(--mono); }
.pc-badge--good { background: rgba(52,211,153,0.15); color: #34d399; }
.pc-badge--ok { background: rgba(96,165,250,0.15); color: #60a5fa; }
.pc-badge--warn { background: rgba(251,191,36,0.15); color: #fbbf24; }
.pc-badge--bad { background: rgba(244,114,182,0.15); color: #f472b6; }
.pc-badge--na { background: rgba(255,255,255,0.05); color: var(--dim); }
.pc-metric-cell { text-align: center; font-family: var(--mono); font-size: 13px; padding: 8px 6px; }
.pc-metric--above { color: #34d399; }
.pc-metric--below { color: #f472b6; }
.pc-metric--best { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.pc-metric--na { color: var(--dim); }
.pc-risk--high { color: #f472b6; }
.pc-risk--medium { color: #fbbf24; }
.pc-risk--low { color: #34d399; }
.pc-radar-wrap { background: rgba(255,255,255,0.02); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 12px; margin-bottom: 12px; min-height: 380px; }
.pc-metrics-table { width: 100%; border-collapse: collapse; font-size: 13px; margin-bottom: 12px; }
.pc-metrics-table th, .pc-metrics-table td { padding: 8px 10px; border-bottom: 1px solid rgba(255,255,255,0.04); }
.pc-metrics-table th { text-align: center; font-size: 12px; color: var(--muted); font-weight: 600; text-transform: uppercase; letter-spacing: 0.3px; }
.pc-metrics-table tbody tr:hover { background: rgba(96,165,250,0.04); }
.pc-trajectory-cell { font-size: 12px; line-height: 1.6; }
.pc-change--up { color: #34d399; font-weight: 600; margin-right: 8px; }
.pc-change--down { color: #f472b6; font-weight: 600; margin-right: 8px; }
.pc-compare-btn { background: var(--accent, #60a5fa); color: #fff; border: none; padding: 8px 18px; border-radius: var(--radius-sm); font-size: 13px; font-weight: 600; cursor: pointer; margin-bottom: 12px; transition: opacity 0.2s; }
.pc-compare-btn:hover { opacity: 0.85; }
.pc-check-wrap { display: flex; align-items: center; padding-top: 4px; }
.pc-check { width: 16px; height: 16px; accent-color: var(--accent, #60a5fa); cursor: pointer; }
@media (max-width: 768px) {
  .pc-grid { overflow-x: auto; }
  .pc-metrics-table { font-size: 11px; }
}

@media (max-width: 600px) {
  .captain-panel { width: calc(100vw - 32px); max-height: calc(100vh - 120px); right: 16px; top: 16px; bottom: auto; }
  .captain-fab { bottom: 16px; right: 16px; }
}

/* ─── Watchlist ────────────────────────────────────────────────────────────── */
.wl-summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 1.5rem; }
.wl-summary-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 20px; text-align: center; }
.wl-summary-value { font-size: 2rem; font-weight: 700; font-family: var(--mono); }
.wl-summary-label { font-size: 0.75rem; color: var(--muted); margin-top: 4px; text-transform: uppercase; letter-spacing: 0.05em; }
.wl-summary-high { border-color: var(--rose); }
.wl-summary-high .wl-summary-value { color: var(--rose); }
.wl-summary-medium { border-color: var(--amber); }
.wl-summary-medium .wl-summary-value { color: var(--amber); }
.wl-summary-low { border-color: var(--green); }
.wl-summary-low .wl-summary-value { color: var(--green); }

.wl-filter-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 1rem; }
.wl-search { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 8px 12px; color: var(--fg); font-size: 0.85rem; width: 240px; }
.wl-search::placeholder { color: var(--dim); }
.wl-filter-select { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 8px 12px; color: var(--fg); font-size: 0.85rem; }
.wl-count { color: var(--muted); font-size: 0.8rem; margin-left: auto; }

.wl-table-wrap { overflow-x: auto; }
.wl-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.wl-table th { text-align: left; padding: 10px 12px; border-bottom: 2px solid var(--border); color: var(--muted); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; white-space: nowrap; user-select: none; }
.wl-table td { padding: 10px 12px; border-bottom: 1px solid var(--border); }
.wl-table tbody tr:hover { background: rgba(96,165,250,0.05); }
.wl-row { cursor: pointer; }
.wl-row-expanded { background: rgba(96,165,250,0.08); }
.wl-name { font-weight: 600; color: var(--accent); }
.wl-name:hover { text-decoration: underline; }
.wl-score { font-family: var(--mono); font-weight: 700; }
.wl-top-signal { color: var(--muted); font-size: 0.8rem; max-width: 300px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.wl-risk-badge { display: inline-block; padding: 2px 10px; border-radius: 10px; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; }
.wl-risk-high { background: rgba(244,114,182,0.15); color: var(--rose); }
.wl-risk-medium { background: rgba(251,191,36,0.15); color: var(--amber); }
.wl-risk-low { background: rgba(52,211,153,0.15); color: var(--green); }

.wl-expand-row td { padding: 0 12px 16px; border-bottom: 2px solid var(--border); }
.wl-signal-list { display: flex; flex-direction: column; gap: 6px; padding: 12px 0; }
.wl-signal { display: flex; align-items: center; gap: 10px; padding: 6px 12px; border-radius: var(--radius-sm); background: var(--surface); border-left: 3px solid var(--dim); }
.wl-sev-high { border-left-color: var(--rose); }
.wl-sev-medium { border-left-color: var(--amber); }
.wl-sev-low { border-left-color: var(--green); }
.wl-signal-cat { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted); min-width: 90px; }
.wl-signal-text { font-size: 0.82rem; color: var(--fg); }
.wl-signal-meta { margin-top: 8px; font-size: 0.8rem; color: var(--muted); padding: 6px 12px; }

@media (max-width: 768px) {
  .wl-summary-grid { grid-template-columns: repeat(2, 1fr); }
  .wl-filter-bar { flex-wrap: wrap; }
  .wl-search { width: 100%; }
}
