/* ═══════════════════════════════════════
   AXIOMA v12 — TOKENS + RESET
   ═══════════════════════════════════════ */
:root{
  --bg:#0f0f12;--s1:#16161a;--s2:#1e1e24;--s3:#28282f;--s4:#33333b;
  --b1:rgba(255,255,255,.07);--b2:rgba(255,255,255,.13);--b3:rgba(255,255,255,.22);
  --t1:#f0f0f2;--t2:#9898a8;--t3:#65657a;--t4:#3a3a4a;
  --topbar:rgba(15,15,18,.94);
  --shadow-sm:0 2px 8px rgba(0,0,0,.4);
  --shadow:0 8px 32px rgba(0,0,0,.5);
  --shadow-lg:0 20px 60px rgba(0,0,0,.6);
  --noise:.22;
  /* Accents */
  --cyan:#00d4f0;--cyan-d:rgba(0,212,240,.12);--cyan-g:rgba(0,212,240,.28);
  --blue:#5b9cf6;--blue-d:rgba(91,156,246,.12);--blue-g:rgba(91,156,246,.28);
  --green:#2dd68c;--green-d:rgba(45,214,140,.12);--green-g:rgba(45,214,140,.28);
  --purple:#b478f5;--purple-d:rgba(180,120,245,.12);--purple-g:rgba(180,120,245,.28);
  --rose:#f5607a;--rose-d:rgba(245,96,122,.12);--rose-g:rgba(245,96,122,.28);
  --amber:#f5c842;--amber-d:rgba(245,200,66,.12);--amber-g:rgba(245,200,66,.28);
  --orange:#f5894a;--orange-d:rgba(245,137,74,.12);--orange-g:rgba(245,137,74,.28);
  --red:#f56060;--red-d:rgba(245,96,96,.14);
  /* Semáforo — token separado */
  --sy:#f5c842;--sy-d:rgba(245,200,66,.13);--sy-g:rgba(245,200,66,.3);
  /* Área colors */
  --col-nop:var(--cyan);--col-alg:var(--blue);--col-geo:var(--purple);
  --col-tri:#f5c842;--col-lec:var(--green);
  /* Tab colors */
  --tab-dash:var(--cyan);--tab-bib:var(--green);--tab-banco:var(--blue);
  --tab-exam:var(--purple);--tab-fc:var(--amber);--tab-lotus:var(--rose);
  --tab-nov:var(--orange);
  /* Type */
  --fd:'Syne',sans-serif;--fb:'Inter',sans-serif;--fm:'JetBrains Mono',monospace;
  /* Motion */
  --ease-out:cubic-bezier(.16,1,.3,1);--ease-spring:cubic-bezier(.34,1.56,.64,1);
  --ease-smooth:cubic-bezier(.4,0,.2,1);
  /* Sidebar */
  --sw:220px;--sc:52px;
}
[data-theme="light"]{
  --bg:#f2f1ee;--s1:#fff;--s2:#eceae7;--s3:#e0ded9;--s4:#d2d0cb;
  --b1:rgba(0,0,0,.07);--b2:rgba(0,0,0,.12);--b3:rgba(0,0,0,.20);
  --t1:#1a1a1f;--t2:#4a4a5a;--t3:#6a6a7a;--t4:#aaaabc;
  --topbar:rgba(242,241,238,.95);--shadow-sm:0 2px 8px rgba(0,0,0,.1);
  --shadow:0 6px 24px rgba(0,0,0,.12);--shadow-lg:0 20px 60px rgba(0,0,0,.16);--noise:.05;
  --cyan:#0891b2;--cyan-d:rgba(8,145,178,.10);--cyan-g:rgba(8,145,178,.22);
  --blue:#2563eb;--blue-d:rgba(37,99,235,.10);--blue-g:rgba(37,99,235,.22);
  --green:#059669;--green-d:rgba(5,150,105,.10);--green-g:rgba(5,150,105,.22);
  --purple:#7c3aed;--purple-d:rgba(124,58,237,.10);--purple-g:rgba(124,58,237,.22);
  --rose:#e11d48;--rose-d:rgba(225,29,72,.10);--rose-g:rgba(225,29,72,.22);
  --amber:#b45309;--amber-d:rgba(180,83,9,.10);--amber-g:rgba(180,83,9,.22);
  --orange:#c2410c;--orange-d:rgba(194,65,12,.10);--orange-g:rgba(194,65,12,.22);
  --sy:#b45309;--sy-d:rgba(180,83,9,.10);--sy-g:rgba(180,83,9,.24);
  --col-tri:#b45309;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--t1);font-family:var(--fb);font-size:14px;line-height:1.65;min-height:100vh;-webkit-font-smoothing:antialiased}

/* ══════════════════════════════════════════
   AMBIENT — 3 animated orbs, each independent
   Dark mode: saturated colors
   Light mode: soft muted tones
   ══════════════════════════════════════════ */
.ambient{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.ambient-orb{position:absolute;border-radius:50%;filter:blur(60px)}
/* Orb 1 — large cyan, top-left, slow undulating drift */
.ambient-orb-1{
  width:900px;height:900px;
  background:radial-gradient(ellipse at 38% 42%,var(--cyan-d) 0%,rgba(0,212,240,.06) 40%,transparent 70%);
  top:-320px;left:-260px;
  animation:orb1 26s ease-in-out infinite;
  /* RISK: filter:blur is GPU-composited — keep on its own layer */
  will-change:transform;
}
/* Orb 2 — purple, bottom-right */
.ambient-orb-2{
  width:740px;height:740px;
  background:radial-gradient(ellipse at 55% 45%,var(--purple-d) 0%,rgba(180,120,245,.05) 42%,transparent 70%);
  bottom:-240px;right:-200px;
  animation:orb2 34s ease-in-out infinite;
  will-change:transform;
}
/* Orb 3 — blue, center — the main "underwater light" */
.ambient-orb-3{
  width:620px;height:580px;
  background:radial-gradient(ellipse at 50% 40%,rgba(0,180,255,.15) 0%,var(--blue-d) 35%,transparent 68%);
  top:35%;left:55%;
  animation:orb3 20s ease-in-out infinite;
  will-change:transform;
  filter:blur(55px);
}
/* Orb 4 — extra deep blue caustic shimmer — NEW */
.ambient-orb-4{
  position:absolute;width:420px;height:340px;border-radius:50%;
  background:radial-gradient(ellipse,rgba(0,100,200,.18) 0%,rgba(0,60,160,.06) 50%,transparent 75%);
  top:55%;left:30%;
  filter:blur(70px);
  animation:orb4 15s ease-in-out infinite;
  will-change:transform;
}
/* Light mode: very subtle */
[data-theme="light"] .ambient-orb-1{background:radial-gradient(circle,rgba(8,145,178,.07) 0%,transparent 68%)}
[data-theme="light"] .ambient-orb-2{background:radial-gradient(circle,rgba(124,58,237,.05) 0%,transparent 68%)}
[data-theme="light"] .ambient-orb-3{background:radial-gradient(circle,rgba(37,99,235,.04) 0%,transparent 68%)}
[data-theme="light"] .ambient-orb-4{display:none}

/* UNDERWATER PHYSICS: each orb traces a slow figure-8 / lissajous path
   — different phase offsets so they never move in sync                    */
@keyframes orb1{
  0%  {transform:translate(0px,  0px)   scale(1)    skew(0deg,0deg)}
  12% {transform:translate(48px, 32px)  scale(1.04) skew(0.4deg,0.2deg)}
  25% {transform:translate(22px, 72px)  scale(1.09) skew(0deg,0.3deg)}
  38% {transform:translate(-40px,55px)  scale(1.06) skew(-0.3deg,0deg)}
  50% {transform:translate(-68px,-10px) scale(0.98) skew(0deg,-0.2deg)}
  62% {transform:translate(-30px,-68px) scale(0.95) skew(0.2deg,0deg)}
  75% {transform:translate(30px,-50px)  scale(1.02) skew(0deg,0.2deg)}
  88% {transform:translate(65px, 14px)  scale(1.07) skew(0.3deg,0.1deg)}
  100%{transform:translate(0px,  0px)   scale(1)    skew(0deg,0deg)}
}
@keyframes orb2{
  0%  {transform:translate(0px,  0px)   scale(1)}
  16% {transform:translate(-55px,-38px) scale(1.06)}
  33% {transform:translate(-18px,-80px) scale(1.12)}
  50% {transform:translate(60px,-44px)  scale(1.04)}
  66% {transform:translate(72px, 28px)  scale(0.97)}
  83% {transform:translate(20px, 68px)  scale(0.94)}
  100%{transform:translate(0px,  0px)   scale(1)}
}
/* Orb 3: sinusoidal sway — like a shaft of light underwater */
@keyframes orb3{
  0%  {transform:translate(-50%,-50%) scale(1)    rotate(0deg)}
  10% {transform:translate(-48%,-53%) scale(1.06) rotate(2deg)}
  20% {transform:translate(-52%,-56%) scale(1.12) rotate(-1deg)}
  30% {transform:translate(-55%,-52%) scale(1.08) rotate(3deg)}
  40% {transform:translate(-52%,-47%) scale(1.02) rotate(-2deg)}
  50% {transform:translate(-47%,-44%) scale(0.96) rotate(1deg)}
  60% {transform:translate(-44%,-48%) scale(0.93) rotate(-3deg)}
  70% {transform:translate(-47%,-53%) scale(0.98) rotate(2deg)}
  80% {transform:translate(-51%,-57%) scale(1.05) rotate(-1deg)}
  90% {transform:translate(-53%,-51%) scale(1.1)  rotate(3deg)}
  100%{transform:translate(-50%,-50%) scale(1)    rotate(0deg)}
}
@keyframes orb4{
  0%  {transform:translate(-50%,-50%) scale(1)   rotate(0deg)}
  25% {transform:translate(-44%,-56%) scale(1.18) rotate(8deg)}
  50% {transform:translate(-56%,-44%) scale(0.88) rotate(-5deg)}
  75% {transform:translate(-48%,-52%) scale(1.12) rotate(4deg)}
  100%{transform:translate(-50%,-50%) scale(1)   rotate(0deg)}
}
/* Noise overlay */
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;opacity:var(--noise);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='256' height='256'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/%3E%3C/svg%3E")}

/* Theme flash */
#tf{position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:0}
#tf.fl{animation:tfl .38s var(--ease-out) forwards}
@keyframes tfl{0%{opacity:0}30%{opacity:1}100%{opacity:0}}

/* ═══════════════════════════════════════
   TOPBAR — logo left | tabs CENTER | user right
   ═══════════════════════════════════════ */
.topbar{
  position:sticky;top:0;z-index:100;height:58px;
  background:var(--topbar);
  backdrop-filter:blur(32px) saturate(2.4);-webkit-backdrop-filter:blur(32px) saturate(2.4);
  border-bottom:1px solid var(--b1);
  display:grid;grid-template-columns:1fr auto 1fr;
  align-items:center;padding:0 24px;gap:16px;
  position:relative;
}
.topbar::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--cyan) 15%,var(--blue) 40%,var(--purple) 65%,var(--rose) 85%,transparent);
  opacity:.35}
