.newda-spaces-overlay {
  position: fixed;
  inset: 0;
  z-index: 3200;
  display: flex;
  align-items: stretch;
  justify-content: center;
  padding: 70px 18px 18px;
  color: var(--nd-text);
  background: var(--nd-page);
  backdrop-filter: blur(10px);
}

.newda-spaces-overlay,
.newda-spaces-overlay * {
  box-sizing: border-box;
}

.newda-spaces-overlay[data-style="hotel"] {
  --nd-page: #1b2330;
  --nd-frame: #f1dcc0;
  --nd-frame-2: #f8ead6;
  --nd-panel: #fff7ea;
  --nd-panel-2: #ead0ad;
  --nd-card: #fffaf2;
  --nd-ink: #2d241c;
  --nd-text: #2d241c;
  --nd-muted: #756759;
  --nd-border: #9e7f55;
  --nd-accent: #b84b34;
  --nd-accent-text: #fff8ef;
  --nd-soft: #38566b;
}

.newda-spaces-overlay[data-style="station"] {
  --nd-page: #18232a;
  --nd-frame: #dfe7ea;
  --nd-frame-2: #f2f5f6;
  --nd-panel: #ffffff;
  --nd-panel-2: #d7e0e4;
  --nd-card: #ffffff;
  --nd-ink: #18232a;
  --nd-text: #18232a;
  --nd-muted: #61717a;
  --nd-border: #9dacb4;
  --nd-accent: #005f8f;
  --nd-accent-text: #ffffff;
  --nd-soft: #e15f2f;
}

.newda-spaces-overlay[data-style="hotelv2"] {
  --nd-page: #171f29;
  --nd-frame: #e6c28d;
  --nd-frame-2: #3f2a1f;
  --nd-panel: #fff8ea;
  --nd-panel-2: #edd2a5;
  --nd-card: #fffdf6;
  --nd-ink: #2f2119;
  --nd-text: #fff8ea;
  --nd-muted: #7b6752;
  --nd-border: #9c7248;
  --nd-accent: #8b2f24;
  --nd-accent-text: #fff8ea;
  --nd-soft: #2d5f66;
}

.newda-spaces-overlay[data-style="stationv2"] {
  --nd-page: #101820;
  --nd-frame: #e9eef0;
  --nd-frame-2: #132b3d;
  --nd-panel: #ffffff;
  --nd-panel-2: #dce8ee;
  --nd-card: #ffffff;
  --nd-ink: #13212c;
  --nd-text: #eef8ff;
  --nd-muted: #5f717c;
  --nd-border: #9fb1bc;
  --nd-accent: #007c89;
  --nd-accent-text: #ffffff;
  --nd-soft: #c4452d;
}

.newda-spaces-overlay[data-style="plaza"] {
  --nd-page: #1f2d2c;
  --nd-frame: #e8e0cc;
  --nd-frame-2: #f7f0df;
  --nd-panel: #fffaf0;
  --nd-panel-2: #d8c9a6;
  --nd-card: #ffffff;
  --nd-ink: #24312f;
  --nd-text: #24312f;
  --nd-muted: #6b7169;
  --nd-border: #a99b78;
  --nd-accent: #2f735f;
  --nd-accent-text: #ffffff;
  --nd-soft: #b85436;
}

.newda-spaces-overlay[data-style="blueprint"] {
  --nd-page: #07111c;
  --nd-frame: #10395c;
  --nd-frame-2: #0d2d49;
  --nd-panel: #0f4269;
  --nd-panel-2: #15517f;
  --nd-card: #f5fbff;
  --nd-ink: #f5fbff;
  --nd-text: #f5fbff;
  --nd-muted: #b8d9ef;
  --nd-border: #65a9d8;
  --nd-accent: #f7d060;
  --nd-accent-text: #102033;
  --nd-soft: #ffffff;
}

.newda-spaces-overlay[data-style="hotelv2"] .newda-brand strong,
.newda-spaces-overlay[data-style="stationv2"] .newda-brand strong,
.newda-spaces-overlay[data-style="blueprint"] .newda-brand strong {
  color: var(--nd-text);
}

