:root {
  color-scheme: light;
  --ink: #17202a;
  --muted: #5c6874;
  --line: #c9d1d8;
  --room-line: #596170;
  --accent: #184c73;
  --paper: #ffffff;
  --canvas: #ffffff;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-width: 320px; background: var(--canvas); color: var(--ink); }
body { min-height: 100%; }
.floorplan-embed { width: min(2200px, 100%); margin: 0 auto; padding: clamp(12px, 1.4vw, 28px); }
.page-header { margin: 0 auto 28px; max-width: 1100px; }
.eyebrow { margin: 0 0 8px; color: var(--accent); font-size: .74rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
h1 { margin: 0; font-size: clamp(2rem, 5vw, 4.2rem); letter-spacing: -.045em; line-height: .98; }
.intro { margin: 16px 0 0; color: var(--muted); font-size: 1rem; }
.status { margin: 0 auto 18px; max-width: 1100px; color: var(--muted); font-size: .9rem; }
.status.is-error { color: #9f2b25; }
.floorplans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 1.5vw, 28px); align-items: start; }
.floor { min-width: 0; }
.floor__title { margin: 0 0 12px; color: var(--ink); font-size: 1.25rem; font-weight: 750; line-height: 1.3; }
.floor__map { width: 100%; }
.floorplan-svg { display: block; width: 100%; height: auto; min-height: 260px; background: #fff; }
.room { fill: #fff; stroke: var(--room-line); stroke-width: 1.25; vector-effect: non-scaling-stroke; }
.architectural { fill: none; vector-effect: non-scaling-stroke; pointer-events: none; }
.architectural--walls-exterior { stroke: #34495e; stroke-width: 1.5; }
.architectural--walls-interior { stroke: #81909b; stroke-width: .8; }
.architectural--stairs { stroke: #5c6874; stroke-width: 1; }
.architectural--doors { stroke: #b45e28; stroke-width: 1; }
.architectural--windows { stroke: #000000; stroke-width: 1.1; }
.room-label { fill: #1e2933; font-size: 22px; font-weight: 750; text-anchor: middle; dominant-baseline: middle; paint-order: stroke fill; stroke: #fff; stroke-width: 4px; stroke-linejoin: round; pointer-events: auto; }
.room-link { cursor: pointer; pointer-events: auto; }
.room-link .room-label { fill: #125e91; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 2px; }
.room-link:hover .room-label, .room-link:focus .room-label { fill: #0a486f; }
.room-link:focus-visible .room-label { stroke: #f3bb46; stroke-width: 7px; }
.empty-state { padding: 42px 24px; border: 1px dashed var(--line); border-radius: 14px; color: var(--muted); text-align: center; }
@media (min-width: 701px) {
  .floorplan-embed { height: 100vh; height: 100dvh; display: flex; flex-direction: column; }
  .floorplans { flex: 1; min-height: 0; align-items: stretch; }
  .floor { display: flex; flex-direction: column; min-height: 0; }
  .floor__title { flex: none; }
  .floor__map { flex: 1; min-height: 0; }
  .floorplan-svg { height: 100%; min-height: 0; }
}
@media (max-width: 700px) {
  .floorplans { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .floorplan-embed { padding: 16px 12px; }
  .room-label { font-size: 19px; stroke-width: 3px; }
}