.logo{font-family:var(--fd);font-size:16px;font-weight:800;letter-spacing:2.5px;color:var(--t1);white-space:nowrap;
  text-shadow:0 0 28px var(--cyan-g);justify-self:start}
.logo span{color:var(--cyan)}

/* TABS — centered */
.section-tabs{
  display:flex;gap:2px;background:var(--s2);border:1px solid var(--b1);border-radius:11px;padding:3px;
  justify-self:center;
}
.tab-btn{
  display:flex;align-items:center;gap:7px;padding:6px 14px;border-radius:8px;border:none;
  background:transparent;color:var(--t3);font-family:var(--fb);font-size:13px;font-weight:500;
  cursor:pointer;white-space:nowrap;transition:color .18s ease,background .18s ease;
  position:relative;
}
.tab-btn:hover{color:var(--t2);background:var(--s3)}
.tab-btn.active{color:var(--t1);background:var(--s4);font-weight:600;
  box-shadow:0 1px 6px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.06)}
.tdot{width:5px;height:5px;border-radius:50%;background:var(--t4);flex-shrink:0;transition:background .2s,box-shadow .2s}
/* Each tab gets its own color */
.tab-btn[data-s="dashboard"].active .tdot{background:var(--tab-dash);box-shadow:0 0 6px var(--cyan-g)}
.tab-btn[data-s="biblioteca"].active .tdot{background:var(--tab-bib);box-shadow:0 0 6px var(--green-g)}
.tab-btn[data-s="banco"].active      .tdot{background:var(--tab-banco);box-shadow:0 0 6px var(--blue-g)}
.tab-btn[data-s="examenes"].active   .tdot{background:var(--tab-exam);box-shadow:0 0 6px var(--purple-g)}
.tab-btn[data-s="flashcards"].active .tdot{background:var(--tab-fc);box-shadow:0 0 6px var(--amber-g)}
.tab-btn[data-s="lotus"].active      .tdot{background:var(--tab-lotus);box-shadow:0 0 6px var(--rose-g)}
.tab-btn[data-s="novedades"].active  .tdot{background:var(--tab-nov);box-shadow:0 0 6px var(--orange-g)}

/* User chip — right */
.topbar-r{display:flex;align-items:center;gap:8px;justify-self:end}
.tbtn{width:34px;height:34px;border-radius:8px;background:var(--s2);border:1px solid var(--b1);
  display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;color:var(--t2);
  transition:all .2s;border:1px solid var(--b1)}
.tbtn:hover{background:var(--s3);color:var(--t1);border-color:var(--b2)}
.user-chip{display:flex;align-items:center;gap:8px;padding:4px 12px 4px 4px;border-radius:24px;
  background:var(--s2);border:1px solid var(--b1);font-size:13px;color:var(--t2);cursor:pointer;
  transition:all .2s;white-space:nowrap}
.user-chip:hover{border-color:var(--b2);background:var(--s3)}
.avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#1a2f4a,#0a1a2e);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;
  color:var(--cyan);font-family:var(--fm);flex-shrink:0;
  box-shadow:0 0 0 2px var(--bg),0 0 0 3px var(--cyan),0 0 12px 2px var(--cyan-g)}
.plan-badge{font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:2px 7px;
  border-radius:4px;background:var(--blue-d);color:var(--blue);border:1px solid var(--blue-g);
  font-family:var(--fm)}

/* ═══════════════════════════════════════
   LAYOUT & PANELS
   ═══════════════════════════════════════ */
