/* finesse · register=product · A=warm-paper+yellow-red-risk · B=800/450 · C=wide-results+map-filters
 * D=feedback-only · E=municipal-evidence · SOUL=5 SPECTACLE=2 DENSITY=8 */
.safety-workbench{--s-paper:#fffdf6;--s-panel:#f7f4e9;--s-ink:#292d2d;--s-copy:#63675f;--s-line:#d9d5c8;--s-yellow:#fdc94b;--s-red:#982b2b;height:calc(100vh - 95px);min-height:680px;background:#e9e8e1}
.safety-workbench-frame{--map-workbench-sidebar:680px;height:100%;border-radius:18px!important}.safety-workbench-frame>.safety-layout{display:contents}.safety-panel{position:relative;z-index:4;display:flex;min-width:0;flex-direction:column;overflow:hidden;border-right:1px solid var(--s-line);background:var(--s-paper);color:var(--s-ink)}
.safety-panel-header{padding:20px 24px 17px;border-bottom:1px solid var(--s-line);background:linear-gradient(145deg,#fffdf6 0%,#fff8dc 100%)}.safety-panel-header>span{display:flex;align-items:center;gap:8px;color:#8a5c0a;font-size:14px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.safety-panel-header h1{margin:8px 0 5px;font-size:29px;line-height:1.05;letter-spacing:-.035em}.safety-panel-header p{margin:0;color:var(--s-copy);font-size:14px;line-height:1.45}
.safety-control-group{padding:14px 18px;border-bottom:1px solid var(--s-line)}.safety-control-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.safety-control-heading strong{display:flex;align-items:center;gap:7px;font-size:15px}.safety-control-heading>span{overflow:hidden;color:#777970;font-size:14px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.safety-period-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.safety-period-grid button{min-height:44px;border:1px solid #d8d2bf;border-radius:9px;background:#f5f2e8;color:#4b4e49;font-size:16px;font-weight:760;white-space:nowrap;cursor:pointer}.safety-period-grid button:hover{border-color:#c69425;background:#fff5c8}.safety-period-grid button.active{border-color:#a96513;background:var(--s-yellow);color:#382a0d;box-shadow:0 0 0 1px rgba(127,77,8,.18)}
.safety-ranking{display:flex;min-height:0;flex:1;flex-direction:column;padding:14px 18px}.safety-search{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--s-line);border-radius:10px;background:#f7f5ee;color:#73766e}.safety-search:focus-within{border-color:#a76c12;outline:3px solid rgba(244,200,62,.35)}.safety-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--s-ink);font-size:16px}.safety-ranking-list{min-height:0;margin-top:8px;overflow:auto}.safety-ranking-list>button{display:grid;grid-template-columns:30px minmax(145px,.8fr) 84px 82px minmax(250px,1.4fr);align-items:center;gap:10px;width:100%;min-height:72px;padding:9px 11px;border:0;border-bottom:1px solid #e4e0d5;background:transparent;color:#303330;text-align:left;cursor:pointer}.safety-ranking-list>button:hover,.safety-ranking-list>button.active{background:#fff3bf}.safety-card-rank{color:#9a6822;font-size:14px;font-weight:850}.safety-card-name,.safety-card-reading,.safety-card-count{display:grid;min-width:0}.safety-card-name strong{overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.safety-card-name em,.safety-card-reading em,.safety-card-count em{margin-top:3px;color:#7a7d75;font-size:14px;font-style:normal}.safety-card-reading strong{color:var(--s-red);font-size:21px}.safety-card-count strong{font-size:17px}.safety-card-types{display:flex;min-width:0;flex-wrap:wrap;gap:5px}.safety-card-types i{display:inline-flex;min-width:0;align-items:center;gap:6px;padding:5px 7px;border:1px solid #e1d8bf;border-radius:7px;background:#f7f3e8;color:#5d5b52;font-size:14px;font-style:normal}.safety-card-types i.active{border-color:#c64335;background:#f8d8c6;color:#76241f}.safety-card-types i span{max-width:122px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.safety-card-types i b{color:#7d3b29}
.safety-map-stage{position:relative;min-width:0;height:100%;overflow:hidden;background:#eeede7}.safety-map-canvas{position:absolute;inset:0}.safety-map-title,.safety-map-filter,.safety-legend,.safety-selection,.safety-method-note,.safety-error{position:absolute;z-index:5;border:1px solid rgba(124,112,77,.24);background:rgba(255,253,246,.96);box-shadow:0 14px 40px rgba(68,60,37,.14);backdrop-filter:blur(8px)}
.safety-map-filter{left:16px;top:16px;display:grid;width:230px;max-height:calc(100% - 190px);overflow:hidden;border-radius:13px}.safety-map-filter header{display:grid;gap:2px;padding:12px 13px 9px;border-bottom:1px solid #ded6c1}.safety-map-filter header strong{font-size:16px}.safety-map-filter header span{color:#777970;font-size:14px}.safety-map-kind{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:8px;border-bottom:1px solid #ded6c1}.safety-map-kind button,.safety-map-types button{min-height:42px;border:0;border-radius:8px;background:transparent;color:#4b4e49;font-size:15px;font-weight:760;cursor:pointer}.safety-map-kind button:hover,.safety-map-types button:hover{background:#fff1b7}.safety-map-kind button.active,.safety-map-types button.active{background:#be3e32;color:#fff9ef}.safety-map-types{min-height:0;overflow:auto;padding:6px}.safety-map-types button{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;padding:0 8px;text-align:left}.safety-map-types button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.safety-map-types button b{font-size:14px}
.safety-map-title{left:262px;top:16px;display:grid;min-width:210px;padding:13px 15px;border-radius:12px}.safety-map-title>span{color:#9c2f2e;font-size:14px;font-weight:850;text-transform:uppercase}.safety-map-title>strong{margin-top:3px;font-size:20px}.safety-map-title>small{margin-top:4px;color:#72766e;font-size:14px}.safety-legend{left:262px;bottom:88px;width:min(510px,calc(100% - 540px));min-width:390px;padding:13px 15px;border-radius:12px}.safety-legend>strong{display:block;margin-bottom:8px;font-size:14px}.safety-legend>div{display:grid;grid-template-columns:repeat(8,minmax(0,1fr))}.safety-legend>div span{display:grid;min-width:0}.safety-legend i{height:16px}.safety-legend>div span:first-child i{border-radius:6px 0 0 6px}.safety-legend>div span:last-child i{border-radius:0 6px 6px 0}.safety-legend b{margin-top:3px;color:#625b48;font-size:14px;text-align:center}.safety-legend>small{display:flex;justify-content:space-between;margin-top:5px;color:#727269;font-size:14px}
.safety-selection{right:18px;top:16px;width:330px;padding:20px;border-radius:15px}.safety-selection>button{position:absolute;right:10px;top:10px;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:9px;background:#f4f0e4;color:#584e36;font-size:26px;cursor:pointer}.safety-selection>span{color:#9c2f2e;font-size:14px;font-weight:850;text-transform:uppercase}.safety-selection h2{max-width:250px;margin:7px 0 16px;font-size:28px;line-height:1.05}.safety-selection dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.safety-selection dl div:first-child{grid-column:1/-1;background:#f8d7b2}.safety-selection dl div{display:grid;gap:4px;padding:11px;border-radius:9px;background:#f4f1e8}.safety-selection dt{color:#6c6b63;font-size:14px}.safety-selection dd{margin:0;color:#7d2926;font-size:23px;font-weight:850}.safety-selection dd small{font-size:14px}.safety-selection>a{display:flex;align-items:center;justify-content:center;min-height:44px;margin-top:12px;border-radius:9px;background:#3b3e3a;color:#fffdf6;font-size:16px;font-weight:800;text-decoration:none}
.safety-method-note{left:50%;bottom:16px;display:flex;align-items:flex-start;gap:9px;width:min(660px,calc(100% - 36px));padding:10px 13px;border-radius:11px;translate:-50% 0}.safety-method-note svg{flex:0 0 auto;margin-top:2px;color:#9c2f2e}.safety-method-note span{color:#5f625c;font-size:14px;line-height:1.35}.safety-method-note strong{margin-right:7px;color:#3d403c}.safety-error{left:50%;top:82px;padding:10px 14px;border-color:#b45d43;border-radius:9px;color:#853d29;font-size:15px;translate:-50% 0}.safety-map-stage .maplibregl-ctrl-bottom-right{right:10px;bottom:88px}.safety-map-stage .maplibregl-ctrl-group button{width:44px;height:44px}.safety-panel button:focus-visible,.safety-map-stage button:focus-visible,.safety-selection>a:focus-visible{outline:3px solid #7d2926;outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1600px) and (min-width:1001px){.safety-workbench-frame{--map-workbench-sidebar:580px}.safety-ranking-list>button{grid-template-columns:28px minmax(130px,.8fr) 74px minmax(210px,1.25fr)}.safety-card-count{display:none}.safety-map-filter{width:210px}.safety-map-title{left:242px}.safety-legend{left:242px;width:min(470px,calc(100% - 500px));min-width:360px}}
@media(max-width:1180px) and (min-width:1001px){.safety-workbench-frame{--map-workbench-sidebar:500px}.safety-ranking-list>button{grid-template-columns:28px minmax(130px,1fr) 70px}.safety-card-types{grid-column:2/-1}.safety-map-title{display:none}.safety-legend{left:16px;width:min(460px,calc(100% - 110px));min-width:0}}
@media(max-width:1000px){.safety-workbench{height:auto;min-height:0}.safety-panel{max-height:none;border-right:0}.safety-period-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.safety-ranking{min-height:480px}.safety-ranking-list>button{grid-template-columns:28px minmax(130px,.8fr) 74px minmax(210px,1.2fr)}.safety-card-count{display:none}.safety-map-stage{height:72vh;min-height:620px}.safety-selection{top:82px}}
@media(max-width:620px){.safety-panel-header{padding:20px 16px}.safety-panel-header h1{font-size:27px}.safety-control-group,.safety-ranking{padding-inline:14px}.safety-period-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.safety-ranking-list>button{grid-template-columns:28px minmax(0,1fr) 68px}.safety-card-types{grid-column:2/-1}.safety-map-stage{height:78vh;min-height:650px}.safety-map-filter{left:8px;top:8px;width:205px;max-height:350px}.safety-map-title{display:none}.safety-selection{left:8px;right:8px;top:366px;width:auto}.safety-legend{left:8px;bottom:116px;width:calc(100% - 16px);min-width:0}.safety-method-note{bottom:8px;width:calc(100% - 16px)}.safety-map-stage .maplibregl-ctrl-bottom-right{bottom:175px}}
@media(prefers-reduced-motion:reduce){.safety-workbench *{scroll-behavior:auto!important;transition-duration:.01ms!important}}
.safety-workbench-frame{--map-workbench-sidebar:clamp(420px,28vw,1080px)}
.safety-ranking-list>button{grid-template-columns:30px minmax(145px,1fr) 84px 82px}.safety-card-types{grid-column:2/-1}
@media(max-width:1600px){.safety-ranking-list>button{grid-template-columns:28px minmax(130px,1fr) 74px}.safety-card-types{grid-column:2/-1}.safety-card-count{display:none}}
@media(max-width:620px){.safety-ranking-list>button{grid-template-columns:28px minmax(0,1fr) 68px}}
.safety-period-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.safety-map-kind button{white-space:nowrap}
@media(min-width:1601px){.safety-period-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
.safety-map-filter{width:320px}.safety-map-title{left:352px}.safety-legend{left:352px;width:min(510px,calc(100% - 630px));min-width:360px}
@media(max-width:1180px) and (min-width:1001px){.safety-map-filter{width:280px}.safety-map-title{display:none}.safety-legend{left:16px;width:min(460px,calc(100% - 110px));min-width:0}}
@media(max-width:1000px){.safety-map-filter{width:260px}.safety-map-title{display:none}.safety-legend{left:16px;width:min(460px,calc(100% - 110px));min-width:0}}
@media(max-width:620px){.safety-map-filter{width:205px}.safety-legend{left:8px;width:calc(100% - 16px)}}
.safety-workbench-disorder .safety-map-kind button.active,.safety-workbench-disorder .safety-map-types button.active{background:#287c3d}.safety-workbench-disorder .safety-map-title>span,.safety-workbench-disorder .safety-card-reading strong,.safety-workbench-disorder .safety-selection>span{color:#145b34}.safety-workbench-disorder .safety-method-note svg{color:#287c3d}
.safety-map-filter[data-kind="disorder"] .safety-map-kind button.active,.safety-map-filter[data-kind="disorder"] .safety-map-types button.active{background:#287c3d;color:#f4fff5}.safety-workbench-disorder .safety-card-types i.active{border-color:#4e9361;background:#dcefdc;color:#145b34}.safety-workbench-disorder .safety-selection dl div:first-child{background:#dcefdc}
.safety-card-types i span{max-width:none;overflow:visible;text-overflow:clip}.safety-card-types i{max-width:100%}
