/* ============================================================
   STUDENT WEBAPP — Athulya's dashboard
   ============================================================
   Sprint: BTX-MOCKUPS-V3-WEBAPP-001 (BMW3-T10)
   Architecture: real product feel — no mockup chrome (no doc-head
   with persona tabs, no PRE-APPROVAL pill, no narrator copy).
   Imagine: student logs in → lands here. Topbar shows their identity,
   sidebar is real product nav, main panel shows their actual data.
   Mobile-first: sidebar collapses below 900px per Stage 5 Q4.
   ============================================================ */
body{background:var(--fog);margin:0;font-family:'Inter',sans-serif;color:var(--ink);min-height:100vh}
[x-cloak]{display:none !important}
/* Brand palette inlined as a fallback so colors always render even if _shared/brand.css fails to load (cache / file:// / offline). Values mirror brand.css :root. */
:root{
  --honey:#F59E0B; --honey-d:#B45309; --honey-soft:#FCD34D; --honey-glow:#FEF3C7; --honey-cream:#FEF6E0;
  --teal:#0F766E; --teal-d:#134E4A; --teal-soft:#99F6E4; --teal-glow:#CCFBF1;
  --plum:#6B21A8; --plum-d:#581C87; --plum-soft:#C4B5FD; --plum-glow:#EDE9FE;
  --emerald:#10B981; --emerald-d:#059669; --emerald-glow:#D1FAE5;
  --rose:#E11D48; --rose-d:#9F1239; --rose-glow:#FFE4E6;
  --sky:#0EA5E9; --sky-d:#0369A1; --sky-glow:#E0F2FE;
  --ink:#0B1220; --ink-2:#1E293B; --ink-3:#334155;
  --body:#475569; --mute:#64748B; --line:#E2E8F0;
  --cream:#FBF7EE; --cream-2:#F5EFE2; --mist:#F1F5F9; --fog:#F8FAFC;
}