.main-wrap{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:40px 28px 80px}
.panel{display:none}
.panel.active{display:block;animation:panelIn .42s var(--ease-out) both}
@keyframes panelIn{
  from{opacity:0;transform:translateY(22px) scale(.98)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes scaleIn{
  from{opacity:0;transform:scale(.94)}
  to{opacity:1;transform:scale(1)}
}
/* Luxury slide-in from left for sidebar items */
@keyframes slideInLeft{
  from{opacity:0;transform:translateX(-14px)}
  to{opacity:1;transform:translateX(0)}
}
/* Glow pulse on active elements */
@keyframes glowPulse{
  0%,100%{box-shadow:0 0 0 0 transparent}
  50%{box-shadow:0 0 16px 3px rgba(0,212,240,.18)}
}
/* Number counter shimmer */
@keyframes numIn{
  from{opacity:0;transform:translateY(6px) scale(.92)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
/* Tab dot pulse when active */
@keyframes dotPop{
  0%{transform:scale(1)}50%{transform:scale(1.5)}100%{transform:scale(1)}
}
/* Card entrance stagger — apply via animation-delay on children */
@keyframes cardEntrance{
  from{opacity:0;transform:translateY(18px) scale(.97)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

/* Apply stagger entrance to kpi grid children */
.kpi-grid .kpi:nth-child(1){animation:cardEntrance .5s var(--ease-spring) .05s both}
.kpi-grid .kpi:nth-child(2){animation:cardEntrance .5s var(--ease-spring) .12s both}
.kpi-grid .kpi:nth-child(3){animation:cardEntrance .5s var(--ease-spring) .19s both}
/* Ring wrap stagger */
.ring-wrap:nth-child(1){animation:cardEntrance .55s var(--ease-spring) .08s both}
.ring-wrap:nth-child(2){animation:cardEntrance .55s var(--ease-spring) .15s both}
.ring-wrap:nth-child(3){animation:cardEntrance .55s var(--ease-spring) .22s both}
.ring-wrap:nth-child(4){animation:cardEntrance .55s var(--ease-spring) .29s both}
.ring-wrap:nth-child(5){animation:cardEntrance .55s var(--ease-spring) .36s both}
/* Score row entrance */
.score-row{animation:fadeUp .55s var(--ease-out) .1s both}
/* Metrics row */
.metrics-row{animation:fadeUp .55s var(--ease-out) .2s both}
/* Activity chart panel */
.activity-chart-panel{animation:fadeUp .6s var(--ease-out) .3s both}
/* Section header */
.sec-hdr{animation:fadeUp .4s var(--ease-out) both}
/* Sidebar items */
.si{animation:slideInLeft .35s var(--ease-out) both}
.si:nth-child(1){animation-delay:.04s}.si:nth-child(2){animation-delay:.08s}
.si:nth-child(3){animation-delay:.12s}.si:nth-child(4){animation-delay:.16s}
.si:nth-child(5){animation-delay:.20s}.si:nth-child(6){animation-delay:.24s}
/* Tab active dot pop */
.tab-btn.active .tdot{animation:dotPop .3s var(--ease-spring) both}
/* KPI value shimmer on load */
.kpi-v{animation:numIn .5s var(--ease-spring) .25s both}
/* ecard hover — enhanced */
.ecard.available{transition:transform .28s var(--ease-spring),box-shadow .28s,border-color .28s}
.ecard.available:hover{transform:translateY(-5px) scale(1.01);box-shadow:var(--shadow-lg);border-color:var(--b2)}
/* banco qcard hover — subtle pull */
.qcard{transition:all .25s var(--ease-spring)}
.qcard:hover{transform:translateX(6px) scale(1.005);box-shadow:var(--shadow)}
/* Bib section hover */
.bib-sec{transition:border-color .2s,box-shadow .2s}
.bib-sec:hover{border-color:var(--b2);box-shadow:var(--shadow-sm)}
/* Tab btn enhanced hover */
.tab-btn{transition:color .2s var(--ease-out),background .2s var(--ease-out),transform .15s}
.tab-btn:hover{transform:translateY(-1px)}
.tab-btn.active{transform:translateY(0)}
/* Score num count-up feel */
.sc-num{animation:numIn .7s var(--ease-spring) .15s both}
/* Flash card wrap */
.fc-card-wrap{transition:filter .3s}
.fc-card-wrap:hover{filter:drop-shadow(0 8px 24px rgba(180,120,245,.22))}
/* Nov card hover */
.nov-card{transition:border-color .22s var(--ease-out),transform .22s var(--ease-spring),box-shadow .22s}
.nov-card:hover{transform:translateY(-3px)}
/* Cycle (exam) hover */
.cycle{transition:border-color .2s,box-shadow .2s}
.cycle:hover{box-shadow:var(--shadow-sm)}
/* Lotus chip spring bounce */
.lotus-chip{transition:all .22s var(--ease-spring)}
.lotus-chip:hover{transform:translateY(-2px) scale(1.03)}
/* Filter chip spring */
.fc{transition:all .22s var(--ease-spring)}
.fc:hover{transform:translateY(-2px) scale(1.04)}
/* KPI card subtle glow on hover */
.kpi{transition:border-color .22s,box-shadow .22s,transform .22s var(--ease-spring)}
.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
/* Topbar gradient shimmer line — pulsing opacity */
.topbar::before{animation:shimmerBar 6s ease-in-out infinite}
@keyframes shimmerBar{
  0%,100%{opacity:.25}50%{opacity:.55}
}

.sec-hdr{margin-bottom:32px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.eyebrow{font-family:var(--fm);font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--t3);margin-bottom:6px}
.sec-title{font-family:var(--fd);font-size:28px;font-weight:700;letter-spacing:-.5px;color:var(--t1);line-height:1.1}
.sec-title .ac{color:var(--cyan)}.sec-title .ab{color:var(--blue)}.sec-title .ap{color:var(--purple)}
.sec-title .ag{color:var(--green)}.sec-title .ay{color:var(--amber)}.sec-title .ar{color:var(--rose)}
.sec-sub{margin-top:7px;font-size:14px;color:var(--t2);line-height:1.7}
.sec-stats{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.sp-val{font-family:var(--fm);font-size:20px;font-weight:700;line-height:1;display:block}
.sp-lbl{font-family:var(--fm);font-size:11px;color:var(--t3);letter-spacing:1.5px;text-transform:uppercase;margin-top:3px;display:block}
.sdiv{width:1px;height:28px;background:var(--b2)}

/* Search */
.srch{position:relative}
.srch input{background:var(--s3);border:1px solid var(--b1);color:var(--t1);
  padding:8px 34px 8px 13px;border-radius:9px;font-size:13px;font-family:var(--fb);
  width:195px;outline:none;transition:border-color .2s,box-shadow .2s}
.srch input::placeholder{color:var(--t3)}
.srch input:focus{border-color:var(--b2);box-shadow:0 0 0 3px rgba(0,212,240,.08)}
.srch-ico{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--t3);font-size:15px;pointer-events:none}

/* Filter chips */
.filter-bar{display:flex;gap:6px;margin-bottom:24px;flex-wrap:wrap;align-items:center}
.fc{padding:5px 13px;border-radius:20px;border:1px solid var(--b1);background:transparent;
  color:var(--t3);font-family:var(--fm);font-size:11px;letter-spacing:.5px;cursor:pointer;
  transition:all .2s var(--ease-out);user-select:none;font-weight:400}
.fc:hover{border-color:var(--b2);color:var(--t2);background:var(--s3);transform:translateY(-1px)}
.fc.active{color:var(--t1);background:var(--s4);border-color:var(--b3);font-weight:600}
.fc.f-alg.active{border-color:var(--blue-g);color:var(--blue)}
.fc.f-geo.active{border-color:var(--purple-g);color:var(--purple)}
.fc.f-tri.active{border-color:var(--amber-g);color:var(--col-tri)}
.fc.f-nop.active{border-color:var(--cyan-g);color:var(--cyan)}
.fc.f-lec.active{border-color:var(--green-g);color:var(--green)}
.fsep{width:1px;height:18px;background:var(--b1);margin:0 4px}

/* Area tags */
.at{font-family:var(--fm);font-size:11px;letter-spacing:1.2px;text-transform:uppercase;padding:3px 9px;border-radius:5px;flex-shrink:0;font-weight:600}
.at-nop{background:var(--cyan-d);color:var(--col-nop);border:1px solid var(--cyan-g)}
.at-alg{background:var(--blue-d);color:var(--col-alg);border:1px solid var(--blue-g)}
.at-geo{background:var(--purple-d);color:var(--col-geo);border:1px solid var(--purple-g)}
.at-tri{background:var(--amber-d);color:var(--col-tri);border:1px solid var(--amber-g)}
.at-lec{background:var(--green-d);color:var(--col-lec);border:1px solid var(--green-g)}

/* ═══════════════════════════════════════
   DASHBOARD — SIDEBAR
   ═══════════════════════════════════════ */
#panel-dashboard.active{
  display:grid;grid-template-columns:var(--sw) 1fr;
  min-height:calc(100vh - 58px - 80px);
  margin:-40px -28px -80px;padding:0;
  transition:grid-template-columns .32s var(--ease-out)
}
#panel-dashboard.active.coll{grid-template-columns:var(--sc) 1fr}
.dash-sidebar{
  background:var(--s1);border-right:1px solid var(--b1);
  padding:16px 0 24px;overflow:hidden;
  position:sticky;top:58px;height:calc(100vh - 58px);
  display:flex;flex-direction:column;
  transition:background .22s
}
.stog{background:none;border:none;color:var(--t3);cursor:pointer;padding:8px;font-size:12px;
  align-self:flex-end;margin:0 12px 4px;border-radius:6px;transition:all .18s}
.stog:hover{color:var(--t1);background:var(--s2)}
.s-ey{font-family:var(--fm);font-size:10px;letter-spacing:2px;text-transform:uppercase;
  color:var(--t4);padding:0 16px;margin:12px 0 6px;white-space:nowrap;overflow:hidden;transition:opacity .2s}
.si{display:flex;align-items:center;gap:12px;padding:10px 16px;cursor:pointer;
  font-size:13px;font-weight:500;color:var(--t3);transition:all .18s ease;
  white-space:nowrap;border-left:3px solid transparent}
.si:hover{background:var(--s2);color:var(--t2)}
.si.active{background:var(--cyan-d);color:var(--t1);border-left-color:var(--cyan)}
.s-ico{font-size:14px;flex-shrink:0;width:20px;text-align:center}
.s-lbl{font-size:13px;transition:opacity .2s,max-width .2s}
#panel-dashboard.active.coll .s-lbl,
#panel-dashboard.active.coll .s-ey{opacity:0;max-width:0;pointer-events:none;overflow:hidden}
#panel-dashboard.active.coll .si{padding:10px 0;justify-content:center;border-left-color:transparent!important}
#panel-dashboard.active.coll .si.active{background:var(--cyan-d)}
.dash-content{padding:32px 36px 60px;overflow-y:auto}
.dsub{display:none;animation:panelIn .35s var(--ease-out) both}
.dsub.active{display:block}

/* Score row */
.score-row{
  display:flex;align-items:center;gap:22px;flex-wrap:wrap;
  background:linear-gradient(140deg,var(--s2),var(--s1));
  border:1px solid var(--b2);border-radius:18px;padding:24px 28px;
  margin-bottom:22px;box-shadow:var(--shadow);position:relative;overflow:hidden;
  transition:box-shadow .3s;
}
.score-row:hover{box-shadow:var(--shadow-lg)}
.score-row::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--sy);border-radius:4px 0 0 4px}
.score-row::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(245,200,66,.04) 0%,transparent 60%);pointer-events:none}
.sc-lbl{font-family:var(--fm);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--t3);margin-bottom:4px}
.sc-num{font-family:var(--fm);font-size:62px;font-weight:700;line-height:1;color:var(--sy);text-shadow:0 0 40px var(--sy-g)}
.sc-zone{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--sy);margin-bottom:6px}
.sc-hint{font-size:13px;color:var(--t2)}
.sdot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.sd-y{background:var(--sy);box-shadow:0 0 8px var(--sy-g);animation:pulse 3s ease-in-out infinite}
.sd-g{background:var(--green);box-shadow:0 0 8px var(--green-g)}
.sd-r{background:var(--red)}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 var(--sy-g)}50%{box-shadow:0 0 0 5px rgba(245,200,66,0)}}
.sc-puesto{border-left:1px solid var(--b2);padding-left:22px}
.sc-puesto-v{font-family:var(--fm);font-size:32px;font-weight:700;color:var(--t1)}
.sc-puesto-l{font-family:var(--fm);font-size:11px;color:var(--t3);letter-spacing:1.5px;text-transform:uppercase;margin-top:4px}
/* CTA buttons — each has a real function described */
.sc-cta{
  margin-left:auto;padding:10px 20px;border-radius:9px;border:none;
  background:var(--sy-d);color:var(--sy);border:1px solid var(--sy-g);
  font-family:var(--fm);font-size:11px;font-weight:600;letter-spacing:1px;
  cursor:pointer;white-space:nowrap;transition:all .22s var(--ease-out)
}
.sc-cta:hover{background:rgba(245,200,66,.2);transform:translateY(-2px);box-shadow:0 6px 20px var(--sy-g)}
.sc-cta:active{transform:translateY(0);box-shadow:none}

