:root{color-scheme:dark;--bg: #14100b;--panel: #221a12;--panel-hi: #2c2216;--line: #4a3a24;--line-dk: #32271717;--gold: #c9a227;--gold-hi: #f0d060;--gold-dim: #8a6d3b;--text: #e6d8b8;--dim: #9a8a68;--red: #7a2f28}*{box-sizing:border-box}body{margin:0;background:radial-gradient(1100px 500px at 50% -120px,#2a2014,#2a201400 70%),var(--bg);color:var(--text);font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-size:14px}h2,h3,.title{font-family:Songti SC,STSong,SimSun,serif;letter-spacing:1px}#root{min-height:100vh;display:flex;flex-direction:column}button{font:inherit;color:var(--text);background:linear-gradient(#342818,#221a12);border:1px solid var(--line);border-radius:3px;box-shadow:inset 0 1px #fff0c814,0 1px 2px #0006;padding:10px 14px;min-height:44px;cursor:pointer}button:hover:not(:disabled){border-color:var(--gold-dim);color:#f5ead0}button:active:not(:disabled){box-shadow:inset 0 2px 4px #00000080}button:disabled{opacity:.4;cursor:default}button.primary{background:linear-gradient(#8a682c,#5c451e);border-color:var(--gold);color:#fff3d0;text-shadow:0 1px 2px rgba(0,0,0,.55)}button.primary:hover:not(:disabled){border-color:var(--gold-hi)}button.danger{background:linear-gradient(#5c2c25,#3d1e19);border-color:#7a4a3a}.topbar{display:flex;align-items:center;gap:10px;padding:10px 14px;background:linear-gradient(#2a2014,#1b1510);border-bottom:2px solid var(--gold-dim);box-shadow:0 1px #0009,inset 0 -4px 10px #0000004d;flex-wrap:wrap}.topbar .title{font-size:17px;font-weight:700;color:var(--gold-hi);text-shadow:0 1px 3px rgba(0,0,0,.7)}.topbar .realm{font-size:12px;color:var(--dim);border:1px solid var(--line);border-radius:3px;padding:2px 8px;background:#00000040}.res{display:inline-flex;align-items:baseline;gap:5px;background:#0000004d;border:1px solid var(--line);border-radius:3px;padding:4px 10px;font-size:13px;color:var(--dim);white-space:nowrap}.res b{color:var(--gold-hi);font-size:14px}.tabs{display:flex;gap:4px;padding:8px 14px 0;background:#1b1510;border-bottom:1px solid var(--line);flex-wrap:wrap}.tabs button{border-radius:3px 3px 0 0;border-bottom:none;min-height:40px;padding:8px 20px;font-family:Songti SC,STSong,SimSun,serif;letter-spacing:2px}.tabs button.active{background:linear-gradient(#3c2e1a,#221a12);color:var(--gold-hi);border-color:var(--gold-dim);box-shadow:inset 0 2px 0 var(--gold)}.screen{flex:1;padding:14px;max-width:1100px;width:100%;margin:0 auto}.panel{background:linear-gradient(#261d13,#201810);border:1px solid var(--line);border-radius:4px;box-shadow:inset 0 0 0 1px #00000073,0 2px 6px #00000059;padding:12px}.panel h3{margin:0 0 10px;font-size:15px;color:var(--gold-hi);border-bottom:1px solid var(--line);padding-bottom:6px}.panel h3:before{content:"◆ ";color:var(--gold-dim);font-size:11px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.grid-levels{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.level-card{background:linear-gradient(#261d13,#1d160e);border:1px solid var(--line);border-top:2px solid var(--gold-dim);border-radius:4px;padding:12px;text-align:left}.level-card .name{font-family:Songti SC,STSong,SimSun,serif;font-weight:700;letter-spacing:1px}.level-card .stars{color:var(--gold-hi);letter-spacing:2px}.level-card.locked{opacity:.45;filter:grayscale(.5)}.battle-wrap{display:flex;flex-direction:column;gap:10px;padding:10px;max-width:1100px;margin:0 auto;width:100%}canvas.battle{width:100%;height:auto;display:block;border:1px solid var(--gold-dim);border-radius:4px;box-shadow:0 0 0 1px #000,0 4px 16px #00000080;touch-action:manipulation}.hud{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:14px}.hud .res b{color:var(--gold-hi)}.hud .res.lives b{color:#e05a4e}.gem{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 6px;border-radius:6px;border:1px solid rgba(0,0,0,.6);box-shadow:inset 0 8px 10px #fff6,inset 0 -8px 10px #00000059,0 1px 3px #0009;font-weight:700;color:#171310;text-shadow:0 1px 0 rgba(255,255,255,.35);cursor:pointer}.gem.selected{outline:2px solid var(--gold-hi);outline-offset:1px}.gem .tier{font-size:11px;margin-left:1px}.gemchip{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:3px;background:#00000059;border:1px solid var(--line);border-radius:5px;min-height:44px}.gemchip:hover:not(:disabled){border-color:var(--gold-dim)}.gemchip.selected{outline:2px solid var(--gold-hi);outline-offset:1px}.gemchip-tier{position:absolute;right:2px;bottom:1px;font-size:11px;font-weight:700;color:#fff;text-shadow:0 1px 2px #000,0 0 3px #000}.gemchip-label{margin-left:4px;font-size:12px;color:var(--text)}.wave-preview{display:flex;gap:6px;flex-wrap:wrap;font-size:13px}.wave-preview .chip{background:#0000004d;border:1px solid var(--line);border-radius:3px;padding:4px 8px;color:var(--text)}.result-overlay{position:fixed;inset:0;background:#0a0704d9;display:flex;align-items:center;justify-content:center;z-index:10}.result-card{background:linear-gradient(#2c2214,#1d160e);border:2px solid var(--gold);border-radius:6px;box-shadow:0 0 0 1px #000,0 0 40px #000000e6,inset 0 0 30px #0006;padding:26px;max-width:420px;width:92%;text-align:center}.result-card h2{margin-top:0;color:var(--gold-hi);letter-spacing:4px}.result-card .starline{font-size:30px;color:var(--gold-hi);letter-spacing:6px}.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--red);border:1px solid #a05040;color:#ffe9d8;padding:10px 18px;border-radius:4px;box-shadow:0 4px 14px #0009;z-index:20}.muted{color:var(--dim);font-size:13px}.spacer{flex:1}.chapter-tabs{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}.chapter-tabs button{font-family:Songti SC,STSong,SimSun,serif;letter-spacing:1px}.chapter-tabs button.active{background:linear-gradient(#8a682c,#5c451e);border-color:var(--gold);color:#fff3d0}.daily-panel{border-top:2px solid #7a5aa0}.task-chip{display:flex;align-items:center;gap:8px;background:#00000040;border:1px solid var(--line);border-radius:4px;padding:6px 10px}.task-chip button{min-height:34px;padding:4px 10px;font-size:13px}.task-ready{color:var(--gold-hi)}.book-card{display:flex;align-items:center;gap:8px;background:#00000040;border:1px solid var(--line);border-radius:4px;padding:8px 12px;min-width:150px}.book-unknown{opacity:.5}.book-dot{width:18px;height:18px;border-radius:50%;flex-shrink:0;box-shadow:0 1px 3px #0009}.book-gem-slot{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px dashed var(--line);border-radius:5px;color:var(--line);font-size:12px}.dmg-breakdown{margin-top:12px;text-align:left}.dmg-row{display:flex;align-items:center;gap:8px;margin-bottom:4px;font-size:13px}.dmg-label{width:52px;flex-shrink:0;color:var(--dim)}.dmg-bar-track{flex:1;height:10px;background:#0006;border-radius:2px;overflow:hidden}.dmg-bar{display:block;height:100%;background:linear-gradient(90deg,var(--gold-dim),var(--gold-hi))}.dmg-pct{width:38px;text-align:right;color:var(--gold-hi)}.tutorial-hint{background:#c9a2271f;border:1px solid var(--gold-dim);border-radius:4px;padding:8px 12px;color:var(--gold-hi);font-size:14px}.login-wrap{flex:1;display:flex;align-items:center;justify-content:center;min-height:100vh}.login-card{display:flex;flex-direction:column;gap:10px;width:min(92vw,340px);background:linear-gradient(#2c2214,#1d160e);border:2px solid var(--gold);border-radius:6px;box-shadow:0 0 0 1px #000,0 0 50px #000c;padding:28px;text-align:center}.login-title{margin:0;font-size:30px;color:var(--gold-hi);letter-spacing:8px;text-shadow:0 2px 6px rgba(0,0,0,.8)}.login-realm{color:var(--dim);font-size:13px;margin-bottom:8px}.login-card input{font:inherit;color:var(--text);background:#00000059;border:1px solid var(--line);border-radius:3px;padding:10px 12px;min-height:44px}.login-card input:focus{outline:none;border-color:var(--gold-dim)}.login-err{color:#ff8a76;font-size:13px}.rank-table{width:100%;border-collapse:collapse}.rank-table th,.rank-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}.rank-table th{color:var(--dim);font-weight:400;font-size:13px}.rank-table tr:first-child td{color:var(--gold-hi)}.rank-me td{background:#c9a2271a}@media(max-width:640px){.screen{padding:8px}.hud{font-size:13px;gap:6px}.res{padding:3px 8px;font-size:12px}.tabs button{padding:8px 12px;letter-spacing:1px}}