.newda-spaces-overlay[data-style="hotelv2"] .newda-brand span,
.newda-spaces-overlay[data-style="stationv2"] .newda-brand span,
.newda-spaces-overlay[data-style="blueprint"] .newda-brand span {
  color: var(--nd-muted);
}

.newda-spaces-overlay[data-style="hotelv2"] .newda-da-switch button,
.newda-spaces-overlay[data-style="hotelv2"] .newda-controls button,
.newda-spaces-overlay[data-style="stationv2"] .newda-da-switch button,
.newda-spaces-overlay[data-style="stationv2"] .newda-controls button,
.newda-spaces-overlay[data-style="blueprint"] .newda-da-switch button,
.newda-spaces-overlay[data-style="blueprint"] .newda-controls button {
  color: var(--nd-ink);
}

.newda-spaces-overlay[data-style="hotelv2"] .newda-da-switch button.active,
.newda-spaces-overlay[data-style="hotelv2"] .newda-controls button.active,
.newda-spaces-overlay[data-style="stationv2"] .newda-da-switch button.active,
.newda-spaces-overlay[data-style="stationv2"] .newda-controls button.active,
.newda-spaces-overlay[data-style="blueprint"] .newda-da-switch button.active,
.newda-spaces-overlay[data-style="blueprint"] .newda-controls button.active {
  color: var(--nd-accent-text);
}

.newda-frame {
  width: min(1220px, 100%);
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  border-radius: 8px;
  overflow: hidden;
  background: var(--nd-frame);
  border: 1px solid var(--nd-border);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.35);
}

.newda-topbar {
  min-height: 74px;
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto minmax(260px, 1fr);
  align-items: center;
  gap: 16px;
  padding: 14px 16px;
  color: var(--nd-text);
  background: var(--nd-frame-2);
  border-bottom: 1px solid var(--nd-border);
}

.newda-brand {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.newda-brand span {
  color: var(--nd-muted);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0;
}

.newda-brand strong {
  color: var(--nd-ink);
  font-size: clamp(22px, 3vw, 36px);
  line-height: 1;
  overflow-wrap: anywhere;
}

.newda-da-switch,
.newda-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}

.newda-controls {
  justify-content: flex-end;
}

.newda-spaces-overlay button {
  min-width: 0;
  border: 0;
  border-radius: 7px;
  font: inherit;
  line-height: 1;
  letter-spacing: 0;
  cursor: pointer;
}

.newda-da-switch button,
.newda-controls button,
.newda-icon-btn {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 12px;
  color: var(--nd-text);
  background: var(--nd-card);
  border: 1px solid var(--nd-border) !important;
  font-weight: 900;
  white-space: nowrap;
}

.newda-da-switch button.active,
.newda-controls button.active {
  color: var(--nd-accent-text);
  background: var(--nd-accent);
}

.newda-icon-btn {
  width: 38px;
  padding: 0;
}

.newda-status {
  display: none;
  margin: 0;
  padding: 10px 16px;
  color: var(--nd-muted);
  background: var(--nd-panel);
  border-bottom: 1px solid var(--nd-border);
  font-size: 13px;
}

.newda-status.active {
  display: block;
}

.newda-scene-root {
  min-height: 0;
  overflow: auto;
  color: var(--nd-text);
}

.newda-main-action {
  min-height: 42px;
  padding: 0 15px;
  color: var(--nd-accent-text);
  background: var(--nd-accent);
  font-weight: 900;
}

.newda-empty {
  margin: 22px;
  padding: 22px;
  display: grid;
  justify-items: start;
  gap: 10px;
  border: 1px solid var(--nd-border);
  border-radius: 8px;
  background: var(--nd-card);
}

.newda-empty strong {
  font-size: 22px;
}

.newda-empty span {
  color: var(--nd-muted);
}

.empty-view {
  display: grid;
  align-content: start;
}

