/* Shared character surfaces; identity colors never mutate saved configuration. */
.stat-icon{display:inline-block;position:relative;flex:0 0 auto;width:1.75rem;height:1.75rem;vertical-align:middle;background:var(--icon-color,#f4f3ed);mask:var(--icon) center/contain no-repeat;-webkit-mask:var(--icon) center/contain no-repeat;filter:none!important;box-shadow:none!important}
.icon-life{--icon-color:#ff525d}.icon-speed{--icon-color:#f4f4f1}.icon-acceleration,.icon-recovery{--icon-color:#f5ce50}.icon-mass{--icon-color:#bbc2cc}.icon-rotation{--icon-color:#7fea96}.icon-priority{--icon-color:#72cfff}.icon-fatigue{--icon-color:#fff}.icon-scratches{--icon-color:#e77580}.stat-icon.unlit{--icon-color:#818995}.icon-overlap-block{background:none;mask:none;-webkit-mask:none}.icon-overlap-block img{width:100%;height:100%;object-fit:contain}.icon-blocked{mask:none;-webkit-mask:none;background:none}.icon-blocked:before{content:'';position:absolute;inset:0;background:#818995;mask:var(--icon) center/contain no-repeat;-webkit-mask:var(--icon) center/contain no-repeat}.icon-blocked:after{content:'';position:absolute;left:0;top:45%;width:100%;height:3px;background:#ff535c;transform:rotate(-45deg)}
.character-grid,.lab-grid.character-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px;align-items:start}.character-pick,.lab-card:has(>.character-card),.roster-card:has(>.character-card){display:block;padding:0!important;background:none!important;border:0!important;box-shadow:none!important;min-width:0;text-align:left;width:100%;max-width:none}
.character-card{box-sizing:border-box;width:100%;min-width:0;padding:20px;border:2px solid var(--identity);border-radius:16px;background:rgb(var(--character-bg));color:#fff2d8;text-align:left;box-shadow:0 3px 10px #0003;line-height:1.35;font-family:system-ui,sans-serif}
.character-card header{position:static!important;display:flex!important;align-items:center;gap:16px;padding:0 0 16px!important;margin:0!important;background:none!important;border:0!important;box-shadow:none!important;min-height:76px}
.character-card h3{font-size:1.3rem!important;line-height:1.2;overflow-wrap:break-word;margin:0;color:#fff2d8!important;text-shadow:none}.character-symbol{width:64px!important;height:64px!important;object-fit:contain;border:2px solid var(--identity);border-radius:50%;flex-shrink:0}.character-card dl{margin:0}.character-stat{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:42px}.character-stat dt{display:flex;align-items:center;gap:10px;font-size:.95rem;font-weight:500;min-width:0}.character-stat dt span:last-child{word-break:normal;overflow-wrap:normal}.character-stat dd{margin:0;color:var(--character-ink);font-size:1.1rem;font-weight:750;white-space:nowrap;text-align:right}.character-stat.substat{padding-left:20px;min-height:34px;margin-bottom:6px}.substat .stat-icon{width:1.2rem;height:1.2rem}.substat dt,.substat dd{font-size:.875rem}.character-effects{border-top:1px solid var(--identity);margin-top:12px}.character-effects p{font-size:.9rem}.character-pick:focus-visible .character-card,.lab-card:focus-visible .character-card{outline:3px solid #f5ce50;outline-offset:3px}
#character-inspector{padding:0;border:0;background:transparent;max-width:min(94vw,440px);width:440px;max-height:90dvh;overflow:auto;color:#fff2d8}#character-inspector::backdrop{background:#06101bb3}#character-inspector-close{position:absolute;right:8px;top:8px;z-index:1;width:32px;min-height:32px;padding:0;border:0;background:#111b;color:#fff;font-size:1.4rem}#character-inspector .character-card{padding-top:36px}
.fighter-hud,.player[style*="--identity"]{border-color:var(--identity)!important;background:rgb(var(--character-bg)/.85)!important;background-image:none!important;box-shadow:none!important}.fighter-hud::before,.fighter-hud::after,.player[style*="--identity"]::before,.player[style*="--identity"]::after{display:none!important}.fighter-hud{padding:6px 8px!important;cursor:pointer}.health-title{display:flex;gap:6px!important;align-items:center;flex-wrap:wrap}.health-title b{min-width:0;flex:1}.health-title .fighter-portrait{width:28px;height:28px}.hud-known{font-size:11px!important}.healthbar{margin-top:3px}.fighter-hud:focus-visible{outline:2px solid #f5ce50}.public-resources{display:flex;flex-wrap:wrap;align-items:center;gap:3px 8px}.public-resources:empty,.temporary-effects:empty{display:none}.fatigue-meter,.temporary-effects,.effect-indicator{display:inline-flex;align-items:center;gap:3px;flex-wrap:wrap}.fatigue-meter{font-size:.875rem}.effect-indicator{font-size:.8rem}.effect-indicator small{font-size:.7rem}.fatigue-meter .stat-icon,.effect-indicator .stat-icon{width:20px;height:20px}.temporary-effects{gap:6px}.acceleration-meter{background:none!important;border:none!important;padding:0!important;box-shadow:none!important;display:inline-flex;align-items:center;gap:4px;max-width:100%}.acceleration-gems{display:flex;flex-wrap:wrap;gap:1px;max-width:160px}.acceleration-gems .stat-icon{width:12px;height:12px}.acceleration-meter>.stat-icon{width:26px;height:23px}.accelerate-toggle .stat-icon{width:28px;height:23px}.flat-acceleration{filter:brightness(0) saturate(100%) invert(84%) sepia(63%) saturate(601%) hue-rotate(347deg) brightness(100%) contrast(93%)!important}.acceleration-field{filter:none!important}.dial-labels,.dial-labels span{border:0!important;background:none!important;box-shadow:none!important;border-radius:0!important}.dial-labels{padding:2px 12px!important}.micro-readout:empty{display:none}
:root{--generic-bg:rgb(15 28 43/.87);--generic-edge:#c9ad69;--generic-text:#f6efdd}body[data-ui-theme="light"],body[data-theme="light"]{--generic-bg:rgb(226 196 126/.91);--generic-edge:#24364a;--generic-text:#182536}.lab-panel,.lab-modal,dialog:not(#character-inspector),#announcement,.stage,#notice,.directionbuttons,.hit-card,#handoff>div{background:var(--generic-bg)!important;border-color:var(--generic-edge)!important;color:var(--generic-text)!important;box-shadow:none!important;background-image:none!important}#announcement{max-width:min(90vw,520px);padding:14px 20px;font-size:1rem;line-height:1.5;max-height:70dvh;overflow:auto}#announcement .stat-icon{margin-right:8px}.lab-card:has(>.character-card)>.lab-status{display:block;padding:6px 12px}
@media(max-width:700px){.character-grid,.lab-grid.character-grid{grid-template-columns:1fr!important}.character-card{padding:16px}.character-stat{gap:8px}.character-stat dt{font-size:.875rem}.character-stat dd{font-size:1rem}.character-symbol{width:56px!important;height:56px!important}.character-card header{gap:12px}.character-card h3{font-size:1.15rem!important}}

/* v30: compact shared surfaces, without changing gameplay or token sizes. */
.character-card{padding:10px 12px;background:rgb(var(--character-bg)/.78)}
.character-card header{gap:8px;padding-bottom:8px!important;min-height:46px}
.character-symbol{width:44px!important;height:44px!important}
.character-stat{min-height:30px;gap:6px}.character-stat dt{gap:6px}.character-stat.substat{min-height:26px;margin-bottom:2px;padding-left:10px}
.character-stat .stat-icon{width:1.35rem;height:1.35rem}
.character-card h3{font-size:1.05rem!important}
.combatant-heading{position:sticky;top:0;z-index:5;background:var(--generic-bg);padding:12px 8px;margin-top:0}
.player[style*="--identity"]{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important}
.fighter-hud{cursor:default}.portrait-inspect,.fatigue-inspect{padding:0!important;border:0!important;background:none!important;color:inherit;min-height:36px;box-shadow:none!important}
.temporary-effects:not(:empty){border-left:1px solid currentColor;padding-left:10px;margin-left:4px;gap:8px}
.dial-tray{position:relative;padding-top:20px!important}.dial-tray>.dial-labels{position:absolute;top:0;left:0;right:0;margin:0;z-index:1;pointer-events:none}
#home-links>.text-action,#play-links>.text-action{background:rgb(10 20 32/.68)!important;border:1px solid #ddc48b66!important;border-radius:10px;padding:12px 24px;min-height:48px;width:100%}
#resolution-dialog,#fatigue-inspector{width:min(90vw,540px);max-height:85dvh;overflow:auto;padding:20px;border:1px solid var(--generic-edge);border-radius:12px}
#resolution-dialog::backdrop,#fatigue-inspector::backdrop{background:#07111b88}
.speed-breakdowns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.speed-breakdowns dl>div{display:flex;justify-content:space-between;gap:8px}.speed-breakdowns dd{margin:0}.speed-breakdowns h3{font-size:1rem}.fatigue-track{padding-left:24px}.fatigue-track li{margin:10px 0}.fatigue-track .consumed{opacity:.6}
@media(max-width:700px){.character-grid,.lab-grid.character-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}.character-grid .character-card{padding:9px 7px}.character-grid .character-card header{gap:5px;flex-wrap:wrap}.character-grid .character-stat{gap:3px;min-height:32px}.character-grid .character-stat dt{font-size:.8rem;gap:3px}.character-grid .character-stat dd{font-size:.875rem}.character-grid .character-stat .stat-icon{width:1rem;height:1rem}.character-grid .character-stat.substat{padding-left:0}.character-grid .character-symbol{width:36px!important;height:36px!important}.character-grid .character-card h3{font-size:.95rem!important}}
.player .coupling{grid-template-rows:minmax(0,1fr) 34px 28px}
.player .dial-tray{box-sizing:border-box;padding-top:20px!important}
.player .dial-labels{line-height:1.2}
.player .spin-box[hidden]{display:none!important}
.player:has(.spin-box[hidden]) .inertia{grid-row:2;height:auto}
.player:has(.spin-box[hidden]) .speed{grid-row:3/5}
.player .inertia:empty{display:none}
.player:has(.inertia:empty) .speed{grid-row:3/5}
.player:has(.spin-box[hidden]):has(.inertia:empty) .speed{grid-row:2/5}

/* v31: skin-only corrections on the explicitly requested controls. */
.character-card{background:rgb(var(--character-bg)/.58)}
.fighter-hud{background:rgb(var(--character-bg)/.65)!important}
#options-close,#ui-theme,#options-dialog .options-audio,#background,#match-menu-toggle,#handoff-ready{
 background:rgb(10 19 29/.74)!important;background-image:none!important;color:#f6efdd!important;border-color:#c9ad6970!important;box-shadow:none!important;text-shadow:none!important;
}
#handoff{background:rgb(7 15 24/.62)!important;background-image:none!important;box-shadow:none!important}
#handoff>div{background:rgb(10 19 29/.78)!important;border:1px solid #c9ad6970;border-radius:12px}
#handoff :is(h2,strong,p){color:#f6efdd!important;text-shadow:none!important}
.player :is(.card-choices button,.dial-tray,.inertia,.speed,.spin-box,.spin-box button,.dial-buttons button,.accelerate-toggle,.confirm){
 background:rgb(var(--character-bg)/.68)!important;background-image:none!important;color:#f6efdd!important;border-color:color-mix(in srgb,var(--identity) 52%,transparent)!important;box-shadow:none!important;text-shadow:none!important;
}
.player .coupling{background:transparent!important;background-image:none!important;box-shadow:none!important}
.player :is(.card-choices button,.spin-box button,.accelerate-toggle)[aria-pressed="true"]{background:color-mix(in srgb,var(--identity) 24%,rgb(8 15 23/.78))!important;border-color:var(--identity)!important;box-shadow:inset 0 0 0 1px var(--identity)!important}
.player .speed b{color:var(--character-ink)!important}
.icon-death{--icon-color:#fff}
#resolution-dialog,#fatigue-inspector{background:rgb(10 19 29/.82)!important;color:#f6efdd!important}
.magnitude-counter{display:inline-flex;align-items:center;gap:4px;min-height:30px;padding:1px 7px;background:#170d0e;border-color:#ff625c;color:#fff;font-size:14px}.magnitude-counter img{width:25px;height:25px;object-fit:contain}.magnitude-inspector{text-align:center;max-width:390px}.magnitude-inspector>img,.quake-summary img{width:72px;height:72px;object-fit:contain}.magnitude-close{position:absolute;right:12px;top:10px}.earthquake-alert{position:fixed;inset:0;z-index:1000;display:grid;grid-template-rows:1fr 1fr;text-align:center;color:#fff;background:#111;font-family:system-ui,sans-serif}.quake-alert-top{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(4px,1vh,12px);padding:12px;background:#c82424;color:#fff;min-height:0}.quake-alert-top img{width:min(19vw,15vh,120px);height:min(19vw,15vh,120px);object-fit:contain;filter:brightness(0) invert(1)}.earthquake-alert .quake-title{font-size:clamp(28px,min(9vw,8vh),76px);font-weight:950;letter-spacing:-.04em;line-height:1.1}.quake-alert-top>span{font-size:clamp(16px,min(4vw,4vh),32px);font-weight:700}.quake-alert-bands{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;overflow:auto;color:#fff;background:#111;font-size:clamp(16px,3vw,26px)}.quake-alert-bands p{margin:.3em}.earthquake-shaking{transform:translate(var(--quake-x,0),var(--quake-y,0));will-change:transform}.quake-band text{fill:#fff;font:900 14px system-ui;paint-order:stroke;stroke:#230607;stroke-width:4px}.quake-band circle{filter:drop-shadow(0 0 5px #ff4d45)}.quake-summary{text-align:center}.quake-summary p{margin:.35rem}.public-resources{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
