/* ════════════════════════════════════════════════════
   LAWHUB — STYLE.CSS
   Layout · Components · Animations
════════════════════════════════════════════════════ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{overflow-x:hidden;height:100%}
body{
  font-family:var(--f-body);background:var(--bg);color:var(--ink);
  min-height:100vh;overflow-x:hidden;
  transition:background .3s var(--ease),color .3s var(--ease);
  -webkit-font-smoothing:antialiased;line-height:1.6;
  display:flex;flex-direction:column
}
::selection{background:var(--accent-gl);color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}

/* ════ ANIMATIONS ════ */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
@keyframes popIn{from{opacity:0;transform:scale(.5) rotate(-15deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-3px)}80%{transform:translateX(3px)}}
@keyframes ripple{to{transform:scale(4);opacity:0}}
@keyframes scoreUp{from{transform:scale(.3);opacity:0}60%{transform:scale(1.05);opacity:1}to{transform:scale(1);opacity:1}}
@keyframes toastIn{from{opacity:0;transform:translateY(16px) scale(.88)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes toastOut{from{opacity:1;transform:scale(1)}to{opacity:0;transform:translateY(-6px) scale(.94)}}
@keyframes confetti{0%{transform:translateY(-20px) rotate(0);opacity:1}100%{transform:translateY(105vh) rotate(720deg);opacity:0}}
@keyframes coinDrop{0%{transform:translateY(-30px) rotate(0);opacity:0}15%{opacity:1}100%{transform:translateY(140px) rotate(540deg);opacity:0}}
@keyframes coinPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes spinSlow{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes glowPulse{0%,100%{box-shadow:0 0 0 0 var(--accent-gl)}50%{box-shadow:0 0 30px 8px var(--accent-gl)}}
@keyframes orbDrift{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-15px,10px) scale(1.05)}}
@keyframes shimmer{0%{background-position:-200% center}100%{background-position:200% center}}

/* ════ TOAST ════ */
#toast-wrap{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:9999;display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none}
@media(max-width:768px){#toast-wrap{bottom:76px}}
.toast{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);
  padding:9px 22px;font-size:13px;font-weight:600;font-family:var(--f-body);
  color:var(--ink);box-shadow:var(--sh-lg);
  animation:toastIn .3s var(--spring) both;white-space:nowrap;
  backdrop-filter:blur(20px)
}
.toast.ok{color:var(--ok);border-color:var(--ok-gl);background:var(--ok-soft)}
.toast.err{color:var(--accent);border-color:var(--accent-gl);background:var(--accent-soft)}
.toast.warn{color:var(--warn);border-color:rgba(180,83,9,.25)}
.toast.star{color:var(--star);border-color:var(--star-gl)}

/* ════ MODALS ════ */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.65);display:none;align-items:center;justify-content:center;z-index:8000;backdrop-filter:blur(20px);padding:20px}
.modal-backdrop.open{display:flex}
.modal-box{
  background:var(--surface);border:1px solid var(--line);border-radius:24px;
  padding:44px 36px 36px;width:100%;max-width:440px;text-align:center;
  box-shadow:var(--sh-lg);animation:scaleIn .3s var(--spring) both;
  position:relative;overflow:hidden
}
.modal-accent-bar{position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.modal-icon{
  width:56px;height:56px;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;
  background:var(--accent-soft);border-radius:14px;color:var(--accent);
  animation:popIn .4s var(--bounce) .1s both;border:1px solid var(--accent-gl)
}
.modal-icon svg{width:26px;height:26px}
.modal-title{font-family:var(--f-disp);font-size:22px;font-weight:700;margin-bottom:8px;letter-spacing:-.02em}
.modal-body{font-size:14px;color:var(--ink2);line-height:1.6;margin-bottom:22px}
.modal-row{display:flex;gap:10px;margin-top:8px}
.modal-row > button{flex:1}
.modal-close{
  position:absolute;top:14px;right:14px;width:30px;height:30px;
  border:none;background:var(--surface2);border-radius:50%;
  color:var(--ink2);cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:var(--t)
}
.modal-close:hover{background:var(--accent-soft);color:var(--accent)}
.modal-close svg{width:14px;height:14px}

/* ════ BUTTONS ════ */
.btn-prime,.btn-ok{
  width:100%;background:var(--ink);color:var(--surface);
  border:none;padding:13px 20px;border-radius:var(--r-sm);
  font-size:14.5px;font-weight:600;font-family:var(--f-body);
  cursor:pointer;transition:transform .15s var(--ease),box-shadow .2s,filter .2s;
  letter-spacing:-.005em;position:relative;overflow:hidden
}
.btn-prime:hover,.btn-ok:hover{filter:brightness(1.15);transform:translateY(-1px);box-shadow:var(--sh-md)}
.btn-prime:active,.btn-ok:active{transform:translateY(0)}
.btn-cancel,.btn-ghost{
  width:100%;background:transparent;color:var(--ink2);
  border:1px solid var(--line);padding:11px 20px;border-radius:var(--r-sm);
  font-size:13.5px;font-weight:500;font-family:var(--f-body);
  cursor:pointer;transition:var(--t)
}
.btn-cancel:hover,.btn-ghost:hover{border-color:var(--ink3);color:var(--ink);background:var(--surface2)}
.ico-btn{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xs);
  width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;
  color:var(--ink2);cursor:pointer;transition:var(--t)
}
.ico-btn:hover{border-color:var(--ink3);color:var(--ink);background:var(--surface2)}
.ico-btn svg{width:16px;height:16px}

/* ════ INPUTS ════ */
.lh-input{
  width:100%;padding:12px 16px;font-size:14.5px;font-family:var(--f-body);
  font-weight:500;color:var(--ink);background:var(--surface);
  border:1px solid var(--line);border-radius:11px;outline:none;
  transition:border-color .2s,box-shadow .2s,background .2s;
  letter-spacing:-.005em
}
.lh-input:hover{border-color:var(--ink3)}
.lh-input:focus{
  border-color:var(--accent);background:var(--surface);
  box-shadow:0 0 0 4px var(--accent-soft)
}
.lh-input::placeholder{color:var(--ink3);font-weight:400}
@media(max-width:480px){.lh-input{padding:13px 14px;font-size:16px}}

/* ════ AUTH PAGE ════ */
.page{display:none;flex:1;width:100%}
.page.on{display:block}
#auth-page{
  display:flex;align-items:center;justify-content:center;
  min-height:100vh;padding:30px 20px;position:relative;
  background:radial-gradient(ellipse at top,var(--accent-soft) 0%,transparent 60%),var(--bg)
}
#auth-page.on{display:flex}
.auth-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:20px;padding:32px 30px;width:100%;max-width:420px;
  box-shadow:var(--sh-lg);position:relative;animation:scaleIn .5s var(--spring) both
}
.auth-top-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.auth-top-row .ico-btn{position:relative;z-index:2}
.brand{text-align:center;margin-bottom:24px}
.brand-wordmark{
  font-family:var(--f-disp);font-size:38px;font-weight:800;letter-spacing:-.04em;
  display:inline-flex;align-items:baseline;gap:1px
}
.brand-wordmark .l-law{color:var(--ink)}
.brand-wordmark .l-hub{color:var(--accent)}
.brand-sub{
  display:block;font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink3);margin-top:4px;font-family:var(--f-mono)
}
.sect-title{font-family:var(--f-disp);font-size:22px;font-weight:700;letter-spacing:-.02em;text-align:center;margin-bottom:6px}
.sect-sub{font-size:13px;color:var(--ink2);text-align:center;margin-bottom:18px;line-height:1.55}

