@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');
:root{
  /* ── MISSION CONTROL (dark default) ── */
  --bg:#090B10;--s1:#11141C;--s2:#171B25;--s3:#1E2330;--s4:#262C3B;
  --b1:#2A3142;--b2:#363F54;--b3:#4D5770;
  --text:#ECEEF3;--t2:#A4ABBB;--t3:#72798D;
  --gold:#5B8DEF;--gold-d:rgba(91,141,239,.12);--gold-b:rgba(91,141,239,.32);
  --teal:#2DD4BF;--teal-d:rgba(45,212,191,.10);
  --brand:#E5322D;
  --crit:#F87171;--high:#FB923C;--med:#FBBF24;--low:#4ADE80;
  --nav-bg:#06080C;--nav-text:#8B93A7;--nav-active:#E5322D;
  --sidebar-w:232px;--topbar-h:56px;--sidebar-peek:var(--topbar-h);--radius:10px;--radius-sm:6px;
  --nav-ease:cubic-bezier(.16,1,.3,1);--nav-dur:620ms;
  --shadow-sm:0 1px 2px rgba(0,0,0,.28);--shadow-md:0 8px 24px rgba(0,0,0,.38);
  --disp:'Inter',sans-serif;--body:'Inter',sans-serif;--mono:'JetBrains Mono',monospace;
  /* Liquid Glass tokens (dark) */
  --glass-bg:rgba(22,27,38,.78);--glass-bg-solid:rgba(22,27,38,.94);
  --glass-blur:16px;--glass-saturate:1.4;
  --glass-border:rgba(255,255,255,.14);--glass-border-subtle:rgba(255,255,255,.08);
  --glass-highlight:linear-gradient(180deg,rgba(255,255,255,.20) 0%,rgba(255,255,255,.05) 38%,transparent 100%);
  --glass-shadow:0 10px 36px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.10);
  --glass-accent-glow:0 0 20px rgba(91,141,239,.22);
  --glass-ease:cubic-bezier(.22,1,.36,1);--glass-dur:180ms;
}
/* ── LIGHT THEME ── opt-in via body.theme-light */
body.theme-light{
  --bg:#F0F1F4;--s1:#FFFFFF;--s2:#F6F7F9;--s3:#ECEEF2;--s4:#E2E5EB;
  --b1:#D8DCE5;--b2:#C4CAD6;--b3:#9AA3B5;
  --text:#12141A;--t2:#4B5160;--t3:#6E7588;
  --gold:#3B5BDB;--gold-d:rgba(59,91,219,.08);--gold-b:rgba(59,91,219,.28);
  --teal:#0891B2;--teal-d:rgba(8,145,178,.08);
  --crit:#DC2626;--high:#EA580C;--med:#D97706;--low:#16A34A;
  --nav-bg:#12141A;--nav-text:#A8AEBD;--nav-active:#E5322D;
  --shadow-sm:0 1px 2px rgba(0,0,0,.06);--shadow-md:0 8px 24px rgba(0,0,0,.10);
  --glass-bg:rgba(255,255,255,.82);--glass-bg-solid:rgba(255,255,255,.96);
  --glass-blur:14px;--glass-saturate:1.25;
  --glass-border:rgba(255,255,255,.72);--glass-border-subtle:rgba(0,0,0,.06);
  --glass-highlight:linear-gradient(180deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.45) 42%,transparent 100%);
  --glass-shadow:0 10px 32px rgba(15,23,42,.12),inset 0 1px 0 rgba(255,255,255,.85);
  --glass-accent-glow:0 0 18px rgba(59,91,219,.18);
}
*,*::before,*::after{box-sizing:border-box;margin:0}
html{height:100%}
body{min-height:100%;display:flex;flex-direction:column;background-color:var(--bg);color:var(--text);font-family:var(--body);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5{font-family:var(--disp);font-weight:700;letter-spacing:-.02em;line-height:1.2}
.mono{font-family:var(--mono)} .muted{color:var(--t2)} .dim{color:var(--t3)}
button{font-family:var(--body);cursor:pointer;border:none}
input,textarea,select{font-family:var(--body)}
#app{flex:1;margin-left:0;margin-top:var(--topbar-h);padding:28px 32px 64px;width:100%;max-width:none;display:flex;flex-direction:column;min-height:calc(100vh - var(--topbar-h))}

/* TOPBAR */
.topbar{position:fixed;top:0;left:0;right:0;border-bottom:1px solid rgba(255,255,255,.06);background:var(--nav-bg);z-index:100;height:var(--topbar-h)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;height:100%;padding:0 20px;gap:16px}
.tb-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.tb-back{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);color:var(--nav-text);font-family:var(--mono);font-size:15px;padding:0 10px;cursor:pointer;border-radius:var(--radius-sm);transition:all .15s}
.tb-back:hover{border-color:var(--teal);color:#fff;background:rgba(255,255,255,.08)}
.tb-backup{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);color:var(--nav-text);font-family:var(--mono);font-size:11px;padding:6px 12px;cursor:pointer;border-radius:var(--radius-sm);transition:all .15s}
.tb-backup:hover{border-color:var(--teal);color:#fff;background:rgba(255,255,255,.08)}
.tb-backup.stale{border-color:var(--high);color:var(--high)}
.tb-backup-dot{width:6px;height:6px;border-radius:50%;background:var(--high);box-shadow:0 0 6px var(--high)}
.tb-search{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);color:var(--nav-text);font-family:var(--mono);font-size:11px;padding:6px 12px;cursor:pointer;border-radius:var(--radius-sm);transition:all .15s}
.tb-search:hover{border-color:var(--teal);color:#fff;background:rgba(255,255,255,.08)}
.tb-search .tb-kbd{font-size:10px;opacity:.65;border:1px solid rgba(255,255,255,.18);border-radius:3px;padding:1px 5px}
.tb-theme{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);color:var(--nav-text);font-size:14px;cursor:pointer;border-radius:var(--radius-sm);transition:all .15s}
.tb-theme:hover{border-color:var(--teal);color:#fff;background:rgba(255,255,255,.08)}
@media(max-width:760px){.tb-search span:not(.tb-kbd){display:none}}
.tb-left{display:flex;align-items:center;gap:20px}
.tb-brand{display:flex;align-items:center;gap:10px;cursor:pointer;transition:opacity .15s}
.tb-brand:hover{opacity:.85}
.tb-diamond{width:8px;height:8px;background:var(--teal);transform:rotate(45deg);flex-shrink:0;transition:background .6s ease;border-radius:1px}
.tb-diamond.online{background:var(--teal);box-shadow:0 0 8px rgba(45,212,191,.5)}
.tb-diamond.offline{background:var(--crit);box-shadow:0 0 8px rgba(248,113,113,.5)}
.tb-name{font-family:var(--body);font-size:14px;font-weight:700;letter-spacing:.01em;color:#FFFFFF}
.tb-name em{color:var(--nav-active);font-style:normal}
.tb-divider{width:1px;height:20px;background:rgba(255,255,255,.12)}
.tb-sub{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.tb-right{display:flex;align-items:center;gap:8px}
.tb-pill{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.4);border:1px solid rgba(255,255,255,.1);padding:6px 14px;background:rgba(255,255,255,.05);border-radius:var(--radius-sm)}
.tb-dot{width:6px;height:6px;border-radius:50%;background:var(--low);flex-shrink:0}
.logo-block{display:none}

/* SECTION LABEL */
.section-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--t3);display:flex;align-items:center;gap:10px;margin-bottom:16px}
.section-label::after{content:'';flex:1;height:1px;background:var(--b1)}

/* PANEL */
.panel{background:var(--s1);border:1px solid var(--b1);border-radius:var(--radius);padding:22px;position:relative;box-shadow:var(--shadow-sm)}
.panel.teal-corner{border-left:3px solid var(--teal)}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;font-size:12.5px;font-weight:600;letter-spacing:.01em;border:1px solid var(--b2);background:var(--s2);color:var(--text);border-radius:var(--radius-sm);transition:all .15s;white-space:nowrap}
.btn:hover{background:var(--s3);border-color:var(--b3)}
.btn.primary{background:var(--gold);border-color:transparent;color:#fff;font-weight:700;box-shadow:0 2px 8px rgba(91,141,239,.25)}
.btn.primary:hover{filter:brightness(1.08);box-shadow:0 4px 14px rgba(91,141,239,.35)}
body.theme-light .btn.primary{color:#fff}
.btn.ghost{background:transparent;border-color:var(--b1);color:var(--t2)}
.btn.ghost:hover{border-color:var(--b2);color:var(--text);background:var(--s2)}
.btn.teal{background:var(--teal-d);border-color:color-mix(in srgb,var(--teal) 40%,transparent);color:var(--teal);font-weight:700}
.btn.teal:hover{background:color-mix(in srgb,var(--teal) 16%,transparent)}
.btn.sm{padding:6px 12px;font-size:11.5px} .btn.xs{padding:4px 10px;font-size:11px}
.btn:disabled{opacity:.4;cursor:not-allowed}

/* KPI */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:30px}
.kpi{padding:20px 18px 16px;border:1px solid var(--b1);border-left-width:3px;background:var(--s1);border-radius:var(--radius-sm);position:relative;overflow:hidden}
.kpi::after{content:'';position:absolute;top:0;right:0;width:60px;height:60px;background:radial-gradient(circle at 100% 0%,rgba(255,255,255,.03),transparent 70%)}
.kpi .n{font-family:var(--mono);font-size:40px;font-weight:600;line-height:1;letter-spacing:-.03em}
.kpi .l{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);margin-top:9px;font-family:var(--mono)}

/* DASHBOARD */
.dash-targets{display:flex;flex-direction:column;gap:6px;flex:1}
.target-row{display:grid;grid-template-columns:1fr auto auto auto auto;align-items:center;gap:14px;padding:12px 18px;border:1px solid var(--b1);border-left:3px solid transparent;background:var(--s1);border-radius:var(--radius-sm);cursor:pointer;transition:all .12s}
.target-row:hover{border-left-color:var(--gold);background:var(--s2);transform:translateX(2px);box-shadow:var(--shadow-sm)}
.target-row .t-name{font-family:var(--disp);font-size:16px;font-weight:700}
.target-row .t-meta{display:flex;gap:12px;margin-top:4px;flex-wrap:wrap}
.target-row .t-meta span{font-family:var(--mono);font-size:11px;color:var(--t2)}
.risk-cell{text-align:right;min-width:72px}
.risk-cell .rn{font-family:var(--mono);font-size:26px;font-weight:600;line-height:1}
.risk-cell .rl{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.05em;margin-top:3px}
.cost-cell{text-align:right;min-width:110px}
.cost-cell .cv{font-family:var(--mono);font-size:16px;font-weight:600;color:var(--gold)}
.cost-cell .cl{font-family:var(--mono);font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;margin-top:2px}
.row-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}
.target-row:hover .row-actions{opacity:1}

/* BADGES */
.badge{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;padding:4px 8px;border:1px solid;border-radius:4px}
.badge-status{color:var(--t2);border-color:var(--b2);background:var(--s2)}
.badge-dd{color:var(--teal);border-color:rgba(54,214,192,.3)}
.badge-warn{color:var(--med);border-color:rgba(245,166,35,.3)}

/* DEAL STAGE */
.stage-bar{display:flex;align-items:center;padding:18px 22px;background:var(--s1);border:1px solid var(--b1);margin-bottom:12px;overflow-x:auto;gap:0}
.stage-step{display:flex;flex-direction:column;align-items:center;gap:7px;flex-shrink:0;min-width:80px}
.stage-circle{width:28px;height:28px;border-radius:50%;border:2px solid var(--b2);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10px;font-weight:600;color:var(--t3);background:var(--bg);transition:all .25s}
.stage-step.done .stage-circle{border-color:var(--gold);color:var(--gold);background:var(--gold-d)}
.stage-step.active .stage-circle{box-shadow:0 0 14px var(--gold-b);border-color:var(--gold);color:var(--gold)}
.stage-lbl{font-family:var(--mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--t3);text-align:center;white-space:nowrap;padding:0 6px}
.stage-step.done .stage-lbl{color:var(--t2)}
.stage-step.active .stage-lbl{color:var(--gold)}
.stage-line{flex:1;height:2px;background:var(--b1);transition:background .25s;min-width:16px}
.stage-line.done{background:linear-gradient(90deg,var(--gold-b),var(--gold-b))}

/* CRITICAL GAP ALERT */
.gap-alert{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;border:1px solid rgba(245,57,90,.28);border-left:3px solid var(--crit);background:rgba(245,57,90,.06);margin-bottom:12px}
.gap-title{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--crit);text-transform:uppercase}
.gap-cats{font-size:12.5px;color:var(--t2);margin-top:5px;line-height:1.7}

/* OVERVIEW LAYOUT */
.ov-main{display:grid;grid-template-columns:minmax(280px,340px) 1fr;gap:12px;margin-bottom:12px;align-items:start}
.ov-right{display:flex;flex-direction:column;gap:12px}

/* RADAR CHART PANEL */
.radar-panel{background:var(--s1);border:1px solid var(--b1);padding:16px 12px;position:relative;display:flex;flex-direction:column;align-items:center}
.radar-panel::before{content:'';position:absolute;top:-1px;left:-1px;width:14px;height:14px;border-top:2px solid var(--gold);border-left:2px solid var(--gold)}
.radar-legend{font-family:var(--mono);font-size:9px;color:var(--t3);text-align:center;margin-top:8px;letter-spacing:.04em}

/* CATEGORY RANKINGS */
.cat-rank-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--b1)}
.cat-rank-item:last-child{border-bottom:none}
.cat-rank-num{font-family:var(--mono);font-size:10px;color:var(--t3);min-width:20px}
.cat-rank-body{flex:1}
.cat-rank-name{font-size:12px;margin-bottom:5px;font-weight:500}
.cat-rank-bar{height:3px;background:var(--s3);border-radius:2px;overflow:hidden}
.cat-rank-fill{height:100%;border-radius:2px;transition:width .5s ease}
.cat-rank-score{font-family:var(--mono);font-size:14px;font-weight:600;min-width:30px;text-align:right}

/* SEVERITY DIST */
.sev-dist-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;gap:2px;margin-bottom:9px}
.sev-seg{border-radius:2px;transition:width .3s}
.sev-dist-legend{display:flex;gap:14px;flex-wrap:wrap}

/* FINDINGS FILTER BAR */
.filter-bar{display:flex;gap:5px;flex-wrap:wrap;align-items:center;padding:12px 0;border-bottom:1px solid var(--b1);margin-bottom:16px}
.filter-btn{font-family:var(--mono);font-size:10.5px;padding:5px 10px;border:1px solid var(--b2);background:var(--bg);color:var(--t2);cursor:pointer;letter-spacing:.03em;transition:all .12s}
.filter-btn:hover{background:var(--s2);color:var(--text)}
.filter-btn.on{background:var(--gold-d);border-color:var(--gold-b);color:var(--gold)}
.filter-sep{width:1px;height:22px;background:var(--b2);flex-shrink:0;margin:0 4px}
.filter-search{background:var(--bg);border:1px solid var(--b2);color:var(--text);padding:5px 10px;font-family:var(--mono);font-size:11px;outline:none}
.filter-search:focus{border-color:var(--gold)}
.filter-count{font-family:var(--mono);font-size:10px;color:var(--t3);margin-left:auto}

/* DASHBOARD SEARCH */
.dash-search{background:var(--s1);border:1px solid var(--b1);color:var(--text);padding:9px 14px;font-family:var(--mono);font-size:12px;outline:none;transition:border-color .15s;width:220px}
.dash-search:focus{border-color:var(--gold)}

/* FRAMEWORK COVERAGE */
.fw-bar{display:flex;gap:14px;padding:14px 18px;background:var(--bg);border:1px solid var(--b1);margin-bottom:18px;flex-wrap:wrap}
.fw-item{flex:1;min-width:80px}
.fw-name{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);margin-bottom:4px}
.fw-prog{height:3px;background:var(--s3);border-radius:2px;overflow:hidden;margin-bottom:3px}
.fw-prog i{display:block;height:100%;background:var(--teal);border-radius:2px}
.fw-pct{font-family:var(--mono);font-size:11px;color:var(--t2)}

/* ASSESSMENT */
.asmt-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.asmt-title{font-family:var(--disp);font-size:26px;font-weight:800;letter-spacing:-.02em}
.asmt-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}

/* SPONSOR */
.sponsor-card{display:flex;align-items:center;gap:16px;padding:16px 20px;border:1px solid var(--gold-b);background:var(--gold-d);margin-bottom:12px}
.sponsor-avatar{width:40px;height:40px;background:var(--gold);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-weight:800;font-size:16px;color:#fff;flex-shrink:0;border-radius:var(--radius-sm)}
.sponsor-name{font-family:var(--disp);font-size:16px;font-weight:700}
.sponsor-label{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);margin-bottom:3px}

/* TABS */
.tabs{display:flex;border-bottom:1px solid var(--b1);margin-bottom:26px;overflow-x:auto;gap:2px}
.tab{padding:10px 14px;font-size:12.5px;font-weight:600;color:var(--t2);background:transparent;border-bottom:2px solid transparent;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:all .15s;white-space:nowrap;letter-spacing:.01em}
.tab:hover{color:var(--text);background:var(--s2)}
.tab.active{color:var(--gold);border-bottom-color:var(--gold);background:var(--gold-d)}
.tab .badge-n{font-family:var(--mono);font-size:10px;margin-left:5px;background:var(--s3);padding:1px 6px;border-radius:3px;color:var(--t2)}
.tab.active .badge-n{background:color-mix(in srgb,var(--gold) 20%,transparent);color:var(--gold)}
.tab .k{font-family:var(--mono);font-size:9px;border:1px solid var(--b2);padding:1px 5px;border-radius:3px;color:var(--t3);margin-left:5px;vertical-align:middle}
.tab.active .k{color:var(--gold);border-color:var(--gold-b)}

/* TAB ANIMATION */
#tabContent{animation:fadeTab .18s ease}
@keyframes fadeTab{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}

/* FORM */
.row{display:flex;gap:12px;flex-wrap:wrap} .col{flex:1;min-width:0}
.field{display:block;margin-bottom:14px}
.field .lbl{display:block;font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);margin-bottom:6px}
input,textarea,select{width:100%;background:var(--s2);border:1px solid var(--b1);color:var(--text);padding:9px 12px;font-size:13px;border-radius:var(--radius-sm);outline:none;transition:border-color .15s,box-shadow .15s}
input:focus,textarea:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-d)}
textarea{resize:vertical;min-height:64px;line-height:1.5} select{cursor:pointer}

/* QUESTIONNAIRE */
.cat-block{border:1px solid var(--b1);margin-bottom:8px;background:var(--s1)}
.cat-hd{display:flex;align-items:center;gap:12px;padding:12px 18px;cursor:pointer;user-select:none;transition:background .12s}
.cat-hd:hover{background:var(--s2)}
.cat-idx{font-family:var(--mono);font-size:10px;color:var(--gold);letter-spacing:.05em;min-width:22px}
.cat-name{font-family:var(--disp);font-size:13.5px;font-weight:700}
.cat-prog-txt{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--t3)}
.cat-chev{font-size:10px;color:var(--t3);transition:transform .2s}
.cat-block.open .cat-chev{transform:rotate(90deg)}
.cat-body{display:none;padding:4px 18px 18px;border-top:1px solid var(--b1)}
.cat-block.open .cat-body{display:block}
.q{padding:16px 0;border-bottom:1px solid var(--b1)}
.q:last-child{border-bottom:none}
.q-txt{font-weight:600;font-size:13.5px;margin-bottom:4px}
.q-meta{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.q-meta span{font-family:var(--mono);font-size:10px;color:var(--t3)}
.mat-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}
.mat-btn{font-family:var(--mono);font-size:10.5px;padding:5px 10px;border:1px solid var(--b2);background:transparent;color:var(--t3);cursor:pointer;transition:all .12s}
.mat-btn:hover{border-color:var(--b2);color:var(--t2);background:var(--s2)}
.mat-btn.on{background:var(--gold-d);border-color:var(--gold-b);color:var(--gold)}
.mat-btn.na.on{background:var(--s3);border-color:var(--b2);color:var(--t2)}

/* FINDINGS */
.review-alert{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;border:1px solid var(--gold-b);border-left:3px solid var(--gold);background:var(--gold-d);margin-bottom:18px}
.finding-card{border:1px solid var(--b1);border-left:3px solid transparent;background:var(--s1);border-radius:var(--radius-sm);padding:16px 18px;margin-bottom:8px}
.finding-card.suggested{border-left-color:var(--med)}
.finding-card.accepted{border-left-color:var(--low)}
.finding-card.rejected{opacity:.45;border-left-color:var(--t3)}
.f-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}
.f-title{font-family:var(--disp);font-size:15px;font-weight:700}
.f-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.sev-pill{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;flex-shrink:0}
.f-desc,.f-remediation{font-size:12.5px;color:var(--t2);line-height:1.6;margin:8px 0}
.f-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;background:var(--bg);border:1px solid var(--b1);padding:12px 14px;margin:10px 0}
.f-stat .lbl{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3)}
.f-stat .val{font-family:var(--mono);font-size:13px;margin-top:3px}
.f-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}

