/* Estilos aislados del explorador del campus. */
.cm-campus { --cm-red:#ff0000; --cm-text:#322024; --cm-line:#e8e2e4; color:var(--cm-text); background:#fff; }
.cm-campus *, .cm-campus *::before, .cm-campus *::after { box-sizing:border-box; }
.cm-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
.cm-heading h2 { font-size:clamp(1.4rem,2.4vw,2rem); margin:0 0 8px; }
.cm-heading p { margin-bottom:0; color:#705d62; font-size:.94rem; }
.cm-campus .cm-kicker { color:var(--cm-red); text-transform:uppercase; font-size:.7rem; font-weight:800; letter-spacing:.14em; margin:0 0 8px; }
.cm-version { padding:9px 12px; border:1px solid var(--cm-line); border-radius:30px; font-size:.76rem; white-space:nowrap; }
.cm-toolbar { display:flex; gap:12px; align-items:center; justify-content:space-between; flex-wrap:wrap; padding:12px; background:#fff; border:1px solid var(--cm-line); border-radius:16px 16px 0 0; }
.cm-modes, .cm-controls { display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
.cm-campus button { min-height:44px; font:inherit; color:var(--cm-text); border-radius:10px; background:#fff; transition:background .18s,color .18s,box-shadow .18s; }
.cm-campus button:hover { background:#f5f3f4; }
.cm-campus button:focus-visible, .cm-campus [tabindex]:focus-visible, .cm-campus input:focus-visible { outline:3px solid #ff0000; outline-offset:3px; }
.cm-modes button { padding:10px 16px; font-size:.85rem; font-weight:750; }
.cm-modes button[aria-pressed="true"] { color:#fff; background:var(--cm-red); box-shadow:0 3px 8px #ff00001c; }
.cm-controls button { padding:8px 12px; border:1px solid var(--cm-line); font-size:.95rem; min-width:44px; }
.cm-controls [data-zoom] { font-size:.75rem; min-width:42px; text-align:center; font-variant-numeric:tabular-nums; color:#705d62; }
.cm-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; border:1px solid var(--cm-line); border-top:0; border-radius:0 0 18px 18px; overflow:hidden; }
.cm-map-column { min-width:0; padding:12px; background:#fff; }
.cm-viewport { position:relative; width:100%; height:clamp(430px,57vw,700px); overflow:hidden; border-radius:12px; background:#fff; }
.cm-viewport.is-zoomed { cursor:grab; touch-action:none; }
.cm-viewport.is-zoomed:active { cursor:grabbing; }
.cm-campus .cm-svg { display:block; width:100%; height:100%; }
.cm-compass { pointer-events:none; position:absolute; right:12px; top:12px; width:52px; height:52px; background:#ffffffeb; border-radius:50%; }
.cm-compass svg { width:100%; height:100%; }
.cm-compass circle { fill:#fff; stroke:#d8cbd0; }
.cm-compass path { fill:var(--cm-red); }
.cm-compass text { text-anchor:middle; font-weight:700;font-size:11px;font-family:inherit; fill:var(--cm-red); }
.cm-building { cursor:pointer; outline:none; }
.cm-roof { fill:#f6e9ec; stroke:#9a5a69; stroke-width:1.6; stroke-linejoin:round; transition:fill .2s; }
.cm-wall { fill:#d59ba9; stroke:#a8707e; stroke-width:1; }
.cm-building:hover .cm-roof { fill:#e8c7d0; }
.cm-building.is-selected .cm-roof { fill:var(--cm-red); stroke:#50071b; }
.cm-building.is-selected .cm-wall { fill:#ff3333; stroke:#cc0000; }
.cm-building:focus-visible .cm-roof, .cm-building:focus-visible .cm-ground { stroke:#111; stroke-width:4; stroke-dasharray:6 3; }
.cm-ground { fill:#e3ecd9; stroke:#849773; stroke-width:1.8; transition:stroke .2s; }
.cm-cancha { fill:#eee3ce; stroke:#998562; }
.cm-building.is-selected .cm-ground { stroke:var(--cm-red); stroke-width:5; }
.cm-court-line { fill:none; stroke:#8a9c7d; stroke-width:1.4; }
.cm-courts { pointer-events:none; }
.cm-parking { fill:#f5f5f4; stroke:#dbdbd7; stroke-width:1; }
.cm-parking-line { fill:none; stroke:#d6d6d1; stroke-width:1; }
.cm-unknown .cm-roof { fill:#ededeb; stroke:#bcbcb6; stroke-dasharray:4 3; }
.cm-unknown .cm-wall { fill:#d9d9d4; stroke:#bcbcb6; }
.cm-label { pointer-events:none; }
.cm-label circle { fill:#fff; stroke:#9a5a69; stroke-width:1.5; }
.cm-label text { fill:#ff0000; font-weight:750;font-size:15px;font-family:inherit; text-anchor:middle; }
.cm-label.is-selected circle { stroke:#fff; stroke-width:3; fill:var(--cm-red); }
.cm-label.is-selected text { fill:#fff; }
.cm-location { pointer-events:none; }
.cm-location rect { fill:#322024; stroke:#fff; stroke-width:2; }
.cm-location text { fill:#fff; text-anchor:middle; font-weight:650;font-size:11px;font-family:inherit; }
.cm-location path { stroke:#322024; stroke-width:2; }
.cm-location-ring { fill:none; stroke:#322024; stroke-width:3; stroke-dasharray:5 4; transform-box:fill-box; transform-origin:center; animation:cm-reference 3s ease-in-out infinite; }
@keyframes cm-reference { 0%,100% { opacity:1; } 50% { opacity:.45; } }
.cm-caption { font-size:.78rem; text-align:center; color:#705d62; margin:8px 0 12px; }
.cm-legend { display:flex; justify-content:center; gap:12px; flex-wrap:wrap; margin:10px 0; font-size:.73rem; color:#705d62; }
.cm-legend span { display:flex; gap:6px; align-items:center; }
.cm-dot { display:inline-block; width:10px; height:10px; border-radius:3px; border:1px solid #9a5a69; }
.cm-dot-selected { background:var(--cm-red); }
.cm-dot-building { background:#f6e9ec; }
.cm-dot-sport { background:#e3ecd9; border-color:#849773; }
.cm-dot-unknown { background:#ededeb; border-color:#bcbcb6; }
.cm-disclaimer { max-width:620px; margin:18px auto 8px; padding-top:12px; border-top:1px solid var(--cm-line); font-size:.76rem; line-height:1.55; color:#705d62; text-align:center; }
.cm-sidebar { padding:20px; border-left:1px solid var(--cm-line); min-width:0; background:#fff; }
.cm-search-label { display:block; font-size:.8rem; font-weight:700; }
.cm-search-label input { display:block; width:100%; min-height:46px; margin:8px 0 12px; padding:10px 12px; border:1px solid #cfbdc2; border-radius:10px; background:#fff; color:var(--cm-text); font-weight:400;font-size:.85rem;font-family:inherit; }
.cm-list { display:flex; flex-direction:column; gap:3px; max-height:344px; overflow:auto; padding:4px; margin:0 -4px 18px; }
.cm-list button { display:flex; align-items:center; gap:10px; width:100%; padding:9px 10px; text-align:left; line-height:1.3; font-size:.83rem; }
.cm-list button[aria-pressed="true"] { background:var(--cm-red); color:#fff; }
.cm-number { display:grid; place-items:center; flex-shrink:0; width:24px; height:24px; border-radius:7px; border:1px solid #dbcbd0; font-size:.72rem; font-weight:750; }
.cm-detail { padding-top:20px; border-top:1px solid var(--cm-line); animation:cm-enter .22s ease-out; }
.cm-detail h3 { font-size:1.25rem; margin:0 0 10px; }
.cm-detail h4 { font-size:.88rem; margin:18px 0 8px; }
.cm-detail p { font-size:.84rem; color:#705d62; line-height:1.6; margin:0 0 14px; }
.cm-campus .cm-primary { width:100%; background:var(--cm-red); color:white; padding:12px 14px; font-size:.82rem; font-weight:700; margin-bottom:10px; }
.cm-campus .cm-primary:hover { background:#cc0000; }
.cm-detail .cm-small { font-size:.74rem; }
.cm-places { padding:0; list-style:none; margin:0; }
.cm-places button { display:flex; justify-content:space-between; gap:8px; align-items:center; text-align:left; width:100%; font-size:.8rem; padding:10px; border:1px solid var(--cm-line); margin-bottom:6px; }
.cm-empty { color:#705d62; font-size:.85rem; padding:10px; }
.cm-bottom { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin:14px 0; }
.cm-bottom p { font-size:.78rem; color:#705d62; margin:0; }
.cm-campus .cm-link { padding:10px 12px; color:var(--cm-red); font-weight:650; font-size:.83rem; text-decoration:underline; text-underline-offset:3px; }
.cm-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.cm-demo { max-width:1280px; margin:auto; padding:28px; }
.cm-demo-header { display:flex; align-items:center; gap:12px; padding-bottom:22px; margin-bottom:22px; border-bottom:1px solid #e8e2e4; }
.cm-demo-header img { width:48px; height:48px; object-fit:contain; }
.cm-demo-header h1 { font-size:1.25rem; margin:0; }
.cm-demo-header p { color:#705d62; font-size:.8rem; margin:5px 0 0; }
@keyframes cm-enter { from { opacity:.3; transform:translateY(4px); } to { opacity:1; transform:translateY(0); } }
@media (max-width:1100px) {
  .cm-layout { grid-template-columns:minmax(0,1fr) 270px; }
  .cm-sidebar { padding:16px; }
}
@media (max-width:800px) {
  .cm-layout { grid-template-columns:1fr; }
  .cm-sidebar { border-left:0; border-top:1px solid var(--cm-line); }
  .cm-list { display:grid; grid-template-columns:1fr 1fr; max-height:none; }
  .cm-viewport { height:520px; }
  .cm-version { display:none; }
  .cm-demo { padding:16px; }
}
@media (max-width:450px) {
  .cm-toolbar { padding:8px; }
  .cm-controls { gap:3px; width:100%; }
  .cm-controls button { padding:8px; }
  .cm-controls [data-zoom] { min-width:35px; }
  .cm-controls [data-action="reset"] { font-size:.72rem; }
  .cm-viewport { height:410px; }
  .cm-list { grid-template-columns:1fr; max-height:260px; }
}
@media (prefers-reduced-motion:reduce) {
  .cm-campus *, .cm-campus *::before, .cm-campus *::after { animation:none !important; transition:none !important; }
}

/* Arquitectura del campus: azoteas grises y fachadas guinda claro. */
.cm-site { fill:#f1f0ea; stroke:#c8c8be; stroke-width:2; stroke-linejoin:round; }
.cm-shadow { fill:#343840; opacity:.13; pointer-events:none; }
.cm-campus .cm-roof { fill:#a8adb2; stroke:#626970; stroke-width:2; }
.cm-campus .cm-wall { fill:#b96570; stroke:#854450; stroke-width:1; }
.cm-campus .cm-building:hover .cm-roof { fill:#bbc0c5; }
.cm-campus .cm-building.is-selected .cm-roof { fill:#a8adb2; stroke:#ff0000; stroke-width:3; }
.cm-campus .cm-building.is-selected .cm-wall { fill:#b96570; stroke:#854450; }
.cm-roof-rim { fill:none; stroke:#e1e3e5; stroke-width:3; stroke-linejoin:round; pointer-events:none; }
.cm-building.is-selected .cm-roof-rim { stroke:#ff0000; }
.cm-plinth { fill:#824450; }
.cm-cornice { fill:#d8b1b5; }
.cm-window { fill:#405b68; stroke:#e2d9da; stroke-width:1; }
.cm-door { fill:#384650; stroke:#d8b1b5; stroke-width:1; }
.cm-curb { fill:#deded8; stroke:#b4b6b2; stroke-width:1.5; }
.cm-parking { fill:#737c83; stroke:#59636a; stroke-width:1.5; }
.cm-parking-line { stroke:#f3f0df; stroke-width:1.5; }
.cm-lane { fill:none; stroke:#e5cf8d; stroke-width:1.5; stroke-dasharray:7 9; }
.cm-car { fill:#e4e7ea; stroke:#404b53; stroke-width:.7; }
.cm-car-1 { fill:#b77b7c; }.cm-car-2 { fill:#8198ab; }
.cm-car-glass { fill:#344b5b; }
.cm-campo { fill:#64874c; stroke:#4e6d39; stroke-width:2; }
.cm-grass-light { fill:#84a961; }.cm-grass-dark { fill:#789e56; }
.cm-court-line { stroke:#fff9e9; stroke-width:1.6; }
.cm-goal { fill:#edf1e7; stroke:#fafcf7; stroke-width:2; }
.cm-cancha { fill:#ba7964; stroke:#81574b; stroke-width:2; }
.cm-court-surface { fill:#739b91; }
.cm-dot-building { background:#b96570; }.cm-dot-sport { background:#84a961; }

/* La selección sigue la planta; conserva el gris del techo en ambos niveles. */
.cm-campus .cm-building.is-selected .cm-roof { stroke:#626970; stroke-width:2; }
.cm-building.is-selected .cm-roof-rim { stroke:#e1e3e5; }
.cm-floor-outline { fill:none; stroke:#ff0000; stroke-width:3.5; stroke-linejoin:round; pointer-events:none; }
.cm-special-body { fill:#d7ac4a; stroke:#644b24; stroke-width:.65; }
.cm-special-silver .cm-special-body { fill:#e0e4e8; stroke:#727b83; }
.cm-special-black .cm-special-body { fill:#272b34; stroke:#11141c; }
.cm-special-beetle .cm-special-body { fill:#ed303b; stroke:#9b1625; }
.cm-tire { fill:#20242a; }.cm-special-glass { fill:#6b9dac; stroke:#283c49; stroke-width:.5; }
.cm-headlight { fill:#fff8d0; }.cm-taillight { fill:#b10d23; }
.cm-spoiler { fill:#353943; }.cm-racing-stripe { fill:#272b34; }
.cm-interior-stage{perspective:850px;overflow:hidden;min-height:210px;padding:30px 15px;background:linear-gradient(145deg,#f7e9e9,#e7eef5);border-radius:18px}
.cm-interior-model{--interior-angle:-8deg;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:15px 6px;transform:rotateX(35deg) rotateZ(var(--interior-angle));transform-style:preserve-3d;padding:15px 5px;background:#d4dce5;border:6px solid #aab7c7;box-shadow:8px 12px 0 #9aa7b5;transition:transform .2s}
.cm-room-box{position:relative;min-height:50px;border:2px solid #b83c46!important;background:#fff6f6!important;color:#7b1420!important;box-shadow:0 7px 0 #bb747b,4px 9px 0 #b1a3ac;border-radius:4px!important;padding:3px!important;transform:translateZ(8px);font:inherit;font-size:10px!important;cursor:pointer}
.cm-room-box[aria-pressed=true],.cm-room-box:focus-visible{background:#c40000!important;color:#fff!important;transform:translateZ(18px);outline:3px solid #ffb238;outline-offset:3px}
.cm-interior label{display:grid;gap:8px;margin:14px 0}.cm-room-selection{font-weight:700}.cm-interior-model button span{pointer-events:none}
@media(prefers-reduced-motion:reduce){.cm-interior-model{transition:none}}

/* Interior a nivel de los ojos: controles táctiles y teclado. */
.cm-walk{display:block;width:100%;height:auto;aspect-ratio:9/7;background:#e6edf3;border-radius:16px;touch-action:none;cursor:grab}.cm-walk:active{cursor:grabbing}.cm-walk:focus-visible{outline:3px solid #ff0000}.cm-walk-controls,.cm-walk-rooms{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.cm-walk-controls button,.cm-walk-rooms button{min-height:44px;padding:8px 12px;border:1px solid #d8cbd0;border-radius:10px;background:white;color:#302632}.cm-walk-rooms button[aria-pressed=true]{background:#ff0000;color:white}.cm-interior{min-width:0}

.cm-walking .cm-layout{display:flex;flex-direction:column}.cm-walking [data-detail]{order:-1;width:100%;box-sizing:border-box}.cm-walking .cm-walk{max-width:1000px;margin:auto;aspect-ratio:900/560}.cm-walking .cm-walk-rooms{max-height:160px;overflow:auto}.cm-walking .cm-map-column{width:100%}

.cm-walk-controls button{touch-action:none;user-select:none;-webkit-user-select:none}

/* Recorrido inmersivo, con respaldo de pantalla completa para navegadores móviles. */
.cm-viewport{touch-action:none}
.cm-explore-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.cm-explore-actions button,.cm-toolbar>[data-expand]{padding:10px 14px;border:1px solid #adbeca;font-weight:700}
.cm-walk{aspect-ratio:900/560}
.cm-immersive[hidden],.cm-campus [hidden]{display:none!important}
.cm-campus.cm-immersive{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;z-index:2147483000;margin:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:#102432;color:#fff;overflow:hidden;display:flex;flex-direction:column;isolation:isolate}
.cm-immersive-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;flex-shrink:0;background:#102432;color:#fff}
.cm-immersive-bar button{padding:8px 18px;border:0;font-weight:700}
.cm-immersive .cm-heading,.cm-immersive .cm-bottom,.cm-immersive .cm-caption,.cm-immersive .cm-legend,.cm-immersive .cm-disclaimer{display:none}
.cm-immersive .cm-layout{flex:1;min-height:0;border:0;border-radius:0;overflow:hidden}
.cm-immersive-map .cm-layout{display:block}
.cm-immersive-map .cm-sidebar{display:none}
.cm-immersive-map .cm-map-column{height:100%;padding:0}
.cm-immersive-map .cm-viewport{height:100%;border-radius:0}
.cm-immersive-map .cm-toolbar{border-radius:0;color:#322024;padding:6px 12px}
.cm-immersive-map [data-expand="map"]{display:none}
.cm-immersive-walk .cm-toolbar,.cm-immersive-walk .cm-map-column,.cm-immersive-walk .cm-search-label,.cm-immersive-walk .cm-list{display:none}
.cm-immersive-walk .cm-sidebar,.cm-immersive-walk .cm-detail{display:flex;flex:1;flex-direction:column;min-height:0;padding:0;border:0;background:#102432;animation:none}
.cm-immersive-walk .cm-detail>:not(.cm-interior){display:none}
.cm-immersive-walk .cm-interior{position:relative;display:flex;flex-direction:column;flex:1;min-height:0;margin:0}
.cm-immersive-walk .cm-interior>h4,.cm-immersive-walk .cm-interior>.cm-small{display:none}
.cm-immersive-walk .cm-explore-actions{position:absolute;top:8px;left:10px;z-index:2;margin:0}
.cm-immersive-walk [data-expand="walk"]{display:none}
.cm-immersive-walk .cm-floor-tabs{display:flex;gap:8px;flex-shrink:0;padding:4px 12px 8px;justify-content:flex-end}
.cm-immersive-walk .cm-floor-tabs button{padding:8px 12px}
.cm-immersive-walk .cm-walk{flex:1;width:100%;height:0;min-height:100px;max-width:none;aspect-ratio:auto;margin:0;border-radius:0}
.cm-immersive-walk .cm-walk-controls{flex-shrink:0;justify-content:center;gap:6px;margin:0;padding:8px}
.cm-immersive-walk .cm-walk-controls button{font-size:14px;margin:0}
.cm-immersive-walk .cm-walk-rooms{flex-shrink:0;flex-wrap:nowrap;overflow-x:auto;max-height:none;margin:0;padding:4px 10px 8px}
.cm-immersive-walk .cm-walk-rooms button{white-space:nowrap;flex-shrink:0}
.cm-immersive-walk [data-room-selection]{color:white;margin:0;padding:4px 12px;font-size:14px;line-height:1.4;flex-shrink:0}
.cm-camera-panel{position:absolute;inset:60px 0 0;z-index:5;background:#102432;display:flex;flex-direction:column}
.cm-camera-panel video{width:100%;height:0;flex:1;min-height:80px;object-fit:cover;background:#172e3e}
.cm-camera-card{flex-shrink:0;padding:12px 16px;background:#102432;color:#fff;max-height:48%;overflow:auto}
.cm-camera-card p{margin:6px 0;font-size:15px;line-height:1.45;color:#fff}
.cm-camera-card button{padding:10px 16px}
.cm-camera-active .cm-layout{visibility:hidden}
@media(max-width:600px){
 .cm-immersive-bar{font-size:14px}
 .cm-immersive-walk .cm-explore-actions{position:static;padding:4px 10px}
 .cm-immersive-walk .cm-floor-tabs{position:absolute;right:8px;top:4px;padding:0;gap:4px}
 .cm-immersive-walk .cm-floor-tabs button{font-size:12px;padding:6px}
 .cm-immersive-walk .cm-explore-actions button{font-size:12px;padding:8px}
 .cm-immersive-walk .cm-walk-controls button{font-size:12px;padding:6px 8px}
}
@media(max-height:500px){
 .cm-immersive-walk .cm-walk-controls{position:absolute;bottom:48px;left:8px;right:8px;pointer-events:none}
 .cm-immersive-walk .cm-walk-controls button{pointer-events:auto;opacity:.92}
 .cm-immersive-walk [data-room-selection]{display:none}
 .cm-immersive-walk .cm-walk-rooms{padding:2px 10px}
 .cm-camera-panel{flex-direction:row}
 .cm-camera-panel video{width:60%;height:100%}
 .cm-camera-card{width:40%;max-height:100%}
}
.cm-immersive-walk .cm-layout{display:flex;flex-direction:column}

/* Rojo institucional; joystick sobre la escena y cámara AR. */
.cm-campus.cm-immersive{background:#85000e!important;color:#fff!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.cm-campus.cm-immersive .cm-immersive-bar{background:#ce0018;color:#fff;border-bottom:1px solid #ffffff38;min-height:56px}
.cm-campus.cm-immersive .cm-sidebar,.cm-campus.cm-immersive .cm-detail,.cm-campus.cm-immersive .cm-interior{background:#85000e!important;color:#fff!important;border:0!important;border-radius:0!important;box-shadow:none!important;padding:0!important}
.cm-campus.cm-immersive .cm-interior{margin:0!important}
.cm-campus.cm-immersive button{background:#fff;color:#990016;border:1px solid #ffd2d8;box-shadow:none}
.cm-campus.cm-immersive button[aria-pressed=true]{background:#ed0018;color:#fff;border-color:#fff}
.cm-campus.cm-immersive button:focus-visible{outline:3px solid #ffc3c9}
.cm-campus.cm-immersive .cm-explore-actions{position:static!important;display:flex;flex-shrink:0;margin:0;padding:6px 10px!important;min-height:48px}
.cm-campus.cm-immersive .cm-floor-tabs{position:static!important;flex-shrink:0;padding:4px 10px!important;justify-content:flex-start}
.cm-campus.cm-immersive .cm-walk{border-radius:0!important;margin:0!important;max-width:none!important;box-shadow:none}
.cm-has-joystick .cm-walk-controls{display:none!important}
.cm-mobile-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px}
.cm-joystick{width:116px;height:116px;flex:0 0 116px;display:grid;place-items:center;border:2px solid #ffb9c3;border-radius:50%;background:radial-gradient(circle,#ed001877,#72000ed9);box-shadow:0 4px 18px #32000055;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
.cm-joystick-knob{display:block;width:48px;height:48px;border-radius:50%;background:#fff;box-shadow:0 2px 7px #52000077;pointer-events:none;border:5px solid #ffd1d6}
.cm-look-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px;max-width:200px}
.cm-look-actions button{padding:8px 10px;font-size:13px!important;min-height:44px}
.cm-look-actions small{font-size:12px;color:#6e0010;line-height:1.35}
.cm-campus.cm-immersive .cm-mobile-controls{position:absolute;z-index:3;bottom:90px;left:0;right:0;pointer-events:none}
.cm-campus.cm-immersive .cm-mobile-controls>*{pointer-events:auto}
.cm-campus.cm-immersive .cm-look-actions small{background:#75000edd;color:#fff;padding:4px;border-radius:5px}
.cm-campus.cm-immersive [data-input-status]{flex-shrink:0;background:#85000e;color:#fff!important;font-size:12px!important;line-height:1.4;min-height:36px;margin:0!important;padding:5px 10px!important}
.cm-campus.cm-immersive [data-room-selection]{color:#fff!important;font-size:13px!important;max-height:40px;overflow:auto}
.cm-campus.cm-immersive .cm-walk-rooms{max-height:54px;padding:3px 10px!important;margin:0!important}
.cm-campus .cm-camera-panel{top:56px;background:#85000e!important;box-shadow:none;border:0;border-radius:0;padding:0;margin:0}
.cm-campus .cm-camera-card{background:#85000e!important;color:#fff!important;max-height:55%;padding:10px 12px;border-radius:0}
.cm-camera-card p{font-size:13px;line-height:1.4}
.cm-camera-card>button{font-size:13px;margin:4px 4px 4px 0}
.cm-ar-check{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.4;margin:8px 0}
.cm-ar-check input{width:22px;height:22px;flex-shrink:0;accent-color:#ed0018}
[data-ar-map]{float:right;width:140px;height:96px;background:#fff;border:2px solid #ffb3bf;border-radius:10px;margin:0 0 8px 10px}
.cm-ar-active .cm-camera-panel{position:fixed;inset:0;background:transparent!important;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);justify-content:flex-end;pointer-events:none}
.cm-ar-active .cm-camera-panel video{display:none}
.cm-ar-active .cm-camera-card{background:#85000eee!important;pointer-events:auto;max-height:45%;width:100%}
.cm-ar-active [data-ar-start],.cm-ar-active .cm-ar-check{display:none}
body.cm-has-immersive .fit-chatbot{display:none!important}
@media(max-height:500px){
 .cm-campus.cm-immersive .cm-mobile-controls{bottom:50px;padding:6px 10px}
 .cm-joystick{width:90px;height:90px;flex-basis:90px}
 .cm-joystick-knob{width:40px;height:40px}
 .cm-campus.cm-immersive .cm-floor-tabs{position:absolute!important;top:4px;right:6px;z-index:2}
 .cm-campus.cm-immersive [data-input-status]{display:none}
 .cm-look-actions small{display:none}
 .cm-campus .cm-camera-card{max-height:100%}
 .cm-ar-active .cm-camera-panel{flex-direction:column;align-items:flex-end}
 .cm-ar-active .cm-camera-card{width:45%;max-height:100%}
}
.cm-campus .cm-camera-panel video{background:#4e000a}