/* ━━━ #1: NAME ROW (firstname / lastname) ━━━ */
.name-row{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;
  animation:slideDown .35s var(--spring) both
}
.name-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.name-lbl{
  font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink2);font-family:var(--f-mono);padding-left:2px
}
.lh-input-name{padding:10px 13px;font-size:13.5px;border-radius:9px}
@media(max-width:420px){.name-row{grid-template-columns:1fr;gap:8px}}

.input-wrap{position:relative;margin-bottom:12px}
.eye-btn{
  position:absolute;right:10px;top:50%;transform:translateY(-50%);
  background:none;border:none;color:var(--ink3);cursor:pointer;
  width:32px;height:32px;display:flex;align-items:center;justify-content:center;
  border-radius:6px;transition:var(--t)
}
.eye-btn:hover{color:var(--ink2);background:var(--surface2)}
.eye-btn svg{width:16px;height:16px}
.dots-row{display:flex;justify-content:center;gap:8px;margin:10px 0 14px}
.dot{width:8px;height:8px;border-radius:50%;background:var(--line);transition:background .25s}
.dot.lit{background:var(--accent);animation:popIn .3s var(--bounce) both}
.lock-box{
  background:var(--accent-soft);border:1px solid var(--accent-gl);
  border-radius:var(--r-sm);padding:12px;text-align:center;margin-bottom:12px
}
.lock-timer{font-family:var(--f-mono);font-size:18px;font-weight:700;color:var(--accent)}
.lock-hint{font-size:11.5px;color:var(--accent);margin-top:4px}

.divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--ink3);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-family:var(--f-mono)}
.divider::before,.divider::after{content:'';flex:1;height:1px;background:var(--line)}

