/* ============================================================
   SGA Hygiene Performance — vNext
   Light/white theme. SGA scorecard aesthetic: navy + gold.
   ============================================================ */
:root{
  --bg:#f8f9fa; --panel:#ffffff; --panel-2:#f1f5f9; --panel-3:#f8fafc;
  --border:#e6e8ec; --border-2:#cbd5e1;
  --ink:#0f172a; --ink-2:#1e293b; --muted:#64748b; --muted-2:#94a3b8;

  --navy:#1a2b4a; --navy-2:#26406b; --navy-soft:#eef2f9;
  --gold:#c8a04d; --gold-2:#b08a3a; --gold-soft:#faf4e6;

  --green:#15803d; --green-bg:#ecfdf3; --green-2:#22c55e;
  --yellow:#b45309; --yellow-bg:#fffbeb; --yellow-2:#f59e0b;
  --red:#b91c1c; --red-bg:#fef2f2; --red-2:#ef4444;
  --pos:#15803d; --neg:#b91c1c;

  --tint-green:#ecfdf3; --tint-green-2:#d1fae5;
  --tint-yellow:#fef9c3; --tint-red:#fee2e2; --tint-red-2:#fecaca;

  --r-sm:6px; --r-md:9px; --r-lg:13px; --r-xl:18px;
  --sh-1:0 1px 2px rgba(15,23,42,.05);
  --sh-2:0 4px 16px rgba(15,23,42,.08);
  --sh-3:0 12px 30px rgba(15,23,42,.13);
  --sh-rail:-10px 0 36px rgba(15,23,42,.12);
  --ff:'Inter','Segoe UI',-apple-system,BlinkMacSystemFont,Roboto,sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--ff);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
body{min-height:100vh;padding-bottom:48px;}
.num{font-variant-numeric:tabular-nums;}
a{color:var(--navy-2);}
button{font-family:inherit;}

