.dashboard-period{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:-8px 0 22px;padding:9px;border:1px solid #dce5e0;border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(23,60,54,.035)}
.dashboard-period-presets,.dashboard-period-navigation,.map-mode-switch{display:flex;align-items:center;gap:4px}
.dashboard-period button,.map-mode-switch button{min-height:34px;border:0;border-radius:9px;background:transparent;padding:7px 12px;color:#687973;font-size:11px;font-weight:700;cursor:pointer;transition:.18s ease}
.dashboard-period button:hover,.map-mode-switch button:hover{background:#edf4f1;color:#155d50}.dashboard-period button.active,.map-mode-switch button.active{background:#194c43;color:#fff}
.dashboard-period-navigation strong{min-width:180px;text-align:center;font-size:12px;text-transform:capitalize}.dashboard-period-navigation button{width:36px;padding:0;font-size:20px}.dashboard-period button:disabled{cursor:not-allowed;opacity:.35}
.dashboard-analytics{margin-top:26px}.analytics-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}.analytics-section-head h2{margin:5px 0 4px;font-size:24px;letter-spacing:-.035em}.analytics-section-head p{margin:0;color:var(--muted);font-size:12px}.analytics-section-head label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;font-weight:700}.analytics-section-head select{min-height:36px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 30px 0 10px;font-weight:700}
.analytics-card-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:14px}.analytics-card{min-width:0;padding:20px;overflow:hidden}.analytics-card.analytics-full,.analytics-map-card{grid-column:1/-1}.analytics-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}.analytics-card>header>div:first-child{display:flex;align-items:center;gap:10px;min-width:0}.analytics-card h3{margin:0;font-size:15px}.analytics-card header small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.analytics-icon{display:grid;place-items:center;width:33px;height:33px;flex:none;border-radius:10px;background:#e8f2ee;color:#176456;font-weight:800}
.analytics-kpis{display:flex!important;align-items:flex-start!important;justify-content:flex-end;gap:20px!important;flex-wrap:wrap}.analytics-kpis span{display:block;color:var(--muted);font-size:9px;white-space:nowrap}.analytics-kpis b{display:block;margin-bottom:2px;color:var(--ink);font-size:15px}.analytics-chart{width:100%;height:270px}.analytics-full .analytics-chart{height:300px}.analytics-empty{min-height:210px;display:grid;place-content:center;justify-items:center;text-align:center;color:var(--muted)}.analytics-empty span{font-size:24px}.analytics-empty p{max-width:260px;margin:8px 0;font-size:11px}.analytics-loading{display:flex;align-items:center;gap:12px;padding:18px}.analytics-loading>span{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:var(--mint);color:var(--teal)}.analytics-loading strong,.analytics-loading small{display:block}.analytics-loading small{margin-top:3px;color:var(--muted)}
.patient-map-layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(230px,.65fr);gap:16px;margin-top:14px}.patient-location-map{height:390px;overflow:hidden;border:1px solid #dce5e0;border-radius:14px;background:#c9e5eb;isolation:isolate}.patient-location-map .leaflet-control-attribution{font-size:8px}.patient-location-map .leaflet-popup-content-wrapper{border-radius:11px;box-shadow:0 10px 30px rgba(20,50,45,.18)}.patient-location-map .leaflet-popup-content{margin:12px 14px;font:12px Inter,sans-serif}.patient-map-ranking{display:flex;flex-direction:column;gap:12px;padding:8px 2px}.patient-map-ranking>div span{display:flex;justify-content:space-between;gap:10px}.patient-map-ranking b{overflow:hidden;text-overflow:ellipsis;font-size:11px;white-space:nowrap}.patient-map-ranking small{color:var(--muted);font-size:10px;white-space:nowrap}.patient-map-ranking i{display:block;height:7px;margin-top:6px;overflow:hidden;border-radius:99px;background:#edf2ef}.patient-map-ranking em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#277362,#62a68d)}.map-empty-overlay{height:390px;display:grid;place-content:center;text-align:center;border:1px dashed #cddbd5;border-radius:14px;background:#f7faf8;color:var(--muted)}
.map-nav-head{display:flex!important;align-items:flex-start;justify-content:space-between;gap:8px;padding:2px 2px 8px}.map-nav-head strong,.map-nav-head small{display:block}.map-nav-head strong{font-size:13px}.map-nav-head small{margin-top:3px;white-space:normal!important;line-height:1.4}.map-level-list{display:flex;flex-direction:column;gap:7px;max-height:310px;overflow:auto;padding:1px 3px 3px}.map-level-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:1px solid #e1e9e5;border-radius:11px;background:#fff;padding:10px;text-align:left;cursor:pointer;transition:.16s ease}.map-level-row:hover{border-color:#9fc5b8;background:#f3f9f6;transform:translateX(2px)}.map-level-row span{display:block!important;min-width:0}.map-level-row b,.map-level-row small{display:block}.map-level-row small{margin-top:3px}.map-level-row>i{display:grid!important;place-items:center;width:25px;height:25px;flex:none;margin:0!important;border-radius:8px;background:#edf5f2;color:#176456;font-size:18px;font-style:normal}.map-breadcrumb{align-self:flex-start;border:0;background:transparent;padding:2px 0 5px;color:#176456;font-size:10px;font-weight:750;cursor:pointer}.map-breadcrumb:hover{text-decoration:underline}.map-locality-list{gap:5px}.map-locality{display:grid!important;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:7px;padding:9px;border-radius:9px;background:#f7faf8}.map-locality>span{display:grid!important;place-items:center;width:22px;height:22px;border-radius:7px;background:#e5f1ed;color:#176456}.map-locality b{font-size:10px}.map-locality small{font-weight:750}.map-level-static{padding:7px 2px}.map-level-static>span{display:flex!important}.map-insights{grid-column:1/-1;display:grid;grid-template-columns:minmax(210px,.65fr) minmax(220px,.6fr) minmax(260px,1fr);align-items:center;gap:16px;border:1px solid #d9e7e1;border-radius:13px;background:linear-gradient(110deg,#f1f8f5,#fbfdfc);padding:14px 16px}.map-insights-title{display:flex;align-items:center;gap:9px}.map-insights-title>span{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:#dfeee8;color:#176456}.map-insights-title strong,.map-insights-title small{display:block}.map-insights-title strong{font-size:12px}.map-insights-title small{margin-top:2px;color:var(--muted);font-size:8px}.map-insight-kpis{display:flex;gap:10px}.map-insight-kpis span{flex:1;border-left:2px solid #acd0c3;padding-left:9px;color:var(--muted);font-size:8px}.map-insight-kpis b{display:block;color:#173c36;font-size:14px}.map-insights>p{margin:0;color:#52645e;font-size:9px;line-height:1.5}.map-privacy-note{grid-column:1/-1;display:flex;align-items:center;gap:8px;border-top:1px solid #dfe9e5;padding-top:10px;color:#657771;font-size:8px}.map-privacy-note b{color:#176456;white-space:nowrap}
@media(max-width:980px){.analytics-card-grid{grid-template-columns:1fr}.analytics-card.analytics-full,.analytics-map-card{grid-column:auto}.patient-map-layout{grid-template-columns:1fr}.patient-map-ranking{display:block}.map-insights{grid-template-columns:1fr 1fr}.map-insights>p{grid-column:1/-1}}
@media(max-width:680px){.dashboard-period{align-items:stretch;flex-direction:column}.dashboard-period-presets{display:grid;grid-template-columns:repeat(4,1fr)}.dashboard-period button{padding-inline:6px}.dashboard-period-navigation{justify-content:space-between}.dashboard-period-navigation strong{min-width:0}.analytics-section-head{align-items:flex-start;flex-direction:column}.analytics-card{padding:15px}.analytics-card>header{flex-direction:column}.analytics-kpis{justify-content:flex-start!important;gap:12px!important}.analytics-chart{height:245px}.analytics-full .analytics-chart{height:280px}.patient-location-map,.map-empty-overlay{height:320px}.map-insights{grid-template-columns:1fr}.map-insights>p,.map-privacy-note{grid-column:auto}.map-privacy-note{align-items:flex-start;flex-direction:column}}
.patient-location-map .patient-map-route{stroke-dashoffset:160;animation:patient-map-route 3.2s linear infinite}.patient-location-map .map-origin-marker{filter:drop-shadow(0 0 5px rgba(216,79,121,.65));animation:patient-map-origin 1.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes patient-map-route{to{stroke-dashoffset:0}}@keyframes patient-map-origin{50%{filter:drop-shadow(0 0 11px rgba(216,79,121,.9));transform:scale(1.18)}}@media(prefers-reduced-motion:reduce){.patient-location-map .patient-map-route,.patient-location-map .map-origin-marker{animation:none}}
.patient-location-map{background:#acd5df}.patient-location-map .leaflet-pane{background:transparent}
.patient-location-map .leaflet-tooltip.map-patient-tooltip-shell{border:0;border-radius:12px;background:#173f38;color:#fff;padding:0;box-shadow:0 12px 30px rgba(14,47,41,.24)}.patient-location-map .leaflet-tooltip.map-patient-tooltip-shell:before{border-top-color:#173f38}.map-patient-tooltip{min-width:190px;max-width:250px;padding:11px 12px}.map-patient-tooltip header{display:flex;align-items:center;justify-content:space-between;gap:12px}.map-patient-tooltip header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.map-patient-tooltip header span{display:grid;place-items:center;min-width:24px;height:24px;border-radius:8px;background:#e0f0ea;color:#14584c;font-size:10px;font-weight:800}.map-patient-tooltip>small{display:block;margin-top:2px;color:#b9d2ca;font-size:8px}.map-patient-tooltip ul{max-height:175px;overflow:auto;margin:9px 0 0;padding:0;list-style:none}.map-patient-tooltip li{display:flex;align-items:center;gap:7px;border-top:1px solid rgba(255,255,255,.1);padding:6px 0}.map-patient-tooltip li i{display:grid;place-items:center;width:23px;height:23px;flex:none;border-radius:7px;background:rgba(255,255,255,.12);font-size:7px;font-style:normal;font-weight:800}.map-patient-tooltip li b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.map-patient-tooltip footer{border-top:1px solid rgba(255,255,255,.1);padding-top:7px;color:#b9d2ca;font-size:8px;font-weight:700}
