:root{--bg:#fff8f0;--card:#fff;--ink:#2b2b2b;--mut:#8a7f77;--ac:#ff6b6b;--ac2:#ffa94d;--line:#f0e2d6}
@media(prefers-color-scheme:dark){:root{--bg:#1c1a1f;--card:#2a2730;--ink:#f1eef5;--mut:#a9a2b3;--line:#3a3642}}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 system-ui,"Microsoft YaHei",sans-serif}
.wrap{max-width:720px;margin:0 auto;padding:14px 16px 60px}
h1{font-size:1.4rem;margin:.4em 0}h2{font-size:1.1rem}
a{color:var(--ac)}
.top{display:flex;align-items:center;gap:10px}.top a{text-decoration:none}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:10px 0}
button,.btn{font:inherit;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:22px;padding:8px 16px;cursor:pointer;min-height:42px}
button.pri{background:linear-gradient(135deg,var(--ac),var(--ac2));color:#fff;border:0;font-weight:600}
button.on{background:var(--ac);color:#fff;border-color:var(--ac)}
textarea,input[type=text],input[type=number],select{font:inherit;width:100%;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.mut{color:var(--mut);font-size:.88rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.tile{display:block;text-decoration:none;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;text-align:center}
.tile b{display:block;font-size:2rem}.tile span{display:block;font-weight:600}.tile small{color:var(--mut)}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.res{font-size:1.6rem;font-weight:700;text-align:center;margin:10px 0;min-height:2.2em}