/* ===== HEADER ===== */
.header{position:sticky;top:0;z-index:40;background:linear-gradient(180deg,#1a2b4a,#1f3257);color:#fff;height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;box-shadow:0 2px 14px rgba(15,23,42,.18);}
.title-wrap{display:flex;align-items:center;gap:13px;min-width:0;}
.title-stripe{width:4px;height:36px;background:var(--gold);border-radius:2px;}
.title-block .h1{font-size:19px;font-weight:800;letter-spacing:-.02em;line-height:1.05;}
.title-block .h1 .vn{color:var(--gold);font-weight:800;}
.title-block .sub{font-size:11px;color:rgba(255,255,255,.72);font-weight:500;margin-top:2px;}
.title-block .sub b{color:#fff;font-weight:700;}
.header-right{display:flex;align-items:center;gap:9px;}
.pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);font-size:10.5px;font-weight:600;color:#fff;cursor:help;position:relative;}
.pill .dot{width:7px;height:7px;border-radius:50%;background:var(--green-2);animation:pulse 2s ease-in-out infinite;}
@keyframes pulse{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.4);opacity:.55;}}
.pill .tip{position:absolute;right:0;top:calc(100% + 7px);width:300px;padding:11px 13px;background:var(--ink);color:#fff;border-radius:var(--r-md);font-size:11px;font-weight:500;line-height:1.55;opacity:0;pointer-events:none;transition:opacity .15s;box-shadow:var(--sh-3);z-index:60;text-align:left;}
.pill:hover .tip{opacity:.98;}

/* ===== KPI STRIP ===== */
.kpi-wrap{padding:14px 24px 4px;}
.kpi-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:11px;}
.kpi{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);padding:11px 14px;min-height:74px;cursor:default;box-shadow:var(--sh-1);overflow:hidden;opacity:0;transform:translateY(5px);animation:kin .5s ease-out forwards;}
.kpi:nth-child(1){animation-delay:.03s;}.kpi:nth-child(2){animation-delay:.08s;}.kpi:nth-child(3){animation-delay:.13s;}.kpi:nth-child(4){animation-delay:.18s;}.kpi:nth-child(5){animation-delay:.23s;}.kpi:nth-child(6){animation-delay:.28s;}
@keyframes kin{to{opacity:1;transform:translateY(0);}}
.kpi:hover{box-shadow:var(--sh-2);border-color:var(--border-2);}
.kpi .label{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.kpi .value{font-size:23px;font-weight:800;letter-spacing:-.02em;line-height:1.05;margin-top:3px;color:var(--navy);}
.kpi .sub{font-size:10px;color:var(--muted);font-weight:500;margin-top:2px;line-height:1.3;}
.kpi-hero{background:linear-gradient(135deg,#1a2b4a 0%,#26406b 100%);border:none;color:#fff;}
.kpi-hero .label{color:rgba(255,255,255,.78);}
.kpi-hero .value{color:#fff;font-size:25px;}
.kpi-hero .sub{color:rgba(255,255,255,.85);}
.kpi-gold{background:linear-gradient(135deg,#c8a04d 0%,#d8b76a 100%);border:none;color:#3a2c08;}
.kpi-gold .label{color:rgba(58,44,8,.7);}
.kpi-gold .value{color:#3a2c08;font-size:24px;}
.kpi-gold .sub{color:rgba(58,44,8,.78);}
.kpi-gold::after{content:'';position:absolute;top:0;right:0;bottom:0;width:54px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45));animation:shimmer 2.8s ease-in-out infinite;}
@keyframes shimmer{0%,100%{opacity:.3;}50%{opacity:.9;}}
.kpi-alert{background:var(--red-bg);border-color:rgba(185,28,28,.28);}
.kpi-alert .label{color:var(--red);}.kpi-alert .value{color:var(--red);}

/* ===== FILTER BAR ===== */
.filter-bar{position:sticky;top:62px;z-index:30;background:rgba(248,249,250,.96);backdrop-filter:blur(6px);padding:8px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:11px;flex-wrap:wrap;}
.filter-bar .lbl{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;}
.dropdown{position:relative;}
.dd-toggle{display:inline-flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-sm);padding:5px 10px;font-size:12px;font-weight:600;color:var(--ink);cursor:pointer;min-width:140px;}
.dd-toggle:hover{border-color:var(--border-2);}
.dd-toggle::after{content:'▾';margin-left:auto;color:var(--muted);}
.dd-menu{position:absolute;top:calc(100% + 4px);left:0;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);padding:5px;min-width:220px;max-height:360px;overflow:auto;box-shadow:var(--sh-3);display:none;z-index:50;}
.dd-menu.open{display:block;}
.dd-item{display:flex;align-items:center;gap:8px;padding:5px 8px;font-size:12px;border-radius:var(--r-sm);cursor:pointer;}
.dd-item:hover{background:var(--panel-2);}
.dd-item .dir-dot{width:8px;height:8px;border-radius:50%;}
.market-filter{display:inline-flex;align-items:center;gap:3px;padding:2px 3px;background:var(--navy-soft);border-radius:var(--r-sm);border:1px solid rgba(26,43,74,.10);}
.market-pill{padding:4px 10px;font-size:11px;font-weight:700;color:var(--muted);cursor:pointer;border-radius:var(--r-sm);border:none;background:transparent;transition:background .15s,color .15s;}
.market-pill.active{background:var(--navy);color:#fff;}
.market-pill:not(.active):hover{background:rgba(26,43,74,.08);color:var(--navy);}
.fbtn{padding:5px 10px;font-size:11.5px;font-weight:600;color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;}
.fbtn:hover{border-color:var(--border-2);color:var(--ink);}

/* ===== TABS — gold underline ===== */
.tab-bar{position:sticky;top:103px;z-index:25;background:var(--bg);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:2px;padding:0 24px;overflow-x:auto;}
.tab{position:relative;background:transparent;border:none;padding:12px 14px 10px;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;border-bottom:2.5px solid transparent;}
.tab:hover{color:var(--ink);}
.tab.active{color:var(--navy);border-bottom-color:var(--gold);}
.tab .badge{background:var(--red);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;min-width:18px;text-align:center;}
.tab.active .badge{background:var(--navy);}
.tab .star{color:var(--gold);}

/* ===== PANELS ===== */
.panels{padding:16px 24px 64px;}
.panel{display:none;}
.panel.active{display:block;animation:pin .26s ease-out;}
@keyframes pin{from{opacity:0;transform:translateY(5px);}to{opacity:1;transform:translateY(0);}}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:6px;}
.section-head h2{font-size:17px;font-weight:800;letter-spacing:-.01em;margin:0;color:var(--navy);}
.section-head .meta{font-size:11px;color:var(--muted);}
.why{font-size:12px;font-style:italic;color:var(--muted);max-width:780px;line-height:1.55;margin:2px 0 14px;padding-left:16px;position:relative;}
.why::before{content:'↳';position:absolute;left:0;top:0;color:var(--gold);font-style:normal;font-weight:700;}

/* ===== checklist banner (metrics_to_watch) ===== */
.watch-banner{background:linear-gradient(120deg,#faf4e6,#fffdf7);border:1px solid rgba(200,160,77,.32);border-radius:var(--r-lg);padding:13px 16px;margin-bottom:14px;}
.watch-banner h4{margin:0 0 8px;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-2);display:flex;align-items:center;gap:7px;}
.watch-list{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 18px;}
.watch-item{font-size:12px;line-height:1.45;color:var(--ink-2);display:flex;gap:8px;align-items:flex-start;}
.watch-item .chk{flex:none;width:15px;height:15px;border:1.5px solid var(--gold);border-radius:4px;margin-top:1px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:10px;color:var(--gold-2);font-weight:800;}
.watch-item.done .chk{background:var(--gold);color:#fff;}
.watch-item.done span{text-decoration:line-through;color:var(--muted-2);}

/* ===== FOCUS PRIORITY ===== */
.priority-summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;}
.priority-pill{background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:5px 12px;font-size:11.5px;font-weight:600;}
.priority-pill.critical{border-color:var(--red);color:var(--red);}
.priority-pill.attn{border-color:var(--yellow);color:var(--yellow);}
.priority-pill.recover{border-color:var(--gold-2);color:var(--gold-2);background:var(--gold-soft);}
.priority-pill .n{font-weight:800;font-size:12px;margin-right:4px;}
.priority-list{display:flex;flex-direction:column;gap:9px;}
.priority-row{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:13px 15px 11px;display:grid;grid-template-columns:50px 1fr;gap:13px;cursor:pointer;overflow:hidden;transition:transform .18s,box-shadow .18s,border-color .18s;opacity:0;transform:translateY(4px);animation:rin .36s ease-out forwards;}
.priority-row.rank-1{box-shadow:inset 4px 0 0 var(--gold),-6px 0 24px -8px rgba(200,160,77,.5);animation:rin .36s ease-out forwards,aggro 2.6s ease-in-out infinite .8s;}
@keyframes aggro{0%,100%{box-shadow:inset 4px 0 0 var(--gold),-4px 0 18px -10px rgba(200,160,77,.45);}50%{box-shadow:inset 4px 0 0 var(--gold),-11px 0 30px -6px rgba(200,160,77,.85);}}
@keyframes rin{to{opacity:1;transform:translateY(0);}}
.priority-row:hover{box-shadow:var(--sh-2);border-color:var(--border-2);transform:translateY(-1px);}
.priority-row .stripe{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--muted);}
.priority-row .rank-col{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;}
.priority-row .rank-num{font-size:18px;font-weight:800;color:var(--muted-2);}
.priority-row.rank-1 .rank-num{color:var(--gold-2);}
.priority-row.rank-2 .rank-num,.priority-row.rank-3 .rank-num{color:var(--navy-2);}
.priority-row .row-body{min-width:0;}
.priority-row .row-head{display:flex;align-items:center;gap:10px;margin-bottom:3px;flex-wrap:wrap;}
.priority-row .loc-name{font-size:14.5px;font-weight:800;color:var(--ink);}
.priority-row .row-tail{margin-left:auto;display:inline-flex;gap:8px;align-items:center;color:var(--muted);}
.priority-row .reason{font-size:11px;color:var(--muted);font-style:italic;margin-bottom:7px;}
.priority-row .reason .red-dot{color:var(--red);font-style:normal;}
.priority-row .metric-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:6px;}
.priority-row .metric-cell{display:flex;flex-direction:column;gap:1px;}
.priority-row .metric-cell.recover-cell{background:var(--gold-soft);border-radius:var(--r-sm);padding:4px 7px;margin:-4px -2px;}
.priority-row .metric-cell .ml{font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);}
.priority-row .metric-cell .mv{font-size:14px;font-weight:800;display:flex;align-items:center;gap:5px;color:var(--ink);}
.priority-row .metric-cell.recover-cell .mv{color:var(--gold-2);}
.priority-row .driver{font-size:9.5px;color:var(--muted);font-style:italic;margin-top:1px;line-height:1.3;}
.priority-row .threat-wrap{margin-top:9px;display:flex;align-items:center;gap:8px;}
.priority-row .threat-bar{flex:1;height:3px;background:var(--border);border-radius:2px;overflow:hidden;}
.priority-row .threat-fill{height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-2));border-radius:2px;transform-origin:left;transform:scaleX(0);animation:tgrow .9s cubic-bezier(.2,.8,.2,1) .35s forwards;}
@keyframes tgrow{to{transform:scaleX(var(--threat,.5));}}

