:root{
  --bg:#f6f3ed; --card:#fffaf2; --ink:#26221c; --muted:#776f63;
  --line:#e5dac8; --accent:#8b5e34; --accent2:#2f6f5e; --danger:#b4433d;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
.app-header{padding:18px 16px 10px;display:flex;justify-content:space-between;gap:12px;align-items:center}
.header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
h1{font-size:24px;margin:0} h2,h3{margin-top:0}
p{line-height:1.7}
.tabs{display:flex;gap:8px;overflow-x:auto;padding:8px 12px;position:sticky;top:0;background:rgba(246,243,237,.95);backdrop-filter:blur(8px);z-index:2}
button{border:0;border-radius:999px;padding:10px 14px;background:var(--accent);color:white;font-weight:700;cursor:pointer;white-space:nowrap}
button.ghost{background:#eee3d3;color:var(--ink)}
button.danger{background:var(--danger)}
.tabs button{background:#e9dfd0;color:var(--ink)}
.tabs button.active{background:var(--accent2);color:#fff}
main{padding:12px 14px 30px;max-width:1050px;margin:auto}
.view{display:none}.view.active{display:block}.hidden{display:none!important}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:0 10px 30px rgba(70,45,20,.06);margin-bottom:14px}
.hero{grid-column:1/-1}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}
.stats div{background:#f1eadf;border-radius:18px;padding:14px;text-align:center}
.stats strong{font-size:32px}.stats span{font-size:14px;margin-left:2px}.stats small{display:block;color:var(--muted)}
.quick,.controls,.judge,.form-row,.toolbar,.quick-record,.branch-status{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0;align-items:center}
.toolbar{background:#f2eadf;border-radius:16px;padding:10px}
.toolbar label{display:flex;align-items:center;gap:6px;font-size:14px}
.toolbar input[type=number]{width:80px;padding:8px}
input,textarea,select{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff;color:var(--ink);font-size:16px}
.form-row input,.form-row select{flex:1;min-width:180px}.form-row button{align-self:stretch}
textarea{min-height:180px;resize:vertical}
.word-card{text-align:center;background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;margin-top:12px}
.progress-line{display:flex;justify-content:space-between;color:var(--muted);font-size:13px}
.hanzi{font-size:44px;font-weight:800;word-break:break-word}.pinyin{font-size:20px;color:var(--accent2);margin:8px}.meaning{font-size:22px;margin-top:12px;white-space:pre-wrap}
.list{list-style:none;padding:0;margin:10px 0}.list li{border-bottom:1px solid var(--line);padding:10px 4px;display:flex;justify-content:space-between;gap:8px;align-items:center}
.list small{color:var(--muted)}
.muted{color:var(--muted);font-size:14px}
#mediaEl{width:100%;max-height:360px;background:#111;border-radius:16px;margin-top:12px}
.ab{color:var(--muted);margin:8px 0}
.board{display:grid;grid-template-columns:repeat(8,38px);gap:4px;margin:14px 0}
.cell{width:38px;height:38px;border-radius:9px;background:#2f6f5e;display:grid;place-items:center}
.cell.hint{outline:3px solid rgba(255,255,255,.6)}
.disc{width:28px;height:28px;border-radius:50%}.black{background:#171717}.white{background:#f5f5f5}
.dog-box{display:flex;gap:14px;align-items:center}.dog{font-size:54px;animation:float 2.4s infinite ease-in-out}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.mini-table{max-height:260px;overflow:auto;background:white;border-radius:14px;border:1px solid var(--line)}
.mini-table table{width:100%;border-collapse:collapse;font-size:13px}
.mini-table td,.mini-table th{border-bottom:1px solid var(--line);padding:8px;text-align:left}
.segment-title{min-width:0;word-break:break-word}
@media(max-width:520px){
  .app-header{align-items:flex-start}.hanzi{font-size:38px}.board{grid-template-columns:repeat(8,34px)}
  .cell{width:34px;height:34px}.disc{width:25px;height:25px}.list li{align-items:flex-start;flex-direction:column}
}