/* COSTS */
.cost-table-wrap table{width:100%;border-collapse:collapse}
.cost-table-wrap th{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);padding:9px 12px;border-bottom:1px solid var(--b1);text-align:left;font-weight:500}
.cost-table-wrap td{padding:11px 12px;border-bottom:1px solid var(--b1);font-size:13px}
th.r,td.r{text-align:right;font-family:var(--mono)}
tr.total-row td{font-family:var(--disp);font-size:16px;font-weight:700;border-bottom:none;border-top:2px solid var(--b2);padding-top:14px}
tr.total-row td.r{color:var(--gold)}

/* PATHWAY */
.pw-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.pw-card{border:1px solid var(--b1);background:var(--s1);padding:18px;cursor:pointer;transition:all .15s;position:relative}
.pw-card:hover{border-color:var(--b2);background:var(--s2)}
.pw-card.sel{border-color:var(--gold-b);background:var(--gold-d)}
.pw-card.sel::before{content:'✓ CONFIRMED';position:absolute;top:10px;right:12px;font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--gold)}
.pw-card h4{font-family:var(--disp);font-size:14px;font-weight:700;margin-bottom:8px}
.pw-card p{font-size:12px;color:var(--t2);line-height:1.55}
.ai-rec-bar{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;border:1px solid rgba(54,214,192,.25);border-left:3px solid var(--teal);background:var(--teal-d);margin-bottom:18px}
.ai-rec-bar .ai-name{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--teal)}
.ai-rec-bar .ai-rat{font-size:12.5px;color:var(--t2);margin-top:3px}

/* COMMENTS + TEAM TAGS */
.comments-list{max-height:280px;overflow-y:auto;margin-bottom:12px}
.comment-item{padding:12px 14px;border:1px solid var(--b1);margin-bottom:6px;background:var(--bg);position:relative}
.comment-item:hover .del-comment{opacity:1}
.comment-meta{font-family:var(--mono);font-size:10px;color:var(--t3);margin-bottom:5px}
.comment-text{font-size:13px;line-height:1.6;color:var(--t2);white-space:pre-wrap}
.del-comment{position:absolute;top:8px;right:10px;font-size:11px;color:var(--t3);background:transparent;border:none;cursor:pointer;opacity:0;transition:opacity .15s;padding:2px 6px}
.del-comment:hover{color:var(--crit)}
.comment-input-area{display:flex;gap:8px;align-items:flex-end}
.comment-input-area textarea{flex:1;min-height:48px;max-height:120px}
.team-tag-list{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.team-tag-card{padding:14px 16px;border:1px solid var(--b1);background:var(--bg);display:grid;grid-template-columns:1fr auto;align-items:start;gap:12px}
.team-tag-card:hover .del-team{opacity:1}
.team-name{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;margin-bottom:5px}
.team-work{font-size:12.5px;color:var(--t2);line-height:1.55;margin-bottom:6px}
.team-meta{display:flex;gap:12px;flex-wrap:wrap}
.team-meta span{font-family:var(--mono);font-size:10px;color:var(--t3)}
.del-team{background:transparent;border:none;color:var(--t3);cursor:pointer;font-size:12px;opacity:0;transition:opacity .15s;padding:4px 6px;flex-shrink:0}
.del-team:hover{color:var(--crit)}
.add-team-form{border:1px solid var(--b2);background:var(--s2);padding:16px;margin-top:4px}
.add-team-form .lbl{display:block;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);margin-bottom:5px;margin-top:10px}
.add-team-form .lbl:first-child{margin-top:0}

/* OVERVIEW DETAIL */
.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.detail-item .lbl{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3)}
.detail-item .val{font-size:13.5px;margin-top:4px;font-family:var(--mono)}
.prog-bar{height:4px;background:var(--s3);position:relative;overflow:hidden}
.prog-bar i{display:block;height:100%;position:absolute;left:0;top:0;transition:width .4s}
.bar-fill{width:0;min-width:0}
.bar-fill.is-filling{transition:width 1.25s cubic-bezier(.22,.61,.36,1);transition-delay:var(--bar-fill-delay,0ms)}
.bar-fill-static{transition:none}
@media(prefers-reduced-motion:reduce){.bar-fill.is-filling{transition:none}}

/* REPORT */
.report-pre{font-family:var(--mono);font-size:11.5px;line-height:1.7;background:var(--bg);border:1px solid var(--b1);padding:22px 24px;max-height:560px;overflow:auto;white-space:pre-wrap;color:var(--t2)}

/* EMPTY STATE */
.empty-state{text-align:center;padding:60px 24px;color:var(--t3);border:1px dashed var(--b1);background:var(--s1);border-radius:var(--radius);flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}
.empty-state .e-icon{font-size:28px;margin-bottom:12px}
.empty-state p{font-size:13px;max-width:480px;margin:0 auto}

/* SPINNER */
.spin{width:12px;height:12px;border:2px solid rgba(245,166,35,.3);border-top-color:var(--gold);border-radius:50%;display:inline-block;animation:sp .65s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}

