[hidden] { display: none !important; }
:root { --gold:#ffcf5a; --ink:#f3ead8; --mute:#b9ad98; --card:rgba(22,18,15,.92); --line:rgba(255,190,80,.22); --red:#e23b2e; --bg:#120e0c; }
* { box-sizing:border-box; }
html,body { margin:0; min-height:100%; background:var(--bg); color:var(--ink); font-family:-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif; }
body { background:radial-gradient(ellipse at 30% -10%, #5a2e1c 0, transparent 55%), radial-gradient(ellipse at 90% 110%, #3a1a10 0, transparent 50%), var(--bg); }
a { color:var(--gold); }
h1 { margin:0; font-size:30px; color:var(--gold); text-shadow:0 3px 0 #5a1a00, 0 0 20px rgba(255,120,0,.35); letter-spacing:1px; }
h2 { margin:0 0 10px; font-size:17px; color:var(--gold); }
.wrap { max-width:1180px; margin:0 auto; padding:18px 16px 40px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:16px; padding:16px 18px; box-shadow:0 14px 40px rgba(0,0,0,.45); }
.center { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:16px; }
.auth { width:min(420px,100%); text-align:center; }
.auth p.sub { color:var(--mute); margin:6px 0 18px; }
label { display:block; text-align:left; font-size:13px; color:var(--mute); margin:10px 0 4px; }
input, select, textarea { width:100%; font:inherit; font-size:15px; color:var(--ink); background:rgba(0,0,0,.35); border:1px solid rgba(255,255,255,.18); border-radius:10px; padding:10px 12px; outline:none; }
input:focus { border-color:var(--gold); }
button, .btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; font:inherit; font-weight:800; font-size:15px; padding:10px 18px; border:0; border-radius:999px; cursor:pointer; color:#2a1200; text-decoration:none;
  background:linear-gradient(#ffd56a,#e8901c); box-shadow:0 3px 0 #8a4508; }
button:active, .btn:active { transform:translateY(2px); box-shadow:0 1px 0 #8a4508; }
button.ghost, .btn.ghost { background:rgba(255,255,255,.08); color:var(--ink); box-shadow:none; border:1px solid rgba(255,255,255,.18); }
button.danger { background:linear-gradient(#ff7a6a,#c4301f); color:#fff; box-shadow:0 3px 0 #6a1208; }
button.small, .btn.small { font-size:12px; padding:5px 10px; }
button:disabled { opacity:.5; cursor:default; }
.full { width:100%; margin-top:16px; }
.err { color:#ff8a7a; font-size:13px; min-height:18px; margin-top:8px; }
.ok { color:#9dff6a; }
.mute { color:var(--mute); font-size:13px; }
.row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.grow { flex:1; }
/* 레벨 · 계급 · 등급 배지 */
.tier { display:inline-flex; align-items:center; gap:4px; padding:2px 9px; border-radius:999px; font-size:12px; font-weight:900; color:#111; white-space:nowrap; box-shadow:inset 0 -2px 0 rgba(0,0,0,.25); }
.rank { display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:800; color:#ffe7a8; white-space:nowrap; }
.rank i { font-style:normal; color:var(--gold); letter-spacing:-1px; }
.lv { display:inline-block; min-width:34px; padding:1px 6px; border-radius:6px; background:#2b2420; border:1px solid #6a5434; font-size:12px; font-weight:900; color:var(--gold); text-align:center; }
.who { display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap; }
.who b { font-size:15px; }
.xpbar { height:8px; border-radius:4px; background:rgba(255,255,255,.1); overflow:hidden; }
.xpbar i { display:block; height:100%; background:linear-gradient(90deg,#e8901c,#ffd56a); }
table { width:100%; border-collapse:collapse; font-size:13px; }
th, td { text-align:left; padding:7px 6px; border-bottom:1px solid rgba(255,255,255,.07); white-space:nowrap; }
th { color:var(--mute); font-weight:600; font-size:12px; }
.tabs { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px; }
.tabs button { font-size:12px; padding:5px 11px; background:rgba(255,255,255,.07); color:var(--ink); box-shadow:none; border:1px solid rgba(255,255,255,.12); }
.tabs button.on { background:linear-gradient(#ffd56a,#e8901c); color:#2a1200; }
.scroll { overflow:auto; }
.chatlog { height:300px; overflow-y:auto; display:flex; flex-direction:column; gap:4px; font-size:14px; padding-right:4px; }
.chatlog .m b { color:var(--gold); margin-right:6px; }
.chatlog .m.me b { color:#9dd6ff; }
.chatlog .sys { color:var(--mute); font-size:12px; }
.chatlog .t { color:var(--mute); font-size:11px; margin-left:6px; }
.room { display:flex; align-items:center; gap:10px; padding:10px; border-radius:12px; background:rgba(255,255,255,.04); margin-bottom:6px; }
.room .n { font-weight:900; color:var(--gold); }
.pill { padding:2px 8px; border-radius:999px; font-size:11px; font-weight:800; background:rgba(255,255,255,.1); }
.pill.play { background:#c4301f; color:#fff; } .pill.wait { background:#3a6a2a; color:#fff; }
.modal { position:fixed; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.6); padding:16px; z-index:20; }
.modal.hide { display:none; }
@media (max-width:640px) { h1 { font-size:24px; } .wrap { padding:12px 16px 30px; } }
.gender { margin-top:10px; } .gender .tabs { margin:0; }