/* KPI Grid */
.kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}
.kpi{
  background:var(--s1);border:1px solid var(--b1);border-radius:16px;padding:20px 22px;
  position:relative;overflow:hidden;animation:fadeUp .5s var(--ease-out) both;
  box-shadow:var(--shadow-sm);transition:transform .25s var(--ease-out),border-color .25s,box-shadow .25s
}
.kpi::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--kpi-ac,var(--cyan));border-radius:4px 0 0 4px}
.kpi::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;
  background:linear-gradient(135deg,var(--kpi-ac,var(--cyan)),transparent);
  opacity:0;transition:opacity .3s}
.kpi:hover{transform:translateY(-3px);border-color:var(--b2);box-shadow:var(--shadow)}
.kpi:hover::after{opacity:.04}
.kpi-ey{font-family:var(--fm);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--t3);margin-bottom:10px}
.kpi-v{font-family:var(--fm);font-size:30px;font-weight:700;line-height:1;margin-bottom:8px}
.kpi-s{font-size:13px;color:var(--t2);line-height:1.55}

/* Ring + Radar */
.metrics-row{display:grid;grid-template-columns:1fr 268px;gap:14px;margin-bottom:22px}
.ring-panel,.radar-panel{
  background:var(--s1);border:1px solid var(--b1);border-radius:16px;padding:22px;
  box-shadow:var(--shadow-sm);transition:box-shadow .25s
}
.ring-panel:hover,.radar-panel:hover{box-shadow:var(--shadow)}
.panel-title{font-family:var(--fm);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--t3);margin-bottom:16px}
.rings-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.ring-wrap{display:flex;flex-direction:column;align-items:center;gap:7px;transition:transform .2s var(--ease-spring)}
.ring-wrap:hover{transform:scale(1.05)}
.ring-lbl{font-family:var(--fm);font-size:11px;color:var(--t2);text-align:center;line-height:1.3;font-weight:500}

/* ════════════════════════════════════════
   ACTIVITY CHART — Trading-style area chart
   Replaces heatmap grid. Chart.js renders into canvas.
   Prod: same SQL query as heatmap → JSON array
   ════════════════════════════════════════ */
.activity-chart-panel{
  background:var(--s1);border:1px solid var(--b1);border-radius:16px;
  padding:22px 22px 16px;margin-bottom:22px;box-shadow:var(--shadow-sm);
  position:relative;overflow:hidden;
  /* Subtle inner glow for the "trading terminal" feel */
  box-shadow:var(--shadow-sm),inset 0 1px 0 rgba(255,255,255,.04);
}
.activity-chart-panel::before{
  content:'';position:absolute;inset:0;border-radius:16px;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,212,240,.025) 0%,transparent 40%);
}
.ac-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}
.ac-meta{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.ac-kpi{text-align:center}
.ac-kpi-v{font-family:var(--fm);font-size:18px;font-weight:700;color:var(--cyan)}
.ac-kpi-l{font-family:var(--fm);font-size:10px;color:var(--t3);letter-spacing:1px;text-transform:uppercase;margin-top:2px}
.ac-badge{
  font-family:var(--fm);font-size:11px;padding:4px 10px;border-radius:6px;font-weight:600;
  display:flex;align-items:center;gap:5px;
}
.ac-badge.up{background:var(--green-d);color:var(--green);border:1px solid var(--green-g)}
.ac-chart-wrap{position:relative;height:160px}
.ac-chart-wrap canvas{display:block}

/* Historial table */
.hist-table{width:100%;border-collapse:collapse;font-family:var(--fm);font-size:12px}
.hist-table th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--b1);color:var(--t3);font-weight:500;letter-spacing:1px;font-size:11px;text-transform:uppercase}
.hist-table td{padding:12px 14px;border-bottom:1px solid var(--b1);color:var(--t1);vertical-align:middle;font-size:13px}
.hist-table tr:last-child td{border-bottom:none}
.hist-table tr{transition:background .15s}
.hist-table tr:hover td{background:var(--s2)}
.cy{color:var(--sy)}.cg{color:var(--green)}.cr{color:var(--red)}

/* Ranking */
.rank-wrap{position:relative;border-radius:16px;overflow:hidden}
.rank-preview{filter:blur(5px) brightness(.6);pointer-events:none;user-select:none;min-height:260px;background:var(--s1);border:1px solid var(--b1);border-radius:16px}
.rank-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:rgba(0,0,0,.55);backdrop-filter:blur(3px);padding:32px 24px;text-align:center}
[data-theme="light"] .rank-overlay{background:rgba(242,241,238,.75)}
.rank-overlay-title{font-family:var(--fd);font-size:22px;font-weight:700;color:var(--t1)}
.rank-overlay-sub{font-size:14px;color:var(--t2);line-height:1.75;max-width:320px}
.rank-overlay-cta{padding:11px 26px;border-radius:9px;border:1px solid var(--purple-g);background:var(--purple-d);color:var(--purple);font-family:var(--fm);font-size:12px;font-weight:600;letter-spacing:1px;cursor:pointer;text-transform:uppercase;transition:all .22s var(--ease-out)}
.rank-overlay-cta:hover{transform:translateY(-2px);box-shadow:0 6px 20px var(--purple-g)}
.rank-row{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--b1)}
.rank-row:last-child{border-bottom:none}
.rn{font-family:var(--fm);font-size:13px;font-weight:700;width:28px;color:var(--t3)}
.rn.top{color:var(--sy)}.ra{flex:1;font-family:var(--fm);font-size:12px;color:var(--t1)}.rs{font-family:var(--fm);font-size:14px;font-weight:700}
.rz{font-family:var(--fm);font-size:11px;padding:3px 8px;border-radius:4px;font-weight:600}
.rz-g{background:var(--green-d);color:var(--green);border:1px solid var(--green-g)}
.rz-y{background:var(--sy-d);color:var(--sy);border:1px solid var(--sy-g)}

/* ═══════════════════════════════════════
   SHARED CARD
   ═══════════════════════════════════════ */
.card{background:var(--s1);border:1px solid var(--b1);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .25s var(--ease-out),border-color .25s,box-shadow .25s}
.card:hover{transform:translateY(-2px);border-color:var(--b2);box-shadow:var(--shadow)}

/* ═══════════════════════════════════════
   BIBLIOTECA — FIX: all sections start CLOSED
   ═══════════════════════════════════════ */
.bib-sec{
  background:var(--s1);border:1px solid var(--b1);border-radius:16px;
  overflow:hidden;margin-bottom:10px;box-shadow:var(--shadow-sm);
  transition:border-color .2s,box-shadow .2s
}
.bib-sec:hover{border-color:var(--b2)}
.bib-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 22px;cursor:pointer;user-select:none;transition:background .15s;
}
.bib-head:hover{background:var(--s2)}
.bib-head-l{display:flex;align-items:center;gap:12px}
.bib-name{font-family:var(--fd);font-size:14px;font-weight:600;color:var(--t1)}
.bib-head-r{display:flex;align-items:center;gap:10px}
.bib-ct{font-family:var(--fm);font-size:12px;color:var(--t3);font-weight:500}
.bib-tog{
  background:none;border:1px solid var(--b1);color:var(--t3);cursor:pointer;
  font-size:11px;padding:5px 8px;border-radius:6px;transition:all .25s var(--ease-out)
}
.bib-sec.open .bib-tog{transform:rotate(180deg);color:var(--t1);background:var(--s3);border-color:var(--b2)}
.bib-body{
  /* FIX: closed by default — display:none, NOT block */
  display:none;border-top:1px solid var(--b1);
  animation:fadeUp .3s var(--ease-out) both
}
.bib-sec.open .bib-body{display:block}