/* MODAL */
.modal-backdrop{position:fixed;inset:0;background:rgba(4,6,10,.82);backdrop-filter:blur(4px);z-index:500;display:flex;align-items:center;justify-content:center;padding:20px}
.cmdk-backdrop{position:fixed;inset:0;background:rgba(4,6,10,.72);backdrop-filter:blur(3px);z-index:600;display:flex;align-items:flex-start;justify-content:center;padding:80px 20px}
.cmdk-box{background:var(--s1);border:1px solid var(--b2);border-radius:var(--radius);width:640px;max-width:100%;position:relative;box-shadow:var(--shadow-md);max-height:70vh;display:flex;flex-direction:column}
.cmdk-input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--b1);color:var(--text);font-family:var(--body);font-size:16px;padding:16px 18px;outline:none}
.cmdk-input::placeholder{color:var(--t3)}
.cmdk-list{overflow-y:auto;padding:6px}
.cmdk-item{display:flex;align-items:center;gap:12px;padding:10px 12px;cursor:pointer;border:1px solid transparent}
.cmdk-item.active{background:var(--s2);border-color:var(--b1)}
.cmdk-item .ci-icon{font-size:15px;width:20px;text-align:center}
.cmdk-item .ci-label{flex:1;color:var(--text);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmdk-item .ci-kind{font-family:var(--mono);font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.05em;background:var(--s3);padding:2px 7px;border:1px solid var(--b1)}
.cmdk-empty{padding:24px;text-align:center;color:var(--t3);font-size:13px}
.grc-empty{background:var(--s1);border:1px solid var(--b1);border-radius:var(--radius);text-align:center;padding:48px 24px;display:flex;flex-direction:column;align-items:center;gap:8px}
.grc-empty .ge-icon{font-size:30px;opacity:.4;line-height:1}
.grc-empty .ge-title{font-family:var(--disp);font-size:15px;color:var(--text)}
.grc-empty .ge-msg{font-family:var(--mono);font-size:11.5px;color:var(--t3);max-width:400px;line-height:1.5}
.grc-empty .btn{margin-top:8px}
.attn-row{display:flex;gap:8px;flex-wrap:wrap}
.attn-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;font-family:var(--mono);font-size:11px;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;transition:filter .12s,transform .12s;border:1px solid}
.attn-chip:hover{filter:brightness(1.1);transform:translateY(-1px)}
.attn-chip.crit{background:color-mix(in srgb,var(--crit) 12%,transparent);border-color:color-mix(in srgb,var(--crit) 28%,transparent);color:var(--crit)}
.attn-chip.warn{background:color-mix(in srgb,var(--high) 12%,transparent);border-color:color-mix(in srgb,var(--high) 28%,transparent);color:var(--high)}
.attn-chip.info{background:color-mix(in srgb,var(--teal) 12%,transparent);border-color:color-mix(in srgb,var(--teal) 28%,transparent);color:var(--teal)}
.grc-page-hd{margin-bottom:28px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.grc-breadcrumb{font-family:var(--mono);font-size:10.5px;color:var(--t3);margin-bottom:8px}
.grc-breadcrumb a{color:var(--gold);cursor:pointer;text-decoration:none}
.grc-breadcrumb a:hover{text-decoration:underline}
.grc-page-title{font-size:24px;font-weight:700;color:var(--text);margin-bottom:4px}
.grc-page-sub{color:var(--t2);font-size:13.5px}
.grc-home{margin:-28px -32px 0;width:calc(100% + 64px)}
.grc-hero{background:var(--s1);border-bottom:1px solid var(--b1);padding:24px 32px 20px;margin-bottom:24px}
.grc-hero-kicker{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--t3);margin-bottom:6px}
.grc-hero-title{font-size:28px;font-weight:800;color:var(--text);margin:0;letter-spacing:-.02em}
.name-sheen{
  display:inline;
  font:inherit;
  font-weight:inherit;
  letter-spacing:inherit;
  line-height:inherit;
}
.name-sheen-text{
  font:inherit;
  font-weight:inherit;
  letter-spacing:inherit;
  line-height:inherit;
  animation:pearlShimmer 7s ease-in-out infinite;
}
body.theme-light .name-sheen-text{animation-name:pearlShimmerLight}
@keyframes pearlShimmer{
  0%,100%{color:#8ec8e8;text-shadow:0 0 14px rgba(142,200,232,.28)}
  20%{color:#d4b8f0;text-shadow:0 0 12px rgba(212,184,240,.26)}
  40%{color:#f0b8d0;text-shadow:0 0 16px rgba(240,184,208,.3)}
  60%{color:#88e8f0;text-shadow:0 0 14px rgba(136,232,240,.28)}
  80%{color:#b0e8d8;text-shadow:0 0 12px rgba(176,232,216,.24)}
}
@keyframes pearlShimmerLight{
  0%,100%{color:#4a7a9a;text-shadow:none}
  20%{color:#7a5a98;text-shadow:none}
  40%{color:#a84878;text-shadow:none}
  60%{color:#2a8898;text-shadow:none}
  80%{color:#388868;text-shadow:none}
}
@media (prefers-reduced-motion:reduce){.name-sheen-text{animation:none;color:var(--teal)}}
html.reduce-motion .name-sheen-text{animation:none!important;color:var(--teal)}
.grc-hero-date{font-family:var(--mono);font-size:11.5px;color:var(--t3);margin-top:6px}
.grc-hero-edit{cursor:pointer;font-size:13px;color:var(--t3);margin-left:10px;font-weight:400}
.grc-home-body{padding:0 32px 40px}
.grc-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.grc-kpi-card{background:var(--s1);border:1px solid var(--b1);border-radius:var(--radius);padding:18px 20px;cursor:pointer;transition:box-shadow .15s,transform .15s;border-top:3px solid var(--b2)}
.grc-kpi-card.glass-card.accent-card{border-top-width:3px;border-top-style:solid;border-top-color:var(--accent-color)}
.grc-kpi-card.glass-card.accent-card:hover .grc-kpi-val{color:var(--accent-color)}
.grc-kpi-lbl{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);margin-bottom:8px}
.grc-kpi-val{font-family:var(--mono);font-size:36px;font-weight:800;line-height:1;transition:color .28s var(--glass-ease)}
.grc-kpi-sub{font-family:var(--mono);font-size:10.5px;color:var(--t3);margin-top:6px}
.sparkline-svg{overflow:visible}
.sparkline-draw,.sparkline-glow{transition:none}
.sparkline-glow{pointer-events:none}
@media(prefers-reduced-motion:reduce){
  .spark-dot animateMotion,.spark-dot animate,.sparkline-draw animate,.sparkline-glow animate{display:none}
  .sparkline-draw,.sparkline-glow{stroke-dashoffset:0!important;stroke-dasharray:none!important}
  .sparkline-glow{opacity:0.22!important}
}
.dash-widget{background:var(--s1);border:1px solid var(--b1);border-radius:var(--radius);padding:20px 22px;display:flex;flex-direction:column;box-shadow:var(--shadow-sm)}
.dash-widget-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.dash-widget-title{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);font-weight:600}
.dash-widget-icon{font-size:14px}
.dash-widget-link{font-family:var(--mono);font-size:10.5px;color:var(--gold);background:none;border:none;cursor:pointer;padding:0;text-decoration:underline}
.dash-widget-link:hover{color:var(--text)}
.metric-strip{display:flex;gap:8px;margin-bottom:14px}
.metric-cell{flex:1;text-align:center;padding:10px 6px;border:1px solid var(--b1);border-radius:var(--radius-sm);border-top:2px solid var(--b2)}
.metric-cell .mv{font-family:var(--mono);font-size:22px;font-weight:700;line-height:1}
.metric-cell .ml{font-family:var(--mono);font-size:10px;text-transform:uppercase;color:var(--t3);margin-top:4px}
.dash-list-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--b1);cursor:pointer;transition:background .12s;font-size:12.5px}
.dash-list-row:hover{background:var(--s2);margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:var(--radius-sm)}
.dash-list-row .dl-score{font-family:var(--mono);font-size:15px;font-weight:700;min-width:28px}
.dash-list-row .dl-body{flex:1;min-width:0}
.dash-list-row .dl-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-list-row .dl-meta{font-family:var(--mono);font-size:10.5px;color:var(--t3)}
.dash-progress-lbl{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10.5px;color:var(--t3);margin-bottom:4px}
.dash-progress-track{background:var(--b1);border-radius:4px;height:6px;overflow:hidden}
.dash-progress-fill{height:6px;border-radius:4px;transition:width .4s}
.dash-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.dash-empty{font-family:var(--mono);font-size:11.5px;color:var(--t3)}
@media(max-width:1100px){.grc-kpi-grid,.dash-grid-2{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.grc-kpi-grid,.dash-grid-2{grid-template-columns:1fr}#app{padding:20px 16px 48px;margin-left:0;width:100%}.topbar{left:0}.topbar-inner{padding-left:14px}.grc-home{margin:-20px -16px 0;width:calc(100% + 32px)}.grc-home-body{padding:0 16px 32px}.grc-hero{padding:20px 16px}.nav-scrim{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:105}.body-nav-open .nav-scrim{display:block}.body-nav-open{overflow:hidden}}
/* ── DRAWER (record detail) ── */
.drawer-backdrop{position:fixed;inset:0;background:rgba(4,6,10,.55);backdrop-filter:blur(2px);z-index:550;opacity:0;transition:opacity .2s ease}
.drawer-backdrop.open{opacity:1}
.drawer-panel{
  position:fixed;top:0;right:0;bottom:0;width:min(680px,100vw);
  background:var(--glass-bg-solid);border-left:1px solid var(--glass-border);box-shadow:var(--glass-shadow);
  display:flex;flex-direction:column;transform:translateX(100%);transition:transform .24s cubic-bezier(.22,1,.36,1);overflow:hidden;
}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .drawer-panel{
    background:var(--glass-bg);
    -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));
    backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));
  }
}
.drawer-panel::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:var(--glass-highlight);opacity:.85;z-index:0;
}
.drawer-panel>*{position:relative;z-index:1}
.drawer-backdrop.open .drawer-panel{transform:translateX(0)}
.drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--b1);flex-shrink:0}
.drawer-header h3{font-size:17px;font-weight:700;line-height:1.3;flex:1}
.drawer-sub{font-family:var(--mono);font-size:11px;color:var(--t3);margin-top:4px}
.drawer-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--s2);border:1px solid var(--b1);border-radius:var(--radius-sm);color:var(--t2);font-size:18px;cursor:pointer;flex-shrink:0}
.drawer-close:hover{color:var(--text);border-color:var(--b2)}
.drawer-body{overflow-y:auto;flex:1;padding:20px 22px}
.drawer-footer{display:flex;align-items:center;gap:8px;padding:14px 22px;border-top:1px solid var(--b1);flex-shrink:0;background:var(--s2)}
/* ── INBOX ── */
.inbox-panel{background:var(--s1);border:1px solid var(--b1);border-radius:var(--radius);margin-bottom:20px;overflow:hidden;box-shadow:var(--shadow-sm)}
.inbox-hd{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--b1)}
.inbox-title{font-size:15px;font-weight:700}
.inbox-count{font-family:var(--mono);font-size:11px;color:var(--t3)}
.inbox-item{display:flex;align-items:flex-start;gap:14px;padding:14px 20px;border-bottom:1px solid var(--b1);cursor:pointer;transition:background .12s}
.inbox-item:last-child{border-bottom:none}
.inbox-item:hover{background:var(--s2)}
.inbox-sev{width:4px;border-radius:2px;align-self:stretch;flex-shrink:0;min-height:36px}
.inbox-sev.crit{background:var(--crit)}.inbox-sev.warn{background:var(--high)}.inbox-sev.info{background:var(--teal)}
.inbox-body{flex:1;min-width:0}
.inbox-item-title{font-weight:600;font-size:13.5px;margin-bottom:3px}
.inbox-item-meta{font-size:12px;color:var(--t3)}
.inbox-item-action{font-family:var(--mono);font-size:10.5px;color:var(--gold);white-space:nowrap;padding-top:2px;display:flex;align-items:center;gap:8px}
.inbox-dismiss{background:transparent;border:1px solid var(--b2);color:var(--t3);font-family:var(--mono);font-size:9px;padding:2px 7px;border-radius:3px;cursor:pointer;flex-shrink:0}
.inbox-dismiss:hover{border-color:var(--t2);color:var(--text)}
.inbox-item.is-evaporating{animation:inboxEvaporate .48s ease forwards;pointer-events:none;overflow:hidden}
@keyframes inboxEvaporate{
  0%{opacity:1;transform:scale(1) translateY(0);filter:blur(0);max-height:96px}
  55%{opacity:.35;transform:scale(.985) translateY(-6px);filter:blur(1.5px)}
  100%{opacity:0;transform:scale(.9) translateY(-18px);filter:blur(10px);max-height:0;padding-top:0;padding-bottom:0;margin:0;border-color:transparent}
}
.sidenav-badge{margin-left:auto;font-family:var(--mono);font-size:9px;font-weight:700;min-width:18px;height:18px;line-height:18px;text-align:center;padding:0 5px;border-radius:9px;background:color-mix(in srgb,var(--crit) 18%,transparent);color:var(--crit);border:1px solid color-mix(in srgb,var(--crit) 35%,transparent)}
body.ux-density-compact .inbox-item{padding:10px 16px}
body.ux-density-compact .grc-page-hd{margin-bottom:12px}
body.ux-density-compact #app .btn{padding:5px 10px;font-size:11px}
body.ux-density-compact .filter-bar{margin-bottom:10px}
body.ux-density-compact .settings-toggle-row{padding:10px 12px}
.lp-picker label{display:flex!important;align-items:flex-start!important;gap:10px!important;width:100%;box-sizing:border-box}
.lp-picker label>input[type=checkbox]{margin-top:3px;flex-shrink:0;width:16px;height:16px;min-width:16px}
.lp-picker label>div{flex:1;min-width:0}
.lp-picker .lp-item{border-bottom:1px solid var(--b1)}
.as-year-strip-wrap{display:flex;align-items:center;gap:8px;margin-bottom:0}
.as-year-strip{flex:1;display:flex;gap:4px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x proximity}
.as-year-strip .as-year-cell{flex:0 0 72px;scroll-snap-align:start;border-radius:6px}
.as-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
@media(max-width:720px){.as-kpi-grid{grid-template-columns:repeat(2,1fr)}}
.as-kpi-card{
  padding:12px 14px;border-radius:var(--radius-sm);cursor:pointer;text-align:left;
  font:inherit;color:inherit;border:none;background:transparent;width:100%;
}
.as-kpi-card.glass-card.accent-card{border-top:3px solid var(--accent-color)}
.as-kpi-card.glass-card.accent-card:hover .as-kpi-val{color:var(--accent-color)}
.as-kpi-val{font-family:var(--mono);font-size:24px;font-weight:800;line-height:1;transition:color .28s var(--glass-ease)}
.as-kpi-lbl{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);margin-top:5px}
.as-event-card.glass-card.accent-card{
  padding:12px 14px;cursor:pointer;border-left:3px solid var(--accent-color);
}
.as-event-card.glass-card.accent-card:hover .as-event-title{color:var(--accent-color)}
.as-event-title{font-size:13px;font-weight:600;transition:color .28s var(--glass-ease)}
.as-cal-shell{padding:0;overflow:hidden}
.as-cal-shell .as-cal-grid{border-radius:0}
.as-year-strip-panel .as-year-strip-wrap{margin-top:8px}
.vendor-folder-chip{cursor:pointer;transition:background .12s,border-color .12s}
.vendor-folder-chip:hover{background:var(--s2)}
.vendor-folder-chip.active{outline:2px solid var(--gold);outline-offset:-2px}
/* ── DRADIS fullscreen easter egg (BSG tactical display) ── */
.dradis-egg-fs{position:fixed;inset:0;z-index:9999;background:#060006;display:flex;align-items:center;justify-content:center;font-family:var(--mono);color:#d4006a;animation:degBoot .6s ease-out both;overflow:hidden}
.dradis-egg-fs *,.dradis-egg-fs *::before,.dradis-egg-fs *::after{box-sizing:border-box}
@keyframes degBoot{from{opacity:0;filter:brightness(2.2) contrast(1.2)}to{opacity:1;filter:none}}
.dradis-egg-scanlines{pointer-events:none;position:absolute;inset:0;z-index:4;background:repeating-linear-gradient(0deg,transparent 0,transparent 2px,rgba(0,0,0,.26) 2px,rgba(0,0,0,.26) 4px);mix-blend-mode:multiply}
.dradis-egg-scanlines::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,transparent 35%,rgba(0,0,0,.5) 100%)}
.dradis-egg-phosphor{pointer-events:none;position:absolute;inset:0;z-index:3;opacity:.04;background:repeating-linear-gradient(90deg,#00e8ff 0 1px,transparent 1px 3px);animation:degPhosphor 8s linear infinite}
@keyframes degPhosphor{0%,100%{opacity:.03}50%{opacity:.06}}
.dradis-egg-frame{position:relative;z-index:2;width:min(96vw,1320px);height:min(94vh,860px);display:flex;flex-direction:column;border:3px solid #c7006e;box-shadow:0 0 28px rgba(230,0,122,.4),inset 0 0 50px rgba(230,0,122,.07);background:linear-gradient(180deg,#0e000c 0%,#070006 55%,#050004 100%)}
.dradis-egg-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 14px;background:linear-gradient(180deg,#1a0010,#0e0008);border-bottom:2px solid #c7006e;font-size:10px;letter-spacing:.18em;text-transform:uppercase;text-shadow:0 0 8px rgba(230,0,122,.55)}
.dradis-egg-top span{opacity:.92}
.dradis-egg-shutdown{cursor:pointer;padding:4px 12px;border:1px solid #ff2d8a;background:rgba(230,0,122,.15);color:#ff6eb8;font:inherit;font-size:10px;letter-spacing:.2em;text-transform:uppercase;transition:background .15s,box-shadow .15s}
.dradis-egg-shutdown:hover{background:rgba(230,0,122,.32);box-shadow:0 0 14px rgba(230,0,122,.45)}
.dradis-egg-tabs{display:flex;gap:0;border-bottom:1px solid rgba(199,0,110,.55);background:rgba(12,0,8,.85);font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.dradis-egg-tab{padding:5px 16px;border-right:1px solid rgba(199,0,110,.35);color:rgba(230,0,122,.65)}
.dradis-egg-tab.active{color:#ff4da0;background:rgba(230,0,122,.12);text-shadow:0 0 10px rgba(255,45,138,.5)}
.dradis-egg-body{flex:1;display:grid;grid-template-columns:118px 1fr 96px;min-height:0;overflow:hidden}
.dradis-egg-side-l{display:flex;flex-direction:column;gap:10px;padding:12px 10px;border-right:2px solid rgba(199,0,110,.45);background:rgba(8,0,6,.6)}
.deg-side-lbl{font-size:8px;letter-spacing:.12em;color:rgba(230,0,122,.75);text-transform:uppercase;margin-bottom:2px}
.deg-side-bar-wrap{height:52px;border:1px solid rgba(199,0,110,.4);background:rgba(0,0,0,.35);display:flex;align-items:flex-end;padding:2px}
.deg-side-bar{width:100%;background:linear-gradient(180deg,#ff2d8a,#c7006e);box-shadow:0 0 8px rgba(230,0,122,.5);transform-origin:bottom;animation:degBarFill 3.2s ease-out both}
.deg-side-bar-wrap:nth-child(1) .deg-side-bar{animation-delay:0s}
.deg-side-bar-wrap:nth-child(2) .deg-side-bar{animation-delay:.22s}
.deg-side-bar-wrap:nth-child(3) .deg-side-bar{animation-delay:.44s}
.deg-side-bar-wrap:nth-child(4) .deg-side-bar{animation-delay:.66s}
.deg-side-bar-wrap:nth-child(5) .deg-side-bar{animation-delay:.88s}
.deg-side-bar-wrap:nth-child(6) .deg-side-bar{animation-delay:1.1s}
@keyframes degBarFill{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.deg-side-readout{font-size:8px;line-height:1.5;color:rgba(255,77,160,.7);letter-spacing:.08em;margin-top:auto;padding-top:8px;border-top:1px solid rgba(199,0,110,.25)}
.dradis-egg-radar{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:#020408}
.dradis-egg-radar-hd{display:flex;justify-content:space-between;align-items:center;flex-shrink:0;padding:8px 16px 4px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#d4006a;text-shadow:0 0 10px rgba(230,0,122,.5)}
.dradis-egg-radar-hd .deg-fw{font-size:9px;letter-spacing:.14em;color:rgba(230,0,122,.55)}
.dradis-egg-svg-wrap{flex:1 1 0;min-height:0;position:relative;margin:0 6px 8px}
.dradis-egg-svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.dradis-egg-fs svg text{font-size:unset;letter-spacing:.04em}
.deg-ring{stroke:#00d4f0;stroke-width:0.65;fill:none;opacity:.55}
.deg-spoke{stroke:#00d4f0;stroke-width:0.4;fill:none;opacity:.28}
.deg-baseline{stroke:#00d4f0;stroke-width:0.5;fill:none;opacity:.4}
.deg-ar{stroke:#00d4f0;stroke-width:0.65;fill:none;opacity:.55}
.deg-rad{stroke:#00d4f0;stroke-width:0.4;fill:none;opacity:.28}
.deg-sweep-wedge{fill:url(#degSweepGrad);opacity:.35}
.deg-sweep-line{stroke:#00f0ff;stroke-width:1.2;stroke-linecap:round;filter:drop-shadow(0 0 4px #00e8ff)}
.dradis-egg-sweep{transform-origin:0 0;animation:degSweep 5s linear infinite}
@keyframes degSweep{to{transform:rotate(360deg)}}
.deg-blip-f,.deg-blip-e{animation:degBlip 5s linear infinite}
@keyframes degBlip{0%,90%,100%{opacity:.38}93%,97%{opacity:1}}
.dradis-egg-side-r{display:flex;flex-direction:column;justify-content:flex-end;gap:6px;padding:12px 8px;border-left:2px solid rgba(199,0,110,.45);background:rgba(8,0,6,.6)}
.deg-r-btn{transform:skewX(-12deg);padding:10px 6px;border:1px solid rgba(199,0,110,.5);background:rgba(230,0,122,.1);font-size:8px;letter-spacing:.1em;text-align:center;color:rgba(255,77,160,.8);text-transform:uppercase}
.deg-r-btn.setup{margin-top:auto;background:rgba(230,0,122,.18);color:#ff6eb8}
.dradis-egg-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 14px;border-top:2px solid #c7006e;background:rgba(10,0,8,.9);font-size:9px;letter-spacing:.12em;color:rgba(230,0,122,.65)}
.dradis-egg-quote{flex:1;font-size:11px;letter-spacing:.06em;color:#00e8ff;text-shadow:0 0 8px rgba(0,232,255,.45);font-style:italic}
.dradis-egg-hint{font-size:8px;opacity:.55;white-space:nowrap}
.dradis-egg-fs.is-static .dradis-egg-sweep,.dradis-egg-fs.is-static .deg-blip-f,.dradis-egg-fs.is-static .deg-blip-e,.dradis-egg-fs.is-static .deg-side-bar,.dradis-egg-fs.is-static .dradis-egg-phosphor{animation:none!important}
.dradis-egg-fs.is-static .dradis-egg-sweep{transform:rotate(-32deg)}
.dradis-egg-fs.is-static .deg-blip-f,.dradis-egg-fs.is-static .deg-blip-e{opacity:.92}
.dradis-egg-fs.is-static .deg-side-bar{transform:scaleY(1)}
@media (prefers-reduced-motion:reduce){.dradis-egg-fs:not(.is-static) .dradis-egg-sweep,.dradis-egg-fs:not(.is-static) .deg-blip-f,.dradis-egg-fs:not(.is-static) .deg-blip-e,.dradis-egg-fs:not(.is-static) .deg-side-bar,.dradis-egg-fs:not(.is-static) .dradis-egg-phosphor{animation:none!important}.dradis-egg-fs:not(.is-static) .dradis-egg-sweep{transform:rotate(-32deg)}.dradis-egg-fs:not(.is-static) .deg-blip-f,.dradis-egg-fs:not(.is-static) .deg-blip-e{opacity:.92}.dradis-egg-fs:not(.is-static) .deg-side-bar{transform:scaleY(1)}}
/* ── Org hierarchy map ── */
.org-map{background:var(--s1);border:1px solid var(--b1);border-radius:var(--radius);margin-bottom:28px;overflow:hidden}
.org-map-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--b1);background:var(--s2)}
.org-map-toolbar input{flex:1;min-width:180px;background:var(--bg);border:1px solid var(--b1);color:var(--text);padding:9px 12px;font-size:12.5px;border-radius:var(--r-sm);outline:none}
.org-map-toolbar input:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-d)}
.org-map-viewport{overflow:hidden;max-height:min(560px,78vh);min-height:420px;cursor:grab;position:relative;touch-action:none;user-select:none;display:flex;justify-content:center;align-items:flex-start;padding:40px 24px 24px;background:radial-gradient(ellipse 80% 60% at 50% 0%,color-mix(in srgb,var(--gold) 7%,transparent),transparent 65%),var(--bg)}
.org-map-viewport.dragging{cursor:grabbing}
.org-map-pan{will-change:transform;transition:transform .48s cubic-bezier(.25,.8,.25,1)}
.org-map-pan.dragging,.org-map-pan.no-anim{transition:none}
.org-map-scaler{will-change:transform;transition:transform .48s cubic-bezier(.25,.8,.25,1);transform-origin:top center}
.org-map-scaler.dragging,.org-map-scaler.no-anim{transition:none}
.org-map-canvas{position:relative;min-width:800px;padding:28px 40px 40px;margin:0}
.org-map-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0}
.org-map-path{fill:none;stroke:var(--b2);stroke-width:1.75;opacity:.75;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:stroke .25s,opacity .25s,stroke-width .25s}
.org-map-path.lit{stroke:color-mix(in srgb,var(--gold) 70%,var(--teal));opacity:1;stroke-width:2.25}
.org-map-path.glow{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--gold) 35%,transparent))}
.org-map-tree{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}
.org-map-l1{display:flex;justify-content:center;align-items:flex-start;gap:clamp(32px,8vw,96px);width:100%}
.org-map-l1-subs{flex-wrap:wrap;gap:clamp(14px,3vw,28px);max-width:min(1100px,100%)}
.org-map-l1-subs .org-map-sub-wrap{min-width:148px;max-width:200px}
.org-map-branch{display:flex;flex-direction:column;align-items:center;scroll-snap-align:center;transition:opacity .4s ease,filter .4s ease;flex:1;min-width:200px;max-width:440px}
.org-map-branch:has(.org-map-sub-wrap.open){max-width:none;min-width:240px}
.org-map-branch.dimmed{opacity:.38;filter:saturate(.45)}
.org-map-branch.focused{opacity:1;filter:none}
.org-map-vstem{width:0;height:20px;flex-shrink:0;background:transparent}
.org-map-vstem.sm{height:14px}
.org-map-l2{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;width:100%;padding:4px 0;align-items:flex-start}
.org-node{position:relative;border:1px solid var(--b1);background:var(--s1);border-radius:var(--r-sm);cursor:pointer;transition:border-color .15s,box-shadow .2s,transform .2s,opacity .25s;font:inherit;color:inherit}
.org-node:hover:not(.dim):not(.org-node-sub){border-color:var(--gold);box-shadow:var(--shadow-sm);transform:translateY(-2px)}
.org-node-sub:hover{border-color:var(--gold);box-shadow:var(--shadow-sm)}
.org-node.sel{outline:2px solid var(--gold);outline-offset:2px;box-shadow:0 0 0 4px var(--gold-d)}
.org-node.match{border-color:var(--teal);box-shadow:0 0 0 1px color-mix(in srgb,var(--teal) 40%,transparent)}
.org-node.dim{opacity:.22;pointer-events:none;transform:scale(.95)}
.org-node-root{font-family:var(--disp);font-weight:700;font-size:14px;padding:13px 30px;background:linear-gradient(135deg,var(--gold),color-mix(in srgb,var(--gold) 62%,#1a3050));color:var(--bg);border:none;box-shadow:var(--shadow-sm);scroll-snap-align:center;z-index:1}
.org-node-root:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);color:var(--bg)}
.org-node-seg{padding:12px 20px;min-width:168px;border-top:3px solid var(--seg-col,var(--gold));text-align:center}
.org-node-seg .org-node-icon{font-size:20px;line-height:1;margin-bottom:5px}
.org-node-seg .org-node-lbl{font-weight:700;font-size:13px}
.org-node-seg .org-node-meta{font-family:var(--mono);font-size:9px;color:var(--t3);margin-top:5px}
.org-node-sub{border-left:3px solid var(--tier-col,var(--b1));text-align:left;position:relative;padding-right:28px}
.org-node-sub.glass-card.accent-card{border-top:3px solid var(--accent-color)}
.org-node-sub.glass-card.accent-card:hover .org-node-lbl{color:var(--accent-color)}
.org-node-expand-btn{
  position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid var(--b1);background:var(--s2);
  color:var(--t2);font-size:14px;line-height:1;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;
}
.org-node-expand-btn:hover{border-color:var(--gold);color:var(--gold)}
.org-node-bu.glass-card.accent-card{border-top:2px solid var(--teal)}
.org-node-sub .org-node-lbl{font-size:10px;font-weight:700;line-height:1.4;letter-spacing:.04em;text-transform:uppercase}
.org-node-sub .org-node-meta{font-family:var(--mono);font-size:9px;color:var(--t3);margin-top:5px}
.org-map-sub-wrap{display:flex;flex-direction:column;align-items:center;transition:opacity .35s ease;cursor:grab;touch-action:none}
.org-map-sub-wrap.dragging-node{cursor:grabbing;z-index:5}
.org-map-sub-wrap.dim{opacity:.22;pointer-events:none}
.org-map-sub-wrap.open{z-index:2;position:relative}
.org-node-sub{display:flex;align-items:stretch;padding:0;overflow:hidden;width:152px}
.org-node-hit{flex:1;padding:10px 10px 10px 12px;background:transparent;border:none;text-align:left;cursor:pointer;font:inherit;color:inherit}
.org-node-hit:hover{background:transparent}
.org-node-detail-btn{width:28px;flex-shrink:0;background:var(--s2);border:none;border-left:1px solid var(--b1);color:var(--t3);cursor:pointer;font-size:11px;line-height:1}
.org-node-detail-btn:hover{color:var(--gold);background:var(--s3)}
.org-map-expand{display:grid;grid-template-rows:0fr;opacity:0;pointer-events:none;transition:grid-template-rows .5s cubic-bezier(.25,.8,.25,1),opacity .42s ease}
.org-map-expand.is-open{grid-template-rows:1fr;opacity:1;pointer-events:auto}
.org-map-expand-inner{overflow:hidden;min-height:0}
.org-map-l3{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;max-width:min(640px,90vw);padding:6px 4px 10px}
.org-map-bu-wrap{display:flex;flex-direction:column;align-items:center;cursor:grab;touch-action:none}
.org-map-bu-wrap.dragging-node{cursor:grabbing;z-index:4}
.org-map-expand.is-open .org-map-bu-wrap{animation:orgBuIn .42s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--bu-i,0) * 32ms)}
.org-map-bu-wrap.open{z-index:1}
.org-map-zoom-ctrl{display:inline-flex;align-items:center;gap:2px;background:var(--bg);border:1px solid var(--b1);border-radius:var(--r-sm);padding:2px}
.org-map-zoom-ctrl button{width:30px;height:30px;background:transparent;border:none;color:var(--text);cursor:pointer;font-size:15px;line-height:1;border-radius:var(--r-sm)}
.org-map-zoom-ctrl button:hover{background:var(--s3);color:var(--gold)}
.org-map-zoom-lbl{font-family:var(--mono);font-size:10px;color:var(--t3);min-width:38px;text-align:center;padding:0 4px}
.org-map-print-title{display:none;font-family:var(--disp);font-size:16px;font-weight:700;text-align:center;margin-bottom:16px;color:#111}
@keyframes orgBuIn{from{opacity:0;transform:translateY(10px) scale(.88)}to{opacity:1;transform:translateY(0) scale(1)}}
.org-map-l4{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;max-width:200px;padding:2px 0 4px}
.org-node-bu{padding:6px 9px;min-width:72px;max-width:130px;font-size:9.5px;font-weight:600;line-height:1.35;text-align:center;background:var(--s2)}
.org-node-bu.has-ch{border-style:dashed}
.org-node-bu.expanded{background:var(--s3);border-color:var(--teal)}
.org-bu-ch{font-family:var(--mono);font-size:8px;color:var(--teal);margin-left:2px}
.org-node-co{padding:4px 7px;min-width:56px;max-width:100px;font-size:8.5px;font-weight:600;line-height:1.3;text-align:center;background:var(--bg);border:1px dashed var(--b2);color:var(--t2)}
.org-node-co:hover{border-color:var(--teal);color:var(--text)}
.org-node-sub.expanded{outline:2px solid var(--gold);outline-offset:1px;box-shadow:0 0 0 4px var(--gold-d);transition:box-shadow .4s ease,outline .4s ease}
.org-map-foot{font-family:var(--mono);font-size:10px;color:var(--t3);padding:8px 16px;border-top:1px solid var(--b1);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.org-map-empty{padding:40px 20px;text-align:center;font-family:var(--mono);font-size:11px;color:var(--t3)}
/* ── Subsidiaries portfolio directory (below map) ── */
.subs-catalog{margin-top:4px;padding-top:22px;border-top:1px solid var(--b1)}
.subs-catalog-title{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--t3);margin-bottom:18px}
.subs-catalog-sector{margin-bottom:26px}
.subs-catalog-sector:last-child{margin-bottom:0}
.subs-catalog-sector-hd{font-family:var(--disp);font-size:15px;font-weight:700;margin-bottom:6px;display:flex;align-items:center;gap:8px}
.subs-catalog-intro{font-size:12.5px;color:var(--t2);line-height:1.65;margin-bottom:10px;max-width:640px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.subs-catalog-rows{display:flex;flex-direction:column;gap:6px}
.subs-catalog-row{display:flex;align-items:center;gap:8px;background:var(--s1);border:1px solid var(--b1);border-left:3px solid var(--tier-col,var(--b1));border-radius:var(--r-sm);overflow:hidden;transition:background .12s,border-color .12s}
.subs-catalog-row.active{background:var(--s2);border-color:color-mix(in srgb,var(--gold) 40%,var(--b1))}
.subs-catalog-main{flex:1;padding:11px 14px;background:transparent;border:none;text-align:left;cursor:pointer;font:inherit;color:inherit}
.subs-catalog-main:hover{background:transparent}
.subs-catalog-name{display:block;font-weight:600;font-size:13px;margin-bottom:2px}
.subs-catalog-meta{font-family:var(--mono);font-size:10px;color:var(--t3)}
.inbox-clear{text-align:center;padding:28px 20px;color:var(--t3)}
.inbox-clear-icon{font-size:28px;margin-bottom:8px;opacity:.5}
.sidenav-badge{margin-left:auto;font-family:var(--mono);font-size:10px;font-weight:700;background:var(--brand);color:#fff;min-width:18px;height:18px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}
.sidenav-item.has-badge .sidenav-lbl{display:flex;align-items:center;width:100%}
.nav-icon{width:18px;height:18px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
/* Risk register KPI strip */
.rsk-kpi-strip{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch;margin-bottom:20px}
.rsk-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;flex:1;min-width:min(100%,360px)}
.rsk-kpi-grid--treat{grid-template-columns:repeat(4,minmax(0,1fr));min-width:min(100%,320px)}
.rsk-kpi-divider{width:1px;background:var(--b1);align-self:stretch;margin:4px 0}
@media(max-width:720px){.rsk-kpi-strip{flex-direction:column}.rsk-kpi-divider{width:100%;height:1px;margin:0}}
.rsk-kpi-card{
  padding:12px 14px;border-radius:var(--radius-sm);cursor:pointer;text-align:center;
  font:inherit;color:inherit;border:none;background:transparent;width:100%;
}
.rsk-kpi-card.glass-card.accent-card{border-top:3px solid var(--accent-color)}
.rsk-kpi-card.glass-card.accent-card:hover .rsk-kpi-val{color:var(--accent-color)}
.rsk-kpi-card.glass-card.accent-card.is-selected{
  border-color:color-mix(in srgb,var(--accent-color) 42%,var(--glass-border));
  box-shadow:var(--glass-shadow),0 0 0 1px color-mix(in srgb,var(--accent-color) 28%,transparent),inset 1.5px 1.5px 0 rgba(255,255,255,.18);
}
.rsk-kpi-val{font-family:var(--mono);font-size:24px;font-weight:800;line-height:1;transition:color .28s var(--glass-ease)}
.rsk-kpi-lbl{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);margin-top:5px}

/* Matrix cells — smooth lift on hover, no colour animation */
.matrix-cell{
  aspect-ratio:1;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-weight:700;font-size:15px;
  transition:transform .22s var(--glass-ease);will-change:transform;
}
.matrix-cell:disabled{cursor:default}
.matrix-cell:not(:disabled){cursor:pointer}
.matrix-cell:not(:disabled):hover{transform:scale(1.07);z-index:2;position:relative}
.matrix-cell.is-selected{z-index:1;position:relative}

/* Risk heatmap guide ── */
.risk-heatmap-panel{background:var(--s1);border:1px solid var(--b1);padding:18px 20px;margin-bottom:20px;border-radius:var(--radius)}
.risk-heatmap-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px;flex-wrap:wrap}
.risk-heatmap-hd-lbl{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3)}
.risk-heatmap-body{display:flex;gap:20px;align-items:stretch}
.risk-heatmap-grid-wrap{flex:0 0 auto;width:min(100%,620px)}
.risk-heatmap-guide{flex:1;min-width:240px;background:linear-gradient(145deg,var(--s2),color-mix(in srgb,var(--gold) 5%,var(--s1)));border:1px solid var(--b1);border-radius:var(--r-sm);padding:20px 22px;display:flex;flex-direction:column;justify-content:center;gap:14px}
.risk-heatmap-guide-title{font-family:var(--disp);font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.01em}
.risk-heatmap-guide-lead{font-size:12.5px;color:var(--t2);line-height:1.6;margin:0}
.risk-heatmap-guide-steps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.risk-heatmap-guide-steps li{font-size:12px;color:var(--t2);line-height:1.55;padding-left:28px;position:relative}
.risk-heatmap-guide-steps li::before{content:attr(data-step);position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;background:color-mix(in srgb,var(--gold) 14%,var(--s2));border:1px solid color-mix(in srgb,var(--gold) 35%,var(--b1));font-family:var(--mono);font-size:9px;font-weight:700;color:var(--gold);display:flex;align-items:center;justify-content:center}
.risk-heatmap-guide-steps strong{color:var(--text);font-weight:600}
.risk-heatmap-legend{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.risk-legend-chip{font-family:var(--mono);font-size:9px;font-weight:600;padding:4px 9px;border-radius:999px;background:color-mix(in srgb,var(--chip-col) 12%,var(--s1));border:1px solid color-mix(in srgb,var(--chip-col) 28%,var(--b1));color:var(--chip-col)}
@media(max-width:900px){.risk-heatmap-body{flex-direction:column}.risk-heatmap-grid-wrap{width:100%;max-width:620px}.risk-heatmap-guide{min-width:0}}
/* ── FILTER BAR ── */
.filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px;padding:12px 14px;background:var(--s1);border:1px solid var(--b1);border-radius:var(--radius)}
.filter-search-wrap{flex:1;min-width:200px;position:relative}
.filter-search-wrap svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:14px;height:14px;stroke:var(--t3);fill:none;stroke-width:2}
.filter-search-input{width:100%;background:var(--s2);border:1px solid var(--b1);color:var(--text);padding:8px 12px 8px 32px;font-size:13px;border-radius:var(--radius-sm);outline:none}
.filter-search-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-d)}
.filter-facets{display:flex;gap:6px;flex-wrap:wrap}
.tb-menu{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);color:var(--nav-text);cursor:pointer;flex-shrink:0}
.tb-org select{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);color:var(--nav-text);font-family:var(--mono);font-size:11px;padding:6px 10px;border-radius:var(--radius-sm);cursor:pointer;max-width:160px}
/* Pentest schedule pulse + DEFCON indicator */
@keyframes ptPulse{0%,100%{opacity:1;box-shadow:0 0 0 0 var(--pt-pulse,transparent)}50%{opacity:.55;box-shadow:0 0 0 4px transparent}}
.pt-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;animation:ptPulse 2s ease-in-out infinite}
.pt-dot.far{background:var(--low);--pt-pulse:color-mix(in srgb, var(--low) 45%, transparent);animation-duration:3s}
.pt-dot.soon{background:var(--med);--pt-pulse:color-mix(in srgb, var(--med) 45%, transparent);animation-duration:2s}
.pt-dot.imminent{background:var(--crit);--pt-pulse:color-mix(in srgb, var(--crit) 55%, transparent);animation-duration:1s}
.pt-dot.live{background:var(--crit);--pt-pulse:color-mix(in srgb, var(--crit) 65%, transparent);animation-duration:.8s}
.tb-defcon{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;padding:6px 12px;border:1px solid;cursor:pointer;background:rgba(255,255,255,.04);border-radius:var(--radius-sm)}
.tb-defcon .dc-dot{width:8px;height:8px;border-radius:50%}
.tb-defcon.dc-active{color:var(--crit);border-color:color-mix(in srgb, var(--crit) 45%, transparent)}
.tb-defcon.dc-active .dc-dot{background:var(--crit);animation:ptPulse 1s ease-in-out infinite;--pt-pulse:color-mix(in srgb, var(--crit) 60%, transparent)}
.tb-defcon.dc-soon{color:var(--med);border-color:color-mix(in srgb, var(--med) 40%, transparent)}
.tb-defcon.dc-soon .dc-dot{background:var(--med);animation:ptPulse 2s ease-in-out infinite;--pt-pulse:color-mix(in srgb, var(--med) 45%, transparent)}
.tb-defcon.dc-clear{color:var(--t3);border-color:var(--b1)}
.tb-defcon.dc-clear .dc-dot{background:var(--low)}
.cmdk-foot{padding:8px 14px;border-top:1px solid var(--b1);font-family:var(--mono);font-size:10px;color:var(--t3);display:flex;gap:14px}
.modal-box{background:var(--s1);border:1px solid var(--b2);border-radius:var(--radius);width:480px;max-width:100%;position:relative;box-shadow:var(--shadow-md)}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--b1)}
.modal-header h3{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--t2);font-weight:600}
.modal-close{background:transparent;border:none;color:var(--t2);font-size:20px;cursor:pointer;line-height:1;padding:0 4px}
.modal-close:hover{color:var(--text)}
.modal-body{padding:22px}
.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 22px;border-top:1px solid var(--b1)}

/* KEYBOARD HELP MODAL */
.kb-grid{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;align-items:center}
.kb-key{font-family:var(--mono);font-size:11px;border:1px solid var(--b2);padding:4px 8px;text-align:center;background:var(--s2);color:var(--gold)}

/* RESPONSIVE */

/* DOCUMENT VAULT */
.doc-list{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.doc-item{display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid var(--b1);background:var(--s1)}
.doc-item:hover .doc-del{opacity:1}
.doc-icon{font-family:var(--mono);font-size:10px;font-weight:600;padding:3px 6px;border:1px solid var(--b2);background:var(--s2);color:var(--t2);flex-shrink:0;min-width:48px;text-align:center}
.doc-name{flex:1;font-size:12.5px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-meta{font-family:var(--mono);font-size:10px;color:var(--t3);white-space:nowrap}
.doc-del{background:transparent;border:none;color:var(--t3);cursor:pointer;font-size:13px;opacity:0;transition:opacity .15s;padding:2px 6px;flex-shrink:0}
.doc-del:hover{color:var(--crit)}
.doc-tag{font-family:var(--mono);font-size:9px;padding:2px 6px;border:1px solid var(--b2);color:var(--t3);flex-shrink:0}
.upload-zone{border:1px dashed var(--b2);padding:24px;text-align:center;cursor:pointer;transition:all .15s;background:var(--bg)}
.upload-zone:hover,.upload-zone.dragover{border-color:var(--gold);background:var(--gold-d)}
.upload-zone p{font-family:var(--mono);font-size:11px;color:var(--t3);margin-top:6px}
/* ANSWER SOURCE BADGES */
.ans-source{font-family:var(--mono);font-size:9px;font-weight:600;padding:2px 6px;border:1px solid;letter-spacing:.04em;vertical-align:middle;margin-left:6px}
.ans-ai{color:var(--teal);border-color:rgba(34,211,238,.3);background:rgba(34,211,238,.07)}
.ans-upload{color:var(--gold);border-color:var(--gold-b);background:var(--gold-d)}
.ans-manual{color:var(--t3);border-color:var(--b2);background:transparent}
/* UPLOAD MAPPING REVIEW */
.map-review{border:1px solid var(--gold-b);background:var(--gold-d);padding:18px;margin-bottom:16px}
.map-review-title{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--gold);letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px}
.map-item{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--b1);font-size:12px}
.map-item:last-child{border-bottom:none}
.map-conf{font-family:var(--mono);font-size:10px;font-weight:600}
.map-err{border-color:rgba(248,113,113,.3);background:rgba(248,113,113,.07);padding:14px 18px;border:1px solid rgba(248,113,113,.3);border-left:3px solid var(--crit);margin-bottom:12px}
.map-err-title{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--crit);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.map-err ul{padding-left:16px;color:var(--t2);font-size:12px;line-height:1.9}
/* FINDING HISTORY */
.history-item{padding:10px 12px;border:1px solid var(--b1);background:var(--bg);margin-bottom:5px;font-size:12px}
.history-meta{font-family:var(--mono);font-size:10px;color:var(--t3);margin-bottom:4px}
.history-diff{color:var(--t2);line-height:1.6}

@media(max-width:720px){.ov-main{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(2,1fr)}.target-row{grid-template-columns:1fr auto auto}}

/* TECH STACK */
.stack-tbl{width:100%;border-collapse:collapse}
.stack-tbl th{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);padding:9px 12px;border-bottom:1px solid var(--b1);text-align:left;font-weight:500}
.stack-tbl td{padding:10px 12px;border-bottom:1px solid var(--b1);font-size:12.5px;vertical-align:middle}
.stack-tbl tr:last-child td{border-bottom:none}
.stack-tbl tr:hover td{background:var(--s2)}
.stack-tbl th.r,.stack-tbl td.r{text-align:right;font-family:var(--mono)}
.conflict-badge{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.06em;padding:4px 9px;border:1px solid;text-transform:uppercase;white-space:nowrap}
.ebos-tag{font-family:var(--mono);font-size:11px;color:var(--teal);border:1px solid rgba(54,214,192,.25);background:var(--teal-d);padding:3px 8px;white-space:nowrap;display:inline-block}
.tool-tbl{width:100%;border-collapse:collapse}
.tool-tbl th{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);padding:9px 12px;border-bottom:1px solid var(--b1);text-align:left;font-weight:500}
.tool-tbl td{padding:9px 12px;border-bottom:1px solid var(--b1);font-size:12.5px;vertical-align:middle}
.tool-tbl th.r,.tool-tbl td.r{text-align:right;font-family:var(--mono)}
.tool-tbl tr.total-row td{font-weight:600;border-top:2px solid var(--b2);border-bottom:none;padding-top:13px}
.mini-input{background:var(--bg);border:1px solid var(--b2);color:var(--text);padding:5px 8px;font-family:var(--mono);font-size:11px;text-align:right;outline:none;width:80px}
.mini-input:focus{border-color:var(--gold)}
/* OBSERVATIONS */
.obs-card{border:1px solid var(--b1);border-left:3px solid transparent;background:var(--s1);padding:14px 16px;margin-bottom:8px;position:relative}
.obs-card:hover .del-obs{opacity:1}
.obs-type-pill{font-family:var(--mono);font-size:10px;font-weight:600;padding:3px 8px;border:1px solid;letter-spacing:.05em;text-transform:uppercase}
.obs-form{border:1px solid var(--b2);background:var(--s2);padding:18px;margin-bottom:16px}
.del-obs{position:absolute;top:10px;right:12px;background:transparent;border:none;color:var(--t3);cursor:pointer;font-size:12px;opacity:0;transition:opacity .15s;padding:3px 6px}
.del-obs:hover{color:var(--crit)}

/* ── POLISH ── */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--b2);border:2px solid var(--bg);border-radius:5px}
::-webkit-scrollbar-thumb:hover{background:var(--b3)}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.target-row{transition:background .12s,border-color .12s,transform .12s}
.btn{transition:all .15s,transform .08s}
.btn:active:not(:disabled){transform:scale(.97)}
.panel,.kpi{transition:border-color .2s,background .15s}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* ── KPI GRID ── */
.kpi-grid{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;min-height:80px}
.kpi{padding:20px 18px 16px;border:1px solid var(--b1);border-left-width:3px;background:var(--s1);position:relative;overflow:hidden;transition:background .15s;flex:1;min-width:160px}
.kpi::after{content:'';position:absolute;top:0;right:0;width:60px;height:60px;background:radial-gradient(circle at 100% 0%,rgba(255,255,255,.03),transparent 70%)}
.kpi .n{font-family:var(--mono);font-size:40px;font-weight:600;line-height:1;letter-spacing:-.03em}
.kpi .l{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);margin-top:9px;font-family:var(--mono)}
.kpi[data-action]:hover{background:var(--s2);cursor:pointer}
/* ── INVISIBLE PAGE DROP OVERLAY ── */
#page-drop-overlay{position:fixed;inset:0;z-index:800;display:none;background:rgba(45,226,230,.05);border:3px dashed rgba(45,226,230,.5);pointer-events:none;transition:opacity .15s}
#page-drop-overlay.active{display:block}
#drop-label{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--mono);font-size:20px;font-weight:700;color:var(--teal);text-shadow:0 0 24px rgba(45,226,230,.7);pointer-events:none;letter-spacing:.1em;text-transform:uppercase;display:none;text-align:center;line-height:1.8}
.target-row .row-drag-grip{color:var(--b2);font-size:12px;cursor:grab;padding:0;line-height:1;opacity:0;transition:opacity .15s}
/* ── ACQ DATE PILL ── */
.acq-date-pill{font-family:var(--mono);font-size:10px;border:1px solid var(--b2);padding:3px 8px;color:var(--t2);background:var(--bg);white-space:nowrap}
.acq-date-pill.soon{border-color:rgba(255,193,94,.4);color:var(--med)}
.acq-date-pill.urgent{border-color:rgba(255,56,100,.4);color:var(--crit);animation:badgePulse 1.8s ease-in-out infinite}

