/* A light architectural plan with explicit event locations and brand-colour density. */
.campus-demo{border:1px solid #d9dcdf;border-radius:10px;background:#fff;overflow:hidden;box-shadow:0 16px 48px -38px #23252845}
.campus-demo .campus-toolbar{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:25px 28px;background:#fff;border-bottom:1px solid #e0e2e5}
.campus-demo .console-eyebrow{font-size:11px;letter-spacing:.08em;color:#797d82;line-height:1.5}
.campus-demo .campus-toolbar h3{font-size:21px;font-weight:550;letter-spacing:-.025em;margin-top:5px}
.campus-demo .period-tabs{gap:24px;margin:0}
.campus-demo .period-tabs button{font-size:13px;padding:9px 0;color:#73777c}
.campus-demo .period-tabs button[aria-pressed=true]{color:#a84920;border-color:#ed783d}
.campus-demo .campus-workspace{display:grid;grid-template-columns:minmax(0,1fr) 278px}
.risk-map-panel{background:#f5f6f7;min-width:0}
.risk-map-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px 0;font-size:11px;color:#83878c;letter-spacing:.025em;font-variant-numeric:tabular-nums}
.risk-map-meta>span:first-child{display:flex;align-items:center;gap:8px;color:#52575d}
.risk-map-meta i{width:6px;height:6px;background:#ed783d;border-radius:50%}
.risk-map-viewport{position:relative;margin:6px 0 0}
.risk-map{display:block;width:100%;height:auto;overflow:visible}
.risk-plan{fill:none;stroke-width:1.2}
.plan-boundary{fill:#f8f9fa;fill-opacity:.5;stroke:#c4c9cd;stroke-dasharray:4 5}
.plan-walkway{stroke:#e5e8ea;stroke-width:29}
.plan-walkway-edge{stroke:#d5d9dd;stroke-width:1}
.plan-footprint{fill:#d6dade;stroke:none}
.plan-building{fill:#fcfcfd;stroke:#aeb6bd;stroke-width:1.4}
.plan-rooms{fill:url(#roof-lines);stroke:#c6ccd1;stroke-width:1}
.plan-stairs{stroke:#bfc6cc;stroke-width:1.4}
.plan-corridor{fill:#eceff1;stroke:#c6ccd1;stroke-width:1}
.plan-canopy{fill:#eceff1;stroke:#c6ccd1;stroke-width:1}
.plan-track{fill:#e9edef;stroke:#c1c8ce;stroke-width:1.4}
.plan-track-inner{fill:none;stroke:#c1c8ce}
.plan-field{fill:#e1e6e8;stroke:#c3cbd0}
.plan-field-line{fill:none;stroke:#fafbfc;stroke-width:1.5}
.plan-axis{stroke:#b7bfc6;stroke-width:1}
.plan-north{stroke:#949fa8;stroke-width:1.2}
.plan-compass{fill:#7d8790;stroke:none;font:11px var(--font)}
.density-layer{opacity:.91}
.density-contour{fill:none;stroke:#fff5ed;stroke-width:1.2;opacity:.65}
.risk-place-labels text{font:14px var(--font);letter-spacing:.07em;fill:#8b9298}
.risk-pin{--risk:#977861;cursor:pointer;outline:none}
.risk-pin[data-level=medium]{--risk:#c47339}
.risk-pin[data-level=high]{--risk:#c94b31}
.pin-hit{fill:transparent;stroke:none}
.pin-ring{fill:#fff;fill-opacity:.38;stroke:var(--risk);stroke-opacity:.55;stroke-width:1.4;stroke-dasharray:2.5 3.5}
.pin-core{fill:#fff;stroke:var(--risk);stroke-width:1.8}
.pin-number{font:500 12px var(--font);fill:var(--risk);pointer-events:none;letter-spacing:-.02em}
.pin-callout>path{fill:none;stroke:var(--risk);stroke-width:1.2;opacity:.8}
.pin-callout>rect{fill:#fff;stroke:#d7dbde;stroke-width:1;filter:drop-shadow(0 2px 2px #23252808)}
.pin-label{font:500 16px var(--font);fill:#42474c;pointer-events:none}
.pin-subtitle{font:12px var(--font);fill:#858a8f;pointer-events:none}
.pin-count{font:500 19px var(--font);fill:var(--risk);pointer-events:none}
.risk-pin[aria-pressed=true] .pin-ring{stroke-width:2;stroke-dasharray:none;fill:#fff6ef;fill-opacity:.28}
.risk-pin[aria-pressed=true] .pin-core{fill:var(--risk);stroke:#fff;stroke-width:2.5}
.risk-pin[aria-pressed=true] .pin-number{fill:#fff}
.risk-pin[aria-pressed=true] .pin-callout>rect{stroke:var(--risk);stroke-width:1.5}
.risk-pin[aria-pressed=true] .pin-subtitle{fill:#a65637}
.risk-pin:hover .pin-callout>rect,.risk-pin:focus-visible .pin-callout>rect{stroke:#292d31;stroke-width:2}
.risk-pin:focus-visible .pin-ring{stroke:#292d31;stroke-width:3}
.campus-demo .heat-area-switches{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:3px 22px 0}
.campus-demo .zone-switch{display:flex;align-items:center;justify-content:flex-start;gap:6px;min-height:46px;background:transparent;border-top:1px solid #dcdee1;border-bottom:0;padding:10px 8px;color:#71777e;font-size:11px;line-height:1.4;text-align:left}
.zone-switch i{font-style:normal;font-size:10px;color:#949ba1;font-variant-numeric:tabular-nums}
.zone-switch b{font-weight:500;margin-left:auto;color:#7d848b}
.campus-demo .zone-switch[aria-pressed=true]{border-top:2px solid #c46a37;padding-top:9px;color:#9b4b25}
.zone-switch[aria-pressed=true] i,.zone-switch[aria-pressed=true] b{color:#9b4b25}
.campus-demo .zone-switch:hover{color:#9b4b25}
.campus-demo .heat-legend{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:17px 27px 23px;color:#8a8f95;font-size:10px}
.location-legend{display:flex;align-items:center;gap:6px}
.location-legend>i{width:7px;height:7px;border:1px solid #b46b41;border-radius:50%;background:#fff}
.heat-scale{display:flex;align-items:center;gap:6px}
.heat-scale>i{width:88px;height:4px;border-radius:4px;background:linear-gradient(90deg,#eeded1,#f0ba81 30%,#f39144 55%,#e95e2d 78%,#be352a)}
.campus-demo .campus-detail{display:block;border-left:1px solid #dfe2e5;border-top:0;padding:24px 25px;background:#fff}
.risk-detail-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.risk-location-id{font-size:11px;border:1px solid #e5b59d;border-radius:50%;width:25px;height:25px;display:grid;place-items:center;color:#b15c30;font-variant-numeric:tabular-nums}
.campus-demo .campus-detail h4{font-size:25px;line-height:1.35;font-weight:550;margin:18px 0 0;letter-spacing:-.035em}
.risk-address{font-size:12px;color:#81868c;line-height:1.7;margin-top:8px}
.risk-period{font-size:11px;color:#ad683c;line-height:1.7;margin-top:13px;font-variant-numeric:tabular-nums}
.campus-demo .heat-metric{display:flex;align-items:baseline;gap:12px;margin:17px 0 0}
.campus-demo .heat-metric strong{font-size:57px;font-weight:450;line-height:1.1;letter-spacing:-.055em;color:#30353a}
.campus-demo .heat-metric>span{font-size:10px;color:#8b8e93;line-height:1.6;flex-basis:auto}
.campus-demo .heat-breakdown{margin-top:19px}
.campus-demo .heat-breakdown>div{font-size:12px;border-color:#ebecee;padding:8px 0}
.campus-demo .heat-breakdown dt{color:#767c82;display:flex;align-items:center;gap:7px}
.campus-demo .heat-breakdown dd{color:#42484e;font-variant-numeric:tabular-nums}
.risk-type-dot{width:5px;height:5px;background:#d77b43;border-radius:50%}
.risk-type-dot.impact{background:#b6a18b}.risk-type-dot.other{background:#cbd0d5}
.risk-event-list{margin-top:23px}
.risk-event{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;font-size:11px;color:#687078;line-height:1.5}
.risk-event time{font-size:10px;color:#9a9fa5;font-variant-numeric:tabular-nums}
.campus-demo .heat-guidance{margin-top:20px;padding-top:14px;border-top:1px solid #ebecee;color:#8a9096;font-size:11px;line-height:1.8}
.campus-demo .console-footer{display:flex;justify-content:space-between;gap:20px;background:#fff;border-color:#e1e3e6;padding:12px 27px;font-size:10px;color:#979ca1;line-height:1.7}
@media(min-width:1250px){.campus-demo .campus-workspace{grid-template-columns:minmax(0,1fr) 300px}.campus-demo .campus-detail{padding:29px}.campus-demo .heat-metric{margin-top:23px}.campus-demo .heat-guidance{margin-top:25px}}
@media(max-width:1080px){.campus-demo .campus-workspace{grid-template-columns:1fr}.campus-demo .campus-detail{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 30px;padding:25px 28px;border-left:0;border-top:1px solid #dfe2e5}.risk-detail-top{grid-column:1}.campus-demo .campus-detail h4{grid-column:1;grid-row:2;margin-top:8px}.risk-address{grid-column:1;grid-row:3}.risk-period{grid-column:1;grid-row:4;margin-top:7px}.campus-demo .heat-metric{grid-column:2;grid-row:1/3;margin:0;align-self:center}.campus-demo .heat-breakdown{grid-column:2;grid-row:3/6;margin:8px 0 0}.risk-event-list{grid-column:3;grid-row:1/5;margin:0}.campus-demo .heat-guidance{grid-column:1/-1;margin:19px 0 0}.campus-demo .zone-switch{font-size:12px;padding-left:12px;padding-right:12px}.campus-demo .heat-legend{font-size:11px}}
@media(max-width:700px){.campus-demo .campus-toolbar{display:block;padding:20px 20px 0}.campus-demo .campus-toolbar h3{font-size:20px}.campus-demo .period-tabs{gap:26px;margin-top:12px}.campus-demo .period-tabs button{padding:10px 0 12px}.risk-map-meta{padding:17px 18px 0;font-size:10px}.risk-map-meta>span:first-child{gap:5px}.risk-map-viewport{margin-top:10px}.risk-place-labels text{font-size:23px;letter-spacing:0}.pin-callout{display:none}.pin-ring{r:37px;stroke-width:2}.pin-core{r:24px;stroke-width:2.5}.pin-number{font-size:20px;transform:translateY(2px)}.pin-hit{r:55px}.risk-pin[aria-pressed=true] .pin-ring{stroke-width:3}.campus-demo .heat-area-switches{grid-template-columns:1fr 1fr;padding:5px 17px 0;gap:0 16px}.campus-demo .zone-switch{font-size:12px;min-height:43px;padding:9px 1px}.zone-switch i{font-size:10px}.campus-demo .zone-switch[aria-pressed=true]{padding-top:8px}.campus-demo .heat-legend{padding:16px 18px 20px;font-size:10px}.campus-demo .heat-legend>span:last-child{display:none}.campus-demo .campus-detail{grid-template-columns:1fr 1fr;gap:0 22px;padding:22px 20px}.risk-detail-top{grid-column:1/-1}.campus-demo .campus-detail h4{font-size:24px;grid-row:2;margin-top:13px}.risk-address{grid-row:3;grid-column:1/-1}.risk-period{grid-row:4;grid-column:1/-1}.campus-demo .heat-metric{grid-column:2;grid-row:2;justify-content:flex-end;align-items:baseline;gap:7px}.campus-demo .heat-metric strong{font-size:36px}.campus-demo .heat-metric>span{font-size:9px;max-width:66px}.campus-demo .heat-breakdown{grid-column:1;grid-row:5;margin-top:21px}.risk-event-list{grid-column:2;grid-row:5;margin-top:21px}.risk-event{font-size:10px;gap:5px;flex-wrap:wrap}.campus-demo .heat-breakdown>div{font-size:11px}.campus-demo .heat-guidance{grid-column:1/-1;grid-row:6;font-size:11px}.campus-demo .console-footer{padding:12px 20px;display:block;font-size:10px}.campus-demo .console-footer>span:last-child{display:block}}

.risk-mobile-focus{display:none}
@media(max-width:700px){.risk-mobile-focus{display:flex;align-items:center;gap:8px;margin:16px 18px 0;font-size:10px;color:#90969b}.risk-mobile-focus strong{font-size:13px;font-weight:500;color:#a55330}.risk-mobile-focus>span:last-child{margin-left:auto;font-variant-numeric:tabular-nums}.pin-core{r:29px}.pin-ring{r:43px}.pin-number{font-size:25px;transform:translateY(3px)}}
