/* v15.88 — full-office selector + normalized universal interaction map. */
body.front-office-v1588 .fo-hq-room,
body.front-office-v1588 .fo-office-scene{position:relative;isolation:isolate;background:#030608;overflow:hidden;aspect-ratio:1672/941}
body.front-office-v1588 .fo-room-base,
body.front-office-v1588 .fo-selected-office{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;user-select:none;-webkit-user-drag:none;z-index:0}
body.front-office-v1588 .fo-hq-room:after{z-index:8;background:linear-gradient(180deg,rgba(0,0,0,.012),transparent 58%,rgba(0,0,0,.045))}
body.front-office-v1588 .fo-room-object{z-index:20;pointer-events:auto!important}
body.front-office-v1588 .fo-public-corner{z-index:25}

/* Universal hotspot map calibrated against all normalized 1672×941 office images. */
body.front-office-v1588 .fo-room-object.gallery{left:0;top:5%;width:24%;height:48%}
body.front-office-v1588 .fo-room-object.personnel{left:24.5%;top:6%;width:8.5%;height:27%}
body.front-office-v1588 .fo-room-object.media{left:48.5%;top:40.5%;width:9.5%;height:12%}
body.front-office-v1588 .fo-room-object.phone{left:61.5%;top:40.5%;width:7.5%;height:12%}
body.front-office-v1588 .fo-room-object.strategy{left:38.5%;top:53.5%;width:38%;height:13%}
body.front-office-v1588 .fo-room-object.film{left:88.5%;top:5.5%;width:11.5%;height:30%}
body.front-office-v1588 .fo-room-object.directory{right:0;top:38%;width:12.5%;height:24%}

/* Selection is a UI control, not a fake furniture hotspot. */
body.front-office-v1588 .fo-office-picker-trigger{position:absolute;left:18px;bottom:18px;z-index:30;border:1px solid rgba(235,201,134,.48);border-radius:9px;background:rgba(4,9,12,.9);color:#fff1c7;padding:9px 12px;cursor:pointer;box-shadow:0 10px 25px rgba(0,0,0,.35);backdrop-filter:blur(7px);text-align:left}
body.front-office-v1588 .fo-office-picker-trigger b{display:block;font:800 .68rem/1.1 Georgia,serif;letter-spacing:.06em}
body.front-office-v1588 .fo-office-picker-trigger small{display:block;margin-top:3px;color:#aebbc1;font-size:.55rem}
body.front-office-v1588 .fo-office-picker-trigger:hover{border-color:#e5c77e;background:rgba(8,14,17,.96)}
body.front-office-v1588.fo-station-mode .fo-office-picker-trigger{pointer-events:none;opacity:.18}

body.front-office-v1588 .fo-office-picker-modal{width:min(1260px,calc(100vw - 28px));max-height:92vh;overflow:auto}
body.front-office-v1588 .fo-office-picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}
body.front-office-v1588 .fo-office-choice{position:relative;display:block;border:1px solid rgba(255,255,255,.1);border-radius:10px;overflow:hidden;background:#091014;cursor:pointer;transition:.15s ease}
body.front-office-v1588 .fo-office-choice input{position:absolute;opacity:0;pointer-events:none}
body.front-office-v1588 .fo-office-choice img{display:block;width:100%;aspect-ratio:1672/941;object-fit:cover}
body.front-office-v1588 .fo-office-choice span{display:block;padding:8px 10px;color:#cbd4d8;font-size:.67rem;font-weight:750;letter-spacing:.04em}
body.front-office-v1588 .fo-office-choice:hover{transform:translateY(-1px);border-color:rgba(235,201,134,.42)}
body.front-office-v1588 .fo-office-choice.selected{border-color:#e5c77e;box-shadow:0 0 0 2px rgba(229,199,126,.16)}
body.front-office-v1588 .fo-office-choice.selected span{color:#fff1c7}
@media(max-width:980px){body.front-office-v1588 .fo-office-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){body.front-office-v1588 .fo-office-picker-grid{grid-template-columns:1fr}.fo-office-picker-trigger small{display:none}}

/* v15.92 — Personnel containment + visible office selector only.
   IMPORTANT: universal room hotspot coordinates remain exactly as v15.90/v15.89. */

/* Put office selection somewhere owners can always see without confusing it for furniture. */
body.front-office-v1588 .fo-office-picker-trigger{
  left:50%;
  top:14px;
  bottom:auto;
  transform:translateX(-50%);
  z-index:45;
  min-width:180px;
  padding:10px 15px;
  text-align:center;
  border-color:rgba(242,207,132,.72);
  background:rgba(4,9,12,.94);
  box-shadow:0 10px 28px rgba(0,0,0,.44),0 0 0 1px rgba(242,207,132,.08) inset;
}
body.front-office-v1588 .fo-office-picker-trigger b{font-size:.72rem;letter-spacing:.085em}
body.front-office-v1588 .fo-office-picker-trigger small{font-size:.57rem}
body.front-office-v1588 .fo-office-picker-trigger:hover,
body.front-office-v1588 .fo-office-picker-trigger:focus-visible{
  transform:translateX(-50%) translateY(-1px);
  border-color:#f1d38e;
  outline:none;
}

/* Personnel controls must stay fully inside each asset row. */
body.front-office-v1588 .fo-asset{
  grid-template-columns:minmax(0,1fr) minmax(0,260px);
  gap:10px;
  overflow:hidden;
}
body.front-office-v1588 .fo-personnel-controls{
  width:100%;
  min-width:0;
  max-width:260px;
  box-sizing:border-box;
  grid-template-columns:minmax(0,1fr) auto;
}
body.front-office-v1588 .fo-personnel-controls .fo-select{
  width:100%;
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
body.front-office-v1588 .fo-public-toggle{
  max-width:100%;
  box-sizing:border-box;
  margin:0;
}
@media(max-width:760px){
  body.front-office-v1588 .fo-office-picker-trigger{top:8px;min-width:150px;padding:8px 10px}
  body.front-office-v1588 .fo-office-picker-trigger small{display:none}
  body.front-office-v1588 .fo-asset{grid-template-columns:1fr}
  body.front-office-v1588 .fo-personnel-controls{grid-template-columns:minmax(0,1fr) auto;max-width:none}
}

/* v15.94 — Strategy is the desk front/fascia only, so it never overlaps the laptop (Media) or desk phone hotspots. */

/* v15.97 — maximize the desktop Front Office scene without cropping it.
   The full 1672×941 office must remain visible. Scale the scene to the largest
   size that fits inside the viewport below the 74px site header (contain, not cover). */
@media(min-width:761px){
  body.front-office-v1588.fo-room-mode .fo-immersive-page,
  body.front-office-v1588.fo-room-mode .fo-immersive-root,
  body.front-office-v1588.fo-room-mode .fo-room-landing{
    height:calc(100dvh - 74px);
    min-height:calc(100dvh - 74px);
  }
  body.front-office-v1588.fo-room-mode .fo-room-landing{
    width:100vw;
    overflow:hidden;
    display:grid;
    place-items:center;
  }
  body.front-office-v1588.fo-room-mode .fo-hq-room{
    width:min(100vw,calc((100dvh - 74px) * 1.776833));
    max-width:none;
    max-height:calc(100dvh - 74px);
    flex:none;
  }
}
@media(min-width:761px){
  body.front-office-v1588.fo-room-mode .fo-office-picker-trigger{
    position:fixed;
    left:50%;
    top:88px;
    bottom:auto;
    transform:translateX(-50%);
  }
  body.front-office-v1588.fo-room-mode .fo-office-picker-trigger:hover,
  body.front-office-v1588.fo-room-mode .fo-office-picker-trigger:focus-visible{
    transform:translateX(-50%) translateY(-1px);
  }
}

/* v15.98 — keep the maximized no-crop office canvas stable while station menus are open.
   The room is persistent behind every Front Office application, so changing from room mode
   to station mode must never change the underlying scene dimensions. */
@media(min-width:761px){
  body.front-office-v1588 .fo-immersive-page,
  body.front-office-v1588 .fo-immersive-root,
  body.front-office-v1588 .fo-room-landing{
    height:calc(100dvh - 74px);
    min-height:calc(100dvh - 74px);
  }
  body.front-office-v1588 .fo-room-landing{
    width:100vw;
    overflow:hidden;
    display:grid;
    place-items:center;
  }
  body.front-office-v1588 .fo-hq-room{
    width:min(100vw,calc((100dvh - 74px) * 1.776833));
    max-width:none;
    max-height:calc(100dvh - 74px);
    flex:none;
  }
}

/* v16.06 — mobile Front Office performance: avoid GPU-heavy blur under scrolling media
   and let the browser skip off-screen media cards until they approach the viewport. */
@media(max-width:900px){
  body.front-office-v1588 .fo-workspace,
  body.front-office-v1588 .fo-station-shade,
  body.front-office-v1588 .fo-station-panel,
  body.front-office-v1588 .fo-customize-overlay,
  body.front-office-v1588 .fo-directory-overlay,
  body.front-office-v1588 .fo-office-picker-trigger{
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
  body.front-office-v1588 .fo-huddle-post,
  body.front-office-v1588 .fo-news-card,
  body.front-office-v1588 .fo-wire-list article,
  body.front-office-v1588 .fo-media-person-grid>a{
    content-visibility:auto;
    contain-intrinsic-size:220px;
  }
  body.front-office-v1588 .fo-station-content{overscroll-behavior:contain;}
}
