/* ============================================================
   STUDENT WEBAPP — Athulya's dashboard
   ============================================================
   Sprint: BTX-MOCKUPS-V3-WEBAPP-001 (BMW3-T10)
   Architecture: real product feel — no mockup chrome (no doc-head
   with persona tabs, no PRE-APPROVAL pill, no narrator copy).
   Imagine: student logs in → lands here. Topbar shows their identity,
   sidebar is real product nav, main panel shows their actual data.
   Mobile-first: sidebar collapses below 900px per Stage 5 Q4.
   ============================================================ */
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;
  --sky:#0EA5E9; --sky-d:#0369A1; --sky-glow:#E0F2FE;
  --ink:#0B1220; --ink-2:#1E293B; --ink-3:#334155;
  --body:#475569; --mute:#64748B; --line:#E2E8F0;
  --cream:#FBF7EE; --cream-2:#F5EFE2; --mist:#F1F5F9; --fog:#F8FAFC;
}

/* ── TOPBAR ─────────────────────────────────────────── */
.app-topbar{position:sticky;top:0;z-index:50;background:var(--surface);border-bottom:1px solid var(--line);height:62px;display:flex;align-items:center;padding:0 24px;gap:16px;box-shadow:0 1px 2px rgba(11,18,32,.03)}
.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(--ink);letter-spacing:-0.015em}
.app-topbar .brand-sub{font-family:'JetBrains Mono';font-size:10px;color:var(--mute);letter-spacing:.16em;text-transform:uppercase;margin-left:8px;padding-left:8px;border-left:1px solid var(--line)}
.app-topbar .spacer{flex:1}
.app-topbar .tb-search{flex:0 1 320px;display:flex;align-items:center;gap:8px;padding:7px 12px;background:var(--mist);border:1px solid transparent;border-radius:8px;cursor:text;transition:.15s;font-size:12.5px;color:var(--mute)}
.app-topbar .tb-search:hover,.app-topbar .tb-search:focus-within{background:var(--surface);border-color:var(--line)}
.app-topbar .tb-search input{flex:1;border:0;outline:0;background:transparent;font-family:'Inter';font-size:12.5px;color:var(--ink)}
.app-topbar .tb-search kbd{font-family:'JetBrains Mono';font-size:10px;background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:1px 5px;color:var(--mute)}
.app-topbar .tb-search-wrap{position:relative;flex:0 1 320px;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,.16);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:var(--text-primary)}
.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:var(--ink-2);transition:.15s}
.app-topbar .tb-icon:hover{background:var(--honey-glow);color:var(--honey-d)}
.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}
.app-topbar .tb-xp{display:flex;align-items:center;gap:7px;padding:6px 13px;border-radius:999px;background:linear-gradient(135deg,rgba(167,139,250,.16),rgba(16,185,129,.10));border:1px solid rgba(167,139,250,.4);cursor:default;transition:.15s;white-space:nowrap}
.app-topbar .tb-xp:hover{box-shadow:0 4px 14px -6px rgba(167,139,250,.6);border-color:rgba(167,139,250,.65)}
.app-topbar .tb-xp .xp-ico{font-size:14px;filter:drop-shadow(0 0 5px rgba(167,139,250,.7))}
.app-topbar .tb-xp .xp-val{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:13px;color:#7C3AED;letter-spacing:.01em}
.app-topbar .tb-xp .xp-val .sep{color:var(--mute);font-weight:500;margin:0 1px}
.app-topbar .tb-xp .xp-lbl{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;color:#10B981;letter-spacing:.14em;text-transform:uppercase}
@media (max-width:600px){.app-topbar .tb-xp .xp-lbl{display:none}.app-topbar .tb-xp{padding:6px 10px}}
.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:var(--mist)}
.app-topbar .tb-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--honey),var(--honey-d));color:var(--on-accent);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(--ink);font-weight:600;font-size:12.5px}
.app-topbar .tb-user-info span{color:var(--mute);font-size:10.5px}
@media (min-width:900px){.app-topbar .tb-user-info{display:block}}
@media (max-width:600px){.app-topbar{padding:0 14px;gap:8px}.app-topbar .tb-search-wrap{display:none}.app-topbar .brand-sub{display:none}}

/* ── APP VIEW WRAPPER (overrides .app-main default padding) ─── */
.app-main{padding:0;background:var(--fog)}
.app-view{padding:28px 32px 64px;max-width:1280px;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}
.app-view-head h1{font-family:'Inter';font-weight:800;font-size:30px;letter-spacing:-0.02em;color:var(--ink);margin:0 0 6px;line-height:1.15}
.app-view-head h1 .em{color:var(--honey-d);font-style:italic;font-weight:500}
.app-view-head .sub{font-size:14px;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:6px}
.app-view-head .crumbs b{color:var(--ink-2)}
@media (max-width:600px){.app-view{padding:18px 16px 48px}.app-view-head h1{font-size:22px}}

/* ── PERSONALIZED PRODUCTIVITY HERO ─────────────────── */
/* Warm honey card: golden gradient, dark-ink text, frosted glass
   pill + stat tiles, dark-ink progress ring. */
.dash-hero{
  --c1:#FFCB52; --c2:#F7A722; --c3:#E0860C;       /* honey gradient */
  --h-ink:#3A2408; --h-ink2:rgba(58,36,8,.74); --h-ink3:rgba(58,36,8,.58);
  --h-frost:rgba(255,255,255,.22); --h-frost-bd:rgba(255,255,255,.5);
  position:relative;overflow:hidden;margin-bottom:26px;
  padding:32px 34px;border-radius:26px;color:var(--h-ink);
  background:linear-gradient(135deg,var(--c1) 0%,var(--c2) 52%,var(--c3) 100%);
  box-shadow:0 34px 70px -34px rgba(200,130,15,.6), inset 0 1px 0 rgba(255,255,255,.35);
}
/* honeycomb texture */
.dash-hero::before{
  content:"";position:absolute;inset:0;opacity:.16;pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='56' height='64' viewBox='0 0 56 64'><polygon points='28,1 55,16 55,48 28,63 1,48 1,16' fill='none' stroke='%23FFFFFF' stroke-width='1.4'/></svg>");
  background-size:42px;
}
/* corner glow */
.dash-hero::after{
  content:"";position:absolute;right:-60px;top:-90px;width:340px;height:340px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,255,255,.45),transparent 62%);
}
.dash-hero>*{position:relative;z-index:1}

.dash-hero .hero-top{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}
.dash-hero .hero-main{flex:1 1 auto;min-width:0;max-width:660px}
.dash-hero .hero-kicker{
  display:inline-flex;align-items:center;gap:9px;
  font-family:'IBM Plex Mono','JetBrains Mono',monospace;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--h-ink);margin-bottom:0;
  padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.28);border:1px solid rgba(255,255,255,.5);
}
.dash-hero .hero-kicker .dot{width:8px;height:8px;border-radius:50%;background:#1E7D45;box-shadow:0 0 0 4px rgba(30,125,69,.22)}
.dash-hero h1{
  font-family:'Bricolage Grotesque','Inter',sans-serif;font-weight:800;letter-spacing:-1.4px;line-height:1;margin:18px 0 0;
  font-size:clamp(32px,4.6vw,50px);color:var(--h-ink);
  background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:initial;
}
.dash-hero h1 .wave{display:inline-block;transform-origin:70% 80%;animation:heroWave 2.6s cubic-bezier(.2,.7,.2,1) infinite}
@keyframes heroWave{0%,60%,100%{transform:rotate(0)}10%{transform:rotate(16deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}}
.dash-hero .hero-sub{font-size:15.5px;line-height:1.55;color:var(--h-ink2);max-width:600px;margin:14px 0 0}
.dash-hero .hero-sub b{color:var(--h-ink);font-weight:700}

/* progress ring (dark ink on translucent track) */
.dash-hero .hero-ringwrap{display:flex;flex-direction:column;align-items:center;flex:none}
.dash-hero .hero-ring{position:relative;width:128px;height:128px;flex:none;display:grid;place-items:center}
.dash-hero .hero-ring svg{transform:rotate(-90deg);width:128px;height:128px}
.dash-hero .hero-ring .ring-track{fill:none;stroke:rgba(58,36,8,.18);stroke-width:10}
.dash-hero .hero-ring .ring-fill{fill:none;stroke:var(--h-ink);stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset 1.1s cubic-bezier(.2,.7,.2,1)}
.dash-hero .hero-ring .ring-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.dash-hero .hero-ring .rc-pct{font-family:'Bricolage Grotesque','Inter',sans-serif;font-weight:800;font-size:30px;line-height:1;color:var(--h-ink)}
.dash-hero .hero-ring .rc-pct .pc{font-size:15px;font-weight:700;vertical-align:super}
.dash-hero .ring-cap{margin-top:10px;text-align:center}
.dash-hero .ring-cap .rc-lbl{font-family:'IBM Plex Mono','JetBrains Mono',monospace;font-size:10.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--h-ink2)}
.dash-hero .ring-cap .rc-sub{font-family:'IBM Plex Mono','JetBrains Mono',monospace;font-size:11px;color:var(--h-ink3);margin-top:3px}

/* frosted stat tiles */
.dash-hero .hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px}
.dash-hero .hstat{
  position:relative;overflow:hidden;
  padding:16px 17px;border-radius:16px;
  background:var(--h-frost);border:1px solid var(--h-frost-bd);
  backdrop-filter:blur(3px);transition:transform .18s ease,box-shadow .18s ease;
}
.dash-hero .hstat:hover{transform:translateY(-2px);box-shadow:0 12px 28px -14px rgba(160,100,10,.55)}
.dash-hero .hstat .hs-ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.34);margin-bottom:13px}
.dash-hero .hstat .hs-ico svg{width:18px;height:18px;color:var(--h-ink)}
.dash-hero .hstat .hs-val{font-family:'Bricolage Grotesque','Inter',sans-serif;font-weight:800;font-size:30px;letter-spacing:-.5px;color:var(--h-ink);line-height:1;display:flex;align-items:baseline;gap:3px}
.dash-hero .hstat .hs-val .u{font-family:'Hanken Grotesk','Inter',sans-serif;font-size:14px;font-weight:600;letter-spacing:0;color:var(--h-ink2)}
.dash-hero .hstat .hs-lbl{font-family:'IBM Plex Mono','JetBrains Mono',monospace;font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--h-ink2);margin-top:9px}

@media (max-width:760px){
  .dash-hero .hero-top{flex-direction:column}
  .dash-hero .hero-ringwrap{flex-direction:row;gap:16px;align-self:flex-start}
  .dash-hero .ring-cap{text-align:left;margin-top:0;display:flex;flex-direction:column;justify-content:center}
  .dash-hero .hero-stats{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.dash-hero h1 .wave{animation:none}}

/* Honey hero stays warm in both themes — it is a branded surface. */
[data-theme="dark"] .dash-hero{
  background:linear-gradient(135deg,var(--c1) 0%,var(--c2) 52%,var(--c3) 100%);
  border:none;
}

/* ── DASH GRID + CARDS ──────────────────────────────── */
.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:20px 22px;display:flex;flex-direction:column;gap:10px;transition:.15s}
.dash-card:hover{border-color:#CBD5E1}
.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-8{grid-column:span 8}
.dash-card.span-7{grid-column:span 7}
.dash-card.span-5{grid-column:span 5}
.dash-card.span-12{grid-column:span 12}
@media (max-width:1100px){.dash-card.span-7,.dash-card.span-5{grid-column:span 12}}
@media (max-width:900px){.dash-card.span-6,.dash-card.span-8,.dash-card.span-7,.dash-card.span-5,.dash-card.span-4,.dash-card.span-3{grid-column:span 12}}
.dash-card .ch{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.dash-card .ch h3{font-family:'Inter';font-weight:700;font-size:14px;color:var(--ink);margin:0;letter-spacing:-0.01em;line-height:1.25}
.dash-card .ch .lbl{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);font-weight:700;margin-bottom:2px;display:block}
.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}
.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)}
/* Today's-progress circular ring */
.today-summary{display:flex;align-items:center;gap:12px;flex-shrink:0}
.progress-ring{position:relative;width:48px;height:48px;flex-shrink:0}
.progress-ring svg{transform:rotate(-90deg);display:block}
.progress-ring .ring-track{fill:none;stroke:var(--line);stroke-width:4}
.progress-ring .ring-fill{fill:none;stroke:var(--honey-d);stroke-width:4;stroke-linecap:round;transition:stroke-dashoffset .6s cubic-bezier(.22,1,.36,1),stroke .3s ease}
.progress-ring .ring-pct{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:'JetBrains Mono';font-size:11px;font-weight:700;color:var(--ink);letter-spacing:-0.02em}
.dash-card .card-action{margin-top:auto;padding:8px 0 0;font-family:'Inter';font-size:12.5px;font-weight:600;color:var(--honey-d);background:transparent;border:none;cursor:pointer;text-align:left;display:inline-flex;align-items:center;gap:4px;transition:.12s}
.dash-card .card-action:hover{color:var(--ink);transform:translateX(2px)}