/* ── SIDE NAV (auto-hide peek rail on desktop) ── */
.nav-shell{position:fixed;left:0;top:0;bottom:0;z-index:110;isolation:isolate}
@media(min-width:721px){
  .nav-shell{
    width:var(--sidebar-peek);overflow:hidden;
    transition:width var(--nav-dur) var(--nav-ease),box-shadow var(--nav-dur) var(--nav-ease);
    pointer-events:auto;will-change:width;
    background:var(--nav-bg);border-right:1px solid rgba(255,255,255,.06);
  }
  .nav-shell:hover,.nav-shell.is-pinned{width:var(--sidebar-w);overflow:visible;box-shadow:8px 0 36px rgba(0,0,0,.42)}
  body.theme-light .nav-shell:hover,body.theme-light .nav-shell.is-pinned{box-shadow:8px 0 28px rgba(15,23,42,.14)}
  /* Peek: items locked to left icon rail — shell clips labels */
  .nav-shell:not(:hover):not(.is-pinned) .sidenav-item{align-self:flex-start;width:var(--sidebar-peek);max-width:var(--sidebar-peek);overflow:hidden}
  .nav-shell:not(:hover):not(.is-pinned) .sidenav-brand{align-self:flex-start;width:var(--sidebar-peek);max-width:var(--sidebar-peek);overflow:hidden}
  .nav-shell:not(:hover):not(.is-pinned) .sidenav-header{overflow:hidden}
  .nav-shell:not(:hover):not(.is-pinned) .sidenav-section-lbl{
    opacity:0;color:transparent;pointer-events:none;overflow:hidden;
  }
  .nav-shell:not(:hover):not(.is-pinned) .sidenav-brand-text,
  .nav-shell:not(:hover):not(.is-pinned) .sidenav-lbl{
    opacity:0;pointer-events:none;
    transition:opacity .12s var(--nav-ease);
  }
  .nav-shell:hover .sidenav-brand-text,
  .nav-shell.is-pinned .sidenav-brand-text,
  .nav-shell:hover .sidenav-lbl,
  .nav-shell.is-pinned .sidenav-lbl{
    opacity:1;pointer-events:auto;
    transition:opacity .4s var(--nav-ease) .22s;
  }
  .nav-shell:hover .sidenav-section-lbl,
  .nav-shell.is-pinned .sidenav-section-lbl{
    opacity:1;color:rgba(255,255,255,.28);
    transition:opacity .35s var(--nav-ease) .16s,color .2s var(--nav-ease) .16s;
  }
  .nav-shell .sidenav{position:absolute;left:0;top:0;bottom:0;width:var(--sidebar-w);min-width:var(--sidebar-w);max-width:var(--sidebar-w);transform:none!important}
  #app{padding-left:calc(32px + var(--sidebar-peek))}
  .topbar-inner{padding-left:calc(20px + var(--sidebar-peek))}
  .grc-home{margin:-28px -32px 0 -32px;width:calc(100% + 64px)}
}
@media(max-width:720px){
  .nav-shell{width:0;overflow:visible;pointer-events:none}
  .nav-shell .sidenav{pointer-events:auto;position:fixed;transform:translateX(-100%);transition:transform var(--nav-dur) var(--nav-ease)}
  .nav-shell .sidenav.open{transform:translateX(0)}
}
.sidenav{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-w);background:var(--nav-bg);border-right:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;padding:0 0 16px;gap:2px;z-index:1;overflow-y:auto;overflow-x:hidden}
.sidenav-item,.sidenav-brand-text,a.sidenav-item,a.sidenav-brand-text{text-decoration:none;color:inherit}
.sidenav-header{height:var(--topbar-h);display:flex;align-items:center;padding:0;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0}
.sidenav-brand{display:flex;align-items:center;width:100%;cursor:pointer;transition:opacity .15s}
.sidenav-brand:hover{opacity:.88}
.sidenav-brand-mark{--dradis:#3ecf6e;--dradis-dim:rgba(62,207,110,.32);flex:0 0 var(--sidebar-peek);width:var(--sidebar-peek);height:var(--topbar-h);border-radius:0;background:transparent;border:none;box-shadow:none;display:flex;align-items:center;justify-content:center;overflow:visible;position:relative;transition:border-color .5s,box-shadow .5s;cursor:pointer;box-sizing:border-box}
.sidenav-brand-mark::before{content:'';position:absolute;width:38px;height:38px;border-radius:8px;background:radial-gradient(circle at 50% 45%,#0c1610 0%,#060a08 70%);border:1px solid rgba(62,207,110,.28);box-shadow:inset 0 0 14px rgba(62,207,110,.08),0 0 14px rgba(62,207,110,.12);pointer-events:none}
.sidenav-brand-mark .dradis-logo{position:relative;z-index:1}
.sidenav-brand-mark.online::before{border-color:rgba(62,207,110,.45);box-shadow:inset 0 0 16px rgba(62,207,110,.12),0 0 18px rgba(62,207,110,.18)}
.sidenav-brand-mark.offline{--dradis:var(--crit);--dradis-dim:rgba(248,113,113,.28)}
.sidenav-brand-mark.offline::before{border-color:rgba(248,113,113,.45);box-shadow:inset 0 0 16px rgba(248,113,113,.1),0 0 18px rgba(248,113,113,.15)}
.dradis-logo{width:34px;height:34px;display:block}
.dradis-ring{stroke:var(--dradis);stroke-width:1;fill:none}
.dradis-ring.dim{opacity:.38}
.dradis-sweep{transform-origin:18px 18px;animation:dradisSweep 4.2s linear infinite}
.dradis-sweep line{stroke:var(--dradis);stroke-width:1.35;stroke-linecap:round;opacity:.92}
.dradis-blip{fill:var(--brand);filter:drop-shadow(0 0 2px color-mix(in srgb,var(--brand) 70%,transparent));animation:dradisBlip 4.2s ease-in-out infinite}
.dradis-core{fill:var(--dradis);opacity:.75}
@keyframes dradisSweep{to{transform:rotate(360deg)}}
@keyframes dradisBlip{0%,68%,100%{opacity:0}72%,82%{opacity:1}}
@media (prefers-reduced-motion:reduce){.dradis-sweep,.dradis-blip{animation:none}.dradis-sweep{transform:rotate(-35deg)}.dradis-blip{opacity:.85}}
html.reduce-motion .dradis-sweep,html.reduce-motion .dradis-blip{animation:none!important}
.sidenav-brand-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.sidenav-brand-primary{font-family:var(--mono);font-size:15px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#eef8f0;line-height:1.1;text-shadow:0 0 18px rgba(62,207,110,.22)}
.sidenav-brand-secondary{font-family:var(--body);font-size:10px;font-weight:500;letter-spacing:.02em;color:rgba(255,255,255,.42);line-height:1.2}
.sidenav-brand-mark.offline+.sidenav-brand-text .sidenav-brand-primary{color:#ffe8e8;text-shadow:0 0 18px rgba(248,113,113,.25)}
.sidenav-section-lbl{font-family:var(--mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.28);padding:14px 18px 6px var(--sidebar-peek);pointer-events:none;flex-shrink:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;line-height:1.2;min-height:30px}
.sidenav-item,a.sidenav-item{display:flex;align-items:center;width:100%;min-height:40px;height:40px;margin:0;padding:0;cursor:pointer;border-radius:0;color:var(--nav-text);font-family:var(--body);font-size:12.5px;font-weight:500;letter-spacing:.01em;white-space:nowrap;overflow:hidden;background:transparent;border:none;text-align:left;transition:color .15s,background .15s;box-sizing:border-box}
.sidenav-lbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;padding:0 16px 0 0;line-height:1.2}
.sidenav-item:hover{color:#fff;background:rgba(255,255,255,.06)}
.sidenav-item.active{color:#fff;background:rgba(229,50,45,.14)}
.sidenav-item.active .sidenav-icon{box-shadow:inset 2px 0 0 var(--nav-active)}
.sidenav-icon{display:flex;align-items:center;justify-content:center;flex:0 0 var(--sidebar-peek);width:var(--sidebar-peek);height:40px;opacity:.9;box-sizing:border-box}
.sidenav-icon .nav-icon{display:block}
.sidenav-item:hover .sidenav-icon{box-shadow:inset 2px 0 0 rgba(255,255,255,.15)}
.scope-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--gold-d);border:1px solid var(--gold-b);padding:10px 14px;border-radius:var(--radius-sm);margin-bottom:18px;font-size:12.5px;color:var(--t2)}
.scope-banner strong{color:var(--text)}
.settings-shell{display:grid;grid-template-columns:232px 1fr;gap:24px;align-items:start}
@media(max-width:900px){.settings-shell{grid-template-columns:1fr;gap:16px}}
.settings-nav{position:sticky;top:16px;display:flex;flex-direction:column;gap:2px;padding:8px;overflow:hidden}
@media(max-width:900px){
  .settings-nav{position:static;flex-direction:row;overflow-x:auto;scrollbar-width:thin;padding:6px;gap:4px;-webkit-overflow-scrolling:touch}
  .settings-nav button{white-space:nowrap;flex:0 0 auto;width:auto;padding:8px 12px}
}
.settings-nav button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:9px 12px;border:none;background:transparent;border-radius:var(--radius-sm);font-size:13px;color:var(--t2);cursor:pointer;font-family:var(--body);transition:background .15s,color .15s}
.settings-nav button:hover{background:var(--s2);color:var(--text)}
.settings-nav button.active{background:var(--gold-d);color:var(--gold);font-weight:600}
.settings-nav-ico{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;opacity:.75;flex-shrink:0}
.settings-nav button.active .settings-nav-ico{opacity:1}
.settings-nav-ico .nav-icon{width:15px;height:15px}
.settings-main{min-width:0}
.settings-tab-kicker{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);margin-bottom:12px}
.settings-section{background:var(--s1);border:1px solid var(--b1);border-radius:var(--radius);padding:0;margin-bottom:16px;overflow:hidden}
.settings-section.is-danger{border-color:color-mix(in srgb,var(--crit) 35%,var(--b1));background:color-mix(in srgb,var(--crit) 4%,var(--s1))}
.settings-section-hd{padding:20px 22px 0}
.settings-section-body{padding:0 22px 20px}
.settings-section-kicker{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);margin-bottom:6px}
.settings-section h3{font-size:16px;font-weight:700;margin-bottom:4px;font-family:var(--disp)}
.settings-section .settings-desc{font-size:12.5px;color:var(--t3);margin-bottom:16px;line-height:1.55}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:600px){.settings-grid{grid-template-columns:1fr}}
.settings-field{margin-bottom:14px}
.settings-field-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.settings-field-top .settings-lbl{margin-bottom:0}
.settings-field-hint{font-size:11px;color:var(--t3);margin-top:6px;line-height:1.45}
.settings-lbl{display:block;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);margin-bottom:6px}
.settings-field input,.settings-field select,.settings-field textarea{width:100%;background:var(--s2);border:1px solid var(--b1);color:var(--text);padding:8px 12px;font-size:13px;border-radius:var(--radius-sm);outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}
.settings-field input:focus,.settings-field select:focus,.settings-field textarea:focus{border-color:color-mix(in srgb,var(--gold) 45%,var(--b1));box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 12%,transparent)}
.settings-field textarea{resize:vertical;min-height:72px;line-height:1.5}
.settings-kv{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--b1);font-size:13px}
.settings-kv:last-child{border-bottom:none}
.settings-kv-end{font-family:var(--mono);font-size:11px;color:var(--t3);text-align:right}
.settings-save-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid color-mix(in srgb,var(--b1) 80%,transparent)}
.settings-toggle-row{display:flex;align-items:flex-start;gap:12px;padding:12px 0;margin:4px 0 8px}
.settings-toggle-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.settings-toggle-hint{font-size:11.5px;color:var(--t3);line-height:1.45;font-weight:400}
.settings-stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:16px}
.settings-stat{padding:14px 16px;border-radius:var(--radius-sm);cursor:default}
.settings-stat-val{font-family:var(--disp);font-size:22px;font-weight:800;line-height:1.1;color:var(--text);transition:color .28s var(--glass-ease)}
.glass-card.accent-card.settings-stat:hover .settings-stat-val{color:var(--accent-color)}
.settings-stat-lbl{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);margin-top:6px}
.settings-callout{padding:12px 14px;border-radius:var(--radius-sm);font-size:12.5px;line-height:1.5;margin-bottom:14px;border:1px solid var(--b1)}
.settings-callout.is-info{background:color-mix(in srgb,var(--teal) 8%,var(--s1));border-color:color-mix(in srgb,var(--teal) 22%,var(--b1));color:var(--t2)}
.settings-callout.is-warn{background:color-mix(in srgb,var(--high) 10%,var(--s1));border-color:color-mix(in srgb,var(--high) 28%,var(--b1));color:var(--t2)}
.settings-callout.is-ok{background:color-mix(in srgb,var(--low) 10%,var(--s1));border-color:color-mix(in srgb,var(--low) 28%,var(--b1));color:var(--t2)}
.settings-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--b2);color:var(--t3);background:var(--s2)}
.settings-chip.is-on{border-color:color-mix(in srgb,var(--teal) 40%,var(--b1));color:var(--teal);background:color-mix(in srgb,var(--teal) 10%,var(--s2))}
.settings-profile-hero{display:flex;align-items:center;gap:18px;padding:20px 22px;margin-bottom:16px}
.settings-avatar{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:20px;font-weight:800;color:var(--gold);background:var(--gold-d);border:1px solid var(--gold-b);flex-shrink:0}
.settings-profile-name{font-family:var(--disp);font-size:20px;font-weight:700;color:var(--text);line-height:1.2}
.settings-profile-row{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}
.settings-profile-role-lbl{font-size:11px;color:var(--t3)}
.settings-profile-email{font-size:12.5px;color:var(--t2);margin-top:6px}
.settings-auth-chip{display:inline-flex;margin-top:8px;padding:3px 8px;border-radius:999px;font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--teal);border:1px solid color-mix(in srgb,var(--teal) 35%,var(--b1));background:color-mix(in srgb,var(--teal) 8%,transparent)}
.settings-role-badge{display:inline-flex;padding:3px 9px;border-radius:999px;font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--b2);background:var(--s2);color:var(--t2)}
.settings-role-badge.role-owner{border-color:color-mix(in srgb,var(--gold) 45%,var(--b1));color:var(--gold);background:var(--gold-d)}
.settings-role-badge.role-admin{border-color:color-mix(in srgb,var(--teal) 40%,var(--b1));color:var(--teal)}
.settings-role-badge.role-editor{border-color:var(--b2);color:var(--t2)}
.settings-role-badge.role-viewer{border-color:color-mix(in srgb,var(--med) 35%,var(--b1));color:var(--med)}
.settings-entity-list{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}
.settings-entity-card{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 14px;border-radius:var(--radius-sm);cursor:default;
}
.settings-entity-name{font-size:13px;font-weight:600;color:var(--text)}
.settings-entity-sub{font-size:11px;color:var(--t3);margin-top:2px}
.settings-integ-group{margin-top:8px;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--b1) 70%,transparent)}
.settings-integ-group:first-of-type{border-top:none;padding-top:0}
.settings-integ-group-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:4px}
.settings-integ-group-desc{font-size:11.5px;color:var(--t3);margin-bottom:12px;line-height:1.45}

