/* ============================================================
   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:#fff;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:#fff;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:#fff;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:#fff;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:#111827}
.tb-search-item:hover,.tb-search-item.active{background:#F3F4F6}
.tb-search-item .si-ic{width:18px;text-align:center;color:#6B7280;font-size:13px}
.tb-search-item .si-lbl{flex:1}
.tb-search-item .si-grp{font-size:10px;color:#9CA3AF;text-transform:uppercase;letter-spacing:.06em;font-family:'JetBrains Mono',monospace}
.tb-search-empty{padding:14px 12px;font-size:12.5px;color:#6B7280}
.app-topbar .tb-icon{position:relative;width:36px;height:36px;border-radius:8px;background:transparent;border:none;cursor:pointer;display:grid;place-items:center;font-size:16px;color: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:#fff;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:#fff;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 ─────────────────── */
.dash-hero{
  position:relative;overflow:hidden;margin-bottom:26px;
  display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;
  padding:34px 38px;border-radius:22px;
  background:
    radial-gradient(120% 140% at 88% -10%, rgba(245,158,11,.16) 0%, rgba(245,158,11,0) 46%),
    radial-gradient(120% 140% at 0% 120%, rgba(15,118,110,.12) 0%, rgba(15,118,110,0) 50%),
    linear-gradient(135deg,#0B1220 0%,#15203A 58%,#1E293B 100%);
  color:#fff;
  box-shadow:0 24px 60px -28px rgba(11,18,32,.65), inset 0 1px 0 rgba(255,255,255,.06);
}
/* faint honeycomb texture overlay */
.dash-hero::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='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;
}
/* soft conic glow that slowly breathes */
.dash-hero::after{
  content:"";position:absolute;width:420px;height:420px;top:-180px;right:-120px;pointer-events:none;
  background:conic-gradient(from 140deg, rgba(245,158,11,.30), rgba(16,185,129,.16), rgba(245,158,11,0) 70%);
  filter:blur(46px);border-radius:50%;
}