/* Score hero card (the dashboard's primary metric) */
.score-card{background:linear-gradient(135deg,var(--deep) 0%,var(--deep-2) 100%);color:var(--on-accent);border-color:var(--deep);position:relative;overflow:hidden}
.score-card::before{content:"";position:absolute;inset:0;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='%23B45309' 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:.05;pointer-events:none}
.score-card .ch h3,.score-card .ch .lbl{color:var(--on-accent)}
.score-card .ch .lbl{color:var(--honey-soft)}
.score-num{font-family:'Inter';font-weight:800;font-size:54px;line-height:1;letter-spacing:-0.035em;color:var(--on-accent);display:flex;align-items:baseline;gap:4px;margin:6px 0 4px}
.score-num .of{font-size:18px;font-weight:500;color:#FFFFFFA0;letter-spacing:0}
.score-delta{font-family:'JetBrains Mono';font-size:11.5px;font-weight:700;color:var(--emerald-glow);letter-spacing:.06em;margin-bottom:14px}
.trend-mini{display:flex;align-items:flex-end;gap:3px;height:36px;margin-bottom:14px}
.trend-mini .bar{flex:1;background:linear-gradient(180deg,var(--honey-soft),var(--honey));border-radius:3px 3px 0 0;opacity:.85;transition:.15s}
.trend-mini .bar.now{background:linear-gradient(180deg,var(--honey),var(--honey-d));opacity:1}
.score-card .card-action{color:var(--honey-soft)}
.score-card .card-action:hover{color:var(--on-accent)}
/* ── The Trust Hive — dashboard honeycomb card (reference "Trust Hive · card") ── */
.comb-card{position:relative;overflow:hidden;background:linear-gradient(180deg,#261c10,#1e160d);border:1px solid #3a2c19;padding:18px 22px 20px;border-radius:22px}
.comb-card::before{opacity:.05}
.comb-card>*{position:relative;z-index:1}
.comb-head{display:flex;align-items:flex-start;justify-content:space-between}
.comb-lab{display:flex;flex-direction:column;gap:5px}
.comb-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#8a795f}
.comb-eyebrow-r{color:#6b5e49}
.comb-title{font-family:'Bricolage Grotesque','Inter',sans-serif;font-weight:700;font-size:17px;letter-spacing:-.01em;color:#FBF1DE;margin:0;display:block}
.comb-title span{color:#FFB22C}
.comb-body{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;margin-top:14px}
/* runway — placement progress (742 now → ready 800 → 900) */
.runway{margin-top:16px;padding:15px 16px;border:1px solid #3a2c19;border-radius:16px;background:rgba(18,13,7,.5)}
.runway-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:11px}
.runway-label{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#8a795f}
.runway-note{font-family:'Hanken Grotesk','Inter',sans-serif;font-size:12.5px;color:#C7B294}
.runway-note b{color:#FFD27A;font-weight:700;font-family:'IBM Plex Mono',monospace}
.runway-track{position:relative;height:11px;border-radius:8px;background:#120d07;box-shadow:inset 0 0 0 1px #3a2c19;overflow:visible}
.runway-fill{height:100%;width:var(--w);border-radius:7px;background:linear-gradient(90deg,#E18A12,#FFB22C,#FFD27A);box-shadow:0 0 16px -2px rgba(255,178,44,.3);animation:runwayFill 1.3s cubic-bezier(.16,1,.3,1) .3s backwards}
.runway-mark{position:absolute;top:-5px;bottom:-5px;width:2px;border-radius:2px;background:#5BD08A;box-shadow:0 0 8px rgba(91,208,138,.7);transform:translateX(-50%)}
.runway-scale{display:flex;justify-content:space-between;margin-top:10px;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.04em;color:#8a795f}
.runway-scale .rs-ready{color:#5BD08A}
@keyframes runwayFill{from{width:0}to{width:var(--w)}}
@media (max-width:640px){.comb-body{grid-template-columns:1fr;justify-items:center;text-align:center}}
@media (prefers-reduced-motion:reduce){.runway-fill{animation:none}}

/* ── The Trust Hive — 13-pillar honeycomb (near-black, gold hexagons) ── */
.hive-card{background:radial-gradient(120% 130% at 18% 12%,#1c1a17 0%,#121110 45%,#0b0b0a 100%);border:1px solid #2a2723;border-radius:22px;padding:30px 34px 34px;color:#fff;overflow:hidden}
.hive-head{display:flex;align-items:center;justify-content:space-between}
.hive-eyebrow{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#6b675f}
.hive-eyebrow-r{color:#56524b}
.hive-title{font-family:'Inter';font-weight:800;font-size:21px;letter-spacing:-0.02em;color:#f6f4f0;margin:4px 0 0}
.hive-title span{color:#FBBF24}
.hive-body{display:flex;align-items:center;gap:56px;flex-wrap:wrap;margin-top:24px}
/* honeycomb (SVG): fat flat-top hexes, each filled with honey to its pillar score.
   Hexes + honey-fill rects are built in app.js buildHive(); fill scaleY animates 0→score%. */
.combwrap{position:relative;width:300px;max-width:42vw;flex-shrink:0}
.hive-svg{width:100%;height:auto;display:block;overflow:visible}
.hive-svg .hexcell{cursor:pointer;transition:transform .2s cubic-bezier(.2,.7,.2,1)}
.hive-svg .hexcell:hover{transform:translateY(-3px)}
.hive-svg .hexcell:hover .hex-out,.hive-svg .hexcell:focus-visible .hex-out{stroke:#FFB22C;stroke-width:2.4}
.hive-svg .hexcell:focus-visible{outline:none}
.hive-svg .hex-bg{fill:#120d07}
.hive-svg .hex-out{fill:none;stroke:#3a2c19;stroke-width:1.6;transition:.2s}
.hive-svg .hex-fill{transform-box:view-box;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.hive-svg .hex-ab{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:8.5px;letter-spacing:.08em;fill:#FBF1DE;opacity:.62;text-anchor:middle;pointer-events:none}
/* hover tooltip (reference design) */
.htip{position:fixed;z-index:60;pointer-events:none;background:#2d2113;border:1px solid #FFB22C;border-radius:11px;padding:10px 13px;opacity:0;transform:translateY(6px);transition:.14s cubic-bezier(.2,.7,.2,1);max-width:210px;box-shadow:0 16px 40px -18px rgba(0,0,0,.7)}
.htip.show{opacity:1;transform:translateY(0)}
.htip b{font-family:'Bricolage Grotesque','Inter',sans-serif;font-weight:700;font-size:13.5px;color:#FBF1DE}
.htip .hv{font-family:'IBM Plex Mono',monospace;font-size:11px;color:#FFD27A;margin:3px 0 6px}
.htip p{margin:0;font-size:11.5px;color:#C7B294;line-height:1.4}
@media (prefers-reduced-motion:reduce){.hive-svg .hex-fill{transition:none}}
.hive-readout{padding-left:6px;min-width:0}
.hive-score{font-family:'Bricolage Grotesque','Inter',sans-serif;font-weight:800;font-size:clamp(46px,7vw,76px);line-height:.82;letter-spacing:-3px;display:flex;align-items:baseline;gap:2px}
.hive-score .grad{background:linear-gradient(120deg,#FFD27A,#FFB22C);-webkit-background-clip:text;background-clip:text;color:transparent}
.hive-of{font-family:'IBM Plex Mono',monospace;font-size:14px;font-weight:600;color:#8a795f;letter-spacing:0;margin-left:2px}
.hive-delta{display:flex;align-items:center;gap:7px;margin-top:8px;font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:#C7B294}
.hive-delta .up{color:#5BD08A;display:inline-flex;align-items:center;gap:4px;font-weight:700}
.hive-caption{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#8a795f;margin-top:14px}
@media (max-width:640px){.hive-score{font-size:clamp(40px,12vw,56px)}}

/* Task list (Home + Tasks views) */
.task-list{list-style:none;padding:0;margin:6px 0;display:flex;flex-direction:column;gap:10px}
.task-list .task-item{position:relative;display:flex;align-items:flex-start;gap:13px;padding:15px 16px 15px 19px;background:var(--fog);border:1px solid var(--line);border-radius:12px;transition:.15s;overflow:hidden}
/* colored priority indicator — left accent bar */
.task-list .task-item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--line)}
.task-list .task-item.prio-high::before{background:var(--rose)}
.task-list .task-item.prio-med::before{background:var(--honey)}
.task-list .task-item.prio-low::before{background:var(--sky)}
.task-list .task-item.done::before{background:var(--emerald)}
.task-list .task-item:hover{background:var(--card);border-color:#CBD5E1;box-shadow:0 2px 10px rgba(11,18,32,.05)}
.task-list .task-cb{width:20px;height:20px;border:2px solid var(--line);border-radius:6px;flex-shrink:0;cursor:pointer;display:grid;place-items:center;background:var(--card);transition:.15s;margin-top:1px}
.task-list .task-cb:hover{border-color:var(--honey)}
.task-list .task-item.done .task-cb{background:var(--emerald);border-color:var(--emerald)}
.task-list .task-item.done .task-cb::after{content:"✓";color:var(--on-accent);font-size:12px;font-weight:800}
.task-list .task-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}
/* stronger title hierarchy */
.task-list .task-title-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.task-list .task-title{font-size:15px;font-weight:700;color:var(--ink);line-height:1.25;letter-spacing:-0.01em}
.task-list .task-item.done .task-title{color:var(--mute);text-decoration:line-through;font-weight:600}
/* priority chip */
.task-list .prio-tag{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;padding:2px 8px;border-radius:999px;letter-spacing:.07em;text-transform:uppercase;flex-shrink:0;display:inline-flex;align-items:center;gap:5px}
.task-list .prio-tag .dot{width:5px;height:5px;border-radius:50%}
.task-list .prio-tag.high{background:var(--rose-glow);color:var(--rose-d)} .task-list .prio-tag.high .dot{background:var(--rose)}
.task-list .prio-tag.med{background:var(--honey-glow);color:var(--honey-d)} .task-list .prio-tag.med .dot{background:var(--honey)}
.task-list .prio-tag.low{background:var(--sky-glow);color:var(--sky-d)} .task-list .prio-tag.low .dot{background:var(--sky)}
/* metadata row with icons, below title */
.task-list .task-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:var(--mute);line-height:1.35}
.task-list .task-meta .m{display:inline-flex;align-items:center;gap:5px}
.task-list .task-meta .m .mi{font-size:12px;line-height:1;opacity:.75;flex-shrink:0}
.task-list .task-meta b{color:var(--ink-2);font-weight:600}
.task-list .task-pill{font-family:'JetBrains Mono';font-size:9px;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;margin-top:2px}
.task-list .task-pill.xp{background:var(--emerald-glow);color:var(--emerald-d)}

/* ── Today's tasks card — sits beside the Trust Hive ── */
.tasks-card{position:relative;overflow:hidden}
.tasks-card::after{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--honey-soft),var(--honey-d),var(--rose));opacity:.9}
.tasks-card .ch{padding-top:2px}
/* tighter rhythm so the list reads clean in the narrower column */
.tasks-card .task-list{gap:9px;margin-top:8px}
.tasks-card .task-list .task-item{padding:13px 14px 13px 17px;gap:11px}
.tasks-card .task-list .task-title{font-size:14px}
.tasks-card .task-list .task-meta{font-size:11.5px}
@media (max-width:1100px){.tasks-card .task-list .task-title{font-size:15px}}

/* ── ✨ Tasks-to-focus-on — dashboard focal card (clean white, plum accents) ── */
.focus-card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:24px 26px 22px;gap:0;box-shadow:0 12px 36px -22px rgba(11,18,32,.22)}
.fc-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.fc-kicker{display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono';font-size:10.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--plum)}
.fc-kicker .dot{width:7px;height:7px;border-radius:50%;background:var(--plum);box-shadow:0 0 0 4px var(--plum-glow)}
.fc-due{display:inline-flex;align-items:center;gap:6px;font-family:'JetBrains Mono';font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--rose-d);background:var(--rose-glow);padding:5px 12px;border-radius:999px}
.fc-due .fc-due-dot{width:6px;height:6px;border-radius:50%;background:var(--rose)}
.fc-title{font-family:'Inter';font-weight:800;font-size:27px;letter-spacing:-0.025em;color:var(--ink);margin:0 0 4px;line-height:1.1}
.fc-spark{font-size:21px}
.fc-sub{font-size:13.5px;color:var(--mute);margin:0 0 18px;line-height:1.4}
.fc-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.fc-item{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:15px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--card);transition:.16s cubic-bezier(.2,.7,.2,1)}
.fc-item:hover{border-color:var(--plum-soft);box-shadow:0 8px 24px -14px rgba(107,33,168,.3);transform:translateY(-1px)}
.fc-item.done{opacity:.58}
.fc-cb{width:23px;height:23px;border:2px solid #CBD5E1;border-radius:7px;background:var(--card);cursor:pointer;display:grid;place-items:center;transition:.15s;flex-shrink:0;padding:0}
.fc-cb:hover{border-color:var(--plum)}
.fc-item.done .fc-cb{background:var(--emerald);border-color:var(--emerald)}
.fc-item.done .fc-cb::after{content:"✓";color:#fff;font-size:13px;font-weight:800;line-height:1}
.fc-ico{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;flex-shrink:0}
.fc-ico svg{width:22px;height:22px}
.fc-ico.ic-green{background:var(--emerald-glow);color:var(--emerald-d)}
.fc-ico.ic-amber{background:var(--honey-glow);color:var(--honey-d)}
.fc-ico.ic-sky{background:var(--sky-glow);color:var(--sky-d)}
.fc-body{min-width:0}
.fc-task-title{font-size:15px;font-weight:700;color:var(--ink);letter-spacing:-0.01em;line-height:1.3;margin-bottom:8px}
.fc-item.done .fc-task-title{text-decoration:line-through;color:var(--mute)}
.fc-track{font-size:12.5px;color:var(--mute);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.fc-tag{display:inline-flex;align-items:center;gap:6px;background:var(--mist);border:1px solid var(--line);color:var(--ink-2);font-weight:600;font-size:11.5px;padding:3px 11px;border-radius:999px}
.fc-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--plum-soft)}
.fc-meta{margin-top:8px;display:flex;align-items:center;gap:6px;font-family:'JetBrains Mono';font-size:10.5px;color:var(--mute);letter-spacing:.02em}
.fc-meta svg{width:13px;height:13px;opacity:.7;flex-shrink:0}
.fc-right{display:flex;flex-direction:column;align-items:flex-end;gap:9px;flex-shrink:0}
.fc-xp{font-family:'JetBrains Mono';font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--emerald-d);background:var(--emerald-glow);padding:5px 12px;border-radius:999px;white-space:nowrap}
.fc-xp.due{color:var(--rose-d);background:var(--rose-glow)}
.fc-star{width:32px;height:32px;border:none;background:transparent;color:#CBD5E1;cursor:pointer;display:grid;place-items:center;border-radius:9px;transition:.15s;padding:0}
.fc-star:hover{color:var(--honey);background:var(--honey-glow)}
.fc-star.on{color:var(--honey)}
.fc-star svg{width:18px;height:18px}
.fc-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:18px;flex-wrap:wrap}
.fc-all{font-family:'Inter';font-size:13px;font-weight:600;color:var(--plum);background:transparent;border:none;cursor:pointer;padding:0;transition:.12s}
.fc-all:hover{color:var(--plum-d);transform:translateX(2px)}
.fc-nudge{display:inline-flex;align-items:center;gap:9px;padding:7px 15px 7px 8px;border-radius:999px;background:linear-gradient(135deg,var(--plum-glow),var(--emerald-glow));border:1px solid var(--plum-soft);cursor:pointer;font-family:'Inter';text-align:left;transition:.12s}
.fc-nudge:hover{border-color:var(--plum);box-shadow:0 3px 10px rgba(124,58,237,.16)}
.fc-nudge-ava{width:27px;height:27px;border-radius:50%;background:var(--card);display:grid;place-items:center;font-size:14px;box-shadow:0 2px 7px rgba(11,18,32,.14)}
.fc-nudge-txt{font-size:12px;color:var(--ink-2)}
.fc-nudge-txt b{color:var(--plum-d);font-weight:700}
@media (max-width:640px){
  .focus-card{padding:20px 18px}
  .fc-title{font-size:22px}
  .fc-item{grid-template-columns:auto auto 1fr;gap:12px;row-gap:10px}
  .fc-right{grid-column:2 / -1;flex-direction:row;align-items:center;justify-content:flex-start;margin-top:2px}
}

/* Track row (Home + Tracks views) */
.track-row{display:flex;align-items:center;gap:14px;padding:12px;background:var(--fog);border:1px solid var(--line);border-radius:10px;transition:.15s;text-align:left;width:100%;cursor:pointer}
.track-row:hover{background:var(--card);border-color:var(--honey-soft);transform:translateY(-1px)}
.track-row .tr-mark{width:36px;height:36px;border-radius:8px;background:var(--honey-glow);color:var(--honey-d);display:grid;place-items:center;font-weight:800;font-size:13px;font-family:'JetBrains Mono';flex-shrink:0}
.track-row .tr-body{flex:1;min-width:0}
.track-row .tr-title{font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.3;margin-bottom:2px}
.track-row .tr-meta{font-size:11.5px;color:var(--mute);line-height:1.3}
.track-row .tr-progress{width:80px;flex-shrink:0}
.track-row .progress-bar{height:6px;background:var(--line);border-radius:3px;overflow:hidden}
.track-row .progress-bar .fill{height:100%;background:linear-gradient(90deg,var(--honey-soft),var(--honey-d));transition:.3s}
.track-row .progress-pct{font-family:'JetBrains Mono';font-size:10px;color:var(--mute);font-weight:700;text-align:right;margin-top:3px;letter-spacing:.04em}

/* AI Recommendation hero card (Tracks view) */
.ai-rec{position:relative;overflow:hidden;border:1px solid var(--teal-soft);border-radius:16px;padding:22px 24px;background:linear-gradient(135deg,var(--teal-glow) 0%,var(--honey-glow) 55%,#fff 100%);box-shadow:0 12px 34px -12px rgba(15,118,110,.32)}
.ai-rec::before{content:'';position:absolute;top:-40px;right:-40px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(245,158,11,.18),transparent 70%);pointer-events:none}
.ai-rec .ai-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px;position:relative}
.ai-rec .ai-badge{display:inline-flex;align-items:center;gap:6px;font-family:'JetBrains Mono';font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-d);background:var(--card);border:1px solid var(--teal-soft);border-radius:999px;padding:5px 12px}
.ai-rec .ai-score{font-family:'JetBrains Mono';font-size:11px;font-weight:700;color:var(--ink-2);letter-spacing:.03em}
.ai-rec .ai-title{font-family:'Inter';font-weight:800;font-size:21px;letter-spacing:-.02em;color:var(--ink);line-height:1.2;margin-bottom:8px;position:relative}
.ai-rec .ai-why{font-family:'Inter';font-size:13.5px;line-height:1.6;color:var(--ink-2);margin-bottom:13px;position:relative;max-width:760px}
.ai-rec .ai-why i{font-style:normal;font-weight:700;color:var(--teal-d)}
.ai-rec .ai-impact{font-family:'Inter';font-size:13px;line-height:1.5;color:var(--ink);background:var(--card);border:1px dashed var(--honey-soft);border-radius:11px;padding:12px 15px;margin-bottom:16px;position:relative}
.ai-rec .ai-impact b{color:var(--honey-d)}
.ai-rec .ai-foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;position:relative}
.ai-rec .ai-cta{display:inline-flex;align-items:center;gap:7px;background:var(--honey-d);color:var(--on-accent);font-family:'Inter';font-weight:700;font-size:13.5px;border:none;border-radius:10px;padding:11px 22px;cursor:pointer;box-shadow:0 8px 20px -6px rgba(245,158,11,.6);transition:.15s}
.ai-rec .ai-cta:hover{transform:translateY(-2px);box-shadow:0 12px 26px -6px rgba(245,158,11,.7)}
.ai-rec .ai-eta{display:inline-flex;align-items:center;gap:6px;font-family:'JetBrains Mono';font-size:11px;font-weight:700;color:var(--mute);letter-spacing:.03em}

/* Chat thread (Chatbot view + Home preview) */
.chat-preview{padding:10px 12px;background:var(--teal-glow);border-left:3px solid var(--teal);border-radius:0 8px 8px 0;font-size:12.5px;line-height:1.55;color:var(--ink-2);font-style:italic}
.chat-thread{display:flex;flex-direction:column;gap:12px;max-height:480px;overflow-y:auto;padding:8px;background:var(--fog);border-radius:10px}
.chat-msg{display:flex;gap:10px;max-width:80%}
.chat-msg.bot{align-self:flex-start}
.chat-msg.user{align-self:flex-end;flex-direction:row-reverse}
.chat-msg .ic{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:14px;flex-shrink:0;font-weight:700}
.chat-msg.bot .ic{background:var(--teal-glow);color:var(--teal-d)}
.chat-msg.user .ic{background:var(--honey);color:var(--ink)}
.chat-msg .bubble{padding:10px 14px;border-radius:14px;font-size:13px;line-height:1.5;color:var(--text-primary)}
/* AI bubble: card surface + primary text → flips with theme, stays AA in both
   and reads as a raised card against the darker --surface thread panel. */
.chat-msg.bot .bubble{background:var(--card);border:1px solid var(--border);border-top-left-radius:4px}
/* User bubble: stable amber (never flips) + near-black text → 7.9:1 both themes. */
.chat-msg.user .bubble{background:var(--honey);color:var(--deep);border-top-right-radius:4px}
.chat-msg .bubble b{font-weight:700;color:var(--accent)}
.chat-msg.user .bubble b{color:var(--deep)}
.chat-composer{display:flex;gap:8px;margin-top:14px}
.chat-composer input{flex:1;padding:11px 14px;background:var(--surface-2);color:var(--text-primary);border:1px solid var(--border);border-radius:10px;font-family:'Inter';font-size:13px;outline:0}
.chat-composer input::placeholder{color:var(--text-muted)}
.chat-composer input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(245,158,11,.18)}
.chat-composer button{padding:11px 20px;background:var(--deep);color:var(--on-accent);border:none;border-radius:10px;font-family:'Inter';font-weight:600;font-size:13px;cursor:pointer;transition:.15s}
.chat-composer button:hover{background:var(--accent);color:var(--deep)}

/* 13-pillar grid (Score view + Home mini) */
.pillar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pillar-cell{padding:10px 12px;background:var(--fog);border:1px solid var(--line);border-radius:8px;text-align:center;cursor:pointer;transition:.15s}
.pillar-cell:hover{background:var(--card);border-color:var(--honey-soft)}
.pillar-cell .p-name{font-size:10.5px;color:var(--mute);font-family:'JetBrains Mono';letter-spacing:.06em;text-transform:uppercase;font-weight:600;margin-bottom:4px;line-height:1.2}
.pillar-cell .p-score{font-family:'Inter';font-weight:800;font-size:18px;color:var(--ink);line-height:1}
.pillar-cell.strong .p-score{color:var(--emerald-d)}
.pillar-cell.weak .p-score{color:var(--rose-d)}
.pillar-cell.medium .p-score{color:var(--honey-d)}
.pillar-detail{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}
.pillar-detail .pd-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;cursor:pointer;transition:.15s}
.pillar-detail .pd-card:hover{border-color:var(--honey-d);transform:translateY(-1px)}
.pillar-detail .pd-card .ch{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.pillar-detail .pd-card h4{font-family:'Inter';font-size:13.5px;font-weight:700;color:var(--ink);margin:0;line-height:1.2}
.pillar-detail .pd-card .pd-score{font-family:'Inter';font-size:22px;font-weight:800;color:var(--honey-d);line-height:1}
.pillar-detail .pd-card.weak .pd-score{color:var(--rose-d)}
.pillar-detail .pd-card.strong .pd-score{color:var(--emerald-d)}
.pillar-detail .pd-card .pd-bar{height:6px;background:var(--line);border-radius:3px;overflow:hidden;margin-bottom:8px}
.pillar-detail .pd-card .pd-fill{height:100%;background:linear-gradient(90deg,var(--honey-soft),var(--honey-d))}
.pillar-detail .pd-card.weak .pd-fill{background:linear-gradient(90deg,#FECDD3,var(--rose))}
.pillar-detail .pd-card.strong .pd-fill{background:linear-gradient(90deg,#A7F3D0,var(--emerald-d))}
.pillar-detail .pd-card .pd-meta{font-size:11.5px;color:var(--mute);line-height:1.45}
@media (max-width:900px){.pillar-detail{grid-template-columns:1fr}.pillar-grid{grid-template-columns:repeat(3,1fr)}}

/* ── 13 Pillars · column / beaker visualization ───────────────── */
.pillar-sub{font-size:14px;color:var(--mute);margin:2px 0 6px}
/* ══ The Trust Hive — 13-pillar honeycomb (My Score breakdown · reference dark-honey, minimal) ══ */
.hive-card{position:relative;overflow:hidden;background:linear-gradient(165deg,#FFDE7A 0%,#F7C233 100%);border:1px solid #E0A91C;border-radius:22px;padding:24px 30px 26px;color:#2E2206;box-shadow:none}
.hive-card .hive-head{display:block;margin-bottom:6px}
.hive-card .hive-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#8A5A0A}
.hive-card .hive-title{font-family:'Bricolage Grotesque','Inter',sans-serif;font-weight:700;font-size:27px;letter-spacing:-.6px;margin:7px 0 6px;color:#2E2206;line-height:1.1}
.hive-card .hive-title span{color:#A8430A}
.hive-card .hive-sub{margin:0;color:#6E4E12;font-size:14.5px;line-height:1.5;max-width:560px}
.hive-combwrap{position:relative;width:100%;max-width:560px;margin:44px auto 26px}
.hive-comb{width:100%;height:auto;display:block;overflow:visible}
.hive-comb .phx{cursor:pointer;transition:transform .2s cubic-bezier(.2,.7,.2,1)}
.hive-comb .phx:hover{transform:translateY(-3px)}
.hive-comb .phx:hover .phx-out,.hive-comb .phx:focus-visible .phx-out{stroke:#FFB22C;stroke-width:2.6}
.hive-comb .phx:focus-visible{outline:none}
.hive-comb .phx-bg{fill:#120d07}
.hive-comb .phx-out{fill:none;stroke:#3a2c19;stroke-width:2;transition:.2s}
.hive-comb .phx-fill{transform-box:view-box;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.hive-comb .phx-ab{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:13px;letter-spacing:.08em;fill:#FBF1DE;opacity:.62;text-anchor:middle;pointer-events:none}
.hive-tip{position:fixed;z-index:90;pointer-events:none;background:#2d2113;border:1px solid #FFB22C;border-radius:13px;padding:11px 14px;opacity:0;transform:translateY(8px);transition:.15s cubic-bezier(.2,.7,.2,1);max-width:230px;box-shadow:0 20px 50px -20px rgba(0,0,0,.6)}
.hive-tip.show{opacity:1;transform:translateY(0)}
.hive-tip .hive-tip-nm{font-family:'Bricolage Grotesque','Inter',sans-serif;font-weight:700;font-size:15px;color:#FBF1DE}
.hive-tip .hive-tip-sc{font-family:'IBM Plex Mono',monospace;font-size:12px;margin:4px 0 7px;font-weight:600;color:#FFD27A}
.hive-tip p{margin:0;font-size:12px;color:#C7B294;line-height:1.45}
/* My Score summary card (reference dark readout) */
.ms-summary .ms-readout{display:flex;align-items:baseline;gap:28px;flex-wrap:wrap;margin-top:14px}
.ms-summary .ms-meta{display:flex;flex-direction:column;gap:6px}
.ms-summary .hive-caption{text-transform:none;letter-spacing:.04em}
@media (prefers-reduced-motion:reduce){.hive-comb .phx-fill{transition:none}}
.pillar-cols{display:grid;grid-template-columns:repeat(9,1fr);gap:12px;margin-top:20px}
.pcol{position:relative;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px 10px 14px;cursor:pointer;text-align:center;display:flex;flex-direction:column;align-items:center;transition:transform .15s,box-shadow .15s,border-color .15s}
.pcol:hover{transform:translateY(-4px);border-color:var(--pc);box-shadow:0 16px 32px -16px color-mix(in srgb,var(--pc) 65%,transparent)}
.pcol-ic{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:11px;background:color-mix(in srgb,var(--pc) 14%,#fff);color:var(--pcd);margin-bottom:10px}
.pcol-ic svg{width:21px;height:21px}
.pcol-name{font-family:'Inter';font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.2;min-height:30px;display:flex;align-items:center;justify-content:center}
.pcol-score{font-family:'Inter';font-size:32px;font-weight:800;color:var(--pcd);line-height:1;margin:4px 0 14px}
/* ── classical Doric column graphic ── */
.pcol-graphic{position:relative;display:flex;flex-direction:column;align-items:center;margin-bottom:12px}
/* CAPITAL — abacus slab + flared echinus cushion */
.pcol-capital{position:relative;z-index:4;display:flex;flex-direction:column;align-items:center;filter:drop-shadow(0 2px 2px rgba(15,23,42,.10))}
.pcol-abacus{width:76px;height:9px;background:linear-gradient(180deg,#FFFFFF,#E4EAF1);border-radius:3px 3px 1px 1px}
.pcol-echinus{width:70px;height:13px;margin-top:-1px;background:linear-gradient(180deg,#F5F8FB,#D7DFE9);clip-path:polygon(0 0,100% 0,86% 100%,14% 100%);box-shadow:inset 0 -3px 3px -2px rgba(15,23,42,.12)}
/* SHAFT — smooth fluted cylinder */
.pcol-shaft{position:relative;width:58px;height:200px;background:linear-gradient(90deg,#DBE2EC,#F3F7FB 45%,#E1E8F0);overflow:hidden;z-index:2;box-shadow:inset 0 0 0 1px rgba(15,23,42,.05)}
.pcol-fill{position:absolute;left:0;right:0;bottom:0;z-index:1;background:linear-gradient(90deg,var(--pcd),var(--pc) 26%,color-mix(in srgb,var(--pc) 70%,#fff) 50%,var(--pc) 74%,var(--pcd));box-shadow:inset 0 2px 0 rgba(255,255,255,.55),inset 0 -36px 26px -26px rgba(0,0,0,.20);transition:height .9s cubic-bezier(.16,1,.3,1)}
/* fluting + cylinder sheen overlaid across the whole shaft (filled & empty) */
.pcol-shaft::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:repeating-linear-gradient(90deg,rgba(15,23,42,.11) 0 1px,rgba(255,255,255,.5) 1px 2px,transparent 2px 6px),linear-gradient(90deg,rgba(0,0,0,.14),rgba(255,255,255,0) 22%,rgba(255,255,255,.22) 47%,rgba(255,255,255,0) 72%,rgba(0,0,0,.16))}
/* BASE — torus ring + plinth block */
.pcol-pedestal{position:relative;z-index:4;display:flex;flex-direction:column;align-items:center;filter:drop-shadow(0 4px 4px rgba(15,23,42,.13))}
.pcol-torus{width:66px;height:10px;background:linear-gradient(180deg,#F1F5F9,#D2DBE5);clip-path:polygon(14% 0,86% 0,100% 100%,0 100%);box-shadow:inset 0 2px 2px -1px rgba(255,255,255,.6)}
.pcol-plinth{width:78px;height:13px;margin-top:-1px;background:linear-gradient(180deg,#E8EDF3,#C7D1DD);border-radius:1px 1px 3px 3px}
/* y-axis labels — only rendered on the first column */
.pcol-axis{position:absolute;left:-8px;top:24px;bottom:25px;display:flex;flex-direction:column;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--mute);transform:translateX(-100%);padding-right:6px;text-align:right}
/* footer */
.pcol-pct{font-family:'Inter';font-size:21px;font-weight:800;color:var(--pcd);line-height:1;margin-top:14px}
.pcol-band{margin-top:7px;font-family:'Inter';font-size:11px;font-weight:700;color:var(--pcd);background:color-mix(in srgb,var(--pc) 14%,#fff);padding:4px 11px;border-radius:999px;letter-spacing:.01em}
.pcol-meta{list-style:none;margin:13px 0 0;padding:11px 8px 2px;width:100%;border-top:1px solid var(--line);text-align:left}
.pcol-meta li{position:relative;font-size:10.5px;color:var(--mute);line-height:1.55;padding-left:12px}
.pcol-meta li::before{content:"";position:absolute;left:2px;top:7px;width:5px;height:5px;border-radius:50%;background:var(--pc)}
/* compact mini variant — dashboard "at a glance" card */
.pillar-cols.mini{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.pillar-cols.mini .pcol{padding:12px 6px 10px;border-radius:12px}
.pillar-cols.mini .pcol:hover{transform:translateY(-2px)}
.pillar-cols.mini .pcol-ic{width:28px;height:28px;border-radius:8px;margin-bottom:6px}
.pillar-cols.mini .pcol-ic svg{width:15px;height:15px}
.pillar-cols.mini .pcol-name{font-size:10.5px;min-height:24px}
.pillar-cols.mini .pcol-graphic{margin:4px 0 6px}
.pillar-cols.mini .pcol-abacus{width:42px;height:6px}
.pillar-cols.mini .pcol-echinus{width:38px;height:8px}
.pillar-cols.mini .pcol-shaft{width:34px;height:82px}
.pillar-cols.mini .pcol-torus{width:38px;height:6px}
.pillar-cols.mini .pcol-plinth{width:44px;height:8px}
.pillar-cols.mini .pcol-pct{font-size:15px;margin-top:11px}
/* landscape — single row of all 13 pillars across a full-width card */
/* narrow tiles, but the column itself stays full section size */
.pillar-cols.mini.landscape{display:flex;flex-wrap:nowrap;gap:10px;justify-content:space-between;margin-top:14px}
.pillar-cols.mini.landscape .pcol{flex:1 1 0;min-width:0;padding:12px 6px 10px;border-radius:12px}
.pillar-cols.mini.landscape .pcol-ic{width:30px;height:30px;border-radius:9px;margin-bottom:6px}
.pillar-cols.mini.landscape .pcol-ic svg{width:16px;height:16px}
.pillar-cols.mini.landscape .pcol-name{font-size:10.5px;min-height:22px}
.pillar-cols.mini.landscape .pcol-graphic{margin:2px 0 6px}
.pillar-cols.mini.landscape .pcol-shaft{width:34px;height:88px}
.pillar-cols.mini.landscape .pcol-abacus{width:46px;height:7px}
.pillar-cols.mini.landscape .pcol-echinus{width:42px;height:9px}
.pillar-cols.mini.landscape .pcol-torus{width:40px;height:7px}
.pillar-cols.mini.landscape .pcol-plinth{width:48px;height:9px}
.pillar-cols.mini.landscape .pcol-pct{font-size:16px;margin-top:8px}
@media (max-width:560px){.pillar-cols.mini.landscape{flex-wrap:wrap;justify-content:center}.pillar-cols.mini.landscape .pcol{flex:0 0 84px}}
@media (max-width:1200px){.pillar-cols:not(.landscape){grid-template-columns:repeat(3,1fr)}.pcol-axis{display:none}}
@media (max-width:560px){.pillar-cols{grid-template-columns:repeat(2,1fr)}}
[data-theme="dark"] .pcol,[data-theme="dark"] .pcol-ic{background:var(--surface)}
[data-theme="dark"] .pcol-shaft{background:linear-gradient(90deg,#241B0B,#3A2C0C 40%,#241B0B)}

/* Quiz cards */
.quiz-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px 24px;display:flex;align-items:center;gap:18px}
.quiz-card .qc-icon{width:48px;height:48px;border-radius:10px;background:var(--honey-glow);color:var(--honey-d);display:grid;place-items:center;font-size:22px;font-weight:800;flex-shrink:0}
.quiz-card.pending .qc-icon{background:var(--rose-glow);color:var(--rose-d)}
/* Real brand-logo / inline-SVG icon tile for subject cards */
.quiz-card .qc-icon.qc-logo{background:var(--card);border:1px solid var(--line);padding:9px}
.quiz-card .qc-icon.qc-logo img,.quiz-card .qc-icon.qc-logo .qc-svg{width:100%;height:100%;object-fit:contain;display:block}
.quiz-card .qc-icon.qc-logo .qc-svg{display:grid;place-items:center}
.quiz-card .qc-icon.qc-logo .qc-svg svg{width:100%;height:100%}
.quiz-card .qc-body{flex:1;min-width:0}
.quiz-card .qc-title{font-size:14.5px;font-weight:700;color:var(--ink);margin-bottom:4px}
.quiz-card .qc-meta{font-size:12px;color:var(--mute);line-height:1.4}
.quiz-card .qc-action{padding:9px 18px;background:var(--honey-d);color:var(--on-accent);border:none;border-radius:8px;font-family:'Inter';font-weight:600;font-size:13px;cursor:pointer;transition:.15s;flex-shrink:0}
.quiz-card .qc-action:hover{background:var(--deep)}
.quiz-card.done .qc-action{background:var(--mist);color:var(--mute);cursor:default}

/* ════════ Premium "My Scores" skill analytics page ════════ */
.pa-view{max-width:1280px}
.pa-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.pa-crumbs{font-family:'JetBrains Mono';font-size:12px;color:var(--mute);letter-spacing:.02em}
.pa-crumbs i{margin:0 7px;color:#CBD5E1;font-style:normal}
.pa-crumbs b{color:var(--ink)}
.pa-topright{display:flex;align-items:center;gap:10px}
.pa-assessed{font-size:12px;color:var(--mute)}
.pa-assessed b{color:var(--ink-2);font-weight:600}
.pa-ghostbtn{padding:8px 14px;border:1px solid var(--line);background:var(--card);border-radius:9px;font-family:'Inter';font-weight:600;font-size:12.5px;color:var(--ink-2);cursor:pointer;transition:.15s}
.pa-ghostbtn:hover{background:var(--mist)}
.pa-dlbtn{padding:8px 16px;border:1px solid #C7D2FE;background:#EEF2FF;border-radius:9px;font-family:'Inter';font-weight:700;font-size:12.5px;color:#4338CA;cursor:pointer;transition:.15s}
.pa-dlbtn:hover{background:#E0E7FF;transform:translateY(-1px)}

/* hero row */
.pa-hero-row{display:grid;grid-template-columns:minmax(380px,470px) 1fr;gap:18px;margin-bottom:18px}
@media(max-width:1080px){.pa-hero-row{grid-template-columns:1fr}}

/* glassmorphism hero */
.pa-hero{position:relative;overflow:hidden;border-radius:20px;padding:26px;color:var(--on-accent);background:linear-gradient(155deg,#1E1B4B 0%,#11122A 55%,#0B0B17 100%);border:1px solid rgba(255,255,255,.08);box-shadow:0 26px 64px -22px rgba(30,27,75,.7)}
.pa-hero-orb{position:absolute;border-radius:50%;filter:blur(44px);pointer-events:none}
.pa-hero-orb.a{width:230px;height:230px;background:radial-gradient(circle,#6366F1,transparent 70%);opacity:.5;top:-80px;right:-60px}
.pa-hero-orb.b{width:190px;height:190px;background:radial-gradient(circle,#8B5CF6,transparent 70%);opacity:.32;bottom:-90px;left:-50px}
.pa-hero-head{position:relative;display:flex;align-items:center;gap:14px;margin-bottom:22px}
.pa-hero-ic{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;font-size:26px;background:rgba(99,102,241,.2);border:1px solid rgba(129,140,248,.35);backdrop-filter:blur(6px)}
.pa-hero-name{font-size:21px;font-weight:800;letter-spacing:-.02em}
.pa-hero-sub{font-size:12.5px;color:#A5B4FC;margin-top:2px}
.pa-hero-body{position:relative;display:flex;align-items:center;gap:22px;margin-bottom:22px}
.pa-ring{position:relative;width:160px;height:160px;flex-shrink:0}
.pa-ring svg{transform:rotate(-90deg)}
.pa-ring .bg{fill:none;stroke:rgba(255,255,255,.09);stroke-width:11}
.pa-ring .fg{fill:none;stroke:#818CF8;stroke-width:11;stroke-linecap:round;stroke-dasharray:376.99;stroke-dashoffset:376.99;filter:drop-shadow(0 0 6px rgba(129,140,248,.55));animation:paRing 1.3s cubic-bezier(.22,1,.36,1) forwards .15s}
.pa-ring-ctr{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.pa-ring-ctr .v{font-size:50px;font-weight:800;letter-spacing:-.03em;line-height:1}
.pa-ring-ctr .o{font-family:'JetBrains Mono';font-size:12px;color:#94A3B8;margin-top:3px}
.pa-hero-meta{flex:1;min-width:0}
.pa-band{display:inline-block;font-family:'JetBrains Mono';font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 12px;border-radius:999px;margin-bottom:13px}
.pa-band.strong{background:linear-gradient(135deg,#34D399,#059669);color:#04130D}
.pa-band.medium{background:linear-gradient(135deg,#FBBF24,#D97706);color:#231300}
.pa-band.weak{background:linear-gradient(135deg,#FB7185,#E11D48);color:var(--on-accent)}
.pa-hero-pct{font-size:15px;color:#E2E8F0;line-height:1.45}
.pa-hero-pct b{color:var(--on-accent);font-weight:700}
.pa-hero-impr{margin-top:14px}
.pa-hero-impr .up{font-size:16px;font-weight:800;color:#34D399}
.pa-hero-impr .lbl{font-size:12px;color:#94A3B8;margin-top:2px}
.pa-hero-actions{position:relative;display:flex;gap:10px}
.pa-btn{flex:1;padding:12px;border-radius:11px;font-family:'Inter';font-weight:700;font-size:13px;cursor:pointer;transition:.16s;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}
.pa-btn.primary{background:linear-gradient(135deg,#6366F1,#4F46E5);color:var(--on-accent);border:none;box-shadow:0 8px 20px -6px rgba(79,70,229,.7)}
.pa-btn.primary:hover{filter:brightness(1.08);transform:translateY(-1px)}
.pa-btn.ghost{background:rgba(255,255,255,.05);color:#E2E8F0;border:1px solid rgba(255,255,255,.16)}
.pa-btn.ghost:hover{background:rgba(255,255,255,.1)}

/* generic premium card */
.pa-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px 22px;box-shadow:0 1px 2px rgba(11,18,32,.04);transition:.18s;display:flex;flex-direction:column}
.pa-card:hover{box-shadow:0 12px 32px -14px rgba(11,18,32,.16)}
.pa-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}
.pa-card-title{display:flex;gap:12px;align-items:flex-start}
.pa-card-title .ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:16px;flex-shrink:0}
.pa-card-title .ic.indigo{background:#EEF2FF;color:#4F46E5}
.pa-card-title .ic.violet{background:#F5F3FF;color:#7C3AED}
.pa-card-title .ic.emerald{background:#ECFDF5;color:#059669}
.pa-card-title b{font-size:15px;font-weight:700;color:var(--ink);letter-spacing:-.01em;display:block}
.pa-card-title small,.pa-card-subtxt{font-size:12px;color:var(--mute);margin-top:3px;display:block;line-height:1.4}
.pa-card-title small em{font-style:normal;color:#059669;font-weight:700}
.pa-chip{font-family:'Inter';font-size:12px;font-weight:600;color:var(--ink-2);padding:7px 12px;border:1px solid var(--line);border-radius:9px;cursor:pointer;white-space:nowrap}
.pa-chip span{color:var(--mute);margin-left:3px}
.pa-link{margin-top:16px;align-self:flex-start;background:none;border:none;padding:0;font-family:'Inter';font-weight:600;font-size:12.5px;color:#4F46E5;cursor:pointer;transition:.14s}
.pa-link:hover{color:#312E81;transform:translateX(2px)}

/* trend chart */
.pa-trend .pa-chart{flex:1;width:100%;display:flex;align-items:center}
.pa-svg{width:100%;height:auto;display:block;overflow:visible}
.pa-grid{stroke:#EEF1F6;stroke-width:1}
.pa-ylab{fill:#94A3B8;font-family:'JetBrains Mono';font-size:11px;text-anchor:end}
.pa-xlab{fill:#94A3B8;font-family:'Inter';font-size:11px;text-anchor:middle}
.pa-val{fill:#B45309;font-family:'Inter';font-size:13px;font-weight:800;text-anchor:middle}
.pa-vline{stroke:#FCD34D;stroke-width:1;stroke-dasharray:2 3;opacity:0;transition:.15s}
.pa-area{opacity:0;animation:paFade 1s ease forwards .55s}
.pa-line{stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:paDraw 1.4s ease forwards .2s}
.pa-dot{fill:#fff;stroke-width:3;opacity:0;animation:paFade .4s ease forwards 1.1s;transition:r .15s}
.pa-hit{fill:transparent;cursor:pointer}
.pa-tip{opacity:0;transition:.15s;pointer-events:none}
.pa-tip rect{fill:#1E1B4B}
.pa-tip text{fill:#fff;font-family:'Inter';font-size:11px;font-weight:700;text-anchor:middle}
.pa-pt:hover .pa-dot{r:7}
.pa-pt:hover .pa-tip{opacity:1}
.pa-pt:hover .pa-vline{opacity:1}
@keyframes paDraw{to{stroke-dashoffset:0}}
@keyframes paFade{to{opacity:1}}
@keyframes paRing{to{stroke-dashoffset:var(--ring-off)}}
@keyframes paBar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes paGrow{to{height:var(--h)}}

/* row grids */
.pa-grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:18px;margin-bottom:18px}

/* skill breakdown */
.pa-bd-list{display:flex;flex-direction:column;gap:13px}
.pa-bd-row{display:grid;grid-template-columns:108px 1fr auto auto;align-items:center;gap:10px}
.pa-bd-name{font-size:12px;font-weight:600;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pa-bd-track{height:8px;background:#EEF1F6;border-radius:999px;overflow:hidden}
.pa-bd-fill{height:100%;border-radius:999px;width:var(--w);transform-origin:left;animation:paBar 1s cubic-bezier(.22,1,.36,1) .2s backwards}
.pa-bd-fill.strong{background:linear-gradient(90deg,#34D399,#059669)}
.pa-bd-fill.good{background:linear-gradient(90deg,#60A5FA,#2563EB)}
.pa-bd-fill.avg{background:linear-gradient(90deg,#FBBF24,#F59E0B)}
.pa-bd-fill.weak{background:linear-gradient(90deg,#FB923C,#EA580C)}
.pa-bd-pct{font-size:12px;font-weight:700;color:var(--ink);font-family:'JetBrains Mono';width:34px;text-align:right}
.pa-bd-tag{font-size:9.5px;font-weight:700;padding:3px 8px;border-radius:999px;white-space:nowrap}
.pa-bd-tag.strong{background:#D1FAE5;color:#059669}
.pa-bd-tag.good{background:#DBEAFE;color:#2563EB}
.pa-bd-tag.avg{background:#FEF3C7;color:#B45309}
.pa-bd-tag.weak{background:#FFE4E6;color:#E11D48}

/* AI insights */
.pa-ins-list{display:flex;flex-direction:column;gap:14px}
.pa-ins{display:flex;gap:11px;align-items:flex-start}
.pa-ins-ic{width:22px;height:22px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-size:11px;font-weight:800;margin-top:1px}
.pa-ins-ic.good{background:#D1FAE5;color:#059669}
.pa-ins-ic.warn{background:#FEF3C7;color:#D97706}
.pa-ins-t{font-size:13px;font-weight:700;color:var(--ink);line-height:1.3}
.pa-ins-d{font-size:12px;color:var(--mute);margin-top:2px;line-height:1.45}

/* evidence timeline */
.pa-tl{display:flex;flex-direction:column}
.pa-tl-row{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--line)}
.pa-tl-row:last-child{border-bottom:none}
.pa-tl-row.clickable{cursor:pointer;margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:8px;transition:background .15s}
.pa-tl-row.clickable:hover{background:var(--surface-2,rgba(99,102,241,.06))}
.pa-tl-ic{width:28px;height:28px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-size:12px;font-weight:800;color:var(--on-accent)}
.pa-tl-ic.verified{background:#10B981}
.pa-tl-ic.active{background:#6366F1}
.pa-tl-ic.expired{background:#E11D48}
.pa-tl-ic.pending,.pa-tl-ic.claimed{background:#94A3B8}
.pa-tl-body{flex:1;min-width:0}
.pa-tl-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pa-tl-title{font-size:13px;font-weight:600;color:var(--ink)}
.pa-tl-badge{font-size:9.5px;font-weight:700;padding:2px 8px;border-radius:999px}
.pa-tl-badge.verified{background:#D1FAE5;color:#059669}
.pa-tl-badge.active{background:#EEF2FF;color:#4F46E5}
.pa-tl-sub{font-size:11.5px;color:var(--mute);margin-top:3px}
.pa-tl-when{font-size:11px;color:var(--mute);white-space:nowrap;flex-shrink:0}

/* benchmark */
.pa-bench{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:end;min-height:220px;padding-top:10px}
.pa-bench-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;text-align:center}
.pa-bench-val{font-size:16px;font-weight:800;color:var(--ink);margin-bottom:8px;font-family:'JetBrains Mono'}
.pa-bench-bar{width:100%;max-width:56px;border-radius:9px 9px 4px 4px;height:0;animation:paGrow 1s cubic-bezier(.22,1,.36,1) forwards .2s}
.pa-bench-bar.you{background:linear-gradient(180deg,#A5B4FC,#6366F1)}
.pa-bench-bar.college{background:linear-gradient(180deg,#93C5FD,#3B82F6)}
.pa-bench-bar.ready{background:linear-gradient(180deg,#6EE7B7,#10B981)}
.pa-bench-bar.top{background:linear-gradient(180deg,#FCD34D,#F59E0B)}
.pa-bench-key{font-size:10.5px;font-weight:600;color:var(--ink-2);margin-top:9px;line-height:1.25}
.pa-bench-sub{font-size:10px;color:var(--mute);margin-top:2px}

/* recommended actions */
.pa-rec-list{display:flex;flex-direction:column;gap:10px}
.pa-rec{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px;transition:.15s}
.pa-rec:hover{border-color:#C7D2FE;background:#FAFAFF}
.pa-rec-ic{width:34px;height:34px;border-radius:9px;background:#EEF2FF;color:#4F46E5;display:grid;place-items:center;font-size:14px;flex-shrink:0}
.pa-rec-body{flex:1;min-width:0}
.pa-rec-t{font-size:12.5px;font-weight:700;color:var(--ink)}
.pa-rec-d{font-size:11.5px;color:var(--mute);margin-top:2px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pa-rec-btn{flex-shrink:0;padding:7px 13px;border:1px solid #C7D2FE;background:#EEF2FF;color:#4338CA;border-radius:8px;font-family:'Inter';font-weight:700;font-size:11.5px;cursor:pointer;transition:.15s}
.pa-rec-btn:hover{background:#4F46E5;color:var(--on-accent);border-color:#4F46E5}

/* placement impact */
.pa-impact{display:flex;align-items:center;gap:16px;margin-bottom:14px}
.pa-impact-ring{position:relative;width:96px;height:96px;flex-shrink:0}
.pa-impact-ring svg{transform:rotate(-90deg)}
.pa-impact-ring .bg{fill:none;stroke:#EEF1F6;stroke-width:10}
.pa-impact-ring .fg{fill:none;stroke:#6366F1;stroke-width:10;stroke-linecap:round;stroke-dasharray:301.59;stroke-dashoffset:301.59;animation:paRing 1.2s ease forwards .2s}
.pa-impact-pct{position:absolute;inset:0;display:grid;place-items:center;font-size:22px;font-weight:800;color:var(--ink)}
.pa-impact-tx b{display:block;font-size:13.5px;color:var(--ink);font-weight:700}
.pa-impact-tx span{font-size:12px;color:var(--mute);line-height:1.45;display:block;margin-top:3px}
.pa-impact-call{background:linear-gradient(135deg,#ECFDF5,#F0FDF4);border:1px solid #A7F3D0;border-radius:12px;padding:14px 16px}
.pa-impact-call .k{font-size:13px;font-weight:800;color:#065F46}
.pa-impact-call .s{font-size:11px;color:#059669;margin-top:2px}
.pa-impact-call .v{font-size:14px;font-weight:800;color:#047857;margin-top:8px}

/* 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}}

/* Profile header — premium student identity card (LinkedIn cover + Duolingo stats) */
.id-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:20px;overflow:hidden;margin-bottom:26px;box-shadow:0 20px 48px -30px rgba(11,18,32,.55)}
.id-cover{position:relative;height:112px;background:
    radial-gradient(120% 160% at 85% -20%, rgba(245,158,11,.22) 0%, rgba(245,158,11,0) 48%),
    radial-gradient(120% 160% at 5% 130%, rgba(16,185,129,.16) 0%, rgba(16,185,129,0) 52%),
    linear-gradient(135deg,#0B1220 0%,#15203A 58%,#1E293B 100%)}
.id-cover::after{content:"";position:absolute;inset:0;opacity:.06;pointer-events:none;
    background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='56' height='64' viewBox='0 0 56 64'><polygon fill='none' stroke='%23FCD34D' stroke-width='1' points='28,1 54,16 54,48 28,63 2,48 2,16'/></svg>");
    background-size:56px 64px}
.id-body{position:relative;padding:0 30px 28px}
.id-main{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap}
.id-left{display:flex;align-items:flex-end;gap:22px;min-width:0;flex-wrap:wrap}

.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}

/* Duolingo-style stat chips */
.id-stats{display:flex;gap:12px;flex-wrap:wrap;padding-bottom:6px}
.id-stat{display:flex;align-items:center;gap:11px;padding:11px 16px;border-radius:14px;border:1px solid var(--line);background:var(--fog);min-width:118px;transition:.15s}
.id-stat:hover{transform:translateY(-2px);box-shadow:0 10px 24px -14px rgba(11,18,32,.4)}
.id-stat .st-ico{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:18px;flex-shrink:0}
.id-stat .st-body{display:flex;flex-direction:column;line-height:1.15}
.id-stat .st-val{font-family:'Inter';font-weight:800;font-size:18px;letter-spacing:-.02em;color:var(--ink)}
.id-stat .st-lbl{font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-top:2px}
.id-stat.streak{background:linear-gradient(140deg,rgba(249,115,22,.12),rgba(239,68,68,.03));border-color:rgba(249,115,22,.28)}
.id-stat.streak .st-ico{background:linear-gradient(135deg,#F97316,#EF4444);color:var(--on-accent);box-shadow:0 4px 12px -4px rgba(249,115,22,.6)}
.id-stat.xp{background:linear-gradient(140deg,rgba(167,139,250,.12),rgba(16,185,129,.03));border-color:rgba(167,139,250,.28)}
.id-stat.xp .st-ico{background:linear-gradient(135deg,#A78BFA,#7C3AED);color:var(--on-accent);box-shadow:0 4px 12px -4px rgba(124,58,237,.55)}
.id-stat.completion{background:linear-gradient(140deg,rgba(245,158,11,.12),rgba(180,83,9,.03));border-color:rgba(245,158,11,.3)}
.id-stat.completion .st-ring{position:relative;width:42px;height:42px;flex-shrink:0}
.id-stat.completion .st-ring svg{transform:rotate(-90deg)}
.id-stat.completion .st-ring .rp{position:absolute;inset:0;display:grid;place-items:center;font-family:'JetBrains Mono';font-size:10.5px;font-weight:800;color:var(--honey-d)}

@media (max-width:760px){.id-main{align-items:flex-start}.id-stats{width:100%}}
@media (max-width:600px){.id-left{align-items:flex-start}.id-stat{flex:1 1 auto}}

/* Headline BeeTrustScore badge — floats on the cover, top-right */
.id-score{position:absolute;top:18px;right:24px;display:flex;align-items:center;gap:14px;padding:12px 18px;border-radius:16px;background:rgba(15,23,42,.42);border:1px solid rgba(252,211,77,.34);backdrop-filter:blur(8px);box-shadow:0 12px 30px -16px rgba(0,0,0,.6)}
.id-score .sc-ring{position:relative;width:54px;height:54px;flex-shrink:0}
.id-score .sc-ring svg{transform:rotate(-90deg)}
.id-score .sc-ring .sc-pct{position:absolute;inset:0;display:grid;place-items:center;font-family:'JetBrains Mono';font-size:11px;font-weight:800;color:#FCD34D}
.id-score .sc-body{display:flex;flex-direction:column;line-height:1.1;color:var(--on-accent)}
.id-score .sc-num{font-family:'Inter';font-weight:800;font-size:26px;letter-spacing:-.03em;display:flex;align-items:baseline;gap:3px}
.id-score .sc-num .sc-of{font-size:12px;font-weight:500;color:#FFFFFF99;letter-spacing:0}
.id-score .sc-tags{display:flex;align-items:center;gap:7px;margin-top:4px}
.id-score .sc-band{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:2px 7px;border-radius:999px;background:rgba(16,185,129,.22);color:#6EE7B7;border:1px solid rgba(16,185,129,.4)}
.id-score .sc-delta{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.04em;color:#6EE7B7}
.id-score .sc-rank{display:block;font-family:'JetBrains Mono';font-size:8.5px;letter-spacing:.08em;color:#FFFFFF85;margin-top:5px}
@media (max-width:640px){.id-score{position:static;margin:14px 0 0;width:fit-content}}

/* Profile action row — recruiter view / share / edit */
.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)}
.id-action .copied{font-family:'JetBrains Mono';font-size:10px;color:var(--emerald-d);font-weight:700}

/* ══════════════════════════════════════════════════════
   PROFILE PAGE — redesigned (hero + stats + tabs + completion aside)
   ══════════════════════════════════════════════════════ */
.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}

/* — Header card — */
.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-verified.pf-unverified{background:var(--rose-glow);color:var(--rose-d);border:1px solid #FDA4AF}
.pf-identity .pf-badge.pf-badge-pending{background:var(--honey-glow,#FEF3C7);color:var(--honey-d,#B45309)}
.pf-identity .pf-badge.pf-badge-pending::before{content:"○";font-weight:800}
.pf-identity .pf-badge.pf-badge-flag{background:var(--rose-glow);color:var(--rose-d);border:1px solid #FDA4AF}
.pf-identity .pf-badge.pf-badge-flag::before{content:"⚠";font-weight:800;margin-right:3px}
.pf-identity .pf-badge.pf-badge-cta{background:var(--rose-d);color:var(--on-accent);border:none;cursor:pointer;font-family:'JetBrains Mono';font-weight:700}
.pf-identity .pf-badge.pf-badge-cta:hover{background:var(--rose)}
.pf-hero .pf-role{font-size:13.5px;color:var(--body);font-weight:600;margin-top:3px}

/* — Dark score box — */
.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)}

/* — Challenge ID bar — */
.pf-cidbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:linear-gradient(135deg,var(--deep) 0%,#1E293B 100%);border-radius:14px;padding:14px 18px;position:relative;overflow:hidden}
.pf-cidbar::after{content:'';position:absolute;top:-40px;right:-20px;width:160px;height:160px;background:radial-gradient(circle,rgba(245,158,11,.22),transparent 70%);pointer-events:none}
.pcb-left{display:flex;flex-direction:column;gap:2px;position:relative;z-index:1}
.pcb-cap{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--honey-soft);font-weight:700}
.pcb-val{font-family:'JetBrains Mono';font-size:17px;font-weight:600;letter-spacing:.05em;color:var(--on-accent)}
.pcb-btns{display:flex;gap:8px;position:relative;z-index:1;flex-wrap:wrap}
.pcb-btn{font-family:'Inter';font-size:12px;font-weight:600;padding:8px 14px;border-radius:8px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);color:var(--on-accent);cursor:pointer;transition:.14s}
.pcb-btn:hover{background:rgba(255,255,255,.16)}
.pcb-btn.is-copied{background:var(--emerald);border-color:var(--emerald-d);color:#06281d}
.pcb-btn.arena{background:var(--honey);border-color:var(--honey-d);color:#3a2400;font-weight:700}
.pcb-btn.arena:hover{background:var(--honey-soft)}

/* — 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)}

/* — Tab stub (non-overview) — */
.pf-tabstub{align-items:center;text-align:center;padding:48px 24px;gap:8px}
.pf-skill-list{display:flex;flex-direction:column;gap:8px}
.pf-skill-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:8px}
.pf-skill-name{flex:1;font-size:13px;font-weight:600;color:var(--ink)}
.pf-skill-score{font-size:12px;color:var(--mute);font-family:'JetBrains Mono';white-space:nowrap}
.pf-anl-row{display:flex;align-items:center;gap:12px;padding:10px 4px}
.pf-anl-track{flex:1;height:8px;border-radius:999px;background:var(--mist);overflow:hidden}
.pf-anl-fill{display:block;height:100%;border-radius:999px;background:var(--honey)}
.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%}}

/* Avatar crop & zoom modal */
.crop-overlay{position:fixed;inset:0;z-index:200;background:rgba(11,18,32,.55);backdrop-filter:blur(2px);display:grid;place-items:center;padding:20px}
.crop-modal{background:var(--surface);border-radius:16px;width:100%;max-width:360px;padding:22px;box-shadow:0 20px 60px rgba(11,18,32,.35);display:flex;flex-direction:column;gap:16px}
.crop-modal h3{margin:0;font-family:'Inter';font-weight:800;font-size:17px;letter-spacing:-.01em;color:var(--ink)}
.crop-modal .crop-sub{font-size:12.5px;color:var(--mute);margin-top:-10px}
.crop-stage{position:relative;width:280px;height:280px;margin:0 auto;border-radius:50%;overflow:hidden;background:var(--mist);cursor:grab;touch-action:none;box-shadow:inset 0 0 0 2px rgba(11,18,32,.06)}
.crop-stage.grabbing{cursor:grabbing}
.crop-stage img{position:absolute;left:0;top:0;max-width:none;user-select:none;-webkit-user-drag:none;pointer-events:none}
.crop-zoom{display:flex;align-items:center;gap:10px}
.crop-zoom .zlabel{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);font-weight:700}
.crop-zoom input[type=range]{flex:1;accent-color:var(--honey-d);cursor:pointer}
.crop-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:2px}
.crop-btn{padding:9px 18px;border-radius:8px;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}
.crop-btn:hover{background:var(--mist)}
.crop-btn.primary{background:var(--deep);color:var(--on-accent);border-color:var(--deep)}
.crop-btn.primary:hover{background:var(--honey-d);border-color:var(--honey-d)}

/* Settings rows */
.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}

/* Activity feed (Home) */
.activity-feed{display:flex;flex-direction:column;gap:0;border-left:2px solid var(--line);padding-left:14px;margin-left:6px}
.activity-item{position:relative;padding:8px 0 14px}
.activity-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)}
.activity-item.fresh::before{background:var(--emerald-d);box-shadow:0 0 0 2px var(--emerald-glow)}
.activity-item .ai-msg{font-size:12.5px;color:var(--ink-2);line-height:1.45}
.activity-item .ai-msg b{color:var(--ink);font-weight:600}
.activity-item .ai-time{font-family:'JetBrains Mono';font-size:10px;color:var(--mute);letter-spacing:.06em;margin-top:2px}

/* ── Continue learning + Momentum (home dashboard pair) ── */
.continue-card,.momentum-card{gap:0;justify-content:flex-start}
.cl-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.cl-eyebrow{font-family:'JetBrains Mono';font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);font-weight:700}
.cl-all{font-family:'JetBrains Mono';font-size:12px;font-weight:700;color:var(--honey-d);text-decoration:none;cursor:pointer}
.cl-all:hover{text-decoration:underline}
.cl-title{font-size:23px;font-weight:800;color:var(--ink);margin:2px 0 18px;letter-spacing:-.01em;line-height:1.1}
.cl-body{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.cl-hex{width:62px;height:62px;flex-shrink:0}
.cl-hex svg{width:100%;height:100%;display:block}
.cl-info{display:flex;flex-direction:column;gap:4px;min-width:0}
.cl-track{font-size:17px;font-weight:700;color:var(--ink)}
.cl-sub{font-size:13.5px;color:var(--mute)}
.cl-next{font-size:14px;color:var(--ink-2);margin-bottom:14px}
.cl-next b{color:var(--ink);font-weight:700}
.cl-bar{height:9px;background:var(--line);border-radius:6px;overflow:hidden;margin-bottom:16px}
.cl-fill{height:100%;background:linear-gradient(90deg,var(--honey-soft),var(--honey-d));border-radius:6px;transition:width .4s}
.cl-foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto}
.cl-pct{font-family:'JetBrains Mono';font-size:13px;color:var(--mute);font-weight:600}
.cl-resume{display:inline-flex;align-items:center;gap:8px;padding:11px 22px;background:var(--ink);color:#fff;border:none;border-radius:10px;font-family:'Inter';font-weight:700;font-size:14px;cursor:pointer;transition:.15s}
.cl-resume:hover{background:var(--ink-2);transform:translateY(-1px)}
/* ── Bee mode: dark-yellow CTA buttons ──────────────────────────────
   In bee mode the bright --honey-d fill (white text) washes out, and
   --ink-backed buttons (Resume) turn cream-on-white and vanish. Force a
   deep amber/dark-yellow fill with cream text for legibility. */
[data-theme="dark"] .cl-resume,
[data-theme="dark"] .qc-action,
[data-theme="dark"] .bee-cta{
  background:#B45309 !important;color:#FFF7E6 !important;
  border:1px solid #E08A1E !important;box-shadow:0 6px 16px -6px rgba(0,0,0,.55)
}
[data-theme="dark"] .cl-resume:hover,
[data-theme="dark"] .qc-action:hover,
[data-theme="dark"] .bee-cta:hover{
  background:#92400E !important;border-color:#FBBF24 !important
}
.cl-play{font-size:11px}

.mom-stat{display:flex;align-items:baseline;gap:10px;margin:4px 0 20px}
.mom-num{font-size:40px;font-weight:800;color:var(--ink);line-height:1;letter-spacing:-.02em}
.mom-lbl{font-family:'JetBrains Mono';font-size:12px;color:var(--mute);font-weight:600}
.mom-chart{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;height:140px}
.mom-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:9px;height:100%;justify-content:flex-end}
.mom-bar-wrap{width:100%;flex:1;display:flex;align-items:flex-end;justify-content:center;min-height:0}
.mom-bar{width:100%;max-width:34px;border-radius:8px;background:linear-gradient(180deg,var(--honey-soft),var(--honey));min-height:4px;transition:height .5s}
.mom-col.today .mom-bar{background:linear-gradient(180deg,var(--honey),var(--honey-glow))}
.mom-col.empty .mom-bar{background:var(--line)}
.mom-day{font-family:'JetBrains Mono';font-size:12px;color:var(--mute);font-weight:600}
.mom-col.today .mom-day{color:var(--honey-d);font-weight:800}

/* Empty/placeholder for view-not-built */
.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}

/* ── LANDING PAGE ───────────────────────────────────────── */
.landing-page{min-height:100vh;background:var(--card);overflow-x:hidden}
.landing-nav{position:sticky;top:0;z-index:50;height:64px;display:flex;align-items:center;padding:0 40px;gap:16px;background:var(--card);border-bottom:1px solid var(--line)}
.landing-nav .ln-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}
.landing-nav .ln-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}
.landing-nav .ln-name{font-family:'Inter';font-weight:800;font-size:15px;color:var(--ink);letter-spacing:-.015em}
.landing-nav .spacer{flex:1}
.landing-hero{padding:100px 40px 80px;text-align:center;background:linear-gradient(170deg,#fff 0%,var(--honey-glow) 100%);position:relative;overflow:hidden}
.landing-hero::before{content:"";position:absolute;inset:0;opacity:.06;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='%23F59E0B' stroke-width='1.2' points='42,2 80,24 80,72 42,94 4,72 4,24'/></svg>");background-repeat:repeat;background-size:84px 96px}
.landing-hero h1{font-family:'Inter';font-weight:900;font-size:clamp(34px,5.5vw,64px);letter-spacing:-.03em;color:var(--ink);margin:0 0 20px;line-height:1.08;position:relative}
.landing-hero h1 em{color:var(--honey-d);font-style:italic;font-weight:700}
.landing-hero .lh-sub{font-size:clamp(14px,1.8vw,18px);color:var(--mute);max-width:560px;margin:0 auto 36px;line-height:1.65;position:relative}
.landing-hero .lh-ctas{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;position:relative}
.landing-feat{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:60px 40px;max-width:1100px;margin:0 auto}
.feat-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:28px 24px;text-align:center}
.feat-card .fc-icon{font-size:30px;margin-bottom:12px}
.feat-card h3{font-family:'Inter';font-weight:700;font-size:16px;color:var(--ink);margin:0 0 8px}
.feat-card p{font-size:13px;color:var(--mute);margin:0;line-height:1.6}
.landing-social{background:var(--deep);padding:28px 40px;display:flex;align-items:center;justify-content:center;gap:32px;flex-wrap:wrap}
.landing-social .ss-label{font-family:'JetBrains Mono';font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#FFFFFF50}
.landing-social .ss-college{font-family:'JetBrains Mono';font-size:11px;font-weight:700;color:#FFFFFF88;padding:4px 12px;border:1px solid #FFFFFF18;border-radius:6px}
.landing-cta-band{padding:72px 40px;text-align:center;background:linear-gradient(135deg,var(--deep) 0%,var(--deep-2) 100%);color:var(--on-accent);position:relative;overflow:hidden}
.landing-cta-band::before{content:"";position:absolute;inset:0;opacity:.05;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='%23F59E0B' stroke-width='1' points='42,2 80,24 80,72 42,94 4,72 4,24'/></svg>");background-repeat:repeat;background-size:84px 96px}
.landing-cta-band h2{font-family:'Inter';font-weight:800;font-size:clamp(26px,4vw,42px);letter-spacing:-.025em;margin:0 0 12px;position:relative}
.landing-cta-band p{font-size:15px;color:#FFFFFFAA;margin:0 0 32px;position:relative}
@media(max-width:768px){.landing-feat{grid-template-columns:1fr}.landing-nav{padding:0 20px}.landing-hero{padding:60px 20px 48px}.landing-cta-band{padding:52px 20px}.landing-social{gap:14px;padding:24px 20px}}

/* ── AUTH SCREENS (login / signup) ─────────────────────── */
.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(--honey-d);box-shadow:0 0 0 3px var(--honey-glow)}
.auth-btn{width:100%;padding:12px;background:var(--honey-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(--deep)}
.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(--honey-d);color:var(--honey-d)}
.auth-switch{text-align:center;margin-top:18px;font-size:13px;color:var(--mute)}
.auth-switch a{color:var(--honey-d);font-weight:600;cursor:pointer;text-decoration:none}
.auth-dpdp{margin-top:16px;padding:11px 14px;background:var(--honey-glow);border-radius:8px;font-size:11.5px;color:var(--ink-2);line-height:1.55;border:1px solid var(--honey-soft)}
.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(--honey-d)}

/* ── APP SHELL LAYOUT — inlined fallback (mirrors _shared/brand.css) ──
   Guarantees the sidebar renders as a proper left column even if
   brand.css fails to load. If brand.css does load, values are identical. */
.app-shell{display:grid;grid-template-columns:240px 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(--card);font-family:'Inter',sans-serif;display:flex;flex-direction:column;gap:2px}
.app-sidebar::-webkit-scrollbar{width:0}
.app-sidebar.persona-student{background:var(--card);border-right:1px solid var(--line)}
.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-nav-section.internal{padding-top:18px;border-top:1px dotted var(--line);margin-top:4px}
.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-nav-btn:hover{background:var(--honey-glow);color:var(--honey-d)}
.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 .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 .count,.app-nav-btn .light-data{display:none}
}

/* ════════ Challenge Arena (BTX-CHALLENGE-001) ════════ */
.ch-wrap{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.ch-h2{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);font-weight:700;margin:0 0 14px;display:flex;align-items:center;gap:7px}
/* battle-stats banner */
.ch-statbar{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ch-statcard{display:flex;align-items:center;gap:13px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:15px 18px;transition:transform .15s,box-shadow .15s}
.ch-statcard:hover{transform:translateY(-2px);box-shadow:0 12px 24px -16px rgba(15,23,42,.3)}
.cs-ic{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.cs-v{font-family:'Inter';font-size:19px;font-weight:800;color:var(--ink);line-height:1.05}
.cs-l{font-size:11px;color:var(--mute);font-weight:600;margin-top:3px}
/* section cards */
.ch-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px;transition:box-shadow .2s,transform .2s}
.ch-card:hover{box-shadow:0 14px 30px -18px rgba(15,23,42,.28)}
.ch-card:first-of-type{grid-column:1}
/* neutralize redundant inner card chrome now that the section is a card */
.ch-card .ch-search{background:transparent;border:0;border-radius:0;padding:0}
.ch-card .ch-lb{border:0;border-radius:10px}
@media (max-width:900px){.ch-wrap{grid-template-columns:1fr}.ch-statbar{grid-template-columns:repeat(2,1fr)}}

/* profile challenge-id chip */
.pf-cid{display:inline-flex;align-items:center;gap:10px;margin-top:12px;background:linear-gradient(135deg,var(--deep) 0%,#1E293B 100%);border-radius:11px;padding:9px 9px 9px 14px;position:relative;overflow:hidden}
.pf-cid::after{content:'';position:absolute;top:-30px;right:-20px;width:120px;height:120px;background:radial-gradient(circle,rgba(245,158,11,.28),transparent 70%);pointer-events:none}
.pf-cid .cidcap{font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--honey-soft);font-weight:700}
.pf-cid .cidval{font-family:'JetBrains Mono',monospace;font-size:14px;font-weight:600;letter-spacing:.04em;color:var(--on-accent);position:relative;z-index:1}
.pf-cid .cidbtn{position:relative;z-index:1;font-family:'Inter',sans-serif;font-size:11.5px;font-weight:600;padding:6px 11px;border-radius:8px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);color:var(--on-accent);cursor:pointer;transition:background .14s}
.pf-cid .cidbtn:hover{background:rgba(255,255,255,.16)}
.pf-cid .cidbtn.is-copied{background:var(--emerald);border-color:var(--emerald-d);color:#06281d}

/* avatars */
.ch-av{border-radius:50%;display:grid;place-items:center;color:var(--on-accent);font-family:'Inter',sans-serif;font-weight:800;letter-spacing:-.02em;flex:none;box-shadow:inset 0 0 0 2px rgba(255,255,255,.18);position:relative;overflow:hidden}
.ch-av::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.35),transparent 55%)}
.ch-av.sm{width:38px;height:38px;font-size:14px}
.ch-av.lg{width:64px;height:64px;font-size:22px}
.ch-av.xl{width:96px;height:96px;font-size:34px}
.ch-av.xxl{width:120px;height:120px;font-size:42px}

/* buttons */
.ch-btn{font-family:'Inter',sans-serif;font-size:13px;font-weight:600;padding:10px 16px;border-radius:10px;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--ink-2);transition:background .15s,border-color .15s,transform .12s,box-shadow .15s;display:inline-flex;align-items:center;gap:7px;justify-content:center}
.ch-btn:hover{border-color:var(--ink-3);color:var(--ink);transform:translateY(-1px)}
.ch-btn.primary{background:var(--honey);border-color:var(--honey-d);color:#0B1220;font-weight:700}
.ch-btn.primary:hover{background:var(--honey-soft);box-shadow:0 8px 22px -8px rgba(245,158,11,.6)}
.ch-btn.ghost{background:transparent}
.ch-btn.lg{padding:12px 20px;font-size:14px}
.ch-btn.block{width:100%;padding:14px;font-size:14.5px;margin-top:6px}
.ch-btn .bolt{font-size:14px}

/* search */
.ch-search{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:18px}
.ch-search-row{display:flex;align-items:center;gap:10px;background:var(--fog);border:1px solid var(--line);border-radius:11px;padding:6px 6px 6px 14px}
.ch-search-row:focus-within{border-color:var(--honey);box-shadow:0 0 0 3px var(--honey-glow)}
.ch-search-ic{color:var(--mute);font-size:16px}
.ch-search-in{flex:1;border:0;background:transparent;font-family:'JetBrains Mono',monospace;font-size:14px;letter-spacing:.04em;color:var(--ink);padding:8px 0;outline:none}
.ch-search-in::placeholder{color:var(--mute);font-family:'Inter',sans-serif;letter-spacing:normal;font-size:13px}
.ch-hints{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.ch-hint-lbl{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:700}
.ch-chip{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.04em;padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:var(--fog);color:var(--ink-2);cursor:pointer;transition:background .14s,border-color .14s}
.ch-chip:hover{background:var(--honey-glow);border-color:var(--honey-soft);color:var(--honey-d)}
.ch-find-err{margin-top:12px;font-size:12.5px;color:var(--rose-d);background:var(--rose-glow);border-radius:9px;padding:9px 12px}

/* opponent card */
.ch-oppcard{margin-top:14px;background:var(--card);border:1px solid var(--line);border-radius:13px;overflow:hidden;animation:chRise .4s cubic-bezier(.2,.7,.3,1)}
.ch-oppcard-main{display:flex;align-items:center;gap:16px;padding:18px 20px}
.ch-opp-id{flex:1;min-width:0}
.ch-opp-name{font-size:17px;font-weight:800;color:var(--ink);letter-spacing:-.01em}
.ch-opp-meta{font-size:12.5px;color:var(--body);margin-top:2px}
.ch-opp-status{font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:600;letter-spacing:.06em;margin-top:6px;display:inline-flex;align-items:center;gap:6px}
.ch-opp-status .dot{width:7px;height:7px;border-radius:50%}
.ch-opp-status.online{color:var(--emerald-d)} .ch-opp-status.online .dot{background:var(--emerald);box-shadow:0 0 0 3px var(--emerald-glow)}
.ch-opp-status.offline{color:var(--mute)} .ch-opp-status.offline .dot{background:var(--mute)}
.ch-opp-stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);background:var(--fog)}
.ch-stat{padding:12px 14px;text-align:center;border-right:1px solid var(--line)}
.ch-stat:last-child{border-right:0}
.ch-stat .k{display:block;font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-weight:700}
.ch-stat .v{display:block;font-size:16px;font-weight:800;color:var(--ink);margin-top:3px;letter-spacing:-.01em}

/* leaderboard */
.ch-lb{background:var(--card);border:1px solid var(--line);border-radius:13px;overflow:hidden}
.ch-tabs{display:flex;gap:4px;padding:10px;border-bottom:1px solid var(--line);background:var(--fog)}
.ch-tab{flex:1;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:9px;border-radius:8px;border:0;background:transparent;color:var(--mute);cursor:pointer;transition:background .14s,color .14s}
.ch-tab.active{background:var(--card);color:var(--honey-d);box-shadow:0 1px 4px rgba(11,18,32,.08)}
.ch-lb-list{display:flex;flex-direction:column}
.ch-lb-row{display:flex;align-items:center;gap:13px;padding:12px 18px;border-bottom:1px solid var(--line)}
.ch-lb-row:last-child{border-bottom:0}
.ch-lb-row.me{background:var(--honey-cream)}
.ch-lb-rank{font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;color:var(--mute);width:30px;text-align:center}
.ch-lb-row.top .ch-lb-rank{color:var(--honey-d)}
.ch-lb-nm{flex:1;font-size:13.5px;font-weight:600;color:var(--ink);letter-spacing:-.005em}
.ch-lb-nm small{display:block;font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--mute);font-weight:500;letter-spacing:.04em;margin-top:1px}
.ch-lb-xp{font-family:'JetBrains Mono',monospace;font-size:12.5px;font-weight:700;color:var(--ink-2)}

/* history */
.ch-history{display:flex;flex-direction:column;gap:9px}
.ch-hrow{display:flex;align-items:center;gap:13px;background:var(--card);border:1px solid var(--line);border-radius:11px;padding:11px 15px}
.ch-hres{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:13px;flex:none}
.ch-hres.w{background:var(--emerald-glow);color:var(--emerald-d)}
.ch-hres.l{background:var(--rose-glow);color:var(--rose-d)}
.ch-hbody{flex:1}
.ch-hbody b{display:block;font-size:13px;color:var(--ink);font-weight:700}
.ch-hbody span{display:block;font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--mute);letter-spacing:.04em;margin-top:2px}
.ch-hscore{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;color:var(--ink-2)}

/* badges */
.ch-badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:11px}
.ch-badge{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:15px 14px;text-align:center;opacity:.5;filter:grayscale(.7);transition:transform .15s}
.ch-badge.earned{opacity:1;filter:none}
.ch-badge.earned:hover{transform:translateY(-2px);box-shadow:0 12px 26px -14px rgba(11,18,32,.3)}
.ch-badge .bi{font-size:26px;display:block}
.ch-badge .bn{display:block;font-size:12.5px;font-weight:800;color:var(--ink);margin-top:7px;letter-spacing:-.005em}
.ch-badge .bd{display:block;font-size:10.5px;color:var(--mute);margin-top:3px;line-height:1.4}

/* modal */
/* CRITICAL: these overlays set display via CSS, which would override the
   [hidden] attribute. Force hidden to win so they stay closed until opened. */
.ch-modal-wrap[hidden],.ch-stage[hidden],.ch-scene[hidden]{display:none !important}
.ch-modal-wrap{position:fixed;inset:0;z-index:4000;display:grid;place-items:center;padding:18px}
.ch-modal-back{position:absolute;inset:0;background:rgba(11,18,32,.55);backdrop-filter:blur(4px);animation:chFade .2s}
.ch-modal{position:relative;width:100%;max-width:440px;background:var(--surface);border-radius:18px;padding:22px;box-shadow:0 40px 90px -30px rgba(11,18,32,.5);animation:chPop .32s cubic-bezier(.2,.8,.3,1);max-height:92vh;overflow-y:auto}
.ch-modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}
.ch-modal-eyebrow{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--honey-d);font-weight:700}
.ch-modal-title{font-size:20px;font-weight:800;color:var(--ink);letter-spacing:-.01em;margin-top:3px}
.ch-modal-x{border:0;background:var(--fog);width:32px;height:32px;border-radius:9px;cursor:pointer;color:var(--mute);font-size:14px}
.ch-modal-x:hover{background:var(--line);color:var(--ink)}
.ch-modal-vs{display:flex;align-items:center;justify-content:center;gap:14px;background:var(--fog);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:18px}
.ch-mini{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--ink)}
.ch-mini-vs{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;color:var(--mute);letter-spacing:.1em}
.ch-field{margin-bottom:15px}
.ch-field-row{display:flex;gap:14px}
.ch-field-row .ch-field{flex:1}
.ch-flabel{display:block;font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-weight:700;margin-bottom:8px}
.ch-opts{display:flex;flex-wrap:wrap;gap:7px}
.ch-opt{font-family:'Inter',sans-serif;font-size:12.5px;font-weight:600;padding:8px 13px;border-radius:9px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);cursor:pointer;transition:all .14s}
.ch-opt:hover{border-color:var(--honey-soft)}
.ch-opt.active{background:var(--deep);border-color:var(--deep);color:var(--on-accent)}

/* cinematic stage */
.ch-stage{position:fixed;inset:0;z-index:5000;overflow:hidden;color:var(--on-accent)}
.ch-stage-bg{position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 0%,#13203a 0%,#0B1220 55%,#070b14 100%)}
.ch-scene{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}
.ch-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.ch-particle{position:absolute;border-radius:50%;background:var(--honey);opacity:.5;animation:chFloat linear infinite}
.ch-notify-card{display:flex;flex-direction:column;align-items:center;gap:16px;animation:chRise .5s cubic-bezier(.2,.7,.3,1)}
.ch-notify-title{font-size:24px;font-weight:800;letter-spacing:-.01em}
.ch-notify-sub{font-family:'JetBrains Mono',monospace;font-size:12px;color:#FFFFFFB0;letter-spacing:.05em}
.ch-dots{display:flex;gap:7px}
.ch-dots span{width:9px;height:9px;border-radius:50%;background:var(--honey-soft);animation:chBounce 1.1s infinite ease-in-out}
.ch-dots span:nth-child(2){animation-delay:.18s} .ch-dots span:nth-child(3){animation-delay:.36s}
.ch-av.pulse{animation:chPulse 1.4s infinite}
.ch-room{display:flex;align-items:center;justify-content:center;gap:clamp(18px,6vw,80px);width:100%;max-width:920px}
.ch-room-side{display:flex;flex-direction:column;align-items:center;gap:10px;flex:1}
.ch-room-side.left{animation:chSlideL .55s cubic-bezier(.2,.7,.3,1)}
.ch-room-side.right{animation:chSlideR .55s cubic-bezier(.2,.7,.3,1)}
.ch-room-name{font-size:18px;font-weight:800;letter-spacing:-.01em}
.ch-room-sub{font-family:'JetBrains Mono',monospace;font-size:11px;color:#FFFFFFA0;letter-spacing:.05em}
.ch-room-center{display:flex;flex-direction:column;align-items:center;gap:14px;flex:none}
.ch-room-meta{font-size:20px;font-weight:800;color:var(--honey-soft);letter-spacing:-.01em}
.ch-room-pills{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}
.ch-room-pills span{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;letter-spacing:.06em;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:var(--on-accent)}
.ch-room-status{font-family:'JetBrains Mono',monospace;font-size:11px;color:#FFFFFF90;letter-spacing:.06em}
.ch-spinner{width:38px;height:38px;border-radius:50%;border:3px solid rgba(255,255,255,.15);border-top-color:var(--honey);animation:chSpin .8s linear infinite}
.ch-vs-stage{display:flex;align-items:center;justify-content:center;width:100%;max-width:1000px;animation:chZoom 1s cubic-bezier(.2,.7,.2,1)}
.ch-vs-card{display:flex;flex-direction:column;align-items:center;gap:12px;flex:1;padding:0 10px}
.ch-vs-card.left{animation:chVsL .7s cubic-bezier(.16,.8,.3,1)}
.ch-vs-card.right{animation:chVsR .7s cubic-bezier(.16,.8,.3,1)}
.ch-vs-name{font-size:clamp(16px,3vw,24px);font-weight:900;letter-spacing:-.02em}
.ch-vs-row{font-family:'JetBrains Mono',monospace;font-size:11.5px;color:#FFFFFFC0;letter-spacing:.04em}
.ch-vs-mid{position:relative;display:grid;place-items:center;width:clamp(90px,16vw,150px);flex:none}
.ch-vs-glow{position:absolute;width:240px;height:240px;background:radial-gradient(circle,rgba(245,158,11,.55) 0%,rgba(245,158,11,.12) 40%,transparent 70%);animation:chGlow 1.6s ease-in-out infinite}
.ch-vs-word{position:relative;font-family:'Inter',sans-serif;font-size:clamp(52px,11vw,104px);font-weight:900;letter-spacing:-.04em;background:linear-gradient(180deg,#fff 0%,var(--honey-soft) 60%,var(--honey) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 40px rgba(245,158,11,.4);animation:chSlam .6s cubic-bezier(.2,1.4,.4,1)}
.ch-vs-subject{margin-top:34px;font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--honey-soft);font-weight:700;animation:chFade .8s .5s both}
.ch-count{font-family:'Inter',sans-serif;font-size:clamp(120px,30vw,260px);font-weight:900;letter-spacing:-.05em;background:linear-gradient(180deg,#fff,var(--honey-soft));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:chCount .9s ease-out}
.ch-count.go{background:linear-gradient(180deg,#fff,var(--emerald-glow));-webkit-background-clip:text;background-clip:text}
.ch-quiz{width:100%;max-width:760px;display:flex;flex-direction:column;gap:22px}
.ch-quiz-top{display:flex;align-items:center;justify-content:space-between;gap:14px}
.ch-pl{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.ch-pl.opp{justify-content:flex-end}
.ch-pl-info{display:flex;flex-direction:column;min-width:0}
.ch-pl-info.right{align-items:flex-end}
.ch-pl-name{font-size:12px;font-weight:700;color:#FFFFFFD0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}
.ch-pl-score{font-family:'Inter',sans-serif;font-size:26px;font-weight:900;letter-spacing:-.02em;line-height:1;transition:transform .2s}
.ch-pl.me .ch-pl-score{color:var(--honey-soft)} .ch-pl.opp .ch-pl-score{color:var(--teal-soft)}
.ch-pl-score.bump{transform:scale(1.32)}
.ch-quiz-center{display:flex;flex-direction:column;align-items:center;gap:6px;flex:none}
.ch-quiz-prog{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;color:#FFFFFFA0;font-weight:600}
.ch-timer{position:relative;width:52px;height:52px}
.ch-timer-svg{transform:rotate(-90deg);width:52px;height:52px}
.ch-timer-bg{fill:none;stroke:rgba(255,255,255,.12);stroke-width:3.5}
.ch-timer-fg{fill:none;stroke:var(--honey);stroke-width:3.5;stroke-linecap:round;stroke-dasharray:106.8;stroke-dashoffset:0;transition:stroke-dashoffset 1s linear,stroke .3s}
.ch-timer-fg.warn{stroke:var(--rose)}
.ch-timer-num{position:absolute;inset:0;display:grid;place-items:center;font-family:'JetBrains Mono',monospace;font-size:15px;font-weight:700;color:var(--on-accent)}
.ch-combo{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;color:var(--honey-soft);letter-spacing:.04em;animation:chPopSm .3s}
.ch-quiz-body{display:flex;flex-direction:column;gap:18px}
.ch-q-text{font-size:clamp(18px,3.2vw,26px);font-weight:800;letter-spacing:-.01em;line-height:1.35;text-align:center;min-height:64px;display:flex;align-items:center;justify-content:center}
.ch-answers{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ch-ans{display:flex;align-items:center;gap:12px;text-align:left;padding:16px 18px;border-radius:13px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05);color:var(--on-accent);font-size:14.5px;font-weight:600;cursor:pointer;transition:background .14s,border-color .14s,transform .12s}
.ch-ans:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.4);transform:translateY(-1px)}
.ch-ans .lt{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:rgba(255,255,255,.12);font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;flex:none}
.ch-ans.correct{background:rgba(16,185,129,.22);border-color:var(--emerald);animation:chCorrect .4s}
.ch-ans.correct .lt{background:var(--emerald);color:#06281d}
.ch-ans.wrong{background:rgba(225,29,72,.2);border-color:var(--rose);animation:chShake .4s}
.ch-ans.wrong .lt{background:var(--rose)}
.ch-ans.locked{pointer-events:none;opacity:.55}
.ch-ans.locked.correct,.ch-ans.locked.wrong{opacity:1}
.ch-speed{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;letter-spacing:.05em;text-align:center;animation:chPopSm .3s}
.ch-speed.fast{color:var(--honey-soft)} .ch-speed.good{color:var(--teal-soft)} .ch-speed.miss{color:#FFFFFF80}
.ch-opp-ans{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.05em;text-align:center;color:#FFFFFF90}
.ch-confetti{position:absolute;inset:0;pointer-events:none}
.ch-results{position:relative;display:flex;flex-direction:column;align-items:center;gap:22px;width:100%;max-width:640px;animation:chRise .6s cubic-bezier(.2,.7,.3,1)}
.ch-res-banner{font-family:'Inter',sans-serif;font-size:clamp(34px,7vw,58px);font-weight:900;letter-spacing:-.03em;background:linear-gradient(180deg,#fff,var(--honey-soft));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 0 50px rgba(245,158,11,.35)}
.ch-res-banner.lose{background:linear-gradient(180deg,#fff,var(--plum-soft));-webkit-background-clip:text;background-clip:text}
.ch-res-banner.draw{background:linear-gradient(180deg,#fff,var(--teal-soft));-webkit-background-clip:text;background-clip:text}
.ch-res-cards{display:flex;align-items:center;justify-content:center;gap:clamp(16px,5vw,50px)}
.ch-res-card{display:flex;flex-direction:column;align-items:center;gap:9px;position:relative}
.ch-res-name{font-size:15px;font-weight:800}
.ch-res-score{font-family:'Inter',sans-serif;font-size:40px;font-weight:900;letter-spacing:-.02em;line-height:1}
.ch-res-card.me .ch-res-score{color:var(--honey-soft)} .ch-res-card.opp .ch-res-score{color:var(--teal-soft)}
.ch-res-crown{position:absolute;top:-26px;font-size:26px;animation:chBounce 1.4s infinite}
.ch-res-vs{font-family:'JetBrains Mono',monospace;font-size:16px;color:#FFFFFF70;font-weight:700}
.ch-res-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;width:100%}
.ch-res-stat{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:13px 8px;text-align:center}
.ch-res-stat .k{display:block;font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#FFFFFF80;font-weight:700}
.ch-res-stat .v{display:block;font-size:18px;font-weight:900;color:var(--on-accent);margin-top:4px;letter-spacing:-.01em}
.ch-res-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.ch-res-actions .ch-btn{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:var(--on-accent)}
.ch-res-actions .ch-btn:hover{background:rgba(255,255,255,.16)}
.ch-res-actions .ch-btn.primary{background:var(--honey);border-color:var(--honey-d);color:#0B1220}
.ch-res-actions .ch-btn.primary:hover{background:var(--honey-soft)}

@keyframes chRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes chFade{from{opacity:0}to{opacity:1}}
@keyframes chPop{from{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}
@keyframes chPopSm{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
@keyframes chBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes chPulse{0%,100%{box-shadow:inset 0 0 0 2px rgba(255,255,255,.18),0 0 0 0 rgba(245,158,11,.5)}50%{box-shadow:inset 0 0 0 2px rgba(255,255,255,.18),0 0 0 18px rgba(245,158,11,0)}}
@keyframes chSpin{to{transform:rotate(360deg)}}
@keyframes chSlideL{from{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}
@keyframes chSlideR{from{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}
@keyframes chVsL{0%{opacity:0;transform:translateX(-120px) scale(.8)}to{opacity:1;transform:translateX(0) scale(1)}}
@keyframes chVsR{0%{opacity:0;transform:translateX(120px) scale(.8)}to{opacity:1;transform:translateX(0) scale(1)}}
@keyframes chZoom{0%{transform:scale(1.18)}to{transform:scale(1)}}
@keyframes chSlam{0%{opacity:0;transform:scale(2.4)}60%{opacity:1;transform:scale(.9)}to{transform:scale(1)}}
@keyframes chGlow{0%,100%{transform:scale(.85);opacity:.7}50%{transform:scale(1.15);opacity:1}}
@keyframes chCount{0%{opacity:0;transform:scale(2)}30%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.7)}}
@keyframes chCorrect{0%{transform:scale(1)}40%{transform:scale(1.05)}to{transform:scale(1)}}
@keyframes chShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
@keyframes chFloat{0%{transform:translateY(0) scale(1);opacity:0}10%{opacity:.6}90%{opacity:.4}100%{transform:translateY(-120vh) scale(.4);opacity:0}}
@media(max-width:680px){
  .ch-answers{grid-template-columns:1fr}
  .ch-opp-stats{grid-template-columns:repeat(2,1fr)}
  .ch-stat:nth-child(2n){border-right:0}
  .ch-room{gap:14px} .ch-av.xl{width:74px;height:74px;font-size:26px} .ch-av.xxl{width:88px;height:88px;font-size:32px}
  .ch-room-center{order:-1;width:100%}
  .ch-res-stats{grid-template-columns:repeat(2,1fr)}
  .ch-oppcard-main{flex-wrap:wrap}
}
/* ── topbar notification dropdown ────────────────────────────────── */
.app-topbar .tb-notif-wrap{position:relative}
.app-topbar .tb-notif-menu{position:absolute;top:calc(100% + 8px);right:0;width:340px;max-width:86vw;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 38px rgba(11,18,32,.20);z-index:60;overflow:hidden}
.app-topbar .tb-notif-menu .tn-head{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid var(--line)}
.app-topbar .tb-notif-menu .tn-head b{font-size:13px;color:var(--ink);font-weight:700}
.app-topbar .tb-notif-menu .tn-readall{border:none;background:transparent;color:var(--honey-d);font-size:11px;font-weight:600;cursor:pointer;padding:2px 4px;border-radius:6px}
.app-topbar .tb-notif-menu .tn-readall:hover{background:var(--honey-glow)}
.app-topbar .tb-notif-menu .tn-list{max-height:62vh;overflow-y:auto}
.app-topbar .tb-notif-menu .tn-item{position:relative;display:flex;gap:11px;width:100%;text-align:left;padding:12px 14px;border:none;border-bottom:1px solid var(--line);background:transparent;cursor:pointer;transition:.12s}
.app-topbar .tb-notif-menu .tn-item:last-child{border-bottom:none}
.app-topbar .tb-notif-menu .tn-item:hover{background:var(--mist)}
.app-topbar .tb-notif-menu .tn-item.unread{background:var(--honey-glow)}
.app-topbar .tb-notif-menu .tn-item.unread:hover{background:#fdecc4}
.app-topbar .tb-notif-menu .tn-ic{font-size:18px;line-height:1.3;flex:none}
.app-topbar .tb-notif-menu .tn-bd{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.app-topbar .tb-notif-menu .tn-ti{font-size:13px;font-weight:600;color:var(--ink)}
.app-topbar .tb-notif-menu .tn-tx{font-size:12px;color:var(--ink-2);line-height:1.4}
.app-topbar .tb-notif-menu .tn-meta{display:flex;gap:8px;font-size:11px;color:var(--mute);margin-top:2px;font-family:'JetBrains Mono'}
.app-topbar .tb-notif-menu .tn-dot{position:absolute;top:14px;right:12px;width:8px;height:8px;border-radius:999px;background:var(--rose)}
.app-topbar .tb-notif-menu .tn-empty{padding:26px 14px;text-align:center;color:var(--mute);font-size:12px}

/* ── topbar account dropdown ─────────────────────────────────────── */
.app-topbar .tb-user-wrap{position:relative}
.app-topbar .tb-user-caret{color:var(--mute);font-size:10px;margin-left:2px}
.app-topbar .tb-user-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:214px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(11,18,32,.18);padding:6px;z-index:60}
.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)}
.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}

/* ══════════════════════════════════════════════════════════════
   COURSE PLAYER — full-screen lesson (video + notebook + practice)
   ══════════════════════════════════════════════════════════════ */
.lp-overlay{position:fixed;inset:0;z-index:200;background:rgba(11,18,32,.62);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px}
.lp-shell{width:min(1180px,100%);height:min(880px,94vh);background:var(--surface);border-radius:18px;box-shadow:0 30px 80px rgba(11,18,32,.45);display:flex;flex-direction:column;overflow:hidden}
.lp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 24px;background:linear-gradient(120deg,var(--deep) 0%,#16233b 100%);color:var(--on-accent)}
.lp-eyebrow{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--honey-soft);font-weight:700}
.lp-title{font-family:'Inter';font-weight:800;font-size:19px;letter-spacing:-0.015em;margin:5px 0 3px;color:var(--on-accent)}
.lp-headsub{font-size:12.5px;color:#cbd5e1}
.lp-head-r{display:flex;align-items:center;gap:12px;flex-shrink:0}
.lp-xp{font-family:'JetBrains Mono';font-size:12px;font-weight:800;color:var(--ink);background:var(--honey-soft);border-radius:999px;padding:4px 12px}
.lp-close{width:34px;height:34px;border-radius:9px;border:1px solid #ffffff33;background:#ffffff14;color:var(--on-accent);font-size:15px;cursor:pointer;transition:.15s}
.lp-close:hover{background:#ffffff2e}

.lp-body{flex:1;display:grid;grid-template-columns:268px 1fr;min-height:0}
.lp-side{border-right:1px solid var(--line);background:var(--fog);padding:14px 12px;overflow-y:auto}
.lp-side-h{font-family:'JetBrains Mono';font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);font-weight:700;padding:4px 8px 10px}
.lp-nav{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 11px;margin-bottom:7px;cursor:pointer;transition:.15s}
.lp-nav:hover{border-color:var(--honey-soft);background:var(--honey-cream)}
.lp-nav.current{border-color:var(--honey-d);background:var(--honey-glow);box-shadow:inset 3px 0 0 var(--honey-d)}
.lp-nav.locked{opacity:.5;cursor:not-allowed}
.lp-nav.locked:hover{border-color:var(--line);background:var(--card)}
.lp-nav-ic{width:26px;height:26px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-family:'JetBrains Mono';font-size:12px;font-weight:700;background:var(--mist);color:var(--ink-2);border:1px solid var(--line)}
.lp-nav.done .lp-nav-ic{background:var(--emerald-d);color:var(--on-accent);border-color:var(--emerald-d)}
.lp-nav.active .lp-nav-ic{background:var(--honey-d);color:var(--on-accent);border-color:var(--honey-d)}
.lp-nav-tx{min-width:0}
.lp-nav-tx b{display:block;font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.25;letter-spacing:-0.005em}
.lp-nav-tx small{display:block;font-size:10.5px;color:var(--mute);margin-top:2px}

.lp-main{display:flex;flex-direction:column;min-width:0;min-height:0}
.lp-tabs{display:flex;gap:4px;padding:12px 22px 0;border-bottom:1px solid var(--line);flex-shrink:0}
.lp-tabs button{appearance:none;border:none;background:transparent;font-family:'Inter';font-size:13px;font-weight:600;color:var(--mute);padding:9px 14px;border-radius:8px 8px 0 0;cursor:pointer;border-bottom:2px solid transparent;transition:.15s}
.lp-tabs button:hover{color:var(--ink-2)}
.lp-tabs button.on{color:var(--honey-d);border-bottom-color:var(--honey-d)}
.lp-tk{font-family:'JetBrains Mono';font-size:10.5px;background:var(--mist);border-radius:6px;padding:1px 6px;margin-left:3px;color:var(--ink-2)}
.lp-pane{flex:1;overflow-y:auto;padding:22px}

.lp-video{position:relative;width:100%;aspect-ratio:16/9;background:var(--deep);border-radius:12px;overflow:hidden;box-shadow:0 8px 24px rgba(11,18,32,.18)}
.lp-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.lp-vrow{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;flex-wrap:wrap}
.lp-vmeta{font-size:12.5px;color:var(--mute)}
.lp-vmeta b{color:var(--ink-2)}

.lp-btn{appearance:none;border:none;background:var(--honey-d);color:var(--on-accent);font-family:'Inter';font-weight:600;font-size:13px;padding:10px 18px;border-radius:9px;cursor:pointer;transition:.15s;margin-top:8px}
.lp-btn:hover:not(:disabled){background:#9a4708}
.lp-btn:disabled{background:var(--line);color:var(--mute);cursor:not-allowed}
.lp-btn.sm{padding:7px 13px;font-size:12px;margin-top:0}
.lp-btn.done{background:var(--emerald-d)}

.lp-nbbar{display:flex;align-items:center;justify-content:space-between;gap:12px;font-family:'JetBrains Mono';font-size:11.5px;color:var(--mute);margin-bottom:14px}
.lp-cell{margin-bottom:14px}
.lp-md{font-size:13.5px;color:var(--ink-2);line-height:1.6;background:var(--honey-cream);border:1px solid var(--honey-soft);border-radius:10px;padding:12px 16px}
.lp-md b{color:var(--honey-d)}
.lp-codecell{border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--card)}
.lp-cc-head{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;background:var(--mist);border-bottom:1px solid var(--line)}
.lp-incnt{font-family:'JetBrains Mono';font-size:11px;color:var(--teal-d);font-weight:700}
.lp-run{appearance:none;border:1px solid var(--emerald-d);background:var(--card);color:var(--emerald-d);font-family:'Inter';font-weight:700;font-size:11.5px;padding:4px 12px;border-radius:7px;cursor:pointer;transition:.15s}
.lp-run:hover{background:var(--emerald-d);color:var(--on-accent)}
.lp-src{margin:0;padding:13px 16px;font-family:'JetBrains Mono',monospace;font-size:12.5px;line-height:1.6;color:var(--ink);white-space:pre-wrap;overflow-x:auto}
.lp-out{display:flex;gap:10px;padding:11px 16px;border-top:1px dashed var(--line);background:var(--fog)}
.lp-outlbl{font-family:'JetBrains Mono';font-size:11px;font-weight:700;color:var(--rose-d,#be123c);flex-shrink:0;padding-top:1px}
.lp-out pre{margin:0;font-family:'JetBrains Mono',monospace;font-size:12.5px;line-height:1.55;color:var(--ink-2);white-space:pre-wrap}

.lp-prac{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:13px;background:var(--card);transition:.2s}
.lp-prac.done{border-color:var(--emerald);background:var(--emerald-glow)}
.lp-prac-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}
.lp-prac-n{font-family:'JetBrains Mono';font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--mute)}
.lp-prac-ok{font-size:11.5px;font-weight:700;color:var(--emerald-d)}
.lp-prac-q{font-size:13.5px;color:var(--ink);font-weight:600;margin-bottom:9px;line-height:1.45}
.lp-ta{width:100%;box-sizing:border-box;font-family:'JetBrains Mono',monospace;font-size:12.5px;line-height:1.55;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--fog);resize:vertical;outline:none}
.lp-ta:focus{border-color:var(--honey-soft);background:var(--card)}
.lp-prac-row{display:flex;align-items:center;gap:12px;margin-top:9px;flex-wrap:wrap}
.lp-prac-msg{font-size:12px;font-weight:600}
.lp-prac-msg.ok{color:var(--emerald-d)}
.lp-prac-msg.bad{color:var(--rose-d,#be123c)}

.lp-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;border-top:1px solid var(--line);background:var(--fog);flex-shrink:0;flex-wrap:wrap}
.lp-prog{display:flex;gap:8px;flex-wrap:wrap}
.lp-prog span{font-family:'Inter';font-size:11.5px;font-weight:600;color:var(--mute);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:5px 12px}
.lp-prog span small{font-family:'JetBrains Mono';font-size:10px;margin-left:3px}
.lp-prog span.on{color:var(--emerald-d);border-color:var(--emerald);background:var(--emerald-glow)}
.lp-complete{appearance:none;border:none;background:linear-gradient(120deg,var(--honey) 0%,var(--honey-d) 100%);color:var(--on-accent);font-family:'Inter';font-weight:700;font-size:14px;padding:12px 26px;border-radius:11px;cursor:pointer;box-shadow:0 6px 16px rgba(180,83,9,.32);transition:.15s}
.lp-complete:hover:not(:disabled){filter:brightness(1.06)}
.lp-complete:disabled{background:var(--line);color:var(--mute);cursor:not-allowed;box-shadow:none}

@media(max-width:760px){
  .lp-overlay{padding:0}
  .lp-shell{height:100vh;border-radius:0}
  .lp-body{grid-template-columns:1fr}
  .lp-side{display:none}
}

/* Course-player: circular progress ring (header) */
.lp-ring{position:relative;width:52px;height:52px;display:grid;place-items:center}
.lp-ring svg{transform:rotate(-90deg)}
.lp-ring-bg{fill:none;stroke:#ffffff2e;stroke-width:5}
.lp-ring-fg{fill:none;stroke:var(--emerald);stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset .5s ease}
.lp-ring-fg.full{stroke:#6EE7B7}
.lp-ring-pct{position:absolute;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:800;color:var(--on-accent)}

.lp-btn.ghost{background:#ffffff1a;border:1px solid #ffffff3d;color:var(--on-accent)}
.lp-btn.ghost:hover:not(:disabled){background:#ffffff33}


/* ===== XP history (BTX-XP-HISTORY-001) ===== */
.xph-hero{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:22px}
@media(min-width:720px){.xph-hero{grid-template-columns:.85fr 1.4fr;align-items:stretch}}
.xph-total{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;
  padding:22px 26px;border-radius:18px;color:#7c2d12;
  background:linear-gradient(135deg,#fde68a 0%,#fbbf24 100%);box-shadow:0 6px 20px rgba(251,191,36,.30)}
.xph-star{font-size:1.8rem;line-height:1}
.xph-total-val{font-size:2.5rem;font-weight:800;line-height:1.05}
.xph-total-lbl{font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.8}
.xph-note{display:flex;align-items:center;padding:18px 20px;border-radius:18px;
  background:var(--card);border:1px solid #f0e6cf;color:#4b5563;font-size:.93rem;line-height:1.55}
.xph-feedhead{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}
.xph-feedhead h2{margin:0;font-size:1.15rem}
.xph-count{font-size:.78rem;color:#9ca3af;font-weight:600}
.xph-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.xph-item{display:flex;align-items:center;gap:14px;padding:13px 16px;border-radius:14px;
  background:var(--card);border:1px solid #eef0f4;box-shadow:0 1px 3px rgba(16,24,40,.04)}
.xph-ic{flex:0 0 auto;width:44px;height:44px;display:flex;align-items:center;justify-content:center;
  font-size:1.3rem;border-radius:12px;background:#f8fafc;color:#64748b}
.xph-ic .bi{line-height:1}
.xph-welcome    .xph-ic{background:#fff7ed;color:#ea580c}
.xph-task       .xph-ic{background:#ecfdf5;color:#059669}
.xph-challenge  .xph-ic{background:#eff6ff;color:#2563eb}
.xph-quiz       .xph-ic{background:#f5f3ff;color:#7c3aed}
.xph-streak     .xph-ic{background:#fef2f2;color:#dc2626}
.xph-track      .xph-ic{background:#fffbeb;color:#d97706}
.xph-endorsement .xph-ic{background:#f0fdfa;color:#0d9488}
.xph-project    .xph-ic{background:#f0f9ff;color:#0284c7}
.xph-body{flex:1 1 auto;min-width:0}
.xph-title{font-weight:700;color:var(--text-primary);font-size:.97rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xph-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:3px;font-size:.77rem;color:#6b7280}
.xph-meta .xph-dot{opacity:.5}
.xph-day{font-weight:600;color:#92400e}
.xph-detail{opacity:.85}
.xph-amt{flex:0 0 auto;display:inline-flex;align-items:center;gap:.28rem;font-weight:800;font-size:1.02rem;color:#16a34a;background:#ecfdf5;
  padding:.25rem .6rem;border-radius:999px}
.xph-bolt{font-size:.92em;line-height:1;color:#f59e0b}
.xph-actions{margin-top:20px;display:flex;justify-content:center}
.xph-btn{cursor:pointer;border:none;padding:.72rem 1.4rem;border-radius:999px;font-weight:700;font-size:.92rem;
  color:#7c2d12;background:linear-gradient(135deg,#fbbf24,#f59e0b);box-shadow:0 3px 10px rgba(245,158,11,.30)}
.xph-btn:hover{filter:brightness(1.03)}

.xph-note p{margin:0}

/* Professional primary "Next" / step button */
.btn-next{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 22px;border:none;border-radius:10px;cursor:pointer;
  font-family:'Inter';font-weight:600;font-size:13px;letter-spacing:.01em;
  color:var(--on-accent);background:linear-gradient(135deg,var(--honey) 0%,var(--honey-d) 100%);
  box-shadow:0 1px 2px rgba(180,83,9,.20), 0 4px 12px rgba(180,83,9,.22);
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.btn-next .arw{transition:transform .18s ease}
.btn-next:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 4px rgba(180,83,9,.24), 0 8px 20px rgba(180,83,9,.28);filter:brightness(1.03)}
.btn-next:hover:not(:disabled) .arw{transform:translateX(3px)}
.btn-next:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px rgba(180,83,9,.22)}
.btn-next:focus-visible{outline:2px solid var(--honey-soft);outline-offset:2px}
.btn-next:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;filter:grayscale(.2)}

/* ════════════════════════════════════════════════════════════
   DARK MODE — retarget this file's hardcoded surfaces.
   Tokens flip in shared/brand.css; here we only swap the local
   white (#fff) panels → var(--surface) (elevated surface), and
   the intentionally-dark var(--ink) backgrounds → var(--deep).
   ════════════════════════════════════════════════════════════ */
/* Elevated surfaces (were #fff): topbar, cards, menus, pops, inputs, modals, profile/challenge/course-player panels */
[data-theme="dark"] .app-topbar,[data-theme="dark"] .tb-search-pop,[data-theme="dark"] .dash-card,[data-theme="dark"] .ai-badge,[data-theme="dark"] .ai-impact,[data-theme="dark"] .bubble,[data-theme="dark"] .pd-card,[data-theme="dark"] .quiz-card,[data-theme="dark"] .pf-value,[data-theme="dark"] .pf-cancel,[data-theme="dark"] .id-card,[data-theme="dark"] .id-action,[data-theme="dark"] .pf-hero,[data-theme="dark"] .pf-stat,[data-theme="dark"] .pf-comp,[data-theme="dark"] .crop-modal,[data-theme="dark"] .crop-btn,[data-theme="dark"] .set-row,[data-theme="dark"] .placeholder,[data-theme="dark"] .landing-page,[data-theme="dark"] .landing-nav,[data-theme="dark"] .feat-card,[data-theme="dark"] .auth-card,[data-theme="dark"] .auth-btn.sec,[data-theme="dark"] .app-sidebar,[data-theme="dark"] .app-sidebar.persona-student,[data-theme="dark"] .ch-btn,[data-theme="dark"] .ch-search,[data-theme="dark"] .ch-oppcard,[data-theme="dark"] .ch-lb,[data-theme="dark"] .ch-tab.active,[data-theme="dark"] .ch-hrow,[data-theme="dark"] .ch-badge,[data-theme="dark"] .ch-modal,[data-theme="dark"] .ch-opt,[data-theme="dark"] .tb-notif-menu,[data-theme="dark"] .tb-user-menu,[data-theme="dark"] .lp-shell,[data-theme="dark"] .lp-nav,[data-theme="dark"] .lp-codecell,[data-theme="dark"] .lp-run,[data-theme="dark"] .lp-prac,[data-theme="dark"] .xph-ic{background:var(--surface)}
/* Intentionally-dark surfaces (were var(--ink)): primary buttons, dark CTAs, active states, avatar-edit badge */
[data-theme="dark"] .pf-save,[data-theme="dark"] .id-action.primary,[data-theme="dark"] .pfc-cta,[data-theme="dark"] .crop-btn.primary,[data-theme="dark"] .landing-social,[data-theme="dark"] .ch-opt.active,[data-theme="dark"] .pf-avatar-edit{background:var(--deep)}

/* (Daily-guide chat now themes itself via --card / --text-primary tokens
   on .chat-msg .bubble — no per-theme override needed.) */

/* ══════════════════════════════════════════════════════════════
   LEARNING SPACE — premium skill-growth ecosystem
   Scoped under .ls / .lsr. Indigo accent + glassmorphism.
   Per-card accent passed inline as --ca / --cb.
   ══════════════════════════════════════════════════════════════ */
.ls,.lsr{
  --i1:#6366F1; --i2:#4338CA; --i3:#A855F7;
  --ca:#6366F1; --cb:#4338CA;
  --ls-glass:rgba(255,255,255,.72);
  --ls-glass-2:rgba(255,255,255,.55);
  --ls-line:rgba(99,102,241,.16);
  --ls-ink:var(--ink); --ls-mute:var(--mute);
  --ls-shadow:0 24px 60px -28px rgba(49,38,110,.55);
  position:relative;
}
[data-theme="dark"] .ls,[data-theme="dark"] .lsr{
  --ls-glass:rgba(40,30,12,.66); --ls-glass-2:rgba(40,30,12,.5);
  --ls-line:rgba(251,191,36,.22); --ls-shadow:0 24px 60px -28px rgba(0,0,0,.7);
}
/* full-bleed mesh backdrop inside the 1280 content frame */
.ls-canvas{position:relative;margin:-28px -32px -64px;padding:30px 32px 70px;min-height:calc(100vh - 62px);
  background:
    radial-gradient(58% 46% at 12% -4%, rgba(245,158,11,.16), transparent 62%),
    radial-gradient(46% 42% at 102% 6%, rgba(251,191,36,.13), transparent 58%),
    radial-gradient(48% 44% at 86% 104%, rgba(180,83,9,.11), transparent 60%),
    var(--fog);}
[data-theme="dark"] .ls-canvas{
  background:
    radial-gradient(58% 46% at 12% -4%, rgba(245,158,11,.22), transparent 62%),
    radial-gradient(46% 42% at 102% 6%, rgba(251,191,36,.16), transparent 58%),
    radial-gradient(48% 44% at 86% 104%, rgba(180,83,9,.16), transparent 60%),
    var(--fog);}

/* ── HERO ───────────────────────────────────────────────── */
.ls-hero{display:grid;grid-template-columns:1.55fr 1fr;gap:18px;margin-bottom:24px}
.ls-glass{background:var(--ls-glass);backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);
  border:1px solid var(--ls-glass-2);border-radius:22px;box-shadow:var(--ls-shadow)}
.ls-hero-main{padding:26px 28px;position:relative;overflow:hidden}
.ls-hero-main::after{content:'';position:absolute;right:-60px;top:-60px;width:240px;height:240px;border-radius:50%;
  background:radial-gradient(circle, rgba(99,102,241,.22), transparent 70%);pointer-events:none}
.ls-eyebrow{font-family:'JetBrains Mono';font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--i1);display:flex;align-items:center;gap:8px;margin-bottom:10px}
.ls-eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--emerald);box-shadow:0 0 0 4px rgba(16,185,129,.18)}
.ls-hero-main h1{font-size:28px;font-weight:800;letter-spacing:-.02em;color:var(--ls-ink);margin:0 0 6px;line-height:1.15}
.ls-hero-main h1 .grad{background:linear-gradient(120deg,var(--i1),var(--i3));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.ls-hero-sub{font-size:13.5px;color:var(--ls-mute);max-width:46ch;margin-bottom:18px}
.ls-search{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--ls-line);
  border-radius:13px;padding:11px 15px;box-shadow:0 6px 20px -12px rgba(49,38,110,.4);max-width:440px;transition:.18s}
.ls-search:focus-within{border-color:var(--i1);box-shadow:0 8px 26px -12px rgba(99,102,241,.55)}
.ls-search svg{width:17px;height:17px;color:var(--ls-mute);flex-shrink:0}
.ls-search input{border:none;outline:none;background:none;flex:1;font-family:'Inter';font-size:13.5px;color:var(--ls-ink)}
.ls-search .kbd{font-family:'JetBrains Mono';font-size:10px;color:var(--ls-mute);border:1px solid var(--ls-line);border-radius:6px;padding:2px 7px}
.ls-chips{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.ls-chip{display:inline-flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--ls-line);
  border-radius:999px;padding:7px 13px;font-size:12px;font-weight:600;color:var(--ls-ink);cursor:default}
.ls-chip b{font-family:'JetBrains Mono'}
.ls-chip .ic{font-size:13px}
.ls-chip.streak{background:linear-gradient(120deg,#FFF7ED,#FEF3C7);border-color:#FCD34D;color:#B45309}
[data-theme="dark"] .ls-chip.streak{background:linear-gradient(120deg,#3A2C0C,#2A1F08);color:#FBBF24}

/* readiness panel (right hero) */
.ls-hero-side{padding:24px 26px;display:flex;align-items:center;gap:22px}
.ls-ring{--p:0;width:124px;height:124px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;position:relative;
  background:conic-gradient(var(--i1) calc(var(--p)*1%), rgba(99,102,241,.14) 0);}
.ls-ring::before{content:'';position:absolute;inset:11px;border-radius:50%;background:var(--surface);box-shadow:inset 0 2px 10px rgba(49,38,110,.12)}
.ls-ring .val{position:relative;text-align:center}
.ls-ring .val b{display:block;font-size:30px;font-weight:800;color:var(--ls-ink);line-height:1;font-family:'Inter'}
.ls-ring .val span{font-size:9.5px;font-family:'JetBrains Mono';letter-spacing:.1em;color:var(--ls-mute);text-transform:uppercase}
.ls-side-meta{display:flex;flex-direction:column;gap:10px;min-width:0}
.ls-side-meta .lbl{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ls-mute)}
.ls-side-meta h3{font-size:15px;font-weight:800;color:var(--ls-ink);margin:1px 0 4px}
.ls-side-stat{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:12.5px}
.ls-side-stat span{color:var(--ls-mute)}
.ls-side-stat b{font-family:'JetBrains Mono';color:var(--ls-ink)}
.ls-side-stat b.up{color:var(--emerald-d)}

/* ── SECTION HEADERS / FILTERS ──────────────────────────── */
.ls-sec-head{display:flex;align-items:flex-end;justify-content:space-between;margin:6px 2px 16px;gap:16px}
.ls-sec-head h2{font-size:19px;font-weight:800;letter-spacing:-.01em;color:var(--ls-ink);margin:0}
.ls-sec-head p{font-size:12.5px;color:var(--ls-mute);margin:3px 0 0}
.ls-filters{display:flex;gap:6px;background:var(--ls-glass-2);border:1px solid var(--ls-line);border-radius:11px;padding:4px}
.ls-filter{border:none;background:none;font-family:'Inter';font-size:12px;font-weight:600;color:var(--ls-mute);
  padding:7px 14px;border-radius:8px;cursor:pointer;transition:.15s}
.ls-filter.on{background:var(--surface);color:var(--i1);box-shadow:0 3px 10px -5px rgba(49,38,110,.5)}

/* ── SKILL CARDS ────────────────────────────────────────── */
.ls-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:1180px){.ls-grid{grid-template-columns:repeat(2,1fr)}}
.ls-card{position:relative;overflow:hidden;border-radius:20px;padding:20px;cursor:pointer;
  background:var(--ls-glass);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);
  border:1px solid var(--ls-glass-2);box-shadow:0 16px 40px -26px rgba(49,38,110,.5);
  transition:transform .22s cubic-bezier(.2,.7,.3,1), box-shadow .22s, border-color .22s}
.ls-card::before{content:'';position:absolute;inset:0;border-radius:20px;padding:1px;pointer-events:none;
  background:linear-gradient(140deg, color-mix(in srgb,var(--ca) 55%, transparent), transparent 45%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:.7}
.ls-card::after{content:'';position:absolute;right:-50px;top:-50px;width:160px;height:160px;border-radius:50%;
  background:radial-gradient(circle, color-mix(in srgb,var(--ca) 30%, transparent), transparent 70%);pointer-events:none;transition:.22s}
.ls-card:hover{transform:translateY(-5px);box-shadow:0 28px 56px -24px color-mix(in srgb,var(--ca) 45%, rgba(49,38,110,.4));border-color:color-mix(in srgb,var(--ca) 40%, transparent)}
.ls-card:hover::after{transform:scale(1.25);opacity:.9}
.ls-card-top{display:flex;align-items:flex-start;gap:13px;margin-bottom:13px;position:relative}
.ls-glyph{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;font-size:27px;flex-shrink:0;
  background:linear-gradient(145deg, color-mix(in srgb,var(--ca) 20%, var(--surface)), var(--surface));
  border:1px solid color-mix(in srgb,var(--ca) 30%, transparent);
  box-shadow:0 10px 22px -12px color-mix(in srgb,var(--ca) 60%, transparent), inset 0 1px 0 rgba(255,255,255,.6)}
.ls-card-id{min-width:0;flex:1}
.ls-card-id h3{font-size:16.5px;font-weight:800;color:var(--ls-ink);margin:1px 0 2px;letter-spacing:-.01em}
.ls-card-id .cat{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ca)}
.ls-rel{flex-shrink:0;text-align:center;background:color-mix(in srgb,var(--ca) 12%, var(--surface));
  border:1px solid color-mix(in srgb,var(--ca) 22%, transparent);border-radius:11px;padding:5px 9px}
.ls-rel b{display:block;font-size:15px;font-weight:800;color:var(--ca);font-family:'Inter';line-height:1}
.ls-rel span{font-size:8px;font-family:'JetBrains Mono';letter-spacing:.08em;text-transform:uppercase;color:var(--ls-mute)}
.ls-card-blurb{font-size:12.5px;color:var(--ls-mute);line-height:1.5;margin-bottom:14px;min-height:38px}
.ls-mbar{margin-bottom:13px}
.ls-mbar-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.ls-mbar-top .m-lbl{font-size:11px;font-weight:600;color:var(--ls-mute)}
.ls-mbar-top .m-val{font-family:'JetBrains Mono';font-size:13px;font-weight:700;color:var(--ca)}
.ls-track{height:8px;border-radius:5px;background:color-mix(in srgb,var(--ca) 12%, var(--mist));overflow:hidden}
.ls-track .fill{height:100%;border-radius:5px;background:linear-gradient(90deg,var(--ca),var(--cb));transition:width .5s cubic-bezier(.2,.7,.3,1)}
.ls-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;margin-bottom:15px}
.ls-meta-i{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--ls-ink)}
.ls-meta-i .mi{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;font-size:11px;flex-shrink:0;
  background:color-mix(in srgb,var(--ca) 12%, var(--surface));color:var(--ca)}
.ls-meta-i b{font-weight:700}
.ls-demand{display:flex;align-items:center;gap:9px;margin-bottom:15px}
.ls-demand .dl{font-size:10.5px;font-family:'JetBrains Mono';text-transform:uppercase;letter-spacing:.08em;color:var(--ls-mute);flex-shrink:0}
.ls-demand .dbar{flex:1;height:5px;border-radius:3px;background:var(--mist);overflow:hidden}
.ls-demand .dbar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#F59E0B,#EF4444)}
.ls-demand .dv{font-size:10.5px;font-weight:700;font-family:'JetBrains Mono';color:var(--ls-ink)}
.ls-card-cta{display:flex;align-items:center;justify-content:space-between;padding-top:13px;border-top:1px dashed var(--ls-line)}
.ls-card-cta .lrn{font-size:11px;color:var(--ls-mute)}
.ls-card-cta .go{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--ca);transition:gap .18s}
.ls-card:hover .ls-card-cta .go{gap:10px}
.ls-pill-tag{position:absolute;top:14px;right:14px;font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:999px;z-index:2}
.ls-pill-tag.crit{background:#FEE2E2;color:#B91C1C}
.ls-pill-tag.hot{background:#FEF3C7;color:#B45309}
[data-theme="dark"] .ls-pill-tag.crit{background:#3A141C;color:#FB7185}
[data-theme="dark"] .ls-pill-tag.hot{background:#3A2C0C;color:#FBBF24}
.ls-studio-tag{position:absolute;top:14px;right:14px;font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:999px;z-index:2;color:#fff;
  background:linear-gradient(135deg,var(--ca,#6B21A8),var(--cb,#A78BFA));box-shadow:0 2px 8px rgba(107,33,168,.3)}

/* ── BOTTOM BANNER ──────────────────────────────────────── */
.ls-banner{margin-top:22px;border-radius:20px;padding:24px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;
  background:linear-gradient(120deg,var(--i2),var(--i1) 55%,var(--i3));color:var(--on-accent);position:relative;overflow:hidden;
  box-shadow:0 26px 60px -26px rgba(67,56,202,.7)}
.ls-banner::before{content:'';position:absolute;inset:0;background: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='%23fff' stroke-width='1' points='42,2 80,24 80,72 42,94 4,72 4,24'/></svg>");background-size:72px 82px;opacity:.12}
.ls-banner .bt{position:relative}
.ls-banner h3{font-size:21px;font-weight:800;margin:0 0 4px}
.ls-banner p{font-size:13px;opacity:.92;margin:0}
.ls-banner .bcta{position:relative;background:var(--card);color:var(--i2);font-weight:700;font-size:13.5px;border:none;
  border-radius:12px;padding:13px 24px;cursor:pointer;white-space:nowrap;box-shadow:0 10px 26px -10px rgba(0,0,0,.4)}

/* ══════════════ ROADMAP (skill detail) ══════════════════ */
.ls-road{display:grid;grid-template-columns:1fr 326px;gap:22px;align-items:start}
@media(max-width:1080px){.ls-road{grid-template-columns:1fr}}
.lsr-back{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ls-mute);
  background:var(--ls-glass);border:1px solid var(--ls-line);border-radius:9px;padding:7px 14px;cursor:pointer;margin-bottom:14px;transition:.15s}
.lsr-back:hover{color:var(--i1);border-color:var(--i1)}

/* roadmap hero header */
.lsr-hero{border-radius:22px;padding:26px 28px;margin-bottom:20px;position:relative;overflow:hidden;color:var(--on-accent);
  background:linear-gradient(130deg, var(--cb), var(--ca) 70%);box-shadow:0 26px 60px -28px color-mix(in srgb,var(--ca) 70%, #000)}
.lsr-hero::before{content:'';position:absolute;inset:0;background: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='%23fff' stroke-width='1' points='42,2 80,24 80,72 42,94 4,72 4,24'/></svg>");background-size:74px 84px;opacity:.13}
.lsr-hero::after{content:'';position:absolute;right:-40px;bottom:-70px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.22),transparent 70%)}
.lsr-crumb{position:relative;font-family:'JetBrains Mono';font-size:10px;letter-spacing:.1em;text-transform:uppercase;opacity:.85;margin-bottom:12px}
.lsr-head{position:relative;display:flex;align-items:center;gap:18px}
.lsr-bigglyph{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;font-size:32px;flex-shrink:0;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(6px)}
.lsr-head h1{font-size:27px;font-weight:800;margin:0 0 3px;color:var(--on-accent);letter-spacing:-.02em}
.lsr-head .sub{font-size:13px;opacity:.92;max-width:52ch}
.lsr-hero-stats{position:relative;display:flex;gap:26px;margin-top:20px;flex-wrap:wrap}
.lsr-hs{display:flex;flex-direction:column}
.lsr-hs b{font-size:20px;font-weight:800;font-family:'Inter';line-height:1.1}
.lsr-hs span{font-size:10px;font-family:'JetBrains Mono';letter-spacing:.08em;text-transform:uppercase;opacity:.85;margin-top:3px}

/* ── skill tree / nodes ─────────────────────────────────── */
.lsr-tree{position:relative;padding-left:6px}
.lsr-phase{font-family:'JetBrains Mono';font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ca);margin:18px 0 12px 46px;display:flex;align-items:center;gap:10px}
.lsr-phase:first-child{margin-top:2px}
.lsr-phase::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--ls-line),transparent)}
.lsr-node{position:relative;padding-left:54px;padding-bottom:14px}
.lsr-node::before{content:'';position:absolute;left:17px;top:34px;bottom:-4px;width:2px;
  background:linear-gradient(var(--ca),color-mix(in srgb,var(--ca) 20%, transparent))}
.lsr-node:last-child::before{display:none}
.lsr-node.locked::before{background:var(--ls-line)}
.lsr-orb{position:absolute;left:0;top:0;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  font-size:15px;font-weight:800;font-family:'JetBrains Mono';z-index:2;border:3px solid var(--surface);box-shadow:0 4px 12px -4px rgba(49,38,110,.45)}
.lsr-orb.done{background:linear-gradient(145deg,var(--emerald),var(--emerald-d));color:var(--on-accent)}
.lsr-orb.active{background:linear-gradient(145deg,var(--ca),var(--cb));color:var(--on-accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--ca) 22%, transparent),0 6px 16px -4px var(--ca);animation:lsrPulse 2.4s ease-in-out infinite}
.lsr-orb.locked{background:var(--mist);color:var(--ls-mute);border-color:var(--surface)}
@keyframes lsrPulse{0%,100%{box-shadow:0 0 0 5px color-mix(in srgb,var(--ca) 20%, transparent),0 6px 16px -4px var(--ca)}50%{box-shadow:0 0 0 9px color-mix(in srgb,var(--ca) 8%, transparent),0 6px 16px -4px var(--ca)}}
.lsr-card{border-radius:15px;border:1px solid var(--ls-line);background:var(--ls-glass);backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);transition:.18s;overflow:hidden}
.lsr-card.active{border-color:color-mix(in srgb,var(--ca) 45%, transparent);box-shadow:0 16px 40px -22px color-mix(in srgb,var(--ca) 60%, transparent)}
.lsr-card.locked{opacity:.62}
.lsr-card-head{display:flex;align-items:center;gap:13px;padding:14px 16px;cursor:pointer}
.lsr-card.locked .lsr-card-head{cursor:not-allowed}
.lsr-ct{flex:1;min-width:0}
.lsr-ct h4{font-size:14px;font-weight:700;color:var(--ls-ink);margin:0 0 3px;display:flex;align-items:center;gap:8px}
.lsr-ct .meta{font-size:11.5px;color:var(--ls-mute);display:flex;flex-wrap:wrap;gap:4px 12px}
.lsr-badge{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--ca) 12%, var(--surface));color:var(--ca);display:inline-flex;gap:4px;align-items:center}
.lsr-mini{width:90px;flex-shrink:0;text-align:right}
.lsr-mini .mp{font-family:'JetBrains Mono';font-size:12px;font-weight:700;color:var(--ca)}
.lsr-mini .mt{height:5px;border-radius:3px;background:var(--mist);overflow:hidden;margin-top:4px}
.lsr-mini .mt i{display:block;height:100%;background:linear-gradient(90deg,var(--ca),var(--cb))}
.lsr-mini.done .mp{color:var(--emerald-d)}
.lsr-mini.done .mt i{background:linear-gradient(90deg,var(--emerald),var(--emerald-d))}
.lsr-chev{width:20px;color:var(--ls-mute);flex-shrink:0;transition:transform .2s;font-size:13px;text-align:center}
.lsr-card.open .lsr-chev{transform:rotate(180deg)}
.lsr-xp{flex-shrink:0;font-family:'JetBrains Mono';font-size:10.5px;font-weight:700;color:#B45309;
  background:#FEF3C7;border-radius:999px;padding:3px 9px}
[data-theme="dark"] .lsr-xp{background:#3A2C0C;color:#FBBF24}
/* expanded body */
.lsr-body{padding:2px 16px 16px 16px;border-top:1px dashed var(--ls-line)}
.lsr-comps{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:14px 0}
.lsr-comp{text-align:center;background:var(--surface);border:1px solid var(--ls-line);border-radius:11px;padding:10px 6px}
.lsr-comp .ci{font-size:16px;margin-bottom:4px}
.lsr-comp b{display:block;font-size:15px;font-weight:800;color:var(--ls-ink);font-family:'Inter'}
.lsr-comp span{font-size:9px;font-family:'JetBrains Mono';letter-spacing:.05em;text-transform:uppercase;color:var(--ls-mute)}
.lsr-impact-row{display:flex;align-items:flex-start;gap:9px;font-size:12px;color:var(--ls-ink);
  background:color-mix(in srgb,var(--ca) 8%, var(--surface));border:1px solid var(--ls-line);border-radius:11px;padding:11px 13px;margin-bottom:13px}
.lsr-impact-row .ti{flex-shrink:0;color:var(--ca);font-size:14px}
.lsr-actions{display:flex;gap:9px;flex-wrap:wrap}
.lsr-btn{border:none;border-radius:10px;padding:10px 18px;font-family:'Inter';font-weight:700;font-size:12.5px;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:7px}
.lsr-btn.primary{background:linear-gradient(135deg,var(--ca),var(--cb));color:var(--on-accent);box-shadow:0 10px 22px -8px var(--ca)}
.lsr-btn.primary:hover{transform:translateY(-1px)}
.lsr-btn.ghost{background:var(--surface);color:var(--ls-ink);border:1px solid var(--ls-line)}
.lsr-btn.lock{background:var(--mist);color:var(--ls-mute);cursor:not-allowed}

/* ── STICKY RAIL ────────────────────────────────────────── */
.lsr-rail{position:sticky;top:18px;display:flex;flex-direction:column;gap:16px}
.lsr-panel{border-radius:18px;padding:18px 19px;background:var(--ls-glass);backdrop-filter:blur(18px) saturate(150%);
  -webkit-backdrop-filter:blur(18px) saturate(150%);border:1px solid var(--ls-glass-2);box-shadow:var(--ls-shadow)}
.lsr-panel h3{font-size:13px;font-weight:800;color:var(--ls-ink);margin:0 0 13px;display:flex;align-items:center;gap:8px;letter-spacing:-.01em}
.lsr-panel h3 .hi{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;font-size:13px;
  background:color-mix(in srgb,var(--ca) 14%, var(--surface));color:var(--ca)}
/* overall mastery donut */
.lsr-mastery{display:flex;align-items:center;gap:16px;margin-bottom:6px}
.lsr-donut{--p:0;width:84px;height:84px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;position:relative;
  background:conic-gradient(var(--ca) calc(var(--p)*1%), color-mix(in srgb,var(--ca) 14%, var(--mist)) 0)}
.lsr-donut::before{content:'';position:absolute;inset:9px;border-radius:50%;background:var(--surface)}
.lsr-donut b{position:relative;font-size:21px;font-weight:800;color:var(--ls-ink);font-family:'Inter'}
.lsr-mastery .mm{font-size:11.5px;color:var(--ls-mute);line-height:1.5}
.lsr-mastery .mm b{display:block;font-size:13px;color:var(--ls-ink);font-weight:700;margin-bottom:2px}
/* stat tiles grid */
.lsr-tiles{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.lsr-tile{background:var(--surface);border:1px solid var(--ls-line);border-radius:12px;padding:12px 12px 11px}
.lsr-tile .ti{font-size:15px;margin-bottom:6px}
.lsr-tile b{display:block;font-size:19px;font-weight:800;color:var(--ls-ink);font-family:'Inter';line-height:1}
.lsr-tile span{font-size:10px;font-family:'JetBrains Mono';letter-spacing:.04em;text-transform:uppercase;color:var(--ls-mute)}
.lsr-tile.accent{background:linear-gradient(140deg,color-mix(in srgb,var(--ca) 14%, var(--surface)),var(--surface))}
/* readiness impact bar */
.lsr-ri{display:flex;flex-direction:column;gap:9px}
.lsr-ri-row{display:flex;align-items:center;justify-content:space-between;font-size:12px}
.lsr-ri-row span{color:var(--ls-mute)}
.lsr-ri-row b{font-family:'JetBrains Mono';color:var(--ls-ink)}
.lsr-ri-bar{height:7px;border-radius:4px;background:var(--mist);overflow:hidden}
.lsr-ri-bar i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--ca),var(--cb))}
.lsr-ri-bar i.now{background:linear-gradient(90deg,var(--emerald),var(--emerald-d))}
.lsr-ri-note{font-size:11px;color:var(--ls-mute);line-height:1.5;margin-top:2px}
.lsr-ri-note b{color:var(--emerald-d);font-family:'JetBrains Mono'}
/* recommended next */
.lsr-next{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,color-mix(in srgb,var(--ca) 12%, var(--surface)),var(--surface));
  border:1px solid color-mix(in srgb,var(--ca) 22%, transparent);border-radius:13px;padding:13px;cursor:pointer;transition:.15s}
.lsr-next:hover{border-color:var(--ca);transform:translateY(-1px)}
.lsr-next .ni{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:17px;flex-shrink:0;
  background:linear-gradient(145deg,var(--ca),var(--cb));color:var(--on-accent)}
.lsr-next .nt{flex:1;min-width:0}
.lsr-next .nt .k{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ca)}
.lsr-next .nt h4{font-size:13px;font-weight:700;color:var(--ls-ink);margin:2px 0 0}
.lsr-next .nt p{font-size:11px;color:var(--ls-mute);margin:2px 0 0}

/* ── AI COACH ──────────────────────────────────────────── */
.lsr-coach{border-radius:18px;padding:18px 19px;position:relative;overflow:hidden;
  background:linear-gradient(150deg, #1E1B4B, #312E81 70%, #4338CA);color:var(--on-accent);box-shadow:0 22px 50px -26px rgba(30,27,75,.9)}
.lsr-coach::before{content:'';position:absolute;right:-40px;top:-40px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(168,85,247,.4),transparent 70%)}
.lsr-coach .ch-row{position:relative;display:flex;align-items:center;gap:10px;margin-bottom:12px}
.lsr-coach .ch-av{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;font-size:17px;
  background:linear-gradient(145deg,#A855F7,#6366F1);box-shadow:0 6px 16px -6px rgba(168,85,247,.7)}
.lsr-coach .ch-row b{font-size:13.5px;font-weight:800}
.lsr-coach .ch-row span{display:block;font-size:10px;font-family:'JetBrains Mono';letter-spacing:.08em;text-transform:uppercase;opacity:.7}
.lsr-coach p.insight{position:relative;font-size:12.5px;line-height:1.6;opacity:.95;margin:0 0 13px}
.lsr-coach .ch-tags{position:relative;display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.lsr-coach .ch-tag{display:flex;align-items:center;gap:9px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
  border-radius:10px;padding:9px 11px;font-size:11.5px}
.lsr-coach .ch-tag .tk{font-size:13px}
.lsr-coach .ch-tag b{font-weight:700}
.lsr-coach .ch-tag.weak{border-color:rgba(251,113,133,.4);background:rgba(251,113,133,.12)}
.lsr-coach .ch-tag.strong{border-color:rgba(52,211,153,.4);background:rgba(52,211,153,.12)}
.lsr-coach .ch-cta{position:relative;width:100%;background:var(--card);color:#312E81;font-weight:700;font-size:12.5px;
  border:none;border-radius:11px;padding:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}

/* ── PLACEMENT IMPACT (full width below tree) ───────────── */
.lsr-pi{margin-top:20px;border-radius:18px;padding:22px 24px;background:var(--ls-glass);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--ls-glass-2);box-shadow:var(--ls-shadow)}
.lsr-pi h3{font-size:16px;font-weight:800;color:var(--ls-ink);margin:0 0 4px;display:flex;align-items:center;gap:9px}
.lsr-pi .pisub{font-size:12.5px;color:var(--ls-mute);margin:0 0 18px}
.lsr-pi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:760px){.lsr-pi-grid{grid-template-columns:repeat(2,1fr)}}
.lsr-pi-card{background:var(--surface);border:1px solid var(--ls-line);border-radius:14px;padding:16px;position:relative;overflow:hidden}
.lsr-pi-card .pii{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;font-size:17px;margin-bottom:11px;
  background:color-mix(in srgb,var(--ca) 14%, var(--surface));color:var(--ca)}
.lsr-pi-card .piv{font-size:23px;font-weight:800;color:var(--ls-ink);font-family:'Inter';line-height:1}
.lsr-pi-card .pik{font-size:11.5px;color:var(--ls-mute);margin-top:3px}
.lsr-pi-card .pid{font-size:11px;font-weight:700;font-family:'JetBrains Mono';margin-top:8px;color:var(--emerald-d)}
.lsr-pathways{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
.lsr-pathway{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--ls-ink);
  background:color-mix(in srgb,var(--ca) 9%, var(--surface));border:1px solid var(--ls-line);border-radius:999px;padding:8px 14px}
.lsr-pathway .pe{width:7px;height:7px;border-radius:50%;background:var(--ca)}

/* ══════════════════════════════════════════════════════════════
   LEARNING ENVIRONMENT — concept sidebar + placeholder video lessons
   Scoped under .lenv. Inherits --ca/--cb from currentSkill.
   ══════════════════════════════════════════════════════════════ */
.lenv{ --i1:#6366F1; --i2:#4338CA; --ca:#6366F1; --cb:#4338CA;
  --ls-glass:rgba(255,255,255,.72); --ls-glass-2:rgba(255,255,255,.55);
  --ls-line:rgba(99,102,241,.16); --ls-ink:var(--ink); --ls-mute:var(--mute);
  --ls-shadow:0 24px 60px -28px rgba(49,38,110,.55); }
[data-theme="dark"] .lenv{ --ls-glass:rgba(40,30,12,.66); --ls-glass-2:rgba(40,30,12,.5);
  --ls-line:rgba(251,191,36,.22); --ls-shadow:0 24px 60px -28px rgba(0,0,0,.7); }
.lenv-grid{display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:start}
@media(max-width:980px){.lenv-grid{grid-template-columns:1fr}}

/* ── concept sidebar ── */
.lenv-side{position:sticky;top:18px;border-radius:20px;padding:18px;background:var(--ls-glass);
  backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);
  border:1px solid var(--ls-glass-2);box-shadow:var(--ls-shadow)}
.lenv-side-head{display:flex;align-items:center;gap:12px;margin-bottom:15px}
.lenv-side-glyph{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:23px;flex-shrink:0;
  background:linear-gradient(145deg,color-mix(in srgb,var(--ca) 22%, var(--surface)),var(--surface));
  border:1px solid color-mix(in srgb,var(--ca) 30%, transparent)}
.lenv-side-k{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ca)}
.lenv-side-head h3{font-size:16px;font-weight:800;color:var(--ls-ink);margin:2px 0 0}
.lenv-side-prog{margin-bottom:16px}
.lenv-side-prog-top{display:flex;justify-content:space-between;align-items:baseline;font-size:11.5px;color:var(--ls-mute);margin-bottom:5px}
.lenv-side-prog-top b{font-family:'JetBrains Mono';color:var(--ca)}
.lenv-track{height:7px;border-radius:4px;background:color-mix(in srgb,var(--ca) 12%, var(--mist));overflow:hidden}
.lenv-track i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,var(--ca),var(--cb))}
.lenv-side-lbl{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ls-mute);margin:4px 0 9px}
.lenv-concepts{display:flex;flex-direction:column;gap:5px;max-height:60vh;overflow-y:auto}
.lenv-concept{display:flex;align-items:center;gap:11px;text-align:left;width:100%;cursor:pointer;
  background:none;border:1px solid transparent;border-radius:11px;padding:9px 10px;transition:.14s}
.lenv-concept:hover:not(:disabled){background:var(--surface);border-color:var(--ls-line)}
.lenv-concept.on{background:color-mix(in srgb,var(--ca) 12%, var(--surface));border-color:color-mix(in srgb,var(--ca) 32%, transparent)}
.lenv-concept.locked{opacity:.5;cursor:not-allowed}
.lenv-concept .lc-orb{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;
  font-family:'JetBrains Mono';flex-shrink:0;color:var(--on-accent)}
.lenv-concept .lc-orb.done{background:linear-gradient(145deg,var(--emerald),var(--emerald-d))}
.lenv-concept .lc-orb.active{background:linear-gradient(145deg,var(--ca),var(--cb));box-shadow:0 0 0 3px color-mix(in srgb,var(--ca) 20%, transparent)}
.lenv-concept .lc-orb.locked{background:var(--mist);color:var(--ls-mute)}
.lenv-concept .lc-body{min-width:0;flex:1}
.lenv-concept .lc-title{display:block;font-size:12.5px;font-weight:600;color:var(--ls-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lenv-concept.on .lc-title{color:var(--ca)}
.lenv-concept .lc-meta{display:block;font-size:10.5px;color:var(--ls-mute);font-family:'JetBrains Mono';margin-top:1px}

/* ── main column ── */
.lenv-main{min-width:0}
.lenv-crumb{display:flex;align-items:center;gap:14px;font-size:12px;color:var(--ls-mute);margin-bottom:14px}
.lenv-back{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ls-mute);
  background:var(--ls-glass);border:1px solid var(--ls-line);border-radius:9px;padding:7px 13px;cursor:pointer;transition:.15s}
.lenv-back:hover{color:var(--ca);border-color:var(--ca)}
.lenv-main-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}
.lenv-phase{font-family:'JetBrains Mono';font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ca)}
.lenv-main-head h1{font-size:25px;font-weight:800;letter-spacing:-.02em;color:var(--ls-ink);margin:5px 0 0}
.lenv-headstat{display:flex;align-items:center;gap:9px;flex-shrink:0}
.lenv-badge{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:5px 11px;border-radius:999px}
.lenv-badge.done{background:var(--emerald-glow);color:var(--emerald-d)}
.lenv-badge.active{background:color-mix(in srgb,var(--ca) 14%, var(--surface));color:var(--ca)}
.lenv-badge.locked{background:var(--mist);color:var(--ls-mute)}
.lenv-xp{font-family:'JetBrains Mono';font-size:10.5px;font-weight:700;color:#B45309;background:#FEF3C7;border-radius:999px;padding:5px 10px}
[data-theme="dark"] .lenv-xp{background:#3A2C0C;color:#FBBF24}

/* ── now-playing stage ── */
.lenv-stage{display:grid;grid-template-columns:1.15fr 1fr;gap:0;border-radius:18px;overflow:hidden;
  border:1px solid var(--ls-glass-2);box-shadow:var(--ls-shadow);margin-bottom:22px;background:var(--ls-glass)}
@media(max-width:760px){.lenv-stage{grid-template-columns:1fr}}
.lenv-stage-thumb{position:relative;aspect-ratio:16/9;display:grid;place-items:center;overflow:hidden;
  background:linear-gradient(135deg,var(--cb),var(--ca) 70%,color-mix(in srgb,var(--ca) 60%, #fff))}
.lenv-stage-thumb::before{content:'';position:absolute;inset:0;background: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='%23fff' stroke-width='1' points='42,2 80,24 80,72 42,94 4,72 4,24'/></svg>");background-size:64px 74px;opacity:.14}
.lenv-stage-glyph{position:absolute;right:14px;bottom:10px;font-size:42px;opacity:.5;filter:drop-shadow(0 4px 10px rgba(0,0,0,.3))}
.lenv-play{position:relative;width:66px;height:66px;border-radius:50%;display:grid;place-items:center;font-size:22px;color:var(--ca);
  background:rgba(255,255,255,.92);box-shadow:0 12px 30px -8px rgba(0,0,0,.45);padding-left:5px;cursor:pointer;transition:.16s}
.lenv-stage-thumb:hover .lenv-play{transform:scale(1.08)}
.lenv-stage-tag{position:absolute;top:12px;left:12px;font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.1em;
  color:var(--on-accent);background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:4px 9px}
.lenv-stage-info{padding:20px 22px;display:flex;flex-direction:column;justify-content:center}
.lenv-nowk{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ca);margin-bottom:7px}
.lenv-stage-info h2{font-size:18px;font-weight:800;color:var(--ls-ink);margin:0 0 10px;letter-spacing:-.01em;line-height:1.25}
.lenv-stage-meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:11.5px;color:var(--ls-mute);margin-bottom:16px}
.lenv-stage-actions{display:flex;gap:9px;flex-wrap:wrap}
/* real YouTube embed in the learning-environment stage */
.lenv-stage-video{position:relative;aspect-ratio:16/9;background:#000;overflow:hidden}
.lenv-yt{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.lenv-src{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--ls-mute);margin:-4px 0 12px;line-height:1.4}
.lenv-src .yt-mark{flex-shrink:0;display:inline-grid;place-items:center;width:19px;height:14px;border-radius:3px;background:#FF0000;color:#fff;font-size:8px;padding-left:1px}
.lenv-src b{font-weight:600;color:var(--ls-ink)}
.lenv-lthumb.has-thumb{background:#000;background-size:cover;background-position:center}
.lenv-lthumb.has-thumb::before{opacity:0}
.lenv-lthumb.has-thumb .lp{width:20px;height:20px;font-size:8px;opacity:.95}
.lenv-btn{border:none;border-radius:10px;padding:10px 16px;font-family:'Inter';font-weight:700;font-size:12px;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.lenv-btn.primary{background:linear-gradient(135deg,var(--ca),var(--cb));color:var(--on-accent);box-shadow:0 10px 22px -8px var(--ca)}
.lenv-btn.primary:hover{transform:translateY(-1px)}
.lenv-btn.ghost{background:var(--surface);color:var(--ls-ink);border:1px solid var(--ls-line)}
.lenv-btn.ghost:hover{border-color:var(--ca);color:var(--ca)}

/* ── playlist ── */
.lenv-section-lbl{font-family:'JetBrains Mono';font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ls-mute);margin:0 2px 11px}
.lenv-list{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}
.lenv-lesson{display:flex;align-items:center;gap:13px;text-align:left;width:100%;cursor:pointer;padding:10px 12px;
  background:var(--ls-glass);border:1px solid var(--ls-line);border-radius:13px;transition:.15s}
.lenv-lesson:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--ca) 35%, transparent)}
.lenv-lesson.on{border-color:var(--ca);background:color-mix(in srgb,var(--ca) 9%, var(--surface));box-shadow:0 10px 26px -16px var(--ca)}
.lenv-lthumb{position:relative;width:74px;height:46px;border-radius:9px;flex-shrink:0;display:grid;place-items:center;overflow:hidden;
  background:linear-gradient(135deg,var(--cb),var(--ca))}
.lenv-lthumb::before{content:'';position:absolute;inset:0;background: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='%23fff' stroke-width='1' points='42,2 80,24 80,72 42,94 4,72 4,24'/></svg>");background-size:34px 39px;opacity:.16}
.lenv-lthumb .lp{position:relative;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:9px;color:var(--ca);background:rgba(255,255,255,.92);padding-left:2px}
.lenv-lbody{flex:1;min-width:0}
.lenv-ltitle{display:block;font-size:13px;font-weight:600;color:var(--ls-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lenv-lmeta{display:block;font-size:11px;color:var(--ls-mute);font-family:'JetBrains Mono';margin-top:2px}
.lenv-lstate{flex-shrink:0;font-size:11px;font-weight:700;font-family:'JetBrains Mono';color:var(--ls-mute)}
.lenv-lstate.done{color:var(--emerald-d)}
.lenv-lesson.on .lenv-lstate{color:var(--ca)}

/* ── tabs ── */
.lenv-tabs{display:flex;gap:5px;border-bottom:1px solid var(--ls-line);margin-bottom:16px}
.lenv-tabs button{border:none;background:none;font-family:'Inter';font-size:13px;font-weight:600;color:var(--ls-mute);
  padding:10px 14px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:.15s}
.lenv-tabs button.on{color:var(--ca);border-bottom-color:var(--ca)}
.lenv-tabpane{background:var(--ls-glass);border:1px solid var(--ls-glass-2);border-radius:16px;padding:20px 22px;box-shadow:var(--ls-shadow)}
.lenv-notes p{font-size:13.5px;line-height:1.65;color:var(--ls-ink);margin:0 0 12px}
.lenv-notes ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:7px}
.lenv-notes li{font-size:12.5px;color:var(--ls-mute);line-height:1.5}
.lenv-notes b{color:var(--ls-ink)}
.lenv-res{display:flex;flex-direction:column;gap:9px}
.lenv-res-row{display:flex;align-items:center;gap:13px;padding:12px 14px;background:var(--surface);border:1px solid var(--ls-line);border-radius:12px;cursor:pointer;transition:.15s}
.lenv-res-row:hover{border-color:var(--ca);transform:translateY(-1px)}
.lenv-res-row .ri{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:15px;flex-shrink:0;background:color-mix(in srgb,var(--ca) 12%, var(--surface));color:var(--ca)}
.lenv-res-row>span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column}
.lenv-res-row b{font-size:13px;font-weight:600;color:var(--ls-ink)}
.lenv-res-row span span{font-size:11px;color:var(--ls-mute);font-family:'JetBrains Mono'}
.lenv-res-row .rg{flex-shrink:0;font-size:12px;font-weight:700;color:var(--ca)}
.lenv-prac{display:flex;flex-direction:column;gap:11px}
.lenv-prac-card{display:flex;align-items:center;gap:14px;padding:15px 16px;background:var(--surface);border:1px solid var(--ls-line);border-radius:13px}
.lenv-prac-card .pi{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:18px;flex-shrink:0;background:color-mix(in srgb,var(--ca) 13%, var(--surface));color:var(--ca)}
.lenv-prac-card .pb{flex:1;min-width:0}
.lenv-prac-card .pb b{display:block;font-size:13.5px;font-weight:700;color:var(--ls-ink)}
.lenv-prac-card .pb span{font-size:11.5px;color:var(--ls-mute);line-height:1.45}

/* Real skill icons (inline SVG) — sizing + accent color per container */
.ls-glyph{color:var(--ca)}
.ls-glyph svg{width:30px;height:30px}
.lsr-bigglyph{color:var(--on-accent)}
.lsr-bigglyph svg{width:34px;height:34px}
.lenv-side-glyph{color:var(--ca)}
.lenv-side-glyph svg{width:26px;height:26px}
.lenv-stage-glyph svg{width:46px;height:46px}

/* Real brand logos (local Devicon SVGs) — sizing per container */
.skill-logo{object-fit:contain;display:block}
.ls-glyph .skill-logo{width:32px;height:32px}
.lsr-bigglyph .skill-logo{width:36px;height:36px}
.lenv-side-glyph .skill-logo{width:28px;height:28px}
.lenv-stage-glyph .skill-logo{width:44px;height:44px}

/* ──────────────────────────────────────────────────────────────
   QUERY BOX — student support workspace (3-column).
   Token-only so dark mode comes free. Accent = plum (purple).
   ────────────────────────────────────────────────────────────── */
.qb-view{max-width:1400px}

/* ── PAGE HEADER ── */
.qb-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px;flex-wrap:wrap}
.qb-head-txt h1{font-family:'Inter';font-weight:800;font-size:26px;color:var(--ink);margin:0;letter-spacing:-0.02em}
.qb-head-txt p{margin:6px 0 0;font-size:13px;color:var(--mute);max-width:540px}
.qb-head-actions{display:flex;gap:10px;flex-shrink:0}
.qb-head-actions .qb-ghost,.qb-head-actions .qb-primary{padding:10px 18px;font-size:13px;display:inline-flex;align-items:center;gap:7px}
.qb-head-actions .qb-ghost span{font-size:11px}

/* ── COMPOSE BUTTON (left rail) ── */
.qb-compose-btn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:12px;border:none;border-radius:10px;background:var(--plum);color:#fff;font-family:'Inter';font-weight:700;font-size:13.5px;cursor:pointer;box-shadow:0 4px 12px rgba(107,33,168,.28);transition:.15s}
.qb-compose-btn:hover{background:var(--plum-d);transform:translateY(-1px);box-shadow:0 7px 18px rgba(107,33,168,.36)}
.qb-compose-btn svg{width:16px;height:16px}

.qb-shell{display:grid;grid-template-columns:300px 1fr 320px;gap:18px;align-items:start}

/* shared card shell (mirrors .dash-card) */
.qb-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 22px;display:flex;flex-direction:column;gap:14px}
.qb-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.qb-card-head.tight{margin-bottom:2px}
.qb-card-head h3{font-family:'Inter';font-weight:800;font-size:16px;color:var(--ink);margin:0;letter-spacing:-0.01em}
.qb-card-head p{margin:3px 0 0;font-size:12.5px;color:var(--mute)}

/* ── LEFT RAIL ── */
.qb-rail{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:14px}
.qb-rail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.qb-rail-head h2{font-family:'Inter';font-weight:800;font-size:18px;color:var(--ink);margin:0;letter-spacing:-0.02em}
.qb-rail-head p{margin:3px 0 0;font-size:12px;color:var(--mute)}
.qb-fab{flex-shrink:0;width:44px;height:44px;border-radius:50%;border:none;background:var(--plum);color:#fff;font-size:24px;font-weight:400;line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:0 4px 12px rgba(107,33,168,.28);transition:.15s}
.qb-fab:hover{transform:translateY(-2px);box-shadow:0 7px 18px rgba(107,33,168,.36)}
.qb-railnav{display:flex;flex-direction:column;gap:8px}
.qb-railnav-item{display:flex;align-items:center;gap:11px;width:100%;padding:11px 12px;border:1px solid var(--line);border-left:3px solid transparent;border-radius:10px;background:var(--fog);cursor:pointer;text-align:left;transition:.13s}
.qb-railnav-item:hover{border-color:#CBD5E1;background:var(--mist)}
.qb-railnav-item.active{border-left-color:var(--plum);background:var(--plum-glow)}
.qb-rn-ic{flex-shrink:0;width:30px;height:30px;border-radius:8px;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;font-size:15px;color:var(--body)}
.qb-rn-ic svg{width:17px;height:17px}
.qb-railnav-item.active .qb-rn-ic{border-color:var(--plum-soft);color:var(--plum-d)}
.qb-rn-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.qb-rn-txt b{font-family:'Inter';font-weight:600;font-size:13px;color:var(--ink)}
.qb-rn-txt small{font-size:10.5px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qb-rn-count{flex-shrink:0;font-family:'JetBrains Mono';font-size:10px;font-weight:700;padding:1px 8px;border-radius:999px;background:var(--mist);color:var(--body)}
.qb-rn-count.rose{background:var(--rose-glow);color:var(--rose-d)}

/* ── CENTER ── */
.qb-pane{display:flex;flex-direction:column;gap:18px;min-width:0}
.qb-ghost{padding:8px 14px;background:transparent;border:1px solid var(--line);border-radius:8px;font-family:'Inter';font-weight:600;font-size:12.5px;color:var(--body);cursor:pointer;transition:.13s}
.qb-ghost:hover{border-color:var(--plum-soft);color:var(--plum-d);background:var(--plum-glow)}
.qb-primary{padding:9px 18px;background:var(--plum);border:none;border-radius:8px;font-family:'Inter';font-weight:600;font-size:12.5px;color:#fff;cursor:pointer;transition:.13s}
.qb-primary:hover{background:var(--plum-d);transform:translateY(-1px)}
.qb-link{background:transparent;border:none;font-family:'Inter';font-weight:600;font-size:12px;color:var(--plum-d);cursor:pointer}
.qb-link:hover{text-decoration:underline}

/* profile strip */
.qb-prof-strip{display:flex;align-items:center;gap:13px;padding:13px 15px;background:var(--fog);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap}
.qb-ava{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0;border:1px solid var(--line)}
.qb-ava-fb{width:44px;height:44px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--plum-soft),var(--plum));color:#fff;place-items:center;font-family:'Inter';font-weight:700;font-size:14px}
.qb-prof-id{display:flex;flex-direction:column;gap:1px}
.qb-prof-id b{font-family:'Inter';font-weight:700;font-size:14px;color:var(--ink)}
.qb-prof-id span{font-size:11.5px;color:var(--mute)}
.qb-prof-meta{display:flex;gap:18px;margin-left:auto;flex-wrap:wrap}
.qb-prof-meta div{display:flex;flex-direction:column;gap:1px}
.qb-prof-meta i{font-family:'JetBrains Mono';font-size:9px;font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.qb-prof-meta b{font-size:12px;font-weight:600;color:var(--ink-2)}

/* form fields */
.qb-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.qb-field{display:flex;flex-direction:column;gap:6px;position:relative}
.qb-lbl{font-family:'Inter';font-weight:600;font-size:12px;color:var(--ink-2)}
.qb-lbl .req{color:var(--rose)}
.qb-input{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);font-family:'Inter';font-size:13px;color:var(--ink);outline:none;transition:.13s;width:100%}
.qb-input:focus{border-color:var(--plum);box-shadow:0 0 0 3px var(--plum-glow)}
select.qb-input{cursor:pointer;appearance:none;-webkit-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' stroke-linecap='round'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 12px center;padding-right:30px}
.qb-prio-wrap{position:relative}
.qb-prio-wrap .qb-input{padding-left:30px}
.qb-prio-wrap .qb-dot{position:absolute;left:12px;top:50%;transform:translateY(-50%);z-index:1}
.qb-dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:var(--mute)}
.qb-dot.low{background:var(--emerald)}
.qb-dot.medium{background:var(--honey)}
.qb-dot.high{background:#EA580C}
.qb-dot.urgent{background:var(--rose)}

/* searchable To dropdown */
.qb-to-pop{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:40;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 34px rgba(15,23,42,.16);padding:6px;max-height:280px;overflow:auto}
.qb-to-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;background:transparent;border-radius:8px;cursor:pointer;text-align:left}
.qb-to-item:hover{background:var(--plum-glow)}
.qb-to-ava{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--plum-soft),var(--plum));color:#fff;display:grid;place-items:center;font-family:'Inter';font-weight:700;font-size:10.5px}
.qb-to-txt{display:flex;flex-direction:column;gap:1px}
.qb-to-txt b{font-family:'Inter';font-weight:600;font-size:13px;color:var(--ink)}
.qb-to-txt small{font-size:11px;color:var(--mute)}
.qb-to-empty{padding:10px;font-size:12px;color:var(--mute);text-align:center}

/* rich-text editor */
.qb-rte{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card);transition:.13s}
.qb-rte:focus-within{border-color:var(--plum);box-shadow:0 0 0 3px var(--plum-glow)}
.qb-rte-bar{display:flex;align-items:center;gap:2px;padding:6px 8px;border-bottom:1px solid var(--line);background:var(--fog);flex-wrap:wrap}
.qb-rte-btn{min-width:28px;height:28px;padding:0 6px;border:none;background:transparent;border-radius:6px;cursor:pointer;font-family:'Inter';font-size:12.5px;color:var(--body);display:grid;place-items:center;transition:.1s}
.qb-rte-btn:hover{background:var(--plum-glow);color:var(--plum-d)}
.qb-rte-sep{width:1px;height:18px;background:var(--line);margin:0 4px}
.qb-rte-area{width:100%;min-height:120px;border:none;outline:none;resize:vertical;padding:12px 14px;font-family:'Inter';font-size:13px;color:var(--ink);background:transparent;box-sizing:border-box}

/* attach dropzone */
.qb-drop{display:flex;align-items:center;gap:13px;padding:14px 16px;border:1px dashed var(--line);border-radius:10px;background:var(--fog)}
.qb-drop-ic{font-size:18px}
.qb-drop-txt{flex:1;display:flex;flex-direction:column;gap:1px}
.qb-drop-txt b{font-family:'Inter';font-weight:600;font-size:13px;color:var(--ink)}
.qb-drop-txt small{font-size:11px;color:var(--mute)}
.qb-files{display:flex;flex-wrap:wrap;gap:8px}
.qb-file-chip{display:inline-flex;align-items:center;gap:7px;padding:5px 7px 5px 11px;background:var(--plum-glow);border-radius:999px;font-size:11.5px;font-weight:600;color:var(--plum-d)}
.qb-file-chip button{width:16px;height:16px;border:none;border-radius:50%;background:rgba(107,33,168,.18);color:var(--plum-d);font-size:10px;cursor:pointer;line-height:1}

/* footer */
.qb-foot{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:14px}

/* list / recent items */
.qb-list,.qb-recent{display:flex;flex-direction:column;gap:12px}
.qb-item{border:1px solid var(--line);border-radius:12px;padding:13px 15px;background:var(--fog);cursor:pointer;transition:.13s;display:flex;flex-direction:column;gap:7px}
.qb-item:hover{border-color:var(--plum-soft);box-shadow:0 4px 12px rgba(15,23,42,.06)}
.qb-item-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.qb-tag{font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--plum-glow);color:var(--plum-d)}
.qb-prio{font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--mist);color:var(--body)}
.qb-prio.low{background:var(--emerald-glow);color:var(--emerald-d)}
.qb-prio.medium{background:var(--honey-glow);color:var(--honey-d)}
.qb-prio.high{background:#FFEDD5;color:#C2410C}
.qb-prio.urgent{background:var(--rose-glow);color:var(--rose-d)}
.qb-item-title{font-family:'Inter';font-weight:700;font-size:13.5px;color:var(--ink);line-height:1.3}
.qb-item-sub{font-size:11.5px;color:var(--mute)}
.qb-item-sub b{color:var(--ink-2);font-weight:600}
.qb-item-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.qb-stat{font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:999px}
.qb-stat.open{background:var(--honey-glow);color:var(--honey-d)}
.qb-stat.assigned{background:var(--teal-glow);color:var(--teal-d)}
.qb-stat.progress{background:var(--teal-glow);color:var(--teal-d)}
.qb-stat.waiting{background:var(--honey-glow);color:var(--honey-d)}
.qb-stat.replied{background:var(--rose-glow);color:var(--rose-d)}
.qb-stat.resolved{background:var(--emerald-glow);color:var(--emerald-d)}
.qb-stat.closed{background:var(--mist);color:var(--mute)}
.qb-empty,.qb-thread .qb-empty{padding:24px;text-align:center;font-size:12.5px;color:var(--mute)}

/* expandable thread */
.qb-thread{display:flex;flex-direction:column;gap:9px;margin-top:4px;padding-top:11px;border-top:1px solid var(--line)}
.qb-msg{padding:10px 12px;border-radius:10px;background:var(--card);border:1px solid var(--line)}
.qb-msg.faculty{background:var(--plum-glow);border-color:var(--plum-soft)}
.qb-msg-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}
.qb-msg-h b{font-family:'Inter';font-weight:700;font-size:12px;color:var(--ink)}
.qb-msg-h span{font-size:10.5px;color:var(--mute)}
.qb-msg p{margin:0;font-size:12.5px;color:var(--body);line-height:1.45}

/* ── RIGHT ── */
.qb-side{display:flex;flex-direction:column;gap:18px}
.qb-ai{align-items:flex-start;text-align:left;background:linear-gradient(160deg,var(--plum-glow),var(--card));border-color:var(--plum-soft);gap:9px}
.qb-ai-glyph{width:38px;height:38px;border-radius:10px;background:var(--card);border:1px solid var(--plum-soft);display:grid;place-items:center;font-size:19px}
.qb-ai b{font-family:'Inter';font-weight:700;font-size:14px;color:var(--ink)}
.qb-ai p{margin:0;font-size:12px;color:var(--body);line-height:1.45}
.qb-ai-btn{margin-top:4px;padding:9px 16px;background:transparent;border:1px solid var(--plum);border-radius:8px;font-family:'Inter';font-weight:600;font-size:12.5px;color:var(--plum-d);cursor:pointer;transition:.13s}
.qb-ai-btn:hover{background:var(--plum);color:#fff}

/* stack on narrow screens */
@media (max-width:1100px){.qb-shell{grid-template-columns:1fr}.qb-grid3{grid-template-columns:1fr}.qb-prof-meta{margin-left:0;width:100%}}

/* ════════════════════════════════════════════════════════════════
   ===== ASSIGNMENTS MODULE =====
   Submission & grading workspace: tabs · list cards · right-rail
   analytics (deadlines / donut / stats / AI) · slide-in detail drawer.
   Tokens only — dark-mode safe (backgrounds --card/--fog, text --ink/--mute).
   ════════════════════════════════════════════════════════════════ */
.pill.mute{background:var(--mist);color:var(--mute)}

/* ── Tabs (segmented control) ── */
.asg-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px;background:var(--fog);border:1px solid var(--line);border-radius:12px;padding:5px}
.asg-tab{display:inline-flex;align-items:center;gap:7px;border:none;background:transparent;cursor:pointer;font-family:'Inter';font-weight:600;font-size:12.5px;color:var(--mute);padding:8px 14px;border-radius:8px;transition:.14s;white-space:nowrap}
.asg-tab:hover{color:var(--ink-2);background:var(--mist)}
.asg-tab.active{background:var(--card);color:var(--ink);box-shadow:0 1px 4px rgba(11,18,32,.08)}
.asg-tab-c{font-family:'JetBrains Mono';font-size:10px;font-weight:700;min-width:18px;height:18px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--mist);color:var(--mute)}
.asg-tab.active .asg-tab-c{background:var(--honey-glow);color:var(--honey-d)}

/* ── Layout: list + 320px rail ── */
.asg-layout{display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:start}
.asg-main{display:flex;flex-direction:column;gap:12px;min-width:0}

/* ── Assignment card ── */
.asg-card{position:relative;display:flex;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px 16px 20px;cursor:pointer;transition:.16s;overflow:hidden}
.asg-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--line)}
.asg-card.prio-high::before{background:var(--rose)}
.asg-card.prio-medium::before{background:var(--honey)}
.asg-card.prio-low::before{background:var(--sky)}
.asg-card:hover{border-color:#CBD5E1;box-shadow:0 6px 18px rgba(11,18,32,.07);transform:translateY(-1px)}
.asg-card-icon{flex-shrink:0;width:44px;height:44px;border-radius:11px;background:var(--fog);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:21px}
.asg-card-icon i{font-size:19px;color:var(--honey-d);line-height:1}
.asg-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.asg-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.asg-card-title{font-family:'Inter';font-weight:700;font-size:14.5px;color:var(--ink);margin:0;letter-spacing:-0.01em;line-height:1.3}
.asg-card-meta{font-size:12px;color:var(--mute);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.asg-meta-sub{font-weight:600;color:var(--ink-2)}
.asg-meta-dot{color:var(--line)}
.asg-card-foot{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:2px}
.asg-foot-chip{display:inline-flex;align-items:center;gap:5px;font-family:'JetBrains Mono';font-size:10.5px;color:var(--mute);letter-spacing:.01em}
.asg-foot-chip .g{font-size:11px;opacity:.85}
.asg-marks{margin-left:auto;font-family:'JetBrains Mono';font-size:13px;color:var(--emerald-d);background:var(--emerald-glow);padding:3px 10px;border-radius:8px;font-weight:600}
.asg-marks b{font-size:14px}
.asg-card-actions{margin-left:auto}
.asg-card.prio-high .asg-card-actions,.asg-card .asg-card-foot .asg-marks~.asg-card-actions{margin-left:0}
.asg-quick{border:1px solid var(--line);background:var(--fog);color:var(--honey-d);font-family:'Inter';font-weight:600;font-size:11.5px;padding:5px 12px;border-radius:8px;cursor:pointer;transition:.13s;white-space:nowrap}
.asg-quick:hover{background:var(--honey-d);color:var(--on-accent);border-color:var(--honey-d)}
.asg-empty{text-align:center;padding:48px 20px;color:var(--mute)}
.asg-empty-ic{font-size:34px;opacity:.4;margin-bottom:8px}
.asg-empty-ic i{line-height:1}
.asg-empty p{margin:0;font-size:14px;font-weight:600;color:var(--ink-2)}
.asg-empty small{font-weight:500;color:var(--mute)}

/* ── Right rail ── */
.asg-rail{display:flex;flex-direction:column;gap:16px;position:sticky;top:78px}
.asg-rail-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 18px 20px;display:flex;flex-direction:column;gap:14px}
.asg-rail-card .ch{display:flex;align-items:flex-start;justify-content:space-between}
.asg-rail-card .ch .lbl{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);font-weight:700;display:block;margin-bottom:3px}
.asg-rail-card .ch h3{font-family:'Inter';font-weight:700;font-size:14px;color:var(--ink);margin:0;letter-spacing:-0.01em}

/* Upcoming deadlines */
.asg-deadlines{display:flex;flex-direction:column;gap:4px}
.asg-deadline{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:none;background:transparent;cursor:pointer;padding:9px 10px;border-radius:10px;transition:.13s}
.asg-deadline:hover{background:var(--fog)}
.asg-dl-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 4px var(--fog)}
.asg-dl-txt{display:flex;flex-direction:column;gap:1px;min-width:0}
.asg-dl-txt b{font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.asg-dl-txt small{font-size:10.5px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.asg-dl-empty{font-size:12px;color:var(--mute);padding:6px 4px}

/* Overview donut */
.asg-overview{display:flex;align-items:center;gap:16px}
.asg-donut{position:relative;width:104px;height:104px;flex-shrink:0}
.asg-donut svg{transform:rotate(-90deg);display:block;width:104px;height:104px}
.asg-donut-track{fill:none;stroke:var(--line);stroke-width:9}
.asg-donut-fill{fill:none;stroke:var(--emerald);stroke-width:9;stroke-linecap:round;transition:stroke-dashoffset .7s cubic-bezier(.22,1,.36,1)}
.asg-donut-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.asg-donut-c b{font-family:'Inter';font-weight:800;font-size:20px;color:var(--ink);letter-spacing:-0.02em}
.asg-donut-c small{font-family:'JetBrains Mono';font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.asg-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;flex:1}
.asg-legend li{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--body)}
.asg-legend li i{width:9px;height:9px;border-radius:3px;flex-shrink:0}
.asg-legend li span{margin-left:auto;font-family:'JetBrains Mono';font-weight:700;font-size:12px;color:var(--ink)}

/* Submission statistics */
.asg-stats{display:flex;flex-direction:column;gap:13px}
.asg-stat{display:flex;flex-direction:column;gap:6px}
.asg-stat-top{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--body)}
.asg-stat-top b{font-family:'JetBrains Mono';font-size:12.5px;color:var(--ink)}
.asg-stat .progress-bar{height:7px;background:var(--mist);border-radius:4px;overflow:hidden}
.asg-stat .progress-bar .fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--honey-soft),var(--honey-d));transition:width .6s cubic-bezier(.22,1,.36,1)}
.asg-stat .progress-bar .fill.em{background:linear-gradient(90deg,#6EE7B7,var(--emerald-d))}
.asg-stat .progress-bar .fill.tl{background:linear-gradient(90deg,#5EEAD4,var(--teal-d))}

/* AI assistant card */
.asg-ai{background:linear-gradient(160deg,var(--honey-cream),var(--card) 70%);border-color:var(--honey-glow)}
.asg-ai-head{display:flex;align-items:center;gap:8px;font-family:'Inter';font-weight:700;font-size:13.5px;color:var(--plum-d)}
.asg-ai-spark{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;background:var(--plum-glow);color:var(--plum-d);font-size:13px}
.asg-ai-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.asg-ai-list li{display:flex;gap:8px;font-size:12px;color:var(--body);line-height:1.5}
.asg-ai-list li b{color:var(--ink)}
.asg-ai-bullet{color:var(--honey-d);font-weight:800;flex-shrink:0}
.asg-ai-cta{margin-top:2px;align-self:flex-start;padding:8px 14px;background:transparent;border:1px solid var(--plum);border-radius:8px;font-family:'Inter';font-weight:600;font-size:12px;color:var(--plum-d);cursor:pointer;transition:.13s}
.asg-ai-cta:hover{background:var(--plum);color:#fff}

/* ── Drawer ── */
.asg-backdrop{position:fixed;inset:0;z-index:200;background:rgba(11,18,32,.5);backdrop-filter:blur(2px)}
.asg-drawer{position:fixed;top:0;right:0;bottom:0;z-index:201;width:min(540px,92vw);background:var(--card);border-left:1px solid var(--line);box-shadow:-18px 0 50px rgba(11,18,32,.22);display:flex;flex-direction:column}
.asg-drawer[hidden]{display:none !important}
/* slide-in transition classes (Alpine x-transition hooks) */
.asg-dr-enter{transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .32s ease}
.asg-dr-start{transform:translateX(40px);opacity:0}
.asg-dr-end{transform:translateX(0);opacity:1}
.asg-dr-inner{display:flex;flex-direction:column;height:100%;min-height:0}
.asg-dr-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:22px 24px 14px}
.asg-dr-head-l{display:flex;gap:13px;min-width:0}
.asg-dr-icon{flex-shrink:0;width:46px;height:46px;border-radius:12px;background:var(--fog);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:22px}
.asg-dr-sub{font-family:'JetBrains Mono';font-size:10.5px;letter-spacing:.04em;color:var(--mute);text-transform:uppercase;margin-bottom:3px}
.asg-dr-head h2{font-family:'Inter';font-weight:800;font-size:19px;color:var(--ink);margin:0;letter-spacing:-0.02em;line-height:1.25}
.asg-dr-close{flex-shrink:0;width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--fog);color:var(--mute);font-size:14px;cursor:pointer;transition:.13s}
.asg-dr-close:hover{background:var(--rose-glow);color:var(--rose-d);border-color:var(--rose-glow)}
.asg-dr-tags{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 24px 16px;border-bottom:1px solid var(--line)}
.asg-dr-due{display:inline-flex;align-items:center;gap:5px;font-family:'JetBrains Mono';font-size:10.5px;color:var(--mute)}
.asg-dr-due i{font-size:12px;opacity:.85}
.asg-dr-scroll{flex:1;overflow-y:auto;padding:18px 24px 8px;display:flex;flex-direction:column;gap:20px}
.asg-dr-block{display:flex;flex-direction:column;gap:10px}
.asg-dr-lbl{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);font-weight:700}
.asg-dr-instr{margin:0;font-size:13px;color:var(--body);line-height:1.6}

/* drawer attachments */
.asg-files{display:flex;flex-direction:column;gap:8px}
.asg-file,.asg-submitted{display:flex;align-items:center;gap:11px;background:var(--fog);border:1px solid var(--line);border-radius:10px;padding:11px 13px}
.asg-file-ic{font-size:16px;flex-shrink:0}
.asg-file-meta{display:flex;flex-direction:column;min-width:0;flex:1}
.asg-file-meta b{font-size:12.5px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.asg-file-meta small{font-size:10.5px;color:var(--mute);font-family:'JetBrains Mono'}
.asg-file-dl{flex-shrink:0;border:1px solid var(--line);background:var(--card);color:var(--ink-2);font-family:'Inter';font-weight:600;font-size:11px;padding:5px 11px;border-radius:7px;cursor:pointer;transition:.13s}
.asg-file-dl:hover{background:var(--ink);color:var(--card);border-color:var(--ink)}

/* feedback panel */
.asg-feedback{background:var(--emerald-glow);border:1px solid var(--emerald-glow);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:11px}
.asg-fb-score{display:flex;align-items:baseline;gap:8px}
.asg-fb-score b{font-family:'Inter';font-weight:800;font-size:32px;color:var(--emerald-d);letter-spacing:-0.02em}
.asg-fb-score span{font-size:14px;color:var(--emerald-d);font-weight:600}
.asg-fb-score em{margin-left:auto;font-style:normal;font-family:'JetBrains Mono';font-size:12px;font-weight:700;color:var(--emerald-d);background:var(--card);padding:4px 10px;border-radius:999px}
.asg-fb-text{margin:0;font-size:12.5px;color:var(--body);line-height:1.6}
.asg-fb-file{margin:0;font-size:11.5px;color:var(--mute)}
.asg-fb-file b{color:var(--ink-2)}
.asg-closed-note{font-size:12.5px;color:var(--mute);background:var(--fog);border:1px solid var(--line);border-radius:10px;padding:13px 15px;line-height:1.5}

/* dropzone */
.asg-dropzone{display:flex;align-items:center;gap:13px;border:1.5px dashed var(--line);border-radius:12px;padding:18px 16px;cursor:pointer;transition:.15s;background:var(--fog)}
.asg-dropzone:hover{border-color:var(--honey);background:var(--honey-cream)}
.asg-dz-ic{flex-shrink:0;width:38px;height:38px;border-radius:10px;background:var(--card);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:17px;color:var(--honey-d)}
.asg-dz-txt{display:flex;flex-direction:column;gap:2px;flex:1}
.asg-dz-txt b{font-size:13px;font-weight:600;color:var(--ink)}
.asg-dz-txt small{font-size:11px;color:var(--mute)}
.asg-dz-input{width:120px;flex-shrink:0;border:1px solid var(--line);background:var(--card);border-radius:8px;padding:7px 10px;font-size:11.5px;color:var(--ink);font-family:'JetBrains Mono'}
.asg-dz-picked{margin-top:10px;font-size:12px;color:var(--emerald-d)}
.asg-dz-picked b{font-weight:700}

/* drawer footer */
.asg-dr-foot{display:flex;gap:10px;padding:14px 24px 20px;border-top:1px solid var(--line)}
.asg-btn{font-family:'Inter';font-weight:600;font-size:13px;border-radius:10px;padding:11px 18px;cursor:pointer;transition:.14s;border:1px solid transparent}
.asg-btn-ghost{background:var(--fog);border-color:var(--line);color:var(--ink-2)}
.asg-btn-ghost:hover{background:var(--mist)}
.asg-btn-primary{flex:1;background:var(--honey-d);color:var(--on-accent)}
.asg-btn-primary:hover{filter:brightness(1.06);box-shadow:0 4px 14px rgba(180,83,9,.28)}

/* dark-mode surface overrides (parity with .dash-card group) */
[data-theme="dark"] .asg-card,[data-theme="dark"] .asg-rail-card,[data-theme="dark"] .asg-drawer,[data-theme="dark"] .asg-tab.active,[data-theme="dark"] .asg-tabs{background:var(--surface)}
[data-theme="dark"] .asg-ai{background:linear-gradient(160deg,#2A1F08,var(--surface) 72%)}
[data-theme="dark"] .asg-marks{background:#0E2A1E}
[data-theme="dark"] .asg-feedback{background:#0E2A1E;border-color:#1B4332}

/* responsive: rail stacks under the list */
@media (max-width:900px){
  .asg-layout{grid-template-columns:1fr}
  .asg-rail{position:static;flex-direction:column}
}

/* ════════════════════════════════════════════════════════════
   STUDENT · TIME TABLE  (weekly class schedule grid)
   ════════════════════════════════════════════════════════════ */
/* Header lays out title + actions on one row (scoped to this view) */
.app-view-head.tt-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.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)}

/* KPI tiles */
.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 .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.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.honey{background:var(--honey-cream);border-color:var(--honey-glow)}
.kpi.emerald{background:var(--emerald-glow);border-color:#A7F3D0}
[data-theme="dark"] .kpi.featured{background:var(--deep)}

/* Card-header hint line */
.dash-card .ch .hint{font-size:11.5px;color:var(--mute);margin-top:3px;line-height:1.4}

/* Legend + grid */
.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.tutorial{background:var(--honey-glow);border:1px solid var(--honey-d)}
.tt-dot.activity{background:var(--emerald-glow);border:1px solid var(--emerald-d)}
.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.tutorial{background:var(--honey-glow);border-color:var(--honey-d)}
.tt-cell.activity{background:var(--emerald-glow);border-color:var(--emerald-d)}
.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.tutorial,
[data-theme="dark"] .tt-cell.activity{filter:saturate(.85)}
[data-theme="dark"] .tt-phead{background:var(--surface)}

/* ══════════════════════════════════════════════════════
   FACULTY-ASSIGNED QUIZZES — separate, high-priority section
   ══════════════════════════════════════════════════════ */
.aq-section{border-top:4px solid #3B59E0;box-shadow:0 14px 36px -26px rgba(46,69,196,.6)}
.aq-card{position:relative;border-left:4px solid #3B59E0}
.aq-card.done{border-left-color:var(--emerald-d);opacity:.92}
.aq-icon{background:rgba(59,89,224,.12)!important;color:#2E45C4!important}
.aq-card.done .aq-icon{background:var(--emerald-glow)!important;color:var(--emerald-d)!important}
.aq-card .qc-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.aq-prio{font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#2E45C4;background:rgba(59,89,224,.13);padding:2px 8px;border-radius:999px}
.aq-meta2{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:6px}
.aq-due{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.04em;padding:3px 9px;border-radius:999px;background:var(--emerald-glow);color:var(--emerald-d)}
.aq-due.soon{background:var(--honey-glow);color:var(--honey-d)}
.aq-due.overdue{background:var(--rose-glow);color:var(--rose-d)}
.aq-class{font-family:'JetBrains Mono';font-size:9.5px;font-weight:600;color:var(--mute);background:var(--mist);padding:3px 9px;border-radius:999px}
.aq-scored{font-size:11.5px;color:var(--body);font-weight:600}
.aq-action{background:#3B59E0!important;border-color:#3B59E0!important;color:#fff!important}
.aq-action:hover{background:#2E45C4!important;border-color:#2E45C4!important}

/* ── Assigned-quiz player modal ── */
.aqp-wrap{position:fixed;inset:0;z-index:300;display:flex;align-items:flex-start;justify-content:center;padding:32px 16px;overflow-y:auto}
.aqp-back{position:fixed;inset:0;background:rgba(11,18,32,.55);backdrop-filter:blur(3px)}
.aqp-modal{position:relative;z-index:1;width:100%;max-width:640px;margin:auto;background:var(--fog);border:1px solid var(--line);border-radius:16px;box-shadow:0 30px 80px -24px rgba(11,18,32,.6);display:flex;flex-direction:column;max-height:calc(100vh - 64px);overflow:hidden}
.aqp-head{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 22px;background:linear-gradient(150deg,#0E1A4D 0%,#16277A 60%,#1E3A8A 100%);color:#fff}
.aqp-eyebrow{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#9DB0F7}
.aqp-head h3{font-family:'Inter';font-weight:800;font-size:18px;margin:3px 0 0;letter-spacing:-.02em;color:#fff}
.aqp-sub{font-size:12px;color:#C7D2FE;margin-top:4px;line-height:1.4}
.aqp-x{width:32px;height:32px;border-radius:9px;border:1px solid #FFFFFF33;background:#FFFFFF14;color:#fff;cursor:pointer;font-size:14px;flex-shrink:0;transition:.14s}
.aqp-x:hover{background:#FFFFFF26}
.aqp-body{padding:18px 22px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;background:var(--fog)}
.aqp-result{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;background:var(--honey-glow);border:1px solid var(--honey-soft)}
.aqp-result.pass{background:var(--emerald-glow);border-color:#A7F3D0}
.aqp-result-pct{font-family:'Inter';font-weight:800;font-size:30px;letter-spacing:-.03em;color:var(--honey-d)}
.aqp-result.pass .aqp-result-pct{color:var(--emerald-d)}
.aqp-result-body{display:flex;flex-direction:column;line-height:1.3;font-size:13px;color:var(--body)}
.aqp-result-body b{font-size:14px;color:var(--ink)}
.aqp-q{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 16px}
.aqp-q-prompt{font-family:'Inter';font-weight:600;font-size:14.5px;color:var(--ink);line-height:1.4;margin-bottom:12px}
.aqp-q-n{color:#3B59E0;font-weight:800}
.aqp-opts{display:flex;flex-direction:column;gap:8px}
.aqp-opt{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:11px 13px;border:1.5px solid var(--line);border-radius:10px;background:var(--surface);font-family:'Inter';font-size:13.5px;color:var(--ink);cursor:pointer;transition:.14s}
.aqp-opt:hover:not(:disabled){border-color:#3B59E0;background:rgba(59,89,224,.05)}
.aqp-opt:disabled{cursor:default}
.aqp-opt.sel{border-color:#3B59E0;background:rgba(59,89,224,.1)}
.aqp-opt.correct{border-color:var(--emerald-d);background:var(--emerald-glow)}
.aqp-opt.wrong{border-color:var(--rose);background:var(--rose-glow)}
.aqp-opt-tick{color:#3B59E0;font-size:13px;flex-shrink:0;width:14px;text-align:center}
.aqp-opt.correct .aqp-opt-tick{color:var(--emerald-d)}
.aqp-opt.wrong .aqp-opt-tick{color:var(--rose-d)}
.aqp-opt-flag{margin-left:auto;color:var(--emerald-d);font-weight:800}
.aqp-foot{position:sticky;bottom:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 22px;background:var(--card);border-top:1px solid var(--line)}
.aqp-foot-count{font-family:'JetBrains Mono';font-size:11px;font-weight:700;color:var(--mute)}
.aqp-foot-btns{display:flex;gap:9px}
.aqp-foot .qc-action{background:#3B59E0;border-color:#3B59E0;color:#fff}
.aqp-foot .qc-action:hover:not(:disabled){background:#2E45C4}
.aqp-foot .qc-action:disabled{opacity:.45;cursor:not-allowed}
.aqp-foot .qc-action.ghost{background:var(--card);border:1px solid var(--line);color:var(--ink-2)}
.aqp-foot .qc-action.ghost:hover{background:var(--mist)}
@media (max-width:560px){.aqp-foot{flex-direction:column;align-items:stretch}.aqp-foot-btns{justify-content:flex-end}}
[data-theme="dark"] .aqp-modal,[data-theme="dark"] .aqp-body{background:var(--ink)}
[data-theme="dark"] .aqp-q,[data-theme="dark"] .aqp-opt,[data-theme="dark"] .aqp-foot{background:var(--surface)}

/* ════════════ JOBS · placement openings ════════════ */
.job-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px;margin-top:18px}
.job-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:13px;transition:.15s}
.job-card:hover{box-shadow:0 6px 20px rgba(11,18,32,.06);border-color:#CBD5E1}
.job-card.is-applied{opacity:.86}
.job-card-top{display:flex;align-items:flex-start;gap:12px}
.job-logo{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;color:#fff;font-family:'JetBrains Mono';font-weight:800;font-size:14px;flex-shrink:0}
.job-logo-img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}
.job-card-head{flex:1;min-width:0}
.job-title{font-family:'Inter';font-weight:700;font-size:15px;color:var(--ink);margin:0;letter-spacing:-0.01em;line-height:1.2}
.job-company{font-size:12.5px;color:var(--mute);margin-top:2px}
.job-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;flex-shrink:0;background:var(--emerald-glow);color:var(--emerald-d)}
.job-card .pill.ok{background:var(--emerald-glow);color:var(--emerald-d)}
.job-card .pill.warn{background:var(--honey-glow);color:var(--honey-d)}
.job-pills{display:flex;flex-wrap:wrap;gap:6px}
.job-tag{font-family:'Inter';font-size:11px;font-weight:600;color:var(--ink-3);background:var(--fog);border:1px solid var(--line);border-radius:6px;padding:3px 8px}
.job-elig{font-size:12px;color:var(--body);background:var(--honey-cream);border:1px solid var(--honey-glow);border-radius:8px;padding:7px 10px}
.job-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:11px 0}
.job-stat{display:flex;flex-direction:column;gap:1px;text-align:center}
.job-stat-v{font-family:'Inter';font-weight:700;font-size:13px;color:var(--ink);letter-spacing:-0.01em}
.job-stat-k{font-size:9.5px;color:var(--mute);text-transform:uppercase;letter-spacing:.06em}
.job-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto}
.job-badge{font-size:11.5px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.job-badge.ok{color:var(--emerald-d)}
.job-badge.bad{color:var(--rose-d)}
.job-apply{flex-shrink:0;padding:8px 18px;font-size:12.5px}
.job-apply:disabled{opacity:.4;cursor:not-allowed}
.job-applied-tag{flex-shrink:0;font-family:'JetBrains Mono';font-size:11px;font-weight:700;color:var(--emerald-d);background:var(--emerald-glow);border-radius:999px;padding:6px 14px}
[data-theme="dark"] .job-card{background:var(--card)}
[data-theme="dark"] .job-tag{background:var(--surface)}
[data-theme="dark"] .job-elig{background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.18)}
.job-applied-tag.stage-shortlisted{background:var(--honey-glow);color:var(--honey-d)}
.job-applied-tag.stage-interview{background:var(--teal-glow);color:var(--teal-d)}
.job-applied-tag.stage-offer{background:var(--emerald-glow);color:var(--emerald-d)}
.job-applied-tag.stage-joined{background:var(--emerald-glow);color:var(--emerald-d)}

/* ── Skill/Project verification chain (student → faculty → TPO) ── */
.verify-box{margin:10px 0 4px;display:flex;flex-direction:column;gap:8px}
.verify-btn{display:inline-flex;align-items:center;gap:6px;justify-content:center;width:100%;padding:9px 12px;border:1px solid var(--emerald);border-radius:10px;background:var(--emerald-glow);color:var(--emerald-d);font-weight:700;font-size:13px;cursor:pointer;transition:.15s}
.verify-btn:hover{background:var(--emerald);color:var(--on-accent)}
.verify-state{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.verify-note{font-size:12px;color:var(--mute)}
.verify-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid var(--line)}
.verify-pill.vs-pending{background:var(--honey-glow);color:var(--honey-d);border-color:transparent}
.verify-pill.vs-endorsed{background:var(--teal-glow,var(--honey-glow));color:var(--teal-d,var(--honey-d));border-color:transparent}
.verify-pill.vs-verified{background:var(--emerald-glow);color:var(--emerald-d);border-color:transparent}
.verify-pill.vs-rejected{background:var(--rose-glow);color:var(--rose-d);border-color:transparent}


/* ════════════════════════════════════════════════════════════════
   MY SCORE — restructured page (dark hero + trend + runway,
   hive + inline pillar detail, 13-pillar tracker). Classes are
   ms-* scoped so they don't collide with the dashboard hive.
   ════════════════════════════════════════════════════════════════ */
.ms-card{background:var(--card);border:1px solid var(--border);border-radius:20px;box-shadow:0 1px 2px var(--shadow)}
.ms-ch{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px 4px}
.ms-ch h3{font-family:'Bricolage Grotesque','Inter',sans-serif;font-weight:700;font-size:17px;margin:5px 0 0;color:var(--ink)}
.ms-eye2{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}
.ms-eye2-r{text-align:right}

/* ── dark score hero ── */
.ms-hero{background:radial-gradient(120% 140% at 10% 0%,#241A10,#14100A);border:1px solid #34281A;border-radius:22px;color:#F4E7CE;padding:24px 26px;position:relative;overflow:hidden;margin-bottom:20px}
.ms-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(460px 260px at 88% -10%,rgba(237,163,32,.2),transparent 60%)}
.ms-hero>*{position:relative}
.ms-herogrid{display:grid;grid-template-columns:auto 1fr;gap:34px;align-items:center}
.ms-bandchip{float:right;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#FFD27A;border:1px solid #4A3A1E;border-radius:7px;padding:4px 9px}
.ms-eye{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#A88A52}
.ms-big{font-family:'Bricolage Grotesque','Inter',sans-serif;font-weight:800;font-size:74px;line-height:.85;letter-spacing:-2.5px;color:#fff;margin-top:10px}
.ms-big sup{font-family:'IBM Plex Mono',monospace;font-size:18px;font-weight:500;color:#8E764C;letter-spacing:0}
.ms-up{font-family:'IBM Plex Mono',monospace;font-size:12px;color:#7BD49B;margin-top:13px}
.ms-mut{font-family:'IBM Plex Mono',monospace;font-size:11px;color:#8E764C;margin-top:6px}
.ms-chartwrap{position:relative}
.ms-ct{display:flex;justify-content:space-between;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#7C6743;margin-bottom:6px}
.ms-chartwrap svg{width:100%;height:128px;display:block;overflow:visible}
.ms-runway{margin-top:20px;border-top:1px solid #34281A;padding-top:16px;display:flex;align-items:center;gap:18px}
.ms-rl{flex:1}
.ms-rt{display:flex;justify-content:space-between;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#8E764C;margin-bottom:9px}
.ms-rt b{color:#FFD27A}
.ms-track{position:relative;height:9px;border-radius:99px;background:#2A2013}
.ms-fill{position:absolute;left:0;top:0;height:100%;border-radius:99px;background:linear-gradient(90deg,#BE7C16,#FFC65A);width:0;transition:width 1.4s cubic-bezier(.2,.7,.2,1)}
.ms-mk{position:absolute;top:-4px;width:2px;height:17px;background:#6FCf8E;left:64.4%}
.ms-mk span{position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-family:'IBM Plex Mono',monospace;font-size:9px;color:#6FCf8E;white-space:nowrap}
.ms-rgo{text-align:center;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#8E764C}
.ms-rgo b{display:block;font-family:'Bricolage Grotesque','Inter',sans-serif;font-size:22px;color:#FFD27A;letter-spacing:-.5px}

/* ── lower grid: hive + inline detail ── */
.ms-lower{display:grid;grid-template-columns:1.7fr .8fr;gap:20px;align-items:stretch;margin-bottom:20px}
.ms-hivecard{display:flex;flex-direction:column}
.ms-hivecard .hive-combwrap{padding:14px 10px 12px;flex:1 0 auto}
.ms-hivecard .hive-comb{width:100%;height:auto;display:block;overflow:visible}
.ms-legend{display:flex;flex-wrap:wrap;gap:2px;justify-content:center;padding:2px 10px 14px}
.ms-lg{display:inline-flex;align-items:center;gap:7px;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--body);padding:3px 10px}
.ms-lg i{width:10px;height:10px;border-radius:50%}

/* detail panel */
.ms-detail{padding:6px 20px 20px}
.ms-dhead{display:flex;align-items:center;gap:13px;padding-bottom:15px;border-bottom:1px solid var(--line)}
.ms-ring{width:54px;height:54px;flex:none;line-height:0}
.ms-ring svg{width:54px;height:54px}
.ms-dt{flex:1;min-width:0}
.ms-dt .nm{font-family:'Bricolage Grotesque','Inter',sans-serif;font-weight:700;font-size:18px;color:var(--ink)}
.ms-dt .mt{font-size:12px;color:var(--mute);margin-top:2px}
.ms-dscore{text-align:right}
.ms-dscore b{font-family:'Bricolage Grotesque','Inter',sans-serif;font-weight:800;font-size:30px;letter-spacing:-1px;line-height:1;color:var(--ink)}
.ms-dd{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;margin-top:3px}
.ms-dd.up{color:var(--emerald-d)}.ms-dd.down{color:var(--rose-d)}.ms-dd.flat{color:var(--mute)}
.ms-sect{margin-top:16px}
.ms-st{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-bottom:10px}
.ms-ev{display:flex;align-items:center;gap:11px;padding:8px 0}
.ms-ev+.ms-ev{border-top:1px solid var(--line)}
.ms-pts{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:700;min-width:30px;height:26px;display:grid;place-items:center;border-radius:7px}
.ms-pts.pos{background:var(--emerald-glow);color:var(--emerald-d)}
.ms-pts.neg{background:var(--rose-glow);color:var(--rose-d)}
.ms-pts.neu{background:var(--mist);color:var(--mute)}
.ms-et{flex:1;font-size:13px;color:var(--ink-2)}
.ms-et b{font-weight:500}
.ms-et span{display:block;font-size:11px;color:var(--mute);margin-top:1px}
.ms-act{display:flex;align-items:center;gap:11px;padding:11px;border:1px solid var(--line);border-radius:12px;margin-bottom:9px;transition:.14s ease}
.ms-act.linked{cursor:pointer}
.ms-act.linked:hover{border-color:var(--honey);background:var(--honey-glow)}
.ms-ai{width:30px;height:30px;border-radius:8px;background:var(--honey-glow);color:var(--honey-d);display:grid;place-items:center;flex:none;font-size:15px}
.ms-at{flex:1;font-size:13px;font-weight:500;color:var(--ink-2)}
.ms-ap{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:600;color:var(--emerald-d);white-space:nowrap}
.ms-fullbtn{margin-top:6px;width:100%;padding:11px;border:1px dashed var(--border);border-radius:12px;background:transparent;color:var(--accent);font-weight:600;font-size:13px;transition:.14s ease}
.ms-fullbtn:hover{background:var(--honey-glow);border-color:var(--honey)}

/* ── 13-pillar tracker ── */
.ms-thd{display:grid;grid-template-columns:18px 1.3fr 56px 1fr 54px;gap:14px;padding:12px 20px 10px;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);border-bottom:1px solid var(--line)}
.ms-thd span:nth-child(3),.ms-thd span:nth-child(5){text-align:right}
.ms-trow{display:grid;grid-template-columns:18px 1.3fr 56px 1fr 54px;gap:14px;align-items:center;padding:13px 20px;cursor:pointer;transition:.13s ease;border-left:3px solid transparent}
.ms-trow+.ms-trow{border-top:1px solid var(--line)}
.ms-trow:hover{background:var(--fog)}
.ms-trow.sel{background:var(--honey-glow);border-left-color:var(--honey)}
.ms-dot{width:11px;height:11px;border-radius:50%}
.ms-pn{font-weight:600;font-size:14px;color:var(--ink)}
.ms-ps{font-family:'Bricolage Grotesque','Inter',sans-serif;font-weight:800;font-size:18px;text-align:right;color:var(--ink)}
.ms-tbar{height:7px;border-radius:99px;background:var(--mist);position:relative;overflow:visible}
.ms-tbar i{display:block;height:100%;border-radius:99px;transition:width 1s cubic-bezier(.2,.7,.2,1)}
.ms-tgt{position:absolute;top:-3px;width:2px;height:13px;background:var(--mute);border-radius:2px}
.ms-pd{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;text-align:right}
.ms-pd.up{color:var(--emerald-d)}.ms-pd.down{color:var(--rose-d)}.ms-pd.flat{color:var(--mute)}

@media (max-width:1080px){.ms-herogrid{grid-template-columns:1fr}.ms-lower{grid-template-columns:1fr}.ms-runway{flex-direction:column;align-items:stretch}}
@media (max-width:860px){.ms-big{font-size:56px}.ms-trow,.ms-thd{grid-template-columns:14px 1fr 48px 50px}.ms-tbar{display:none}}

/* ── Announcements (faculty broadcasts) ─────────────────────────── */
.ann-list{display:flex;flex-direction:column;gap:10px}
.ann-item{display:flex;flex-direction:column;gap:5px;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:12px;transition:.15s}
.ann-item.card:hover{border-color:#CBD5E1;box-shadow:0 2px 10px rgba(11,18,32,.05)}
.ann-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.ann-title{font-family:'Inter';font-weight:600;font-size:14px;color:var(--ink);line-height:1.35}
.ann-aud{flex-shrink:0;font-family:'JetBrains Mono';font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--honey-d);background:var(--honey-glow);border-radius:5px;padding:2px 7px}
.ann-body{font-size:12.5px;color:var(--ink-2);line-height:1.5}
.ann-meta{font-size:11px;color:var(--mute)}
.dash-card .ann-list .ann-item{background:rgba(255,255,255,.6)}
