:root {
  color-scheme: light;
  --ink:#0a0d0b;
  --muted:#46504a;
  --dim:#68736c;
  --void:#eef0ed;
  --base:#eef0ed;
  --panel:#fbfcfa;
  --panel-2:#e8ebe7;
  --line:#cbd0cc;
  --line-hot:rgba(49,95,167,.42);
  --cyan:#285da9;
  --cyan-2:#1f4e91;
  --amber:#8b581e;
  --red:#aa3b35;
  --green:#2f7353;
  --ai:#655f70;
  --loot:#486b3f;
  --shadow:none;
  --radius:0;
  --hover:#f1f4f0;
  --field:#fff;
  --canvas:#e3e7e2;
  --hud:rgba(251,252,250,.96);
  --overlay:rgba(238,240,237,.97);
  --active-text:#fff;
  --grid-soft:rgba(40,93,169,.1);
  --focus:rgba(40,93,169,.28);
  --display:"Bahnschrift Condensed","Arial Narrow","Microsoft YaHei UI",sans-serif;
  --body:"Microsoft YaHei UI","Microsoft YaHei","Segoe UI",sans-serif;
  --data:"Bahnschrift","Segoe UI",sans-serif;
  font-family:var(--body);
}

:root[data-theme="night"] {
  color-scheme:dark;
  --ink:#f3f6f3;
  --muted:#bac4bd;
  --dim:#8e9a92;
  --void:#090d0b;
  --base:#090d0b;
  --panel:#121814;
  --panel-2:#19211c;
  --line:#303a34;
  --line-hot:rgba(126,175,248,.48);
  --cyan:#7eaff8;
  --cyan-2:#9cc2fa;
  --amber:#e1ad6c;
  --red:#ff7b75;
  --green:#72c59c;
  --ai:#c3a7eb;
  --loot:#a6cf7e;
  --hover:#18201b;
  --field:#0d1310;
  --canvas:#0b110e;
  --hud:rgba(13,19,16,.95);
  --overlay:rgba(9,13,11,.97);
  --active-text:#07101c;
  --grid-soft:rgba(126,175,248,.1);
  --focus:rgba(126,175,248,.34);
}

html,body { background:var(--void); color:var(--ink); }
body {
  overflow-x:hidden;
  background:
    linear-gradient(var(--grid-soft) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid-soft) 1px,transparent 1px),
    var(--void);
  background-size:48px 48px;
  font-size:13px;
  font-weight:450;
}
button,input,select { color:inherit; }
button:focus-visible,select:focus-visible,input:focus-visible {
  outline:3px solid var(--focus);
  outline-offset:2px;
}

.shell {
  min-height:100vh;
  display:grid;
  grid-template-columns:112px minmax(0,1fr);
  grid-template-rows:auto minmax(0,1fr) 35px;
}
.app-rail {
  grid-column:1;
  grid-row:1 / span 3;
  position:sticky;
  top:0;
  z-index:30;
  height:100vh;
  padding:32px 12px 14px;
  display:flex;
  flex-direction:column;
  border-right:1px solid var(--line);
  background:var(--panel);
}
.rail-wordmark {
  margin:0 4px 54px;
  white-space:pre-line;
  font:800 28px/.88 var(--display);
  letter-spacing:-.035em;
}
.rail-nav { display:grid; }
.rail-label {
  margin:20px 4px 8px;
  color:var(--dim);
  font:750 9px/1 var(--data);
  letter-spacing:.16em;
  text-transform:uppercase;
}
.rail-button {
  min-height:45px;
  padding:0 4px;
  border:0;
  border-top:1px solid var(--line);
  border-radius:0;
  background:transparent;
  color:var(--muted);
  text-align:left;
  font-size:12px;
  font-weight:600;
}
.rail-button:hover { color:var(--ink); background:var(--hover); }
.rail-button.active {
  padding-left:10px;
  border-left:5px solid var(--cyan);
  color:var(--cyan);
  background:var(--hover);
  font-weight:700;
}
.rail-footer {
  margin-top:auto;
  padding:11px 4px 0;
  border-top:1px solid var(--line);
  color:var(--dim);
  font:700 9px/1.55 var(--data);
  letter-spacing:.1em;
}

.topbar {
  grid-column:2;
  grid-row:1;
  min-height:76px;
  padding:12px 24px;
  display:grid;
  grid-template-columns:minmax(180px,1fr) auto minmax(510px,1.35fr);
  align-items:center;
  gap:20px;
  position:relative;
  top:auto;
  border-top:7px solid var(--cyan);
  border-bottom:1px solid var(--line);
  background:var(--panel);
  backdrop-filter:none;
}
.brand { gap:10px; }
.brand-sight { display:none; }
.brand-title {
  font:800 24px/1 var(--display);
  letter-spacing:-.02em;
}
.brand-sub {
  margin-top:5px;
  color:var(--muted);
  font:750 10px/1.2 var(--data);
  letter-spacing:.2em;
}
.top-greeting { text-align:center; white-space:nowrap; }
.top-greeting strong { display:block; font-size:14px; font-weight:750; }
.top-greeting small { display:block; margin-top:5px; color:var(--muted); font-size:11px; font-weight:600; }
.top-actions {
  justify-self:end;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  min-width:0;
}
.theme-switch {
  height:36px;
  display:grid;
  grid-template-columns:repeat(3,42px);
  flex:none;
  overflow:hidden;
  border:1px solid var(--line);
  background:var(--panel);
}
.theme-choice {
  min-width:0;
  padding:0;
  border:0;
  border-right:1px solid var(--line);
  background:transparent;
  color:var(--muted);
  font:750 10px var(--body);
  white-space:nowrap;
}
.theme-choice:last-child { border-right:0; }
.theme-choice:hover { color:var(--ink); background:var(--hover); }
.theme-choice.active { color:var(--active-text); background:var(--ink); }
:root[data-theme="night"] .theme-choice.active { background:var(--cyan); }
.match-badge {
  min-width:188px;
  height:36px;
  padding:0 10px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:9px;
  border:1px solid var(--line);
  border-left:4px solid var(--cyan);
  border-radius:0;
  background:color-mix(in srgb,var(--cyan) 6%,var(--panel));
  color:var(--ink);
  text-align:left;
}
.match-badge:hover { background:color-mix(in srgb,var(--cyan) 11%,var(--panel)); }
.match-badge span { color:var(--dim);font:800 8px var(--data);letter-spacing:.14em; }
.match-badge strong { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:800 10px var(--data);letter-spacing:.035em; }
.status-pill,.account-button {
  min-height:36px;
  padding:0 10px;
  border:1px solid var(--line);
  border-radius:0;
  background:transparent;
  color:var(--muted);
  font-size:11px;
  font-weight:650;
}
.status-pill { border-color:transparent; }
.account-button { min-width:0;max-width:150px; }
.account-button strong { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink); }
.dot { width:7px; height:7px; }
.dot.live { background:var(--green); box-shadow:0 0 0 5px rgba(63,118,94,.1); }
.dot.wait { background:var(--amber); }
.dot.dead { background:var(--red); }

.workspace {
  grid-column:2;
  grid-row:2;
  min-height:0;
  padding:16px 20px;
  display:grid;
  grid-template-columns:minmax(0,1fr) 312px;
  grid-template-rows:minmax(580px,calc(100vh - 143px));
  gap:12px;
}
.stage,.side-card {
  border:1px solid var(--line);
  border-radius:0;
  background:var(--panel);
  box-shadow:none;
  overflow:hidden;
}
.stage {
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
  position:relative;
  background:var(--panel);
}
.stage::before,.stage::after { content:none; }
.stage-panel-head {
  min-height:60px;
  padding:12px 16px;
  display:flex;
  align-items:center;
  gap:16px;
  border-bottom:1px solid var(--line);
  background:var(--panel);
}
.stage-panel-head h1 {
  margin:0;
  font:750 20px/1.1 var(--display);
  letter-spacing:.02em;
  text-transform:uppercase;
}
.stage-panel-head p { margin:5px 0 0; color:var(--muted); font-size:11px; font-weight:600; }
.stage-modes {
  margin-left:auto;
  display:flex;
  gap:3px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.stage-mode {
  height:31px;
  padding:0 12px;
  border:1px solid var(--line);
  border-radius:0;
  background:transparent;
  color:var(--muted);
  font:700 10px var(--data);
  letter-spacing:.04em;
}
.stage-mode:hover { color:var(--ink); border-color:var(--dim); }
.stage-mode.active { border-color:var(--ink); background:var(--ink); color:var(--active-text); box-shadow:none; }
.stage-viewport { position:relative; min-height:0; flex:1; overflow:hidden; background:var(--canvas); }
.stage-canvas { position:absolute; inset:0; width:100%; height:100%; }
.proximity-warning {
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  opacity:0;
  border:1px solid rgba(255,36,48,.72);
  box-shadow:inset 0 0 18px rgba(255,28,42,.82),inset 0 0 52px rgba(220,0,25,.54),inset 0 0 104px rgba(150,0,18,.24);
  will-change:opacity;
}
#jello-map { background:var(--canvas); }
.stage-hud { z-index:5; }
.map-tools {
  top:14px;
  padding:4px;
  border:1px solid var(--line);
  border-radius:0;
  background:var(--hud);
  box-shadow:none;
}
.map-tools select {
  height:30px;
  border:1px solid var(--line);
  border-radius:0;
  background:var(--field);
  color:var(--ink);
}
.map-tool {
  height:30px;
  border:1px solid var(--line);
  border-radius:0;
  background:var(--field);
  color:var(--muted);
}
.map-tool:hover,.map-tool.active { border-color:var(--cyan); color:var(--cyan); background:var(--hover); }
.map-readout {
  left:14px;
  top:14px;
  padding:8px 10px;
  border:1px solid var(--line);
  border-left:5px solid var(--cyan);
  background:var(--hud);
  color:var(--muted);
}
.map-readout strong { color:var(--ink); }
.stage-metrics {
  right:14px;
  top:14px;
  grid-template-columns:repeat(4,auto);
  gap:1px;
  border:1px solid var(--line);
  background:var(--line);
}
.metric {
  min-width:76px;
  padding:7px 9px;
  border:0;
  border-radius:0;
  background:var(--hud);
}
.metric span { color:var(--muted);font-size:9px;font-weight:750; }
.metric strong { color:var(--ink); font-family:var(--display); font-size:17px; }
.stage-foot { left:14px; right:14px; bottom:14px; }
.coordinate,.legend { color:var(--muted); }
.coordinate {
  padding:7px 9px;
  border:1px solid var(--line);
  background:var(--hud);
}
.coordinate strong { color:var(--ink); }
.stage-credit { padding:7px 9px; border:1px solid var(--line); background:var(--hud); }

.side {
  min-width:0;
  min-height:0;
  display:grid;
  grid-template-rows:auto minmax(250px,.9fr) minmax(230px,1.1fr);
  gap:12px;
}
.status-card { padding:15px 16px; }
.section-kicker {
  margin-bottom:10px;
  color:var(--muted);
  font:750 9px var(--data);
  letter-spacing:.16em;
  text-transform:uppercase;
}
.compact-stats { margin-top:12px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); }
.compact-stat { padding:8px; background:var(--panel); }
.compact-stat b { display:block; font:750 20px/1 var(--display); }
.compact-stat span { display:block; margin-top:4px; color:var(--muted); font-size:10px; font-weight:650; }
.nearby-card { min-height:0; padding:15px 16px; display:flex; flex-direction:column; }
.nearby-head { margin-bottom:9px; }
.greeting { margin:0; font:750 17px/1.1 var(--display); letter-spacing:.02em; }
.greeting small { margin-top:5px; font-family:var(--body); font-size:10px; line-height:1.45; color:var(--muted); font-weight:600; }
.range {
  height:29px;
  padding:0 9px;
  border:1px solid var(--line);
  border-radius:0;
  background:var(--field);
  color:var(--cyan);
  font:700 10px var(--data);
}
.share-trigger {
  min-height:36px;
  border-radius:0;
  border-color:color-mix(in srgb,var(--cyan) 55%,var(--line));
  color:var(--cyan);
  background:color-mix(in srgb,var(--cyan) 7%,var(--panel));
  font:750 10px var(--display);
  letter-spacing:.06em;
  text-transform:uppercase;
}
.share-trigger:hover { background:color-mix(in srgb,var(--cyan) 13%,var(--panel)); }
.nearby-range-control input[type="range"] { height:16px;margin:0;cursor:ew-resize; }
.metric-button { font-family:inherit; }
.share-panel { border-radius:0; }
.share-panel-head h2,.share-ended h1 { font-family:var(--display); }
.share-field select,.share-url { font-family:var(--body); }
.share-key-line strong { font-family:var(--data); }
.nearby-bezel {
  width:min(100%,190px);
  flex:0 0 auto;
  max-height:none;
  min-height:0;
  margin:auto;
  padding:0;
  border:1px solid var(--line);
  border-radius:50%;
  background:var(--canvas);
  filter:none;
}
.nearby-bezel::after { inset:7px; border-color:rgba(49,95,167,.18); }
#nearby { background:var(--canvas); }
.nearby-caption { margin-top:8px; color:var(--muted); }
.controls-card { min-height:0; padding:15px 16px; }
.card-head { margin-bottom:10px; }
.card-title { font:750 16px/1.1 var(--display); letter-spacing:.02em; }
.card-kicker { color:var(--muted); font:750 9px var(--data); letter-spacing:.14em; }
.toggle-grid {
  grid-template-columns:1fr 1fr;
  gap:0;
  border-top:1px solid var(--line);
  padding-right:5px;
  scrollbar-color:rgba(49,95,167,.4) transparent;
}
.toggle-grid::-webkit-scrollbar-thumb { background:rgba(49,95,167,.35); }
.toggle {
  min-height:38px;
  padding:0 7px;
  border:0;
  border-bottom:1px solid var(--line);
  border-radius:0;
  background:transparent;
  color:var(--muted);
  gap:8px;
}
.toggle:hover { border-color:var(--line); background:var(--hover); color:var(--ink); }
.toggle input {
  appearance:none;
  width:28px;
  height:16px;
  flex:none;
  margin:0;
  position:relative;
  border:1px solid #a8ada9;
  border-radius:20px;
  background:var(--panel-2);
}
.toggle input::after {
  content:"";
  position:absolute;
  top:3px;
  left:3px;
  width:8px;
  height:8px;
  margin:0;
  border:0;
  border-radius:50%;
  background:var(--muted);
  transform:none;
  transition:transform .15s ease,background .15s ease;
}
.toggle input:checked { border-color:var(--ink); background:var(--field); }
.toggle input:checked::after { margin:0; border:0; background:var(--cyan); transform:translateX(12px); }
.toggle span { min-width:0;font-size:11px;font-weight:600;white-space:normal;line-height:1.25;overflow-wrap:anywhere; }
.toggle-section-title {
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:32px;
  margin-top:6px;
  padding:7px 5px 4px;
  border-bottom:1px solid var(--line);
  color:var(--ink);
  font:750 10px var(--data);
  letter-spacing:.08em;
}
.toggle-section-title small { color:var(--muted); font:600 9px var(--data); letter-spacing:0; }
.toggle-section-title.empty { color:var(--muted); }
.team-toggle > span { display:flex; align-items:center; gap:6px; width:100%; }
.team-toggle small { margin-left:auto; color:var(--muted); font:600 9px var(--data); white-space:nowrap; }
.team-swatch { width:8px; height:8px; flex:none; border:1px solid rgba(255,255,255,.42); box-shadow:0 0 0 1px rgba(0,0,0,.14); }
.range-row { margin-top:10px; padding-top:9px; border-top:1px solid var(--line); }
.range-row label { margin-bottom:5px; color:var(--muted); font-size:10px; font-weight:600; }
.range-row input { accent-color:var(--cyan); }

.footer {
  grid-column:2;
  grid-row:3;
  min-height:35px;
  padding:0 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid var(--line);
  background:var(--panel);
  color:var(--muted);
  font-size:10px;
}
.footer strong { color:var(--ink); font-weight:650; }
.footer span:last-child { font:700 9px var(--data); letter-spacing:.12em; }

.login-layer {
  background:var(--overlay);
  backdrop-filter:blur(12px);
}
.login-panel {
  border:1px solid var(--line);
  border-radius:0;
  background:var(--panel);
  box-shadow:0 28px 90px rgba(17,19,19,.16);
}
.login-art {
  background:
    linear-gradient(rgba(49,95,167,.09) 1px,transparent 1px),
    linear-gradient(90deg,rgba(49,95,167,.09) 1px,transparent 1px),
    var(--canvas);
  background-size:48px 48px;
}
.login-art::before { border-color:rgba(49,95,167,.28); box-shadow:0 0 0 40px rgba(49,95,167,.04),0 0 0 82px rgba(49,95,167,.025); }
.login-reticle { border-color:var(--cyan); border-radius:0; color:var(--cyan); box-shadow:none; }
.login-art p { color:var(--muted); }
.login-form .card-kicker { color:var(--cyan); }
.field input { border-radius:0; background:var(--field); color:var(--ink); }
.login-action { border-radius:0; background:var(--cyan); color:var(--active-text); }
.toast { border-radius:0; border-color:var(--cyan); background:var(--panel); color:var(--ink); box-shadow:0 12px 40px rgba(17,19,19,.15); }
.login-theme-row { display:flex; justify-content:flex-end; margin:0 0 20px; }

@media(max-width:1180px) {
  .shell { grid-template-columns:96px minmax(0,1fr); }
  .rail-wordmark { font-size:24px; }
  .topbar { grid-template-columns:minmax(150px,1fr) auto minmax(470px,1.2fr); padding-inline:18px; }
  .workspace { grid-template-columns:minmax(0,1fr) 290px; padding-inline:14px; }
  .stage-metrics .metric:nth-child(2),.stage-metrics .metric:nth-child(3) { display:none; }
  .match-badge { min-width:155px; }
  .match-badge span { display:none; }
  .match-badge { grid-template-columns:minmax(0,1fr); }
  .share-trigger { padding-inline:9px; }
}
@media(max-width:1100px) {
  .top-greeting { display:none; }
  .topbar { grid-template-columns:1fr auto; }
}
@media(max-width:930px) {
  .topbar { grid-template-columns:1fr auto; }
  .workspace { grid-template-columns:1fr; grid-template-rows:minmax(540px,70vh) auto; }
  .side { grid-template-columns:minmax(220px,.75fr) minmax(260px,1fr); grid-template-rows:auto auto; }
  .status-card { grid-column:1 / -1; }
  .nearby-card,.controls-card { min-height:330px; }
}
@media(max-width:760px) {
  .shell { display:block; }
  .app-rail {
    position:relative;
    width:100%;
    height:auto;
    padding:0 10px;
    flex-direction:row;
    align-items:center;
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .rail-wordmark { margin:0 16px 0 2px; font-size:18px; white-space:normal; }
  .rail-nav { display:flex; min-width:0; overflow-x:auto; }
  .rail-label,.rail-footer { display:none; }
  .rail-button { min-height:43px; padding:0 10px; border-top:0; white-space:nowrap; }
  .rail-button.active { padding-left:10px; border-left:0; border-bottom:3px solid var(--cyan); }
  .topbar { min-height:64px; padding:10px 12px; border-top-width:5px; }
  .brand-sub,.status-pill { display:none; }
  .top-actions { min-width:0; }
  .match-badge { display:none; }
  .share-trigger { min-height:34px; }
  .account-button span { display:none; }
  .workspace { padding:8px; gap:8px; grid-template-rows:64vh auto; }
  .stage-panel-head { padding:10px 12px; }
  .stage-panel-head h1 { font-size:17px; }
  .stage-metrics { right:8px; top:8px; grid-template-columns:repeat(2,auto); }
  .stage-metrics .metric:nth-child(2),.stage-metrics .metric:nth-child(3) { display:none; }
  .map-tools { left:8px; right:8px; top:49px; transform:none; overflow-x:auto; justify-content:flex-start; }
  .map-readout { top:91px; left:8px; }
  .stage-foot { left:8px; right:8px; bottom:8px; }
  .legend { display:none; }
  .side { display:grid; grid-template-columns:1fr; grid-template-rows:auto auto auto; }
  .nearby-card,.controls-card { min-height:320px; }
  .login-panel { grid-template-columns:1fr; }
  .login-art { display:none; }
  .login-form { padding:30px 24px; }
  .footer { padding:0 12px; }
  .footer span:last-child { display:none; }
}

@media(max-width:760px) {
  .topbar { grid-template-columns:1fr;gap:8px; }
  .brand { display:none; }
  .top-actions { width:100%;justify-self:stretch;justify-content:flex-start;flex-wrap:wrap; }
  .theme-switch { grid-template-columns:repeat(3,40px); }
  .account-button { max-width:90px; }
  .share-trigger { order:3; }
  .stage-panel-head { align-items:flex-start;flex-direction:column; }
  .stage-modes { margin-left:0; }
}

@media(prefers-reduced-motion:reduce) {
  * { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}

/* Dual Jello viewport + phone-alignment workbench. */
.stage-viewport {
  --dual-split:58%;
  --map-center:79%;
}
#view3d {
  cursor:grab;
  touch-action:none;
}
#view3d.dragging { cursor:grabbing; }
.stage-viewport.mode-dual #view3d {
  inset:0 auto 0 0;
  width:var(--dual-split);
}
.stage-viewport.mode-dual #jello-map {
  inset:0 0 0 auto;
  width:calc(100% - var(--dual-split));
  border-left:1px solid var(--line);
}
.split-divider {
  display:none;
  position:absolute;
  z-index:9;
  top:0;
  bottom:0;
  left:var(--dual-split);
  width:13px;
  padding:0;
  border:0;
  border-left:1px solid color-mix(in srgb,var(--cyan) 48%,var(--line));
  border-right:1px solid color-mix(in srgb,var(--cyan) 48%,var(--line));
  background:color-mix(in srgb,var(--panel) 92%,transparent);
  transform:translateX(-6px);
  cursor:col-resize;
  touch-action:none;
}
.stage-viewport.mode-dual .split-divider { display:grid; place-items:center; }
.split-divider::before,.split-divider::after {
  content:"";
  position:absolute;
  left:50%;
  width:17px;
  height:1px;
  background:var(--cyan);
  transform:translateX(-50%);
  opacity:.72;
}
.split-divider::before { top:calc(50% - 18px); }
.split-divider::after { top:calc(50% + 18px); }
.split-divider span {
  width:5px;
  height:29px;
  border-top:7px double var(--cyan);
  border-bottom:7px double var(--cyan);
  opacity:.86;
}
.split-divider:hover,.split-divider.dragging {
  background:color-mix(in srgb,var(--cyan) 12%,var(--panel));
  box-shadow:0 0 0 3px color-mix(in srgb,var(--cyan) 11%,transparent);
}
.pane-tag {
  display:none;
  position:absolute;
  z-index:4;
  top:14px;
  min-height:31px;
  align-items:center;
  gap:8px;
  padding:0 9px;
  border:1px solid var(--line);
  border-left:4px solid var(--cyan);
  background:var(--hud);
  color:var(--muted);
  pointer-events:none;
  font:700 9px var(--data);
  letter-spacing:.04em;
}
.pane-tag b { color:var(--ink);font-size:10px;letter-spacing:.12em; }
.stage-viewport.mode-dual .pane-tag { display:flex; }
.pane-tag-3d { left:14px; }
.pane-tag-map { left:calc(var(--dual-split) + 14px); }
.stage-viewport.mode-dual .stage-metrics .metric:nth-child(2),
.stage-viewport.mode-dual .stage-metrics .metric:nth-child(3) { display:none; }
.stage-viewport.mode-dual .map-tools {
  left:calc(var(--dual-split) + 14px);
  right:14px;
  top:57px;
  transform:none;
  justify-content:flex-start;
  overflow-x:auto;
  scrollbar-width:thin;
}
.stage-viewport.mode-dual .map-tools select { flex:1 0 130px;max-width:none; }
.stage-viewport.mode-dual .map-tool { flex:0 0 auto;white-space:nowrap; }
.stage-viewport.mode-dual .map-readout {
  left:calc(var(--dual-split) + 14px);
  top:105px;
  max-width:calc(100% - var(--dual-split) - 28px);
}

