/* Shared dark brass palette. Gameplay marker colors remain semantic. */
:root{color-scheme:dark;--bg:#0d0e0c;--panel:#151612;--surface:#1c1d17;--line:#33352b;--muted:#97988a;--text:#e7e5d9;--gold:#b5a16a;--gold-bright:#d3bd82;--green:#b5a16a;--blue:#a5b6ba;--mono:Consolas,'SFMono-Regular',monospace;--sans:'Microsoft YaHei','PingFang SC',system-ui,sans-serif}
*{box-sizing:border-box}::selection{background:#b5a16a55;color:#fff8df}body{font-family:var(--sans);color:var(--text);background:var(--bg)}
button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}
button{border:1px solid var(--line);border-radius:2px;background:#202119;color:var(--text);padding:8px 12px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
button:hover{background:#2b2c22;border-color:#706343;color:#eee7ce}button:disabled{cursor:not-allowed;opacity:.4}button.active,button[aria-pressed=true]{background:#b5a16a1a;border-color:#8b794a;color:var(--gold-bright)}
/* Apply to descendants too: WebKit long-press callouts are separate from touch-action. */
:where(button,summary,[role=button],.check,.type-option,.range-label,.region-controls label),:where(button,summary,[role=button],.check,.type-option,.range-label,.region-controls label) *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}
input,textarea,select,[contenteditable]:not([contenteditable=false]){-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
:where(button,a,summary,input,select):focus-visible{outline:2px solid var(--gold-bright)!important;outline-offset:3px}
input[type=search],input[type=text],input[type=number],select{color:var(--text);border:1px solid #414236;border-radius:2px;background:#10110e;padding:10px 12px;min-width:0}input::placeholder{color:#8a8d7e}input[type=checkbox],input[type=range]{accent-color:var(--gold)}
input[type=checkbox]{width:14px;height:14px}input[type=search]::-webkit-search-cancel-button{cursor:pointer}
button.primary,a.primary{background:var(--gold);border:1px solid var(--gold);color:#14160f;font-weight:700}button.primary:hover,a.primary:hover{background:var(--gold-bright);border-color:var(--gold-bright)}
.ui-icon{width:18px;height:18px;display:inline-block;vertical-align:middle;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
kbd{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border:1px solid #484a3c;border-bottom-width:2px;border-radius:2px;color:#bfc0ae;font:11px var(--mono);background:#1a1c15}
[hidden]{display:none!important}.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
*{scrollbar-width:thin;scrollbar-color:#62634c #141610}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#62634c}::-webkit-scrollbar-track{background:#141610}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
