/* The original photograph opens at fit size; enlargement stops at source resolution. */
.model-explorer{position:fixed;inset:0;width:calc(100vw - 40px);height:calc(100dvh - 40px);max-width:1440px;max-height:100dvh;margin:auto;padding:0;border:1px solid #959DA6;border-radius:20px;background:#F3F5F8;color:#06192A;overflow:hidden;box-shadow:0 24px 80px #0006}
.model-explorer::backdrop{background:rgba(18,20,23,.86)}
.model-explorer[open]{display:flex;flex-direction:column}
.model-explorer-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;background:#fff;border-bottom:1px solid #D5DCE5}
.model-explorer-head h2{font-size:26px;letter-spacing:-.04em;line-height:1.15;margin:0}
.model-explorer-head p{font-size:13px;line-height:1.4;color:#536078;margin:5px 0 0}
.model-explorer .icon-btn{color:#06192A;background:#fff;border:1px solid #959DA6;flex-shrink:0}
.model-explorer-content{display:grid;grid-template-columns:minmax(0,1fr) 300px;flex:1;min-height:0}
.model-explorer-visual{position:relative;min-height:0;display:flex;flex-direction:column;background:#D5DCE5}
.model-explorer-stage{flex:1;position:relative;min-height:0;overflow:hidden;cursor:grab;touch-action:none}
.model-explorer-stage.dragging{cursor:grabbing}
.model-explorer-plane{position:absolute;top:50%;left:50%;transform-origin:center;box-shadow:0 6px 22px #0003}
.model-explorer-plane>img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}
.model-map-pin{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;border:2px solid white;background:#06192A;color:white;font-size:11px;font-weight:800;box-shadow:0 2px 10px #0006}
.model-map-pin.active,.model-map-pin:hover{background:#CC0A1E;outline:3px solid #ffffff80}
.model-explorer-toolbar{display:flex;justify-content:center;align-items:center;gap:8px;padding:10px;background:#F3F5F8}
#modelZoomValue{min-width:48px;font-size:12px;text-align:center;font-variant-numeric:tabular-nums}
.model-explorer-toolbar button:disabled{opacity:.4;cursor:default}
.model-explorer-nav{overflow:auto;padding:22px;background:#fff;border-left:1px solid #D5DCE5;display:flex;flex-direction:column;gap:18px}
.model-explorer-nav>.label{font-size:11px;color:#CC0A1E}
.model-route-list{display:grid;gap:7px}
.model-route-list button{display:flex;gap:10px;align-items:center;text-align:left;padding:11px 12px;border:1px solid #D5DCE5;border-radius:9px;background:#F3F5F8;color:#06192A;font-size:13px;line-height:1.25}
.model-route-list button span{color:#536078;font-size:11px;font-weight:800}
.model-route-list button.active{border-color:#CC0A1E;background:#fff0f1}
.model-route-list button.active span{color:#CC0A1E}
.model-route-description h3{font-size:21px;line-height:1.2;margin:0 0 8px}
.model-route-description p{font-size:14px;line-height:1.45;color:#536078;margin:0 0 16px}
.model-route-description .cta-red{font-size:13px;line-height:1.3;white-space:normal;padding:12px 16px;width:100%;justify-content:center}
.model-explorer-note{font-size:11px;line-height:1.4;color:#536078;margin-top:auto}
.model-explorer button:focus-visible{outline:3px solid #CC0A1E;outline-offset:3px}
.model-open-short{margin-top:12px;display:inline-flex}
@media(max-width:700px){
 .model-explorer{width:100vw;height:100dvh;max-width:none;border:0;border-radius:0}
 .model-explorer-head{padding:12px 14px;gap:12px}.model-explorer-head h2{font-size:20px}.model-explorer-head p{font-size:11px;max-width:240px}
 .model-explorer-content{grid-template-columns:1fr;grid-template-rows:minmax(160px,1fr) auto}
 .model-explorer-nav{padding:12px 14px;gap:8px;border-left:0;border-top:1px solid #D5DCE5;max-height:43dvh}
 .model-explorer-nav>.label{display:none}.model-route-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.model-route-list button{font-size:11px;gap:6px;padding:8px 6px;min-height:43px}.model-route-list button span{font-size:10px}
 .model-route-description h3{display:none}.model-route-description p{font-size:12px;margin:0 0 7px}.model-route-description .cta-red{padding:10px;font-size:12px}.model-explorer-note{font-size:10px;margin:0}
 .model-explorer-toolbar{padding:7px}.model-explorer-toolbar .icon-btn{min-height:32px}
}
@media print{.model-explorer,.model-open-short{display:none!important}}
