/* ── PALETTE ─────────────────────────────────────────────────── */
:root{
  --sol-base3:#fdf6e3;--sol-base2:#eee8d5;--sol-base1:#93a1a1;
  --sol-base00:#586e75;--sol-base01:#073642;
  --sol-yellow:#b58900;--sol-red:#dc322f;--sol-blue:#268bd2;--sol-green:#859900;
}
[data-theme="solarized"]{
  --bg:var(--sol-base3);--card:var(--sol-base2);--border:#d0c9b5;
  --text:var(--sol-base01);--text2:var(--sol-base1);
  --fill:#e8e1ce;--fill2:#ddd6c3;
  --accent:var(--sol-blue);--red:var(--sol-red);--green:var(--sol-green);--yellow:var(--sol-yellow);
  --hbg:rgba(253,246,227,.96);--shadow:rgba(7,54,66,.12);
}
[data-theme="light"]{
  --bg:#f2f2f7;--card:#fff;--border:#e5e5ea;--text:#1c1c1e;--text2:#8e8e93;
  --fill:#f5f5f7;--fill2:#e5e5ea;
  --accent:#007AFF;--red:#ff3b30;--green:#34c759;--yellow:#ff9f0a;
  --hbg:rgba(255,255,255,.96);--shadow:rgba(0,0,0,.08);
}
[data-theme="dark"]{
  --bg:#000;--card:#1c1c1e;--border:#38383a;--text:#fff;--text2:#636366;
  --fill:#2c2c2e;--fill2:#3a3a3c;
  --accent:#0A84FF;--red:#ff453a;--green:#30d158;--yellow:#ffd60a;
  --hbg:rgba(28,28,30,.96);--shadow:rgba(0,0,0,.5);
}
[data-theme="system"]{
  --bg:#f2f2f7;--card:#fff;--border:#e5e5ea;--text:#1c1c1e;--text2:#8e8e93;
  --fill:#f5f5f7;--fill2:#e5e5ea;
  --accent:#007AFF;--red:#ff3b30;--green:#34c759;--yellow:#ff9f0a;
  --hbg:rgba(255,255,255,.96);--shadow:rgba(0,0,0,.08);
}
@media(prefers-color-scheme:dark){[data-theme="system"]{
  --bg:#000;--card:#1c1c1e;--border:#38383a;--text:#fff;--text2:#636366;
  --fill:#2c2c2e;--fill2:#3a3a3c;
  --accent:#0A84FF;--red:#ff453a;--green:#30d158;--yellow:#ffd60a;
  --hbg:rgba(28,28,30,.96);--shadow:rgba(0,0,0,.5);
}}

/* ── BASE ────────────────────────────────────────────────────── */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg);}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;
  background:var(--bg);color:var(--text);
  margin:0 auto;max-width:850px;
  padding:calc(env(safe-area-inset-top)) 10px calc(85px + env(safe-area-inset-bottom)) 10px;
  -webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch;
}
body.quiz-active{padding-top:calc(env(safe-area-inset-top) + 52px);}
body.quiz-active:not(:has(.screen.show)) #quiz{padding:0 2px;}
body.screen-open{overflow:hidden;position:fixed;width:100%;left:0;right:0;}