/* Lectura subgroups */
.lec-sg-hdr{
  font-family:var(--fm);font-size:11px;letter-spacing:2px;text-transform:uppercase;
  color:var(--col-lec);padding:10px 22px 8px;
  background:linear-gradient(90deg,rgba(45,214,140,.06),transparent);
  display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(45,214,140,.12)
}
[data-theme="light"] .lec-sg-hdr{background:linear-gradient(90deg,rgba(5,150,105,.06),transparent)}
.lec-sg-hdr::after{content:'';flex:1;height:1px;background:rgba(45,214,140,.2)}
.topic-row{
  display:flex;align-items:center;gap:14px;padding:13px 22px;
  border-bottom:1px solid var(--b1);transition:background .15s;
}
.topic-row:last-child{border-bottom:none}
.topic-row:hover{background:var(--s2)}
.topic-row.done{background:rgba(45,214,140,.04)}
[data-theme="light"] .topic-row.done{background:rgba(5,150,105,.05)}
.topic-info{flex:1;min-width:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
/* FIX: topic name visible — min 13px, color --t2 for undone, --t1 for done */
.topic-name{font-size:13px;color:var(--t2);font-weight:400;line-height:1.45}
.topic-row.done .topic-name{color:var(--t1);font-weight:500}
.topic-s{font-family:var(--fm);font-size:11px;color:var(--t3);background:var(--s3);padding:2px 8px;border-radius:4px;flex-shrink:0;border:1px solid var(--b1);font-weight:500}
.topic-sub-tag{font-family:var(--fm);font-size:10px;color:var(--t4);padding:2px 7px;background:var(--s3);border-radius:4px;flex-shrink:0;border:1px solid var(--b1)}
.topic-btn{
  flex-shrink:0;padding:6px 14px;border-radius:7px;border:1px solid var(--b2);
  background:transparent;color:var(--t3);font-family:var(--fm);font-size:12px;
  font-weight:500;cursor:pointer;transition:all .2s var(--ease-out);white-space:nowrap
}
/* Prod: onClick → POST to wp_ajax 'axioma_mark_topic' → update wp_usermeta */
.topic-btn:hover{border-color:var(--b3);color:var(--t1);background:var(--s3);transform:translateY(-1px)}
.topic-btn.done{color:var(--green);background:var(--green-d);border-color:var(--green-g)}

/* ═══════════════════════════════════════
   BANCO
   ═══════════════════════════════════════ */
.banco-layout{display:grid;grid-template-columns:210px 1fr;gap:20px}
.banco-side{position:sticky;top:72px;height:fit-content;background:var(--s1);border:1px solid var(--b1);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm)}
.bs-title{font-family:var(--fm);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--t3);padding:14px 16px 10px;border-bottom:1px solid var(--b1)}
.bs-grp{padding:10px 0;border-bottom:1px solid var(--b1)}
.bs-grp:last-child{border-bottom:none}
.bs-glbl{font-family:var(--fm);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--t4);padding:0 16px 8px}
.bs-opt{display:flex;align-items:center;gap:9px;padding:9px 16px;cursor:pointer;transition:background .15s;font-family:var(--fm);font-size:12px;color:var(--t2);font-weight:400}
.bs-opt:hover{background:var(--s2);color:var(--t1)}
.bs-opt.active{background:var(--s3);color:var(--t1);font-weight:600}
.bs-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.banco-prog{margin:14px;background:var(--s2);border:1px solid var(--b1);border-radius:10px;padding:14px}
.bp-lbl{font-family:var(--fm);font-size:11px;color:var(--t3);letter-spacing:1px;text-transform:uppercase;margin-bottom:8px;font-weight:500}
.bp-nums{display:flex;align-items:baseline;gap:3px;margin-bottom:4px}
.bp-n{font-family:var(--fm);font-size:22px;font-weight:700;color:var(--blue)}
.bp-t{font-family:var(--fm);font-size:12px;color:var(--t3)}
.bp-sub{font-family:var(--fm);font-size:11px;color:var(--t3);margin-bottom:9px}
.bp-track{height:4px;background:var(--s4);border-radius:2px;overflow:hidden}
.bp-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--blue),var(--cyan));transition:width .9s var(--ease-out)}
.banco-grp{background:var(--s1);border:1px solid var(--b1);border-radius:16px;overflow:hidden;margin-bottom:10px;box-shadow:var(--shadow-sm);transition:border-color .2s}
.banco-grp:hover{border-color:var(--b2)}
.banco-gh{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;cursor:pointer;user-select:none;transition:background .15s}
.banco-gh:hover{background:var(--s2)}
.banco-gi{display:flex;align-items:center;gap:12px}
.banco-gn{font-family:var(--fd);font-size:14px;font-weight:600;color:var(--t1)}
.banco-gc{font-family:var(--fm);font-size:12px;color:var(--t3);font-weight:500}
.banco-gt{background:none;border:1px solid var(--b1);color:var(--t3);cursor:pointer;font-size:11px;padding:5px 8px;border-radius:6px;transition:all .25s var(--ease-out)}
.banco-grp.open .banco-gt{transform:rotate(180deg);background:var(--s3);border-color:var(--b2);color:var(--t1)}
.banco-body{display:none;border-top:1px solid var(--b1);animation:fadeUp .3s var(--ease-out) both}
.banco-grp.open .banco-body{display:block}
.lec-sub-hdr-b{font-size:13px;font-weight:600;color:var(--t1);padding:13px 20px 9px;background:var(--s2);display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--b1)}
.lec-sub-hdr-b .lsb-c{font-family:var(--fm);font-size:11px;color:var(--green);margin-left:auto;font-weight:600}
.banco-qlist{padding:8px 16px 14px;display:flex;flex-direction:column;gap:8px}
.qcard{
  display:flex;align-items:center;gap:13px;padding:14px 16px;border-radius:11px;
  background:var(--s2);border:1px solid var(--b1);cursor:pointer;
  transition:all .22s var(--ease-out);animation:fadeUp .3s var(--ease-out) both
}
.qcard:hover{background:var(--s3);border-color:var(--b2);transform:translateX(4px);box-shadow:var(--shadow-sm)}
.qcard.done{border-left:3px solid var(--green)}
.qsi{width:27px;height:27px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;transition:all .2s}
.qsi.p{background:var(--s4);color:var(--t3);border:1px solid var(--b2)}
.qsi.d{background:var(--green-d);color:var(--green);border:1px solid var(--green-g)}
.q-info{flex:1;min-width:0}
.q-name{font-size:13px;font-weight:500;color:var(--t1);margin-bottom:4px;line-height:1.45}
.q-meta{font-family:var(--fm);font-size:11px;color:var(--t3);font-weight:400}
.q-cta{flex-shrink:0;padding:7px 14px;border-radius:7px;border:1px solid var(--b2);background:transparent;color:var(--t3);font-family:var(--fm);font-size:11px;font-weight:600;cursor:pointer;transition:all .2s var(--ease-out)}
/* Prod: onClick → redirect to Tutor LMS quiz URL for that repaso */
.q-cta.r{color:var(--blue);border-color:var(--blue-g);background:var(--blue-d)}
.q-cta.v{color:var(--green);border-color:var(--green-g);background:var(--green-d)}
.q-cta:hover{transform:translateY(-1px)}

/* ═══════════════════════════════════════
   EXÁMENES
   ═══════════════════════════════════════ */
.exam-subhdr{font-family:var(--fm);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--t3);margin:0 0 14px;display:flex;align-items:center;gap:10px;font-weight:600}
.exam-subhdr::after{content:'';flex:1;height:1px;background:var(--b1)}
.cycle{margin-bottom:16px;border-radius:16px;border:1px solid var(--b1);background:var(--s1);overflow:hidden;box-shadow:var(--shadow-sm);transition:border-color .2s}
.cycle:hover{border-color:var(--b2)}
.cycle-hdr{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--b1);cursor:pointer;user-select:none;transition:background .15s}
.cycle-hdr:hover{background:var(--s2)}
.cycle-info{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.cycle-name{font-family:var(--fd);font-size:14px;font-weight:600;color:var(--t1)}
.cycle-sub{font-family:var(--fm);font-size:11px;color:var(--t3);font-weight:500}
.cycle-tog{background:none;border:1px solid var(--b1);color:var(--t3);cursor:pointer;font-size:11px;padding:5px 8px;border-radius:6px;transition:all .25s var(--ease-out)}
.cycle.open .cycle-tog{transform:rotate(180deg);background:var(--s3);border-color:var(--b2);color:var(--t1)}
.cycle-grid{display:none;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px;animation:fadeUp .3s var(--ease-out) both}
.cycle.open .cycle-grid{display:grid}
.src-badge{font-family:var(--fm);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;padding:2px 9px;border-radius:4px;display:inline-flex;align-items:center;gap:4px;margin-bottom:8px;font-weight:600}
.src-cepre{background:var(--sy-d);color:var(--sy);border:1px solid var(--sy-g)}
.src-axioma{background:var(--blue-d);color:var(--blue);border:1px solid var(--blue-g)}
.src-proprio{background:var(--purple-d);color:var(--purple);border:1px solid var(--purple-g)}
.ecard{background:var(--s2);border:1px solid var(--b1);border-radius:13px;overflow:hidden;transition:all .25s var(--ease-out);animation:scaleIn .4s var(--ease-out) both;position:relative}
.ecard.available:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--b2);cursor:pointer}
.ecard.completed{border-color:var(--green-g)}
.ecard.seq-locked{opacity:.55}
.ecard-hdr{padding:14px 16px 12px;border-bottom:1px solid var(--b1);position:relative}
.ecard-name{font-family:var(--fd);font-size:13px;font-weight:600;color:var(--t1);line-height:1.35}
.ecard-sdot{position:absolute;bottom:14px;right:14px;width:7px;height:7px;border-radius:50%}
.st-av{background:var(--green);box-shadow:0 0 0 0 var(--green-g);animation:spulse 2.5s ease-in-out infinite}
.st-done{background:var(--blue)}
.st-lock{background:var(--t4)}
@keyframes spulse{0%,100%{box-shadow:0 0 0 0 var(--green-g)}50%{box-shadow:0 0 0 5px rgba(45,214,140,0)}}
.ecard-body{padding:12px 16px}
.ecard-specs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.ecard-sl{font-family:var(--fm);font-size:10px;color:var(--t3);letter-spacing:1px;text-transform:uppercase;margin-bottom:2px;font-weight:500}
.ecard-sv{font-family:var(--fm);font-size:12px;font-weight:700;color:var(--t1)}
.phases{display:flex;gap:4px;margin-bottom:12px}
.ph{flex:1;padding:5px 8px;border-radius:6px;text-align:center;font-family:var(--fm);font-size:10px;font-weight:700;letter-spacing:.5px}
.ph1{background:var(--blue-d);color:var(--blue);border:1px solid var(--blue-g)}
.ph2{background:var(--green-d);color:var(--green);border:1px solid var(--green-g)}
.ecta{width:100%;padding:10px;border-radius:8px;border:none;font-family:var(--fm);font-size:11px;letter-spacing:1px;font-weight:700;text-transform:uppercase;cursor:pointer;transition:all .22s var(--ease-out)}
/* Prod: ecta-start → redirect to Tutor LMS quiz start URL */
.ecta-start{background:linear-gradient(135deg,var(--purple-d),var(--blue-d));color:var(--t1);border:1px solid var(--purple-g)}
.ecta-start:hover{transform:translateY(-1px);box-shadow:0 4px 14px var(--purple-g)}
/* Prod: ecta-rev → redirect to result page with attempt_id */
.ecta-rev{background:var(--green-d);color:var(--green);border:1px solid var(--green-g)}
.ecta-rev:hover{transform:translateY(-1px)}
.ecta-lock{background:var(--s3);color:var(--t3);border:1px solid var(--b1);cursor:not-allowed;font-size:10px}
.eres-row{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--s1);border-radius:7px;margin-bottom:10px;border:1px solid var(--b1)}
.eres-sc{font-family:var(--fm);font-size:15px;font-weight:700}
.seq-hint{font-size:12px;color:var(--t3);text-align:center;padding:6px;font-family:var(--fm)}