.hotel-view {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 18px;
  padding: 18px;
  background:
    linear-gradient(90deg, rgba(112, 79, 44, 0.14) 0 1px, transparent 1px 34px),
    linear-gradient(0deg, rgba(112, 79, 44, 0.13) 0 1px, transparent 1px 34px),
    var(--nd-frame);
  background-size: 34px 34px;
}

.hotel-concierge {
  min-height: 0;
  display: grid;
  align-content: start;
  gap: 14px;
  padding: 16px;
  border: 2px solid var(--nd-border);
  border-radius: 8px;
  background: var(--nd-panel);
  box-shadow: inset 0 0 0 5px rgba(184, 75, 52, 0.08);
}

.hotel-pass {
  display: flex;
  align-items: center;
  gap: 12px;
}

.hotel-pass img {
  width: 58px;
  height: 58px;
  border-radius: 7px;
  object-fit: cover;
  border: 2px solid var(--nd-border);
  background: #ead0ad;
}

.hotel-pass span,
.hotel-counter span,
.hotel-label,
.hotel-room-details span,
.hotel-room-status span {
  display: block;
  color: var(--nd-muted);
  font-size: 12px;
  line-height: 1.1;
  font-weight: 800;
  text-transform: uppercase;
}

.hotel-pass strong {
  display: block;
  margin-top: 4px;
  color: var(--nd-ink);
  font-size: 20px;
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.hotel-counter {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.hotel-counter div {
  min-height: 76px;
  padding: 12px;
  border-radius: 7px;
  color: var(--nd-ink);
  background: #f0d8b8;
  border: 1px solid var(--nd-border);
}

.hotel-counter strong {
  display: block;
  margin-top: 7px;
  font-size: 30px;
  line-height: 1;
}

.hotel-concierge p {
  margin: 0;
  color: var(--nd-muted);
  line-height: 1.45;
  font-size: 14px;
}

.hotel-primary,
.hotel-secondary,
.hotel-small-action {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 14px;
  font-weight: 900;
}

.hotel-primary,
.hotel-small-action {
  color: var(--nd-accent-text);
  background: var(--nd-accent);
}

.hotel-secondary {
  color: var(--nd-ink);
  background: #fffaf2;
  border: 1px solid var(--nd-border) !important;
}

.hotel-board {
  min-width: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 14px;
}

.hotel-feature,
.hotel-room-row {
  border: 2px solid var(--nd-border);
  border-radius: 8px;
  background: var(--nd-card);
}

.hotel-feature {
  min-height: 230px;
  display: grid;
  grid-template-columns: 42% minmax(0, 1fr);
  overflow: hidden;
}

.newda-room-pattern {
  min-height: 100%;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 1fr;
  gap: 7px;
  padding: 16px;
  background: #d4ac7a;
}

.newda-room-pattern span {
  min-height: 28px;
  border-radius: 5px;
  background: #ffe8ba;
  border: 1px solid rgba(45, 36, 28, 0.24);
}

.pattern-2 {
  background: #9eb8af;
}

.pattern-3 {
  background: #b48f88;
}

.pattern-4 {
  background: #bfc280;
}

.pattern-2 span {
  background: #e8f0dc;
}

.pattern-3 span {
  background: #f5d8c9;
}

.pattern-4 span {
  background: #f8f2bf;
}

.hotel-feature-content {
  min-width: 0;
  display: grid;
  align-content: center;
  justify-items: start;
  gap: 12px;
  padding: 22px;
}

.hotel-feature-content h3 {
  margin: 0;
  color: var(--nd-ink);
  font-size: clamp(28px, 5vw, 52px);
  line-height: 0.95;
  overflow-wrap: anywhere;
}

.hotel-feature-content p,
.hotel-room-details p {
  margin: 0;
  color: var(--nd-muted);
  line-height: 1.42;
}

.hotel-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.hotel-pills span {
  padding: 7px 9px;
  border-radius: 999px;
  color: var(--nd-ink);
  background: #f0d8b8;
  border: 1px solid var(--nd-border);
  font-weight: 900;
  font-size: 12px;
}

.hotel-directory {
  min-height: 0;
  overflow-y: auto;
  display: grid;
  align-content: start;
  gap: 10px;
}

.hotel-room-row {
  min-height: 126px;
  display: grid;
  grid-template-columns: 124px minmax(0, 1fr) 92px;
  gap: 0;
  overflow: hidden;
}

.hotel-room-details {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 7px;
  padding: 14px;
}

.hotel-room-details strong {
  color: var(--nd-ink);
  font-size: 22px;
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.hotel-room-details p {
  max-height: 40px;
  overflow: hidden;
}

.hotel-room-status {
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 8px;
  padding: 10px;
  border-left: 1px solid var(--nd-border);
  background: #f3dfc1;
}

.hotel-room-status strong {
  color: var(--nd-accent);
  font-size: 30px;
  line-height: 1;
}

.hotel-small-action {
  width: 100%;
  min-height: 34px;
  padding: 0 8px;
}

.station-view {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 245px;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 14px;
  padding: 16px;
  background:
    linear-gradient(90deg, rgba(0, 95, 143, 0.1) 0 12px, transparent 12px 24px),
    var(--nd-frame);
}

.station-board,
.station-platform,
.station-side {
  border: 1px solid var(--nd-border);
  border-radius: 8px;
  background: var(--nd-panel);
}

.station-board {
  grid-column: 1;
  min-height: 130px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 16px;
  align-items: center;
  padding: 18px;
  border-left: 8px solid var(--nd-accent);
}

.station-heading span,
.station-summary span,
.station-destination span,
.station-live span,
.station-side span {
  display: block;
  color: var(--nd-muted);
  font-size: 12px;
  line-height: 1.1;
  font-weight: 900;
  text-transform: uppercase;
}

.station-heading h3 {
  margin: 5px 0 8px;
  color: var(--nd-ink);
  font-size: clamp(30px, 4vw, 54px);
  line-height: 0.95;
}

.station-heading p,
.station-destination p,
.station-side p {
  margin: 0;
  color: var(--nd-muted);
  line-height: 1.45;
}

.station-summary {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.station-summary div {
  min-height: 78px;
  display: grid;
  align-content: center;
  padding: 12px;
  border-radius: 7px;
  background: var(--nd-panel-2);
}

.station-summary strong {
  margin-top: 5px;
  color: var(--nd-soft);
  font-size: 30px;
  line-height: 1;
}

.station-platform {
  min-height: 0;
  overflow-y: auto;
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 10px;
}

.station-row {
  min-height: 96px;
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) 76px 100px;
  gap: 10px;
  align-items: center;
  padding: 10px;
  border-radius: 7px;
  background: #eef4f6;
  border: 1px solid var(--nd-border);
}

.station-line {
  display: grid;
  place-items: center;
}

.station-line span {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: #fff;
  background: var(--nd-accent);
  font-weight: 900;
}

.station-row.line-2 .station-line span {
  background: #d54432;
}

.station-row.line-3 .station-line span {
  background: #357a38;
}

.station-row.line-4 .station-line span {
  background: #8654a6;
}

.station-row.line-5 .station-line span {
  background: #c98224;
}

.station-destination {
  min-width: 0;
}

.station-destination strong {
  display: block;
  margin: 5px 0 6px;
  color: var(--nd-ink);
  font-size: 22px;
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.station-destination p {
  max-height: 38px;
  overflow: hidden;
  font-size: 13px;
}

.station-live {
  text-align: center;
}

.station-live strong {
  color: var(--nd-soft);
  font-size: 28px;
  line-height: 1;
}

.station-action,
.station-secondary,
.station-create {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 12px;
  color: var(--nd-accent-text);
  background: var(--nd-accent);
  font-weight: 900;
}

.station-secondary {
  color: var(--nd-ink);
  background: transparent;
  border: 1px solid var(--nd-border) !important;
}

.station-side {
  grid-column: 2;
  grid-row: 1 / span 2;
  min-height: 0;
  display: grid;
  align-content: start;
  gap: 12px;
  padding: 16px;
}

.station-side img {
  width: 64px;
  height: 64px;
  border-radius: 8px;
  object-fit: cover;
  border: 2px solid var(--nd-accent);
  background: var(--nd-panel-2);
}

.station-side strong {
  color: var(--nd-ink);
  font-size: 24px;
  line-height: 1;
  overflow-wrap: anywhere;
}

.hotelv2-view {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 230px;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 14px;
  padding: 16px;
  background:
    linear-gradient(90deg, rgba(63, 42, 31, 0.14) 0 1px, transparent 1px 42px),
    var(--nd-frame);
}

.hotelv2-mast,
.hotelv2-key,
.hotelv2-desk {
  border: 1px solid var(--nd-border);
  border-radius: 8px;
  background: var(--nd-panel);
}

.hotelv2-mast {
  grid-column: 1;
  min-height: 240px;
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr) 150px;
  gap: 16px;
  align-items: center;
  padding: 18px;
}

.hotelv2-badge {
  display: grid;
  justify-items: start;
  gap: 10px;
}

.hotelv2-badge img,
.stationv2-ticket img,
.plaza-profile img,
.blueprint-tools img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 8px;
  border: 2px solid var(--nd-accent);
  background: var(--nd-panel-2);
}

.hotelv2-badge span,
.hotelv2-copy span,
.hotelv2-stats span,
.hotelv2-key span,
.stationv2-hero span,
.stationv2-item span,
.stationv2-ticket span,
.plaza-center span,
.plaza-shop span,
.plaza-profile span,
.blueprint-title span,
.blueprint-scale span,
.blueprint-plan span,
.blueprint-tools span {
  display: block;
  color: var(--nd-muted);
  font-size: 12px;
  line-height: 1.1;
  font-weight: 900;
  text-transform: uppercase;
}

.hotelv2-badge strong,
.hotelv2-key strong,
.stationv2-ticket > strong,
.plaza-profile strong,
.blueprint-tools strong {
  display: block;
  margin-top: 4px;
  color: var(--nd-ink);
  font-size: 22px;
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.hotelv2-copy h3,
.stationv2-hero h3,
.plaza-center h3,
.blueprint-title h3 {
  margin: 6px 0 10px;
  color: var(--nd-ink);
  font-size: clamp(34px, 5vw, 62px);
  line-height: 0.92;
  overflow-wrap: anywhere;
}

.hotelv2-copy p,
.hotelv2-key p,
.stationv2-hero p,
.stationv2-item p,
.plaza-center p,
.plaza-shop p,
.plaza-profile p,
.blueprint-title p,
.blueprint-plan p {
  margin: 0;
  color: var(--nd-muted);
  line-height: 1.44;
}

.hotelv2-stats {
  display: grid;
  gap: 8px;
}

.hotelv2-stats div {
  min-height: 82px;
  display: grid;
  align-content: center;
  padding: 12px;
  border-radius: 7px;
  background: var(--nd-panel-2);
}

.hotelv2-stats strong {
  color: var(--nd-accent);
  font-size: 32px;
  line-height: 1;
}

.hotelv2-primary,
.hotelv2-secondary,
.hotelv2-key-action,
.stationv2-action,
.stationv2-secondary,
.plaza-primary,
.plaza-secondary,
.plaza-shop-action,
.blueprint-primary,
.blueprint-secondary,
.blueprint-action {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 13px;
  color: var(--nd-accent-text);
  background: var(--nd-accent);
  font-weight: 900;
}

.hotelv2-secondary,
.stationv2-secondary,
.plaza-secondary,
.blueprint-secondary {
  color: var(--nd-ink);
  background: transparent;
  border: 1px solid var(--nd-border) !important;
}

.hotelv2-secondary.solid {
  color: var(--nd-accent-text);
  background: var(--nd-accent);
}

.hotelv2-keyrack {
  min-height: 0;
  overflow-y: auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: 10px;
}

.hotelv2-key {
  min-height: 170px;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 10px;
  padding: 14px;
}

.hotelv2-room-no {
  width: fit-content;
  padding: 7px 9px;
  border-radius: 999px;
  color: var(--nd-accent-text) !important;
  background: var(--nd-accent);
}

.hotelv2-key p {
  max-height: 42px;
  overflow: hidden;
}

.hotelv2-desk {
  grid-column: 2;
  grid-row: 1 / span 2;
  min-height: 0;
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 14px;
  background: var(--nd-panel-2);
}

.stationv2-view {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 230px;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 14px;
  padding: 16px;
  background:
    linear-gradient(90deg, rgba(0, 124, 137, 0.1) 0 1px, transparent 1px 44px),
    linear-gradient(0deg, rgba(196, 69, 45, 0.08) 0 1px, transparent 1px 44px),
    var(--nd-frame);
  background-size: 44px 44px;
}

.stationv2-hero,
.stationv2-board,
.stationv2-ticket {
  border: 1px solid var(--nd-border);
  border-radius: 8px;
  background: var(--nd-panel);
}

.stationv2-hero {
  min-height: 185px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 16px;
  padding: 18px;
}

.stationv2-route {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  align-content: center;
}

.stationv2-route span {
  min-height: 96px;
  border-radius: 7px;
  background: var(--nd-panel-2);
  border: 1px solid var(--nd-border);
}

.stationv2-route span:nth-child(2),
.stationv2-route span:nth-child(4) {
  margin-top: 34px;
  background: #cfe1e8;
}

.stationv2-board {
  min-height: 0;
  overflow-y: auto;
  display: grid;
  align-content: start;
  gap: 8px;
  padding: 10px;
}

.stationv2-item {
  min-height: 92px;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) 54px 98px;
  gap: 10px;
  align-items: center;
  padding: 10px;
  border-radius: 7px;
  background: #f6fafb;
  border: 1px solid var(--nd-border);
}

.stationv2-time {
  color: var(--nd-soft) !important;
  font-size: 20px !important;
}

.stationv2-item strong {
  display: block;
  margin: 5px 0;
  color: var(--nd-ink);
  font-size: 22px;
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.stationv2-item p {
  max-height: 38px;
  overflow: hidden;
  font-size: 13px;
}

.stationv2-live {
  color: var(--nd-accent) !important;
  font-size: 28px !important;
  text-align: center;
}

.stationv2-ticket {
  grid-column: 2;
  grid-row: 1 / span 2;
  display: grid;
  align-content: start;
  gap: 12px;
  padding: 14px;
}

.stationv2-ticket div {
  min-height: 70px;
  display: grid;
  align-content: center;
  padding: 10px;
  border-radius: 7px;
  background: var(--nd-panel-2);
}

.stationv2-ticket div strong {
  color: var(--nd-soft);
  font-size: 28px;
  line-height: 1;
}

.plaza-view {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 235px;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 14px;
  padding: 16px;
  background:
    linear-gradient(90deg, rgba(47, 115, 95, 0.1) 0 16px, transparent 16px 32px),
    var(--nd-frame);
}

.plaza-square,
.plaza-shop,
.plaza-profile {
  border: 1px solid var(--nd-border);
  border-radius: 8px;
  background: var(--nd-panel);
}

.plaza-square {
  min-height: 260px;
  display: grid;
  place-items: center;
  padding: 24px;
}

.plaza-center {
  width: min(560px, 100%);
  display: grid;
  justify-items: center;
  gap: 12px;
  text-align: center;
}

.plaza-street {
  min-height: 0;
  overflow-y: auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: 10px;
}

.plaza-shop {
  min-height: 150px;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) auto;
  gap: 10px;
  padding: 14px;
}

.plaza-sign {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  color: var(--nd-accent-text);
  background: var(--nd-soft);
  font-weight: 900;
}

.plaza-shop strong {
  display: block;
  margin: 6px 0 7px;
  color: var(--nd-ink);
  font-size: 21px;
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.plaza-shop p {
  max-height: 42px;
  overflow: hidden;
}

.plaza-shop-action {
  grid-column: 1 / -1;
}

.plaza-profile {
  grid-column: 2;
  grid-row: 1 / span 2;
  display: grid;
  align-content: start;
  gap: 12px;
  padding: 14px;
}

.blueprint-view {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 230px;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 14px;
  padding: 16px;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.1) 0 1px, transparent 1px 36px),
    linear-gradient(0deg, rgba(255, 255, 255, 0.1) 0 1px, transparent 1px 36px),
    var(--nd-frame);
  background-size: 36px 36px;
}

.blueprint-board,
.blueprint-plan,
.blueprint-tools {
  border: 1px solid var(--nd-border);
  border-radius: 8px;
  background: rgba(15, 66, 105, 0.9);
}

.blueprint-board {
  min-height: 150px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 16px;
  align-items: center;
  padding: 18px;
}

.blueprint-title h3,
.blueprint-plan strong,
.blueprint-tools strong {
  color: var(--nd-ink);
}

.blueprint-scale {
  display: grid;
  gap: 8px;
}

.blueprint-scale span {
  padding: 12px;
  border-radius: 7px;
  color: var(--nd-accent-text);
  background: var(--nd-accent);
}

.blueprint-plans {
  min-height: 0;
  overflow-y: auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: 10px;
}

.blueprint-plan {
  min-height: 210px;
  display: grid;
  grid-template-rows: 96px minmax(0, 1fr) auto;
  gap: 10px;
  padding: 12px;
}

.blueprint-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 7px;
  padding: 8px;
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid var(--nd-border);
}

