@font-face { font-family:"WOBS Montserrat"; src:url("./assets/fonts/Montserrat-Variable.ttf") format("truetype"); font-style:normal; font-weight:100 900; font-display:swap; }
@font-face { font-family:"WOBS Inter"; src:url("./assets/fonts/Inter-Variable.ttf") format("truetype"); font-style:normal; font-weight:100 900; font-display:swap; }

:root {
  color-scheme: dark;
  --signal-alliance: #84cc16;
  --signal-rival: #c026d3;
  --signal-danger: #dc2626;
  --signal-economy: #f59e0b;
  --signal-technology: #38bdf8;
  --signal-vocal: #8b5cf6;
  --signal-dance: #ec4899;
  --bg: #090d12;
  --panel: rgba(14, 20, 27, .95);
  --panel-2: #111923;
  --line: rgba(178, 205, 222, .14);
  --line-strong: rgba(200, 255, 54, .34);
  --text: #f5f8f2;
  --muted: #8e9ba7;
  --lime: var(--signal-alliance);
  --lime-deep: #7fa919;
  --cyan: var(--signal-technology);
  --magenta: var(--signal-rival);
  --orange: #ff8b38;
  --danger: var(--signal-danger);
  --radius: 8px;
  --mono: "Cascadia Mono", "SFMono-Regular", Consolas, monospace;
  --display: "WOBS Montserrat", Montserrat, ui-sans-serif, system-ui, sans-serif;
  --sans: "WOBS Inter", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; min-height: 100%; margin: 0; background: var(--bg); color: var(--text); font-family: var(--sans); }