/* ═══════════════════════════════════════
   FLASH CARDS — typography & readability fix
   ═══════════════════════════════════════ */
.fc-layout{display:grid;grid-template-columns:260px 1fr;gap:22px;align-items:start}
.fc-sidebar{background:var(--s1);border:1px solid var(--b1);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);position:sticky;top:72px}
.fc-sidebar-hdr{padding:18px 20px;border-bottom:1px solid var(--b1);background:var(--s2)}
.fc-sidebar-title{font-family:var(--fd);font-size:15px;font-weight:600;color:var(--t1);margin-bottom:3px}
/* FIX: subtitle visible */
.fc-sidebar-sub{font-family:var(--fm);font-size:12px;color:var(--t3);font-weight:400}
.fc-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-bottom:1px solid var(--b1)}
.fc-stat{padding:14px 12px;text-align:center;border-right:1px solid var(--b1)}
.fc-stat:last-child{border-right:none}
/* FIX: stat values bigger and visible */
.fc-stat-v{font-family:var(--fm);font-size:20px;font-weight:700;color:var(--t1)}
.fc-stat-l{font-family:var(--fm);font-size:11px;color:var(--t3);letter-spacing:1px;text-transform:uppercase;margin-top:3px;font-weight:500}
.fc-deck-list{max-height:320px;overflow-y:auto}
.fc-deck{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--b1);cursor:pointer;transition:background .15s}
.fc-deck:hover{background:var(--s2)}
.fc-deck.active{background:rgba(245,200,66,.1);border-right:3px solid var(--amber)}
.fc-deck:last-child{border-bottom:none}
.fc-deck-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.fc-deck-info{flex:1;min-width:0}
/* FIX: deck names visible */
.fc-deck-name{font-size:13px;color:var(--t1);font-weight:500;line-height:1.35;margin-bottom:2px}
.fc-deck-count{font-family:var(--fm);font-size:12px;color:var(--t3);font-weight:400}
.fc-deck-badge{font-family:var(--fm);font-size:10px;padding:2px 7px;border-radius:4px;flex-shrink:0;font-weight:600}
.fdb-new{background:var(--green-d);color:var(--green);border:1px solid var(--green-g)}
.fdb-rev{background:var(--sy-d);color:var(--sy);border:1px solid var(--sy-g)}
.fc-add-btn{width:100%;padding:13px;background:transparent;border:none;border-top:1px solid var(--b1);color:var(--purple);font-family:var(--fm);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s;letter-spacing:.5px}
.fc-add-btn:hover{background:var(--purple-d)}

/* Study area */
.fc-study-area{min-height:440px;display:flex;flex-direction:column;gap:20px}
.fc-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:60px 24px;background:var(--s1);border:1px solid var(--b1);border-radius:16px;box-shadow:var(--shadow-sm)}
.fc-empty-icon{font-size:48px;opacity:.35}
/* FIX: empty state text clearly visible */
.fc-empty-title{font-family:var(--fd);font-size:20px;color:var(--t1);font-weight:700}
.fc-empty-sub{font-size:14px;color:var(--t2);max-width:300px;line-height:1.75}
.fc-review-hdr{display:flex;align-items:center;justify-content:space-between;background:var(--s1);border:1px solid var(--b1);border-radius:12px;padding:14px 18px}
.fc-review-deck{font-family:var(--fd);font-size:15px;font-weight:600;color:var(--t1)}
.fc-review-progress{font-family:var(--fm);font-size:13px;color:var(--t3);font-weight:500}
.fc-progress-bar{height:4px;background:var(--s4);border-radius:2px;overflow:hidden;margin-top:8px}
.fc-progress-fill{height:100%;background:linear-gradient(90deg,var(--amber),var(--orange));border-radius:2px;transition:width .5s var(--ease-out)}
/* Card flip */
.fc-card-wrap{perspective:1200px;height:290px;cursor:pointer;animation:scaleIn .4s var(--ease-out) both}
.fc-card{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.4,0,.2,1)}
.fc-card.flipped{transform:rotateY(180deg)}
.fc-card-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:18px;border:1px solid var(--b2);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px;text-align:center;box-shadow:var(--shadow)}
.fc-card-front{background:linear-gradient(145deg,var(--s2),var(--s1))}
.fc-card-back{background:linear-gradient(145deg,var(--purple-d),var(--blue-d));border-color:var(--purple-g);transform:rotateY(180deg)}
.fc-card-area-tag{margin-bottom:14px}
/* FIX: Card question text clearly visible and appropriately sized */
.fc-card-q{font-family:var(--fd);font-size:20px;font-weight:600;color:var(--t1);line-height:1.55;max-width:480px}
/* FIX: hint text visible */
.fc-card-hint{font-family:var(--fm);font-size:12px;color:var(--t3);letter-spacing:1px;text-transform:uppercase;margin-top:18px;font-weight:500}
/* FIX: answer text clearly readable — bigger, better color */
.fc-card-a{font-size:15px;color:var(--t1);line-height:1.8;max-width:480px;font-weight:400}
.fc-card-a strong{color:var(--purple)}
/* LOTUS badge on card */
.lotus-card-badge{font-family:var(--fm);font-size:10px;padding:3px 9px;border-radius:4px;background:var(--purple-d);color:var(--purple);border:1px solid var(--purple-g);position:absolute;top:16px;right:16px;font-weight:600;letter-spacing:.5px}
/* Rating buttons */
.fc-actions{display:flex;gap:12px;justify-content:center}
.fc-action{flex:1;max-width:170px;padding:13px;border-radius:11px;border:none;font-family:var(--fm);font-size:13px;font-weight:700;letter-spacing:.5px;cursor:pointer;transition:all .22s var(--ease-out);text-transform:uppercase}
.fc-action.no{background:var(--red-d);color:var(--red);border:1px solid rgba(245,96,96,.3)}
.fc-action.no:hover{transform:translateY(-2px);box-shadow:0 6px 20px var(--red-d)}
.fc-action.yes{background:var(--green-d);color:var(--green);border:1px solid var(--green-g)}
.fc-action.yes:hover{transform:translateY(-2px);box-shadow:0 6px 20px var(--green-g)}
/* Session done */
.fc-session-done{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;text-align:center;padding:40px;background:var(--s1);border:1px solid var(--b1);border-radius:16px}
.fc-done-title{font-family:var(--fd);font-size:24px;font-weight:700;color:var(--t1)}
.fc-done-stats{display:flex;gap:28px;background:var(--s2);border:1px solid var(--b1);border-radius:14px;padding:22px 36px}
.fc-done-stat{text-align:center}
/* FIX: session stats visible */
.fc-done-val{font-family:var(--fm);font-size:30px;font-weight:700;margin-bottom:6px}
.fc-done-lbl{font-family:var(--fm);font-size:12px;color:var(--t3);letter-spacing:1px;text-transform:uppercase;font-weight:500}
.fc-restart-btn{padding:12px 28px;border-radius:10px;border:1px solid var(--purple-g);background:var(--purple-d);color:var(--purple);font-family:var(--fm);font-size:13px;font-weight:700;cursor:pointer;transition:all .22s var(--ease-out)}
.fc-restart-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px var(--purple-g)}

/* ═══════════════════════════════════════
   FC CREATE MODAL — image support
   ═══════════════════════════════════════ */