.dir-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:600;border:1px solid currentColor;}
.dir-chip .dot{width:5px;height:5px;border-radius:50%;background:currentColor;}
.spec-badge{display:inline-block;font:600 9px/1 var(--ff);padding:2px 6px;border-radius:999px;background:rgba(124,58,237,.10);color:#7c3aed;margin-left:4px;text-transform:uppercase;letter-spacing:.04em;}
.mom-badge{display:inline-flex;align-items:center;gap:4px;font:700 9px/1 var(--ff);padding:2px 7px;border-radius:999px;letter-spacing:.03em;text-transform:uppercase;}
.mom-badge.up{background:var(--green-bg);color:var(--green);}
.mom-badge.down{background:var(--red-bg);color:var(--red);}
.mom-badge.flat{background:var(--panel-2);color:var(--muted);}
.mom-badge.none{background:var(--panel-2);color:var(--muted-2);}
.coach-chip{display:inline-flex;align-items:center;gap:5px;font:700 9.5px/1 var(--ff);padding:3px 8px;border-radius:999px;background:var(--navy);color:#fff;cursor:pointer;letter-spacing:.03em;text-transform:uppercase;position:relative;}
.coach-chip::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--gold);animation:pulse 1.8s ease-in-out infinite;}
.coach-chip:hover{background:var(--navy-2);}