/* Integration Hub — Settings → Integration Hub */
.integ-hub-filters{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 16px}
.integ-hub-filter{
  font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;
  padding:6px 12px;border:1px solid var(--b1);background:var(--s1);color:var(--t3);
  border-radius:999px;cursor:pointer;transition:all .15s;
}
.integ-hub-filter:hover{border-color:var(--b2);color:var(--text)}
.integ-hub-filter.active{border-color:color-mix(in srgb,var(--gold) 45%,var(--b1));color:var(--gold);background:var(--accent-d)}
.integ-hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:10px;margin-bottom:4px}
.integ-hub-tile{
  --accent-color:#5B8DEF;
  display:flex;flex-direction:column;align-items:flex-start;text-align:left;
  padding:14px 14px 12px;min-height:124px;cursor:pointer;border:1px solid var(--glass-border);
}
.integ-hub-tile.is-selected{
  border-color:color-mix(in srgb,var(--gold) 50%,var(--glass-border));
  box-shadow:0 0 0 1px color-mix(in srgb,var(--gold) 25%,transparent),var(--glass-shadow);
}
.integ-hub-tile.is-selected.accent-card:hover{
  border-color:color-mix(in srgb,var(--accent-color) 48%,color-mix(in srgb,var(--gold) 22%,var(--glass-border)));
  box-shadow:
    0 0 0 1px color-mix(in srgb,var(--accent-color) 20%,transparent),
    var(--glass-shadow),
    0 14px 36px color-mix(in srgb,var(--accent-color) 18%,transparent);
}
.integ-hub-tile.is-connected:not(.is-selected){border-color:color-mix(in srgb,var(--teal) 35%,var(--glass-border))}
.integ-hub-tile-mark{
  width:44px;height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  border-radius:11px;background:color-mix(in srgb,var(--s2) 85%,#fff 15%);border:1px solid var(--b1);margin-bottom:10px;
  transition:background .28s var(--glass-ease),border-color .28s var(--glass-ease),transform .28s var(--glass-ease),box-shadow .28s var(--glass-ease);
}
.glass-card.accent-card.integ-hub-tile:hover .integ-hub-tile-mark{
  background:color-mix(in srgb,var(--accent-color) 14%,#fff 86%);
  border-color:color-mix(in srgb,var(--accent-color) 32%,var(--b1));
  box-shadow:0 4px 14px color-mix(in srgb,var(--accent-color) 16%,transparent);
  transform:scale(1.05);
}
@media (prefers-reduced-motion:reduce){
  .glass-card.accent-card.integ-hub-tile:hover .integ-hub-tile-mark{transform:none}
}
.integ-hub-tile-mark svg{display:block}
.integ-hub-tile-body{min-width:0;width:100%}
.integ-hub-tile-name{
  font-size:12.5px;font-weight:700;line-height:1.25;margin-bottom:4px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.integ-hub-tile-tag{
  font-size:10px;color:var(--t3);line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.integ-hub-tile-foot{margin-top:auto;padding-top:10px;width:100%}
.integ-hub-placeholder{padding:22px 20px;text-align:center}
.integ-hub-placeholder-icon{
  width:56px;height:56px;margin:0 auto 12px;
  display:flex;align-items:center;justify-content:center;border-radius:14px;
  background:color-mix(in srgb,var(--s2) 85%,#fff 15%);border:1px solid var(--b1);
}
.integ-hub-placeholder-title{font-family:var(--disp);font-size:16px;font-weight:700;margin-bottom:8px}
.integ-hub-placeholder-desc{font-size:12.5px;color:var(--t2);line-height:1.55;max-width:42ch;margin:0 auto 18px}
.integ-hub-placeholder-fields{display:grid;gap:10px;max-width:360px;margin:0 auto;text-align:left}
.integ-hub-placeholder-field span{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);display:block;margin-bottom:5px}
.integ-hub-placeholder-bar{height:36px;border-radius:8px;background:var(--s2);border:1px dashed var(--b2);opacity:.7}
.settings-danger-btn{color:var(--crit)!important;border-color:color-mix(in srgb,var(--crit) 35%,var(--b1))!important}
.settings-danger-btn:hover:not(:disabled){background:color-mix(in srgb,var(--crit) 10%,var(--s2))!important;border-color:var(--crit)!important}

/* Evidence vault — glass cards */
.ev-vault-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(188px,1fr));gap:12px;margin-bottom:16px}
.ev-vault-card{
  display:flex;flex-direction:column;align-items:flex-start;text-align:left;
  padding:18px 18px 16px;min-height:136px;width:100%;
  font:inherit;color:inherit;border:none;background:transparent;
}
.ev-vault-card.glass-card.accent-card{border-top:3px solid var(--accent-color)}
.ev-vault-card.glass-card.accent-card:hover .ev-vault-name{color:var(--accent-color)}
.ev-vault-card.is-locked{cursor:default;opacity:.84;border-style:dashed}
.ev-vault-card-add{
  justify-content:center;align-items:center;text-align:center;
  border-style:dashed;cursor:pointer;
}
.ev-vault-card-add .ev-vault-meta{max-width:22ch}
.ev-vault-add-icon{
  width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-family:var(--disp);font-size:28px;font-weight:700;line-height:1;margin-bottom:10px;
  background:color-mix(in srgb,var(--accent-color) 12%,#fff 88%);
  border:1px solid color-mix(in srgb,var(--accent-color) 28%,var(--b1));
  color:var(--accent-color);
  transition:transform .28s var(--glass-ease),box-shadow .28s var(--glass-ease);
}
.ev-vault-card-add:hover .ev-vault-add-icon{
  transform:scale(1.06);
  box-shadow:0 4px 14px color-mix(in srgb,var(--accent-color) 18%,transparent);
}
.ev-vault-icon{font-size:24px;line-height:1;margin-bottom:10px}
.ev-vault-name{font-weight:700;font-size:14px;line-height:1.25;transition:color .28s var(--glass-ease)}
.ev-vault-lock{font-size:11px}
.ev-vault-meta{font-family:var(--mono);font-size:10px;color:var(--t3);margin-top:5px}
.ev-vault-status{font-family:var(--mono);font-size:10px;font-weight:700;margin-top:auto;padding-top:8px}
.ev-vault-status.is-ok{color:var(--low)}
.ev-vault-status.is-warn{color:var(--accent-color)}

.ev-folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-bottom:14px}
.ev-folder-card{
  display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;
  border-left:3px solid var(--accent-color);
}
.ev-folder-card.glass-card.accent-card:hover .ev-folder-name{color:var(--accent-color)}
.ev-folder-glyph{font-size:18px;flex-shrink:0}
.ev-folder-body{flex:1;min-width:0}
.ev-folder-name{font-weight:600;font-size:13px;transition:color .28s var(--glass-ease)}
.ev-folder-meta{font-family:var(--mono);font-size:10px;color:var(--t3);margin-top:2px}

.ev-vault-icon-grid{display:flex;gap:6px;flex-wrap:wrap}
.ev-vault-icon-pick{
  font-size:20px;padding:6px 10px;border-radius:10px;cursor:pointer;
  border:1px solid var(--glass-border);background:color-mix(in srgb,var(--s2) 85%,#fff 15%);
  transition:border-color .2s,background .2s,transform .2s var(--glass-ease),box-shadow .2s;
}
.ev-vault-icon-pick:hover{
  border-color:color-mix(in srgb,var(--gold) 35%,var(--b1));
  transform:translateY(-1px);
}
.ev-vault-icon-pick.is-selected{
  border:2px solid var(--gold);
  background:color-mix(in srgb,var(--gold) 12%,transparent);
  box-shadow:0 4px 12px color-mix(in srgb,var(--gold) 14%,transparent);
}

/* ── Team directory (Settings → Team) ── */
.team-table-wrap{overflow-x:auto;margin-top:4px;border:1px solid var(--b1);border-radius:var(--radius-sm)}
.team-table{width:100%;border-collapse:collapse;font-size:12.5px}
.team-table th,.team-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--b1);vertical-align:middle}
.team-table th{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);background:var(--s2)}
.team-table tr:last-child td{border-bottom:none}
.team-table tr.is-self td{background:color-mix(in srgb,var(--gold) 5%,transparent)}
.team-member-name{font-weight:600;color:var(--text)}
.team-member-email{font-size:11px;color:var(--t3);margin-top:2px}
.team-last-seen{font-family:var(--mono);font-size:11px;color:var(--t3);white-space:nowrap}
.team-actions{text-align:right;white-space:nowrap}
.team-table .glass-select-wrap{min-width:120px}
.ap-group{margin-bottom:10px;background:var(--s1);border:1px solid var(--b1)}
.ap-group>summary{display:flex;align-items:center;gap:10px;padding:11px 14px;cursor:pointer;list-style:none}
.ap-group>summary::-webkit-details-marker{display:none}
.ap-group>summary::before{content:'';width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:6px solid var(--t3);transform:rotate(90deg);transition:transform .15s;flex-shrink:0}
.ap-group:not([open])>summary::before{transform:rotate(0deg)}
.ap-stat-card{appearance:none;text-align:left;cursor:pointer;transition:background .15s,border-color .15s;font:inherit;color:inherit}
.ap-stat-card:hover{background:var(--s2)!important}
.ap-stat-card.active{box-shadow:inset 0 0 0 2px var(--gold)}
body{padding:0}
/* ── M&A MODULE HEADER ── */
.mna-module-head{margin-bottom:24px;border-bottom:1px solid var(--b1)}
.mna-module-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px}
.mna-module-title{font-family:var(--mono);font-size:18px;font-weight:700;color:var(--text);letter-spacing:-.01em;display:flex;align-items:center;gap:9px}
.mna-module-title span{font-family:var(--disp)}
.mna-tabs{display:flex;gap:4px;flex-wrap:wrap}
.mna-tab{appearance:none;background:none;border:none;border-bottom:2px solid transparent;padding:9px 16px;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--t3);cursor:pointer;transition:all .15s;margin-bottom:-1px;border-radius:var(--radius-sm) var(--radius-sm) 0 0}
.mna-tab:hover{color:var(--text);background:var(--s2)}
.mna-tab.active{color:var(--gold);border-bottom-color:var(--gold);background:var(--gold-d)}
/* ── GLOBAL VIEWS ── */
.gv-finding-row{display:flex;align-items:flex-start;gap:14px;padding:12px 16px;border:1px solid var(--b1);border-left:3px solid transparent;background:var(--s1);margin-bottom:6px}
.gv-finding-row:hover{background:var(--s2)}
.gv-target-label{font-family:var(--mono);font-size:10px;color:var(--t3);margin-top:3px}
/* ── DASHBOARD DRAG-DROP ── */
.dash-drop-zone{border:2px dashed var(--b2);padding:26px 24px;text-align:center;cursor:pointer;transition:all .15s;background:transparent;margin-bottom:18px}
.dash-drop-zone:hover,.dash-drop-zone.dragover{border-color:var(--gold);background:var(--gold-d)}
.dash-drop-zone p{font-family:var(--mono);font-size:11.5px;color:var(--t3);margin-top:6px}
@media print{.topbar,.tabs,.f-actions,.filter-bar,.btn{display:none}}

/* DATA-TYPE BADGE PULSE — draw the eye to PII/PHI/PCI tags */
.badge-warn{animation:badgePulse 2.2s ease-in-out infinite}
@keyframes badgePulse{0%,100%{box-shadow:0 0 0 0 rgba(255,193,94,0)}50%{box-shadow:0 0 10px 2px rgba(255,193,94,.45)}}

/* TOPBAR LOGO — clickable home */

/* TINES OSINT PANEL (New Assessment sidebar) */
.tines-osint-panel{background:var(--s1);border:1px solid var(--b1);border-radius:var(--radius);padding:18px;position:relative}
.tines-osint-panel::before{content:'';position:absolute;top:10px;left:10px;width:10px;height:10px;border-top:2px solid var(--teal);border-left:2px solid var(--teal);border-radius:2px 0 0 0;opacity:.7}
.tines-source{display:flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid var(--b1);background:var(--bg);margin-bottom:6px;border-radius:var(--radius-sm)}
.tines-source-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.tines-source-label{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--text);flex:1}
.tines-source-status{font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--t3);text-align:right}

