/* HexaWar Admin — same look as the game (wood planks, gold candy buttons, paper cards) but a separate, self-contained site */
@font-face{font-family:'HW Lilita';src:url('fonts/lilita.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'HW Nunito';src:url('fonts/nunito-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'HW Nunito';src:url('fonts/nunito-700.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'HW Nunito';src:url('fonts/nunito-800.woff2') format('woff2');font-weight:800;font-display:swap}
@font-face{font-family:'HW Nunito';src:url('fonts/nunito-900.woff2') format('woff2');font-weight:900;font-display:swap}
:root{--ink:#3a1a05;--wood:#8e5a30;--wood-lo:#5e351a;--gold-hi:#fff3b0;--gold:#f4b934;--gold-mid:#e19a22;--gold-lo:#a9650f;--leaf:#3f8f1b;--blood:#c92f1a;--paper:#fff8e6;--font-display:'HW Lilita','Arial Rounded MT Bold','Trebuchet MS',system-ui,sans-serif;
 --tex-wood:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='360' height='360'><filter id='f'><feTurbulence type='fractalNoise' baseFrequency='0.005 0.11' numOctaves='4' seed='11'/><feColorMatrix values='0 0 0 0 0.17 0 0 0 0 0.08 0 0 0 0 0.02 1.7 0 0 0 -0.62'/></filter><rect width='100%' height='100%' filter='url(%23f)'/></svg>");
 --tex-wood-hi:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='300'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='0.012 0.3' numOctaves='2' seed='4'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 0.85 0 0 0 0 0.6 1.2 0 0 0 -0.62'/></filter><rect width='100%' height='100%' filter='url(%23g)'/></svg>");
 --tex-grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.3 0 0 0 0 0.15 0 0 0 0 0 0.9 0 0 0 -0.32'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
 --plank:linear-gradient(180deg,rgba(255,220,160,.14),transparent 40%,rgba(0,0,0,.28)),var(--tex-wood-hi),var(--tex-wood),linear-gradient(180deg,var(--wood),var(--wood-lo))}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{font-family:'HW Nunito',"Segoe UI",system-ui,sans-serif;color:var(--ink);font-weight:700;background:var(--tex-grain),radial-gradient(ellipse at 50% 0,#c98f52,#7a4724 70%,#4a2810)fixed;min-height:100vh}
/* top plank */
.top{display:flex;align-items:center;gap:12px;padding:8px 16px;border-bottom:3px solid var(--ink);background:var(--plank);color:var(--paper);position:sticky;top:0;z-index:5}
.top h1{margin:0;font:400 28px var(--font-display);letter-spacing:.04em;text-transform:uppercase;text-shadow:0 2px 0 var(--ink),0 0 6px var(--ink)}
.top .who{margin-left:auto;font-weight:800;text-shadow:0 1px 0 var(--ink)}
/* paper card with gold rim */
.card{position:relative;margin:18px auto;max-width:1100px;color:var(--ink);border:10px solid transparent;border-radius:22px;
 background:var(--tex-grain) padding-box,linear-gradient(#fff8e6,#fff8e6) padding-box,linear-gradient(180deg,var(--gold-hi) 0%,var(--gold) 14%,var(--gold-mid) 46%,#f2b23a 60%,var(--gold-lo) 100%) border-box;
 box-shadow:0 0 0 3px var(--ink),inset 0 0 0 3px var(--ink),inset 0 6px 14px rgba(90,46,14,.3),0 9px 0 3px #24120a,0 20px 36px rgba(0,0,0,.5);padding:14px 16px 16px}
.card.narrow{max-width:420px;margin-top:6vh}
.ban{display:block;margin:-4px auto 12px;padding:4px 18px 7px;text-align:center;border:3px solid var(--ink);background:var(--plank);color:var(--paper);font:400 22px var(--font-display);letter-spacing:.05em;text-transform:uppercase;text-shadow:0 2px 0 var(--ink)}
.logo{display:block;width:min(300px,80%);margin:0 auto 6px}
/* gold candy buttons */
button{font:400 15px var(--font-display);letter-spacing:.05em;text-transform:uppercase;color:var(--ink);cursor:pointer;padding:6px 14px;border:3px solid var(--ink);border-radius:12px;
 background:var(--tex-grain),linear-gradient(180deg,var(--gold-hi) 0%,#ffd650 38%,var(--gold) 52%,var(--gold-mid) 100%);box-shadow:0 3px 0 var(--ink),inset 0 2px 0 rgba(255,255,255,.6)}
button:hover{filter:brightness(1.06)}button:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}
button:disabled{opacity:.55;cursor:default}
button.sm{font-size:13px;padding:3px 10px;border-radius:9px}
button.red{background:var(--tex-grain),linear-gradient(180deg,#ffb09f,#ee6a50 52%,#c92f1a);color:#fff8e6;text-shadow:0 1px 0 var(--ink)}
button.green{background:var(--tex-grain),linear-gradient(180deg,#d6f7a8,#86d93f 52%,#3f8f1b)}
input{font:700 16px 'HW Nunito',sans-serif;color:var(--ink);padding:8px 10px;border:3px solid var(--ink);border-radius:10px;background:#fffdf3;box-shadow:inset 0 3px 0 rgba(90,46,14,.18);width:100%}
label{display:block;margin:8px 0 2px;font-weight:800}
.err{color:var(--blood);font-weight:800;min-height:1.4em;margin:8px 0 0}
.row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.row>div{flex:1;min-width:120px}
/* table */
.tw{overflow:auto;margin-top:12px;border:3px solid var(--ink);border-radius:8px;background:#fffdf3}
table{border-collapse:collapse;width:100%;min-width:760px}
th{position:sticky;top:0;background:var(--plank);color:var(--paper);font:400 15px var(--font-display);letter-spacing:.05em;text-transform:uppercase;text-align:left;padding:6px 10px;text-shadow:0 1px 0 var(--ink)}
td{padding:6px 10px;border-top:2px solid rgba(58,26,5,.25);vertical-align:middle}
tr:nth-child(even) td{background:rgba(244,185,52,.1)}
td.code{font-family:ui-monospace,Consolas,monospace;font-weight:800;letter-spacing:.06em;white-space:nowrap}
td.act{white-space:nowrap}td.act button{margin-right:6px}
.pill{display:inline-block;padding:1px 10px;border:2px solid var(--ink);border-radius:20px;font-weight:900;font-size:13px;text-transform:uppercase}
.pill.available{background:#d6f7a8}.pill.used{background:#ffd650}.pill.blocked{background:#ff9a85}
.chk{font-weight:900;color:var(--leaf)}
.bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.bar .sp{flex:1}
.bar select{font:700 15px 'HW Nunito';padding:6px;border:3px solid var(--ink);border-radius:10px;background:#fffdf3;color:var(--ink)}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:8px 18px;border-radius:20px;font-weight:800;z-index:9}
.muted{opacity:.7;font-weight:600}
@media(max-width:600px){.top h1{font-size:20px}.card{margin:10px 6px}}