.tl-dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--muted);display:inline-block;}
.tl-dot.green{background:var(--green-2);}.tl-dot.yellow{background:var(--yellow-2);}.tl-dot.red{background:var(--red-2);}.tl-dot.gray{background:var(--muted-2);}
.show-more{display:block;margin:14px auto 0;padding:8px 20px;font:600 12px/1 var(--ff);color:var(--navy);background:var(--panel);border:1px solid var(--border-2);border-radius:var(--r-md);cursor:pointer;}
.show-more:hover{background:var(--navy);color:#fff;border-color:var(--navy);}

/* ===== OPS GRID ===== */
.opsgrid-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap;font-size:11px;color:var(--muted);}
.opsgrid-toolbar input[type=search]{padding:5px 10px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--panel);font-size:12px;min-width:240px;font-family:inherit;}
.opsgrid-toolbar .legend{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;margin-left:auto;font-size:10px;}
.legend .sw{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:var(--r-sm);border:1px solid var(--border);}
.legend .sw .b{width:10px;height:10px;border-radius:2px;}
.legend .sw.green .b{background:var(--tint-green-2);}.legend .sw.yellow .b{background:var(--tint-yellow);}.legend .sw.red .b{background:var(--tint-red-2);}.legend .sw.muted .b{background:var(--panel-2);}
.opsgrid-wrap{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);overflow:auto;max-height:calc(100vh - 250px);position:relative;}
.opsgrid{width:100%;border-collapse:separate;border-spacing:0;font-size:11.5px;}
.opsgrid thead th{position:sticky;top:0;z-index:5;background:var(--panel);border-bottom:2px solid var(--border-2);text-align:right;padding:5px 7px;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);white-space:nowrap;}
.opsgrid thead .group-row th{z-index:6;padding:4px 6px;font-size:8.5px;letter-spacing:.1em;text-align:center;background:var(--navy-soft);color:var(--navy-2);font-weight:700;border-bottom:1px solid var(--border);}
.opsgrid thead .col-row th{top:21px;background:var(--panel);}
.opsgrid thead th.loc-col,.opsgrid thead th.dir-col{text-align:left;}
.opsgrid thead th.sortable{cursor:pointer;}
.opsgrid thead th.sortable:hover{color:var(--navy);}
.opsgrid thead th .arr{color:var(--muted-2);margin-left:3px;font-size:8px;}
.opsgrid thead th.active-sort{color:var(--navy);}
.opsgrid thead th.active-sort .arr{color:var(--gold-2);}
.opsgrid tbody td{padding:0 7px;height:30px;vertical-align:middle;border-bottom:1px solid #eef2f7;white-space:nowrap;line-height:1.1;}
.opsgrid tbody td.num{text-align:right;font-variant-numeric:tabular-nums;}
.opsgrid tbody td.loc-cell{font-weight:600;color:var(--ink);min-width:210px;padding-left:13px;position:relative;}
.opsgrid tbody td.loc-cell .stripe{position:absolute;left:4px;top:5px;bottom:5px;width:3px;border-radius:2px;background:var(--muted);}
.opsgrid tbody td.dir-cell{color:var(--muted);font-size:11px;min-width:130px;}
.opsgrid tbody td.dir-cell .dir-dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:5px;vertical-align:1px;}
.opsgrid thead th.loc-col,.opsgrid tbody td.loc-cell{position:sticky;left:0;width:226px;min-width:226px;max-width:226px;}
.opsgrid thead th.dir-col,.opsgrid tbody td.dir-cell{position:sticky;left:226px;width:132px;min-width:132px;max-width:132px;}
.opsgrid tbody td.loc-cell,.opsgrid tbody td.dir-cell{background:var(--panel);}
.opsgrid tbody td.loc-cell{z-index:3;overflow:hidden;text-overflow:ellipsis;}
.opsgrid tbody td.dir-cell{z-index:3;overflow:hidden;text-overflow:ellipsis;}
.opsgrid thead th.loc-col,.opsgrid thead th.dir-col{z-index:8;}
.opsgrid tbody tr.net-row td.loc-cell,.opsgrid tbody tr.net-row td.dir-cell{z-index:6;background:var(--panel-3);}
.opsgrid tbody tr:hover td{filter:brightness(.985);}
.opsgrid tbody tr.loc-row{cursor:pointer;}
.opsgrid tbody tr.loc-row:hover td.loc-cell{color:var(--navy);}
.opsgrid td.tint-green{background:var(--tint-green)!important;}
.opsgrid td.tint-green-2{background:var(--tint-green-2)!important;}
.opsgrid td.tint-yellow{background:var(--tint-yellow)!important;}
.opsgrid td.tint-red{background:var(--tint-red)!important;}
.opsgrid td.tint-red-2{background:var(--tint-red-2)!important;}
.opsgrid td.big-beat{font-weight:800;color:#065f46;}
.opsgrid td.big-miss{font-weight:800;color:#991b1b;}
.opsgrid tbody tr.net-row td{position:sticky;top:44px;z-index:5;background:var(--panel-3);border-top:2px solid var(--navy);border-bottom:2px solid var(--navy);font-weight:800;color:var(--navy);height:32px;}
.opsgrid tbody tr.net-row td.loc-cell{color:var(--navy);}
.opsgrid td.spark-cell{padding:2px 4px;}
.opsgrid td.spark-cell canvas{display:block;}
.opsgrid td.recover-col{font-weight:800;color:var(--gold-2);background:var(--gold-soft);}
.opsgrid td.coach-col{text-align:center;}
.mini-coach{display:inline-block;width:18px;height:18px;line-height:17px;text-align:center;border-radius:50%;background:var(--navy);color:#fff;font-size:10px;font-weight:800;cursor:pointer;}
.mini-coach:hover{background:var(--gold-2);}
.cell-lm{color:var(--muted);font-style:italic;}

/* ===== DIRECTOR RANKING ===== */
.dir-rank-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px;}
.dir-col-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:15px;}
.dir-col-card h3{font-size:13px;font-weight:800;margin:0 0 10px;color:var(--navy);}
.dir-rank-list{display:flex;flex-direction:column;gap:9px;}
.dir-card{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);padding:12px 14px;display:grid;grid-template-columns:32px 1fr;gap:12px;cursor:pointer;overflow:hidden;transition:transform .18s,box-shadow .18s;opacity:0;transform:translateX(-6px);animation:din .42s ease-out forwards;}
@keyframes din{to{opacity:1;transform:translateX(0);}}
.dir-card .stripe{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--muted);}
.dir-card .rank{font-size:15px;font-weight:800;color:var(--muted-2);display:flex;align-items:center;justify-content:center;}
.dir-card .body{min-width:0;}
.dir-card .top-line{display:flex;align-items:center;gap:8px;}
.dir-card .name{font-size:13px;font-weight:800;color:var(--ink);}
.dir-card .tail-val{margin-left:auto;font-size:13px;font-weight:800;}
.dir-card .sub{font-size:10px;color:var(--muted);margin-top:2px;}
.dir-card .metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px;}
.dir-card .metrics .ml{font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);}
.dir-card .metrics .mv{font-size:12px;font-weight:800;display:flex;align-items:center;gap:4px;margin-top:2px;color:var(--ink);}
.dir-card.top{background:var(--gold-soft);animation:din .42s ease-out forwards,aggro 2.6s ease-in-out infinite .8s;}
.dir-card.bottom{background:var(--red-bg);}
.dir-card:hover{transform:translateY(-1px);box-shadow:var(--sh-2);}