/* OSINT RESULTS on Overview tab */
.osint-results-panel{background:var(--s1);border:1px solid color-mix(in srgb,var(--teal) 30%,transparent);border-left:3px solid var(--teal);border-radius:var(--radius-sm);padding:16px 18px;margin-bottom:12px}
.osint-results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:8px}
.osint-source-card{background:var(--bg);border:1px solid var(--b1);padding:12px 14px;border-radius:var(--radius-sm)}
.osint-source-name{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--teal);margin-bottom:8px;display:flex;align-items:center;gap:8px}
.osint-risk-row{display:flex;align-items:center;gap:10px;padding:5px 0;border-bottom:1px solid var(--b1);font-size:12.5px}
.osint-risk-row:last-child{border-bottom:none}
.osint-risk-label{color:var(--t2);flex:1}
.osint-risk-val{font-family:var(--mono);font-size:12px;font-weight:600}
.osint-loading{display:flex;align-items:center;gap:10px;padding:12px 0;font-family:var(--mono);font-size:12px;color:var(--teal)}

/* FINDING DEPLOY BUTTON */
.btn.deploy{background:var(--teal-d);border-color:color-mix(in srgb,var(--teal) 40%,transparent);color:var(--teal);font-weight:700}
.btn.deploy:hover{background:color-mix(in srgb,var(--teal) 18%,transparent)}

/* TINES ANALYST REPORT PANEL (Findings tab) */
.analyst-report-panel{border:1px solid var(--gold-b);border-left:3px solid var(--gold);background:var(--gold-d);border-radius:var(--radius-sm);padding:18px 20px;margin-bottom:16px}
.analyst-report-text{font-size:13px;color:var(--text);line-height:1.75;white-space:pre-wrap;margin-top:10px;border-top:1px solid var(--b1);padding-top:12px}

/* PRE-FLIGHT REVIEW PANEL (Report tab) */
.preflight-panel{border:1px solid color-mix(in srgb,var(--med) 30%,transparent);border-left:3px solid var(--med);background:color-mix(in srgb,var(--med) 8%,transparent);border-radius:var(--radius-sm);padding:18px 20px;margin-bottom:14px}
.preflight-item{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid color-mix(in srgb,var(--med) 18%,transparent)}
.preflight-item:last-child{border-bottom:none}
.preflight-type{font-family:var(--mono);font-size:10.5px;font-weight:600;flex-shrink:0;margin-top:2px;text-transform:uppercase;letter-spacing:.04em}
.preflight-body{font-size:12.5px;color:var(--t2);flex:1}

/* ── PRINT / PDF ──────────────────────────────────────────────────────────
   Strip the app chrome and force a light, ink-friendly layout so any view can
   be saved to PDF (Cmd/Ctrl-P) for boards, auditors and insurers. ───────── */
@media print{
  @page{margin:14mm}
  html,body{background:#fff!important;color:#111!important}
  body{padding:0!important;display:block!important}
  .topbar,.sidenav,.tb-whats-new,.whats-new-panel,.tb-search,.tb-theme,.mna-module-head,.modal-backdrop,.cmdk-backdrop,#page-drop-overlay,#drop-label,.no-print{display:none!important}
  #app{max-width:none!important;margin:0!important;margin-left:0!important;width:100%!important;padding:0!important;display:block!important}
  button,.btn{display:none!important}
  a[href]{color:#111!important;text-decoration:none}
  /* neutralise dark surface tokens for clean paper output */
  *{box-shadow:none!important;text-shadow:none!important}
  [style*="var(--s1)"],[style*="var(--s2)"],[style*="var(--s3)"]{background:#fff!important}
  table,tr,td,th,.kpi,.panel{break-inside:avoid}
  h1,h2,h3{break-after:avoid}
  .print-only{display:block!important}
  .no-print-ap{display:none!important}
  .ap-group,.ap-group[open]{break-inside:avoid}
  .ap-group>summary::before{display:none!important}
  .ap-group>div{display:block!important}
  body.org-map-printing .subs-catalog,body.org-map-printing .org-map-toolbar,body.org-map-printing .org-map-foot,body.org-map-printing .grc-page-hd,body.org-map-printing .grc-page-hd~div:first-of-type{display:none!important}
  body.org-map-printing .org-map-print-title{display:block!important}
  body.org-map-printing .org-map-viewport{max-height:none!important;overflow:visible!important;cursor:default!important}
  body.org-map-printing .org-map{margin:0;border:1px solid #ccc;break-inside:avoid}
  body.org-map-printing .org-map-pan{transform:none!important}
  body.org-map-printing .org-map-scaler{transform:scale(1)!important}
}
.print-only{display:none}

/* ── RESPONSIVE ───────────────────────────────────────────────────────────
   Inline grid layouts squish on narrow screens; collapse them to a single
   column and let wide tables scroll horizontally. ─────────────────────── */
@media (max-width:760px){
  [style*="grid-template-columns"]{grid-template-columns:1fr!important}
  .cal-grid{grid-template-columns:repeat(7,1fr)!important}
  #app{padding-left:16px!important;padding-right:16px!important}
  .topbar-inner{padding:0 14px}
  .tb-backup{right:12px}
}

/* ── Template: backup modal (templates/pages/backup-modal.html) ── */
.backup-modal-intro{font-size:12.5px;color:var(--t2);line-height:1.6;margin-bottom:14px}
.backup-modal-stats{background:var(--s2);border:1px solid var(--b1);padding:12px 14px;margin-bottom:16px}
.backup-modal-stats-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.backup-modal-lbl{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--t3)}
.backup-modal-val{font-family:var(--mono);font-size:11px}
.backup-modal-counts{font-family:var(--mono);font-size:10px;color:var(--t3)}
.backup-modal-actions{display:flex;gap:10px}
/* ── Template: rates modal ── */
.rates-modal-intro{font-size:11.5px;color:var(--t3);font-family:var(--mono);margin-bottom:14px}
.rates-modal-table-wrap{overflow-x:auto;margin-bottom:20px}
.rates-modal-table{width:100%;border-collapse:collapse;font-size:12.5px}
.rates-modal-table th{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);padding:9px 10px;border-bottom:1px solid var(--b1);font-weight:500}
.rates-modal-table th.r,.rates-modal-table td.r{text-align:right}
.rates-modal-table th.c{text-align:center}
.rates-modal-note{background:var(--s2);border:1px solid var(--b1);border-left:3px solid var(--teal);padding:12px 16px;margin-top:4px}
.rates-modal-note-hd{font-family:var(--mono);font-size:10px;color:var(--teal);letter-spacing:.06em;text-transform:uppercase;margin-bottom:5px}
.rates-modal-note p{font-size:11.5px;color:var(--t3);line-height:1.6;margin:0}
/* ── Template: edit target modal ── */
.edit-target-dt{cursor:pointer;display:flex;align-items:center;gap:7px;border:1px solid var(--b1);background:var(--s2);padding:7px 12px;font-size:12px}
.edit-target-dt input{width:auto}
.edit-target-hint{font-size:11px;color:var(--t3);font-family:var(--mono);margin-top:4px}
.history-empty{color:var(--t3);font-family:var(--mono);font-size:12px;padding:8px 0}

/* ═══════════════════════════════════════════════════════════════
   LIQUID GLASS — control kit + chrome (frosted violet, neon edge)
   Apply to controls/chrome only — not tables or dense text blocks.
   ═══════════════════════════════════════════════════════════════ */

/* Base frosted surface */
.glass{
  position:relative;
  background:var(--glass-bg-solid);
  border:1px solid var(--glass-border);
  box-shadow:var(--glass-shadow);
  color:var(--text);
  isolation:isolate;
}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .glass:not(.glass-solid){
    background:var(--glass-bg);
    -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));
    backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));
  }
}
.glass::before{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:var(--glass-highlight);opacity:.9;
}
.glass>*{position:relative;z-index:1}
.glass-focus:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* Motion + accessibility fallbacks */
@media(prefers-reduced-motion:reduce){
  .glass-toggle-thumb,.glass-seg-pill,.glass-dd-menu,.glass-toast,.modal-box,.cmdk-box{transition:none!important}
  .glass-dd-menu{transform:none!important;opacity:1!important}
}
@media(prefers-reduced-transparency:reduce){
  .glass,.glass:not(.glass-solid),.modal-backdrop,.cmdk-backdrop,.topbar.glass-topbar{
    -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
    background:var(--glass-bg-solid)!important;
  }
}

/* ── Toggle / switch ── */
.glass-toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
.glass-toggle input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.glass-toggle-track{
  width:44px;height:26px;border-radius:999px;padding:3px;flex-shrink:0;
  background:color-mix(in srgb,var(--s3) 70%,transparent);
  border:1px solid var(--glass-border);
  box-shadow:inset 0 1px 3px rgba(0,0,0,.22);
  transition:background var(--glass-dur) var(--glass-ease),border-color var(--glass-dur) var(--glass-ease),box-shadow var(--glass-dur) var(--glass-ease);
}
.glass-toggle-thumb{
  display:block;width:20px;height:20px;border-radius:50%;
  background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(220,225,235,.88));
  border:1px solid rgba(255,255,255,.55);
  box-shadow:0 2px 8px rgba(0,0,0,.28);
  transform:translateX(0);
  transition:transform var(--glass-dur) var(--glass-ease);
}
.glass-toggle input:checked+.glass-toggle-track{
  background:color-mix(in srgb,var(--gold) 42%,var(--s3));
  border-color:color-mix(in srgb,var(--gold) 55%,var(--glass-border));
  box-shadow:var(--glass-accent-glow),inset 0 1px 2px rgba(0,0,0,.15);
}
.glass-toggle input:checked+.glass-toggle-track .glass-toggle-thumb{transform:translateX(18px)}
.glass-toggle input:focus-visible+.glass-toggle-track{outline:2px solid var(--gold);outline-offset:2px}
.glass-toggle:active .glass-toggle-thumb{transform:scale(.94) translateX(var(--tx,0))}
.glass-toggle input:checked:active+.glass-toggle-track .glass-toggle-thumb{--tx:18px}
.glass-toggle-label{font-size:12.5px;font-weight:500;color:var(--t2)}
.glass-toggle input:disabled~.glass-toggle-track,.glass-toggle input:disabled~.glass-toggle-label{opacity:.45;cursor:not-allowed}

/* ── Segmented control ── */
.glass-seg{
  display:inline-grid;grid-template-columns:repeat(var(--seg-count,2),minmax(0,1fr));
  position:relative;padding:4px;border-radius:calc(var(--radius-sm) + 4px);gap:0;min-width:0;
}
.glass-seg-pill{
  position:absolute;top:4px;left:4px;width:calc((100% - 8px) / var(--seg-count,2));height:calc(100% - 8px);
  border-radius:var(--radius-sm);
  background:color-mix(in srgb,var(--gold) 22%,rgba(255,255,255,.08));
  border:1px solid color-mix(in srgb,var(--gold) 38%,var(--glass-border));
  box-shadow:var(--glass-accent-glow),inset 0 1px 0 rgba(255,255,255,.18);
  transform:translateX(calc(var(--seg-i,0) * 100%));
  transition:transform var(--glass-dur) var(--glass-ease);
  pointer-events:none;z-index:0;
}
.glass-seg-opt{position:relative;z-index:1;margin:0}
.glass-seg-opt input{position:absolute;opacity:0;width:1px;height:1px}
.glass-seg-opt span{
  display:flex;align-items:center;justify-content:center;padding:8px 14px;
  font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.04em;
  color:var(--t2);cursor:pointer;border-radius:var(--radius-sm);
  transition:color var(--glass-dur) var(--glass-ease);
  white-space:nowrap;
}
.glass-seg-opt input:checked+span{color:var(--text)}
.glass-seg-opt input:focus-visible+span{outline:2px solid var(--gold);outline-offset:1px}
.glass-seg-opt:active span{transform:scale(.97)}
.glass-seg-sm .glass-seg-opt span{padding:6px 10px;font-size:10px}

/* ── Checkbox & radio ── */
.glass-check,.glass-radio{display:inline-flex;align-items:flex-start;gap:9px;cursor:pointer;user-select:none}
.glass-check input,.glass-radio input{position:absolute;opacity:0;width:1px;height:1px}
.glass-check-box,.glass-radio-dot{
  width:18px;height:18px;flex-shrink:0;margin-top:1px;
  border:1px solid var(--glass-border);border-radius:5px;
  background:color-mix(in srgb,var(--s2) 80%,transparent);
  box-shadow:inset 0 1px 2px rgba(0,0,0,.18);
  display:flex;align-items:center;justify-content:center;
  transition:background var(--glass-dur) var(--glass-ease),border-color var(--glass-dur) var(--glass-ease),transform 120ms var(--glass-ease);
}
.glass-radio-dot{border-radius:50%}
.glass-check-box svg,.glass-radio-dot svg{width:11px;height:11px;stroke:var(--bg);stroke-width:3;fill:none;opacity:0;transform:scale(.6);transition:opacity var(--glass-dur) var(--glass-ease),transform var(--glass-dur) var(--glass-ease)}
.glass-check input:checked+.glass-check-box,.glass-radio input:checked+.glass-radio-dot{
  background:var(--gold);border-color:color-mix(in srgb,var(--gold) 70%,#fff);
  box-shadow:var(--glass-accent-glow);
}
.glass-check input:checked+.glass-check-box svg,.glass-radio input:checked+.glass-radio-dot svg{opacity:1;transform:scale(1)}
.glass-check input:focus-visible+.glass-check-box,.glass-radio input:focus-visible+.glass-radio-dot{outline:2px solid var(--gold);outline-offset:2px}
.glass-check:active .glass-check-box,.glass-radio:active .glass-radio-dot{transform:scale(.92)}
.glass-check-lbl,.glass-radio-lbl{font-size:12.5px;color:var(--t2);line-height:1.45}

/* ── Custom dropdown ── */
.glass-dd{position:relative;display:inline-block;min-width:160px}
.glass-dd-trigger{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:8px 12px;border-radius:var(--radius-sm);font-size:12.5px;font-weight:500;
  text-align:left;cursor:pointer;
  transition:transform 120ms var(--glass-ease),border-color var(--glass-dur) var(--glass-ease);
}
.glass-dd-trigger:active{transform:scale(.985)}
.glass-dd-chev{font-size:10px;color:var(--t3);transition:transform var(--glass-dur) var(--glass-ease)}
.glass-dd.open .glass-dd-chev{transform:rotate(180deg)}
.glass-dd-menu{
  position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:200;list-style:none;margin:0;padding:6px;
  border-radius:var(--radius-sm);max-height:240px;overflow-y:auto;
  opacity:0;transform:translateY(-6px) scale(.98);pointer-events:none;
  transition:opacity var(--glass-dur) var(--glass-ease),transform var(--glass-dur) var(--glass-ease);
}
.glass-dd.open .glass-dd-menu{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.glass-dd-menu [role=option]{
  display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:calc(var(--radius-sm) - 2px);
  font-size:12.5px;color:var(--text);cursor:pointer;
  transition:background 120ms var(--glass-ease);
}
.glass-dd-menu [role=option]:hover,[role=option].glass-dd-active{background:color-mix(in srgb,var(--gold) 14%,transparent)}
.glass-dd-menu [role=option][aria-selected=true]{font-weight:600}
.glass-dd-check{width:14px;font-family:var(--mono);font-size:10px;color:var(--gold)}
.glass-native-fallback{
  width:100%;background:var(--glass-bg-solid);border:1px solid var(--glass-border);
  color:var(--text);padding:8px 12px;font-size:12.5px;border-radius:var(--radius-sm);outline:none;
}
.glass-native-fallback:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-d)}
.glass-lbl{display:block;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);margin-bottom:5px}
.glass-field{margin:0}

/* ── Glass chrome: topbar, modals, cmdk, toast, scope banner ── */
.topbar.glass-topbar{
  background:var(--nav-bg);
  border-bottom-color:rgba(255,255,255,.06);
}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .topbar.glass-topbar{
    background:color-mix(in srgb,var(--nav-bg) 96%,transparent);
    -webkit-backdrop-filter:blur(12px) saturate(1.2);
    backdrop-filter:blur(12px) saturate(1.2);
  }
}
body.theme-light .topbar.glass-topbar{
  background:var(--s1);
  border-bottom-color:var(--b1);
  color:var(--text);
}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  body.theme-light .topbar.glass-topbar{
    background:color-mix(in srgb,var(--glass-bg) 92%,transparent);
    -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));
    backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));
  }
}
body.theme-light .tb-org select,body.theme-light .tb-whats-new,body.theme-light .tb-theme,body.theme-light .tb-search,body.theme-light .tb-back,body.theme-light .tb-menu{
  background:var(--s2);border-color:var(--b1);color:var(--t2);
}
body.theme-light .tb-org select:hover,body.theme-light .tb-whats-new:hover,body.theme-light .tb-theme:hover,body.theme-light .tb-search:hover,body.theme-light .tb-back:hover,body.theme-light .tb-menu:hover{
  border-color:var(--b2);color:var(--text);background:var(--s3);
}
body.theme-light .tb-defcon.dc-clear{color:var(--t2);border-color:var(--b2);background:var(--s2)}
body.theme-light .tb-search .tb-kbd{border-color:var(--b2)}
.modal-backdrop{
  background:color-mix(in srgb,var(--bg) 55%,transparent);
  -webkit-backdrop-filter:blur(10px) saturate(1.2);
  backdrop-filter:blur(10px) saturate(1.2);
}
.modal-box,.cmdk-box{
  background:var(--glass-bg-solid);border-color:var(--glass-border);box-shadow:var(--glass-shadow);
}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .modal-box:not(.glass-solid),.cmdk-box:not(.glass-solid){
    background:var(--glass-bg);
    -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));
    backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));
  }
}
.modal-box::before,.cmdk-box::before{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:var(--glass-highlight);opacity:.85;z-index:0;
}
.modal-box>*,.cmdk-box>*{position:relative;z-index:1}
.modal-box{overflow:hidden}
.cmdk-backdrop{
  background:color-mix(in srgb,var(--bg) 50%,transparent);
  -webkit-backdrop-filter:blur(12px) saturate(1.25);
  backdrop-filter:blur(12px) saturate(1.25);
}
.scope-banner.glass-scope{
  background:color-mix(in srgb,var(--gold-d) 85%,transparent);
  border-color:color-mix(in srgb,var(--gold) 35%,var(--glass-border));
}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .scope-banner.glass-scope{
    -webkit-backdrop-filter:blur(10px) saturate(1.2);
    backdrop-filter:blur(10px) saturate(1.2);
  }
}
.glass-toast{
  position:fixed;top:20px;right:24px;z-index:999;max-width:340px;
  padding:11px 16px;font-family:var(--mono);font-size:12px;border-radius:var(--radius-sm);
  animation:glassToastIn var(--glass-dur) var(--glass-ease);
  display:flex;align-items:center;gap:12px;
}
.glass-toast-msg{flex:1}
.glass-toast-undo{cursor:pointer;border:1px solid currentColor;background:transparent;color:inherit;font:inherit;font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:3px;flex-shrink:0}
.glass-toast-undo:hover{background:color-mix(in srgb,currentColor 12%,transparent)}

/* ──────────────────────────────────────────────────────────────
   Phase 5: "Liquid Glass" reusable accent system (iOS 26 style)
   Thin accent layer only. Material = frost + depth + rim light.
   Tokens: --glass-bg/-solid, --glass-blur, --glass-saturate,
           --glass-highlight, --glass-shadow (light/dark adaptive).
   ────────────────────────────────────────────────────────────── */
:root{--glass-radius:16px;--glass-ease:cubic-bezier(.4,.14,.3,1);--glass-dur:.26s}

/* Reporting surfaces: Dashboard stat cards, M&A engagement cards */
.glass-card{
  position:relative;
  background:var(--glass-bg-solid);
  border:1px solid var(--glass-border);
  border-radius:var(--glass-radius);
  /* layered depth: soft outer shadow + specular rim light on top/left edges */
  box-shadow:var(--glass-shadow),inset 1.5px 1.5px 0 rgba(255,255,255,.18),inset -1px -1px 0 rgba(0,0,0,.05);
  overflow:hidden;
  transition:transform var(--glass-dur) var(--glass-ease),box-shadow var(--glass-dur) var(--glass-ease),border-color .2s;
}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .glass-card{
    background:var(--glass-bg);
    -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));
    backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));
  }
}
/* inner top highlight sheen */
.glass-card::before{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:var(--glass-highlight);opacity:.6;z-index:0;
}
.glass-card>*{position:relative;z-index:1}
.glass-card:hover{transform:translateY(-2px);box-shadow:var(--glass-shadow),0 10px 28px rgba(0,0,0,.22),inset 1.5px 1.5px 0 rgba(255,255,255,.22);border-color:color-mix(in srgb,var(--gold) 30%,var(--glass-border))}
.glass-card:active{transform:translateY(0) scale(.995)}