.control-tabs {
  flex:0 0 auto;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  margin:-2px 0 10px;
  border:1px solid var(--line);
  background:var(--panel-2);
}
.control-tab {
  min-height:32px;
  border:0;
  border-right:1px solid var(--line);
  background:transparent;
  color:var(--muted);
  font:750 10px var(--data);
  letter-spacing:.06em;
}
.control-tab:last-child { border-right:0; }
.control-tab:hover { color:var(--ink);background:var(--hover); }
.control-tab.active { color:var(--active-text);background:var(--ink); }
:root[data-theme="night"] .control-tab.active { background:var(--cyan); }
.preference-bar {
  flex:0 0 auto;
  min-height:39px;
  margin:-2px 0 10px;
  padding:5px 5px 5px 9px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  border:1px solid var(--line);
  border-left:3px solid var(--muted);
  background:color-mix(in srgb,var(--panel-2) 84%,transparent);
}
.preference-copy { min-width:0;display:flex;align-items:center;gap:8px; }
.preference-copy>i {
  width:7px;height:7px;flex:none;border-radius:50%;background:var(--muted);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--muted) 12%,transparent);
}
.preference-copy b,.preference-copy small { display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.preference-copy b { color:var(--ink);font:750 9px var(--data);letter-spacing:.09em; }
.preference-copy small { max-width:128px;margin-top:2px;color:var(--muted);font:650 8px var(--body); }
.parameter-save {
  height:27px;flex:none;padding:0 9px;border:1px solid var(--cyan);background:var(--cyan);
  color:var(--active-text);font:750 9px var(--data);letter-spacing:.04em;
}
.parameter-save:hover:not(:disabled) { filter:brightness(1.08); }
.preference-bar[data-state="synced"] { border-left-color:var(--green); }
.preference-bar[data-state="synced"] .preference-copy>i { background:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 14%,transparent); }
.preference-bar[data-state="dirty"],.preference-bar[data-state="empty"] { border-left-color:var(--amber); }
.preference-bar[data-state="dirty"] .preference-copy>i,.preference-bar[data-state="empty"] .preference-copy>i { background:var(--amber);box-shadow:0 0 0 3px color-mix(in srgb,var(--amber) 14%,transparent); }
.preference-bar[data-state="loading"] .preference-copy>i,.preference-bar[data-state="saving"] .preference-copy>i { background:var(--cyan);animation:preference-pulse 1s ease-in-out infinite; }
.preference-bar[data-state="error"] { border-left-color:var(--red); }
.preference-bar[data-state="error"] .preference-copy>i { background:var(--red);box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 14%,transparent); }
@keyframes preference-pulse { 50% { opacity:.35;transform:scale(.78); } }
.control-pane { display:none;flex:1 1 auto;min-height:0; }
.control-pane.active { display:flex;flex-direction:column; }
.control-pane[hidden] { display:none!important; }
#layers-pane .toggle-grid { flex:1 1 auto;min-height:0; }
#layers-pane>.range-row { flex:0 0 auto; }
.calibration-pane { overflow:hidden; }
.calibration-intro {
  flex:0 0 auto;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  padding:10px;
  border-left:4px solid var(--cyan);
  background:color-mix(in srgb,var(--cyan) 7%,var(--panel));
}
.calibration-intro strong { display:block;font:750 12px var(--display);letter-spacing:.025em; }
.calibration-intro span { display:block;margin-top:4px;color:var(--muted);font-size:9px;line-height:1.45; }
.calibration-intro .range { flex:none; }
.calibration-scroll {
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:0 6px 2px 0;
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb,var(--cyan) 50%,transparent) transparent;
}
.calibration-scroll::-webkit-scrollbar { width:6px; }
.calibration-scroll::-webkit-scrollbar-thumb { background:color-mix(in srgb,var(--cyan) 40%,transparent); }
.calibration-group {
  min-height:31px;
  margin-top:8px;
  padding:9px 2px 5px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  color:var(--ink);
  font:750 10px var(--data);
  letter-spacing:.06em;
}
.calibration-group small { color:var(--dim);font:750 8px var(--data);letter-spacing:.14em; }
.calibration-scroll .range-row { margin-top:0;padding:9px 2px 8px;border-top:0;border-bottom:1px solid var(--line); }
.calibration-scroll .range-row label { margin-bottom:7px; }
.calibration-scroll .range-row strong { color:var(--cyan);font:750 10px var(--data); }
.calibration-scroll input[type="range"] { width:100%;height:16px;margin:0;cursor:ew-resize; }

@media(max-width:1180px) {
  .stage-viewport.mode-dual .pane-tag span { display:none; }
}

@media(max-width:760px) {
  .stage-viewport.mode-dual .map-tools { left:calc(var(--dual-split) + 8px);right:8px;top:48px; }
  .stage-viewport.mode-dual .map-readout { left:calc(var(--dual-split) + 8px);top:91px;max-width:calc(100% - var(--dual-split) - 16px); }
  .stage-viewport.mode-dual .pane-tag { top:8px; }
  .stage-viewport.mode-dual .pane-tag-3d { left:8px; }
  .stage-viewport.mode-dual .pane-tag-map { left:calc(var(--dual-split) + 8px); }
  .pane-tag span { display:none; }
}

/* Account-bound announcement gate. It intentionally has no dismiss control. */
body.announcement-open { overflow:hidden; }
.announcement-layer {
  position:fixed;inset:0;z-index:180;display:flex;align-items:center;justify-content:center;
  padding:34px;background:rgba(3,7,5,.76);backdrop-filter:blur(5px) saturate(.72);
  animation:announcement-veil-in .22s ease-out both;
}
:root:not([data-theme="night"]) .announcement-layer { background:rgba(9,13,11,.64); }
.announcement-layer[hidden] { display:none!important; }
.announcement-layer.closing { animation:announcement-veil-out .18s ease-in both; }
.announcement-layer.closing .announcement-card { animation:announcement-card-out .18s ease-in both; }
.announcement-card {
  position:relative;width:min(900px,calc(100vw - 68px));max-height:calc(100vh - 68px);overflow:auto;
  display:grid;grid-template-columns:148px minmax(0,1fr);border:1px solid var(--line);
  border-top:8px solid var(--cyan);background:var(--panel);box-shadow:0 34px 110px rgba(0,0,0,.62);
  animation:announcement-card-in .28s cubic-bezier(.2,.75,.25,1) both;
}
.announcement-card::before,.announcement-card::after {
  content:"";position:absolute;z-index:3;width:18px;height:18px;pointer-events:none;
}
.announcement-card::before { left:8px;top:8px;border-left:2px solid var(--cyan);border-top:2px solid var(--cyan); }
.announcement-card::after { right:8px;bottom:8px;border-right:2px solid var(--cyan);border-bottom:2px solid var(--cyan); }
.announcement-index {
  min-height:510px;padding:34px 20px 26px;display:flex;flex-direction:column;border-right:1px solid var(--line);
  background:linear-gradient(var(--grid-soft) 1px,transparent 1px),linear-gradient(90deg,var(--grid-soft) 1px,transparent 1px),color-mix(in srgb,var(--cyan) 9%,var(--panel));
  background-size:24px 24px;
}
.announcement-brand { font:800 22px/.9 var(--display);letter-spacing:-.03em; }
.announcement-brand span { display:block;margin-top:8px;color:var(--cyan);font:800 8px var(--data);letter-spacing:.18em; }
.announcement-number { margin:auto 0;color:var(--cyan);font:800 clamp(62px,8vw,92px)/.8 var(--display);letter-spacing:-.07em; }
.announcement-number small { display:block;margin-top:15px;color:var(--muted);font:800 9px/1.6 var(--data);letter-spacing:.13em; }
.announcement-state { padding-top:14px;border-top:1px solid var(--line);color:var(--dim);font:750 8px/1.7 var(--data);letter-spacing:.13em; }
.announcement-main { min-width:0;display:flex;flex-direction:column; }
.announcement-head { padding:30px 36px 24px;border-bottom:1px solid var(--line); }
.announcement-flags { display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:21px; }
.announcement-kicker { color:var(--cyan);font:800 10px var(--data);letter-spacing:.19em; }
.announcement-required { padding:7px 10px;border:1px solid color-mix(in srgb,var(--amber) 55%,var(--line));background:color-mix(in srgb,var(--amber) 8%,var(--panel));color:var(--amber);font:800 9px var(--data);letter-spacing:.12em;white-space:nowrap; }
.announcement-required[data-severity="critical"] { border-color:color-mix(in srgb,var(--red) 58%,var(--line));background:color-mix(in srgb,var(--red) 8%,var(--panel));color:var(--red); }
.announcement-required[data-severity="info"] { border-color:color-mix(in srgb,var(--cyan) 58%,var(--line));background:color-mix(in srgb,var(--cyan) 8%,var(--panel));color:var(--cyan); }
.announcement-head h1 { max-width:620px;margin:0;color:var(--ink);font:800 clamp(30px,4vw,46px)/1.08 var(--display);letter-spacing:-.025em; }
.announcement-summary { max-width:650px;margin:14px 0 0;color:var(--muted);font-size:13px;font-weight:600;line-height:1.75; }
.announcement-content { padding:24px 36px 22px; }
.announcement-message { min-height:54px;padding:1px 0 1px 17px;border-left:5px solid var(--cyan);color:var(--ink);font-size:14px;font-weight:620;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere; }
.announcement-meta { margin-top:24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line); }
.announcement-meta>div { min-width:0;padding:12px 14px;border-right:1px solid var(--line);background:var(--field); }
.announcement-meta>div:last-child { border-right:0; }
.announcement-meta span { display:block;color:var(--dim);font:800 8px var(--data);letter-spacing:.13em; }
.announcement-meta strong { display:block;margin-top:6px;overflow:hidden;text-overflow:ellipsis;color:var(--ink);font:750 11px var(--data);white-space:nowrap; }
.announcement-actions { margin-top:auto;padding:19px 36px 25px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;border-top:1px solid var(--line);background:var(--panel-2); }
.announcement-receipt { min-width:0;color:var(--muted);font-size:11px;font-weight:600;line-height:1.55; }
.announcement-receipt strong,.announcement-receipt span { display:block; }
.announcement-receipt strong { margin-bottom:3px;color:var(--ink);font-size:12px; }
.announcement-receipt em { display:block;min-height:17px;margin-top:5px;color:var(--red);font-style:normal;font-size:10px;font-weight:700; }
.announcement-confirm { min-width:206px;min-height:48px;padding:0 20px;border:1px solid var(--cyan);border-left-width:6px;border-radius:0;background:var(--cyan);color:var(--active-text);font-size:13px;font-weight:800;cursor:pointer;transition:filter .15s ease,transform .15s ease; }
.announcement-confirm:hover:not(:disabled) { filter:brightness(1.08);transform:translateY(-1px); }
.announcement-confirm:disabled { cursor:wait;opacity:.76;transform:none; }
@keyframes announcement-veil-in { from { opacity:0; } }
@keyframes announcement-card-in { from { opacity:0;transform:translateY(16px) scale(.992); } }
@keyframes announcement-veil-out { to { opacity:0; } }
@keyframes announcement-card-out { to { opacity:0;transform:translateY(-10px) scale(.994); } }
@media(max-width:900px) {
  .announcement-card { grid-template-columns:112px minmax(0,1fr); }
  .announcement-index { min-height:500px;padding-inline:15px; }
  .announcement-head,.announcement-content,.announcement-actions { padding-inline:24px; }
}
@media(max-width:640px) {
  .announcement-layer { padding:12px;align-items:stretch;justify-content:stretch; }
  .announcement-card { width:100%;max-height:calc(100vh - 24px);grid-template-columns:1fr;border-top-width:6px; }
  .announcement-index { min-height:0;padding:18px 20px;display:grid;grid-template-columns:1fr auto;align-items:center;border-right:0;border-bottom:1px solid var(--line); }
  .announcement-number { margin:0;font-size:38px;text-align:right; }
  .announcement-number small,.announcement-state { display:none; }
  .announcement-head { padding:22px 20px 18px; }
  .announcement-flags { margin-bottom:15px; }
  .announcement-head h1 { font-size:29px; }
  .announcement-summary { font-size:12px; }
  .announcement-content { padding:19px 20px; }
  .announcement-message { font-size:13px;line-height:1.75; }
  .announcement-meta { grid-template-columns:1fr; }
  .announcement-meta>div { border-right:0;border-bottom:1px solid var(--line); }
  .announcement-meta>div:last-child { border-bottom:0; }
  .announcement-actions { padding:16px 20px 20px;grid-template-columns:1fr;gap:12px; }
  .announcement-confirm { width:100%; }
}
@media(prefers-reduced-motion:reduce) {
  .announcement-layer,.announcement-card { animation:none; }
  .announcement-confirm { transition:none; }
}

/* Jello 2.1 — map-first glass field surface. */
:root[data-theme="night"] {
  --ink:#f4f9fc;
  --muted:#afbec8;
  --dim:#758995;
  --void:#05090d;
  --base:#070d12;
  --panel:rgba(12,20,27,.92);
  --panel-2:rgba(18,29,38,.88);
  --line:rgba(190,222,238,.16);
  --line-hot:rgba(133,211,243,.46);
  --cyan:#85d3f3;
  --cyan-2:#5ab8df;
  --amber:#f2bc72;
  --red:#ff7e86;
  --green:#70ddb3;
  --hover:rgba(142,207,234,.10);
  --field:rgba(5,12,17,.78);
  --hud:rgba(7,14,19,.72);
  --overlay:rgba(3,7,10,.88);
  --active-text:#061016;
  --glass:rgba(8,17,24,.68);
  --glass-strong:rgba(9,18,25,.88);
  --glass-line:rgba(188,226,244,.18);
  --glass-shadow:0 22px 70px rgba(0,0,0,.36);
  --display:"Bahnschrift SemiCondensed","Microsoft YaHei UI",sans-serif;
  --body:"Microsoft YaHei UI","Segoe UI",sans-serif;
  --data:"Cascadia Mono","Bahnschrift","Segoe UI",sans-serif;
}

html,body { width:100%;height:100%;min-height:100%;overflow:hidden; }
body {
  background:#05090d;
  font-family:var(--body);
  font-weight:520;
}
.map-shell {
  position:relative;
  width:100%;height:100dvh;min-height:0;
  display:block;
  overflow:hidden;
  isolation:isolate;
  background:#080e12;
}
.map-workspace {
  position:absolute;inset:0;
  width:100%;height:100%;min-height:0;
  display:block;
  padding:0;
}
.map-stage {
  position:absolute;inset:0;
  width:100%;height:100%;min-width:0;min-height:0;
  display:block;
  border:0;border-radius:0;
  background:#091015;
  overflow:hidden;
}
.map-stage::before,.map-stage::after { content:none; }
.map-stage .stage-viewport { position:absolute;inset:0;width:100%;height:100%;min-height:0; }

