/* GKSSD 03.1.0 — viewer state and equipment controls. Brand colors stay unchanged. */
[data-viewer] [hidden],[data-case-viewer] [hidden],.equipment-selection [hidden]{display:none!important}
.viewer[data-status="idle"] .viewer-poster,.viewer[data-status="loading"] .viewer-poster,.viewer[data-status="fallback"] .viewer-poster{opacity:.46}
.viewer[data-status="loading"] .viewer-canvas,.viewer[data-status="fallback"] .viewer-canvas{visibility:hidden}
.model-launch{position:absolute;z-index:2;top:43%;left:50%;transform:translate(-50%,-50%);width:min(420px,calc(100% - 48px));padding:28px;display:flex;flex-direction:column;align-items:flex-start;gap:13px;color:#fff;background:rgba(17,24,30,.94);border:1px solid #3e4b55;border-radius:8px;box-shadow:none}
.model-launch-icon{font-size:12px;font-weight:600;letter-spacing:.12em;color:#b6c5d3}
.model-launch strong{font-size:clamp(21px,2vw,28px);font-weight:550;line-height:1.15;letter-spacing:-.025em}
.model-launch-note{font-size:14px;line-height:1.45;color:#b6c5d3}
.model-launch-button.btn{background:#1267fa;color:#fff;min-height:48px;padding:14px 22px;margin-top:6px;border:1px solid #1267fa;font:inherit;font-size:15px;cursor:pointer;border-radius:4px;min-width:150px}
.model-launch-button.btn:hover{background:#1267fa;color:#fff;box-shadow:none;transform:translateY(-2px)}
.model-launch-button.btn:disabled{cursor:wait;transform:none;box-shadow:none}
.viewer[data-status="loading"] .model-launch-icon:after{content:"";display:inline-block;width:10px;height:10px;border:1px solid #6689a8;border-top-color:#fff;border-radius:50%;margin-left:12px;vertical-align:middle;animation:model-loading 1.2s linear infinite}
@keyframes model-loading{to{transform:rotate(360deg)}}
.viewer .viewer-tools{z-index:3}
.viewer .viewer-status,.viewer .viewer-label{z-index:3}
.viewer[data-status="idle"] .viewer-status,.viewer[data-status="loading"] .viewer-status,.viewer[data-status="fallback"] .viewer-status{max-width:420px;line-height:1.4}
.viewer [data-camera],.viewer [data-layer],.viewer [data-system],.equipment-filters button{min-height:44px;transition:background .18s ease,border-color .18s ease,transform .18s ease,color .18s ease}
.viewer button:disabled,.equipment-filters button:disabled,.case-explorer [data-floor]:disabled{cursor:default;opacity:.42}
.viewer button[aria-pressed="true"],.equipment-filters button[aria-pressed="true"]{background:#1267fa!important;border-color:#1267fa!important;color:#fff!important;box-shadow:none}
.viewer button:not(:disabled):hover,.equipment-filters button:not(:disabled):hover{border-color:#93b3d6;transform:translateY(-1px)}
.viewer button:focus-visible,.viewer canvas:focus-visible,.case-explorer select:focus-visible,.case-explorer .model-show-all:focus-visible,.equipment-filters button:focus-visible{outline:2px solid #fff;outline-offset:4px}
.viewer .viewer-tools button,.equipment-filters button{font-family:inherit}
.equipment-selection{display:flex;gap:14px 22px;align-items:center;flex-wrap:wrap;margin-top:22px;min-height:42px}
.equipment-selection .equipment-label{margin:0;flex:1 1 230px;font-size:18px;line-height:1.4;min-height:0}
.equipment-label[data-selected="true"]:before{content:"";display:inline-block;width:7px;height:7px;background:#1267fa;border-radius:50%;margin-right:10px;vertical-align:middle}
.case-explorer .equipment-picker{max-width:100%;min-width:0;width:auto;flex:0 1 310px;padding:11px 36px 11px 13px;font-size:14px;min-height:44px;color:#fff;background:#202c37;border:1px solid #566a7a;border-radius:4px;text-overflow:ellipsis}
.model-show-all{font:inherit;font-size:14px;line-height:1.4;min-height:44px;border:0;border-bottom:1px solid #617283;background:transparent;color:#e3ecf4;cursor:pointer;padding:10px 0;white-space:nowrap}
.model-show-all:hover{color:#fff;border-color:#fff}
@media(max-width:800px){
  .model-launch{padding:22px;top:37%;gap:10px}
  .model-launch strong{font-size:22px}
  .model-launch-note{font-size:13px}
  .model-launch-button.btn{font-size:14px;min-height:46px}
  .case-explorer .equipment-filters{gap:7px}
  .case-explorer .equipment-filters .chip{padding:10px 12px;font-size:13px;min-height:44px}
  .equipment-selection{align-items:flex-start;gap:12px;margin-top:20px}
  .equipment-selection .equipment-label{flex-basis:100%;font-size:16px}
  .case-explorer .equipment-picker{flex:1 1 100%;width:100%;font-size:14px}
  .viewer[data-status="idle"] .viewer-status,.viewer[data-status="loading"] .viewer-status,.viewer[data-status="fallback"] .viewer-status{max-width:calc(100% - 40px);font-size:11px}
}
@media(prefers-reduced-motion:reduce){.viewer *,.equipment-toolbar *{transition:none!important}.viewer[data-status="loading"] .model-launch-icon:after{animation:none}}
html[data-reduced-motion="true"] .viewer *,html[data-reduced-motion="true"] .equipment-toolbar *{transition:none!important}
html[data-reduced-motion="true"] .viewer[data-status="loading"] .model-launch-icon:after{animation:none}
/* Full RD collections: system navigation sits outside the camera viewport. */
.case-explorer .system-controls{display:flex;gap:8px;flex-wrap:wrap;padding:0 30px 22px;margin:0;background:#10181e;color:white;max-width:none}
.case-explorer .system-controls .chip{font:inherit;font-size:13px;min-height:44px;color:#e6eef6;background:#18242e;border:1px solid #536572;padding:10px 14px;cursor:pointer;white-space:normal}
.case-explorer .system-controls .chip[aria-pressed=true]{background:#1267fa;color:#fff;border-color:#1267fa}
.case-explorer .system-controls .chip:disabled{opacity:.42;cursor:default}
.case-explorer .system-controls .chip:focus-visible{outline:2px solid white;outline-offset:3px}
.case-explorer .viewer-tools{justify-content:flex-end}
.case-explorer .viewer-canvas{inset:0 0 82px}
.case-explorer .viewer{height:530px}
.case-explorer .building-tabs button{padding:13px 20px;font-size:16px}
.case-explorer .case-metrics{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.system-diagram{padding:28px;background:#10181e;border:1px solid #415363;color:white;margin:32px 0}
.system-diagram svg{display:block;width:100%;height:auto}
.system-diagram figcaption{font-size:15px;color:#b7c7d3;margin-top:20px;line-height:1.5}
.project-cards .project-card:nth-child(4),.project-cards .project-card:nth-child(5){grid-column:auto}
@media(min-width:1100px){.project-cards:has(.project-card:nth-child(5)){grid-template-columns:repeat(6,minmax(0,1fr))}.project-cards:has(.project-card:nth-child(5)) .project-card{grid-column:span 2}.project-cards:has(.project-card:nth-child(5)) .project-card:nth-child(n+4){grid-column:span 3}}
@media(max-width:800px){.case-explorer .system-controls{padding:0 16px 20px;gap:7px}.case-explorer .system-controls .chip{font-size:12px;padding:9px 10px}.case-explorer .viewer{height:400px}.case-explorer .viewer-canvas{inset:0 0 78px}.case-explorer .viewer-tools{justify-content:center}.case-explorer .case-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.system-diagram{padding:16px;overflow:auto}.system-diagram svg{min-width:600px}.case-explorer .viewer-poster{bottom:78px;height:calc(100% - 78px)}}