/* ━━━ AUTH SOCIALS ━━━ */
.socials{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.soc-link{
  display:inline-flex;align-items:center;gap:7px;padding:8px 14px;
  background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-pill);
  color:var(--ink);text-decoration:none;font-size:12px;font-weight:600;
  transition:var(--t)
}
.soc-link:hover{border-color:var(--ink);transform:translateY(-1px);box-shadow:var(--sh)}
.soc-link svg{width:14px;height:14px}
.soc-fb:hover{color:#1877f2}
.soc-ig:hover{color:#e4405f}
.soc-th:hover{color:var(--ink)}

/* ════ THEME PANEL — #8: redesigned with icons ════ */
.theme-wrap{position:relative}
.theme-panel{
  position:absolute;top:calc(100% + 10px);right:0;
  background:var(--surface);border:1px solid var(--line);
  border-radius:14px;padding:8px;
  display:none;flex-direction:column;gap:3px;
  min-width:200px;box-shadow:var(--sh-lg);z-index:9000;
  animation:scaleIn .22s var(--spring) both;transform-origin:top right
}
.theme-panel.open{display:flex}
.theme-panel-title{
  font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink3);padding:4px 10px 6px;font-family:var(--f-mono)
}
.t-opt{
  display:flex;align-items:center;gap:12px;padding:9px 10px;
  border-radius:9px;cursor:pointer;transition:var(--t);
  font-size:13px;font-weight:500;color:var(--ink2);
  border:1px solid transparent
}
.t-opt:hover{background:var(--surface2);color:var(--ink);border-color:var(--line)}
.t-opt.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-gl);font-weight:600}
.t-opt-ico{
  width:28px;height:28px;border-radius:8px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;border:1px solid var(--line2)
}
.t-opt-ico svg{width:14px;height:14px;color:#fff;position:relative;z-index:2}
.t-opt-ico.ti-light{background:linear-gradient(135deg,#fafafa,#e5e5e7);color:#b91c1c}
.t-opt-ico.ti-light svg{color:#b91c1c}
.t-opt-ico.ti-dark{background:linear-gradient(135deg,#1c1c20,#0a0a0b)}
.t-opt-ico.ti-slate{background:linear-gradient(135deg,#181527,#a78bfa)}
.t-opt-ico.ti-ocean{background:linear-gradient(135deg,#0c5ea3,#0a7daa)}
.t-opt-ico.ti-forest{background:linear-gradient(135deg,#15803d,#166534)}
.t-opt-name{flex:1;min-width:0}
.t-opt-check{opacity:0;color:var(--accent);transition:var(--t)}
.t-opt.active .t-opt-check{opacity:1}
.t-opt-check svg{width:14px;height:14px;stroke-width:3}

/* ════ MODE PILLS — #2: prettier cards ════ */
.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.mode-pill{
  position:relative;background:var(--surface);border:1.5px solid var(--line);
  border-radius:14px;padding:14px 12px;cursor:pointer;
  transition:transform .2s var(--spring),border-color .2s,box-shadow .2s,background .2s;
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;
  overflow:hidden
}
.mode-pill::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,var(--accent-soft),transparent 60%);
  opacity:0;transition:opacity .25s
}
.mode-pill:hover{border-color:var(--ink3);transform:translateY(-2px);box-shadow:var(--sh-md)}
.mode-pill:hover::before{opacity:.5}
.mode-pill.active{
  border-color:var(--accent);background:var(--accent-soft);
  box-shadow:0 4px 16px var(--accent-gl)
}
.mode-pill.active::before{opacity:1}
.mode-pill > *{position:relative;z-index:2}
.mode-pill .p-ico{
  width:42px;height:42px;border-radius:11px;
  background:var(--surface2);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  color:var(--ink2);transition:var(--t-slow)
}
.mode-pill.active .p-ico{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.05)}
.mode-pill .p-ico svg{width:18px;height:18px;stroke-width:1.7}
.mode-pill .p-lbl{font-size:13px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.mode-pill .p-dsc{font-size:10.5px;color:var(--ink3);font-family:var(--f-mono);letter-spacing:.04em;text-transform:uppercase}
.mode-pill.active .p-dsc{color:var(--accent)}
.p-badge{
  position:absolute;top:6px;right:6px;
  font-size:8.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  background:var(--accent);color:#fff;padding:2px 7px;border-radius:var(--r-pill);
  font-family:var(--f-mono);z-index:3
}

/* ━━━ EXAM INFO ━━━ */
.exam-info{
  display:none;background:var(--cur-soft);border:1px solid var(--cur-gl);
  border-radius:var(--r-sm);padding:12px 14px;margin-bottom:14px
}
.exam-info.on{display:block;animation:slideDown .25s var(--spring) both}
.exam-info h4{
  font-size:12px;font-weight:700;color:var(--cur-c);
  display:flex;align-items:center;gap:6px;margin-bottom:8px
}
.exam-info h4 svg{width:14px;height:14px}
.exam-info ul{list-style:none;padding:0}
.exam-info li{
  font-size:11.5px;color:var(--ink2);line-height:1.6;
  padding-left:14px;position:relative
}
.exam-info li::before{content:'•';position:absolute;left:4px;color:var(--cur-c)}

/* ━━━ FORM FIELDS ━━━ */
.field-lbl{
  display:flex;align-items:center;justify-content:space-between;
  font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink2);margin-bottom:6px;font-family:var(--f-mono)
}
.field-help{font-size:9.5px;color:var(--ink3);font-weight:500;text-transform:none;letter-spacing:0}
/* #2: 100 questions limit hint */
.lim-hint{
  font-size:9.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--warn);background:rgba(180,83,9,.08);
  padding:2px 6px;border-radius:4px;font-family:var(--f-mono)
}
.range-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}

/* ━━━ CATEGORIES — #2: fixed text disappearing ━━━ */
.cat-search-wrap{position:relative;margin-bottom:8px}
.cat-search-ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--ink3);pointer-events:none}
.cat-search{
  width:100%;padding:9px 36px 9px 34px;font-size:13px;
  background:var(--surface);border:1px solid var(--line);border-radius:8px;
  color:var(--ink);font-family:var(--f-body);outline:none;transition:var(--t)
}
.cat-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.cat-search-clear{
  position:absolute;right:8px;top:50%;transform:translateY(-50%);
  background:var(--surface2);border:none;width:22px;height:22px;border-radius:50%;
  color:var(--ink2);cursor:pointer;display:none;
  align-items:center;justify-content:center;font-size:11px
}
.cat-search-clear.on{display:flex}

.cat-sel-badge{
  display:none;align-items:center;justify-content:space-between;
  padding:8px 12px;margin-bottom:8px;
  background:var(--surface2);border:1px solid var(--line);border-radius:8px;
  font-size:11.5px;font-weight:600;color:var(--ink)
}
.cat-sel-badge.on{display:flex}
.cat-sel-badge.over-limit{
  background:rgba(180,83,9,.08);border-color:rgba(180,83,9,.35);color:var(--warn);
  animation:glowPulse 1.5s ease-in-out infinite
}
.cat-sel-badge button{
  background:transparent;border:none;color:var(--ink2);font-size:11px;
  cursor:pointer;text-decoration:underline;padding:0;font-family:var(--f-body)
}
.cat-sel-badge button:hover{color:var(--accent)}

.smart-preview{
  background:var(--surface);border:1px solid var(--line);
  border-radius:10px;padding:8px;max-height:280px;overflow-y:auto
}
.smart-preview::-webkit-scrollbar{width:6px}
.smart-preview::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}

.cat-quick{
  display:flex;gap:5px;padding:4px 0 6px;position:sticky;top:0;
  background:var(--surface);z-index:2;border-bottom:1px solid var(--line2);margin-bottom:5px
}
.cat-quick button{
  flex:1;font-size:10.5px;font-weight:600;letter-spacing:.04em;
  background:transparent;border:1px solid var(--line);
  color:var(--ink2);border-radius:6px;padding:5px 8px;
  cursor:pointer;font-family:var(--f-body);transition:all .15s
}
.cat-quick button:hover{border-color:var(--ink);color:var(--ink);background:var(--surface2)}

/* ━━━ #2: FIXED — readable selected state, no text disappearing ━━━ */
.cat-item{
  padding:9px 12px;font-size:13px;font-weight:500;color:var(--ink);
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  border-radius:7px;cursor:pointer;transition:all .15s;
  border:1px solid transparent;position:relative
}
.cat-item:hover{background:var(--surface2);border-color:var(--line)}
.cat-item.selected{
  background:var(--accent-soft);
  color:var(--ink);
  border-color:var(--accent);
  font-weight:600;
  box-shadow:inset 3px 0 0 var(--accent)
}
.cat-item.selected .cat-name{color:var(--ink)}
.cat-item.selected .cat-icon-dot{background:var(--accent);opacity:1;transform:scale(1.4)}
.cat-item.selected .cat-count{background:var(--accent);color:#fff;font-weight:700}
.cat-name{
  display:flex;align-items:center;gap:8px;flex:1;min-width:0;
  font-family:var(--f-body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.cat-icon-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.5;flex-shrink:0;transition:transform .15s var(--bounce)}
.cat-count{
  font-family:var(--f-mono);font-size:10.5px;font-weight:500;
  background:var(--surface2);color:var(--ink2);
  padding:2px 8px;border-radius:999px;flex-shrink:0
}
.cat-empty{text-align:center;padding:24px 12px;color:var(--ink3);font-size:13px}
.cat-empty svg{width:28px;height:28px;margin:0 auto 8px;display:block;opacity:.4}

.cat-custom{
  background:var(--ink);color:var(--surface);
  border:none;border-radius:8px;padding:10px 12px;margin-bottom:6px;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:8px
}
.cat-custom:hover{filter:brightness(1.15)}
.cat-custom.selected{box-shadow:0 0 0 2px var(--accent) inset}
.cat-custom-name{display:flex;align-items:center;gap:8px;flex:1;min-width:0;font-size:12.5px;font-weight:600;overflow:hidden}
.cat-custom-name svg{width:13px;height:13px;flex-shrink:0}
.cat-custom-q{font-family:var(--f-mono);font-size:11px;background:rgba(255,255,255,.12);padding:2px 7px;border-radius:5px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-custom-count{font-family:var(--f-mono);font-size:10.5px;font-weight:600;background:var(--accent);color:#fff;padding:3px 10px;border-radius:999px;flex-shrink:0}

/* ━━━ RESUME BANNER ━━━ */
#resume-banner{display:none;margin-bottom:14px}
#resume-banner.on{display:block;animation:slideDown .35s var(--spring) both}
.resume-inner{
  background:linear-gradient(135deg,var(--cur-soft),transparent);
  border:1px solid var(--cur-gl);border-radius:12px;padding:12px 14px;
  display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap
}
.resume-text{flex:1;min-width:0}
.resume-title{font-size:12.5px;font-weight:700;color:var(--cur-c);margin-bottom:2px}
.resume-sub{font-size:11.5px;color:var(--ink2);font-family:var(--f-mono)}
.resume-actions{display:flex;gap:6px}
.btn-resume,.btn-discard{
  font-size:11.5px;font-weight:600;padding:6px 12px;border-radius:6px;
  border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer
}
.btn-resume{background:var(--cur-c);color:#fff;border-color:var(--cur-c)}
.btn-resume:hover{filter:brightness(1.1)}
.btn-discard:hover{border-color:var(--accent);color:var(--accent)}

/* ════ QUIZ PAGE ════ */
#quiz-page{min-height:100vh;flex:1}
.q-header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.85);backdrop-filter:blur(20px);
  border-bottom:1px solid var(--line);
  padding:10px 18px;display:flex;align-items:center;gap:14px;flex-wrap:wrap
}
[data-theme="dark"] .q-header,
[data-theme="slate"] .q-header{background:rgba(22,22,26,.85)}
.h-brand{
  font-family:var(--f-disp);font-size:22px;font-weight:800;letter-spacing:-.03em;
  color:var(--ink);text-decoration:none;flex-shrink:0
}
.h-brand .hub{color:var(--accent)}
.timer-wrap{display:flex;align-items:center;gap:6px}
.timer-pill{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-pill);
  padding:5px 12px;font-family:var(--f-mono);font-size:12px;font-weight:600;color:var(--ink)
}
.timer-pill svg{width:13px;height:13px}
.h-right{display:flex;gap:6px;margin-left:auto;align-items:center;flex-wrap:wrap}
.h-btn{
  display:inline-flex;align-items:center;gap:5px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xs);
  padding:6px 11px;font-size:12px;font-weight:600;color:var(--ink2);
  cursor:pointer;transition:var(--t);font-family:var(--f-body)
}
.h-btn:hover{border-color:var(--ink3);color:var(--ink);background:var(--surface2)}
.h-btn svg{width:14px;height:14px}
.h-btn-finish{background:var(--accent);color:#fff;border-color:var(--accent)}
.h-btn-finish:hover{background:var(--accent-2);color:#fff}
.h-btn-donate{color:var(--accent);border-color:var(--accent-gl)}
.h-btn-donate:hover{background:var(--accent-soft);color:var(--accent)}
.h-btn.active,.h-btn.focus-active{background:var(--accent);color:#fff;border-color:var(--accent)}
@media(max-width:600px){.h-btn .btn-lbl{display:none}.h-btn{padding:6px 8px}}

/* ━━━ #5: FULLSCREEN BUTTON ━━━ */
.fs-btn{position:relative}
body.is-fullscreen .fs-btn{background:var(--accent);color:#fff;border-color:var(--accent)}

/* ━━━ Q-BODY GRID — adapts to layout ━━━ */
.q-body{
  max-width:960px;margin:0 auto;
  padding:18px 18px 32px;
  display:flex;flex-direction:column;gap:14px
}
@media(max-width:720px){.q-body{padding:12px 10px 24px}}

/* ━━━ STATS ROW ━━━ */
.stats-row{
  display:grid;grid-template-columns:repeat(5,1fr);gap:8px
}
.stat-cell{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);
  padding:10px 8px;text-align:center;transition:transform .15s,border-color .2s
}
.stat-cell:hover{transform:translateY(-1px);border-color:var(--ink3)}
.stat-val{font-family:var(--f-mono);font-size:18px;font-weight:700;line-height:1;margin-bottom:3px}
.stat-lbl{font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);font-family:var(--f-mono)}
.stat-cell.s-green .stat-val{color:var(--ok)}
.stat-cell.s-red .stat-val{color:var(--accent)}
.stat-cell.s-star .stat-val{color:var(--star)}
@media(max-width:600px){.stats-row{grid-template-columns:repeat(5,1fr);gap:5px}.stat-val{font-size:15px}.stat-lbl{font-size:8.5px}.stat-cell{padding:8px 4px}}

/* ━━━ #3: AUTHOR BANNER (replaces legend) ━━━ */
.author-banner{
  position:relative;
  background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 60%,#7a1313 100%);
  border:1px solid var(--accent-2);border-radius:14px;
  padding:18px 22px;color:#fff;overflow:hidden;
  box-shadow:0 4px 20px var(--accent-gl);
  animation:slideUp .5s var(--spring) both
}
.author-banner.hidden{display:none}
.ab-bg-orb{
  position:absolute;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.18),transparent 70%);
  pointer-events:none;animation:orbDrift 8s ease-in-out infinite
}
.ab-orb-1{width:200px;height:200px;top:-60px;right:-40px}
.ab-orb-2{width:140px;height:140px;bottom:-50px;left:-30px;animation-delay:-3s}
.ab-grain{
  position:absolute;inset:0;pointer-events:none;opacity:.08;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")
}
.ab-close{
  position:absolute;top:10px;right:10px;
  width:26px;height:26px;border:none;border-radius:50%;
  background:rgba(255,255,255,.18);color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:var(--t);z-index:5
}
.ab-close:hover{background:rgba(255,255,255,.35);transform:rotate(90deg)}
.ab-close svg{width:13px;height:13px}
.ab-content{
  position:relative;z-index:2;
  display:flex;align-items:center;justify-content:space-between;gap:18px
}
.ab-left{display:flex;align-items:center;gap:14px;flex:1;min-width:0}
.ab-avatar{
  width:54px;height:54px;border-radius:50%;
  background:rgba(255,255,255,.95);color:var(--accent);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-disp);font-size:26px;font-weight:800;
  flex-shrink:0;position:relative;
  box-shadow:0 4px 14px rgba(0,0,0,.25)
}
.ab-avatar-ring{
  position:absolute;inset:-4px;border-radius:50%;
  border:2px solid rgba(255,255,255,.4);
  animation:spinSlow 12s linear infinite
}
.ab-avatar-ring::before{
  content:'';position:absolute;top:-3px;left:50%;
  width:6px;height:6px;border-radius:50%;background:#fff;
  transform:translateX(-50%);box-shadow:0 0 8px rgba(255,255,255,.8)
}
.ab-text{flex:1;min-width:0}
.ab-eyebrow{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  font-family:var(--f-mono);color:rgba(255,255,255,.85);margin-bottom:4px
}
.ab-dot{width:6px;height:6px;border-radius:50%;background:#34d399;animation:coinPulse 1.5s ease-in-out infinite}
.ab-divider{opacity:.5}
.ab-eyebrow-light{font-weight:500;color:rgba(255,255,255,.7)}
.ab-headline{
  font-family:var(--f-disp);font-size:18px;font-weight:600;line-height:1.3;
  letter-spacing:-.01em;margin-bottom:4px
}
.ab-headline-mark{font-size:22px;color:rgba(255,255,255,.55);font-style:italic}
.ab-sub{font-size:12px;line-height:1.5;color:rgba(255,255,255,.85)}
.ab-sub strong{color:#fff;font-weight:700}
.ab-btn{
  flex-shrink:0;display:inline-flex;align-items:center;gap:7px;
  background:rgba(255,255,255,.95);color:var(--accent);
  padding:10px 16px;border-radius:var(--r-pill);
  font-size:13px;font-weight:700;text-decoration:none;
  transition:transform .15s,box-shadow .2s
}
.ab-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.2)}
.ab-btn svg{width:15px;height:15px}

/* #3: in side layouts banner becomes compact + stats-aligned */
@media(max-width:720px){
  .author-banner{padding:14px 16px}
  .ab-content{flex-direction:column;text-align:center;gap:12px}
  .ab-left{flex-direction:column;text-align:center}
  .ab-headline{font-size:16px}
}

/* ━━━ #4: NAV GRID (sq-grid) — sized to match q-card ━━━ */
.nav-section{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:14px;box-shadow:var(--sh)
}
.nav-sec-head{
  display:flex;align-items:center;justify-content:space-between;
  padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--line2)
}
.nav-sec-title{
  font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink2);font-family:var(--f-mono)
}
.nav-mini-legend{
  display:flex;gap:7px;flex-wrap:wrap
}
.nav-mini-legend .leg-i{
  display:flex;align-items:center;gap:3px;font-size:9.5px;font-weight:600;
  color:var(--ink3);font-family:var(--f-mono)
}
.nav-mini-legend .leg-dot{width:8px;height:8px;border-radius:2px}

.sq-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(36px,1fr));
  gap:5px
}
.sq{
  height:36px;display:flex;align-items:center;justify-content:center;
  font-family:var(--f-mono);font-size:12px;font-weight:600;
  background:var(--surface);border:1px solid var(--line);border-radius:6px;
  cursor:pointer;color:var(--ink);transition:all .12s;position:relative
}
.sq:hover{border-color:var(--ink);transform:scale(1.08);z-index:2}
.sq.cur{background:var(--cur-c);color:#fff;border-color:var(--cur-c);transform:scale(1.06);box-shadow:0 0 0 3px var(--cur-soft)}
.sq.ok{background:var(--ok);color:#fff;border-color:var(--ok)}
.sq.bad{background:rgba(192,57,43,.7);color:#fff;border-color:var(--accent)}
.sq.skip{background:var(--accent-soft);border:1.5px dashed var(--accent);color:var(--accent)}
.sq.starred::after{
  content:'★';position:absolute;top:-3px;right:-3px;
  font-size:11px;color:var(--star);text-shadow:0 0 4px rgba(0,0,0,.4)
}

/* ━━━ Q-CARD ━━━ */
.q-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:24px;box-shadow:var(--sh);position:relative;overflow:hidden;
  transition:box-shadow .3s
}
.q-meta{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:16px;flex-wrap:wrap;gap:8px
}
.q-badge{
  background:var(--accent-soft);color:var(--accent);
  font-size:11px;font-weight:700;padding:4px 13px;border-radius:var(--r-pill);
  border:1px solid var(--accent-gl);font-family:var(--f-mono)
}
.q-actions{display:flex;gap:5px;flex-wrap:wrap}
.act-btn{
  display:inline-flex;align-items:center;gap:5px;
  background:var(--surface2);border:1px solid var(--line);border-radius:6px;
  padding:5px 10px;font-size:11.5px;font-weight:600;color:var(--ink2);cursor:pointer;
  transition:var(--t)
}
.act-btn:hover{border-color:var(--ink3);color:var(--ink)}
.act-btn.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.act-btn.on.star-on{background:var(--star);border-color:var(--star)}
.act-btn svg{width:12px;height:12px}
.q-text-wrap{margin-bottom:16px}
.q-text{font-size:16px;line-height:1.65;color:var(--ink);font-weight:500;letter-spacing:-.005em}
.opts{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.opt-btn{
  display:flex;align-items:flex-start;gap:11px;
  background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-sm);
  padding:13px 15px;text-align:left;cursor:pointer;transition:all .18s var(--ease);
  font-family:var(--f-body);font-size:14px;color:var(--ink);width:100%;
  line-height:1.55
}
.opt-btn:hover:not(:disabled){border-color:var(--ink3);transform:translateX(2px)}
.opt-btn:disabled{cursor:not-allowed}
.opt-btn .opt-ltr{
  flex-shrink:0;width:24px;height:24px;border-radius:50%;
  background:var(--surface2);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-mono);font-size:11px;font-weight:700;color:var(--ink2)
}
.opt-btn.is-correct{border-color:var(--ok);background:var(--ok-soft);color:var(--ink)}
.opt-btn.is-correct .opt-ltr{background:var(--ok);color:#fff;border-color:var(--ok)}
.opt-btn.is-wrong{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}
.opt-btn.is-wrong .opt-ltr{background:var(--accent);color:#fff;border-color:var(--accent)}
.opt-btn.elim{opacity:.4;text-decoration:line-through}
body.exam-mode .opt-btn.is-correct,
body.exam-mode .opt-btn.is-wrong{
  border-color:var(--cur-c);background:var(--cur-soft);color:var(--ink)
}
body.exam-mode .opt-btn.is-correct .opt-ltr,
body.exam-mode .opt-btn.is-wrong .opt-ltr{background:var(--cur-c);color:#fff;border-color:var(--cur-c)}

/* ━━━ EXPLANATION ━━━ */
.expl-wrap{margin-top:14px}
.expl-toggle-btn{
  width:100%;display:flex;align-items:center;gap:9px;
  background:var(--expl-bg);border:1px solid var(--expl-border);border-radius:var(--r-sm);
  padding:10px 14px;font-size:13px;font-weight:600;color:var(--expl-text);cursor:pointer;
  transition:var(--t);font-family:var(--f-body)
}
.expl-toggle-btn:hover{filter:brightness(1.05)}
.expl-toggle-icon{display:flex;align-items:center;transition:transform .25s}
.expl-toggle-btn.open .expl-toggle-icon{transform:rotate(180deg)}
.expl-toggle-label{flex:1;text-align:left}
.expl-toggle-badge{
  font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  background:var(--expl-border);padding:2px 7px;border-radius:4px;font-family:var(--f-mono)
}
.expl-body{display:none;margin-top:10px}
.expl-body.open{display:block;animation:slideDown .25s var(--spring) both}
.expl-content{
  background:var(--expl-bg);border:1px solid var(--expl-border);
  border-radius:var(--r-sm);padding:14px 16px;font-size:13.5px;line-height:1.65;color:var(--ink)
}

/* ━━━ NAV BUTTONS ━━━ */
.card-nav{display:flex;justify-content:space-between;align-items:center;margin-top:14px;gap:10px}
.btn-nav{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);
  padding:9px 16px;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;
  transition:var(--t);font-family:var(--f-body)
}
.btn-nav:hover{border-color:var(--ink);background:var(--surface2)}
.btn-nav svg{width:13px;height:13px}
.nav-mid{display:flex;align-items:center;gap:10px}
.nav-prog{font-family:var(--f-mono);font-size:12px;font-weight:600;color:var(--ink2)}
.btn-skip{
  background:transparent;border:1px solid var(--line);border-radius:6px;
  padding:5px 11px;font-size:11.5px;font-weight:600;color:var(--ink2);cursor:pointer;
  transition:var(--t);font-family:var(--f-body)
}
.btn-skip:hover{border-color:var(--accent);color:var(--accent)}

/* ════ #3 + #4 + #5: LAYOUT MODES ════ */
@media(min-width:1100px){
  /* SIDE layouts (left/right) — banner shrinks, sq-grid matches stats width */
  body[data-layout="left"] .q-body,
  body[data-layout="right"] .q-body{
    display:grid;
    grid-template-columns:280px minmax(0,1fr);
    grid-template-rows:auto auto auto auto auto;
    gap:14px 20px;max-width:1280px;
    align-items:start
  }
  body[data-layout="right"] .q-body{grid-template-columns:280px minmax(0,1fr)}
  body[data-layout="left"] .q-body{grid-template-columns:minmax(0,1fr) 280px}

  /* LEFT: card on left, sidebar (nav+banner) on right */
  body[data-layout="left"] .q-body > .stats-row{grid-column:1;grid-row:1}
  body[data-layout="left"] .q-body > .q-card{grid-column:1;grid-row:2 / span 3}
  body[data-layout="left"] .q-body > .nav-section{grid-column:2;grid-row:1 / span 2;position:sticky;top:74px;align-self:start;max-height:calc(100vh - 100px);overflow-y:auto}
  body[data-layout="left"] .q-body > .author-banner{grid-column:2;grid-row:3;align-self:start}

  /* RIGHT: sidebar on left, card on right */
  body[data-layout="right"] .q-body > .stats-row{grid-column:2;grid-row:1}
  body[data-layout="right"] .q-body > .q-card{grid-column:2;grid-row:2 / span 3}
  body[data-layout="right"] .q-body > .nav-section{grid-column:1;grid-row:1 / span 2;position:sticky;top:74px;align-self:start;max-height:calc(100vh - 100px);overflow-y:auto}
  body[data-layout="right"] .q-body > .author-banner{grid-column:1;grid-row:3;align-self:start}

  /* #3: banner shrinks in side layouts to match stats-row width */
  body[data-layout="left"] .author-banner,
  body[data-layout="right"] .author-banner{
    padding:12px 14px
  }
  body[data-layout="left"] .author-banner .ab-content,
  body[data-layout="right"] .author-banner .ab-content{
    flex-direction:column;text-align:center;gap:10px
  }
  body[data-layout="left"] .author-banner .ab-left,
  body[data-layout="right"] .author-banner .ab-left{
    flex-direction:column;text-align:center;gap:8px
  }
  body[data-layout="left"] .ab-headline,
  body[data-layout="right"] .ab-headline{font-size:14px}
  body[data-layout="left"] .ab-sub,
  body[data-layout="right"] .ab-sub{font-size:11px}
  body[data-layout="left"] .ab-avatar,
  body[data-layout="right"] .ab-avatar{width:42px;height:42px;font-size:20px}

  /* #4: sq-grid more compact in sidebar */
  body[data-layout="left"] .sq-grid,
  body[data-layout="right"] .sq-grid{
    grid-template-columns:repeat(auto-fill,minmax(30px,1fr));gap:4px
  }
  body[data-layout="left"] .sq,
  body[data-layout="right"] .sq{height:30px;font-size:10.5px}
}

/* CENTERED layout (default): banner full + nav-section full width */
body:not([data-layout="left"]):not([data-layout="right"]) .author-banner{
  /* full banner, central */
}

/* ════ #7: FOCUS MODE ════ */
body.focus-mode .q-header{opacity:.25;transition:opacity .3s}
body.focus-mode .q-header:hover{opacity:1}
body.focus-mode .stats-row,
body.focus-mode .nav-section,
body.focus-mode .author-banner,
body.focus-mode .ad-slot,
body.focus-mode .lh-footer{display:none!important}
/* Focus mode: q-card always central, regardless of layout */
body.focus-mode .q-body{
  display:flex!important;flex-direction:column!important;
  max-width:780px!important;grid-template-columns:none!important
}
body.focus-mode .q-card{
  grid-column:auto!important;grid-row:auto!important
}

/* ════ #5: FULLSCREEN/EXPAND MODE ════ */
body.is-fullscreen .q-body{
  max-width:none;width:100vw;
  padding:18px 32px 32px;
  display:grid;
  grid-template-columns:320px minmax(0,1fr);
  gap:16px 22px;
  align-items:start
}
body.is-fullscreen .q-body > .stats-row{grid-column:1 / -1;grid-row:1}
body.is-fullscreen .q-body > .nav-section{grid-column:1;grid-row:2 / span 2;position:sticky;top:64px;max-height:calc(100vh - 90px);overflow-y:auto}
body.is-fullscreen .q-body > .q-card{grid-column:2;grid-row:2}
body.is-fullscreen .q-body > .author-banner{grid-column:2;grid-row:3}
body.is-fullscreen .q-card{padding:32px 36px;font-size:17px}
body.is-fullscreen .q-text{font-size:18px}
body.is-fullscreen .opt-btn{font-size:15px;padding:15px 18px}
body.is-fullscreen .sq-grid{grid-template-columns:repeat(auto-fill,minmax(34px,1fr))}
@media(max-width:1100px){
  body.is-fullscreen .q-body{grid-template-columns:1fr;padding:14px 16px}
  body.is-fullscreen .q-body > .stats-row,
  body.is-fullscreen .q-body > .nav-section,
  body.is-fullscreen .q-body > .q-card,
  body.is-fullscreen .q-body > .author-banner{grid-column:1}
  body.is-fullscreen .q-body > .nav-section{position:static;max-height:none}
}

/* ════ #6: FOOTER & SPONSOR ════ */
.lh-sponsor{
  margin:24px auto 0;max-width:1280px;padding:0 18px;
  width:100%
}
.sponsor-strip{
  position:relative;background:var(--surface);
  border:1px solid var(--line);border-radius:14px;padding:16px 20px;
  display:flex;align-items:center;gap:14px;
  overflow:hidden
}
.sponsor-strip::before{
  content:'';position:absolute;top:0;left:-100%;width:100%;height:1px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
  animation:shimmer 3s linear infinite
}
.sponsor-label{
  font-family:var(--f-mono);font-size:9.5px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink3);
  background:var(--surface2);padding:3px 8px;border-radius:4px;
  border:1px solid var(--line);flex-shrink:0
}
.sponsor-content{
  flex:1;display:flex;align-items:center;gap:12px;
  font-size:13px;color:var(--ink2);font-weight:500;line-height:1.5
}
.sponsor-content strong{color:var(--ink);font-weight:700}
.sponsor-cta{
  display:inline-flex;align-items:center;gap:5px;
  color:var(--accent);font-weight:600;text-decoration:none;
  font-size:12.5px
}
.sponsor-cta:hover{text-decoration:underline}
.sponsor-cta svg{width:12px;height:12px}
@media(max-width:600px){
  .sponsor-strip{flex-direction:column;align-items:flex-start;padding:12px 14px}
  .sponsor-content{font-size:12px;flex-direction:column;align-items:flex-start;gap:6px}
}

.lh-footer{
  background:var(--ink);color:rgba(255,255,255,.85);
  padding:24px 18px;margin-top:18px
}
[data-theme="dark"] .lh-footer,[data-theme="slate"] .lh-footer{background:var(--surface2)}
.footer-inner{
  max-width:1280px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap
}
.footer-brand{
  display:flex;align-items:center;gap:10px;font-family:var(--f-disp);font-weight:700;
  font-size:18px;color:#fff
}
.footer-brand .l-hub{color:#e85a4f}
.footer-text{font-size:12.5px;line-height:1.6;color:rgba(255,255,255,.7);max-width:420px}
.footer-text strong{color:#fff;font-weight:600}
.footer-socials{display:flex;gap:8px;flex-wrap:wrap}
.footer-soc{
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  color:#fff;display:flex;align-items:center;justify-content:center;
  text-decoration:none;transition:var(--t)
}
.footer-soc:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-2px)}
.footer-soc svg{width:15px;height:15px}
@media(max-width:720px){
  .lh-footer{padding:20px 16px}
  .footer-inner{flex-direction:column;text-align:center}
  .footer-text{font-size:11.5px}
}

/* ════ ADVERTISEMENT SLOT ════ */
.ad-slot{
  display:none;background:var(--surface);border:1px solid var(--line);
  border-radius:12px;padding:14px 18px;position:relative;overflow:hidden
}
.ad-slot.on{display:block}
.ad-slot::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.35
}
.ad-label{
  position:absolute;top:7px;right:42px;
  font-family:var(--f-mono);font-size:9px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink3);padding:2px 7px;border:1px solid var(--line);border-radius:4px;background:var(--surface2)
}
.ad-close{
  position:absolute;top:6px;right:6px;width:24px;height:24px;border:none;
  background:var(--surface2);border-radius:50%;color:var(--ink2);cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:var(--t);font-size:12px
}
.ad-close:hover{background:var(--ink);color:var(--surface)}
.ad-content{
  min-height:48px;display:flex;align-items:center;gap:14px;padding:4px 56px 4px 0;
  font-size:13px;color:var(--ink2);line-height:1.55
}