.fc-modal-overlay{
  position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.7);
  backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;
  animation:fadeIn .22s var(--ease-out) both;
}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.fc-modal-overlay.open{display:flex}
.fc-modal{
  background:var(--s1);border:1px solid var(--b2);border-radius:20px;
  width:100%;max-width:560px;box-shadow:var(--shadow-lg);
  animation:scaleIn .28s var(--ease-spring) both;
  overflow:hidden;
}
.fc-modal-hdr{
  padding:22px 24px 18px;border-bottom:1px solid var(--b1);
  display:flex;align-items:center;justify-content:space-between;
  background:linear-gradient(145deg,var(--s2),var(--s1));
}
.fc-modal-title{font-family:var(--fd);font-size:17px;font-weight:700;color:var(--t1)}
.fc-modal-close{
  width:32px;height:32px;border-radius:8px;background:var(--s3);border:1px solid var(--b1);
  color:var(--t2);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;
  transition:all .18s;line-height:1;
}
.fc-modal-close:hover{background:var(--rose-d);color:var(--rose);border-color:var(--rose-g)}
.fc-modal-body{padding:22px 24px;display:flex;flex-direction:column;gap:18px}
.fc-field{display:flex;flex-direction:column;gap:8px}
.fc-field-label{font-family:var(--fm);font-size:11px;color:var(--t3);letter-spacing:1px;text-transform:uppercase;font-weight:600}
.fc-field-ta{
  background:var(--s2);border:1px solid var(--b1);color:var(--t1);
  padding:11px 14px;border-radius:10px;font-size:14px;font-family:var(--fb);
  resize:vertical;outline:none;min-height:70px;line-height:1.65;
  transition:border-color .2s,box-shadow .2s;
}
.fc-field-ta:focus{border-color:var(--purple-g);box-shadow:0 0 0 3px rgba(180,120,245,.08)}
.fc-field-ta::placeholder{color:var(--t3)}
/* Image upload zone */
.fc-img-zone{
  border:2px dashed var(--b2);border-radius:12px;padding:18px;
  cursor:pointer;text-align:center;transition:all .22s var(--ease-out);
  background:var(--s2);position:relative;overflow:hidden;
}
.fc-img-zone:hover,.fc-img-zone.drag{border-color:var(--purple-g);background:var(--purple-d)}
.fc-img-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.fc-img-zone-icon{font-size:24px;margin-bottom:6px;display:block;opacity:.5}
.fc-img-zone-text{font-family:var(--fm);font-size:12px;color:var(--t3);font-weight:500}
.fc-img-zone-text span{color:var(--purple);font-weight:700}
.fc-img-preview{display:none;position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--b2)}
.fc-img-preview img{width:100%;max-height:160px;object-fit:contain;display:block;background:var(--s3)}
.fc-img-preview-rm{
  position:absolute;top:6px;right:6px;background:rgba(0,0,0,.7);color:white;
  border:none;border-radius:6px;padding:4px 8px;font-size:11px;cursor:pointer;font-family:var(--fm);
}
.fc-area-select{
  display:flex;gap:7px;flex-wrap:wrap;
}
.fc-area-opt{
  padding:6px 14px;border-radius:20px;border:1px solid var(--b1);background:transparent;
  font-family:var(--fm);font-size:11px;color:var(--t3);cursor:pointer;transition:all .18s;
  font-weight:500;letter-spacing:.3px;
}
.fc-area-opt:hover{background:var(--s3);color:var(--t2)}
.fc-area-opt.active{font-weight:700}
.fc-area-opt[data-a="nop"].active{background:var(--cyan-d);color:var(--cyan);border-color:var(--cyan-g)}
.fc-area-opt[data-a="alg"].active{background:var(--blue-d);color:var(--blue);border-color:var(--blue-g)}
.fc-area-opt[data-a="geo"].active{background:var(--purple-d);color:var(--purple);border-color:var(--purple-g)}
.fc-area-opt[data-a="tri"].active{background:var(--amber-d);color:var(--amber);border-color:var(--amber-g)}
.fc-area-opt[data-a="lec"].active{background:var(--green-d);color:var(--green);border-color:var(--green-g)}
.fc-modal-footer{
  padding:16px 24px;border-top:1px solid var(--b1);display:flex;gap:10px;justify-content:flex-end;
  background:var(--s2);
}
.fc-modal-cancel{
  padding:10px 20px;border-radius:9px;border:1px solid var(--b1);background:transparent;
  color:var(--t2);font-family:var(--fm);font-size:13px;font-weight:600;cursor:pointer;transition:all .18s;
}
.fc-modal-cancel:hover{background:var(--s3);color:var(--t1)}
.fc-modal-save{
  padding:10px 24px;border-radius:9px;border:1px solid var(--purple-g);background:var(--purple-d);
  color:var(--purple);font-family:var(--fm);font-size:13px;font-weight:700;cursor:pointer;transition:all .22s var(--ease-out);
}
.fc-modal-save:hover{transform:translateY(-1px);box-shadow:0 6px 20px var(--purple-g)}
/* Card image rendering */
.fc-card-img{max-width:100%;max-height:140px;border-radius:10px;margin:12px auto 0;display:block;border:1px solid var(--b2)}

/* ═══════════════════════════════════════
   LOTUS IA
   ═══════════════════════════════════════ */
#panel-lotus.active{display:flex;flex-direction:column;min-height:calc(100vh - 58px - 120px);padding:0;margin:-40px -28px -80px}
.lotus-plan-top{display:flex;align-items:center;justify-content:center;padding:22px 0 0;gap:8px}
.lotus-plan-badge{font-family:var(--fm);font-size:11px;letter-spacing:1px;text-transform:uppercase;padding:4px 12px;border-radius:20px;background:var(--blue-d);color:var(--blue);border:1px solid var(--blue-g);font-weight:600}
.lotus-plan-sep{color:var(--t4);font-size:11px}
.lotus-plan-model{font-family:var(--fm);font-size:12px;color:var(--t3)}
.lotus-welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 24px 36px;text-align:center}
.lotus-icon{font-size:36px;margin-bottom:12px;animation:lspin 12s linear infinite}
@keyframes lspin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
/* FIX: time string visible */
.lotus-time{font-family:var(--fm);font-size:13px;color:var(--t3);margin-bottom:8px;letter-spacing:1px;font-weight:500}
/* FIX: greeting clearly readable */
.lotus-greeting{font-family:var(--fd);font-size:34px;font-weight:700;color:var(--t1);line-height:1.15;margin-bottom:30px;max-width:560px}
.lotus-hero-wrap{width:100%;max-width:620px;margin-bottom:18px}
.lotus-hero-box{background:var(--s1);border:1px solid var(--b2);border-radius:18px;padding:18px 22px 14px;box-shadow:var(--shadow);transition:border-color .2s,box-shadow .2s}
.lotus-hero-box:focus-within{border-color:var(--rose-g);box-shadow:0 0 0 4px rgba(245,96,122,.08)}
.lotus-hero-ta{background:transparent;border:none;color:var(--t1);font-size:15px;font-family:var(--fb);resize:none;outline:none;width:100%;min-height:54px;max-height:120px;line-height:1.65}
.lotus-hero-ta::placeholder{color:var(--t3)}
.lotus-hero-footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px}
/* FIX: footer note visible */
.lotus-hero-note{font-family:var(--fm);font-size:12px;color:var(--t3);font-weight:400}
.lotus-hero-send{padding:9px 22px;border-radius:9px;border:none;background:var(--rose-d);color:var(--rose);border:1px solid var(--rose-g);font-family:var(--fm);font-size:12px;font-weight:700;cursor:pointer;letter-spacing:.5px;transition:all .22s var(--ease-out)}
.lotus-hero-send:hover{transform:translateY(-2px);box-shadow:0 6px 20px var(--rose-g)}
.lotus-chips-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;max-width:620px;margin-bottom:16px}
.lotus-chip{padding:7px 16px;border-radius:22px;background:var(--s1);border:1px solid var(--b2);font-size:13px;color:var(--t2);cursor:pointer;font-family:var(--fb);transition:all .18s;font-weight:400}
.lotus-chip:hover{background:var(--rose-d);color:var(--t1);border-color:var(--rose-g);transform:translateY(-1px)}
.lotus-chip-pro{position:relative}
.lotus-chip-pro::after{content:'PRO';position:absolute;top:-7px;right:-7px;font-size:8px;font-family:var(--fm);padding:1px 5px;border-radius:3px;background:var(--purple-d);color:var(--purple);border:1px solid var(--purple-g);font-weight:700}
/* FIX: no-mic note visible */
.lotus-no-mic{font-family:var(--fm);font-size:12px;color:var(--t3);margin-top:4px;font-weight:400}
/* Chat */
.lotus-chat-state{flex:1;display:none;flex-direction:column}
.lotus-chat-state.active{display:flex}
.lotus-chat-topbar{padding:14px 28px;border-bottom:1px solid var(--b1);background:var(--s1);display:flex;align-items:center;justify-content:space-between}
.lotus-chat-title{font-family:var(--fm);font-size:13px;font-weight:700;color:var(--t1);display:flex;align-items:center;gap:8px;letter-spacing:1px;text-transform:uppercase}
.lotus-chat-badge{font-family:var(--fm);font-size:10px;padding:2px 8px;border-radius:4px;background:var(--rose-d);color:var(--rose);border:1px solid var(--rose-g);font-weight:700}
.lotus-chat-back{background:none;border:1px solid var(--b1);border-radius:7px;padding:6px 14px;color:var(--t2);font-family:var(--fm);font-size:12px;cursor:pointer;transition:all .18s;font-weight:500}
.lotus-chat-back:hover{color:var(--t1);border-color:var(--b2);background:var(--s3)}
.lotus-msgs{flex:1;overflow-y:auto;padding:22px 32px;display:flex;flex-direction:column;gap:16px;max-height:calc(100vh - 58px - 210px)}
.lmsg{max-width:82%;animation:fadeUp .3s var(--ease-out) both;font-size:14px;line-height:1.75}
.lmsg.user{align-self:flex-end;background:var(--s3);border:1px solid var(--b2);border-radius:16px 16px 4px 16px;padding:13px 18px;color:var(--t1)}
.lmsg.bot{align-self:flex-start;background:var(--rose-d);border:1px solid var(--rose-g);border-radius:4px 16px 16px 16px;padding:14px 18px;color:var(--t1)}
.lmsg.bot .lmsg-lbl{font-family:var(--fm);font-size:11px;color:var(--rose);letter-spacing:1px;text-transform:uppercase;margin-bottom:8px;display:flex;align-items:center;gap:6px;font-weight:700}
.lcache{font-family:var(--fm);font-size:9px;padding:2px 6px;border-radius:3px;background:var(--green-d);color:var(--green);border:1px solid var(--green-g);font-weight:700}
.lfc-created{background:var(--amber-d);border:1px solid var(--amber-g);border-radius:10px;padding:11px 14px;margin-top:12px;font-family:var(--fm);font-size:13px;color:var(--amber);display:flex;align-items:center;gap:8px;cursor:pointer;transition:background .15s;font-weight:600}
.lfc-created:hover{background:rgba(245,200,66,.2)}
.lotus-typing{display:flex;gap:5px;align-items:center;padding:4px 0}
.lotus-typing span{width:7px;height:7px;border-radius:50%;background:var(--rose);animation:tdot 1.2s ease-in-out infinite}
.lotus-typing span:nth-child(2){animation-delay:.2s}.lotus-typing span:nth-child(3){animation-delay:.4s}
@keyframes tdot{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}
.lotus-chat-input-row{padding:16px 28px;border-top:1px solid var(--b1);background:var(--s1);display:flex;gap:10px;align-items:flex-end}
.lotus-chat-ta{flex:1;background:var(--s3);border:1px solid var(--b1);color:var(--t1);padding:11px 15px;border-radius:11px;font-size:14px;font-family:var(--fb);outline:none;transition:border-color .2s,box-shadow .2s;resize:none;max-height:100px;line-height:1.6}
.lotus-chat-ta::placeholder{color:var(--t3);font-size:13px}
.lotus-chat-ta:focus{border-color:var(--rose-g);box-shadow:0 0 0 3px rgba(245,96,122,.08)}
.lotus-chat-send{flex-shrink:0;padding:11px 20px;border-radius:9px;border:1px solid var(--rose-g);background:var(--rose-d);color:var(--rose);font-family:var(--fm);font-size:13px;font-weight:700;cursor:pointer;transition:all .22s var(--ease-out)}
.lotus-chat-send:hover{transform:translateY(-2px);box-shadow:0 6px 20px var(--rose-g)}
.lotus-chat-send:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}