body { overflow: hidden; }
button { font: inherit; }
h1,h2,h3,.brand strong,.intel-title strong { font-family:var(--display); font-weight:850; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible { outline:2px solid var(--signal-technology); outline-offset:3px; }
.skip-link { position:fixed; left:14px; top:10px; z-index:100; transform:translateY(-160%); padding:10px 14px; color:#071018; background:#fff; border-radius:5px; font-weight:850; transition:transform .16s ease; }
.skip-link:focus { transform:translateY(0); }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

.app-shell { min-width: 0; height: 100vh; height: 100dvh; min-height: 0; display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: 72px minmax(0,1fr); background: #080c11; }
.topbar { display: grid; grid-template-columns: 230px minmax(180px, 1fr) auto auto; align-items: center; padding: 0 18px; border-bottom: 1px solid var(--line); background: rgba(8, 12, 17, .97); z-index: 5; }
.brand { display: flex; align-items: center; gap: 12px; letter-spacing: .08em; }
.brand-mark { display: grid; place-items: center; width: 38px; height: 38px; color: #0b1014; background: var(--lime); border-radius: 6px 6px 14px 6px; font-weight: 950; font-size: 23px; box-shadow: 0 0 24px rgba(200,255,54,.15); }
.brand > span:last-child { display: grid; }
.brand strong { font-size: 17px; line-height: 1; }
.brand small { margin-top: 4px; color: var(--lime); font: 700 10px/1 var(--mono); letter-spacing: .26em; }
.season { justify-self: center; display: flex; align-items: center; gap: 9px; font: 700 11px/1 var(--mono); letter-spacing: .12em; color: var(--muted); }
.season strong { color: var(--text); }
.live-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 9px var(--lime); }
.server-status { display: inline-flex; align-items: center; gap: 5px; margin-left: 10px; padding-left: 12px; border-left: 1px solid var(--line); color: #687680; }
.server-status i { width: 6px; height: 6px; border-radius: 50%; background: #687680; }
.server-status.online { color: var(--cyan); }
.server-status.online i { background: var(--cyan); box-shadow: 0 0 8px rgba(94,231,255,.75); }
.server-status.offline { color: var(--orange); }
.server-status.offline i { background: var(--orange); }
.account-bar { display: flex; align-items: center; gap: 5px; margin-right: 9px; }
.account-bar[hidden] { display: none; }
.account-bar button { height: 36px; color: var(--text); background: #101821; border: 1px solid var(--line); border-radius: 5px; cursor: pointer; }
.account-bar #playerButton { display: flex; align-items: center; gap: 8px; padding: 0 9px; }
.account-bar #playerName { max-width: 110px; overflow: hidden; text-overflow: ellipsis; color: #cdd7dc; font: 700 10px/1 var(--mono); }
.account-bar #playerRole { padding: 4px 5px; color: #10150a; background: var(--lime); border-radius: 3px; font: 850 9px/1 var(--mono); }
.account-bar #logoutButton { width: 32px; color: var(--muted); font-size: 17px; }
.resources { display: flex; align-items: center; height: 100%; }
.resources > div { min-width: 104px; height: 42px; display: grid; align-content: center; padding: 0 16px; border-left: 1px solid var(--line); }
.resources span { color: var(--muted); text-transform: uppercase; font: 700 9px/1 var(--mono); letter-spacing: .12em; }
.resources strong { margin-top: 6px; font: 750 14px/1 var(--mono); }
.resources .gold strong { color: #f4d06f; }
.resources .diamonds strong { color: #a78bfa; }
.resources .tokens strong { color: #5ee7ff; }
.resources .tickets strong { color: #ff4aa8; }
.resources .stamina strong { color: var(--cyan); }

.game-layout { min-height: 0; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1fr) 340px; }
.map-panel { min-width: 0; min-height: 0; display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: 58px 1fr; border-right: 1px solid var(--line); }
.map-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 9px 14px 9px 20px; background: #0c1219; border-bottom: 1px solid var(--line); }
.mission-chip { min-width: 0; display: flex; align-items: center; gap: 12px; }
.mission-chip span { flex: none; padding: 5px 7px; border: 1px solid rgba(200,255,54,.4); border-radius: 3px; color: var(--lime); font: 700 9px/1 var(--mono); letter-spacing: .1em; }
.mission-chip strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 13px; }
.toolbar-actions { display: flex; align-items: center; gap: 7px; }
.tool-button { height: 36px; padding: 0 12px; color: #d5dde2; background: #131c25; border: 1px solid var(--line); border-radius: 5px; cursor: pointer; font-size: 12px; font-weight: 700; transition: .18s ease; }
.tool-button:hover, .tool-button:focus-visible { border-color: rgba(200,255,54,.5); color: var(--text); outline: none; }
.tool-button.primary { color: #10150a; background: var(--lime); border-color: var(--lime); }
.tool-button.primary[aria-pressed="true"] { color: var(--lime); background: #19210d; box-shadow: inset 0 0 0 1px var(--lime); }
.tool-button.base-button { color: var(--cyan); border-color: rgba(94,231,255,.35); }
.tool-button.base-button[aria-pressed="true"] { color: #071114; background: var(--cyan); border-color: var(--cyan); }
.tool-button.radar-button { color: #ffd46f; border-color: rgba(255,212,111,.34); }
.tool-button:disabled { opacity: .42; cursor: not-allowed; filter: saturate(.55); }
.tool-button.icon-only { width: 36px; padding: 0; font-size: 18px; }
.tool-button.unity-button { display:inline-flex; align-items:center; text-decoration:none; color:#071019; background:linear-gradient(135deg,#a5ec41,#66d79a); border-color:#a5ec41; box-shadow:0 7px 22px rgba(132,204,22,.16); }
.button-icon { font-size: 17px; vertical-align: -1px; }

.canvas-wrap { position: relative; min-height: 0; overflow: hidden; background: #0a1115; }
#worldCanvas { display: block; width: 100%; max-width: 100%; height: 100%; cursor: grab; outline: none; touch-action: none; }
#worldCanvas:focus-visible { box-shadow: inset 0 0 0 2px var(--lime); }
#worldCanvas.building { cursor: crosshair; }
.coords, .zoom-level { position: absolute; top: 14px; z-index: 2; padding: 6px 9px; color: #c9d4da; background: rgba(7,11,15,.72); border: 1px solid var(--line); backdrop-filter: blur(8px); font: 700 10px/1 var(--mono); letter-spacing: .08em; pointer-events: none; }
.coords { left: 14px; min-width: 260px; }
.zoom-level { left: 288px; color: var(--lime); }
.build-hint { position: absolute; top: 58px; left: 50%; transform: translateX(-50%); z-index: 3; display: flex; align-items: center; gap: 12px; max-width: calc(100% - 28px); padding: 9px 13px; background: rgba(14,22,10,.94); border: 1px solid var(--lime); border-radius: 5px; box-shadow: 0 10px 34px rgba(0,0,0,.3); }
.build-hint[hidden] { display: none; }
.build-hint strong { color: var(--lime); font: 800 10px/1 var(--mono); letter-spacing: .13em; }
.build-hint span { color: #d8e6cb; font-size: 12px; }
.legend { position: absolute; left: 14px; bottom: 14px; z-index: 2; display: grid; gap: 8px; padding: 11px 12px; background: rgba(7,11,15,.78); border: 1px solid var(--line); border-radius: 5px; backdrop-filter: blur(8px); font: 650 10px/1 var(--mono); color: #b8c3ca; pointer-events: none; }
.legend span { display: flex; align-items: center; gap: 8px; }
.legend i { flex: none; display: inline-block; }
.legend-swatch { width: 14px; height: 9px; border: 1px solid; }
.legend-swatch.territory { border-color: var(--lime); background: rgba(200,255,54,.18); }
.legend-swatch.rival { border-color: var(--magenta); background: rgba(255,74,168,.16); }
.legend-diamond { width: 9px; height: 9px; background: var(--danger); transform: rotate(45deg); }
.legend-node { width: 9px; height: 9px; border-radius: 50%; background: white; box-shadow: 0 0 0 2px rgba(255,255,255,.2); }
.minimap-box { position: absolute; right: 14px; bottom: 14px; z-index: 2; width: 182px; background: rgba(7,11,15,.84); border: 1px solid var(--line); box-shadow: 0 8px 30px rgba(0,0,0,.28); pointer-events: none; }
.minimap-box canvas { display: block; width: 180px; height: 140px; }
.minimap-box > span { position: absolute; left: 8px; top: 7px; color: #d9e2e7; font: 700 8px/1 var(--mono); letter-spacing: .12em; }
.toast { position: absolute; left: 50%; bottom: 22px; z-index: 6; transform: translate(-50%, 20px); opacity: 0; padding: 10px 14px; color: #11160a; background: var(--lime); border-radius: 5px; font-size: 12px; font-weight: 800; pointer-events: none; transition: .2s ease; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.toast.error { color: #fff; background: var(--danger); }

.command-panel { min-height: 0; height: 100%; overflow-x: hidden; overflow-y: auto; overscroll-behavior-y: contain; scrollbar-gutter: stable; background: #0b1016; }
.alliance-card { display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 11px; padding: 18px; border-bottom: 1px solid var(--line); }
.alliance-emblem { display: grid; place-items: center; width: 44px; height: 44px; color: var(--lime); background: rgba(200,255,54,.08); border: 1px solid rgba(200,255,54,.34); clip-path: polygon(50% 0, 93% 23%, 84% 78%, 50% 100%, 16% 78%, 7% 23%); font-size: 19px; font-weight: 950; }
.alliance-card > div:nth-child(2) { display: grid; min-width: 0; }
.alliance-card span, .section-heading span { color: var(--muted); font: 700 9px/1 var(--mono); letter-spacing: .12em; }
.alliance-card strong { margin-top: 5px; font-size: 13px; }
.alliance-card small { margin-top: 4px; color: #6e7c88; font-size: 10px; }
.alliance-card .power { align-self: start; color: var(--lime); font: 750 12px/1 var(--mono); }
.objective-card, .intel-card, .network-card, .fleet-card { margin: 14px; padding: 15px; background: var(--panel-2); border: 1px solid var(--line); border-radius: var(--radius); }
.section-heading { display: flex; align-items: center; justify-content: space-between; }
.section-heading > strong { color: var(--lime); font: 800 10px/1 var(--mono); }
.section-heading button { width: 24px; height: 24px; color: var(--muted); background: transparent; border: 0; cursor: pointer; font-size: 17px; }
.objective-card h1 { margin: 14px 0 6px; font-size: 21px; letter-spacing: -.025em; }
.objective-card p { margin: 0; color: #9daab3; font-size: 12px; line-height: 1.5; }
.progress-track { height: 4px; margin: 14px 0 16px; overflow: hidden; background: #26313a; }
.progress-track span { display: block; width: 50%; height: 100%; background: var(--lime); box-shadow: 0 0 12px rgba(200,255,54,.4); transition: width .35s ease; }
.mission-steps { list-style: none; display: grid; gap: 14px; margin: 0; padding: 0; }
.mission-steps li { display: grid; grid-template-columns: 26px 1fr; align-items: center; gap: 9px; color: #71808b; }
.mission-steps li > span { display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid #3a4650; border-radius: 50%; font: 700 10px/1 var(--mono); }
.mission-steps li > div { display: grid; gap: 3px; }
.mission-steps li strong { font-size: 12px; }
.mission-steps li small { color: #66737e; font-size: 10px; }
.mission-steps li.done > span { color: #10150a; background: var(--lime); border-color: var(--lime); }
.mission-steps li.done, .mission-steps li.active { color: var(--text); }
.mission-steps li.active > span { color: var(--lime); border-color: var(--lime); box-shadow: 0 0 0 3px rgba(200,255,54,.08); }
.intel-card { min-height: 170px; }
.empty-intel { min-height: 132px; display: grid; place-items: center; align-content: center; text-align: center; }
.empty-intel .scan-icon { display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: 10px; color: var(--cyan); border: 1px solid rgba(94,231,255,.3); border-radius: 50%; font-size: 22px; }
.empty-intel strong { font-size: 13px; }
.empty-intel p { max-width: 230px; margin: 5px 0 0; color: #73808b; font-size: 11px; line-height: 1.45; }
.intel-title { display: flex; align-items: center; gap: 10px; margin: 13px 0 12px; }
.intel-symbol { display: grid; place-items: center; width: 38px; height: 38px; color: var(--lime); background: rgba(200,255,54,.09); border: 1px solid rgba(200,255,54,.26); font-weight: 900; }
.intel-title > div { display: grid; gap: 4px; }
.intel-title strong { font-size: 14px; }
.intel-title small { color: var(--muted); font: 700 9px/1 var(--mono); }
.stat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.stat-grid > div { padding: 9px; background: #0c131a; border: 1px solid var(--line); }
.stat-grid span { display: block; color: var(--muted); font: 700 8px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.stat-grid strong { display: block; margin-top: 6px; font: 750 11px/1 var(--mono); }
.health-bar { height: 5px; margin-top: 12px; background: #2a3035; }
.health-bar span { display: block; height: 100%; background: var(--lime); }
.landmark-economy { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-top:10px; padding:9px; border:1px solid rgba(255,212,111,.28); border-radius:6px; background:linear-gradient(135deg,rgba(255,212,111,.11),rgba(94,231,255,.06)); backdrop-filter:blur(20px); }
.landmark-economy span { color:#d9e4e8; font:750 9px/1.25 var(--mono); }
.intel-action { width: 100%; height: 35px; margin-top: 12px; color: #0e1209; background: var(--lime); border: 0; border-radius: 4px; cursor: pointer; font-size: 11px; font-weight: 850; text-transform: uppercase; letter-spacing: .07em; }
.intel-action.danger { color: white; background: var(--danger); }
.intel-action:disabled { color: #7f8c96; background: #1b252d; cursor: not-allowed; }
.base-max { margin-top: 12px; padding: 11px; color: var(--cyan); background: rgba(94,231,255,.08); border: 1px solid rgba(94,231,255,.25); border-radius: 4px; font: 800 9px/1 var(--mono); letter-spacing: .1em; text-align: center; }
.fleet-list { display: grid; gap: 7px; margin-top: 11px; }
.formation-launch { display: grid; gap: 5px; width: 100%; margin-top: 10px; padding: 9px 10px; color: var(--text); text-align: left; background: linear-gradient(110deg,rgba(236,72,153,.13),rgba(139,92,246,.12)); border: 1px solid rgba(236,72,153,.3); border-radius: 5px; cursor: pointer; }
.formation-launch span { color: #f0a8cf; font: 800 8px/1 var(--mono); letter-spacing: .12em; }
.formation-launch strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.map-mode { display: grid; gap: 4px; min-width: 160px; padding: 7px 10px; background: rgba(8,14,23,.68); border: 1px solid rgba(94,231,255,.2); border-radius: 5px; }
.map-mode span { color: var(--cyan); font: 800 7px/1 var(--mono); letter-spacing: .12em; }
.map-mode small { color: #72818d; font: 700 6px/1 var(--mono); }
.map-mode[data-camera="strategy"] { border-color:rgba(245,158,11,.38); }
.map-mode[data-camera="strategy"] span { color:var(--signal-economy); }
.map-mode[data-camera="cinematic"] { border-color:rgba(236,72,153,.42); box-shadow:0 0 20px rgba(236,72,153,.08); }
.map-mode[data-camera="cinematic"] span { color:var(--signal-dance); }
.fleet-empty { padding: 10px; color: #71808b; background: #0c131a; border: 1px dashed var(--line); text-align: center; font-size: 10px; line-height: 1.4; }
.fleet-row { display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 8px; background: #0b1218; border: 1px solid var(--line); border-left: 2px solid var(--lime); border-radius: 4px; }
.fleet-portrait { display: grid; place-items: center; width: 29px; height: 29px; color: #160c1e; background: linear-gradient(145deg,#ec4899,#8b5cf6); border: 2px solid #e6c86e; border-radius: 50%; font-size: 13px; }
.fleet-portrait.rarity-ur { border-color: #f0f; box-shadow: 0 0 10px rgba(255,0,255,.42); }
.fleet-portrait.rarity-ssr { border-color: #f4d06f; }
.fleet-portrait.rarity-sr { border-color: #b8d5ff; }
.fleet-power { display: block; color: #e6c86e; font-size: 7px; }
.fleet-copy { min-width: 0; display: grid; gap: 4px; }
.fleet-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.fleet-copy small { color: var(--muted); font: 700 8px/1.2 var(--mono); }
.fleet-actions { display: grid; justify-items: end; gap: 5px; }
.fleet-focus, .fleet-recall { min-height: 25px; padding: 0 7px; border-radius: 3px; cursor: pointer; font: 800 8px/1 var(--mono); }
.fleet-focus { color: var(--cyan); background: rgba(56,189,248,.08); border: 1px solid rgba(56,189,248,.3); }
.fleet-recall { color: white; background: #8b5cf6; border: 1px solid #a78bfa; }
.fleet-recall:disabled { opacity: .42; cursor: default; }
.march-send-note { margin: 9px 0 0; color: #73808b; font-size: 9px; line-height: 1.4; }
.reports-card { padding: 14px; background: #101820; border-bottom: 1px solid var(--line); }
.reports-list { display: grid; gap: 7px; margin-top: 10px; }
.reports-empty { padding: 10px; color: #71808b; text-align: center; background: #0b1218; border: 1px dashed var(--line); font-size: 9px; }
.report-row { display: grid; grid-template-columns: 27px minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 8px; background: #0b1218; border: 1px solid var(--line); border-left: 2px solid var(--cyan); border-radius: 4px; }
.report-row.success { border-left-color: var(--lime); }
.report-row.defeat, .report-row.recalled { border-left-color: var(--danger); }
.report-icon { display: grid; place-items: center; width: 27px; height: 27px; color: #071114; background: var(--cyan); border-radius: 50%; font-size: 12px; font-weight: 900; }
.report-row.success .report-icon { background: var(--lime); }
.report-row.defeat .report-icon, .report-row.recalled .report-icon { color: white; background: var(--danger); }
.report-copy { min-width: 0; display: grid; gap: 4px; }
.report-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }
.report-copy small { color: #71808b; font: 650 7px/1.3 var(--mono); }
.report-reward { color: var(--lime); font: 850 8px/1 var(--mono); text-align: right; }
.hospital-card { display: grid; gap: 11px; margin: 14px; padding: 14px; background: linear-gradient(145deg,rgba(255,74,168,.08),#101820 45%); border: 1px solid rgba(255,74,168,.28); border-radius: var(--radius); }
.hospital-card .section-heading strong { color: #f0a8cf; }
.hospital-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.hospital-summary > div { display: grid; gap: 4px; padding: 9px; background: #0b1218; border: 1px solid var(--line); border-radius: 4px; }
.hospital-summary strong { color: #fff; font: 850 15px/1 var(--mono); }
.hospital-summary span { color: #788690; font: 750 7px/1 var(--mono); letter-spacing: .1em; }
.hospital-track { height: 7px; overflow: hidden; background: #080e13; border: 1px solid #26313a; border-radius: 999px; }
.hospital-track > span { display: block; width: 0; height: 100%; background: linear-gradient(90deg,#f472b6,var(--danger)); box-shadow: 0 0 12px rgba(244,114,182,.4); transition: width .3s ease; }
.hospital-track.critical { border-color: var(--danger); box-shadow: 0 0 12px rgba(255,77,89,.25); }
.hospital-track.critical > span { animation: hospital-alert 1.2s ease-in-out infinite alternate; }
@keyframes hospital-alert { to { filter: brightness(1.45); } }
.hospital-meta { display: flex; justify-content: space-between; gap: 8px; color: #8b99a4; font: 650 7px/1.35 var(--mono); }
.hospital-meta strong { color: #ff8790; text-align: right; }
.hospital-upgrade { display: grid; gap: 7px; padding-top: 9px; border-top: 1px solid var(--line); }
.hospital-upgrade > span { min-height: 20px; color: #9aa7b0; font: 700 8px/1.4 var(--mono); }
.hospital-upgrade > span strong { color: #f4d06f; }
.hospital-upgrade button { min-height: 34px; color: #171208; background: #f4d06f; border: 0; border-radius: 4px; cursor: pointer; font: 850 9px/1 var(--mono); }
.hospital-upgrade button:disabled { color: #66727b; background: #1b252d; cursor: not-allowed; }
.hospital-treatment { padding: 8px 9px; color: #91a0aa; background: rgba(5,9,13,.55); border-left: 2px solid #f472b6; font: 700 8px/1.45 var(--mono); }
.hospital-treatment.active { color: #ffd2ea; border-left-color: var(--cyan); }
.hospital-heal { min-height: 36px; color: #180d15; background: #f472b6; border: 0; border-radius: 4px; cursor: pointer; font: 850 9px/1 var(--mono); letter-spacing: .04em; }
.hospital-heal:disabled { color: #66727b; background: #1b252d; cursor: not-allowed; }
.hospital-support { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.hospital-support button { min-height: 34px; padding: 7px; color: #d9f9ff; background: rgba(94,231,255,.11); border: 1px solid rgba(94,231,255,.28); border-radius: 4px; cursor: pointer; font: 800 8px/1.25 var(--mono); }
.hospital-support button:first-child { grid-column: 1 / -1; color: #e8ffc4; background: rgba(200,255,54,.08); border-color: rgba(200,255,54,.24); }
.hospital-support button:last-child { color: #ffe6b1; background: rgba(244,208,111,.09); border-color: rgba(244,208,111,.28); }
.hospital-support button:disabled { color: #66727b; background: #151e25; border-color: #27323a; cursor: not-allowed; }
.hospital-help-list { display: grid; gap: 6px; padding-top: 9px; border-top: 1px solid var(--line); }
.hospital-help-list > span { color: #71808b; font: 650 8px/1.35 var(--mono); }
.hospital-help-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 8px; background: rgba(200,255,54,.045); border: 1px solid rgba(200,255,54,.16); border-radius: 4px; }
.hospital-help-row div { min-width: 0; display: grid; gap: 3px; }
.hospital-help-row strong { overflow: hidden; color: #e8ffc4; font: 800 8px/1.2 var(--mono); text-overflow: ellipsis; white-space: nowrap; }
.hospital-help-row small { color: #82909a; font: 650 7px/1.3 var(--mono); }
.hospital-help-row button { min-height: 28px; padding: 0 9px; color: #101609; background: var(--lime); border: 0; border-radius: 3px; cursor: pointer; font: 850 8px/1 var(--mono); }
.hospital-help-row button:disabled { color: #68727a; background: #202a31; cursor: not-allowed; }
.arrival-vfx { position: absolute; inset: 0; z-index: 7; overflow: hidden; pointer-events: none; }
.arrival-vfx i { position: absolute; left: 50%; top: 48%; width: 7px; height: 14px; background: var(--spark); border-radius: 2px; animation: report-confetti 1.7s cubic-bezier(.15,.65,.2,1) forwards; transform: translate(-50%,-50%) rotate(var(--rotate)); }
.arrival-vfx i.shape-1, .arrival-vfx i.shape-2 { width: 18px; height: 18px; background: transparent; color: var(--spark); font: 900 18px/1 var(--mono); text-shadow: 0 0 8px var(--spark); }
.arrival-vfx.active::after { content: 'EINSATZ ABGESCHLOSSEN'; position: absolute; left: 50%; top: 44%; padding: 8px 14px; color: #111609; background: var(--lime); border-radius: 4px; box-shadow: 0 0 28px rgba(200,255,54,.45); font: 900 10px/1 var(--mono); letter-spacing: .12em; animation: report-banner 1.8s ease forwards; transform: translate(-50%,-50%); }
@keyframes report-confetti { 0% { opacity: 0; transform: translate(-50%,-50%) rotate(var(--rotate)) scale(.3); } 15% { opacity: 1; } 100% { opacity: 0; transform: translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(calc(var(--rotate) + 300deg)) scale(1); } }
@keyframes report-banner { 0%,100% { opacity: 0; transform: translate(-50%,-50%) scale(.82); } 14%,72% { opacity: 1; transform: translate(-50%,-50%) scale(1); } }
@media (prefers-reduced-motion: reduce) { .arrival-vfx i, .arrival-vfx::after { animation-duration: .01ms; } }
.network-card { display: grid; gap: 10px; }
.network-row { display: flex; align-items: center; justify-content: space-between; padding-top: 9px; border-top: 1px solid var(--line); color: #8b99a4; font-size: 11px; }
.network-row strong { color: #dce4e8; font: 700 10px/1 var(--mono); }
.panel-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 14px 18px; }
.panel-footer button { padding: 0; color: #82909a; background: transparent; border: 0; cursor: pointer; font-size: 10px; text-decoration: underline; text-underline-offset: 3px; }
.panel-footer > span { color: #4d5a64; font: 700 8px/1 var(--mono); }

.auth-gate { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; padding: 20px; overflow-y: auto; background: radial-gradient(circle at 30% 20%, rgba(94,231,255,.08), transparent 34%), radial-gradient(circle at 78% 75%, rgba(200,255,54,.07), transparent 30%), rgba(5,8,12,.97); }
.auth-gate[hidden] { display: none; }
.auth-card { width: min(460px, 100%); padding: 28px; background: #0e151d; border: 1px solid rgba(200,255,54,.24); border-radius: 10px; box-shadow: 0 26px 90px rgba(0,0,0,.55); }
.auth-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; }
.auth-brand > div { display: grid; gap: 5px; }
.auth-brand strong { font-size: 13px; letter-spacing: .08em; }
.auth-brand small { color: var(--lime); font: 700 8px/1 var(--mono); letter-spacing: .17em; }
.auth-card h1 { margin: 0 0 8px; font-size: 25px; letter-spacing: -.03em; }
.auth-card > p { margin: 0 0 20px; color: #8e9ba7; font-size: 12px; line-height: 1.55; }
.auth-tabs { display: grid; grid-template-columns: 1fr 1fr 1.35fr; gap: 4px; padding: 4px; background: #080e14; border: 1px solid var(--line); border-radius: 6px; }
.auth-tabs button { min-height: 34px; padding: 5px 7px; color: #7f8c96; background: transparent; border: 0; border-radius: 4px; cursor: pointer; font-size: 10px; font-weight: 750; }
.auth-tabs button.active { color: #111609; background: var(--lime); }
.auth-form { display: grid; gap: 13px; margin-top: 18px; }
.auth-form[hidden] { display: none; }
.auth-form label, .admin-actions label { display: grid; gap: 7px; color: #9daab3; font: 700 9px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.auth-form input, .admin-actions input { width: 100%; height: 42px; padding: 0 12px; color: var(--text); background: #080e14; border: 1px solid var(--line); border-radius: 5px; outline: none; font: 600 13px/1 var(--sans); }
.auth-form input:focus, .admin-actions input:focus { border-color: var(--lime); box-shadow: 0 0 0 3px rgba(200,255,54,.08); }
.auth-form > button, .recovery-card button { height: 42px; color: #10150a; background: var(--lime); border: 0; border-radius: 5px; cursor: pointer; font-weight: 850; }
.auth-form > small { color: #687680; font-size: 10px; line-height: 1.45; }
.auth-message { min-height: 18px; margin-top: 12px; color: var(--danger); font-size: 11px; line-height: 1.4; }
.recovery-card { display: grid; gap: 12px; margin-top: 18px; padding: 15px; background: rgba(255,139,56,.08); border: 1px solid rgba(255,139,56,.38); border-radius: 6px; }
.recovery-card[hidden] { display: none; }
.recovery-card strong { color: var(--orange); font-size: 13px; }
.recovery-card code { padding: 12px; overflow-wrap: anywhere; color: var(--text); background: #080e14; border: 1px solid var(--line); font: 750 15px/1.4 var(--mono); user-select: all; }
.recovery-card p { margin: 0; color: #9daab3; font-size: 11px; line-height: 1.5; }

.admin-dialog { width: min(1180px, calc(100% - 24px)); max-height: calc(100svh - 24px); padding: 0; overflow: auto; color: var(--text); background: radial-gradient(circle at 90% 0,rgba(132,204,22,.1),transparent 34%),#0e151d; border: 1px solid rgba(200,255,54,.3); border-radius: 12px; box-shadow: 0 30px 100px rgba(0,0,0,.7); }
.admin-dialog::backdrop,.settings-dialog::backdrop { background: rgba(3,6,9,.8); backdrop-filter: blur(5px); }
.dialog-heading { display: flex; justify-content: space-between; align-items: flex-start; padding: 20px 22px 14px; border-bottom: 1px solid var(--line); }
.dialog-heading span { color: var(--lime); font: 750 9px/1 var(--mono); letter-spacing: .14em; }
.dialog-heading h2 { margin: 7px 0 0; font-size: 22px; }
.dialog-heading button { color: var(--muted); background: transparent; border: 0; cursor: pointer; font-size: 24px; }
.admin-dialog > p { margin: 14px 22px; color: var(--muted); font-size: 11px; }
.admin-dialog > section { margin: 14px 22px; padding: 15px; background: #101821; border: 1px solid var(--line); border-radius: 7px; }
.admin-users { display: grid; gap: 8px; margin-top: 12px; }
.admin-user { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 10px; padding: 9px; background: #0a1117; border: 1px solid var(--line); }
.admin-user > div { display: grid; gap: 3px; }
.admin-user strong { font-size: 12px; }
.admin-user small { color: var(--muted); font-size: 9px; }
.admin-user select { height: 32px; color: var(--text); background: #121c25; border: 1px solid var(--line); border-radius: 4px; }
.admin-user button, .admin-actions button { min-height: 34px; padding: 0 11px; color: #111609; background: var(--lime); border: 0; border-radius: 4px; cursor: pointer; font-size: 10px; font-weight: 800; }

.global-nav { position:fixed; left:50%; bottom:14px; z-index:12; display:grid; grid-template-columns:repeat(5,minmax(76px,1fr)); gap:4px; width:min(520px,calc(100% - 380px)); padding:5px; transform:translateX(-50%); background:rgba(8,14,22,.86); border:1px solid rgba(148,163,184,.22); border-radius:14px; box-shadow:0 14px 45px rgba(0,0,0,.45); backdrop-filter:blur(20px); }
.global-nav button { display:grid; place-items:center; gap:4px; min-height:44px; padding:5px; color:#82909b; background:transparent; border:1px solid transparent; border-radius:9px; cursor:pointer; font:750 8px/1 var(--display); text-transform:uppercase; letter-spacing:.05em; }
.global-nav button span { color:#aab8c1; font:900 15px/1 var(--display); }
.global-nav button:hover,.global-nav button:focus-visible,.global-nav button[aria-current="page"] { color:#efffd5; background:rgba(132,204,22,.12); border-color:rgba(132,204,22,.32); }
.global-nav button[aria-current="page"] span { color:var(--signal-alliance); }

.settings-dialog { width:min(720px,calc(100% - 24px)); max-height:calc(100vh - 32px); padding:0; overflow:auto; color:var(--text); background:rgba(15,23,42,.94); border:1px solid rgba(56,189,248,.35); border-radius:11px; box-shadow:0 30px 100px rgba(0,0,0,.72); backdrop-filter:blur(20px); }
.settings-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:18px 22px 22px; }
.settings-grid > section { display:grid; align-content:start; gap:14px; padding:15px; background:rgba(5,10,18,.55); border:1px solid var(--line); border-radius:8px; }
.settings-grid label { display:grid; gap:8px; color:#9cabba; font:700 9px/1.3 var(--mono); }
.settings-grid select { min-height:38px; padding:0 10px; color:var(--text); background:#0b131d; border:1px solid #2b3947; border-radius:5px; }
.settings-grid input[type="range"] { width:100%; accent-color:var(--signal-technology); }
.settings-grid output { justify-self:end; color:var(--signal-technology); }
.toggle-row { grid-template-columns:auto 1fr; align-items:center; }
.toggle-row input { width:18px; height:18px; accent-color:var(--signal-alliance); }
.performance-grid { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.performance-grid span { display:grid; gap:6px; padding:9px; color:#72818e; background:#09111a; border:1px solid #22303d; border-radius:5px; font:700 7px/1 var(--mono); text-transform:uppercase; }
.performance-grid strong { color:#fff; font-size:12px; }
.settings-note { margin:0; color:#748390; font-size:9px; line-height:1.5; }
.admin-user button:disabled { opacity: .4; cursor: default; }
.admin-actions { display: grid; gap: 13px; }
.admin-actions button.danger { color: white; background: var(--danger); }
.admin-message { min-height: 18px; margin: 0 22px 20px; color: var(--cyan); font-size: 11px; }
.admin-2fa{display:grid;gap:12px;margin:20px auto;padding:20px;width:min(420px,calc(100% - 32px));background:#101821;border:1px solid rgba(132,204,22,.35);border-radius:10px}.admin-2fa[hidden],#adminPortal[hidden],.admin-receipt[hidden]{display:none}.admin-2fa label,.admin-tool-form label{display:grid;gap:6px;color:var(--muted);font-size:10px}.admin-2fa input,.admin-tool-form input,.admin-tool-form select,.admin-tool-form textarea{width:100%;padding:9px;color:var(--text);background:#080e14;border:1px solid var(--line);border-radius:5px}.admin-2fa button,.admin-tool-form button,.admin-mini-list button{padding:10px;color:#111609;background:var(--lime);border:0;border-radius:5px;font-weight:850;cursor:pointer}.admin-cockpit{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:18px 22px}.admin-cockpit>div{padding:12px;background:rgba(132,204,22,.06);border:1px solid rgba(132,204,22,.2);border-radius:8px}.admin-cockpit span,.admin-cockpit small{display:block;color:var(--muted);font-size:8px;letter-spacing:.08em;text-transform:uppercase}.admin-cockpit strong{display:block;margin:5px 0;font:850 20px/1 var(--display);color:#dfffa4}.admin-receipt{position:sticky;top:72px;z-index:3;display:grid;gap:4px;margin:0 22px 14px;padding:12px 14px;color:#dfffa4;background:rgba(15,34,22,.97);border:1px solid rgba(132,204,22,.55);border-left:4px solid var(--lime);border-radius:8px;box-shadow:0 10px 30px rgba(0,0,0,.35)}.admin-receipt.error{color:#ffd5dc;background:rgba(56,12,22,.97);border-color:rgba(255,82,112,.65);border-left-color:var(--danger)}.admin-receipt strong{font:850 12px/1.2 var(--display)}.admin-receipt span,.admin-receipt small{font-size:10px}.admin-receipt small{color:var(--muted)}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 22px 18px}.admin-grid>section{margin:0!important;padding:14px;background:#101821;border:1px solid var(--line);border-radius:8px}.admin-wide{grid-column:1/-1}.admin-tool-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.admin-tool-form textarea,.admin-tool-form button{grid-column:1/-1}.admin-user{grid-template-columns:minmax(130px,1fr) auto auto auto}.admin-user .gm-role{min-width:130px}.admin-inspector{display:grid;gap:7px;margin-top:10px}.admin-inspector dl{display:grid;grid-template-columns:1fr auto;gap:6px;margin:0}.admin-inspector dt{color:var(--muted)}.admin-inspector dd{margin:0;color:#dfffa4}.admin-mini-list,.admin-audit{display:grid;gap:6px;max-height:260px;overflow:auto;margin-top:10px}.admin-mini-list>div,.admin-audit>div{padding:9px;background:#0a1117;border-left:3px solid var(--cyan);border-radius:5px}.admin-mini-list small,.admin-audit small{display:block;color:var(--muted);margin-top:3px}.admin-audit code{color:#dfffa4}.admin-actions.admin-wide{grid-template-columns:1fr 1fr 1fr;align-items:end}
@media(max-width:820px){.admin-dialog{width:calc(100% - 8px);max-height:calc(100svh - 8px)}.admin-cockpit{grid-template-columns:repeat(2,1fr);margin-inline:10px}.admin-grid{grid-template-columns:1fr;margin-inline:10px}.admin-wide{grid-column:auto}.admin-user{grid-template-columns:1fr 1fr}.admin-user>div{grid-column:1/-1}.admin-actions.admin-wide,.admin-tool-form{grid-template-columns:1fr}.admin-tool-form textarea,.admin-tool-form button{grid-column:auto}}

.radar-dialog { width: min(760px, calc(100% - 24px)); max-height: calc(100vh - 32px); padding: 0; overflow: auto; color: var(--text); background: rgba(15,23,42,.96); border: 1px solid rgba(56,189,248,.38); border-radius: 9px; box-shadow: 0 30px 100px rgba(0,0,0,.7); backdrop-filter: blur(20px); }
.radar-dialog::backdrop { background: rgba(3,6,9,.8); backdrop-filter: blur(5px); }
.radar-dialog .dialog-heading span { color: var(--cyan); }
.coordinate-form { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 10px; margin: 16px 22px 10px; padding: 14px; background: rgba(8,14,20,.78); border: 1px solid var(--line); border-radius: 7px; }
.coordinate-form > div, .radar-filters label { display: grid; gap: 7px; color: #9daab3; font: 700 9px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.coordinate-form input, .radar-filters input, .radar-filters select { width: 100%; height: 38px; padding: 0 10px; color: var(--text); background: #080e14; border: 1px solid var(--line); border-radius: 4px; outline: none; font: 650 12px/1 var(--mono); }
.coordinate-form input:focus, .radar-filters input:focus, .radar-filters select:focus { border-color: var(--cyan); box-shadow: 0 0 0 3px rgba(56,189,248,.09); }
.coordinate-form button, .radar-filters button { height: 38px; padding: 0 14px; color: #071114; background: var(--cyan); border: 0; border-radius: 4px; cursor: pointer; font-size: 10px; font-weight: 850; }
.radar-search { margin: 10px 22px; padding: 14px; background: rgba(16,24,33,.78); border: 1px solid var(--line); border-radius: 7px; }
.radar-filters { display: grid; grid-template-columns: minmax(190px,1.5fr) minmax(90px,.6fr) auto; align-items: end; gap: 10px; }
.radar-filters button { color: #161108; background: #ffd46f; }
.radar-summary { min-height: 15px; margin: 13px 0 9px; color: var(--muted); font: 700 9px/1.4 var(--mono); letter-spacing: .05em; text-transform: uppercase; }
.radar-results { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; max-height: 330px; overflow-y: auto; scrollbar-color: #33414d transparent; }
.radar-result { display: grid; grid-template-columns: 36px 1fr auto; align-items: center; gap: 10px; min-height: 58px; padding: 8px 10px; color: var(--text); text-align: left; background: rgba(7,13,18,.9); border: 1px solid var(--line); border-radius: 5px; cursor: pointer; }
.radar-result:hover, .radar-result:focus-visible { border-color: rgba(56,189,248,.6); outline: none; background: rgba(56,189,248,.07); }
.radar-result-icon { display: grid; place-items: center; width: 34px; height: 34px; color: var(--cyan); background: rgba(56,189,248,.08); border: 1px solid currentColor; border-radius: 50%; font: 850 13px/1 var(--mono); }
.radar-result[data-category="pve"] .radar-result-icon { color: var(--danger); }
.radar-result[data-category="resource"] .radar-result-icon { color: #f59e0b; }
.radar-result[data-category="tower"] .radar-result-icon { color: var(--lime); }
.radar-result[data-category="base"] .radar-result-icon { color: #ec4899; }
.radar-result > span:nth-child(2) { min-width: 0; display: grid; gap: 5px; }
.radar-result strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.radar-result small, .radar-result-distance { color: var(--muted); font: 650 8px/1.35 var(--mono); }
.radar-result-distance { color: #d7e0e2; text-align: right; }
.radar-empty { grid-column: 1 / -1; padding: 28px 12px; color: var(--muted); text-align: center; border: 1px dashed var(--line); font-size: 11px; }
.radar-help { margin: 8px 22px 18px; color: #71808b; font-size: 10px; }
.radar-help kbd { padding: 2px 5px; color: var(--text); background: #080e14; border: 1px solid var(--line); border-radius: 3px; font: 700 9px/1 var(--mono); }

.formation-dialog { width: min(1120px,calc(100% - 24px)); max-height: calc(100vh - 24px); padding: 0; overflow: auto; color: var(--text); background: radial-gradient(circle at 50% 21%,rgba(192,38,211,.18),transparent 34%),linear-gradient(145deg,rgba(11,15,25,.97),rgba(9,14,24,.94)); border: 1px solid rgba(244,114,182,.48); border-radius: 18px; box-shadow: 0 34px 120px rgba(0,0,0,.8),0 0 60px rgba(192,38,211,.12); backdrop-filter: blur(24px); }
.formation-dialog::backdrop { background: rgba(3,6,12,.86); backdrop-filter: blur(9px); }
.formation-dialog .dialog-heading { background: linear-gradient(90deg,rgba(244,114,182,.07),transparent 55%); }
.formation-dialog .dialog-heading span { color: #fb79c6; }
.formation-tabs { display: grid; grid-template-columns: repeat(6,1fr); gap: 7px; margin: 14px 22px 0; }
.formation-tab { min-height: 44px; color: #92a0ad; background: rgba(8,14,24,.8); border: 1px solid rgba(148,163,184,.16); border-radius: 9px; cursor: pointer; font: 850 9px/1.25 var(--mono); transition: transform .18s ease,border-color .18s ease,background .18s ease; }
.formation-tab:hover { transform: translateY(-1px); border-color: rgba(244,114,182,.46); }
.formation-tab small { display: block; max-width: 100%; margin-top: 4px; overflow: hidden; color: #5f7180; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.formation-tab.active { color: #fff; background: linear-gradient(135deg,#be185d,#7e22ce); border-color: #ff8bd1; box-shadow: 0 0 18px rgba(236,72,153,.2); }
.formation-tab.active small { color: #ffd5ec; }
.formation-showcase { position: relative; margin: 12px 22px; overflow: hidden; background: radial-gradient(ellipse at 50% 15%,rgba(168,85,247,.23),transparent 42%),linear-gradient(180deg,rgba(22,16,43,.92),rgba(8,14,24,.96)); border: 1px solid rgba(216,180,254,.22); border-radius: 16px; box-shadow: inset 0 -30px 60px rgba(0,0,0,.34); }
.formation-showcase::before { position: absolute; inset: 48px 7% auto; height: 58%; background: repeating-linear-gradient(90deg,transparent 0 18%,rgba(255,255,255,.025) 18% 18.3%),linear-gradient(120deg,transparent 18%,rgba(167,139,250,.11) 18.5%,transparent 26%,transparent 68%,rgba(251,191,36,.09) 68.5%,transparent 76%); content: ''; pointer-events: none; }
.formation-stage-heading { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 16px 9px; border-bottom: 1px solid rgba(255,255,255,.07); }
.formation-stage-heading > div:first-child { display: grid; gap: 4px; }
.formation-stage-heading span { color: #d8b4fe; font: 800 8px/1 var(--mono); letter-spacing: .16em; }
.formation-stage-heading strong { font-size: 15px; }
.formation-power { display: grid; grid-template-columns: auto auto; align-items: end; gap: 4px 10px; min-width: 190px; text-align: right; }
.formation-power span { color: #f9a8d4; }
.formation-power strong { color: #fff; font: 950 20px/1 var(--mono); text-shadow: 0 0 18px rgba(244,114,182,.45); }
.formation-power i { grid-column: 1 / -1; width: 100%; height: 5px; overflow: hidden; background: rgba(255,255,255,.08); border-radius: 999px; }
.formation-power b { display: block; width: 0; height: 100%; background: linear-gradient(90deg,#a855f7,#ec4899,#fbbf24); border-radius: inherit; box-shadow: 0 0 12px #ec4899; transition: width .35s ease; }
.formation-stage { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); align-items: end; gap: 5px; min-height: 286px; padding: 22px 18px 12px; perspective: 900px; }
.formation-stage::after { position: absolute; right: 4%; bottom: 7px; left: 4%; height: 30px; background: radial-gradient(ellipse,#ec489955,transparent 68%); border: 1px solid rgba(244,114,182,.2); border-radius: 50%; content: ''; transform: rotateX(70deg); }
.stage-slot { --stage-accent:#a855f7; position: relative; z-index: 2; display: grid; align-content: end; min-width: 0; height: 214px; padding: 5px; overflow: hidden; background: linear-gradient(180deg,rgba(22,28,44,.42),rgba(8,12,20,.96)); border: 1px dashed rgba(216,180,254,.25); border-radius: 13px 13px 8px 8px; transform-origin: 50% 100%; }
.stage-slot.slot-support-left,.stage-slot.slot-support-right { height: 184px; transform: scale(.92); opacity: .92; }
.stage-slot.slot-dancer,.stage-slot.slot-vocal { height: 204px; }
.stage-slot.slot-center { z-index: 4; height: 244px; border-color: rgba(251,191,36,.48); box-shadow: 0 0 26px rgba(251,191,36,.12); }
.stage-slot.filled { border-style: solid; border-color: color-mix(in srgb,var(--stage-accent) 62%,transparent); box-shadow: 0 8px 24px rgba(0,0,0,.3),0 0 18px color-mix(in srgb,var(--stage-accent) 14%,transparent); animation: stage-card-arrive .28s cubic-bezier(.2,.8,.2,1); }
.stage-slot.filled[draggable="true"] { cursor: grab; }
.stage-slot.drop-target { border-color: #fff; box-shadow: 0 0 0 3px rgba(244,114,182,.5),0 0 28px rgba(236,72,153,.45); }
.stage-slot.dragging,.idol-card.dragging { opacity: .48; cursor: grabbing; }
.stage-slot[data-role="CENTER"] { --stage-accent:#fbbf24; }
.stage-slot[data-role="MAIN_VOCAL"] { --stage-accent:#a78bfa; }
.stage-slot[data-role="DANCER"] { --stage-accent:#f472b6; }
.stage-slot[data-role="SUPPORT"] { --stage-accent:#5ee7ff; }
.stage-slot-art { position: absolute; inset: 0; background-color: #111923; background-image: linear-gradient(180deg,transparent 48%,rgba(5,8,14,.2) 58%,rgba(5,8,14,.96) 88%),url('./assets/idol-commanders-v1.png'); background-repeat: no-repeat; background-position: center,var(--portrait-x) var(--portrait-y); background-size: 100% 100%,500% 300%; filter: saturate(1.06) brightness(1.1); }
.stage-slot-glow { position: absolute; inset: 18% 18% 8%; background: radial-gradient(ellipse at 50% 84%,color-mix(in srgb,var(--stage-accent) 42%,transparent),transparent 62%); filter: blur(8px); pointer-events: none; }
.stage-slot-copy { position: relative; z-index: 2; display: grid; gap: 3px; padding: 9px 7px 7px; text-align: center; text-shadow: 0 1px 4px #000; }
.stage-slot-copy strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.stage-slot-copy span { color: color-mix(in srgb,var(--stage-accent) 76%,white); font: 850 7px/1.2 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.stage-slot-copy small { color: #cbd5e1; font: 700 7px/1.2 var(--mono); }
.stage-slot-empty { place-self: center; display: grid; justify-items: center; gap: 8px; color: #82909e; text-align: center; }
.stage-slot-empty b { display: grid; place-items: center; width: 40px; height: 40px; color: #c4b5fd; border: 1px solid rgba(196,181,253,.32); border-radius: 50%; font-size: 19px; }
.stage-slot-empty span { font: 800 7px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.stage-synergy { position: absolute; z-index: 1; height: 2px; border-radius: 999px; opacity: .68; transform-origin: left center; pointer-events: none; }
.stage-synergy::after { position: absolute; top: -2px; right: 0; width: 6px; height: 6px; background: currentColor; border-radius: 50%; box-shadow: 0 0 12px currentColor; content: ''; }
.synergy-center { bottom: 42px; left: 26%; width: 48%; color: #fbbf24; background: linear-gradient(90deg,transparent,#fbbf24,transparent); box-shadow: 0 0 10px #fbbf24; }
.synergy-dancer { bottom: 76px; left: 29%; width: 23%; color: #f472b6; background: linear-gradient(90deg,transparent,#f472b6); box-shadow: 0 0 10px #f472b6; transform: rotate(-12deg); }
.synergy-vocal { bottom: 78px; left: 50%; width: 23%; color: #a78bfa; background: linear-gradient(90deg,#a78bfa,transparent); box-shadow: 0 0 10px #a78bfa; transform: rotate(12deg); }
.formation-stats { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(5,1fr); gap: 7px; padding: 10px 14px 0; border-top: 1px solid rgba(255,255,255,.06); }
.formation-stat { --stat-color:#cbd5e1; display: grid; grid-template-columns: 24px 1fr; align-items: center; gap: 3px 7px; min-width: 0; padding: 8px; background: rgba(7,12,21,.74); border: 1px solid rgba(148,163,184,.13); border-radius: 9px; }
.formation-stat-icon { grid-row: 1 / 3; display: grid; place-items: center; width: 24px; height: 24px; color: #081019; background: var(--stat-color); border-radius: 50%; font-size: 12px; box-shadow: 0 0 12px color-mix(in srgb,var(--stat-color) 28%,transparent); }
.formation-stat span { color: #82909e; font: 750 7px/1 var(--mono); text-transform: uppercase; }
.formation-stat strong { overflow: hidden; color: #f8fafc; font: 900 10px/1 var(--mono); text-overflow: ellipsis; }
.formation-stat i { grid-column: 1 / -1; height: 3px; overflow: hidden; background: rgba(255,255,255,.07); border-radius: 999px; }
.formation-stat i b { display: block; height: 100%; background: var(--stat-color); border-radius: inherit; box-shadow: 0 0 8px var(--stat-color); }
.formation-stat.stat-vocal { --stat-color:#a78bfa; }
.formation-stat.stat-dance { --stat-color:#f472b6; }
.formation-stat.stat-management { --stat-color:#5ee7ff; }
.formation-stat.stat-fans { --stat-color:#fbbf24; }
.formation-stat.stat-tempo { --stat-color:#84cc16; }
.formation-role-bonuses { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; padding: 8px 14px 14px; }
.formation-role { display: grid; grid-template-columns: 24px 1fr; align-items: center; column-gap: 8px; min-width: 0; padding: 8px 10px; background: rgba(132,204,22,.07); border: 1px solid rgba(132,204,22,.28); border-radius: 9px; }
.formation-role > span { grid-row: 1 / 3; display: grid; place-items: center; width: 23px; height: 23px; color: #111609; background: var(--lime); border-radius: 50%; font: 900 9px/1 var(--mono); box-shadow: 0 0 13px rgba(132,204,22,.22); }
.formation-role strong { font-size: 9px; }
.formation-role small { overflow: hidden; color: var(--lime); font: 700 7px/1.25 var(--mono); text-overflow: ellipsis; white-space: nowrap; }
.formation-role.missing { opacity: .6; background: rgba(7,12,21,.72); border-color: rgba(148,163,184,.14); }
.formation-role.missing > span { color: #dce4e8; background: #33414d; box-shadow: none; }
.formation-role.missing small { color: #82909a; }
.formation-builder { margin: 0 22px 16px; padding: 14px; background: rgba(7,12,21,.78); border: 1px solid rgba(148,163,184,.15); border-radius: 13px; }
.formation-controls { display: grid; grid-template-columns: minmax(180px,1fr) auto; align-items: end; gap: 10px; }
.formation-controls label { display: grid; gap: 6px; color: #9aa7b3; font: 750 8px/1 var(--mono); letter-spacing: .09em; text-transform: uppercase; }
.formation-controls select { height: 38px; padding: 0 11px; color: var(--text); background: #111b29; border: 1px solid rgba(148,163,184,.2); border-radius: 8px; }
.formation-controls button { min-height: 38px; padding: 0 16px; color: #180914; background: linear-gradient(135deg,#f9a8d4,#f472b6); border: 0; border-radius: 8px; cursor: pointer; font-size: 10px; font-weight: 900; box-shadow: 0 0 18px rgba(244,114,182,.15); }
.formation-controls button span { margin-right: 4px; }
.formation-deck-heading { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin: 15px 0 10px; }
.formation-deck-heading > div:first-child { display: grid; gap: 4px; }
.formation-deck-heading span { color: #f9a8d4; font: 850 8px/1 var(--mono); letter-spacing: .13em; }
.formation-deck-heading small { color: #71808b; font-size: 8px; }
.formation-role-filters { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px; }
.formation-role-filters button { min-height: 26px; padding: 0 9px; color: #82909e; background: #101827; border: 1px solid rgba(148,163,184,.15); border-radius: 999px; cursor: pointer; font: 800 7px/1 var(--mono); }
.formation-role-filters button.active { color: #210817; background: #f472b6; border-color: #f9a8d4; }
.idol-roster { display: grid; grid-auto-flow: column; grid-auto-columns: 126px; gap: 9px; padding: 3px 2px 10px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-color: #7e22ce #111827; }
.idol-card { --card-accent:#64748b; position: relative; display: grid; grid-template-rows: 1fr auto; width: 126px; aspect-ratio: 2 / 3; padding: 0; overflow: hidden; color: var(--text); text-align: left; background: linear-gradient(180deg,#162030,#0a0f18); border: 2px solid var(--card-accent); border-radius: 10px; cursor: pointer; scroll-snap-align: start; box-shadow: 0 7px 18px rgba(0,0,0,.3); transition: transform .18s ease,box-shadow .18s ease; }
.idol-card:hover { transform: translateY(-3px); box-shadow: 0 10px 22px rgba(0,0,0,.42),0 0 15px color-mix(in srgb,var(--card-accent) 22%,transparent); }
.idol-card.rarity-r { --card-accent:#475569; }
.idol-card.rarity-sr { --card-accent:#b8d5ff; }
.idol-card.rarity-ssr { --card-accent:#e6c86e; }
.idol-card.rarity-ur { --card-accent:#ff72f7; animation: ur-card-shift 4s linear infinite; }
.idol-card.selected { transform: translateY(-3px); box-shadow: 0 0 0 2px #f472b6,0 0 24px rgba(236,72,153,.32); }
.idol-card.busy:not(.selected) { opacity: .42; cursor: not-allowed; filter: grayscale(.55); }
.idol-card-art { position: relative; min-height: 0; background-color: #111923; background-image: linear-gradient(180deg,transparent 54%,rgba(7,10,17,.82)),url('./assets/idol-commanders-v1.png'); background-repeat: no-repeat; background-position: center,var(--portrait-x) var(--portrait-y); background-size: 100% 100%,500% 300%; filter: brightness(1.08); }
.idol-card-rarity { position: absolute; top: 7px; left: 7px; padding: 4px 6px; color: #081019; background: var(--card-accent); border-radius: 5px; font: 950 7px/1 var(--mono); box-shadow: 0 0 10px color-mix(in srgb,var(--card-accent) 35%,transparent); }
.idol-card-role { position: absolute; right: 5px; bottom: 5px; left: 5px; overflow: hidden; color: #fff; font: 850 7px/1.2 var(--mono); text-align: center; text-overflow: ellipsis; text-shadow: 0 1px 4px #000; text-transform: uppercase; white-space: nowrap; }
.idol-card-copy { display: grid; gap: 5px; padding: 8px; background: linear-gradient(180deg,rgba(13,20,31,.96),#090e16); }
.idol-card-copy strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.idol-card-copy small { color: #91a0ad; font: 700 7px/1.3 var(--mono); }
.idol-card-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 3px; }
.idol-card-stats span { display: grid; gap: 2px; min-width: 0; color: #697987; font: 700 6px/1 var(--mono); text-align: center; }
.idol-card-stats b { overflow: hidden; color: #dce5eb; font-size: 7px; text-overflow: ellipsis; }
.idol-select-mark { position: absolute; top: 6px; right: 6px; z-index: 2; display: grid; place-items: center; width: 22px; height: 22px; color: #d8e1e7; background: rgba(4,8,14,.74); border: 1px solid rgba(255,255,255,.28); border-radius: 50%; font-size: 11px; backdrop-filter: blur(6px); }
.idol-card.selected .idol-select-mark { color: #170b14; background: #f472b6; border-color: #ffd2eb; }
.formation-footer { position: sticky; z-index: 6; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 22px; background: rgba(8,13,23,.94); border-top: 1px solid rgba(244,114,182,.22); backdrop-filter: blur(18px); }
.formation-footer > span { color: #aab5be; font: 800 9px/1 var(--mono); }
.formation-footer button { display: grid; min-width: 300px; min-height: 48px; place-content: center; gap: 3px; padding: 7px 20px; color: #fff; background: linear-gradient(105deg,#be185d,#ec4899 52%,#7e22ce); border: 1px solid #ff9bd7; border-radius: 10px; cursor: pointer; box-shadow: 0 0 24px rgba(236,72,153,.25); }
.formation-footer button span { font-size: 11px; font-weight: 950; letter-spacing: .08em; }
.formation-footer button small { color: #ffe0f1; font: 700 7px/1 var(--mono); }
.formation-footer button:disabled { color: #66737c; background: #1a252e; border-color: #26333e; box-shadow: none; cursor: not-allowed; }
.formation-footer button:disabled small { color: #586670; }
@keyframes stage-card-arrive { from { opacity: 0; transform: translateY(22px) scale(.92); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes ur-card-shift { 0%,100% { border-color:#ff72f7; } 33% { border-color:#5ee7ff; } 66% { border-color:#fbbf24; } }
.idol-avatar { display: grid; place-items: center; flex: 0 0 auto; width: 46px; height: 46px; color: #170b1c; background: linear-gradient(145deg,#fb7185,#a78bfa); border: 3px solid #e6c86e; border-radius: 50%; font: 900 17px/1 var(--sans); }
.idol-avatar.has-portrait { color: transparent; background-color: #111923; background-image: url('./assets/idol-commanders-v1.png'); background-repeat: no-repeat; background-position: var(--portrait-x) var(--portrait-y); background-size: 500% 300%; box-shadow: inset 0 0 0 1px rgba(255,255,255,.16); }
.idol-avatar.rarity-ur { border-color: #ff72f7; box-shadow: 0 0 16px rgba(255,0,255,.32); }
.idol-avatar.rarity-sr { border-color: #b8d5ff; }
.alpha-dialog { width: min(1080px,calc(100% - 24px)); max-height: calc(100vh - 28px); padding: 0; overflow: auto; color: var(--text); background: radial-gradient(circle at 90% 5%,rgba(94,231,255,.1),transparent 32%),#0e151d; border: 1px solid rgba(94,231,255,.36); border-radius: 10px; box-shadow: 0 30px 100px rgba(0,0,0,.72); }
.alpha-dialog::backdrop { background: rgba(3,6,9,.84); backdrop-filter: blur(6px); }
.alpha-stats { display: grid; grid-template-columns: repeat(6,1fr); gap: 7px; margin: 14px 22px; }
.alpha-stat { display: grid; gap: 5px; padding: 10px; background: #091017; border: 1px solid var(--line); border-radius: 5px; }
.alpha-stat span { color: #71808b; font: 700 7px/1 var(--mono); text-transform: uppercase; }
.alpha-stat strong { color: #eef5f6; font: 850 12px/1 var(--mono); }
.alpha-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 22px 18px; }
.alpha-grid > section { display: grid; align-content: start; gap: 9px; padding: 13px; background: rgba(7,12,17,.72); border: 1px solid var(--line); border-radius: 7px; }
.alpha-wide { grid-column: 1 / -1; }
.alpha-list { display: grid; gap: 6px; color: #91a0aa; font: 700 8px/1.4 var(--mono); }
.alpha-list.scroll { max-height: 210px; overflow: auto; }
.alpha-row { display: flex; justify-content: space-between; gap: 9px; padding: 7px 8px; background: #0b131a; border: 1px solid #202c35; border-radius: 4px; }
.alpha-row strong { color: #dce8eb; text-align: right; }
.alpha-form { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr) auto; gap: 6px; }
.alpha-form.three { grid-template-columns: repeat(3,minmax(0,1fr)) auto; }
.alpha-form input,.alpha-form select { min-width: 0; height: 34px; padding: 0 8px; color: var(--text); background: #111b24; border: 1px solid var(--line); border-radius: 4px; }
.alpha-form button,.alpha-actions button,.alpha-idol button { min-height: 34px; padding: 0 10px; color: #0d1609; background: var(--lime); border: 0; border-radius: 4px; cursor: pointer; font: 850 8px/1.2 var(--mono); }
.alpha-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.alpha-actions button:last-child { color: #09161a; background: var(--cyan); }
.alliance-command { background: radial-gradient(circle at 0 0,rgba(94,231,255,.08),transparent 42%),rgba(7,12,17,.78)!important; }
.alliance-command-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 10px; }
.alliance-command-grid > div { display: grid; align-content: start; gap: 8px; min-width: 0; }
#cLevelForm { grid-template-columns: 1fr 1fr auto; }
.research-branches { display: grid; gap: 7px; }
.research-card { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 9px; min-height: 54px; padding: 9px 10px; background: linear-gradient(110deg,#111a25,#0a1219); border: 1px solid #263743; border-radius: 6px; }
.research-card > div { display: grid; gap: 4px; min-width: 0; }
.research-card strong { color: var(--cyan); font: 900 9px/1 var(--mono); letter-spacing: .08em; }
.research-card span { overflow: hidden; color: #7e8f9c; font: 700 7px/1.3 var(--mono); text-overflow: ellipsis; white-space: nowrap; }
.research-card button { min-height: 32px; padding: 0 10px; color: #0a1519; background: var(--cyan); border: 0; border-radius: 5px; cursor: pointer; font: 850 7px/1 var(--mono); }
.fanmeeting-panel { background: radial-gradient(circle at 90% 0,rgba(244,114,182,.13),transparent 42%),rgba(9,12,20,.82)!important; border-color: rgba(244,114,182,.32)!important; }
.fanmeeting-panel .section-heading span { color: #f9a8d4; }
.alpha-actions button:disabled,.research-card button:disabled { color: #66737c; background: #202a31; cursor: not-allowed; }
.alpha-idols { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; max-height: 320px; overflow: auto; }
.alpha-idol { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 6px; padding: 8px; background: #0b131a; border: 1px solid #27343e; border-radius: 5px; }
.alpha-idol > div { display: grid; gap: 3px; min-width: 0; }
.alpha-idol strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }
.alpha-idol small { color: #75838e; font: 650 7px/1.35 var(--mono); }
.alpha-idol button:disabled { color: #68737b; background: #202a31; cursor: not-allowed; }
.alpha-dialog > .admin-message { margin: 0 22px 18px; }

.cover-dialog { width: min(1180px,calc(100% - 24px)); max-height: calc(100vh - 24px); padding: 0; overflow: auto; color: var(--text); background: radial-gradient(circle at 8% 12%,rgba(255,74,168,.14),transparent 28%),radial-gradient(circle at 90% 8%,rgba(94,231,255,.12),transparent 30%),#0a1019; border: 1px solid rgba(244,114,182,.46); border-radius: 16px; box-shadow: 0 34px 120px rgba(0,0,0,.82); }
.cover-dialog::backdrop { background: rgba(3,5,10,.88); backdrop-filter: blur(9px); }
.cover-workspace { display: grid; grid-template-columns: minmax(280px,.8fr) minmax(430px,1.2fr); gap: 18px; padding: 18px 22px; }
.cover-preview-panel { display: grid; align-content: start; justify-items: center; gap: 12px; min-width: 0; padding: 16px; background: rgba(4,8,15,.72); border: 1px solid rgba(148,163,184,.15); border-radius: 14px; }
.cover-preview { position: relative; isolation: isolate; width: min(100%,330px); aspect-ratio: 9 / 16; overflow: hidden; background: radial-gradient(circle at 50% 20%,#ff4aa866,transparent 30%),linear-gradient(145deg,#32105c,#07151f 55%,#173a47); border: 1px solid rgba(255,255,255,.28); border-radius: 3px; box-shadow: 0 24px 55px rgba(0,0,0,.58),0 0 30px rgba(236,72,153,.16); transition: aspect-ratio .25s ease,background .25s ease; }
.cover-preview.sleeve { width: min(100%,420px); aspect-ratio: 1 / 1; }
.cover-preview::before { position: absolute; inset: 0; z-index: -1; background: linear-gradient(115deg,transparent 10%,rgba(255,255,255,.14) 48%,transparent 51%),repeating-linear-gradient(90deg,transparent 0 19%,rgba(255,255,255,.035) 19% 19.5%); content: ''; mix-blend-mode: screen; }
.cover-preview[data-background="GOLDEN_ROOFTOP"] { background: radial-gradient(circle at 50% 22%,#fff2b677,transparent 28%),linear-gradient(155deg,#3d1d3f,#c26b42 58%,#17131e); }
.cover-preview[data-background="NOIR_ATELIER"] { background: radial-gradient(circle at 68% 18%,#ffffff3d,transparent 24%),linear-gradient(145deg,#050608,#2b2731 65%,#08090d); }
.cover-preview[data-background="HOLO_PRISM_STUDIO"] { background: conic-gradient(from 210deg at 50% 45%,#4d11a8,#0b8bc0,#ec4899,#fbbf24,#4d11a8); }
.cover-preview[data-background="RUNWAY_GLASS"] { background: linear-gradient(115deg,#e8fbff,#f5c3dd 38%,#17213d 39% 62%,#bdf7ff 63%,#f7d3e8); }
.cover-layer { position: absolute; margin: 0; cursor: grab; touch-action: none; transform: translate(-50%,-50%) rotate(var(--cover-rotation,0deg)) scale(var(--cover-scale,1)); transform-origin: center; user-select: none; }
.cover-layer:active { cursor: grabbing; }
.cover-layer.is-selected { outline: 1px dashed #fff; outline-offset: 4px; filter: drop-shadow(0 0 8px rgba(94,231,255,.9)); }
.cover-franchise { width: max-content; max-width: 86%; color: #fff; font: 950 clamp(18px,4vw,38px)/.9 var(--sans); letter-spacing: -.06em; text-shadow: 0 2px 18px #000; }
.cover-headline { width: 78%; color: #fff; font: 950 clamp(14px,2.4vw,28px)/.92 var(--sans); letter-spacing: -.045em; text-align: right; text-shadow: 0 3px 18px #000; text-transform: uppercase; overflow-wrap: anywhere; }
.cover-cast,.cover-stickers { position: absolute; inset: 0; pointer-events: none; }
.cover-cast .cover-actor { width: 30%; height: 54%; overflow: hidden; pointer-events: auto; background-color: #121b25; background-image: url('./assets/idol-commanders-v2-daylight.png'); background-repeat: no-repeat; background-position: var(--portrait-x) var(--portrait-y); background-size: 500% 300%; border: 1px solid rgba(255,255,255,.32); border-radius: 52% 52% 8px 8px; box-shadow: 0 12px 25px rgba(0,0,0,.4); }
.cover-cast .cover-actor span { position: absolute; right: 0; bottom: 0; left: 0; padding: 5px 2px; color: #fff; background: rgba(3,7,12,.74); font: 800 7px/1 var(--mono); text-align: center; }
.cover-filter { width: max-content; padding: 5px 7px; color: #081017; background: var(--cyan); font: 900 7px/1 var(--mono); letter-spacing: .1em; }
.cover-stickers span { width: max-content; padding: 4px 5px; pointer-events: auto; color: #171009; background: #fbbf24; border-radius: 999px; font: 900 6px/1 var(--mono); }
.cover-grid-overlay { position: absolute; inset: 0; z-index: 108; display: none; pointer-events: none; background-image: linear-gradient(rgba(255,255,255,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px); background-size: 5% 5%; }
.cover-preview.show-grid .cover-grid-overlay { display: block; }
.cover-safe-area { position: absolute; inset: 5%; z-index: 109; display: none; pointer-events: none; border: 1px dashed rgba(255,255,255,.78); box-shadow: 0 0 0 1px rgba(0,0,0,.28); }
.cover-safe-area span { position: absolute; top: 3px; right: 4px; color: rgba(255,255,255,.76); font: 700 5px/1 var(--mono); letter-spacing: .09em; }
.cover-preview.show-safe-area .cover-safe-area { display: block; }
.cover-score { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; padding: 10px 12px; background: #0c151f; border: 1px solid rgba(94,231,255,.2); border-radius: 8px; }
.cover-score strong { color: var(--cyan); font: 900 10px/1 var(--mono); }
.cover-score span { color: #8795a0; font-size: 9px; text-align: right; }
.cover-score.has-score strong { color: #fbbf24; font-size: 18px; }
.cover-view-options { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 15px; color: #aeb9c2; font: 750 8px/1 var(--mono); }
.cover-view-options label { display: flex; align-items: center; gap: 5px; cursor: pointer; }
.cover-view-options input { accent-color: var(--cyan); }
.cover-controls { display: grid; grid-template-columns: 1fr 1fr; align-content: start; gap: 11px; min-width: 0; }
.cover-controls label { display: grid; gap: 6px; color: #9aa7b3; font: 800 8px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.cover-controls input,.cover-controls select { width: 100%; min-width: 0; height: 40px; padding: 0 10px; color: var(--text); background: #111b29; border: 1px solid rgba(148,163,184,.22); border-radius: 7px; }
.cover-control-wide { grid-column: 1 / -1; }
.cover-controls fieldset { min-width: 0; margin: 0; padding: 10px; border: 1px solid rgba(148,163,184,.18); border-radius: 9px; }
.cover-controls legend { padding: 0 6px; color: #aeb9c2; font: 800 8px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.cover-transform-panel legend span { color: var(--cyan); }
.cover-transform-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; }
.cover-transform-grid label { grid-template-columns: 62px minmax(80px,1fr) 38px; align-items: center; gap: 7px; }
.cover-transform-grid input[type="range"] { height: 24px; padding: 0; accent-color: var(--magenta); }
.cover-transform-grid output { color: #dce8eb; font: 800 8px/1 var(--mono); text-align: right; }
.cover-layer-actions { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; margin-top: 9px; }
.cover-layer-actions button,.cover-layer-list button { min-height: 32px; padding: 6px 8px; color: #cbd5df; background: #111b29; border: 1px solid #2d3a49; border-radius: 6px; cursor: pointer; font: 800 8px/1.15 var(--mono); }
.cover-layer-actions button:hover,.cover-layer-list button:hover,.cover-layer-list button.active { color: #071018; background: var(--cyan); border-color: #b9f7ff; }
.cover-layer-list { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }
.cover-actor-picker,.cover-sticker-picker { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
.cover-actor-picker label,.cover-sticker-picker label { position: relative; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 7px; min-height: 36px; padding: 7px; color: #cbd5df; background: #0c141e; border: 1px solid #22303d; border-radius: 6px; cursor: pointer; font-size: 8px; line-height: 1.25; letter-spacing: 0; text-transform: none; }
.cover-actor-picker input,.cover-sticker-picker input { width: 15px; height: 15px; margin: 0; accent-color: var(--magenta); }
.cover-save { min-height: 48px; color: #fff; background: linear-gradient(105deg,#be185d,#ec4899 52%,#7e22ce); border: 1px solid #ff9bd7; border-radius: 9px; cursor: pointer; font: 950 10px/1 var(--mono); letter-spacing: .08em; box-shadow: 0 0 24px rgba(236,72,153,.2); }
.cover-history { margin: 0 22px 16px; padding: 14px; background: rgba(7,12,20,.72); border: 1px solid rgba(148,163,184,.14); border-radius: 10px; }
.cover-world-gallery { background: linear-gradient(110deg,rgba(251,191,36,.07),rgba(7,12,20,.72) 35%,rgba(94,231,255,.06)); border-color: rgba(251,191,36,.25); }
.cover-project-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; margin-top: 10px; }
.cover-project { display: grid; gap: 6px; width: 100%; padding: 8px; color: var(--text); background: #0c141e; border: 1px solid #25323e; border-radius: 7px; text-align: left; }
.cover-project:hover,.cover-project:focus-within { border-color: var(--cyan); }
.cover-project.is-featured { border-color: #fbbf24; box-shadow: inset 0 0 18px rgba(251,191,36,.08); }
.cover-project-main { display: grid; gap: 4px; padding: 0; color: inherit; background: none; border: 0; cursor: pointer; text-align: left; }
.cover-project strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.cover-project span { color: #81909c; font: 750 7px/1.3 var(--mono); }
.cover-project b { color: #fbbf24; font: 950 13px/1 var(--mono); }
.cover-project-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.cover-project-actions button { min-height: 28px; color: #071018; background: var(--cyan); border: 0; border-radius: 5px; cursor: pointer; font: 850 7px/1 var(--mono); }
.cover-project-actions button:first-child { background: #fbbf24; }
.cover-project-actions button:disabled { color: #d8be67; background: #332b16; cursor: default; }
.cover-dialog > .admin-message { margin: 0 22px 18px; }

@media (max-width: 1500px) {
  .topbar { grid-template-columns: 190px minmax(0,1fr) auto auto; padding-inline:12px; }
  .resources > div { min-width:78px; padding-inline:9px; }
  .resources > div:nth-child(4), .resources > div:nth-child(5), .resources > div:nth-child(6), .resources > div:nth-child(7) { display:none; }
  .season { gap:6px; letter-spacing:.08em; }
}

@media (max-width: 1050px) {
  .topbar { grid-template-columns: 200px 1fr auto auto; padding: 0 14px; }
  .resources > div { min-width: 82px; padding: 0 10px; }
  .resources > div:nth-child(3), .resources > div:nth-child(4), .resources > div:nth-child(5) { display: none; }
  .game-layout { grid-template-columns: minmax(0, 1fr) 310px; }
}

@media (max-width: 820px) {
  html, body { height: auto; }
  body { overflow: auto; }
  body:has(dialog[open]) { overflow: hidden; }
  .app-shell { height: auto; min-height: 100svh; padding-bottom:68px; grid-template-rows: 60px auto; }
  .topbar { position: sticky; top: 0; grid-template-columns: minmax(0,1fr) auto; width: 100%; min-width: 0; height: 60px; padding: 0 12px; }
  .season { display: none; }
  .account-bar { grid-column: 2; grid-row: 1; margin: 0; }
  .resources { display: none; }
  .account-bar #playerName { max-width: 80px; }
  .brand-mark { width: 34px; height: 34px; }
  .brand { min-width: 0; }
  .game-layout { display: block; overflow: visible; }
  .map-panel { min-height:68svh; grid-template-rows:auto minmax(520px,68svh); }
  .map-toolbar { align-items:flex-start; gap:8px; padding:8px; overflow-x:auto; scrollbar-width:thin; }
  .mission-chip { min-width:190px; }
  .toolbar-actions { flex:none; }
  .global-nav { left:8px; right:8px; bottom:7px; width:auto; grid-template-columns:repeat(5,1fr); transform:none; }
  .global-nav button { min-width:0; min-height:49px; font-size:7px; }
  .settings-grid { grid-template-columns:1fr; padding:12px; }
  .formation-tabs { grid-template-columns: repeat(3,1fr); margin-inline: 12px; }
  .formation-showcase { margin-inline: 12px; }
  .formation-stage { min-height: 238px; padding-inline: 8px; }
  .stage-slot { height: 184px; }
  .stage-slot.slot-support-left,.stage-slot.slot-support-right { height: 160px; }
  .stage-slot.slot-dancer,.stage-slot.slot-vocal { height: 174px; }
  .stage-slot.slot-center { height: 208px; }
  .formation-stats { grid-template-columns: repeat(3,1fr); }
  .formation-role-bonuses { grid-template-columns: 1fr; }
  .formation-builder { margin-inline: 12px; }
  .idol-roster { grid-auto-columns: 120px; }
  .formation-footer { padding-inline: 12px; }
  .alpha-stats { grid-template-columns: repeat(3,1fr); margin-inline: 12px; }
  .alpha-grid { grid-template-columns: 1fr; margin-inline: 12px; }
  .alliance-command-grid { grid-template-columns: 1fr; }
  .alpha-wide { grid-column: auto; }
  .alpha-idols { grid-template-columns: 1fr 1fr; }
  .cover-workspace { grid-template-columns: 1fr; padding-inline: 12px; }
  .cover-preview { width: min(100%,280px); }
  .cover-preview.sleeve { width: min(100%,340px); }
  .cover-history { margin-inline: 12px; }
  .cover-project-list { grid-template-columns: 1fr 1fr; }
  .map-panel { height: 66svh; min-height: 470px; grid-template-rows: auto 1fr; border-right: 0; }
  .map-toolbar { align-items: flex-start; padding: 9px 10px; }
  .mission-chip { display: grid; gap: 6px; }
  .mission-chip strong { max-width: 180px; font-size: 11px; }
  .map-mode { display: none; }
  #centerButton { display: none; }
  .tool-button { padding: 0 9px; }
  .tool-button.primary { font-size: 0; width: 38px; }
  .tool-button.primary .button-icon { font-size: 19px; }
  .legend { display: none; }
  .coords { min-width: 0; max-width: calc(100% - 72px); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  .zoom-level { left: auto; right: 8px; }
  .minimap-box { right: 8px; bottom: 8px; width: 122px; }
  .minimap-box canvas { width: 120px; height: 94px; }
  .build-hint { top: 48px; width: calc(100% - 20px); }
  .build-hint span { font-size: 10px; }
  .command-panel { height: auto; max-height: none; overflow: visible; border-top: 1px solid var(--line); }
  .alliance-card { padding: 14px; }
  .objective-card, .intel-card, .network-card, .fleet-card, .hospital-card { margin: 10px; }
  .auth-card { padding: 20px; }
  .auth-tabs { grid-template-columns: 1fr; }
  .admin-user { grid-template-columns: 1fr auto; }
  .admin-user button { grid-column: 1 / -1; }
  .radar-button { width: 38px; padding: 0; font-size: 0; }
  .radar-button .button-icon { font-size: 19px; }
  .coordinate-form, .radar-filters { grid-template-columns: 1fr 1fr; }
  .coordinate-form button, .radar-filters button { grid-column: 1 / -1; }
  .radar-results { grid-template-columns: 1fr; max-height: 280px; }
}

@media (max-width: 460px) {
  .formation-dialog { width: calc(100% - 10px); max-height: calc(100svh - 10px); border-radius: 12px; }
  .formation-stage-heading { align-items: stretch; flex-direction: column; gap: 8px; }
  .formation-power { min-width: 0; text-align: left; }
  .formation-stage { min-height: 204px; gap: 2px; padding: 14px 4px 8px; }
  .stage-slot { height: 154px; padding: 2px; border-radius: 8px 8px 5px 5px; }
  .stage-slot.slot-support-left,.stage-slot.slot-support-right { height: 132px; transform: scale(.96); }
  .stage-slot.slot-dancer,.stage-slot.slot-vocal { height: 146px; }
  .stage-slot.slot-center { height: 180px; }
  .stage-slot-copy { gap: 2px; padding: 5px 2px; }
  .stage-slot-copy strong { font-size: 8px; }
  .stage-slot-copy span,.stage-slot-copy small { font-size: 5.5px; }
  .stage-slot-empty b { width: 28px; height: 28px; font-size: 14px; }
  .stage-slot-empty span { font-size: 5.5px; }
  .formation-stats { grid-template-columns: 1fr 1fr; padding-inline: 8px; }
  .formation-role-bonuses { padding-inline: 8px; }
  .formation-controls { grid-template-columns: 1fr; }
  .formation-deck-heading { align-items: stretch; flex-direction: column; }
  .formation-role-filters { justify-content: flex-start; }
  .idol-roster { grid-auto-columns: 112px; }
  .formation-footer { align-items: stretch; flex-direction: column; }
  .formation-footer button { width: 100%; min-width: 0; }
  .alpha-stats { grid-template-columns: repeat(2,1fr); }
  .alpha-idols { grid-template-columns: 1fr; }
  .alpha-form,.alpha-form.three { grid-template-columns: 1fr; }
  .alpha-actions { grid-template-columns: 1fr; }
  .cover-dialog { width: calc(100% - 10px); max-height: calc(100svh - 10px); border-radius: 12px; }
  .cover-controls { grid-template-columns: 1fr; }
  .cover-control-wide { grid-column: auto; }
  .cover-transform-grid { grid-template-columns: 1fr; }
  .cover-layer-actions { grid-template-columns: 1fr; }
  .cover-actor-picker,.cover-sticker-picker { grid-template-columns: 1fr 1fr; }
  .cover-project-list { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
.motion-reduced *, .motion-reduced *::before, .motion-reduced *::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; }

.beta-dialog { width:min(1180px,calc(100% - 24px));max-height:calc(100vh - 24px);padding:0;overflow:auto;color:var(--text);background:radial-gradient(circle at 85% 5%,rgba(132,204,22,.12),transparent 32%),#091119;border:1px solid rgba(132,204,22,.4);border-radius:14px;box-shadow:0 34px 120px rgba(0,0,0,.82) }
.beta-dialog::backdrop { background:rgba(3,6,9,.86);backdrop-filter:blur(8px) }
.beta-balances { display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 22px 12px }
.beta-balances>div { padding:10px 12px;background:rgba(132,204,22,.07);border:1px solid rgba(132,204,22,.25);border-radius:7px }
.beta-balances span,.beta-list small { display:block;color:var(--muted);font-size:9px;letter-spacing:.08em;text-transform:uppercase }
.beta-balances strong { display:block;margin-top:4px;font:800 18px Montserrat,Inter,sans-serif;color:#d9ff8b }
.beta-grid { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 22px 18px }
.beta-grid>section { display:grid;align-content:start;gap:9px;padding:13px;background:rgba(7,12,17,.78);border:1px solid var(--line);border-radius:8px }
.beta-wide { grid-column:1/-1 }
.market-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:8px }
.market-card { padding:10px;border:1px solid rgba(94,231,255,.18);border-radius:7px;background:rgba(94,231,255,.035) }
.market-card h3 { margin:0 0 8px;font:800 12px Montserrat,Inter,sans-serif;letter-spacing:.08em }
.market-item,.beta-row { display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 0;border-top:1px solid rgba(255,255,255,.06) }
.market-item small { display:block;margin-top:3px;color:var(--muted);font-size:9px;letter-spacing:.04em;text-transform:none }
.market-item button,.beta-row button,.beta-actions button,.beta-form button,.beta-settings button { min-height:34px;padding:7px 10px;color:var(--text);background:#142330;border:1px solid rgba(132,204,22,.4);border-radius:5px;font:700 9px Montserrat,Inter,sans-serif;letter-spacing:.05em }
.market-item button:disabled,.beta-row button:disabled { opacity:.42 }
.beta-list { display:grid;gap:3px }
.beta-actions { display:flex;gap:8px;flex-wrap:wrap }
.message-tabs { display:flex;gap:5px;overflow-x:auto }
.message-tabs button { flex:none;min-height:30px;color:var(--muted);background:#101b25;border:1px solid var(--line);border-radius:4px }
.message-tabs button.active { color:#d9ff8b;border-color:#84cc16 }
.message-list { max-height:260px;overflow:auto }
.message-entry { padding:9px;border:1px solid rgba(255,255,255,.08);border-radius:6px }
.message-entry p { margin:5px 0;color:#c9d2d8;white-space:pre-wrap }
.message-entry footer { display:flex;align-items:center;gap:6px;justify-content:space-between }
.beta-form { display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px }
.beta-form textarea { grid-column:1/-1;min-height:70px;resize:vertical }
.beta-form input,.beta-form textarea,.beta-settings select { color:var(--text);background:#080d12;border:1px solid var(--line);border-radius:5px;padding:9px }
.beta-form label { display:flex;align-items:center;gap:6px }
.beta-settings { grid-template-columns:1fr 1fr auto;align-items:end }
.beta-dialog>.admin-message { margin:0 22px 18px }
@media(max-width:820px){.beta-grid{grid-template-columns:1fr;margin-inline:12px}.beta-wide{grid-column:auto}.market-grid{grid-template-columns:1fr 1fr}.beta-balances{margin-inline:12px}.beta-settings{grid-template-columns:1fr}.beta-dialog>.admin-message{margin-inline:12px}}
@media(max-width:460px){.beta-dialog{width:calc(100% - 10px);max-height:calc(100svh - 10px)}.market-grid,.beta-form{grid-template-columns:1fr}.beta-form textarea{grid-column:auto}.beta-balances{grid-template-columns:1fr}}
.p3-button{border-color:rgba(255,212,111,.55)!important;color:#ffe29a!important;background:linear-gradient(135deg,rgba(255,212,111,.12),rgba(167,139,250,.12))!important}
.p3-dialog{width:min(1180px,calc(100vw - 28px));max-height:94vh;padding:0;border:1px solid rgba(255,212,111,.4);border-radius:18px;background:linear-gradient(145deg,#0b1120 0%,#151229 55%,#0c1625 100%);color:#f6f8ff;box-shadow:0 28px 100px rgba(0,0,0,.72)}
.p3-dialog::backdrop{background:rgba(2,5,12,.82);backdrop-filter:blur(8px)}
.p3-dialog>.dialog-heading{position:sticky;top:0;z-index:4;background:rgba(9,13,25,.94);padding:18px 22px;border-bottom:1px solid rgba(255,255,255,.1)}
.p3-hero{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:18px 22px 0}.p3-hero>div{padding:13px;border:1px solid rgba(255,212,111,.22);border-radius:12px;background:rgba(255,255,255,.035)}
.p3-hero span,.p3-hero small{display:block;color:#aeb9d1;font-size:.72rem;text-transform:uppercase}.p3-hero strong{display:block;margin-top:5px;color:#ffe29a}
.p3-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px 22px 22px}.p3-grid>section{padding:15px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(3,8,18,.55)}.p3-grid .p3-wide{grid-column:1/-1}
.p3-banners{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.p3-banner{padding:12px;border:1px solid rgba(167,139,250,.3);border-radius:12px;background:rgba(167,139,250,.07)}.p3-banner strong,.p3-banner small{display:block}.p3-banner small{min-height:38px;color:#aeb9d1}.p3-banner button{margin-top:9px;width:100%}
.audition-results{display:flex;gap:8px;overflow:auto;margin-top:12px}.audition-card{min-width:110px;padding:10px;border-radius:10px;background:#111a2d;border:1px solid rgba(255,255,255,.1)}.audition-card.UR{border-color:#ffd46f;box-shadow:0 0 20px rgba(255,212,111,.15)}.audition-card.SSR{border-color:#a78bfa}.audition-card strong,.audition-card small{display:block}
.legal-panel nav{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.legal-panel a{color:#9beeff}.legal-panel form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.legal-panel label{flex:1;min-width:240px}.legal-panel input{width:100%}

.tour-dialog{width:min(1040px,calc(100vw - 24px));max-height:calc(100svh - 24px);padding:0;overflow:auto;color:var(--text);background:radial-gradient(circle at 80% 0,rgba(255,212,111,.14),transparent 35%),#09121c;border:1px solid rgba(255,212,111,.45);border-radius:16px;box-shadow:0 34px 120px rgba(0,0,0,.82)}
.tour-dialog::backdrop,.choreography-dialog::backdrop{background:rgba(2,5,10,.86);backdrop-filter:blur(8px)}
.tour-dialog>.dialog-heading{position:sticky;top:0;z-index:3;background:rgba(9,18,28,.94)}
.tour-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 22px}.tour-summary>div{display:grid;gap:5px;padding:13px;background:rgba(255,255,255,.035);border:1px solid var(--line);border-radius:10px}.tour-summary span,.tour-act header span{color:#a8b7c3;font:700 9px/1.2 var(--mono);letter-spacing:.11em}.tour-summary strong{font:850 20px/1 var(--display)}
.tour-acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 22px 18px}.tour-act{padding:15px;background:rgba(8,16,26,.82);border:1px solid rgba(148,163,184,.2);border-radius:12px}.tour-act.complete{border-color:rgba(132,204,22,.48);box-shadow:inset 0 0 24px rgba(132,204,22,.05)}.tour-act header{display:grid;gap:5px;margin-bottom:12px}.tour-act header strong{font:850 17px/1.1 var(--display)}.tour-stage-list{display:grid;gap:8px}.tour-stage{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px;background:rgba(255,255,255,.035);border-left:3px solid #5ee7ff;border-radius:7px}.tour-stage.cleared{border-left-color:#84cc16}.tour-stage.locked{opacity:.48}.tour-stage>div{display:grid;gap:3px;min-width:0}.tour-stage span,.tour-stage small{color:#9aa9b5;font:650 9px/1.25 var(--mono)}.tour-stage strong{font-size:12px}.tour-stage button{min-width:126px;padding:9px 10px;color:#071019;background:#9beeff;border:0;border-radius:7px;font:800 9px/1 var(--display);cursor:pointer}.tour-stage button:disabled{color:#77838c;background:#1a2530;cursor:not-allowed}.tour-dialog>.admin-message{margin:0 22px 18px}
.choreography-dialog{width:min(560px,calc(100vw - 20px));padding:0;overflow:hidden;color:var(--text);background:radial-gradient(circle at 50% 42%,rgba(236,72,153,.21),transparent 38%),#080d17;border:1px solid rgba(244,114,182,.6);border-radius:18px;box-shadow:0 34px 120px rgba(0,0,0,.86)}.choreography-stage{display:grid;place-items:center;gap:16px;padding:34px 24px 40px;text-align:center}.choreography-count{color:#fb79c6;font:850 12px/1 var(--mono);letter-spacing:.14em}.choreography-pulse{display:grid;place-items:center;width:170px;height:170px;border:1px solid rgba(94,231,255,.35);border-radius:50%;box-shadow:0 0 45px rgba(192,38,211,.25)}.choreography-pulse i{width:90px;height:90px;transform:scale(var(--beat-scale,.3));background:radial-gradient(circle,#fff 0 8%,#fb79c6 9% 32%,rgba(94,231,255,.2) 34% 70%,transparent 72%);border-radius:50%;transition:transform 70ms linear}.choreography-stage>strong{font:900 24px/1 var(--display);letter-spacing:.08em}.choreography-stage p{margin:0;color:#9baab7;font-size:11px}.choreography-stage button{min-width:230px;padding:16px;color:white;background:linear-gradient(135deg,#c026d3,#ec4899);border:1px solid rgba(255,255,255,.24);border-radius:11px;font:900 13px/1 var(--display);cursor:pointer;box-shadow:0 12px 36px rgba(192,38,211,.3)}.choreography-stage button:disabled{opacity:.45}.choreography-stage output{min-height:18px;color:#dfffa4;font:750 12px/1.4 var(--mono)}.studio-golden{color:#ffdd79}.studio-golden strong{color:#ffdd79}
@media(max-width:720px){.tour-acts{grid-template-columns:1fr;margin-inline:10px}.tour-summary{margin-inline:10px}.tour-stage{grid-template-columns:1fr}.tour-stage button{width:100%}.tour-dialog{width:calc(100% - 8px);max-height:calc(100svh - 8px);border-radius:12px}.choreography-pulse{width:140px;height:140px}}

.idol-rpg-dialog{width:min(1120px,calc(100vw - 20px));max-height:calc(100svh - 20px);padding:0;overflow:auto;color:var(--text);background:radial-gradient(circle at 78% 8%,rgba(236,72,153,.14),transparent 34%),#090f18;border:1px solid rgba(244,114,182,.48);border-radius:16px;box-shadow:0 34px 120px rgba(0,0,0,.84)}.idol-rpg-dialog::backdrop{background:rgba(3,5,10,.88);backdrop-filter:blur(8px)}.idol-rpg-dialog>.dialog-heading{position:sticky;top:0;z-index:4;background:rgba(9,15,24,.95)}.idol-rpg-layout{display:grid;grid-template-columns:240px 1fr;gap:16px;margin:18px 22px}.idol-rpg-layout>nav{display:grid;align-content:start;gap:6px;max-height:70vh;overflow:auto}.idol-rpg-layout>nav button{display:grid;gap:4px;padding:11px;text-align:left;color:#dbe5ec;background:#101923;border:1px solid var(--line);border-radius:8px;cursor:pointer}.idol-rpg-layout>nav button.active{border-color:#fb79c6;background:rgba(236,72,153,.12)}.idol-rpg-layout>nav span{color:#fb79c6;font:700 10px/1 var(--mono)}.idol-rpg-profile>header{display:grid;gap:8px;padding:18px;background:linear-gradient(135deg,rgba(236,72,153,.13),rgba(56,189,248,.06));border:1px solid rgba(244,114,182,.22);border-radius:12px}.idol-rpg-profile h3{margin:0;font:900 28px/1 var(--display)}.idol-rpg-profile header p,.idol-rpg-profile form p{margin:0;color:#a7b5c0}.affection-track{height:8px;overflow:hidden;background:#18222d;border-radius:99px}.affection-track i{display:block;height:100%;background:linear-gradient(90deg,#ec4899,#ffcf70)}.idol-rpg-columns{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;margin-top:14px}.idol-rpg-columns>div,.idol-rpg-columns>form{padding:15px;background:rgba(255,255,255,.035);border:1px solid var(--line);border-radius:10px}.idol-rpg-columns h4{margin:4px 0 10px;color:#fb79c6;font:850 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}.idol-rpg-columns>div>button{margin:0 6px 8px 0;padding:9px;color:#071019;background:#fb79c6;border:0;border-radius:7px;font-weight:800;cursor:pointer}.story-unlock{display:grid;gap:4px;margin:7px 0;padding:9px;background:#0c151f;border-left:3px solid #ec4899;border-radius:5px}.story-unlock.locked{opacity:.48;border-left-color:#4b5563}.story-unlock p,.story-unlock small{margin:0;color:#a6b3be;font-size:10px}.idol-rpg-columns form{display:grid;align-content:start;gap:10px}.idol-rpg-columns label{display:grid;gap:5px;color:#a6b3be;font-size:10px}.idol-rpg-columns select{width:100%;padding:9px;color:#eaf2f7;background:#0b141d;border:1px solid var(--line);border-radius:7px}.idol-rpg-columns form button{padding:12px;color:white;background:linear-gradient(135deg,#c026d3,#ec4899);border:0;border-radius:8px;font-weight:850;cursor:pointer}.idol-rpg-dialog>.admin-message{margin:0 22px 18px}.beta-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.beta-actions button{padding:9px 11px;color:#071019;background:#dfffa4;border:0;border-radius:7px;font-weight:800;cursor:pointer}.beta-actions button:disabled{opacity:.5}
@media(max-width:760px){.idol-rpg-layout{grid-template-columns:1fr;margin-inline:10px}.idol-rpg-layout>nav{grid-template-columns:repeat(2,minmax(0,1fr));max-height:220px}.idol-rpg-columns{grid-template-columns:1fr}.idol-rpg-dialog{width:calc(100% - 8px);max-height:calc(100svh - 8px);border-radius:12px}}
@media(max-width:760px){.p3-grid{grid-template-columns:1fr}.p3-grid .p3-wide{grid-column:auto}.p3-hero{grid-template-columns:repeat(2,1fr)}.p3-banners{grid-template-columns:1fr 1fr}}
.legal-document{max-width:820px;margin:40px auto;padding:28px;color:#eaf0ff;background:#0b1220;border:1px solid rgba(255,255,255,.12);border-radius:18px;line-height:1.65}.legal-document h1,.legal-document h2{color:#ffe29a}.legal-document a{color:#79e8ff}