/* box-plot spread */
.spread-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:15px;margin-top:6px;}
.spread-card h3{font-size:13px;font-weight:800;margin:0 0 4px;color:var(--navy);}
.spread-card .sub{font-size:11px;color:var(--muted);margin-bottom:12px;}
.spread-row{display:grid;grid-template-columns:140px 1fr 96px;gap:12px;align-items:center;padding:7px 0;border-bottom:1px solid var(--panel-2);}
.spread-row:last-child{border-bottom:none;}
.spread-name{font-size:12px;font-weight:700;color:var(--ink-2);display:flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.spread-track{position:relative;height:22px;}
.spread-axis{position:absolute;left:0;right:0;top:50%;height:2px;background:var(--border);border-radius:2px;}
.spread-bench{position:absolute;top:2px;bottom:2px;width:2px;background:var(--gold);z-index:2;}
.spread-whisker{position:absolute;top:50%;height:2px;background:var(--navy-2);transform:translateY(-50%);}
.spread-box{position:absolute;top:50%;height:10px;background:rgba(38,64,107,.18);border:1px solid var(--navy-2);border-radius:2px;transform:translateY(-50%);}
.spread-median{position:absolute;top:50%;width:9px;height:9px;border-radius:50%;background:var(--navy);transform:translate(-50%,-50%);z-index:3;border:2px solid #fff;}
.spread-val{font-size:11px;font-weight:700;color:var(--ink-2);text-align:right;}
.spread-val .rng{font-size:9px;color:var(--muted);font-weight:500;display:block;}

.compare-chart-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:15px;margin-top:12px;}
.compare-chart-card h3{font-size:13px;font-weight:800;margin:0 0 10px;color:var(--navy);}
.chart-h320{position:relative;height:320px;}
.chart-h260{position:relative;height:260px;}
.chart-h160{position:relative;height:160px;}
.chart-h120{position:relative;height:120px;}

/* ===== ACTION BRIEF ===== */
.brief-grid{display:grid;grid-template-columns:1fr;gap:14px;}
.brief-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:15px 17px;}
.brief-card h3{font-size:13.5px;font-weight:800;margin:0 0 5px;color:var(--navy);}
.brief-card .ts{font-size:10px;color:var(--muted);margin-bottom:8px;}
.brief-card p{font-size:13px;line-height:1.62;margin:6px 0;color:var(--ink-2);}
.brief-card p.exec{font-size:13.5px;}
.brief-list{display:flex;flex-direction:column;gap:9px;margin:6px 0 0;padding:0;list-style:none;}
.brief-item{background:var(--panel-3);border-left:3px solid var(--navy-2);border-radius:var(--r-sm);padding:9px 12px;font-size:12px;line-height:1.5;}
.brief-item.high{border-left-color:var(--red);}.brief-item.medium{border-left-color:var(--yellow);}.brief-item.low{border-left-color:var(--green);}
.brief-item .ttl{font-weight:800;display:block;margin-bottom:2px;color:var(--ink);}
.brief-item .ttl .sev{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:1px 6px;border-radius:999px;margin-left:6px;vertical-align:1px;}
.brief-item .ttl .sev.high{background:rgba(185,28,28,.12);color:var(--red);}
.brief-item .ttl .sev.medium{background:rgba(180,83,9,.12);color:var(--yellow);}
.brief-item .ttl .sev.low{background:rgba(21,128,61,.12);color:var(--green);}
.brief-item .by{font-size:10px;color:var(--muted);font-weight:600;}
.brief-item .who{color:var(--navy);font-weight:800;cursor:pointer;text-decoration:underline dotted;}
.brief-item .lk{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;font-weight:700;color:var(--navy);background:var(--navy-soft);border:none;border-radius:999px;padding:2px 8px;cursor:pointer;margin-top:5px;}
.brief-item .lk:hover{background:var(--navy);color:#fff;}
.brief-chip{display:inline-block;padding:3px 9px;background:var(--navy-soft);color:var(--navy);border-radius:999px;font-size:10px;font-weight:700;margin:2px 6px 2px 0;}

/* director briefing selector inside Action Brief */
.dbrief-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.dbrief-bar .lbl,.sc-toolbar .lbl{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;}
.dbrief-bar .seg{display:inline-flex;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden;}
.dbrief-bar .seg button{background:transparent;border:none;padding:5px 11px;font-size:11.5px;font-weight:700;color:var(--muted);cursor:pointer;}
.dbrief-bar .seg button.active{background:var(--navy);color:#fff;}

/* ===== SCORECARD ===== */
.sc-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;}
.sc-toolbar .pick{display:inline-flex;align-items:center;gap:7px;}
.sc-toolbar select{padding:6px 11px;border:1px solid var(--border-2);border-radius:var(--r-sm);background:var(--panel);font-size:13px;font-weight:700;color:var(--navy);font-family:inherit;cursor:pointer;}
.sc-print-btn{margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--r-md);background:var(--navy);color:#fff;border:none;font-size:12px;font-weight:700;cursor:pointer;}
.sc-print-btn:hover{background:var(--navy-2);}

.scorecard{background:#fff;border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-2);max-width:1080px;margin:0 auto;}
.sc-head{background:linear-gradient(135deg,#1a2b4a,#26406b);color:#fff;padding:22px 26px;position:relative;}
.sc-head::after{content:'';position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--gold);}
.sc-head .eyebrow{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);}
.sc-head .name{font-size:27px;font-weight:800;letter-spacing:-.02em;margin:3px 0 2px;}
.sc-head .meta{font-size:12.5px;color:rgba(255,255,255,.82);}
.sc-grade-badge{position:absolute;right:26px;top:22px;text-align:center;}
.sc-grade-badge .g{font-size:46px;font-weight:800;line-height:.9;}
.sc-grade-badge .gl{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.7);}
.sc-kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border-bottom:1px solid var(--border);}
.sc-kpi{background:#fff;padding:14px 18px;}
.sc-kpi.hero-cell{background:var(--navy-soft);}
.sc-kpi .l{font-size:9.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);}
.sc-kpi .v{font-size:23px;font-weight:800;letter-spacing:-.02em;margin-top:3px;color:var(--navy);}
.sc-kpi .v.neg{color:var(--red);}.sc-kpi .v.pos{color:var(--green);}
.sc-kpi .s{font-size:10.5px;color:var(--muted);margin-top:2px;}
.sc-body{padding:20px 26px 26px;}
.sc-cols{display:grid;grid-template-columns:1.15fr 1fr;gap:22px;}
.sc-block h4{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);margin:0 0 10px;padding-bottom:6px;border-bottom:2px solid var(--gold);display:inline-block;}
.sc-metric-row{display:grid;grid-template-columns:1fr 70px 60px 22px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--panel-2);font-size:12.5px;}
.sc-metric-row .mn{font-weight:600;color:var(--ink-2);}
.sc-metric-row .mv{text-align:right;font-weight:800;color:var(--ink);}
.sc-metric-row .mb{text-align:right;font-size:11px;color:var(--muted);}
.sc-metric-row .ml-dot{justify-self:center;width:11px;height:11px;border-radius:50%;}
.sc-metric-row .ml-dot.green{background:var(--green-2);}.sc-metric-row .ml-dot.yellow{background:var(--yellow-2);}.sc-metric-row .ml-dot.red{background:var(--red-2);}.sc-metric-row .ml-dot.gray{background:var(--muted-2);}
.sc-fix-list{display:flex;flex-direction:column;gap:9px;}
.sc-fix{background:var(--gold-soft);border:1px solid rgba(200,160,77,.3);border-radius:var(--r-md);padding:10px 12px;}
.sc-fix .ft{font-size:12.5px;font-weight:800;color:var(--ink);display:flex;justify-content:space-between;gap:8px;}
.sc-fix .ft .amt{color:var(--gold-2);}
.sc-fix .fd{font-size:11px;color:var(--ink-2);margin-top:3px;line-height:1.45;}
.sc-cdt-wrap{margin-top:18px;}
.sc-cdt-bar{display:flex;height:30px;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--border);}
.sc-cdt-seg{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:#fff;}
.sc-cdt-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;font-size:11px;color:var(--ink-2);}
.sc-cdt-legend .li{display:inline-flex;align-items:center;gap:5px;}
.sc-cdt-legend .li .sw{width:11px;height:11px;border-radius:2px;}
.sc-foot{margin-top:18px;padding-top:12px;border-top:1px solid var(--border);font-size:11px;color:var(--muted);line-height:1.55;}