.blueprint-grid span {
  border-radius: 5px;
  border: 1px solid rgba(255, 255, 255, 0.55);
}

.blueprint-plan strong {
  display: block;
  margin: 6px 0 7px;
  font-size: 22px;
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.blueprint-plan p {
  max-height: 42px;
  overflow: hidden;
}

.blueprint-tools {
  grid-column: 2;
  grid-row: 1 / span 2;
  display: grid;
  align-content: start;
  gap: 12px;
  padding: 14px;
}

@media (max-width: 980px) {
  .newda-topbar {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .newda-da-switch,
  .newda-controls {
    justify-content: stretch;
  }

  .newda-da-switch button,
  .newda-controls button {
    flex: 1 1 auto;
  }

  .hotel-view,
  .station-view,
  .hotelv2-view,
  .stationv2-view,
  .plaza-view,
  .blueprint-view {
    grid-template-columns: 1fr;
  }

  .station-side,
  .hotelv2-desk,
  .stationv2-ticket,
  .plaza-profile,
  .blueprint-tools {
    grid-column: 1;
    grid-row: auto;
  }

  .station-board,
  .hotelv2-mast,
  .stationv2-hero,
  .blueprint-board {
    grid-template-columns: 1fr;
  }

  .hotelv2-keyrack,
  .plaza-street,
  .blueprint-plans {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .newda-spaces-overlay {
    padding: 60px 10px 10px;
  }

  .newda-frame {
    border-radius: 7px;
  }

  .newda-da-switch,
  .newda-controls {
    flex-wrap: wrap;
  }

  .hotel-feature,
  .hotel-room-row,
  .station-row,
  .stationv2-item,
  .plaza-shop {
    grid-template-columns: 1fr;
  }

  .hotel-room-status {
    border-left: 0;
    border-top: 1px solid var(--nd-border);
  }

  .station-live {
    text-align: left;
  }

  .stationv2-live {
    text-align: left;
  }
}

@media (max-width: 480px) {
  .newda-topbar,
  .hotel-view,
  .station-view,
  .hotelv2-view,
  .stationv2-view,
  .plaza-view,
  .blueprint-view {
    padding: 10px;
  }

  .newda-controls button {
    min-width: calc(50% - 4px);
  }

  .newda-icon-btn {
    width: auto;
  }

  .hotel-concierge,
  .hotel-feature-content,
  .station-board,
  .station-side,
  .hotelv2-mast,
  .hotelv2-desk,
  .stationv2-hero,
  .stationv2-ticket,
  .plaza-square,
  .plaza-profile,
  .blueprint-board,
  .blueprint-tools {
    padding: 12px;
  }

  .hotel-feature-content h3 {
    font-size: 34px;
  }
}