/* ── TOPBAR ─────────────────────────────────────────── */
.app-topbar{position:sticky;top:0;z-index:50;background:var(--surface);border-bottom:1px solid var(--line);height:62px;display:flex;align-items:center;padding:0 24px;gap:16px;box-shadow:0 1px 2px rgba(11,18,32,.03)}
.app-topbar .brand-mark{display:flex;align-items:center;gap:10px;cursor:pointer;text-decoration:none;color:inherit}
.app-topbar .hex{width:24px;height:28px;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 84 96'><polygon fill='%23F59E0B' points='42,2 80,24 80,72 42,94 4,72 4,24'/></svg>") center/contain no-repeat;flex-shrink:0}
.app-topbar .brand-name{font-family:'Inter';font-weight:800;font-size:15px;color:var(--ink);letter-spacing:-0.015em}
.app-topbar .brand-sub{font-family:'JetBrains Mono';font-size:10px;color:var(--mute);letter-spacing:.16em;text-transform:uppercase;margin-left:8px;padding-left:8px;border-left:1px solid var(--line)}
.app-topbar .spacer{flex:1}
.app-topbar .tb-search{flex:0 1 320px;display:flex;align-items:center;gap:8px;padding:7px 12px;background:var(--mist);border:1px solid transparent;border-radius:8px;cursor:text;transition:.15s;font-size:12.5px;color:var(--mute)}
.app-topbar .tb-search:hover,.app-topbar .tb-search:focus-within{background:var(--surface);border-color:var(--line)}
.app-topbar .tb-search input{flex:1;border:0;outline:0;background:transparent;font-family:'Inter';font-size:12.5px;color:var(--ink)}
.app-topbar .tb-search kbd{font-family:'JetBrains Mono';font-size:10px;background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:1px 5px;color:var(--mute)}
.app-topbar .tb-search-wrap{position:relative;flex:0 1 320px;display:flex}
.app-topbar .tb-search-wrap .tb-search{flex:1}
.tb-search-pop{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:300;background:var(--surface);border:1px solid #E5E7EB;border-radius:10px;box-shadow:0 14px 34px rgba(15,23,42,.16);padding:6px;max-height:360px;overflow:auto}
.tb-search-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;background:transparent;border-radius:7px;cursor:pointer;text-align:left;font-family:'Inter';font-size:13px;color:var(--text-primary)}
.tb-search-item:hover,.tb-search-item.active{background:#F3F4F6}
.tb-search-item .si-ic{width:18px;text-align:center;color:#6B7280;font-size:13px}
.tb-search-item .si-lbl{flex:1}
.tb-search-item .si-grp{font-size:10px;color:#9CA3AF;text-transform:uppercase;letter-spacing:.06em;font-family:'JetBrains Mono',monospace}
.tb-search-empty{padding:14px 12px;font-size:12.5px;color:#6B7280}
.app-topbar .tb-icon{position:relative;width:36px;height:36px;border-radius:8px;background:transparent;border:none;cursor:pointer;display:grid;place-items:center;font-size:16px;color:var(--ink-2);transition:.15s}
.app-topbar .tb-icon:hover{background:var(--honey-glow);color:var(--honey-d)}
.app-topbar .tb-icon .badge{position:absolute;top:4px;right:4px;background:var(--rose);color:var(--on-accent);font-family:'JetBrains Mono';font-size:9px;font-weight:700;padding:1px 4px;border-radius:999px;min-width:16px;text-align:center;line-height:1.3}
.app-topbar .tb-xp{display:flex;align-items:center;gap:7px;padding:6px 13px;border-radius:999px;background:linear-gradient(135deg,rgba(167,139,250,.16),rgba(16,185,129,.10));border:1px solid rgba(167,139,250,.4);cursor:default;transition:.15s;white-space:nowrap}
.app-topbar .tb-xp:hover{box-shadow:0 4px 14px -6px rgba(167,139,250,.6);border-color:rgba(167,139,250,.65)}
.app-topbar .tb-xp .xp-ico{font-size:14px;filter:drop-shadow(0 0 5px rgba(167,139,250,.7))}
.app-topbar .tb-xp .xp-val{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:13px;color:#7C3AED;letter-spacing:.01em}
.app-topbar .tb-xp .xp-val .sep{color:var(--mute);font-weight:500;margin:0 1px}
.app-topbar .tb-xp .xp-lbl{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;color:#10B981;letter-spacing:.14em;text-transform:uppercase}
@media (max-width:600px){.app-topbar .tb-xp .xp-lbl{display:none}.app-topbar .tb-xp{padding:6px 10px}}
.app-topbar .tb-user{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;border-radius:999px;cursor:pointer;transition:.15s}
.app-topbar .tb-user:hover{background:var(--mist)}
.app-topbar .tb-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--honey),var(--honey-d));color:var(--on-accent);display:grid;place-items:center;font-weight:700;font-size:12.5px;letter-spacing:.02em}
.app-topbar .tb-user-info{font-size:12px;line-height:1.25;display:none}
.app-topbar .tb-user-info b{display:block;color:var(--ink);font-weight:600;font-size:12.5px}
.app-topbar .tb-user-info span{color:var(--mute);font-size:10.5px}
@media (min-width:900px){.app-topbar .tb-user-info{display:block}}
@media (max-width:600px){.app-topbar{padding:0 14px;gap:8px}.app-topbar .tb-search-wrap{display:none}.app-topbar .brand-sub{display:none}}

/* ── APP VIEW WRAPPER (overrides .app-main default padding) ─── */
.app-main{padding:0;background:var(--fog)}
.app-view{padding:28px 32px 64px;max-width:1280px;margin:0 auto;animation:viewFadeIn .18s ease-out}
@keyframes viewFadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.app-view-head{margin-bottom:24px}
.app-view-head h1{font-family:'Inter';font-weight:800;font-size:30px;letter-spacing:-0.02em;color:var(--ink);margin:0 0 6px;line-height:1.15}
.app-view-head h1 .em{color:var(--honey-d);font-style:italic;font-weight:500}
.app-view-head .sub{font-size:14px;color:var(--mute);margin:0;line-height:1.5}
.app-view-head .crumbs{font-family:'JetBrains Mono';font-size:10.5px;color:var(--mute);letter-spacing:.06em;margin-bottom:6px}
.app-view-head .crumbs b{color:var(--ink-2)}
@media (max-width:600px){.app-view{padding:18px 16px 48px}.app-view-head h1{font-size:22px}}

/* ── PERSONALIZED PRODUCTIVITY HERO ─────────────────── */
.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:var(--on-accent);
  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:var(--on-accent);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:var(--on-accent);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:var(--on-accent)}
.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:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 22px;display:flex;flex-direction:column;gap:10px;transition:.15s}
.dash-card:hover{border-color:#CBD5E1}
.dash-card.span-6{grid-column:span 6}
.dash-card.span-4{grid-column:span 4}
.dash-card.span-3{grid-column:span 3}
.dash-card.span-8{grid-column:span 8}
.dash-card.span-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(--deep) 0%,var(--deep-2) 100%);color:var(--on-accent);border-color:var(--deep);position:relative;overflow:hidden}
.score-card::before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='84' height='96' viewBox='0 0 84 96'><polygon fill='none' stroke='%23B45309' stroke-width='1' points='42,2 80,24 80,72 42,94 4,72 4,24'/></svg>");background-repeat:repeat;background-size:84px 96px;opacity:.05;pointer-events:none}
.score-card .ch h3,.score-card .ch .lbl{color:var(--on-accent)}
.score-card .ch .lbl{color:var(--honey-soft)}
.score-num{font-family:'Inter';font-weight:800;font-size:54px;line-height:1;letter-spacing:-0.035em;color:var(--on-accent);display:flex;align-items:baseline;gap:4px;margin:6px 0 4px}
.score-num .of{font-size:18px;font-weight:500;color:#FFFFFFA0;letter-spacing:0}
.score-delta{font-family:'JetBrains Mono';font-size:11.5px;font-weight:700;color:var(--emerald-glow);letter-spacing:.06em;margin-bottom:14px}
.trend-mini{display:flex;align-items:flex-end;gap:3px;height:36px;margin-bottom:14px}
.trend-mini .bar{flex:1;background:linear-gradient(180deg,var(--honey-soft),var(--honey));border-radius:3px 3px 0 0;opacity:.85;transition:.15s}
.trend-mini .bar.now{background:linear-gradient(180deg,var(--honey),var(--honey-d));opacity:1}
.score-card .card-action{color:var(--honey-soft)}
.score-card .card-action:hover{color:var(--on-accent)}

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

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

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

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

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

/* ── 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:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px 10px 14px;cursor:pointer;text-align:center;display:flex;flex-direction:column;align-items:center;transition:transform .15s,box-shadow .15s,border-color .15s}
.pcol:hover{transform:translateY(-4px);border-color:var(--pc);box-shadow:0 16px 32px -16px color-mix(in srgb,var(--pc) 65%,transparent)}
.pcol-ic{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:11px;background:color-mix(in srgb,var(--pc) 14%,#fff);color:var(--pcd);margin-bottom:10px}
.pcol-ic svg{width:21px;height:21px}
.pcol-name{font-family:'Inter';font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.2;min-height:30px;display:flex;align-items:center;justify-content:center}
.pcol-score{font-family:'Inter';font-size:32px;font-weight:800;color:var(--pcd);line-height:1;margin:4px 0 14px}
/* ── classical Doric column graphic ── */
.pcol-graphic{position:relative;display:flex;flex-direction:column;align-items:center;margin-bottom:12px}
/* CAPITAL — abacus slab + flared echinus cushion */
.pcol-capital{position:relative;z-index:4;display:flex;flex-direction:column;align-items:center;filter:drop-shadow(0 2px 2px rgba(15,23,42,.10))}
.pcol-abacus{width:76px;height:9px;background:linear-gradient(180deg,#FFFFFF,#E4EAF1);border-radius:3px 3px 1px 1px}
.pcol-echinus{width:70px;height:13px;margin-top:-1px;background:linear-gradient(180deg,#F5F8FB,#D7DFE9);clip-path:polygon(0 0,100% 0,86% 100%,14% 100%);box-shadow:inset 0 -3px 3px -2px rgba(15,23,42,.12)}
/* SHAFT — smooth fluted cylinder */
.pcol-shaft{position:relative;width:58px;height:200px;background:linear-gradient(90deg,#DBE2EC,#F3F7FB 45%,#E1E8F0);overflow:hidden;z-index:2;box-shadow:inset 0 0 0 1px rgba(15,23,42,.05)}
.pcol-fill{position:absolute;left:0;right:0;bottom:0;z-index:1;background:linear-gradient(90deg,var(--pcd),var(--pc) 26%,color-mix(in srgb,var(--pc) 70%,#fff) 50%,var(--pc) 74%,var(--pcd));box-shadow:inset 0 2px 0 rgba(255,255,255,.55),inset 0 -36px 26px -26px rgba(0,0,0,.20);transition:height .9s cubic-bezier(.16,1,.3,1)}
/* fluting + cylinder sheen overlaid across the whole shaft (filled & empty) */
.pcol-shaft::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:repeating-linear-gradient(90deg,rgba(15,23,42,.11) 0 1px,rgba(255,255,255,.5) 1px 2px,transparent 2px 6px),linear-gradient(90deg,rgba(0,0,0,.14),rgba(255,255,255,0) 22%,rgba(255,255,255,.22) 47%,rgba(255,255,255,0) 72%,rgba(0,0,0,.16))}
/* BASE — torus ring + plinth block */
.pcol-pedestal{position:relative;z-index:4;display:flex;flex-direction:column;align-items:center;filter:drop-shadow(0 4px 4px rgba(15,23,42,.13))}
.pcol-torus{width:66px;height:10px;background:linear-gradient(180deg,#F1F5F9,#D2DBE5);clip-path:polygon(14% 0,86% 0,100% 100%,0 100%);box-shadow:inset 0 2px 2px -1px rgba(255,255,255,.6)}
.pcol-plinth{width:78px;height:13px;margin-top:-1px;background:linear-gradient(180deg,#E8EDF3,#C7D1DD);border-radius:1px 1px 3px 3px}
/* y-axis labels — only rendered on the first column */
.pcol-axis{position:absolute;left:-8px;top:24px;bottom:25px;display:flex;flex-direction:column;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--mute);transform:translateX(-100%);padding-right:6px;text-align:right}
/* footer */
.pcol-pct{font-family:'Inter';font-size:21px;font-weight:800;color:var(--pcd);line-height:1;margin-top:14px}
.pcol-band{margin-top:7px;font-family:'Inter';font-size:11px;font-weight:700;color:var(--pcd);background:color-mix(in srgb,var(--pc) 14%,#fff);padding:4px 11px;border-radius:999px;letter-spacing:.01em}
.pcol-meta{list-style:none;margin:13px 0 0;padding:11px 8px 2px;width:100%;border-top:1px solid var(--line);text-align:left}
.pcol-meta li{position:relative;font-size:10.5px;color:var(--mute);line-height:1.55;padding-left:12px}
.pcol-meta li::before{content:"";position:absolute;left:2px;top:7px;width:5px;height:5px;border-radius:50%;background:var(--pc)}
/* 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:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px 24px;display:flex;align-items:center;gap:18px}
.quiz-card .qc-icon{width:48px;height:48px;border-radius:10px;background:var(--honey-glow);color:var(--honey-d);display:grid;place-items:center;font-size:22px;font-weight:800;flex-shrink:0}
.quiz-card.pending .qc-icon{background:var(--rose-glow);color:var(--rose-d)}
/* Real brand-logo / inline-SVG icon tile for subject cards */
.quiz-card .qc-icon.qc-logo{background:var(--card);border:1px solid var(--line);padding:9px}
.quiz-card .qc-icon.qc-logo img,.quiz-card .qc-icon.qc-logo .qc-svg{width:100%;height:100%;object-fit:contain;display:block}
.quiz-card .qc-icon.qc-logo .qc-svg{display:grid;place-items:center}
.quiz-card .qc-icon.qc-logo .qc-svg svg{width:100%;height:100%}
.quiz-card .qc-body{flex:1;min-width:0}
.quiz-card .qc-title{font-size:14.5px;font-weight:700;color:var(--ink);margin-bottom:4px}
.quiz-card .qc-meta{font-size:12px;color:var(--mute);line-height:1.4}
.quiz-card .qc-action{padding:9px 18px;background:var(--honey-d);color:var(--on-accent);border:none;border-radius:8px;font-family:'Inter';font-weight:600;font-size:13px;cursor:pointer;transition:.15s;flex-shrink:0}
.quiz-card .qc-action:hover{background:var(--deep)}
.quiz-card.done .qc-action{background:var(--mist);color:var(--mute);cursor:default}

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

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

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

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

/* trend chart */
.pa-trend .pa-chart{flex:1;width:100%;display:flex;align-items:center}
.pa-svg{width:100%;height:auto;display:block;overflow:visible}
.pa-grid{stroke:#EEF1F6;stroke-width:1}
.pa-ylab{fill:#94A3B8;font-family:'JetBrains Mono';font-size:11px;text-anchor:end}
.pa-xlab{fill:#94A3B8;font-family:'Inter';font-size:11px;text-anchor:middle}
.pa-val{fill:#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:var(--on-accent)}
.pa-tl-ic.verified{background:#10B981}
.pa-tl-ic.active{background:#6366F1}
.pa-tl-ic.expired{background:#E11D48}
.pa-tl-ic.pending,.pa-tl-ic.claimed{background:#94A3B8}
.pa-tl-body{flex:1;min-width:0}
.pa-tl-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pa-tl-title{font-size:13px;font-weight:600;color:var(--ink)}
.pa-tl-badge{font-size:9.5px;font-weight:700;padding:2px 8px;border-radius:999px}
.pa-tl-badge.verified{background:#D1FAE5;color:#059669}
.pa-tl-badge.active{background:#EEF2FF;color:#4F46E5}
.pa-tl-sub{font-size:11.5px;color:var(--mute);margin-top:3px}
.pa-tl-when{font-size:11px;color:var(--mute);white-space:nowrap;flex-shrink:0}

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

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

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

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

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

.pf-avatar-wrap{position:relative;flex-shrink:0;width:128px;height:128px;margin-top:-64px}
.pf-avatar{width:128px;height:128px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,var(--honey),var(--honey-d));border:5px solid #fff;box-shadow:0 12px 30px -10px rgba(11,18,32,.45),inset 0 0 0 1px rgba(255,255,255,.18);user-select:none}
.pf-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.pf-avatar .pf-initials{font-family:'Inter';font-weight:800;font-size:44px;color:var(--on-accent);letter-spacing:.02em;text-transform:uppercase}
.pf-avatar-edit{position:absolute;right:4px;bottom:6px;width:34px;height:34px;border-radius:50%;border:3px solid #fff;background:var(--deep);color:var(--on-accent);display:grid;place-items:center;cursor:pointer;font-size:14px;line-height:1;box-shadow:0 3px 8px rgba(11,18,32,.28);transition:.15s}
.pf-avatar-edit:hover{background:var(--honey-d);transform:scale(1.07)}
.pf-avatar-edit:focus-visible{outline:2px solid var(--honey);outline-offset:2px}

.pf-identity{display:flex;flex-direction:column;gap:6px;min-width:0;padding-bottom:4px}
.pf-identity .pf-name{font-family:'Inter';font-weight:800;font-size:26px;letter-spacing:-0.025em;color:var(--ink);line-height:1.08}
.pf-identity .pf-role{font-size:14px;color:var(--body);font-weight:600}
.pf-identity .pf-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:12.5px;color:var(--mute);font-weight:500;margin-top:1px}
.pf-identity .pf-meta .mi{display:inline-flex;align-items:center;gap:5px}
.pf-identity .pf-meta .mi .ic{opacity:.75}
.pf-identity .pf-badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:7px}
.pf-identity .pf-badge{display:inline-flex;align-items:center;gap:4px;font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:var(--mist);color:var(--ink-3)}
.pf-identity .pf-badge.ok{background:var(--emerald-glow);color:var(--emerald-d)}
.pf-identity .pf-badge.ok::before{content:"✓";font-weight:800}
.pf-photo-input{display:none}

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

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

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

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

/* ══════════════════════════════════════════════════════
   PROFILE PAGE — redesigned (hero + stats + tabs + completion aside)
   ══════════════════════════════════════════════════════ */
.pf-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}
.pf-main{display:flex;flex-direction:column;gap:18px;min-width:0}

/* — Header card — */
.pf-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px 24px;box-shadow:0 14px 40px -28px rgba(11,18,32,.5)}
.pf-hero-id{display:flex;align-items:center;gap:20px;min-width:0;flex:1 1 300px}
.pf-hero .pf-avatar-wrap{width:92px;height:92px;margin-top:0;flex-shrink:0}
.pf-hero .pf-avatar{width:92px;height:92px;border-width:4px}
.pf-hero .pf-avatar .pf-initials{font-size:34px}
.pf-hero .pf-avatar-edit{width:28px;height:28px;font-size:12px;right:0;bottom:2px}
.pf-nameline{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pf-nameline .pf-name{font-family:'Inter';font-weight:800;font-size:25px;letter-spacing:-.025em;color:var(--ink);line-height:1.05}
.pf-verified{display:inline-flex;align-items:center;gap:3px;font-family:'JetBrains Mono';font-size:10px;font-weight:700;letter-spacing:.04em;padding:3px 9px;border-radius:999px;background:var(--emerald-glow);color:var(--emerald-d)}
.pf-verified.pf-unverified{background:var(--rose-glow);color:var(--rose-d);border:1px solid #FDA4AF}
.pf-identity .pf-badge.pf-badge-pending{background:var(--honey-glow,#FEF3C7);color:var(--honey-d,#B45309)}
.pf-identity .pf-badge.pf-badge-pending::before{content:"○";font-weight:800}
.pf-identity .pf-badge.pf-badge-flag{background:var(--rose-glow);color:var(--rose-d);border:1px solid #FDA4AF}
.pf-identity .pf-badge.pf-badge-flag::before{content:"⚠";font-weight:800;margin-right:3px}
.pf-identity .pf-badge.pf-badge-cta{background:var(--rose-d);color:var(--on-accent);border:none;cursor:pointer;font-family:'JetBrains Mono';font-weight:700}
.pf-identity .pf-badge.pf-badge-cta:hover{background:var(--rose)}
.pf-hero .pf-role{font-size:13.5px;color:var(--body);font-weight:600;margin-top:3px}

/* — Dark score box — */
.pf-scorebox{flex-shrink:0;display:flex;flex-direction:column;gap:8px;min-width:188px;padding:16px 20px;border-radius:16px;background:linear-gradient(135deg,var(--deep) 0%,var(--deep-2) 100%);color:var(--on-accent);cursor:pointer;transition:.18s;box-shadow:0 16px 36px -22px rgba(11,18,32,.8)}
.pf-scorebox:hover{transform:translateY(-2px);box-shadow:0 20px 44px -22px rgba(11,18,32,.9)}
.psb-head{font-family:'JetBrains Mono';font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--honey-soft)}
.psb-main{display:flex;align-items:center;justify-content:space-between;gap:14px}
.psb-num{font-family:'Inter';font-weight:800;font-size:32px;letter-spacing:-.03em;line-height:1;display:flex;align-items:baseline;gap:2px}
.psb-of{font-size:14px;font-weight:500;color:#FFFFFF85;letter-spacing:0}
.psb-ring{position:relative;width:64px;height:64px;flex-shrink:0}
.psb-ring svg{transform:rotate(-90deg)}
.psb-pct{position:absolute;inset:0;display:grid;place-items:center;font-family:'JetBrains Mono';font-size:13px;font-weight:800;color:#FCD34D}
.psb-rank{font-family:'JetBrains Mono';font-size:10px;letter-spacing:.04em;color:#FFFFFF9C}

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

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

/* — Tabs — */
.pf-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}
.pf-tab{font-family:'Inter';font-size:13.5px;font-weight:600;color:var(--mute);background:transparent;border:none;border-bottom:2px solid transparent;padding:11px 16px;cursor:pointer;white-space:nowrap;transition:.14s;margin-bottom:-1px}
.pf-tab:hover{color:var(--ink-2)}
.pf-tab.active{color:var(--honey-d);border-bottom-color:var(--honey-d)}

/* — Tab stub (non-overview) — */
.pf-tabstub{align-items:center;text-align:center;padding:48px 24px;gap:8px}
.pf-skill-list{display:flex;flex-direction:column;gap:8px}
.pf-skill-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:8px}
.pf-skill-name{flex:1;font-size:13px;font-weight:600;color:var(--ink)}
.pf-skill-score{font-size:12px;color:var(--mute);font-family:'JetBrains Mono';white-space:nowrap}
.pf-anl-row{display:flex;align-items:center;gap:12px;padding:10px 4px}
.pf-anl-track{flex:1;height:8px;border-radius:999px;background:var(--mist);overflow:hidden}
.pf-anl-fill{display:block;height:100%;border-radius:999px;background:var(--honey)}
.pts-ico{font-size:30px;color:var(--honey-d)}
.pts-title{font-family:'Inter';font-weight:700;font-size:16px;color:var(--ink)}
.pts-sub{font-size:13px;color:var(--mute);max-width:380px}

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

@media (max-width:980px){.pf-grid{grid-template-columns:1fr}.pf-aside{position:static}}
@media (max-width:620px){.pf-stats{grid-template-columns:1fr}.pf-hero{padding:18px}.pf-scorebox{width:100%}}

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

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

/* Activity feed (Home) */
.activity-feed{display:flex;flex-direction:column;gap:0;border-left:2px solid var(--line);padding-left:14px;margin-left:6px}
.activity-item{position:relative;padding:8px 0 14px}
.activity-item::before{content:"";position:absolute;left:-21px;top:13px;width:10px;height:10px;border-radius:50%;background:var(--honey-d);border:2px solid #fff;box-shadow:0 0 0 2px var(--line)}
.activity-item.fresh::before{background:var(--emerald-d);box-shadow:0 0 0 2px var(--emerald-glow)}
.activity-item .ai-msg{font-size:12.5px;color:var(--ink-2);line-height:1.45}
.activity-item .ai-msg b{color:var(--ink);font-weight:600}
.activity-item .ai-time{font-family:'JetBrains Mono';font-size:10px;color:var(--mute);letter-spacing:.06em;margin-top:2px}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* ── topbar account dropdown ─────────────────────────────────────── */
.app-topbar .tb-user-wrap{position:relative}
.app-topbar .tb-user-caret{color:var(--mute);font-size:10px;margin-left:2px}
.app-topbar .tb-user-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:214px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(11,18,32,.18);padding:6px;z-index:60}
.app-topbar .tb-user-menu .um-head{padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:6px}
.app-topbar .tb-user-menu .um-head b{display:block;font-size:13px;color:var(--ink);font-weight:600}
.app-topbar .tb-user-menu .um-head span{font-size:11px;color:var(--mute)}
.app-topbar .tb-user-menu button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 10px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:13px;color:var(--ink-2);transition:.12s}
.app-topbar .tb-user-menu button:hover{background:var(--mist)}
.app-topbar .tb-user-menu button.danger{color:var(--rose-d)}
.app-topbar .tb-user-menu button.danger:hover{background:#fde8ec}
.app-topbar .tb-user-menu .um-sep{height:1px;background:var(--line);margin:6px 0}

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

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

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

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

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

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

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

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

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

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

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


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

.xph-note p{margin:0}

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

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

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

/* ══════════════════════════════════════════════════════════════
   LEARNING SPACE — premium skill-growth ecosystem
   Scoped under .ls / .lsr. Indigo accent + glassmorphism.
   Per-card accent passed inline as --ca / --cb.
   ══════════════════════════════════════════════════════════════ */
.ls,.lsr{
  --i1:#6366F1; --i2:#4338CA; --i3:#A855F7;
  --ca:#6366F1; --cb:#4338CA;
  --ls-glass:rgba(255,255,255,.72);
  --ls-glass-2:rgba(255,255,255,.55);
  --ls-line:rgba(99,102,241,.16);
  --ls-ink:var(--ink); --ls-mute:var(--mute);
  --ls-shadow:0 24px 60px -28px rgba(49,38,110,.55);
  position:relative;
}
[data-theme="dark"] .ls,[data-theme="dark"] .lsr{
  --ls-glass:rgba(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:var(--on-accent);position:relative;overflow:hidden;
  box-shadow:0 26px 60px -26px rgba(67,56,202,.7)}
.ls-banner::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='84' height='96' viewBox='0 0 84 96'><polygon fill='none' stroke='%23fff' stroke-width='1' points='42,2 80,24 80,72 42,94 4,72 4,24'/></svg>");background-size:72px 82px;opacity:.12}
.ls-banner .bt{position:relative}
.ls-banner h3{font-size:21px;font-weight:800;margin:0 0 4px}
.ls-banner p{font-size:13px;opacity:.92;margin:0}
.ls-banner .bcta{position:relative;background:var(--card);color:var(--i2);font-weight:700;font-size:13.5px;border:none;
  border-radius:12px;padding:13px 24px;cursor:pointer;white-space:nowrap;box-shadow:0 10px 26px -10px rgba(0,0,0,.4)}

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

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

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

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

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

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

/* ══════════════════════════════════════════════════════════════
   LEARNING ENVIRONMENT — concept sidebar + placeholder video lessons
   Scoped under .lenv. Inherits --ca/--cb from currentSkill.
   ══════════════════════════════════════════════════════════════ */
.lenv{ --i1:#6366F1; --i2:#4338CA; --ca:#6366F1; --cb:#4338CA;
  --ls-glass:rgba(255,255,255,.72); --ls-glass-2:rgba(255,255,255,.55);
  --ls-line:rgba(99,102,241,.16); --ls-ink:var(--ink); --ls-mute:var(--mute);
  --ls-shadow:0 24px 60px -28px rgba(49,38,110,.55); }
[data-theme="dark"] .lenv{ --ls-glass:rgba(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:var(--on-accent)}
.lenv-concept .lc-orb.done{background:linear-gradient(145deg,var(--emerald),var(--emerald-d))}
.lenv-concept .lc-orb.active{background:linear-gradient(145deg,var(--ca),var(--cb));box-shadow:0 0 0 3px color-mix(in srgb,var(--ca) 20%, transparent)}
.lenv-concept .lc-orb.locked{background:var(--mist);color:var(--ls-mute)}
.lenv-concept .lc-body{min-width:0;flex:1}
.lenv-concept .lc-title{display:block;font-size:12.5px;font-weight:600;color:var(--ls-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lenv-concept.on .lc-title{color:var(--ca)}
.lenv-concept .lc-meta{display:block;font-size:10.5px;color:var(--ls-mute);font-family:'JetBrains Mono';margin-top:1px}

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

/* ── now-playing stage ── */
.lenv-stage{display:grid;grid-template-columns:1.15fr 1fr;gap:0;border-radius:18px;overflow:hidden;
  border:1px solid var(--ls-glass-2);box-shadow:var(--ls-shadow);margin-bottom:22px;background:var(--ls-glass)}
@media(max-width:760px){.lenv-stage{grid-template-columns:1fr}}
.lenv-stage-thumb{position:relative;aspect-ratio:16/9;display:grid;place-items:center;overflow:hidden;
  background:linear-gradient(135deg,var(--cb),var(--ca) 70%,color-mix(in srgb,var(--ca) 60%, #fff))}
.lenv-stage-thumb::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='84' height='96' viewBox='0 0 84 96'><polygon fill='none' stroke='%23fff' stroke-width='1' points='42,2 80,24 80,72 42,94 4,72 4,24'/></svg>");background-size:64px 74px;opacity:.14}
.lenv-stage-glyph{position:absolute;right:14px;bottom:10px;font-size:42px;opacity:.5;filter:drop-shadow(0 4px 10px rgba(0,0,0,.3))}
.lenv-play{position:relative;width:66px;height:66px;border-radius:50%;display:grid;place-items:center;font-size:22px;color:var(--ca);
  background:rgba(255,255,255,.92);box-shadow:0 12px 30px -8px rgba(0,0,0,.45);padding-left:5px;cursor:pointer;transition:.16s}
.lenv-stage-thumb:hover .lenv-play{transform:scale(1.08)}
.lenv-stage-tag{position:absolute;top:12px;left:12px;font-family:'JetBrains Mono';font-size:8.5px;font-weight:700;letter-spacing:.1em;
  color:var(--on-accent);background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:4px 9px}
.lenv-stage-info{padding:20px 22px;display:flex;flex-direction:column;justify-content:center}
.lenv-nowk{font-family:'JetBrains Mono';font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ca);margin-bottom:7px}
.lenv-stage-info h2{font-size:18px;font-weight:800;color:var(--ls-ink);margin:0 0 10px;letter-spacing:-.01em;line-height:1.25}
.lenv-stage-meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:11.5px;color:var(--ls-mute);margin-bottom:16px}
.lenv-stage-actions{display:flex;gap:9px;flex-wrap:wrap}
.lenv-btn{border:none;border-radius:10px;padding:10px 16px;font-family:'Inter';font-weight:700;font-size:12px;cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px}
.lenv-btn.primary{background:linear-gradient(135deg,var(--ca),var(--cb));color:var(--on-accent);box-shadow:0 10px 22px -8px var(--ca)}
.lenv-btn.primary:hover{transform:translateY(-1px)}
.lenv-btn.ghost{background:var(--surface);color:var(--ls-ink);border:1px solid var(--ls-line)}
.lenv-btn.ghost:hover{border-color:var(--ca);color:var(--ca)}

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

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

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

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

/* ──────────────────────────────────────────────────────────────
   QUERY BOX — student support workspace (3-column).
   Token-only so dark mode comes free. Accent = plum (purple).
   ────────────────────────────────────────────────────────────── */
.qb-view{max-width:1400px}
.qb-shell{display:grid;grid-template-columns:300px 1fr 320px;gap:18px;align-items:start}

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

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

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

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

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

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

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

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

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

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

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

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

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

/* ════════════════════════════════════════════════════════════════
   ===== CAMPUS CONNECT — student social / collaboration feed =====
   Screen 1 .cc-lobby (radial) · Screen 2 .cc-shell (3-col feed).
   Tokens only — dark-mode safe. Accent: --plum.
   ════════════════════════════════════════════════════════════════ */
.cc-view{min-height:60vh}

/* shared avatars (img + initials fallback) */
.cc-ava{width:42px;height:42px;border-radius:50%;object-fit:cover;flex-shrink:0;border:1px solid var(--line)}
.cc-ava-fb{width:42px;height:42px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-family:'Inter';font-weight:700;font-size:14px;color:#fff;background:linear-gradient(140deg,var(--plum-soft),var(--plum))}
.cc-ava.sm,.cc-ava-fb.sm{width:32px;height:32px;font-size:11px}
.cc-ava.lg,.cc-ava-fb.lg{width:54px;height:54px;font-size:18px}

/* ── SCREEN 1 · radial lobby (motion graphics) ── */
.cc-lobby{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 16px 34px}
.cc-lobby-title{font-family:'Inter';font-weight:800;font-size:28px;letter-spacing:-0.025em;color:var(--ink);margin:0;animation:ccUp .6s cubic-bezier(.2,.7,.3,1) both}
.cc-lobby-sub{font-size:14px;color:var(--mute);margin:8px 0 0;animation:ccUp .6s .08s cubic-bezier(.2,.7,.3,1) both}
@keyframes ccUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.cc-radial{position:relative;width:460px;height:460px;max-width:90vw;margin:22px auto 10px;animation:ccUp .7s .12s cubic-bezier(.2,.7,.3,1) both}

/* concentric guide rings — slowly counter-rotating */
.cc-ring{position:absolute;border-radius:50%;pointer-events:none}
.cc-ring-1{inset:13%;border:1.5px dashed var(--plum-soft);opacity:.55;animation:ccSpin 26s linear infinite}
.cc-ring-2{inset:29%;border:1px solid var(--line);opacity:.7;animation:ccSpin 34s linear infinite reverse}
@keyframes ccSpin{to{transform:rotate(360deg)}}

/* accent dots travelling along the orbits */
.cc-orbit{position:absolute;inset:13%;border-radius:50%;pointer-events:none;animation:ccSpin 9s linear infinite}
.cc-orbit-rev{inset:29%;animation:ccSpin 7s linear infinite reverse}
.cc-orbit-dot{position:absolute;top:-5px;left:50%;width:10px;height:10px;border-radius:50%;background:var(--plum);box-shadow:0 0 0 4px var(--plum-glow),0 0 14px var(--plum);transform:translateX(-50%)}
.cc-orbit-dot.alt{width:8px;height:8px;background:var(--honey);box-shadow:0 0 0 4px var(--honey-glow),0 0 12px var(--honey)}

/* satellite nodes — pop in, then idle-float (staggered) */
.cc-node{position:absolute;z-index:3;display:flex;flex-direction:column;align-items:center;gap:9px;width:100px;animation:ccPop .55s cubic-bezier(.2,1.2,.3,1) both}
.cc-node-ic{width:58px;height:58px;border-radius:17px;background:var(--card);border:1px solid var(--line);box-shadow:0 8px 22px rgba(11,18,32,.10);display:grid;place-items:center;font-size:23px;color:var(--plum-d);animation:ccFloat 5s ease-in-out infinite;transition:transform .2s cubic-bezier(.2,.9,.3,1),box-shadow .2s,background .2s,color .2s}
.cc-node-lbl{font-family:'Inter';font-weight:700;font-size:12px;color:var(--ink-2);line-height:1.2;letter-spacing:-.01em}
.cc-node:hover .cc-node-ic{animation:none;transform:translateY(-5px) scale(1.08);background:linear-gradient(145deg,var(--plum),var(--plum-d));color:#fff;box-shadow:0 14px 30px rgba(107,33,168,.34)}
.cc-node-1{top:-10px;left:calc(50% - 50px);animation-delay:.05s}
.cc-node-2{top:20%;right:-10px;animation-delay:.12s}
.cc-node-3{bottom:20%;right:-10px;animation-delay:.19s}
.cc-node-4{bottom:-10px;left:calc(50% - 50px);animation-delay:.26s}
.cc-node-5{bottom:20%;left:-10px;animation-delay:.33s}
.cc-node-6{top:20%;left:-10px;animation-delay:.40s}
.cc-node-1 .cc-node-ic{animation-delay:0s}
.cc-node-2 .cc-node-ic{animation-delay:.5s}
.cc-node-3 .cc-node-ic{animation-delay:1s}
.cc-node-4 .cc-node-ic{animation-delay:1.5s}
.cc-node-5 .cc-node-ic{animation-delay:2s}
.cc-node-6 .cc-node-ic{animation-delay:2.5s}
@keyframes ccPop{from{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}
@keyframes ccFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}

/* central core — gradient sphere, breathing glow, sonar waves */
.cc-core{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:136px;height:136px;border-radius:50%;border:none;cursor:pointer;display:grid;place-items:center;color:#fff;z-index:2;background:radial-gradient(circle at 34% 28%,#a779e8,var(--plum) 52%,var(--plum-d));box-shadow:0 0 0 10px var(--plum-glow),0 18px 46px rgba(107,33,168,.45);animation:ccBreathe 3s ease-in-out infinite;transition:transform .18s cubic-bezier(.2,.9,.3,1)}
.cc-core::before{content:"";position:absolute;inset:10px;border-radius:50%;background:radial-gradient(circle at 38% 30%,rgba(255,255,255,.55),rgba(255,255,255,0) 60%);pointer-events:none}
.cc-core-ic{position:relative;font-size:46px;line-height:1;display:grid;place-items:center;filter:drop-shadow(0 2px 6px rgba(60,20,110,.4));animation:ccFloat 4s ease-in-out infinite}
.cc-core:hover{transform:translate(-50%,-50%) scale(1.06)}
.cc-core:active{transform:translate(-50%,-50%) scale(.96)}
@keyframes ccBreathe{0%,100%{box-shadow:0 0 0 8px var(--plum-glow),0 18px 46px rgba(107,33,168,.38)}50%{box-shadow:0 0 0 16px var(--plum-glow),0 22px 54px rgba(107,33,168,.5)}}
.cc-core-wave{position:absolute;inset:0;border-radius:50%;border:2px solid var(--plum-soft);opacity:0;pointer-events:none;animation:ccWave 3s ease-out infinite}
.cc-core-wave:nth-of-type(2){animation-delay:1.5s}
@keyframes ccWave{0%{opacity:.55;transform:scale(1)}100%{opacity:0;transform:scale(2.1)}}

.cc-lobby-hint{font-family:'Inter';font-weight:700;font-size:13px;color:var(--plum-d);margin:12px 0 0;display:inline-flex;align-items:center;gap:8px;animation:ccUp .6s .3s both}
.cc-lobby-hint .bi{animation:ccTap 1.6s ease-in-out infinite}
@keyframes ccTap{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}

/* respect reduced-motion */
@media (prefers-reduced-motion:reduce){
  .cc-ring,.cc-orbit,.cc-node,.cc-node-ic,.cc-core,.cc-core-ic,.cc-core-wave,.cc-lobby-title,.cc-lobby-sub,.cc-radial,.cc-lobby-hint,.cc-lobby-hint .bi{animation:none}
}

/* ── SCREEN 2 · feed shell ── */
.cc-shell{display:grid;grid-template-columns:248px 1fr 320px;gap:20px;align-items:start}
.cc-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px}

/* left — channels */
.cc-nav{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;position:sticky;top:14px}
.cc-nav-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:12px}
.cc-nav-head h2{font-family:'Inter';font-weight:800;font-size:16px;color:var(--ink);margin:0}
.cc-nav-head p{font-size:11px;color:var(--mute);margin:2px 0 0}
.cc-lobby-btn{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;height:30px;padding:0 11px 0 9px;border-radius:999px;border:1px solid var(--plum-soft);background:var(--plum-glow);color:var(--plum-d);font-family:'Inter';font-weight:700;font-size:12px;line-height:1;cursor:pointer;transition:.13s}
.cc-lobby-btn .bi{font-size:14px}
.cc-lobby-btn:hover{background:var(--plum-d);border-color:var(--plum-d);color:#fff}
/* Back-to-Campus-Connect button shown on Messages/Friends/Faculty when opened from a channel */
.cc-return-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px 0 11px;margin-bottom:14px;border-radius:999px;border:1px solid var(--plum-soft);background:var(--plum-glow);color:var(--plum-d);font-family:'Inter';font-weight:700;font-size:12.5px;line-height:1;cursor:pointer;transition:.13s}
.cc-return-btn .bi{font-size:14px}
.cc-return-btn:hover{background:var(--plum-d);border-color:var(--plum-d);color:#fff}
.cc-return-btn.sm{height:28px;padding:0 11px 0 9px;margin:0 0 8px;font-size:11.5px}
.cc-channels{display:flex;flex-direction:column;gap:2px}
.cc-ch{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:none;background:transparent;border-radius:9px;cursor:pointer;font-family:'Inter';font-weight:600;font-size:13px;color:var(--body);transition:.12s;text-align:left}
.cc-ch:hover{background:var(--fog)}
.cc-ch.active{background:var(--plum-glow);color:var(--plum-d)}
.cc-ch-ic{width:22px;text-align:center;font-size:15px}
.cc-ch-lbl{flex:1}
.cc-ch-count{font-family:'JetBrains Mono';font-size:10px;font-weight:700;min-width:18px;height:18px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--rose-glow,#FEE2E2);color:var(--rose-d,#B91C1C)}
.cc-nav-sec{font-family:'Inter';font-weight:700;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin:14px 0 5px;padding:0 10px}

/* center — feed (head + composer pinned, only posts scroll) */
.cc-feed{display:flex;flex-direction:column;gap:14px;min-width:0;position:sticky;top:76px;height:calc(100vh - 90px)}
.cc-feed-head,.cc-feed>.cc-compose{flex-shrink:0}
.cc-feed-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding-right:4px;margin-right:-4px}
.cc-feed-scroll::-webkit-scrollbar{width:7px}
.cc-feed-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}
.cc-feed-scroll::-webkit-scrollbar-thumb:hover{background:var(--mute)}
.cc-feed-head h3{font-family:'Inter';font-weight:800;font-size:18px;color:var(--ink);margin:0}
.cc-feed-head p{font-size:12.5px;color:var(--mute);margin:3px 0 0}
.cc-compose{display:flex;flex-direction:column;gap:12px}
.cc-compose-top{display:flex;gap:12px;align-items:flex-start}
.cc-compose-in{flex:1;border:1px solid var(--line);background:var(--fog);border-radius:11px;padding:11px 13px;font-family:'Inter';font-size:13.5px;color:var(--ink);resize:vertical;min-height:46px;outline:none;transition:.13s}
.cc-compose-in:focus{border-color:var(--plum-soft);background:var(--card);box-shadow:0 0 0 3px var(--plum-glow)}
.cc-compose-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cc-chips{display:flex;gap:7px;flex-wrap:wrap;flex:1}
.cc-chip{padding:6px 12px;border:1px solid var(--line);background:var(--card);border-radius:999px;font-family:'Inter';font-weight:600;font-size:11.5px;color:var(--body);cursor:pointer;transition:.12s;white-space:nowrap}
.cc-chip:hover{border-color:var(--plum-soft);color:var(--plum-d)}
.cc-chip.active{background:var(--plum);border-color:var(--plum);color:#fff}
.cc-post-btn{padding:9px 22px;border:none;border-radius:9px;background:var(--plum);color:#fff;font-family:'Inter';font-weight:700;font-size:13px;cursor:pointer;transition:.13s}
.cc-post-btn:hover{background:var(--plum-d)}

/* composer attach toolbar (LinkedIn-style) */
.cc-compose-attbar{display:flex;gap:6px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:10px}
.cc-att-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid transparent;border-radius:8px;background:transparent;font-family:'Inter';font-weight:600;font-size:12.5px;color:var(--mute);cursor:pointer;transition:.12s}
.cc-att-btn i{font-size:15px}
.cc-att-btn:hover{background:var(--plum-glow);color:var(--plum-d)}
/* pending attachment chips in the composer */
.cc-draft-atts{display:flex;flex-wrap:wrap;gap:8px}
.cc-draft-att{display:flex;align-items:center;gap:8px;max-width:240px;padding:6px 8px 6px 6px;border:1px solid var(--line);border-radius:9px;background:var(--fog)}
.cc-draft-thumb{width:30px;height:30px;border-radius:6px;flex-shrink:0;object-fit:cover;display:grid;place-items:center;font-size:15px;background:var(--card);border:1px solid var(--line);color:var(--plum-d)}
.cc-draft-name{flex:1;min-width:0;font-family:'Inter';font-weight:600;font-size:11.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-draft-x{flex-shrink:0;border:none;background:transparent;color:var(--mute);cursor:pointer;font-size:15px;line-height:1;padding:0;display:grid;place-items:center}
.cc-draft-x:hover{color:var(--rose-d,#B91C1C)}

/* post card */
.cc-post{display:flex;flex-direction:column;gap:11px;transition:.16s}
.cc-post:hover{box-shadow:0 6px 20px rgba(11,18,32,.06)}
.cc-post-head{display:flex;align-items:center;gap:11px}
.cc-post-id{flex:1;min-width:0;display:flex;flex-direction:column}
.cc-post-id b{font-family:'Inter';font-weight:700;font-size:13.5px;color:var(--ink)}
.cc-post-id small{font-size:11.5px;color:var(--mute)}
.cc-post-tag{flex-shrink:0;font-family:'Inter';font-weight:700;font-size:10.5px;padding:4px 10px;border-radius:999px;background:var(--plum-glow);color:var(--plum-d);letter-spacing:.01em}
.cc-post-tag.tag-stuck{background:var(--rose-glow,#FEE2E2);color:var(--rose-d,#B91C1C)}
.cc-post-tag.tag-encourage{background:var(--emerald-glow,#D1FAE5);color:var(--emerald-d,#047857)}
.cc-post-tag.tag-smartRead{background:var(--honey-glow);color:var(--honey-d)}
.cc-post-tag.tag-peerSupport{background:var(--teal-glow,#CCFBF1);color:var(--teal-d,#0F766E)}
.cc-post-title{font-family:'Inter';font-weight:700;font-size:15px;color:var(--ink);margin:0;letter-spacing:-0.01em}
.cc-post-body{font-size:13px;color:var(--body);line-height:1.55;margin:0;white-space:pre-line}

/* attachments */
.cc-attach{display:flex;flex-direction:column;gap:8px}
.cc-file{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--fog);text-decoration:none;transition:.13s}
.cc-file:hover{border-color:var(--plum-soft);background:var(--plum-glow)}
.cc-file-ic{width:34px;height:34px;border-radius:8px;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;font-size:16px}
.cc-file-meta{flex:1;display:flex;flex-direction:column;min-width:0}
.cc-file-meta b{font-family:'Inter';font-weight:600;font-size:12.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-file-meta small{font-size:11px;color:var(--mute)}
.cc-file-dl{color:var(--plum-d);font-size:15px}
.cc-imggrid{display:grid;gap:6px;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.cc-imggrid.n1{grid-template-columns:1fr}
.cc-imggrid.n2{grid-template-columns:1fr 1fr}
.cc-imggrid.n3{grid-template-columns:1fr 1fr 1fr}
.cc-imgcell{position:relative;height:150px;display:grid;place-items:center;overflow:hidden;background:var(--mist);cursor:pointer;text-decoration:none;width:100%;padding:0;border:none;font:inherit;margin:0}
.cc-imggrid.n1 .cc-imgcell{height:240px}
.cc-img-real{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
.cc-imgcell:hover .cc-img-real{transform:scale(1.05)}
.cc-img-ic{font-size:24px;color:rgba(11,18,32,.4)}
/* video attachments */
.cc-videos{display:flex;flex-direction:column;gap:8px}
.cc-video{width:100%;max-height:320px;border-radius:12px;border:1px solid var(--line);background:#000;display:block}
/* source link cards */
.cc-links{display:flex;flex-direction:column;gap:8px}
.cc-linkcard{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--fog);text-decoration:none;transition:.13s}
.cc-linkcard:hover{border-color:var(--plum-soft);background:var(--plum-glow)}
.cc-link-ic{width:34px;height:34px;border-radius:8px;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;font-size:18px;color:var(--plum-d)}
.cc-link-meta{flex:1;display:flex;flex-direction:column;min-width:0}
.cc-link-meta b{font-family:'Inter';font-weight:600;font-size:12.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-link-meta small{font-size:11px;color:var(--mute)}
.cc-link-go{color:var(--plum-d);font-size:14px}

/* actions */
.cc-act{display:flex;align-items:center;gap:14px;border-top:1px solid var(--line);padding-top:11px}
.cc-act-btn{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;cursor:pointer;font-family:'Inter';font-weight:600;font-size:12.5px;color:var(--mute);transition:.12s}
.cc-act-btn:hover{color:var(--plum-d)}
.cc-act-btn.liked{color:var(--rose-d,#B91C1C)}
.cc-act-btn b{font-family:'JetBrains Mono';font-size:11.5px}
.cc-act-spacer{flex:1}
.cc-post-chan{font-family:'JetBrains Mono';font-size:11px;color:var(--plum-d);opacity:.8}

/* comments */
.cc-comments{display:flex;flex-direction:column;gap:11px;border-top:1px solid var(--line);padding-top:12px}
.cc-cmt{display:flex;gap:10px}
.cc-cmt-body{flex:1;background:var(--fog);border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.cc-cmt-body b{font-family:'Inter';font-weight:700;font-size:12.5px;color:var(--ink)}
.cc-cmt-body small{font-size:10.5px;color:var(--mute);margin-left:6px}
.cc-cmt-body p{margin:3px 0 0;font-size:12.5px;color:var(--body);line-height:1.5}
.cc-cmt-add{display:flex;gap:8px}
.cc-cmt-in{flex:1;border:1px solid var(--line);background:var(--card);border-radius:9px;padding:9px 12px;font-family:'Inter';font-size:12.5px;color:var(--ink);outline:none;transition:.13s}
.cc-cmt-in:focus{border-color:var(--plum-soft);box-shadow:0 0 0 3px var(--plum-glow)}
.cc-cmt-send{padding:0 16px;border:none;border-radius:9px;background:var(--plum);color:#fff;font-family:'Inter';font-weight:700;font-size:12px;cursor:pointer}
.cc-cmt-send:hover{background:var(--plum-d)}
.cc-empty{padding:34px;text-align:center;color:var(--mute);font-size:13px;background:var(--card);border:1px dashed var(--line);border-radius:14px}
.cc-act-guide{color:var(--plum-d)}
.cc-act-guide:hover{color:var(--plum)}

/* ── Guide / Share modals ── */
.cc-modal-wrap{position:fixed;inset:0;z-index:4200;display:grid;place-items:center;padding:20px}
.cc-modal-back{position:absolute;inset:0;background:rgba(11,18,32,.5);backdrop-filter:blur(3px)}
.cc-modal{position:relative;width:100%;max-width:440px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 36px 80px -28px rgba(11,18,32,.5);display:flex;flex-direction:column;max-height:88vh;overflow:hidden}
.cc-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.cc-modal-x{flex-shrink:0;border:0;background:var(--fog);width:30px;height:30px;border-radius:9px;cursor:pointer;color:var(--mute);font-size:12px}
.cc-modal-x:hover{background:var(--line);color:var(--ink)}
.cc-modal-head b{font-family:'Inter';font-weight:800;font-size:14.5px;color:var(--ink);display:block}
.cc-modal-head small{font-size:11.5px;color:var(--mute)}
/* guide */
.cc-guide{max-width:460px}
.cc-guide-inner{display:flex;flex-direction:column;min-height:0;flex:1}
.cc-guide-who{display:flex;align-items:center;gap:10px}
.cc-quote{display:flex;gap:0;margin:14px 18px 6px;background:var(--fog);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.cc-quote-bar{flex-shrink:0;width:4px;background:var(--plum)}
.cc-quote-body{padding:9px 12px;min-width:0}
.cc-quote-body b{font-family:'Inter';font-weight:700;font-size:12.5px;color:var(--ink)}
.cc-quote-body p{margin:2px 0 0;font-size:12px;color:var(--body);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cc-guide-thread{flex:1;overflow-y:auto;display:flex;flex-direction:column;justify-content:flex-end;gap:9px;padding:12px 18px;min-height:90px}
.cc-bubble{max-width:80%;padding:8px 12px;border-radius:14px;font-size:12.5px;line-height:1.5}
.cc-bubble p{margin:0;color:inherit}
.cc-bubble small{display:block;margin-top:3px;font-size:10px;opacity:.65}
.cc-bubble.them{align-self:flex-start;background:var(--fog);border:1px solid var(--line);color:var(--body);border-bottom-left-radius:4px}
.cc-bubble.me{align-self:flex-end;background:var(--plum);color:#fff;border-bottom-right-radius:4px}
.cc-guide-send{padding:10px 18px 14px;border-top:1px solid var(--line);background:var(--card)}
.cc-guide-send .cc-cmt-send,.cc-share-foot .cc-cmt-send{display:inline-flex;align-items:center;gap:6px}
/* reply preview attached on top of the composer (WhatsApp-style) */
.cc-reply-to{display:flex;gap:0;background:var(--fog);border:1px solid var(--line);border-bottom:none;border-radius:9px 9px 0 0;overflow:hidden;margin-bottom:-1px}
.cc-reply-to .cc-quote-bar{flex-shrink:0;width:3px;background:var(--plum)}
.cc-reply-body{padding:7px 11px;min-width:0}
.cc-reply-body b{display:block;font-family:'Inter';font-weight:700;font-size:11px;color:var(--plum);letter-spacing:.01em}
.cc-reply-body p{margin:2px 0 0;font-size:11.5px;color:var(--body);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cc-reply-to + .cc-cmt-add .cc-cmt-in{border-top-left-radius:0;border-top-right-radius:0}
/* empty thread hint */
.cc-guide-empty{margin:auto;display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--muted);text-align:center;padding:10px}
.cc-guide-empty i{font-size:22px;color:var(--plum-soft)}
.cc-guide-empty span{font-size:11.5px;max-width:200px;line-height:1.45}
/* share */
.cc-share-title{font-family:'Inter';font-weight:800;font-size:14.5px;color:var(--ink)}
.cc-share-sub{display:block;font-size:11.5px;color:var(--mute);margin-top:2px;max-width:320px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-share-scroll{flex:1;overflow-y:auto;padding:8px 10px}
.cc-share-group{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);font-weight:700;padding:10px 8px 6px}
.cc-share-row{display:flex;align-items:center;gap:11px;width:100%;border:1px solid transparent;background:transparent;border-radius:11px;padding:8px 10px;cursor:pointer;text-align:left;transition:.12s}
.cc-share-row:hover{background:var(--fog)}
.cc-share-row.sel{background:var(--plum-glow);border-color:var(--plum-soft)}
.cc-share-ic{flex-shrink:0;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--plum-glow);color:var(--plum-d);font-size:14px}
.cc-share-meta{flex:1;min-width:0}
.cc-share-meta b{display:block;font-family:'Inter';font-weight:700;font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-share-meta small{font-size:11px;color:var(--mute)}
.cc-share-tick{flex-shrink:0;font-size:17px;color:var(--line)}
.cc-share-row.sel .cc-share-tick{color:var(--plum)}
.cc-share-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-top:1px solid var(--line)}
.cc-share-count{font-size:12px;color:var(--mute);font-weight:600}
.cc-cmt-send:disabled{opacity:.45;cursor:not-allowed}

/* right — rail */
.cc-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:14px}
.cc-side-head{margin-bottom:12px}
.cc-side-head h4{font-family:'Inter';font-weight:800;font-size:14px;color:var(--ink);margin:0}
.cc-prof-top{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.cc-prof-id{display:flex;flex-direction:column;min-width:0}
.cc-prof-id b{font-family:'Inter';font-weight:700;font-size:14.5px;color:var(--ink)}
.cc-prof-id small{font-size:12px;color:var(--mute)}
.cc-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.cc-stat{text-align:center;background:var(--fog);border:1px solid var(--line);border-radius:11px;padding:11px 6px}
.cc-stat b{display:block;font-family:'Inter';font-weight:800;font-size:18px;color:var(--plum-d)}
.cc-stat i{display:block;font-style:normal;font-size:10.5px;color:var(--mute);margin-top:3px;line-height:1.2}
.cc-sugg{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.cc-sugg:first-of-type{border-top:none}
.cc-sugg-id{flex:1;min-width:0;display:flex;flex-direction:column}
.cc-sugg-id b{font-family:'Inter';font-weight:700;font-size:12.5px;color:var(--ink)}
.cc-sugg-id small{font-size:11px;color:var(--mute)}
.cc-join{flex-shrink:0;padding:6px 15px;border:1px solid var(--plum);background:transparent;color:var(--plum-d);border-radius:8px;font-family:'Inter';font-weight:700;font-size:11.5px;cursor:pointer;transition:.12s}
.cc-join:hover{background:var(--plum-glow)}
.cc-join.joined{background:var(--plum);border-color:var(--plum);color:#fff}
.cc-trend{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:8px 10px;border:1px solid transparent;background:transparent;border-radius:9px;cursor:pointer;transition:.12s;text-align:left}
.cc-trend:hover{background:var(--fog)}
.cc-trend.active{background:var(--plum-glow);border-color:var(--plum-soft)}
.cc-trend b{font-family:'Inter';font-weight:700;font-size:12.5px;color:var(--plum-d)}
.cc-trend small{font-size:11px;color:var(--mute)}
.cc-cta{align-items:flex-start;text-align:left;background:linear-gradient(160deg,var(--plum-glow),var(--card));border-color:var(--plum-soft);display:flex;flex-direction:column;gap:8px}
.cc-cta-glyph{width:38px;height:38px;border-radius:10px;background:var(--card);border:1px solid var(--plum-soft);display:grid;place-items:center;font-size:19px}
.cc-cta b{font-family:'Inter';font-weight:700;font-size:14px;color:var(--ink)}
.cc-cta p{margin:0;font-size:12px;color:var(--body);line-height:1.45}
.cc-cta-btn{margin-top:4px;padding:9px 16px;border:none;border-radius:8px;background:var(--plum);color:#fff;font-family:'Inter';font-weight:700;font-size:12.5px;cursor:pointer;transition:.13s}
.cc-cta-btn:hover{background:var(--plum-d)}

/* stack on narrow screens */
@media (max-width:1100px){.cc-shell{grid-template-columns:1fr}.cc-nav,.cc-side{position:static}.cc-feed{position:static;height:auto}.cc-feed-scroll{overflow:visible;padding-right:0;margin-right:0}.cc-radial{width:380px;height:380px}}

/* ════════════════════════════════════════════════════════════════
   ===== FRIENDS & CONNECTIONS =====
   Academic networking: header + search · summary tiles · section
   filter chips · discovery rails of profile cards. Accent: --plum.
   Tokens only — dark-mode safe (bg --card/--fog, text --ink/--mute).
   ════════════════════════════════════════════════════════════════ */
.fr-view{min-height:60vh}

/* header */
.fr-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.fr-title{font-family:'Inter';font-weight:800;font-size:24px;letter-spacing:-0.025em;color:var(--ink);margin:0}
.fr-sub{font-size:13.5px;color:var(--mute);margin:6px 0 0;max-width:520px;line-height:1.5}
.fr-search{position:relative;display:flex;align-items:center;min-width:300px;flex:1;max-width:420px}
.fr-search>.bi{position:absolute;left:14px;color:var(--mute);font-size:14px;pointer-events:none}
.fr-search input{width:100%;border:1px solid var(--line);background:var(--card);border-radius:11px;padding:11px 38px 11px 38px;font-family:'Inter';font-size:13.5px;color:var(--ink);outline:none;transition:.13s}
.fr-search input:focus{border-color:var(--plum-soft);box-shadow:0 0 0 3px var(--plum-glow)}
.fr-search input::placeholder{color:var(--mute)}
.fr-search-x{position:absolute;right:10px;border:0;background:transparent;color:var(--mute);cursor:pointer;font-size:12px;padding:4px;border-radius:6px;transition:.12s}
.fr-search-x:hover{background:var(--fog);color:var(--ink)}

/* summary tiles */
.fr-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.fr-sumcard{display:flex;align-items:center;gap:13px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;width:100%;text-align:left;font:inherit;cursor:pointer;transition:border-color .12s,box-shadow .12s,transform .12s}
.fr-sumcard:hover{border-color:var(--plum-soft);box-shadow:0 4px 14px rgba(0,0,0,.05);transform:translateY(-1px)}
.fr-sumcard.active{border-color:var(--plum);box-shadow:0 0 0 1px var(--plum) inset}
.fr-sumcard.active .fr-sum-ic{background:var(--plum);color:#fff}
.fr-sum-ic{width:42px;height:42px;flex-shrink:0;border-radius:12px;display:grid;place-items:center;font-size:19px;background:var(--plum-glow);color:var(--plum-d)}
.fr-sumcard b{display:block;font-family:'Inter';font-weight:800;font-size:22px;color:var(--ink);line-height:1}
.fr-sumcard i{display:block;font-style:normal;font-size:12px;color:var(--mute);margin-top:4px}

/* section filter chips */
.fr-filters{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:22px}
.fr-fchip{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border:1px solid var(--line);background:var(--card);border-radius:999px;font-family:'Inter';font-weight:600;font-size:12.5px;color:var(--body);cursor:pointer;transition:.12s;white-space:nowrap}
.fr-fchip .bi{font-size:13px;opacity:.85}
.fr-fchip:hover{border-color:var(--plum-soft);color:var(--plum-d)}
.fr-fchip.active{background:var(--plum);border-color:var(--plum);color:#fff}

/* section */
.fr-section{margin-bottom:30px}
.fr-sec-head{display:flex;align-items:center;gap:12px;margin-bottom:15px}
.fr-sec-ic{width:38px;height:38px;flex-shrink:0;border-radius:11px;display:grid;place-items:center;font-size:17px;background:linear-gradient(145deg,var(--plum),var(--plum-d));color:#fff;box-shadow:0 6px 16px rgba(107,33,168,.28)}
.fr-sec-id{flex:1;min-width:0}
.fr-sec-id h3{font-family:'Inter';font-weight:800;font-size:17px;color:var(--ink);margin:0;letter-spacing:-0.01em}
.fr-sec-id p{font-size:12.5px;color:var(--mute);margin:2px 0 0}
.fr-sec-count{flex-shrink:0;font-family:'JetBrains Mono';font-size:11px;font-weight:700;color:var(--plum-d);background:var(--plum-glow);padding:5px 11px;border-radius:999px}

/* card grid */
.fr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(244px,1fr));gap:16px}

/* profile card */
.fr-card{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .16s cubic-bezier(.2,.9,.3,1),box-shadow .16s,border-color .16s}
.fr-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px -16px rgba(11,18,32,.28);border-color:var(--plum-soft)}
.fr-cover{height:62px;background:linear-gradient(135deg,var(--plum-soft),var(--plum));position:relative}
.fr-cover::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% -10%,rgba(255,255,255,.35),transparent 60%)}
.fr-card-body{padding:0 16px 16px;display:flex;flex-direction:column;flex:1}

/* avatar (overlaps the cover) */
.fr-ava-wrap{position:relative;width:72px;height:72px;margin:-36px auto 0}
.fr-ava{width:72px;height:72px;border-radius:50%;object-fit:cover;border:3px solid var(--card);background:var(--card);display:block}
.fr-ava-fb{width:72px;height:72px;border-radius:50%;border:3px solid var(--card);display:grid;place-items:center;font-family:'Inter';font-weight:800;font-size:24px;color:#fff;background:linear-gradient(140deg,var(--plum-soft),var(--plum))}
.fr-status-dot{position:absolute;right:4px;bottom:4px;width:15px;height:15px;border-radius:50%;border:2.5px solid var(--card)}
.fr-status-dot.connected{background:var(--emerald,#10B981)}
.fr-status-dot.pending{background:var(--honey,#F59E0B)}

.fr-name{font-family:'Inter';font-weight:700;font-size:15.5px;color:var(--ink);margin:11px 0 0;text-align:center;letter-spacing:-0.01em}
.fr-role{display:flex;flex-direction:column;align-items:center;gap:4px;margin:6px 0 0}
.fr-dept{font-family:'Inter';font-weight:600;font-size:12.5px;color:var(--body)}
.fr-year{font-family:'JetBrains Mono';font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--plum-d);background:var(--plum-glow);padding:3px 9px;border-radius:999px}
.fr-tagline{font-size:12px;color:var(--mute);margin:10px 0 0;text-align:center;line-height:1.45;min-height:34px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fr-mutual{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11.5px;color:var(--mute);margin:9px 0 0}
.fr-mutual b{font-family:'Inter';font-weight:700;color:var(--ink-2)}

/* skills */
.fr-skills{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:12px 0 0}
.fr-skill{font-family:'Inter';font-weight:600;font-size:10.5px;color:var(--body);background:var(--fog);border:1px solid var(--line);padding:4px 9px;border-radius:7px}

/* actions */
.fr-actions{display:flex;gap:8px;margin-top:auto;padding-top:14px}
.fr-connect{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--plum);background:var(--plum);color:#fff;border-radius:9px;padding:9px 10px;font-family:'Inter';font-weight:700;font-size:12.5px;cursor:pointer;transition:.13s;white-space:nowrap}
.fr-connect span{display:inline-flex;align-items:center;gap:6px}
.fr-connect.none:hover{background:var(--plum-d);border-color:var(--plum-d)}
.fr-connect.pending{background:transparent;color:var(--mute);border-color:var(--line)}
.fr-connect.pending:hover{border-color:var(--rose,#E11D48);color:var(--rose-d,#B91C1C);background:var(--rose-glow,#FEE2E2)}
.fr-connect.connected{background:var(--fog);color:var(--emerald-d,#047857);border-color:var(--line);cursor:default}
.fr-msg{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);color:var(--plum-d);border-radius:9px;padding:9px 12px;font-family:'Inter';font-weight:700;font-size:12.5px;cursor:pointer;transition:.13s}
.fr-msg:hover{border-color:var(--plum-soft);background:var(--plum-glow)}
.fr-msg.lg{padding:11px 18px;font-size:13px}

/* ── Connection profile modal ────────────────────────────────────── */
.fr-modal-wrap{position:fixed;inset:0;z-index:4300;display:grid;place-items:center;padding:20px}
.fr-modal-back{position:absolute;inset:0;background:rgba(11,18,32,.5);backdrop-filter:blur(3px)}
.fr-modal{position:relative;width:100%;max-width:500px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 30px 70px -24px rgba(11,18,32,.5);overflow:hidden}
.fr-modal-inner{display:flex;flex-direction:column;max-height:90vh}
/* hero */
.fr-prof-hero{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:26px 18px 18px;text-align:center;background:linear-gradient(135deg,var(--plum),var(--plum-glow))}
.fr-prof-hero .fc-modal-x{position:absolute;top:14px;right:14px}
.fr-prof-hero>b{font-family:'Inter';font-weight:800;font-size:18px;color:#fff}
.fr-prof-hero>small{font-size:12.5px;color:rgba(255,255,255,.85)}
.fr-prof-ava{position:relative;width:74px;height:74px;border-radius:50%;overflow:visible;margin-bottom:4px}
.fr-prof-ava img{width:74px;height:74px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.6)}
.fr-prof-ava-fb{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.25);color:#fff;font-family:'Inter';font-weight:800;font-size:24px;border:3px solid rgba(255,255,255,.6)}
.fr-prof-ava .fr-status-dot{border-color:#fff}
.fr-band{margin-top:6px;font-family:'Inter';font-weight:700;font-size:11px;color:#fff;background:rgba(255,255,255,.22);padding:4px 12px;border-radius:999px;backdrop-filter:blur(4px)}
/* tabs */
.fr-tabs{display:flex;gap:2px;padding:0 14px;border-bottom:1px solid var(--line);background:var(--card)}
.fr-tab{flex:1;border:0;background:transparent;padding:13px 6px;font-family:'Inter';font-weight:700;font-size:12.5px;color:var(--mute);cursor:pointer;border-bottom:2.5px solid transparent;transition:.13s}
.fr-tab:hover{color:var(--ink)}
.fr-tab.active{color:var(--plum-d);border-bottom-color:var(--plum)}
.fr-tab-n{font-size:10.5px;color:var(--mute);background:var(--fog);border-radius:999px;padding:1px 7px;margin-left:2px}
.fr-tab.active .fr-tab-n{color:var(--plum-d);background:var(--plum-glow)}
.fr-modal-body{padding:16px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.fr-prof-bio{font-size:13px;line-height:1.6;color:var(--body);margin:2px 0 4px}
/* XP card */
.fr-xp-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 15px}
.fr-xp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.fr-xp-total{font-family:'Inter';font-weight:800;font-size:26px;color:var(--plum-d);letter-spacing:-0.02em}
.fr-xp-unit{font-family:'Inter';font-weight:800;font-size:14px;color:var(--plum-soft);margin-left:3px}
.fr-xp-note{font-size:11px;font-weight:600;color:var(--mute);display:inline-flex;align-items:center;gap:5px}
.fr-xp-rows{display:flex;flex-direction:column;gap:8px}
.fr-xp-row{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--body)}
.fr-xp-row>.bi{color:var(--plum);font-size:13px;width:16px;text-align:center}
.fr-xp-lbl{flex:1}
.fr-xp-cnt{color:var(--mute);font-weight:600;font-size:11.5px}
.fr-xp-gain{font-family:'Inter';font-weight:800;font-size:12.5px;color:var(--emerald-d,#047857);min-width:54px;text-align:right}
/* stat strip */
.fr-stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.fr-stat{background:var(--fog);border-radius:11px;padding:10px 6px;text-align:center}
.fr-stat b{display:block;font-family:'Inter';font-weight:800;font-size:16px;color:var(--ink)}
.fr-stat span{font-size:10.5px;color:var(--mute)}
.fr-field-label{font-family:'Inter';font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--mute);margin-top:4px}
.fr-tags{display:flex;gap:6px;flex-wrap:wrap}
.fr-tag{font-family:'Inter';font-weight:600;font-size:11px;color:var(--body);background:var(--fog);border:1px solid var(--line);padding:5px 11px;border-radius:8px}
/* posts tab */
.fr-post-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:4px}
.fr-post-chip{border:1px solid var(--line);background:var(--card);color:var(--body);border-radius:999px;padding:6px 12px;font-family:'Inter';font-weight:600;font-size:11.5px;cursor:pointer;transition:.13s}
.fr-post-chip:hover{border-color:var(--plum-soft)}
.fr-post-chip.active{background:var(--plum);border-color:var(--plum);color:#fff}
.fr-post-chip.active .fr-tab-n{color:#fff;background:rgba(255,255,255,.25)}
.fr-post-list{display:flex;flex-direction:column;gap:10px}
.fr-post{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:12px 13px}
.fr-post-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
.fr-post-time{font-size:11px;color:var(--mute)}
.fr-post-title{display:block;font-family:'Inter';font-weight:700;font-size:13.5px;color:var(--ink);margin-bottom:3px}
.fr-post-body{font-size:12.5px;line-height:1.55;color:var(--body);margin:0}
.fr-post-att{margin-top:8px}
.fr-att-chip{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--plum-d);background:var(--plum-glow);border-radius:8px;padding:5px 10px}
.fr-att-size{font-style:normal;color:var(--mute);font-size:10.5px}
.fr-post-foot{margin-top:9px;font-size:11.5px;font-weight:600;color:var(--mute);display:flex;align-items:center;gap:6px}
.fr-post-foot>.bi{color:var(--plum)}
.fr-post-empty{text-align:center;color:var(--mute);font-size:12.5px;padding:24px}
/* achievements tab */
.fr-ach-list{display:flex;flex-direction:column;gap:9px}
.fr-ach{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:12px 14px}
.fr-ach-ic{font-size:22px;flex-shrink:0}
.fr-ach-id b{display:block;font-family:'Inter';font-weight:700;font-size:13.5px;color:var(--ink)}
.fr-ach-id small{font-size:11.5px;color:var(--mute)}
/* footer */
.fr-modal-foot{display:flex;align-items:center;gap:10px;padding:13px 18px;border-top:1px solid var(--line);background:var(--card)}
.fr-modal-foot .fr-connect{flex:1}

/* empty state */
.fr-empty{text-align:center;padding:54px 20px;color:var(--mute);background:var(--card);border:1px dashed var(--line);border-radius:16px}
.fr-empty>.bi{font-size:30px;color:var(--plum-soft);display:block;margin-bottom:12px}
.fr-empty b{display:block;font-family:'Inter';font-weight:700;font-size:15px;color:var(--ink)}
.fr-empty p{font-size:13px;margin:6px 0 16px}
.fr-empty .fr-connect{display:inline-flex;flex:0;margin:0 auto;padding:9px 20px}

/* responsive */
@media (max-width:680px){
  .fr-summary{grid-template-columns:1fr}
  .fr-search{min-width:100%;max-width:none}
  .fr-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:460px){.fr-grid{grid-template-columns:1fr}.fr-msg-lbl{display:none}}

/* ════════════════════════════════════════════════════════════════
   ===== CAMPUS CONNECT MESSAGES =====
   3-col messaging workspace: list · chat · profile/files.
   WhatsApp + Slack inspired · tokens only (dark-mode safe) · accent --plum.
   ════════════════════════════════════════════════════════════════ */
.msg-view{min-height:60vh}
.msg-shell{display:grid;grid-template-columns:320px 1fr 320px;gap:18px;height:calc(100vh - 132px);min-height:520px}

/* shared avatars (img + initials/icon fallback) */
.msg-ava-wrap{position:relative;flex-shrink:0;display:inline-flex;line-height:0}
.msg-ava{width:44px;height:44px;border-radius:50%;object-fit:cover;border:1px solid var(--line);flex-shrink:0;display:block;background:var(--mist)}
.msg-ava-fb{width:44px;height:44px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;color:#fff;font-family:'Inter';font-weight:700;font-size:15px;background:linear-gradient(140deg,var(--plum-soft),var(--plum))}
.msg-ava-fb .bi{font-size:18px}
.msg-ava.sm,.msg-ava-fb.sm{width:30px;height:30px;font-size:11px}
.msg-ava-fb.sm .bi{font-size:13px}
.msg-ava.lg,.msg-ava-fb.lg{width:74px;height:74px;font-size:25px}
.msg-ava-fb.lg .bi{font-size:30px}
.msg-dot{position:absolute;right:1px;bottom:1px;width:11px;height:11px;border-radius:50%;background:var(--emerald);border:2px solid var(--card);box-shadow:0 0 0 1px var(--line)}

/* ── LEFT · conversation list ── */
.msg-list{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;min-height:0}
.msg-list-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:16px 16px 12px}
.msg-list-title h2{font-family:'Inter';font-weight:800;font-size:19px;color:var(--ink);margin:0;letter-spacing:-0.02em}
.msg-list-title p{font-size:11px;color:var(--mute);margin:3px 0 0}
.msg-new{flex-shrink:0;width:36px;height:36px;border-radius:11px;border:none;background:var(--plum);color:#fff;font-size:15px;cursor:pointer;display:grid;place-items:center;transition:.13s;box-shadow:0 6px 16px -6px rgba(107,33,168,.6)}
.msg-new:hover{background:var(--plum-d);transform:translateY(-1px)}
.msg-search{display:flex;align-items:center;gap:8px;margin:0 16px 12px;padding:9px 12px;border:1px solid var(--line);background:var(--fog);border-radius:11px;transition:.13s}
.msg-search:focus-within{border-color:var(--plum-soft);background:var(--card);box-shadow:0 0 0 3px var(--plum-glow)}
.msg-search .bi{font-size:14px;color:var(--mute)}
.msg-search input{flex:1;border:none;background:transparent;outline:none;font-family:'Inter';font-size:13px;color:var(--ink)}
.msg-search-x{border:none;background:transparent;color:var(--mute);cursor:pointer;font-size:14px;padding:0;display:grid;place-items:center}
.msg-search-x:hover{color:var(--ink)}
.msg-segs{display:flex;gap:6px;padding:0 16px 12px;overflow-x:auto;scrollbar-width:none}
.msg-segs::-webkit-scrollbar{display:none}
.msg-seg{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:6px 12px;border:1px solid var(--line);background:var(--card);border-radius:999px;font-family:'Inter';font-weight:600;font-size:11.5px;color:var(--body);cursor:pointer;transition:.12s;white-space:nowrap}
.msg-seg .bi{font-size:12px}
.msg-seg:hover{border-color:var(--plum-soft);color:var(--plum-d)}
.msg-seg.active{background:var(--plum);border-color:var(--plum);color:#fff}
.msg-convs{flex:1 1 auto;min-height:0;overflow-y:auto;padding:4px 8px 10px;display:flex;flex-direction:column;gap:2px}
.msg-convs::-webkit-scrollbar{width:7px}
.msg-convs::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}
.msg-convs::-webkit-scrollbar-thumb:hover{background:var(--mute)}
.msg-conv{display:flex;align-items:center;gap:11px;width:100%;padding:10px;border:1px solid transparent;background:transparent;border-radius:12px;cursor:pointer;text-align:left;transition:.12s;position:relative}
.msg-conv:hover{background:var(--fog)}
.msg-conv.active{background:var(--plum-glow);border-color:var(--plum-soft)}
.msg-conv-id{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.msg-conv-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.msg-conv-top b{font-family:'Inter';font-weight:700;font-size:13.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msg-conv-top small{flex-shrink:0;font-size:10.5px;color:var(--mute)}
.msg-conv-bot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.msg-conv-prev{flex:1;min-width:0;font-size:12px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msg-conv.active .msg-conv-prev{color:var(--body)}
.msg-badge{flex-shrink:0;min-width:18px;height:18px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--plum);color:#fff;font-family:'JetBrains Mono';font-weight:700;font-size:10px}
.msg-pin{position:absolute;top:8px;right:9px;font-size:10px;color:var(--plum-soft)}

/* ── CENTER · active chat ── */
.msg-chat{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;min-width:0;min-height:0}
.msg-chat-head{display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line);background:var(--card);backdrop-filter:saturate(140%) blur(8px)}
.msg-chat-id{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.msg-chat-id b{font-family:'Inter';font-weight:800;font-size:15px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msg-chat-id small{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--mute)}
.msg-status-dot{width:7px;height:7px;border-radius:50%;background:var(--mute);flex-shrink:0}
.msg-status-dot.on{background:var(--emerald)}
.msg-chat-acts{display:flex;align-items:center;gap:6px;flex-shrink:0}
.msg-iconbtn{width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--fog);color:var(--ink-3);font-size:15px;cursor:pointer;display:grid;place-items:center;transition:.13s}
.msg-iconbtn:hover{background:var(--plum-glow);border-color:var(--plum-soft);color:var(--plum-d)}
.msg-iconbtn.active{background:var(--plum-glow);border-color:var(--plum-soft);color:var(--plum-d)}
.msg-iconbtn-vid:hover{background:var(--plum);border-color:var(--plum);color:#fff}
.msg-threadsearch{display:flex;align-items:center;gap:8px;padding:9px 14px;border-bottom:1px solid var(--line);background:var(--fog)}
.msg-threadsearch .bi{font-size:14px;color:var(--mute)}
.msg-threadsearch input{flex:1;border:none;background:transparent;outline:none;font-family:'Inter';font-size:13px;color:var(--ink)}
.msg-thread{flex:1 1 auto;min-height:0;overflow-y:auto;padding:18px 18px 8px;display:flex;flex-direction:column;gap:10px;background:linear-gradient(180deg,var(--fog),var(--card))}
.msg-thread::-webkit-scrollbar{width:7px}
.msg-thread::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}
.msg-thread::-webkit-scrollbar-thumb:hover{background:var(--mute)}
.msg-daysep{text-align:center;margin:2px 0 6px}
.msg-daysep span{font-family:'Inter';font-weight:700;font-size:10.5px;letter-spacing:.04em;color:var(--mute);background:var(--card);border:1px solid var(--line);padding:4px 12px;border-radius:999px}
.msg-row{display:flex;align-items:flex-end;gap:8px;max-width:74%}
.msg-row.them{align-self:flex-start}
.msg-row.me{align-self:flex-end;flex-direction:row-reverse}
.msg-bubble{position:relative;padding:9px 13px 7px;border-radius:16px;font-size:13px;line-height:1.5;box-shadow:0 1px 2px rgba(11,18,32,.05)}
.msg-bubble p{margin:0;color:inherit;white-space:pre-line;word-break:break-word}
.msg-bubble.them{background:var(--card);border:1px solid var(--line);color:var(--body);border-bottom-left-radius:5px}
.msg-bubble.me{background:linear-gradient(160deg,var(--plum),var(--plum-d));color:#fff;border-bottom-right-radius:5px}
.msg-sender{display:block;font-family:'Inter';font-weight:700;font-size:11.5px;color:var(--plum-d);margin-bottom:3px}
.msg-meta{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin-top:3px}
.msg-meta>span:first-child{font-size:10px;opacity:.7}
.msg-bubble.them .msg-meta{color:var(--mute)}
.msg-bubble.me .msg-meta{color:rgba(255,255,255,.8)}
.msg-receipt{display:inline-flex;font-size:12px;opacity:.85}
.msg-receipt.read{color:#8ED0FF}
/* in-bubble attachment */
.msg-attach{display:flex;align-items:center;gap:10px;margin-top:7px;padding:8px 10px;border-radius:11px;text-decoration:none;transition:.12s}
.msg-bubble.them .msg-attach{background:var(--fog);border:1px solid var(--line)}
.msg-bubble.them .msg-attach:hover{border-color:var(--plum-soft);background:var(--plum-glow)}
.msg-bubble.me .msg-attach{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22)}
.msg-bubble.me .msg-attach:hover{background:rgba(255,255,255,.24)}
.msg-attach-ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:14px;flex-shrink:0}
.msg-bubble.them .msg-attach-ic{background:var(--card);border:1px solid var(--line);color:var(--plum-d)}
.msg-bubble.me .msg-attach-ic{background:rgba(255,255,255,.22);color:#fff}
.msg-attach-meta{flex:1;min-width:0;display:flex;flex-direction:column}
.msg-attach-meta b{font-family:'Inter';font-weight:600;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msg-attach-meta small{font-size:10.5px;opacity:.75}
.msg-attach-dl{font-size:14px;opacity:.8}
.msg-bubble.them .msg-attach-dl{color:var(--plum-d)}
.msg-attach{width:100%;border:none;cursor:pointer;font:inherit;text-align:left}
.msg-attach-ic.k-image{color:#7c3aed}.msg-attach-ic.k-video{color:#dc2626}.msg-attach-ic.k-pdf{color:#dc2626}
/* image / video attachment previews */
.msg-att-wrap{margin-top:7px}
.msg-att-img,.msg-att-vid{display:block;width:100%;max-width:240px;padding:0;border:none;border-radius:12px;overflow:hidden;cursor:pointer;background:#0b1220;position:relative;line-height:0}
.msg-att-img img{display:block;width:100%;max-height:260px;object-fit:cover}
.msg-att-vid video{display:block;width:100%;max-height:260px;object-fit:cover;background:#000}
.msg-att-play{position:absolute;inset:0;margin:auto;width:46px;height:46px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;display:grid;place-items:center;font-size:24px;pointer-events:none}
.msg-att-cap{position:absolute;left:0;right:0;bottom:0;padding:14px 10px 6px;background:linear-gradient(transparent,rgba(0,0,0,.6));color:#fff;font-size:10.5px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* composer */
/* attach menu */
.msg-attach-host{position:relative;flex-shrink:0}
.msg-attach-menu{position:absolute;bottom:48px;left:0;z-index:30;min-width:172px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 34px rgba(11,18,32,.18);padding:6px;display:flex;flex-direction:column;gap:1px}
.msg-attach-menu button{display:flex;align-items:center;gap:11px;width:100%;padding:9px 11px;border:none;background:transparent;border-radius:9px;font-family:'Inter';font-size:13px;font-weight:500;color:var(--ink);cursor:pointer;transition:.12s}
.msg-attach-menu button:hover{background:var(--plum-glow)}
.mam-ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:14px;color:#fff;flex-shrink:0}
.mam-ic.img{background:#7c3aed}.mam-ic.vid{background:#dc2626}.mam-ic.doc{background:#2563eb}.mam-ic.any{background:#475569}
.msg-compose-ic.active{background:var(--plum-glow);color:var(--plum-d)}
/* Chat-header "More" (kebab) dropdown */
.msg-more-host{position:relative;flex-shrink:0}
.msg-more-menu{position:absolute;top:44px;right:0;z-index:40;min-width:184px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 34px rgba(11,18,32,.18);padding:6px;display:flex;flex-direction:column;gap:1px}
.msg-more-menu button{display:flex;align-items:center;gap:11px;width:100%;padding:9px 11px;border:none;background:transparent;border-radius:9px;font-family:'Inter';font-size:13px;font-weight:500;color:var(--ink);cursor:pointer;transition:.12s;text-align:left}
.msg-more-menu button:hover{background:var(--plum-glow)}
.msg-more-menu button.danger{color:#dc2626}
.msg-more-menu button.danger:hover{background:rgba(220,38,38,.1)}
.msg-more-menu button i{width:18px;text-align:center;font-size:14px}
/* Composer emoji picker */
.msg-emoji-host{position:relative;flex-shrink:0}
.msg-emoji-pop{position:absolute;bottom:48px;left:0;z-index:40;width:236px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 34px rgba(11,18,32,.18);padding:8px;display:grid;grid-template-columns:repeat(6,1fr);gap:2px}
.msg-emoji-btn{border:none;background:transparent;border-radius:8px;font-size:19px;line-height:1;padding:6px 0;cursor:pointer;transition:.1s}
.msg-emoji-btn:hover{background:var(--plum-glow);transform:scale(1.15)}
.msg-compose{display:flex;align-items:center;gap:8px;padding:11px 14px;border-top:1px solid var(--line);background:var(--card)}
.msg-compose-ic{width:38px;height:38px;border-radius:10px;border:none;background:transparent;color:var(--mute);font-size:17px;cursor:pointer;display:grid;place-items:center;transition:.12s;flex-shrink:0}
.msg-compose-ic:hover{background:var(--fog);color:var(--plum-d)}
.msg-compose-in{flex:1;min-width:0;border:1px solid var(--line);background:var(--fog);border-radius:12px;padding:11px 14px;font-family:'Inter';font-size:13.5px;color:var(--ink);outline:none;transition:.13s}
.msg-compose-in:focus{border-color:var(--plum-soft);background:var(--card);box-shadow:0 0 0 3px var(--plum-glow)}
.msg-send{flex-shrink:0;width:42px;height:42px;border-radius:12px;border:none;background:var(--plum);color:#fff;font-size:16px;cursor:pointer;display:grid;place-items:center;transition:.13s}
.msg-send:hover{background:var(--plum-d);transform:translateY(-1px)}
.msg-send:disabled{opacity:.4;cursor:not-allowed;transform:none}

/* ── RIGHT · profile + shared files/notes ── */
.msg-side{display:flex;flex-direction:column;gap:14px;overflow-y:auto;min-height:0;padding-right:2px}
.msg-side::-webkit-scrollbar{width:7px}
.msg-side::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}
.msg-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;backdrop-filter:blur(6px)}
.msg-prof{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;background:linear-gradient(180deg,var(--plum-glow),var(--card) 62%)}
.msg-prof .msg-ava-wrap{margin-bottom:8px}
.msg-prof-name{font-family:'Inter';font-weight:800;font-size:17px;color:var(--ink);letter-spacing:-0.01em}
.msg-prof-role{font-size:12px;color:var(--plum-d);font-weight:600}
.msg-prof-about{font-size:12px;color:var(--body);line-height:1.5;margin:8px 0 0}
.msg-prof-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:11px}
.msg-tag{font-family:'Inter';font-weight:600;font-size:10.5px;padding:4px 10px;border-radius:999px;background:var(--card);border:1px solid var(--plum-soft);color:var(--plum-d)}
.msg-prof-call{display:flex;gap:8px;width:100%;margin-top:14px}
.msg-call-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px;border-radius:11px;border:1px solid var(--plum-soft);background:var(--card);color:var(--plum-d);font-family:'Inter';font-weight:700;font-size:12.5px;cursor:pointer;transition:.13s}
.msg-call-btn .bi{font-size:13px}
.msg-call-btn:hover{background:var(--plum-glow)}
.msg-call-btn.primary{background:var(--plum);border-color:var(--plum);color:#fff;box-shadow:0 8px 18px -8px rgba(107,33,168,.6)}
.msg-call-btn.primary:hover{background:var(--plum-d)}
.msg-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}
.msg-side-head h4{font-family:'Inter';font-weight:800;font-size:13.5px;color:var(--ink);margin:0}
.msg-side-count{font-family:'JetBrains Mono';font-size:10.5px;font-weight:700;color:var(--plum-d);background:var(--plum-glow);border-radius:999px;padding:2px 9px}
.msg-members{display:flex;flex-wrap:wrap;gap:7px}
.msg-member{display:inline-flex;line-height:0}
.msg-files,.msg-notes{display:flex;flex-direction:column;gap:8px}
.msg-file,.msg-note{display:flex;align-items:center;gap:11px;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:var(--fog);text-decoration:none;transition:.12s}
.msg-file:hover,.msg-note:hover{border-color:var(--plum-soft);background:var(--plum-glow)}
.msg-file-ic,.msg-note-ic{width:34px;height:34px;border-radius:9px;flex-shrink:0;display:grid;place-items:center;font-size:16px;background:var(--card);border:1px solid var(--line);color:var(--plum-d)}
.msg-file-meta,.msg-note-meta{flex:1;min-width:0;display:flex;flex-direction:column}
.msg-file-meta b,.msg-note-meta b{font-family:'Inter';font-weight:600;font-size:12.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msg-file-meta small,.msg-note-meta small{font-size:10.5px;color:var(--mute)}
.msg-file-dl{color:var(--plum-d);font-size:14px;flex-shrink:0}
.msg-side-empty{font-size:12px;color:var(--mute);padding:8px 2px}
.msg-empty{padding:30px 16px;text-align:center;color:var(--mute);font-size:13px}

/* stack on narrow screens */
@media (max-width:1180px){.msg-shell{grid-template-columns:300px 1fr}.msg-side{display:none!important}}
@media (max-width:880px){.msg-shell{grid-template-columns:1fr;height:auto}.msg-list{max-height:46vh}.msg-chat{height:78vh}.msg-row{max-width:86%}}

/* ── Call overlay (voice / video demo) ── */
.msg-call{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;background:rgba(11,18,32,.62);backdrop-filter:blur(7px)}
.msg-call-stage{width:min(420px,92vw);background:linear-gradient(165deg,#1b1140,#0f0a26);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:34px 26px 26px;display:flex;flex-direction:column;align-items:center;gap:20px;box-shadow:0 30px 80px rgba(0,0,0,.45);color:#fff;position:relative;overflow:hidden}
.msg-call.is-video .msg-call-stage{width:min(560px,94vw)}
.msg-call-self{width:100%;aspect-ratio:4/3;max-height:330px;object-fit:cover;border-radius:16px;background:#000;transform:scaleX(-1)}
.msg-call-peer{position:relative;width:128px;height:128px;border-radius:50%;display:grid;place-items:center}
.msg-call-peer img,.msg-call-fb{width:128px;height:128px;border-radius:50%;object-fit:cover}
.msg-call-fb{display:grid;place-items:center;background:linear-gradient(160deg,var(--plum),var(--plum-d));font-family:'Sora';font-weight:700;font-size:42px;color:#fff}
.msg-call-fb i{font-size:52px}
.msg-call-ring{position:absolute;inset:-10px;border-radius:50%;border:2px solid rgba(168,128,255,.55);animation:msgCallPulse 1.6s ease-out infinite}
@keyframes msgCallPulse{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.35);opacity:0}}
.msg-call-info{text-align:center;display:flex;flex-direction:column;gap:5px}
.msg-call-info b{font-family:'Sora';font-weight:600;font-size:20px}
.msg-call-info small{font-size:13px;color:rgba(255,255,255,.7);letter-spacing:.3px}
.msg-call-info small.on{color:#34d399;display:inline-flex;align-items:center;gap:6px;font-family:'JetBrains Mono'}
.msg-call-info small.on i{font-size:9px;animation:msgRec 1.4s steps(1) infinite}
@keyframes msgRec{50%{opacity:.25}}
.msg-call-ctrls{display:flex;align-items:center;gap:16px;margin-top:4px}
.msg-call-btn2{width:54px;height:54px;border-radius:50%;border:none;cursor:pointer;display:grid;place-items:center;font-size:21px;color:#fff;background:rgba(255,255,255,.14);transition:.14s}
.msg-call-btn2:hover{background:rgba(255,255,255,.24)}
.msg-call-btn2.off{background:#fff;color:#1b1140}
.msg-call-btn2.end{background:#ef4444;width:60px;height:60px;font-size:24px}
.msg-call-btn2.end:hover{background:#dc2626;transform:translateY(-2px)}

/* ── Lightbox (image / video full view) ── */
.msg-lightbox{position:fixed;inset:0;z-index:1300;display:grid;place-items:center;background:rgba(8,10,20,.9);backdrop-filter:blur(4px);padding:34px}
.msg-lb-media{max-width:92vw;max-height:82vh;border-radius:12px;box-shadow:0 24px 70px rgba(0,0,0,.6);background:#000}
.msg-lb-close{position:absolute;top:20px;right:24px;width:44px;height:44px;border-radius:50%;border:none;background:rgba(255,255,255,.14);color:#fff;font-size:18px;cursor:pointer;display:grid;place-items:center;transition:.14s}
.msg-lb-close:hover{background:rgba(255,255,255,.28)}
.msg-lb-name{position:absolute;bottom:24px;left:0;right:0;text-align:center;color:rgba(255,255,255,.82);font-size:13px}

/* ── Feed image preview (LinkedIn-style card) ── */
.cc-lightbox{position:fixed;inset:0;z-index:1350;display:grid;place-items:center;background:rgba(8,10,20,.86);backdrop-filter:blur(5px);padding:30px}
.cc-lb-close{position:absolute;top:20px;right:24px;width:44px;height:44px;border-radius:50%;border:none;background:rgba(255,255,255,.14);color:#fff;font-size:18px;cursor:pointer;display:grid;place-items:center;transition:.14s;z-index:2}
.cc-lb-close:hover{background:rgba(255,255,255,.28)}
.cc-lb-card{display:flex;width:min(1040px,94vw);max-height:88vh;background:var(--surface,#fff);border-radius:16px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.55)}
.cc-lb-stage{position:relative;flex:1 1 auto;min-width:0;display:grid;place-items:center;background:#0b0f1a}
.cc-lb-imgwrap{width:100%;height:100%;display:grid;place-items:center}
.cc-lb-img{max-width:100%;max-height:88vh;object-fit:contain;display:block}
.cc-lb-ph{width:100%;height:420px;display:grid;place-items:center;color:rgba(255,255,255,.85);font-size:42px}
.cc-lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:none;background:rgba(0,0,0,.45);color:#fff;font-size:18px;cursor:pointer;display:grid;place-items:center;transition:.14s;z-index:2}
.cc-lb-nav:hover{background:rgba(0,0,0,.7)}
.cc-lb-nav.prev{left:14px}
.cc-lb-nav.next{right:14px}
.cc-lb-count{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.55);color:#fff;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px}
.cc-lb-side{flex:0 0 320px;display:flex;flex-direction:column;gap:12px;padding:20px;overflow-y:auto;border-left:1px solid var(--line,#e6e8ef)}
.cc-lb-head{display:flex;align-items:center;gap:10px}
.cc-lb-id{display:flex;flex-direction:column;min-width:0}
.cc-lb-id b{font-size:14px;color:var(--ink,#0b1220)}
.cc-lb-id small{font-size:12px;color:var(--mute)}
.cc-lb-title{margin:2px 0 0;font-size:15.5px;font-weight:700;color:var(--ink,#0b1220)}
.cc-lb-body{margin:0;font-size:13.5px;line-height:1.5;color:var(--body);white-space:pre-wrap}
.cc-lb-act{margin-top:auto;display:flex;align-items:center;gap:14px;padding-top:12px;border-top:1px solid var(--line,#e6e8ef)}
.cc-lb-act .cc-act-btn.liked{color:var(--plum)}
.cc-lb-chan{margin-left:auto;font-size:12px;font-weight:600;color:var(--plum)}
@media (max-width:760px){
  .cc-lb-card{flex-direction:column;width:94vw;max-height:90vh}
  .cc-lb-stage{max-height:55vh}
  .cc-lb-img{max-height:55vh}
  .cc-lb-side{flex:1 1 auto;border-left:none;border-top:1px solid var(--line,#e6e8ef)}
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* ════════════════════════════════════════════════════════════
   STUDENT · TIME TABLE  (weekly class schedule grid)
   ════════════════════════════════════════════════════════════ */
/* Header lays out title + actions on one row (scoped to this view) */
.app-view-head.tt-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.head-actions{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0}
.head-actions .btn{padding:8px 14px;border-radius:8px;font-family:'Inter';font-size:12.5px;font-weight:600;background:var(--card);border:1.5px solid var(--line);color:var(--ink-2);cursor:pointer;transition:.15s}
.head-actions .btn:hover{border-color:var(--ink);color:var(--ink)}

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

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

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

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

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

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

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

/* ════════════════════════════════════════════════════════════════
   FACULTY CONNECT — faculty discovery & communication workspace
   Teal-accented surface. Directory grid + office-hours rail + modals.
   ════════════════════════════════════════════════════════════════ */
.fc-view{display:flex;flex-direction:column;gap:18px}

/* ── workspace header ── */
.fc-top{display:flex;gap:24px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;
  background:linear-gradient(135deg,var(--teal-glow) 0%,var(--card) 62%);
  border:1px solid var(--line);border-radius:18px;padding:22px 24px}
.fc-top-intro{max-width:560px}
.fc-kicker{display:inline-flex;align-items:center;gap:7px;font-family:'Inter';font-weight:700;font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--teal-d)}
.fc-kicker .dot{width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 3px var(--teal-glow)}
.fc-top-intro h1{font-family:'Inter';font-weight:800;font-size:25px;line-height:1.18;letter-spacing:-0.02em;
  color:var(--ink);margin:10px 0 7px}
.fc-top-intro p{font-size:13.5px;line-height:1.55;color:var(--body);margin:0}
.fc-top-stats{display:flex;gap:10px}
.fc-stat{text-align:center;background:var(--card);border:1px solid var(--line);border-radius:13px;padding:12px 16px;min-width:78px}
.fc-stat b{display:block;font-family:'Inter';font-weight:800;font-size:22px;color:var(--teal-d);line-height:1}
.fc-stat i{display:block;font-style:normal;font-size:10.5px;color:var(--mute);margin-top:5px;line-height:1.2}

/* ── controls ── */
.fc-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.fc-search{flex:1;min-width:240px;display:flex;align-items:center;gap:9px;background:var(--card);
  border:1px solid var(--line);border-radius:11px;padding:0 13px;transition:.13s}
.fc-search:focus-within{border-color:var(--teal-soft);box-shadow:0 0 0 3px var(--teal-glow)}
.fc-search .bi-search{color:var(--mute);font-size:14px}
.fc-search input{flex:1;border:none;background:transparent;outline:none;padding:11px 0;font-family:'Inter';font-size:13.5px;color:var(--ink)}
.fc-search-x{border:none;background:var(--fog);color:var(--mute);width:22px;height:22px;border-radius:7px;cursor:pointer;font-size:10px;display:grid;place-items:center}
.fc-search-x:hover{background:var(--line);color:var(--ink)}
.fc-avail-toggle{display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);
  border-radius:11px;padding:10px 14px;font-family:'Inter';font-weight:600;font-size:12.5px;color:var(--body);cursor:pointer;transition:.13s;white-space:nowrap}
.fc-avail-toggle:hover{border-color:var(--teal-soft)}
.fc-avail-toggle.on{background:var(--teal-glow);border-color:var(--teal-soft);color:var(--teal-d)}
.fc-avail-toggle input{display:none}
.fc-avail-dot{width:9px;height:9px;border-radius:50%;background:var(--line);transition:.13s}
.fc-avail-toggle.on .fc-avail-dot{background:var(--emerald);box-shadow:0 0 0 3px var(--emerald-glow)}

/* ── department chips ── */
.fc-depts{display:flex;gap:8px;flex-wrap:wrap}
.fc-dept{padding:8px 15px;border:1px solid var(--line);background:var(--card);border-radius:999px;
  font-family:'Inter';font-weight:600;font-size:12.5px;color:var(--body);cursor:pointer;transition:.12s;white-space:nowrap}
.fc-dept:hover{border-color:var(--teal-soft);color:var(--teal-d)}
.fc-dept.active{background:var(--teal);border-color:var(--teal);color:#fff}

/* ── body grid ── */
.fc-body{display:grid;grid-template-columns:1fr 332px;gap:20px;align-items:start}
.fc-dir-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:13px}
.fc-dir-head h3{font-family:'Inter';font-weight:800;font-size:16px;color:var(--ink);margin:0}
.fc-dir-head h3 b{color:var(--teal-d)}
.fc-dir-hint{font-size:11.5px;color:var(--mute)}
.fc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));gap:14px}

/* ── faculty card ── */
.fc-card{display:flex;flex-direction:column;gap:12px;background:var(--card);border:1px solid var(--line);
  border-radius:15px;padding:16px;transition:.16s}
.fc-card:hover{border-color:var(--teal-soft);box-shadow:0 12px 30px -16px rgba(11,18,32,.28);transform:translateY(-2px)}
.fc-card.dim{opacity:.72}
.fc-card-top{display:flex;align-items:center;gap:12px}
.fc-ava{position:relative;width:46px;height:46px;flex-shrink:0;border-radius:13px;display:grid;place-items:center;
  color:#fff;font-family:'Inter';font-weight:800;font-size:16px;overflow:visible}
.fc-ava img{width:100%;height:100%;object-fit:cover;border-radius:13px}
.fc-ava-dot{position:absolute;right:-2px;bottom:-2px;width:13px;height:13px;border-radius:50%;border:2.5px solid var(--card)}
.fc-ava-dot.st-available{background:var(--emerald)}
.fc-ava-dot.st-office-hours{background:var(--teal)}
.fc-ava-dot.st-busy{background:var(--honey)}
.fc-ava-dot.st-away{background:var(--mute)}
.fc-card-id{min-width:0}
.fc-card-id b{display:block;font-family:'Inter';font-weight:700;font-size:14.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-card-id small{display:block;font-size:11.5px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.fc-status{display:flex;align-items:center;gap:7px;font-family:'Inter';font-weight:600;font-size:11.5px;
  border-radius:9px;padding:7px 10px;background:var(--fog);color:var(--body)}
.fc-status i{font-style:normal;color:var(--mute);font-weight:500}
.fc-status-dot{width:8px;height:8px;border-radius:50%;background:var(--mute);flex-shrink:0}
.fc-status.st-available{background:var(--emerald-glow);color:var(--emerald-d)}
.fc-status.st-available .fc-status-dot{background:var(--emerald);box-shadow:0 0 0 3px rgba(16,185,129,.18)}
.fc-status.st-available i{color:var(--emerald-d);opacity:.85}
.fc-status.st-office-hours{background:var(--teal-glow);color:var(--teal-d)}
.fc-status.st-office-hours .fc-status-dot{background:var(--teal);box-shadow:0 0 0 3px rgba(15,118,110,.18)}
.fc-status.st-office-hours i{color:var(--teal-d);opacity:.85}
.fc-status.st-busy{background:var(--honey-glow);color:var(--honey-d)}
.fc-status.st-busy .fc-status-dot{background:var(--honey)}
.fc-status.st-busy i{color:var(--honey-d);opacity:.85}
.fc-status.st-away .fc-status-dot{background:var(--mute)}

.fc-tags{display:flex;gap:6px;flex-wrap:wrap}
.fc-tag{font-family:'Inter';font-weight:600;font-size:10.5px;padding:4px 9px;border-radius:7px;
  background:var(--mist);color:var(--ink-3);border:1px solid var(--line)}
.fc-tag.more{background:transparent;color:var(--mute)}
.fc-meta{display:flex;gap:14px;font-family:'Inter';font-size:11.5px;color:var(--mute);padding-top:2px}
.fc-meta span{display:inline-flex;align-items:center;gap:5px}
.fc-meta b{font-family:'Inter';font-weight:700;color:var(--ink)}
.fc-meta .bi-star-fill{color:var(--honey)}

.fc-card-foot{display:flex;gap:8px;border-top:1px solid var(--line);padding-top:12px;margin-top:auto}
.fc-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);
  background:var(--card);border-radius:9px;padding:9px 10px;font-family:'Inter';font-weight:700;font-size:12px;
  color:var(--body);cursor:pointer;transition:.13s;white-space:nowrap}
.fc-btn:hover{border-color:var(--teal-soft);color:var(--teal-d);background:var(--teal-glow)}
.fc-btn.primary{background:var(--teal);border-color:var(--teal);color:#fff}
.fc-btn.primary:hover{background:var(--teal-d);border-color:var(--teal-d);color:#fff}
.fc-btn.ghost{flex:0 0 auto;background:transparent;border-color:transparent;color:var(--mute)}
.fc-btn.ghost:hover{background:var(--fog);color:var(--ink);border-color:transparent}
.fc-btn.lg{padding:11px 18px;font-size:13px;flex:0 0 auto}
.fc-btn:disabled{opacity:.45;cursor:not-allowed}
.fc-btn:disabled:hover{background:var(--teal);border-color:var(--teal);color:#fff}

.fc-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;
  padding:48px 24px;background:var(--card);border:1px dashed var(--line);border-radius:15px}
.fc-empty .bi{font-size:26px;color:var(--mute);margin-bottom:4px}
.fc-empty b{font-family:'Inter';font-weight:700;font-size:14px;color:var(--ink)}
.fc-empty span{font-size:12.5px;color:var(--mute)}

/* ── right rail ── */
.fc-rail{display:flex;flex-direction:column;gap:16px;position:sticky;top:14px}
.fc-rail-card{background:var(--card);border:1px solid var(--line);border-radius:15px;padding:16px}
.fc-rail-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:13px}
.fc-rail-head h4{display:flex;align-items:center;gap:8px;font-family:'Inter';font-weight:800;font-size:14.5px;color:var(--ink);margin:0}
.fc-rail-head small{font-size:11px;color:var(--mute)}
.fc-live-dot{width:8px;height:8px;border-radius:50%;background:var(--rose);box-shadow:0 0 0 3px var(--rose-glow);animation:fcPulse 1.8s ease-in-out infinite}
@keyframes fcPulse{0%,100%{opacity:1}50%{opacity:.4}}

.fc-oh-list,.fc-req-list{display:flex;flex-direction:column;gap:10px}
.fc-oh{display:flex;align-items:flex-start;gap:11px;padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--fog);transition:.13s}
.fc-oh.live{border-color:var(--teal-soft);background:var(--teal-glow)}
.fc-oh-ava{width:34px;height:34px;flex-shrink:0;border-radius:10px;display:grid;place-items:center;color:#fff;font-family:'Inter';font-weight:800;font-size:12px}
.fc-oh-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.fc-oh-body b{font-family:'Inter';font-weight:700;font-size:12.5px;color:var(--ink);line-height:1.25}
.fc-oh-body small{font-size:10.5px;color:var(--mute)}
.fc-oh-when{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--body);margin-top:2px;flex-wrap:wrap}
.fc-oh-tag{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:8.5px;letter-spacing:.06em;padding:2px 6px;border-radius:5px}
.fc-oh-tag.live{background:var(--rose);color:#fff}
.fc-oh-tag.soon{background:var(--honey-glow);color:var(--honey-d)}
.fc-oh-join{flex-shrink:0;align-self:center;border:1px solid var(--teal);background:var(--teal);color:#fff;
  border-radius:8px;padding:6px 12px;font-family:'Inter';font-weight:700;font-size:11.5px;cursor:pointer;transition:.13s}
.fc-oh-join:hover{background:var(--teal-d);border-color:var(--teal-d)}
.fc-oh-join.soon{background:transparent;color:var(--teal-d);border-color:var(--teal-soft)}
.fc-oh-join.soon:hover{background:var(--teal-glow)}

.fc-req{display:flex;align-items:center;gap:11px;padding:10px 11px;border:1px solid var(--line);border-radius:12px}
.fc-req-ic{width:32px;height:32px;flex-shrink:0;border-radius:9px;display:grid;place-items:center;font-size:14px;background:var(--teal-glow);color:var(--teal-d)}
.fc-req-ic.ty-mentorship{background:var(--plum-glow);color:var(--plum-d)}
.fc-req-ic.ty-discussion{background:var(--honey-glow);color:var(--honey-d)}
.fc-req-ic.ty-officehours{background:var(--emerald-glow);color:var(--emerald-d)}
.fc-req-ic.ty-message{background:var(--plum-glow);color:var(--plum-d)}
.fc-req-body{flex:1;min-width:0;display:flex;flex-direction:column}
.fc-req-body b{font-family:'Inter';font-weight:700;font-size:12.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-req-body small{font-size:10.5px;color:var(--mute)}
.fc-req-state{flex-shrink:0;font-family:'Inter';font-weight:700;font-size:10px;padding:3px 9px;border-radius:999px;background:var(--honey-glow);color:var(--honey-d)}
.fc-rail-empty{font-size:12px;color:var(--mute);text-align:center;padding:18px 8px;background:var(--fog);border:1px dashed var(--line);border-radius:11px}

/* ── modals (shared with cc-modal conventions, teal-accented) ── */
.fc-modal-wrap{position:fixed;inset:0;z-index:4300;display:grid;place-items:center;padding:20px}
.fc-modal-back{position:absolute;inset:0;background:rgba(11,18,32,.5);backdrop-filter:blur(3px)}
.fc-modal{position:relative;width:100%;max-width:480px;background:var(--surface);border:1px solid var(--line);
  border-radius:18px;box-shadow:0 36px 80px -28px rgba(11,18,32,.5);max-height:90vh;overflow:hidden}
.fc-modal.sm{max-width:420px}
.fc-modal-inner{display:flex;flex-direction:column;max-height:90vh}
.fc-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.fc-modal-who{display:flex;align-items:center;gap:11px;min-width:0}
.fc-ava.sm{width:40px;height:40px;border-radius:11px;font-size:14px}
.fc-modal-who-id{min-width:0}
.fc-modal-who-id b{display:block;font-family:'Inter';font-weight:800;font-size:14.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-modal-who-id small{font-size:11.5px;color:var(--mute)}
.fc-modal-x{flex-shrink:0;border:0;background:var(--fog);width:30px;height:30px;border-radius:9px;cursor:pointer;color:var(--mute);font-size:12px;display:grid;place-items:center}
.fc-modal-x:hover{background:var(--line);color:var(--ink)}
.fc-modal-x.light{background:rgba(255,255,255,.25);color:#fff;backdrop-filter:blur(4px)}
.fc-modal-x.light:hover{background:rgba(255,255,255,.4)}
.fc-modal-body{padding:16px 18px;overflow-y:auto;display:flex;flex-direction:column;gap:9px}
.fc-field-label{font-family:'Inter';font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--mute);margin-top:5px}
.fc-field-label span{text-transform:none;letter-spacing:0;font-weight:500;color:var(--mute);opacity:.8}

.fc-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fc-type{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:11px 12px;
  border:1px solid var(--line);background:var(--card);border-radius:11px;cursor:pointer;transition:.13s}
.fc-type:hover{border-color:var(--teal-soft)}
.fc-type .bi{font-size:16px;color:var(--teal-d);margin-bottom:3px}
.fc-type b{font-family:'Inter';font-weight:700;font-size:12.5px;color:var(--ink)}
.fc-type small{font-size:10.5px;color:var(--mute)}
.fc-type.active{border-color:var(--teal);background:var(--teal-glow)}
.fc-type.active b{color:var(--teal-d)}

.fc-slots{display:flex;gap:8px;flex-wrap:wrap}
.fc-slot{padding:8px 13px;border:1px solid var(--line);background:var(--card);border-radius:9px;
  font-family:'Inter';font-weight:600;font-size:12px;color:var(--body);cursor:pointer;transition:.12s;white-space:nowrap}
.fc-slot:hover{border-color:var(--teal-soft);color:var(--teal-d)}
.fc-slot.active{background:var(--teal);border-color:var(--teal);color:#fff}

.fc-textarea{border:1px solid var(--line);background:var(--fog);border-radius:11px;padding:11px 13px;
  font-family:'Inter';font-size:13px;color:var(--ink);resize:vertical;min-height:64px;outline:none;transition:.13s}
.fc-textarea.tall{min-height:96px}
.fc-textarea:focus{border-color:var(--teal-soft);background:var(--card);box-shadow:0 0 0 3px var(--teal-glow)}
.fc-quick-chips{display:flex;gap:7px;flex-wrap:wrap}
.fc-quick-chip{padding:6px 12px;border:1px solid var(--line);background:var(--card);border-radius:999px;
  font-family:'Inter';font-weight:600;font-size:11.5px;color:var(--body);cursor:pointer;transition:.12s}
.fc-quick-chip:hover{border-color:var(--teal-soft);color:var(--teal-d);background:var(--teal-glow)}

.fc-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-top:1px solid var(--line)}
.fc-foot-note{font-size:11.5px;color:var(--mute);display:inline-flex;align-items:center;gap:6px}
.fc-foot-note b{font-family:'Inter';font-weight:700;color:var(--body)}

/* ── profile modal hero ── */
.fc-prof-hero{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:26px 18px 18px;text-align:center}
.fc-prof-hero .fc-modal-x{position:absolute;top:14px;right:14px}
.fc-ava.lg{width:64px;height:64px;border-radius:18px;font-size:22px;margin-bottom:6px}
.fc-prof-hero>b{font-family:'Inter';font-weight:800;font-size:18px;color:var(--ink)}
.fc-prof-hero>small{font-size:12.5px;color:var(--body)}
.fc-prof-status{display:flex;align-items:center;gap:7px;align-self:flex-start;font-family:'Inter';font-weight:600;font-size:12px;border-radius:9px;padding:8px 11px}
.fc-prof-status i{font-style:normal;font-weight:500;opacity:.85}
.fc-prof-bio{font-size:13px;line-height:1.6;color:var(--body);margin:4px 0 2px}
.fc-prof-rows{display:flex;flex-direction:column;gap:9px;margin:4px 0}
.fc-prof-row{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--body)}
.fc-prof-row .bi{color:var(--teal-d);font-size:14px;width:16px;text-align:center}
.fc-prof-row span{font-weight:600;color:var(--ink)}

/* ── responsive ── */
@media (max-width:1080px){
  .fc-body{grid-template-columns:1fr}
  .fc-rail{position:static;flex-direction:row;flex-wrap:wrap}
  .fc-rail-card{flex:1;min-width:280px}
}
@media (max-width:640px){
  .fc-top{padding:18px}
  .fc-top-intro h1{font-size:21px}
  .fc-type-grid{grid-template-columns:1fr}
  .fc-rail{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
  .fc-live-dot{animation:none}
  .fc-card:hover{transform:none}
}
