:root{
  --bg:#f6f1e7;--card:#fffdf8;--ink:#2b2620;--sub:#6f665a;--line:#e3d9c6;
  --chord:#b4472b;--hi:#fbe3b8;--hi2:#f2c46d;--accent:#2f6b5a;--accent-ink:#fff;--soft:#efe7d6;--danger:#b23a2a;
  --tap:48px;--radius:14px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#1c1a17;--card:#25221e;--ink:#ece4d6;--sub:#a59a89;--line:#3a352e;
  --chord:#f0916f;--hi:#4a3a1f;--hi2:#c9963a;--accent:#5fae94;--accent-ink:#10201a;--soft:#2e2a24;--danger:#f08a7a;}}
:root[data-theme="dark"]{--bg:#1c1a17;--card:#25221e;--ink:#ece4d6;--sub:#a59a89;--line:#3a352e;
  --chord:#f0916f;--hi:#4a3a1f;--hi2:#c9963a;--accent:#5fae94;--accent-ink:#10201a;--soft:#2e2a24;--danger:#f08a7a;}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{touch-action:manipulation;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 -apple-system,"PingFang SC","Noto Sans CJK SC","Source Han Sans SC","Microsoft YaHei",sans-serif}
button,input,select{font:inherit;color:inherit}
button{min-height:var(--tap);padding:0 18px;border-radius:12px;border:1px solid var(--line);background:var(--card);cursor:pointer;user-select:none;-webkit-user-select:none}
button:active{transform:scale(.97)}
button.on,button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
button.ghost{background:transparent;border-color:transparent}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.meta{color:var(--sub);font-size:15px}
.chip{display:inline-flex;align-items:center;gap:4px;background:var(--soft);border-radius:999px;padding:2px 12px;font-size:14px;white-space:nowrap}
.chip b{color:var(--chord)}
h1,h2,h3{margin:0}
.serif{font-family:"Songti SC","STSong","Noto Serif CJK SC","Source Han Serif SC",serif}
.hide{display:none!important}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:12px;font-size:15px;z-index:99;opacity:0;transition:opacity .2s;pointer-events:none}
.toast.show{opacity:1}
