body.isecurit-vitrine .simulator-immersive { max-width: 1000px; width: calc(100% - 32px); padding: 28px; max-height: 92dvh; }
body.isecurit-vitrine .simulator-heading { display: grid; grid-template-columns: minmax(0, 1fr) 44px; gap: 18px; align-items: start; position: sticky; top: 0; z-index: 5; background: var(--paper); border-bottom: 1px solid var(--border); padding-bottom: 16px; }
body.isecurit-vitrine .simulator-heading .close-dialog { position: static; width: 44px; height: 44px; }
body.isecurit-vitrine .simulator-heading h2 { font-size: clamp(26px, 3vw, 36px); line-height: 1.25; letter-spacing: -1px; padding: 0; margin: 8px 0 0; }
body.isecurit-vitrine #simulator-dialog .sim-description { font-size: 1rem !important; line-height: 1.7; margin: 18px 0; }
body.isecurit-vitrine .simulator-controls { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 12px; margin: 18px 0 22px; }
body.isecurit-vitrine .simulator-controls .button { font-size: .9375rem; min-width: 0; min-height: 48px; padding: 13px 18px; overflow-wrap: anywhere; }
body.isecurit-vitrine .sim-reset { border: 0; background: transparent; padding: 10px 8px; min-height: 44px; font: inherit; font-size: .875rem; color: var(--muted); text-decoration: underline; }
body.isecurit-vitrine .sim-reset:focus-visible { outline: 3px solid #d4a649; outline-offset: 3px; }
body.isecurit-vitrine .simulator-visuals { display: grid; grid-template-columns: minmax(0, 1fr) minmax(230px, .55fr); gap: 22px; align-items: stretch; }
body.isecurit-vitrine .simulator-scene { padding: 18px; margin: 0; background: #eef1e7; border-color: #bfc8b5; min-width: 0; }
body.isecurit-vitrine .simulator-scene .sim-status { justify-content: flex-start; align-items: flex-start; font-size: 1rem; line-height: 1.6; gap: 10px; min-height: 26px; }
body.isecurit-vitrine .simulator-scene .sim-status > span { margin-top: 9px; flex-shrink: 0; }
body.isecurit-vitrine .simulator-scene .sim-status strong { min-width: 0; overflow-wrap: anywhere; }
body.isecurit-vitrine .sim-garden-map { position: relative; margin: 16px 0; }
body.isecurit-vitrine .sim-map { display: block; width: 100%; height: auto; aspect-ratio: 5/3; }
body.isecurit-vitrine .sim-property { fill: #e3eadb; stroke: #bdc8b1; stroke-width: 1.5; }
body.isecurit-vitrine .sim-garden-path { fill: none; stroke: #faf9f3; stroke-width: 34; stroke-linecap: round; }
body.isecurit-vitrine .sim-house-shadow { fill: #2427241c; }
body.isecurit-vitrine .sim-building { fill: #fffdf8; stroke: #aab49f; stroke-width: 2; }
body.isecurit-vitrine .sim-room-line { fill: none; stroke: #ccd2c3; stroke-width: 2; }
body.isecurit-vitrine .sim-openings { fill: none; stroke: #7d8b70; stroke-width: 6; }
body.isecurit-vitrine .sim-detection-cone { fill: #7f956208; stroke: #899c77; stroke-dasharray: 6 6; stroke-width: 2; transition: fill .25s, stroke .25s; }
body.isecurit-vitrine .sim-map-detector { fill: #fffdf8; stroke: #79876a; stroke-width: 2; }
body.isecurit-vitrine .sim-detector-light { fill: #839076; }
body.isecurit-vitrine .sim-detector-ring { fill: none; stroke: #8f9f7b; stroke-width: 1.5; }
body.isecurit-vitrine .sim-garden-trees { fill: #ccd9bd; stroke: #bdcfa9; stroke-width: 1; }
body.isecurit-vitrine .sim-visitor { transform: translate(67px, 306px); transition: transform 1.1s ease-in-out; fill: #30372e; }
body.isecurit-vitrine .sim-visitor-body { fill: none; stroke: #30372e; stroke-width: 6; stroke-linecap: round; }
body.isecurit-vitrine .sim-visitor-shadow { fill: #24272420; }
body.isecurit-vitrine .sim-map-siren rect { fill: #fffdf8; stroke: #79876a; stroke-width: 2; }
body.isecurit-vitrine .sim-map-siren path { fill: none; stroke: #79876a; stroke-width: 2; }
body.isecurit-vitrine .sim-siren-wave { fill: none; stroke: #be2635; stroke-width: 2; opacity: 0; transform-origin: 510px 75px; }
body.isecurit-vitrine #sim-panel.armed .sim-detection-cone { fill: #7b9c5e26; stroke: #6f8d55; }
body.isecurit-vitrine #sim-panel.armed .sim-detector-light { fill: #4f7439; }
body.isecurit-vitrine #sim-panel.alert .sim-detection-cone { fill: #be263520; stroke: #be2635; }
body.isecurit-vitrine #sim-panel.alert .sim-map-detector { stroke: #be2635; }
body.isecurit-vitrine #sim-panel.alert .sim-detector-light { fill: #be2635; }
body.isecurit-vitrine #sim-panel.alert .sim-detector-ring { stroke: #be2635; stroke-width: 3; }
body.isecurit-vitrine #simulator-dialog:is([data-phase=approach], [data-phase=detected], [data-phase=notified], [data-phase=dissuading]) .sim-visitor { transform: translate(216px, 207px); }
body.isecurit-vitrine #simulator-dialog[data-phase=dissuading] .sim-map-siren rect { fill: #be2635; stroke: #a11d2a; }
body.isecurit-vitrine #simulator-dialog[data-phase=dissuading] .sim-map-siren path { stroke: #fff; }
body.isecurit-vitrine #simulator-dialog[data-phase=dissuading] .sim-siren-wave { animation: sim-siren-wave 1.2s ease-out 2; }
body.isecurit-vitrine .sim-map-label { position: absolute; padding: 2px 6px; border-radius: 4px; font-size: .875rem; line-height: 1.5; color: #35442c; background: #faf9f2e8; max-width: 34%; overflow-wrap: anywhere; }
body.isecurit-vitrine .sim-garden-label { top: 10%; left: 9%; }
body.isecurit-vitrine .sim-house-label { top: 28%; right: 15%; }
body.isecurit-vitrine .sim-access-label { left: 6%; bottom: 4%; }
body.isecurit-vitrine .sim-map-legend { display: flex; flex-wrap: wrap; gap: 10px 16px; font-size: .8125rem; line-height: 1.6; color: #49583e; }
body.isecurit-vitrine .sim-map-legend > span { display: flex; align-items: center; gap: 7px; min-width: 0; }
body.isecurit-vitrine .sim-map-legend i { width: 13px; height: 13px; flex-shrink: 0; border-radius: 3px; }
body.isecurit-vitrine .sim-legend-zone { background: #d1dfc3; border: 1px dashed #6f8d55; }
body.isecurit-vitrine .sim-legend-detector { background: #fffdf8; border: 2px solid #79876a; }
body.isecurit-vitrine .sim-phone { display: grid; align-content: center; gap: 0; min-width: 0; border: 2px solid #303a2a; border-radius: 24px; padding: 20px; background: #fff; }
body.isecurit-vitrine .sim-phone-speaker { height: 4px; width: 42px; margin: 0 auto 16px; border-radius: 6px; background: #303a2a; }
body.isecurit-vitrine .sim-phone-heading { font-size: .875rem; font-weight: 700; color: var(--muted); line-height: 1.6; margin: 0 0 18px; }
body.isecurit-vitrine .sim-phone-icon { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; margin-bottom: 16px; background: #e9eee2; color: #546747; }
body.isecurit-vitrine .sim-phone-icon svg { width: 32px; height: 32px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
body.isecurit-vitrine #sim-phone-title { font-size: 1.0625rem; line-height: 1.55; overflow-wrap: anywhere; }
body.isecurit-vitrine #sim-phone-body { font-size: 1rem; line-height: 1.7; margin: 12px 0 18px; }
body.isecurit-vitrine .sim-phone-badge { font-size: .8125rem; line-height: 1.6; padding: 4px 8px; border-radius: 4px; background: #edf0e6; color: #46533b; justify-self: start; }
body.isecurit-vitrine .sim-phone-condition { font-size: .8125rem; line-height: 1.6; color: var(--muted); margin: 14px 0 0; }
body.isecurit-vitrine #simulator-dialog:is([data-phase=detected], [data-phase=notified], [data-phase=dissuading]) .sim-phone-icon { color: #a11d2a; background: #f8e7e7; }
body.isecurit-vitrine .sim-timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; list-style: none; margin: 22px 0; padding: 0; }
body.isecurit-vitrine .sim-timeline li { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 12px; border: 1px solid #c7cebd; border-radius: 8px; background: #fff; }
body.isecurit-vitrine .sim-timeline li > span { width: 26px; height: 26px; flex-shrink: 0; display: grid; place-items: center; border-radius: 50%; background: #ecefe6; font-size: .875rem; font-weight: 750; }
body.isecurit-vitrine .sim-timeline strong { min-width: 0; font-size: .875rem; line-height: 1.5; overflow-wrap: anywhere; }
body.isecurit-vitrine .sim-timeline .is-current { color: #a11d2a; border-color: #be2635; background: #fcefef; }
body.isecurit-vitrine .sim-timeline .is-current > span { background: #be2635; color: #fff; }
body.isecurit-vitrine .sim-timeline .is-complete { background: #e8efdf; color: #354e2b; border-color: #879b71; }
body.isecurit-vitrine #simulator-dialog .sim-event { font-size: 1rem !important; line-height: 1.7; padding: 14px 16px; border-left-width: 3px; min-height: 0; }
body.isecurit-vitrine .sim-enquiry { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px; align-items: center; border-top: 1px solid var(--border); padding-top: 20px; }
body.isecurit-vitrine .sim-enquiry .sim-disclaimer { margin: 0; text-align: left; font-size: .875rem; line-height: 1.65; color: var(--muted); }
body.isecurit-vitrine .simulator-nojs { font-size: .875rem; line-height: 1.7; margin-block: 20px; }
@keyframes sim-siren-wave { from { opacity: .65; transform: scale(.6); } to { opacity: 0; transform: scale(1.25); } }
@media (max-width: 760px) {
    body.isecurit-vitrine .simulator-immersive { width: calc(100% - 24px); padding: 18px; }
    body.isecurit-vitrine .simulator-heading { gap: 10px; }
    body.isecurit-vitrine .simulator-heading h2 { font-size: 28px; }
    body.isecurit-vitrine .simulator-visuals { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    body.isecurit-vitrine .simulator-controls { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    body.isecurit-vitrine .sim-reset { grid-column: 1/-1; justify-self: end; }
    body.isecurit-vitrine .simulator-scene { padding: 14px; }
    body.isecurit-vitrine .sim-phone { min-height: 0; border-radius: 16px; padding: 18px; }
    body.isecurit-vitrine .sim-phone-speaker { display: none; }
    body.isecurit-vitrine .sim-timeline { gap: 8px; }
    body.isecurit-vitrine .sim-timeline li { flex-direction: column; align-items: flex-start; gap: 7px; padding: 10px; }
    body.isecurit-vitrine .sim-enquiry { grid-template-columns: minmax(0, 1fr); gap: 14px; }
}
@media (max-width: 480px) {
    body.isecurit-vitrine .simulator-controls { grid-template-columns: minmax(0, 1fr); }
    body.isecurit-vitrine .sim-reset { grid-column: 1; justify-self: start; }
}
@media (prefers-reduced-motion: reduce) {
    body.isecurit-vitrine .sim-visitor { transition: none; }
    body.isecurit-vitrine .sim-siren-wave { animation: none !important; }
}