/* ===== METHODOLOGY ===== */
.method-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px;margin-bottom:14px;}
.method-card h3{font-size:14px;font-weight:800;margin:0 0 8px;color:var(--navy);}
.method-card p{font-size:12.5px;line-height:1.6;color:var(--ink-2);margin:6px 0;}
.method-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:8px;}
.method-table th,.method-table td{text-align:left;padding:7px 9px;border-bottom:1px solid var(--border);vertical-align:top;}
.method-table th{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;}
.method-table code{background:var(--navy-soft);color:var(--navy);padding:1px 5px;border-radius:4px;font-size:11px;}

/* ===== RAIL ===== */
.scrim{position:fixed;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(2px);z-index:50;opacity:0;pointer-events:none;transition:opacity .25s;}
.scrim.open{opacity:1;pointer-events:auto;}
.rail{position:fixed;top:0;bottom:0;right:0;width:560px;max-width:100vw;background:var(--panel);box-shadow:var(--sh-rail);transform:translateX(100%);transition:transform .32s cubic-bezier(.2,.8,.2,1);z-index:60;display:flex;flex-direction:column;}
.rail.open{transform:translateX(0);}
.rail-head{padding:16px 20px 12px;border-bottom:1px solid var(--border);position:relative;background:var(--navy-soft);}
.rail-close{position:absolute;right:13px;top:13px;width:28px;height:28px;border-radius:50%;background:#fff;border:1px solid var(--border);font-size:16px;cursor:pointer;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;}
.rail-close:hover{background:var(--border);color:var(--ink);}
.rail-head h2{font-size:19px;font-weight:800;letter-spacing:-.01em;margin:0 34px 5px 0;color:var(--navy);}
.rail-head .chips{display:flex;flex-wrap:wrap;gap:6px;}
.rail-body{flex:1;overflow:auto;padding:15px 20px 28px;}
.rail-section{margin-bottom:18px;}
.rail-section-head{display:flex;align-items:center;gap:8px;margin-bottom:7px;}
.rail-section-head .title{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);}
.rail-section-head .sep{flex:1;height:2px;background:linear-gradient(90deg,var(--gold),transparent);}
.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:4px;}
.metric-tile{background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);padding:9px 11px;}
.metric-tile.t-green{background:var(--green-bg);border-color:rgba(21,128,61,.18);}
.metric-tile.t-yellow{background:var(--yellow-bg);border-color:rgba(180,83,9,.18);}
.metric-tile.t-red{background:var(--red-bg);border-color:rgba(185,28,28,.18);}
.metric-tile .head{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:3px;}
.metric-tile .ml{font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);}
.metric-tile .bench{font-size:9px;font-weight:600;color:var(--muted);}
.metric-tile .mv{font-size:19px;font-weight:800;letter-spacing:-.01em;line-height:1.1;display:flex;align-items:baseline;justify-content:space-between;gap:6px;color:var(--ink);}
.metric-tile .mv .delta{font-size:10px;font-weight:600;font-style:italic;}
.metric-tile .mv .delta.pos{color:var(--pos);}.metric-tile .mv .delta.neg{color:var(--neg);}
.metric-tile.span2{grid-column:span 2;}