/* Accent hover wash — set --accent-color on the element (stats, KPIs, integration tiles) */
.glass-card.accent-card{--accent-color:var(--gold)}
.glass-card.accent-card::after{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;
  opacity:0;
  background:
    radial-gradient(130% 100% at 0% 0%,color-mix(in srgb,var(--accent-color) 24%,transparent),transparent 62%),
    linear-gradient(155deg,color-mix(in srgb,var(--accent-color) 10%,transparent) 0%,transparent 48%);
  transition:opacity .32s var(--glass-ease);
}
.glass-card.accent-card:hover::after{opacity:1}
.glass-card.accent-card:hover{
  transform:translateY(-3px);
  border-color:color-mix(in srgb,var(--accent-color) 42%,var(--glass-border));
  box-shadow:
    var(--glass-shadow),
    0 14px 36px color-mix(in srgb,var(--accent-color) 18%,transparent),
    inset 1.5px 1.5px 0 rgba(255,255,255,.22);
}
@media (prefers-reduced-motion:reduce){
  .glass-card.accent-card:hover{transform:none}
}

/* Subtle accent on settings key-value rows */
.settings-kv.accent-row{
  border-radius:8px;padding:11px 12px;margin:0 -6px;
  border-bottom-color:transparent;
  transition:background .28s var(--glass-ease),box-shadow .28s var(--glass-ease);
}
.settings-kv.accent-row + .settings-kv.accent-row{margin-top:2px}
.settings-kv.accent-row:hover{
  background:color-mix(in srgb,var(--accent-color) 8%,var(--s2));
  box-shadow:inset 3px 0 0 color-mix(in srgb,var(--accent-color) 50%,transparent);
}

/* Choosers: subsidiary / application / status / M&A pickers.
   Approach: style the CLOSED control + accept the OS-native option panel.
   (Keeps form semantics, value binding, onChange, keyboard + SR support intact.) */
.glass-select,#app select,.tb-org select{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b94a7' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 11px center;
  padding-right:30px;border-radius:10px;
  transition:border-color .18s var(--glass-ease),box-shadow .18s var(--glass-ease),background-color .18s;
}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .glass-select,#app select{
    /* frost over the SURFACE colour (not glass-white) so the control stays visible on solid modals */
    background-color:color-mix(in srgb,var(--s2) 82%,transparent);
    -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));
    backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));
    border-color:var(--b2);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.07);
  }
}
.glass-select:hover,#app select:hover,.tb-org select:hover{border-color:color-mix(in srgb,var(--gold) 40%,var(--b2))}
.glass-select:focus-visible,#app select:focus-visible,.tb-org select:focus-visible{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-d);outline:none}
.glass-select option,#app select option,.tb-org select option{background:var(--s1);color:var(--text)}

/* Accessible frosted listbox (GlassSelect) — trigger + popup panel both glassed */
.glass-combo{position:relative;display:block;width:100%}
.glass-combo.sm{display:inline-block;width:auto}
.glass-combo-btn{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;
  font:inherit;font-size:13px;color:var(--text);cursor:pointer;text-align:left;
  padding:9px 12px;border-radius:10px;border:1px solid var(--b2);
  background-color:color-mix(in srgb,var(--s2) 82%,transparent);
  transition:border-color .18s var(--glass-ease),box-shadow .18s var(--glass-ease),background-color .18s;
}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .glass-combo-btn{-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}
}
.glass-combo.sm .glass-combo-btn{padding:5px 10px;font-size:11px;font-family:var(--mono)}
.glass-combo-btn:hover{border-color:color-mix(in srgb,var(--gold) 40%,var(--b2))}
.glass-combo-btn:focus-visible{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-d)}
.glass-combo-btn[aria-expanded="true"]{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-d)}
.glass-combo-btn:disabled{opacity:.5;cursor:not-allowed}
.glass-combo-val{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.glass-combo-val.placeholder{color:var(--t3)}
.glass-combo-chev{flex-shrink:0;color:var(--t3);transition:transform .2s var(--glass-ease)}
.glass-combo-btn[aria-expanded="true"] .glass-combo-chev{transform:rotate(180deg)}
.glass-listbox{
  position:absolute;z-index:30;top:calc(100% + 6px);left:0;min-width:100%;max-height:280px;overflow-y:auto;
  margin:0;padding:5px;list-style:none;border-radius:14px;
  background:var(--glass-bg-solid);border:1px solid var(--glass-border);
  box-shadow:var(--glass-shadow),inset 1.5px 1.5px 0 rgba(255,255,255,.18);
  animation:glassListIn .16s var(--glass-ease);
}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .glass-listbox{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate))}
}
@keyframes glassListIn{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
.glass-option{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:8px 11px;border-radius:9px;font-size:13px;color:var(--text);cursor:pointer;
  transition:background-color .12s,color .12s;
}
.glass-combo.sm .glass-option{font-family:var(--mono);font-size:12px}
.glass-option.active{background:color-mix(in srgb,var(--gold) 16%,transparent)}
.glass-option.selected{color:var(--gold)}
.glass-option.disabled{opacity:.4;cursor:not-allowed}
.glass-option-lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.glass-option-check{flex-shrink:0;color:var(--gold);font-size:12px}
/* flush = compact transparent control for table rows */
.glass-combo.flush{display:inline-block;width:auto}
.glass-combo.flush .glass-combo-btn{background-color:transparent;border-color:var(--b1);padding:3px 8px;border-radius:6px;font-family:var(--mono);font-size:11px;gap:6px}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .glass-combo.flush .glass-combo-btn{-webkit-backdrop-filter:none;backdrop-filter:none}
}
.glass-combo.flush .glass-combo-btn:hover{background-color:color-mix(in srgb,var(--s2) 55%,transparent)}
@media (prefers-reduced-motion:reduce){.glass-listbox{animation:none}.glass-combo-chev{transition:none}}
@keyframes glassToastIn{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}
.glass-filter-bar{
  padding:12px 14px;border-radius:var(--glass-radius);margin-bottom:16px;
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;
}
.glass-filter-bar .filter-search-wrap{flex:1;min-width:180px}
.glass-filter-bar .filter-search-input{
  background:color-mix(in srgb,var(--s2) 55%,transparent);
  border-color:var(--glass-border);
}
.glass-filter-divider{width:1px;height:28px;background:var(--b1);flex-shrink:0}
.glass-filter-chip-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.glass-filter-label{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);margin-right:2px;flex-shrink:0}

/* Vendor folders */
.vendor-folder-chip{
  font-family:var(--mono);font-size:10px;padding:6px 11px;border-radius:999px;
  border:1px solid var(--b1);background:color-mix(in srgb,var(--s2) 70%,transparent);
  color:var(--t2);cursor:pointer;transition:all .2s var(--glass-ease);
  display:inline-flex;align-items:center;gap:5px;
}
.vendor-folder-chip:hover{border-color:color-mix(in srgb,var(--gold) 35%,var(--b1));color:var(--text)}
.vendor-folder-chip.active{border-color:var(--gold);color:var(--gold);background:var(--gold-d)}

/* Controls heatmap — compact glass */
.ctrl-heatmap-wrap{margin-bottom:16px}
.ctrl-heatmap-wrap.glass-card{padding:14px 16px}
.ctrl-heatmap-wrap.glass-card:hover{transform:none;box-shadow:var(--glass-shadow),inset 1.5px 1.5px 0 rgba(255,255,255,.18),inset -1px -1px 0 rgba(0,0,0,.05);border-color:var(--glass-border)}
.ctrl-heatmap-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.ctrl-heatmap-title{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3)}
.ctrl-heatmap-legend{display:flex;gap:10px;font-family:var(--mono);font-size:9px;color:var(--t3);flex-wrap:wrap}
.ctrl-heatmap-legend span{display:inline-flex;align-items:center;gap:3px}
.ctrl-heatmap-legend i{width:8px;height:8px;display:inline-block;border-radius:2px}
.ctrl-heatmap-scroll{overflow-x:auto;margin:0 -4px;padding:0 4px}
.ctrl-heatmap-grid{display:grid;gap:3px;min-width:min(100%,520px);max-width:720px}
.ctrl-heatmap-scope{
  font-family:var(--mono);font-size:9px;color:var(--t3);text-align:center;padding:0 2px 4px;
  background:none;border:none;cursor:pointer;overflow:hidden;text-overflow:ellipsis;
}
.ctrl-heatmap-scope.is-active{color:var(--gold)}
.ctrl-heatmap-domain{
  font-family:var(--mono);font-size:9.5px;display:flex;align-items:center;
  background:none;border:none;cursor:pointer;text-align:left;padding-right:6px;white-space:nowrap;
}
.ctrl-heatmap-cell{
  min-height:28px;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:11px;font-weight:700;border-radius:4px;cursor:pointer;
  border:1px solid transparent;transition:transform .22s var(--glass-ease);will-change:transform;
}
.ctrl-heatmap-cell:hover{transform:scale(1.06);z-index:1;position:relative}

/* Questionnaire vendor outreach */
.qn-outreach-hero{
  padding:16px 18px;margin-bottom:16px;display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap;
}
.qn-outreach-hero-copy{flex:1;min-width:200px}
.qn-outreach-hero-title{font-weight:700;font-size:14px;margin-bottom:4px}
.qn-outreach-hero-desc{font-size:12.5px;color:var(--t2);line-height:1.55;max-width:52ch}
.qn-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}
@media(max-width:900px){.qn-kpi-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.qn-kpi-grid{grid-template-columns:repeat(2,1fr)}}
.qn-kpi-card{
  padding:12px 14px;border-radius:var(--radius-sm);cursor:pointer;text-align:left;
  font:inherit;color:inherit;border:none;background:transparent;width:100%;
}
.qn-kpi-card.glass-card.accent-card{border-top:3px solid var(--accent-color)}
.qn-kpi-card.glass-card.accent-card:hover .qn-kpi-val{color:var(--accent-color)}
.qn-kpi-val{font-family:var(--mono);font-size:24px;font-weight:800;line-height:1;transition:color .28s var(--glass-ease)}
.qn-kpi-lbl{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);margin-top:5px}
/* Action Plans KPI strip */
.ap-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}
@media(max-width:900px){.ap-kpi-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.ap-kpi-grid{grid-template-columns:repeat(2,1fr)}}
.ap-kpi-card{
  padding:12px 14px;border-radius:var(--radius-sm);cursor:pointer;text-align:left;
  font:inherit;color:inherit;border:none;background:transparent;width:100%;
}
.ap-kpi-card.glass-card.accent-card{border-top:3px solid var(--accent-color)}
.ap-kpi-card.glass-card.accent-card:hover .ap-kpi-val{color:var(--accent-color)}
.ap-kpi-card.glass-card.accent-card.is-selected{
  border-color:color-mix(in srgb,var(--accent-color) 42%,var(--glass-border));
  box-shadow:var(--glass-shadow),0 0 0 1px color-mix(in srgb,var(--accent-color) 28%,transparent),inset 1.5px 1.5px 0 rgba(255,255,255,.18);
}
.ap-kpi-val{font-family:var(--mono);font-size:24px;font-weight:800;line-height:1;transition:color .28s var(--glass-ease)}
.ap-kpi-lbl{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);margin-top:5px}
.qn-wizard-tpl{
  text-align:left;padding:14px;cursor:pointer;width:100%;
  font:inherit;color:inherit;border:none;background:transparent;
}
.qn-wizard-tpl.glass-card.accent-card{border-top:3px solid var(--accent-color)}
.qn-wizard-tpl-name{font-weight:700;font-size:13px;margin-bottom:4px}
.qn-wizard-tpl-desc{font-size:11.5px;color:var(--t2);line-height:1.5;margin-bottom:6px}
.qn-wizard-tpl-meta{font-family:var(--mono);font-size:10px;color:var(--t3)}
.grc-data-table.glass-card{overflow-x:auto;padding:0}
.grc-data-table table{width:100%;border-collapse:collapse;min-width:760px}
.grc-data-table th{
  font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;
  color:var(--t3);padding:10px 12px;text-align:left;font-weight:500;
  background:color-mix(in srgb,var(--s2) 60%,transparent);border-bottom:1px solid var(--b1);
}
.grc-data-table td{padding:10px 12px;border-bottom:1px solid var(--b1);vertical-align:middle}
.grc-data-table tr:hover td{background:color-mix(in srgb,var(--accent-color,var(--gold)) 4%,transparent)}
.qn-row-actions{display:flex;gap:4px;justify-content:flex-end}
.glass-rsk-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px}
.glass-kit-page{max-width:960px}
.glass-kit-section{margin-bottom:32px}
.glass-kit-hd{font-family:var(--disp);font-size:16px;font-weight:700;margin-bottom:6px}
.glass-kit-sub{font-size:12.5px;color:var(--t3);margin-bottom:14px;line-height:1.55}
.glass-kit-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:12px}
.glass-kit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.glass-kit-card{padding:16px;border-radius:var(--radius-sm)}
.glass-kit-state{font-family:var(--mono);font-size:9px;color:var(--t3);text-transform:uppercase;letter-spacing:.08em;margin-top:8px}

/* Supabase auth gate */
.auth-gate{
  min-height:100vh;display:grid;place-items:center;padding:32px 20px;
  background:radial-gradient(ellipse 80% 60% at 50% 0%,color-mix(in srgb,var(--gold) 8%,transparent),transparent 70%),var(--bg);
}
.auth-gate-card{width:100%;max-width:400px;padding:32px 28px 28px}
.auth-gate-brand{--dradis:#3ecf6e;--dradis-dim:rgba(62,207,110,.32);text-align:center;margin-bottom:28px}
.auth-gate-logo-wrap{display:flex;justify-content:center;margin-bottom:8px}
.auth-gate-brand .dradis-logo{width:52px;height:52px;margin:0 auto}
.auth-gate-brand h1{font-family:var(--disp);font-size:28px;font-weight:800;letter-spacing:.12em;margin:12px 0 4px}
.auth-gate-sub{font-size:12px;color:var(--t3);margin:0}
.auth-gate-title{font-family:var(--disp);font-size:18px;font-weight:700;margin:0 0 10px}
.auth-gate-muted{font-size:13px;color:var(--t2);line-height:1.55;margin:0}
.auth-gate-form{display:flex;flex-direction:column;gap:10px}
.auth-gate-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3)}
.auth-gate-input{
  width:100%;padding:11px 14px;border-radius:10px;border:1px solid var(--b2);
  background:color-mix(in srgb,var(--s2) 82%,transparent);color:var(--text);font:inherit;font-size:14px;
}
.auth-gate-input:focus-visible{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-d)}
.auth-gate-error{font-size:12px;color:var(--crit);margin:0}
.auth-gate-submit{margin-top:6px;width:100%}
.auth-gate-hint{font-size:11px;color:var(--t3);margin:4px 0 0;line-height:1.45}
.auth-gate-sent{text-align:center}
.auth-gate-back{margin-top:18px}
.tb-signout{
  font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;
  padding:6px 10px;border-radius:6px;border:1px solid var(--b2);background:transparent;color:var(--t2);cursor:pointer;
}
.tb-signout:hover{border-color:var(--gold);color:var(--text)}

/* ── What's new (topbar) ── */
.whats-new-wrap{position:relative;display:inline-flex}
.tb-whats-new{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);color:var(--nav-text);font-family:var(--mono);font-size:11px;padding:6px 12px;cursor:pointer;border-radius:var(--radius-sm);transition:all .15s;position:relative}
.tb-whats-new::before{content:'✦';font-size:12px;color:var(--gold);opacity:.85}
.tb-whats-new:hover,.tb-whats-new[aria-expanded="true"]{border-color:var(--gold);color:#fff;background:rgba(255,255,255,.08)}
.tb-whats-new.has-unread{border-color:color-mix(in srgb,var(--gold) 45%,transparent)}
.whats-new-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px color-mix(in srgb,var(--gold) 60%,transparent);flex-shrink:0}
.whats-new-panel{
  position:absolute;top:calc(100% + 10px);right:0;width:min(360px,calc(100vw - 24px));max-height:min(70vh,520px);
  display:flex;flex-direction:column;border-radius:14px;border:1px solid var(--glass-border);
  background:var(--glass-bg-solid);box-shadow:var(--glass-shadow),0 20px 50px rgba(0,0,0,.35);
  overflow:hidden;z-index:200;animation:whatsNewIn .22s var(--glass-ease);
}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .glass-whats-new{
    background:color-mix(in srgb,var(--glass-bg) 88%,transparent);
    -webkit-backdrop-filter:blur(18px) saturate(1.35);
    backdrop-filter:blur(18px) saturate(1.35);
  }
}
.glass-whats-new::before{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(135deg,color-mix(in srgb,var(--gold) 8%,transparent),transparent 55%);
  opacity:.9;z-index:0;
}
.whats-new-head,.whats-new-body,.whats-new-foot{position:relative;z-index:1}
.whats-new-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 10px;border-bottom:1px solid color-mix(in srgb,var(--b1) 70%,transparent)}
.whats-new-kicker{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);margin-bottom:4px}
.whats-new-title{font-family:var(--disp);font-size:17px;font-weight:700;color:var(--text);line-height:1.2}
.whats-new-close{background:transparent;border:none;color:var(--t3);font-size:20px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:6px}
.whats-new-close:hover{color:var(--text);background:var(--s2)}
.whats-new-body{padding:8px 10px 10px;overflow-y:auto;flex:1}
.whats-new-release{padding:10px 8px;border-radius:10px;margin-bottom:4px}
.whats-new-release.is-latest{background:color-mix(in srgb,var(--gold) 7%,transparent);border:1px solid color-mix(in srgb,var(--gold) 18%,transparent)}
.whats-new-release-meta{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}
.whats-new-release-title{font-size:13px;font-weight:700;color:var(--text)}
.whats-new-release-date{font-family:var(--mono);font-size:9px;color:var(--t3);white-space:nowrap}
.whats-new-list{margin:0;padding:0 0 0 16px;font-size:12px;line-height:1.55;color:var(--t2)}
.whats-new-list li{margin-bottom:6px}
.whats-new-list li:last-child{margin-bottom:0}
.whats-new-foot{padding:10px 16px 12px;border-top:1px solid color-mix(in srgb,var(--b1) 70%,transparent);font-size:11px;color:var(--t3);line-height:1.45}
.whats-new-foot-link{display:block;width:100%;padding:0;border:none;background:transparent;text-align:left;font:inherit;color:inherit;line-height:1.45;cursor:pointer}
.whats-new-foot-link:hover strong{color:var(--gold)}
.whats-new-foot strong{color:var(--t2);font-weight:600}
@keyframes whatsNewIn{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
body.theme-light .tb-whats-new{background:var(--s2);border-color:var(--b1);color:var(--t2)}
body.theme-light .tb-whats-new:hover,body.theme-light .tb-whats-new[aria-expanded="true"]{border-color:var(--gold);color:var(--text);background:var(--s3)}
@media(max-width:760px){.tb-whats-new .whats-new-label{display:none}.tb-whats-new{padding:6px 10px}}

/* ── Mobile polish (Jun 2026) ── */
@media(max-width:720px){
  .filter-bar{flex-direction:column;align-items:stretch;gap:8px}
  .filter-bar .filter-search-wrap{width:100%}
  .filter-bar .glass-select,.filter-bar .btn{width:100%;justify-content:center}
  .qn-wizard-grid{grid-template-columns:1fr!important}
  .action-row{grid-template-columns:1fr!important;gap:6px!important;padding:12px!important}
  .action-row>span:first-child{justify-self:start}
  .ap-stat-card{min-width:calc(50% - 5px)!important;flex:1 1 calc(50% - 5px)!important}
  .pentest-layout{flex-direction:column!important}
  .pentest-layout>aside{width:100%!important;position:static!important}
  .modal-box{margin:12px;max-height:calc(100vh - 24px)}
  .grc-page-header{flex-direction:column;align-items:flex-start!important;gap:8px}
  .grc-page-header .btn-group,.grc-page-header>div:last-child{width:100%;display:flex;flex-wrap:wrap;gap:6px}
  table{font-size:12px}
  th,td{padding:8px 6px!important}
}

/* ── Posture: connected compliance strip ── */
.posture-connected{margin-bottom:28px;padding:18px 20px;background:var(--s1);border:1px solid var(--b1);border-radius:var(--radius)}
.posture-connected-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.posture-connected-title{font-family:var(--disp);font-size:16px;font-weight:700;margin:0 0 4px}
.posture-connected-sub{font-size:12px;color:var(--t2);line-height:1.55;margin:0;max-width:52ch}
.posture-connected-settings{font-family:var(--mono);font-size:11px;color:var(--teal);text-decoration:none;white-space:nowrap}
.posture-connected-settings:hover{text-decoration:underline}
.posture-connected-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.posture-connected-tile{display:flex;gap:12px;padding:14px 16px;min-height:118px;align-items:flex-start}
.posture-connected-tile-mark{flex:0 0 36px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:color-mix(in srgb,var(--accent-color) 12%,var(--s2));border:1px solid color-mix(in srgb,var(--accent-color) 28%,var(--b1))}
.posture-connected-dradis-mark{font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:.06em;color:var(--teal)}
.posture-connected-tile-body{min-width:0;flex:1}
.posture-connected-tile-name{font-weight:700;font-size:13px;line-height:1.2}
.posture-connected-tile-name-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.posture-connected-demo-chip{font-family:var(--mono);font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--gold) 18%,transparent);color:var(--gold);border:1px solid color-mix(in srgb,var(--gold) 35%,transparent)}
.posture-connected-tile-tag{font-size:10.5px;color:var(--t3);margin-top:2px;line-height:1.35}
.posture-connected-tile-metric{font-family:var(--mono);font-size:28px;font-weight:700;line-height:1;margin-top:8px}
.posture-connected-tile-unit{font-size:14px;font-weight:600;opacity:.85;margin-left:1px}
.posture-connected-tile-foot{font-size:10px;color:var(--t3);margin-top:8px;line-height:1.45;display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.posture-connected-status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;display:inline-block}
.posture-connected-sync{opacity:.75}
.posture-connected-empty{margin:14px 0 0;font-size:11.5px;color:var(--t3);line-height:1.55;border-top:1px dashed var(--b2);padding-top:12px}
@media(max-width:720px){.posture-connected-grid{grid-template-columns:1fr 1fr}}

