/* Shared semantic colors: page modes control layout, never the palette. */
body.lobby-mode,body.tabletop-mode{background:var(--bg);color:var(--text)}
.lobby-header,.game-topbar{background:var(--sidebar);border-color:var(--line)}
.lobby-header nav [aria-current=page]{color:var(--gold)}
.lobby-card,.lobby-updates,.lobby-join{background:var(--panel);border-color:var(--line)}
.lobby-cover{background:radial-gradient(ellipse at 50% 120%,var(--accent),transparent 70%),var(--panel);border-color:var(--line)}
.lobby-join input{background:var(--input);color:var(--text);border-color:var(--line)}
.lobby-brand,.lobby-heading p span,.lobby-enter,.lobby-updates summary{color:var(--gold)}
.lobby-brand .icon,.lobby-user,.lobby-header nav a,.lobby-header nav button{color:var(--muted)}
.lobby-heading h1,.lobby-card h3 a{color:var(--text)}
.lobby-card-body>small,.lobby-cover>span,.lobby-code code{color:var(--gold);background:var(--accent)}
.lobby-card-body>small{background:none}
.lobby-section-head h2>span{color:var(--muted);background:var(--raised)}
.lobby-local{border-color:var(--line);color:var(--muted);background:var(--panel)}
.lobby-empty,.lobby-card-foot{border-color:var(--line)}
.btn.primary,.tabletop-mode .btn.primary,.lobby-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}
.btn.primary:hover,.tabletop-mode .btn.primary:hover,.lobby-primary:hover{background:var(--primary-hover);color:var(--primary-text)}
.tabletop-mode .die-count,.die-count{background:var(--primary);color:var(--primary-text)}
.tabletop-mode .roll-total strong{background:var(--accent);color:var(--text);border-color:var(--gold-soft)}
.tabletop-mode .high-roll .roll-total strong{background:var(--success-bg);color:var(--green);border-color:var(--green)}
.resource-track{background:var(--success-bg)}.resource-track i{background:var(--green)}
.player-resource.mp .resource-track{background:var(--info-bg)}.player-resource.mp i{background:var(--info)}
.tabletop-mode .protection-box,.tabletop-mode .legacy-attributes,.tabletop-mode .roll-card{background:var(--panel)}
.tabletop-mode .protection-inputs input{background:var(--input)!important;color:var(--text)!important}
.tabletop-mode .player-name,.tabletop-mode .attribute-name strong,.tabletop-mode .character-identity .eyebrow{color:var(--text)}
.tabletop-mode .protection-tooltip{background:var(--raised);color:var(--text);border-color:var(--gold-soft)}
.attribute-group-total{background:var(--accent);color:var(--gold);border-color:var(--line)}
.tabletop-mode .die.chosen svg{fill:var(--accent);stroke:var(--gold)}
.negative,.toast.error,.form-error,.sheet-save-status[data-status=error]{color:var(--danger)}
dialog{background:var(--panel);color:var(--text);border-color:var(--line)}
dialog::backdrop{background:var(--overlay)}
::selection{background:var(--accent);color:var(--text)}
*{scrollbar-color:var(--gold-soft) var(--bg)}
.theme-picker{border:0;padding:0;margin:0 0 24px;min-width:0}
.theme-picker legend{font:bold 16px/1.4 Arial,sans-serif;color:var(--text);padding:0;margin-bottom:7px}
.theme-picker>p{font-size:12px;color:var(--muted);line-height:1.6;margin-bottom:15px}
.theme-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.theme-option{position:relative;display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--input);cursor:pointer;min-width:0}
.theme-option:hover{border-color:var(--gold-soft)}
.theme-option:has(input:checked){border-color:var(--gold);box-shadow:0 0 0 1px var(--gold);background:var(--accent)}
.theme-option:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:4px}
.theme-option input{position:absolute;opacity:0;width:1px;height:1px;min-width:0;padding:0;margin:0}
.theme-preview{display:flex;gap:4px;align-items:flex-end;position:relative;flex:0 0 50px;height:38px;border-radius:5px;background:var(--preview-bg);padding:11px 4px 4px;overflow:hidden;box-shadow:0 0 0 1px var(--line)}
.theme-preview:before{content:'';position:absolute;top:5px;left:5px;right:5px;height:2px;background:var(--preview-accent)}
.theme-preview i{display:block;background:var(--preview-panel);border-bottom:2px solid var(--preview-accent);width:100%;height:100%;border-radius:2px}
.theme-preview i:nth-child(2){height:70%}
.theme-label{display:flex;flex-direction:column;min-width:0;gap:3px}.theme-label strong{color:var(--text);font:600 12px/1.3 Arial,sans-serif}.theme-label small{color:var(--muted);font:10px/1.4 Arial,sans-serif}
.theme-check{margin-left:auto;color:var(--gold);opacity:0;font-size:14px}.theme-option:has(input:checked) .theme-check{opacity:1}
@media(max-width:520px){.theme-option{padding:9px;gap:8px}.theme-preview{flex-basis:35px;height:34px}.theme-label strong{font-size:11px}.theme-label small{font-size:9px}.theme-check{display:none}}
