/* v35 — kolm uut 16:9 rolliruumi; kogu aktiivne mänguliides paikneb ruumi füüsilisel holoekraanil. */

/* Puhas mängulaud: alles jäävad ainult päis ja stseen. */
.game-board {
  grid-template-rows: 7.4% minmax(0, 1fr) !important;
  gap: .46cqw !important;
}
.role-progress,
.bottom-strip {
  display: none !important;
}
.game-board::before { top: 8.4% !important; }
.game-board::after { bottom: .9% !important; }

.scene {
  --screen-x: 25%;
  --screen-y: 24%;
  --screen-w: 51%;
  --screen-h: 48%;
  --incoming-w: 15.2%;
}
.scene[data-room-owner="white"],
.scene[data-room-owner="oversoul"] {
  --screen-x: 24.7%;
  --screen-y: 24.3%;
  --screen-w: 51.4%;
  --screen-h: 47.8%;
  --incoming-w: 15.2%;
}
.scene[data-room-owner="mantis"] {
  --screen-x: 26.2%;
  --screen-y: 19.2%;
  --screen-w: 47.6%;
  --screen-h: 52.2%;
}
.scene[data-room-owner="grey"] {
  --screen-x: 26.7%;
  --screen-y: 20.8%;
  --screen-w: 46.6%;
  --screen-h: 49.2%;
}

.scene .scene-background,
.scene.scene-cinematic .scene-background {
  object-fit: cover !important;
  object-position: center center !important;
  animation: none !important;
  filter: brightness(.97) saturate(.96) contrast(1.01) !important;
}
.scene[data-room-owner="mantis"] .scene-background {
  filter: brightness(.92) saturate(1.01) contrast(1.02) !important;
}
.scene-grid,
.scene-ambient,
.scan-sweep,
.memory-motes { opacity: .10 !important; }
.scene-vignette {
  background: radial-gradient(circle at 52% 43%, transparent 42%, rgba(0,7,18,.04) 70%, rgba(0,3,11,.28) 100%) !important;
}

/* Tegelased on uutes taustades juba ruumi sisse renderdatud. */
.scene[data-room-owner] .character-stage,
.scene[data-room-owner] .contact-stage {
  display: none !important;
}
.scene-holo-layer { display: none !important; }
.scene-tool-dock { display: none !important; }