/* ════ #9: DONATION MODAL — animated ════ */
.donate-modal{padding:28px 28px 24px;max-width:460px}
.donate-icon-wrap{
  position:relative;width:72px;height:72px;margin:0 auto 14px;
  display:flex;align-items:center;justify-content:center
}
.donate-coin-rain{
  position:absolute;inset:-20px;pointer-events:none;overflow:visible
}
.donate-coin{
  position:absolute;width:18px;height:18px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,#ffd700,#c9a204);
  box-shadow:0 2px 4px rgba(0,0,0,.2),inset 0 -2px 0 rgba(0,0,0,.15);
  animation:coinDrop 1.8s ease-in infinite
}
.donate-coin::before{
  content:'₾';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:800;color:#7a5500;font-family:var(--f-disp)
}
.donate-coin:nth-child(1){left:5%;animation-delay:0s}
.donate-coin:nth-child(2){left:30%;animation-delay:.4s}
.donate-coin:nth-child(3){left:55%;animation-delay:.8s}
.donate-coin:nth-child(4){left:80%;animation-delay:1.2s}
.donate-coin:nth-child(5){left:95%;animation-delay:1.6s}
.donate-heart{
  position:relative;z-index:2;
  width:64px;height:64px;border-radius:50%;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  display:flex;align-items:center;justify-content:center;color:#fff;
  animation:coinPulse 1.5s ease-in-out infinite;
  box-shadow:0 8px 24px var(--accent-gl)
}
.donate-heart svg{width:30px;height:30px}
.donate-title{
  font-family:var(--f-disp);font-size:24px;font-weight:700;
  letter-spacing:-.02em;text-align:center;margin-bottom:6px
}
.donate-text{font-size:13.5px;color:var(--ink2);text-align:center;line-height:1.6;margin-bottom:14px}
.donate-callout{
  display:flex;align-items:center;gap:8px;
  background:var(--accent-soft);border:1px solid var(--accent-gl);
  border-radius:9px;padding:9px 12px;margin-bottom:14px;
  font-size:12px;color:var(--ink2)
}
.donate-callout svg{width:15px;height:15px;flex-shrink:0;color:var(--accent)}
.donate-callout strong{color:var(--accent);font-weight:700}
.donate-banks{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.bank-btn{
  display:flex;align-items:center;gap:12px;
  background:var(--surface2);border:1px solid var(--line);border-radius:10px;
  padding:11px 13px;cursor:pointer;transition:all .15s;
  font-family:var(--f-body);text-align:left;width:100%
}
.bank-btn:hover{border-color:var(--accent);transform:translateX(2px);box-shadow:var(--sh)}
.bank-logo{
  width:44px;height:44px;border-radius:8px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--f-disp);font-size:13px;font-weight:800;color:#fff;letter-spacing:-.02em
}
.bank-tbc{background:linear-gradient(135deg,#0050a0,#00a3e0)}
.bank-bog{background:linear-gradient(135deg,#ff6900,#d05000)}
.bank-info{flex:1;min-width:0}
.bank-name{display:block;font-size:13px;font-weight:700;color:var(--ink);margin-bottom:1px}
.bank-iban{display:block;font-family:var(--f-mono);font-size:11px;color:var(--ink2);overflow:hidden;text-overflow:ellipsis}
.bank-action{
  display:flex;align-items:center;justify-content:center;
  width:32px;height:32px;border-radius:8px;
  background:var(--surface);color:var(--ink2)
}
.bank-action svg{width:14px;height:14px}
.donate-secure{
  display:flex;align-items:center;gap:6px;justify-content:center;
  font-size:11px;color:var(--ink3);font-style:italic
}
.donate-secure svg{width:12px;height:12px;color:var(--ok)}

/* ════ #9: FINISH MODAL — donation embedded ════ */
.finish-modal{max-width:480px}
.finish-donate-tease{
  background:linear-gradient(135deg,var(--accent-soft),transparent);
  border:1px dashed var(--accent-gl);border-radius:12px;
  padding:14px;margin:16px 0;text-align:left;
  position:relative;overflow:hidden
}
.finish-donate-tease::before{
  content:'';position:absolute;top:-30px;right:-30px;
  width:80px;height:80px;border-radius:50%;
  background:radial-gradient(circle,var(--accent-gl),transparent 70%);
  animation:coinPulse 2s ease-in-out infinite
}
.finish-tease-head{
  display:flex;align-items:center;gap:10px;margin-bottom:8px;
  position:relative;z-index:2
}
.finish-tease-ico{
  width:32px;height:32px;border-radius:50%;
  background:var(--accent);color:#fff;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  animation:coinPulse 1.5s ease-in-out infinite
}
.finish-tease-ico svg{width:16px;height:16px}
.finish-tease-title{font-size:13px;font-weight:700;color:var(--ink)}
.finish-tease-text{font-size:12px;color:var(--ink2);line-height:1.5;margin-bottom:10px;position:relative;z-index:2}
.finish-tease-banks{display:flex;gap:6px;position:relative;z-index:2}
.tease-bank-btn{
  flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;
  font-size:11.5px;font-weight:700;padding:7px 10px;border-radius:7px;
  border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;
  transition:var(--t)
}
.tease-bank-btn:hover{transform:translateY(-1px);box-shadow:var(--sh)}
.tease-bank-tbc:hover{border-color:#0050a0;color:#0050a0}
.tease-bank-bog:hover{border-color:#ff6900;color:#ff6900}

/* ════ RESULTS PAGE ════ */
#res-page{display:none;min-height:100vh;flex:1;padding:30px 18px 60px}
.res-wrap{max-width:920px;margin:0 auto}
.res-hero{
  background:var(--surface);border:1px solid var(--line);border-radius:18px;
  padding:32px 28px;text-align:center;margin-bottom:18px;position:relative;overflow:hidden;
  box-shadow:var(--sh-md)
}
.res-hero::before{
  content:'';position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--ok))
}
.res-grade{
  font-family:var(--f-disp);font-size:14px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink2);margin-bottom:8px
}
.res-score{
  font-family:var(--f-disp);font-size:64px;font-weight:800;line-height:1;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  margin-bottom:6px;animation:scoreUp .6s var(--bounce) both
}
.res-of{font-size:13px;color:var(--ink2);margin-bottom:18px}
.res-stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px
}
.rs{
  background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px
}
.rs-val{font-family:var(--f-mono);font-size:20px;font-weight:700;line-height:1;margin-bottom:2px}
.rs-lbl{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}

/* #10: SHARE & CERTIFICATE buttons side-by-side */
.share-row{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px
}
@media(max-width:480px){.share-row{grid-template-columns:1fr}}
.btn-share,.btn-cert{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:11px 16px;border-radius:var(--r-sm);
  font-size:13px;font-weight:700;cursor:pointer;
  transition:transform .15s,box-shadow .2s;border:1px solid var(--line);
  font-family:var(--f-body)
}
.btn-share{background:var(--cur-c);color:#fff;border-color:var(--cur-c)}
.btn-share:hover{transform:translateY(-1px);box-shadow:0 6px 18px var(--cur-gl)}
.btn-cert{
  background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border-color:var(--accent);
  position:relative;overflow:hidden
}
.btn-cert::before{
  content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);
  animation:shimmer 2.5s linear infinite
}
.btn-cert:hover{transform:translateY(-1px);box-shadow:0 8px 24px var(--accent-gl)}
.btn-share svg,.btn-cert svg{width:14px;height:14px;position:relative;z-index:2}

.res-acts{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.btn-retry,.btn-home2{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);
  padding:9px 14px;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;
  transition:var(--t);text-decoration:none
}
.btn-retry:hover,.btn-home2:hover{border-color:var(--ink);background:var(--surface2)}
.btn-retry svg,.btn-home2 svg{width:13px;height:13px}

.filter-bar{
  display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;
  padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm)
}
.flt{
  display:inline-flex;align-items:center;gap:5px;
  background:transparent;border:1px solid var(--line);border-radius:6px;
  padding:6px 11px;font-size:11.5px;font-weight:600;color:var(--ink2);cursor:pointer;
  transition:var(--t);font-family:var(--f-body)
}
.flt:hover{border-color:var(--ink);color:var(--ink)}
.flt.active{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.flt svg{width:12px;height:12px}

.res-item{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);
  padding:14px 16px;margin-bottom:8px;animation:slideUp .3s var(--spring) both
}
.res-item.correct{border-left:3px solid var(--ok)}
.res-item.wrong{border-left:3px solid var(--accent)}
.res-item.skipped{border-left:3px solid var(--ink3)}
.ri-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.ri-num{font-family:var(--f-mono);font-size:11px;font-weight:700;color:var(--ink2)}
.ri-status{font-size:9.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:4px;font-family:var(--f-mono)}
.ri-status-ok{background:var(--ok-soft);color:var(--ok)}
.ri-status-bad{background:var(--accent-soft);color:var(--accent)}
.ri-status-skip{background:var(--surface2);color:var(--ink2)}
.ri-q{font-size:13.5px;line-height:1.55;color:var(--ink);margin-bottom:8px}
.ri-ans-row{display:flex;gap:10px;font-size:12px;padding:6px 10px;border-radius:6px;margin-bottom:4px}
.ri-ans-ok{background:var(--ok-soft);color:var(--ok)}
.ri-ans-wrong{background:var(--accent-soft);color:var(--accent)}
.ri-ans-correct{background:var(--cur-soft);color:var(--cur-c)}
.ri-ans-lbl{font-weight:700;flex-shrink:0;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase}
.ri-ans-val{font-weight:500;color:var(--ink)}

/* ════ #12: TUTORIAL — enhanced ════ */
.tut-overlay{
  position:fixed;inset:0;display:none;align-items:center;justify-content:center;
  z-index:9500;padding:20px;
  background:rgba(0,0,0,.7);backdrop-filter:blur(20px)
}
.tut-overlay.show{display:flex;animation:fadeIn .3s var(--ease) both}
.tut-card{
  background:var(--surface);border:1px solid var(--line);border-radius:20px;
  padding:32px 28px 24px;max-width:480px;width:100%;text-align:center;
  box-shadow:var(--sh-xl);position:relative;animation:scaleIn .4s var(--spring) both
}
.tut-progress{display:flex;justify-content:center;gap:5px;margin-bottom:18px}
.tut-dot{width:6px;height:6px;border-radius:50%;background:var(--line);transition:all .3s}
.tut-dot.active{background:var(--accent);width:24px;border-radius:3px}
.tut-dot.done{background:var(--accent-gl)}
.tut-icon{
  width:60px;height:60px;margin:0 auto 14px;
  background:var(--accent-soft);color:var(--accent);
  border-radius:16px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--accent-gl);animation:popIn .4s var(--bounce) .15s both
}
.tut-icon svg{width:28px;height:28px}
.tut-title{font-family:var(--f-disp);font-size:22px;font-weight:700;letter-spacing:-.02em;margin-bottom:8px}
.tut-text{font-size:13.5px;color:var(--ink2);line-height:1.6;margin-bottom:18px}
.tut-features{
  display:grid;grid-template-columns:repeat(2,1fr);gap:8px;
  margin-bottom:14px
}
.tut-feat{
  background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-sm);
  padding:10px;text-align:left;display:flex;gap:8px;align-items:flex-start
}
.tut-feat-ico{
  width:30px;height:30px;border-radius:8px;flex-shrink:0;
  background:var(--accent-soft);color:var(--accent);
  display:flex;align-items:center;justify-content:center
}
.tut-feat-ico svg{width:14px;height:14px}
.tut-feat-text{font-size:11px;color:var(--ink2);line-height:1.45}
.tut-feat-text strong{color:var(--ink);font-weight:700;display:block;font-size:11.5px;margin-bottom:1px}

