/* ============================================================
   TPO WEBAPP — Dr. Ramesh Menon's College Admin dashboard
   ============================================================
   Sprint: BTX-MOCKUPS-V3-WEBAPP-001 (BMW3-T11)
   Architecture: operator-desktop product. Dark sidebar (matches
   existing TPO ink palette). No mockup chrome — real bureau-feel
   webapp as if Dr. Menon logged into his TPO office console.
   Mobile-responsive but desktop-first (612-student grids).
   ============================================================ */
body{background:var(--fog);margin:0;font-family:'Inter',sans-serif;color:var(--ink);min-height:100vh}
[x-cloak]{display:none !important}
/* Brand palette inlined as a fallback so colors always render even if _shared/brand.css fails to load (cache / file:// / offline). Values mirror brand.css :root. */
:root{
  --honey:#F59E0B; --honey-d:#B45309; --honey-soft:#FCD34D; --honey-glow:#FEF3C7; --honey-cream:#FEF6E0;
  --teal:#0F766E; --teal-d:#134E4A; --teal-soft:#99F6E4; --teal-glow:#CCFBF1;
  --plum:#6B21A8; --plum-d:#581C87; --plum-soft:#C4B5FD; --plum-glow:#EDE9FE;
  --emerald:#10B981; --emerald-d:#059669; --emerald-glow:#D1FAE5;
  --rose:#E11D48; --rose-d:#9F1239; --rose-glow:#FFE4E6;
  --ink:#0B1220; --ink-2:#1E293B; --ink-3:#334155;
  --body:#475569; --mute:#64748B; --line:#E2E8F0;
  --cream:#FBF7EE; --cream-2:#F5EFE2; --mist:#F1F5F9; --fog:#F8FAFC;
}

/* ── TOPBAR (dark, operator) ────────────────────────── */
.app-topbar{position:sticky;top:0;z-index:50;background:var(--ink);color:var(--on-accent);border-bottom:1px solid #FFFFFF14;height:62px;display:flex;align-items:center;padding:0 24px;gap:16px}
.app-topbar .brand-mark{display:flex;align-items:center;gap:10px;cursor:pointer;text-decoration:none;color:inherit}
.app-topbar .hex{width:24px;height:28px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 84 96'><polygon fill='%23F59E0B' points='42,2 80,24 80,72 42,94 4,72 4,24'/></svg>") center/contain no-repeat;flex-shrink:0}
.app-topbar .brand-name{font-family:'Inter';font-weight:800;font-size:15px;color:var(--on-accent);letter-spacing:-0.015em}
.app-topbar .brand-sub{font-family:'JetBrains Mono';font-size:10px;color:var(--honey-soft);letter-spacing:.16em;text-transform:uppercase;margin-left:8px;padding-left:8px;border-left:1px solid #FFFFFF22}
.app-topbar .spacer{flex:1}
.view-back{display:inline-flex;align-items:center;gap:6px;margin-bottom:16px;padding:7px 14px 7px 11px;background:var(--card);border:1.5px solid var(--line);border-radius:8px;cursor:pointer;font-family:'Inter';font-size:12.5px;font-weight:600;color:var(--ink-2);transition:.15s}
.view-back:hover{background:var(--honey-soft);border-color:var(--honey);color:var(--ink);transform:translateX(-2px)}
.view-back .vb-ic{font-size:15px;line-height:1}
.app-topbar .tb-search{flex:0 1 360px;display:flex;align-items:center;gap:8px;padding:7px 12px;background:#FFFFFF12;border:1px solid transparent;border-radius:8px;cursor:text;transition:.15s;font-size:12.5px;color:#FFFFFF99}
.app-topbar .tb-search:hover,.app-topbar .tb-search:focus-within{background:#FFFFFF1F;border-color:#FFFFFF22}
.app-topbar .tb-search input{flex:1;border:0;outline:0;background:transparent;font-family:'Inter';font-size:12.5px;color:var(--on-accent)}
.app-topbar .tb-search input::placeholder{color:#FFFFFF88}
.app-topbar .tb-search kbd{font-family:'JetBrains Mono';font-size:10px;background:#FFFFFF22;border:1px solid #FFFFFF33;border-radius:4px;padding:1px 5px;color:var(--on-accent)}
.app-topbar .tb-search-wrap{position:relative;flex:0 1 360px;display:flex}
.app-topbar .tb-search-wrap .tb-search{flex:1}
.tb-search-pop{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:300;background:var(--surface);border:1px solid #E5E7EB;border-radius:10px;box-shadow:0 14px 34px rgba(15,23,42,.18);padding:6px;max-height:360px;overflow:auto}
.tb-search-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;background:transparent;border-radius:7px;cursor:pointer;text-align:left;font-family:'Inter';font-size:13px;color:#111827}
.tb-search-item:hover,.tb-search-item.active{background:#F3F4F6}
.tb-search-item .si-ic{width:18px;text-align:center;color:#6B7280;font-size:13px}
.tb-search-item .si-lbl{flex:1}
.tb-search-item .si-grp{font-size:10px;color:#9CA3AF;text-transform:uppercase;letter-spacing:.06em;font-family:'JetBrains Mono',monospace}
.tb-search-empty{padding:14px 12px;font-size:12.5px;color:#6B7280}
.app-topbar .tb-icon{position:relative;width:36px;height:36px;border-radius:8px;background:transparent;border:none;cursor:pointer;display:grid;place-items:center;font-size:16px;color:#FFFFFFC0;transition:.15s}
.app-topbar .tb-icon:hover{background:#FFFFFF14;color:var(--on-accent)}
.app-topbar .tb-icon .badge{position:absolute;top:4px;right:4px;background:var(--rose);color:var(--on-accent);font-family:'JetBrains Mono';font-size:9px;font-weight:700;padding:1px 4px;border-radius:999px;min-width:16px;text-align:center;line-height:1.3}
/* ── Notifications dropdown ── */
.tb-notif-wrap{position:relative}
.tb-notif-menu{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-width:calc(100vw - 24px);background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 38px rgba(15,23,42,.22);z-index:300;overflow:hidden}
.tb-notif-menu .tn-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--line)}
.tb-notif-menu .tn-head b{font-size:14px;color:var(--ink)}
.tb-notif-menu .tn-readall{border:0;background:transparent;color:var(--honey-d);font-family:'Inter';font-size:12px;font-weight:600;cursor:pointer;padding:2px 4px}
.tb-notif-menu .tn-readall:hover{text-decoration:underline}
.tb-notif-menu .tn-list{max-height:min(70vh,440px);overflow:auto;padding:4px}
.tb-notif-menu .tn-item{position:relative;display:flex;gap:11px;width:100%;text-align:left;padding:11px 12px;border:0;background:transparent;border-radius:9px;cursor:pointer;transition:.12s}
.tb-notif-menu .tn-item:hover{background:var(--surface-2,#F3F4F6)}
.tb-notif-menu .tn-item.unread{background:color-mix(in srgb,var(--honey) 9%,transparent)}
.tb-notif-menu .tn-item.unread:hover{background:color-mix(in srgb,var(--honey) 15%,transparent)}
.tb-notif-menu .tn-ic{flex:none;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:15px;background:var(--surface-2,#F3F4F6)}
.tb-notif-menu .tn-ic.k-rose{background:color-mix(in srgb,var(--rose) 16%,transparent)}
.tb-notif-menu .tn-ic.k-honey{background:color-mix(in srgb,var(--honey) 22%,transparent)}
.tb-notif-menu .tn-ic.k-emerald{background:color-mix(in srgb,var(--emerald,#10B981) 16%,transparent)}
.tb-notif-menu .tn-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.tb-notif-menu .tn-title{font-size:13px;font-weight:600;color:var(--ink);line-height:1.25}
.tb-notif-menu .tn-text{font-size:12px;color:var(--muted,#6B7280);line-height:1.35}
.tb-notif-menu .tn-time{font-size:10.5px;color:var(--muted,#9CA3AF);font-family:'JetBrains Mono',monospace;margin-top:1px}
.tb-notif-menu .tn-dot{flex:none;align-self:center;width:8px;height:8px;border-radius:50%;background:var(--rose)}
.tb-notif-menu .tn-empty{padding:26px 12px;text-align:center;font-size:13px;color:var(--muted,#6B7280)}
.app-topbar .tb-user{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;border-radius:999px;cursor:pointer;transition:.15s}
.app-topbar .tb-user:hover{background:#FFFFFF14}
.app-topbar .tb-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--honey),var(--honey-d));color:var(--ink);display:grid;place-items:center;font-weight:700;font-size:12.5px;letter-spacing:.02em}
.app-topbar .tb-user-info{font-size:12px;line-height:1.25;display:none}
.app-topbar .tb-user-info b{display:block;color:var(--on-accent);font-weight:600;font-size:12.5px}
.app-topbar .tb-user-info span{color:#FFFFFF88;font-size:10.5px}
@media (min-width:900px){.app-topbar .tb-user-info{display:block}}
.app-topbar .tb-user-wrap{position:relative}
.app-topbar .tb-user-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:210px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.18);padding:6px;z-index:50}
.app-topbar .tb-user-menu .um-head{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:6px}
.app-topbar .tb-user-menu .um-head b{display:block;font-size:13px;color:var(--ink);font-weight:600}
.app-topbar .tb-user-menu .um-head span{font-size:11px;color:var(--mute)}
.app-topbar .tb-user-menu button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 10px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:13px;color:var(--ink-2);transition:.12s}
.app-topbar .tb-user-menu button:hover{background:var(--mist)}
.app-topbar .tb-user-menu button.danger{color:var(--rose-d,#c0334e)}
.app-topbar .tb-user-menu button.danger:hover{background:#fde8ec}
.app-topbar .tb-user-menu .um-sep{height:1px;background:var(--line);margin:6px 0}
@media (max-width:600px){.app-topbar{padding:0 14px;gap:8px}.app-topbar .tb-search-wrap{display:none}.app-topbar .brand-sub{display:none}}

/* ── VIEW WRAPPER ───────────────────────────────────── */
.app-main{padding:0;background:var(--fog)}
.app-view{padding:28px 32px 64px;max-width:1440px;margin:0 auto;animation:viewFadeIn .18s ease-out}
@keyframes viewFadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.app-view-head{margin-bottom:24px;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.app-view-head h1{font-family:'Inter';font-weight:800;font-size:28px;letter-spacing:-0.02em;color:var(--ink);margin:0 0 4px;line-height:1.2}
.app-view-head h1 .em{color:var(--honey-d);font-style:italic;font-weight:500}
.app-view-head .sub{font-size:13.5px;color:var(--mute);margin:0;line-height:1.5}
.app-view-head .crumbs{font-family:'JetBrains Mono';font-size:10.5px;color:var(--mute);letter-spacing:.06em;margin-bottom:4px}
.app-view-head .crumbs b{color:var(--ink-2)}
.head-actions{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}
.head-actions .btn{padding:8px 14px;border-radius:8px;font-family:'Inter';font-size:12.5px;font-weight:600;background:var(--card);border:1.5px solid var(--line);color:var(--ink-2);cursor:pointer;transition:.15s}
.head-actions .btn:hover{border-color:var(--ink);color:var(--ink)}
.head-actions .btn.primary{background:var(--ink);color:var(--on-accent);border-color:var(--ink)}
.head-actions .btn.primary:hover{background:var(--honey-d);border-color:var(--honey-d)}
.head-actions .btn.active{border-color:var(--honey-d);color:var(--honey-d);background:var(--honey-l,rgba(245,166,35,.08))}
/* Filter chip bar revealed by Filter/⚙ buttons */
.filter-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:-6px 0 16px;padding:10px 14px;background:var(--card);border:1.5px solid var(--line);border-radius:10px}
.filter-bar .fb-lbl{font-size:12.5px;font-weight:600;color:var(--ink-2)}
.filter-bar .fb-chip{font-size:12px;font-weight:600;color:var(--ink-2);background:var(--bg,rgba(0,0,0,.04));border:1px solid var(--line);border-radius:999px;padding:4px 11px;cursor:pointer;transition:.15s}
.filter-bar .fb-chip:hover{border-color:var(--honey-d);color:var(--honey-d)}
.filter-bar .fb-note{font-size:11.5px;color:var(--mute);margin-left:auto}
@media (max-width:600px){.app-view{padding:18px 16px 48px}.app-view-head h1{font-size:20px}}

/* ── KPI ROW ────────────────────────────────────────── */
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
@media (max-width:900px){.kpi-row{grid-template-columns:repeat(2,1fr)}}
@media (max-width:540px){.kpi-row{grid-template-columns:1fr}}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:5px;position:relative;overflow:hidden}
.kpi .lbl{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);font-weight:700}
.kpi .v{font-family:'Inter';font-weight:800;font-size:28px;color:var(--ink);line-height:1;letter-spacing:-0.025em;display:flex;align-items:baseline;gap:4px}
.kpi .v .sub{font-family:'Inter';font-size:13px;font-weight:500;color:var(--mute)}
.kpi .delta{font-family:'JetBrains Mono';font-size:10.5px;font-weight:700;letter-spacing:.06em;margin-top:3px}
.kpi .delta.up{color:var(--emerald-d)}
.kpi .delta.down{color:var(--rose-d)}
.kpi .delta.neutral{color:var(--mute)}
.kpi.featured{background:var(--ink);color:var(--on-accent);border-color:var(--ink)}
.kpi.featured .lbl{color:var(--honey-soft)}
.kpi.featured .v{color:var(--on-accent)}
.kpi.featured .v .sub{color:#FFFFFF88}
.kpi.honey{background:var(--honey-cream);border-color:var(--honey-glow)}
.kpi.emerald{background:var(--emerald-glow);border-color:#A7F3D0}
.kpi.rose{background:var(--rose-glow);border-color:#FECDD3}

/* ── DASH CARD ──────────────────────────────────────── */
.dash-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.dash-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 22px;display:flex;flex-direction:column;gap:12px}
.dash-card.span-6{grid-column:span 6}
.dash-card.span-4{grid-column:span 4}
.dash-card.span-3{grid-column:span 3}
.dash-card.span-2{grid-column:span 2}
.dash-card.span-8{grid-column:span 8}
.dash-card.span-12{grid-column:span 12}
@media (max-width:1000px){.dash-card.span-6,.dash-card.span-8,.dash-card.span-4,.dash-card.span-3,.dash-card.span-2{grid-column:span 12}}
.dash-card .ch{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.dash-card .ch.ch-sub{align-items:center;margin-top:10px}
.dash-card .ch.ch-sub .hint{margin-top:0;text-transform:uppercase;letter-spacing:0.04em;font-weight:600}
.dash-card .ch h3{font-family:'Inter';font-weight:700;font-size:14.5px;color:var(--ink);margin:0;letter-spacing:-0.01em;line-height:1.25}
.dash-card .ch .hint{font-size:11.5px;color:var(--mute);margin-top:3px;line-height:1.4}
.dash-card .pill{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;padding:3px 9px;border-radius:999px;letter-spacing:.08em;text-transform:uppercase;background:var(--honey-glow);color:var(--honey-d);flex-shrink:0;white-space:nowrap}
.dash-card .pill.em{background:var(--emerald-glow);color:var(--emerald-d)}
.dash-card .pill.tl{background:var(--teal-glow);color:var(--teal-d)}
.dash-card .pill.rs{background:var(--rose-glow);color:var(--rose-d)}
.dash-card .pill.plum{background:var(--plum-glow);color:var(--plum-d)}

/* Stream readiness bars */
.stream-bars{display:flex;flex-direction:column;gap:8px}
.stream-bar{display:grid;grid-template-columns:200px 1fr 50px;align-items:center;gap:12px;font-size:12.5px}
.stream-bar .name{font-weight:600;color:var(--ink-2);font-size:12.5px;display:flex;align-items:center;gap:8px}
.stream-bar .name .dot{width:8px;height:8px;border-radius:50%;background:var(--honey-d);flex-shrink:0}
.stream-bar .name .dot.green{background:var(--emerald-d)}
.stream-bar .name .dot.honey{background:var(--honey-d)}
.stream-bar .name .dot.rose{background:var(--rose-d)}
.stream-bar .track{position:relative;height:14px;background:var(--mist);border-radius:7px;overflow:hidden}
.stream-bar .fill{height:100%;background:linear-gradient(90deg,var(--honey-soft),var(--honey-d));border-radius:7px;transition:.3s}
.stream-bar .fill.green{background:linear-gradient(90deg,#86EFAC,var(--emerald-d))}
.stream-bar .fill.rose{background:linear-gradient(90deg,#FECDD3,var(--rose))}
.stream-bar .pct{font-family:'JetBrains Mono';font-weight:700;color:var(--ink);font-size:12px;text-align:right;letter-spacing:.02em}
@media (max-width:700px){.stream-bar{grid-template-columns:140px 1fr 44px}}

/* Alert/activity list */
.alert-list{display:flex;flex-direction:column;gap:0;border-left:2px solid var(--line);padding-left:14px;margin-left:6px}
.alert-item{position:relative;padding:8px 0 14px}
.alert-item::before{content:"";position:absolute;left:-21px;top:13px;width:10px;height:10px;border-radius:50%;background:var(--honey-d);border:2px solid #fff;box-shadow:0 0 0 2px var(--line)}
.alert-item.rose::before{background:var(--rose);box-shadow:0 0 0 2px var(--rose-glow)}
.alert-item.emerald::before{background:var(--emerald-d);box-shadow:0 0 0 2px var(--emerald-glow)}
.alert-item .ai-msg{font-size:12.5px;color:var(--ink-2);line-height:1.5}
.alert-item .ai-msg b{color:var(--ink);font-weight:600}
.alert-item .ai-time{font-family:'JetBrains Mono';font-size:10px;color:var(--mute);letter-spacing:.06em;margin-top:2px}
.alert-item .ai-action{font-family:'Inter';font-size:11.5px;color:var(--honey-d);font-weight:600;margin-top:4px;background:none;border:none;cursor:pointer;padding:0;text-decoration:underline}

/* Student row / table for cohort surfaces */
.tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.tbl th{text-align:left;padding:10px 12px;font-family:'JetBrains Mono';font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-weight:700;border-bottom:1px solid var(--line);background:var(--fog)}
.tbl td{padding:12px;border-bottom:1px solid var(--line);color:var(--ink-2);vertical-align:middle}
.tbl tr:hover td{background:var(--mist)}
.tbl .student-name{font-weight:600;color:var(--ink)}
.tbl .small{font-size:11px;color:var(--mute);display:block;margin-top:2px}
.tbl .score-cell{font-family:'JetBrains Mono';font-weight:700;font-size:13px;color:var(--ink)}
.tbl .score-cell.strong{color:var(--emerald-d)}
.tbl .score-cell.weak{color:var(--rose-d)}
.tbl .score-cell.mid{color:var(--honey-d)}
.tbl .row-action{padding:5px 10px;font-size:11px;background:var(--ink);color:var(--on-accent);border:none;border-radius:5px;font-family:'Inter';font-weight:600;cursor:pointer}
.tbl .row-action:hover{background:var(--honey-d)}

/* Heatmap (skill gap view) */
.heatmap{display:grid;grid-template-columns:140px repeat(9,1fr);gap:2px;font-size:11px}
.heatmap .hm-cell{padding:10px 6px;text-align:center;border-radius:4px;font-family:'JetBrains Mono';font-weight:700;color:var(--ink)}
.heatmap .hm-label{background:transparent;text-align:left;color:var(--mute);font-family:'Inter';font-weight:600;font-size:11.5px;padding-right:10px}
.heatmap .hm-h{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);background:transparent;padding:8px 4px}
.heatmap .hm-cell.strong{background:var(--emerald-glow);color:var(--emerald-d)}
.heatmap .hm-cell.good{background:#DCFCE7;color:var(--emerald-d)}
.heatmap .hm-cell.mid{background:var(--honey-glow);color:var(--honey-d)}
.heatmap .hm-cell.weak{background:#FFE4E6;color:var(--rose-d)}
.heatmap .hm-cell.severe{background:var(--rose-glow);color:var(--rose-d)}

/* Forecast timeline */
.timeline{display:flex;flex-direction:column;gap:10px}
.timeline-week{display:grid;grid-template-columns:80px 1fr 90px;align-items:center;gap:12px;font-size:12.5px;padding:8px 0;border-bottom:1px dashed var(--line)}
.timeline-week .wk{font-family:'JetBrains Mono';font-size:11px;color:var(--mute);letter-spacing:.06em;font-weight:700}
.timeline-week .progress{position:relative;height:22px;background:var(--mist);border-radius:11px;overflow:hidden}
.timeline-week .progress .ready{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,var(--emerald-glow),var(--emerald));border-radius:11px}
.timeline-week .progress .lbl{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono';font-size:10.5px;font-weight:700;color:var(--ink-2);letter-spacing:.04em}
.timeline-week .delta{font-family:'JetBrains Mono';font-size:11px;font-weight:700;text-align:right;color:var(--emerald-d)}

/* Top decile student card */
.td-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.td-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:8px}
.td-card .td-top{display:flex;align-items:center;gap:12px}
.td-card .td-av{width:44px;height:44px;border-radius:50%;background:var(--honey);color:var(--ink);display:grid;place-items:center;font-weight:800;font-size:14px;flex-shrink:0}
.td-card .td-name{font-size:14px;font-weight:700;color:var(--ink);line-height:1.2}
.td-card .td-meta{font-size:11.5px;color:var(--mute)}
.td-card .td-score{font-family:'JetBrains Mono';font-weight:800;font-size:20px;color:var(--honey-d);margin-left:auto}
.td-card .td-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}
.td-card .td-tag{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.06em;font-weight:700;text-transform:uppercase;padding:2px 7px;border-radius:4px;background:var(--mist);color:var(--ink-2)}
.td-card .td-action{margin-top:6px;padding:7px 12px;background:var(--ink);color:var(--on-accent);border:none;border-radius:6px;font-family:'Inter';font-weight:600;font-size:12px;cursor:pointer}
.td-card .td-action:hover{background:var(--honey-d)}

/* HITL validation queue */
.val-row{display:grid;grid-template-columns:1fr 100px 100px;gap:14px;align-items:center;padding:14px 16px;background:var(--fog);border:1px solid var(--line);border-radius:10px;margin-bottom:8px}
.val-row .vr-title{font-weight:700;color:var(--ink);font-size:13.5px;margin-bottom:3px}
.val-row .vr-meta{font-size:11.5px;color:var(--mute);line-height:1.4}
.val-row .vr-pillar{font-family:'JetBrains Mono';font-size:10.5px;font-weight:700;letter-spacing:.06em;color:var(--honey-d);background:var(--honey-glow);padding:4px 10px;border-radius:6px;text-align:center}
.val-row .vr-actions{display:flex;gap:6px}
.val-row .vr-actions button{padding:6px 10px;font-size:11px;border:none;border-radius:5px;font-family:'Inter';font-weight:600;cursor:pointer}
.val-row .vr-actions .vr-yes{background:var(--emerald-d);color:var(--on-accent)}
.val-row .vr-actions .vr-no{background:var(--rose);color:var(--on-accent)}
@media (max-width:700px){.val-row{grid-template-columns:1fr;gap:8px}}

/* Consent log entries */
.consent-row{display:grid;grid-template-columns:140px 1fr 140px;gap:14px;align-items:center;padding:11px 14px;background:var(--card);border:1px solid var(--line);border-radius:8px;margin-bottom:6px;font-size:12.5px}
.consent-row .cr-time{font-family:'JetBrains Mono';font-size:11px;color:var(--mute);letter-spacing:.04em}
.consent-row .cr-event{color:var(--ink-2);line-height:1.4}
.consent-row .cr-event b{color:var(--ink);font-weight:600}
.consent-row .cr-status{font-family:'JetBrains Mono';font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:4px;text-align:center}
.consent-row .cr-status.granted{background:var(--emerald-glow);color:var(--emerald-d)}
.consent-row .cr-status.revoked{background:var(--rose-glow);color:var(--rose-d)}
.consent-row .cr-status.audit{background:var(--mist);color:var(--mute)}
@media (max-width:700px){.consent-row{grid-template-columns:1fr;gap:6px}}

/* Privacy notice strip */
.privacy-strip{padding:14px 18px;background:var(--teal-glow);border-left:3px solid var(--teal);border-radius:0 8px 8px 0;font-size:12.5px;color:var(--teal-d);line-height:1.55;margin-bottom:16px}
.privacy-strip b{color:var(--ink)}

/* Leaderboard */
.lb-table{width:100%;border-collapse:collapse;font-size:13px}
.lb-table th{text-align:left;padding:10px 12px;font-family:'JetBrains Mono';font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-weight:700;border-bottom:2px solid var(--line)}
.lb-table td{padding:12px;border-bottom:1px solid var(--line);color:var(--ink-2)}
.lb-table .rank{font-family:'JetBrains Mono';font-weight:800;color:var(--ink);width:50px}
.lb-table .me{background:var(--honey-glow)}
.lb-table .me .rank{color:var(--honey-d)}
.lb-table .college-name{font-weight:700;color:var(--ink)}
.lb-table .college-name .sub{font-size:11px;color:var(--mute);font-weight:400;display:block;margin-top:2px}
.lb-table .lb-score{font-family:'JetBrains Mono';font-weight:700;color:var(--ink);font-size:13px}
.lb-table .lb-delta{font-family:'JetBrains Mono';font-weight:700;font-size:11px}
.lb-table .lb-delta.up{color:var(--emerald-d)}
.lb-table .lb-delta.down{color:var(--rose-d)}

.placeholder{padding:48px 32px;text-align:center;color:var(--mute);background:var(--card);border:1px dashed var(--line);border-radius:14px}
.placeholder h3{margin:0 0 8px;color:var(--ink);font-family:'Inter';font-weight:700;font-size:18px}
.placeholder p{font-size:13px;margin:0;line-height:1.55}

/* App shell layout: inlined fallback mirroring brand.css so the sidebar renders correctly even if the external stylesheet fails to load. */
.app-shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:calc(100vh - 62px);background:var(--fog)}
.app-sidebar{position:sticky;top:62px;align-self:start;height:calc(100vh - 62px);overflow-y:auto;padding:18px 12px;border-right:1px solid var(--line);background:var(--surface);font-family:'Inter',sans-serif;display:flex;flex-direction:column;gap:2px}
.app-sidebar::-webkit-scrollbar{width:0}
.app-sidebar.persona-tpo{background:var(--ink);color:var(--on-accent);border-right:1px solid #FFFFFF14}
.app-sidebar.persona-admin{background:var(--ink-2);color:var(--on-accent);border-right:1px solid #FFFFFF1A}
.app-nav-section{padding:14px 14px 4px;font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--mute);letter-spacing:.18em;text-transform:uppercase;font-weight:700}
.app-sidebar.persona-tpo .app-nav-section,.app-sidebar.persona-admin .app-nav-section{color:#FFFFFF80}
.app-nav-section.internal{padding-top:18px;border-top:1px dotted var(--line);margin-top:4px}
.app-sidebar.persona-tpo .app-nav-section.internal,.app-sidebar.persona-admin .app-nav-section.internal{border-top-color:#FFFFFF22}
.app-nav-btn{padding:8px 14px;border-radius:8px;font-family:'Inter';font-size:13px;font-weight:500;color:var(--ink-2);background:transparent;border:none;cursor:pointer;display:flex;align-items:center;gap:10px;transition:.12s;width:100%;text-align:left;line-height:1.35;user-select:none}
.app-sidebar.persona-tpo .app-nav-btn,.app-sidebar.persona-admin .app-nav-btn{color:#FFFFFFB8}
.app-nav-btn:hover{background:var(--honey-glow);color:var(--honey-d)}
.app-sidebar.persona-tpo .app-nav-btn:hover,.app-sidebar.persona-admin .app-nav-btn:hover{background:#FFFFFF12;color:var(--on-accent)}
.app-nav-btn.active{background:var(--honey-d);color:var(--on-accent);font-weight:600;box-shadow:0 1px 0 #00000020}
.app-nav-btn .idx{font-family:'JetBrains Mono';font-size:10px;opacity:.7;letter-spacing:.06em;min-width:22px;flex-shrink:0}
.app-nav-btn .ic{width:18px;display:grid;place-items:center;font-size:13px;flex-shrink:0}
.app-nav-btn .lbl{flex:1}
.app-nav-btn .count{margin-left:auto;font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;padding:1px 7px;border-radius:999px;background:var(--rose-glow);color:var(--rose-d)}
.app-nav-btn .pill-int{margin-left:auto;font-family:'JetBrains Mono';font-size:8px;color:var(--mute);letter-spacing:.1em;background:var(--mist);padding:2px 5px;border-radius:4px;font-weight:700}
.app-sidebar.persona-tpo .app-nav-btn .pill-int,.app-sidebar.persona-admin .app-nav-btn .pill-int{background:#FFFFFF12;color:#FFFFFFA0}
.app-nav-btn .light-data{margin-left:auto;font-size:11px;opacity:.5}
.app-main{padding:0;background:var(--fog);min-width:0;overflow-x:hidden}
@media (max-width:900px){
  .app-shell{grid-template-columns:1fr;min-height:auto}
  .app-sidebar{position:relative;top:0;height:auto;border-right:none;border-bottom:1px solid var(--line);padding:10px 14px;flex-direction:row;flex-wrap:nowrap;gap:6px;overflow-x:auto;overflow-y:hidden}
  .app-nav-section{display:none}
  .app-nav-btn{flex:0 0 auto;width:auto;padding:6px 12px;border-radius:999px;font-size:12px;white-space:nowrap}
  .app-nav-btn .idx,.app-nav-btn .pill-int,.app-nav-btn .count,.app-nav-btn .light-data{display:none}
}

/* ════════════════════════════════════════════════════════════
   AUTH — login / signup gate (teal-themed, College persona)
   ════════════════════════════════════════════════════════════ */
.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--fog);padding:24px}
.auth-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:40px;max-width:400px;width:100%;box-shadow:0 4px 24px rgba(11,18,32,.06)}
.auth-card h2{font-family:'Inter';font-weight:800;font-size:24px;letter-spacing:-.02em;color:var(--ink);margin:0 0 6px}
.auth-card .sub{font-size:13.5px;color:var(--mute);margin:0 0 28px;line-height:1.5}
.auth-field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.auth-field label{font-family:'JetBrains Mono';font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);font-weight:700}
.auth-field input{padding:11px 14px;border:1px solid var(--line);border-radius:8px;font-family:'Inter';font-size:13.5px;color:var(--ink);outline:none;transition:.15s;box-sizing:border-box;width:100%}
.auth-field input:focus{border-color:var(--teal-d);box-shadow:0 0 0 3px var(--teal-glow)}
.auth-btn{width:100%;padding:12px;background:var(--teal-d);color:var(--on-accent);border:none;border-radius:10px;font-family:'Inter';font-weight:700;font-size:14px;cursor:pointer;margin-top:6px;transition:.15s}
.auth-btn:hover{background:var(--ink)}
.auth-btn.sec{background:var(--card);color:var(--ink);border:1px solid var(--line);margin-top:8px}
.auth-btn.sec:hover{background:var(--fog);border-color:var(--teal-d);color:var(--teal-d)}
.auth-switch{text-align:center;margin-top:18px;font-size:13px;color:var(--mute)}
.auth-switch a{color:var(--teal-d);font-weight:600;cursor:pointer;text-decoration:none}
.auth-dpdp{margin-top:16px;padding:11px 14px;background:var(--teal-glow);border-radius:8px;font-size:11.5px;color:var(--ink-2);line-height:1.55;border:1px solid var(--teal)}
.auth-back{display:block;text-align:center;margin-top:14px;font-size:12px;color:var(--mute);cursor:pointer;text-decoration:none}
.auth-back:hover{color:var(--teal-d)}

/* ── Profile view ── */
.profile-head{display:flex;align-items:center;gap:16px;padding-bottom:18px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.profile-avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--honey),var(--honey-d));color:var(--ink);display:grid;place-items:center;font-weight:700;font-size:22px;letter-spacing:.02em;flex-shrink:0}
.profile-id h3{margin:0 0 4px;font-size:18px;color:var(--ink)}
.profile-role{font-size:12.5px;color:var(--mute);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 28px;max-width:640px}
.pf-field .pf-label{font-size:11px;color:var(--mute);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.pf-field .pf-value{font-size:14px;color:var(--ink);font-weight:500}
.app-view .btn-ghost{padding:9px 16px;font-size:12.5px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:8px;font-family:'Inter';font-weight:600;cursor:pointer;transition:.13s}
.app-view .btn-ghost:hover{background:var(--mist)}
@media(max-width:560px){.profile-grid{grid-template-columns:1fr}}

/* ── Settings: Appearance / Dark-mode toggle (base, non-dark) ── */
.settings-rows{display:flex;flex-direction:column;gap:8px;max-width:720px}
.set-row{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--card);border:1px solid var(--line);border-radius:10px}
.set-row .sr-body{flex:1;min-width:0}
.set-row .sr-title{font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:2px}
.set-row .sr-desc{font-size:11.5px;color:var(--mute);line-height:1.4}
.set-row .sr-control{flex-shrink:0;margin-left:14px}
.set-row .sr-toggle{width:42px;height:24px;background:var(--line);border-radius:999px;position:relative;cursor:pointer;transition:.18s;border:none;padding:0}
.set-row .sr-toggle.on{background:var(--honey-d)}
.set-row .sr-toggle::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;background:var(--on-accent);border-radius:50%;transition:.18s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.set-row .sr-toggle.on::after{left:21px}

/* ════════════════════════════════════════════════════════════
   DARK MODE — surface overrides (tokens flip in shared/brand.css)
   ════════════════════════════════════════════════════════════ */
/* Elevated surfaces (white in light) → --surface */
[data-theme="dark"] .tb-search,
[data-theme="dark"] .tb-search-pop,
[data-theme="dark"] .tb-user-menu,
[data-theme="dark"] .btn,
[data-theme="dark"] .kpi,
[data-theme="dark"] .dash-card,
[data-theme="dark"] .td-card,
[data-theme="dark"] .consent-row,
[data-theme="dark"] .placeholder,
[data-theme="dark"] .app-sidebar,
[data-theme="dark"] .auth-card,
[data-theme="dark"] .auth-btn.sec,
[data-theme="dark"] .set-row{ background:var(--surface) }

/* Intentionally-dark surfaces (--ink bg) → --deep (stay dark in BOTH themes) */
[data-theme="dark"] .app-topbar,
[data-theme="dark"] .btn.primary,
[data-theme="dark"] .kpi.featured,
[data-theme="dark"] .row-action,
[data-theme="dark"] .td-action,
[data-theme="dark"] .app-sidebar.persona-tpo{ background:var(--deep) }

/* ════════════════════════════════════════════════════════════
   FACULTY LENS — components (role==='faculty')
   ════════════════════════════════════════════════════════════ */
/* Signal bars (class performance) */
.signal-bars{display:flex;flex-direction:column;gap:9px}
.signal-bar{display:grid;grid-template-columns:120px 1fr 42px;align-items:center;gap:12px;font-size:12.5px}
.signal-bar .name{font-weight:600;color:var(--ink-2)}
.signal-bar .track{position:relative;height:13px;background:var(--mist);border-radius:7px;overflow:hidden}
.signal-bar .fill{height:100%;border-radius:7px;background:linear-gradient(90deg,var(--honey-soft),var(--honey-d))}
.signal-bar .fill.strong{background:linear-gradient(90deg,#86EFAC,var(--emerald-d))}
.signal-bar .fill.good{background:linear-gradient(90deg,#86EFAC,var(--emerald))}
.signal-bar .fill.weak{background:linear-gradient(90deg,#FCD34D,var(--honey-d))}
.signal-bar .fill.severe{background:linear-gradient(90deg,#FECDD3,var(--rose))}
.signal-bar .pct{font-family:'JetBrains Mono';font-weight:700;color:var(--ink);font-size:12px;text-align:right}

/* AI Copilot recs */
.ai-rec{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--teal-glow);border:1px solid var(--teal-soft);border-radius:10px;margin-bottom:8px}
.ai-rec .ai-ic{width:26px;height:26px;border-radius:7px;background:var(--teal-d);color:var(--on-accent);display:grid;place-items:center;font-size:13px;flex-shrink:0}
.ai-rec .ai-txt{flex:1;font-size:12.5px;color:var(--ink-2);line-height:1.45}
.ai-rec .ai-txt b{color:var(--ink);font-weight:700}
.ai-rec .ai-cta{flex-shrink:0;padding:6px 12px;background:var(--teal-d);color:var(--on-accent);border:none;border-radius:7px;font-family:'Inter';font-weight:600;font-size:11.5px;cursor:pointer}
.ai-rec .ai-cta:hover{background:var(--ink)}
@media (max-width:600px){.ai-rec{flex-wrap:wrap}}

/* ════════════════════════════════════════════════════════════
   STRATEGIC GOALS (p-strategy) — institution command board
   ════════════════════════════════════════════════════════════ */
.sg .sg-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.sg-title{font-family:'Inter';font-weight:800;font-size:23px;letter-spacing:-0.02em;color:var(--ink);margin:0 0 3px}
.sg-star{color:var(--honey)}
.sg-head-acts{display:flex;gap:10px;flex-shrink:0}
.sg-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:9px;font-family:'Inter';font-weight:600;font-size:12.5px;cursor:pointer;transition:.15s;border:1.5px solid var(--line);background:var(--card);color:var(--ink-2)}
.sg-btn span{font-size:13px;line-height:1}
.sg-btn.ghost:hover{border-color:var(--honey);color:var(--ink)}
.sg-btn.primary{background:var(--honey-d);border-color:var(--honey-d);color:var(--on-accent)}
.sg-btn.primary:hover{background:var(--ink)}

.sg-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.sg-span-7{grid-column:span 7}.sg-span-6{grid-column:span 6}.sg-span-5{grid-column:span 5}.sg-span-4{grid-column:span 4}
@media (max-width:1100px){.sg-span-7,.sg-span-6,.sg-span-5,.sg-span-4{grid-column:span 12}}

/* card header with numbered badge */
.sg-ch{align-items:flex-start}
.sg-ch-l{display:flex;align-items:flex-start;gap:11px}
.sg-num{flex-shrink:0;width:24px;height:24px;border-radius:7px;background:var(--honey-d);color:var(--on-accent);display:grid;place-items:center;font-family:'JetBrains Mono';font-weight:700;font-size:12.5px;margin-top:1px}
.sg-ch h3{margin:0}
.sg-mut{color:var(--mute);font-weight:500}

/* shared tag/flag pills */
.sg-flag{font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.05em;padding:2px 6px;border-radius:5px;text-transform:uppercase}
.sg-flag.rose{background:var(--rose-glow);color:var(--rose-d)}
.sg-flag.honey{background:var(--honey-glow);color:var(--honey-d)}
.sg-flag.teal{background:var(--teal-glow);color:var(--teal-d)}
.sg-tag{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
.sg-tag.rose{background:var(--rose-glow);color:var(--rose-d)}
.sg-tag.warn{background:var(--honey-glow);color:var(--honey-d)}
.sg-tag.teal{background:var(--teal-glow);color:var(--teal-d)}
.sg-tag.emerald{background:var(--emerald-glow);color:var(--emerald-d)}
.sg-tag.soft{font-weight:600;background:var(--fog);color:var(--ink-2);border:1px solid var(--line)}
.sg-tag.soft.rose{color:var(--rose-d)}.sg-tag.soft.warn{color:var(--honey-d)}.sg-tag.soft.teal{color:var(--teal-d)}.sg-tag.soft.emerald{color:var(--emerald-d)}

/* 1 · Priority Queue */
.sg-queue{display:flex;flex-direction:column;gap:10px}
.sg-q{display:flex;align-items:flex-start;gap:13px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--fog)}
.sg-q-ic{flex-shrink:0;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-size:17px;background:var(--card);border:1px solid var(--line)}
.sg-q-ic.rose{background:var(--rose-glow);border-color:transparent}
.sg-q-ic.warn{background:var(--honey-glow);border-color:transparent}
.sg-q-ic.teal{background:var(--teal-glow);border-color:transparent}
.sg-q-main{flex:1;min-width:0}
.sg-q-top{display:flex;align-items:center;gap:8px;margin-bottom:3px}
.sg-q-top h4{margin:0;font-size:13.5px;font-weight:700;color:var(--ink)}
.sg-q-desc{margin:0 0 9px;font-size:11.5px;color:var(--mute);line-height:1.45}
.sg-q-meta{display:grid;grid-template-columns:repeat(4,auto);gap:9px 18px;justify-content:start;align-items:center}
.sg-qm{display:flex;flex-direction:column;gap:3px}
.sg-qm-k{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:var(--mute)}
.sg-qm-v{font-size:12px;color:var(--ink-2)}
.sg-qm-v b{color:var(--ink);font-weight:700}
.sg-q-cta{flex-shrink:0;align-self:center;padding:8px 13px;border-radius:8px;background:var(--card);border:1.5px solid var(--line);color:var(--ink-2);font-family:'Inter';font-weight:600;font-size:11.5px;cursor:pointer;transition:.15s;white-space:nowrap}
.sg-q-cta:hover{border-color:var(--honey-d);color:var(--honey-d)}
@media (max-width:640px){.sg-q{flex-wrap:wrap}.sg-q-meta{grid-template-columns:1fr 1fr}}

/* 2 · Leadership Decisions */
.sg-decs{display:flex;flex-direction:column;gap:11px}
.sg-dec{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--fog)}
.sg-dec-top{display:flex;align-items:flex-start;gap:11px;margin-bottom:9px}
.sg-dec-ic{flex-shrink:0;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:16px;background:var(--honey-glow)}
.sg-dec-h{flex:1;min-width:0}
.sg-dec-h h4{margin:0 0 2px;font-size:13px;font-weight:700;color:var(--ink)}
.sg-dec-by{font-size:11px;color:var(--mute)}.sg-dec-by b{color:var(--ink-2);font-weight:600}
.sg-dec-budget{font-size:12px;color:var(--ink-2);margin-bottom:11px}.sg-dec-budget b{color:var(--ink);font-weight:700}
.sg-dec-acts{display:flex;gap:9px}
.sg-approve,.sg-reject{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px;border-radius:8px;font-family:'Inter';font-weight:600;font-size:12px;cursor:pointer;transition:.15s;border:1.5px solid}
.sg-approve{background:var(--emerald-glow);border-color:transparent;color:var(--emerald-d)}
.sg-approve:hover{background:var(--emerald-d);color:var(--on-accent)}
.sg-reject{background:var(--card);border-color:var(--line);color:var(--rose-d)}
.sg-reject:hover{background:var(--rose-glow);border-color:transparent}

/* 3 · Institutional Opportunities */
.sg-opps{display:flex;flex-direction:column;gap:11px}
.sg-opp{display:flex;align-items:flex-start;gap:13px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--fog)}
.sg-opp-ic{flex-shrink:0;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-size:17px;background:var(--teal-glow)}
.sg-opp-main{flex:1;min-width:0}
.sg-opp-main h4{margin:0 0 3px;font-size:13px;font-weight:700;color:var(--ink)}
.sg-opp-desc{margin:0 0 7px;font-size:11.5px;color:var(--mute);line-height:1.45}
.sg-opp-rec{font-size:11.5px;color:var(--ink-2)}.sg-opp-rec .sg-mut{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.04em;text-transform:uppercase;margin-right:5px}
.sg-opp-r{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:9px}
.sg-opp-pot{text-align:right;line-height:1.1}
.sg-opp-pot b{display:block;font-family:'Inter';font-weight:800;font-size:19px;color:var(--emerald-d)}
.sg-opp-pot span{font-size:10px;color:var(--mute)}
.sg-opp-cta{padding:7px 13px;border-radius:8px;background:var(--ink);border:none;color:var(--on-accent);font-family:'Inter';font-weight:600;font-size:11.5px;cursor:pointer;transition:.15s;white-space:nowrap}
.sg-opp-cta:hover{background:var(--honey-d)}
@media (max-width:640px){.sg-opp{flex-wrap:wrap}.sg-opp-r{flex-direction:row;align-items:center;width:100%;justify-content:space-between}}

/* 4 · Goal Tracker */
.sg-goals{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.sg-goal{padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--fog)}
.sg-goal-top{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.sg-goal-ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:14px}
.sg-goal-ic.emerald{background:var(--emerald-glow)}.sg-goal-ic.honey{background:var(--honey-glow)}.sg-goal-ic.teal{background:var(--teal-glow)}.sg-goal-ic.plum{background:var(--plum-glow)}
.sg-goal-lbl{font-size:12px;font-weight:600;color:var(--ink-2);line-height:1.2}
.sg-goal-num{display:flex;align-items:baseline;gap:5px;margin-bottom:8px}
.sg-goal-num b{font-family:'Inter';font-weight:800;font-size:22px;color:var(--ink)}
.sg-goal-num .sg-mut{font-size:12px}
.sg-bar{height:7px;border-radius:4px;background:var(--line);overflow:hidden;margin-bottom:8px}
.sg-bar i{display:block;height:100%;border-radius:4px;background:var(--emerald-d)}
.sg-bar i.rose{background:var(--honey-d)}.sg-bar i.emerald{background:var(--emerald-d)}
.sg-goal-st{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600}
.sg-goal-st.emerald{color:var(--emerald-d)}.sg-goal-st.rose{color:var(--rose-d)}
.sg-dot{width:7px;height:7px;border-radius:50%;background:currentColor}
@media (max-width:640px){.sg-goals{grid-template-columns:1fr}}

/* 5 · Impact Forecast */
.sg-fc{width:100%;border-collapse:collapse;font-size:12px}
.sg-fc th{text-align:left;font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--mute);font-weight:600;padding:0 8px 9px 0;border-bottom:1px solid var(--line)}
.sg-fc th:last-child,.sg-fc td:last-child{text-align:right;padding-right:0}
.sg-fc td{padding:10px 8px 10px 0;border-bottom:1px solid var(--line);color:var(--ink-2)}
.sg-fc td b{color:var(--ink);font-weight:700}
.sg-fc tr:last-child td{border-bottom:none}
.sg-fc-imp{font-weight:700;color:var(--emerald-d);background:var(--emerald-glow);padding:2px 8px;border-radius:999px;font-size:11px}
.sg-fc-note{margin-top:11px;font-size:10.5px;color:var(--mute);line-height:1.45;background:var(--honey-glow);padding:9px 11px;border-radius:9px}

/* 6 · AI Executive Brief */
.sg-brief-list{display:flex;flex-direction:column;gap:9px}
.sg-brief-row{display:flex;align-items:flex-start;gap:10px;padding:10px 11px;border-radius:10px;background:var(--fog);border:1px solid var(--line);border-left-width:3px}
.sg-brief-row.warn{border-left-color:var(--honey-d);background:var(--honey-glow)}
.sg-brief-row.rose{border-left-color:var(--rose);background:var(--rose-glow)}
.sg-brief-row.emerald{border-left-color:var(--emerald-d);background:var(--emerald-glow)}
.sg-brief-ic{flex-shrink:0;font-size:13px;line-height:1.3}
.sg-brief-tx{font-size:11.5px;color:var(--ink-2);line-height:1.45}.sg-brief-tx b{color:var(--ink);font-weight:700}
.sg-brief-link{margin-top:12px;align-self:flex-start}

/* 7 · Action Center */
.sg-acts{display:flex;flex-direction:column;gap:9px}
.sg-act{display:flex;align-items:center;gap:12px;width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:var(--fog);cursor:pointer;transition:.15s;text-align:left}
.sg-act:hover{border-color:var(--honey);background:var(--honey-glow)}
.sg-act-ic{flex-shrink:0;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-size:15px;background:var(--card);border:1px solid var(--line)}
.sg-act-h{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.sg-act-h b{font-size:12.5px;font-weight:600;color:var(--ink)}
.sg-act-h span{font-size:10.5px;color:var(--mute);line-height:1.3}
.sg-act-arr{flex-shrink:0;font-size:18px;color:var(--mute);font-weight:300}

/* Class cards */
.class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.class-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px;cursor:pointer;transition:.15s;display:flex;flex-direction:column;gap:12px}
.class-card:hover{border-color:var(--honey-soft);transform:translateY(-2px);box-shadow:0 10px 26px -16px rgba(11,18,32,.4)}
.class-card .cc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.class-card .cc-name{font-family:'Inter';font-weight:700;font-size:15px;color:var(--ink);line-height:1.2}
.class-card .cc-code{font-family:'JetBrains Mono';font-size:10.5px;color:var(--mute);letter-spacing:.06em;margin-top:3px}
.class-card .cc-tag{font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--honey-glow);color:var(--honey-d)}
.class-card .cc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:1px solid var(--line);padding-top:12px}
.class-card .cc-stat .cs-v{font-family:'Inter';font-weight:800;font-size:18px;color:var(--ink);letter-spacing:-.02em}
.class-card .cc-stat .cs-l{font-family:'JetBrains Mono';font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:700;margin-top:2px}
.class-card .cc-foot{display:flex;align-items:center;justify-content:space-between;font-size:11.5px}
.class-card .cc-risk{color:var(--rose-d);font-weight:600}
.class-card .cc-go{color:var(--honey-d);font-weight:600}

/* Class selector */
.class-select{display:flex;align-items:center;gap:8px}
.class-select label{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-weight:700}
.class-select select{padding:8px 12px;border:1.5px solid var(--line);border-radius:8px;font-family:'Inter';font-size:12.5px;font-weight:600;color:var(--ink);background:var(--card);cursor:pointer;outline:none}
.class-select select:focus{border-color:var(--honey-d)}

/* Engagement heatmap (student × week) */
.eng-grid{display:grid;grid-template-columns:190px repeat(8,1fr);gap:6px 5px;font-size:11px;align-items:center}
.eng-grid .eg-h{display:flex;flex-direction:column;gap:1px;text-align:center;color:var(--mute);padding:2px 2px 9px}
.eng-grid .eg-h b{font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--ink-2);font-family:'JetBrains Mono'}
.eng-grid .eg-h span{font-size:8.5px;color:var(--mute);font-family:'JetBrains Mono';letter-spacing:.01em}
.eng-grid .eg-h.eg-corner{justify-content:flex-end;align-items:flex-start;font-size:9px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;font-family:'JetBrains Mono'}
.eng-grid .eg-name{display:flex;align-items:center;gap:9px;font-family:'Inter';font-weight:600;font-size:12.5px;color:var(--ink-2);padding-right:12px;white-space:nowrap;overflow:hidden}
.eng-grid .eg-name span{overflow:hidden;text-overflow:ellipsis}
.eng-grid .eg-av{width:28px;height:28px;border-radius:50%;object-fit:cover;flex:none;background:var(--mist);border:1px solid var(--line)}
/* labelled intensity cell — stepped palette so adjacent bands stay distinct */
.eng-grid .hm-cell{height:30px;display:flex;align-items:center;justify-content:center;border-radius:6px;font-family:'JetBrains Mono';font-weight:700;font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;transition:transform .1s;cursor:default}
.eng-grid .hm-cell:hover{transform:scale(1.06)}
.eng-grid .hm-cell.strong{background:#6EE7B7;color:#065F46}            /* High — saturated mint */
.eng-grid .hm-cell.good{background:#C7F2DC;color:var(--emerald-d)}      /* Good — pale green */
.eng-grid .hm-cell.mid{background:var(--honey-soft);color:#92400E}      /* Mid — amber */
.eng-grid .hm-cell.weak{background:#FECDD3;color:var(--rose-d)}         /* Low — soft rose */
.eng-grid .hm-cell.severe{background:#E2E8F0;color:#64748B}             /* Inactive — slate/grey */

/* ── Student Engagement dashboard ───────────────────────────── */
/* Activity-intensity tint palette (matches heatmap bands) */
.eng-hi  {--eng-c:#065F46;          --eng-bg:#6EE7B7}
.eng-good{--eng-c:var(--emerald-d); --eng-bg:#C7F2DC}
.eng-mid {--eng-c:#92400E;          --eng-bg:var(--honey-soft)}
.eng-low {--eng-c:var(--rose-d);    --eng-bg:#FECDD3}
.eng-off {--eng-c:#64748B;          --eng-bg:#E2E8F0}

/* KPI breakdown row (5 across) */
.eng-kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:22px}
.eng-kpi{gap:6px;padding:16px 18px}
.eng-kpi .ek-top{display:flex;align-items:center;gap:12px;margin-bottom:2px}
.eng-kpi .ek-ic{width:38px;height:38px;flex:none;border-radius:11px;display:grid;place-items:center;font-size:18px;font-weight:800;background:var(--eng-bg);color:var(--eng-c)}
.eng-kpi .ek-v{font-family:'Inter';font-size:30px;font-weight:800;line-height:1;letter-spacing:-0.03em;color:var(--ink)}
.eng-kpi .ek-lbl{font-size:13px;font-weight:600;color:var(--ink-2)}
.eng-kpi .ek-sub{font-size:11.5px;color:var(--mute)}
/* softer badge tints than the heatmap palette */
.eng-kpi .ek-ic.eng-hi{background:var(--emerald-glow);color:var(--emerald-d)}
.eng-kpi .ek-ic.eng-good{background:#DCFCE7;color:var(--emerald)}
.eng-kpi .ek-ic.eng-mid{background:var(--honey-glow);color:var(--honey-d)}
.eng-kpi .ek-ic.eng-low{background:var(--rose-glow);color:var(--rose-d)}
.eng-kpi .ek-ic.eng-off{background:var(--rose-glow);color:var(--rose-d)}
@media(max-width:1000px){.eng-kpi-row{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.eng-kpi-row{grid-template-columns:repeat(2,1fr)}}

/* Tabs sit inline in the card header */
.eng-tabs{margin-bottom:0}

/* Donut + legend segment colours */
.asg-donut .ring-seg.eng-hi{stroke:var(--emerald-d)}
.asg-donut .ring-seg.eng-good{stroke:var(--emerald)}
.asg-donut .ring-seg.eng-mid{stroke:var(--honey)}
.asg-donut .ring-seg.eng-low{stroke:var(--rose)}
.asg-donut .ring-seg.eng-off{stroke:#94A3B8}
.perf-legend .dot.eng-hi{background:var(--emerald-d)}
.perf-legend .dot.eng-good{background:var(--emerald)}
.perf-legend .dot.eng-mid{background:var(--honey)}
.perf-legend .dot.eng-low{background:var(--rose)}
.perf-legend .dot.eng-off{background:#94A3B8}

/* Heatmap legend */
.eng-legend{margin-top:14px;display:flex;gap:16px;flex-wrap:wrap;font-size:11px;color:var(--mute);font-family:'JetBrains Mono';letter-spacing:.03em;align-items:center}
.eng-legend span{display:inline-flex;align-items:center;gap:5px}
.eng-legend .el-sw{width:12px;height:12px;border-radius:3px;background:var(--eng-bg)}

/* Engagement % chip (table + attention list) */
.eng-pct{display:inline-block;font-family:'JetBrains Mono';font-weight:800;font-size:12px;padding:3px 9px;border-radius:999px;background:var(--eng-bg);color:var(--eng-c)}
.eng-pct.strong{--eng-bg:var(--emerald-glow);--eng-c:var(--emerald-d)}
.eng-pct.good{--eng-bg:#DCFCE7;--eng-c:var(--emerald-d)}
.eng-pct.mid{--eng-bg:var(--honey-glow);--eng-c:var(--honey-d)}
.eng-pct.weak{--eng-bg:#FFE4E6;--eng-c:var(--rose-d)}
.eng-pct.severe{--eng-bg:var(--rose-glow);--eng-c:var(--rose-d)}

/* Right rail: stack the two cards */
.eng-rail{display:flex;flex-direction:column;gap:16px}

/* Attention list row */
.eng-att-row{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:'av id pct' 'av btn btn';gap:4px 12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.eng-att-row:last-child{border-bottom:none;padding-bottom:0}
.eng-att-row .perf-avatar{grid-area:av}
.eng-att-row .pa-id{grid-area:id;display:flex;flex-direction:column;gap:2px;min-width:0}
.eng-att-row .eng-att-pct{grid-area:pct;justify-self:end;font-family:'JetBrains Mono';font-weight:800;font-size:14px;color:var(--eng-c)}
.eng-att-row .eng-att-pct.strong,.eng-att-row .eng-att-pct.good{--eng-c:var(--emerald-d)}
.eng-att-row .eng-att-pct.mid{--eng-c:var(--honey-d)}
.eng-att-row .eng-att-pct.weak,.eng-att-row .eng-att-pct.severe{--eng-c:var(--rose-d)}
.eng-att-row .perf-viewbtn.sm{grid-area:btn;justify-self:start;padding:5px 12px;font-size:11px}

/* Insight / how-to lists */
.eng-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px}
.eng-list li{display:flex;gap:11px;font-size:12.5px;line-height:1.5;color:var(--body)}
.eng-list li b{color:var(--ink);font-weight:700}
.eng-list .el-ic{width:24px;height:24px;flex:none;border-radius:7px;display:grid;place-items:center;font-size:12px;font-weight:800;background:var(--mist);color:var(--ink-2)}
.eng-list .el-ic.em{background:var(--emerald-glow);color:var(--emerald-d)}
.eng-list .el-ic.hny{background:var(--honey-glow);color:var(--honey-d)}
.eng-list .el-ic.tl{background:var(--teal-glow);color:var(--teal-d)}
.eng-list .el-ic.bl{background:var(--teal-glow);color:var(--teal-d)}
.eng-list .el-ic.rs{background:var(--rose-glow);color:var(--rose-d)}

/* card-header info glyph */
.ch-info{font-size:11px;color:var(--mute);cursor:default;vertical-align:1px;opacity:.6;font-weight:400}

/* date-range selector in the header */
.range-select{position:relative}
.range-select .rs-cal{font-size:12px;color:var(--mute)}

/* Engagement summary: donut left, legend right */
.eng-sum-body{display:flex;align-items:center;gap:14px}
.eng-sum-body .asg-donut-wrap{margin:0;flex:none;width:108px;height:108px}
.eng-sum-legend{flex:1;margin-top:0;padding-top:0;border-top:none;gap:9px;min-width:0}
.eng-sum-legend span{font-size:12px}
.eng-sum-legend .lab{font-weight:600;color:var(--eng-c);white-space:nowrap}
.eng-sum-legend .lab.eng-hi{color:var(--emerald-d)}
.eng-sum-legend .lab.eng-good{color:var(--emerald)}
.eng-sum-legend .lab.eng-mid{color:var(--honey-d)}
.eng-sum-legend .lab.eng-low{color:var(--rose)}
.eng-sum-legend .lab.eng-off{color:var(--rose-d)}
.eng-sum-legend .ct{font-weight:600}
.eng-sum-legend em{color:var(--ink-2)}

/* Attention list (photo · name · reason · button) */
.eng-att-list{margin-top:2px}
.eng-att-row2{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.eng-att-row2:first-child{padding-top:4px}
.eng-att-row2:last-child{border-bottom:none;padding-bottom:0}
.eng-att-av{width:40px;height:40px;border-radius:50%;object-fit:cover;flex:none;background:var(--mist);border:1px solid var(--line)}
.eng-att-row2 .pa-id{flex:1;min-width:0}
.eng-att-row2 .perf-viewbtn.sm{flex:none;padding:7px 14px;font-size:11.5px;color:var(--plum-d);border-color:var(--plum-soft);background:var(--card)}
.eng-att-row2 .perf-viewbtn.sm:hover{background:var(--plum);color:#fff;border-color:var(--plum)}
.eng-rail .perf-viewall{color:var(--plum-d)}

/* Insights / how-to: icon badge · title · subtitle */
.eng-ins-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
.eng-ins-list li{display:flex;gap:12px;align-items:flex-start}
.eng-ins-list li>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.eng-ins-list b{font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.35}
.eng-ins-list li>div>span{font-size:11.5px;color:var(--mute);line-height:1.45}
.eng-ins-list .ei-ic{width:30px;height:30px;flex:none;border-radius:9px;display:grid;place-items:center;font-size:14px;font-weight:800;background:var(--mist);color:var(--ink-2)}
.eng-ins-list .ei-ic.em{background:var(--emerald-glow);color:var(--emerald-d)}
.eng-ins-list .ei-ic.hny{background:var(--honey-glow);color:var(--honey-d)}
.eng-ins-list .ei-ic.rs{background:var(--rose-glow);color:var(--rose-d)}
.eng-ins-list .ei-ic.pl{background:var(--plum-glow);color:var(--plum-d)}

/* AI Copilot tip card */
.eng-tip{background:linear-gradient(155deg,var(--plum-glow),var(--card));border-color:var(--plum-soft)}
.eng-tip-body{display:grid;grid-template-columns:1fr auto;align-items:center;gap:9px 14px}
.eng-tip-bot{grid-column:2;grid-row:1 / span 3;width:96px;height:96px;align-self:center}
.eng-tip-q{grid-column:1;font-size:14px;font-weight:700;color:var(--ink);line-height:1.3}
.eng-tip-body p{grid-column:1;margin:0;font-size:12px;line-height:1.5;color:var(--body)}
.eng-tip-btn{grid-column:1;justify-self:start;margin-top:4px;background:var(--plum);color:#fff;border:1px solid var(--plum);padding:9px 16px;border-radius:9px;font-weight:600;font-size:12.5px;cursor:pointer;transition:.15s}
.eng-tip-btn:hover{background:var(--plum-d);border-color:var(--plum-d)}

/* Content studio */
.content-tabs{display:flex;gap:6px;margin-bottom:16px;background:var(--mist);padding:5px;border-radius:10px;width:fit-content}
.content-tab{padding:8px 18px;border-radius:7px;background:transparent;border:none;font-family:'Inter';font-size:12.5px;font-weight:600;color:var(--ink-2);cursor:pointer;transition:.12s}
.content-tab:hover{color:var(--honey-d)}
.content-tab.active{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(11,18,32,.12)}
.content-row{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:8px}
.content-row .cr-ic{width:38px;height:38px;border-radius:9px;background:var(--honey-glow);color:var(--honey-d);display:grid;place-items:center;font-size:17px;flex-shrink:0}
.content-row .cr-body{flex:1;min-width:0}
.content-row .cr-title{font-weight:700;color:var(--ink);font-size:13.5px}
.content-row .cr-meta{font-size:11.5px;color:var(--mute);margin-top:2px}
.content-row .cr-stat{text-align:right;font-family:'JetBrains Mono';font-size:11px;color:var(--ink-2);font-weight:700}
.content-row .cr-status{font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:4px}
.content-row .cr-status.live{background:var(--emerald-glow);color:var(--emerald-d)}
.content-row .cr-status.draft{background:var(--mist);color:var(--mute)}
.content-row .cr-status.open{background:var(--honey-glow);color:var(--honey-d)}
.content-row .cr-act{font-family:'Inter';font-size:11.5px;font-weight:600;color:var(--ink-2);background:var(--mist);border:1px solid var(--line);border-radius:7px;padding:5px 11px;cursor:pointer;transition:.12s;flex-shrink:0}
.content-row .cr-act:hover{background:var(--honey-glow);color:var(--honey-d);border-color:var(--honey)}
.content-row .qr-avatar.muted{background:var(--mist);color:var(--mute);font-size:12px}
.content-row .cr-stat.sc.pass{color:var(--emerald-d)}
.content-row .cr-stat.sc.fail{color:var(--rose-d)}

/* Submissions tab — completion tracker */
.sub-pick{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.sub-pick label{font-size:11.5px;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.06em}
.sub-pick select{flex:1;max-width:480px;padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font-family:'Inter';font-size:13px;font-weight:600}
.sub-summary{display:flex;gap:10px;margin-bottom:18px}
.sub-summary .qr-stat{flex:1;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 10px}
.sub-summary .qr-stat b{display:block;font-family:'JetBrains Mono';font-size:24px;font-weight:700;color:var(--ink);line-height:1}
.sub-summary .qr-stat span{font-size:11px;color:var(--mute);margin-top:5px;display:block}
.sub-summary .qr-stat.clickable{cursor:pointer;font:inherit;transition:border-color .15s,box-shadow .15s,transform .1s}
.sub-summary .qr-stat.clickable:hover{border-color:var(--fblue);box-shadow:0 2px 10px rgba(0,0,0,.06)}
.sub-summary .qr-stat.clickable:active{transform:translateY(1px)}
.sub-summary .qr-stat.clickable.active{border-color:var(--fblue);box-shadow:inset 0 0 0 1px var(--fblue)}
.sub-summary .qr-stat.clickable.active b{color:var(--fblue)}
.sub-group{margin-bottom:22px}
.sub-group .qr-row{margin-bottom:8px}
.sub-group-head{display:flex;align-items:center;gap:9px;font-family:'Inter';font-weight:700;font-size:13px;color:var(--ink);margin:0 2px 10px}
.sub-group-head .seg-ct{font-family:'JetBrains Mono';font-size:10px;font-weight:700;padding:1px 7px;border-radius:999px;background:var(--line);color:var(--ink-2)}
.sub-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.sub-dot.ok{background:var(--emerald, #10b981)}
.sub-dot.wait{background:var(--honey, #f5a623)}
.placeholder.sm{padding:22px 18px}
.placeholder.sm p{font-size:12.5px}

/* Builder form */
.builder{background:var(--fog);border:1px dashed var(--honey-soft);border-radius:12px;padding:18px;margin-bottom:14px;display:flex;flex-direction:column;gap:12px}
.builder .bd-row{display:flex;gap:12px;flex-wrap:wrap}
.builder .bd-field{display:flex;flex-direction:column;gap:5px;flex:1;min-width:180px}
.builder .bd-field.sm{flex:0 0 120px}
.builder label{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-weight:700}
.builder input,.builder select{padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-family:'Inter';font-size:13px;color:var(--ink);background:var(--card);outline:none}
.builder input:focus,.builder select:focus{border-color:var(--honey-d)}
.builder .bd-actions{display:flex;gap:8px;justify-content:flex-end}

/* At-risk rows */
.risk-row{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;padding:13px 16px;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--rose);border-radius:10px;margin-bottom:8px}
.risk-row .rr-name{font-weight:700;color:var(--ink);font-size:13.5px}
.risk-row .rr-meta{font-size:11.5px;color:var(--mute);margin-top:2px}
.risk-row .rr-meta b{color:var(--rose-d)}
.risk-row .rr-score{font-family:'JetBrains Mono';font-weight:800;font-size:18px;color:var(--rose-d)}
.risk-row .rr-nudge{padding:7px 14px;background:var(--honey-d);color:var(--on-accent);border:none;border-radius:7px;font-family:'Inter';font-weight:600;font-size:12px;cursor:pointer}
.risk-row .rr-nudge:hover{background:var(--ink)}
.risk-row .rr-nudge.done{background:var(--emerald-glow);color:var(--emerald-d);cursor:default}
@media (max-width:600px){.risk-row{grid-template-columns:1fr;gap:8px}}

/* Table trend arrows */
.tbl .trend-up{color:var(--emerald-d);font-weight:700}
.tbl .trend-down{color:var(--rose-d);font-weight:700}
.tbl .trend-flat{color:var(--mute);font-weight:700}

/* Dark-mode surfaces for faculty components */
[data-theme="dark"] .class-card,
[data-theme="dark"] .content-row,
[data-theme="dark"] .risk-row,
[data-theme="dark"] .content-tab.active,
[data-theme="dark"] .class-select select,
[data-theme="dark"] .builder input,
[data-theme="dark"] .builder select{ background:var(--surface) }

/* ── Faculty time table ───────────────────────────────── */
.tt-legend{display:flex;flex-wrap:wrap;gap:12px;align-items:center;font-size:10.5px;color:var(--mute);font-family:'JetBrains Mono';letter-spacing:.04em}
.tt-legend span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.tt-dot{width:11px;height:11px;border-radius:3px;display:inline-block}
.tt-dot.lecture{background:var(--teal-glow);border:1px solid var(--teal)}
.tt-dot.lab{background:var(--plum-glow);border:1px solid var(--plum-d)}
.tt-dot.office{background:var(--honey-glow);border:1px solid var(--honey-d)}
.tt-dot.mentor{background:var(--emerald-glow);border:1px solid var(--emerald-d)}
.tt-dot.duty{background:var(--mist);border:1px solid var(--line)}
.tt-dot.free{background:repeating-linear-gradient(45deg,var(--mist),var(--mist) 3px,transparent 3px,transparent 6px);border:1px dashed var(--line)}
.tt-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tt-grid{display:grid;gap:6px;min-width:760px;align-items:stretch}
.tt-corner{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);display:flex;align-items:center;padding:4px 6px}
.tt-phead{display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;text-align:center;padding:7px 4px;border-radius:8px;background:var(--mist)}
.tt-phead b{font-family:'Inter';font-size:12px;font-weight:800;color:var(--ink)}
.tt-phead span{font-family:'JetBrains Mono';font-size:9px;color:var(--mute);letter-spacing:.02em}
.tt-phead.brk{background:var(--honey-cream);border:1px dashed var(--honey-glow);padding:7px 2px}
.tt-phead.brk b{font-size:9.5px;color:var(--honey-d);writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.05em;white-space:nowrap}
.tt-phead.brk span{font-size:8px}
.tt-cell.brk-cell{align-items:center;justify-content:center;padding:6px 2px;background:var(--honey-cream);border:1px dashed var(--honey-glow)}
.tt-brk-label{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.04em;color:var(--honey-d);writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;text-transform:uppercase}
.tt-day{display:flex;align-items:center;font-family:'Inter';font-weight:800;font-size:13px;color:var(--ink-2);padding:0 6px}
.tt-cell{border:1px solid var(--line);border-radius:10px;padding:9px 10px;min-height:62px;display:flex;background:var(--card);transition:.12s}
.tt-cell.lecture{background:var(--teal-glow);border-color:var(--teal)}
.tt-cell.lab{background:var(--plum-glow);border-color:var(--plum-d)}
.tt-cell.office{background:var(--honey-glow);border-color:var(--honey-d)}
.tt-cell.mentor{background:var(--emerald-glow);border-color:var(--emerald-d)}
.tt-cell.duty{background:var(--mist);border-color:var(--line)}
.tt-cell.free{background:repeating-linear-gradient(45deg,var(--mist),var(--mist) 5px,transparent 5px,transparent 10px);border-style:dashed}
.tt-body{display:flex;flex-direction:column;gap:3px;width:100%}
.tt-sub{font-family:'Inter';font-weight:700;font-size:12px;color:var(--ink);line-height:1.2}
.tt-meta{display:flex;align-items:center;gap:6px;font-family:'JetBrains Mono';font-size:9px;color:var(--mute);letter-spacing:.02em}
.tt-sec{font-weight:700;color:var(--ink-2)}
.tt-room{font-family:'JetBrains Mono';font-size:9.5px;color:var(--ink-2);letter-spacing:.01em;margin-top:auto}
.tt-free{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;gap:1px;color:var(--mute)}
.tt-free span{font-family:'Inter';font-weight:700;font-size:12px}
.tt-free small{font-family:'JetBrains Mono';font-size:8.5px;letter-spacing:.08em;text-transform:uppercase}
[data-theme="dark"] .tt-cell{background:var(--surface)}
[data-theme="dark"] .tt-cell.lecture,
[data-theme="dark"] .tt-cell.lab,
[data-theme="dark"] .tt-cell.office,
[data-theme="dark"] .tt-cell.mentor{filter:saturate(.85)}
[data-theme="dark"] .tt-phead{background:var(--surface)}

/* ════════════════════════════════════════════════════════════
   FACULTY DASHBOARD (f-home) — image-matched redesign
   ════════════════════════════════════════════════════════════ */
:root{ --fac-blue:#2F3D9E; --fac-indigo:#4356D6; --fac-violet:#5B6CF0; }

/* Generic grid spans (apply to any .dash-grid child, not just .dash-card) */
.dash-grid>.span-2{grid-column:span 2}
.dash-grid>.span-3{grid-column:span 3}
.dash-grid>.span-4{grid-column:span 4}
.dash-grid>.span-5{grid-column:span 5}
.dash-grid>.span-6{grid-column:span 6}
.dash-grid>.span-7{grid-column:span 7}
.dash-grid>.span-8{grid-column:span 8}
.dash-grid>.span-12{grid-column:span 12}

/* Toolbar above the dashboard */
.fac-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.fac-toolbar .crumbs{font-family:'JetBrains Mono';font-size:10.5px;color:var(--mute);letter-spacing:.06em}
.fac-toolbar .crumbs b{color:var(--ink-2)}
.date-chip{font-family:'Inter';font-size:12px;font-weight:600;color:var(--ink-2);background:var(--card);border:1.5px solid var(--line);border-radius:8px;padding:8px 12px}

/* Small header link button used in card headers */
.lnk{background:none;border:none;cursor:pointer;font-family:'Inter';font-size:11.5px;font-weight:600;color:var(--honey-d);white-space:nowrap;padding:0}
.lnk:hover{text-decoration:underline}

/* ── HERO BANNER ── */
.fac-hero{grid-column:span 8;position:relative;overflow:hidden;border-radius:16px;padding:26px 28px;min-height:188px;display:flex;align-items:center;justify-content:space-between;gap:20px;
  background:linear-gradient(115deg,var(--fac-blue) 0%,var(--fac-indigo) 58%,var(--fac-violet) 100%);color:#fff}
.fac-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 120% at 88% 0%,rgba(255,255,255,.16),transparent 55%);pointer-events:none}
.fh-copy{position:relative;z-index:1}
.fh-greet{font-family:'Inter';font-weight:800;font-size:27px;letter-spacing:-0.02em;line-height:1.15}
.fh-greet .em{font-style:italic;font-weight:500;color:#FCD34D}
.fh-sub{font-size:13.5px;color:#ffffffcc;margin-top:6px}
.fh-stats{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap}
.fh-stat{background:#ffffff1f;border:1px solid #ffffff2e;border-radius:11px;padding:9px 16px;display:flex;flex-direction:column;gap:2px;backdrop-filter:blur(2px);min-width:78px}
.fh-stat.warn{background:#F43F5E33;border-color:#F43F5E55}
.fhs-v{font-family:'Inter';font-weight:800;font-size:21px;letter-spacing:-0.02em;line-height:1}
.fhs-l{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#ffffffc4}
.fh-art{position:relative;z-index:1;width:212px;height:148px;flex-shrink:0;align-self:center}
@media(max-width:900px){.fh-art{display:none}}

/* ── TODAY'S TIMETABLE (rail) ── */
.tl-list{display:flex;flex-direction:column;gap:8px}
.tl-item{display:flex;gap:12px;align-items:flex-start;padding:9px 11px;border-radius:10px;background:var(--fog);border:1px solid var(--line);border-left:3px solid var(--honey-d)}
.tl-item.lab{border-left-color:var(--teal)}
.tl-item.office,.tl-item.mentor{border-left-color:var(--plum)}
.tl-item.duty{border-left-color:var(--mute)}
.tl-time{font-family:'JetBrains Mono';font-size:10.5px;font-weight:700;color:var(--ink-2);white-space:nowrap;padding-top:1px;min-width:62px}
.tl-sub{font-family:'Inter';font-weight:700;font-size:12.5px;color:var(--ink);line-height:1.25}
.tl-room{font-size:10.5px;color:var(--mute);margin-top:2px}
.tl-empty{font-size:12px;color:var(--mute);padding:14px 4px;text-align:center}

/* ── KPI SPARKLINE CARDS ── */
.kpi-spark-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.kpi-spark{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:15px 16px 0;display:flex;flex-direction:column;gap:6px;min-height:120px;overflow:hidden;position:relative}
.kpi-spark .lbl{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:700}
.kpi-spark .kv{font-family:'Inter';font-weight:800;font-size:26px;color:var(--ink);line-height:1;letter-spacing:-0.025em;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
.kpi-spark .kdelta{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.04em;color:var(--mute)}
.kpi-spark .kdelta.up{color:var(--emerald-d)}
.kpi-spark .kdelta.down{color:var(--rose-d)}
.kpi-spark .spark{width:calc(100% + 32px);height:38px;display:block;margin:auto -16px 0}
.kpi-spark .spark .line{fill:none;stroke-width:2;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.kpi-spark.featured{background:var(--ink);border-color:var(--ink)}
.kpi-spark.featured .lbl{color:var(--honey-soft)}
.kpi-spark.featured .kv{color:#fff}
.kpi-spark.featured .spark .line{stroke:#FCD34D}
.kpi-spark.featured .spark .area{fill:#FCD34D26}
.kpi-spark.teal .spark .line{stroke:var(--teal)} .kpi-spark.teal .spark .area{fill:#0F766E22}
.kpi-spark.honey .spark .line{stroke:var(--honey-d)} .kpi-spark.honey .spark .area{fill:#B4530920}
.kpi-spark.rose .spark .line{stroke:var(--rose)} .kpi-spark.rose .spark .area{fill:#E11D4820}
@media(max-width:760px){.kpi-spark-row{grid-template-columns:repeat(2,1fr)}}

/* ── ASSIGNMENTS DUE SOON (rail) ── */
.due-list{display:flex;flex-direction:column;gap:13px}
.due-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.due-title{font-family:'Inter';font-weight:700;font-size:12.5px;color:var(--ink);line-height:1.25}
.due-by{font-family:'JetBrains Mono';font-size:9.5px;color:var(--rose-d);white-space:nowrap;font-weight:700}
.due-meta{display:flex;align-items:center;justify-content:space-between;font-size:10.5px;color:var(--mute);margin:4px 0 6px}
.due-cls{font-family:'JetBrains Mono';font-weight:700;color:var(--ink-2)}
.due-bar{height:6px;border-radius:6px;background:var(--mist);overflow:hidden}
.due-bar span{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--honey-soft),var(--honey-d))}

/* class-card 4-stat variant + trend colour */
.cc-stats-4{grid-template-columns:repeat(4,1fr)!important}
.class-card .cs-v.cs-up{color:var(--emerald-d)}
.class-grid-lg{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}

/* ── QUERY BOX ── */
.q-list{display:flex;flex-direction:column;gap:4px}
.q-item{display:flex;gap:11px;padding:11px 4px;border-bottom:1px solid var(--line)}
.q-item:last-child{border-bottom:none}
.q-item.answered{opacity:.62}
.q-av{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-family:'Inter';font-weight:700;font-size:11px;color:#fff;background:linear-gradient(135deg,var(--fac-indigo),var(--fac-violet))}
.q-body{flex:1;min-width:0}
.q-name{font-family:'Inter';font-weight:700;font-size:12px;color:var(--ink)}
.q-cls{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.06em;color:var(--honey-d);background:var(--honey-glow);padding:1px 6px;border-radius:4px;margin-left:4px}
.q-text{font-size:12px;color:var(--ink-2);line-height:1.45;margin-top:3px}
.q-foot{display:flex;align-items:center;gap:12px;margin-top:5px}
.q-time{font-family:'JetBrains Mono';font-size:9.5px;color:var(--mute)}
.q-reply{background:var(--ink);color:var(--on-accent);border:none;border-radius:6px;font-family:'Inter';font-weight:600;font-size:11px;padding:4px 12px;cursor:pointer}
.q-reply:hover{background:var(--honey-d)}
.q-done{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;color:var(--emerald-d)}
.q-list-lg .q-item{padding:15px 6px}

/* ── ENGAGEMENT TREND LINE CHART ── */
.line-chart{margin-top:4px}
.lc-svg{width:100%;height:170px;display:block;overflow:visible}
.lc-grid{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.lc-area{fill:#2F3D9E14}
.lc-line{fill:none;stroke:var(--fac-indigo);stroke-width:2.4;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.lc-labels{display:flex;justify-content:space-between;margin-top:8px;font-family:'JetBrains Mono';font-size:9px;color:var(--mute);letter-spacing:.04em}

/* ── TRUST SCORE DISTRIBUTION ── */
.dist-bar{display:flex;height:16px;border-radius:8px;overflow:hidden;margin:2px 0 14px}
.dist-bar .seg{height:100%}
.seg.rose{background:var(--rose)} .seg.honey{background:var(--honey)} .seg.teal{background:var(--teal)} .seg.emerald{background:var(--emerald)}
.dist-legend{display:flex;flex-direction:column;gap:9px}
.dl-row{display:flex;align-items:center;gap:9px;font-size:12px}
.dl-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.dl-dot.rose{background:var(--rose)} .dl-dot.honey{background:var(--honey)} .dl-dot.teal{background:var(--teal)} .dl-dot.emerald{background:var(--emerald)}
.dl-lbl{color:var(--ink-2);font-weight:600}
.dl-pct{margin-left:auto;font-family:'JetBrains Mono';font-weight:700;color:var(--ink);font-size:11.5px}

/* ── RECENT SUBMISSIONS ── */
.sub-list{display:flex;flex-direction:column;gap:2px}
.sub-item{display:flex;align-items:center;gap:12px;padding:11px 6px;border-bottom:1px solid var(--line);cursor:pointer;border-radius:8px;transition:.12s}
.sub-item:last-child{border-bottom:none}
.sub-item:hover{background:var(--fog)}
.sub-av{width:34px;height:34px;border-radius:9px;flex-shrink:0;display:grid;place-items:center;font-family:'Inter';font-weight:700;font-size:12px;color:var(--ink);background:var(--honey-glow)}
.sub-body{flex:1;min-width:0}
.sub-name{font-family:'Inter';font-weight:700;font-size:12.5px;color:var(--ink)}
.sub-work{font-size:11.5px;color:var(--mute);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sub-right{text-align:right;display:flex;flex-direction:column;gap:1px}
.sub-cls{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;color:var(--ink-2)}
.sub-time{font-family:'JetBrains Mono';font-size:9px;color:var(--mute)}
.sub-status{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:5px;flex-shrink:0}
.sub-status.pending{background:var(--honey-glow);color:var(--honey-d)}
.sub-status.graded{background:var(--emerald-glow);color:var(--emerald-d)}
.sub-status.late{background:var(--rose-glow);color:var(--rose-d)}

/* ── ANNOUNCEMENTS ── */
.ann-list{display:flex;flex-direction:column;gap:0}
.ann-item{padding:12px 0;border-bottom:1px solid var(--line)}
.ann-item:last-child{border-bottom:none}
.ann-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.ann-title{font-family:'Inter';font-weight:700;font-size:13px;color:var(--ink);line-height:1.3}
.ann-aud{font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.06em;color:var(--teal-d);background:var(--teal-glow);padding:2px 8px;border-radius:5px;white-space:nowrap}
.ann-body{font-size:12px;color:var(--ink-2);line-height:1.5;margin-top:4px}
.ann-time{font-family:'JetBrains Mono';font-size:9.5px;color:var(--mute);margin-top:5px}

/* ── FOOTER QUOTE + ENCOURAGE ── */
.fac-quote{grid-column:span 8;display:flex;gap:16px;align-items:center;background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:20px 24px}
.fq-mark{font-family:'Inter';font-weight:900;font-size:56px;line-height:.6;color:var(--honey-soft);align-self:flex-start}
.fq-text{font-family:'Inter';font-style:italic;font-weight:500;font-size:16px;color:var(--ink-2);line-height:1.45}
.fq-by{font-family:'JetBrains Mono';font-size:10.5px;color:var(--mute);letter-spacing:.06em;margin-top:8px}
.encourage{align-items:flex-start;justify-content:center;background:linear-gradient(140deg,var(--teal-glow),var(--card))!important;text-align:left}
.enc-ic{width:38px;height:38px;border-radius:10px;background:var(--teal);color:#fff;display:grid;place-items:center;font-size:18px}
.enc-title{font-family:'Inter';font-weight:800;font-size:16px;color:var(--ink);margin-top:4px}
.enc-sub{font-size:12px;color:var(--ink-2);line-height:1.5}

/* ── RUBRICS ── */
.rub-list{display:flex;flex-direction:column;gap:0}
.rub-row{display:flex;align-items:center;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}
.rub-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.rub-lvl{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--plum-d);background:var(--plum-glow);padding:2px 7px;border-radius:4px;width:fit-content}
.rub-crit{font-family:'Inter';font-weight:600;font-size:13px;color:var(--ink)}
.rub-bar{width:200px;height:8px;border-radius:6px;background:var(--mist);overflow:hidden;flex-shrink:0}
.rub-bar span{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--teal-soft),var(--teal))}
.rub-w{font-family:'JetBrains Mono';font-weight:700;font-size:13px;color:var(--ink);min-width:38px;text-align:right}
.rub-total{display:flex;align-items:center;justify-content:space-between;padding-top:14px;font-family:'Inter';font-size:13px;color:var(--ink-2)}
.rub-total b{font-family:'JetBrains Mono';font-size:15px;color:var(--ink)}

/* ── DISCUSSIONS ── */
.disc-list{display:flex;flex-direction:column;gap:0}
.disc-row{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
.disc-row:last-child{border-bottom:none}
.disc-ic{width:36px;height:36px;border-radius:9px;background:var(--plum-glow);color:var(--plum-d);display:grid;place-items:center;font-size:16px;flex-shrink:0}
.disc-body{flex:1;min-width:0}
.disc-topic{font-family:'Inter';font-weight:700;font-size:13.5px;color:var(--ink);display:flex;align-items:center;gap:10px}
.disc-hot{font-family:'JetBrains Mono';font-size:9px;font-weight:700;color:var(--rose-d)}
.disc-meta{font-size:11.5px;color:var(--mute);margin-top:3px}
.disc-cls{font-family:'JetBrains Mono';font-weight:700;color:var(--ink-2)}

/* ── HELP CENTER ── */
.help-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.help-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;cursor:pointer;transition:.15s}
.help-card:hover{border-color:var(--honey-soft);transform:translateY(-2px);box-shadow:0 10px 26px -16px rgba(11,18,32,.4)}
.hc-ic{width:40px;height:40px;border-radius:11px;background:var(--honey-glow);color:var(--honey-d);display:grid;place-items:center;font-size:18px;margin-bottom:12px}
.hc-title{font-family:'Inter';font-weight:700;font-size:14px;color:var(--ink)}
.hc-sub{font-size:12px;color:var(--mute);line-height:1.5;margin-top:5px}

/* ───────────────────────────────────────────────────────────
   STUDENT REQUESTS (f-requests) — three-panel ticket console
   ─────────────────────────────────────────────────────────── */
.sr-view{max-width:1480px}
.sr-shell{display:grid;grid-template-columns:320px 1fr 340px;gap:16px;align-items:start}
.sr-list,.sr-thread,.sr-profile{background:var(--card);border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column}
.sr-list{max-height:calc(100vh - 180px);overflow:hidden}
.sr-thread{max-height:calc(100vh - 180px)}
.sr-profile{max-height:calc(100vh - 180px);overflow:auto;padding:16px;gap:14px}

/* shared small glyph buttons + pills */
.sr-glyph{width:26px;height:26px;border-radius:7px;display:inline-grid;place-items:center;color:var(--mute);cursor:pointer;font-size:14px;transition:.15s}
.sr-glyph:hover{background:var(--mist);color:var(--ink-2)}
.sr-tag{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--plum-glow);color:var(--plum-d);white-space:nowrap}
.sr-prio{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:3px 8px;border-radius:999px;white-space:nowrap}
.sr-prio.low{background:var(--emerald-glow);color:var(--emerald-d)}
.sr-prio.medium{background:var(--honey-glow);color:var(--honey-d)}
.sr-prio.high{background:#FFEDD5;color:#C2410C}
.sr-prio.urgent{background:var(--rose-glow);color:var(--rose-d)}
.sr-stat{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;white-space:nowrap}
.sr-stat.new{background:var(--teal-glow);color:var(--teal-d)}
.sr-stat.progress{background:var(--honey-glow);color:var(--honey-d)}
.sr-stat.waiting{background:var(--honey-glow);color:var(--honey-d)}
.sr-stat.resolved{background:var(--emerald-glow);color:var(--emerald-d)}
.sr-stat.closed{background:var(--mist);color:var(--mute)}

/* LEFT · list */
.sr-list-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid var(--line)}
.sr-list-title{font-family:'Inter';font-weight:700;font-size:14.5px;color:var(--ink)}
.sr-list-tools{display:flex;gap:2px}
.sr-tabs{display:flex;gap:6px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line)}
.sr-tab{font-family:'Inter';font-size:11px;font-weight:600;color:var(--mute);background:var(--mist);border:1px solid transparent;border-radius:999px;padding:4px 10px;cursor:pointer;transition:.15s}
.sr-tab span{font-family:'JetBrains Mono';font-weight:700;margin-left:3px;opacity:.7}
.sr-tab:hover{color:var(--ink-2)}
.sr-tab.active{background:var(--plum-glow);color:var(--plum-d);border-color:var(--plum-soft)}
.sr-cards{flex:1;overflow:auto;padding:8px}
.sr-card{position:relative;width:100%;text-align:left;display:flex;gap:11px;align-items:flex-start;padding:12px;border:1px solid transparent;border-radius:11px;background:transparent;cursor:pointer;transition:.15s;margin-bottom:4px}
.sr-card:hover{background:var(--mist)}
.sr-card.active{background:var(--plum-glow);box-shadow:inset 3px 0 var(--plum)}
.sr-ava-wrap,.sr-ava{width:36px;height:36px;border-radius:50%;flex-shrink:0}
.sr-ava{object-fit:cover;display:block}
.sr-ava-fb{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-family:'Inter';font-weight:700;font-size:12px;color:#fff;background:linear-gradient(135deg,var(--fac-indigo),var(--fac-violet))}
.sr-card-main{flex:1;min-width:0}
.sr-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.sr-card-name{font-family:'Inter';font-weight:700;font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr-card-time{font-family:'JetBrains Mono';font-size:10px;color:var(--mute);flex-shrink:0}
.sr-card-meta{font-family:'JetBrains Mono';font-size:10px;color:var(--mute);margin:2px 0 5px}
.sr-card-title{font-family:'Inter';font-weight:600;font-size:12px;color:var(--ink-2);line-height:1.35;margin-bottom:7px}
.sr-card-pills{display:flex;gap:5px;flex-wrap:wrap}
.sr-unread{position:absolute;top:10px;right:10px;background:var(--rose);color:#fff;font-family:'JetBrains Mono';font-size:9px;font-weight:700;min-width:16px;height:16px;padding:0 4px;border-radius:999px;display:grid;place-items:center}
.sr-empty{padding:28px 16px;text-align:center;font-size:12.5px;color:var(--mute)}

/* CENTER · conversation */
.sr-thread-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line)}
.sr-th-titlerow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sr-th-title{font-family:'Inter';font-weight:800;font-size:16px;color:var(--ink);letter-spacing:-0.01em}
.sr-th-id{font-family:'JetBrains Mono';font-size:11px;font-weight:700;color:var(--mute)}
.sr-meta{font-size:11.5px;color:var(--mute);margin-top:7px}
.sr-th-status select{font-family:'Inter';font-size:12px;font-weight:600;color:var(--ink-2);background:var(--card);border:1.5px solid var(--line);border-radius:8px;padding:6px 10px;cursor:pointer}
.sr-msgs{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:18px}
.sr-msg{display:flex;flex-direction:column;gap:6px;max-width:78%}
.sr-msg.student{align-self:flex-start;align-items:flex-start}
.sr-msg.faculty,.sr-msg.tpo{align-self:flex-end;align-items:flex-end}
.sr-msg-head{display:flex;align-items:center;gap:8px}
.sr-msg-av{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-family:'Inter';font-weight:700;font-size:9.5px;color:#fff;background:linear-gradient(135deg,var(--fac-indigo),var(--fac-violet))}
.sr-msg.student .sr-msg-av{background:linear-gradient(135deg,var(--teal),var(--teal-d))}
.sr-msg-name{font-family:'Inter';font-weight:700;font-size:12px;color:var(--ink-2)}
.sr-msg-time{font-family:'JetBrains Mono';font-size:10px;color:var(--mute)}
.sr-bubble{padding:12px 14px;border-radius:13px;background:var(--mist);color:var(--body);font-size:13px;line-height:1.55}
.sr-msg.faculty .sr-bubble,.sr-msg.tpo .sr-bubble{background:var(--plum-glow);color:var(--ink-2)}
.sr-bubble-body{white-space:pre-wrap}
.sr-att{display:flex;align-items:center;gap:8px;margin-top:9px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card)}
.sr-att-ic{font-size:14px}
.sr-att-name{font-family:'Inter';font-weight:600;font-size:11.5px;color:var(--ink-2)}
.sr-att-size{font-family:'JetBrains Mono';font-size:10px;color:var(--mute)}
.sr-att-dl{margin-left:auto;color:var(--plum-d);cursor:pointer;font-size:14px}
.sr-actions{display:flex;gap:8px;flex-wrap:wrap;padding:12px 18px;border-top:1px solid var(--line)}
.sr-act{font-family:'Inter';font-size:11.5px;font-weight:600;color:var(--ink-2);background:var(--card);border:1.5px solid var(--line);border-radius:8px;padding:6px 11px;cursor:pointer;transition:.15s}
.sr-act:hover{border-color:var(--plum-soft);color:var(--plum-d)}
.sr-esc{position:relative}
.sr-esc-menu{position:absolute;bottom:calc(100% + 6px);right:0;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 32px -16px rgba(11,18,32,.45);padding:5px;min-width:130px;z-index:20;display:flex;flex-direction:column}
.sr-esc-menu button{font-family:'Inter';font-size:12px;font-weight:600;color:var(--ink-2);background:transparent;border:0;border-radius:7px;padding:8px 10px;text-align:left;cursor:pointer}
.sr-esc-menu button:hover{background:var(--mist)}
.sr-composer{padding:14px 18px 16px;border-top:1px solid var(--line)}
.sr-comp-tabs{display:flex;gap:14px;margin-bottom:10px}
.sr-comp-tab{font-family:'Inter';font-size:12.5px;font-weight:600;color:var(--mute);background:transparent;border:0;border-bottom:2px solid transparent;padding:0 0 5px;cursor:pointer}
.sr-comp-tab.active{color:var(--plum-d);border-bottom-color:var(--plum)}
.sr-comp-area{width:100%;box-sizing:border-box;min-height:74px;resize:vertical;font-family:'Inter';font-size:13px;color:var(--ink-2);background:var(--card);border:1.5px solid var(--line);border-radius:10px;padding:11px 13px;outline:none}
.sr-comp-area:focus{border-color:var(--plum-soft)}
.sr-comp-area.note{background:var(--honey-cream)}
.sr-comp-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px}
.sr-comp-tools{display:flex;gap:4px}
.sr-send{font-family:'Inter';font-size:13px;font-weight:700;color:#fff;background:var(--plum);border:1.5px solid var(--plum);border-radius:9px;padding:9px 18px;cursor:pointer;transition:.15s}
.sr-send:hover{background:var(--plum-d);border-color:var(--plum-d)}

/* RIGHT · profile */
.sr-prof-head{display:flex;align-items:center;justify-content:space-between;font-family:'Inter';font-weight:700;font-size:14px;color:var(--ink)}
.sr-prof-link{font-size:11.5px}
.sr-prof-id{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.sr-prof-ava-wrap,.sr-prof-ava,.sr-prof-ava-fb{width:64px;height:64px;border-radius:50%}
.sr-prof-ava{object-fit:cover;display:block}
.sr-prof-ava-fb{display:grid;place-items:center;font-family:'Inter';font-weight:700;font-size:20px;color:#fff;background:linear-gradient(135deg,var(--fac-indigo),var(--fac-violet))}
.sr-prof-name{font-family:'Inter';font-weight:800;font-size:16px;color:var(--ink);margin-top:6px}
.sr-prof-roll{font-family:'JetBrains Mono';font-size:11px;color:var(--mute)}
.sr-active-pill{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.04em;background:var(--emerald-glow);color:var(--emerald-d);padding:3px 10px;border-radius:999px;margin:4px 0}
.sr-prof-line{font-size:12px;color:var(--body)}
.sr-contact{display:flex;flex-direction:column;gap:7px}
.sr-contact-row{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--body);text-decoration:none;background:var(--fog);border:1px solid var(--line);border-radius:9px;padding:8px 11px;transition:.15s}
.sr-contact-row:hover{border-color:var(--mute);color:var(--ink-2)}
.sr-contact-ic{font-size:13px;flex-shrink:0;width:16px;text-align:center}
.sr-contact-v{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sr-wa-btn{display:flex;align-items:center;justify-content:center;gap:7px;font-family:'Inter';font-weight:700;font-size:12.5px;color:#fff;background:#25D366;border:1.5px solid #25D366;border-radius:9px;padding:9px 12px;text-decoration:none;transition:.15s}
.sr-wa-btn:hover{background:#1ebe5d;border-color:#1ebe5d}
.sr-wa-ic{font-size:13px}
.sr-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sr-kpi{background:var(--fog);border:1px solid var(--line);border-radius:11px;padding:11px 12px}
.sr-kpi-l{font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);margin-bottom:4px}
.sr-kpi-v{font-family:'Inter';font-weight:800;font-size:18px;letter-spacing:-0.01em}
.sr-kpi-v.cgpa{color:var(--ink)}
.sr-kpi-v.att{color:var(--emerald-d)}
.sr-kpi-v.trust{color:var(--honey-d)}
.sr-kpi-v.place{color:var(--teal-d)}
.sr-prof-meta{display:flex;justify-content:space-between;gap:8px;font-size:10.5px;color:var(--mute);text-align:center}
.sr-prof-meta b{display:block;font-family:'Inter';font-size:14px;color:var(--ink-2);margin-top:2px}
.sr-insights,.sr-activity,.sr-prevq{background:var(--fog);border:1px solid var(--line);border-radius:12px;padding:13px 14px}
.sr-ins-title{font-family:'Inter';font-weight:700;font-size:12.5px;color:var(--ink);margin-bottom:9px;display:flex;align-items:center;justify-content:space-between}
.sr-ins-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--body);padding:4px 0}
.sr-ins-row b{font-family:'Inter';font-weight:700;color:var(--ink-2)}
.sr-ins-row b.em{color:var(--emerald-d)}
.sr-act-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--body);padding:4px 0}
.sr-dot{width:6px;height:6px;border-radius:50%;background:var(--plum);flex-shrink:0}
.sr-act-l{flex:1}
.sr-act-t{font-family:'JetBrains Mono';font-size:10px;color:var(--mute)}
.sr-prevq-all{font-size:11px;font-weight:600}
.sr-prevq-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0}
.sr-prevq-t{font-size:11.5px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:1180px){ .sr-shell{grid-template-columns:1fr} .sr-list,.sr-thread,.sr-profile{max-height:none} }

[data-theme="dark"] .sr-kpi,
[data-theme="dark"] .sr-insights,
[data-theme="dark"] .sr-activity,
[data-theme="dark"] .sr-prevq,
[data-theme="dark"] .sr-contact-row{background:var(--surface)}
[data-theme="dark"] .sr-prio.high{background:#7C2D1233;color:#FDBA74}
[data-theme="dark"] .sr-comp-area.note{background:#3a2e1233}

/* ── DARK MODE patches ── */
[data-theme="dark"] .kpi-spark,
[data-theme="dark"] .help-card,
[data-theme="dark"] .date-chip{background:var(--surface)}
[data-theme="dark"] .tl-item,
[data-theme="dark"] .sub-item:hover{background:var(--surface)}
[data-theme="dark"] .fac-quote{background:var(--surface)}
[data-theme="dark"] .due-bar,[data-theme="dark"] .rub-bar{background:var(--ink-3)}
[data-theme="dark"] .encourage{background:linear-gradient(140deg,#134E4A55,var(--surface))!important}

/* ════════════════════════════════════════════════════════════
   FACULTY DASHBOARD v2 — pixel-match to approved mockup
   (overrides the v1 block above where classes overlap)
   ════════════════════════════════════════════════════════════ */
:root{ --fblue:#3B59E0; --fblue-d:#2E45C4; --fblue-l:#5A78FB; --fviolet:#6D5AE6; --fgreen:#16A34A; --fgreen-d:#0F8A3C; --fgreen-l:#22C55E; --famber:#EA9A1F; --fred:#EF4444; }

.fac-home{padding-bottom:8px}
.fac-dash{display:grid;grid-template-columns:minmax(0,1fr) 322px;gap:20px;align-items:start}
.fac-main{display:flex;flex-direction:column;gap:18px;min-width:0}
.fac-rail{display:flex;flex-direction:column;gap:18px}
@media(max-width:1180px){.fac-dash{grid-template-columns:1fr}}

/* ── Faculty Trust Score card (blue twin of the student score card) ── */
.fscore-card{position:relative;overflow:hidden;border-radius:16px;padding:22px 22px 20px;color:#fff;
  background:linear-gradient(150deg,#0E1A4D 0%,#16277A 52%,#1E3A8A 100%);
  border:1px solid #2E45C4;box-shadow:0 14px 30px -16px rgba(30,58,138,.65);display:flex;flex-direction:column}
.fscore-card::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='84' height='96' viewBox='0 0 84 96'><polygon fill='none' stroke='%235A78FB' stroke-width='1' points='42,2 80,24 80,72 42,94 4,72 4,24'/></svg>");
  background-repeat:repeat;background-size:84px 96px;opacity:.10}
.fscore-card::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 120% at 88% 0%,rgba(122,154,255,.22),transparent 55%)}
.fscore-card>*{position:relative;z-index:1}
.fsc-lbl{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#9DB0F7}
.fsc-sub{font-family:'Inter';font-size:14px;font-weight:600;color:#EAF0FF;margin:4px 0 0}
.fsc-num{font-family:'Inter';font-weight:800;font-size:54px;line-height:1;letter-spacing:-0.035em;color:#fff;display:flex;align-items:baseline;gap:4px;margin:10px 0 4px}
.fsc-of{font-size:18px;font-weight:500;color:#FFFFFFA0;letter-spacing:0}
.fsc-delta{font-family:'JetBrains Mono';font-size:11.5px;font-weight:700;color:#7FE3C0;letter-spacing:.06em}
.fsc-rank{font-family:'Inter';font-size:11.5px;font-weight:500;color:#AFC0FF;margin-top:6px}
.fsc-trend{display:flex;align-items:flex-end;gap:3px;height:40px;margin:16px 0 14px}
.fsc-trend .fsc-bar{flex:1;background:linear-gradient(180deg,#7C9BFF,#3B59E0);border-radius:3px 3px 0 0;opacity:.7;transition:.15s}
.fsc-trend .fsc-bar.now{background:linear-gradient(180deg,#9DB0F7,#5A78FB);opacity:1;box-shadow:0 0 12px rgba(122,154,255,.6)}
.fsc-action{align-self:flex-start;padding:0;background:transparent;border:none;cursor:pointer;font-family:'Inter';font-size:12.5px;font-weight:600;color:#AFC0FF;transition:.12s}
.fsc-action:hover{color:#fff}
.fsc-break{margin-top:14px;padding-top:14px;border-top:1px solid #FFFFFF1F;display:flex;flex-direction:column;gap:13px}
.fsc-factor .fsf-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.fsf-label{font-family:'Inter';font-size:12.5px;font-weight:600;color:#EAF0FF}
.fsf-weight{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;color:#8EA2EC;letter-spacing:.04em}
.fsf-detail{font-family:'Inter';font-size:11px;color:#AFC0FF;margin:2px 0 6px;line-height:1.4}
.fsf-track{position:relative;height:6px;border-radius:999px;background:#FFFFFF1A;display:flex;align-items:center}
.fsf-fill{height:6px;border-radius:999px;background:linear-gradient(90deg,#5A78FB,#9DB0F7)}
.fsf-val{position:absolute;right:0;top:-15px;font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;color:#CBD7FF}

/* ── Principal Institution Trust Score card (teal hero, mirrors faculty score card) ── */
.pscore-card{position:relative;overflow:hidden;border-radius:16px;padding:22px 22px 20px;color:#fff;
  background:linear-gradient(150deg,#052824 0%,#0A463F 52%,#0F766E 100%);
  border:1px solid #1C8C80;box-shadow:0 14px 30px -16px rgba(15,118,110,.7);display:flex;flex-direction:column}
.pscore-card::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='84' height='96' viewBox='0 0 84 96'><polygon fill='none' stroke='%232DD4BF' stroke-width='1' points='42,2 80,24 80,72 42,94 4,72 4,24'/></svg>");
  background-repeat:repeat;background-size:84px 96px;opacity:.10}
.pscore-card::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 120% at 88% 0%,rgba(45,212,191,.22),transparent 55%)}
.pscore-card>*{position:relative;z-index:1}
.psc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.psc-shield{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);color:#5EEAD4;flex-shrink:0}
.psc-shield svg{width:18px;height:18px;display:block}
.psc-lbl{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#5EEAD4}
.psc-sub{font-family:'Inter';font-size:14px;font-weight:600;color:#E3F8F2;margin:4px 0 0;line-height:1.35}
.psc-num{font-family:'Inter';font-weight:800;font-size:54px;line-height:1;letter-spacing:-0.035em;color:#fff;display:flex;align-items:baseline;gap:4px;margin:12px 0 4px}
.psc-of{font-size:18px;font-weight:500;color:#FFFFFFA0;letter-spacing:0}
.psc-badge{display:inline-flex;align-items:center;gap:5px;font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#062826;background:#5EEAD4;padding:3px 9px;border-radius:999px}
.psc-meta{display:flex;align-items:center;gap:10px;margin-top:8px}
.psc-delta{font-family:'JetBrains Mono';font-size:11.5px;font-weight:700;color:#7FE3C0;letter-spacing:.06em}
.psc-rank{font-family:'Inter';font-size:11.5px;font-weight:500;color:#A7E8DC;margin-top:7px}
.psc-trend{display:flex;align-items:flex-end;gap:5px;height:46px;margin:18px 0 6px}
.psc-trend .psc-bar{flex:1;min-height:6px;background:linear-gradient(180deg,#2DD4BF,#0B7468);border-radius:3px 3px 0 0;opacity:.78;transition:.15s;position:relative}
.psc-trend .psc-bar.wk{background:linear-gradient(180deg,#FCA5A5,#E0524E);opacity:1;box-shadow:0 0 12px rgba(248,113,113,.45)}
.psc-trend .psc-bar.top{background:linear-gradient(180deg,#5EEAD4,#2DD4BF);opacity:1;box-shadow:0 0 12px rgba(94,234,212,.6)}
.psc-bar-key{display:flex;justify-content:space-between;font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.06em;color:#79CBBE;margin-bottom:14px}
.psc-action{align-self:flex-start;padding:0;background:transparent;border:none;cursor:pointer;font-family:'Inter';font-size:12.5px;font-weight:600;color:#A7E8DC;transition:.12s}
.psc-action:hover{color:#fff}
.psc-break{margin-top:14px;padding-top:14px;border-top:1px solid #FFFFFF1F;display:flex;flex-direction:column;gap:13px}
.psc-factor{text-align:left;width:100%;background:transparent;border:none;padding:0;cursor:pointer;display:block}
.psc-factor .psf-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.psf-label{font-family:'Inter';font-size:12.5px;font-weight:600;color:#EAFBF6}
.psf-weight{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;color:#7CCFC2;letter-spacing:.04em}
.psf-detail{font-family:'Inter';font-size:11px;color:#A7E8DC;margin:2px 0 6px;line-height:1.4}
.psf-track{position:relative;height:6px;border-radius:999px;background:#FFFFFF1A;display:flex;align-items:center}
.psf-fill{height:6px;border-radius:999px;background:linear-gradient(90deg,#0E9F8E,#5EEAD4)}
.psf-fill.wk{background:linear-gradient(90deg,#E0524E,#FCA5A5)}
.psf-val{position:absolute;right:0;top:-15px;font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;color:#C6F4EC}
.psc-lever{margin-top:2px;display:flex;align-items:center;gap:8px;padding:9px 11px;border-radius:10px;background:rgba(252,165,165,.12);border:1px solid rgba(252,165,165,.22)}
.psc-lever-k{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#FCA5A5}
.psc-lever-l{font-family:'Inter';font-size:11.5px;font-weight:600;color:#FBE3E3;flex:1}
.psc-lever-v{font-family:'Inter';font-weight:800;font-size:14px;color:#fff}

/* hero row */
.hero-row{display:block}
.fac-hero{width:100%;box-sizing:border-box;min-width:0;position:relative;overflow:hidden;border-radius:22px;padding:34px 40px;min-height:212px;display:flex;align-items:center;justify-content:space-between;gap:32px;
  background:linear-gradient(118deg,var(--fblue-d) 0%,var(--fblue) 48%,var(--fblue-l) 100%);color:#fff;grid-column:auto;box-shadow:0 20px 48px -28px rgba(46,69,196,.6)}
.fac-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 130% at 95% 10%,rgba(255,255,255,.14),transparent 55%);pointer-events:none}
.fh-copy{position:relative;z-index:1;flex:1}
.fh-greet{font-family:'Inter';font-weight:800;font-size:29px;letter-spacing:-0.02em;line-height:1.15;color:#fff}
.fh-wave{font-style:normal}
.fh-sub{font-size:13.5px;color:#ffffffd0;margin-top:7px}
.fh-stats{display:flex;gap:14px;margin-top:22px;flex-wrap:wrap}
.fh-stat{flex:1 1 150px;min-width:140px;padding:14px 16px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(6px);transition:.18s}
.fh-stat:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.28)}
.fhs-ic{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.14);color:#fff;margin-bottom:12px}
.fhs-ic svg{width:19px;height:19px;display:block}
.fhs-v{font-family:'Inter';font-weight:800;font-size:24px;letter-spacing:-0.02em;color:#fff;line-height:1}
.fhs-l{font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#ffffffbf;margin-top:7px;line-height:1.3}
.fh-illus{position:relative;z-index:1;width:280px;height:200px;flex-shrink:0;align-self:center}
@media(max-width:1340px){.fh-illus{width:220px}}
@media(max-width:980px){.fh-illus{display:none}}

/* action buttons (top-right of hero row) */
.fac-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;align-content:flex-start;max-width:380px;padding-top:2px}
.ab{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:9px;font-family:'Inter';font-size:12.5px;font-weight:600;background:var(--card);border:1.5px solid var(--line);color:var(--ink-2);cursor:pointer;transition:.15s;white-space:nowrap;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.ab:hover{border-color:var(--ink-3);color:var(--ink)}
.ab .ab-ic{font-size:13px}
.ab .ab-ic.tl{color:var(--fviolet)}
.ab.dark{background:var(--ink);border-color:var(--ink);color:#fff}
.ab.dark:hover{background:var(--fblue);border-color:var(--fblue)}

/* KPI cards */
.kpi4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.kpi-c{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:16px 18px 0;display:flex;flex-direction:column;gap:4px;min-height:128px;overflow:hidden;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.kc-lbl{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--mute);font-weight:700}
.kc-v{font-family:'Inter';font-weight:800;font-size:30px;color:var(--ink);line-height:1;letter-spacing:-0.03em;display:flex;align-items:baseline;gap:3px}
.kc-v small{font-family:'Inter';font-size:14px;font-weight:600;color:var(--mute)}
.kc-d{font-family:'Inter';font-size:11px;font-weight:600;color:var(--mute)}
.kc-d.up{color:var(--fgreen)}
.kc-d.red{color:var(--fred)}
.kc-spark{width:calc(100% + 36px);height:40px;display:block;margin:12px -18px 0}
.kc-spark .ln{fill:none;stroke-width:2;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.kc-spark.green .ln{stroke:var(--fgreen)}
.kc-spark.violet .ln{stroke:var(--fviolet)}
.kc-spark.amber .ln{stroke:var(--famber)}
.kc-spark.red .ln{stroke:var(--fred)}
@media(max-width:760px){.kpi4{grid-template-columns:repeat(2,1fr)}}

/* mid + bottom grids */
.mid-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:16px;align-items:start}
.bot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}
@media(max-width:1180px){.mid-grid,.bot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.mid-grid,.bot-grid{grid-template-columns:1fr}}
.fac-main .dash-card{box-shadow:0 1px 2px rgba(16,24,40,.04)}

/* My Classes compact cards */
.mc-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:520px){.mc-grid{grid-template-columns:1fr}}
.mc-card{border:1px solid var(--line);border-radius:11px;padding:13px 14px;cursor:pointer;transition:.14s;display:flex;flex-direction:column;gap:10px;background:var(--card)}
.mc-card:hover{border-color:var(--fblue);box-shadow:0 8px 20px -14px rgba(59,89,224,.55)}
.mc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.mc-name{font-family:'Inter';font-weight:700;font-size:13.5px;color:var(--ink);line-height:1.2}
.mc-code{font-family:'JetBrains Mono';font-size:9px;color:var(--mute);letter-spacing:.03em;margin-top:3px}
.mc-tag{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.08em;padding:2px 7px;border-radius:5px;background:var(--honey-glow);color:var(--honey-d);flex-shrink:0}
.mc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.mc-stat b{font-family:'Inter';font-weight:800;font-size:16px;color:var(--ink);letter-spacing:-.02em;display:block;line-height:1}
.mc-stat small{font-family:'JetBrains Mono';font-size:7.5px;letter-spacing:.07em;color:var(--mute);font-weight:700;margin-top:3px;display:block}
.mc-foot{display:flex;align-items:center;justify-content:space-between;font-size:11px;border-top:1px solid var(--line);padding-top:9px}
.mc-risk{color:var(--rose-d);font-weight:600}
.mc-open{color:var(--fblue);font-weight:600}

/* Engagement trend dual-line */
.et-legend{display:flex;gap:18px;margin:-2px 0 8px}
.etl{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--ink-2);font-weight:600}
.etl-line{width:18px;height:0;border-top:2.5px solid var(--fviolet);border-radius:2px}
.etl-line.last{border-top:2.5px dashed var(--mute)}
.et-chart{display:flex;gap:8px}
.et-y{display:flex;flex-direction:column;justify-content:space-between;font-family:'JetBrains Mono';font-size:8.5px;color:var(--mute);height:150px;padding:2px 0;text-align:right;min-width:26px}
.et-plot{flex:1;min-width:0}
.et-svg{width:100%;height:150px;display:block;overflow:visible}
.et-grid{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.et-ln{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.et-ln.this{stroke:var(--fviolet);stroke-width:2.6}
.et-ln.last{stroke:var(--mute);stroke-width:2;stroke-dasharray:5 5;opacity:.7}
.et-x{display:flex;justify-content:space-between;margin-top:7px;font-family:'JetBrains Mono';font-size:9px;color:var(--mute)}

/* Recent submissions */
.rs-list{display:flex;flex-direction:column;gap:2px}
.rs-item{display:flex;align-items:center;gap:11px;padding:10px 6px;border-radius:9px;cursor:pointer;transition:.12s}
.rs-item:hover{background:var(--fog)}
.rs-ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:14px;flex-shrink:0;background:var(--honey-glow);color:var(--honey-d)}
.rs-ic.assign{background:#EDE9FE;color:var(--plum-d)}
.rs-ic.project{background:var(--emerald-glow);color:var(--emerald-d)}
.rs-body{flex:1;min-width:0}
.rs-title{font-family:'Inter';font-weight:700;font-size:12.5px;color:var(--ink);line-height:1.25}
.rs-meta{font-family:'JetBrains Mono';font-size:9.5px;color:var(--mute);margin-top:2px}
.rs-time{font-family:'JetBrains Mono';font-size:9.5px;color:var(--mute);white-space:nowrap}

/* Query Box */
.qb-input{width:100%;box-sizing:border-box;padding:10px 13px;border:1.5px solid var(--line);border-radius:9px;font-family:'Inter';font-size:12.5px;color:var(--ink);background:var(--card);outline:none}
.qb-input:focus{border-color:var(--fblue)}
.qb-chips{display:flex;flex-direction:column;gap:7px;margin-top:11px}
.qb-chip{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--fog);font-family:'Inter';font-size:11.5px;font-weight:500;color:var(--ink-2);cursor:pointer;text-align:left;transition:.12s}
.qb-chip:hover{border-color:var(--fblue);color:var(--fblue);background:var(--card)}
.qb-dot{color:var(--mute);font-size:9px}
.qb-foot{display:flex;justify-content:flex-end;margin-top:12px}
.qb-ask{display:inline-flex;align-items:center;gap:7px;background:var(--ink);color:#fff;border:none;border-radius:8px;padding:8px 18px;font-family:'Inter';font-size:12.5px;font-weight:600;cursor:pointer}
.qb-ask:hover{background:var(--fblue)}

/* Assign Assignment */
.aa-card{align-items:stretch}
.aa-illus{width:120px;height:64px;display:block;margin:6px auto 12px}
.aa-create{width:100%;background:var(--fblue);color:#fff;border:none;border-radius:9px;padding:11px;font-family:'Inter';font-size:13px;font-weight:600;cursor:pointer;margin-bottom:8px}
.aa-create:hover{background:var(--fblue-d)}
.aa-tmpl{width:100%;background:var(--card);color:var(--ink-2);border:1.5px solid var(--line);border-radius:9px;padding:10px;font-family:'Inter';font-size:12.5px;font-weight:600;cursor:pointer}
.aa-tmpl:hover{border-color:var(--ink-3);color:var(--ink)}

/* Right rail date chip */
.fac-rail .date-chip{align-self:flex-end;display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:9px;padding:9px 14px;font-family:'Inter';font-size:12.5px;font-weight:600;color:var(--ink-2);cursor:pointer;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.fac-rail .date-chip .dc-caret{color:var(--mute);font-size:9px}

/* Today's Timetable (rail) */
.tt-list{display:flex;flex-direction:column;gap:0}
.tt-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid var(--line)}
.tt-row:last-child{border-bottom:none}
.tt-time{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;color:var(--mute);white-space:nowrap;min-width:54px}
.tt-bd{flex:1;min-width:0}
.tt-title{font-family:'Inter';font-weight:700;font-size:12.5px;color:var(--ink);line-height:1.2}
.tt-code{font-weight:500;color:var(--mute);font-size:11px}
.tt-mt{font-size:10.5px;color:var(--mute);margin-top:2px}
.tt-badge{font-family:'Inter';font-size:9.5px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap;flex-shrink:0;background:var(--mist);color:var(--mute)}
.tt-badge.live{background:var(--emerald-glow);color:var(--emerald-d)}

/* Assignment due soon (rail) */
.ds-list{display:flex;flex-direction:column;gap:4px}
.ds-row{display:flex;align-items:center;gap:11px;padding:8px 0}
.ds-ic{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;font-size:13px;flex-shrink:0;background:#EDE9FE;color:var(--plum-d)}
.ds-body{flex:1;min-width:0}
.ds-title{font-family:'Inter';font-weight:700;font-size:12px;color:var(--ink);line-height:1.2}
.ds-meta{font-family:'JetBrains Mono';font-size:9px;color:var(--mute);margin-top:2px}
.ds-pill{font-family:'Inter';font-size:9.5px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--honey-glow);color:var(--honey-d);white-space:nowrap;flex-shrink:0}

/* Upcoming (rail) */
.up-list{display:flex;flex-direction:column;gap:4px}
.up-row{display:flex;align-items:center;gap:11px;padding:8px 0}
.up-ic{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;font-size:13px;flex-shrink:0;background:var(--teal-glow);color:var(--teal-d)}
.up-body{flex:1;min-width:0}
.up-title{font-family:'Inter';font-weight:700;font-size:12px;color:var(--ink);line-height:1.2}
.up-meta{font-family:'JetBrains Mono';font-size:9px;color:var(--mute);margin-top:2px}
.up-flag{font-family:'Inter';font-size:9.5px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--honey-glow);color:var(--honey-d);white-space:nowrap;flex-shrink:0}

/* footer */
.fac-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:11.5px;color:var(--mute);flex-wrap:wrap}
.fac-footer .ff-i{opacity:.7}
.fac-footer .ff-links{display:flex;gap:18px}
.fac-footer .ff-links a{color:var(--mute);text-decoration:none}
.fac-footer .ff-links a:hover{color:var(--ink-2)}

/* ── SIDEBAR quick actions + help (dark persona) ── */
.qa-block{margin-top:14px;padding-top:14px;border-top:1px solid #FFFFFF18;display:flex;flex-direction:column;gap:6px}
.qa-head{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:#FFFFFF66;font-weight:700;padding:0 8px 4px}
.qa-item{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:10px;background:#FFFFFF0d;border:1px solid #FFFFFF14;cursor:pointer;text-align:left;transition:.13s}
.qa-item:hover{background:#FFFFFF1a;border-color:#FFFFFF2e}
.qa-ic{width:30px;height:30px;border-radius:8px;background:#FFFFFF1f;display:grid;place-items:center;font-size:13px;color:#fff;flex-shrink:0}
.qa-txt{display:flex;flex-direction:column;min-width:0}
.qa-txt b{font-family:'Inter';font-weight:600;font-size:12px;color:#fff;line-height:1.2}
.qa-txt small{font-size:10px;color:#FFFFFF99;margin-top:1px}
.side-help{margin-top:14px;background:#FFFFFF0f;border:1px solid #FFFFFF1a;border-radius:12px;padding:14px}
.sh-title{font-family:'Inter';font-weight:700;font-size:12.5px;color:#fff}
.sh-sub{font-size:10.5px;color:#FFFFFF99;line-height:1.45;margin-top:4px}
.sh-btn{width:100%;margin-top:11px;background:#FFFFFF1a;border:1px solid #FFFFFF26;color:#fff;border-radius:8px;padding:8px;font-family:'Inter';font-size:11.5px;font-weight:600;cursor:pointer;transition:.13s}
.sh-btn:hover{background:#FFFFFF2e}

/* ── dark-mode patches (v2) ── */
[data-theme="dark"] .kpi-c,
[data-theme="dark"] .ab,
[data-theme="dark"] .fac-rail .date-chip,
[data-theme="dark"] .mc-card,
[data-theme="dark"] .qb-input,
[data-theme="dark"] .aa-tmpl{background:var(--surface)}
[data-theme="dark"] .qb-chip,
[data-theme="dark"] .rs-item:hover{background:var(--surface-2)}

/* ===== FACULTY ASSIGNMENT MODULE ===== */
/* 6-up KPI row for the assignment dashboard */
.kpi-row.asg-kpi-6{grid-template-columns:repeat(3,1fr)}
@media (max-width:1100px){.kpi-row.asg-kpi-6{grid-template-columns:repeat(2,1fr)}}
@media (max-width:540px){.kpi-row.asg-kpi-6{grid-template-columns:1fr}}

/* Submission progress bar (table) */
.asg-prog{display:flex;flex-direction:column;gap:5px;min-width:130px}
.asg-prog-bar{position:relative;height:7px;background:var(--mist);border-radius:5px;overflow:hidden}
.asg-prog-bar>span{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--honey-soft),var(--honey-d));transition:.3s}
.asg-prog-bar>span.good{background:linear-gradient(90deg,#86EFAC,var(--emerald-d))}
.asg-prog-bar>span.low{background:linear-gradient(90deg,#FECDD3,var(--rose))}
.asg-prog-lbl{font-size:11px;color:var(--mute);font-family:'JetBrains Mono'}
.asg-prog-lbl b{color:var(--ink)}

/* assignments-by-subject breakdown (Assignment Overview card) */
.asg-subj-break{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.asg-subj-break-head{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-bottom:10px}
.asg-subj-break-row{display:flex;align-items:center;gap:10px;padding:5px 0}
.asg-subj-break-ic{font-size:15px;line-height:1;width:18px;text-align:center;flex-shrink:0}
.asg-subj-break-name{font-size:12.5px;font-weight:600;color:var(--ink-2);flex-shrink:0;min-width:108px}
.asg-subj-break-bar{flex:1;height:7px;background:var(--mist);border-radius:20px;overflow:hidden}
.asg-subj-break-bar i{display:block;height:100%;background:var(--emerald,var(--ink));border-radius:20px;transition:width .4s ease}
.asg-subj-break-ct{font-family:'JetBrains Mono';font-size:12.5px;font-weight:700;color:var(--ink);min-width:16px;text-align:right;flex-shrink:0}

/* subject-grouped assignment list */
.asg-subj-group{margin-top:14px}
.asg-subj-group:first-of-type{margin-top:4px}
.asg-subj-head{display:flex;align-items:center;gap:9px;padding:8px 12px;background:var(--fog);border:1px solid var(--line);border-bottom:none;border-radius:9px 9px 0 0}
.asg-subj-head.gen{background:var(--mist)}
.asg-subj-ic{font-size:16px;line-height:1}
.asg-subj-name{font-weight:700;color:var(--ink);font-size:13px}
.asg-subj-tag{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:2px 6px}
.asg-subj-meta{font-size:11.5px;color:var(--mute);margin-left:4px}
.asg-subj-meta b{color:var(--ink-2);font-weight:700}
.asg-subj-actions{margin-left:auto;display:flex;align-items:center;gap:12px}
.asg-subj-spark{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--ink-2)}
.asg-subj-spark b{font-weight:700}
.asg-subj-add{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;font-size:11.5px;font-weight:600;font-family:'Inter';color:var(--ink);background:var(--surface);border:1.5px solid var(--line);border-radius:7px;cursor:pointer;transition:.15s}
.asg-subj-add:hover{border-color:var(--ink);background:var(--ink);color:var(--on-accent)}
.asg-subj-add .ic{font-size:13px;line-height:1}
/* read-only auto-selected subject in the create/edit modal */
.asg-subject-fixed{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--fog);border:1.5px solid var(--line);border-radius:8px;font-size:13px;font-weight:600;color:var(--ink)}
.asg-subject-fixed .ic{font-size:15px;line-height:1}
.asg-subject-fixed .auto-tag{margin-left:auto;font-family:'JetBrains Mono';font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);background:var(--surface);border:1px solid var(--line);border-radius:5px;padding:2px 6px;font-weight:700}

/* assign-to: all vs selected toggle + student picker */
.asg-assign-toggle{display:flex;gap:8px}
.asg-assign-opt{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;padding:10px 12px;font-size:12.5px;font-weight:600;font-family:'Inter';color:var(--ink-2);background:var(--surface);border:1.5px solid var(--line);border-radius:9px;cursor:pointer;transition:.15s}
.asg-assign-opt .ic{font-size:14px;line-height:1}
.asg-assign-opt:hover{border-color:var(--ink-2)}
.asg-assign-opt.active{border-color:var(--ink);background:var(--fog);color:var(--ink)}
.asg-assign-opt .ct{font-family:'JetBrains Mono';font-size:10px;font-weight:700;color:var(--mute);background:var(--mist);border-radius:20px;padding:1px 7px}
.asg-assign-opt .ct.on{background:var(--honey-cream);color:var(--honey-d)}
.asg-assign-opt.active .ct{color:var(--ink)}
.asg-student-pick{margin-top:10px;border:1.5px solid var(--line);border-radius:10px;overflow:hidden}
.asg-pick-empty{padding:18px;text-align:center;color:var(--mute);font-size:12.5px}
/* search box */
.asg-pick-search{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--card)}
.asg-pick-search .ic{font-size:13px;opacity:.6;line-height:1}
.asg-pick-search input{flex:1;border:none;outline:none;background:transparent;font-family:'Inter';font-size:13px;color:var(--ink);padding:2px 0}
.asg-pick-search input::placeholder{color:var(--mute)}
.asg-pick-search .clr{border:none;background:var(--mist);color:var(--ink-2);width:20px;height:20px;border-radius:50%;cursor:pointer;font-size:10px;line-height:1;flex-shrink:0}
.asg-pick-search .clr:hover{background:var(--ink);color:var(--on-accent)}
.asg-pick-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--fog);border-bottom:1px solid var(--line)}
.asg-pick-bar button{font-size:11px;font-weight:600;font-family:'Inter';color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:4px 10px;cursor:pointer}
.asg-pick-bar button:hover{border-color:var(--ink);background:var(--ink);color:var(--on-accent)}
.asg-pick-count{margin-left:auto;font-size:11.5px;color:var(--mute)}
.asg-pick-count b{color:var(--ink);font-weight:700}
.asg-pick-list{max-height:240px;overflow-y:auto}
/* override .asg-field label bleed (uppercase/mute/tiny) on picker rows */
.asg-field .asg-pick-row,.asg-field .asg-pick-row *{text-transform:none;letter-spacing:0;font-family:'Inter'}
.asg-pick-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line);cursor:pointer;transition:.12s}
.asg-pick-row:last-child{border-bottom:none}
.asg-pick-row:hover{background:var(--mist)}
.asg-pick-row.on{background:var(--honey-cream)}
.asg-pick-row .ck{width:18px;height:18px;border:1.5px solid var(--line);border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:var(--on-accent);background:var(--surface);flex-shrink:0;transition:.12s}
.asg-pick-row .ck.on{background:var(--ink);border-color:var(--ink)}
.asg-pick-row .ava{width:30px;height:30px;border-radius:9px;background:var(--mist);color:var(--ink-2);font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:'Inter'}
.asg-pick-row .ava.av-strong{background:var(--emerald-soft,#D1FAE5);color:var(--emerald-d)}
.asg-pick-row .ava.av-mid{background:var(--honey-cream);color:var(--honey-d)}
.asg-pick-row .ava.av-weak{background:#FEE2E2;color:var(--rose-d)}
.asg-pick-row .nm{display:flex;flex-direction:column;line-height:1.3;min-width:0;flex:1}
.asg-pick-row .nm b{font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.asg-pick-row .nm .em{font-size:10.5px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.asg-pick-row .sc{font-family:'JetBrains Mono';font-size:12px;font-weight:700;color:var(--ink-2);flex-shrink:0}
.asg-pick-row .bd{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;padding:2px 7px;border-radius:5px;flex-shrink:0}
.asg-pick-row .bd.b-strong{background:var(--emerald-soft,#D1FAE5);color:var(--emerald-d)}
.asg-pick-row .bd.b-mid{background:var(--honey-cream);color:var(--honey-d)}
.asg-pick-row .bd.b-weak{background:#FEE2E2;color:var(--rose-d)}
.asg-subj-tbl{border:1px solid var(--line);border-radius:0 0 9px 9px;overflow:hidden;table-layout:fixed}
.asg-subj-tbl th:nth-child(1),.asg-subj-tbl td:nth-child(1){width:25%}
.asg-subj-tbl th:nth-child(2),.asg-subj-tbl td:nth-child(2){width:10%}
.asg-subj-tbl th:nth-child(3),.asg-subj-tbl td:nth-child(3){width:9%}
.asg-subj-tbl th:nth-child(4),.asg-subj-tbl td:nth-child(4){width:9%}
.asg-subj-tbl th:nth-child(5),.asg-subj-tbl td:nth-child(5){width:18%}
.asg-subj-tbl th:nth-child(6),.asg-subj-tbl td:nth-child(6){width:13%}
.asg-subj-tbl th:nth-child(7),.asg-subj-tbl td:nth-child(7){width:16%}
.asg-subj-tbl thead{display:table-header-group}
.asg-subj-tbl th{font-weight:800;color:var(--ink-2)}
.asg-subj-group:first-of-type .asg-subj-tbl thead{display:table-header-group}
.asg-subj-tbl tbody tr:last-child td{border-bottom:none}

/* action clusters */
.asg-actions-cluster{display:flex;gap:6px;align-items:center}
.tbl .row-action.ghost{background:transparent;color:var(--ink-2);border:1.5px solid var(--line);padding:4px 9px;line-height:1;font-size:15px}
.tbl .row-action.ghost:hover{border-color:var(--ink);color:var(--ink);background:transparent}

/* avatar cell */
.asg-avatar-cell{display:flex;align-items:center;gap:9px}
.asg-avatar{width:28px;height:28px;border-radius:8px;background:var(--honey-cream);color:var(--honey-d);font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:'Inter';overflow:hidden}
.asg-avatar-img{width:28px;height:28px;border-radius:8px;object-fit:cover;display:block}
.asg-avatar-fb{width:100%;height:100%;display:none;align-items:center;justify-content:center}

/* sub-tabs */
.asg-subtabs{display:flex;gap:6px;margin:2px 0 14px;flex-wrap:wrap}
.asg-subtab{padding:6px 13px;border-radius:8px;font-family:'Inter';font-size:12px;font-weight:600;background:var(--fog);border:1.5px solid var(--line);color:var(--ink-2);cursor:pointer;transition:.15s}
.asg-subtab:hover{border-color:var(--ink-3);color:var(--ink)}
.asg-subtab.active{background:var(--ink);border-color:var(--ink);color:var(--on-accent)}

/* donut ring */
.asg-donut-wrap{position:relative;width:140px;height:140px;margin:6px auto 4px}
.asg-donut-wrap.small{width:120px;height:120px}
.asg-donut{width:100%;height:100%;transform:rotate(-90deg)}
.asg-donut .ring-track{fill:none;stroke:var(--mist);stroke-width:7}
.asg-donut .ring-seg{fill:none;stroke-width:7;stroke-linecap:round;transition:.4s}
.asg-donut .ring-seg.tl{stroke:var(--teal-d)}
.asg-donut .ring-seg.hny{stroke:var(--honey-d)}
.asg-donut .ring-seg.em{stroke:var(--emerald-d)}
.asg-donut .ring-seg.rs{stroke:var(--rose-d)}
.asg-donut .ring-seg.bl{stroke:var(--teal-d)}
.asg-donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.asg-donut-center b{display:inline-flex;align-items:baseline;gap:1px;font-size:24px;font-weight:800;color:var(--ink);font-family:'Inter'}
.asg-donut-center b span{font-size:24px;font-weight:800;color:var(--ink)}
.asg-donut-center>span{font-size:10.5px;color:var(--mute);text-transform:uppercase;letter-spacing:.06em}

.asg-legend{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding-top:12px;border-top:1px solid var(--line)}
.asg-legend span{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-2)}
.asg-legend span b{margin-left:auto;color:var(--ink);font-family:'JetBrains Mono'}
.asg-legend .dot,.stream-bar .name .dot.tl,.stream-bar .name .dot.hny,.stream-bar .name .dot.em{width:9px;height:9px;border-radius:3px;flex-shrink:0}
.asg-legend .dot.tl{background:var(--teal-d)}
.asg-legend .dot.hny{background:var(--honey-d)}
.asg-legend .dot.em{background:var(--emerald-d)}

/* ── Class Performance (f-perf) dashboard ── */
.perf-tag{font-size:.62em;font-weight:700;color:var(--mute);font-family:'JetBrains Mono';letter-spacing:.02em;vertical-align:middle}
.perf-daterange{font-family:'JetBrains Mono';font-size:11px;color:var(--mute);background:var(--fog);border:1px solid var(--line);border-radius:8px;padding:8px 12px;white-space:nowrap;align-self:center}

/* KPI cards with icon */
.perf-kpi{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:15px 16px;display:flex;align-items:center;gap:13px}
.perf-kpi.clk{cursor:pointer;transition:.13s}
.perf-kpi.clk:hover{border-color:var(--honey-glow);box-shadow:0 2px 10px rgba(0,0,0,.04)}
.pk-ic{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-size:18px;font-weight:700;flex-shrink:0;background:var(--mist);color:var(--ink-2)}
.pk-ic.em{background:var(--emerald-glow);color:var(--emerald-d)}
.pk-ic.bl{background:rgba(37,99,235,.13);color:#2563EB}
.pk-ic.hny{background:var(--honey-glow);color:var(--honey-d)}
.pk-ic.rs{background:var(--rose-glow);color:var(--rose-d)}
.pk-body{display:flex;flex-direction:column;gap:1px;min-width:0}
.pk-lbl{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--mute);font-weight:700}
.pk-v{font-family:'Inter';font-weight:800;font-size:26px;line-height:1.05;color:var(--ink);letter-spacing:-0.02em}
.pk-sub{font-size:11px;color:var(--mute);font-weight:500}
.pk-sub.up{color:var(--emerald-d);font-weight:700}
.pk-sub.down{color:var(--rose-d);font-weight:700}

/* donut legends (3-col rich) */
.perf-legend{display:flex;flex-direction:column;gap:7px;margin-top:6px;padding-top:12px;border-top:1px solid var(--line)}
.perf-legend span{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-2)}
.perf-legend .dot{width:9px;height:9px;border-radius:3px;flex-shrink:0}
.perf-legend .dot.em{background:var(--emerald-d)}
.perf-legend .dot.hny{background:var(--honey-d)}
.perf-legend .dot.tl,.perf-legend .dot.bl{background:var(--teal-d)}
.perf-legend .dot.rs{background:var(--rose-d)}
.perf-legend b{font-weight:600;color:var(--ink)}
.perf-legend small{color:var(--mute);font-size:10.5px;font-family:'JetBrains Mono'}
.perf-legend em{margin-left:auto;font-style:normal;font-weight:700;color:var(--ink);font-family:'JetBrains Mono'}
.perf-focus{margin-top:10px;font-size:11.5px;color:var(--rose-d);background:var(--rose-glow);border-radius:8px;padding:9px 11px;line-height:1.4}

/* attention list */
.perf-viewall{margin-left:auto;font-size:12px;font-weight:600;color:var(--honey-d);cursor:pointer;white-space:nowrap;align-self:center}
.perf-viewall:hover{text-decoration:underline}
.perf-att-list{display:flex;flex-direction:column}
.perf-att-row{display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--line)}
.perf-att-row:last-child{border-bottom:none}
.perf-avatar{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:12px;font-weight:800;flex-shrink:0;font-family:'Inter';background:var(--honey-cream);color:var(--honey-d);overflow:hidden}
.perf-avatar-img{width:36px;height:36px;border-radius:10px;object-fit:cover;display:block}
.perf-avatar-fb{width:100%;height:100%;place-items:center}
.perf-avatar.weak,.perf-avatar.severe{background:var(--rose-glow);color:var(--rose-d)}
.perf-avatar.strong{background:var(--emerald-glow);color:var(--emerald-d)}
.pa-id{display:flex;flex-direction:column;gap:1px;min-width:120px}
.pa-name{font-weight:600;color:var(--ink);font-size:13px}
.pa-meta{font-size:11px;color:var(--mute)}
.pa-score{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:54px}
.pa-score b{font-family:'JetBrains Mono';font-weight:700;font-size:15px;color:var(--honey-d)}
.pa-score.weak b,.pa-score.severe b{color:var(--rose-d)}
.pa-score.strong b{color:var(--emerald-d)}
.pa-score small{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--mute)}
.pa-weak{flex:1;min-width:0}
.pa-chip{display:inline-block;font-size:11px;color:var(--ink-2);background:var(--fog);border:1px solid var(--line);border-radius:999px;padding:4px 10px;white-space:nowrap}
.perf-viewbtn{padding:7px 13px;font-size:11.5px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:7px;font-family:'Inter';font-weight:600;cursor:pointer;flex-shrink:0;transition:.13s}
.perf-viewbtn:hover{background:var(--ink);color:var(--on-accent);border-color:var(--ink)}

/* quick actions grid */
.perf-qa-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.perf-qa{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px;border-radius:11px;background:var(--fog);border:1px solid var(--line);cursor:pointer;text-align:left;transition:.13s}
.perf-qa:hover{background:var(--card);border-color:var(--honey-glow);box-shadow:0 2px 8px rgba(0,0,0,.04)}
.qa-ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:14px;font-weight:700;margin-bottom:4px;background:var(--mist);color:var(--ink-2)}
.qa-ic.em{background:var(--emerald-glow);color:var(--emerald-d)}
.qa-ic.bl{background:rgba(37,99,235,.13);color:#2563EB}
.qa-ic.hny{background:var(--honey-glow);color:var(--honey-d)}
.qa-ic.tl{background:var(--teal-glow,#CCFBF1);color:var(--teal-d)}
.qa-ic.rs{background:var(--rose-glow);color:var(--rose-d)}
.qa-t{font-weight:700;font-size:12.5px;color:var(--ink);line-height:1.2}
.qa-d{font-size:10.5px;color:var(--mute)}

/* class trends */
.perf-trends{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media (max-width:760px){.perf-trends{grid-template-columns:repeat(2,1fr)}}
.perf-trend{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;background:var(--fog);border:1px solid var(--line)}
.pt-ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:13px;flex-shrink:0;background:var(--mist);color:var(--ink-2)}
.pt-ic.up{background:var(--emerald-glow);color:var(--emerald-d)}
.pt-ic.down{background:var(--rose-glow);color:var(--rose-d)}
.pt-v{font-family:'Inter';font-weight:800;font-size:22px;line-height:1;letter-spacing:-0.02em;color:var(--ink)}
.pt-v.up{color:var(--emerald-d)}
.pt-v.down{color:var(--rose-d)}
.pt-lbl{font-size:11.5px;color:var(--mute);margin-top:3px;line-height:1.35}

/* dark-mode: keep blue accents and surfaces legible on dark cards */
[data-theme="dark"] .pk-ic.bl,[data-theme="dark"] .qa-ic.bl{background:rgba(96,165,250,.18);color:#93C5FD}
[data-theme="dark"] .perf-qa,[data-theme="dark"] .perf-trend{background:var(--mist)}
[data-theme="dark"] .perf-daterange{background:var(--mist)}

/* quick action rows */
.asg-quick{display:flex;flex-direction:column;gap:7px}
.asg-quick-row{display:flex;align-items:center;gap:11px;width:100%;padding:11px 13px;border-radius:10px;background:var(--fog);border:1.5px solid var(--line);color:var(--ink);font-family:'Inter';font-size:13px;font-weight:600;cursor:pointer;transition:.15s;text-align:left}
.asg-quick-row:hover{border-color:var(--ink-3);background:var(--mist);transform:translateX(2px)}
.asg-quick-row .qi{width:26px;height:26px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:var(--card);border:1.5px solid var(--line);font-size:13px;flex-shrink:0}
.asg-quick-row .qi.ai{background:var(--honey-cream);border-color:transparent;color:var(--honey-d)}
.asg-quick-row .qg{margin-left:auto;color:var(--mute);font-size:14px}

/* mini stats / rank rows */
.asg-mini-stats{display:flex;gap:8px;margin:8px 0 14px;padding-top:12px;border-top:1px solid var(--line)}
.asg-mini-stats>div{flex:1;text-align:center}
.asg-mini-stats .ms-v{display:block;font-size:20px;font-weight:800;color:var(--ink);font-family:'Inter'}
.asg-mini-stats .ms-l{display:block;font-size:10.5px;color:var(--mute);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}
.asg-fullw{width:100%}

.asg-rank{display:flex;flex-direction:column;gap:7px}
.asg-rank-row{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:9px;background:var(--fog);border:1px solid var(--line)}
.asg-rank-row .rk{width:22px;height:22px;border-radius:7px;background:var(--emerald-glow);color:var(--emerald-d);font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:'Inter'}
.asg-rank-row .rk.rs{background:var(--rose-glow);color:var(--rose-d)}
.asg-rank-row .nm{font-size:13px;font-weight:600;color:var(--ink)}
.asg-rank-row .score-cell{margin-left:auto}

/* AI features card */
.asg-ai-card{background:linear-gradient(165deg,var(--honey-cream),var(--card))}
[data-theme="dark"] .asg-ai-card{background:var(--surface)}
.asg-feature-row{display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:11px;background:var(--card);border:1.5px solid var(--line);margin-bottom:8px;cursor:pointer;transition:.15s}
.asg-feature-row:hover{border-color:var(--honey-d);transform:translateX(2px)}
.asg-feature-row b{display:block;font-size:13px;color:var(--ink);font-weight:700;margin-bottom:2px}
.asg-feature-row span{font-size:11.5px;color:var(--mute);line-height:1.4}
.asg-feature-row .qg{margin-left:auto;color:var(--honey-d);font-size:15px;flex-shrink:0}

/* rubric template rows */
.asg-rubric-list{display:flex;flex-direction:column;gap:13px;margin-top:4px}
.asg-rubric-row{display:flex;flex-direction:column;gap:7px}
.arr-top{display:flex;justify-content:space-between;align-items:baseline}
.arr-name{font-size:13px;font-weight:600;color:var(--ink)}
.arr-w{font-family:'JetBrains Mono';font-weight:700;font-size:12.5px;color:var(--honey-d)}
.arr-levels{display:flex;gap:6px;flex-wrap:wrap;margin-top:3px}
.arr-chip{font-size:10.5px;font-weight:600;padding:3px 8px;border-radius:6px;background:var(--fog);border:1px solid var(--line);color:var(--ink-2)}

/* ── Create Assignment modal ── */
.asg-modal-wrap{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-start;justify-content:center;padding:40px 18px;overflow:auto}
.asg-modal-wrap[hidden]{display:none!important}
.asg-modal-back{position:fixed;inset:0;background:rgba(11,18,32,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.asg-modal{position:relative;z-index:1;width:100%;max-width:720px;max-height:90vh;overflow:auto;background:var(--card);border:1.5px solid var(--line);border-radius:18px;box-shadow:0 30px 80px -24px rgba(11,18,32,.5);display:flex;flex-direction:column}
.asg-modal-head{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;background:var(--card);border-bottom:1px solid var(--line)}
.asg-modal-eyebrow{font-family:'JetBrains Mono';font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--mute);margin-bottom:3px}
.asg-modal-head h3{font-size:19px;font-weight:800;color:var(--ink);margin:0}
.asg-modal-x{width:32px;height:32px;border-radius:9px;border:1.5px solid var(--line);background:var(--fog);color:var(--ink-2);font-size:13px;cursor:pointer;flex-shrink:0;transition:.15s}
.asg-modal-x:hover{border-color:var(--ink);color:var(--ink)}
.asg-modal-body{padding:18px 24px;display:flex;flex-direction:column;gap:14px}
/* Review & Publish summary — spells out the key details before publishing */
.asg-review{background:var(--fog);border:1.5px solid var(--line);border-radius:12px;padding:14px 16px;margin-top:2px}
.asg-review-head{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-family:'JetBrains Mono';margin-bottom:12px}
.asg-review-head .ic{font-size:13px}
.asg-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px}
.arv{display:flex;flex-direction:column;gap:2px;min-width:0}
.arv-k{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);font-family:'JetBrains Mono'}
.arv-v{font-size:13px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis}
.arv-v.muted{color:var(--mute);font-weight:500;font-style:italic}
.arv-v.warn{color:var(--rose-d)}
@media(max-width:560px){.asg-review-grid{grid-template-columns:1fr}}
.asg-modal-foot{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;background:var(--card);border-top:1px solid var(--line)}
.asg-modal-foot .btn{padding:9px 16px;border-radius:9px;font-family:'Inter';font-size:13px;font-weight:600;background:var(--fog);border:1.5px solid var(--line);color:var(--ink-2);cursor:pointer;transition:.15s}
.asg-modal-foot .btn:hover{border-color:var(--ink);color:var(--ink)}
.asg-modal-foot .btn.primary{background:var(--ink);color:var(--on-accent);border-color:var(--ink)}
.asg-modal-foot .btn.primary:hover{background:var(--honey-d);border-color:var(--honey-d)}
.asg-modal-foot .btn:disabled{opacity:.5;cursor:not-allowed}

/* ── Extend-deadline modal ── */
.asg-extend-modal{max-width:440px}
.asg-extend-modal .asg-modal-body{display:flex;flex-direction:column;gap:16px}
.asg-extend-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.asg-extend-chip{padding:7px 14px;border-radius:999px;font-family:'Inter';font-size:13px;font-weight:600;background:var(--fog);border:1.5px solid var(--line);color:var(--ink-2);cursor:pointer;transition:.15s}
.asg-extend-chip:hover{border-color:var(--ink);color:var(--ink)}
.asg-extend-chip.active{background:var(--ink);color:var(--on-accent);border-color:var(--ink)}
.asg-extend-num{margin-top:10px;width:120px;padding:9px 12px;border-radius:9px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font-family:'Inter';font-size:14px;font-weight:600}
.asg-extend-num:focus{outline:none;border-color:var(--honey-d)}
.asg-extend-preview{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:12px;background:var(--honey-cream);border:1px solid var(--honey-soft)}
[data-theme="dark"] .asg-extend-preview{background:var(--surface-2);border-color:var(--line)}
.asg-extend-newdate{display:flex;align-items:center;gap:10px;font-size:16px;color:var(--ink)}
.asg-extend-newdate b{font-size:18px;font-weight:800}

.asg-ai-suggest{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 13px;border-radius:11px;background:var(--honey-cream);border:1px solid var(--honey-soft)}
[data-theme="dark"] .asg-ai-suggest{background:var(--surface-2);border-color:var(--line)}
.asg-ai-suggest .ai-ic{color:var(--honey-d);font-weight:800}
.asg-ai-suggest>span:not(.ai-ic){font-size:12.5px;font-weight:700;color:var(--ink);margin-right:auto}
.asg-ai-suggest button{padding:5px 11px;border-radius:7px;font-size:11.5px;font-weight:600;background:var(--card);border:1.5px solid var(--honey-soft);color:var(--honey-d);cursor:pointer;transition:.15s}
.asg-ai-suggest button:hover{background:var(--honey-d);color:var(--on-accent);border-color:var(--honey-d)}
.asg-ai-suggest button:disabled{opacity:.5;cursor:default}
.asg-ai-suggest .ai-busy{font-size:11.5px;font-weight:700;color:var(--honey-d);animation:aiPulse 1s ease-in-out infinite}
@keyframes aiPulse{0%,100%{opacity:.45}50%{opacity:1}}
.ai-hint-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px}
.ai-hint-chip{font-size:11.5px;font-weight:600;color:var(--ink);background:var(--fog);border:1px solid var(--line);border-radius:7px;padding:4px 10px}
.ai-hint-chip b{font-weight:800}
.ai-hint-chip.hard{background:#FEE2E2;border-color:#FECACA;color:var(--rose-d)}
.ai-hint-chip.med{background:var(--honey-cream);border-color:var(--honey-soft);color:var(--honey-d)}
.ai-hint-chip.easy{background:var(--emerald-soft,#D1FAE5);border-color:#A7F3D0;color:var(--emerald-d)}
.ai-hint-note{font-size:11px;color:var(--mute)}

.asg-field{display:flex;flex-direction:column;gap:6px}
.asg-field label{font-family:'JetBrains Mono';font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--mute);font-weight:600}
.asg-field input,.asg-field select,.asg-field textarea{width:100%;padding:10px 12px;border-radius:9px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font-family:'Inter';font-size:13.5px;transition:.15s;resize:vertical}
.asg-field input::placeholder,.asg-field textarea::placeholder{color:var(--mute)}
.asg-field input:focus,.asg-field select:focus,.asg-field textarea:focus{outline:none;border-color:var(--honey-d);box-shadow:0 0 0 3px var(--honey-glow)}
/* field header row — label on the left, an action chip (Voice / Regenerate) on the right */
.asg-field-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.asg-field-head label{display:flex;align-items:center;gap:7px}
.asg-field-head .auto-tag{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--honey-d);background:var(--honey-cream);border:1px solid var(--honey-glow);border-radius:5px;padding:2px 6px;font-weight:700}
.asg-mic,.asg-regen{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border:1.5px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink-2);font-family:'Inter';font-size:11.5px;font-weight:600;cursor:pointer;transition:.15s;line-height:1}
.asg-mic:hover,.asg-regen:hover{border-color:var(--honey-d);color:var(--honey-d);background:var(--honey-cream)}
.asg-mic .asg-mic-ic{font-size:12px;line-height:1}
.asg-mic.listening{border-color:#e0454b;color:#e0454b;background:rgba(224,69,75,.08);animation:asgMicPulse 1.3s ease-in-out infinite}
@keyframes asgMicPulse{0%,100%{box-shadow:0 0 0 0 rgba(224,69,75,.28)}50%{box-shadow:0 0 0 5px rgba(224,69,75,0)}}
.asg-regen:disabled{opacity:.6;cursor:default;border-color:var(--line);color:var(--mute);background:var(--card)}
/* live transcript strip under the description while dictating */
.asg-voice-live{display:flex;align-items:center;gap:8px;padding:7px 11px;border-radius:8px;background:rgba(224,69,75,.07);border:1px solid rgba(224,69,75,.18);color:var(--ink-2);font-size:12px;font-style:italic}
.asg-voice-dot{flex:none;width:8px;height:8px;border-radius:50%;background:#e0454b;animation:asgMicPulse 1.3s ease-in-out infinite}
.asg-field textarea.asg-gen-busy{opacity:.55;animation:asgGenShimmer 1s ease-in-out infinite}
@keyframes asgGenShimmer{0%,100%{opacity:.5}50%{opacity:.8}}
.asg-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:560px){.asg-field-grid{grid-template-columns:1fr}}
.asg-dropzone{display:flex;flex-direction:column;align-items:center;gap:4px;padding:22px;border:1.6px dashed var(--line);border-radius:11px;background:var(--fog);color:var(--ink-2);font-size:13px;cursor:pointer;transition:.15s;text-align:center}
.asg-dropzone:hover{border-color:var(--honey-d);background:var(--honey-cream)}
.asg-dropzone .dz-ic{font-size:20px;color:var(--honey-d)}
.asg-dropzone b{color:var(--honey-d)}
.asg-dropzone .dz-sub{font-size:11px;color:var(--mute)}

@media (max-width:1100px){.asg-prog{min-width:100px}}

/* ── Clickable KPI cards + 2-col mid grid (dashboard) ── */
.kpi-c.clk{cursor:pointer;position:relative}
.kpi-c.clk:hover{border-color:var(--fblue);box-shadow:0 12px 26px -16px rgba(59,89,224,.6);transform:translateY(-2px)}
.kc-go{position:absolute;top:15px;right:16px;font-family:'Inter';font-size:10.5px;font-weight:700;color:var(--fblue);opacity:0;transform:translateX(-4px);transition:.16s;pointer-events:none;white-space:nowrap}
.kpi-c.clk:hover .kc-go{opacity:1;transform:none}
.mid-grid-2{grid-template-columns:1.4fr 1fr}
@media(max-width:720px){.mid-grid-2{grid-template-columns:1fr}}

/* ── Dashboard cards fed from real Assignment Hub data ── */
.rs-av{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-family:'Inter';font-weight:700;font-size:12px;color:#fff;background:linear-gradient(135deg,var(--fblue),var(--fviolet));flex-shrink:0}
.rs-status{font-family:'JetBrains Mono';font-size:8px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:5px;flex-shrink:0}
.rs-status.pending{background:var(--mist);color:var(--mute)}
.rs-status.submitted{background:var(--honey-glow);color:var(--honey-d)}
.rs-status.late{background:var(--rose-glow);color:var(--rose-d)}
.rs-status.graded{background:var(--emerald-glow);color:var(--emerald-d)}
.ds-row{cursor:pointer;border-radius:8px;transition:.12s}
.ds-row:hover{background:var(--fog)}

/* ═══ ASSIGNMENT HUB · unified section (segmented tabs) ═══ */
.asg-seg{display:inline-flex;gap:4px;padding:4px;background:var(--fog);border:1.5px solid var(--line);border-radius:12px;margin-bottom:18px}
.asg-seg-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border:0;background:transparent;border-radius:9px;font-family:'Inter';font-size:13px;font-weight:600;color:var(--mute);cursor:pointer;transition:.15s}
.asg-seg-btn .ic{font-size:13px}
.asg-seg-btn:hover{color:var(--ink)}
.asg-seg-btn.active{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(11,18,32,.12)}
.asg-seg-btn .seg-ct{font-family:'JetBrains Mono';font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;background:var(--line);color:var(--ink-2)}
.asg-seg-btn .seg-ct.rs{background:var(--rose-glow);color:var(--rose-d)}
.asg-focus-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--honey-glow);color:var(--honey-d);font-size:11.5px;font-weight:600;cursor:pointer;border:1px solid var(--honey-soft)}
.asg-focus-chip:hover{filter:brightness(.97)}
.asg-sub-row{cursor:pointer;transition:.12s}
.asg-sub-row:hover{background:var(--fog)}
.tbl .row-action:disabled{opacity:.45;cursor:not-allowed}

/* ═══ GRADING REVIEWER MODAL ═══ */
.grade-modal{max-width:980px}
.grade-cls{font-family:'JetBrains Mono';font-size:11px;font-weight:600;color:var(--mute);margin-left:6px}
.grade-asg-line{font-size:12.5px;color:var(--ink-2);margin-top:4px}
.grade-cols{display:grid;grid-template-columns:1.4fr 1fr;gap:20px}
@media (max-width:780px){.grade-cols{grid-template-columns:1fr}}

/* ── Segmented section filter (Students table) ── */
.seg-filter{display:inline-flex;gap:4px;padding:4px;background:var(--fog);border:1.5px solid var(--line);border-radius:10px}
.seg-filter .seg{font-family:'Inter';font-size:12.5px;font-weight:600;color:var(--muted);background:transparent;border:none;border-radius:7px;padding:5px 12px;cursor:pointer;transition:all .15s}
.seg-filter .seg:hover{color:var(--ink)}
.seg-filter .seg.active{color:var(--ink);background:var(--card);box-shadow:0 1px 3px rgba(0,0,0,.08)}

/* ── Student dossier modal (Assignment Hub · View) ── */
.stu-modal{max-width:920px;width:94vw}
.stu-cols{display:grid;grid-template-columns:300px 1fr;gap:22px;align-items:start}
@media (max-width:780px){.stu-cols{grid-template-columns:1fr}}
.stu-left{display:flex;flex-direction:column;gap:16px}
.stu-right{display:flex;flex-direction:column;gap:16px;min-width:0}
.stu-stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.stu-stat{display:flex;flex-direction:column;gap:4px;align-items:flex-start;padding:10px 12px;background:var(--fog);border:1.5px solid var(--line);border-radius:10px}
.stu-stat-l{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.stu-stat b{font-family:'Inter';font-size:18px;font-weight:700;color:var(--ink)}
.stu-stat b.em{color:var(--fac-emerald,#0f9d6b)}
.stu-stat b.rs{color:var(--fac-rose,#e0556e)}
.stu-block{display:flex;flex-direction:column;gap:7px}
.stu-chips{display:flex;flex-wrap:wrap;gap:6px}
.stu-chip{font-size:12px;font-weight:600;color:var(--ink);background:var(--fog);border:1.5px solid var(--line);border-radius:999px;padding:4px 11px}
.stu-li{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--ink);line-height:1.45}
.stu-li-dot{color:var(--fac-indigo,#5b6ef5);flex-shrink:0}
.stu-empty{font-size:12.5px;color:var(--muted);font-style:italic}
.grade-work{display:flex;flex-direction:column;gap:12px;min-width:0}
.grade-file-bar{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--fog);border:1.5px solid var(--line);border-radius:10px}
.grade-file-bar .gf-ic{font-size:16px}
.grade-file-bar .gf-name{font-family:'JetBrains Mono';font-size:12.5px;font-weight:600;color:var(--ink);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grade-file-bar .row-action{flex-shrink:0}
.grade-doc{border:1.5px solid var(--line);border-radius:12px;background:var(--card);max-height:420px;overflow:auto}
.gd-code{margin:0;padding:16px;font-family:'JetBrains Mono';font-size:12px;line-height:1.7;color:var(--ink-2);white-space:pre;background:var(--fog)}
.gd-code .kw{color:var(--teal-d);font-weight:700}
.gd-code .num{color:var(--honey-d)}
.gd-code .cm{color:var(--mute);font-style:italic}
.gd-paper{padding:24px 28px}
.gd-paper h4{font-size:16px;font-weight:800;color:var(--ink);margin:0 0 4px}
.gd-paper .gd-by{font-size:11.5px;color:var(--mute);margin:0 0 14px}
.gd-paper p{font-size:13px;line-height:1.65;color:var(--ink-2);margin:0 0 11px}
.gd-paper .gd-trunc{font-size:11.5px;color:var(--mute);font-style:italic;text-align:center;margin-top:16px}
/* ── Paginated card viewer (PDF / image) — flip with ‹ › ── */
.grade-viewer{display:flex;align-items:center;gap:10px}
.grade-viewer .gv-nav{flex:0 0 auto;width:38px;height:38px;display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1;font-weight:700;color:var(--ink-2);background:var(--card);border:1.5px solid var(--line);border-radius:50%;cursor:pointer;transition:all .15s;user-select:none}
.grade-viewer .gv-nav:hover:not(:disabled){background:var(--honey);border-color:var(--honey-d);color:var(--ink);transform:scale(1.06)}
.grade-viewer .gv-nav:active:not(:disabled){transform:scale(.94)}
.grade-viewer .gv-nav:disabled{opacity:.35;cursor:default}
.gv-stage{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:12px;background:var(--card);height:420px;overflow:auto}
.gv-card{min-height:100%;box-sizing:border-box}
.gv-stage .gd-code{height:100%}
/* scanned answer-sheet / image card */
.gv-image{display:flex;padding:18px}
.gv-scan{flex:1;background:repeating-linear-gradient(var(--fog),var(--fog) 31px,var(--line) 31px,var(--line) 32px);border:1px solid var(--line);border-radius:6px;padding:20px 22px;display:flex;flex-direction:column;gap:14px;box-shadow:inset 0 0 0 6px var(--card)}
.gv-scan-tag{font-family:'JetBrains Mono';font-size:10.5px;color:var(--mute);text-transform:uppercase;letter-spacing:.06em}
.gv-scan-lines{display:flex;flex-direction:column;gap:18px;flex:1;padding-top:4px}
.gv-scan-lines span{display:block;height:7px;border-radius:4px;background:var(--ink-2);opacity:.22}
.gv-scan-cap{font-size:12px;font-weight:600;color:var(--ink-2);text-align:center;padding-top:6px}
.gv-foot{display:flex;align-items:center;justify-content:center;gap:14px;padding-top:2px}
.gv-count{font-family:'JetBrains Mono';font-size:12px;color:var(--mute)}
.gv-count b{color:var(--ink)}
.gv-dots{display:flex;gap:6px}
.gv-dot{width:7px;height:7px;border-radius:50%;border:none;padding:0;background:var(--line);cursor:pointer;transition:all .15s}
.gv-dot:hover{background:var(--mute)}
.gv-dot.on{background:var(--honey-d);transform:scale(1.25)}
.grade-side{display:flex;flex-direction:column;gap:16px}
.grade-score-box{border:1.5px solid var(--line);border-radius:12px;padding:16px;background:var(--fog)}
.grade-score-box .gs-top{display:flex;justify-content:space-between;align-items:center;font-family:'JetBrains Mono';font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--mute);font-weight:600}
.gs-band{padding:2px 9px;border-radius:999px;font-size:11px}
.gs-band.strong{background:var(--emerald-glow);color:var(--emerald-d)}
.gs-band.mid{background:var(--honey-glow);color:var(--honey-d)}
.gs-band.weak{background:var(--rose-glow);color:var(--rose-d)}
.gs-input-row{display:flex;align-items:baseline;gap:8px;margin:10px 0 8px}
.gs-input{width:110px;padding:8px 12px;border-radius:10px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font-family:'JetBrains Mono';font-size:26px;font-weight:800;text-align:center}
.gs-input:focus{outline:none;border-color:var(--honey-d);box-shadow:0 0 0 3px var(--honey-glow)}
.gs-max{font-family:'JetBrains Mono';font-size:18px;color:var(--mute)}
.gs-bar{height:7px;border-radius:999px;background:var(--line);overflow:hidden}
.gs-bar span{display:block;height:100%;border-radius:999px;transition:.25s;background:var(--honey-d)}
.gs-bar span.strong{background:var(--emerald-d)}
.gs-bar span.mid{background:var(--honey-d)}
.gs-bar span.weak{background:var(--rose-d)}
.gs-hint{font-size:11px;color:var(--mute);margin-top:7px}
.grade-rubric{border:1.5px solid var(--line);border-radius:12px;padding:14px}
.grade-rubric .gr-head{display:flex;flex-direction:column;gap:2px;margin-bottom:10px;font-size:13px;font-weight:700;color:var(--ink)}
.grade-rubric .gr-sub{font-size:10.5px;font-weight:500;color:var(--mute)}
.gr-crit{margin-bottom:11px}
.gr-crit-top{display:flex;justify-content:space-between;font-size:12px;font-weight:600;color:var(--ink-2);margin-bottom:5px}
.gr-crit-top .gr-w{font-family:'JetBrains Mono';font-size:10.5px;color:var(--mute)}
.gr-levels{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.gr-lv{padding:6px 4px;border-radius:8px;border:1.5px solid var(--line);background:var(--card);color:var(--ink-2);font-size:10.5px;font-weight:600;cursor:pointer;transition:.12s}
.gr-lv:hover{border-color:var(--honey-d)}
.gr-lv.active{background:var(--honey-d);color:var(--on-accent);border-color:var(--honey-d)}
.grade-fb{position:relative}
.grade-ai-btn{align-self:flex-start;margin-top:8px;padding:6px 12px;border-radius:8px;border:1.5px solid var(--teal-soft);background:var(--teal-glow);color:var(--teal-d);font-size:11.5px;font-weight:600;cursor:pointer;transition:.12s}
.grade-ai-btn:hover{filter:brightness(.97)}

/* ══════════════════════════════════════════════════════
   FACULTY PROFILE PAGE (f-profile) — ported from the student
   profile (hero + stats + tabs + completion aside).
   ══════════════════════════════════════════════════════ */
/* Profile form */
.profile-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:720px}
.profile-form .pf-field{display:flex;flex-direction:column;gap:5px}
.profile-form .pf-field.full{grid-column:span 2}
.profile-form .pf-label{font-family:'JetBrains Mono';font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);font-weight:700}
.profile-form .pf-value{padding:11px 14px;background:var(--card);border:1px solid var(--line);border-radius:8px;font-family:'Inter';font-size:13.5px;color:var(--ink);font-weight:500}
.profile-form .pf-value.locked{background:var(--mist);color:var(--mute);position:relative}
.profile-form .pf-value.locked::after{content:"🔒";position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:11px}
.profile-form .pf-value.verified{background:var(--emerald-glow);color:var(--emerald-d);border-color:var(--emerald)}
.profile-form input.pf-input,.profile-form textarea.pf-input{width:100%;box-sizing:border-box;outline:none;resize:vertical}
.profile-form input.pf-input:focus,.profile-form textarea.pf-input:focus{border-color:var(--honey-d);box-shadow:0 0 0 3px rgba(245,178,7,.15)}
.profile-form .pf-actions{display:flex;gap:10px;margin-top:24px}
.profile-form .pf-actions button{padding:9px 18px;border-radius:8px;font-family:'Inter';font-weight:600;font-size:13px;cursor:pointer;border:none}
.profile-form .pf-actions .pf-save{background:var(--deep);color:var(--on-accent)}
.profile-form .pf-actions .pf-cancel{background:var(--card);color:var(--ink);border:1px solid var(--line)}
.profile-form .pf-help{font-size:11px;color:var(--mute);line-height:1.4;font-style:italic}
@media (max-width:900px){.profile-form{grid-template-columns:1fr}.profile-form .pf-field.full{grid-column:span 1}}

/* Avatar + identity */
.pf-avatar-wrap{position:relative;flex-shrink:0;width:128px;height:128px;margin-top:-64px}
.pf-avatar{width:128px;height:128px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,var(--honey),var(--honey-d));border:5px solid #fff;box-shadow:0 12px 30px -10px rgba(11,18,32,.45),inset 0 0 0 1px rgba(255,255,255,.18);user-select:none}
.pf-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.pf-avatar .pf-initials{font-family:'Inter';font-weight:800;font-size:44px;color:var(--on-accent);letter-spacing:.02em;text-transform:uppercase}
.pf-avatar-edit{position:absolute;right:4px;bottom:6px;width:34px;height:34px;border-radius:50%;border:3px solid #fff;background:var(--deep);color:var(--on-accent);display:grid;place-items:center;cursor:pointer;font-size:14px;line-height:1;box-shadow:0 3px 8px rgba(11,18,32,.28);transition:.15s}
.pf-avatar-edit:hover{background:var(--honey-d);transform:scale(1.07)}
.pf-avatar-edit:focus-visible{outline:2px solid var(--honey);outline-offset:2px}
.pf-identity{display:flex;flex-direction:column;gap:6px;min-width:0;padding-bottom:4px}
.pf-identity .pf-name{font-family:'Inter';font-weight:800;font-size:26px;letter-spacing:-0.025em;color:var(--ink);line-height:1.08}
.pf-identity .pf-role{font-size:14px;color:var(--body);font-weight:600}
.pf-identity .pf-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:12.5px;color:var(--mute);font-weight:500;margin-top:1px}
.pf-identity .pf-meta .mi{display:inline-flex;align-items:center;gap:5px}
.pf-identity .pf-meta .mi .ic{opacity:.75}
.pf-identity .pf-badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:7px}
.pf-identity .pf-badge{display:inline-flex;align-items:center;gap:4px;font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:var(--mist);color:var(--ink-3)}
.pf-identity .pf-badge.ok{background:var(--emerald-glow);color:var(--emerald-d)}
.pf-identity .pf-badge.ok::before{content:"✓";font-weight:800}
.pf-photo-input{display:none}

/* Profile action row */
.id-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.id-action{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:9px;font-family:'Inter';font-weight:600;font-size:13px;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--ink-2);transition:.15s}
.id-action:hover{border-color:var(--honey-d);color:var(--honey-d);background:var(--honey-glow)}
.id-action .ic{font-size:14px;line-height:1}
.id-action.primary{background:var(--deep);color:var(--on-accent);border-color:var(--deep)}
.id-action.primary:hover{background:var(--honey-d);border-color:var(--honey-d);color:var(--on-accent)}

/* Profile grid + hero + score box */
.pf-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}
.pf-main{display:flex;flex-direction:column;gap:18px;min-width:0}
.pf-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px 24px;box-shadow:0 14px 40px -28px rgba(11,18,32,.5)}
.pf-hero-id{display:flex;align-items:center;gap:20px;min-width:0;flex:1 1 300px}
.pf-hero .pf-avatar-wrap{width:92px;height:92px;margin-top:0;flex-shrink:0}
.pf-hero .pf-avatar{width:92px;height:92px;border-width:4px}
.pf-hero .pf-avatar .pf-initials{font-size:34px}
.pf-hero .pf-avatar-edit{width:28px;height:28px;font-size:12px;right:0;bottom:2px}
.pf-nameline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pf-nameline .pf-name{font-family:'Inter';font-weight:800;font-size:25px;letter-spacing:-.025em;color:var(--ink);line-height:1.05}
.pf-verified{display:inline-flex;align-items:center;gap:3px;font-family:'JetBrains Mono';font-size:10px;font-weight:700;letter-spacing:.04em;padding:3px 9px;border-radius:999px;background:var(--emerald-glow);color:var(--emerald-d)}
.pf-hero .pf-role{font-size:13.5px;color:var(--body);font-weight:600;margin-top:3px}
.pf-scorebox{flex-shrink:0;display:flex;flex-direction:column;gap:8px;min-width:188px;padding:16px 20px;border-radius:16px;background:linear-gradient(135deg,var(--deep) 0%,var(--deep-2) 100%);color:var(--on-accent);cursor:pointer;transition:.18s;box-shadow:0 16px 36px -22px rgba(11,18,32,.8)}
.pf-scorebox:hover{transform:translateY(-2px);box-shadow:0 20px 44px -22px rgba(11,18,32,.9)}
.psb-head{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--honey-soft)}
.psb-main{display:flex;align-items:center;justify-content:space-between;gap:14px}
.psb-num{font-family:'Inter';font-weight:800;font-size:32px;letter-spacing:-.03em;line-height:1;display:flex;align-items:baseline;gap:2px}
.psb-of{font-size:14px;font-weight:500;color:#FFFFFF85;letter-spacing:0}
.psb-ring{position:relative;width:64px;height:64px;flex-shrink:0}
.psb-ring svg{transform:rotate(-90deg)}
.psb-pct{position:absolute;inset:0;display:grid;place-items:center;font-family:'JetBrains Mono';font-size:13px;font-weight:800;color:#FCD34D}
.psb-rank{font-family:'JetBrains Mono';font-size:10px;letter-spacing:.04em;color:#FFFFFF9C}

/* Stats row */
.pf-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pf-stat{display:flex;align-items:center;gap:13px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:15px 18px;transition:.15s}
.pf-stat:hover{transform:translateY(-2px);box-shadow:0 12px 28px -18px rgba(11,18,32,.45)}
.pst-ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:20px;flex-shrink:0}
.pst-ico.streak{background:linear-gradient(135deg,#F97316,#EF4444);color:var(--on-accent)}
.pst-ico.rp{background:linear-gradient(135deg,#A78BFA,#7C3AED);color:var(--on-accent)}
.pst-ico.comp{background:transparent;width:46px;height:46px}
.pst-ring{position:relative;width:46px;height:46px}
.pst-ring svg{display:block;transform:rotate(-90deg)}
.pst-ring svg circle:last-child{transition:stroke-dashoffset .6s cubic-bezier(.4,0,.2,1)}
.pst-ringpct{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1;color:#065F46}
.pst-ringpct b{font-family:'JetBrains Mono';font-size:14px;font-weight:800;letter-spacing:-.03em}
.pst-ringpct i{font-family:'JetBrains Mono';font-style:normal;font-size:7.5px;font-weight:700;color:#10B981;letter-spacing:.04em;margin-top:1px}
.pst-body{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.pst-val{font-family:'Inter';font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--ink)}
.pst-lbl{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-top:2px}
.pst-delta{font-family:'Inter';font-size:11px;font-weight:600;margin-top:4px}
.pst-delta.up{color:var(--emerald-d)}

/* Tabs */
.pf-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}
.pf-tab{font-family:'Inter';font-size:13.5px;font-weight:600;color:var(--mute);background:transparent;border:none;border-bottom:2px solid transparent;padding:11px 16px;cursor:pointer;white-space:nowrap;transition:.14s;margin-bottom:-1px}
.pf-tab:hover{color:var(--ink-2)}
.pf-tab.active{color:var(--honey-d);border-bottom-color:var(--honey-d)}
.pf-tabstub{align-items:center;text-align:center;padding:48px 24px;gap:8px}
.pts-ico{font-size:30px;color:var(--honey-d)}
.pts-title{font-family:'Inter';font-weight:700;font-size:16px;color:var(--ink)}
.pts-sub{font-size:13px;color:var(--mute);max-width:380px}

/* Completion aside */
.pf-aside{position:sticky;top:84px}
.pf-comp{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 14px 40px -30px rgba(11,18,32,.5)}
.pfc-head{display:flex;flex-direction:column;gap:3px;margin-bottom:14px}
.pfc-cap{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.pfc-pct{font-family:'Inter';font-weight:800;font-size:20px;letter-spacing:-.02em;color:var(--emerald-d)}
.pfc-bar{height:7px;border-radius:999px;background:var(--mist);overflow:hidden;margin-bottom:16px}
.pfc-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--emerald),var(--emerald-d));transition:width .6s cubic-bezier(.22,1,.36,1)}
.pfc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.pfc-item{display:flex;align-items:center;gap:10px;padding:9px 4px;font-size:13px;font-weight:600;color:var(--ink-2);border-bottom:1px solid var(--line)}
.pfc-item:last-child{border-bottom:none}
.pfc-check{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;font-size:11px;font-weight:800;background:var(--mist);color:transparent;border:1.5px solid var(--line)}
.pfc-item.done .pfc-check{background:var(--emerald-glow);color:var(--emerald-d);border-color:transparent}
.pfc-item:not(.done) .pfc-label{color:var(--mute)}
.pfc-cta{margin-top:16px;width:100%;padding:11px 14px;border-radius:10px;border:none;background:var(--deep);color:var(--on-accent);font-family:'Inter';font-weight:600;font-size:12.5px;cursor:pointer;transition:.15s;line-height:1.3}
.pfc-cta:hover{background:var(--honey-d)}
@media (max-width:980px){.pf-grid{grid-template-columns:1fr}.pf-aside{position:static}}
@media (max-width:620px){.pf-stats{grid-template-columns:1fr}.pf-hero{padding:18px}.pf-scorebox{width:100%}}

/* Dark-mode parity for the faculty profile surfaces */
[data-theme="dark"] .pf-value,[data-theme="dark"] .pf-cancel,[data-theme="dark"] .id-action,[data-theme="dark"] .pf-hero,[data-theme="dark"] .pf-stat,[data-theme="dark"] .pf-comp{background:var(--surface)}
[data-theme="dark"] .pf-save,[data-theme="dark"] .id-action.primary,[data-theme="dark"] .pfc-cta{background:var(--fblue)}

/* ── Blue template variant (faculty lens) — recolor the amber/navy
   profile accents to the faculty blue used across the faculty views ── */
.pf-blue .pf-avatar{background:linear-gradient(135deg,var(--fblue-l),var(--fblue-d))}
.pf-blue .pf-avatar-edit{background:var(--fblue)}
.pf-blue .pf-avatar-edit:hover{background:var(--fblue-d)}
.pf-blue .pf-avatar-edit:focus-visible{outline-color:var(--fblue-l)}
.pf-blue .pf-scorebox{background:linear-gradient(150deg,#0E1A4D 0%,#16277A 52%,#1E3A8A 100%);box-shadow:0 16px 36px -22px rgba(14,26,77,.85)}
.pf-blue .pf-scorebox:hover{box-shadow:0 20px 44px -22px rgba(14,26,77,.95)}
.pf-blue .psb-head{color:#9DB0F7}
.pf-blue .psb-pct{color:#9DB0F7}
.pf-blue .psb-rank{color:#AFC0FF}
.pf-blue .pst-ico.rp{background:linear-gradient(135deg,var(--fblue-l),var(--fblue))}
.pf-blue .pst-ringpct i{color:var(--fblue)}
.pf-blue .pf-tab.active{color:var(--fblue);border-bottom-color:var(--fblue)}
.pf-blue .profile-form input.pf-input:focus,.pf-blue .profile-form textarea.pf-input:focus{border-color:var(--fblue);box-shadow:0 0 0 3px rgba(59,89,224,.18)}
.pf-blue .id-action:hover{border-color:var(--fblue);color:var(--fblue);background:rgba(59,89,224,.08)}
.pf-blue .id-action.primary{background:var(--fblue);border-color:var(--fblue)}
.pf-blue .id-action.primary:hover{background:var(--fblue-d);border-color:var(--fblue-d);color:#fff}
.pf-blue .profile-form .pf-actions .pf-save{background:var(--fblue)}
.pf-blue .pts-ico{color:var(--fblue)}
.pf-blue .pfc-pct{color:var(--fblue)}
.pf-blue .pfc-bar span{background:linear-gradient(90deg,var(--fblue-l),var(--fblue))}
.pf-blue .pfc-item.done .pfc-check{background:rgba(59,89,224,.14);color:var(--fblue);border-color:transparent}
.pf-blue .pfc-cta{background:var(--fblue)}
.pf-blue .pfc-cta:hover{background:var(--fblue-d)}

/* ── Green template variant (TPO / placement-officer lens) — reuses the
   faculty rich-profile layout, recolored to placement green ── */
.pf-green .pf-avatar{background:linear-gradient(135deg,var(--fgreen-l),var(--fgreen-d))}
.pf-green .pf-avatar-edit{background:var(--fgreen)}
.pf-green .pf-avatar-edit:hover{background:var(--fgreen-d)}
.pf-green .pf-avatar-edit:focus-visible{outline-color:var(--fgreen-l)}
.pf-green .pf-scorebox{background:linear-gradient(150deg,#053321 0%,#0A6B3A 52%,#0F8A3C 100%);box-shadow:0 16px 36px -22px rgba(5,51,33,.85)}
.pf-green .pf-scorebox:hover{box-shadow:0 20px 44px -22px rgba(5,51,33,.95)}
.pf-green .psb-head{color:#86EFAC}
.pf-green .psb-pct{color:#86EFAC}
.pf-green .psb-rank{color:#A7F3CB}
.pf-green .pst-ico.rp{background:linear-gradient(135deg,var(--fgreen-l),var(--fgreen))}
.pf-green .pst-ringpct i{color:var(--fgreen)}
.pf-green .pf-tab.active{color:var(--fgreen);border-bottom-color:var(--fgreen)}
.pf-green .profile-form input.pf-input:focus,.pf-green .profile-form textarea.pf-input:focus{border-color:var(--fgreen);box-shadow:0 0 0 3px rgba(22,163,74,.18)}
.pf-green .id-action:hover{border-color:var(--fgreen);color:var(--fgreen);background:rgba(22,163,74,.08)}
.pf-green .id-action.primary{background:var(--fgreen);border-color:var(--fgreen)}
.pf-green .id-action.primary:hover{background:var(--fgreen-d);border-color:var(--fgreen-d);color:#fff}
.pf-green .profile-form .pf-actions .pf-save{background:var(--fgreen)}
.pf-green .pts-ico{color:var(--fgreen)}
.pf-green .pfc-pct{color:var(--fgreen)}
.pf-green .pfc-bar span{background:linear-gradient(90deg,var(--fgreen-l),var(--fgreen))}
.pf-green .pfc-item.done .pfc-check{background:rgba(22,163,74,.14);color:var(--fgreen);border-color:transparent}
.pf-green .pfc-cta{background:var(--fgreen)}
.pf-green .pfc-cta:hover{background:var(--fgreen-d)}
/* expandable placement-score breakdown */
.pf-green .pf-scorebox.open{min-width:280px}
.pf-green .psb-caret{font-size:10px;opacity:.8;margin-left:2px}
.pf-green .psb-breakdown{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column;gap:12px;cursor:default}
.pf-green .psb-comp-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.pf-green .psb-comp-lbl{font-family:'Inter';font-size:12px;font-weight:600;color:#EAFBF1}
.pf-green .psb-comp-val{font-family:'JetBrains Mono';font-size:11px;color:#A7F3CB}
.pf-green .psb-comp-val b{color:#fff;font-size:12.5px}
.pf-green .psb-comp-bar{height:5px;border-radius:999px;background:rgba(255,255,255,.16);overflow:hidden;margin:5px 0 3px}
.pf-green .psb-comp-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#6EE7B7,#86EFAC);transition:width .6s cubic-bezier(.22,1,.36,1)}
.pf-green .psb-comp-meta{font-family:'Inter';font-size:10.5px;color:rgba(167,243,203,.8);line-height:1.3}

/* ══════════════════════════════════════════════════════
   QUIZ BUILDER — Google-Forms-style modal (faculty blue)
   ══════════════════════════════════════════════════════ */
.qb-wrap{position:fixed;inset:0;z-index:200;display:flex;align-items:flex-start;justify-content:center;padding:32px 16px;overflow-y:auto}
.qb-back{position:fixed;inset:0;background:rgba(11,18,32,.55);backdrop-filter:blur(3px)}
.qb-modal{position:relative;z-index:1;width:100%;max-width:680px;margin:auto;background:var(--fog);border:1px solid var(--line);border-radius:18px;box-shadow:0 32px 90px -28px rgba(11,18,32,.55),0 4px 14px -8px rgba(11,18,32,.25);display:flex;flex-direction:column;max-height:calc(100vh - 64px);overflow:hidden}
.qb-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px;background:linear-gradient(135deg,#0E1A4D 0%,#1B2E86 55%,#2447A6 100%);color:#fff;border-radius:18px 18px 0 0}
.qb-eyebrow{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#A7B6F5}
.qb-head h3{font-family:'Inter';font-weight:800;font-size:20px;margin:4px 0 0;letter-spacing:-.025em;color:#fff;line-height:1.15}
.qb-x{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;border:1px solid #FFFFFF2E;background:#FFFFFF14;color:#fff;cursor:pointer;font-size:14px;flex-shrink:0;transition:.16s}
.qb-x:hover{background:#FFFFFF2B;transform:rotate(90deg)}
.qb-body{padding:22px 24px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;background:var(--fog)}
.qb-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 1px 2px rgba(11,18,32,.04),0 8px 22px -18px rgba(11,18,32,.5)}
.qb-settings{position:relative;border-top:3px solid var(--fblue);padding-top:22px}
.qb-title-input{width:100%;box-sizing:border-box;border:none;border-bottom:1.5px solid var(--line);background:transparent;font-family:'Inter';font-weight:700;font-size:21px;letter-spacing:-.025em;color:var(--ink);padding:2px 2px 10px;outline:none;transition:.18s}
.qb-title-input::placeholder{color:var(--mute);font-weight:600}
.qb-title-input:focus{border-bottom-color:var(--fblue);box-shadow:0 1px 0 0 var(--fblue)}
.qb-desc-input{width:100%;box-sizing:border-box;border:none;background:transparent;font-family:'Inter';font-size:13px;line-height:1.5;color:var(--body);padding:10px 2px 0;outline:none;resize:vertical;min-height:38px}
.qb-meta-grid{display:grid;grid-template-columns:1.5fr 1fr 1.1fr;gap:14px;margin-top:18px}
.qb-field label{display:block;font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--mute);margin-bottom:6px}
.qb-field input,.qb-field select{width:100%;box-sizing:border-box;height:40px;padding:0 12px;border:1.5px solid var(--line);border-radius:9px;font-family:'Inter';font-size:13px;font-weight:500;color:var(--ink);background:var(--surface);outline:none;transition:.15s;appearance:none}
.qb-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2364748B' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:30px}
.qb-field input:hover,.qb-field select:hover{border-color:var(--ink-3)}
.qb-field input:focus,.qb-field select:focus{border-color:var(--fblue);box-shadow:0 0 0 3px rgba(59,89,224,.14)}
.qb-assignline{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-family:'Inter';font-size:12.5px;font-weight:600;color:var(--ink-2)}
.qb-assignline>span:first-child{display:inline-flex;align-items:center;gap:8px}
.qb-avatar{width:24px;height:24px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#1B2E86,#2447A6);color:#fff;font-family:'Inter';font-size:11px;font-weight:700}
.qb-prio{font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fblue);background:rgba(59,89,224,.1);border:1px solid rgba(59,89,224,.18);padding:4px 10px;border-radius:999px}
.qb-ai{margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:9px;border:1.5px solid var(--fblue);background:rgba(59,89,224,.06);color:var(--fblue);font-family:'Inter';font-size:12px;font-weight:600;cursor:pointer;transition:.16s}
.qb-ai:hover:not(:disabled){background:var(--fblue);color:#fff;box-shadow:0 6px 16px -8px rgba(59,89,224,.6)}
.qb-ai:disabled{opacity:.45;cursor:not-allowed}
.qb-question{border-left:3px solid var(--line);transition:.18s}
.qb-question:focus-within{border-left-color:var(--fblue);box-shadow:0 1px 2px rgba(11,18,32,.04),0 14px 30px -18px rgba(46,69,196,.45)}
.qb-q-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.qb-q-num{font-family:'JetBrains Mono';font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--fblue)}
.qb-q-del{border:none;background:transparent;color:var(--mute);font-size:15px;cursor:pointer;border-radius:8px;width:30px;height:30px;display:grid;place-items:center;transition:.14s}
.qb-q-del:hover:not(:disabled){background:var(--rose-glow);color:var(--rose-d)}
.qb-q-del:disabled{opacity:.3;cursor:not-allowed}
.qb-q-input{width:100%;box-sizing:border-box;border:none;border-bottom:1.5px solid var(--line);background:transparent;font-family:'Inter';font-size:15px;font-weight:600;color:var(--ink);padding:6px 2px;outline:none;margin-bottom:14px;transition:.15s}
.qb-q-input::placeholder{color:var(--mute);font-weight:500}
.qb-q-input:focus{border-bottom-color:var(--fblue)}
.qb-opts{display:flex;flex-direction:column;gap:8px}
.qb-opt{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);transition:.16s}
.qb-opt:hover{border-color:var(--ink-3)}
.qb-opt.correct{border-color:var(--emerald);background:var(--emerald-glow)}
.qb-opt.correct:hover{border-color:var(--emerald)}
.qb-opt-mark{width:24px;height:24px;flex-shrink:0;border-radius:50%;border:1.5px solid var(--line);background:var(--card);color:var(--mute);cursor:pointer;font-size:12px;font-weight:800;display:grid;place-items:center;transition:.14s}
.qb-opt-mark:hover{border-color:var(--emerald-d);color:var(--emerald-d)}
.qb-opt-mark.on{background:var(--emerald-d);border-color:var(--emerald-d);color:#fff;box-shadow:0 4px 10px -4px rgba(5,150,105,.5)}
.qb-opt-input{flex:1;min-width:0;border:none;background:transparent;font-family:'Inter';font-size:13.5px;color:var(--ink);outline:none;padding:6px 2px}
.qb-opt-input::placeholder{color:var(--mute)}
.qb-opt-del{border:none;background:transparent;color:var(--mute);font-size:12px;cursor:pointer;border-radius:7px;width:26px;height:26px;display:grid;place-items:center;flex-shrink:0;transition:.14s}
.qb-opt-del:hover:not(:disabled){background:var(--rose-glow);color:var(--rose-d)}
.qb-opt-del:disabled{opacity:.3;cursor:not-allowed}
.qb-add-opt{align-self:flex-start;margin-top:4px;border:none;background:transparent;color:var(--fblue);font-family:'Inter';font-size:12.5px;font-weight:600;cursor:pointer;padding:6px 2px;transition:.12s}
.qb-add-opt:hover{opacity:.7}
.qb-q-hint{font-size:11px;color:var(--mute);margin-top:12px;font-style:italic}
.qb-q-controls{display:flex;gap:10px;align-items:stretch}
.qb-add-q{flex:1;padding:14px;border:1.5px dashed var(--fblue);border-radius:12px;background:rgba(59,89,224,.04);color:var(--fblue);font-family:'Inter';font-size:13.5px;font-weight:700;cursor:pointer;transition:.16s}
.qb-add-q:hover{background:rgba(59,89,224,.1);border-style:solid}
.qb-clear{flex-shrink:0;padding:14px 16px;border:1.5px solid var(--line);border-radius:12px;background:var(--card);color:var(--mute);font-family:'Inter';font-size:12.5px;font-weight:600;cursor:pointer;transition:.16s}
.qb-clear:hover{border-color:var(--rose);color:var(--rose-d);background:var(--rose-glow)}
.qb-foot{position:sticky;bottom:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 24px;background:var(--card);border-top:1px solid var(--line);box-shadow:0 -6px 18px -16px rgba(11,18,32,.4)}
.qb-foot-count{font-family:'JetBrains Mono';font-size:11px;font-weight:700;color:var(--mute);letter-spacing:.03em}
.qb-foot-btns{display:flex;gap:9px}
.qb-foot .btn{padding:9px 16px;border-radius:9px}
.qb-foot .btn.primary{background:var(--fblue);border-color:var(--fblue);color:#fff}
.qb-foot .btn.primary:hover:not(:disabled){background:var(--fblue-d);border-color:var(--fblue-d);box-shadow:0 8px 20px -10px rgba(59,89,224,.7)}
.qb-foot .btn.primary:disabled{opacity:.45;cursor:not-allowed}
@media (max-width:560px){.qb-meta-grid{grid-template-columns:1fr}.qb-foot{flex-direction:column;align-items:stretch}.qb-foot-btns{justify-content:flex-end}}
[data-theme="dark"] .qb-modal{background:var(--ink)}
[data-theme="dark"] .qb-body{background:var(--ink)}
[data-theme="dark"] .qb-card,[data-theme="dark"] .qb-opt,[data-theme="dark"] .qb-field input,[data-theme="dark"] .qb-field select,[data-theme="dark"] .qb-foot{background:var(--surface)}

/* Quiz list row actions (Edit / Results / Delete) */
.content-row .cr-actions{display:flex;align-items:center;gap:6px;margin-left:12px;flex-shrink:0}
.cr-act{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border:1.5px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink-2);font-family:'Inter';font-size:11.5px;font-weight:600;cursor:pointer;transition:.14s;white-space:nowrap}
.cr-act:hover{border-color:var(--fblue);color:var(--fblue);background:rgba(59,89,224,.06)}
.cr-act.danger:hover{border-color:var(--rose);color:var(--rose-d);background:var(--rose-glow)}

/* Quiz evaluation modal (qr-*) — reuses the .qb-modal shell */
.qr-modal{max-width:680px}
.qr-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:6px}
.qr-stat{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.qr-stat b{font-family:'Inter';font-weight:800;font-size:24px;letter-spacing:-.02em;color:var(--fblue)}
.qr-stat span{font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.qr-empty{padding:28px 18px;text-align:center;color:var(--mute);font-size:13px;background:var(--card);border:1px dashed var(--line);border-radius:12px}
.qr-row{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:.14s}
.qr-row.open{border-color:var(--fblue);box-shadow:0 10px 26px -18px rgba(46,69,196,.5)}
.qr-row-head{display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer}
.qr-avatar{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-family:'Inter';font-weight:700;font-size:13px;color:#fff;background:linear-gradient(135deg,var(--fblue),var(--fviolet))}
.qr-id{flex:1;min-width:0}
.qr-name{font-family:'Inter';font-weight:700;font-size:14px;color:var(--ink);display:flex;align-items:center;gap:8px}
.qr-you{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--emerald-d);background:var(--emerald-glow);padding:2px 7px;border-radius:999px}
.qr-sub{font-size:11.5px;color:var(--mute);margin-top:2px}
.qr-score{font-family:'Inter';font-weight:800;font-size:18px;letter-spacing:-.02em;flex-shrink:0}
.qr-score.pass{color:var(--emerald-d)}
.qr-score.fail{color:var(--rose-d)}
.qr-toggle{flex-shrink:0;border:none;background:transparent;color:var(--mute);font-family:'JetBrains Mono';font-size:10px;font-weight:700;cursor:pointer;padding:4px 6px}
.qr-answers{padding:4px 14px 14px;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line)}
.qr-ans{padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:9px}
.qr-ans-q{font-family:'Inter';font-size:13px;font-weight:600;color:var(--ink);margin-bottom:7px;line-height:1.35}
.qr-ans-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.qr-ans-pick{display:inline-flex;align-items:center;gap:6px;font-family:'Inter';font-size:12.5px;font-weight:600;padding:4px 10px;border-radius:7px}
.qr-ans-pick.ok{background:var(--emerald-glow);color:var(--emerald-d)}
.qr-ans-pick.bad{background:var(--rose-glow);color:var(--rose-d)}
.qr-ans-correct{font-size:11.5px;color:var(--mute)}
.qr-ans-correct b{color:var(--emerald-d)}
@media (max-width:560px){.qr-summary{grid-template-columns:1fr 1fr}}
[data-theme="dark"] .cr-act,[data-theme="dark"] .qr-stat,[data-theme="dark"] .qr-row,[data-theme="dark"] .qr-ans{background:var(--surface)}

/* ════════════════════════════════════════════════════════════
   TPO / PLACEMENT DASHBOARD  (view==='dashboard', role==='tpo')
   ════════════════════════════════════════════════════════════ */
.tpo-home{padding-top:24px}
.tpo-dash{display:grid;grid-template-columns:minmax(0,1fr) 332px;gap:20px;align-items:start}
.tpo-main{display:flex;flex-direction:column;gap:18px;min-width:0}
.tpo-rail{display:flex;flex-direction:column;gap:18px;position:sticky;top:80px}
@media(max-width:1180px){.tpo-dash{grid-template-columns:1fr}.tpo-rail{position:static}}

/* Placement Score card (dashboard right rail) — dark composite score */
.dps-card{background:linear-gradient(150deg,#053321 0%,#0A6B3A 52%,#0F8A3C 100%);border:none;color:var(--on-accent);box-shadow:0 16px 36px -22px rgba(5,51,33,.85);cursor:pointer;transition:.18s}
.dps-card:hover{transform:translateY(-2px);box-shadow:0 20px 44px -22px rgba(5,51,33,.95)}
.dps-card .ch h3{color:#fff}
.dps-caret{font-size:10px;opacity:.8;margin-left:2px}
.dps-card .ch .pill.em{background:rgba(255,255,255,.16);color:#EAFBF1}
.dps-main{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:2px}
.dps-num{font-family:'Inter';font-weight:800;font-size:40px;letter-spacing:-.03em;line-height:1;display:flex;align-items:baseline;gap:2px}
.dps-of{font-size:16px;font-weight:500;color:#FFFFFF85;letter-spacing:0}
.dps-ring{position:relative;width:68px;height:68px;flex-shrink:0}
.dps-ring svg{transform:rotate(-90deg)}
.dps-pct{position:absolute;inset:0;display:grid;place-items:center;font-family:'JetBrains Mono';font-size:13px;font-weight:800;color:#86EFAC}
.dps-rank{font-family:'JetBrains Mono';font-size:10px;letter-spacing:.04em;color:#FFFFFF9C;margin-top:-4px}
.dps-breakdown{display:flex;flex-direction:column;gap:11px;margin-top:6px;padding-top:14px;border-top:1px solid rgba(255,255,255,.14)}
.dps-comp-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.dps-comp-lbl{font-family:'Inter';font-size:12px;font-weight:600;color:#EAFBF1}
.dps-comp-val{font-family:'JetBrains Mono';font-size:11px;color:#A7F3CB}
.dps-comp-val b{color:#fff;font-size:12.5px}
.dps-comp-bar{height:5px;border-radius:999px;background:rgba(255,255,255,.16);overflow:hidden;margin-top:5px}
.dps-comp-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#6EE7B7,#86EFAC);transition:width .6s cubic-bezier(.22,1,.36,1)}

/* Hero green banner */
.tpo-hero{position:relative;overflow:hidden;border-radius:16px;padding:26px 28px;min-height:188px;color:#fff;
  background:linear-gradient(120deg,#0E5A3E 0%,#15803D 48%,#1A9E54 100%);box-shadow:0 10px 30px rgba(16,122,67,.28)}
.tpo-hero .th-copy{position:relative;z-index:2;max-width:62%}
.th-date{position:absolute;top:0;right:0;z-index:3;display:inline-flex;align-items:center;gap:8px;
  background:#FFFFFF1F;border:1px solid #FFFFFF38;color:#fff;font-family:'Inter';font-size:12.5px;font-weight:600;
  letter-spacing:.01em;padding:8px 14px;border-radius:10px;cursor:pointer;backdrop-filter:blur(6px);
  box-shadow:0 2px 8px rgba(0,0,0,.06);transition:background .15s ease,border-color .15s ease}
.th-date:hover{background:#FFFFFF2E;border-color:#FFFFFF52}
.th-date-ic{width:15px;height:15px;flex:0 0 auto;opacity:.92}
.th-greet{font-family:'Inter';font-weight:800;font-size:27px;letter-spacing:-0.02em;line-height:1.15}
.th-wave{display:inline-block}
.th-sub{font-size:13.5px;color:#EAFBF1;margin-top:6px;line-height:1.5}
.th-chips{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}
.th-chip{background:#FFFFFF1F;border:1px solid #FFFFFF2E;border-radius:12px;padding:11px 13px;backdrop-filter:blur(4px)}
.thc-v{font-family:'Inter';font-weight:800;font-size:21px;letter-spacing:-0.02em;line-height:1}
.thc-l{font-size:11px;color:#DCF7E7;margin-top:5px;font-weight:500}
.th-illus{position:absolute;right:14px;bottom:0;width:210px;height:160px;z-index:1;opacity:.96}
@media(max-width:760px){.tpo-hero .th-copy{max-width:100%}.th-illus{display:none}.th-chips{grid-template-columns:1fr 1fr}.th-date{position:static;margin-bottom:10px}}

/* Headline stat cards */
.tpo-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.tpo-stat{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:15px 18px;display:flex;flex-direction:column;gap:4px}
.tpo-stat.clk{cursor:pointer;transition:.15s}
.tpo-stat.clk:hover{border-color:var(--emerald);box-shadow:0 6px 18px rgba(16,185,129,.12);transform:translateY(-1px)}
.ts-lbl{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:700}
.ts-v{font-family:'Inter';font-weight:800;font-size:25px;color:var(--ink);line-height:1.05;letter-spacing:-0.025em;display:flex;align-items:baseline;gap:3px}
.ts-v small{font-family:'Inter';font-size:12px;font-weight:600;color:var(--mute)}
.ts-d{font-size:11.5px;line-height:1.35}
.ts-d.up{color:var(--emerald-d);font-weight:600}
.ts-d.sub{color:var(--mute)}
.tpo-stat .kc-spark{margin-top:auto}
@media(max-width:900px){.tpo-stats{grid-template-columns:1fr 1fr}}

/* 2-col content rows */
.tpo-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.tpo-row.r-7-5{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
@media(max-width:920px){.tpo-row,.tpo-row.r-7-5{grid-template-columns:1fr}}

/* Company logo chip (shared) */
.co-logo{width:38px;height:38px;border-radius:9px;color:#fff;display:grid;place-items:center;font-weight:800;font-size:12px;font-family:'Inter';flex-shrink:0;letter-spacing:.02em}
.co-logo img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.co-logo.has-img{overflow:hidden;background:transparent!important}
.co-logo-img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}

/* Recent drives table */
.tpo-table{width:100%;border-collapse:collapse;font-family:'Inter'}
.tpo-table thead th{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:700;text-align:left;padding:0 10px 9px;border-bottom:1px solid var(--line)}
.tpo-table thead th.num{text-align:right}
.tpo-table tbody td{padding:11px 10px;border-bottom:1px solid var(--line);font-size:13px;color:var(--ink-2);vertical-align:middle}
.tpo-table tbody td.num{text-align:right;font-variant-numeric:tabular-nums;color:var(--body)}
.tpo-table tbody td.num b{color:var(--ink);font-weight:700}
.tpo-table tbody tr{cursor:pointer;transition:.12s}
.tpo-table tbody tr:hover td{background:var(--fog)}
.tpo-table tbody tr:last-child td{border-bottom:none}
.tt-co{display:flex;align-items:center;gap:11px}
.tt-co .co-logo{width:34px;height:34px;border-radius:8px}
.tt-co b{display:block;font-size:13px;color:var(--ink);font-weight:600;line-height:1.2}
.tt-co small{display:block;font-size:11px;color:var(--mute);margin-top:1px}
.pill.hny{background:var(--honey-glow);color:var(--honey-d)}

/* Applications row shortcuts — red query-mark + message-recruiter button */
.tpo-table thead th.app-act-h{text-align:right}
.tpo-table tbody td.app-act{text-align:right;white-space:nowrap;cursor:default}
.row-flag{display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 8px;border:1px solid var(--rose);border-radius:999px;background:var(--rose-glow);color:var(--rose-d);font-family:'Inter';font-size:11px;font-weight:700;line-height:1;cursor:pointer;transition:background .15s,box-shadow .15s,color .15s}
.row-flag:hover{background:var(--rose);color:#fff;box-shadow:0 2px 10px rgba(225,29,72,.35)}
.row-flag .rf-dot{width:7px;height:7px;border-radius:50%;background:var(--rose);box-shadow:0 0 0 3px rgba(225,29,72,.18);animation:rfPulse 1.8s ease-in-out infinite}
.row-flag:hover .rf-dot{background:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.3)}
.row-flag .rf-ct{display:inline-block;min-width:15px;padding:0 4px;border-radius:999px;background:var(--rose);color:#fff;font-size:10px;text-align:center;font-variant-numeric:tabular-nums}
.row-flag:hover .rf-ct{background:#fff;color:var(--rose-d)}
@keyframes rfPulse{0%,100%{box-shadow:0 0 0 3px rgba(225,29,72,.18)}50%{box-shadow:0 0 0 5px rgba(225,29,72,.04)}}
.row-msg{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;margin-left:7px;vertical-align:middle;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--mute);cursor:pointer;transition:border-color .15s,color .15s,background .15s}
.row-msg:hover{border-color:var(--teal);color:var(--teal-d);background:var(--teal-glow)}
/* inline action cluster — used in cards / flex rows (interviews, grids) */
.row-acts{display:inline-flex;align-items:center;flex:0 0 auto}
.row-acts.card{display:flex;justify-content:flex-end;gap:0;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.row-acts.card:empty,.row-acts.card[hidden]{display:none}
/* offers list action cell — keep buttons on one line, right-aligned */
.off-actcell{white-space:nowrap;text-align:right}
.off-actcell .row-flag{vertical-align:middle}

/* Applications grouped by company (collapsible cards) */
.app-co-list{display:flex;flex-direction:column;gap:12px}
.app-co{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.app-co.open{box-shadow:0 1px 2px rgba(16,24,40,.05)}
.app-co-head{width:100%;display:flex;align-items:center;gap:13px;padding:14px 18px;background:none;border:0;cursor:pointer;text-align:left;font-family:'Inter';transition:background .12s}
.app-co-head:hover{background:var(--fog)}
.app-chev{font-size:11px;color:var(--mute);transition:transform .18s ease;flex-shrink:0;line-height:1}
.app-co.open .app-chev{transform:rotate(90deg)}
.app-co-head .app-co-logo{border-radius:9px;color:#fff;font-size:12px;font-weight:700}
.app-co-name{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.app-co-name b{font-size:14px;color:var(--ink);font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-co-name small{font-size:11px;color:var(--mute)}
.app-co-meta{font-size:12px;color:var(--mute);flex-shrink:0;white-space:nowrap}
.app-co-meta b{color:var(--ink-2);font-weight:700;font-variant-numeric:tabular-nums}
.app-co-meta .dot{margin:0 5px;color:var(--line-2,var(--mute));opacity:.6}
.app-co-body{padding:2px 18px 12px;border-top:1px solid var(--line)}
@media (max-width:600px){.app-co-name small{display:none}.app-co-head{gap:10px;padding:12px 14px}.app-co-body{padding:2px 12px 10px}}

/* Applications donut + legend */
.tpo-donut-wrap{display:flex;align-items:center;gap:18px;padding:4px 0}
.tpo-legend{flex:1;display:flex;flex-direction:column;gap:9px;min-width:0}
.tl-row{display:flex;align-items:center;gap:9px;font-size:12.5px}
.tl-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.tl-dot.tl{background:var(--teal-d)}.tl-dot.em{background:var(--emerald-d)}.tl-dot.hny{background:var(--honey-d)}.tl-dot.rs{background:var(--rose-d)}
.tl-name{flex:1;color:var(--ink-2);font-weight:500}
.tl-val{font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}

/* Top recruiting companies list */
.comp-list{display:flex;flex-direction:column;gap:4px}
.comp-row{display:flex;align-items:center;gap:12px;padding:9px 8px;border-radius:10px;cursor:pointer;transition:.12s}
.comp-row:hover{background:var(--fog)}
.comp-bd{flex:1;min-width:0}
.comp-bd b{display:block;font-size:13px;color:var(--ink);font-weight:600;line-height:1.25}
.comp-bd small{display:block;font-size:11.5px;color:var(--mute);margin-top:1px}
.comp-ofs{text-align:right;flex-shrink:0}
.comp-ofs b{display:block;font-size:18px;font-weight:800;color:var(--emerald-d);line-height:1}
.comp-ofs small{font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--mute)}
.alert-item .ai-emo{margin-right:2px}

/* Placement progress card */
.pp-big{font-family:'Inter';font-weight:800;font-size:42px;letter-spacing:-0.03em;color:var(--emerald-d);line-height:1}
.pp-sub{font-size:12.5px;color:var(--mute);margin-top:2px}
.pp-track{position:relative;height:10px;border-radius:999px;background:var(--mist);margin:14px 0 10px;overflow:visible}
.pp-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--emerald),var(--emerald-d))}
.pp-target{position:absolute;top:-3px;width:2px;height:16px;background:var(--ink-2);border-radius:2px}
.pp-target::after{content:"";position:absolute;top:-4px;left:-3px;width:8px;height:8px;border-radius:50%;background:var(--ink-2)}
.pp-foot{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--mute)}
.pp-foot b{color:var(--ink)}

/* Upcoming drives list */
.ud-list{display:flex;flex-direction:column;gap:2px}
.ud-row{display:flex;align-items:center;gap:11px;padding:9px 8px;border-radius:10px;cursor:pointer;transition:.12s}
.ud-row:hover{background:var(--fog)}
.ud-bd{flex:1;min-width:0}
.ud-bd b{display:block;font-size:12.5px;color:var(--ink);font-weight:600;line-height:1.25}
.ud-bd small{display:block;font-size:11px;color:var(--mute);margin-top:1px}
.ud-go{color:var(--mute);font-size:15px;flex-shrink:0}
.ud-row:hover .ud-go{color:var(--emerald-d)}

/* Placement funnel */
.fn-list{display:flex;flex-direction:column;gap:12px}
.fn-top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:5px}
.fn-stage{font-size:12px;color:var(--ink-2);font-weight:500}
.fn-val b{font-size:13px;color:var(--ink);font-weight:700}
.fn-val small{font-size:11px;color:var(--mute);font-family:'JetBrains Mono'}
.fn-track{height:8px;border-radius:999px;background:var(--mist);overflow:hidden}
.fn-fill{height:100%;border-radius:999px;transition:width .4s}
.fn-fill.tl{background:var(--teal-d)}.fn-fill.em{background:var(--emerald-d)}.fn-fill.hny{background:var(--honey-d)}.fn-fill.rs{background:var(--rose-d)}

/* ════════════════════════════════════════════════════════════
   TPO PLACEMENT SECTIONS  (drives · companies · jobs · pipeline)
   ════════════════════════════════════════════════════════════ */
/* Candidate avatar (shared) */
.cand-av{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--emerald),var(--teal-d));color:#fff;display:grid;place-items:center;font-weight:700;font-size:12px;font-family:'Inter';flex-shrink:0;overflow:hidden}
.cand-av-img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.cand-av-fb{width:100%;height:100%;display:grid;place-items:center}

/* Companies grid */
.co-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.co-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:8px;transition:.15s}
.co-card:hover{border-color:var(--emerald);box-shadow:0 8px 22px rgba(16,185,129,.12);transform:translateY(-2px)}
.co-card-top{display:flex;align-items:center;justify-content:space-between}
.co-card .co-logo{width:44px;height:44px;border-radius:11px;font-size:14px}
.co-name{font-family:'Inter';font-weight:700;font-size:15px;color:var(--ink);margin-top:2px}
.co-sector{font-size:11.5px;color:var(--mute)}
.co-tier{font-weight:700;color:var(--honey-d)}
.co-stats{display:flex;gap:14px;margin-top:8px;padding-top:12px;border-top:1px solid var(--line)}
.co-stats div{display:flex;flex-direction:column}
.co-stats b{font-size:15px;font-weight:800;color:var(--ink);line-height:1}
.co-stats small{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);margin-top:3px}

/* ── Job Postings: KPI strip ── */
.job-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px}
.job-kpi{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:0 1px 2px var(--shadow);transition:.15s}
.job-kpi:hover{border-color:var(--emerald);box-shadow:0 6px 18px rgba(16,185,129,.1)}
.job-kic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-size:17px;flex:none}
.job-kic.em{background:var(--emerald-glow)}.job-kic.tl{background:var(--teal-glow)}.job-kic.plum{background:var(--plum-glow)}.job-kic.hny{background:var(--honey-glow)}.job-kic.rs{background:var(--rose-glow)}
.job-kic.ok{background:var(--emerald-glow);color:var(--emerald-d)}
.job-kbd{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.job-kbd .cap{font-family:'JetBrains Mono';font-size:10px;letter-spacing:.04em;color:var(--mute);font-weight:600;white-space:nowrap}
.job-kbd b{font-family:'Inter';font-weight:800;font-size:22px;color:var(--ink);margin:1px 0}
.job-kbd small{font-size:10.5px;color:var(--mute)}

/* ── Job postings grid ── */
.job-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.job-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 18px 14px;display:flex;flex-direction:column;gap:13px;box-shadow:0 1px 2px rgba(11,18,32,.04);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;overflow:hidden}
.job-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--emerald);opacity:0;transition:opacity .16s ease}
.job-card:hover{border-color:var(--emerald);box-shadow:0 12px 28px rgba(16,185,129,.15);transform:translateY(-3px)}
.job-card:hover::before{opacity:1}
.job-top{display:flex;align-items:center;gap:12px}
.job-card .co-logo{border-radius:11px;box-shadow:0 2px 7px rgba(11,18,32,.14)}
.job-hd{flex:1;min-width:0}
.job-hd b{display:block;font-size:15px;color:var(--ink);font-weight:750;line-height:1.25;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.job-hd small{display:block;font-size:11.5px;color:var(--mute);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.job-bm{flex:none;width:30px;height:30px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--mute);font-size:15px;cursor:pointer;line-height:1;transition:.13s}
.job-bm:hover{border-color:var(--honey);color:var(--honey-d)}
.job-bm.on{border-color:var(--honey);color:var(--honey-d);background:var(--honey-glow)}
.job-tags{display:flex;flex-wrap:wrap;gap:6px}
.pill.ghost{background:var(--fog);color:var(--ink-2);border:1px solid var(--line)}
.job-kv{display:flex;flex-direction:column;gap:9px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.job-kv>div{display:flex;align-items:center;justify-content:space-between;gap:10px}
.job-kv .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);font-weight:700}
.job-kv .v{font-size:12.5px;color:var(--ink-2);font-weight:600;text-align:right}
.job-kv .v.ctc{font-family:'Inter';font-weight:800;font-size:14.5px;color:var(--emerald-d)}
.job-stats{display:flex;align-items:stretch}
.job-stats .js{display:flex;flex-direction:column;flex:1;min-width:0;padding:1px 12px}
.job-stats .js:first-child{padding-left:0}
.job-stats .js:last-child{padding-right:0}
.job-stats .js+.js{border-left:1px solid var(--line)}
.job-stats .js b{font-size:15px;font-weight:800;color:var(--ink);line-height:1.1;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.job-stats .js small{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);margin-top:4px;font-weight:600}
.job-foot{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--mute);padding-top:12px;border-top:1px solid var(--line)}
.job-posted{font-size:11.5px;color:var(--mute)}
.job-dl{font-size:11.5px}
.job-dl b{color:var(--honey-d);font-weight:700}

/* ── Job postings table view ── */
.job-tablewrap{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.job-table{width:100%;border-collapse:collapse;font-size:12.5px}
.job-table thead th{text-align:left;padding:12px 14px;font-family:'JetBrains Mono';font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--mute);font-weight:600;background:var(--fog);border-bottom:1px solid var(--line);white-space:nowrap}
.job-table tbody td{padding:12px 14px;border-bottom:1px solid var(--line);color:var(--ink-2);vertical-align:middle}
.job-table tbody tr:last-child td{border-bottom:none}
.job-table tbody tr:hover{background:var(--fog)}
.jt-role{display:flex;align-items:center;gap:10px}
.jt-role .co-logo.sm{width:34px;height:34px;border-radius:9px;font-size:12px}
.jt-role b{display:block;font-size:13px;color:var(--ink);font-weight:700;line-height:1.15}
.jt-role small{display:block;font-size:11px;color:var(--mute);margin-top:1px}
.jt-ctc{font-weight:800;color:var(--emerald-d)}
.jt-dl{font-family:'JetBrains Mono';font-size:11.5px;color:var(--honey-d);font-weight:600;white-space:nowrap}

@media(max-width:1100px){.job-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.job-kpis{grid-template-columns:1fr 1fr}}

/* Candidate list rows (shortlisted / interviews / offers / communication) */
.cand-list{display:flex;flex-direction:column;gap:2px}
.cand-row{display:flex;align-items:center;gap:12px;padding:11px 8px;border-radius:10px;transition:.12s;border-bottom:1px solid var(--line)}
.cand-row:last-child{border-bottom:none}
.cand-row:hover{background:var(--fog)}
.cand-bd{flex:1;min-width:0}
.cand-bd b{display:block;font-size:13px;color:var(--ink);font-weight:600;line-height:1.25}
.cand-bd small{display:block;font-size:11.5px;color:var(--mute);margin-top:1px}
.cand-meta{font-size:11.5px;color:var(--body);font-family:'JetBrains Mono';flex-shrink:0}
.iv-time{font-family:'JetBrains Mono';font-size:11px;font-weight:700;color:var(--emerald-d);background:var(--emerald-glow);padding:5px 9px;border-radius:8px;min-width:58px;text-align:center;flex-shrink:0}
.offer-ctc{font-family:'Inter';font-weight:800;font-size:15px;color:var(--emerald-d);flex-shrink:0}

/* ── Interviews view ── */
.head-actions .btn .ba-ic{font-size:12px;margin-right:2px;display:inline-flex;align-items:center}
.head-actions .btn .ba-ic svg{width:14px;height:14px;display:block}
.iv-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.iv-stat{position:relative;display:flex;align-items:center;gap:13px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:15px 17px;box-shadow:0 1px 2px var(--shadow);overflow:hidden;transition:.15s}
.iv-stat::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--emerald)}
.iv-stat.tl::before{background:var(--teal)}.iv-stat.hny::before{background:var(--honey)}.iv-stat.rs::before{background:var(--rose)}
.iv-stat:hover{box-shadow:0 4px 14px var(--shadow);transform:translateY(-1px)}
.iv-stat-ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:none}
.iv-stat-ic svg{width:21px;height:21px;display:block}
.iv-stat-ic.em{background:var(--emerald-glow);color:var(--emerald-d)}.iv-stat-ic.tl{background:var(--teal-glow);color:var(--teal-d)}.iv-stat-ic.hny{background:var(--honey-glow);color:var(--honey-d)}.iv-stat-ic.rs{background:var(--rose-glow);color:var(--rose-d)}
.iv-stat-bd{display:flex;flex-direction:column;line-height:1.1;min-width:0}
.iv-stat-cap{font-family:'JetBrains Mono';font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--mute);font-weight:600}
.iv-stat-bd b{font-family:'Inter';font-weight:800;font-size:25px;color:var(--ink);margin:2px 0 1px;letter-spacing:-.01em}
.iv-stat-unit{font-size:10.5px;color:var(--mute)}
.iv-stat-trend{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;gap:4px;font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.04em;padding:2px 7px;border-radius:999px}
.iv-stat-trend.up{color:var(--emerald-d);background:var(--emerald-glow)}
.iv-stat-trend.live{color:var(--rose-d);background:var(--rose-glow)}
.iv-live-dot{width:6px;height:6px;border-radius:50%;background:var(--rose);box-shadow:0 0 0 0 var(--rose);animation:ivPulse 1.8s infinite}
@keyframes ivPulse{0%{box-shadow:0 0 0 0 rgba(244,63,94,.45)}70%{box-shadow:0 0 0 6px rgba(244,63,94,0)}100%{box-shadow:0 0 0 0 rgba(244,63,94,0)}}

/* Agenda toolbar */
.iv-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.iv-tb-l{display:flex;align-items:center;gap:10px}
.iv-tb-l h3{font-family:'Inter';font-weight:700;font-size:14.5px;color:var(--ink);margin:0}
.iv-tb-r{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.iv-search{position:relative;display:flex;align-items:center}
.iv-search-ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--mute);display:flex;pointer-events:none}
.iv-search-ic svg{width:15px;height:15px;display:block}
.iv-search input{padding:8px 12px 8px 30px;border:1px solid var(--line);border-radius:9px;background:var(--surface);font-family:'Inter';font-size:12.5px;color:var(--ink);outline:none;width:250px;transition:.15s}
.iv-search input:focus{border-color:var(--emerald-d);box-shadow:0 0 0 3px var(--emerald-glow)}
.iv-seg .seg{padding:6px 13px;font-size:12px}
.iv-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:46px 20px;text-align:center}
.iv-empty-ic{color:var(--mute);opacity:.6;margin-bottom:6px;display:flex}
.iv-empty-ic svg{width:32px;height:32px;display:block}
.iv-empty b{font-size:14px;color:var(--ink)}
.iv-empty small{font-size:12px;color:var(--mute);margin-bottom:10px}

.iv-roundpill{font-family:'JetBrains Mono';font-size:10px;font-weight:600;color:var(--teal-d);background:var(--teal-glow);padding:3px 9px;border-radius:999px;flex-shrink:0}

/* Day groups */
.iv-daygroup{padding:0 18px}
.iv-dayhead{display:flex;align-items:center;gap:9px;padding:15px 0 9px}
.iv-day-dot{width:7px;height:7px;border-radius:50%;background:var(--mute);flex:none}
.iv-day-dot.now{background:var(--emerald);box-shadow:0 0 0 3px var(--emerald-glow)}
.iv-day-lbl{font-family:'JetBrains Mono';font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.iv-day-ct{font-size:11px;color:var(--mute);font-weight:500}
.iv-day-rule{flex:1;height:1px;background:var(--line);margin-left:4px}

.iv-list{display:flex;flex-direction:column}
.iv-row{display:grid;grid-template-columns:76px 34px minmax(0,1.5fr) minmax(0,1.4fr) minmax(0,1.2fr) 138px 30px;align-items:center;gap:14px;padding:12px 10px;margin:0 -10px;border-radius:12px;border-bottom:1px solid var(--line);transition:.12s}
.iv-row:last-child{border-bottom:none}
.iv-row:hover{background:var(--fog)}
.iv-row.iv-next{background:var(--emerald-glow);border-bottom-color:transparent;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--emerald) 28%,transparent)}
.iv-row.iv-next:hover{background:var(--emerald-glow)}
.iv-when{position:relative;display:flex;flex-direction:column;padding-left:13px;min-width:74px;flex-shrink:0}
.iv-when::before{content:'';position:absolute;left:0;top:2px;bottom:2px;width:3px;border-radius:3px;background:var(--line)}
.iv-when.today::before{background:var(--emerald)}
.iv-when b{font-family:'JetBrains Mono';font-size:12.5px;font-weight:700;color:var(--ink)}
.iv-when small{font-size:10.5px;color:var(--mute);margin-top:1px}
.iv-cand{flex:1.2;min-width:0}
.iv-cand b{display:block;font-size:13.5px;color:var(--ink);font-weight:700;line-height:1.25}
.iv-cand small{display:block;font-size:11.5px;color:var(--mute);margin-top:1px}
.iv-col{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.iv-round{flex:1.1}.iv-mode{flex:1}
.iv-line{display:flex;align-items:center;gap:7px}
.iv-line b{font-size:12.5px;color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.iv-ic{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:var(--emerald-glow);color:var(--emerald-d);flex:none}
.iv-ic.off{background:var(--honey-glow);color:var(--honey-d)}
.iv-ic.on{background:var(--emerald-glow);color:var(--emerald-d)}
.iv-ic svg{width:13.5px;height:13.5px;display:block}
.iv-col small{font-size:11px;color:var(--mute);margin-top:2px;padding-left:29px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.iv-tags{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:0}
.iv-nextpill{font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.06em;color:var(--emerald-d);background:var(--card);border:1px solid color-mix(in srgb,var(--emerald) 35%,transparent);padding:3px 7px;border-radius:999px}
.iv-menu{width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--card);color:var(--mute);cursor:pointer;line-height:1;flex-shrink:0;transition:.12s;display:grid;place-items:center}
.iv-menu svg{width:16px;height:16px;display:block}
.iv-menu:hover{border-color:var(--ink);color:var(--ink)}
.iv-foot{display:flex;justify-content:center;padding:16px 0 6px;border-top:1px solid var(--line);margin-top:6px}
.iv-foot .lnk{font-size:12.5px;color:var(--emerald-d);font-weight:600}
@media(max-width:1080px){.iv-mode{display:none}.iv-row{grid-template-columns:76px 34px minmax(0,1.6fr) minmax(0,1.4fr) 138px 30px}}
@media(max-width:880px){.iv-stats{grid-template-columns:1fr 1fr}.iv-round{display:none}.iv-row{grid-template-columns:76px 34px minmax(0,1fr) 132px 30px}.iv-search input{width:180px}}
@media(max-width:560px){.iv-stats{grid-template-columns:1fr}.iv-row{grid-template-columns:58px 30px minmax(0,1fr) auto;column-gap:10px}.iv-menu{display:none}.iv-tb-r{width:100%}.iv-search,.iv-search input{width:100%}}

/* Templates list */
/* ── TEMPLATES LIBRARY ─────────────────────────────── */
.head-actions .icon-btn{width:34px;height:34px;border-radius:8px;border:1.5px solid var(--line);background:var(--card);color:var(--mute);font-size:17px;line-height:1;cursor:pointer;transition:.15s}
.head-actions .icon-btn:hover{background:var(--mist);color:var(--ink)}

/* KPI stat strip */
.tpl-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:13px;margin-bottom:16px}
@media (max-width:1080px){.tpl-kpis{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.tpl-kpis{grid-template-columns:repeat(2,1fr)}}
.tpl-kpi{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:14px 15px;transition:.15s}
.tpl-kpi.clk{cursor:pointer}
.tpl-kpi.clk:hover{border-color:var(--ink-3);box-shadow:0 2px 10px rgba(15,23,42,.05)}
.tpl-kpi.kpi-active{border-color:var(--emerald);box-shadow:0 0 0 1px var(--emerald) inset}
.tpl-kpi-ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-size:18px;flex-shrink:0}
.tpl-kpi-ic.neutral{background:var(--mist);color:var(--ink-3)}
.tpl-kpi-ic.em{background:var(--emerald-glow);color:var(--emerald-d)}
.tpl-kpi-ic.hny{background:var(--honey-glow);color:var(--honey-d)}
.tpl-kpi-ic.plum{background:var(--plum-glow);color:var(--plum-d)}
.tpl-kpi-ic.rs{background:var(--rose-glow);color:var(--rose-d)}
.tpl-kpi-bd{min-width:0}
.tpl-kpi-lbl{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:700}
.tpl-kpi-v{font-family:'Inter';font-weight:800;font-size:24px;color:var(--ink);line-height:1.05;letter-spacing:-0.02em}
.tpl-kpi-sub{font-size:10.5px;color:var(--mute);margin-top:1px}

/* Toolbar */
.tpl-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 13px;margin-bottom:14px}
.tpl-search{display:flex;align-items:center;gap:7px;flex:1;min-width:200px;background:var(--fog);border:1px solid var(--line);border-radius:9px;padding:0 11px;height:36px}
.tpl-search-ic{color:var(--mute);font-size:13px}
.tpl-search input{flex:1;border:none;background:none;outline:none;font-family:'Inter';font-size:13px;color:var(--ink)}
.tpl-select{height:36px;border:1px solid var(--line);background:var(--card);border-radius:9px;padding:0 30px 0 11px;font-family:'Inter';font-size:12.5px;font-weight:500;color:var(--ink-2);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2.5'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 9px center}
.tpl-select.sm{height:34px;font-size:12px}
.tpl-toggle{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--body);cursor:pointer;white-space:nowrap}
.tpl-toggle input{accent-color:var(--emerald-d)}
.tpl-spacer{flex:1;min-width:0}
.tpl-sortby{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--mute);white-space:nowrap}
.tpl-viewtog{display:flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.tpl-viewtog button{width:34px;height:36px;border:none;background:var(--card);color:var(--mute);font-size:14px;cursor:pointer;transition:.12s}
.tpl-viewtog button+button{border-left:1px solid var(--line)}
.tpl-viewtog button.active{background:var(--emerald-d);color:#fff}

/* Table */
.tpl-card{padding:0;overflow:hidden}
.tpl-table{width:100%;border-collapse:collapse}
.tpl-table thead th{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:700;text-align:left;padding:13px 16px;background:var(--fog);border-bottom:1px solid var(--line);white-space:nowrap}
.tpl-table thead th.num{text-align:right}
.tpl-table thead th.ta-r{text-align:right}
.tpl-table tbody td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:12.5px;color:var(--body)}
.tpl-table tbody tr:last-child td{border-bottom:none}
.tpl-table tbody tr:hover{background:var(--fog)}
.tpl-table td.num{text-align:right;font-variant-numeric:tabular-nums}
.tpl-table td.num b{font-size:15px;color:var(--ink);font-weight:800}
.tpl-table td.ta-r{text-align:right}
.tpl-sub2{font-size:10.5px;color:var(--mute);margin-top:2px}
.tpl-namecell{display:flex;align-items:flex-start;gap:11px;min-width:280px}
.tpl-rowic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:15px;flex-shrink:0}
.tpl-rowic.em{background:var(--emerald-glow);color:var(--emerald-d)}
.tpl-rowic.hny{background:var(--honey-glow);color:var(--honey-d)}
.tpl-rowic.plum{background:var(--plum-glow);color:var(--plum-d)}
.tpl-rowic.rs{background:var(--rose-glow);color:var(--rose-d)}
.tpl-nb{min-width:0}
.tpl-nb b{display:block;font-size:13px;color:var(--ink);font-weight:700;margin-bottom:2px}
.tpl-nb small{display:block;font-size:11.5px;color:var(--mute);line-height:1.4;max-width:330px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tpl-vars{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.tpl-var{font-family:'JetBrains Mono';font-size:9.5px;font-weight:600;color:var(--ink-3);background:var(--mist);border:1px solid var(--line);border-radius:5px;padding:2px 6px}
.tpl-var.more{color:var(--mute);background:none;border-color:transparent}
.tpl-type{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2);font-weight:500;white-space:nowrap}
.tpl-type-ic{font-size:13px}
.tpl-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--emerald-d);white-space:nowrap}
.tpl-status .dot{width:7px;height:7px;border-radius:50%;background:var(--emerald);flex-shrink:0}
.tpl-status.hny{color:var(--honey-d)} .tpl-status.hny .dot{background:var(--honey)}
.tpl-status.rs{color:var(--rose-d)} .tpl-status.rs .dot{background:var(--rose)}
.tpl-actions{display:inline-flex;gap:4px}
.tpl-actions button{width:30px;height:30px;border-radius:7px;border:1px solid transparent;background:none;color:var(--mute);font-size:13px;cursor:pointer;transition:.12s}
.tpl-actions button:hover{background:var(--mist);border-color:var(--line);color:var(--ink)}
.tpl-empty{padding:34px 16px;text-align:center;color:var(--mute);font-size:13px}

/* Footer */
.tpl-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:14px;font-size:12.5px;color:var(--mute)}
.tpl-foot-pg{display:flex;align-items:center;gap:6px}
.tpl-foot-pg button{min-width:32px;height:32px;padding:0 8px;border:1px solid var(--line);background:var(--card);border-radius:8px;font-family:'Inter';font-size:12.5px;color:var(--ink-2);cursor:pointer;transition:.12s}
.tpl-foot-pg button:hover:not(:disabled){background:var(--mist)}
.tpl-foot-pg button.active{background:var(--emerald-d);color:#fff;border-color:var(--emerald-d);font-weight:700}
.tpl-foot-pg button:disabled{opacity:.4;cursor:not-allowed}

/* Compose form (communication) */
.cm-field{display:flex;flex-direction:column;gap:6px;margin-bottom:4px}
.cm-field label{font-family:'JetBrains Mono';font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:700}
.cm-input{width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:9px;background:var(--card);color:var(--ink);font-family:'Inter';font-size:13px;resize:vertical}
.cm-input:focus{outline:none;border-color:var(--emerald)}

/* Announcement feed */
.ann-list{display:flex;flex-direction:column;gap:2px}
.ann-row{display:flex;align-items:center;gap:12px;padding:12px 8px;border-bottom:1px solid var(--line)}
.ann-row:last-child{border-bottom:none}
.ann-ic{width:36px;height:36px;border-radius:9px;background:var(--honey-glow);display:grid;place-items:center;font-size:16px;flex-shrink:0}
.ann-bd{flex:1;min-width:0}
.ann-bd b{display:block;font-size:13px;color:var(--ink);font-weight:600;line-height:1.25}
.ann-bd small{display:block;font-size:11.5px;color:var(--mute);margin-top:1px}

/* ════════════════════════════════════════════════════════════
   DRIVES PAGE — interactive (KPI filters, search, modals)
   ════════════════════════════════════════════════════════════ */
.kpi.clk{cursor:pointer;transition:.15s}
.kpi.clk:hover{border-color:var(--emerald);transform:translateY(-1px)}
.kpi.kpi-active{outline:2px solid var(--emerald);outline-offset:-2px;border-color:var(--emerald)}
.kpi.featured.kpi-active{outline-color:var(--honey-soft)}

.drive-filterbar{display:flex;align-items:center;gap:12px}
.drive-filterbar .lnk{color:var(--rose-d);white-space:nowrap}
.drive-search{width:220px;max-width:46vw;padding:7px 12px;font-size:12.5px}
.drive-empty{padding:26px 10px;text-align:center;font-size:13px;color:var(--mute);font-family:'JetBrains Mono'}

/* Drive form — colour swatches + 3-up number grid */
.asg-field-grid.asg-field-grid-3{grid-template-columns:1fr 1fr 1fr}
@media(max-width:560px){.asg-field-grid.asg-field-grid-3{grid-template-columns:1fr 1fr}}
.drive-swatches{display:flex;flex-wrap:wrap;gap:8px}
.drive-swatch{width:26px;height:26px;border-radius:7px;border:2px solid transparent;cursor:pointer;padding:0;transition:.12s}
.drive-swatch:hover{transform:scale(1.08)}
.drive-swatch.sel{border-color:var(--ink);box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--ink)}

/* Drive detail modal */
.dd-role{font-size:12px;color:var(--mute);margin-top:1px}
.dd-conv{font-size:12px;color:var(--body)}
.dd-conv b{color:var(--emerald-d)}
.dd-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:4px}
.dd-stat{background:var(--fog);border:1px solid var(--line);border-radius:12px;padding:14px;text-align:center}
.dd-stat b{display:block;font-family:'Inter';font-weight:800;font-size:24px;color:var(--ink);line-height:1}
.dd-stat small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--mute);margin-top:5px}

/* ════════════════════════════════════════════════════════════════
   COMPANY COMMUNICATION (Company Connect) — 3-panel partner messaging
   ════════════════════════════════════════════════════════════════ */
.cc-view{max-width:1560px}
.cc-head{align-items:flex-start;flex-wrap:wrap;gap:16px}
.cc-head-right{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-left:auto}
.cc-kpis{display:flex;gap:10px;flex-wrap:wrap}
.cc-kpi{display:flex;align-items:center;gap:9px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 14px 8px 9px;box-shadow:0 1px 2px var(--shadow)}
.cc-kpi-ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:14px;flex:none}
.cc-kpi-ic.tl{background:var(--teal-glow)}.cc-kpi-ic.hny{background:var(--honey-glow)}
.cc-kpi-ic.plum{background:var(--plum-glow)}.cc-kpi-ic.rs{background:var(--rose-glow)}
.cc-kpi-bd{display:flex;flex-direction:column;line-height:1.1}
.cc-kpi-bd b{font-family:'Inter';font-weight:800;font-size:18px;color:var(--ink)}
.cc-kpi-bd small{font-size:10px;color:var(--mute);white-space:nowrap;margin-top:2px}
.cc-new-btn{display:inline-flex;align-items:center;gap:7px;background:var(--emerald-d);color:#fff;border:none;border-radius:11px;padding:11px 18px;font-family:'Inter';font-weight:700;font-size:13.5px;cursor:pointer;box-shadow:0 2px 8px rgba(5,150,105,.28);transition:.15s}
.cc-new-btn:hover{background:var(--emerald);transform:translateY(-1px)}
.cc-new-btn span{font-size:13px}

.cc-shell{display:grid;grid-template-columns:320px 1fr 320px;gap:16px;align-items:start;margin-top:6px}
.cc-list,.cc-thread,.cc-side{max-height:calc(100vh - 210px)}
.cc-list,.cc-thread{background:var(--card);border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;overflow:hidden}

/* ── LEFT · conversation list ── */
.cc-list-head{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 12px;border-bottom:1px solid var(--line)}
.cc-list-title{font-family:'Inter';font-weight:800;font-size:15px;color:var(--ink)}
.cc-filter{font-family:'Inter';font-size:12px;font-weight:600;color:var(--body);background:var(--fog);border:1px solid var(--line);border-radius:8px;padding:5px 8px;cursor:pointer}
.cc-cards{flex:1;overflow:auto;padding:8px}
.cc-card{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:11px;padding:11px 12px;cursor:pointer;transition:.13s;position:relative}
.cc-card:hover{background:var(--fog)}
.cc-card.active{background:var(--emerald-glow);border-color:#A7F3D0}
.cc-ava{position:relative;width:40px;height:40px;border-radius:11px;flex:none;display:grid;place-items:center;color:#fff;font-family:'JetBrains Mono';font-weight:700;font-size:13px}
.cc-ava-dot{position:absolute;right:-2px;bottom:-2px;width:11px;height:11px;border-radius:50%;background:var(--emerald);border:2px solid var(--card)}
.cc-card-main{flex:1;min-width:0}
.cc-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.cc-card-name{font-family:'Inter';font-weight:700;font-size:13.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-card-time{font-size:10.5px;color:var(--mute);flex:none}
.cc-card-prev{font-size:12px;color:var(--body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}
.cc-card.active .cc-card-prev{color:var(--emerald-d)}
.cc-unread{flex:none;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--emerald-d);color:#fff;font-family:'JetBrains Mono';font-weight:700;font-size:10px;display:grid;place-items:center}
.cc-empty{padding:30px 16px;text-align:center;color:var(--mute);font-size:12.5px}
.cc-empty.sm{padding:14px 4px;font-size:12px;text-align:left}
.cc-list-all{border-top:1px solid var(--line);background:transparent;color:var(--emerald-d);font-family:'Inter';font-weight:700;font-size:12.5px;padding:13px;cursor:pointer;transition:.13s}
.cc-list-all:hover{background:var(--fog)}

/* ── CENTER · thread ── */
.cc-thread-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
.cc-th-ava{width:42px;height:42px;border-radius:11px;flex:none;display:grid;place-items:center;color:#fff;font-family:'JetBrains Mono';font-weight:700;font-size:14px}
.cc-th-meta{flex:1;min-width:0}
.cc-th-title{font-family:'Inter';font-weight:800;font-size:15.5px;color:var(--ink)}
.cc-th-sub{font-size:12px;color:var(--mute);margin-top:2px}
.cc-th-profile{flex:none;background:var(--fog);border:1px solid var(--line);border-radius:9px;padding:8px 14px;font-family:'Inter';font-weight:600;font-size:12.5px;color:var(--body);cursor:pointer;transition:.13s}
.cc-th-profile:hover{background:var(--mist);color:var(--ink-2)}

.cc-msgs{flex:1;overflow:auto;padding:18px 20px;display:flex;flex-direction:column;gap:14px;background:var(--fog)}
.cc-daydiv{text-align:center;position:relative;margin:2px 0 6px}
.cc-daydiv span{display:inline-block;background:var(--card);border:1px solid var(--line);color:var(--mute);font-size:10.5px;font-weight:700;padding:3px 12px;border-radius:999px}
.cc-msg{display:flex;gap:9px;max-width:74%}
.cc-msg.company{align-self:flex-start}
.cc-msg.tpo{align-self:flex-end;flex-direction:row-reverse}
.cc-msg-av{width:30px;height:30px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--plum);color:#fff;font-family:'JetBrains Mono';font-weight:700;font-size:11px;align-self:flex-end}
.cc-msg-col{display:flex;flex-direction:column;min-width:0}
.cc-msg.tpo .cc-msg-col{align-items:flex-end}
.cc-msg-head{display:flex;align-items:baseline;gap:7px;margin-bottom:4px;padding-left:3px}
.cc-msg-name{font-family:'Inter';font-weight:700;font-size:12px;color:var(--ink-2)}
.cc-msg-role{font-size:10.5px;color:var(--mute)}
.cc-bubble{background:var(--card);border:1px solid var(--line);border-radius:14px;border-top-left-radius:5px;padding:11px 14px;box-shadow:0 1px 2px var(--shadow)}
.cc-msg.tpo .cc-bubble{background:var(--emerald-d);border-color:var(--emerald-d);color:#fff;border-radius:14px;border-top-right-radius:5px;border-top-left-radius:14px}
.cc-bubble-body{font-size:13px;line-height:1.5;color:inherit;white-space:pre-wrap}
.cc-msg.company .cc-bubble-body{color:var(--body)}
.cc-msg-time{font-size:10px;color:var(--mute);margin-top:5px;padding:0 4px}
.cc-att{display:flex;align-items:center;gap:10px;margin-top:9px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);border-radius:10px;padding:8px 11px;cursor:pointer;min-width:210px}
.cc-msg.company .cc-att{background:var(--fog);border-color:var(--line)}
.cc-att-ic{font-size:18px;flex:none}
.cc-att-bd{flex:1;min-width:0;display:flex;flex-direction:column}
.cc-att-name{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-msg.company .cc-att-name{color:var(--ink-2)}
.cc-att-size{font-size:10px;opacity:.8;margin-top:1px}
.cc-msg.company .cc-att-size{color:var(--mute)}
.cc-att-dl{flex:none;font-size:15px;opacity:.85}

.cc-composer{display:flex;align-items:center;gap:9px;padding:12px 16px;border-top:1px solid var(--line);background:var(--card)}
.cc-comp-glyph{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--mute);cursor:pointer;font-size:15px;flex:none;transition:.13s}
.cc-comp-glyph:hover{background:var(--mist);color:var(--ink-2)}
.cc-comp-input{flex:1;border:1px solid var(--line);background:var(--fog);border-radius:10px;padding:10px 14px;font-family:'Inter';font-size:13px;color:var(--ink);outline:none}
.cc-comp-input:focus{border-color:var(--emerald);box-shadow:0 0 0 3px var(--emerald-glow)}
.cc-send{flex:none;background:var(--emerald-d);color:#fff;border:none;border-radius:10px;padding:10px 20px;font-family:'Inter';font-weight:700;font-size:13px;cursor:pointer;transition:.13s}
.cc-send:hover{background:var(--emerald)}

.cc-recent{padding:14px 18px;border-top:1px solid var(--line);background:var(--card)}
.cc-recent-title{font-family:'Inter';font-weight:800;font-size:12px;color:var(--ink);margin-bottom:9px}
.cc-recent-row{display:flex;align-items:center;gap:9px;padding:5px 0;font-size:12px;color:var(--body)}
.cc-recent-dot{width:6px;height:6px;border-radius:50%;background:var(--emerald);flex:none}
.cc-recent-l{flex:1}.cc-recent-l b{color:var(--ink-2);font-weight:700}
.cc-recent-t{font-size:10.5px;color:var(--mute);flex:none}

/* ── RIGHT · contacts / documents / interactions ── */
.cc-side{overflow:auto;display:flex;flex-direction:column;gap:14px}
.cc-panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:15px}
.cc-panel-head{display:flex;align-items:center;justify-content:space-between;font-family:'Inter';font-weight:800;font-size:13.5px;color:var(--ink);margin-bottom:10px}
.cc-panel-link{font-size:11.5px;font-weight:700;color:var(--emerald-d)}
.cc-contact{display:flex;align-items:center;gap:11px;padding:8px 0;border-bottom:1px solid var(--mist)}
.cc-contact:last-of-type{border-bottom:none}
.cc-contact-av{width:36px;height:36px;border-radius:50%;flex:none;display:grid;place-items:center;color:#fff;font-family:'JetBrains Mono';font-weight:700;font-size:12px}
.cc-contact-bd{flex:1;min-width:0;display:flex;flex-direction:column}
.cc-contact-bd b{font-family:'Inter';font-weight:700;font-size:13px;color:var(--ink)}
.cc-contact-bd small{font-size:11px;color:var(--mute);margin-top:1px}
.cc-contact-acts{display:flex;gap:6px;flex:none}
.cc-contact-ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--fog);border:1px solid var(--line);color:var(--body);text-decoration:none;font-size:13px;transition:.13s}
.cc-contact-ic:hover{background:var(--emerald-glow);border-color:#A7F3D0;color:var(--emerald-d)}
.cc-add-contact{width:100%;margin-top:11px;background:transparent;border:1px dashed var(--line);border-radius:10px;padding:9px;font-family:'Inter';font-weight:600;font-size:12px;color:var(--emerald-d);cursor:pointer;transition:.13s}
.cc-add-contact:hover{background:var(--emerald-glow);border-color:#A7F3D0}

.cc-doc{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--mist);cursor:pointer}
.cc-doc:last-of-type{border-bottom:none}
.cc-doc-ic{width:34px;height:34px;border-radius:8px;flex:none;display:grid;place-items:center;font-family:'JetBrains Mono';font-weight:700;font-size:8px;letter-spacing:.03em;color:#fff;background:var(--mute)}
.cc-doc-ic.pdf{background:#DC2626}.cc-doc-ic.doc{background:#2563EB}.cc-doc-ic.ppt{background:#EA580C}.cc-doc-ic.xls{background:#059669}.cc-doc-ic.img{background:#7C3AED}
.cc-doc-bd{flex:1;min-width:0;display:flex;flex-direction:column}
.cc-doc-bd b{font-family:'Inter';font-weight:600;font-size:12.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-doc-bd small{font-size:10.5px;color:var(--mute);margin-top:1px}
.cc-doc-dl{flex:none;color:var(--mute);font-size:15px}
.cc-doc:hover .cc-doc-dl{color:var(--emerald-d)}

.cc-event{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--mist)}
.cc-event:last-of-type{border-bottom:none}
.cc-event-date{width:42px;height:44px;flex:none;border-radius:10px;background:var(--fog);border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.cc-event-date b{font-family:'Inter';font-weight:800;font-size:16px;color:var(--ink)}
.cc-event-date small{font-family:'JetBrains Mono';font-size:8px;font-weight:700;letter-spacing:.06em;color:var(--mute);margin-top:2px}
.cc-event-bd{flex:1;min-width:0;display:flex;flex-direction:column}
.cc-event-bd b{font-family:'Inter';font-weight:700;font-size:12.5px;color:var(--ink)}
.cc-event-bd small{font-size:11px;color:var(--mute);margin-top:1px}
.cc-event-mode{flex:none;font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:4px 9px;border-radius:999px}
.cc-event-mode.online{background:var(--teal-glow);color:var(--teal-d)}
.cc-event-mode.campus{background:var(--honey-glow);color:var(--honey-d)}

/* dark-mode surface fixes (tokens flip; these few need explicit help) */
[data-theme="dark"] .cc-kpi,[data-theme="dark"] .cc-list,[data-theme="dark"] .cc-thread,
[data-theme="dark"] .cc-panel,[data-theme="dark"] .cc-bubble{background:var(--card);border-color:var(--line)}
[data-theme="dark"] .cc-msgs{background:var(--background)}
[data-theme="dark"] .cc-msg.company .cc-att{background:var(--background)}

/* responsive — collapse to single column on narrow screens */
@media(max-width:1180px){
  .cc-shell{grid-template-columns:280px 1fr}
  .cc-side{grid-column:1 / -1;flex-direction:row;flex-wrap:wrap;max-height:none}
  .cc-side .cc-panel{flex:1;min-width:260px}
}
@media(max-width:760px){
  .cc-shell{grid-template-columns:1fr}
  .cc-list,.cc-thread{max-height:none}
}

/* ═══════════════════════════════════════════════════════════
   PLACEMENT ANALYTICS  (TPO · view==='analytics')
   ═══════════════════════════════════════════════════════════ */
.an-range{display:inline-flex;align-items:center;gap:6px;font-family:'Inter';font-size:12px;font-weight:600;color:var(--ink-2);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 12px}

/* 5-up KPI strip */
.an-kpi-row{grid-template-columns:1.15fr repeat(4,1fr)}
@media (max-width:1100px){.an-kpi-row{grid-template-columns:repeat(3,1fr)}}
@media (max-width:720px){.an-kpi-row{grid-template-columns:repeat(2,1fr)}}
.kpi-rate{background:linear-gradient(135deg,var(--emerald),var(--emerald-d));border-color:var(--emerald-d);color:#fff;justify-content:flex-start}
.kpi-rate .lbl{color:#ECFDF5;opacity:.92}
.kpi-rate .v{color:#fff;font-size:34px}
.kpi-rate .v .sub{color:#FFFFFFcc;font-size:18px}
.kpi-rate .delta.up{color:#D1FAE5}
.kc-spark.on-dark{height:34px;margin-top:auto}
.kc-spark.on-dark .ln{stroke:#FFFFFFc0}
.kr-foot{display:flex;gap:16px;margin-top:11px;padding-top:11px;border-top:1px solid #FFFFFF26}
.krf-i{display:flex;flex-direction:column;gap:2px}
.krf-i b{font-family:'Inter';font-weight:800;font-size:15px;color:#fff;line-height:1}
.krf-i span{font-family:'JetBrains Mono';font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:#ECFDF5;opacity:.82}
.kpi-an{padding-top:18px;gap:4px}
.kpi-an .an-ic{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--mist);font-size:15px}
.kpi-an .v{font-size:24px}
.kpi-an .delta{margin-top:2px}
.kc-spark.an-mini{height:30px;margin-top:auto}
.kc-spark.an-mini .ln{stroke:var(--emerald);opacity:.6}

/* 5th donut / dot colour */
.tl-dot.vio{background:#7C3AED}
.asg-donut .ring-seg.vio{stroke:#7C3AED}
.an-legend{flex:none;margin-top:10px;width:100%}

/* Placement trend area+line chart */
.an-leg{display:flex;gap:14px;align-items:center}
.an-leg-i{display:inline-flex;align-items:center;gap:6px;font-family:'JetBrains Mono';font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--mute)}
.an-leg-i .sw{width:14px;height:10px;border-radius:3px;display:inline-block}
.an-leg-i .sw.area{background:rgba(16,185,129,.22);border:1.5px solid var(--emerald)}
.an-leg-i .sw.line{background:var(--emerald-d)}
.an-trend{margin-top:8px}
.an-trend-svg{width:100%;height:200px;display:block;overflow:visible}
.an-trend-svg .an-grid{stroke:var(--line);stroke-width:1;stroke-dasharray:3 4}
.an-trend-svg .an-area{fill:rgba(16,185,129,.16)}
.an-trend-svg .an-line{fill:none;stroke-width:2.5;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.an-trend-svg .an-line.pld{stroke:var(--emerald-d)}
.an-trend-svg .an-line.ofr{stroke:var(--emerald);stroke-width:1.5;opacity:.7}
.an-xaxis{display:flex;justify-content:space-between;margin-top:6px;font-family:'JetBrains Mono';font-size:9.5px;font-weight:600;color:var(--mute);letter-spacing:.04em}

/* CTC vertical bars */
.an-ctc{display:flex;align-items:flex-end;gap:10px;height:170px;padding:6px 2px 0;border-bottom:1px solid var(--line)}
.an-ctc-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:5px}
.an-ctc-v{font-family:'JetBrains Mono';font-size:11px;font-weight:700;color:var(--ink-2)}
.an-ctc-bar{width:100%;max-width:34px;min-height:6px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,var(--emerald),var(--emerald-d));transition:.4s}
.an-ctc-x{font-family:'JetBrains Mono';font-size:9.5px;font-weight:600;color:var(--mute)}
.an-ctc-cap{text-align:center;font-family:'JetBrains Mono';font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-top:8px}
.an-ctc-foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:9px}
.an-ctc-foot .row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--body)}
.an-ctc-foot .row b{font-family:'Inter';font-weight:800;font-size:15px;color:var(--ink)}

/* Students snapshot (sits beside CTC distribution) */
.an-stu-rate{display:flex;flex-direction:column;gap:3px;padding:6px 0 2px}
.an-stu-rate b{font-family:'Inter';font-weight:800;font-size:30px;line-height:1;color:var(--ink);letter-spacing:-0.02em}
.an-stu-rate span{font-size:11.5px;color:var(--mute)}
.an-stu-track{height:7px;border-radius:999px;background:var(--emerald-glow);overflow:hidden;margin-top:8px}
.an-stu-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--emerald),var(--emerald-d));transition:.4s}

/* Top recruiters ranked list */
.an-rec{display:flex;flex-direction:column;gap:14px;margin-top:6px}
.an-rec-row{display:flex;align-items:center;gap:12px}
.co-logo.sm{width:34px;height:34px;border-radius:8px;font-size:11px}
.an-rec-bd{flex:1;min-width:0}
.an-rec-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:5px}
.an-rec-top b{font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.an-rec-ctc{font-family:'JetBrains Mono';font-size:10.5px;font-weight:600;color:var(--mute);flex-shrink:0}
.an-rec-track{height:9px;background:var(--mist);border-radius:6px;overflow:hidden}
.an-rec-fill{height:100%;border-radius:6px;transition:.4s}
.an-rec-n{text-align:right;flex-shrink:0;display:flex;flex-direction:column;line-height:1.1}
.an-rec-n b{font-family:'Inter';font-size:17px;font-weight:800;color:var(--ink)}
.an-rec-n small{font-family:'JetBrains Mono';font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}

/* Offer acceptance gauge */
.an-gauge-wrap{display:flex;align-items:center;gap:18px}
.asg-donut-wrap.gauge{flex-shrink:0}
.asg-donut-wrap.gauge .ring-seg{stroke-width:8}
.an-gauge-legend{flex:1;display:flex;flex-direction:column;gap:12px}
.agl-row{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:600;color:var(--ink-2)}
.agl-row b{margin-left:auto;font-family:'Inter';font-size:18px;font-weight:800;color:var(--ink)}

/* Placement highlights */
.an-hl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:6px}
@media (max-width:900px){.an-hl-grid{grid-template-columns:repeat(2,1fr)}}
.an-hl{display:flex;align-items:center;gap:13px;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--card)}
.an-hl-ic{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-size:19px;flex-shrink:0;background:var(--mist)}
.an-hl.honey .an-hl-ic{background:var(--honey-cream)}
.an-hl.tl .an-hl-ic{background:var(--teal-glow)}
.an-hl.emerald .an-hl-ic{background:var(--emerald-glow)}
.an-hl.rose .an-hl-ic{background:var(--rose-glow)}
.an-hl-bd{display:flex;flex-direction:column;gap:2px;min-width:0}
.an-hl-lbl{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:700}
.an-hl-v{font-family:'Inter';font-size:18px;font-weight:800;color:var(--ink);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.an-hl-meta{font-size:11px;color:var(--body)}

/* ── OFFERS (Outcomes) view ─────────────────────────── */
.off-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:18px}
@media (max-width:1100px){.off-kpis{grid-template-columns:repeat(3,1fr)}}
@media (max-width:680px){.off-kpis{grid-template-columns:repeat(2,1fr)}}
.off-kpi{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 16px;display:flex;align-items:flex-start;gap:12px}
.off-kpi-ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-size:17px;flex-shrink:0}
.off-kpi-ic.em{background:var(--emerald-glow)}
.off-kpi-ic.tl{background:var(--teal-glow)}
.off-kpi-ic.hny{background:var(--honey-glow)}
.off-kpi-ic.plum{background:var(--plum-glow)}
.off-kpi-bd{display:flex;flex-direction:column;gap:2px;min-width:0}
.off-kpi-l{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:700}
.off-kpi-v{font-family:'Inter';font-weight:800;font-size:22px;color:var(--ink);line-height:1.1;letter-spacing:-0.02em;white-space:nowrap}
.off-kpi-s{font-size:11px;color:var(--body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}

.off-card{padding:0;gap:0;overflow:hidden}
.off-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.off-tb-l{display:flex;align-items:center;gap:10px}
.off-tb-l h3{font-family:'Inter';font-weight:700;font-size:14.5px;color:var(--ink);margin:0}
.off-tb-r{display:flex;align-items:center;gap:10px}
.off-search{position:relative;display:flex;align-items:center}
.off-search-ic{position:absolute;left:11px;color:var(--mute);font-size:14px;pointer-events:none}
.off-search input{padding:8px 12px 8px 30px;border:1px solid var(--line);border-radius:9px;background:var(--surface);font-family:'Inter';font-size:12.5px;color:var(--ink);outline:none;width:230px;transition:.15s}
.off-search input:focus{border-color:var(--honey-d);box-shadow:0 0 0 3px var(--honey-glow)}
.off-tb-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border:1px solid var(--line);border-radius:9px;background:var(--card);font-family:'Inter';font-size:12.5px;font-weight:600;color:var(--ink-2);cursor:pointer;transition:.15s}
.off-tb-btn:hover{background:var(--mist)}
.off-toggle{display:flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.off-toggle button{width:34px;height:34px;border:none;background:var(--card);color:var(--mute);cursor:pointer;font-size:15px;transition:.15s}
.off-toggle button+button{border-left:1px solid var(--line)}
.off-toggle button.active{background:var(--ink);color:var(--on-accent)}

.off-table-wrap{overflow-x:auto}
.off-table{width:100%;border-collapse:collapse;font-size:12.5px}
.off-table th{text-align:left;padding:11px 20px;font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:700;background:var(--fog);border-bottom:1px solid var(--line);white-space:nowrap}
.off-table td{padding:13px 20px;border-bottom:1px solid var(--line);vertical-align:middle}
.off-table tbody tr:last-child td{border-bottom:none}
.off-table tbody tr:hover td{background:var(--mist)}
.off-student,.off-company{display:flex;align-items:center;gap:11px}
.off-av{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--emerald-d),var(--teal));color:#fff;display:grid;place-items:center;font-family:'Inter';font-weight:700;font-size:12.5px;flex-shrink:0}
.off-logo{width:34px;height:34px;border-radius:9px;color:#fff;display:grid;place-items:center;font-family:'Inter';font-weight:800;font-size:11.5px;flex-shrink:0}
.off-student-bd,.off-company-bd{display:flex;flex-direction:column;gap:1px;min-width:0}
.off-student-bd b,.off-company-bd b{font-family:'Inter';font-weight:600;font-size:13px;color:var(--ink);white-space:nowrap}
.off-student-bd small,.off-company-bd small{font-size:11px;color:var(--mute);white-space:nowrap}
.off-dept{display:inline-block;padding:4px 10px;border-radius:7px;background:var(--mist);color:var(--ink-2);font-family:'Inter';font-weight:600;font-size:11.5px}
.off-ctc-cell{display:flex;flex-direction:column;gap:2px;align-items:flex-start}
.off-ctc-cell b{font-family:'Inter';font-weight:700;font-size:13.5px;color:var(--emerald-d)}
.off-ctc-tag{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);background:var(--fog);border:1px solid var(--line);padding:1px 6px;border-radius:5px}
.off-status{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;background:var(--emerald-glow);color:var(--emerald-d);font-family:'Inter';font-weight:600;font-size:11.5px}
.off-status i{width:6px;height:6px;border-radius:50%;background:var(--emerald-d)}
.off-date{font-size:12px;color:var(--body);white-space:nowrap}
.off-kebab{border:none;background:none;color:var(--mute);font-size:17px;cursor:pointer;padding:4px 8px;border-radius:7px;line-height:1;transition:.15s}
.off-kebab:hover{background:var(--mist);color:var(--ink)}
.off-empty{padding:40px;text-align:center;color:var(--mute);font-size:13px}

.off-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;padding:18px 20px}
.off-gcard{border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:12px;background:var(--card);transition:.15s}
.off-gcard:hover{border-color:var(--honey-soft);box-shadow:0 4px 16px rgba(15,23,42,.06)}
.off-gcard-top{display:flex;align-items:center;gap:10px}
.off-gcard-top .off-status{margin-left:auto}
.off-gcard-co{display:flex;align-items:center;gap:10px;padding-top:12px;border-top:1px dashed var(--line)}
.off-gcard-ft{display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px dashed var(--line)}

/* ════════════════════════════════════════════════════════════
   SHORTLISTED (Pipeline) view — redesigned candidate table
   ════════════════════════════════════════════════════════════ */
.sl-top{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(360px,440px);gap:24px;align-items:center;margin-bottom:20px}
.sl-intro h1{font-size:28px;font-weight:800;letter-spacing:-.02em;color:var(--ink);margin:3px 0 6px}
.sl-intro .sub{font-size:13.5px;color:var(--mute);margin:0;line-height:1.5}
.sl-illus{width:220px}
.sl-illus svg{width:100%;height:auto;display:block}

/* overview panel */
.sl-overview{background:var(--card,#fff);border:1px solid var(--line);border-radius:14px;padding:15px 18px 16px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.sl-ov-title{font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-bottom:12px}
.sl-ov-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.sl-ov-cell{display:flex;flex-direction:column;gap:3px}
.sl-ov-lbl{font-size:12px;color:var(--mute);white-space:nowrap}
.sl-ov-val{font-size:24px;font-weight:800;color:var(--ink);line-height:1.1}
.sl-ov-note{font-size:11px;font-weight:600;color:var(--emerald-d)}
.sl-ov-note.up{color:var(--emerald-d)}

/* toolbar */
.sl-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.sl-tb-left,.sl-tb-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sl-search{display:flex;align-items:center;gap:7px;background:var(--card,#fff);border:1px solid var(--line);border-radius:10px;padding:0 12px;height:40px;min-width:260px;transition:.15s}
.sl-search:focus-within{border-color:var(--emerald);box-shadow:0 0 0 3px var(--emerald-glow)}
.sl-search-ic{font-size:15px;color:var(--mute)}
.sl-search input{border:0;outline:0;background:transparent;font-family:'Inter';font-size:13px;color:var(--ink);width:100%}
.sl-search input::placeholder{color:#94A3B8}
.sl-select{appearance:none;-webkit-appearance:none;background:var(--card,#fff) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%2364748B' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 11px center;border:1px solid var(--line);border-radius:10px;height:40px;padding:0 30px 0 13px;font-family:'Inter';font-size:13px;font-weight:500;color:var(--ink-2);cursor:pointer;transition:.15s}
.sl-select:hover{border-color:#CBD5E1}
.sl-select:focus{outline:0;border-color:var(--emerald);box-shadow:0 0 0 3px var(--emerald-glow)}
.sl-sort{font-weight:500;min-width:210px}
.sl-morebtn{display:inline-flex;align-items:center;gap:7px;background:var(--card,#fff);border:1px solid var(--line);border-radius:10px;height:40px;padding:0 14px;font-family:'Inter';font-size:13px;font-weight:500;color:var(--ink-2);cursor:pointer;transition:.15s}
.sl-morebtn:hover{border-color:#CBD5E1}
.sl-morebtn.on{border-color:var(--emerald);color:var(--emerald-d);background:var(--emerald-glow)}
.sl-funnel{font-size:13px;opacity:.7}
.sl-viewtog{display:inline-flex;background:var(--card,#fff);border:1px solid var(--line);border-radius:10px;overflow:hidden;height:40px}
.sl-viewtog button{width:42px;border:0;background:transparent;font-size:16px;color:var(--mute);cursor:pointer;transition:.15s}
.sl-viewtog button+button{border-left:1px solid var(--line)}
.sl-viewtog button.on{background:var(--emerald-glow);color:var(--emerald-d)}

/* table card */
.sl-card{background:var(--card,#fff);border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px rgba(15,23,42,.04);overflow:hidden}
.sl-tablewrap{overflow-x:auto}
.sl-table{width:100%;border-collapse:collapse}
.sl-table thead th{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);text-align:left;padding:14px 18px;border-bottom:1px solid var(--line);white-space:nowrap}
.sl-table tbody td{padding:15px 18px;border-bottom:1px solid var(--line);vertical-align:middle}
.sl-table tbody tr:last-child td{border-bottom:0}
.sl-table tbody tr:hover{background:var(--fog)}
.sl-actcol{text-align:right}

/* candidate cell */
.sl-cand{display:flex;align-items:flex-start;gap:11px}
.sl-av{position:relative;flex-shrink:0;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--emerald-d),var(--teal));color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;letter-spacing:.02em}
.sl-dot{position:absolute;right:0;bottom:1px;width:10px;height:10px;border-radius:50%;background:#22C55E;border:2px solid var(--card,#fff)}
.sl-cand-bd{display:flex;flex-direction:column;gap:2px;min-width:0}
.sl-cand-bd b{font-size:13.5px;font-weight:700;color:var(--ink)}
.sl-cand-bd small{font-size:12px;color:var(--mute)}
.sl-tags{display:flex;gap:6px;margin-top:4px}
.sl-tag{font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:6px;background:var(--mist);color:var(--body)}
.sl-tag.yr{background:#E7F6EC;color:var(--emerald-d)}

/* company cell */
.sl-co{display:flex;align-items:center;gap:11px}
.sl-co-badge{flex-shrink:0;width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:700;letter-spacing:.02em}
.sl-co-badge.sm{width:34px;height:34px}
.sl-co-badge.star{color:#FBBF24;font-size:18px}
.sl-co-bd{display:flex;flex-direction:column;gap:1px;min-width:0}
.sl-co-bd b{font-size:13px;font-weight:700;color:var(--ink)}
.sl-co-bd small{font-size:12px;color:var(--mute)}

/* drive cell */
.sl-drive{display:flex;flex-direction:column;gap:1px}
.sl-drive b{font-size:13px;font-weight:700;color:var(--ink)}
.sl-drive small{font-size:12px;color:var(--mute)}

/* score cell */
.sl-score{display:flex;align-items:baseline;gap:3px}
.sl-score b{font-size:17px;font-weight:800;color:var(--ink)}
.sl-score-max{font-size:11px;color:var(--mute)}
.sl-q{display:inline-block;margin-top:5px;font-size:10.5px;font-weight:700;padding:2px 9px;border-radius:999px}
.sl-q.exc{background:#DCFCE7;color:#15803D}
.sl-q.vg{background:#E7F6EC;color:#22A06B}
.sl-q.good{background:#FEF3C7;color:#B45309}

/* date cell */
.sl-date{display:flex;flex-direction:column;gap:2px}
.sl-date>span{font-size:13px;font-weight:600;color:var(--ink-2);display:flex;align-items:center;gap:6px}
.sl-cal{font-size:12px;opacity:.7}
.sl-date small{font-size:12px;color:var(--mute)}

/* status pill */
.sl-status{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:9.5px;font-weight:600;letter-spacing:.06em;padding:5px 10px;border-radius:999px;background:#DCFCE7;color:#16A34A}

/* actions */
.sl-actions{display:inline-flex;gap:8px;justify-content:flex-end}
.sl-icbtn{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:var(--card,#fff);font-size:14px;color:var(--mute);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;justify-content:center}
.sl-icbtn:hover{border-color:var(--emerald);color:var(--emerald-d);background:var(--emerald-glow)}

/* grid layout */
.sl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;padding:18px}
.sl-gcard{border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:11px;transition:.15s}
.sl-gcard:hover{border-color:var(--emerald-soft,#A7F3D0);box-shadow:0 4px 16px rgba(15,23,42,.06)}
.sl-gtop{display:flex;align-items:center;gap:10px}
.sl-gtop .sl-status{margin-left:auto}
.sl-grow{display:flex;align-items:center;gap:10px;padding-top:11px;border-top:1px solid var(--line)}
.sl-gfoot{display:flex;align-items:center;justify-content:space-between;padding-top:11px;border-top:1px solid var(--line)}
.sl-gfoot small{font-size:12px;color:var(--mute)}

/* empty */
.sl-empty{padding:40px;text-align:center;font-size:13px;color:var(--mute)}

/* footer */
.sl-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:14px 18px;border-top:1px solid var(--line)}
.sl-foot-info{font-size:12.5px;color:var(--mute)}
.sl-pager{display:flex;align-items:center;gap:6px}
.sl-pg{min-width:30px;height:30px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--card,#fff);font-family:'Inter';font-size:12.5px;font-weight:600;color:var(--ink-2);cursor:pointer;transition:.15s}
.sl-pg:hover:not(:disabled){border-color:#CBD5E1}
.sl-pg.on{background:var(--emerald-glow);border-color:var(--emerald-soft,#A7F3D0);color:var(--emerald-d)}
.sl-pg:disabled{opacity:.4;cursor:not-allowed}
.sl-foot-rpp{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--mute)}
.sl-rpp{height:32px;min-width:64px;padding:0 26px 0 10px;font-size:12.5px}

@media(max-width:1080px){
  .sl-top{grid-template-columns:1fr;gap:16px}
  .sl-illus{display:none}
  .sl-overview{order:3}
}

/* ═══ CANDIDATE DETAIL (full-page placement view) ═══ */
.cand-topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}
.cand-hero{margin-bottom:18px}
.cand-hero .pf-role{margin-top:3px}
.cand-hero-right{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}
.cand-scorebox{flex-shrink:0;display:flex;flex-direction:column;gap:2px;align-items:flex-end;padding:14px 20px;border-radius:14px;background:linear-gradient(135deg,var(--ink) 0%,var(--ink-2) 100%);color:var(--on-accent);min-width:150px;text-align:right}
.csb-num{font-family:'Inter';font-weight:800;font-size:36px;line-height:1;letter-spacing:-.03em}
.csb-lbl{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--honey-soft);margin-top:3px}
.csb-rank{font-family:'JetBrains Mono';font-size:10px;letter-spacing:.04em;color:#FFFFFF9C;margin-top:2px}

/* horizontal stage stepper */
.cand-steps{display:flex;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 22px 16px;margin-bottom:18px}
.cand-step{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;min-width:0}
.cand-step::before{content:"";position:absolute;top:11px;left:-50%;width:100%;height:2px;background:var(--line);z-index:0}
.cand-step:first-child::before{display:none}
.cand-step.done::before,.cand-step.active::before{background:var(--emerald)}
.cstep-dot{position:relative;z-index:1;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--mist);border:2px solid var(--line);color:#fff;font-size:12px;font-weight:800;line-height:1}
.cand-step.done .cstep-dot{background:var(--emerald-d);border-color:var(--emerald-d)}
.cand-step.active .cstep-dot{background:var(--honey-d);border-color:var(--honey-d);box-shadow:0 0 0 4px var(--honey-glow)}
.cstep-lbl{font-family:'Inter';font-size:12px;font-weight:600;color:var(--mute)}
.cand-step.done .cstep-lbl,.cand-step.active .cstep-lbl{color:var(--ink)}
.cstep-date{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.04em;color:var(--mute)}

.cand-tabs{margin-bottom:18px}
.cand-grid{margin-top:0}
.cand-kv{grid-template-columns:1fr;max-width:none;gap:12px}

/* quick actions (light vertical list) */
.cand-qa{display:flex;flex-direction:column;gap:8px}
.cand-qa-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;background:var(--fog);border:1px solid var(--line);cursor:pointer;text-align:left;transition:.13s;width:100%}
.cand-qa-item:hover{background:var(--card);border-color:var(--honey-glow);box-shadow:0 2px 8px rgba(0,0,0,.04)}
.cand-qa-item .qa-ic{margin-bottom:0}
.cqa-tx{flex:1;font-family:'Inter';font-weight:600;font-size:13px;color:var(--ink-2)}
.cqa-ar{color:var(--mute);font-size:16px;font-weight:700}
.cand-qa-item.danger:hover{border-color:var(--rose);background:var(--rose-glow)}
.cand-qa-item.danger .cqa-tx{color:var(--rose-d)}

/* stage history state pill */
.cand-history .ai-time{margin-top:3px}
.cand-statepill{display:inline-block;margin-left:8px;font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--honey-glow);color:var(--honey-d);vertical-align:middle}
.cand-statepill.done{background:var(--emerald-glow);color:var(--emerald-d)}
.cand-statepill.pending{background:var(--mist);color:var(--mute)}
.alert-item.pending::before{background:var(--line);box-shadow:0 0 0 2px var(--mist)}
.alert-item.pending .ai-msg b{color:var(--mute)}

/* notes panel */
.cand-note{background:var(--honey-cream);border:1px solid var(--honey-glow);border-radius:12px;padding:14px 16px}
.cand-note-bd{font-size:13px;color:var(--ink-2);line-height:1.55}
.cand-note-meta{font-family:'JetBrains Mono';font-size:10px;color:var(--mute);letter-spacing:.04em;margin-top:10px}

/* generic mock lists for non-overview tabs */
.cand-list{display:flex;flex-direction:column;gap:10px}
.cand-list-row{display:flex;align-items:center;gap:13px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:var(--fog)}
.cand-list-row .clr-bd{flex:1;display:flex;flex-direction:column;min-width:0}
.cand-list-row .clr-bd b{font-family:'Inter';font-weight:600;font-size:13.5px;color:var(--ink)}
.cand-list-row .clr-bd small{font-size:11.5px;color:var(--mute);margin-top:2px}
.cand-fb{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--fog)}
.cand-fb-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}
.cand-fb-top b{font-family:'Inter';font-weight:700;font-size:13.5px;color:var(--ink)}
.cand-fb p{margin:0;font-size:12.5px;color:var(--ink-2);line-height:1.55}
.cand-fb small{display:block;margin-top:8px;font-family:'JetBrains Mono';font-size:10px;color:var(--mute);letter-spacing:.04em}

/* dark mode — elevated surfaces flip to var(--surface) */
[data-theme="dark"] .cand-steps,
[data-theme="dark"] .cand-qa-item,
[data-theme="dark"] .cand-list-row,
[data-theme="dark"] .cand-fb{background:var(--surface)}
[data-theme="dark"] .cstep-dot{background:var(--mist)}
[data-theme="dark"] .cand-scorebox{background:linear-gradient(135deg,var(--deep) 0%,var(--deep-2,var(--deep)) 100%)}

@media(max-width:760px){
  .cand-hero-right{width:100%;justify-content:space-between;align-items:center}
  .cand-steps{flex-wrap:wrap;gap:14px}
  .cand-step{flex:1 1 30%}
  .cand-step::before{display:none}
}

/* ══════════════════════════════════════════════════════
   REPORTS & EXPORTS
   ══════════════════════════════════════════════════════ */
/* header stat tiles (right side of view head) */
.rpt-stats{display:flex;gap:12px;flex-shrink:0}
.rpt-stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 16px;display:flex;align-items:center;gap:12px}
.rpt-stat .ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-size:17px;flex-shrink:0;background:var(--emerald-glow);color:var(--emerald-d)}
.rpt-stat .ic.teal{background:var(--teal-glow);color:var(--teal-d)}
.rpt-stat .meta .lbl{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-weight:700}
.rpt-stat .meta .v{font-family:'Inter';font-weight:800;font-size:23px;color:var(--ink);line-height:1.15;letter-spacing:-0.02em}
.rpt-stat .meta .delta{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;color:var(--emerald-d);letter-spacing:.02em}
@media (max-width:760px){.rpt-stats{width:100%}.rpt-stat{flex:1}}

/* trust / feature strip */
.rpt-trust{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.rpt-trust-item{background:var(--fog);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;gap:10px;align-items:flex-start}
.rpt-trust-item .tk{width:27px;height:27px;border-radius:8px;background:var(--emerald-glow);color:var(--emerald-d);display:grid;place-items:center;font-size:13px;flex-shrink:0;font-weight:700}
.rpt-trust-item .tt{font-weight:700;font-size:12.5px;color:var(--ink);line-height:1.2}
.rpt-trust-item .td{font-size:11px;color:var(--mute);line-height:1.4;margin-top:3px}
@media (max-width:900px){.rpt-trust{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.rpt-trust{grid-template-columns:1fr}}

/* rich report card */
.rpt-card{position:relative;overflow:hidden;gap:0}
.rpt-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--honey-d)}
.rpt-card.em::before{background:var(--emerald-d)}
.rpt-card.tl::before{background:var(--teal-d)}
.rpt-card.plum::before{background:var(--plum-d)}
.rpt-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.rpt-ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:20px;flex-shrink:0;background:var(--honey-glow);color:var(--honey-d)}
.rpt-ic.em{background:var(--emerald-glow);color:var(--emerald-d)}
.rpt-ic.tl{background:var(--teal-glow);color:var(--teal-d)}
.rpt-ic.plum{background:var(--plum-glow);color:var(--plum-d)}
.rpt-badges{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.rpt-card h3{font-family:'Inter';font-weight:700;font-size:15px;color:var(--ink);margin:13px 0 0;letter-spacing:-0.01em}
.rpt-desc{font-size:12.5px;color:var(--ink-2);line-height:1.55;margin-top:7px}
.rpt-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.rpt-tag{font-family:'Inter';font-size:10.5px;font-weight:600;color:var(--ink-3);background:var(--mist);border:1px solid var(--line);border-radius:6px;padding:3px 9px;white-space:nowrap}
.rpt-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;flex-wrap:wrap}
.rpt-when{font-family:'JetBrains Mono';font-size:10px;color:var(--mute);letter-spacing:.03em}
.rpt-btn{padding:10px 16px;background:var(--ink);color:var(--on-accent);border:none;border-radius:9px;font-family:'Inter';font-weight:600;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:background .15s}
.rpt-btn:hover{background:var(--honey-d)}
.rpt-btn.em{background:var(--emerald-d)}
.rpt-btn.em:hover{background:var(--emerald)}

/* recent reports table */
.rpt-recent-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:2px}
.rpt-recent-head h3{font-family:'Inter';font-weight:700;font-size:15px;color:var(--ink);margin:0;letter-spacing:-0.01em}
.rpt-status{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px 3px 8px;border-radius:999px;background:var(--emerald-glow);color:var(--emerald-d);display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.rpt-status::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--emerald-d)}
.rpt-status.sched{background:var(--honey-glow);color:var(--honey-d)}
.rpt-status.sched::before{background:var(--honey-d)}
.rpt-fmt{font-family:'JetBrains Mono';font-size:10px;font-weight:700;color:var(--ink-3);border:1px solid var(--line);border-radius:5px;padding:2px 7px;letter-spacing:.04em}
.rpt-row-actions{display:flex;gap:6px}
.rpt-icon-btn{width:29px;height:29px;border-radius:7px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);cursor:pointer;display:grid;place-items:center;font-size:13px;transition:.15s}
.rpt-icon-btn:hover{border-color:var(--honey-d);color:var(--honey-d)}
.rpt-viewall{font-family:'Inter';font-size:12.5px;font-weight:600;color:var(--honey-d);background:none;border:none;cursor:pointer;padding:12px 0 0;display:block;margin:0 auto;text-align:center}

/* ── Templates: Use action + compose modal ── */
.tpl-actions .tpl-use{font-family:'Inter';font-size:11.5px;font-weight:700;color:#fff;background:var(--honey-d,#B45309);border:none;border-radius:7px;padding:5px 11px;cursor:pointer;margin-right:6px;transition:.15s}
.tpl-actions .tpl-use:hover{filter:brightness(1.05)}
.msg-recip{display:flex;gap:10px;flex-wrap:wrap}
.msg-radio{flex:1 1 200px;display:flex;align-items:center;gap:11px;padding:11px 13px;border:1.5px solid var(--line);border-radius:11px;background:var(--card);cursor:pointer;transition:.15s;text-transform:none;letter-spacing:0}
.msg-radio:hover{border-color:var(--honey-d)}
.msg-radio.sel{border-color:var(--honey-d);background:var(--honey-glow);box-shadow:0 0 0 3px var(--honey-glow)}
/* override .asg-field input bleed (full-width/padded/bordered) on the native radio */
.msg-radio input[type=radio]{width:16px;height:16px;min-width:16px;flex:none;margin:0;padding:0;border:0;border-radius:50%;background:none;box-shadow:none;accent-color:var(--honey-d,#B45309);cursor:pointer}
.msg-radio-tx{display:flex;flex-direction:column;gap:1px;line-height:1.25;text-transform:none;letter-spacing:0}
.msg-radio-tx b{font-family:'Inter';font-size:13px;font-weight:600;color:var(--ink)}
.msg-radio-tx small{font-family:'Inter';font-size:11px;font-weight:400;color:var(--mute);text-transform:none;letter-spacing:0}
.msg-preview{font-family:'Inter';font-size:13px;line-height:1.5;color:var(--ink-2,#1E293B);background:var(--fog,#F8FAFC);border:1px solid var(--line,#E2E8F0);border-left:3px solid var(--honey,#F59E0B);border-radius:8px;padding:11px 13px;min-height:42px;white-space:pre-wrap}
.msg-note{font-family:'Inter';font-size:12px;color:var(--ink-3,#334155);background:var(--emerald-glow,#D1FAE5);border-radius:8px;padding:8px 11px;margin-top:10px}

/* ── Verification chain queue (faculty endorse → TPO approve) ── */
.sr-tab-verify{color:var(--emerald-d)}
.sr-prio.em{background:var(--emerald-glow);color:var(--emerald-d)}
.sr-prio.tl{background:var(--teal-glow,var(--honey-glow));color:var(--teal-d,var(--honey-d))}
.sr-prio.hny{background:var(--honey-glow);color:var(--honey-d)}
.sr-prio.rose{background:var(--rose-glow);color:var(--rose-d)}
.vq-card{display:flex;flex-direction:column;gap:6px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:var(--card);cursor:pointer;transition:.15s;margin-bottom:8px}
.vq-card:hover{border-color:var(--honey)}
.vq-card.active{border-color:var(--honey);box-shadow:0 0 0 2px var(--honey-glow)}
.vq-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.vq-name{font-weight:700;font-size:13.5px;color:var(--ink)}
.vq-meta{font-size:11px;color:var(--mute);font-family:'JetBrains Mono'}
.vq-title{font-size:13px;color:var(--ink)}
.vq-type{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);border:1px solid var(--line);border-radius:5px;padding:1px 5px;margin-left:4px}
.vq-evid{font-size:12px;color:var(--mute);line-height:1.4}
.vq-note{font-size:11.5px;color:var(--ink-2);background:var(--surface);border-radius:7px;padding:5px 8px}
.vq-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.vq-btn{flex:1;min-width:84px;padding:7px 10px;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--ink);transition:.15s}
.vq-btn.primary{background:var(--emerald);border-color:var(--emerald);color:var(--on-accent)}
.vq-btn.primary:hover{filter:brightness(1.05)}
.vq-btn.ghost:hover{border-color:var(--honey);color:var(--honey-d)}
.vq-btn.danger{color:var(--rose-d)}
.vq-btn.danger:hover{background:var(--rose-glow);border-color:var(--rose)}
/* candidate skill-verified flag */
.cand-verified{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--emerald-d);background:var(--emerald-glow);padding:2px 8px;border-radius:999px}

/* ============================================================
   PRINCIPAL PORTAL — dashboard (p-home) + faculty/recruiter lenses
   ============================================================ */
/* Green-themed sidebar persona */
.app-sidebar.persona-principal{background:var(--ink);color:var(--on-accent);border-right:1px solid #FFFFFF14}
.app-sidebar.persona-principal .app-nav-section{color:#FFFFFF80}
.app-sidebar.persona-principal .app-nav-btn{color:#FFFFFFB8}
.app-sidebar.persona-principal .app-nav-btn:hover{background:#FFFFFF12;color:#fff}
.app-sidebar.persona-principal .app-nav-btn.active{background:linear-gradient(90deg,var(--emerald-d),#1A9E54);color:#fff;box-shadow:0 1px 0 #00000020}
.app-sidebar.persona-principal .app-nav-btn.active .count,.app-sidebar.persona-principal .app-nav-btn.active .pill-int{background:#FFFFFF26;color:#fff}
.app-sidebar.persona-principal .app-nav-btn .pill-int{background:#FFFFFF12;color:#FFFFFFA0}
[data-theme="dark"] .app-sidebar.persona-principal{background:var(--deep)}

/* Layout */
.p-home .tpo-dash{gap:18px}
.p-main{display:flex;flex-direction:column;gap:18px;min-width:0}
.p-row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:stretch}
.p-row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
/* fill stretched cards gracefully so short content centres instead of leaving a bottom gap */
.p-row3 .p-ready{flex:1}
.p-row3 .signal-bars{flex:1;justify-content:center}
@media(max-width:1100px){.p-row2,.p-row3{grid-template-columns:1fr}}

/* Hero greeting banner */
.p-hero{background:linear-gradient(120deg,#0E5A3E,#15803D,#1A9E54);min-height:208px;padding:28px 30px;display:flex;align-items:center;box-shadow:0 10px 30px rgba(16,122,67,.28)}
.p-hero .ph-year{position:absolute;top:18px;right:20px;z-index:2;display:inline-flex;align-items:center;gap:7px;font-family:'JetBrains Mono';font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#fff;background:#ffffff1f;border:1px solid #ffffff3a;padding:6px 13px;border-radius:999px;backdrop-filter:blur(6px);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.p-hero .ph-year-dot{width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px #ffffff33}
.p-hero .th-copy{position:relative;z-index:2;max-width:70%}
.p-hero .ph-greet{font-family:'Inter';font-weight:800;font-size:28px;letter-spacing:-0.02em;line-height:1.12;margin:0 0 7px;color:#fff}
.p-hero .ph-title{font-family:'Inter';font-weight:600;font-size:14.5px;color:#EAFBF1;margin:0 0 3px}
.p-hero .ph-sub{font-size:13px;color:#ffffffcc;margin:0;line-height:1.5}
.p-hero .ph-chips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:18px;max-width:520px}
.p-hero .ph-chip{background:#ffffff1c;border:1px solid #ffffff2e;border-radius:13px;padding:11px 14px;backdrop-filter:blur(4px)}
.p-hero .phc-v{font-family:'Inter';font-weight:800;font-size:22px;letter-spacing:-0.02em;line-height:1;color:#fff;display:flex;align-items:baseline;gap:1px}
.p-hero .phc-u{font-size:12px;font-weight:700;opacity:.85;margin-left:1px}
.p-hero .phc-l{font-size:11px;color:#EAFBF1;margin-top:6px;font-weight:500}
.p-hero .ph-illus{position:absolute;right:14px;bottom:0;height:182px;width:auto;z-index:1;opacity:.96}
@media(max-width:900px){.p-hero .th-copy{max-width:100%}.p-hero .ph-illus{display:none}}
@media(max-width:760px){.p-hero .ph-chips{grid-template-columns:1fr 1fr}}

/* KPI strip */
.p-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:13px}
@media(max-width:1240px){.p-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.p-kpis{grid-template-columns:repeat(2,1fr)}}
.p-kpi{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:15px 16px;display:flex;flex-direction:column;gap:3px;position:relative}
.p-kpi .pk-ic{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;margin-bottom:8px;flex-shrink:0}
.p-kpi .pk-ic svg{width:20px;height:20px}
.p-kpi .pk-ic.em{background:var(--emerald-glow);color:var(--emerald-d)}
.p-kpi .pk-ic.tl{background:var(--teal-glow);color:var(--teal-d)}
.p-kpi .pk-ic.hny{background:var(--honey-glow);color:var(--honey-d)}
.p-kpi .pk-ic.vio{background:#EDE9FE;color:#7C3AED}
.p-kpi .pk-v{font-family:'Inter';font-weight:800;font-size:25px;color:var(--ink);line-height:1;letter-spacing:-0.025em;display:flex;align-items:baseline;gap:3px}
.p-kpi .pk-u{font-size:12px;font-weight:600;color:var(--mute)}
.p-kpi .pk-l{font-size:11.5px;color:var(--body);font-weight:600;margin-top:3px}
.p-kpi .pk-f{font-family:'JetBrains Mono';font-size:10px;font-weight:700;letter-spacing:.04em;margin-top:3px;color:var(--mute)}
.p-kpi .pk-f.up{color:var(--emerald-d)}
.p-kpi .pk-f.down{color:var(--rose-d)}

/* Placement line chart (with Y-axis labels) */
.p-linechart{margin-top:6px}
.plc-svg{width:100%;height:auto;display:block;max-height:185px;overflow:visible}
.plc-lbl{font-family:'JetBrains Mono';font-size:10px;fill:var(--mute);font-weight:700}
.plc-val{font-family:'JetBrains Mono';font-size:10px;fill:var(--ink-2);font-weight:800}
.plc-x{display:flex;justify-content:space-between;margin-top:4px;margin-left:44px;font-family:'JetBrains Mono';font-size:10px;color:var(--mute);font-weight:700}

/* Horizontal SVG funnel */
.p-hfunnel{margin-top:10px}
.phf-svg{width:100%;height:auto;display:block;border-radius:6px;overflow:hidden}
.phf-labels{display:flex;margin-top:8px}
.phfl{flex:1;text-align:center;display:flex;flex-direction:column;gap:1px}
.phfl b{font-family:'JetBrains Mono';font-size:13px;font-weight:800;color:var(--ink)}
.phfl span{font-size:10px;color:var(--mute);font-weight:600}

/* Department performance table (5 cols) */
.p-dept-tbl td{padding:8px 7px;font-size:12px}
.p-dept-tbl th{font-size:11px}
.p-dept-tbl b{font-weight:700;color:var(--ink)}
.td-num{font-family:'JetBrains Mono';font-size:12px;font-weight:700;color:var(--ink-2)}
.dept-delta{font-family:'JetBrains Mono';font-size:11px;font-weight:800;padding:2px 6px;border-radius:5px}
.dept-delta.up{color:var(--emerald-d);background:var(--emerald-glow)}
.dept-delta.down{color:var(--rose-d);background:#FEE2E2}
.pfm{display:flex;align-items:center;gap:6px}
.pfm-track{flex:1;height:7px;background:var(--mist);border-radius:5px;overflow:hidden;min-width:42px}
.pfm-fill{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#86EFAC,var(--emerald-d))}
.pfm-fill.mid{background:linear-gradient(90deg,var(--honey-soft),var(--honey-d))}
.pfm-fill.weak{background:linear-gradient(90deg,#FCA5A5,var(--rose-d))}
.pfm i{font-family:'JetBrains Mono';font-size:10.5px;font-weight:700;color:var(--ink-2);font-style:normal;min-width:28px;text-align:right}

/* Faculty impact list (with score bar) */
.p-fac-list{display:flex;flex-direction:column;gap:2px;margin-top:4px}
.p-fac-list.lg .p-fac-row{padding:13px 6px}
.p-fac-row{display:flex;align-items:center;gap:11px;padding:9px 4px;border-bottom:1px solid var(--line)}
.p-fac-row:last-child{border-bottom:none}
.pfac-av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:12px;flex-shrink:0}
.pfac-meta{flex:1;min-width:0}
.pfac-meta b{display:block;font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.25}
.pfac-meta small{font-size:10.5px;color:var(--mute)}
.pfac-bar-wrap{height:4px;background:var(--mist);border-radius:3px;overflow:hidden;margin-top:5px}
.pfac-bar{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--honey-soft),var(--honey-d))}
.pfac-right{text-align:right;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.fac-trust{font-size:9.5px;color:var(--mute);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.pfac-score{font-family:'JetBrains Mono';font-size:15px;font-weight:800;color:var(--ink)}

/* Recruiter health — 2-column layout */
.p-rh-inner{display:grid;grid-template-columns:130px 1fr;gap:14px;margin-top:8px;align-items:start}
.p-rh-stats{display:flex;flex-direction:column;gap:9px}
.rh-stat{display:flex;align-items:center;gap:8px}
.rh-ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:13px;flex-shrink:0}
.rh-blue{background:#DBEAFE}.rh-grn{background:#DCFCE7}.rh-em{background:var(--honey-glow)}.rh-vio{background:#EDE9FE}
.rh-stat b{display:block;font-family:'Inter';font-weight:800;font-size:15px;color:var(--ink);line-height:1}
.rh-stat small{font-size:9.5px;color:var(--mute);font-weight:600}
.rh-top-hd{font-size:10.5px;font-weight:700;color:var(--ink-2);margin-bottom:7px;text-transform:uppercase;letter-spacing:.04em}
.rh-top-hd small{text-transform:none;font-size:10px;color:var(--mute);font-weight:500}
.p-rec-list{display:flex;flex-direction:column;gap:6px}
.p-rec-list.lg .p-rec-row{padding:11px 8px;background:var(--fog);border:1px solid var(--line);border-radius:11px}
.p-rec-row{display:flex;align-items:center;gap:9px}
.co-av{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;font-size:9px;font-weight:800;flex-shrink:0}
.prec-name{flex:1;font-size:12px;font-weight:600;color:var(--ink-2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prec-hires{font-size:11px;color:var(--mute);font-weight:600;white-space:nowrap}
.prec-hires b{font-family:'JetBrains Mono';font-size:12px;font-weight:800;color:var(--ink-2);margin-right:2px}

/* Strategic alerts (new icon format) */
.p-alerts{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.p-alert{display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border-radius:10px;background:var(--fog);border:1px solid var(--line)}
.p-alert.rose{background:#FEF2F2;border-color:#FECACA}
.p-alert.warn{background:#FFFBEB;border-color:#FDE68A}
.p-alert.emerald{background:#F0FDF4;border-color:#BBF7D0}
.pa-ic{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:14px;flex-shrink:0;background:var(--card)}
.pa-body{flex:1;min-width:0}
.pa-msg{font-size:11.5px;color:var(--ink-2);line-height:1.45}
.pa-act{font-size:10.5px;font-weight:700;color:var(--honey-d);background:none;border:none;padding:0;cursor:pointer;margin-top:4px;text-align:left}
.pa-act:hover{text-decoration:underline}
.pa-time{font-family:'JetBrains Mono';font-size:9.5px;color:var(--mute);font-weight:700;white-space:nowrap;padding-top:2px;flex-shrink:0}

/* Student readiness donut layout */
.p-ready,.p-goal{display:flex;align-items:center;gap:16px;margin-top:8px}
.p-ready .asg-donut-wrap,.p-goal .asg-donut-wrap{width:108px;height:108px;flex-shrink:0}
.p-ready .tpo-legend{flex:1;display:flex;flex-direction:column;gap:7px}
.asg-donut .ring-seg.off{stroke:#CBD5E1}
.tl-dot.off{background:#CBD5E1}

/* Placement goal gauge */
.pg-legend{flex:1;display:flex;flex-direction:column;gap:9px}
.pgl{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--body)}
.pgl .pgl-dot{width:9px;height:9px;border-radius:3px;background:var(--mute)}
.pgl .pgl-dot.em{background:var(--emerald-d)}.pgl .pgl-dot.rs{background:var(--rose-d)}.pgl .pgl-dot.mute{background:#94A3B8}
.pgl .pgl-k{flex:1}
.pgl b{font-family:'JetBrains Mono';font-weight:800;font-size:14px;color:var(--ink)}
.pgl b.em{color:var(--emerald-d)}.pgl b.rs{color:var(--rose-d)}

/* Institution health card (green) */
.ih-card{background:linear-gradient(135deg,#0E5A3E,#15803D);border-color:transparent;color:#fff}
.ih-top{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.ih-shield{width:38px;height:38px;border-radius:11px;background:#ffffff22;display:grid;place-items:center;flex-shrink:0}
.ih-shield svg{width:21px;height:21px;color:#fff}
.ih-l{font-size:12.5px;font-weight:700;color:#fff}
.ih-badge{display:inline-block;margin-top:3px;font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:#ffffff26;color:#EAFBF1;padding:2px 8px;border-radius:999px}
.ih-score{font-family:'Inter';font-weight:800;font-size:38px;line-height:1;letter-spacing:-0.03em;color:#fff;display:flex;align-items:baseline;gap:3px}
.ih-score span{font-size:16px;font-weight:600;color:#ffffffaa}
.ih-note{font-size:11.5px;color:#ffffffcc;margin-top:7px}

/* Institution Trust Score — principal governance composite */
.its-card{background:linear-gradient(150deg,#0E5A3E,#15803D 55%,#107A4D);border-color:transparent;color:#fff}
.p-home .its-card{background:linear-gradient(150deg,#0E5A3E,#15803D 55%,#107A4D)}
.its-pillars{margin-top:14px;display:flex;flex-direction:column;gap:7px}
.its-pill{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 9px;border-radius:11px;background:#ffffff14;border:1px solid #ffffff1f;cursor:pointer;transition:background .15s,transform .15s}
.its-pill:hover{background:#ffffff24;transform:translateX(2px)}
.its-pic{width:26px;height:26px;flex-shrink:0;border-radius:8px;background:#ffffff1f;display:grid;place-items:center}
.its-pic svg{width:15px;height:15px;color:#EAFBF1}
.its-pmain{flex:1;min-width:0}
.its-prow{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.its-plabel{font-size:11px;font-weight:600;color:#EAFBF1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.its-pval{font-family:'JetBrains Mono';font-size:12px;font-weight:700;color:#fff;flex-shrink:0}
.its-pbar{height:4px;border-radius:999px;background:#ffffff26;margin-top:5px;overflow:hidden}
.its-pbar i{display:block;height:100%;border-radius:999px}
.its-pbar i.st{background:#86EFAC}
.its-pbar i.md{background:#FDE047}
.its-pbar i.wk{background:#FCA5A5}
.its-pwt{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;color:#ffffffb3;flex-shrink:0;width:30px;text-align:right}
.its-foot{display:flex;align-items:center;gap:7px;margin-top:11px;padding-top:10px;border-top:1px solid #ffffff24;font-size:11px}
.its-lever{color:#ffffffb3;text-transform:uppercase;letter-spacing:.06em;font-size:9px;font-weight:700}
.its-foot b{color:#fff;font-weight:600;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.its-leverv{font-family:'JetBrains Mono';font-size:11px;font-weight:700;color:#FDE047}
/* Clickable header — pillars collapse until clicked */
.its-head{display:block;width:100%;text-align:left;background:transparent;border:0;padding:0;margin:0;color:inherit;cursor:pointer;font:inherit}
.its-toggle{display:inline-flex;align-items:center;gap:5px;margin-top:11px;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#EAFBF1;background:#ffffff1f;padding:5px 10px;border-radius:999px;transition:background .15s}
.its-head:hover .its-toggle{background:#ffffff33}
.its-toggle::after{content:'▾';font-size:9px;transition:transform .2s}
.its-toggle.is-open::after{transform:rotate(180deg)}

/* Upcoming events */
.p-events{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.p-event{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--fog);border:1px solid var(--line);border-radius:11px;padding:10px 11px;cursor:pointer;transition:.12s}
.p-event:hover{border-color:var(--emerald);transform:translateX(2px)}
.p-event .pe-bar{width:4px;align-self:stretch;border-radius:3px;background:var(--emerald-d);flex-shrink:0}
.p-event.tl .pe-bar{background:var(--teal-d)}.p-event.hny .pe-bar{background:var(--honey-d)}.p-event.vio .pe-bar{background:#7C3AED}
.p-event .pe-body{flex:1;min-width:0}
.p-event .pe-body b{display:block;font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.25}
.p-event .pe-body small{font-size:11px;color:var(--mute)}
.p-event .pe-tag{font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--emerald-d);background:var(--emerald-glow);padding:3px 7px;border-radius:6px;flex-shrink:0}
.p-event.tl .pe-tag{color:var(--teal-d);background:var(--teal-glow)}.p-event.hny .pe-tag{color:var(--honey-d);background:var(--honey-glow)}.p-event.vio .pe-tag{color:#7C3AED;background:#EDE9FE}

/* Quick links grid */
.p-qlinks{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:6px}
.p-qlink{display:flex;flex-direction:column;align-items:center;gap:7px;background:var(--fog);border:1px solid var(--line);border-radius:11px;padding:14px 8px;cursor:pointer;font-family:'Inter';font-size:11.5px;font-weight:600;color:var(--ink-2);transition:.12s}
.p-qlink:hover{border-color:var(--emerald);color:var(--emerald-d);background:var(--emerald-glow)}
.p-qlink .ql-ic{width:36px;height:36px;border-radius:10px;background:var(--fog);border:1px solid var(--line);display:grid;place-items:center}
.p-qlink .ql-ic svg{width:18px;height:18px;color:var(--ink-2)}

/* ============================================================
   PRINCIPAL PORTAL — ORANGE THEME (scoped overrides)
   Chrome + headline accents → amber/orange; status/data colors
   (KPI deltas, readiness donut, accreditation bars, alerts) kept.
   ============================================================ */
.app-sidebar.persona-principal .app-nav-btn.active{background:linear-gradient(90deg,var(--honey-d),var(--honey));color:#fff}
.app-sidebar.persona-principal .side-help .sh-btn{color:var(--honey-soft)}
.p-home .p-hero{background:linear-gradient(120deg,#78350F,var(--honey-d),var(--honey));box-shadow:0 12px 32px rgba(180,83,9,.30)}
.p-home .p-hero .ph-title{color:var(--honey-glow)}
.p-home .p-hero .phc-l{color:#FFEDD5}
.p-home .ih-card{background:linear-gradient(135deg,#78350F,var(--honey-d))}
/* KPI icon chips → uniform amber */
.p-home .p-kpi .pk-ic.em,.p-home .p-kpi .pk-ic.tl,.p-home .p-kpi .pk-ic.hny,.p-home .p-kpi .pk-ic.vio{background:var(--honey-glow);color:var(--honey-d)}
/* Funnel + line chart + goal gauge → amber */
.p-home .pf-bar{background:linear-gradient(90deg,var(--honey-soft),var(--honey-d))}
.p-goal .pgl-dot.em{background:var(--honey-d)}
.p-goal .pgl b.em{color:var(--honey-d)}
/* Headline pills / links / scores → amber */
.p-home .pill.em{background:var(--honey-glow);color:var(--honey-d)}
.p-home .lnk{color:var(--honey-d)}
.p-home .pfac-av{background:var(--honey-glow);color:var(--honey-d)}
.p-home .pfac-score{color:var(--honey-d)}

/* ============================================================
   PRINCIPAL DASHBOARD — restructure: zone headers, recs, comm
   ============================================================ */
/* Zone section headers — group the long scroll into 4 bands */
.p-zone{display:flex;align-items:center;gap:10px;margin:8px 2px -4px}
.p-zone h4{font-family:'Inter';font-size:13.5px;font-weight:800;letter-spacing:-0.01em;color:var(--ink);margin:0;white-space:nowrap}
.p-zone .pz-ic{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:13px;flex-shrink:0}
.p-zone .pz-ic.pz-hny{background:var(--honey-glow)}
.p-zone .pz-ic.pz-em{background:var(--emerald-glow)}
.p-zone .pz-ic.pz-tl{background:var(--teal-glow)}
.p-zone .pz-ic.pz-rs{background:#FEE2E2}
.p-zone::after{content:'';flex:1;height:1px;background:var(--line)}

/* Readiness card fills its half of the row2 gracefully */
.p-row2 .p-ready{flex:1}

/* Strategic recommendations (AI-prioritised levers) */
.p-recs{display:flex;flex-direction:column;gap:9px;margin-top:6px}
.p-rec{display:flex;gap:11px;padding:11px 11px;border-radius:11px;background:var(--fog);border:1px solid var(--line)}
.prc-rank{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;flex-shrink:0;font-family:'JetBrains Mono';font-size:11px;font-weight:800;color:var(--honey-d);background:var(--honey-glow)}
.prc-body{flex:1;min-width:0}
.prc-txt{font-size:11.5px;color:var(--ink-2);line-height:1.5;margin:0}
.prc-txt b{color:var(--ink);font-weight:700}
.prc-cta{font-size:10.5px;font-weight:700;color:var(--honey-d);background:none;border:none;padding:0;cursor:pointer;margin-top:6px}
.prc-cta:hover{text-decoration:underline}

/* Faculty Communication rail card */
.p-comm{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:8px}
.pcm-stat{background:var(--fog);border:1px solid var(--line);border-radius:11px;padding:11px 6px;text-align:center}
.pcm-stat b{display:block;font-family:'Inter';font-weight:800;font-size:20px;color:var(--ink);line-height:1}
.pcm-stat small{display:block;font-size:9.5px;color:var(--mute);font-weight:600;margin-top:4px;line-height:1.2}
.pcm-stat.awaiting{background:var(--honey-glow);border-color:var(--honey-soft)}
.pcm-stat.awaiting b{color:var(--honey-d)}
.p-comm-cta{display:flex;align-items:center;gap:8px;width:100%;margin-top:10px;padding:9px 11px;border-radius:10px;background:var(--honey-glow);border:1px solid var(--honey-soft);cursor:pointer;font-family:'Inter';font-size:11.5px;font-weight:600;color:var(--honey-d)}
.p-comm-cta:hover{background:var(--honey-soft)}
.p-comm-cta .pcm-dot{width:7px;height:7px;border-radius:50%;background:var(--honey-d);flex-shrink:0;box-shadow:0 0 0 3px var(--honey-glow)}
.p-comm-cta>span:nth-child(2){flex:1;text-align:left}
.p-comm-cta b{font-weight:800}
.p-comm-cta .pcm-arr{font-weight:800}
.p-home .prec-hires{color:var(--honey-d)}
.p-home .p-rec-stats b.em{color:var(--honey-d)}
/* Hover accents → amber */
.p-home .p-event:hover,.p-home .p-qlink:hover{border-color:var(--honey)}
.p-home .p-qlink:hover{color:var(--honey-d);background:var(--honey-glow)}
.p-home .p-qlink:hover .ql-ic{border-color:var(--honey)}
/* Faculty Impact / Recruiter Network standalone views (also amber) */
.app-view .pfac-av{background:var(--honey-glow);color:var(--honey-d)}
.app-view .pfac-score,.app-view .prec-hires{color:var(--honey-d)}

/* ============================================================
   PLACEMENT PERFORMANCE PAGE (p-trends · .p-place) — amber theme
   ============================================================ */
.p-place h1{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pl-tag{font-family:'Inter';font-size:11.5px;font-weight:700;color:var(--honey-d);background:var(--honey-glow);border:1px solid var(--honey-soft);padding:3px 11px;border-radius:999px;letter-spacing:0}
.p-place .head-actions .btn{font-size:12.5px}

/* KPI strip — 6 cards, left circular icon */
.pl-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:13px;margin-bottom:18px}
@media(max-width:1300px){.pl-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.pl-kpis{grid-template-columns:repeat(2,1fr)}}
.plk{position:relative;display:flex;align-items:flex-start;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:15px 15px;overflow:hidden}
.plk-ic{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:var(--honey-d);color:#fff}
.plk-ic svg{width:22px;height:22px}
.plk-body{min-width:0;flex:1}
.plk-l{font-size:11px;color:var(--mute);font-weight:600;line-height:1.3}
.plk-l em{font-style:normal;color:var(--mute);opacity:.8}
.plk-v{font-family:'Inter';font-weight:800;font-size:24px;color:var(--ink);line-height:1.1;letter-spacing:-0.03em;display:flex;align-items:baseline;gap:4px;margin-top:4px}
.plk-u{font-size:12px;font-weight:600;color:var(--mute)}
.plk-f{font-family:'JetBrains Mono';font-size:10px;font-weight:700;letter-spacing:.02em;margin-top:5px;color:var(--mute)}
.plk-f.up{color:var(--emerald-d)}
.plk-spark{position:absolute;right:8px;bottom:8px;width:74px;height:30px;opacity:.85}
.plk-spark .ln{fill:none;stroke:var(--honey-d);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.plk-spark .ar{fill:var(--honey-glow);stroke:none}

/* Row layouts */
.pl-row2{display:grid;grid-template-columns:minmax(0,1.42fr) minmax(0,1fr);gap:16px;align-items:start;margin-bottom:16px}
.pl-row4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:stretch;margin-bottom:16px}
.pl-row4 .dash-card{display:flex;flex-direction:column}
@media(max-width:1200px){.pl-row2,.pl-row4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.pl-row2,.pl-row4{grid-template-columns:1fr}}

/* Trajectory combo chart */
.pl-info{color:var(--mute);font-size:15px;cursor:default}
.pl-legend{display:flex;gap:18px;align-items:center;margin:10px 0 2px;flex-wrap:wrap}
.pl-legend .plg{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--body);font-weight:600}
.pl-legend .dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.pl-legend .dot.rate{background:var(--honey-d)}
.pl-legend .dot.off{background:#7FA1DC}
.pl-legend .dot.ctc{background:#EA9A1F}
.pl-combo{position:relative;margin-top:4px}
.pl-axl{position:absolute;top:50%;font-family:'JetBrains Mono';font-size:8.5px;letter-spacing:.05em;color:var(--mute);font-weight:700;text-transform:uppercase;white-space:nowrap}
.pl-axl.left{left:-6px;transform:rotate(-90deg) translateX(50%);transform-origin:left center}
.pl-axl.right{right:-8px;transform:rotate(90deg) translateX(-50%);transform-origin:right center}
.plc-svg{width:100%;height:auto;display:block;max-height:230px;overflow:visible}
.plc-grid{stroke:var(--line);stroke-width:1;stroke-dasharray:3,4}
.plc-axis{stroke:var(--line);stroke-width:1.5}
.plc-lbl{font-family:'JetBrains Mono';font-size:10px;fill:var(--mute);font-weight:700}
.plc-bval{font-family:'JetBrains Mono';font-size:10.5px;fill:var(--ink-2);font-weight:800}
.plc-val{font-family:'Inter';font-size:12px;fill:var(--ink);font-weight:800}
.plc-cval{font-family:'JetBrains Mono';font-size:9.5px;fill:#B45309;font-weight:800}
.pl-combo .plb{fill:#9DB8E4}
.pl-combo .plb.on{fill:#7FA1DC}
.pl-combo .pll{fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.pl-combo .pll.rate{stroke:var(--honey-d)}
.pl-combo .pll.ctc{stroke:#EA9A1F;stroke-width:2.2}
.pl-combo .pld{stroke:#fff;stroke-width:2}
.pl-combo .pld.rate{fill:var(--honey-d)}
.pl-combo .pld.ctc{fill:#EA9A1F}
.plc-x{display:flex;justify-content:space-between;margin:6px 52px 0 52px;font-family:'JetBrains Mono';font-size:10.5px;color:var(--mute);font-weight:700}
[data-theme="dark"] .pl-combo .plb{fill:#3E5170}
[data-theme="dark"] .pl-combo .plb.on{fill:#557099}

/* Success banner */
.pl-banner{display:flex;align-items:center;gap:8px;margin-top:14px;padding:9px 13px;border-radius:10px;background:var(--honey-glow);border:1px solid var(--honey-soft);font-size:11.5px;color:#92400E;font-weight:600}
.plb-ic{width:18px;height:18px;border-radius:50%;background:var(--honey-d);color:#fff;display:grid;place-items:center;font-size:11px;flex-shrink:0}
[data-theme="dark"] .pl-banner{color:var(--honey-soft)}

/* Funnel — segmented toggle + triangular SVG + legend */
.pl-seg{display:inline-flex;background:var(--mist);border:1px solid var(--line);border-radius:9px;padding:2px}
.pl-seg button{font-family:'Inter';font-size:11.5px;font-weight:600;color:var(--mute);background:none;border:none;padding:5px 12px;border-radius:7px;cursor:pointer}
.pl-seg button.on{background:var(--honey-d);color:#fff}
.pl-funnel{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;margin-top:12px}
.plf-svg{width:100%;max-width:200px;height:auto;display:block}
.plf-legend{display:flex;flex-direction:column;gap:9px}
.plfl-row{display:grid;grid-template-columns:14px 1fr auto auto;align-items:center;gap:9px}
.plfl-dot{width:10px;height:10px;border-radius:50%}
.plfl-name{font-size:12px;color:var(--ink-2);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plfl-count{font-family:'Inter';font-size:13px;font-weight:800;color:var(--ink);text-align:right;min-width:48px}
.plfl-count.mute{color:var(--mute);font-weight:600}
.plfl-conv{font-family:'JetBrains Mono';font-size:11.5px;font-weight:700;color:var(--mute);text-align:right;min-width:48px}
.plfl-conv.strong{color:var(--ink);font-weight:800}
@media(max-width:520px){.pl-funnel{grid-template-columns:1fr}}

/* YoY snapshot */
.pl-yoy{display:flex;flex-direction:column;gap:3px;margin-top:6px;flex:1}
.ply-row{display:flex;align-items:center;gap:11px;padding:8px 2px;border-bottom:1px solid var(--line)}
.ply-row:last-child{border-bottom:none}
.ply-ic{width:30px;height:30px;border-radius:8px;background:var(--honey-glow);color:var(--honey-d);display:grid;place-items:center;flex-shrink:0}
.ply-ic svg{width:16px;height:16px}
.ply-l{flex:1;font-size:12.5px;color:var(--ink-2);font-weight:600}
.ply-d{font-family:'JetBrains Mono';font-size:12px;font-weight:800;color:var(--emerald-d)}

/* Domain donut */
.pl-domain{display:flex;align-items:center;gap:14px;margin-top:8px;flex:1}
.pl-domain .asg-donut-wrap{flex-shrink:0}
.pl-domain .tpo-legend{flex:1;display:flex;flex-direction:column;gap:7px}
.pl-domain .tl-val b{font-family:'Inter';font-weight:800;color:var(--ink)}
.pl-domain .tl-val .muted{color:var(--mute);font-weight:600}
.asg-donut .ring-seg.vio{stroke:#7C3AED}
.asg-donut .ring-seg.bl{stroke:#3B82F6}

/* Top recruiters ranked bars */
.pl-rec{display:flex;flex-direction:column;gap:13px;margin-top:10px;flex:1}
.plr-row{display:grid;grid-template-columns:30px 1fr 64px auto;align-items:center;gap:9px}
.plr-av{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:11px;font-weight:800;flex-shrink:0;background:var(--fog);border:1px solid var(--line);overflow:hidden}
.plr-name{font-size:12px;color:var(--ink-2);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plr-bar{height:7px;background:var(--mist);border-radius:5px;overflow:hidden}
.plr-fill{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--honey-soft),var(--honey-d))}
.plr-n{font-family:'JetBrains Mono';font-size:13px;font-weight:800;color:var(--ink);text-align:right}

/* Key highlights */
.pl-high{display:flex;flex-direction:column;gap:14px;margin-top:8px;flex:1}
.plh-row{display:flex;align-items:flex-start;gap:10px}
.plh-ic{font-size:16px;flex-shrink:0;line-height:1.25}
.plh-tx{font-size:12px;color:var(--ink-2);line-height:1.45;font-weight:500}

/* Per-card footer link */
.pl-more{margin-top:14px;align-self:center;background:none;border:none;color:var(--honey-d);font-family:'Inter';font-size:12px;font-weight:700;cursor:pointer;padding:4px}
.pl-more:hover{text-decoration:underline}

/* Insight footer bar */
.pl-footer{display:grid;grid-template-columns:auto repeat(4,1fr);gap:20px;align-items:center;background:var(--honey-cream);border:1px solid var(--honey-glow);border-radius:14px;padding:16px 20px}
@media(max-width:1100px){.pl-footer{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.pl-footer{grid-template-columns:1fr}}
.plf-brand{display:flex;align-items:center;gap:10px}
.plf-shield{font-size:20px}
.plf-brand b{font-family:'Inter';font-size:13px;font-weight:800;color:#92400E;line-height:1.15}
.plf-item{display:flex;align-items:flex-start;gap:10px;border-left:1px solid var(--honey-soft);padding-left:18px}
.plf-iic{width:30px;height:30px;border-radius:8px;background:#fff;color:var(--honey-d);display:grid;place-items:center;flex-shrink:0;border:1px solid var(--honey-glow)}
.plf-iic svg{width:16px;height:16px}
.plf-item b{font-family:'Inter';font-size:12.5px;font-weight:800;color:var(--ink);display:block;margin-bottom:2px}
.plf-item p{font-size:11px;color:var(--body);line-height:1.4;margin:0}
[data-theme="dark"] .pl-footer{background:#2A2210;border-color:#3A2C0C}
[data-theme="dark"] .plf-brand b,[data-theme="dark"] .pl-banner{color:var(--honey-soft)}
[data-theme="dark"] .plf-iic{background:#1E2836}
[data-theme="dark"] .plr-av,[data-theme="dark"] .plf-item{border-color:#3A2C0C}

/* ═══════════════════════════════════════════════════════════
   FACULTY IMPACT dashboard (p-faculty)
   ═══════════════════════════════════════════════════════════ */
.di-title-ic{color:var(--honey);font-size:.7em;vertical-align:middle;margin-left:2px}
.p-fimpact .fi-kpis{grid-template-columns:repeat(6,1fr);margin-bottom:2px}
@media(max-width:1240px){.p-fimpact .fi-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.p-fimpact .fi-kpis{grid-template-columns:repeat(2,1fr)}}
.p-fimpact .pk-v.fi-v-sm{font-size:20px}
.fi-rowA,.fi-rowB{margin-top:16px}

/* Impact matrix (scatter) */
.fi-matrix{position:relative;padding-left:14px;margin-top:4px}
.fi-scatter{width:100%;height:auto;display:block;overflow:visible}
.fi-grid{stroke:var(--line);stroke-width:1;stroke-dasharray:3 3}
.fi-axis{stroke:var(--line);stroke-width:1.4}
.fi-q{font-family:'JetBrains Mono';font-size:8px;fill:var(--mute);font-weight:700;letter-spacing:.02em;text-transform:uppercase}
.fi-dot{opacity:.85;transition:.3s}
.fi-dot.em{fill:var(--emerald-d)}
.fi-dot.hny{fill:var(--honey-d)}
.fi-dot.rs{fill:var(--rose-d)}
.fi-dot-lab{font-family:'JetBrains Mono';font-size:7.5px;font-weight:800;fill:#fff;pointer-events:none}
.fi-axis-x{text-align:right;font-family:'JetBrains Mono';font-size:9.5px;color:var(--mute);font-weight:700;margin-top:2px}
.fi-axis-y{position:absolute;left:-8px;top:50%;transform:rotate(-90deg) translateX(50%);transform-origin:left center;font-family:'JetBrains Mono';font-size:9.5px;color:var(--mute);font-weight:700;white-space:nowrap}

/* Top faculty leaders — podium */
.fi-podium{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px}
.fi-pod{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;padding:14px 6px 10px;border:1px solid var(--line);border-radius:12px;background:var(--fog)}
.fi-pod.r1{background:linear-gradient(180deg,var(--honey-glow),var(--card));border-color:var(--honey-soft)}
.fi-pod.r2{background:linear-gradient(180deg,var(--mist),var(--card))}
.fi-pod.r3{background:linear-gradient(180deg,var(--mist),var(--card))}
.fi-pod-rank{position:absolute;top:7px;left:8px;font-family:'JetBrains Mono';font-size:10px;font-weight:800;color:var(--mute)}
.fi-pod.r1 .fi-pod-rank{color:var(--honey-d)}
.fi-pod-av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;margin-bottom:3px}
.fi-pod-name{font-size:11.5px;font-weight:700;color:var(--ink);line-height:1.15}
.fi-pod-dept{font-size:9.5px;color:var(--mute)}
.fi-pod-trust{font-size:9.5px;color:var(--mute);margin-top:3px}
.fi-pod-trust i{font-family:'JetBrains Mono';font-style:normal;font-weight:800;font-size:13px;color:var(--ink)}
.fi-pod-impact{font-size:9.5px;color:var(--mute)}
.fi-pod-impact b{font-family:'JetBrains Mono';font-weight:800;color:var(--emerald-d)}
.fi-tbl{margin-top:14px}
.fi-tbl th,.fi-tbl td{padding:8px 8px;font-size:11.5px}
.fi-tbl .pill{padding:2px 8px}

/* Faculty health overview */
.fi-health{display:flex;align-items:center;gap:14px;margin-top:4px}
.fi-health .asg-donut-wrap.small{width:104px;height:104px;flex-shrink:0;margin:0}
.fi-health .tl-row{font-size:11px}
.fi-health .tl-name{font-weight:500}
.fi-sub-ch{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.fi-health+.fi-sub-ch h3,.p-fimpact .ch h3{font-size:13.5px}

/* Department contribution heatmap */
.fi-heat{table-layout:fixed}
.fi-heat th,.fi-heat td{padding:8px 3px;font-size:11px;text-align:center}
.fi-heat th{font-size:9px;letter-spacing:.02em}
.fi-heat th:first-child,.fi-heat td:first-child{text-align:left;padding-left:2px}
.fi-heat td b{font-weight:700;color:var(--ink)}
.fi-heat-cell{display:inline-block;min-width:34px;padding:3px 4px;border-radius:6px;font-family:'JetBrains Mono';font-size:10px;font-weight:700}
.fi-heat-cell.h1{background:var(--rose-glow);color:var(--rose-d)}
.fi-heat-cell.h2{background:var(--honey-glow);color:var(--honey-d)}
.fi-heat-cell.h3{background:var(--emerald-glow);color:var(--emerald-d)}

/* Outcome contribution rings */
.fi-rings{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:8px}
.fi-ring{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;position:relative;min-width:0}
.fi-ring-svg{width:100%;max-width:56px;height:auto;transform:rotate(-90deg)}
.fi-ring-track{fill:none;stroke:var(--mist);stroke-width:5}
.fi-ring-arc{fill:none;stroke-width:5;stroke-linecap:round;transition:.4s}
.fi-ring-arc.em{stroke:var(--emerald-d)}
.fi-ring-arc.hny{stroke:var(--honey-d)}
.fi-ring-arc.tl{stroke:var(--teal-d)}
.fi-ring-val{position:absolute;top:0;left:0;right:0;max-width:56px;aspect-ratio:1;margin-inline:auto;display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono';font-size:12px;font-weight:800;color:var(--ink);pointer-events:none}
.fi-ring-lab{width:100%;font-size:9.5px;color:var(--mute);font-weight:600;line-height:1.2;overflow-wrap:break-word;word-break:break-word;hyphens:auto}

/* Rising faculty */
.fi-rise-feat{margin-top:6px;padding:12px;border-radius:12px;background:linear-gradient(180deg,var(--emerald-glow),var(--card));border:1px solid var(--emerald-glow)}
.fi-rise-head{display:flex;align-items:center;gap:10px}
.fi-rise-head>div{flex:1;min-width:0}
.fi-rise-head b{display:block;font-size:13px;font-weight:700;color:var(--ink);line-height:1.2}
.fi-rise-head small{font-size:10.5px;color:var(--mute)}
.fi-rise-delta{font-family:'JetBrains Mono';font-size:15px;font-weight:800;color:var(--emerald-d)}
.fi-rise-delta.sm{font-size:12px}
.fi-rise-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.fi-rise-stats>div{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:8px;text-align:center}
.fi-rise-stats span{display:block;font-family:'JetBrains Mono';font-size:16px;font-weight:800;color:var(--emerald-d)}
.fi-rise-stats small{font-size:9.5px;color:var(--mute)}
.fi-rise-list{margin-top:12px}
.fi-rise-cap{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:700;margin-bottom:6px}
.fi-rise-row{display:flex;align-items:center;gap:10px;padding:8px 2px;border-bottom:1px solid var(--line)}
.fi-rise-row:last-child{border-bottom:none}
.pfac-av.sm{width:30px;height:30px;font-size:11px}

/* Influence funnel (horizontal bars) */
.fi-funnel{display:flex;flex-direction:column;gap:9px;margin-top:8px}
.fi-funnel-row{display:flex;flex-direction:column;gap:3px}
.fi-funnel-bar{height:30px;border-radius:7px;display:flex;align-items:center;justify-content:flex-start;padding:0 10px;min-width:48px;transition:width .4s}
.fi-funnel-bar.em{background:linear-gradient(90deg,var(--emerald-d),#86EFAC)}
.fi-funnel-bar.tl{background:linear-gradient(90deg,var(--teal-d),var(--teal-soft))}
.fi-funnel-bar.hny{background:linear-gradient(90deg,var(--honey-d),var(--honey-soft))}
.fi-funnel-bar.rs{background:linear-gradient(90deg,var(--rose-d),#FDA4AF)}
.fi-funnel-val{font-family:'JetBrains Mono';font-size:12px;font-weight:800;color:#fff}
.fi-funnel-lab{font-size:10.5px;color:var(--mute);font-weight:600}

/* Risk & alerts */
.fi-alerts-card{margin-top:16px}
.fi-alerts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:4px}
@media(max-width:980px){.fi-alerts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.fi-alerts{grid-template-columns:1fr}}
.fi-alert{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:12px;border:1px solid var(--rose-glow);background:var(--rose-glow)}
.fi-alert.ok{border-color:var(--emerald-glow);background:var(--emerald-glow)}
.fi-alert-ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-size:14px;font-weight:800;background:#fff;color:var(--rose-d)}
.fi-alert.ok .fi-alert-ic{color:var(--emerald-d)}
.fi-alert p{margin:0;font-size:12px;line-height:1.45;color:var(--ink-2);flex:1}
.fi-alert .lnk{align-self:flex-start;color:var(--rose-d)}
.fi-alert.ok .lnk{color:var(--emerald-d)}

/* Dark-mode touch-ups (token-driven elsewhere) */
[data-theme="dark"] .fi-pod,[data-theme="dark"] .fi-rise-stats>div{background:var(--card)}
[data-theme="dark"] .fi-alert-ic{background:#1E2836}
[data-theme="dark"] .fi-funnel-val{color:#fff}

/* ═══ PRINCIPAL · DEPARTMENT INSIGHTS (p-depts) ═══ */
.di-kpis{grid-template-columns:repeat(6,1fr);margin-bottom:18px}
.di-kpis .p-kpi .pk-ic.rs{background:var(--rose-glow);color:var(--rose-d)}
.di-kpis .p-kpi .pk-v.di-v-sm{font-size:15.5px;line-height:1.2;letter-spacing:-0.01em}
.di-rowA,.di-rowB{margin-bottom:18px}

/* Vertical placement-rate bars */
.di-bars{display:flex;align-items:flex-end;gap:7px;height:212px;padding:18px 4px 0}
.di-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;gap:7px;min-width:0}
.di-bar-slot{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center}
.di-bar{position:relative;width:74%;max-width:30px;min-height:4px;border-radius:6px 6px 0 0;background:var(--honey);transition:height .45s cubic-bezier(.16,1,.3,1)}
.di-bar.em{background:var(--emerald)}
.di-bar.hny{background:var(--honey)}
.di-bar.rs{background:var(--rose)}
.di-bar-val{position:absolute;top:-15px;left:50%;transform:translateX(-50%);font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;color:var(--ink-2);white-space:nowrap}
.di-bar-lab{font-size:10px;font-weight:600;color:var(--mute);white-space:nowrap}

/* Health matrix scatter */
.di-matrix{padding:6px 2px 0}
.di-scatter{width:100%;height:auto;overflow:visible}
.di-grid{stroke:var(--line);stroke-width:1;stroke-dasharray:3,4}
.di-axis{stroke:var(--line);stroke-width:1.5}
.di-dot{opacity:.82;transition:opacity .2s}
.di-dot:hover{opacity:1}
.di-dot.em{fill:var(--emerald)}
.di-dot.hny{fill:var(--honey)}
.di-dot.rs{fill:var(--rose)}
.di-dot-lab{font-family:'Inter';font-size:6.5px;font-weight:800;fill:#fff;pointer-events:none}
.di-q{font-family:'JetBrains Mono';font-size:6.5px;font-weight:700;fill:var(--mute);text-transform:uppercase;letter-spacing:.04em}
.di-axis-x{text-align:center;font-size:10px;font-weight:600;color:var(--mute);margin-top:2px}

/* Comparison table extras */
.di-tbl .di-rate{display:flex;align-items:center;gap:8px}
.di-tbl .di-rate-track{width:64px;height:6px;border-radius:4px;background:var(--mist);overflow:hidden;flex-shrink:0}
.di-tbl .di-rate-fill{height:100%;border-radius:4px}
.di-tbl .di-rate-fill.em{background:var(--emerald)}
.di-tbl .di-rate-fill.hny{background:var(--honey)}
.di-tbl .di-rate-fill.rs{background:var(--rose)}
.di-tbl .di-rate b{font-family:'JetBrains Mono';font-size:11.5px;font-weight:700;color:var(--ink-2)}
.di-tbl .di-strength{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--mist);font-size:11px;font-weight:600;color:var(--ink-3)}
.di-tbl .di-delta{font-family:'JetBrains Mono';font-size:10px;font-weight:700;margin-left:5px}
.di-tbl .di-delta.up{color:var(--emerald-d)}
.di-tbl .di-delta.down{color:var(--rose-d)}
.di-tbl-foot{text-align:center;font-size:11px;color:var(--mute);padding:14px 0 2px}

/* Right rail — improvers + attention */
.di-rail{display:flex;flex-direction:column;gap:18px}
.di-imp-list,.di-att-list{display:flex;flex-direction:column;gap:11px;margin-top:4px}
.di-imp-row{display:flex;align-items:center;gap:11px}
.di-imp-av{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;font-size:10.5px;font-weight:800;flex-shrink:0}
.di-imp-name{flex:1;font-size:12.5px;font-weight:600;color:var(--ink-2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.di-imp-delta{font-family:'JetBrains Mono';font-size:11px;font-weight:700;color:var(--emerald-d);flex-shrink:0}
.di-att-row{display:flex;align-items:center;gap:10px;padding:10px 11px;border:1px solid var(--rose-glow);background:var(--rose-glow);border-radius:11px}
.di-att-ic{color:var(--rose-d);font-size:14px;flex-shrink:0}
.di-att-meta{flex:1;display:flex;flex-direction:column;min-width:0}
.di-att-meta b{font-size:12.5px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.di-att-meta span{font-size:11px;color:var(--body)}
.di-insights{margin-top:18px}
@media(max-width:1180px){
  .di-kpis{grid-template-columns:repeat(3,1fr)}
  .di-rowA>.span-5,.di-rowA>.span-3,.di-rowA>.span-4,.di-rowB>.span-8,.di-rowB>.span-4{grid-column:span 12}
}

/* ═══════════════════════════════════════════════════════════════════
   RECRUITER NETWORK (TPO · Recruiter Relationships & Health)
   ═══════════════════════════════════════════════════════════════════ */

/* Ecosystem Health band */
.rn-eco{display:flex;align-items:stretch;gap:24px;background:linear-gradient(120deg,var(--honey-cream) 0%,var(--card) 62%);border:1px solid var(--honey-glow);border-radius:16px;padding:22px 24px;margin-bottom:18px;flex-wrap:wrap}
.rn-eco-score{display:flex;gap:16px;align-items:flex-start;min-width:230px}
.rn-eco-ic{width:46px;height:46px;border-radius:12px;background:var(--honey);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rn-eco-ic svg{width:24px;height:24px}
.rn-eco-lbl{font-family:'JetBrains Mono';font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--honey-d);font-weight:700}
.rn-eco-cap{font-size:12px;color:var(--mute);margin-top:6px}
.rn-eco-v{display:flex;align-items:baseline;gap:7px;margin-top:3px}
.rn-eco-v b{font-family:'Inter';font-size:38px;font-weight:800;color:var(--ink);line-height:1;letter-spacing:-.02em}
.rn-eco-v span{font-size:15px;color:var(--mute);font-weight:600}
.rn-eco-delta{font-family:'JetBrains Mono';font-size:11px;color:var(--emerald-d);font-weight:600;margin-top:9px}
.rn-eco-stats{display:flex;flex:1;gap:10px;flex-wrap:wrap;border-left:1px solid var(--honey-glow);padding-left:24px;align-items:center;min-width:300px}
.rn-eco-stat{flex:1;min-width:118px}
.rn-es-v{font-family:'Inter';font-size:26px;font-weight:800;color:var(--ink);line-height:1}
.rn-es-l{font-size:12px;color:var(--body);margin-top:5px;font-weight:500}
.rn-es-f{font-family:'JetBrains Mono';font-size:10.5px;color:var(--mute);margin-top:5px}
.rn-es-f.up{color:var(--emerald-d)}
.rn-eco-sectors{display:flex;flex-direction:column;gap:10px;justify-content:center;min-width:150px}
.rn-sector{border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;gap:3px}
.rn-sector .rn-sec-l{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.rn-sector .rn-sec-v{font-family:'Inter';font-size:15px;font-weight:800}
.rn-sector.em{background:var(--emerald-glow)}
.rn-sector.em .rn-sec-l,.rn-sector.em .rn-sec-v{color:var(--emerald-d)}
.rn-sector.rs{background:var(--rose-glow)}
.rn-sector.rs .rn-sec-l,.rn-sector.rs .rn-sec-v{color:var(--rose-d)}

/* Strategic partner rail */
.rn-partner-rail{display:flex;gap:14px;overflow-x:auto;padding:4px 2px 8px;scroll-snap-type:x mandatory}
.rn-partner-rail::-webkit-scrollbar{height:6px}
.rn-partner-rail::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
.rn-pcard{flex:0 0 212px;scroll-snap-align:start;border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--card);transition:.15s}
.rn-pcard:hover{border-color:var(--honey-soft);box-shadow:0 8px 22px rgba(245,158,11,.10);transform:translateY(-2px)}
.rn-pc-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rn-pc-top .co-logo{width:40px;height:40px;border-radius:10px;font-size:13px;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
.rn-pc-badge{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:4px 8px;border-radius:999px;white-space:nowrap}
.rn-pc-badge.strategic{background:var(--honey-glow);color:var(--honey-d)}
.rn-pc-badge.preferred{background:var(--plum-glow);color:var(--plum)}
.rn-pc-badge.associate{background:var(--teal-glow);color:var(--teal-d)}
.rn-pc-name{font-family:'Inter';font-size:14px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.rn-pc-stats{display:flex;gap:8px;padding:11px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rn-pc-stats div{flex:1;display:flex;flex-direction:column;gap:3px}
.rn-pc-stats b{font-size:14px;font-weight:800;color:var(--ink);line-height:1}
.rn-pc-stats small{font-size:9px;color:var(--mute)}
.rn-pc-foot{display:flex;flex-direction:column;gap:6px}
.rn-pc-rating{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700}
.rn-pc-rating i{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.rn-pc-rating.em{color:var(--emerald-d)}.rn-pc-rating.em i{background:var(--emerald)}
.rn-pc-rating.tl{color:var(--teal-d)}.rn-pc-rating.tl i{background:var(--teal)}
.rn-pc-rating.rs{color:var(--rose-d)}.rn-pc-rating.rs i{background:var(--rose)}
.rn-pc-last{font-size:10.5px;color:var(--mute)}
.rn-pc-last b{color:var(--body);font-weight:600}
.rn-pc-btn{margin-top:2px;border:1px solid var(--line);background:var(--card);border-radius:9px;padding:8px;font-family:'Inter';font-size:11.5px;font-weight:600;color:var(--ink);cursor:pointer;transition:.15s}
.rn-pc-btn:hover{background:var(--ink);color:var(--on-accent);border-color:var(--ink)}

/* Recruiters requiring attention */
.rn-attn-list{display:flex;flex-direction:column;gap:10px}
.rn-attn{border:1px solid var(--line);border-left-width:3px;border-radius:10px;padding:12px 14px;background:var(--card)}
.rn-attn.rs{border-left-color:var(--rose);background:linear-gradient(90deg,var(--rose-glow),transparent 65%)}
.rn-attn.hny{border-left-color:var(--honey);background:linear-gradient(90deg,var(--honey-glow),transparent 65%)}
.rn-attn-hd{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rn-attn-name{font-family:'Inter';font-size:13.5px;font-weight:700;color:var(--ink)}
.rn-attn-tag{font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;white-space:nowrap}
.rn-attn-tag.rs{background:var(--rose);color:#fff}
.rn-attn-tag.hny{background:var(--honey);color:#fff}
.rn-attn-reasons{list-style:none;margin:9px 0 0;padding:0;display:flex;flex-direction:column;gap:5px}
.rn-attn-reasons li{font-size:11.5px;color:var(--body);padding-left:14px;position:relative;line-height:1.35}
.rn-attn-reasons li:before{content:'•';position:absolute;left:2px;color:var(--mute)}
.rn-attn-rec{margin-top:10px;padding-top:9px;border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:2px}
.rn-attn-rec span{font-family:'JetBrains Mono';font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);font-weight:700}
.rn-attn-rec b{font-size:12px;color:var(--ink);font-weight:600}

/* Industry portfolio + insight icon tints (shared) */
.rn-ind-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.rn-ind{border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px;align-items:flex-start;transition:.15s}
.rn-ind:hover{border-color:var(--honey-soft);transform:translateY(-2px)}
.rn-ind-ic,.rn-ins-ic{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center}
.rn-ind-ic svg,.rn-ins-ic svg{width:20px;height:20px}
.rn-ind-name{font-family:'Inter';font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.2}
.rn-ind-stats{display:flex;flex-direction:column;gap:3px}
.rn-ind-stats span{font-size:11px;color:var(--mute)}
.rn-ind-stats b{color:var(--ink);font-weight:700}
.rn-ind-ic.tl,.rn-ins-ic.tl{background:var(--teal-glow);color:var(--teal-d)}
.rn-ind-ic.vio,.rn-ins-ic.vio{background:var(--plum-glow);color:var(--plum)}
.rn-ind-ic.hny,.rn-ins-ic.hny{background:var(--honey-glow);color:var(--honey-d)}
.rn-ind-ic.em,.rn-ins-ic.em{background:var(--emerald-glow);color:var(--emerald-d)}
.rn-ind-ic.rs,.rn-ins-ic.rs{background:var(--rose-glow);color:var(--rose-d)}
.rn-ind-ic.pl,.rn-ins-ic.pl{background:#EEF2F7;color:var(--ink-3)}

/* Partnership timeline */
.rn-timeline{display:flex;flex-direction:column}
.rn-tl-row{display:grid;grid-template-columns:40px 16px 1fr;gap:10px}
.rn-tl-year{font-family:'JetBrains Mono';font-size:11px;font-weight:700;color:var(--mute);padding-top:2px}
.rn-tl-rail{position:relative;display:flex;justify-content:center}
.rn-tl-rail:before{content:'';position:absolute;top:4px;bottom:-2px;left:50%;transform:translateX(-50%);width:2px;background:var(--line)}
.rn-tl-row:last-child .rn-tl-rail:before{display:none}
.rn-tl-dot{width:11px;height:11px;border-radius:50%;margin-top:3px;position:relative;z-index:1;background:currentColor;box-shadow:0 0 0 3px var(--card)}
.rn-tl-dot.tl{color:var(--teal)}.rn-tl-dot.vio{color:var(--plum)}.rn-tl-dot.hny{color:var(--honey)}.rn-tl-dot.em{color:var(--emerald)}.rn-tl-dot.rs{color:var(--rose)}.rn-tl-dot.pl{color:var(--ink-3)}
.rn-tl-meta{padding-bottom:16px}
.rn-tl-row:last-child .rn-tl-meta{padding-bottom:0}
.rn-tl-meta b{display:block;font-family:'Inter';font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.2}
.rn-tl-meta small{display:block;font-size:11px;color:var(--mute);margin-top:2px}

/* Industry insights */
.rn-ins-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.rn-ins{border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px}
.rn-ins-ic{width:34px;height:34px;border-radius:9px}
.rn-ins-ic svg{width:18px;height:18px}
.rn-ins-l{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);font-weight:700;line-height:1.3}
.rn-ins-v{font-family:'Inter';font-size:16px;font-weight:800;color:var(--ink)}

/* Recommended actions */
.rn-act-list{display:flex;flex-direction:column;gap:10px}
.rn-act{display:flex;align-items:center;gap:12px;text-align:left;width:100%;border:1px solid var(--line);border-radius:11px;padding:13px 14px;background:var(--card);cursor:pointer;transition:.15s;font-family:inherit}
.rn-act:hover{border-color:var(--honey-soft);background:var(--honey-cream)}
.rn-act-body{flex:1;display:flex;flex-direction:column;gap:4px}
.rn-act-title{font-family:'Inter';font-size:13px;font-weight:700;color:var(--ink)}
.rn-act-text{font-size:11.5px;color:var(--body);line-height:1.4}
.rn-act-impact{margin-top:3px;font-family:'JetBrains Mono';font-size:10.5px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.rn-act-impact span{color:var(--mute)}
.rn-act-impact b{color:var(--emerald-d);font-weight:700}
.rn-act-arrow{flex-shrink:0;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--honey-glow);color:var(--honey-d);font-size:14px;font-weight:700;transition:.15s}
.rn-act:hover .rn-act-arrow{background:var(--honey);color:#fff;transform:translateX(2px)}

/* Footer banner */
.rn-banner{margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:linear-gradient(120deg,var(--honey-cream),var(--card));border:1px solid var(--honey-glow);border-radius:14px;padding:16px 22px}
.rn-banner-msg{font-size:13px;color:var(--body)}
.rn-banner-msg b{color:var(--ink);font-weight:700}
.rn-banner-upd{font-family:'JetBrains Mono';font-size:10.5px;color:var(--mute);white-space:nowrap}

@media(max-width:1100px){
  .rn-ind-grid{grid-template-columns:repeat(3,1fr)}
  .rn-ins-grid{grid-template-columns:repeat(2,1fr)}
  .rn-eco-stats{border-left:none;padding-left:0;border-top:1px solid var(--honey-glow);padding-top:16px}
}

/* ════════════════════════════════════════════════════════════
   STUDENT SUCCESS READINESS (p-success)
   ════════════════════════════════════════════════════════════ */
.sr-title-star{color:var(--honey-d);font-size:20px;vertical-align:middle;margin-left:2px}
.head-actions .btn.sr-dl{background:var(--honey-d);border-color:var(--honey-d);color:#fff}
.head-actions .btn.sr-dl:hover{background:var(--honey);border-color:var(--honey)}
.sr-eyebrow{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--honey-d);font-weight:700}

.sr-top{margin-bottom:18px}
@media(max-width:1000px){.sr-top .dash-card.span-5,.sr-top .dash-card.span-4,.sr-top .dash-card.span-3{grid-column:span 12}}

/* Institution readiness status */
.sr-status{background:linear-gradient(135deg,var(--honey-cream),var(--cream-2));border-color:var(--honey-glow);justify-content:space-between}
.sr-status-top{display:flex;gap:16px;align-items:flex-start}
.sr-rocket{width:50px;height:50px;flex-shrink:0;border-radius:14px;background:#fff;border:1px solid var(--honey-glow);display:grid;place-items:center;color:var(--honey-d)}
.sr-rocket svg{width:26px;height:26px}
.sr-status-big{font-size:14px;color:var(--ink-2);margin-top:6px;line-height:1.5}
.sr-status-big b{font-family:'Inter';font-weight:800;font-size:34px;color:var(--honey-d);letter-spacing:-0.02em;margin-right:4px}
.sr-status-foot{font-size:12px;color:var(--mute);margin-top:8px}
.sr-status-foot b.up{color:var(--emerald-d);font-weight:700}
.sr-mini-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.sr-mini{background:#fff;border:1px solid var(--line);border-radius:11px;padding:12px 14px;border-left:3px solid var(--mute)}
.sr-mini.em{border-left-color:var(--emerald-d)}
.sr-mini.rs{border-left-color:var(--rose)}
.sr-mini-head{font-size:10.5px;font-weight:700;color:var(--mute);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:6px}
.sr-mini-ic{font-size:13px}
.sr-mini-name{font-family:'Inter';font-weight:700;font-size:14px;color:var(--ink);margin-top:6px}
.sr-mini-val{font-size:12px;color:var(--ink-2);margin-top:3px}
.sr-mini-val b{font-weight:800}
.sr-mini.em .sr-mini-val b{color:var(--emerald-d)}
.sr-mini.rs .sr-mini-val b{color:var(--rose-d)}

/* Readiness health gauge */
.sr-healthcard{align-items:stretch}
.sr-health-body{display:flex;align-items:center;gap:18px;margin-top:6px}
.sr-gauge{position:relative;width:118px;height:118px;flex-shrink:0}
.sr-gauge .asg-donut{width:100%;height:100%}
.sr-gauge .asg-donut .ring-seg.hny{stroke:var(--honey-d);stroke-width:6}
.sr-gauge .asg-donut .ring-track{stroke-width:6}
.sr-gauge .asg-donut-center b{font-size:30px}
.sr-gauge .asg-donut-center>span{font-size:11px;text-transform:none;letter-spacing:0}
.sr-health-notes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;flex:1}
.sr-health-notes li{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--ink-2)}
.sr-health-notes .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--mute)}
.sr-health-notes .dot.em{background:var(--emerald-d)}
.sr-health-notes .dot.hny{background:var(--honey-d)}
.sr-health-notes .dot.rs{background:var(--rose)}
.sr-health-tag{align-self:flex-start;margin-top:auto;font-family:'JetBrains Mono';font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--honey-d);background:var(--honey-glow);padding:4px 10px;border-radius:999px}

/* Readiness journey */
.sr-jsub{font-size:11px;color:var(--mute);margin:-4px 0 4px;line-height:1.4}
.sr-journey{display:flex;flex-direction:column;gap:4px}
.sr-step{display:flex;align-items:center;gap:11px;background:var(--honey-cream);border:1px solid var(--honey-glow);border-radius:10px;padding:9px 12px;position:relative}
.sr-step.em{background:var(--emerald-glow);border-color:#A7F3D0}
.sr-step:not(:last-child)::after{content:'↓';position:absolute;left:24px;bottom:-12px;font-size:11px;color:var(--mute);z-index:1}
.sr-step-ic{width:30px;height:30px;flex-shrink:0;border-radius:8px;background:#fff;display:grid;place-items:center;color:var(--honey-d)}
.sr-step.em .sr-step-ic{color:var(--emerald-d)}
.sr-step-ic svg{width:17px;height:17px}
.sr-step-body{flex:1;min-width:0}
.sr-step-val{font-family:'Inter';font-weight:800;font-size:18px;color:var(--ink);line-height:1.1}
.sr-step-lbl{font-size:10.5px;color:var(--mute);margin-top:1px}
.sr-step-pct{font-family:'JetBrains Mono';font-weight:700;font-size:12px;color:var(--honey-d)}
.sr-step.em .sr-step-pct{color:var(--emerald-d)}

/* Two-column body */
.sr-body{display:grid;grid-template-columns:1fr 320px;gap:18px;margin-bottom:18px;align-items:start}
@media(max-width:1000px){.sr-body{grid-template-columns:1fr}}
.sr-left{display:flex;flex-direction:column;gap:22px;min-width:0}
.sr-block-head{margin-bottom:12px}
.sr-block-head h3{font-family:'Inter';font-weight:800;font-size:15px;color:var(--ink);margin:0;letter-spacing:-0.01em}
.sr-block-head span{display:block;font-size:11.5px;color:var(--mute);margin-top:2px}

/* Departments requiring attention */
.sr-att-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:640px){.sr-att-grid{grid-template-columns:1fr}}
.sr-att{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--rose);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:8px}
.sr-att-top{display:flex;align-items:center;justify-content:space-between}
.sr-att-dept{font-family:'Inter';font-weight:700;font-size:14.5px;color:var(--ink)}
.sr-att-arrow{color:var(--rose-d);font-weight:800;font-size:15px}
.sr-att-score{font-size:12px;color:var(--mute)}
.sr-att-score b{font-family:'Inter';font-weight:800;font-size:26px;color:var(--rose-d);display:block;letter-spacing:-0.02em;line-height:1.1;margin-top:2px}
.sr-att-meta{display:flex;align-items:center;justify-content:space-between;font-size:12px}
.sr-att-k{color:var(--mute)}
.sr-att-gap{font-weight:700;color:var(--honey-d);background:var(--honey-glow);padding:2px 8px;border-radius:6px;font-size:11px}
.sr-att-aff{font-weight:800;color:var(--ink)}
.sr-att-btn{margin-top:4px;padding:9px 12px;border:none;border-radius:8px;background:var(--rose-glow);color:var(--rose-d);font-family:'Inter';font-weight:700;font-size:12px;cursor:pointer;transition:.15s}
.sr-att-btn:hover{background:var(--rose-d);color:#fff}

/* Student quality segments */
.sr-seg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:900px){.sr-seg-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.sr-seg-grid{grid-template-columns:1fr}}
.sr-seg{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:15px 16px;display:flex;flex-direction:column;gap:5px}
.sr-seg.em{background:var(--emerald-glow);border-color:#A7F3D0}
.sr-seg.hny{background:var(--honey-cream);border-color:var(--honey-glow)}
.sr-seg.rs{background:var(--rose-glow);border-color:#FECDD3}
.sr-seg-head{display:flex;align-items:center;gap:7px}
.sr-seg-check{width:18px;height:18px;flex-shrink:0;color:var(--emerald-d)}
.sr-seg-check.hny{color:var(--honey-d)}.sr-seg-check.rs{color:var(--rose-d)}
.sr-seg-check svg{width:18px;height:18px}
.sr-seg-name{font-family:'Inter';font-weight:700;font-size:13px;color:var(--ink)}
.sr-seg-count{margin-top:2px}
.sr-seg-count b{font-family:'Inter';font-weight:800;font-size:28px;color:var(--ink);letter-spacing:-0.02em}
.sr-seg-count span{font-size:12px;color:var(--mute);margin-left:3px}
.sr-seg-range{font-size:11px;color:var(--mute)}
.sr-seg-exp{font-size:11.5px;color:var(--ink-2);margin-top:3px}
.sr-seg-exp b{font-weight:800;color:var(--ink)}

/* Future outlook & risk forecast */
.sr-forecast{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:640px){.sr-forecast{grid-template-columns:1fr}}
.sr-fc{border-radius:12px;padding:16px 18px;border:1px solid var(--line)}
.sr-fc.em{background:var(--emerald-glow);border-color:#A7F3D0}
.sr-fc.rs{background:var(--rose-glow);border-color:#FECDD3}
.sr-fc-lbl{font-family:'Inter';font-weight:700;font-size:13px;color:var(--ink)}
.sr-fc-lbl span{font-weight:500;color:var(--mute);font-size:11px}
.sr-fc-row{display:flex;align-items:center;gap:12px;margin-top:12px}
.sr-fc-stat{display:flex;flex-direction:column}
.sr-fc-stat span{font-size:10.5px;color:var(--mute);text-transform:uppercase;letter-spacing:.05em}
.sr-fc-stat b{font-family:'Inter';font-weight:800;font-size:26px;color:var(--ink);letter-spacing:-0.02em;line-height:1.1}
.sr-fc-stat.up b{color:var(--emerald-d)}
.sr-fc-arrow{color:var(--mute);font-size:16px}
.sr-fc-trend{margin-left:auto;color:var(--emerald-d);font-size:22px}
.sr-fc-drops{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.sr-fc-drop{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--ink-2);font-weight:600}
.sr-fc-drop b{color:var(--rose-d);font-weight:800}
.sr-fc-note{font-size:11px;color:var(--mute);margin-top:12px}

/* Readiness drivers rail */
.sr-drivers{align-self:start}
.sr-driver-list{display:flex;flex-direction:column;gap:14px;margin-top:4px}
.sr-driver{display:grid;grid-template-columns:24px 1fr 38px;grid-template-rows:auto auto;align-items:center;gap:2px 9px}
.sr-driver-ic{grid-row:1/3;width:24px;height:24px;color:var(--emerald-d)}
.sr-driver-ic svg{width:18px;height:18px}
.sr-driver-ic.weak{color:var(--honey-d)}.sr-driver-ic.severe{color:var(--rose-d)}
.sr-driver-name{font-size:12.5px;font-weight:600;color:var(--ink-2)}
.sr-driver-pct{grid-row:1;grid-column:3;font-family:'JetBrains Mono';font-weight:700;font-size:12px;color:var(--ink);text-align:right}
.sr-driver-track{grid-column:2/4;grid-row:2;height:8px;background:var(--mist);border-radius:5px;overflow:hidden}
.sr-driver-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,#86EFAC,var(--emerald-d))}
.sr-driver-fill.good{background:linear-gradient(90deg,#86EFAC,var(--emerald))}
.sr-driver-fill.weak{background:linear-gradient(90deg,#FCD34D,var(--honey-d))}
.sr-driver-fill.severe{background:linear-gradient(90deg,#FECDD3,var(--rose))}
.sr-driver-all{display:block;text-align:right;margin-top:14px;font-size:12px;font-weight:700;color:var(--honey-d);cursor:pointer;text-decoration:none}
.sr-driver-all:hover{text-decoration:underline}

/* Recommended actions */
.sr-actions{display:grid;grid-template-columns:1fr 1fr 0.8fr;gap:16px}
@media(max-width:900px){.sr-actions{grid-template-columns:1fr}}
.sr-action{position:relative;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;display:flex;flex-direction:column;gap:8px}
.sr-action.em{border-left:3px solid var(--emerald-d)}
.sr-action.hny{border-left:3px solid var(--honey-d)}
.sr-action-tag{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--mute);display:flex;align-items:center;gap:6px}
.sr-action.em .sr-action-tag{color:var(--emerald-d)}
.sr-action.hny .sr-action-tag{color:var(--honey-d)}
.sr-action-title{font-size:13px;color:var(--ink-2);line-height:1.45}
.sr-action-title b{font-family:'Inter';font-weight:700;color:var(--ink)}
.sr-action-foot{font-size:11.5px;color:var(--mute);display:flex;flex-direction:column;gap:1px;margin-top:auto}
.sr-action-k{text-transform:uppercase;letter-spacing:.04em;font-size:9.5px;font-weight:700}
.sr-action-foot b{font-family:'Inter';font-weight:800;font-size:14px;color:var(--ink)}
.sr-action-go{position:absolute;right:16px;bottom:14px;color:var(--mute);font-size:16px}
.sr-init{background:var(--honey-cream);border-color:var(--honey-glow)}
.sr-init-big{display:flex;align-items:baseline;gap:7px}
.sr-init-big b{font-family:'Inter';font-weight:800;font-size:34px;color:var(--honey-d);letter-spacing:-0.02em;line-height:1}
.sr-init-big span{font-size:12px;font-weight:600;color:var(--ink-2)}
.sr-init-link{font-size:12px;font-weight:700;color:var(--honey-d);cursor:pointer;text-decoration:none;margin-top:4px}
.sr-init-link:hover{text-decoration:underline}

/* ═══ PRINCIPAL · ACCREDITATION READINESS (p-accred) ═══════════════ */
.accr-kpi-row{grid-template-columns:repeat(5,1fr);margin-bottom:18px}
@media (max-width:1100px){.accr-kpi-row{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.accr-kpi-row{grid-template-columns:repeat(2,1fr)}}
.accr-score{background:var(--emerald-glow);border-color:#A7F3D0}
.accr-chip{display:inline-flex;align-self:flex-start;align-items:center;font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;margin-top:2px;background:var(--honey-glow);color:var(--honey-d)}
.accr-chip.em{background:var(--emerald-glow);color:var(--emerald-d)}
.accr-chip.rs{background:var(--rose-glow);color:var(--rose-d)}
.accr-foot{font-size:10.5px;color:var(--mute);line-height:1.35;margin-top:1px}
.accr-foot-strong{color:var(--ink);font-weight:600;font-size:11.5px}
.accr-mini{margin-top:2px}
.accr-mini .track{position:relative;height:6px;background:var(--mist);border-radius:6px;overflow:hidden}
.accr-mini .fill{height:100%;border-radius:6px;background:linear-gradient(90deg,var(--honey-soft),var(--honey-d))}
.accr-mini .fill.strong,.accr-gap-track .fill.strong{background:linear-gradient(90deg,#86EFAC,var(--emerald-d))}
.accr-mini .fill.good,.accr-gap-track .fill.good{background:linear-gradient(90deg,#86EFAC,var(--emerald))}
.accr-mini .fill.weak,.accr-gap-track .fill.weak{background:linear-gradient(90deg,#FCD34D,var(--honey-d))}
.accr-mini .fill.severe,.accr-gap-track .fill.severe{background:linear-gradient(90deg,#FECDD3,var(--rose))}

/* framework card */
.accr-fwhd{display:flex;align-items:flex-start;gap:9px}
.accr-dot{width:9px;height:9px;border-radius:50%;margin-top:5px;flex-shrink:0;background:var(--honey-d)}
.accr-dot.em{background:var(--emerald-d)}
.accr-dot.hny{background:var(--honey-d)}
.accr-dot.tl{background:var(--teal-d)}
.accr-fwbody{display:flex;align-items:center;gap:16px;padding:4px 2px 6px;border-bottom:1px dashed var(--line)}
.accr-donut{margin:0;width:96px;height:96px;flex-shrink:0}
.accr-fwmeta{flex:1;display:flex;flex-direction:column;gap:7px}
.accr-metarow{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;color:var(--mute)}
.accr-metarow b{font-family:'JetBrains Mono';font-size:12px;font-weight:700;color:var(--ink)}
.accr-fwfoot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:10px;border-top:1px solid var(--line)}
.lnk.muted{color:var(--mute)}

/* priority gap areas */
.accr-gaps{display:flex;flex-direction:column;gap:13px;margin-top:2px}
.accr-gap{display:flex;flex-direction:column;gap:5px}
.accr-gap-top{display:flex;align-items:center;gap:8px}
.accr-gap-name{font-size:13px;font-weight:600;color:var(--ink)}
.accr-fwtag{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.06em;padding:2px 6px;border-radius:5px;background:var(--honey-glow);color:var(--honey-d)}
.accr-fwtag.em{background:var(--emerald-glow);color:var(--emerald-d)}
.accr-fwtag.tl{background:var(--teal-glow);color:var(--teal-d)}
.accr-gap-pct{margin-left:auto;font-family:'JetBrains Mono';font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--honey-glow);color:var(--honey-d)}
.accr-gap-pct.rs{background:var(--rose-glow);color:var(--rose-d)}
.accr-gap-pct.hny{background:var(--honey-glow);color:var(--honey-d)}
.accr-gap-note{font-size:11.5px;color:var(--mute);line-height:1.4}
.accr-gap-track{position:relative;height:7px;background:var(--mist);border-radius:7px;overflow:hidden;margin-top:1px}
.accr-gap-track .fill{height:100%;border-radius:7px;background:linear-gradient(90deg,var(--honey-soft),var(--honey-d))}

/* timeline */
.accr-tl{display:flex;flex-direction:column;margin-top:2px}
.accr-tlrow{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:12px;padding:10px 0;border-bottom:1px dashed var(--line);position:relative}
.accr-tlrow:last-child{border-bottom:none}
.accr-tldate{font-family:'JetBrains Mono';font-size:11px;font-weight:700;color:var(--ink-2);letter-spacing:.02em;text-align:center;line-height:1.2}
.accr-tlbody{min-width:0}
.accr-tlname{font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.3}
.accr-tlmeta{font-size:10.5px;color:var(--mute);margin-top:2px;line-height:1.35}
.accr-tlstat{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--mist);color:var(--mute);white-space:nowrap}
.accr-tlrow.done .accr-tlstat{background:var(--emerald-glow);color:var(--emerald-d)}
.accr-tlrow.due .accr-tlstat{background:var(--rose-glow);color:var(--rose-d)}
.accr-tlrow.next .accr-tlstat{background:var(--honey-glow);color:var(--honey-d)}
.accr-tlrow.done .accr-tldate{color:var(--mute)}

/* stay-on-track nudge */
.accr-nudge{background:var(--ink);border-color:var(--ink);justify-content:flex-start;gap:10px}
.accr-nudge-ic{font-size:26px;line-height:1}
.accr-nudge h3{font-family:'Inter';font-weight:700;font-size:15px;color:var(--on-accent);margin:0}
.accr-nudge p{font-size:12px;color:#FFFFFFCC;line-height:1.55;margin:0}
.accr-nudge p b{color:var(--honey-soft);font-weight:700}
.accr-nudge .btn.primary{align-self:flex-start;margin-top:4px}