/* Aktiivne konsool täidab füüsilise seinaholo ala. */
.scene.scene-cinematic .holo-console,
.holo-console {
  position: absolute !important;
  z-index: 12 !important;
  left: var(--screen-x) !important;
  top: var(--screen-y) !important;
  right: auto !important;
  bottom: auto !important;
  width: var(--screen-w) !important;
  height: var(--screen-h) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  display: grid !important;
  grid-template-rows: auto auto minmax(0, 1fr) !important;
  gap: .28cqw !important;
  margin: 0 !important;
  padding: .52cqw .62cqw .56cqw !important;
  overflow: hidden !important;
  transform: none !important;
  border: 1px solid rgba(111,226,255,.72) !important;
  border-radius: .42cqw !important;
  background:
    linear-gradient(rgba(75,215,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(75,215,255,.035) 1px, transparent 1px),
    linear-gradient(145deg, rgba(2,28,55,.82), rgba(0,14,34,.88)) !important;
  background-size: .7cqw .7cqw, .7cqw .7cqw, auto !important;
  box-shadow: inset 0 0 1.15cqw rgba(89,219,255,.12), 0 0 .55cqw rgba(67,211,255,.20) !important;
  backdrop-filter: blur(5px) saturate(1.06) !important;
}
.scene[data-room-owner="mantis"] .holo-console {
  border-color: rgba(203,151,255,.78) !important;
  background:
    linear-gradient(rgba(196,139,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(196,139,255,.04) 1px, transparent 1px),
    linear-gradient(145deg, rgba(39,12,70,.82), rgba(17,4,43,.89)) !important;
  background-size: .7cqw .7cqw, .7cqw .7cqw, auto !important;
  box-shadow: inset 0 0 1.15cqw rgba(191,125,255,.12), 0 0 .62cqw rgba(176,103,255,.24) !important;
}
.holo-console::after { display: none !important; }
.holo-console::before { opacity: .17 !important; }

.console-header {
  gap: .42cqw !important;
  margin: 0 !important;
  padding: 0 0 .28cqw !important;
}
.step-icon {
  width: 2.2cqw !important;
  height: 2.2cqw !important;
  min-width: 27px !important;
  min-height: 27px !important;
}
.console-role { font-size: clamp(8px,.54cqw,11px) !important; }
.holo-console h2 {
  font-size: clamp(15px,1.12cqw,22px) !important;
  line-height: 1.05 !important;
}
.risk-badge {
  padding: .2cqw .34cqw !important;
  font-size: clamp(8px,.5cqw,10px) !important;
}
.prompt-copy {
  margin: 0 !important;
  font-size: clamp(10px,.69cqw,13px) !important;
  line-height: 1.18 !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.interactive-area {
  min-height: 0 !important;
  overflow: auto !important;
  padding: .04cqw .14cqw .08cqw .04cqw !important;
}
.choice-grid {
  grid-template-columns: repeat(2, minmax(0,1fr)) !important;
  gap: .36cqw !important;
}
.choice-button {
  min-height: clamp(48px,4.15cqw,70px) !important;
  gap: .16cqw .38cqw !important;
  padding: .42cqw .5cqw !important;
  border-radius: .38cqw !important;
}
.choice-button strong { font-size: clamp(11px,.78cqw,15px) !important; }
.choice-button span { font-size: clamp(8px,.56cqw,11px) !important; line-height: 1.16 !important; }
.choice-button small { font-size: clamp(8px,.5cqw,10px) !important; }
.choice-icon {
  width: 2.05cqw !important;
  height: 2.05cqw !important;
  min-width: 24px !important;
  min-height: 24px !important;
}
.choice-shortcut { display: none !important; }

/* Pika Valge isealgatatud kontakt jääb sama seinaholo vasakusse ossa. */
.scene[data-room-owner="white"] .incoming-contact-panel {
  z-index: 16 !important;
  left: calc(var(--screen-x) + .55%) !important;
  top: calc(var(--screen-y) + .7%) !important;
  width: var(--incoming-w) !important;
  height: calc(var(--screen-h) - 1.4%) !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: .46cqw .5cqw !important;
  overflow: auto !important;
  border-radius: .38cqw !important;
  background: linear-gradient(145deg, rgba(3,34,63,.92), rgba(1,17,39,.95)) !important;
  filter: none !important;
  backdrop-filter: blur(5px) !important;
}
.scene[data-room-owner="white"] .incoming-contact-panel.visible + .holo-console {
  left: calc(var(--screen-x) + var(--incoming-w) + 1.05%) !important;
  width: calc(var(--screen-w) - var(--incoming-w) - 1.05%) !important;
}
.scene[data-room-owner="white"] .incoming-contact-panel.visible + .holo-console .choice-grid {
  grid-template-columns: 1fr !important;
}
.incoming-heading { gap: .3cqw !important; }
.incoming-heading img {
  width: 1.8cqw !important;
  height: 1.8cqw !important;
  min-width: 22px !important;
  min-height: 22px !important;
}
.incoming-heading p,
.incoming-heading > span,
.incoming-contact-panel > p,
.incoming-metrics span { font-size: clamp(8px,.5cqw,10px) !important; }
.incoming-heading strong { font-size: clamp(10px,.68cqw,13px) !important; }
.incoming-metrics { grid-template-columns: 1fr !important; gap: .22cqw !important; }
.incoming-actions { grid-template-columns: 1fr !important; gap: .22cqw !important; }
.incoming-actions .tiny-button { padding: .24cqw .3cqw !important; font-size: clamp(8px,.49cqw,10px) !important; }

/* Juhis, tagasinupp ja otsuse tagasiside ei hõlju enam ruumi peal väljaspool ekraani. */
.scene .tutorial-coach {
  z-index: 24 !important;
  left: calc(var(--screen-x) + 1%) !important;
  bottom: calc(100% - var(--screen-y) - var(--screen-h) + .75%) !important;
  width: min(44%, 520px) !important;
  max-width: calc(var(--screen-w) - 2%) !important;
  padding: .3cqw .5cqw !important;
  border-radius: .32cqw !important;
  background: rgba(1,20,42,.96) !important;
  box-shadow: 0 0 .5cqw rgba(67,217,255,.20) !important;
}
.scene .tutorial-coach strong { font-size: clamp(9px,.57cqw,11px) !important; }
.scene .tutorial-coach span {
  margin-top: .05cqw !important;
  font-size: clamp(8px,.49cqw,10px) !important;
  line-height: 1.15 !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.effect-toast {
  z-index: 25 !important;
  left: 50% !important;
  bottom: calc(100% - var(--screen-y) - var(--screen-h) + .8%) !important;
  max-width: calc(var(--screen-w) - 9%) !important;
}
.back-button {
  z-index: 26 !important;
  left: calc(var(--screen-x) + var(--screen-w) - 7.1%) !important;
  right: auto !important;
  bottom: calc(100% - var(--screen-y) - var(--screen-h) + .7%) !important;
  padding: .25cqw .42cqw !important;
  font-size: clamp(8px,.52cqw,10px) !important;
}

/* Kompaktsemad keerukad töövaated mahuvad seinaekraanile, mitte selle alla. */
.timeline-readout { gap: .25cqw !important; }
.timeline-readout div { padding: .28cqw .34cqw !important; }
.timeline-readout span { font-size: clamp(8px,.5cqw,10px) !important; }
.timeline-readout b { font-size: clamp(10px,.68cqw,13px) !important; }
.timeline-shell,
.global-timeline-shell { gap: .3cqw !important; }
.timeline-actions { gap: .3cqw !important; }
.metric-row { gap: .3cqw !important; margin-bottom: .32cqw !important; }
.metric-card { padding: .34cqw .4cqw !important; }
.metric-card span { font-size: clamp(8px,.5cqw,10px) !important; }
.metric-card b { font-size: clamp(12px,.83cqw,16px) !important; }
.opening-visual { height: clamp(105px,10cqw,170px) !important; }
.memory-editor,
.opening-editor,
.coherence-picker { gap: .34cqw !important; }

@container (max-width: 980px) {
  .topbar { grid-template-columns: 1.05fr .75fr 1.3fr auto; gap: .45cqw; }
  .scene[data-room-owner="white"] { --incoming-w: 16.5%; }
  .choice-grid { grid-template-columns: 1fr !important; }
  .prompt-copy { display: none !important; }
}

@container (max-width: 720px) {
  .brand-block { display: none !important; }
  .topbar { grid-template-columns: .8fr 1.35fr auto !important; }
  .scene[data-room-owner="white"] .incoming-contact-panel.visible {
    width: 19% !important;
  }
  .scene[data-room-owner="white"] .incoming-contact-panel.visible + .holo-console {
    left: calc(var(--screen-x) + 20%) !important;
    width: calc(var(--screen-w) - 20%) !important;
  }
  .scene .tutorial-coach { display: none !important; }
}

/* Passiivne isealgatatud signaal on kompaktne, mitte tühi täiskõrguses aken. */
.scene[data-room-owner="white"] .incoming-contact-panel.visible:not(.actionable) {
  height: auto !important;
  max-height: calc(var(--screen-h) - 1.4%) !important;
}
.scene[data-room-owner="white"] .incoming-contact-panel.visible:not(.actionable) > p {
  display: block !important;
}
.scene[data-room-owner="white"] .incoming-contact-panel.visible:not(.actionable) .incoming-metrics {
  display: grid !important;
}
