:root{--navy:#12395F;--gold:#C8922F;--bg:#0f2038;--panel:#173251;--text:#eaf0f7;--muted:#9db4cf;--line:#274b73;--green:#1d9e75}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:radial-gradient(1200px 800px at 50% -10%,#1c3a5e,#0c1a2e);color:var(--text)}#app{min-height:100vh;display:flex;flex-direction:column}.home{max-width:480px;margin:0 auto;padding:28px 18px;width:100%;display:flex;flex-direction:column;min-height:100vh}.topnav{display:flex;justify-content:flex-end;align-items:center;padding-top:4px}.langsw{display:flex;gap:4px;background:#ffffff0f;border:1px solid var(--line);border-radius:20px;padding:3px}.langsw .lang{border:none;background:transparent;color:var(--muted);cursor:pointer;padding:5px 11px;border-radius:16px;font-size:13px;font-weight:600}.langsw .lang.on{background:var(--gold);color:#2a1e04}.logo{text-align:center;margin:12px 0 18px}.logo.small{margin:8px 0 14px;text-align:left}.logo .mark{display:inline-flex;width:74px;height:74px;align-items:center;justify-content:center;font-size:44px;background:#c0392b;color:#fff;border-radius:18px;box-shadow:0 6px 20px #00000059;font-family:Songti SC,SimSun,serif}.logo h1{margin:12px 0 2px;font-size:28px;font-weight:700}.logo .by{margin:0;color:var(--gold);font-size:13px;letter-spacing:.14em}.menu{display:flex;flex-direction:column;gap:12px;margin-top:8px}.tile{display:flex;align-items:center;gap:14px;text-align:left;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:14px;padding:14px 16px;cursor:pointer;transition:.15s}.gicon{width:54px;height:54px;flex:0 0 54px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:30px;font-family:KaiTi,Songti SC,Segoe UI Symbol,serif;box-shadow:0 3px 10px #0000004d}.ttw{min-width:0}.tile:hover:not(:disabled){border-color:var(--gold);transform:translateY(-1px)}.tile.primary{background:linear-gradient(135deg,#1b4c7e,#12395f);border-color:#2f6ba5}.tile:disabled{opacity:.5;cursor:default}.tile .tt{font-size:18px;font-weight:600}.tile .ts{font-size:13px;color:var(--muted);margin-top:3px}.foot{text-align:center;color:var(--muted);font-size:13px;margin-top:auto;padding-top:18px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px}.label{color:var(--muted);font-size:13px;margin:10px 0 8px}.levels{display:flex;flex-direction:column;gap:10px}.level{flex-direction:row;justify-content:space-between;align-items:center}.level{display:flex;flex-direction:column;gap:2px;align-items:flex-start;border:1px solid var(--line);background:#0f2743;color:var(--text);border-radius:12px;padding:12px;cursor:pointer}.level b{font-size:15px}.level span{font-size:12px;color:var(--muted)}.level.sel{border-color:var(--gold);background:#173a5c}.sides{display:flex;gap:10px}.side{flex:1;border:1px solid var(--line);background:#0f2743;color:var(--text);border-radius:12px;padding:12px;cursor:pointer}.side.sel{border-color:var(--gold);background:#173a5c}.row2{display:flex;justify-content:space-between;margin-top:18px;gap:10px}.btn{background:var(--navy);color:#fff;border:none;padding:10px 18px;border-radius:10px;cursor:pointer;font-size:15px}.btn.primary{background:linear-gradient(135deg,#e0a63a,#c8922f);color:#3a2a06;font-weight:600}.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--text)}.btn:hover{filter:brightness(1.05)}.btn.sm{padding:6px 12px;font-size:13px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}.empty{color:var(--muted);text-align:center;padding:18px}.lb-row{display:flex;align-items:center;gap:10px;padding:9px 8px;border-bottom:1px solid var(--line)}.lb-row.lb-head{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.lb-rank{width:34px;text-align:center;font-weight:600;color:var(--gold)}.lb-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-rating{width:60px;text-align:right;font-weight:600}.lb-wl{width:110px;text-align:right;color:var(--muted);font-size:13px}.game{display:flex;flex-direction:column;min-height:100vh}.topbar{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#0003}.topbar .status{flex:1;text-align:center;font-weight:600}.topbar .acts{display:flex;gap:8px}.boardwrap{flex:1;display:flex;align-items:center;justify-content:center;padding:8px;min-height:0}.boardwrap canvas{aspect-ratio:9 / 10;height:min(88vh,calc(96vw * 10 / 9));width:auto;max-width:96vw;border-radius:12px;box-shadow:0 10px 40px #00000073;touch-action:none}