/* percentile strip */
.pctile{margin-top:7px;}
.pctile .bar{display:flex;gap:1px;height:16px;align-items:flex-end;}
.pctile .bk{flex:1;background:var(--border);border-radius:1px;min-height:3px;transition:background .2s;}
.pctile .bk.fill{background:var(--navy-2);}
.pctile .bk.me{background:var(--gold);}
.pctile .cap{font-size:9.5px;color:var(--muted);margin-top:4px;line-height:1.4;}
.pctile .cap b{color:var(--navy);font-weight:800;}

/* trajectory */
.traj-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.traj-card{background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);padding:9px 10px 7px;}
.traj-card .th{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:4px;}
.traj-card .tl{font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);}
.traj-card .tv{font-size:14px;font-weight:800;color:var(--navy);}
.traj-card .tc{position:relative;height:46px;}
.traj-empty{background:var(--panel-2);border:1px dashed var(--border-2);border-radius:var(--r-sm);padding:11px;font-size:11.5px;color:var(--muted);line-height:1.5;}

/* AI coaching section in rail */
.coach-card{background:linear-gradient(120deg,#eef2f9,#f8fafc);border:1px solid rgba(26,43,74,.14);border-radius:var(--r-md);padding:12px 14px;margin-top:4px;}
.coach-card .issue{font-size:11px;font-weight:700;color:var(--red);margin-bottom:5px;}
.coach-card .body{font-size:12.5px;line-height:1.55;color:var(--ink-2);}
.coach-card .meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px;}
.coach-card .meta .m{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:999px;background:var(--navy);color:#fff;}
.coach-card .meta .m.gold{background:var(--gold);color:#3a2c08;}

.dcode-table{width:100%;font-size:11px;border-collapse:collapse;}
.dcode-table th,.dcode-table td{padding:5px 7px;text-align:left;border-bottom:1px solid var(--border);}
.dcode-table th{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;}
.dcode-table td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;}
.prov-row{display:grid;grid-template-columns:1fr 64px 56px 48px;gap:8px;align-items:center;padding:6px 9px;border-radius:var(--r-sm);font-size:11.5px;border-bottom:1px solid var(--panel-2);}
.prov-row .pn{font-weight:600;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.prov-row .pt{font-size:8px;font-weight:700;color:var(--muted);background:var(--panel-2);padding:1px 5px;border-radius:3px;margin-left:5px;}

.brief-empty{padding:13px;background:var(--panel-2);border:1px dashed var(--border-2);border-radius:var(--r-md);color:var(--muted);font-size:12px;line-height:1.55;}

/* ===== FOOTER ===== */
.footer{padding:18px 24px;border-top:1px solid var(--border);margin-top:24px;font-size:10px;color:var(--muted);display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;}
.footer .credit strong{color:var(--ink-2);font-weight:700;}

/* ===== TOAST ===== */
.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);background:var(--ink);color:#fff;padding:10px 15px;border-radius:var(--r-md);font-size:12px;font-weight:600;box-shadow:var(--sh-3);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:80;}
.toast.show{opacity:1;transform:translate(-50%,0);}

/* ===== RESPONSIVE ===== */
@media(max-width:1200px){.kpi-strip{grid-template-columns:repeat(3,1fr);}.sc-cols{grid-template-columns:1fr;}}
@media(max-width:1023px){.dir-rank-grid{grid-template-columns:1fr;}.rail{width:92vw;}.sc-kpi-strip{grid-template-columns:repeat(2,1fr);}.watch-list{grid-template-columns:1fr;}}
@media(max-width:767px){
  .header{height:auto;padding:10px 14px;flex-wrap:wrap;gap:8px;}
  .filter-bar,.tab-bar{top:auto;}
  .kpi-strip{grid-template-columns:1fr 1fr;}
  .rail{width:100vw;}
  .panels{padding:14px 10px 60px;}
  .priority-row{grid-template-columns:40px 1fr;}
  .priority-row .metric-strip{grid-template-columns:repeat(2,1fr);}
  .traj-grid,.metric-grid{grid-template-columns:1fr;}
}

/* ===== PRINT (scorecard) ===== */
@media print{
  body{background:#fff;padding:0;}
  .header,.filter-bar,.tab-bar,.footer,.sc-toolbar,.rail,.scrim,.toast{display:none!important;}
  .panels{padding:0;}
  .panel{display:none!important;}
  .panel.active{display:block!important;}
  .scorecard{box-shadow:none;border:1px solid #ccc;max-width:100%;page-break-inside:avoid;}
  .sc-print-btn{display:none;}
}