/* ═══════════════════════════════════════
   NOVEDADES
   ═══════════════════════════════════════ */
.nov-nav{display:flex;gap:2px;margin-bottom:30px;background:var(--s1);border:1px solid var(--b1);border-radius:11px;padding:3px;width:fit-content}
.nit{padding:7px 18px;border-radius:8px;border:none;background:transparent;color:var(--t2);font-family:var(--fb);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s var(--ease-out);white-space:nowrap}
.nit:hover{color:var(--t1);background:var(--s3)}
.nit.active{color:var(--t1);background:var(--s4);font-weight:600;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.nit-pan{display:none;animation:panelIn .32s var(--ease-out) both}
.nit-pan.active{display:block}
.nov-grid{display:grid;gap:12px}
.nov-card{background:var(--s1);border:1px solid var(--b1);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);transition:all .25s var(--ease-out)}
.nov-card:hover{border-color:var(--b2);transform:translateY(-2px);box-shadow:var(--shadow)}
.nov-card-h{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;cursor:pointer;user-select:none;transition:background .15s}
.nov-card-h:hover{background:var(--s2)}
.nov-card-hl{display:flex;align-items:center;gap:14px}
.nov-ico{width:38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;border:1px solid var(--b1);background:var(--s2)}
.nov-card-title{font-family:var(--fd);font-size:15px;font-weight:600;color:var(--t1)}
.nov-card-sub{font-size:13px;color:var(--t3);margin-top:3px;font-weight:400}
.nov-chev{color:var(--t3);font-size:14px;transition:transform .28s var(--ease-out);flex-shrink:0}
.nov-card.open .nov-chev{transform:rotate(180deg)}
.nov-card-body{display:none;padding:18px 22px 22px;border-top:1px solid var(--b1);animation:fadeUp .28s var(--ease-out) both}
.nov-card.open .nov-card-body{display:block}
.faq-q{font-size:14px;font-weight:600;color:var(--t1);margin-bottom:9px}
.faq-a{font-size:14px;color:var(--t2);line-height:1.8;max-width:76ch;margin-bottom:16px}
.faq-a:last-child{margin-bottom:0}
.upd-item{padding:18px 22px;border-bottom:1px solid var(--b1);display:flex;gap:18px}
.upd-item:last-child{border-bottom:none}
.upd-date{font-family:var(--fm);font-size:11px;color:var(--t3);letter-spacing:1px;white-space:nowrap;margin-top:3px;min-width:80px;font-weight:500}
.upd-title{font-size:14px;font-weight:600;color:var(--t1);margin-bottom:5px}
.upd-desc{font-size:13px;color:var(--t2);line-height:1.7}
.upd-badge{font-family:var(--fm);font-size:10px;padding:2px 8px;border-radius:4px;display:inline-block;margin-bottom:7px;font-weight:700}
.ub-fix{background:var(--blue-d);color:var(--blue);border:1px solid var(--blue-g)}
.ub-new{background:var(--green-d);color:var(--green);border:1px solid var(--green-g)}

/* ═══════════════════════════════════════
   MISC
   ═══════════════════════════════════════ */
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--s4);border-radius:4px}
::-webkit-scrollbar-thumb:hover{background:var(--t4)}
.ripple{position:absolute;border-radius:50%;width:48px;height:48px;margin:-24px;background:rgba(255,255,255,.12);animation:rexp .55s ease-out forwards;pointer-events:none;z-index:10}
@keyframes rexp{to{transform:scale(6);opacity:0}}
.mbn{display:none;position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--topbar);backdrop-filter:blur(32px) saturate(2.4);border-top:1px solid var(--b1)}
.mbn-inner{display:flex;align-items:stretch;height:58px;overflow-x:auto}
.mbn-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:transparent;border:none;color:var(--t3);cursor:pointer;min-height:58px;padding:0 6px;transition:color .18s;position:relative;-webkit-tap-highlight-color:transparent;min-width:52px;font-size:14px}
.mbn-btn.active{color:var(--t1)}
.mbn-btn.active::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:26px;height:2px;border-radius:0 0 4px 4px;background:var(--cyan);box-shadow:0 2px 10px var(--cyan-g)}
.mbn-ico{font-size:15px;line-height:1}
.mbn-lbl{font-family:var(--fm);font-size:9px;letter-spacing:.3px;white-space:nowrap;margin-top:1px}

/* Responsive */
@media(max-width:960px){
  .metrics-row{grid-template-columns:1fr}
  .banco-layout{grid-template-columns:1fr}.banco-side{position:static}
  .fc-layout{grid-template-columns:1fr}
  .cycle-grid{grid-template-columns:1fr!important}
  #panel-dashboard.active{grid-template-columns:var(--sc) 1fr!important}
  #panel-dashboard.active .s-lbl,#panel-dashboard.active .s-ey{opacity:0;max-width:0;pointer-events:none}
  #panel-dashboard.active .si{padding:10px 0;justify-content:center;border-left-color:transparent!important}
  #panel-dashboard.active .si.active{background:var(--cyan-d)}
  .section-tabs{display:none}
  .mbn{display:block}
  .main-wrap,.dash-content{padding-bottom:78px!important}
}
@media(max-width:640px){
  .topbar{grid-template-columns:1fr 1fr;gap:8px}
  .kpi-grid{grid-template-columns:repeat(2,1fr)}
  .rings-grid{grid-template-columns:repeat(3,1fr)!important}
  .score-row{flex-wrap:wrap;padding:16px}.sc-num{font-size:48px}
  .sec-hdr{flex-direction:column;align-items:flex-start}.sec-stats{width:100%}
  .lotus-greeting{font-size:26px}
  .lotus-msgs{padding:14px}.lotus-chat-input-row{padding:12px 16px}
  .fc-done-stats{gap:16px;padding:18px 20px}
}