.dash-hero .hero-main{position:relative;z-index:1;flex:1 1 420px;min-width:280px}
.dash-hero .hero-kicker{
  display:inline-flex;align-items:center;gap:8px;
  font-family:'JetBrains Mono';font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--honey-soft);margin-bottom:16px;
  padding:5px 12px;border-radius:999px;background:rgba(252,211,77,.10);border:1px solid rgba(252,211,77,.22);
}
.dash-hero .hero-kicker .dot{width:6px;height:6px;border-radius:50%;background:var(--emerald);box-shadow:0 0 0 4px rgba(16,185,129,.22)}
.dash-hero h1{
  font-family:'Inter';font-weight:800;letter-spacing:-.035em;line-height:1.04;margin:0 0 12px;
  font-size:clamp(30px,4.4vw,52px);
  background:linear-gradient(120deg,#fff 30%,#FDE9B8 100%);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.dash-hero h1 .wave{display:inline-block;-webkit-text-fill-color:initial;transform-origin:70% 70%}
.dash-hero .hero-sub{font-size:14.5px;line-height:1.6;color:#C7D2E1;max-width:520px;margin:0 0 24px}
.dash-hero .hero-sub b{color:#fff;font-weight:600}

/* stat tiles */
.dash-hero .hero-stats{display:flex;gap:14px;flex-wrap:wrap}
.dash-hero .hstat{
  position:relative;flex:1 1 130px;min-width:128px;overflow:hidden;
  padding:14px 16px;border-radius:14px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);
  backdrop-filter:blur(6px);transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
/* sheen sweep on hover */
.dash-hero .hstat::after{content:'';position:absolute;top:0;left:-60%;width:40%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.16),transparent);
  transform:skewX(-18deg);opacity:0;transition:opacity .2s ease}
.dash-hero .hstat:hover::after{opacity:1}
.dash-hero .hstat .hs-ico{font-size:17px;line-height:1;margin-bottom:9px;display:block;transform-origin:center bottom}
.dash-hero .hstat .hs-val{font-family:'Inter';font-weight:800;font-size:23px;letter-spacing:-.02em;color:#fff;line-height:1;display:flex;align-items:baseline;gap:4px}
.dash-hero .hstat .hs-val .u{font-size:11.5px;font-weight:700;letter-spacing:.02em;color:var(--honey-soft)}
.dash-hero .hstat .hs-lbl{font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#94A3B8;margin-top:6px}

/* ── Streak — fiery orange/red ── */
.dash-hero .hstat.streak{background:linear-gradient(140deg,rgba(249,115,22,.20),rgba(239,68,68,.05));border-color:rgba(249,115,22,.34)}
.dash-hero .hstat.streak:hover{box-shadow:0 8px 26px -10px rgba(249,115,22,.55);border-color:rgba(249,115,22,.6)}
.dash-hero .hstat.streak .hs-val .u{color:#FDBA74}
.dash-hero .hstat.streak .hs-lbl{color:#FDBA74}
.dash-hero .hstat.streak .hs-ico{filter:drop-shadow(0 0 5px rgba(249,115,22,.7))}

/* ── Time — cool cyan/blue ── */
.dash-hero .hstat.time{background:linear-gradient(140deg,rgba(56,189,248,.18),rgba(59,130,246,.04));border-color:rgba(56,189,248,.32)}
.dash-hero .hstat.time:hover{box-shadow:0 8px 26px -10px rgba(56,189,248,.5);border-color:rgba(56,189,248,.58)}
.dash-hero .hstat.time .hs-val .u{color:#7DD3FC}
.dash-hero .hstat.time .hs-lbl{color:#7DD3FC}
.dash-hero .hstat.time .hs-ico{filter:drop-shadow(0 0 5px rgba(56,189,248,.6))}

/* ── XP — vibrant violet/emerald ── */
.dash-hero .hstat.xp{background:linear-gradient(140deg,rgba(167,139,250,.20),rgba(16,185,129,.05));border-color:rgba(167,139,250,.36)}
.dash-hero .hstat.xp:hover{box-shadow:0 8px 26px -10px rgba(167,139,250,.55);border-color:rgba(167,139,250,.62)}
.dash-hero .hstat.xp .hs-val .u{color:#C4B5FD}
.dash-hero .hstat.xp .hs-lbl{color:#C4B5FD}
.dash-hero .hstat.xp .hs-ico{filter:drop-shadow(0 0 6px rgba(167,139,250,.8))}

/* progress ring */
.dash-hero .hero-ring{position:relative;z-index:1;flex:0 0 auto;display:grid;place-items:center;width:184px;height:184px}
.dash-hero .hero-ring svg{transform:rotate(-90deg);width:184px;height:184px;filter:drop-shadow(0 6px 18px rgba(245,158,11,.35))}
.dash-hero .hero-ring .ring-track{fill:none;stroke:rgba(255,255,255,.10);stroke-width:13}
.dash-hero .hero-ring .ring-fill{fill:none;stroke:url(#heroRingGrad);stroke-width:13;stroke-linecap:round;transition:stroke-dashoffset 1s cubic-bezier(.22,1,.36,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:'Inter';font-weight:800;font-size:38px;letter-spacing:-.03em;line-height:1;color:#fff}
.dash-hero .hero-ring .rc-pct .pc{font-size:18px;color:var(--honey-soft);vertical-align:super}
.dash-hero .hero-ring .rc-lbl{font-family:'JetBrains Mono';font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#94A3B8;margin-top:6px}
.dash-hero .hero-ring .rc-sub{font-size:10.5px;color:#C7D2E1;margin-top:3px}

@media (max-width:860px){.dash-hero{padding:26px 22px;gap:22px}.dash-hero .hero-ring{width:150px;height:150px}.dash-hero .hero-ring svg{width:150px;height:150px}.dash-hero .hero-ring .rc-pct{font-size:30px}}
@media (max-width:600px){.dash-hero{flex-direction:column-reverse;align-items:stretch;text-align:center}.dash-hero .hero-kicker,.dash-hero .hero-ring{margin-left:auto;margin-right:auto}.dash-hero .hero-sub{margin-left:auto;margin-right:auto}}

/* ── DASH GRID + CARDS ──────────────────────────────── */
.dash-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.dash-card{background:#fff;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-12{grid-column:span 12}
@media (max-width:900px){.dash-card.span-6,.dash-card.span-8,.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(--ink) 0%,var(--ink-2) 100%);color:#fff;border-color:var(--ink);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:#fff}
.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:#fff;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:#fff}

/* 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:#fff;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:#fff;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:#fff;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)}

/* 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:#fff;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:#fff;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:#fff;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:#fff;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(--ink-2)}
.chat-msg.bot .bubble{background:#fff;border:1px solid var(--line);border-top-left-radius:4px}
.chat-msg.user .bubble{background:var(--honey-d);color:#fff;border-top-right-radius:4px}
.chat-msg .bubble b{font-weight:700;color:var(--honey-d)}
.chat-msg.user .bubble b{color:var(--honey-soft)}
.chat-composer{display:flex;gap:8px;margin-top:14px}
.chat-composer input{flex:1;padding:11px 14px;border:1px solid var(--line);border-radius:10px;font-family:'Inter';font-size:13px;outline:0}
.chat-composer input:focus{border-color:var(--honey-d)}
.chat-composer button{padding:11px 20px;background:var(--ink);color:#fff;border:none;border-radius:10px;font-family:'Inter';font-weight:600;font-size:13px;cursor:pointer;transition:.15s}
.chat-composer button:hover{background:var(--honey-d)}

/* 9-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:#fff;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:#fff;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)}}

/* ── 9 Pillars · column / beaker visualization ───────────────── */
.pillar-sub{font-size:14px;color:var(--mute);margin:2px 0 6px}
.pillar-cols{display:grid;grid-template-columns:repeat(9,1fr);gap:12px;margin-top:20px}
.pcol{position:relative;background:#fff;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)}
/* colour-band legend (under the pillars) */
.pillar-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin-top:20px;padding:14px 18px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.pl-item{display:inline-flex;align-items:center;gap:9px;font-family:'Inter';font-size:13px;font-weight:600;color:var(--ink-2)}
.pl-item i{width:11px;height:11px;border-radius:50%;flex-shrink:0}
[data-theme="dark"] .pillar-legend{background:var(--surface)}
/* 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 9 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,#1A2331,#243042 40%,#1A2331)}

/* Quiz cards */
.quiz-card{background:#fff;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:#fff;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:#fff;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(--ink)}
.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:#fff;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:#fff;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:#fff}
.pa-hero-pct{font-size:15px;color:#E2E8F0;line-height:1.45}
.pa-hero-pct b{color:#fff;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:#fff;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:#fff;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:#4F46E5;font-family:'Inter';font-size:13px;font-weight:800;text-anchor:middle}
.pa-vline{stroke:#C7D2FE;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{to{width:var(--w)}}
@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:0;animation:paBar 1s cubic-bezier(.22,1,.36,1) forwards .2s}
.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:#fff}
.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:#fff;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:#fff;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(--ink);color:#fff}
.profile-form .pf-actions .pf-cancel{background:#fff;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:#fff;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:#fff;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(--ink);color:#fff;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:#fff;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:#fff;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:#fff}
.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:#fff;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(--ink);color:#fff;border-color:var(--ink)}
.id-action.primary:hover{background:var(--honey-d);border-color:var(--honey-d);color:#fff}
.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:#fff;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:#fff;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(--ink) 0%,var(--ink-2) 100%);color:#fff;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:#fff;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:#fff}
.pst-ico.rp{background:linear-gradient(135deg,#A78BFA,#7C3AED);color:#fff}
.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(--ink) 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:#fff}
.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:#fff;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}
.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:#fff;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(--ink);color:#fff;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:#fff;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:#fff;color:var(--ink-2);transition:.15s}
.crop-btn:hover{background:var(--mist)}
.crop-btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}
.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:#fff;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:#fff;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}

/* Empty/placeholder for view-not-built */
.placeholder{padding:48px 32px;text-align:center;color:var(--mute);background:#fff;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:#fff;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:#fff;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:#fff;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(--ink);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(--ink) 0%,var(--ink-2) 100%);color:#fff;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:#fff;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:#fff;border:none;border-radius:10px;font-family:'Inter';font-weight:700;font-size:14px;cursor:pointer;margin-top:6px;transition:.15s}
.auth-btn:hover{background:var(--ink)}
.auth-btn.sec{background:#fff;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:#fff;font-family:'Inter',sans-serif;display:flex;flex-direction:column;gap:2px}
.app-sidebar::-webkit-scrollbar{width:0}
.app-sidebar.persona-student{background:#fff;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:#fff;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(--ink) 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:#fff;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:#fff;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:#fff;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:#fff;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:#fff;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:#fff;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:#fff;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:#fff;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:#fff;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:#fff;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:#fff;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:#fff;color:var(--ink-2);cursor:pointer;transition:all .14s}
.ch-opt:hover{border-color:var(--honey-soft)}
.ch-opt.active{background:var(--ink);border-color:var(--ink);color:#fff}

/* cinematic stage */
.ch-stage{position:fixed;inset:0;z-index:5000;overflow:hidden;color:#fff}
.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:#fff}
.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:#fff}
.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:#fff;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:#fff;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:#fff}
.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:#fff;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:#fff;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:#fff;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(--ink) 0%,#16233b 100%);color:#fff}
.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:#fff}
.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:#fff;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:#fff;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:#fff}
.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:#fff;border-color:var(--emerald-d)}
.lp-nav.active .lp-nav-ic{background:var(--honey-d);color:#fff;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:#000;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:#fff;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:#fff}
.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:#fff;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:#fff}
.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:#fff;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:#fff}
.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:#fff;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:#fff;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:#fff}

.lp-btn.ghost{background:#ffffff1a;border:1px solid #ffffff3d;color:#fff}
.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:#fff;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:#fff;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.45rem;border-radius:12px;background:#f8fafc}
.xph-welcome .xph-ic{background:#fff7ed}
.xph-task .xph-ic{background:#ecfdf5}
.xph-challenge .xph-ic{background:#eff6ff}
.xph-quiz .xph-ic{background:#f5f3ff}
.xph-streak .xph-ic{background:#fef2f2}
.xph-body{flex:1 1 auto;min-width:0}
.xph-title{font-weight:700;color:#111827;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:#fff;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)}

/* ══════════════════════════════════════════════════════════════
   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(30,40,58,.66); --ls-glass-2:rgba(30,40,58,.5);
  --ls-line:rgba(129,140,248,.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(99,102,241,.20), transparent 62%),
    radial-gradient(46% 42% at 102% 6%, rgba(168,85,247,.16), transparent 58%),
    radial-gradient(48% 44% at 86% 104%, rgba(14,165,233,.13), transparent 60%),
    var(--fog);}
[data-theme="dark"] .ls-canvas{
  background:
    radial-gradient(58% 46% at 12% -4%, rgba(99,102,241,.26), transparent 62%),
    radial-gradient(46% 42% at 102% 6%, rgba(168,85,247,.20), transparent 58%),
    radial-gradient(48% 44% at 86% 104%, rgba(14,165,233,.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}

/* ── 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:#fff;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:#fff;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:#fff;
  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:#fff;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:#fff}
.lsr-orb.active{background:linear-gradient(145deg,var(--ca),var(--cb));color:#fff;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:#fff;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:#fff}
.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:#fff;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:#fff;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(30,40,58,.66); --ls-glass-2:rgba(30,40,58,.5);
  --ls-line:rgba(129,140,248,.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:#fff}
.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:#fff;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}
.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:#fff;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:#fff}
.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}
