/* ARENA design system: shared by platform, all games, login and operator tools.
   Page styles own layout; this file owns visual tokens and common components. */
@font-face{font-family:LocalSans;src:local("Pretendard"),local("Noto Sans CJK KR"),local("Noto Sans KR")}
:root{color-scheme:dark;--bg:#101411;--panel:#191f1b;--panel2:#202821;--line:#303a32;--muted:#98a69a;--text:#eef2ec;--lime:#c5f479;--green:#76c8a0;--amber:#e9bf77;--red:#ef9292;--paper:var(--bg);--ink:var(--text);--gold:var(--amber);--surface-input:#101712;--surface-nav:#151a16;--radius:12px;font-family:LocalSans,Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;background:var(--bg);color:var(--text)}
body{background:var(--bg);color:var(--text)}
:where(button,input,textarea,select){font:inherit}
h1,.platform-main h1,.game-heading h1{font-size:28px;font-weight:650;letter-spacing:-1.1px;line-height:1.25}
h2,.platform-card h2,.platform-games .game-card h2{font-size:18px;font-weight:650;letter-spacing:-.4px}
h3{font-size:14px;letter-spacing:-.2px}p{line-height:1.75}
.eyebrow{font-size:10px;letter-spacing:2.3px;color:var(--muted)}
body :is(button,.button){border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:9px;font-weight:600;box-shadow:none}
body :is(button,.button):hover:not(:disabled){background:#303b30;border-color:#54684d;transform:none}
body :is(button.primary,.button.primary,.primary-link){background:var(--lime);color:#1b2811;border-color:var(--lime)}
body :is(button.primary,.button.primary,.primary-link):hover:not(:disabled){background:#d9ff97;border-color:#d9ff97}
body .quiet{background:transparent}body .danger{color:var(--red)}
body :is(input,select,textarea){background:var(--surface-input);border:1px solid #3a473c;color:var(--text);border-radius:8px;box-shadow:none}
body :is(input,select,textarea):focus{border-color:var(--lime);outline:2px solid var(--lime);outline-offset:2px}
body input[type=checkbox]{accent-color:var(--lime)}
:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
body :is(label,.hint,.muted,.small){color:var(--muted)}
body :is(.panel,.table-panel,.platform-card,.platform-metric,.game-card,.metric-cell,.stock-card,.action-sections details,.info-card,.metric,.player,.store,pre,.turn-speech){background:var(--panel);color:var(--text);border-color:var(--line);border-radius:var(--radius)}
body :is(.topbar,.platform-header){background:var(--surface-nav);border-color:var(--line)}
body>header{background:var(--surface-nav);border-color:var(--line)}
.platform-layout{grid-template-columns:222px minmax(0,1fr)}
.platform-sidebar{background:var(--surface-nav)}
.platform-sidebar nav button.active{background:#c5f47912;color:var(--lime);border-color:#465a32}
.platform-sidebar nav button:not(.active){color:var(--muted);background:transparent}
.platform-header .brand,.brand{color:var(--text)}
.brand-icon{background:var(--lime);color:#13200f;border-radius:0;clip-path:polygon(20% 0,100% 0,80% 100%,0 100%);font-family:inherit;font-size:22px;font-weight:900;font-style:italic}
.brand-sub{color:var(--muted);border-color:var(--line)}
.platform-games .game-symbol,.game-symbol{color:var(--lime)}
.platform-games .game-card:hover{background:var(--panel2);border-color:#54684d;box-shadow:none;transform:translateY(-2px)}
body :is(.badge,.status-pill,.platform-connected-bar,.info-strip,.hint-box,.pills span,.role-chips span){background:#c5f4790a;border-color:#465a32;color:var(--lime)}
body :is(.status-pill.offline,.badge-warning,.access-code,.confirm,.privacy,.private-summary){background:#e9bf770d;color:var(--amber);border-color:#71552c}
body :is(.platform-alert,.platform-connected-bar[data-status=error],.error){background:#ef929212;color:var(--red);border-color:#794b45}
.platform-card.ai-profile{background:var(--panel2);border-color:#465a32}
.ai-profile p,.ai-role{color:var(--muted)}
.platform-table a,#operations-links a,.link{color:var(--lime)}
body :is(.table,.hero-art){background:#14251c;color:var(--text)}
body :is(.seat.active,.player.active,.player.arena-player,.roster-row.arena,.turn-entry.selected){background:#c5f4790d;border-color:#60764a}
body :is(.private-chips span,.mission-question,.result,.reading-track,.review-banner,.turn-action>span){background:var(--panel2);color:var(--text);border-color:var(--line)}
body .stock-card:hover:not(:disabled){background:#303b30}
/* Cards, dice and board pieces retain distinct game colors and readable faces. */
body .playing-card{background:#f0eddf;color:#20362f;border-color:#cccdbd}
body .playing-card.high{background:#efe1bf;color:#20362f}
body .die{background:#f0eddf;color:#20362f}
body .die.hidden-die{background:#283c30;color:#b6c6b8;border-color:#586d5c}
body .playing-card.selected{outline-color:var(--lime)}
body .lane-step.temporary{background:var(--amber);color:#20362f}
.platform-content-footer{border-top:1px solid var(--line)}
#operations-styles textarea{background:var(--surface-input);color:var(--text)}
.login-panel{max-width:460px;margin-inline:auto}
.login-panel h1{font-size:28px}
@media(max-width:1150px){.platform-layout{grid-template-columns:190px minmax(0,1fr)}}
@media(max-width:800px){.platform-layout{grid-template-columns:1fr}.platform-sidebar nav button.active{background:#c5f47912}}
@media(prefers-reduced-motion:reduce){body *{transition:none!important;scroll-behavior:auto!important}}

/* Give native menus an explicit foreground/background pair as well as the field. */
body select{color-scheme:dark}
body select option,body select optgroup{background:var(--surface-input);color:var(--text)}
body select option:checked{background:var(--panel2);color:var(--lime)}
body select option:disabled{color:var(--muted)}
@media(forced-colors:active){body select option,body select optgroup{background:Canvas;color:CanvasText}body select option:checked{background:Highlight;color:HighlightText}}