/* Range slider E-INK dots */
body.e-ink .wiz-count-expand input[type=range]{
  background:repeating-linear-gradient(to right,#000 0,#000 2px,white 2px,white 10px) !important;
  border:1px solid #000 !important;height:6px !important;border-radius:0 !important;
}
body.e-ink .wiz-count-expand input[type=range]::-webkit-slider-thumb{
  border:2px solid #000 !important;background:white !important;
}

/* E-INK */
body.e-ink{--bg:white;--card:white;--border:#000;--text:#000;--text2:#000;--fill:white;--fill2:white;--accent:#000;--red:#000;--green:#000;--yellow:#000;--hbg:white;--shadow:none;}
body.e-ink, body.e-ink *{color:#000 !important;background:white !important;border-color:#000 !important;box-shadow:none !important;}
html:has(body.e-ink){background:white !important;}
body.e-ink .question, body.e-ink .fc-card, body.e-ink .answer-options li, body.e-ink .fc-opts li {border:1px solid #000!important;background:white!important;border-radius:0!important;color:#000!important;}
body.e-ink .answer-options li.correct, body.e-ink .fc-opts li.correct {border:3px solid #000!important;font-weight:800!important;color:#000!important;}
body.e-ink .answer-options li.incorrect, body.e-ink .fc-opts li.incorrect {border:2px dashed #000!important;color:#000!important;}
body.e-ink .is-marked{border:4px double #000!important;}

/* Fixes extra E-INK */
body.e-ink *:not(.sel):not(.selected):not(.correct):not(.is-marked) { box-shadow:none !important; }
body.e-ink .wiz-grid-opt.sel, body.e-ink .theme-option.selected { box-shadow: inset 0 0 0 2px #000 !important; }
body.e-ink .wiz-opt.sel { font-weight: 800 !important; }
body.e-ink .wiz-check { opacity: 0 !important; }
body.e-ink .wiz-opt.sel .wiz-check, body.e-ink .wiz-grid-opt.sel .wiz-check { opacity: 1 !important; color: #000 !important; font-weight: 900 !important; }
body.e-ink .btn-primary, body.e-ink .btn-ghost { border: 2px solid #000 !important; background-color: white !important; }
body.e-ink .t-sl { background-color: white !important; border: 2px solid #000 !important; }
body.e-ink .t-sl:before { background-color: #000 !important; }
body.e-ink #score-pill, body.e-ink #score-pill.idle, body.e-ink #fab-bar { opacity: 1 !important; border: 2px solid #000 !important; }
body.e-ink .sp-sep, body.e-ink .fab-sep { opacity: 1 !important; background-color: #000 !important; }
body.e-ink .srs-badge, body.e-ink .q-tag, body.e-ink .wiz-crumb { border: 1px solid #000 !important; }
body.e-ink #year-wm.show { opacity: 1 !important; color: #000 !important; }
body.e-ink svg { stroke: #000 !important; }
body.e-ink .modal-sheet { border: 4px solid #000 !important; }
body.e-ink .stat-pill.fail, body.e-ink .stat-pill.srs-due { border: 2px dashed #000 !important; }

/* ── SCORE PILL ──────────────────────────────────────────────── */
#score-pill{
  position:fixed;top:calc(env(safe-area-inset-top) + 6px);left:10px;
  display:none;align-items:center;gap:5px;
  background:var(--hbg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(128,128,128,.15);border-radius:14px;
  padding:5px 10px;z-index:1150; 
  opacity:.88;transition:opacity .6s ease;
}
#score-pill.show{display:flex;}
#score-pill.idle{opacity:.2;}
/* En escritorio, hover siempre muestra la píldora completa */
@media(hover:hover){
  #score-pill.idle:hover{opacity:.88;}
  /* En escritorio no aplicamos idle automáticamente: solo vía scroll */
}
.sp-num{font-size:13px;font-weight:800;min-width:16px;text-align:center;cursor:pointer;touch-action:manipulation;}
.sp-sep{width:1px;height:11px;background:var(--border);opacity:.5;}

/* ── QUIZ HOME BTN ───────────────────────────────────────────── */
#quiz-home-btn{
  position:fixed;top:calc(env(safe-area-inset-top) + 6px);right:10px;
  display:none;align-items:center;gap:5px;
  background:var(--hbg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(128,128,128,.15);border-radius:14px;
  padding:5px 12px;z-index:1150;
  font-size:13px;font-weight:700;color:var(--text2);
  cursor:pointer;touch-action:manipulation;
  opacity:.88;transition:opacity .6s ease;
}
#quiz-home-btn.show{display:flex;}
@media print{#quiz-home-btn{display:none!important;}}
#year-wm{
  position:fixed;top:calc(env(safe-area-inset-top) + 52px);right:10px;
  font-size:2.5rem;font-weight:900;color:var(--text);
  opacity:0;pointer-events:none;user-select:none;
  z-index:900;text-align:right;line-height:1;transition:opacity .3s;
}
#year-wm.show{opacity:.055;}
/* In flashcard mode for a single year, show left of quiz-home-btn (top bar, not column watermark) */
#year-wm.fc-year-mode{
  position:fixed;top:calc(env(safe-area-inset-top) + 6px);
  right:calc(10px + 60px + 8px);
  font-size:13px;font-weight:700;color:var(--text2);
  opacity:0;pointer-events:none;user-select:none;
  z-index:1150;text-align:right;line-height:1;transition:opacity .3s;
  background:var(--hbg);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(128,128,128,.15);border-radius:14px;
  padding:5px 10px;
}
#year-wm.fc-year-mode.show{opacity:.88;}
@media (max-width: 768px) {
  #year-wm:not(.fc-year-mode) { display: none !important; }
}

/* ── FAB BAR ─────────────────────────────────────────────────── */
#fab-bar{
  position:fixed;bottom:calc(8px + env(safe-area-inset-bottom));
  right:8px; left:auto; transform:translateZ(0);
  display:flex;align-items:center;gap:0;z-index:1200;
  background:var(--hbg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(128,128,128,.18);border-radius:16px;
  padding:3px 5px;opacity:.5;
}
#fab-bar:hover,#fab-bar:focus-within{opacity:1;}
/* Botones secundarios: colapso total - no usan display sino width+overflow+padding */
#fab-bar .fab-btn-secondary,
#fab-bar .fab-sep{
  max-width:0 !important;overflow:hidden !important;
  opacity:0;padding:0 !important;margin:0 !important;pointer-events:none;
}
/* Escritorio: revelar en hover del bar */
@media(hover:hover){
  #fab-bar:hover .fab-btn-secondary{
    max-width:44px !important;opacity:1;pointer-events:auto;
  }
  #fab-bar:hover .fab-sep{
    max-width:8px !important;opacity:.5;
  }
}
/* Móvil: revelar con clase fab-expanded */
@media(hover:none){
  #fab-bar.fab-expanded .fab-btn-secondary{
    max-width:44px !important;opacity:1;pointer-events:auto;
  }
  #fab-bar.fab-expanded .fab-sep{
    max-width:8px !important;opacity:.5;
  }
}
.fab-btn{
  width:36px;height:36px;border-radius:10px;background:transparent;border:none;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  color:var(--text2);padding:0;touch-action:manipulation;flex-shrink:0;
}
.fab-btn svg{width:18px;height:18px;}
.fab-btn:active{opacity:.45;}
.fab-sep{width:1px;height:20px;background:var(--border);flex-shrink:0;}

/* ── SCREENS ─────────────────────────────────────────────────── */
.screen{
  display:none;position:fixed;inset:0;z-index:1100;
  background:var(--bg);overflow-y:auto;overflow-x:hidden;
  padding-bottom:calc(20px + env(safe-area-inset-bottom));
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
}
#menu-screen { z-index: 1120; }
.screen.show{display:block;}
.screen-nav{
  position:sticky;top:0;background:var(--hbg);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  padding:calc(env(safe-area-inset-top) + 8px) 14px 8px;
  display:flex;align-items:center;justify-content:space-between;z-index:10;gap:8px;
}
.screen-nav h2{font-size:16px;font-weight:700;margin:0;flex:1;text-align:center;}
.nav-back,.nav-action{
  background:none;border:none;color:var(--accent);
  font-size:15px;font-weight:600;cursor:pointer;padding:4px 0;
  white-space:nowrap;min-width:50px;touch-action:manipulation;
}
.nav-action{text-align:right;}
.screen-body{padding:10px 12px;display:flex;flex-direction:column;gap:8px;}

/* ── PRINT PILLS ─────────────────────────────────────────────── */
.print-pill{
  padding:7px 14px;border-radius:20px;border:1px solid var(--border);
  background:var(--fill);color:var(--text2);font-size:13px;font-weight:600;
  cursor:pointer;touch-action:manipulation;
}
.print-pill.sel{background:var(--accent);color:#fff;border-color:var(--accent);}
.print-pill:active{opacity:.7;}
body.e-ink .print-pill{border:1px solid #000!important;background:white!important;color:#000!important;}
body.e-ink .print-pill.sel{background:#000!important;color:white!important;}

/* ── MENU ─────────────────────────────────── */
.menu-section{margin-bottom:18px;}
.menu-section-title{font-size:11px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px;padding:0 2px;}
.mrow{
  display:flex;align-items:center;padding:13px 14px;background:var(--card);
  cursor:pointer;color:var(--text);border-bottom:1px solid var(--border);
  touch-action:manipulation;
}
.mrow:active{opacity:.55;}
.mrow-text{flex:1;}
.mrow-label{font-size:15px;font-weight:500;}
.mrow-sub{font-size:12px;color:var(--text2);margin-top:1px;}
.mrow-right{color:var(--text2);font-size:15px;}
.mrow-destructive .mrow-label{color:var(--red);}
.mrow-group{border-radius:12px;overflow:hidden;border:1px solid var(--border);margin-bottom:8px;}
.mrow-group .mrow:last-child{border-bottom:none;}

/* ── FORMS / BUTTONS ─────────────────────────────────────────── */
.form-field{margin-top:8px;}
.form-field label{display:block;font-size:10px;font-weight:700;color:var(--text2);margin-bottom:3px;text-transform:uppercase;letter-spacing:.05em;}
.form-field textarea, .form-field select{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:10px;font-size:15px;background:var(--fill);color:var(--text);font-family:inherit;margin-bottom:8px;}
.form-field select{-webkit-appearance:none; appearance:none;}
.form-field textarea{resize:vertical;min-height:80px;}
.btn-primary{width:100%;padding:13px;border-radius:12px;border:none;background:var(--accent);color:#fff;font-size:16px;font-weight:600;cursor:pointer;margin-top:12px;font-family:inherit;touch-action:manipulation;}
.btn-ghost{width:100%;padding:11px;border-radius:12px;border:1px solid var(--border);background:transparent;color:var(--text2);font-size:15px;font-weight:500;cursor:pointer;margin-top:6px;font-family:inherit;touch-action:manipulation;}

/* Botones de sesión en curso suaves y pequeños */
.btn-session-continue {
  background: rgba(133, 153, 0, 0.1);
  color: var(--green);
  border: 1px solid rgba(133, 153, 0, 0.3);
  padding: 8px 12px;
  font-size: 13.5px;
  border-radius: 10px;
  font-weight: 700;
  cursor: pointer;
  touch-action: manipulation;
  margin-top: 0;
}
.btn-session-delete {
  background: rgba(220, 50, 47, 0.08);
  color: var(--red);
  border: 1px solid rgba(220, 50, 47, 0.25);
  padding: 8px 12px;
  font-size: 13.5px;
  border-radius: 10px;
  font-weight: 700;
  cursor: pointer;
  touch-action: manipulation;
  margin-top: 0;
}
body.e-ink .btn-session-continue, body.e-ink .btn-session-delete {
  background: white !important;
  color: black !important;
  border: 2px solid black !important;
}
body.e-ink .btn-session-delete {
  border: 2px dashed black !important;
}

.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--border);}
.toggle-row:last-of-type{border-bottom:none;}
.toggle-label{font-size:15px;padding-right:12px;line-height:1.3;}
.t-sw{position:relative;width:51px;height:31px;flex-shrink:0;}
.t-sw input{opacity:0;width:0;height:0;}
.t-sl{position:absolute;inset:0;background:#ccc;border-radius:31px;cursor:pointer;}
.t-sl:before{content:'';position:absolute;height:25px;width:25px;left:3px;bottom:3px;background:#fff;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,.3);transition:transform .15s;}
.t-sw input:checked+.t-sl{background:var(--green);}
.t-sw input:checked+.t-sl:before{transform:translateX(20px);}
.theme-options{display:flex;gap:7px;flex-wrap:wrap;}
.theme-option{flex:1;min-width:60px;padding:8px 4px;border-radius:10px;border:2px solid var(--border);background:var(--fill);text-align:center;cursor:pointer;font-size:12px;font-weight:600;color:var(--text);touch-action:manipulation;}
.theme-option.selected{border-color:var(--accent);color:var(--accent);}
.setting-card{background:var(--card);border-radius:12px;border:1px solid var(--border);padding:12px 14px;margin-bottom:6px;}
.setting-card-title{font-size:10px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;}

/* ── WIZARD ──────────────────────────────────────────────────── */
#wizard-area{padding:calc(env(safe-area-inset-top) + 16px) 0 20px;}
.wiz-brand{text-align:center;padding:24px 14px 28px;}
.wiz-brand-title{font-size:24px;font-weight:800;letter-spacing:-.02em;margin-bottom:5px;}
.wiz-nav{display:flex;align-items:center;gap:6px;padding:0 14px 10px;}
.wiz-back-btn{background:none;border:none;color:var(--accent);font-size:15px;font-weight:600;cursor:pointer;padding:4px 0;flex-shrink:0;touch-action:manipulation;}
.wiz-home-btn{background:none;border:none;color:var(--text2);font-size:13px;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:6px;border:1px solid var(--border);touch-action:manipulation;margin-left:auto;}
.wiz-step-label{font-size:12px;font-weight:700;color:var(--text2);}
.wiz-section{padding:0 14px;margin-bottom:14px;}
.wiz-section-title{font-size:11px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px;padding:0 2px;}

/* Standard Wizard Options */
.wiz-opts{background:var(--card);border-radius:12px;border:1px solid var(--border);overflow:hidden;}
.wiz-opt{
  display:flex;align-items:center;padding:13px 14px;
  border-bottom:1px solid var(--border);cursor:pointer;touch-action:manipulation;
}
.wiz-opt:last-child{border-bottom:none;}
.wiz-opt:active{background:var(--fill);}
.wiz-opt-text{flex:1;}
.wiz-opt-label{font-size:15px;font-weight:500;color:var(--text);}
.wiz-check{color:var(--accent);font-size:17px;font-weight:700;opacity:0;flex-shrink:0;margin-left:8px;width:18px;text-align:center;}
.wiz-opt.sel .wiz-check{opacity:1;}

/* Grid Wizard Options (Años y Categorías y Borrado) */
.wiz-grid-opts{display:flex;flex-wrap:wrap;gap:6px;padding:2px 0;}
.wiz-grid-opt{
  background:var(--card);border:1px solid var(--border);
  border-radius:8px;padding:6px 6px;text-align:center;
  cursor:pointer;flex:1 1 calc(25% - 6px);min-width:60px;
  touch-action:manipulation;display:flex;flex-direction:column;
  align-items:center;justify-content:center;position:relative;
}
/* Categorías: ajustar al texto, no forzar cuadrado */
.wiz-grid-opts.cats .wiz-grid-opt{flex:1 1 auto;min-width:80px;max-width:none;padding:5px 10px;}
.wiz-grid-opt.full-row{flex:1 1 100%;max-width:100%;}
.wiz-grid-opt.sel{background:rgba(38,139,210,.10);border-color:var(--accent);}
.wiz-grid-opt .wg-title{font-size:12px;font-weight:700;color:var(--text);line-height:1.2;margin-bottom:1px;}
.wiz-grid-opt.sel .wg-title{color:var(--accent);}
.wiz-grid-opt .wg-sub{font-size:10px;color:var(--text2);font-weight:600;}
.wiz-grid-opt .wiz-check { position: absolute; top: 3px; right: 4px; font-size: 11px; }

/* Range slider */
.wiz-count-expand{padding:8px 14px 12px;background:var(--fill);border-top:1px solid var(--border);display:flex;align-items:center;gap:10px;}
.wiz-count-expand input[type=range]{flex:1;-webkit-appearance:none;height:3px;border-radius:3px;background:var(--fill2);outline:none;cursor:pointer;}
.wiz-count-expand input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--accent);cursor:pointer;}
.wiz-count-val{font-size:16px;font-weight:800;color:var(--accent);min-width:26px;text-align:right;}
.wiz-count-lbl{font-size:12px;font-weight:600;color:var(--text2);white-space:nowrap;}
.wiz-crumbs{display:flex;flex-wrap:wrap;gap:4px;padding:0 14px 10px;}
.wiz-crumb{font-size:11px;font-weight:600;color:var(--text2);background:var(--fill2);padding:2px 8px;border-radius:5px;}

/* ── QUESTIONS ───────────────────────────────────────────────── */
.question{
  background:var(--card);border-radius:13px;padding:12px;margin-bottom:11px;
  border:1px solid var(--border);position:relative;scroll-margin-top:16px;
  /* Rendimiento masivo para listas largas: */
  content-visibility: auto;
  contain-intrinsic-size: auto 150px;
}
.question.is-marked{border-color:var(--accent);border-width:2px;}
.question.last-answered{box-shadow:0 0 0 2px var(--text2);}
.q-header{display:flex;align-items:center;margin-bottom:7px;gap:4px;flex-wrap:wrap;}
.q-number{
  color:var(--text2);font-size:.7em;font-weight:700;
  background:var(--fill);padding:2px 7px;border-radius:5px;
  cursor:pointer;border:1px solid var(--border);user-select:none;
  white-space:nowrap;flex-shrink:0;touch-action:manipulation;
}
.q-number:active{background:var(--fill2);}
.q-tag{font-size:.54rem;text-transform:uppercase;font-weight:800;padding:2px 5px;border-radius:4px;border:1px solid transparent;white-space:nowrap;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;max-width:140px;}
.q-tag-main{color:var(--text);background:var(--fill2);}
.q-tag-sub{color:var(--text2);background:var(--fill);font-weight:600;text-transform:none;}
.srs-badge{
  font-size:.54rem;font-weight:800;padding:2px 5px;border-radius:8px;
  border:1px solid transparent;white-space:nowrap;flex-shrink:0;
  margin-left:auto;
}
.srs-new{background:rgba(100,100,100,.1);color:var(--text2);}
.srs-due{background:rgba(220,50,47,.18);color:var(--red);}
.srs-learning{background:rgba(181,137,0,.2);color:var(--yellow);}
.srs-review{background:rgba(133,153,0,.2);color:var(--green);}
.srs-mature{background:rgba(38,139,210,.18);color:var(--accent);}
.q-text{font-weight:700;font-size:15px;line-height:1.4;margin-bottom:2px;}
.answer-options{list-style:none;padding:0;margin:9px 0 2px;}
.answer-options li{
  border:1px solid var(--border);padding:9px 11px;margin-bottom:5px;
  border-radius:9px;cursor:pointer;display:flex;align-items:flex-start;
  background:var(--fill);color:var(--text);user-select:none;font-size:14px;
  touch-action:manipulation;
}
.answer-options li:active:not(.correct):not(.incorrect){background:var(--fill2);}
.answer-options li strong{min-width:20px;margin-right:7px;flex-shrink:0;color:var(--text2);}
.answered-blocked li{cursor:default!important;}
.correct{background:rgba(133,153,0,.18)!important;border-color:var(--green)!important;}
.incorrect{background:rgba(220,50,47,.13)!important;border-color:var(--red)!important;}
[data-theme="light"] .correct,[data-theme="system"] .correct{background:rgba(52,199,89,.13)!important;border-color:#34c759!important;}
[data-theme="light"] .incorrect,[data-theme="system"] .incorrect{background:rgba(255,59,48,.1)!important;border-color:#ff3b30!important;}
[data-theme="dark"] .correct{background:rgba(48,209,88,.13)!important;border-color:#30d158!important;}
[data-theme="dark"] .incorrect{background:rgba(255,69,58,.12)!important;border-color:#ff453a!important;}
.filter-chip{
  display:inline-flex;align-items:center;gap:6px;background:var(--fill2);
  border-radius:8px;padding:4px 10px;font-size:12px;font-weight:600;
  color:var(--text2);margin-bottom:10px;cursor:pointer;border:1px solid var(--border);
  touch-action:manipulation;
}

/* ── SRS ─────────────────────────────────────────────────────── */
.srs-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:10px;}
.srs-stat-card{background:var(--card);border:1px solid var(--border);border-radius:11px;padding:6px 2px;text-align:center;}
.srs-stat-card.full-row{grid-column:span 4;padding:8px 4px;}
.srs-stat-val{font-size:1.05rem;font-weight:800;display:block;margin-bottom:1px;}
.srs-stat-label{font-size:.50rem;color:var(--text2);font-weight:700;text-transform:uppercase;letter-spacing:.04em;line-height:1.2;}
@media(min-width:600px){.srs-stat-label{font-size:.6rem;}.srs-stat-val{font-size:1.2rem;}}
.srs-due-val{color:var(--red);}
.srs-learning-val{color:var(--yellow);}
.srs-review-val{color:var(--green);}
.srs-mature-val{color:var(--accent);}
.srs-new-val{color:var(--text2);}
.srs-filters{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:10px;}

/* ── FLASHCARD ───────────────────────────────────────────────── */
/* Screen sin nav-bar: paddding-top para que fc-prog-row quede bajo score-pill e Inicio */
.fc-screen-body{
  padding:calc(env(safe-area-inset-top) + 52px) 12px 20px !important;
}
.fc-prog-row{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.fc-prog-bg{flex:1;height:4px;background:var(--fill2);border-radius:2px;overflow:hidden;}
.fc-prog{height:100%;background:var(--accent);border-radius:2px;transition:width .25s;}
.fc-label{font-size:12px;font-weight:700;color:var(--text2);white-space:nowrap;}
.fc-nav-arrow{
  width:30px;height:30px;border-radius:8px;background:transparent;border:none;
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  color:var(--text2);padding:0;touch-action:manipulation;flex-shrink:0;
  /* Siempre ocupa espacio para evitar layout shifts */
  visibility:hidden;
  transition:opacity .15s;
}
.fc-nav-arrow.show{visibility:visible;}
/* La flecha izquierda de "atrás" se muestra directamente cuando idx>0 */
.fc-nav-arrow.back-visible{visibility:visible;}
.fc-nav-arrow:active{opacity:.4;}
.fc-nav-arrow svg{width:16px;height:16px;}
.fc-kbd-hint{
  font-size:11px;color:var(--text2);text-align:center;
  margin-top:6px;opacity:.5;user-select:none;
  display:none;
}
.fc-swipe-hint{
  font-size:11px;color:var(--text2);text-align:center;
  margin-top:6px;opacity:.45;user-select:none;
  display:none;
}
/* Solo mostrar el hint correcto por dispositivo cuando tenga clase .show */
@media(hover:hover){
  .fc-kbd-hint.show{display:block;}
}
@media(hover:none){
  .fc-swipe-hint.show{display:block;}
}
.fc-card{background:var(--card);border-radius:15px;padding:16px 14px;border:1px solid var(--border);margin-bottom:10px;
  user-select:none;touch-action:pan-y;position:relative;overflow:hidden;}
.fc-card.swiping{transition:none;}
.fc-card.swipe-anim{transition:transform .2s ease, opacity .15s ease;}
.fc-meta{font-size:.65rem;font-weight:800;color:var(--text2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;}
.fc-q-number{background:var(--fill);padding:2px 6px;border-radius:4px;border:1px solid var(--border);touch-action:manipulation;font-size:1em;}
.fc-qtext{font-size:16px;font-weight:700;line-height:1.4;margin-bottom:12px;}
.fc-opts{list-style:none;padding:0;margin:0;}
.fc-opts li{border:1px solid var(--border);padding:10px 12px;margin-bottom:6px;border-radius:9px;cursor:pointer;display:flex;align-items:flex-start;background:var(--fill);color:var(--text);user-select:none;font-size:14px;touch-action:manipulation;}
.fc-opts li strong{min-width:20px;margin-right:7px;flex-shrink:0;color:var(--text2);}
/* Botón siguiente oculto por defecto — ya no se usa visualmente pero se mantiene por compatibilidad */
.fc-next{display:none !important;}
.fc-summary{background:var(--card);border-radius:16px;padding:28px 14px 20px;border:1px solid var(--border);text-align:center;margin-bottom:12px;}
.fc-big{font-size:3.4rem;font-weight:900;display:block;line-height:1;}
.fc-big-sub{font-size:1rem;font-weight:800;margin:6px 0 2px;}
.fc-details{font-size:.82rem;color:var(--text2);line-height:1.8;}

/* ── TEMARIO & STATS ─────────────────────────────────────────── */
.temario-item{padding:9px 0;border-bottom:1px solid var(--border);}
.temario-item:last-child{border-bottom:none;}
.temario-code{font-size:.63rem;font-weight:800;color:var(--accent);margin-bottom:1px;}
.temario-title{font-size:14px;font-weight:700;margin-bottom:2px;}
.temario-content{font-size:12.5px;color:var(--text2);line-height:1.4;}

/* Stats Resumen visual */
.stat-year-group{margin-bottom:20px;}
.stat-year-title{font-size:16px;font-weight:700;border-bottom:2px solid var(--border);padding-bottom:4px;margin-bottom:10px;}
.stat-pills-container{display:flex;flex-wrap:wrap;gap:6px;}
.stat-pill{
  font-size:12px;font-weight:600;padding:4px 8px;border-radius:6px;
  cursor:pointer;border:1px solid;touch-action:manipulation;
}
.stat-pill.ok{background:rgba(133,153,0,.15);border-color:var(--green);color:var(--green);}
.stat-pill.fail{background:rgba(220,50,47,.15);border-color:var(--red);color:var(--red);}
.stat-pill.mark{background:rgba(38,139,210,.15);border-color:var(--accent);color:var(--accent);}

/* SRS Pills Específicos */
.stat-pill.srs-due { background: rgba(220,50,47,.15); border-color: var(--red); color: var(--red); }
.stat-pill.srs-learning { background: rgba(181,137,0,.15); border-color: var(--yellow); color: var(--yellow); }
.stat-pill.srs-review { background: rgba(133,153,0,.15); border-color: var(--green); color: var(--green); }
.stat-pill.srs-mature { background: rgba(38,139,210,.15); border-color: var(--accent); color: var(--accent); }

/* ── UTILS ───────────────────────────────────────────────────── */
.info-box{background:var(--fill);border-radius:10px;padding:10px 12px;font-size:12.5px;color:var(--text2);border:1px solid var(--border);line-height:1.5;}
.empty-state{text-align:center;color:var(--text2);padding:50px 20px;font-size:14px;line-height:2;}

/* ── RACHA DIARIA / CALENDARIO DE ACTIVIDAD ─────────────────── */
.activity-cal-wrap{background:var(--card);border:1px solid var(--border);border-radius:13px;padding:12px 14px;margin-bottom:8px;}
.activity-cal-title{font-size:11px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.07em;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;}
.activity-streak{font-size:13px;font-weight:800;color:var(--accent);}
.activity-grid{display:flex;flex-wrap:wrap;gap:3px;}
.activity-cell{width:14px;height:14px;border-radius:3px;background:var(--fill2);flex-shrink:0;}
.activity-cell.lvl1{background:rgba(38,139,210,.25);}
.activity-cell.lvl2{background:rgba(38,139,210,.50);}
.activity-cell.lvl3{background:rgba(38,139,210,.75);}
.activity-cell.lvl4{background:rgba(38,139,210,1);}
.activity-cell.today{outline:2px solid var(--accent);outline-offset:1px;}
[data-theme="light"] .activity-cell.lvl1{background:rgba(0,122,255,.18);}
[data-theme="light"] .activity-cell.lvl2{background:rgba(0,122,255,.40);}
[data-theme="light"] .activity-cell.lvl3{background:rgba(0,122,255,.65);}
[data-theme="light"] .activity-cell.lvl4{background:rgba(0,122,255,.90);}
[data-theme="dark"] .activity-cell.lvl1{background:rgba(10,132,255,.25);}
[data-theme="dark"] .activity-cell.lvl2{background:rgba(10,132,255,.50);}
[data-theme="dark"] .activity-cell.lvl3{background:rgba(10,132,255,.75);}
[data-theme="dark"] .activity-cell.lvl4{background:rgba(10,132,255,1);}
body.e-ink .activity-cell{border:1px solid #000!important;background:white!important;}
body.e-ink .activity-cell.lvl1,body.e-ink .activity-cell.lvl2{background:rgba(0,0,0,.3)!important;}
body.e-ink .activity-cell.lvl3,body.e-ink .activity-cell.lvl4{background:#000!important;}
.activity-legend{display:flex;align-items:center;gap:4px;margin-top:8px;font-size:10px;color:var(--text2);}
.activity-legend-cells{display:flex;gap:3px;}

/* ── BOTÓN REPASAR FALLOS (fin de examen) ───────────────────── */
.btn-repaso-fallos{
  width:100%;padding:11px;border-radius:12px;
  background:rgba(220,50,47,.10);color:var(--red);
  border:1px solid rgba(220,50,47,.35);
  font-size:15px;font-weight:700;cursor:pointer;
  margin-top:8px;font-family:inherit;touch-action:manipulation;
}
.btn-repaso-fallos:active{opacity:.7;}
body.e-ink .btn-repaso-fallos{background:white!important;color:#000!important;border:2px dashed #000!important;}

/* ── BADGE DIFICULTAD ───────────────────────────────────────── */
.dif-badge{
  font-size:.54rem;font-weight:800;padding:2px 5px;border-radius:4px;
  border:1px solid transparent;white-space:nowrap;flex-shrink:0;
}
.dif-high{background:rgba(220,50,47,.15);color:var(--red);border-color:rgba(220,50,47,.3);}
.dif-med{background:rgba(181,137,0,.15);color:var(--yellow);border-color:rgba(181,137,0,.3);}
body.e-ink .dif-badge{border:1px solid #000!important;background:white!important;color:#000!important;}

/* ── PRINT ───────────────────────────────────────────────────── */
@media print{
  html,body{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  @page{size:portrait;margin:0;}
  body{padding:8px!important;font-size:11px!important;background:white!important;max-width:100%!important;}
  #fab-bar,#score-pill,#year-wm,.screen,.modal-bd,#wizard-area,.wiz-nav{display:none!important;}
  #quiz{display:block!important;}
  .question{
    page-break-inside:avoid;break-inside:avoid;
    margin-bottom:10px;border:1px solid #ccc!important;
    background:white!important;border-radius:0!important;padding:8px!important;
  }
  .answer-options{page-break-inside:avoid;break-inside:avoid;}
  .answer-options li{page-break-inside:avoid;break-inside:avoid;background:white!important;border:1px solid #ddd!important;}
  body:not(.print-clean) .correct{background:#e8f5e9!important;border-color:#4caf50!important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .srs-badge,.filter-chip{display:none!important;}
  .q-tag{font-size:8px!important;}
}
*{transition:none !important;}
body{min-height:100dvh;padding-bottom:calc(85px + env(safe-area-inset-bottom));}