/* #12: tutorial donate field */
.tut-donate-field{
  background:linear-gradient(135deg,var(--accent-soft),transparent);
  border:1px dashed var(--accent);border-radius:12px;
  padding:14px;margin-bottom:14px;position:relative;overflow:hidden
}
.tut-donate-head{
  display:flex;align-items:center;gap:9px;margin-bottom:8px
}
.tut-donate-ico{
  width:30px;height:30px;border-radius:50%;flex-shrink:0;
  background:var(--accent);color:#fff;
  display:flex;align-items:center;justify-content:center;
  animation:coinPulse 1.5s ease-in-out infinite
}
.tut-donate-ico svg{width:14px;height:14px}
.tut-donate-title{font-size:13px;font-weight:700;color:var(--ink);text-align:left}
.tut-donate-text{font-size:11.5px;color:var(--ink2);line-height:1.5;margin-bottom:8px;text-align:left}
.tut-donate-btn{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--accent);color:#fff;border:none;padding:7px 14px;border-radius:var(--r-pill);
  font-size:11.5px;font-weight:700;cursor:pointer;transition:var(--t);
  font-family:var(--f-body)
}
.tut-donate-btn:hover{filter:brightness(1.15);transform:translateY(-1px)}

.tut-actions{display:flex;justify-content:space-between;align-items:center;gap:10px}
.tut-skip{
  background:transparent;border:none;color:var(--ink3);font-size:12px;cursor:pointer;
  padding:6px 10px;border-radius:6px;transition:var(--t);font-family:var(--f-body)
}
.tut-skip:hover{color:var(--ink2);background:var(--surface2)}
.tut-nav{display:flex;gap:6px}
.tut-prev,.tut-next{
  display:inline-flex;align-items:center;gap:5px;
  background:var(--ink);color:var(--surface);border:none;border-radius:8px;
  padding:8px 14px;font-size:12px;font-weight:700;cursor:pointer;
  font-family:var(--f-body);transition:var(--t)
}
.tut-prev{background:transparent;color:var(--ink2);border:1px solid var(--line)}
.tut-prev:hover{border-color:var(--ink);color:var(--ink)}
.tut-prev:disabled{opacity:.3;cursor:not-allowed}
.tut-next:hover{filter:brightness(1.2)}
.tut-prev svg,.tut-next svg{width:12px;height:12px}

@media(max-width:480px){
  .tut-features{grid-template-columns:1fr}
  .tut-card{padding:24px 20px 18px}
  .tut-title{font-size:19px}
}

/* ════ KEYBOARD HINTS ════ */
.kbd-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px dashed var(--line2);justify-content:center}
.kbd-i{font-size:10.5px;color:var(--ink3);display:inline-flex;align-items:center;gap:4px;font-family:var(--f-mono)}
.kbd{background:var(--surface2);border:1px solid var(--line);border-radius:4px;padding:1px 6px;font-size:10px;font-weight:700;color:var(--ink2)}
@media(max-width:600px){.kbd-row{display:none}}

/* ════ RIPPLE ════ */
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.5);transform:scale(0);animation:ripple .6s ease-out;pointer-events:none}