/* ── Command centre (unified platform) ── */
.cc-panel{margin-bottom:24px}
.cc-panel-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.cc-kicker{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--gold);margin-bottom:4px}
.cc-title{font-family:var(--disp);font-size:18px;font-weight:700;color:var(--text)}
.cc-stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:14px}
.cc-stat{padding:14px 16px;border-top:3px solid var(--b2)}
.cc-stat.glass-card.accent-card{border-top-color:var(--accent-color)}
.cc-stat.glass-card.accent-card:hover .cc-stat-val{color:var(--accent-color)}
.cc-stat.is-click{cursor:pointer}
.cc-stat-lbl{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);margin-bottom:6px}
.cc-stat-val{font-family:var(--disp);font-size:26px;font-weight:800;line-height:1;transition:color .28s var(--glass-ease)}
.cc-stat-sub{font-family:var(--mono);font-size:10px;color:var(--t3);margin-top:4px}
.cc-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:800px){.cc-grid-2{grid-template-columns:1fr}}
.cc-widget{padding:14px 16px}
.cc-widget-title{font-weight:600;font-size:13px;margin-bottom:12px}
.cc-heatmap{display:flex;flex-direction:column;gap:4px}
.cc-heatmap-hd,.cc-heatmap-row{display:grid;grid-template-columns:100px repeat(6,1fr);gap:4px;align-items:center}
.cc-heatmap-hd span{font-family:var(--mono);font-size:9px;text-transform:uppercase;color:var(--t3);text-align:center}
.cc-heatmap-tier{font-family:var(--mono);font-size:10px;font-weight:600}
.cc-heatmap-cell{display:flex;align-items:center;justify-content:center;min-height:28px;border-radius:4px;font-family:var(--mono);font-size:11px;font-weight:700;border:1px solid var(--b1);transition:transform .22s var(--glass-ease);will-change:transform}
.cc-heatmap-cell.is-click{cursor:pointer}
.cc-heatmap-cell.is-click:hover{transform:scale(1.08);z-index:1;position:relative}
.cc-movers{display:flex;flex-direction:column;gap:12px}
.cc-mover-lbl{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;margin-bottom:6px}
.cc-mover-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--b1);font-size:12.5px}
.cc-mover-row.is-click{cursor:pointer}
.cc-mover-row.is-click:hover{color:var(--gold)}
.cc-mover-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cc-mover-delta{font-family:var(--mono);font-size:11px;font-weight:700}
.cc-empty{font-size:12px;color:var(--t3);margin:0}
.cc-ops-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.cc-ops{padding:14px 16px;border-top:3px solid var(--b2);cursor:pointer}
.cc-ops.glass-card.accent-card{border-top-color:var(--accent-color)}
.cc-ops.glass-card.accent-card:hover .cc-ops-total{color:var(--accent-color)}
.cc-ops-title{font-weight:600;font-size:13px;margin-bottom:4px}
.cc-ops-total{font-family:var(--disp);font-size:32px;font-weight:800;line-height:1;margin-bottom:10px;transition:color .28s var(--glass-ease)}
.cc-ops-rows{display:flex;flex-direction:column;gap:4px}
.cc-ops-row{display:flex;justify-content:space-between;font-size:12px;color:var(--t3)}
.cc-league-wrap{overflow-x:auto}
.cc-league{width:100%;border-collapse:collapse;font-size:12.5px}
.cc-league th{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);text-align:left;padding:6px 8px;border-bottom:1px solid var(--b1)}
.cc-league td{padding:8px;border-bottom:1px solid var(--b1)}
.cc-league tr:hover td{background:var(--s2)}
.cc-closure-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.cc-closure-card{padding:14px 16px;border-top:3px solid var(--b2);cursor:pointer}
.cc-closure-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.cc-closure-label{font-weight:600;font-size:13px}
.cc-closure-open{font-family:var(--mono);font-size:10px;font-weight:700}
.cc-closure-bar{height:6px;background:var(--s2);border-radius:3px;overflow:hidden;margin-bottom:6px}
.cc-closure-fill{height:100%;border-radius:3px;transition:width .3s}
.cc-closure-meta{display:flex;flex-direction:column;gap:2px;font-family:var(--mono);font-size:10px;color:var(--t3)}
.glass-card.is-click{cursor:pointer}
.cc-modal-tabs{display:flex;gap:4px;margin-bottom:14px;flex-wrap:wrap;border-bottom:1px solid var(--b1);padding-bottom:8px}
.cc-modal-tabs button{border:none;background:transparent;padding:6px 12px;border-radius:var(--radius-sm);font-size:12.5px;color:var(--t3);cursor:pointer;font-family:var(--body);display:inline-flex;align-items:center;gap:6px}
.cc-modal-tabs button:hover{background:var(--s2);color:var(--text)}
.cc-modal-tabs button.active{background:var(--gold-d);color:var(--gold);font-weight:600}
.cc-tab-badge{font-family:var(--mono);font-size:9px;background:var(--s2);padding:1px 5px;border-radius:8px;color:var(--t2)}
.cc-modal-tabs button.active .cc-tab-badge{background:color-mix(in srgb,var(--gold) 20%,transparent)}
.vnd-grade-hero{display:flex;align-items:center;gap:16px;background:var(--s2);border:1px solid var(--b1);padding:14px 16px;margin-bottom:14px;border-radius:var(--radius-sm)}
.vnd-grade-letter{font-family:var(--disp);font-size:42px;font-weight:800;border:3px solid;border-radius:10px;width:64px;height:64px;display:inline-flex;align-items:center;justify-content:center;line-height:1}
.vnd-chip{font-family:var(--mono);font-size:10px;font-weight:700;border:1px solid;padding:2px 8px}
.vnd-chip.muted{color:var(--t3);border-color:var(--b2);font-weight:500}
.vnd-warn{background:color-mix(in srgb,var(--med) 10%,transparent);border:1px solid color-mix(in srgb,var(--med) 30%,transparent);border-left:3px solid var(--med);padding:10px 12px;margin-bottom:14px;font-size:12px;color:var(--t2)}
.vnd-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;font-size:12.5px}
.vnd-grid-2 .lbl{display:block;margin-bottom:2px}
.vnd-link-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--b1);cursor:pointer;font-size:13px}
.vnd-link-row:hover{color:var(--gold)}
.vnd-clause-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--b1);font-size:12.5px}
.vnd-hist-row{padding:8px 10px;border:1px solid var(--b1);background:var(--bg);margin-bottom:5px;font-size:12;border-radius:var(--radius-sm)}
.vnd-contact-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--b1)}
.vnd-contact-form{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;margin-top:12px;align-items:end}
@media(max-width:600px){.vnd-contact-form{grid-template-columns:1fr}}
.vnd-note-row{padding:10px 12px;border:1px solid var(--b1);background:var(--s2);margin-bottom:8px;border-radius:var(--radius-sm)}
.cc-home-section{background:var(--s1);border:1px solid var(--b1);margin-bottom:16px;border-radius:var(--radius-sm)}
.cc-home-summary{cursor:pointer;padding:14px 18px;font-weight:600;font-size:13px;list-style:none}
.cc-home-summary::-webkit-details-marker{display:none}
.cc-home-body{padding:0 16px 16px}

/* ── DESIGN SYSTEM PHASE 2 (ds-*) ── */
:root{
  --accent:var(--gold);--accent-d:var(--gold-d);--accent-b:var(--gold-b);
  --ds-space-xs:6px;--ds-space-sm:10px;--ds-space-md:16px;--ds-space-lg:22px;
}
body.theme-miami{
  --gold:#FF4D9D;--gold-d:rgba(255,77,157,.12);--gold-b:rgba(255,77,157,.32);
  --teal:#2DE2E6;--teal-d:rgba(45,226,230,.10);
  --bg:#0D0221;--s1:#150734;--s2:#1A0A42;--s3:#220F52;--s4:#2B145F;
  --b1:#3D2068;--b2:#4E2B7A;--b3:#6B3F9A;
  --disp:'Syne',sans-serif;--body:'Manrope',sans-serif;
  --accent:var(--gold);--accent-d:var(--gold-d);--accent-b:var(--gold-b);
}
.ds-panel{background:var(--s1);border:1px solid var(--b1);border-radius:var(--radius);padding:var(--ds-space-lg);position:relative;box-shadow:var(--shadow-sm)}
.ds-panel-bracket::before,.ds-panel-bracket::after{content:'';position:absolute;width:14px;height:14px;border-color:var(--accent);pointer-events:none}
.ds-panel-bracket::before{top:6px;left:6px;border-top:2px solid;border-left:2px solid}
.ds-panel-bracket::after{bottom:6px;right:6px;border-bottom:2px solid;border-right:2px solid}
.ds-chip{display:inline-block;font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border:1px solid var(--b2);color:var(--t2);background:var(--s2);border-radius:var(--radius-sm)}
.ds-chip-ok{color:var(--low);border-color:color-mix(in srgb,var(--low) 35%,transparent);background:color-mix(in srgb,var(--low) 8%,transparent)}
.ds-chip-warn{color:var(--high);border-color:color-mix(in srgb,var(--high) 35%,transparent);background:color-mix(in srgb,var(--high) 8%,transparent)}
.ds-callout{padding:12px 14px;border-radius:var(--radius-sm);font-size:12.5px;line-height:1.55;margin-bottom:12px;border:1px solid var(--b1)}
.ds-callout-teal{border-color:color-mix(in srgb,var(--teal) 35%,transparent);background:var(--teal-d);color:var(--text)}
.ds-callout-gold{border-color:var(--accent-b);background:var(--accent-d);color:var(--text)}
.ds-callout-warn{border-color:color-mix(in srgb,var(--high) 35%,transparent);background:color-mix(in srgb,var(--high) 6%,transparent)}
.ds-callout-ok{border-color:color-mix(in srgb,var(--low) 35%,transparent);background:color-mix(in srgb,var(--low) 6%,transparent)}
.ds-callout-muted{background:var(--s2);color:var(--t2)}
.ds-stat{padding:10px 12px;border:1px solid var(--b1);background:var(--s1);border-radius:var(--radius-sm)}
.ds-stat-lbl{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);margin-bottom:4px}
.ds-stat-val{font-family:var(--mono);font-size:22px;font-weight:600;line-height:1}
.ds-progress-lbl{font-family:var(--mono);font-size:10px;color:var(--t3);margin-bottom:6px}
.ds-progress-track{height:4px;background:var(--b1);border-radius:2px;overflow:hidden}
.ds-progress-fill{height:100%;border-radius:2px;transition:width .25s}
.ds-stepper{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:14px}
.ds-step{width:28px;height:28px;border:1px solid var(--b1);background:var(--s1);color:var(--t3);font-family:var(--mono);font-size:10px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}
.ds-step:hover{border-color:var(--b2);color:var(--text)}
.ds-step.active{border-color:var(--accent);color:var(--accent);background:var(--accent-d);font-weight:700}
.ds-step.done{border-color:color-mix(in srgb,var(--low) 40%,transparent);color:var(--low)}
.ds-inject-card{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--b1)}
.ds-inject-min{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--accent);min-width:52px;padding-top:2px}

/* ── TTX Exercise Studio ── */
.ttx-studio{padding:18px 20px 20px;margin-bottom:4px}
.ttx-studio-head{display:flex;gap:16px;justify-content:space-between;align-items:flex-start;margin-bottom:14px;flex-wrap:wrap}
.ttx-studio-eyebrow{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--teal);margin-bottom:6px}
.ttx-studio-title{font-family:var(--disp);font-size:20px;font-weight:700;line-height:1.2;margin:0}
.ttx-studio-sub{font-size:12.5px;color:var(--t2);margin:8px 0 0;max-width:62ch;line-height:1.55}
.ttx-studio-chips{display:flex;gap:6px;flex-wrap:wrap;padding-top:4px}
.ttx-studio-prompt{margin-bottom:12px}
.ttx-studio-controls{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:4px}
.ttx-studio-field{flex:1;min-width:180px;margin:0}
.ttx-studio-preview{margin-top:16px;padding-top:16px;border-top:1px solid var(--b1)}
.ttx-studio-preview-head{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;margin-bottom:14px}
.ttx-studio-preview-title{font-family:var(--disp);font-size:17px;font-weight:700;margin:0 0 4px}
.ttx-studio-meta{font-family:var(--mono);font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.06em}
.ttx-studio-preview-actions{display:flex;gap:8px;flex-wrap:wrap}
.ttx-studio-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
@media(max-width:900px){.ttx-studio-grid{grid-template-columns:1fr}}
.ttx-studio-block{background:var(--s2);border:1px solid var(--b1);border-radius:var(--radius-sm);padding:12px 14px}
.ttx-studio-block-lbl{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);margin-bottom:8px}
.ttx-studio-block-body{font-size:12.5px;line-height:1.6;color:var(--t2);margin:0;white-space:pre-wrap}
.ttx-studio-injects .ds-inject-card:last-child{border-bottom:none;padding-bottom:0}

/* ── Caprica6 global assistant ── */
.caprica6-root{position:fixed;inset:0;pointer-events:none;z-index:480}
.caprica6-root>*{pointer-events:auto}
.caprica6-six{color:#e63946;font-weight:800}
.caprica6-fab{
  position:fixed;bottom:28px;right:28px;z-index:482;
  border:none;padding:2px;border-radius:999px;cursor:pointer;
  background:linear-gradient(90deg,#ffc857 0%,#ff8c42 22%,#ff4d9d 48%,#2de2e6 78%,#ffc857 100%);
  background-size:220% 100%;
  filter:drop-shadow(0 10px 28px rgba(0,0,0,.28));
  transition:transform var(--glass-dur) var(--glass-ease),filter var(--glass-dur) var(--glass-ease);
}
.caprica6-fab:hover{
  transform:translateY(-2px) scale(1.02);
  filter:drop-shadow(0 14px 34px rgba(0,0,0,.34));
  animation:caprica6RingShift 2.4s linear infinite;
}
.caprica6-fab:active{transform:translateY(0) scale(.99);animation:none}
.caprica6-fab-inner{
  display:flex;align-items:center;gap:9px;
  padding:10px 18px 10px 14px;border-radius:999px;
  background:rgba(255,255,255,.78);color:#1a1d24;
  box-shadow:inset 1px 1px 0 rgba(255,255,255,.65),inset -1px -1px 0 rgba(0,0,0,.04);
}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .caprica6-fab-inner{
    background:rgba(255,255,255,.58);
    -webkit-backdrop-filter:blur(18px) saturate(1.35);
    backdrop-filter:blur(18px) saturate(1.35);
  }
}
body:not(.theme-light) .caprica6-fab-inner{
  background:rgba(18,20,28,.72);color:#f4f6fb;
  box-shadow:inset 1px 1px 0 rgba(255,255,255,.12),inset -1px -1px 0 rgba(0,0,0,.25);
}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  body:not(.theme-light) .caprica6-fab-inner{background:rgba(18,20,28,.55)}
}
.caprica6-label{font-family:var(--disp);font-size:15px;font-weight:700;letter-spacing:.01em;line-height:1}
.caprica6-sparkles{display:block;flex-shrink:0}
.caprica6-star{fill:currentColor;transform-box:fill-box;transform-origin:center}
.caprica6-fab:hover .caprica6-star-a{animation:caprica6Twinkle .9s ease-in-out infinite}
.caprica6-fab:hover .caprica6-star-b{animation:caprica6Twinkle .9s ease-in-out .15s infinite}
.caprica6-fab:hover .caprica6-star-c{animation:caprica6Twinkle .9s ease-in-out .3s infinite}
.caprica6-panel{
  position:fixed;bottom:96px;right:28px;z-index:481;
  width:min(92vw,390px);height:min(68vh,520px);
  display:flex;flex-direction:column;padding:0;overflow:hidden;
  animation:caprica6PanelIn var(--glass-dur) var(--glass-ease);
}
.caprica6-panel-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  padding:14px 16px 12px;border-bottom:1px solid var(--b1);
}
.caprica6-panel-eyebrow{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--teal);margin-bottom:4px}
.caprica6-panel-title{font-family:var(--disp);font-size:18px;font-weight:700;line-height:1}
.caprica6-close{
  border:1px solid var(--b2);background:var(--s2);color:var(--t2);
  width:30px;height:30px;border-radius:999px;cursor:pointer;font-size:12px;line-height:1;
  transition:background .15s,border-color .15s,color .15s;
}
.caprica6-close:hover{border-color:var(--b3);color:var(--text);background:var(--s3)}
.caprica6-messages{flex:1;overflow:auto;padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.caprica6-msg{display:flex;gap:10px;align-items:flex-start}
.caprica6-msg-user{justify-content:flex-end}
.caprica6-msg-user .caprica6-msg-bubble{
  background:color-mix(in srgb,var(--gold) 14%,var(--s2));
  border-color:color-mix(in srgb,var(--gold) 28%,var(--b1));
}
.caprica6-msg-avatar{
  width:28px;height:28px;border-radius:999px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:var(--s2);border:1px solid var(--b1);color:var(--text);
}
.caprica6-msg-avatar .caprica6-sparkles{width:22px;height:14px}
.caprica6-msg-bubble{
  max-width:82%;padding:10px 12px;border-radius:14px;
  border:1px solid var(--b1);background:var(--s2);
  font-size:12.5px;line-height:1.55;color:var(--text);
}
.caprica6-compose{
  display:flex;gap:8px;align-items:flex-end;padding:12px 14px;border-top:1px solid var(--b1);
  background:color-mix(in srgb,var(--s1) 88%,transparent);
}
.caprica6-compose textarea{
  flex:1;resize:none;min-height:44px;max-height:120px;
  border:1px solid var(--b1);border-radius:12px;background:var(--s1);
  color:var(--text);font:inherit;font-size:12.5px;padding:10px 12px;line-height:1.45;
}
.caprica6-compose textarea:focus{outline:none;border-color:color-mix(in srgb,var(--teal) 45%,var(--b1))}
.caprica6-send{
  width:40px;height:40px;border-radius:999px;border:none;cursor:pointer;flex-shrink:0;
  background:linear-gradient(135deg,var(--gold),var(--teal));color:#fff;font-size:18px;font-weight:700;
  box-shadow:0 6px 18px color-mix(in srgb,var(--gold) 35%,transparent);
  transition:transform .15s ease,opacity .15s ease;
}
.caprica6-send:hover:not(:disabled){transform:translateY(-1px)}
.caprica6-send:disabled{opacity:.45;cursor:not-allowed}
@keyframes caprica6RingShift{0%{background-position:0% 50%}100%{background-position:220% 50%}}
@keyframes caprica6Twinkle{
  0%,100%{transform:scale(1) rotate(0deg);opacity:.85}
  50%{transform:scale(1.18) rotate(12deg);opacity:1}
}
@keyframes caprica6PanelIn{
  from{opacity:0;transform:translateY(12px) scale(.98)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
html.reduce-motion .caprica6-fab:hover,
html.reduce-motion .caprica6-fab:hover .caprica6-star{animation:none!important}
html.reduce-motion .caprica6-panel{animation:none!important}
@media(max-width:720px){
  .caprica6-fab{bottom:18px;right:16px}
  .caprica6-panel{bottom:84px;right:16px;width:calc(100vw - 32px)}
}