.glass-bar {
  position:fixed;z-index:40;
  top:12px;left:12px;right:12px;
  min-height:56px;height:56px;
  padding:7px 8px;
  display:flex;align-items:center;gap:7px;
  border:1px solid var(--glass-line);border-radius:18px;
  background:linear-gradient(180deg,rgba(17,30,40,.82),rgba(7,15,21,.72));
  box-shadow:var(--glass-shadow),inset 0 1px rgba(255,255,255,.045);
  backdrop-filter:blur(22px) saturate(1.28);
  -webkit-backdrop-filter:blur(22px) saturate(1.28);
  transition:opacity .18s ease,transform .18s ease;
}
.glass-bar::after {
  content:"";position:absolute;left:22px;right:22px;bottom:-1px;height:1px;
  background:linear-gradient(90deg,transparent,var(--cyan),transparent);opacity:.55;pointer-events:none;
}
.icon-button,.top-button,.brand-button,.settings-fab,.menu-restore {
  border:1px solid var(--glass-line);border-radius:12px;background:rgba(255,255,255,.045);color:var(--ink);cursor:pointer;
}
.icon-button:hover,.top-button:hover,.brand-button:hover,.settings-fab:hover,.menu-restore:hover { border-color:var(--line-hot);background:var(--hover); }
.menu-collapse { width:38px;height:40px;flex:0 0 38px;font-size:17px; }
.brand-button {
  min-width:130px;height:40px;padding:0 13px;
  display:flex;align-items:center;gap:10px;
  border-color:rgba(133,211,243,.28);
}
.brand-mark {
  width:26px;height:26px;display:grid;place-items:center;border-radius:9px;
  background:linear-gradient(145deg,var(--cyan),#8aa7ff);color:#071117;
  font:900 10px var(--data);letter-spacing:-.05em;
  box-shadow:0 0 24px rgba(133,211,243,.26);
}
.brand-title { font:780 18px/1 var(--display);letter-spacing:-.035em; }
.stage-modes {
  margin:0;padding:3px;flex:0 0 auto;display:flex;gap:2px;
  border:1px solid var(--glass-line);border-radius:12px;background:rgba(1,7,11,.38);
}
.stage-mode {
  height:32px;padding:0 12px;border:0;border-radius:9px;background:transparent;color:var(--muted);
  font:750 10px var(--data);letter-spacing:.055em;cursor:pointer;
}
.stage-mode:hover { color:var(--ink);background:rgba(255,255,255,.05); }
.stage-mode.active { border:0;background:linear-gradient(135deg,var(--cyan),#8fafff);color:#061016;box-shadow:0 6px 18px rgba(83,170,215,.18); }
.focus-select {
  min-width:138px;max-width:220px;height:40px;padding:0 31px 0 12px;
  border:1px solid var(--glass-line);border-radius:12px;background:rgba(4,11,16,.62);color:var(--ink);
  font:650 10px var(--body);text-overflow:ellipsis;
}
.focus-select { min-width:150px;border-color:rgba(112,221,179,.27); }
.match-badge,.top-button,.account-button {
  height:40px;border:1px solid var(--glass-line);border-radius:12px;background:rgba(255,255,255,.04);color:var(--ink);
}
.match-badge { min-width:155px;padding:0 11px;display:flex;align-items:center;gap:8px;border-left:1px solid var(--glass-line); }
.match-badge span,.account-button span { color:var(--dim);font:750 8px var(--data);letter-spacing:.09em; }
.match-badge strong { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:760 9px var(--data); }
.top-button { padding:0 14px;font:720 11px var(--body);cursor:pointer; }
.settings-button { margin-left:auto;border-color:rgba(133,211,243,.3); }
.account-button { min-width:104px;max-width:154px;padding:0 12px;display:grid;align-content:center;text-align:left;cursor:pointer; }
.account-button strong { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:730 11px var(--body); }

.menu-restore,.settings-fab {
  position:fixed;z-index:42;top:12px;height:46px;
  display:none;align-items:center;justify-content:center;
  background:rgba(8,17,24,.78);box-shadow:var(--glass-shadow);backdrop-filter:blur(18px);
}
.menu-restore { left:12px;padding:0 14px;gap:9px; }
.menu-restore span { font:780 15px var(--display); }
.menu-restore b { color:var(--cyan);font:750 9px var(--data);letter-spacing:.08em; }
.settings-fab { right:12px;padding:0 15px;font-weight:760; }
.menu-collapsed .glass-bar { opacity:0;transform:translateY(-74px);pointer-events:none; }
.menu-collapsed .menu-restore,.menu-collapsed .settings-fab { display:flex; }

.map-tools {
  top:82px;left:50%;right:auto;transform:translateX(-50%);
  min-height:42px;padding:5px;gap:5px;
  border:1px solid var(--glass-line);border-radius:14px;background:var(--glass);box-shadow:0 12px 35px rgba(0,0,0,.28);
  backdrop-filter:blur(16px) saturate(1.2);
}
.menu-collapsed .map-tools { top:12px; }
.map-tools select,.map-tool {
  height:32px;border:1px solid var(--glass-line);border-radius:9px;background:rgba(3,10,14,.64);color:var(--muted);
}
.map-tools select { max-width:180px;padding-inline:10px 28px;color:var(--ink); }
.map-tool { padding:0 10px;font:720 9px var(--body); }
.map-tool.active { border-color:rgba(133,211,243,.44);background:rgba(133,211,243,.12);color:var(--cyan); }
.map-readout {
  top:auto;left:14px;bottom:14px;min-width:0;max-width:min(410px,calc(100% - 28px));
  padding:8px 11px;border:1px solid var(--glass-line);border-left:1px solid var(--glass-line);border-radius:12px;
  background:var(--glass);box-shadow:0 10px 28px rgba(0,0,0,.25);backdrop-filter:blur(14px);
  color:var(--dim);font:650 8px/1.45 var(--data);
}
.map-readout strong { color:var(--ink);font-size:10px; }
.stage-state-pill {
  position:absolute;z-index:8;left:50%;bottom:14px;transform:translateX(-50%);
  min-height:34px;max-width:min(58vw,540px);padding:0 13px;display:flex;align-items:center;justify-content:center;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  border:1px solid var(--glass-line);border-radius:999px;background:rgba(6,13,18,.7);box-shadow:0 10px 28px rgba(0,0,0,.25);backdrop-filter:blur(14px);
  color:var(--muted);font:720 9px var(--data);letter-spacing:.04em;pointer-events:none;
}

.drawer-backdrop { position:fixed;inset:0;z-index:70;background:rgba(1,5,8,.34);opacity:0;transition:opacity .18s ease;backdrop-filter:blur(2px); }
.drawer-backdrop.open { opacity:1; }
.settings-drawer {
  position:fixed;z-index:72;top:12px;right:12px;bottom:12px;width:min(420px,calc(100vw - 24px));
  padding:16px;display:flex;flex-direction:column;gap:11px;
  border:1px solid var(--glass-line);border-radius:22px;
  background:linear-gradient(180deg,rgba(14,25,33,.96),rgba(7,14,19,.95));box-shadow:-18px 0 70px rgba(0,0,0,.42);
  backdrop-filter:blur(28px) saturate(1.25);transform:translateX(calc(100% + 28px));opacity:.7;
  transition:transform .2s cubic-bezier(.2,.75,.25,1),opacity .18s ease;
}
.settings-drawer.open { transform:translateX(0);opacity:1; }
.drawer-head { min-height:47px;display:flex;align-items:center;justify-content:space-between;gap:12px; }
.drawer-head small { display:block;color:var(--cyan);font:780 8px var(--data);letter-spacing:.16em; }
.drawer-head h2 { margin:4px 0 0;font:780 23px/1 var(--display);letter-spacing:-.035em; }
.drawer-head .icon-button { width:40px;height:40px;font-size:19px; }
.drawer-status { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid var(--glass-line);border-radius:13px;background:var(--glass-line); }
.drawer-status>span { min-height:34px;padding:0 9px;display:flex;align-items:center;gap:6px;background:rgba(8,16,22,.91);color:var(--dim);font:680 9px var(--data); }
.drawer-status b { color:var(--ink); }
.drawer-greeting { color:var(--ink);font:730 13px/1.45 var(--body); }
.drawer-greeting small { display:block;color:var(--muted);font-size:10px;font-weight:560; }
.settings-drawer .preference-bar,.settings-drawer .control-tabs { margin:0;border-radius:12px;overflow:hidden; }
.settings-drawer .control-tab { border-radius:0; }
.drawer-scroll { min-height:0;flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:1px 5px 12px 1px;scrollbar-width:thin;scrollbar-color:rgba(133,211,243,.32) transparent; }
.drawer-scroll>.card-head { position:sticky;z-index:2;top:-1px;margin:0 0 8px;padding:9px 0;background:linear-gradient(180deg,rgba(10,19,26,.98) 80%,transparent); }
.settings-drawer .toggle-grid { max-height:none;overflow:visible;grid-template-columns:1fr 1fr;border-top:1px solid var(--glass-line); }
.settings-drawer .toggle { min-height:39px;border-bottom:1px solid var(--glass-line);border-radius:0; }
.settings-drawer .range-row { padding:11px 2px 7px; }
.settings-drawer input[type="range"] { width:100%;accent-color:var(--cyan); }
.status-detail { margin-top:18px;padding:14px;border:1px solid var(--glass-line);border-radius:15px;background:rgba(255,255,255,.025); }
.status-detail h3 { margin:0 0 10px;font-size:12px; }
.compact-stats { display:grid;grid-template-columns:repeat(3,1fr);gap:7px; }
.compact-stat { padding:9px;border:1px solid var(--glass-line);border-radius:10px;background:rgba(2,8,12,.35); }
.compact-stat b,.compact-stat span { display:block; }
.compact-stat b { font:800 16px var(--data); }.compact-stat span { color:var(--dim);font-size:9px; }

.modal-layer {
  position:fixed;inset:0;z-index:90;padding:18px;display:none;place-items:center;
  background:rgba(1,5,8,.56);backdrop-filter:blur(8px);opacity:0;
}
.modal-layer.open { display:grid;opacity:1;animation:room-veil-in .16s ease-out; }
.room-panel {
  width:min(480px,100%);padding:22px;border:1px solid var(--glass-line);border-radius:22px;
  background:linear-gradient(160deg,rgba(18,31,41,.98),rgba(7,14,19,.98));box-shadow:0 32px 100px rgba(0,0,0,.55);
}
.room-panel header { display:flex;align-items:center;justify-content:space-between;gap:16px; }
.room-panel header small { color:var(--cyan);font:760 8px var(--data);letter-spacing:.16em; }
.room-panel h2 { margin:5px 0 0;font:780 25px var(--display); }
.room-panel header .icon-button { width:40px;height:40px; }
.room-panel>p { margin:18px 0;color:var(--muted);font-size:11px;line-height:1.7; }
.room-code-line { padding:17px;display:flex;align-items:center;justify-content:space-between;gap:15px;border:1px solid var(--line-hot);border-radius:15px;background:rgba(133,211,243,.065); }
.room-code-line span { color:var(--dim);font-size:10px; }.room-code-line strong { font:850 25px var(--data);letter-spacing:.13em; }
.room-invite-field { margin-top:12px;display:grid;gap:7px;color:var(--dim);font-size:10px; }
.room-invite-field input { width:100%;height:42px;padding:0 12px;border:1px solid var(--glass-line);border-radius:11px;background:rgba(3,10,14,.66);color:var(--ink);font:650 10px var(--data); }
.room-invite-field input:focus { outline:1px solid var(--cyan);border-color:var(--line-hot); }
.room-actions { margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px; }
.room-actions button { min-height:42px;border:1px solid var(--glass-line);border-radius:11px;background:rgba(255,255,255,.045);color:var(--ink);cursor:pointer; }
.room-actions button:first-child { border-color:rgba(133,211,243,.4);color:var(--cyan); }
.room-actions .danger-soft { color:var(--red); }
@keyframes room-veil-in { from { opacity:0; } }

.login-layer { padding:18px;background:rgba(2,6,9,.82);backdrop-filter:blur(18px); }
.login-panel {
  width:min(960px,100%);max-height:calc(100dvh - 36px);overflow:auto;
  grid-template-columns:minmax(310px,.88fr) minmax(390px,1.12fr);
  border:1px solid var(--glass-line);border-radius:26px;background:rgba(9,17,23,.96);box-shadow:0 45px 140px rgba(0,0,0,.58);
}
.login-art {
  min-height:620px;padding:42px;
  background:
    radial-gradient(circle at 22% 22%,rgba(133,211,243,.18),transparent 34%),
    linear-gradient(rgba(133,211,243,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(133,211,243,.07) 1px,transparent 1px),
    #08131a;
  background-size:auto,42px 42px,42px 42px,auto;
}
.login-reticle { border-color:rgba(133,211,243,.46);border-radius:18px;background:rgba(133,211,243,.06);color:var(--cyan); }
.login-art h2 { font:780 clamp(35px,4vw,51px)/1.05 var(--display);letter-spacing:-.055em; }
.login-art p { color:var(--muted); }
.login-access { padding:35px 42px;align-self:center; }
.login-form { padding:0; }
.login-form h1 { font:780 29px var(--display); }.login-form>p { margin-bottom:22px; }
.field input,.room-join-row input { border:1px solid var(--glass-line);border-radius:11px;background:rgba(3,10,14,.66); }
.login-action { min-height:46px;border:0;border-radius:12px;background:linear-gradient(135deg,var(--cyan),#91aefc);color:#061016;box-shadow:0 12px 32px rgba(74,161,205,.18); }
.login-divider { margin:22px 0 16px;display:flex;align-items:center;gap:12px;color:var(--dim);font:700 9px var(--data);letter-spacing:.08em; }
.login-divider::before,.login-divider::after { content:"";height:1px;flex:1;background:var(--glass-line); }
.room-join-form>label { display:block;margin-bottom:7px;color:var(--muted);font-size:11px; }
.room-join-row { display:grid;grid-template-columns:minmax(0,1fr) 86px;gap:8px; }
.room-join-row input { width:100%;height:46px;padding:0 14px;text-transform:uppercase;font:800 15px var(--data);letter-spacing:.12em; }
.room-join-row button { border:1px solid rgba(112,221,179,.36);border-radius:11px;background:rgba(112,221,179,.1);color:var(--green);font-weight:780;cursor:pointer; }
.login-note { margin:13px 0 0;color:var(--dim);font-size:9px;line-height:1.55; }
.toast { border-radius:13px;background:var(--glass-strong);backdrop-filter:blur(16px); }
.announcement-layer { background:rgba(1,5,8,.66);backdrop-filter:blur(14px) saturate(.9); }
.announcement-card { overflow:hidden;border:1px solid var(--glass-line);border-top:1px solid var(--glass-line);border-radius:24px;background:rgba(9,18,24,.96);box-shadow:0 36px 120px rgba(0,0,0,.58); }
.announcement-index { background:linear-gradient(rgba(133,211,243,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(133,211,243,.07) 1px,transparent 1px),rgba(133,211,243,.035);background-size:24px 24px; }
.announcement-meta { overflow:hidden;border-radius:13px; }
.announcement-confirm { border:0;border-radius:12px;background:linear-gradient(135deg,var(--cyan),#91aefc); }

.stage-viewport.mode-dual #view3d { inset:0 auto 0 0;width:var(--dual-split);height:100%; }
.stage-viewport.mode-dual #jello-map { inset:0 0 0 auto;width:calc(100% - var(--dual-split));height:100%;border-left:1px solid var(--glass-line); }
.split-divider { border-color:var(--glass-line);background:rgba(8,17,24,.78);backdrop-filter:blur(12px); }
.stage-viewport.mode-dual .map-tools { top:82px;left:calc(var(--dual-split) + 14px);right:14px; }
.menu-collapsed .stage-viewport.mode-dual .map-tools { top:12px; }
.stage-viewport.mode-dual .map-readout { top:auto;left:calc(var(--dual-split) + 14px);bottom:14px;max-width:calc(100% - var(--dual-split) - 28px); }
.pane-tag { border:1px solid var(--glass-line);border-left:1px solid var(--glass-line);border-radius:10px;background:var(--glass);backdrop-filter:blur(12px); }

@media(max-width:1040px) {
  .brand-button { min-width:45px;width:45px;padding:0;justify-content:center; }
  .brand-title { display:none; }
  .match-badge { display:none; }
  .focus-select { max-width:170px; }
}

@media(max-width:760px) {
  .glass-bar { top:8px;left:8px;right:8px;height:auto;min-height:54px;padding:6px;gap:5px;overflow-x:auto;scrollbar-width:none; }
  .glass-bar::-webkit-scrollbar { display:none; }
  .menu-collapse { width:38px;flex-basis:38px; }
  .brand-button { flex:0 0 42px;width:42px;min-width:42px; }
  .stage-modes { flex:0 0 auto; }
  .stage-mode { padding-inline:9px; }
  .focus-select { flex:0 0 138px;min-width:138px;max-width:138px; }
  .top-button { flex:0 0 auto;padding-inline:11px; }
  .settings-button { margin-left:0; }
  .account-button { flex:0 0 86px;min-width:86px;max-width:86px; }
  .menu-restore,.settings-fab { top:8px;height:44px; }.menu-restore { left:8px; }.settings-fab { right:8px; }
  .map-tools { top:70px;left:8px;right:8px;transform:none;overflow-x:auto;justify-content:flex-start;scrollbar-width:none; }
  .menu-collapsed .map-tools { top:8px;left:114px;right:72px; }
  .map-tools select { min-width:130px; }
  .map-readout { left:8px;bottom:8px;max-width:calc(100% - 16px); }
  .stage-state-pill { bottom:8px;max-width:56vw; }
  .settings-drawer {
    top:auto;left:8px;right:8px;bottom:8px;width:auto;max-height:88dvh;padding:14px;border-radius:22px;
    transform:translateY(calc(100% + 24px));
  }
  .settings-drawer.open { transform:translateY(0); }
  .settings-drawer .toggle-grid { grid-template-columns:1fr 1fr; }
  .login-layer { padding:8px;align-items:stretch; }
  .login-panel { width:100%;max-height:calc(100dvh - 16px);grid-template-columns:1fr;border-radius:21px; }
  .login-art { display:none; }
  .login-access { padding:26px 22px; }
  .room-actions { grid-template-columns:1fr; }
  .room-code-line strong { font-size:20px; }
  .stage-viewport.mode-dual .map-tools { left:calc(var(--dual-split) + 8px);right:8px;top:70px; }
  .menu-collapsed .stage-viewport.mode-dual .map-tools { top:8px; }
  .stage-viewport.mode-dual .map-readout { left:calc(var(--dual-split) + 8px);bottom:8px;max-width:calc(100% - var(--dual-split) - 16px); }
}

@media(max-width:760px) and (orientation:portrait) {
  .stage-viewport.mode-dual #view3d { inset:0 0 auto 0;width:100%;height:var(--dual-split); }
  .stage-viewport.mode-dual #jello-map { inset:auto 0 0 0;width:100%;height:calc(100% - var(--dual-split));border-left:0;border-top:1px solid var(--glass-line); }
  .stage-viewport.mode-dual .split-divider {
    top:var(--dual-split);bottom:auto;left:0;right:0;width:100%;height:13px;
    border-left:0;border-right:0;border-top:1px solid var(--glass-line);border-bottom:1px solid var(--glass-line);
    transform:translateY(-6px);cursor:row-resize;
  }
  .stage-viewport.mode-dual .split-divider::before,.stage-viewport.mode-dual .split-divider::after { top:50%;width:1px;height:17px;transform:translateY(-50%); }
  .stage-viewport.mode-dual .split-divider::before { left:calc(50% - 18px); }.stage-viewport.mode-dual .split-divider::after { left:calc(50% + 18px); }
  .stage-viewport.mode-dual .split-divider span { transform:rotate(90deg); }
  .stage-viewport.mode-dual .pane-tag-3d { left:8px;top:70px; }
  .stage-viewport.mode-dual .pane-tag-map { left:8px;top:calc(var(--dual-split) + 9px); }
  .menu-collapsed .stage-viewport.mode-dual .pane-tag-3d { top:60px; }
  .stage-viewport.mode-dual .map-tools { left:8px;right:8px;top:calc(var(--dual-split) + 47px); }
  .menu-collapsed .stage-viewport.mode-dual .map-tools { top:calc(var(--dual-split) + 47px); }
  .stage-viewport.mode-dual .map-readout { left:8px;bottom:8px;max-width:calc(100% - 16px); }
}

@media(max-width:430px) {
  .settings-drawer .toggle-grid { grid-template-columns:1fr; }
  .room-join-row { grid-template-columns:minmax(0,1fr) 74px; }
  .stage-state-pill { max-width:48vw; }
}

/* Jello 2.2 — ordered charcoal, readable edition.
   Matte surfaces and strict spacing keep the map dominant without hiding state. */
:root[data-theme="night"] {
  --ink:#f4f7f8;
  --muted:#b4bdc3;
  --dim:#7d8991;
  --void:#101316;
  --base:#101316;
  --panel:#181d21;
  --panel-2:#20262b;
  --line:#3c464d;
  --line-hot:#70838e;
  --cyan:#b9dce8;
  --cyan-2:#92c5d6;
  --amber:#e7b96f;
  --red:#ff7f82;
  --green:#79d4ad;
  --hover:#293137;
  --field:#20262a;
  --canvas:#101316;
  --hud:#171c20;
  --overlay:rgba(10,13,15,.88);
  --active-text:#10171b;
  --focus:rgba(185,220,232,.38);
  --glass:#171c20;
  --glass-strong:#20272c;
  --glass-line:#465159;
  --glass-shadow:0 14px 34px rgba(0,0,0,.24);
  --radius:6px;
  --display:"Bahnschrift SemiCondensed","Microsoft YaHei UI",sans-serif;
  --body:"Microsoft YaHei UI","Segoe UI Variable","Segoe UI",sans-serif;
  --data:"Cascadia Mono","Bahnschrift","Segoe UI",sans-serif;
}

html,body { background:#101316; }
body {
  background:#101316;
  color:var(--ink);
  font-weight:540;
}
.map-shell,.map-workspace,.map-stage { background:#101316; }

.glass-bar {
  top:12px;left:16px;right:16px;
  height:60px;min-height:60px;padding:7px 10px;gap:8px;
  border:1px solid #465159;border-radius:6px;
  background:#171c20;
  box-shadow:0 14px 34px rgba(0,0,0,.24);
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
.glass-bar::after { content:none; }
.icon-button,.top-button,.brand-button,.settings-fab,.menu-restore,
.match-badge,.account-button {
  border-color:#465159;border-radius:4px;background:#20262a;color:#f4f7f8;
  box-shadow:none;
}
.icon-button:hover,.top-button:hover,.brand-button:hover,.settings-fab:hover,.menu-restore:hover,
.match-badge:hover,.account-button:hover {
  border-color:#78909c;background:#293137;color:#fff;
}
.menu-collapse { height:42px; }
.brand-button {
  min-width:150px;height:42px;padding:0 13px;
  border-color:#465159;background:#171c20;
}
.brand-mark {
  width:26px;height:26px;border:1px solid #c8d0d4;border-radius:3px;
  background:#20272b;color:#f4f7f8;box-shadow:none;
}
.brand-title { color:#fff;font-size:18px;letter-spacing:.035em; }
.stage-modes {
  height:42px;padding:2px;gap:1px;border:1px solid #465159;border-radius:4px;background:#121619;
}
.stage-mode {
  min-width:61px;height:36px;padding:0 11px;border-radius:2px;color:#b5bdc2;font-size:10px;
}
.stage-mode:hover { background:#242b30;color:#fff; }
.stage-mode.active {
  background:#b9dce8;color:#0d1519;box-shadow:none;font-weight:800;
}
.focus-control {
  min-width:170px;max-width:220px;display:grid;align-content:center;gap:2px;flex:0 1 200px;
}
.focus-control>span {
  padding-left:2px;color:#8e9aa1;font:700 7px/1 var(--data);letter-spacing:.12em;text-transform:uppercase;
}
.focus-select {
  height:38px;min-width:0;border:1px solid #465159;border-radius:4px;
  background:#20262a;color:#f5f7f8;font-size:10px;
}
.focus-control .focus-select { width:100%;height:29px;border-color:#59666e; }
.focus-select:disabled { color:#89949a;background:#191e22; }
.match-badge,.top-button,.account-button { height:42px; }
.match-badge span,.account-button span { color:#8e9aa1; }
.match-badge strong,.account-button strong { color:#fff; }
.settings-button { margin-left:auto;border-color:#59666e; }

.menu-restore,.settings-fab {
  top:12px;height:46px;border-radius:4px;background:#171c20;box-shadow:0 10px 26px rgba(0,0,0,.24);backdrop-filter:none;
}
.menu-restore b { color:var(--cyan); }

.map-tools {
  top:84px;min-height:42px;padding:5px;gap:5px;
  border:1px solid #465159;border-radius:6px;background:#171c20;
  box-shadow:0 10px 24px rgba(0,0,0,.22);backdrop-filter:none;
}
.menu-collapsed .map-tools { top:12px; }
.map-tools select,.map-tool {
  border-color:#465159;border-radius:3px;background:#20262a;color:#bac2c7;
}
.map-tools select { color:#f4f7f8; }
.map-tool:hover { border-color:#70838e;background:#293137;color:#fff; }
.map-tool.active { border-color:#70838e;background:#2a3439;color:#d6edf5; }
.map-readout {
  border:1px solid #4a565e;border-radius:4px;background:#171c20;
  box-shadow:0 8px 22px rgba(0,0,0,.22);backdrop-filter:none;color:#b4bdc3;
}
.map-readout strong { color:#fff; }
.stage-state-pill {
  min-height:34px;border:1px solid #4a565e;border-radius:4px;background:#1b2125;
  box-shadow:0 8px 22px rgba(0,0,0,.22);backdrop-filter:none;color:#c4ccd0;
}
.pane-tag {
  border:1px solid #465159;border-radius:4px;background:#171c20;backdrop-filter:none;color:#b4bdc3;
}
.pane-tag b { color:#fff; }
.split-divider { border-color:#465159;background:#20262a;backdrop-filter:none; }
.stage-viewport.mode-dual #jello-map { border-color:#465159; }

.drawer-backdrop { background:rgba(7,9,11,.60);backdrop-filter:none; }
.settings-drawer {
  top:12px;right:12px;bottom:12px;width:min(420px,calc(100vw - 24px));padding:17px;gap:11px;
  border:1px solid #4a555d;border-radius:6px;background:#151a1e;
  box-shadow:-18px 0 56px rgba(0,0,0,.34);backdrop-filter:none;
}
.drawer-head small { color:#9db9c3; }
.drawer-head h2 { color:#fff;letter-spacing:.005em; }
.drawer-status { border-color:#465159;border-radius:4px;background:#465159; }
.drawer-status>span { background:#1d2327;color:#aeb8be; }
.drawer-greeting { color:#f4f7f8; }
.drawer-greeting small { color:#aeb8be; }
.settings-drawer .preference-bar,.settings-drawer .control-tabs { border-radius:4px; }
.drawer-scroll { scrollbar-color:#59666e #171c20; }
.drawer-scroll>.card-head { background:#151a1e; }
.settings-drawer .toggle-grid { border-color:#3b454c; }
.settings-drawer .toggle {
  border-color:#2f373d;color:#e1e5e7;background:transparent;
}
.settings-drawer .toggle:hover { background:#20262a;color:#fff; }
.settings-drawer .toggle input { border-color:#737f87;background:#20262a; }
.settings-drawer .toggle input:checked { border-color:#b9dce8;background:#b9dce8; }
.settings-drawer .range-row { border-color:#3b454c; }
.settings-drawer input[type="range"] { accent-color:#b9dce8; }
.status-detail { border-color:#465159;border-radius:4px;background:#1a2024; }
.compact-stat { border-color:#3c464d;border-radius:3px;background:#20262a; }
.compact-stat b { color:#fff; }

.modal-layer { background:rgba(7,9,11,.72);backdrop-filter:none; }
.room-panel {
  border-color:#4a555d;border-radius:6px;background:#171c20;
  box-shadow:0 25px 70px rgba(0,0,0,.40);
}
.room-panel header small { color:#9db9c3; }
.room-panel h2 { color:#fff; }
.room-code-line {
  border-color:#59666e;border-radius:4px;background:#20262a;
}
.room-code-line strong { color:#fff; }
.room-invite-field input,.room-actions button {
  border-color:#465159;border-radius:4px;background:#20262a;color:#f4f7f8;
}
.room-invite-field input:focus { border-color:#b9dce8;outline:2px solid rgba(185,220,232,.20); }
.room-actions button:first-child { border-color:#b9dce8;background:#b9dce8;color:#10171b;font-weight:800; }
.room-actions button:hover { border-color:#78909c;background:#293137;color:#fff; }
.room-actions button:first-child:hover { background:#c8e6ef;color:#10171b; }

.login-layer { padding:18px;background:#101316;backdrop-filter:none; }
.login-panel {
  border-color:#4a555d;border-radius:6px;background:#171c20;
  box-shadow:0 30px 84px rgba(0,0,0,.38);
}
.login-art {
  background:
    linear-gradient(rgba(180,189,195,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(180,189,195,.07) 1px,transparent 1px),
    #14191d;
  background-size:42px 42px,42px 42px,auto;
  border-right:1px solid #3c464d;
}
.login-reticle { border-color:#70838e;border-radius:4px;background:#20262a;color:#d4e9f0; }
.login-art h2,.login-form h1 { color:#fff; }
.field input,.room-join-row input {
  border-color:#465159;border-radius:4px;background:#20262a;color:#f4f7f8;
}
.field input:focus,.room-join-row input:focus { border-color:#b9dce8;outline:2px solid rgba(185,220,232,.18); }
.login-action {
  border:1px solid #b9dce8;border-radius:4px;background:#b9dce8;color:#10171b;
  box-shadow:none;font-weight:800;
}
.login-action:hover { background:#c8e6ef; }
.login-divider::before,.login-divider::after { background:#3c464d; }
.room-join-row button {
  border-color:#6a907f;border-radius:4px;background:#24332d;color:#9ee0c3;
}

.toast { border:1px solid #526069;border-radius:4px;background:#22292e;backdrop-filter:none;color:#fff; }
.announcement-layer { background:rgba(7,9,11,.78);backdrop-filter:none; }
.announcement-card {
  border-color:#4a555d;border-top:6px solid #b9dce8;border-radius:6px;background:#171c20;
  box-shadow:0 30px 84px rgba(0,0,0,.42);
}
.announcement-index {
  background:linear-gradient(rgba(180,189,195,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(180,189,195,.07) 1px,transparent 1px),#14191d;
  background-size:24px 24px;border-color:#3c464d;
}
.announcement-meta { border-radius:4px; }
.announcement-meta>div { background:#20262a; }
.announcement-actions { background:#1a2024; }
.announcement-confirm { border-radius:4px;background:#b9dce8;color:#10171b; }

@media(max-width:1040px) {
  .brand-button { min-width:46px;width:46px;padding:0; }
  .focus-control { min-width:150px;max-width:174px;flex-basis:166px; }
}

@media(max-width:760px) {
  .glass-bar {
    top:8px;left:8px;right:8px;height:56px;min-height:56px;padding:5px;gap:5px;border-radius:6px;
  }
  .menu-collapse { height:44px; }
  .brand-button { height:44px; }
  .stage-modes { height:44px; }
  .stage-mode { height:38px; }
  .focus-control { min-width:148px;max-width:148px;flex:0 0 148px; }
  .focus-control>span { font-size:6px; }
  .focus-control .focus-select { height:30px;min-width:148px;max-width:148px; }
  .top-button,.account-button { height:44px; }
  .menu-restore,.settings-fab { top:8px;border-radius:4px; }
  .map-tools { top:72px;border-radius:5px; }
  .menu-collapsed .map-tools { top:8px; }
  .settings-drawer {
    top:auto;left:8px;right:8px;bottom:8px;width:auto;max-height:88dvh;padding:14px;border-radius:8px;
  }
  .login-panel { border-radius:6px; }
  .room-panel { border-radius:6px; }
  .stage-viewport.mode-dual .map-tools { top:72px; }
}

@media(max-width:430px) {
  .focus-control { min-width:138px;max-width:138px;flex-basis:138px; }
  .focus-control .focus-select { min-width:138px;max-width:138px; }
}

/* ============================================================
   Jello 3.0 — unified bright glassmorphism + light/dark dual theme.
   Appended last so it wins over the earlier ledger/charcoal layers.
   Map canvas (`--canvas`) and entity colors are intentionally untouched.
   ============================================================ */
:root {
  color-scheme: light;
  --ink:#15212b;
  --muted:#56636d;
  --dim:#87959f;
  --void:#e6edf2;
  --base:#eef3f7;
  --panel:rgba(255,255,255,.72);
  --panel-2:rgba(255,255,255,.54);
  --line:rgba(122,152,178,.30);
  --line-hot:rgba(47,143,224,.52);
  --cyan:#2f8fe0;
  --cyan-2:#1f74bf;
  --amber:#c8822a;
  --red:#d95450;
  --green:#2fa06b;
  --ai:#7a5fd0;
  --loot:#d9a441;
  --shadow:0 18px 50px rgba(50,80,110,.18);
  --radius:18px;
  --hover:rgba(255,255,255,.6);
  --field:rgba(255,255,255,.72);
  --canvas:#e3e7e2;
  --hud:rgba(255,255,255,.78);
  --overlay:rgba(226,235,242,.72);
  --active-text:#ffffff;
  --grid-soft:rgba(47,143,224,.09);
  --focus:rgba(47,143,224,.36);
  --glass:rgba(255,255,255,.58);
  --glass-strong:rgba(255,255,255,.85);
  --glass-line:rgba(255,255,255,.68);
  --glass-shadow:0 18px 46px rgba(50,80,110,.16),inset 0 1px rgba(255,255,255,.65);
  --display:"Bahnschrift SemiCondensed","Microsoft YaHei UI",sans-serif;
  --body:"Microsoft YaHei UI","Segoe UI",sans-serif;
  --data:"Cascadia Mono","Bahnschrift","Segoe UI",sans-serif;
}

:root[data-theme="night"] {
  color-scheme: dark;
  --ink:#eef4f8;
  --muted:#a9b8c4;
  --dim:#7b8b98;
  --void:#0a0f14;
  --base:#0d1318;
  --panel:rgba(18,27,35,.78);
  --panel-2:rgba(24,35,44,.66);
  --line:rgba(160,195,220,.18);
  --line-hot:rgba(133,211,243,.5);
  --cyan:#85d3f3;
  --cyan-2:#5ab8df;
  --amber:#f2bc72;
  --red:#ff7e86;
  --green:#70ddb3;
  --ai:#c3a7eb;
  --loot:#ffd36a;
  --shadow:0 22px 60px rgba(0,0,0,.42);
  --radius:18px;
  --hover:rgba(142,207,234,.12);
  --field:rgba(5,12,17,.72);
  --canvas:#101316;
  --hud:rgba(7,14,19,.7);
  --overlay:rgba(3,7,10,.72);
  --active-text:#061016;
  --grid-soft:rgba(133,211,243,.08);
  --focus:rgba(133,211,243,.4);
  --glass:rgba(8,17,24,.62);
  --glass-strong:rgba(9,18,25,.86);
  --glass-line:rgba(188,226,244,.2);
  --glass-shadow:0 22px 70px rgba(0,0,0,.36),inset 0 1px rgba(255,255,255,.05);
  --display:"Bahnschrift SemiCondensed","Microsoft YaHei UI",sans-serif;
  --body:"Microsoft YaHei UI","Segoe UI",sans-serif;
  --data:"Cascadia Mono","Bahnschrift","Segoe UI",sans-serif;
}

html,body { background:var(--void); }
body {
  background:
    radial-gradient(1100px 620px at 50% -12%, var(--focus), transparent 62%),
    linear-gradient(180deg, var(--void), var(--base));
  background-attachment: fixed;
  color: var(--ink);
}
.map-shell,.map-workspace { background:transparent; }
.map-stage { background:var(--canvas); }

/* Top glass bar. */
.glass-bar {
  border:1px solid var(--glass-line);
  border-top:1px solid var(--glass-line);
  border-radius:var(--radius);
  background:var(--glass);
  box-shadow:var(--glass-shadow);
  backdrop-filter:blur(20px) saturate(1.3);
  -webkit-backdrop-filter:blur(20px) saturate(1.3);
}
.glass-bar::after { content:none; }
.icon-button,.top-button,.brand-button,.settings-fab,.menu-restore,
.match-badge,.account-button {
  border:1px solid var(--glass-line);
  border-radius:13px;
  background:var(--glass);
  color:var(--ink);
  box-shadow:0 6px 18px rgba(40,70,100,.08);
}
.icon-button:hover,.top-button:hover,.brand-button:hover,.settings-fab:hover,.menu-restore:hover,
.match-badge:hover,.account-button:hover {
  border-color:var(--line-hot);
  background:var(--hover);
  color:var(--ink);
}
.brand-button { border-color:var(--line-hot); }
.brand-mark {
  border:1px solid var(--line-hot);
  border-radius:10px;
  background:linear-gradient(145deg,var(--cyan),var(--cyan-2));
  color:var(--active-text);
  box-shadow:0 8px 22px var(--focus);
}
.brand-title { color:var(--ink); }
.match-badge { border-left:1px solid var(--glass-line); }
.match-badge span,.account-button span { color:var(--dim); }
.match-badge strong,.account-button strong { color:var(--ink); }
.stage-modes {
  border:1px solid var(--glass-line);
  border-radius:13px;
  background:var(--glass);
}
.stage-mode { color:var(--muted); border-radius:9px; }
.stage-mode:hover { color:var(--ink); background:var(--hover); }
.stage-mode.active {
  border:0;
  background:linear-gradient(135deg,var(--cyan),var(--cyan-2));
  color:var(--active-text);
  box-shadow:0 8px 20px var(--focus);
}
.focus-select {
  border:1px solid var(--glass-line);
  border-radius:12px;
  background:var(--field);
  color:var(--ink);
}
.focus-select { border-color:color-mix(in srgb,var(--green) 40%,var(--glass-line)); }

/* Map floating chrome. */
.map-tools {
  border:1px solid var(--glass-line);
  border-radius:15px;
  background:var(--glass);
  box-shadow:var(--glass-shadow);
  backdrop-filter:blur(18px) saturate(1.2);
  -webkit-backdrop-filter:blur(18px) saturate(1.2);
}
.map-tools select,.map-tool {
  border:1px solid var(--glass-line);
  border-radius:10px;
  background:var(--field);
  color:var(--muted);
}
.map-tools select { color:var(--ink); }
.map-tool:hover { border-color:var(--line-hot); background:var(--hover); color:var(--ink); }
.map-tool.active { border-color:var(--line-hot); background:color-mix(in srgb,var(--cyan) 14%,transparent); color:var(--cyan); }
.map-readout {
  border:1px solid var(--glass-line);
  border-radius:13px;
  background:var(--glass);
  box-shadow:0 10px 28px rgba(20,40,60,.14);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  color:var(--muted);
}
.map-readout strong { color:var(--ink); }
.stage-state-pill {
  border:1px solid var(--glass-line);
  border-radius:999px;
  background:var(--glass);
  box-shadow:0 10px 28px rgba(20,40,60,.14);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  color:var(--muted);
}
.pane-tag {
  border:1px solid var(--glass-line);
  border-left:1px solid var(--glass-line);
  border-radius:11px;
  background:var(--glass);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  color:var(--muted);
}
.pane-tag b { color:var(--ink); }
.split-divider {
  border-color:var(--glass-line);
  background:var(--glass);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

/* Settings drawer. */
.drawer-backdrop { background:color-mix(in srgb,var(--void) 34%,transparent); backdrop-filter:blur(2px); }
.settings-drawer {
  border:1px solid var(--glass-line);
  border-radius:22px;
  background:linear-gradient(180deg,var(--glass-strong),var(--glass));
  box-shadow:var(--glass-shadow);
  backdrop-filter:blur(26px) saturate(1.25);
  -webkit-backdrop-filter:blur(26px) saturate(1.25);
}
.drawer-head small { color:var(--cyan); }
.drawer-head h2 { color:var(--ink); }
.drawer-status { border:1px solid var(--glass-line); border-radius:14px; background:var(--glass-line); }
.drawer-status>span { background:var(--glass); color:var(--dim); }
.drawer-status b { color:var(--ink); }
.drawer-greeting { color:var(--ink); }
.drawer-greeting small { color:var(--muted); }
.drawer-scroll>.card-head { background:linear-gradient(180deg,var(--glass-strong) 80%,transparent); }
.settings-drawer .preference-bar,.settings-drawer .control-tabs { border-radius:13px; }
.preference-bar { border-color:var(--glass-line); background:var(--glass); }
.preference-copy b { color:var(--ink); }
.preference-copy small { color:var(--muted); }
.control-tabs { border:1px solid var(--glass-line); background:var(--panel-2); }
.control-tab { border-color:var(--glass-line); color:var(--muted); }
.control-tab:hover { color:var(--ink); background:var(--hover); }
.control-tab.active { color:var(--active-text); background:linear-gradient(135deg,var(--cyan),var(--cyan-2)); }
.settings-drawer .toggle-grid { border-color:var(--glass-line); }
.settings-drawer .toggle { border-color:var(--glass-line); color:var(--muted); background:transparent; }
.settings-drawer .toggle:hover { background:var(--hover); color:var(--ink); }
.toggle input {
  border-color:var(--dim);
  border-radius:20px;
  background:var(--panel-2);
}
.toggle input::after { background:var(--muted); }
.toggle input:checked { border-color:var(--cyan); background:var(--field); }
.toggle input:checked::after { background:var(--cyan); }
.settings-drawer .range-row { border-color:var(--glass-line); }
.range-row input { accent-color:var(--cyan); }
.status-detail { border:1px solid var(--glass-line); border-radius:16px; background:var(--glass); }
.status-detail h3 { color:var(--ink); }
.compact-stats { gap:8px; background:transparent; }
.compact-stat { border:1px solid var(--glass-line); border-radius:12px; background:var(--field); }
.compact-stat b { color:var(--ink); }
.compact-stat span { color:var(--dim); }
/* Theme switch (shared contract with admin). */
.theme-switch {
  height:38px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  flex:none;
  overflow:hidden;
  border:1px solid var(--glass-line);
  border-radius:12px;
  background:var(--glass);
}
.theme-choice {
  min-width:0;
  padding:0;
  border:0;
  border-right:1px solid var(--glass-line);
  border-radius:0;
  background:transparent;
  color:var(--muted);
  font:750 10px var(--body);
  white-space:nowrap;
  cursor:pointer;
}
.theme-choice:last-child { border-right:0; }
.theme-choice:hover { color:var(--ink); background:var(--hover); }
.theme-choice.active { color:var(--active-text); background:linear-gradient(135deg,var(--cyan),var(--cyan-2)); box-shadow:inset 0 0 0 1px var(--line-hot); }

/* Room + share + login + toast + announcement glass. */
.modal-layer { background:color-mix(in srgb,var(--void) 56%,transparent); backdrop-filter:blur(8px); }
.room-panel {
  border:1px solid var(--glass-line);
  border-radius:22px;
  background:linear-gradient(160deg,var(--glass-strong),var(--glass));
  box-shadow:var(--glass-shadow);
}
.room-panel header small { color:var(--cyan); }
.room-panel h2 { color:var(--ink); }
.room-code-line { border-color:var(--line-hot); border-radius:15px; background:color-mix(in srgb,var(--cyan) 7%,transparent); }
.room-code-line strong { color:var(--ink); }
.room-invite-field input,.room-actions button {
  border:1px solid var(--glass-line);
  border-radius:11px;
  background:var(--field);
  color:var(--ink);
}
.room-invite-field input:focus { border-color:var(--line-hot); }
.room-actions button:first-child { border-color:var(--line-hot); color:var(--cyan); }
.room-actions .danger-soft { color:var(--red); }

.share-panel {
  border:1px solid var(--glass-line);
  border-radius:22px;
  background:var(--glass-strong);
  box-shadow:var(--glass-shadow);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
}
.share-panel-head h2 { color:var(--ink); }

.login-layer { background:var(--overlay); backdrop-filter:blur(18px) saturate(1.1); }
.login-panel {
  border:1px solid var(--glass-line);
  border-radius:26px;
  background:linear-gradient(160deg,var(--glass-strong),var(--glass));
  box-shadow:var(--glass-shadow);
}
.login-art {
  background:
    radial-gradient(circle at 22% 22%, var(--focus), transparent 34%),
    linear-gradient(var(--grid-soft) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid-soft) 1px,transparent 1px),
    var(--canvas);
  background-size:auto,42px 42px,42px 42px,auto;
}
.login-reticle { border-color:var(--line-hot); border-radius:18px; background:color-mix(in srgb,var(--cyan) 6%,transparent); color:var(--cyan); }
.login-art h2,.login-form h1 { color:var(--ink); }
.login-form .card-kicker { color:var(--cyan); }
.field input,.room-join-row input {
  border:1px solid var(--glass-line);
  border-radius:11px;
  background:var(--field);
  color:var(--ink);
}
.field input:focus,.room-join-row input:focus { border-color:var(--line-hot); outline:2px solid var(--focus); }
.login-action {
  border:0;
  border-radius:12px;
  background:linear-gradient(135deg,var(--cyan),var(--cyan-2));
  color:var(--active-text);
  box-shadow:0 12px 32px var(--focus);
}
.login-divider::before,.login-divider::after { background:var(--glass-line); }
.room-join-row button {
  border:1px solid color-mix(in srgb,var(--green) 40%,var(--glass-line));
  border-radius:11px;
  background:color-mix(in srgb,var(--green) 12%,transparent);
  color:var(--green);
}
.login-note { color:var(--dim); }

.toast {
  border:1px solid var(--glass-line);
  border-radius:13px;
  background:var(--glass-strong);
  color:var(--ink);
  box-shadow:var(--glass-shadow);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.announcement-layer { background:color-mix(in srgb,var(--void) 66%,transparent); backdrop-filter:blur(14px) saturate(.9); }
.announcement-card {
  border:1px solid var(--glass-line);
  border-radius:24px;
  background:linear-gradient(160deg,var(--glass-strong),var(--glass));
  box-shadow:var(--glass-shadow);
}
.announcement-index {
  background:linear-gradient(var(--grid-soft) 1px,transparent 1px),linear-gradient(90deg,var(--grid-soft) 1px,transparent 1px),color-mix(in srgb,var(--cyan) 5%,transparent);
  background-size:24px 24px;
}
.announcement-meta { border-radius:13px; }
.announcement-meta>div { background:var(--field); }
.announcement-actions { background:var(--panel-2); }
.announcement-confirm {
  border:0;
  border-radius:12px;
  background:linear-gradient(135deg,var(--cyan),var(--cyan-2));
  color:var(--active-text);
}

/* Keep the dual-view split + portrait behavior intact while matching glass. */
.stage-viewport.mode-dual #jello-map { border-color:var(--glass-line); }

/* Link diagnostics panel (settings drawer). Matches the glass surface while
   staying collapsed inside the drawer and off the main stage. */
.debug-pane { gap:10px; }
.debug-verdict {
  flex:0 0 auto;
  min-height:42px;
  padding:11px 13px;
  display:flex;
  align-items:center;
  border:1px solid var(--glass-line);
  border-left:5px solid var(--green);
  border-radius:12px;
  background:var(--field);
  color:var(--ink);
  font:750 12px var(--body);
  letter-spacing:.01em;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.debug-verdict[data-tone="red"] { border-left-color:var(--red); color:var(--red); }
.debug-verdict[data-tone="amber"] { border-left-color:var(--amber); color:var(--amber); }
.debug-verdict[data-tone="green"] { border-left-color:var(--green); color:var(--green); }
.debug-grid {
  flex:1 1 auto;
  min-height:0;
  display:grid;
  align-content:start;
  gap:1px;
  overflow-y:auto;
  border:1px solid var(--glass-line);
  border-radius:12px;
  background:var(--glass-line);
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb,var(--cyan) 42%,transparent) transparent;
}
.debug-grid::-webkit-scrollbar { width:6px; }
.debug-grid::-webkit-scrollbar-thumb { background:color-mix(in srgb,var(--cyan) 38%,transparent); border-radius:99px; }
.debug-line {
  min-height:34px;
  padding:7px 11px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  background:var(--glass);
  color:var(--dim);
  font-size:9px;
  font-weight:650;
}
.debug-line span { flex:0 0 auto; white-space:nowrap; }
.debug-line strong {
  min-width:0;
  text-align:right;
  color:var(--ink);
  font:720 9px/1.35 var(--data);
  letter-spacing:.01em;
  overflow-wrap:anywhere;
}
.team-color-row input[type="color"] {
  width:100%;
  height:30px;
  padding:2px;
  border:1px solid var(--line);
  border-radius:0;
  background:var(--field);
  cursor:pointer;
}
.debug-actions { flex:0 0 auto; display:flex; }
.debug-actions button {
  width:100%;
  min-height:36px;
  border:1px solid color-mix(in srgb,var(--cyan) 42%,var(--glass-line));
  border-radius:10px;
  background:color-mix(in srgb,var(--cyan) 10%,var(--field));
  color:var(--cyan);
  font:750 10px var(--body);
  letter-spacing:.03em;
}
.debug-actions button:hover { background:color-mix(in srgb,var(--cyan) 17%,var(--field)); }

/* Space Base exact-geometry building mode. */
.stage-mode:disabled {
  cursor:not-allowed;
  opacity:.38;
  filter:saturate(.35);
}
#building3d {
  cursor:grab;
  touch-action:none;
  background:#d8dad9;
}
#building3d:active { cursor:grabbing; }
.stage-viewport.mode-building #building3d {
  display:block;
  inset:0;
  width:100%;
  height:100%;
}
.building-tools {
  position:absolute;
  z-index:7;
  left:50%;
  top:72px;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:6px;
  padding:5px;
  border:1px solid var(--glass-line);
  border-radius:15px;
  background:var(--glass);
  box-shadow:var(--glass-shadow);
  backdrop-filter:blur(18px) saturate(1.2);
  -webkit-backdrop-filter:blur(18px) saturate(1.2);
  pointer-events:auto;
}
.building-tools.hidden { display:none; }
.building-tools span {
  max-width:190px;
  padding:0 7px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--muted);
  font:700 9px var(--data);
}
.menu-collapsed .building-tools { top:12px; }
.building-offset-line { align-items:flex-start; }
.building-offset-inputs {
  flex:1 1 auto!important;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr)) auto;
  gap:4px;
  white-space:normal!important;
}
.building-offset-inputs input {
  min-width:0;
  width:100%;
  height:26px;
  padding:0 5px;
  border:1px solid var(--glass-line);
  border-radius:6px;
  background:var(--field);
  color:var(--ink);
  font:700 9px var(--data);
}
.building-offset-inputs button {
  min-height:26px;
  padding:0 7px;
  border:1px solid var(--glass-line);
  border-radius:6px;
  background:var(--hover);
  color:var(--muted);
  font-size:9px;
}
@media(max-width:760px) {
  .building-tools { top:70px;left:8px;right:8px;transform:none;overflow-x:auto;justify-content:flex-start; }
  .menu-collapsed .building-tools { top:8px;left:78px;right:72px; }
  .building-tools span { flex:1 0 130px; }
}

/* Configurable dual-view composition and per-mode building camera controls. */
.dual-view-tools {
  position:absolute;
  z-index:12;
  top:var(--stage-hud-top,84px);
  left:50%;
  display:flex;
  align-items:end;
  gap:5px;
  width:min(460px,calc(100% - 28px));
  padding:5px;
  border:1px solid var(--glass-line);
  border-radius:14px;
  background:var(--glass);
  box-shadow:var(--glass-shadow);
  backdrop-filter:blur(18px) saturate(1.2);
  -webkit-backdrop-filter:blur(18px) saturate(1.2);
  transform:translateX(-50%);
}
.dual-view-tools.hidden { display:none; }
.dual-view-tools label { flex:1 1 0;display:grid;gap:2px;min-width:0; }
.dual-view-tools label span { padding-left:4px;color:var(--dim);font:700 8px var(--data); }
.dual-view-tools select {
  width:100%;height:29px;min-width:0;padding:0 24px 0 8px;border:1px solid var(--glass-line);border-radius:8px;
  background:var(--field);color:var(--ink);font:750 10px var(--body);
}
.dual-view-tools button {
  flex:0 0 34px;height:29px;border:1px solid var(--glass-line);border-radius:8px;background:var(--hover);color:var(--cyan);font-size:17px;
}
.stage-viewport.mode-dual .stage-canvas[data-dual-slot="primary"] {
  display:block!important;inset:0 auto 0 0!important;width:var(--dual-split)!important;height:100%!important;border:0!important;
}
.stage-viewport.mode-dual .stage-canvas[data-dual-slot="secondary"] {
  display:block!important;inset:0 0 0 auto!important;width:calc(100% - var(--dual-split))!important;height:100%!important;
  border:0!important;border-left:1px solid var(--glass-line)!important;
}
.stage-viewport.mode-dual .stage-canvas[data-dual-slot="none"] { display:none!important; }
.stage-viewport.mode-dual .pane-tag { top:calc(var(--stage-hud-top,84px) + 50px); }
.stage-viewport.mode-dual .pane-tag-primary { left:14px; }
.stage-viewport.mode-dual .pane-tag-secondary { left:calc(var(--dual-split) + 14px); }
.stage-viewport.mode-dual.dual-map-primary .map-tools {
  top:calc(var(--stage-hud-top,84px) + 89px)!important;left:14px!important;right:calc(100% - var(--dual-split) + 14px)!important;transform:none!important;
}
.stage-viewport.mode-dual.dual-map-secondary .map-tools {
  top:calc(var(--stage-hud-top,84px) + 89px)!important;left:calc(var(--dual-split) + 14px)!important;right:14px!important;transform:none!important;
}
.stage-viewport.mode-dual.dual-map-primary .map-readout { top:auto!important;left:14px!important;bottom:14px!important;max-width:calc(var(--dual-split) - 28px)!important; }
.stage-viewport.mode-dual.dual-map-secondary .map-readout { top:auto!important;left:calc(var(--dual-split) + 14px)!important;bottom:14px!important;max-width:calc(100% - var(--dual-split) - 28px)!important; }
.stage-viewport.mode-dual.dual-building-primary .building-tools {
  top:calc(var(--stage-hud-top,84px) + 89px)!important;left:calc(var(--dual-split) / 2)!important;right:auto!important;transform:translateX(-50%)!important;
}
.stage-viewport.mode-dual.dual-building-secondary .building-tools {
  top:calc(var(--stage-hud-top,84px) + 89px)!important;left:calc(var(--dual-split) + (100% - var(--dual-split)) / 2)!important;right:auto!important;transform:translateX(-50%)!important;
}
.building-camera-mode-settings { display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:5px; }
.building-camera-hint { margin:7px 0;color:var(--dim);font:650 9px/1.45 var(--body); }
.building-offline-import {
  margin:9px 0 4px;padding:10px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;
  border:1px solid var(--glass-line);border-left:3px solid var(--cyan);border-radius:8px;background:color-mix(in srgb,var(--cyan) 5%,transparent);
}
.building-offline-import strong { display:block;color:var(--ink);font:750 10px var(--body); }
.building-offline-import span { display:block;margin-top:4px;color:var(--dim);font:650 8px/1.45 var(--data);overflow-wrap:anywhere; }
.building-offline-import .map-tool { min-width:92px; }
.building-offline-import .map-tool:disabled { opacity:.5;cursor:wait; }
.building-camera-row { display:grid;gap:6px;padding:9px 0;border-bottom:1px solid var(--glass-line); }
.building-camera-row > label { display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:10px;font-weight:700; }
.building-camera-row > label strong { color:var(--cyan);font:750 10px var(--data); }
.building-camera-row > div { display:grid;grid-template-columns:minmax(0,1fr) 72px;align-items:center;gap:7px; }
.building-camera-row input[type="number"] {
  width:100%;height:28px;padding:0 6px;border:1px solid var(--glass-line);border-radius:7px;background:var(--field);color:var(--ink);font:700 10px var(--data);
}

@media(max-width:760px) and (orientation:portrait) {
  .dual-view-tools { top:var(--stage-hud-top,70px);width:calc(100% - 16px); }
  .dual-view-tools label span { display:none; }
  .stage-viewport.mode-dual .stage-canvas[data-dual-slot="primary"] {
    inset:0 0 auto 0!important;width:100%!important;height:var(--dual-split)!important;
  }
  .stage-viewport.mode-dual .stage-canvas[data-dual-slot="secondary"] {
    inset:auto 0 0 0!important;width:100%!important;height:calc(100% - var(--dual-split))!important;
    border-left:0!important;border-top:1px solid var(--glass-line)!important;
  }
  .stage-viewport.mode-dual .pane-tag { display:none!important; }
  .stage-viewport.mode-dual.dual-map-primary .map-tools,
  .stage-viewport.mode-dual.dual-building-primary .building-tools {
    top:calc(var(--stage-hud-top,70px) + 49px)!important;left:8px!important;right:8px!important;transform:none!important;
  }
  .stage-viewport.mode-dual.dual-map-secondary .map-tools,
  .stage-viewport.mode-dual.dual-building-secondary .building-tools {
    top:calc(var(--dual-split) + 9px)!important;left:8px!important;right:8px!important;transform:none!important;
  }
  .stage-viewport.mode-dual.dual-map-primary .map-readout { left:8px!important;bottom:calc(100% - var(--dual-split) + 8px)!important;max-width:calc(100% - 16px)!important; }
  .stage-viewport.mode-dual.dual-map-secondary .map-readout { left:8px!important;bottom:8px!important;max-width:calc(100% - 16px)!important; }
}

/* Compact live HUD: use the top-bar space for actionable information and
   keep dual-view controls out of both render panes. */
.entity-summary {
  min-height:40px;margin-left:auto;padding:4px 5px;display:flex;align-items:stretch;gap:3px;
  border:1px solid var(--glass-line);border-radius:13px;background:var(--glass);box-shadow:0 6px 18px rgba(40,70,100,.08);
}
.entity-summary span {
  min-width:49px;padding:0 7px;display:flex;align-items:center;justify-content:center;gap:6px;
  border-radius:9px;color:var(--dim);font:720 8px var(--data);letter-spacing:.04em;white-space:nowrap;
}
.entity-summary strong { color:var(--ink);font:850 16px/1 var(--data);letter-spacing:-.04em; }
.entity-summary-total { background:color-mix(in srgb,var(--cyan) 14%,transparent);color:var(--cyan)!important; }
.entity-summary-total strong { color:var(--cyan); }
.settings-button { margin-left:0; }

.drawer-scroll.calibration-active { display:flex;flex-direction:column;overflow:hidden; }
.drawer-scroll.calibration-active>.card-head { flex:0 0 auto; }
.drawer-scroll.calibration-active .calibration-pane.active { flex:1 1 0;min-height:0;overflow:hidden; }
.drawer-scroll.calibration-active .calibration-scroll {
  flex:1 1 0;min-height:0;height:0;overflow-x:hidden;overflow-y:auto;touch-action:pan-y;
  overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;
}

@media(min-width:1280px) {
  .stage-viewport.mode-dual .dual-view-tools {
    position:fixed;z-index:43;top:19px;left:50%;width:min(360px,calc(100vw - 980px));min-width:280px;height:42px;
    padding:3px;align-items:center;border-radius:12px;transform:translateX(-50%);
  }
  .stage-viewport.mode-dual .dual-view-tools label { display:block; }
  .stage-viewport.mode-dual .dual-view-tools label span { display:none; }
  .stage-viewport.mode-dual .dual-view-tools select,.stage-viewport.mode-dual .dual-view-tools button { height:34px; }
  .stage-viewport.mode-dual .pane-tag { display:none!important; }
  .stage-viewport.mode-dual.dual-map-primary .map-tools {
    top:var(--stage-hud-top,84px)!important;right:auto!important;width:min(620px,calc(var(--dual-split) - 28px));max-width:calc(var(--dual-split) - 28px);
  }
  .stage-viewport.mode-dual.dual-map-secondary .map-tools {
    top:var(--stage-hud-top,84px)!important;right:auto!important;width:min(620px,calc(100% - var(--dual-split) - 28px));max-width:calc(100% - var(--dual-split) - 28px);
  }
  .stage-viewport.mode-dual .map-tools select { flex:1 1 210px;max-width:310px; }
  .stage-viewport.mode-dual.dual-building-primary .building-tools,
  .stage-viewport.mode-dual.dual-building-secondary .building-tools { top:var(--stage-hud-top,84px)!important; }
}

@media(min-width:761px) and (max-width:1279px) {
  .stage-viewport.mode-dual .pane-tag { display:none!important; }
  .stage-viewport.mode-dual.dual-map-primary .map-tools,
  .stage-viewport.mode-dual.dual-map-secondary .map-tools,
  .stage-viewport.mode-dual.dual-building-primary .building-tools,
  .stage-viewport.mode-dual.dual-building-secondary .building-tools { top:calc(var(--stage-hud-top,84px) + 49px)!important; }
}

@media(max-width:1180px) {
  .entity-summary span:not(.entity-summary-total) { display:none; }
  .entity-summary-total { min-width:64px; }
}

@media(max-width:760px) {
  .entity-summary { min-height:44px;flex:0 0 auto;margin-left:0; }
  .entity-summary-total { min-width:58px;padding-inline:6px; }
  .entity-summary-total strong { font-size:15px; }
}

/* ===== Jello Midnight Aurora — immersive command surface ===== */
:root,:root[data-theme="day"],:root[data-theme="night"] {
  color-scheme:dark;
  --void:#03050d;--base:#060814;--canvas:#080b18;--panel:rgba(13,15,33,.68);--panel-2:rgba(9,11,27,.82);
  --field:rgba(255,255,255,.04);--hover:rgba(150,114,255,.12);--line:rgba(211,200,255,.12);--line-hot:rgba(167,138,255,.38);
  --glass-line:rgba(211,200,255,.14);--ink:#f6f2ff;--muted:#aaa3bb;--dim:#716b84;
  --cyan:#a184ff;--blue:#7559ff;--green:#61dcc2;--amber:#ffbd70;--red:#ff7d92;--active-text:#fff;
  --glass:rgba(8,10,25,.68);--glass-strong:rgba(8,10,24,.9);--overlay:rgba(2,3,10,.78);
  --focus:rgba(133,87,255,.25);--grid-soft:rgba(183,161,255,.07);--shadow:0 28px 100px rgba(0,0,0,.5);
  --display:"Segoe UI Variable","Microsoft YaHei UI",system-ui,sans-serif;
}
html,body{background:#03050d!important}
body{
  overflow:hidden;background:
    radial-gradient(920px 620px at 50% -8%,rgba(98,67,216,.28),transparent 70%),
    radial-gradient(720px 560px at 100% 88%,rgba(29,103,171,.16),transparent 72%),
    linear-gradient(145deg,#02040b,#080a18 56%,#040611)!important;
}
body::before{
  content:"";position:fixed;inset:-20%;z-index:-1;pointer-events:none;filter:blur(90px);opacity:.7;
  background:radial-gradient(520px 380px at 46% 28%,rgba(127,82,255,.28),transparent 72%),radial-gradient(600px 440px at 70% 54%,rgba(39,130,198,.14),transparent 74%);
}
.shell.map-shell{display:block!important;height:100dvh!important;min-height:0!important;padding:0!important;background:transparent!important}
.map-workspace{position:fixed!important;inset:16px!important;z-index:1!important;padding:0!important;display:block!important}
.map-stage{
  position:absolute!important;inset:0!important;overflow:hidden!important;border:1px solid rgba(211,200,255,.15)!important;border-radius:30px!important;
  background:#070914!important;box-shadow:0 42px 140px rgba(0,0,0,.56),inset 0 1px rgba(255,255,255,.04)!important;
}
.map-stage::before{
  content:""!important;position:absolute!important;inset:0!important;z-index:3!important;pointer-events:none!important;opacity:.22!important;
  background:radial-gradient(circle at 50% 42%,transparent 42%,rgba(3,4,13,.48) 100%)!important;
}
.glass-bar{
  position:fixed!important;inset:0!important;z-index:40!important;width:auto!important;height:0!important;min-height:0!important;padding:0!important;margin:0!important;
  display:block!important;border:0!important;background:none!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;pointer-events:none!important;
}
.glass-bar::after{content:none!important}
.glass-bar>*{pointer-events:auto}
.menu-collapsed .glass-bar{opacity:1!important;transform:none!important;pointer-events:none!important}
.menu-collapse,.menu-restore{display:none!important}
.brand-button{
  position:fixed!important;top:28px!important;left:28px!important;width:auto!important;min-width:0!important;height:48px!important;padding:6px 16px 6px 7px!important;
  border:1px solid rgba(211,200,255,.18)!important;border-radius:16px!important;background:rgba(8,10,25,.7)!important;
  box-shadow:0 18px 55px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.05)!important;backdrop-filter:blur(30px) saturate(130%)!important;-webkit-backdrop-filter:blur(30px) saturate(130%)!important;
}
.brand-mark{width:34px!important;height:34px!important;border:1px solid rgba(196,177,255,.42)!important;border-radius:11px!important;background:radial-gradient(circle at 32% 24%,#c0adff,#8061ff 54%,#403198)!important;color:#fff!important;box-shadow:0 0 28px rgba(125,88,255,.26)!important}
.brand-title{display:inline!important;color:#f7f4ff!important;font-size:14px!important;font-weight:720!important;letter-spacing:.16em!important}
.stage-modes{
  position:fixed!important;top:28px!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important;width:auto!important;height:48px!important;margin:0!important;padding:5px!important;gap:4px!important;
  border:1px solid rgba(211,200,255,.16)!important;border-radius:16px!important;background:rgba(8,10,25,.68)!important;
  box-shadow:0 18px 55px rgba(0,0,0,.3)!important;backdrop-filter:blur(30px) saturate(130%)!important;-webkit-backdrop-filter:blur(30px) saturate(130%)!important;
}
.stage-mode{min-height:36px!important;padding:0 15px!important;border:0!important;border-radius:11px!important;background:transparent!important;color:#847e98!important;font-size:11px!important;font-weight:700!important}
.stage-mode:hover{color:#d9d1ec!important;background:rgba(255,255,255,.045)!important}.stage-mode.active{color:#fff!important;background:linear-gradient(135deg,rgba(161,126,255,.92),rgba(101,78,224,.92))!important;box-shadow:0 8px 26px rgba(105,72,230,.3)!important}
.settings-button,.account-button,.top-button,.match-badge,.focus-control{
  position:fixed!important;top:28px!important;height:48px!important;border:1px solid rgba(211,200,255,.15)!important;border-radius:15px!important;background:rgba(8,10,25,.68)!important;color:#aaa3bb!important;box-shadow:0 18px 50px rgba(0,0,0,.28)!important;backdrop-filter:blur(28px)!important;-webkit-backdrop-filter:blur(28px)!important;
}
.account-button{right:28px!important}.settings-button{right:148px!important}.top-button{right:262px!important}.match-badge{top:88px!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important}.focus-control{top:88px!important;left:28px!important}
.entity-summary{
  position:fixed!important;top:94px!important;right:28px!important;width:196px!important;min-height:0!important;margin:0!important;padding:9px!important;display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:5px!important;
  border:1px solid rgba(211,200,255,.14)!important;border-radius:18px!important;background:rgba(8,10,25,.64)!important;box-shadow:0 20px 60px rgba(0,0,0,.3)!important;backdrop-filter:blur(28px)!important;-webkit-backdrop-filter:blur(28px)!important;
}
.entity-summary span{min-width:0!important;padding:5px 4px!important;border:0!important;border-radius:10px!important;background:rgba(255,255,255,.035)!important;color:#766f8b!important;text-align:center!important;font-size:8px!important}.entity-summary strong{display:block!important;margin:4px 0 0!important;color:#f3efff!important;font-size:15px!important}
.stage-hud{position:absolute!important;inset:0!important;z-index:8!important;pointer-events:none!important}.stage-hud>*{pointer-events:auto}
.map-tools,.building-tools{
  position:absolute!important;left:22px!important;right:auto!important;top:auto!important;bottom:22px!important;width:auto!important;max-width:min(660px,calc(100% - 44px))!important;margin:0!important;padding:7px!important;gap:5px!important;
  border:1px solid rgba(211,200,255,.15)!important;border-radius:18px!important;background:rgba(8,10,25,.7)!important;box-shadow:0 20px 60px rgba(0,0,0,.38)!important;backdrop-filter:blur(30px) saturate(130%)!important;-webkit-backdrop-filter:blur(30px) saturate(130%)!important;
}
.map-tool,.map-tools select,.building-tools span{min-height:38px!important;border:0!important;border-radius:11px!important;background:rgba(255,255,255,.035)!important;color:#9e97b0!important}.map-tool.active{background:rgba(144,109,255,.18)!important;color:#c8b9ff!important;box-shadow:inset 0 0 0 1px rgba(172,146,255,.2)!important}
.map-readout,.stage-state-pill{
  position:absolute!important;right:22px!important;left:auto!important;width:238px!important;margin:0!important;border:1px solid rgba(211,200,255,.15)!important;border-radius:19px!important;background:rgba(8,10,25,.68)!important;color:#aaa3bb!important;box-shadow:0 20px 60px rgba(0,0,0,.34)!important;backdrop-filter:blur(30px)!important;-webkit-backdrop-filter:blur(30px)!important;
}
.map-readout{bottom:82px!important;min-height:88px!important;padding:18px!important}.map-readout strong{color:#f4f0ff!important}.stage-state-pill{bottom:22px!important;min-height:48px!important;padding:0 16px!important;display:flex!important;align-items:center!important}
.settings-fab{position:fixed!important;right:28px!important;bottom:28px!important;border:1px solid rgba(211,200,255,.17)!important;border-radius:15px!important;background:rgba(8,10,25,.7)!important;color:#b6aec9!important;backdrop-filter:blur(28px)!important;-webkit-backdrop-filter:blur(28px)!important}
.drawer-backdrop{background:rgba(2,3,10,.52)!important;backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important}
.settings-drawer,.room-drawer{
  top:16px!important;right:16px!important;bottom:16px!important;height:auto!important;width:min(440px,calc(100vw - 32px))!important;
  border:1px solid rgba(211,200,255,.17)!important;border-radius:28px!important;background:rgba(7,9,22,.88)!important;box-shadow:-34px 0 120px rgba(0,0,0,.58)!important;backdrop-filter:blur(40px) saturate(125%)!important;-webkit-backdrop-filter:blur(40px) saturate(125%)!important;
}
.drawer-head{border-color:rgba(211,200,255,.1)!important;background:rgba(13,15,34,.8)!important}.drawer-head small,.card-kicker{color:#9f82ff!important}.control-tab.active{background:rgba(145,109,255,.18)!important;color:#cbbdff!important}.toggle input:checked{border-color:#9b7aff!important;background:#8b69ff!important}
.login-layer{background:rgba(2,3,10,.78)!important;backdrop-filter:blur(30px)!important;-webkit-backdrop-filter:blur(30px)!important}.login-panel{overflow:hidden!important;border:1px solid rgba(211,200,255,.16)!important;border-radius:30px!important;background:rgba(8,10,24,.88)!important;box-shadow:0 42px 140px rgba(0,0,0,.6)!important;backdrop-filter:blur(38px)!important;-webkit-backdrop-filter:blur(38px)!important}.login-art{background:radial-gradient(540px 360px at 32% 24%,rgba(132,88,255,.36),transparent 68%),linear-gradient(rgba(183,161,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(183,161,255,.055) 1px,transparent 1px),linear-gradient(150deg,#11132a,#070915)!important;background-size:auto,42px 42px,42px 42px,auto!important}.login-reticle{border-color:rgba(192,173,255,.42)!important;background:rgba(143,101,255,.14)!important;color:#c9baff!important;box-shadow:0 0 44px rgba(123,84,255,.2)!important}.login-form{background:rgba(7,9,22,.58)!important}
.announcement-card{border-color:rgba(211,200,255,.18)!important;background:rgba(8,10,24,.94)!important;box-shadow:0 40px 150px rgba(0,0,0,.66)!important}.announcement-index{background:radial-gradient(circle at 32% 22%,rgba(133,92,255,.2),transparent 62%),rgba(139,104,255,.035)!important}.announcement-kicker,.announcement-brand span{color:#a384ff!important}.announcement-confirm{background:linear-gradient(135deg,#a384ff,#7157ff)!important;color:#fff!important}
@media(max-width:900px){
  .map-workspace{inset:8px!important}.map-stage{border-radius:22px!important}.brand-button{top:16px!important;left:16px!important}.stage-modes{top:16px!important;max-width:calc(100vw - 144px)!important;overflow-x:auto!important}.settings-button,.account-button,.top-button{display:none!important}.entity-summary{top:auto!important;right:14px!important;bottom:14px!important;width:150px!important}.map-tools,.building-tools{left:14px!important;bottom:14px!important;max-width:calc(100% - 178px)!important;overflow-x:auto!important}.map-readout,.stage-state-pill{display:none!important}.settings-fab{display:flex!important;right:16px!important;bottom:78px!important}.settings-drawer,.room-drawer{top:8px!important;right:8px!important;bottom:8px!important;width:calc(100vw - 16px)!important;border-radius:22px!important}}
@media(max-width:560px){.brand-title{display:none!important}.brand-button{width:44px!important;padding:5px!important}.stage-modes{left:66px!important;right:12px!important;transform:none!important;max-width:none!important}.stage-mode{padding-inline:11px!important}.entity-summary span:not(.entity-summary-total){display:none!important}.entity-summary{width:60px!important;grid-template-columns:1fr!important}.map-tools,.building-tools{right:84px!important;max-width:none!important}.focus-control,.match-badge{display:none!important}}

/* ===== Jello Orbit Field — rail / canvas / context composition ===== */
:root,:root[data-theme="day"],:root[data-theme="night"]{
  --orbit-bg:#05060c;--orbit-rail:rgba(10,11,22,.82);--orbit-panel:rgba(12,14,28,.76);
  --orbit-line:rgba(214,207,255,.14);--orbit-soft:rgba(255,255,255,.045);
  --orbit-violet:#9276ff;--orbit-mint:#63e1c4;--orbit-ink:#f7f5ff;--orbit-muted:#918ba2;
}
body{background:radial-gradient(900px 620px at 32% -12%,rgba(110,75,230,.22),transparent 72%),linear-gradient(135deg,#03040a,#090b16 55%,#04050b)!important}
.shell.map-shell{position:fixed!important;inset:0!important;display:block!important;overflow:hidden!important}

/* The former top bar is now a compact task rail. */
.glass-bar{
  position:fixed!important;top:16px!important;left:16px!important;right:auto!important;bottom:16px!important;z-index:48!important;
  width:76px!important;height:auto!important;min-height:0!important;margin:0!important;padding:10px!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;gap:9px!important;
  border:1px solid var(--orbit-line)!important;border-radius:24px!important;background:var(--orbit-rail)!important;
  box-shadow:0 28px 90px rgba(0,0,0,.48),inset 0 1px rgba(255,255,255,.045)!important;
  backdrop-filter:blur(32px) saturate(130%)!important;-webkit-backdrop-filter:blur(32px) saturate(130%)!important;
  pointer-events:auto!important;transition:transform .24s ease,opacity .2s ease!important;
}
.glass-bar>*{pointer-events:auto!important}
.context-controls{display:contents}.context-controls>*{z-index:16!important}
.brand-button{
  position:static!important;order:1!important;width:54px!important;min-width:54px!important;height:54px!important;padding:0!important;
  display:grid!important;place-items:center!important;border:0!important;border-radius:18px!important;background:transparent!important;
  box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}
.brand-mark{width:48px!important;height:48px!important;border-radius:16px!important;font-size:16px!important}
.brand-title{display:none!important}
.stage-modes{
  position:static!important;order:2!important;transform:none!important;width:56px!important;height:auto!important;margin:12px 0 0!important;padding:4px!important;
  display:flex!important;flex-direction:column!important;gap:4px!important;border:1px solid rgba(214,207,255,.1)!important;border-radius:18px!important;
  background:rgba(255,255,255,.022)!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}
.stage-mode{
  width:48px!important;min-width:0!important;height:46px!important;min-height:46px!important;padding:0 3px!important;border-radius:14px!important;
  font-size:9px!important;line-height:1.1!important;letter-spacing:0!important;white-space:normal!important;text-align:center!important;
}
.stage-mode.active{background:linear-gradient(145deg,#a98fff,#6e53ed)!important;box-shadow:0 10px 26px rgba(111,79,237,.34)!important}
.settings-button{
  position:static!important;order:3!important;margin-top:auto!important;width:54px!important;height:48px!important;padding:0!important;
  display:grid!important;place-items:center!important;border:1px solid var(--orbit-line)!important;border-radius:15px!important;
  background:var(--orbit-soft)!important;color:#c9c1dc!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  font-size:0!important;
}
.settings-button::before{content:"⚙";font-size:17px}
.menu-collapse{
  position:static!important;order:4!important;width:54px!important;height:38px!important;display:grid!important;place-items:center!important;
  border:0!important;border-radius:13px!important;background:transparent!important;color:#716b82!important;transform:rotate(-90deg)!important;
}
.account-button{
  position:fixed!important;top:auto!important;right:32px!important;bottom:32px!important;width:232px!important;min-width:232px!important;max-width:232px!important;height:62px!important;padding:0 16px!important;
  display:flex!important;justify-content:space-between!important;border:1px solid var(--orbit-line)!important;border-radius:18px!important;
  background:rgba(15,17,32,.78)!important;box-shadow:none!important;backdrop-filter:blur(24px)!important;-webkit-backdrop-filter:blur(24px)!important;
}
.account-button span{color:#7d778d!important;font-size:10px!important}.account-button strong{max-width:120px!important;overflow:hidden!important;text-overflow:ellipsis!important;color:var(--orbit-ink)!important}

/* Dedicated live context column; functional controls float inside its grid. */
.field-context{
  position:fixed;top:16px;right:16px;bottom:16px;z-index:12;width:264px;padding:22px 16px;pointer-events:none;
  border:1px solid var(--orbit-line);border-radius:24px;background:linear-gradient(180deg,rgba(14,16,31,.72),rgba(7,9,18,.76));
  box-shadow:0 28px 90px rgba(0,0,0,.4),inset 0 1px rgba(255,255,255,.035);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);
}
.field-context-head{display:grid;gap:5px;padding:1px 1px 18px;border-bottom:1px solid rgba(214,207,255,.09)}
.field-context-head span,.field-context-foot{color:#7a718e;font:700 8px/1.2 Consolas,monospace;letter-spacing:.18em}.field-context-head strong{font-size:17px;letter-spacing:-.02em}
.field-context-rule{position:absolute;left:16px;right:16px;top:392px;display:flex;align-items:center;gap:9px;color:#777184;font-size:10px}.field-context-rule i{width:7px;height:7px;border-radius:50%;background:var(--orbit-mint);box-shadow:0 0 16px rgba(99,225,196,.7)}
.field-context-copy{position:absolute;left:16px;right:16px;top:424px;color:#706a7e;font-size:11px;line-height:1.7}
.field-context-foot{position:absolute;left:16px;right:16px;bottom:91px;display:flex;justify-content:space-between}.field-context-foot b{color:#aaa1be;font-weight:700}
.entity-summary{
  position:fixed!important;top:102px!important;right:32px!important;width:232px!important;min-height:104px!important;margin:0!important;padding:10px!important;
  display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:6px!important;border:1px solid rgba(214,207,255,.1)!important;border-radius:18px!important;
  background:rgba(255,255,255,.025)!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}
.entity-summary span{padding:12px 3px!important;background:rgba(255,255,255,.025)!important}.entity-summary strong{margin-top:9px!important;font-size:22px!important}
.focus-control,.match-badge,.context-controls>.top-button{
  position:fixed!important;left:auto!important;right:32px!important;transform:none!important;width:232px!important;height:50px!important;
  border:1px solid rgba(214,207,255,.1)!important;border-radius:16px!important;background:rgba(255,255,255,.025)!important;
  box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}
.focus-control{top:220px!important;padding:7px 10px!important}.focus-control select{min-width:0!important;width:100%!important}
.match-badge{top:282px!important}.top-button{top:344px!important}

/* One dominant canvas with a deliberately separate context rail. */
.map-workspace{position:fixed!important;inset:16px 296px 16px 108px!important;width:auto!important;height:auto!important;margin:0!important;z-index:4!important;padding:0!important;display:block!important;transition:left .24s ease!important}
.map-stage{position:absolute!important;inset:0!important;border-radius:24px!important;border:1px solid var(--orbit-line)!important;background:#070914!important;box-shadow:0 30px 100px rgba(0,0,0,.48)!important}
.map-stage::before{opacity:.12!important}.map-stage::after{content:none!important}
.map-stage .stage-viewport{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;background:#070914!important}
#view3d,#building3d,#jello-map{background:#070914!important}
.stage-hud{position:absolute!important;inset:0!important;z-index:8!important;pointer-events:none!important}.stage-hud>*{pointer-events:auto!important}
.dual-view-tools{
  top:18px!important;left:50%!important;width:min(430px,calc(100% - 40px))!important;padding:7px!important;border-radius:16px!important;
  background:rgba(9,11,24,.78)!important;border:1px solid var(--orbit-line)!important;box-shadow:0 16px 46px rgba(0,0,0,.32)!important;
}
.stage-viewport.mode-dual .pane-tag{top:76px!important;border-radius:12px!important;background:rgba(9,11,24,.72)!important}
.stage-viewport.mode-dual .pane-tag-primary{left:18px!important}.stage-viewport.mode-dual .pane-tag-secondary{left:calc(var(--dual-split) + 18px)!important}
.split-divider{background:rgba(11,13,26,.84)!important;border-color:rgba(184,167,255,.24)!important}
.map-tools,.building-tools{
  top:auto!important;left:18px!important;right:auto!important;bottom:18px!important;transform:none!important;max-width:calc(100% - 36px)!important;
  border-radius:17px!important;background:rgba(9,11,24,.78)!important;border:1px solid var(--orbit-line)!important;box-shadow:0 18px 50px rgba(0,0,0,.38)!important;
}
.stage-viewport.mode-dual.dual-map-primary .map-tools{top:auto!important;left:18px!important;right:calc(100% - var(--dual-split) + 18px)!important;bottom:18px!important}
.stage-viewport.mode-dual.dual-map-secondary .map-tools{top:auto!important;left:calc(var(--dual-split) + 18px)!important;right:18px!important;bottom:18px!important}
.stage-viewport.mode-dual.dual-building-primary .building-tools{top:auto!important;left:18px!important;right:calc(100% - var(--dual-split) + 18px)!important;bottom:18px!important;transform:none!important}
.stage-viewport.mode-dual.dual-building-secondary .building-tools{top:auto!important;left:calc(var(--dual-split) + 18px)!important;right:18px!important;bottom:18px!important;transform:none!important}
.map-readout{left:auto!important;right:18px!important;top:auto!important;bottom:18px!important;width:220px!important;min-height:72px!important;border-radius:17px!important}
.stage-viewport.mode-dual .map-readout{display:none!important}
.stage-state-pill{left:auto!important;right:18px!important;top:18px!important;bottom:auto!important;width:190px!important;min-height:42px!important;border-radius:14px!important}
.menu-restore{display:none!important;position:fixed!important;left:16px!important;top:16px!important;z-index:55!important;width:76px!important;height:54px!important;border-radius:18px!important;background:var(--orbit-rail)!important;border:1px solid var(--orbit-line)!important}
.menu-collapsed .glass-bar{transform:translateX(-116px)!important;opacity:0!important;pointer-events:none!important}.menu-collapsed .menu-restore{display:flex!important}.menu-collapsed .map-workspace{left:16px!important}
.settings-fab{display:none!important}

@media(max-width:1180px){
  .field-context{display:none}.map-workspace{right:16px!important}.account-button,.focus-control,.match-badge,.context-controls>.top-button{display:none!important}
  .entity-summary{top:auto!important;right:30px!important;bottom:30px!important;width:176px!important;min-height:74px!important;grid-template-columns:repeat(3,1fr)!important;background:rgba(9,11,24,.78)!important;backdrop-filter:blur(24px)!important}
  .entity-summary span{padding:5px 2px!important}.entity-summary strong{margin-top:4px!important;font-size:17px!important}
  .map-readout{right:18px!important;bottom:112px!important}
}
@media(max-width:760px){
  .map-workspace,.menu-collapsed .map-workspace{inset:8px 8px 82px!important}.map-stage{border-radius:20px!important}
  .glass-bar,.menu-collapsed .glass-bar{top:auto!important;left:8px!important;right:8px!important;bottom:8px!important;width:auto!important;height:64px!important;padding:7px 8px!important;transform:none!important;opacity:1!important;display:flex!important;flex-direction:row!important;justify-content:flex-start!important;border-radius:19px!important}
  .brand-button{width:46px!important;min-width:46px!important;height:46px!important}.brand-mark{width:42px!important;height:42px!important;border-radius:14px!important}
  .stage-modes{width:auto!important;height:48px!important;margin:0!important;flex:1!important;flex-direction:row!important;overflow-x:auto!important;border-radius:15px!important}.stage-mode{flex:1 0 48px!important;width:auto!important;height:40px!important;min-height:40px!important}
  .settings-button{margin:0!important;width:46px!important;height:46px!important}.menu-collapse,.menu-restore{display:none!important}.entity-summary{right:18px!important;bottom:96px!important;width:64px!important;min-height:56px!important;grid-template-columns:1fr!important;padding:5px!important}.entity-summary span:not(.entity-summary-total){display:none!important}.entity-summary span{padding:3px!important}.entity-summary strong{font-size:16px!important}
  .settings-fab{display:flex!important;right:92px!important;bottom:96px!important}.stage-state-pill,.map-readout{display:none!important}
  .map-tools,.building-tools{left:12px!important;right:84px!important;bottom:12px!important;max-width:none!important;overflow-x:auto!important}.dual-view-tools{top:12px!important;width:calc(100% - 24px)!important}
  .stage-viewport.mode-dual.dual-map-primary .map-tools,.stage-viewport.mode-dual.dual-building-primary .building-tools{left:12px!important;right:calc(100% - var(--dual-split) + 12px)!important;bottom:12px!important}
  .stage-viewport.mode-dual.dual-map-secondary .map-tools,.stage-viewport.mode-dual.dual-building-secondary .building-tools{left:calc(var(--dual-split) + 12px)!important;right:12px!important;bottom:12px!important}
  .settings-drawer,.room-drawer{top:8px!important;right:8px!important;bottom:82px!important;width:calc(100vw - 16px)!important}
}
@media(max-width:760px){
  .settings-fab,.entity-summary{display:none!important}
  .map-tools,.building-tools{scrollbar-width:none!important}
  .map-tools::-webkit-scrollbar,.building-tools::-webkit-scrollbar{display:none!important}
}
@media(max-width:760px) and (orientation:portrait){
  .stage-viewport.mode-dual.dual-map-primary .map-tools,
  .stage-viewport.mode-dual.dual-building-primary .building-tools{top:auto!important;left:12px!important;right:12px!important;bottom:calc(100% - var(--dual-split) + 12px)!important;max-width:none!important}
  .stage-viewport.mode-dual.dual-map-secondary .map-tools,
  .stage-viewport.mode-dual.dual-building-secondary .building-tools{top:auto!important;left:12px!important;right:12px!important;bottom:12px!important;max-width:none!important}
}
@media(max-width:520px){.stage-mode{font-size:8px!important}.stage-mode:last-child{display:none!important}.settings-fab{right:82px!important}.map-tools select{min-width:134px!important}}

/* ===== Jello Bottom Console — approved 2026-08-24 layout ===== */
:root,:root[data-theme="day"],:root[data-theme="night"]{
  --console-gap:12px;
  --console-top:78px;
  --console-context:244px;
  --console-panel:rgba(12,14,28,.9);
  --console-surface:rgba(255,255,255,.042);
  --console-surface-strong:rgba(22,24,43,.9);
  --console-line:rgba(214,207,255,.13);
  --console-muted:#918ba2;
  --console-text:#f7f5ff;
  --console-accent:#9d83ff;
  --console-cyan:#6fd8e7;
}

.aligned-icon{
  width:32px!important;height:32px!important;min-width:32px!important;display:inline-grid!important;place-items:center!important;
  flex:0 0 32px!important;border-radius:10px!important;line-height:0!important;vertical-align:middle!important;
}
.aligned-icon svg{width:17px!important;height:17px!important;display:block!important;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important}

/* Horizontal command bar: every action shares one visual baseline. */
.glass-bar{
  position:fixed!important;inset:14px calc(var(--console-context) + 28px) auto 14px!important;z-index:48!important;
  width:auto!important;height:52px!important;min-height:52px!important;margin:0!important;padding:6px 8px!important;
  display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important;
  border:1px solid var(--console-line)!important;border-radius:17px!important;background:rgba(10,11,22,.84)!important;
  box-shadow:0 18px 54px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.04)!important;
  backdrop-filter:blur(28px) saturate(125%)!important;-webkit-backdrop-filter:blur(28px) saturate(125%)!important;
}
.brand-button{
  position:static!important;order:1!important;width:auto!important;min-width:132px!important;height:40px!important;padding:0 12px 0 3px!important;
  display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:9px!important;border:0!important;border-radius:12px!important;background:transparent!important;
}
.brand-mark{width:34px!important;height:34px!important;border-radius:11px!important;font-size:14px!important}.brand-title{display:inline!important;font-size:14px!important}
.stage-modes{
  position:static!important;order:2!important;transform:none!important;width:auto!important;height:40px!important;margin:0 auto!important;padding:4px!important;
  display:flex!important;flex-direction:row!important;align-items:center!important;gap:3px!important;border:1px solid var(--console-line)!important;border-radius:12px!important;
  background:var(--console-surface)!important;box-shadow:none!important;
}
.stage-mode{
  width:auto!important;min-width:62px!important;height:30px!important;min-height:30px!important;padding:0 12px!important;border-radius:9px!important;
  font-size:10px!important;line-height:1!important;letter-spacing:0!important;white-space:nowrap!important;text-align:center!important;
}
.stage-mode.active{background:rgba(157,131,255,.19)!important;color:#d9d0ff!important;box-shadow:inset 0 0 0 1px rgba(180,159,255,.18)!important}
.settings-button{
  position:static!important;order:3!important;margin:0!important;width:auto!important;height:40px!important;padding:0 10px 0 4px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;gap:4px!important;border:1px solid var(--console-line)!important;border-radius:12px!important;
  background:var(--console-surface)!important;color:#c9c1dc!important;font-size:11px!important;box-shadow:none!important;
}
.settings-button::before{content:none!important}.settings-button .aligned-icon{width:28px!important;height:28px!important;min-width:28px!important;flex-basis:28px!important}
.menu-collapse{
  position:static!important;order:4!important;width:36px!important;height:36px!important;min-width:36px!important;padding:0!important;margin:0!important;
  display:grid!important;place-items:center!important;border:0!important;border-radius:11px!important;background:transparent!important;color:#716b82!important;transform:none!important;
  font-size:15px!important;line-height:1!important;
}
.menu-collapsed .glass-bar{transform:translateY(-90px)!important;opacity:0!important;pointer-events:none!important}.menu-collapsed .menu-restore{display:flex!important}.menu-collapsed .map-workspace{top:14px!important}
.menu-restore{left:14px!important;top:14px!important;width:78px!important;height:52px!important;border-radius:17px!important}

/* The canvas and context are now true grid regions, not stacked fixed coordinates. */
.map-workspace{
  position:fixed!important;inset:var(--console-top) calc(var(--console-context) + 28px) 14px 14px!important;width:auto!important;height:auto!important;margin:0!important;
  z-index:4!important;padding:0!important;display:block!important;transition:top .24s ease!important;
}
.map-stage{border-radius:19px!important}.map-stage .stage-viewport{border-radius:inherit!important;overflow:hidden!important}
.context-controls{display:contents!important}.context-controls>*{z-index:16!important}
.focus-control,.match-badge{
  position:fixed!important;top:88px!important;width:auto!important;min-width:178px!important;height:42px!important;margin:0!important;
  border:1px solid var(--console-line)!important;border-radius:12px!important;background:rgba(12,14,28,.8)!important;
  box-shadow:0 12px 36px rgba(0,0,0,.28)!important;backdrop-filter:blur(22px)!important;-webkit-backdrop-filter:blur(22px)!important;
}
.focus-control{left:28px!important;right:auto!important;padding:5px 9px!important}.focus-control select{min-width:150px!important;max-width:220px!important}
.match-badge{left:50%!important;right:auto!important;transform:translateX(-50%)!important}

.field-context{
  position:fixed!important;inset:14px 14px 14px auto!important;z-index:12!important;width:var(--console-context)!important;height:auto!important;padding:0!important;
  display:flex!important;flex-direction:column!important;gap:10px!important;pointer-events:auto!important;
  border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}
.field-context-spacer{flex:1 1 auto!important;min-height:8px!important}
.field-context-head,.field-context-rule,.field-context-copy,.field-context-foot{display:none!important}
.entity-summary{
  position:static!important;inset:auto!important;width:100%!important;min-width:0!important;min-height:82px!important;height:82px!important;margin:0!important;padding:0!important;
  display:grid!important;grid-template-columns:1fr 1fr!important;gap:0!important;overflow:hidden!important;
  border:1px solid var(--console-line)!important;border-radius:15px!important;background:rgba(13,15,30,.82)!important;
  box-shadow:0 16px 44px rgba(0,0,0,.26)!important;backdrop-filter:blur(24px)!important;-webkit-backdrop-filter:blur(24px)!important;
}
.entity-summary span{
  min-width:0!important;padding:0!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:4px!important;
  border:0!important;border-radius:0!important;background:transparent!important;color:var(--console-muted)!important;
}
.entity-summary span+span{border-left:1px solid var(--console-line)!important}.entity-summary small{font-size:10px!important;color:var(--console-muted)!important}
.entity-summary strong{margin:0!important;font-size:22px!important;line-height:1!important;color:var(--console-cyan)!important}.entity-summary span:nth-child(2) strong{color:var(--console-accent)!important}
.entity-summary .entity-summary-total{display:none!important}

.context-room,.account-button{
  position:static!important;inset:auto!important;width:100%!important;min-width:0!important;max-width:none!important;margin:0!important;
  border:1px solid var(--console-line)!important;border-radius:14px!important;background:rgba(13,15,30,.82)!important;color:var(--console-text)!important;
  box-shadow:0 14px 40px rgba(0,0,0,.22)!important;backdrop-filter:blur(24px)!important;-webkit-backdrop-filter:blur(24px)!important;
}
.context-room{
  height:62px!important;min-height:62px!important;padding:0 11px!important;display:grid!important;grid-template-columns:34px minmax(0,1fr) auto!important;align-items:center!important;gap:9px!important;text-align:left!important;
}
.context-room[hidden]{display:none!important}.context-room .aligned-icon{width:32px!important;height:32px!important;min-width:32px!important;color:#bcaeff!important;background:rgba(157,131,255,.12)!important}
.field-context:has(.context-room:not([hidden])) .context-room-placeholder{display:none!important}.context-room-placeholder{cursor:default!important;opacity:.72!important}
.context-room-copy{min-width:0!important;display:grid!important;gap:3px!important}.context-room-copy strong{font-size:12px!important;font-weight:700!important;color:var(--console-text)!important}.context-room-copy small{overflow:hidden!important;color:var(--console-muted)!important;font-size:9px!important;white-space:nowrap!important;text-overflow:ellipsis!important}
.context-room-state{padding:5px 7px!important;border-radius:7px!important;background:rgba(157,131,255,.13)!important;color:#cfc3ff!important;font-size:9px!important}
.account-button{
  height:54px!important;min-height:54px!important;padding:0 12px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;
}
.account-button>span{min-width:0!important;display:flex!important;align-items:center!important;gap:9px!important;color:var(--console-muted)!important;font-size:10px!important}
.account-button>span::before{
  content:""!important;width:30px!important;height:30px!important;min-width:30px!important;border-radius:9px!important;
  background:radial-gradient(circle at 50% 34%,#b8aecb 0 12%,transparent 14%),radial-gradient(ellipse at 50% 105%,#b8aecb 0 29%,transparent 31%),rgba(255,255,255,.045)!important;
}
.account-button strong{max-width:122px!important;overflow:hidden!important;color:var(--console-text)!important;font-size:11px!important;text-overflow:ellipsis!important;white-space:nowrap!important}

/* Settings is a wide bottom sheet attached to the canvas. */
.drawer-backdrop{
  position:fixed!important;inset:var(--console-top) calc(var(--console-context) + 28px) 14px 14px!important;z-index:70!important;border-radius:19px!important;
  background:rgba(2,3,10,.2)!important;backdrop-filter:blur(2px)!important;-webkit-backdrop-filter:blur(2px)!important;
}
.settings-drawer{
  position:fixed!important;inset:auto calc(var(--console-context) + 40px) 26px 26px!important;z-index:72!important;
  width:auto!important;max-width:none!important;height:min(420px,calc(100vh - 126px))!important;min-height:300px!important;margin:0!important;padding:14px!important;
  display:grid!important;grid-template-columns:190px minmax(340px,1fr) 250px!important;grid-template-rows:44px 38px minmax(0,1fr)!important;gap:9px 12px!important;overflow:hidden!important;
  border:1px solid rgba(211,200,255,.18)!important;border-radius:19px!important;background:rgba(10,12,27,.94)!important;
  box-shadow:0 -22px 74px rgba(0,0,0,.48)!important;backdrop-filter:blur(34px) saturate(125%)!important;-webkit-backdrop-filter:blur(34px) saturate(125%)!important;
  transform:translateY(calc(100% + 48px))!important;opacity:0!important;transition:transform .22s ease,opacity .18s ease!important;
}
.settings-drawer.open{transform:translateY(0)!important;opacity:1!important}
.drawer-head{
  position:static!important;grid-column:1!important;grid-row:1!important;min-width:0!important;min-height:44px!important;height:44px!important;margin:0!important;padding:0!important;
  display:flex!important;align-items:center!important;justify-content:space-between!important;gap:7px!important;border:0!important;background:transparent!important;
}
.drawer-title-icon{min-width:0!important;display:flex!important;align-items:center!important;gap:8px!important}.drawer-title-icon>.aligned-icon{color:#cfc3ff!important;background:rgba(157,131,255,.13)!important}
.drawer-head small{margin:0!important;color:var(--console-muted)!important;font-size:7px!important;line-height:1!important}.drawer-head h2{margin:3px 0 0!important;font-size:16px!important;line-height:1!important;letter-spacing:0!important}
.drawer-head .icon-button{
  position:absolute!important;top:14px!important;right:14px!important;z-index:3!important;width:34px!important;height:34px!important;min-width:34px!important;padding:0!important;display:grid!important;place-items:center!important;
  border:1px solid var(--console-line)!important;border-radius:10px!important;background:var(--console-surface)!important;color:var(--console-muted)!important;font-size:0!important;
}
.drawer-head .icon-button .aligned-icon{width:30px!important;height:30px!important;min-width:30px!important;flex-basis:30px!important}
.settings-drawer .control-tabs{
  grid-column:2!important;grid-row:1!important;width:100%!important;height:40px!important;margin:2px 0!important;padding:4px!important;display:grid!important;grid-template-columns:repeat(4,1fr)!important;
  border:1px solid var(--console-line)!important;border-radius:11px!important;background:var(--console-surface)!important;overflow:hidden!important;
}
.settings-drawer .control-tab{min-height:30px!important;height:30px!important;padding:0 12px!important;border:0!important;border-radius:8px!important;font-size:10px!important}.settings-drawer .control-tab.active{background:rgba(157,131,255,.17)!important;color:#d9d0ff!important}
.settings-drawer .preference-bar{
  grid-column:3!important;grid-row:1!important;width:calc(100% - 42px)!important;height:44px!important;min-height:44px!important;margin:0 42px 0 0!important;padding:0 8px!important;
  border:1px solid var(--console-line)!important;border-radius:11px!important;background:var(--console-surface)!important;
}
.settings-drawer .preference-copy small{max-width:112px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.settings-drawer .parameter-save{min-width:62px!important;height:28px!important;padding:0 7px!important;font-size:8px!important}
.settings-drawer .theme-switch{grid-column:1!important;grid-row:2!important;width:100%!important;height:38px!important;margin:0!important;display:grid!important;grid-template-columns:repeat(3,1fr)!important}
.settings-drawer .theme-choice{height:36px!important;min-height:36px!important;padding:0 6px!important;font-size:9px!important}
.settings-drawer .drawer-greeting{
  grid-column:2!important;grid-row:2!important;min-width:0!important;height:38px!important;padding:0 12px!important;display:flex!important;align-items:center!important;
  border:1px solid var(--console-line)!important;border-radius:11px!important;background:var(--console-surface)!important;color:var(--console-muted)!important;font-size:10px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
.settings-drawer .drawer-status{
  grid-column:3!important;grid-row:2!important;width:100%!important;height:38px!important;min-height:38px!important;margin:0!important;padding:0!important;
  display:grid!important;grid-template-columns:1fr 1fr!important;gap:1px!important;border:1px solid var(--console-line)!important;border-radius:11px!important;background:var(--console-line)!important;overflow:hidden!important;
}
.settings-drawer .drawer-status>span{min-height:0!important;height:18px!important;padding:0 6px!important;background:rgba(18,20,37,.96)!important;font-size:7px!important;white-space:nowrap!important}.settings-drawer .drawer-status>span:nth-child(n+3){height:18px!important}
.settings-drawer .drawer-scroll,.settings-drawer .drawer-scroll.calibration-active{
  grid-column:1/-1!important;grid-row:3!important;min-width:0!important;min-height:0!important;height:auto!important;margin:0!important;padding:0 4px 5px 0!important;
  display:block!important;overflow:auto!important;overscroll-behavior:contain!important;scrollbar-gutter:stable!important;
}
.settings-drawer .drawer-scroll>.card-head{display:none!important}
.settings-drawer #layers-pane.control-pane.active{
  display:grid!important;grid-template-columns:repeat(4,minmax(150px,1fr))!important;gap:9px!important;align-content:start!important;min-height:0!important;
}
.settings-drawer #toggle-grid{
  grid-column:1/-1!important;width:100%!important;max-height:78px!important;min-height:45px!important;margin:0!important;padding:5px!important;
  display:grid!important;grid-template-columns:repeat(auto-fit,minmax(112px,1fr))!important;gap:5px!important;overflow:auto!important;
  border:1px solid var(--console-line)!important;border-radius:12px!important;background:rgba(255,255,255,.018)!important;
}
.settings-drawer .toggle{min-height:30px!important;height:30px!important;padding:4px 7px!important;border:1px solid var(--console-line)!important;border-radius:8px!important;background:var(--console-surface)!important;font-size:9px!important}.settings-drawer .toggle input{width:14px!important;height:14px!important;min-width:14px!important}
.settings-drawer #layers-pane>.range-row{
  min-width:0!important;min-height:64px!important;margin:0!important;padding:10px!important;border:1px solid var(--console-line)!important;border-radius:11px!important;background:var(--console-surface)!important;
}
.settings-drawer #layers-pane>.range-row label{margin:0 0 8px!important;font-size:9px!important}.settings-drawer #layers-pane>.range-row strong{color:#cfc3ff!important;font-size:9px!important}
.settings-drawer .team-color-row input[type="color"]{height:22px!important;border-radius:6px!important}
.settings-drawer .toggle-section-title{grid-column:1/-1!important;margin:2px 0 0!important;padding:7px 9px!important;border:1px solid var(--console-line)!important;border-radius:9px!important;background:rgba(157,131,255,.06)!important;font-size:9px!important}
.settings-drawer #building-pane.control-pane.active,.settings-drawer #calibration-pane.control-pane.active,.settings-drawer #debug-pane.control-pane.active{display:block!important;min-height:0!important}
.settings-drawer .calibration-intro{margin:0 0 8px!important;padding:9px 10px!important;border:1px solid var(--console-line)!important;border-radius:11px!important;background:var(--console-surface)!important}
.settings-drawer .calibration-scroll{
  width:100%!important;height:auto!important;max-height:none!important;padding:0!important;display:grid!important;grid-template-columns:repeat(4,minmax(170px,1fr))!important;gap:9px!important;overflow:visible!important;
}
.settings-drawer .calibration-group{grid-column:1/-1!important;margin:2px 0 0!important;padding:7px 9px!important;border:1px solid var(--console-line)!important;border-radius:9px!important;background:rgba(157,131,255,.06)!important}
.settings-drawer .calibration-scroll .range-row,.settings-drawer .building-camera-row{
  min-width:0!important;margin:0!important;padding:9px!important;border:1px solid var(--console-line)!important;border-radius:10px!important;background:var(--console-surface)!important;
}
.settings-drawer .building-camera-mode-settings,.settings-drawer .building-camera-hint,.settings-drawer .building-offline-import{grid-column:1/-1!important}
.settings-fab .aligned-icon{width:28px!important;height:28px!important;min-width:28px!important;flex-basis:28px!important}

@media(max-width:1180px){
  :root,:root[data-theme="day"],:root[data-theme="night"]{--console-top:78px}
  .glass-bar{right:14px!important}.map-workspace{right:14px!important;bottom:96px!important}
  .field-context{
    inset:auto 14px 14px 14px!important;width:auto!important;height:70px!important;display:grid!important;grid-template-columns:minmax(180px,1.15fr) minmax(190px,1fr) minmax(170px,.85fr)!important;gap:8px!important;
  }
  .field-context-spacer{display:none!important}.entity-summary{height:70px!important;min-height:70px!important}.context-room,.account-button{height:70px!important;min-height:70px!important}
  .drawer-backdrop{right:14px!important;bottom:96px!important}.settings-drawer{right:26px!important;bottom:108px!important;grid-template-columns:170px minmax(300px,1fr) 220px!important}
}

@media(max-width:760px){
  .glass-bar,.menu-collapsed .glass-bar{
    inset:auto 8px 8px 8px!important;width:auto!important;height:62px!important;padding:6px!important;transform:none!important;opacity:1!important;display:flex!important;
  }
  .brand-button{min-width:40px!important;width:40px!important;padding:0!important}.brand-title{display:none!important}.brand-mark{width:36px!important;height:36px!important}
  .stage-modes{height:48px!important;min-width:0!important;flex:1 1 auto!important;overflow-x:auto!important}.stage-mode{min-width:48px!important;height:38px!important;min-height:38px!important;padding:0 7px!important}
  .settings-button{width:42px!important;min-width:42px!important;padding:0!important;font-size:0!important}.settings-button .aligned-icon{width:34px!important;height:34px!important}
  .menu-collapse,.menu-restore{display:none!important}.map-workspace,.menu-collapsed .map-workspace{inset:8px 8px 150px!important}
  .field-context{inset:auto 8px 78px 8px!important;height:64px!important;grid-template-columns:1fr 1fr 1fr!important}.entity-summary,.context-room,.account-button{height:64px!important;min-height:64px!important}
  .context-room-copy small,.context-room-state{display:none!important}.context-room{grid-template-columns:32px 1fr!important}.account-button{padding:0 8px!important}.account-button>span::before{display:none!important}.account-button strong{max-width:80px!important}
  .focus-control,.match-badge{display:none!important}.drawer-backdrop{inset:8px 8px 78px!important}.settings-drawer{
    inset:auto 8px 82px 8px!important;width:auto!important;height:min(620px,calc(100vh - 98px))!important;min-height:360px!important;padding:11px!important;
    grid-template-columns:1fr auto!important;grid-template-rows:42px 40px 38px minmax(0,1fr)!important;gap:7px!important;border-radius:17px!important;
  }
  .drawer-head{grid-column:1/-1!important;grid-row:1!important}.settings-drawer .control-tabs{grid-column:1/-1!important;grid-row:2!important}.settings-drawer .theme-switch{grid-column:1!important;grid-row:3!important}.settings-drawer .drawer-greeting{display:none!important}.settings-drawer .preference-bar{display:none!important}.settings-drawer .drawer-status{grid-column:2!important;grid-row:3!important;width:150px!important}.settings-drawer .drawer-scroll,.settings-drawer .drawer-scroll.calibration-active{grid-column:1/-1!important;grid-row:4!important}
  .settings-drawer #layers-pane.control-pane.active{grid-template-columns:repeat(2,minmax(130px,1fr))!important}.settings-drawer .calibration-scroll{grid-template-columns:repeat(2,minmax(150px,1fr))!important}
}

@media(max-width:520px){
  .stage-mode:last-child{display:none!important}.field-context{grid-template-columns:1fr 1fr!important}.context-room{display:none!important}.settings-drawer #layers-pane.control-pane.active,.settings-drawer .calibration-scroll{grid-template-columns:1fr!important}
}

/* ===== Jello Field Console — exact light reference composition ===== */
:root,:root[data-theme="day"],:root[data-theme="night"]{
  color-scheme:light!important;
  --void:#ffffff!important;--base:#edf2f8!important;--canvas:#dfe7f0!important;
  --ink:#1e2737!important;--muted:#687386!important;--dim:#8d97a8!important;
  --panel:rgba(250,252,255,.94)!important;--panel-2:#f1f4fa!important;
  --line:rgba(97,112,137,.2)!important;--glass-line:rgba(97,112,137,.2)!important;
  --glass:rgba(255,255,255,.78)!important;--glass-strong:rgba(255,255,255,.94)!important;
  --hover:rgba(111,82,238,.07)!important;--cyan:#7357ef!important;--cyan-2:#5c83e8!important;
  --green:#199b7d!important;--amber:#bd7a24!important;--red:#d85569!important;
  --orbit-bg:#edf2f8!important;--orbit-rail:rgba(255,255,255,.94)!important;--orbit-panel:rgba(255,255,255,.88)!important;
  --orbit-line:rgba(97,112,137,.2)!important;--orbit-soft:rgba(111,82,238,.06)!important;
  --orbit-violet:#7357ef!important;--orbit-mint:#199b7d!important;--orbit-ink:#1e2737!important;--orbit-muted:#687386!important;
  --console-panel:rgba(250,252,255,.94)!important;--console-surface:rgba(237,242,248,.72)!important;
  --console-surface-strong:rgba(255,255,255,.96)!important;--console-line:rgba(97,112,137,.2)!important;
  --console-muted:#687386!important;--console-text:#1e2737!important;--console-accent:#7357ef!important;--console-cyan:#168aa6!important;
  font-family:"Microsoft YaHei UI","Segoe UI",system-ui,sans-serif!important;
}
html,body{background:#fff!important;color:var(--ink)!important}
body{overflow:hidden!important;background:#fff!important}
.shell.map-shell{
  position:fixed!important;inset:4px 30px 0 12px!important;display:block!important;overflow:hidden!important;
  border:1px solid #ccd5e1!important;border-bottom:0!important;border-radius:24px 24px 0 0!important;
  background:#edf2f8!important;box-shadow:0 18px 60px rgba(61,75,98,.12)!important;
}

/* Header */
.glass-bar,.menu-collapsed .glass-bar{
  position:fixed!important;inset:4px 30px auto 12px!important;z-index:48!important;width:auto!important;height:67px!important;min-height:67px!important;
  margin:0!important;padding:0 18px!important;display:flex!important;flex-direction:row!important;align-items:center!important;gap:10px!important;
  border:1px solid #ccd5e1!important;border-radius:24px 24px 0 0!important;background:rgba(255,255,255,.9)!important;
  overflow:visible!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;transform:none!important;opacity:1!important;
}
.brand-button{
  position:static!important;order:1!important;width:auto!important;min-width:150px!important;height:52px!important;margin:0!important;padding:0!important;
  display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important;border:0!important;background:transparent!important;
}
.brand-mark{
  width:36px!important;height:36px!important;min-width:36px!important;border-radius:11px!important;display:grid!important;place-items:center!important;
  background:linear-gradient(145deg,#8067f4,#6244e9)!important;color:#fff!important;font-size:14px!important;font-weight:800!important;
  box-shadow:0 9px 20px rgba(98,68,233,.22)!important;
}
.brand-copy{display:grid!important;gap:4px!important;text-align:left!important}.brand-title{display:block!important;color:#20283a!important;font-size:14px!important;font-weight:750!important;letter-spacing:.01em!important}.brand-copy small{color:#687386!important;font:600 8px/1.1 Consolas,monospace!important;letter-spacing:.05em!important}
.top-meta{order:5!important;margin-left:auto!important;display:flex!important;align-items:center!important;gap:12px!important}
.top-connection{height:36px!important;display:flex!important;align-items:center!important;gap:7px!important;color:#18896f!important;font-size:10px!important;font-weight:650!important;white-space:nowrap!important}
.top-connection .dot{width:8px!important;height:8px!important;margin:0!important}.top-connection .dot.live{background:#199b7d!important;box-shadow:0 0 0 4px rgba(25,155,125,.11)!important}.top-connection .dot.wait{background:#c18a41!important;box-shadow:0 0 0 4px rgba(193,138,65,.1)!important}
.top-account-chip{
  height:38px!important;min-width:86px!important;padding:0 10px 0 4px!important;display:flex!important;align-items:center!important;gap:6px!important;
  border:1px solid #d4dbe6!important;border-radius:12px!important;background:#f5f7fb!important;color:#242c3d!important;font-size:10px!important;
}
.top-account-chip .aligned-icon{width:30px!important;height:30px!important;min-width:30px!important;flex-basis:30px!important;border-radius:9px!important;background:#ebe8ff!important;color:#7357ef!important}
.menu-collapse,.menu-restore,.settings-fab{display:none!important}

/* Left view rail */
.stage-modes{
  position:fixed!important;inset:84px auto auto 25px!important;z-index:45!important;width:56px!important;height:calc(100vh - 168px)!important;margin:0!important;padding:9px 7px!important;
  display:flex!important;flex-direction:column!important;align-items:center!important;gap:7px!important;
  border:1px solid #d6dde7!important;border-radius:17px!important;background:rgba(255,255,255,.92)!important;box-shadow:none!important;
  overflow:visible!important;backdrop-filter:blur(20px)!important;-webkit-backdrop-filter:blur(20px)!important;
}
.stage-mode{
  width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;margin:0!important;padding:0!important;display:grid!important;place-items:center!important;
  flex:0 0 40px!important;border:1px solid transparent!important;border-radius:11px!important;background:transparent!important;color:#748094!important;font-size:0!important;box-shadow:none!important;
}
.stage-mode .aligned-icon{width:36px!important;height:36px!important;min-width:36px!important;flex-basis:36px!important;background:transparent!important}.stage-mode .aligned-icon svg{width:17px!important;height:17px!important}
.stage-mode>span:last-child{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important}
.stage-mode.active{border-color:#cfc4ff!important;background:#efecff!important;color:#7052ee!important;box-shadow:none!important}
.settings-button{
  position:fixed!important;top:auto!important;right:auto!important;left:34px!important;bottom:94px!important;z-index:49!important;width:38px!important;height:38px!important;margin:0!important;padding:0!important;
  display:grid!important;place-items:center!important;border:1px solid #cfc4ff!important;border-radius:11px!important;background:#efecff!important;color:#7052ee!important;font-size:0!important;box-shadow:none!important;
}
.settings-button .aligned-icon{width:34px!important;height:34px!important;min-width:34px!important;flex-basis:34px!important}.settings-button .aligned-icon svg{width:17px!important;height:17px!important}.settings-button>span:last-child{display:none!important}
#settings-button{width:38px!important;min-width:38px!important;max-width:38px!important;box-sizing:border-box!important}

/* Main field canvas */
.map-workspace,.menu-collapsed .map-workspace{
  position:fixed!important;inset:83px 42px 84px 93px!important;z-index:4!important;width:auto!important;height:auto!important;margin:0!important;padding:0!important;display:block!important;transition:none!important;
}
.map-stage{
  position:absolute!important;inset:0!important;border:1px solid #c7d0dd!important;border-radius:18px!important;overflow:hidden!important;
  background:#dde5ef!important;box-shadow:inset 0 1px rgba(255,255,255,.62)!important;
}
.map-stage::before{
  content:""!important;position:absolute!important;inset:0!important;z-index:2!important;opacity:1!important;pointer-events:none!important;
  background-image:radial-gradient(circle at 68% 42%,rgba(117,87,239,.16),transparent 31%),radial-gradient(circle at 26% 76%,rgba(61,148,173,.1),transparent 27%)!important;
  background-size:auto,auto!important;
}
.map-stage::after{
  content:""!important;position:absolute!important;left:50%!important;top:39.35%!important;z-index:4!important;width:84px!important;height:84px!important;
  border:1px solid rgba(115,87,239,.34)!important;border-radius:50%!important;pointer-events:none!important;transform:translate(-50%,-50%)!important;
  background:radial-gradient(circle,rgba(115,87,239,.95) 0 4px,rgba(115,87,239,.16) 5px 12px,transparent 13px)!important;
  box-sizing:border-box!important;clip-path:none!important;-webkit-clip-path:none!important;mask:none!important;-webkit-mask:none!important;
}
.map-stage .stage-viewport{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;min-height:0!important;border-radius:inherit!important;overflow:hidden!important;background:transparent!important}
#view3d,#building3d,#jello-map{background:transparent!important}.stage-canvas{z-index:1!important}.stage-hud{z-index:8!important}
.focus-control,.match-badge{
  top:96px!important;height:38px!important;border:1px solid #d5dce6!important;border-radius:11px!important;background:rgba(255,255,255,.88)!important;color:#687386!important;box-shadow:none!important;
}
.focus-control{left:111px!important}.match-badge{left:50%!important}

/* Map state on the left, compact zoom controls on the right. */
.map-tools{
  position:absolute!important;inset:18px 16px auto!important;width:auto!important;height:38px!important;margin:0!important;padding:0!important;display:block!important;
  min-height:0!important;overflow:visible!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;pointer-events:none!important;
}
.map-tools.hidden{display:none!important}.map-tools>*{position:absolute!important;top:0!important;pointer-events:auto!important}
.map-tools select{
  left:0!important;right:auto!important;width:132px!important;height:38px!important;min-height:38px!important;padding:0 12px!important;
  border:1px solid #d5dce6!important;border-radius:11px!important;background:rgba(255,255,255,.9)!important;color:#4c586c!important;font-size:10px!important;box-shadow:none!important;
}
.map-heading{display:none!important}.map-follow,.map-zoom-out,.map-zoom-in{
  width:36px!important;height:38px!important;min-height:38px!important;padding:0!important;display:grid!important;place-items:center!important;
  border:0!important;border-radius:0!important;background:rgba(255,255,255,.9)!important;color:#748094!important;font-size:0!important;box-shadow:none!important;
}
.map-zoom-out{right:72px!important;border:1px solid #d5dce6!important;border-right:0!important;border-radius:11px 0 0 11px!important;font-size:16px!important}.map-follow{right:36px!important;border-top:1px solid #d5dce6!important;border-bottom:1px solid #d5dce6!important}.map-zoom-in{right:0!important;border:1px solid #d5dce6!important;border-left:0!important;border-radius:0 11px 11px 0!important;font-size:16px!important}
.map-follow::before{content:""!important;width:14px!important;height:14px!important;border:1px solid #748094!important;border-radius:50%!important;background:radial-gradient(circle,#748094 0 2px,transparent 2.5px)!important;box-shadow:inset 0 0 0 3px rgba(255,255,255,.9)!important}
#map-profile-select{
  left:0!important;right:auto!important;width:116px!important;min-width:116px!important;max-width:116px!important;height:38px!important;padding:0 12px 0 33px!important;
  appearance:none!important;-webkit-appearance:none!important;background:rgba(255,255,255,.9)!important;box-sizing:border-box!important;
}
.map-tools::before{content:"◉"!important;position:absolute!important;left:13px!important;top:11px!important;z-index:3!important;color:#627086!important;font-size:12px!important;line-height:1!important;pointer-events:none!important}
#map-heading{display:none!important}
#map-zoom-out,#map-follow,#map-zoom-in{top:0!important;left:auto!important;width:36px!important;min-width:36px!important;max-width:36px!important;height:38px!important;min-height:38px!important;margin:0!important;padding:0!important;box-sizing:border-box!important}
#map-zoom-out{right:72px!important;border:1px solid #d5dce6!important;border-right:0!important;border-radius:11px 0 0 11px!important;background:rgba(255,255,255,.9)!important;color:#748094!important;font-size:16px!important}
#map-follow{right:36px!important;display:grid!important;place-items:center!important;border:1px solid #d5dce6!important;border-left:0!important;border-right:0!important;border-radius:0!important;background:rgba(255,255,255,.9)!important;color:#748094!important;font-size:0!important}
#map-follow::before{content:""!important;display:block!important;width:14px!important;height:14px!important;border:1px solid #748094!important;border-radius:50%!important;background:radial-gradient(circle,#748094 0 2px,transparent 2.5px)!important;box-shadow:inset 0 0 0 3px rgba(255,255,255,.9)!important}
#map-zoom-in{right:0!important;border:1px solid #d5dce6!important;border-left:0!important;border-radius:0 11px 11px 0!important;background:rgba(255,255,255,.9)!important;color:#748094!important;font-size:16px!important}
.stage-state-pill{display:none!important}.map-readout{display:none!important}
.building-tools{
  top:auto!important;left:17px!important;right:auto!important;bottom:17px!important;width:max-content!important;max-width:calc(100% - 34px)!important;height:42px!important;min-height:42px!important;margin:0!important;padding:4px!important;
  display:flex!important;align-items:center!important;gap:4px!important;border:1px solid #d5dce6!important;border-radius:12px!important;background:rgba(255,255,255,.9)!important;box-shadow:none!important;
}
.building-tools.hidden{display:none!important}.building-tools .map-tool,.building-tools>span{height:32px!important;min-height:32px!important;padding:0 10px!important;display:flex!important;align-items:center!important;justify-content:center!important;border:0!important;border-radius:8px!important;background:#f2f4f8!important;color:#687386!important;font-size:9px!important;line-height:1!important;white-space:nowrap!important}.building-tools .map-tool.active{background:#eeeaff!important;color:#6849e8!important}
.stage-viewport.mode-dual.dual-building-primary .building-tools,.stage-viewport.mode-dual.dual-building-secondary .building-tools{right:auto!important;width:max-content!important;max-width:calc(50% - 28px)!important;bottom:17px!important}.stage-viewport.mode-dual.dual-building-primary .building-tools{left:17px!important}.stage-viewport.mode-dual.dual-building-secondary .building-tools{left:calc(var(--dual-split) + 17px)!important}

/* Bottom summary row */
.field-context{
  position:fixed!important;inset:auto 42px 10px 93px!important;z-index:14!important;width:auto!important;height:61px!important;margin:0!important;padding:0!important;
  display:grid!important;grid-template-columns:1.15fr 1fr 1fr!important;gap:10px!important;pointer-events:auto!important;
  border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;
}
.field-context-spacer{display:none!important}
.entity-summary,.context-room,.account-button{
  position:static!important;inset:auto!important;width:100%!important;min-width:0!important;max-width:none!important;height:61px!important;min-height:61px!important;margin:0!important;padding:0!important;
  border:1px solid #d5dce6!important;border-radius:14px!important;background:rgba(255,255,255,.9)!important;color:#263044!important;box-shadow:none!important;backdrop-filter:blur(18px)!important;-webkit-backdrop-filter:blur(18px)!important;
}
.entity-summary{display:grid!important;grid-template-columns:1fr 1fr!important;gap:0!important;overflow:hidden!important}.entity-summary span{padding:0!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:5px!important;background:transparent!important}.entity-summary span+span{border-left:1px solid #d5dce6!important}.entity-summary strong{order:1!important;margin:0!important;color:#158ca7!important;font-size:18px!important;line-height:1!important}.entity-summary span:nth-child(2) strong{color:#7357ef!important}.entity-summary small{order:2!important;color:#687386!important;font:500 8px/1 Consolas,monospace!important}.entity-summary-total{display:none!important}
.field-context .entity-summary span:not(.entity-summary-total){display:flex!important}.field-context .entity-summary .entity-summary-total{display:none!important}
.context-room,.context-room-placeholder{
  padding:0 10px!important;display:grid!important;grid-template-columns:34px minmax(0,1fr) 55px!important;align-items:center!important;gap:8px!important;text-align:left!important;
}
.context-room[hidden]{display:none!important}.context-room .aligned-icon{width:32px!important;height:32px!important;min-width:32px!important;flex-basis:32px!important;border-radius:9px!important;background:#f0f2f7!important;color:#7a8798!important}.context-room-copy{display:grid!important;gap:4px!important}.context-room-copy strong{color:#263044!important;font-size:10px!important}.context-room-copy small{color:#7d8797!important;font-size:8px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.context-room-state{height:43px!important;padding:5px 8px!important;display:flex!important;align-items:center!important;justify-content:center!important;border-radius:10px!important;background:#eeeaff!important;color:#7254ed!important;font-size:12px!important;line-height:1.2!important;overflow-wrap:anywhere!important}
.account-button{padding:0 12px!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;text-align:left!important}.account-button>span{position:relative!important;min-width:0!important;padding-left:40px!important;display:grid!important;gap:4px!important;color:#263044!important;font-size:10px!important}.account-button>span::before{position:absolute!important;left:0!important;top:50%!important;transform:translateY(-50%)!important;width:32px!important;height:32px!important;min-width:32px!important;border-radius:9px!important;background:radial-gradient(circle at 50% 34%,#7a8798 0 11%,transparent 13%),radial-gradient(ellipse at 50% 106%,#7a8798 0 27%,transparent 29%),#f0f2f7!important}.account-button>span::after{content:"当前登录"!important;color:#7d8797!important;font-size:8px!important;font-weight:400!important}.account-button strong{max-width:100px!important;color:#20283a!important;font-size:10px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}

/* Bottom settings sheet */
.drawer-backdrop{position:fixed!important;inset:83px 42px 84px 93px!important;z-index:70!important;border-radius:18px!important;background:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.settings-drawer{
  position:fixed!important;inset:auto 58px 99px 109px!important;z-index:72!important;width:auto!important;max-width:none!important;height:257px!important;min-height:257px!important;margin:0!important;padding:14px 15px!important;
  display:grid!important;grid-template-columns:150px 300px minmax(0,1fr)!important;grid-template-rows:54px 1px minmax(0,1fr)!important;gap:0 12px!important;overflow:hidden!important;
  border:1px solid #cfc5fa!important;border-radius:18px!important;background:rgba(248,250,255,.94)!important;box-shadow:0 20px 60px rgba(63,72,105,.15)!important;
  backdrop-filter:blur(28px) saturate(115%)!important;-webkit-backdrop-filter:blur(28px) saturate(115%)!important;
  overflow:visible!important;transform:translateY(calc(100% + 118px))!important;opacity:0!important;transition:transform .22s ease,opacity .18s ease!important;
}
.settings-drawer.open{transform:translateY(0)!important;opacity:1!important}
.drawer-head{position:static!important;grid-column:1!important;grid-row:1!important;width:auto!important;height:54px!important;min-height:54px!important;margin:0!important;padding:0!important;display:flex!important;align-items:center!important;border:0!important;background:transparent!important}
.drawer-title-icon{display:flex!important;align-items:center!important;gap:3px!important}.drawer-title-icon>.aligned-icon{width:34px!important;height:34px!important;min-width:34px!important;flex-basis:34px!important;border-radius:10px!important;background:#e9e5ff!important;color:#7357ef!important}.drawer-title-icon small{display:none!important}.drawer-title-icon h2{margin:0!important;color:#20283a!important;font-size:13px!important;line-height:1!important}.drawer-title-icon h2::after{content:"从画布底部展开"!important;display:block!important;margin-top:6px!important;color:#7b8698!important;font-size:8px!important;font-weight:400!important;white-space:nowrap!important}
.drawer-head .icon-button{position:absolute!important;top:18px!important;right:-20px!important;width:38px!important;height:38px!important;min-width:38px!important;padding:0!important;border:1px solid #d5dce6!important;border-radius:11px!important;background:#f5f7fb!important;color:#7b8698!important}.drawer-head .icon-button .aligned-icon{width:34px!important;height:34px!important;min-width:34px!important;flex-basis:34px!important}
.settings-drawer .control-tabs{grid-column:2!important;grid-row:1!important;width:100%!important;height:42px!important;margin:6px 0!important;padding:4px!important;display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:3px!important;border:1px solid #d2d9e4!important;border-radius:11px!important;background:#f0f3f8!important;transform:translateX(2px)!important}
.settings-drawer .control-tab{height:32px!important;min-height:32px!important;padding:0 10px!important;border:0!important;border-radius:8px!important;background:transparent!important;color:#687386!important;font-size:9px!important}.settings-drawer .control-tab.active{background:#fff!important;color:#2c3547!important;box-shadow:0 2px 8px rgba(56,66,84,.07)!important}
.settings-drawer .preference-bar{grid-column:3!important;grid-row:1!important;width:100%!important;height:54px!important;min-height:54px!important;margin:0!important;padding:0 16px 0 0!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;border:0!important;background:transparent!important}.settings-drawer .preference-copy{display:none!important}.settings-drawer .parameter-save{width:auto!important;min-width:0!important;height:30px!important;padding:0!important;border:0!important;background:transparent!important;color:#159878!important;font-size:8px!important;opacity:1!important}.settings-drawer .parameter-save::before{content:"● "!important}
.settings-drawer::before{content:""!important;position:absolute!important;left:15px!important;right:15px!important;top:69px!important;height:1px!important;background:#d7dee8!important}
.settings-drawer .theme-switch,.settings-drawer .drawer-status,.settings-drawer .drawer-greeting{display:none!important}
.settings-drawer .drawer-scroll,.settings-drawer .drawer-scroll.calibration-active{grid-column:1/-1!important;grid-row:3!important;min-width:0!important;min-height:0!important;height:auto!important;margin:0!important;padding:15px 0 0!important;display:block!important;overflow-y:auto!important;overflow-x:hidden!important;scrollbar-width:none!important}.settings-drawer .drawer-scroll::-webkit-scrollbar{display:none!important}
.settings-drawer .drawer-scroll>.card-head{display:none!important}
.settings-drawer #layers-pane.control-pane.active{display:grid!important;width:100%!important;grid-template-columns:1fr 1fr!important;gap:10px!important;align-content:start!important;min-height:0!important;max-height:none!important;overflow:visible!important}
.settings-drawer #resources-pane.control-pane.active{display:block!important;width:100%!important;min-height:0!important}
.model-resource-grid{width:100%;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:10px}
.settings-drawer .model-resource-grid>.model-resource-card{grid-column:auto!important}
.model-resource-card{grid-column:auto!important;min-width:0;min-height:116px;margin:0!important;padding:13px!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:1fr auto!important;align-items:start!important;gap:10px!important;border:1px solid #d3dbe6!important;border-left:1px solid #d3dbe6!important;border-radius:12px!important;background:rgba(241,244,250,.76)!important;color:#263044!important}
.model-resource-card strong{display:block!important;color:#263044!important;font-size:11px!important;line-height:1.2!important}.model-resource-card span{display:block!important;margin-top:6px!important;color:#687386!important;font:500 9px/1.5 Arial,sans-serif!important}
.model-resource-card .map-tool{align-self:start!important;min-width:92px!important;height:34px!important;padding:0 12px!important;border:1px solid #d3dbe6!important;border-radius:9px!important;background:#fff!important;color:#6549df!important;font-size:9px!important;font-weight:700!important}
.building-resource-priority{grid-template-columns:1fr!important}.resource-priority-switch{grid-column:1/-1;width:100%;height:36px;padding:3px;display:grid;grid-template-columns:1fr 1fr;gap:3px;border:1px solid #d3dbe6;border-radius:10px;background:#e9edf4}.resource-priority-choice{min-width:0;border:0;border-radius:7px;background:transparent;color:#687386;font-size:9px;font-weight:700;cursor:pointer;transition:background-color .18s ease,color .18s ease,box-shadow .18s ease}.resource-priority-choice.active{background:#fff;color:#6849e8;box-shadow:0 2px 8px rgba(56,66,84,.08)}
.building-resource-priority .resource-priority-switch{grid-template-columns:1fr}.building-resource-priority .resource-priority-choice{display:grid;place-items:center;cursor:default}
.settings-drawer #layers-pane>*{order:20}.settings-drawer #layers-pane>.range-row{min-width:0!important;min-height:63px!important;margin:0!important;padding:10px 12px!important;border:1px solid #d3dbe6!important;border-radius:11px!important;background:rgba(241,244,250,.76)!important}.settings-drawer #layers-pane>.range-row label{margin:0 0 10px!important;color:#687386!important;font-size:8px!important}.settings-drawer #layers-pane>.range-row strong{color:#263044!important;font-size:8px!important}
.settings-drawer #layers-pane>.range-row:has(#distance-range){order:1}.settings-drawer #layers-pane>.range-row:has(#warning-distance-range){order:2}.settings-drawer #layers-pane>.range-row:has(#marker-size-range){order:3}.settings-drawer #layers-pane>.range-row:has(#own-team-color){order:4}
.settings-drawer #layers-pane>.range-row:has(#distance-range),.settings-drawer #layers-pane>.range-row:has(#warning-distance-range),.settings-drawer #layers-pane>.range-row:has(#marker-size-range),.settings-drawer #layers-pane>.range-row:has(#own-team-color){position:relative!important}
.settings-drawer #layers-pane>.range-row:has(#marker-size-range),.settings-drawer #layers-pane>.range-row:has(#own-team-color){min-height:83px!important}
.settings-drawer #layers-pane>.range-row:has(#distance-range) input[type="range"],.settings-drawer #layers-pane>.range-row:has(#warning-distance-range) input[type="range"]{position:absolute!important;left:12px!important;right:12px!important;bottom:12px!important;width:auto!important}
.settings-drawer #layers-pane>.range-row:has(#marker-size-range) input[type="range"]{position:absolute!important;left:12px!important;right:12px!important;bottom:10px!important;width:auto!important}
.settings-drawer #layers-pane>.range-row:has(#own-team-color) input[type="color"]{position:absolute!important;left:12px!important;right:12px!important;bottom:10px!important;width:auto!important;height:25px!important}
.settings-drawer #layers-pane>.range-row:has(#own-team-color)::after{content:""!important;position:absolute!important;left:12px!important;right:12px!important;bottom:10px!important;height:25px!important;border-radius:7px!important;background:linear-gradient(90deg,#4b86e8,#61cedc)!important;pointer-events:none!important}
.settings-drawer #toggle-grid{order:10!important;grid-column:1/-1!important;max-height:82px!important;margin:0!important;padding:6px!important;border:1px solid #d3dbe6!important;border-radius:11px!important;background:rgba(241,244,250,.76)!important;grid-template-columns:repeat(auto-fit,minmax(100px,1fr))!important}
.settings-drawer #layers-pane>.range-row:not(:has(#distance-range)):not(:has(#warning-distance-range)):not(:has(#marker-size-range)):not(:has(#own-team-color)),.settings-drawer .toggle-section-title{order:20!important}.settings-drawer .toggle-section-title{grid-column:1/-1!important}
.settings-drawer input[type="range"]{width:100%!important;height:4px!important;margin:0!important;accent-color:#7357ef!important}.settings-drawer input[type="color"]{width:100%!important;height:24px!important;padding:0!important;border:0!important;border-radius:7px!important;background:linear-gradient(90deg,#4b86e8,#61cedc)!important}.settings-drawer input[type="color"]::-webkit-color-swatch-wrapper{padding:0!important}.settings-drawer input[type="color"]::-webkit-color-swatch{border:0!important;border-radius:7px!important;background:linear-gradient(90deg,#4b86e8,#61cedc)!important}
.settings-drawer #building-pane.control-pane.active,.settings-drawer #calibration-pane.control-pane.active,.settings-drawer #debug-pane.control-pane.active{display:block!important}.settings-drawer .calibration-scroll{grid-template-columns:repeat(3,minmax(160px,1fr))!important}

/* Dual-view controls must never stretch into large empty rounded rectangles. */
.stage-viewport.mode-dual.dual-map-primary .map-tools,.stage-viewport.mode-dual.dual-map-secondary .map-tools{inset:17px 17px auto!important;width:auto!important;height:38px!important}.dual-view-tools{top:17px!important;width:min(420px,calc(100% - 220px))!important;border-color:#d5dce6!important;background:rgba(255,255,255,.9)!important;color:#4f5b6e!important;box-shadow:none!important}.dual-view-tools select{background:#f4f6fa!important;color:#4f5b6e!important;border-color:#d5dce6!important}.split-divider{background:rgba(255,255,255,.78)!important;border-color:#c7d0dd!important}

@media(max-width:620px){
  .shell.map-shell{inset:3px 5px 0!important;border-radius:18px 18px 0 0!important}.glass-bar,.menu-collapsed .glass-bar{inset:3px 5px auto!important;height:62px!important;padding:0 10px!important;border-radius:18px 18px 0 0!important}.brand-button{min-width:112px!important}.brand-copy small{display:none!important}.top-connection{display:none!important}.top-account-chip{min-width:72px!important}
  .stage-modes{left:14px!important;top:75px!important;right:auto!important;bottom:auto!important;width:50px!important;height:calc(100vh - 152px)!important;padding:7px 5px!important;overflow:visible!important}.stage-mode{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;flex:0 0 38px!important}.settings-button{top:auto!important;right:auto!important;left:20px!important;bottom:87px!important}
  .map-workspace,.menu-collapsed .map-workspace{inset:75px 15px 77px 73px!important}.field-context{inset:auto 15px 8px 73px!important;height:57px!important;grid-template-columns:1.1fr 1fr 1fr!important;gap:6px!important}.entity-summary,.context-room,.account-button{height:57px!important;min-height:57px!important}.context-room{grid-template-columns:30px minmax(0,1fr) 48px!important;padding:0 7px!important;gap:5px!important}.context-room .aligned-icon{width:28px!important;height:28px!important;min-width:28px!important}.context-room-state{height:38px!important;font-size:10px!important}.account-button{padding:0 8px!important}.account-button>span{padding-left:0!important}.account-button>span::before{display:none!important}.account-button strong{max-width:64px!important}
  .drawer-backdrop{inset:75px 15px 77px 73px!important}.settings-drawer{inset:auto 26px 89px 84px!important;height:250px!important;min-height:250px!important;padding:12px!important;grid-template-columns:120px minmax(220px,1fr) 54px!important;grid-template-rows:50px 1px minmax(0,1fr)!important}.drawer-head{height:50px!important}.settings-drawer .control-tabs{grid-column:2!important;height:40px!important;margin:5px 0!important}.settings-drawer .preference-bar{display:none!important}.drawer-head .icon-button{top:12px!important;right:12px!important}.settings-drawer::before{left:12px!important;right:12px!important;top:62px!important}.settings-drawer .drawer-scroll,.settings-drawer .drawer-scroll.calibration-active{padding-top:11px!important}.settings-drawer #layers-pane>.range-row{min-height:61px!important}
}

@media(max-width:560px){
  .field-context{grid-template-columns:1fr 1fr!important}.context-room{display:none!important}.settings-drawer{left:76px!important;right:18px!important}.settings-drawer .drawer-title-icon h2::after{display:none!important}.settings-drawer{grid-template-columns:86px minmax(160px,1fr) 46px!important}.settings-drawer #layers-pane.control-pane.active{grid-template-columns:1fr!important}.model-resource-grid{grid-template-columns:1fr}.model-resource-card{min-height:104px}
}

/* Dot-only layer toggles: unchecked has no mark; checked interpolates a dot in. */
.stage-modes .stage-mode:last-child{display:grid!important}
.settings-drawer #toggle-grid .toggle{
  position:relative!important;transition:color .2s ease,background-color .2s ease,border-color .2s ease!important;
}
.settings-drawer #toggle-grid .toggle input{
  appearance:none!important;-webkit-appearance:none!important;position:relative!important;width:16px!important;height:16px!important;min-width:16px!important;flex:0 0 16px!important;
  margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;background:transparent!important;box-shadow:none!important;overflow:visible!important;
}
.settings-drawer #toggle-grid .toggle input::after{
  content:""!important;position:absolute!important;inset:3px!important;width:10px!important;height:10px!important;margin:0!important;border:0!important;border-radius:50%!important;
  background:#7357ef!important;box-shadow:0 0 0 4px rgba(115,87,239,.1)!important;opacity:0!important;transform:scale(.15)!important;
  transition:opacity .2s linear,transform .24s cubic-bezier(.2,.8,.2,1),box-shadow .24s ease!important;
}
.settings-drawer #toggle-grid .toggle input:checked{border:0!important;background:transparent!important}
.settings-drawer #toggle-grid .toggle input:checked::after{opacity:1!important;transform:scale(1)!important;box-shadow:0 0 0 4px rgba(115,87,239,.12)!important}
.settings-drawer #toggle-grid .toggle:has(input:checked){border-color:#cbc2f6!important;background:rgba(115,87,239,.07)!important;color:#30284e!important}
.settings-drawer #toggle-grid .toggle input:focus-visible{outline:2px solid rgba(115,87,239,.5)!important;outline-offset:2px!important}

/* Separate the two top-left pills and align every top-right glyph to one centerline. */
.focus-control{
  position:fixed!important;left:110px!important;right:auto!important;top:101px!important;z-index:24!important;width:116px!important;min-width:116px!important;max-width:116px!important;height:38px!important;
  margin:0!important;padding:0!important;display:block!important;border:1px solid #d5dce6!important;border-radius:11px!important;background:rgba(255,255,255,.92)!important;box-shadow:none!important;overflow:hidden!important;
}
.focus-control.hidden{display:none!important}.focus-control>span{display:none!important}
.focus-control::before{content:""!important;position:absolute!important;left:13px!important;top:14px!important;z-index:2!important;width:8px!important;height:8px!important;border-radius:50%!important;background:#68768b!important;box-shadow:0 0 0 3px rgba(104,118,139,.1)!important;pointer-events:none!important}
.focus-control .focus-select{
  width:100%!important;min-width:0!important;max-width:none!important;height:36px!important;min-height:36px!important;margin:0!important;padding:0 10px 0 32px!important;
  appearance:none!important;-webkit-appearance:none!important;border:0!important;border-radius:10px!important;background:transparent!important;color:#4c586c!important;font-size:10px!important;line-height:36px!important;box-shadow:none!important;
}
body:has(#focus-control:not(.hidden)) #map-profile-select{left:126px!important}
body:has(#focus-control:not(.hidden)) .map-tools::before{left:139px!important}
body:has(#focus-control.hidden) #map-profile-select{left:0!important}
body:has(#focus-control.hidden) .map-tools::before{left:13px!important}
#map-zoom-out,#map-follow,#map-zoom-in{display:grid!important;place-items:center!important;align-content:center!important;justify-content:center!important;line-height:1!important;text-align:center!important}
#map-zoom-out,#map-zoom-in{font-family:"Segoe UI Symbol","Microsoft YaHei UI",sans-serif!important;font-weight:500!important;padding:0 0 2px!important}
#map-follow::before{margin:0!important;box-sizing:border-box!important;transform:none!important}
.top-account-chip .aligned-icon,.drawer-head .icon-button,.drawer-head .icon-button .aligned-icon{display:grid!important;place-items:center!important}
.top-account-chip .aligned-icon svg,.drawer-head .icon-button svg{display:block!important;margin:0!important}
