:root{color-scheme:light;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#0a2540;background:#fff;letter-spacing:0}
*{box-sizing:border-box}
body{margin:0;min-height:100svh;display:flex;flex-direction:column;background:linear-gradient(160deg,#fff 45%,#edf5fe 75%,#f0f8f4)}
header{padding:32px 40px;border-bottom:1px solid #e7edf3}
header img{object-fit:contain;object-position:left}
main{flex:1;display:grid;place-items:center;padding:48px 24px}
section{width:min(100%,440px);padding:36px;border:1px solid #e0e8ef;border-radius:8px;background:#ffffffd9;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 20px 56px #0a254014,inset 0 1px 0 #fff}
.round{margin:0 0 12px;font-size:12px;font-weight:700;color:#45627e;line-height:1.6}
h1{font-size:32px;line-height:1.25;margin:0 0 32px;font-weight:750;overflow-wrap:anywhere}
form{display:grid;gap:10px}
label{font-size:14px;font-weight:650}
label:not(:first-child){margin-top:14px}
select,input{font:inherit;font-size:16px;min-width:0;width:100%;height:50px;padding:0 12px;color:#0a2540;background:#fff;border:1px solid #ccd9e5;border-radius:6px}
select{white-space:normal}
input{letter-spacing:0}
button{font:inherit;font-size:16px;font-weight:650;min-height:50px;padding:12px 18px;border:0;border-radius:6px;background:#0b4fd9;color:#fff;cursor:pointer;line-height:1.4;overflow-wrap:anywhere}
button:hover:not(:disabled){background:#083fb1}
button:disabled{opacity:.6;cursor:wait}
#retry{background:#edf3fa;color:#0b4fd9}
#selected-seat{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #e0e8ef}
#selected-seat-name{font-size:17px;line-height:1.5;overflow-wrap:anywhere}
#change-seat{flex:0 0 auto;min-height:38px;padding:8px 12px;background:#edf3fa;color:#0b4fd9;font-size:14px}
#code-hint{margin:0;color:#45627e;font-size:13px;line-height:1.5}
form.seat-code-form>label[for="judge"],form.seat-code-form>#judge{display:none}
[hidden]{display:none!important}
:focus-visible{outline:3px solid #9fc5ff;outline-offset:3px}
#error{min-height:22px;margin:4px 0;color:#ae243a;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
footer{text-align:center;font-size:11px;font-weight:600;color:#57708a;padding:24px}
@media(max-width:480px){header{padding:24px}main{padding:32px 16px}section{padding:28px 22px}h1{font-size:28px}}
/* GK seat mode: ten name buttons, one click per seat (shown only when the server reports seat_login). */
section:has(#seat-panel:not([hidden])){width:min(100%,560px)}
#seat-hint{margin:0 0 14px;font-size:14px;line-height:1.5;color:#45627e}
#seat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.seat-button{display:flex;align-items:center;gap:10px;width:100%;min-height:56px;padding:8px 12px;text-align:left;background:#fff;color:#0a2540;border:1px solid #ccd9e5;font-weight:600;transition:transform .14s cubic-bezier(.23,1,.32,1),background-color .16s ease,border-color .16s ease,box-shadow .16s ease}
.seat-button:hover:not(:disabled){background:#f3f8ff;border-color:#8fb2ec;box-shadow:0 3px 10px #0b4fd914}
.seat-button:active:not(:disabled){transform:scale(.98)}
.seat-button.is-wanted{border-color:#0b4fd9;box-shadow:0 0 0 2px #0b4fd922}
.seat-button:disabled{opacity:.6;cursor:wait}
.seat-code{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:28px;padding:0 6px;border-radius:6px;background:#e8f0ff;color:#0b4fd9;font-size:13px;font-weight:700}
.seat-name{flex:1 1 auto;min-width:0;font-size:15px;line-height:1.35;overflow-wrap:anywhere}
#seat-error{min-height:22px;margin:12px 0 0;color:#ae243a;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
@media(max-width:560px){#seat-grid{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.seat-button{transition:none}}
