
:root{
  --bg:#fff8f0; --card:#ffffff; --ink:#283041; --muted:#687083;
  --accent:#e86f51; --accent2:#ffd166; --ok:#2a9d8f; --bad:#d62828;
  --shadow:0 20px 60px rgba(40,48,65,.12); --radius:24px;
}
*{box-sizing:border-box}
body{
  margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans","Yu Gothic",sans-serif;
  background:radial-gradient(circle at top left,#fff0d6,transparent 35%),var(--bg);
  color:var(--ink); line-height:1.6;
}
.hero{
  display:flex; justify-content:space-between; gap:20px; align-items:stretch;
  padding:34px 24px 18px; max-width:1100px; margin:auto;
}
.eyebrow{letter-spacing:.16em;color:var(--accent);font-weight:700;margin:0 0 6px}
h1{font-size:clamp(32px,7vw,64px);line-height:1;margin:0}
.lead{max-width:720px;color:var(--muted);font-size:17px}
.stats{display:flex; gap:10px; align-items:center}
.stats div{background:var(--card);border-radius:20px;padding:18px;min-width:88px;text-align:center;box-shadow:var(--shadow)}
.stats b{font-size:30px;display:block}.stats span{font-size:12px;color:var(--muted)}
.tabs{position:sticky;top:0;z-index:2;display:flex;gap:8px;overflow:auto;padding:10px 16px;background:rgba(255,248,240,.86);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.06)}
.tabs button,.toolbar button,.card-actions button,.rating button,.navrow button,#nextQuiz,#startListen,#stopListen,#exportCsv,#installHint{
  border:0;border-radius:999px;padding:11px 16px;background:#fff;color:var(--ink);box-shadow:0 6px 20px rgba(0,0,0,.08);font-weight:700
}
.tabs button.active{background:var(--accent);color:white}
main{max-width:1000px;margin:auto;padding:16px}
.panel{display:none}.panel.active{display:block}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 18px;align-items:center}
select,input{border:1px solid #eadfcf;border-radius:14px;padding:11px 13px;background:white;font-size:15px}
#search{min-width:min(100%,420px);flex:1}
.card,.quizbox,.listenbox,.settingsbox{
  background:rgba(255,255,255,.94);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.7)
}
.card-top,.quiz-head{display:flex;justify-content:space-between;align-items:center}
.pill{display:inline-flex;padding:6px 12px;border-radius:999px;background:#fff2cc;color:#8a5a00;font-weight:700;font-size:13px}
#hanzi{font-size:clamp(56px,18vw,128px);line-height:1.05;text-align:center;margin:26px 0 10px}
.pinyin{text-align:center;font-size:28px;color:var(--accent);font-weight:800;margin:0}
.meaning{text-align:center;font-size:24px;margin:10px 0 20px}
.hidden{visibility:hidden}
.example{background:#fff8e8;border-radius:20px;padding:16px;margin:16px 0}
.example .zh{font-size:22px;font-weight:800;margin:.2em 0}.example .py{color:var(--accent);margin:.2em 0}.example .ja{color:var(--muted);margin:.2em 0}
.card-actions,.rating,.navrow{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:14px}
.card-actions button:first-child,#nextQuiz,#startListen{background:var(--accent);color:white}
.rating button[data-rate="easy"],.rating button[data-rate="good"]{background:#e8f7f4}
.rating button[data-rate="again"]{background:#ffe8e8}
.choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:18px 0}
.choice{border:2px solid transparent;background:#fff;border-radius:18px;padding:15px;text-align:left;box-shadow:0 8px 22px rgba(0,0,0,.07);font-weight:700}
.choice.correct{border-color:var(--ok);background:#e8f7f4}
.choice.wrong{border-color:var(--bad);background:#ffe8e8}
#quiz-q{font-size:48px;text-align:center;margin:18px}
#quiz-sub{text-align:center;color:var(--muted)}
.big-current{border-radius:24px;background:#fff8e8;padding:24px;text-align:center;margin:20px 0}
#listenNow{font-size:36px;font-weight:900}
#listenSub{font-size:16px;color:var(--muted)}
.tablewrap{overflow:auto;background:white;border-radius:20px;box-shadow:var(--shadow)}
table{border-collapse:collapse;width:100%;min-width:760px}
th,td{padding:12px;border-bottom:1px solid #f0e5d6;text-align:left;vertical-align:top}
th{background:#fff2cc;position:sticky;top:0}
footer{text-align:center;color:var(--muted);padding:30px}
@media(max-width:720px){
  .hero{display:block;padding-top:22px}.stats{margin-top:16px}.stats div{flex:1}
  main{padding:12px}.card,.quizbox,.listenbox,.settingsbox{padding:18px}
  .hidden{display:none}
  #quiz-q{font-size:40px}
}
