/* ============================================================
   AI通识学习 · 在线自测
   Design tokens + mobile-first layout
   ============================================================ */

:root{
  --bg:#F6F7FC;
  --surface:#FFFFFF;
  --surface-soft:#F8F9FE;
  --text:#161927;
  --text-2:#5C6275;
  --text-3:#8A90A4;
  --line:#E8EAF3;
  --line-strong:#D9DCEF;

  --primary:#4F46E5;
  --primary-2:#7C3AED;
  --primary-soft:#EEEBFF;
  --primary-ink:#3B32C9;

  --teal:#0E9F9F;
  --teal-2:#12B886;
  --teal-soft:#E3F7F3;

  --ok:#0E9F6E;
  --ok-bg:#E7F8F1;
  --ok-line:#BFE9D9;
  --ok-ink:#0A7A55;

  --bad:#E02424;
  --bad-bg:#FDECEC;
  --bad-line:#F7C8C8;
  --bad-ink:#B91C1C;

  --radius-xl:22px;
  --radius-lg:18px;
  --radius:14px;
  --radius-sm:10px;

  --shadow-sm:0 1px 2px rgba(20,24,50,.04), 0 4px 14px rgba(20,24,50,.045);
  --shadow:0 12px 34px rgba(24,28,60,.09);
  --maxw:760px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:var(--font);
  background:var(--bg);
  color:var(--text);
  font-size:16px;
  line-height:1.6;
  min-height:100vh;
  color-scheme:light;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
[hidden]{display:none!important;}
button{font-family:inherit;}
::selection{background:rgba(99,91,240,.18);}

.bg-decor{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(640px 420px at 10% -8%, rgba(99,91,240,.16), transparent 62%),
    radial-gradient(520px 360px at 102% -4%, rgba(14,159,159,.12), transparent 60%),
    linear-gradient(180deg,#F2F3FF 0%, #F6F7FC 360px, #F6F7FC 100%);
}

.app{
  position:relative;z-index:1;
  max-width:var(--maxw);
  margin:0 auto;
  padding:26px 18px 56px;
}

.view{animation:viewIn .28s cubic-bezier(.2,.7,.3,1);}
@keyframes viewIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
/* Views with a fixed action bar must not animate transform (it would re-anchor fixed children). */
.view.has-actions{animation:viewFade .22s ease;}
@keyframes viewFade{from{opacity:0}to{opacity:1}}

/* ---------------- Home ---------------- */
.home{padding-top:14px;}
.brand-pill{
  display:inline-flex;align-items:center;gap:8px;
  background:#EDEBFF;color:#4B41D6;
  font-weight:750;font-size:12.5px;letter-spacing:.04em;
  padding:7px 13px;border-radius:999px;
}
.brand-pill .dot{
  width:7px;height:7px;border-radius:50%;
  background:linear-gradient(135deg,#5B5BF0,#8B5CF6);
  box-shadow:0 0 0 3px rgba(99,91,240,.14);
}
.hero-title{
  margin:16px 0 6px;
  font-size:clamp(32px,9vw,44px);
  line-height:1.12;font-weight:800;letter-spacing:-.02em;
  background:linear-gradient(118deg,#232a63 0%,#4B41D6 52%,#8B5CF6 100%);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
}
.hero-sub{margin:0 0 26px;color:var(--text-2);font-size:15px;letter-spacing:.01em;}

.mode-grid{display:grid;grid-template-columns:1fr;gap:14px;}
@media(min-width:660px){.mode-grid{grid-template-columns:1fr 1fr;gap:16px;}}
.mode-card{
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:18px;align-items:flex-start;
  text-align:left;padding:22px;
  border-radius:var(--radius-xl);border:1px solid var(--line);
  background:linear-gradient(180deg,#fff,#FCFCFF);
  box-shadow:var(--shadow-sm);
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  -webkit-tap-highlight-color:transparent;
}
.mode-card::after{content:"";position:absolute;right:-42px;top:-42px;width:150px;height:150px;border-radius:50%;pointer-events:none;opacity:.55;}
.mode-card.study::after{background:radial-gradient(circle,rgba(99,91,240,.15),transparent 70%);}
.mode-card.exam::after{background:radial-gradient(circle,rgba(14,159,159,.15),transparent 70%);}
.mode-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--line-strong);}
.mode-card:active{transform:translateY(-1px) scale(.995);}
.mode-icon{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;color:#fff;flex:0 0 auto;}
.mode-icon svg{width:28px;height:28px;}
.mode-card.study .mode-icon{background:linear-gradient(135deg,#5B5BF0,#8B5CF6);box-shadow:0 10px 22px rgba(99,91,240,.3);}
.mode-card.exam .mode-icon{background:linear-gradient(135deg,#0E9F9F,#12B886);box-shadow:0 10px 22px rgba(14,159,159,.28);}
.mode-body{display:flex;flex-direction:column;gap:6px;width:100%;}
.mode-kicker{font-size:11.5px;font-weight:800;letter-spacing:.12em;color:var(--text-3);}
.mode-name{font-size:22px;font-weight:800;letter-spacing:-.01em;color:var(--text);}
.mode-desc{font-size:14px;color:var(--text-2);line-height:1.6;margin-top:2px;}
.mode-cta{display:inline-flex;align-items:center;gap:4px;margin-top:12px;font-weight:750;font-size:14px;color:var(--primary);}
.mode-card.exam .mode-cta{color:var(--teal);}
.mode-cta svg{width:16px;height:16px;transition:transform .18s ease;}
.mode-card:hover .mode-cta svg{transform:translateX(3px);}

.home-stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:10px;
  margin-top:22px;padding:16px 8px;
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);
}
.home-stats>div{display:flex;flex-direction:column;align-items:center;gap:2px;}
.home-stats b{font-size:22px;font-weight:800;letter-spacing:-.01em;}
.home-stats span{font-size:12px;color:var(--text-3);}
.home-foot{text-align:center;color:var(--text-3);font-size:12.5px;margin:18px 0 0;}

/* ---------------- Page head ---------------- */
.page-head{display:flex;align-items:center;gap:12px;margin:4px 0 18px;}
.page-head-text h1{margin:0;font-size:22px;font-weight:800;letter-spacing:-.01em;}
.page-head-text p{margin:2px 0 0;font-size:13.5px;color:var(--text-2);}

.icon-btn{
  width:42px;height:42px;flex:0 0 auto;
  border-radius:12px;border:1px solid var(--line);
  background:var(--surface);color:var(--text-2);
  display:grid;place-items:center;cursor:pointer;transition:.16s;
  -webkit-tap-highlight-color:transparent;
}
.icon-btn:hover{color:var(--text);border-color:var(--line-strong);}
.icon-btn svg{width:20px;height:20px;}

/* ---------------- Scope select ---------------- */
.scope-list{display:flex;flex-direction:column;gap:10px;}
.scope-card{
  display:flex;align-items:center;gap:14px;width:100%;
  padding:15px 16px;text-align:left;
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);
  cursor:pointer;transition:.16s;
  -webkit-tap-highlight-color:transparent;
}
.scope-card:hover{border-color:var(--line-strong);transform:translateY(-1px);box-shadow:var(--shadow);}
.scope-num{
  width:46px;height:46px;flex:0 0 auto;border-radius:13px;
  background:var(--primary-soft);color:var(--primary-ink);
  display:grid;place-items:center;font-weight:800;font-size:14px;letter-spacing:.02em;
}
.scope-card.all .scope-num{background:linear-gradient(135deg,#5B5BF0,#8B5CF6);color:#fff;font-size:12px;}
.scope-info{flex:1;min-width:0;display:flex;flex-direction:column;}
.scope-title{font-size:15.5px;font-weight:700;color:var(--text);}
.scope-desc{font-size:12.5px;color:var(--text-3);margin-top:1px;}
.scope-mini{height:4px;max-width:220px;background:#EFF1F8;border-radius:999px;overflow:hidden;margin-top:7px;}
.scope-mini>span{display:block;height:100%;background:linear-gradient(90deg,#5B5BF0,#8B5CF6);border-radius:999px;}
.scope-arrow{color:var(--text-3);font-size:18px;font-weight:700;}
.hint-line{margin:18px 4px 0;font-size:12.5px;color:var(--text-3);text-align:center;}

/* ---------------- Session bar / progress ---------------- */
.session-bar{display:flex;align-items:center;gap:12px;margin:2px 0 14px;}
.session-mid{flex:1;min-width:0;}
.session-title{font-size:16px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.session-sub{font-size:12px;color:var(--text-3);font-variant-numeric:tabular-nums;letter-spacing:.05em;}

.progress-block{margin-bottom:16px;}
.progress{height:8px;background:#E9EBF6;border-radius:999px;overflow:hidden;}
.progress-fill{height:100%;width:0;min-width:8px;background:linear-gradient(90deg,#5B5BF0,#8B5CF6);border-radius:999px;transition:width .3s ease;}
.progress-meta{margin-top:8px;font-size:12.5px;color:var(--text-3);}
.progress-meta b{color:var(--text);font-weight:750;}
.dot-sep{margin:0 8px;color:#C7CAD9;}

/* ---------------- Question card ---------------- */
.q-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-xl);padding:20px;box-shadow:var(--shadow-sm);
}
@media(min-width:560px){.q-card{padding:24px;}}
.q-head{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap;}
.q-no{margin-left:auto;font-size:12.5px;font-weight:700;color:var(--text-3);}
.badge{
  display:inline-flex;align-items:center;
  padding:4px 10px;border-radius:999px;
  font-size:12px;font-weight:750;letter-spacing:.01em;white-space:nowrap;
}
.badge.single{background:#E9EEFF;color:#3143B8;}
.badge.multi{background:#F2E8FF;color:#7C3AED;}
.badge.tag{background:#F1F2F8;color:#6B7185;}

.q-stem{margin:0 0 18px;font-size:18px;line-height:1.58;font-weight:700;letter-spacing:.005em;color:var(--text);}
@media(min-width:560px){.q-stem{font-size:19.5px;}}

.options{display:flex;flex-direction:column;gap:10px;}
.option{
  display:flex;align-items:center;gap:12px;width:100%;
  text-align:left;padding:13px 15px;
  background:var(--surface);border:1.5px solid var(--line);
  border-radius:var(--radius);cursor:pointer;
  font-size:15.5px;line-height:1.5;color:var(--text);
  transition:border-color .15s, background .15s, transform .12s;
  -webkit-tap-highlight-color:transparent;
}
.option:hover:not(:disabled){border-color:#C6C9E8;background:#FBFBFF;}
.option:active:not(:disabled){transform:scale(.994);}
.option:disabled{cursor:default;}
.option.selected{border-color:var(--primary);background:var(--primary-soft);}
.option.correct{border-color:var(--ok);background:var(--ok-bg);}
.option.wrong{border-color:var(--bad);background:var(--bad-bg);}
.opt-key{
  flex:0 0 auto;width:30px;height:30px;border-radius:50%;
  display:grid;place-items:center;
  background:#F1F2F8;color:#5C6275;font-weight:800;font-size:13.5px;
  transition:.15s;
}
.option.selected .opt-key{background:var(--primary);color:#fff;}
.option.correct .opt-key{background:var(--ok);color:#fff;}
.option.wrong .opt-key{background:var(--bad);color:#fff;}
.opt-text{flex:1;min-width:0;}
.opt-mark{flex:0 0 auto;font-weight:900;font-size:18px;line-height:1;}
.opt-mark.ok{color:var(--ok);}
.opt-mark.bad{color:var(--bad);}

/* ---------------- Feedback / explanation ---------------- */
.feedback{margin-top:18px;border-radius:var(--radius-lg);padding:16px;border:1px solid transparent;animation:fbIn .22s ease;}
@keyframes fbIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.feedback.ok{background:var(--ok-bg);border-color:var(--ok-line);}
.feedback.bad{background:var(--bad-bg);border-color:var(--bad-line);}
.fb-head{display:flex;align-items:center;gap:8px;font-weight:800;font-size:15.5px;margin-bottom:10px;}
.feedback.ok .fb-head{color:var(--ok-ink);}
.feedback.bad .fb-head{color:var(--bad-ink);}
.fb-icon{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:13px;font-weight:900;}
.feedback.ok .fb-icon{background:var(--ok);}
.feedback.bad .fb-icon{background:var(--bad);}
.fb-row{display:flex;gap:10px;font-size:14.5px;margin:3px 0;}
.fb-label{color:var(--text-2);flex:0 0 64px;}
.fb-val{color:var(--text);}
.fb-val.strong{font-weight:800;letter-spacing:.04em;}
.fb-exp{margin-top:12px;padding-top:12px;border-top:1px dashed rgba(20,24,50,.12);}
.fb-exp-label{font-size:11px;font-weight:800;letter-spacing:.14em;color:var(--text-3);margin-bottom:5px;}
.fb-exp p{margin:0;font-size:14.5px;line-height:1.72;color:#33384B;}

/* ---------------- Fixed action bar ---------------- */
.action-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:30;
  padding:12px 18px calc(12px + env(safe-area-inset-bottom));
  background:linear-gradient(180deg,rgba(246,247,252,0) 0%,rgba(246,247,252,.88) 34%,#F6F7FC 100%);
}
.action-inner{max-width:var(--maxw);margin:0 auto;display:flex;gap:10px;}
.action-inner .btn{min-height:50px;}
.grow{flex:1;}
.view.has-actions{padding-bottom:96px;}

/* ---------------- Buttons ---------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:12px 18px;border-radius:13px;border:1px solid transparent;
  background:transparent;color:var(--text);
  font-size:15px;font-weight:750;cursor:pointer;white-space:nowrap;
  transition:.16s;-webkit-tap-highlight-color:transparent;
}
.btn.primary{background:linear-gradient(135deg,#5B5BF0,#7C5CFC);color:#fff;box-shadow:0 8px 20px rgba(99,91,240,.3);}
.btn.primary:hover:not(:disabled){box-shadow:0 10px 26px rgba(99,91,240,.4);transform:translateY(-1px);}
.btn.primary:active:not(:disabled){transform:translateY(0);}
.btn.ghost{background:var(--surface);border-color:var(--line);color:var(--text-2);}
.btn.ghost:hover:not(:disabled){color:var(--text);border-color:var(--line-strong);}
.btn:disabled{opacity:.42;cursor:not-allowed;box-shadow:none;transform:none;}
.btn.tiny{padding:8px 12px;font-size:13px;border-radius:10px;}
.btn.block{width:100%;}
.btn.lg{padding:15px 20px;font-size:16px;border-radius:14px;}
.btn.danger{color:var(--bad);border-color:var(--bad-line);}
.btn.danger:hover{background:var(--bad-bg);}
.btn-arrow{font-size:16px;line-height:1;}

/* ---------------- Exam intro ---------------- */
.intro-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-xl);padding:26px 22px;
  box-shadow:var(--shadow-sm);text-align:center;
}
.intro-badge{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.18em;color:var(--teal);background:var(--teal-soft);padding:6px 12px;border-radius:999px;}
.intro-card h2{margin:14px 0 6px;font-size:24px;font-weight:800;letter-spacing:-.01em;}
.intro-sub{margin:0 0 20px;color:var(--text-2);font-size:14.5px;}
.rule-list{list-style:none;margin:0 0 22px;padding:0;text-align:left;display:flex;flex-direction:column;gap:12px;}
.rule-list li{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;color:#3A3F52;line-height:1.6;}
.rule-ic{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--surface-soft);border:1px solid var(--line);color:var(--text-2);font-size:12px;font-weight:800;display:grid;place-items:center;margin-top:1px;}
.intro-foot{margin:14px 0 0;font-size:12.5px;color:var(--text-3);}

/* ---------------- Modal / sheet ---------------- */
.modal-backdrop{position:fixed;inset:0;z-index:60;background:rgba(18,20,40,.46);backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center;}
@media(min-width:640px){.modal-backdrop{align-items:center;padding:20px;}}
.modal{
  width:100%;max-width:560px;background:#fff;
  border-radius:22px 22px 0 0;
  padding:18px 18px calc(18px + env(safe-area-inset-bottom));
  max-height:82vh;overflow:auto;
  box-shadow:0 -10px 50px rgba(10,12,30,.2);
  animation:sheetIn .24s cubic-bezier(.2,.8,.3,1);
}
@media(min-width:640px){.modal{border-radius:22px;animation:popIn .18s ease;}}
@keyframes sheetIn{from{transform:translateY(30px);opacity:.7}to{transform:none;opacity:1}}
@keyframes popIn{from{transform:scale(.97);opacity:.7}to{transform:none;opacity:1}}
.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.modal-head h3{margin:0;font-size:17px;font-weight:800;}
.modal-body{padding:2px 0;}
.modal-body.center{text-align:center;}
.modal-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);flex-wrap:wrap;}
.modal-actions{display:flex;gap:10px;margin-top:18px;}
.modal-actions .btn{flex:1;}

.jump-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:8px;}
.jump-dot{
  aspect-ratio:1/1;min-height:42px;border-radius:11px;
  border:1px solid var(--line);background:var(--surface-soft);color:var(--text-2);
  font-weight:700;font-size:13.5px;cursor:pointer;
  display:grid;place-items:center;transition:.14s;
  -webkit-tap-highlight-color:transparent;
}
.jump-dot:hover{border-color:#C6C9E8;background:#fff;}
.jump-dot.done{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok-ink);}
.jump-dot.cur{background:linear-gradient(135deg,#5B5BF0,#7C5CFC);border-color:transparent;color:#fff;box-shadow:0 6px 16px rgba(99,91,240,.3);}
.jump-legend{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-3);}
.jump-legend i{width:10px;height:10px;border-radius:3px;display:inline-block;}
.jump-legend .lg-done{background:var(--ok-bg);border:1px solid var(--ok-line);margin-left:2px;}
.jump-legend .lg-cur{background:linear-gradient(135deg,#5B5BF0,#7C5CFC);margin-left:10px;}

.finish-emoji{font-size:44px;line-height:1;margin:10px 0 12px;}
.finish-text{margin:0 0 6px;font-size:16px;}
.finish-text b{color:var(--primary);font-size:20px;}
.finish-sub{margin:0;font-size:13.5px;color:var(--text-2);}
.confirm-text{margin:0;font-size:15px;line-height:1.7;color:#3A3F52;}

/* ---------------- Result ---------------- */
.result-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-xl);padding:24px 20px 20px;
  text-align:center;box-shadow:var(--shadow-sm);
}
.ring-wrap{position:relative;width:158px;height:158px;margin:0 auto 6px;}
.ring{width:100%;height:100%;transform:rotate(-90deg);}
.ring-bg{fill:none;stroke:#EEF0F8;stroke-width:10;}
.ring-fg{fill:none;stroke:url(#ringGrad);stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .9s cubic-bezier(.2,.7,.3,1);}
.ring-text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.score{font-size:46px;font-weight:850;line-height:1;letter-spacing:-.02em;}
.unit{font-size:12.5px;color:var(--text-3);margin-top:3px;}
.verdict{display:inline-flex;align-items:center;padding:5px 14px;border-radius:999px;font-size:13px;font-weight:800;letter-spacing:.02em;}
.verdict.great{background:var(--ok-bg);color:var(--ok-ink);}
.verdict.good{background:#EAF3FF;color:#1D4ED8;}
.verdict.pass{background:#FFF4E5;color:#B45309;}
.verdict.bad{background:var(--bad-bg);color:var(--bad-ink);}
.res-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line);}
.res-metric{display:flex;flex-direction:column;gap:1px;}
.res-metric b{font-size:22px;font-weight:850;line-height:1.2;}
.res-metric span{font-size:12px;color:var(--text-3);}
.res-metric.ok b{color:var(--ok);}
.res-metric.bad b{color:var(--bad);}
.res-metric.mute b{color:var(--text-3);}

.tabs{display:flex;gap:6px;background:#EDEFF8;padding:4px;border-radius:14px;margin:18px 0 14px;}
.tab{flex:1;padding:10px;border:none;background:transparent;border-radius:10px;font-weight:750;font-size:14px;color:var(--text-2);cursor:pointer;transition:.15s;}
.tab.active{background:#fff;color:var(--text);box-shadow:0 2px 8px rgba(20,24,50,.08);}

.wrong-item{
  background:var(--surface);border:1px solid var(--line);border-left:2px solid var(--bad);
  border-radius:var(--radius-lg);padding:18px;margin-bottom:12px;box-shadow:var(--shadow-sm);
}
.wrong-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap;}
.wrong-tag{font-size:12px;color:var(--text-3);}
.wrong-no{margin-left:auto;font-size:12px;font-weight:700;color:var(--text-3);}
.wrong-stem{margin:0 0 12px;font-size:15.5px;font-weight:700;line-height:1.6;}
.ans-compare{display:flex;flex-direction:column;gap:6px;}
.ans-line{display:flex;align-items:baseline;gap:10px;font-size:14px;padding:6px 10px;border-radius:9px;}
.ans-line span{flex:0 0 66px;color:var(--text-2);font-size:13px;}
.ans-line b{font-weight:800;letter-spacing:.03em;}
.ans-line.bad{background:var(--bad-bg);}
.ans-line.bad b{color:var(--bad-ink);}
.ans-line.ok{background:var(--ok-bg);}
.ans-line.ok b{color:var(--ok-ink);}

.all-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);margin-bottom:10px;box-shadow:var(--shadow-sm);overflow:hidden;}
.all-item>summary{display:flex;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;list-style:none;}
.all-item>summary::-webkit-details-marker{display:none;}
.all-tick{flex:0 0 auto;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:13px;font-weight:900;}
.all-item.ok .all-tick{background:var(--ok);}
.all-item.bad .all-tick{background:var(--bad);}
.all-q{flex:1;min-width:0;font-size:14.5px;font-weight:650;line-height:1.5;color:var(--text);}
.all-badge{flex:0 0 auto;font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:999px;}
.all-item.ok .all-badge{background:var(--ok-bg);color:var(--ok-ink);}
.all-item.bad .all-badge{background:var(--bad-bg);color:var(--bad-ink);}
.all-body{padding:0 16px 16px;border-top:1px solid var(--line);}
.all-stem{margin:12px 0;font-size:14.5px;line-height:1.65;color:#33384B;}

.empty-state{text-align:center;padding:36px 20px;background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius-lg);color:var(--text-2);}
.empty-emoji{font-size:40px;line-height:1;margin-bottom:8px;}

.result-actions{display:flex;gap:10px;margin-top:18px;}
.result-actions .btn{flex:1;}

/* ---------------- Focus / motion / small screens ---------------- */
button:focus-visible{outline:3px solid rgba(99,91,240,.34);outline-offset:2px;}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important;}
}
@media(max-width:380px){
  .app{padding-left:14px;padding-right:14px;}
  .q-card{padding:16px;}
  .btn{padding:12px 14px;font-size:14.5px;}
  .mode-name{font-size:20px;}
}
