*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #080b14;--bg2: #0d1117;--bg3: #161b27;--bg4: #1c2333;--border: #2d3748;--border2: #3d4f6b;--text: #e2e8f5;--text2: #7a8bad;--text3: #4a5568;--accent: #ef4444;--accent2: #22c55e;--accent3: #3b82f6;--yellow: #f59e0b;--purple: #8b5cf6;--font-display: "Syne", sans-serif;--font-mono: "Space Mono", monospace}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-display);overflow-x:hidden}.dashboard{display:flex;flex-direction:column;height:100vh;overflow:hidden}.dash-header{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;background:var(--bg2);border-bottom:1px solid var(--border);flex-shrink:0}.header-left{display:flex;align-items:center;gap:14px}.logo{font-size:32px}.header-title{font-size:20px;font-weight:800;letter-spacing:-.5px;color:var(--text)}.header-sub{font-size:11px;color:var(--text2);font-family:var(--font-mono);margin-top:2px}.header-right{display:flex;align-items:center;gap:10px}.live-badge{display:flex;align-items:center;gap:6px;background:#ef44441f;border:1px solid rgba(239,68,68,.35);padding:5px 14px;border-radius:20px;font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--accent)}.live-dot{width:7px;height:7px;background:var(--accent);border-radius:50%;animation:blink 1.2s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.2}}.reset-btn{background:var(--bg3);border:1px solid #e2e8f0;color:var(--text);padding:7px 16px;border-radius:8px;cursor:pointer;font-family:var(--font-mono);font-size:12px;text-decoration:none;transition:all .2s;display:inline-flex;align-items:center}.reset-btn:hover{border-color:var(--accent3);color:var(--accent3);background:#3b82f614}.form-layout{display:grid;grid-template-columns:480px 1fr;flex:1;overflow:hidden}.results-layout{display:grid;grid-template-columns:440px 1fr;flex:1;overflow:hidden}.form-left,.results-left{overflow-y:auto;background:var(--bg2);border-right:1px solid var(--border);padding:24px}.form-right,.results-right{position:relative}.emergency-form{display:flex;flex-direction:column;gap:22px}.form-header{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--accent);letter-spacing:2px}.pulse-dot{width:8px;height:8px;background:var(--accent);border-radius:50%;animation:blink 1s infinite}.form-title{font-size:26px;font-weight:800;letter-spacing:-.5px;white-space:nowrap}.emergency-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.emergency-btn{display:flex;flex-direction:column;align-items:flex-start;padding:16px;border-radius:12px;cursor:pointer;background:var(--bg3);border:2px solid var(--border);color:var(--text);text-align:left;transition:all .2s;position:relative;overflow:hidden}.emergency-btn:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);opacity:0;transition:opacity .2s}.emergency-btn:hover:before,.emergency-btn.active:before{opacity:1}.emergency-btn:hover{border-color:var(--accent);background:#ef44440f;transform:translateY(-2px);box-shadow:0 4px 16px #0000004d}.emergency-btn.active{border-color:var(--accent);background:#ef44441a;box-shadow:0 0 20px #ef444426}.emergency-icon{font-size:32px;margin-bottom:10px;display:block;line-height:1}.emergency-name{font-size:15px;font-weight:700;display:block;margin-bottom:4px}.emergency-specialist{font-size:11px;color:var(--text2);font-family:var(--font-mono);display:block}.emergency-btn.active .emergency-name{color:#fff}.emergency-btn.active .emergency-specialist{color:#fff9}.form-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--bg3);border:1px solid var(--border);border-radius:10px}.form-label{font-size:14px;font-weight:600;color:var(--text)}.counter{display:flex;align-items:center;gap:14px}.counter button{width:34px;height:34px;background:var(--bg4);border:1px solid #e2e8f0;color:var(--text);border-radius:8px;cursor:pointer;font-size:20px;display:flex;align-items:center;justify-content:center;transition:all .15s;font-weight:300}.counter button:hover{border-color:var(--accent3);color:var(--accent3);background:#3b82f61a}.counter span{font-size:22px;font-weight:800;font-family:var(--font-mono);min-width:28px;text-align:center;color:var(--text)}.location-status{padding:12px 16px;background:var(--bg3);border:1px solid var(--border);border-radius:10px;font-size:12px;font-family:var(--font-mono);display:flex;align-items:center;gap:8px}.loc-found{color:var(--accent2);font-weight:600}.loc-detecting{color:var(--yellow)}.loc-manual{color:var(--text2);display:flex;align-items:center;gap:10px}.retry-loc{background:none;border:1px solid #e2e8f0;color:var(--accent3);padding:3px 10px;border-radius:4px;cursor:pointer;font-size:11px;font-family:var(--font-mono)}.dispatch-btn{width:100%;padding:18px;border-radius:12px;cursor:pointer;background:linear-gradient(135deg,#ef4444,#dc2626);border:none;color:#fff;font-size:17px;font-weight:800;font-family:var(--font-display);letter-spacing:.5px;transition:all .2s;box-shadow:0 4px 24px #ef444466;flex-shrink:0;margin-top:4px}.dispatch-btn:hover:not(.disabled){transform:translateY(-2px);box-shadow:0 8px 28px #ef444480}.dispatch-btn.disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.btn-loading{display:flex;align-items:center;justify-content:center;gap:10px}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.map-wrapper{position:relative;height:100%}.map-container{height:100%;width:100%}.map-legend{position:absolute;bottom:24px;left:50%;transform:translate(-50%);background:#fffffff2;border:1px solid #e2e8f0;padding:8px 20px;border-radius:24px;display:flex;gap:18px;font-size:11px;font-family:var(--font-mono);z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 20px #0006}.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:middle}.recommendation-panel{background:var(--bg3);border:1px solid #e2e8f0;border-radius:14px;padding:22px;margin-bottom:16px;box-shadow:0 4px 24px #0000004d}.rec-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.rec-badge{font-size:10px;font-weight:700;font-family:var(--font-mono);color:var(--yellow);background:#f59e0b1f;border:1px solid rgba(245,158,11,.3);padding:4px 12px;border-radius:20px;letter-spacing:1px}.rec-score{font-size:40px;font-weight:800;font-family:var(--font-mono);line-height:1}.rec-hospital-name{font-size:20px;font-weight:800;margin-bottom:6px;line-height:1.2}.rec-address{font-size:12px;color:var(--text2);margin-bottom:18px;font-family:var(--font-mono)}.rec-stats{display:flex;align-items:stretch;background:var(--bg4);border-radius:10px;overflow:hidden;margin-bottom:18px;border:1px solid #e2e8f0}.stat{flex:1;padding:14px 10px;text-align:center}.stat-value{display:block;font-size:24px;font-weight:800;font-family:var(--font-mono);color:var(--text)}.stat-label{display:block;font-size:10px;color:var(--text2);margin-top:3px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:1px}.stat-divider{width:1px;background:var(--border);align-self:stretch;margin:8px 0}.score-breakdown{margin-bottom:16px;padding:14px;background:var(--bg4);border-radius:10px;border:1px solid var(--border)}.breakdown-title{font-size:10px;color:var(--text2);font-family:var(--font-mono);margin-bottom:10px;text-transform:uppercase;letter-spacing:1.5px}.score-bar-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.score-bar-label{font-size:11px;color:var(--text2);width:115px;flex-shrink:0}.score-bar-track{flex:1;height:7px;background:var(--bg2);border-radius:4px;overflow:hidden}.score-bar-fill{height:100%;border-radius:4px;transition:width 1s ease}.score-bar-val{font-size:11px;font-family:var(--font-mono);font-weight:700;width:28px;text-align:right}.specialists{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:14px}.spec-label{font-size:11px;color:var(--text2);font-family:var(--font-mono)}.spec-tag{font-size:10px;padding:3px 10px;border-radius:20px;background:#3b82f61f;border:1px solid rgba(59,130,246,.3);color:#60a5fa;font-family:var(--font-mono);font-weight:600}.rec-contact{font-size:12px;color:var(--text2);font-family:var(--font-mono);margin-bottom:16px}.alert-btn{width:100%;padding:15px;background:linear-gradient(135deg,#ef4444,#dc2626);border:none;color:#fff;border-radius:12px;cursor:pointer;font-size:16px;font-weight:800;font-family:var(--font-display);transition:all .2s;box-shadow:0 4px 20px #ef444459}.alert-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 24px #ef444480}.alert-btn:disabled{opacity:.45;cursor:not-allowed}.alert-success{padding:14px 16px;background:#22c55e1a;border:1px solid rgba(34,197,94,.35);border-radius:10px;color:var(--accent2);font-size:13px;font-weight:600}.alert-id{font-size:10px;font-family:var(--font-mono);color:var(--text2);margin-top:5px}.alert-failed{padding:14px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.35);border-radius:10px;color:var(--accent);font-size:13px}.retry-btn{margin-top:8px;padding:7px 16px;background:var(--accent);border:none;color:#fff;border-radius:6px;cursor:pointer;font-size:12px;font-family:var(--font-mono);font-weight:700}.alert-status{padding:14px 16px;border-radius:10px;display:flex;align-items:flex-start;gap:12px;margin-bottom:16px;font-size:13px}.alert-status.loading{background:#3b82f614;border:1px solid rgba(59,130,246,.25);color:var(--accent3)}.alert-status.success{background:#22c55e14;border:1px solid rgba(34,197,94,.25);color:var(--accent2)}.alert-status.failed{background:#ef444414;border:1px solid rgba(239,68,68,.25);color:var(--accent)}.status-icon{font-size:20px;flex-shrink:0}.all-hospitals{display:flex;flex-direction:column;gap:10px}.all-title{font-size:11px;font-weight:700;color:var(--text2);font-family:var(--font-mono);margin-bottom:10px;text-transform:uppercase;letter-spacing:1.5px;padding-bottom:8px;border-bottom:1px solid var(--border)}.hospital-card{position:relative;padding:14px 16px;border-radius:12px;cursor:pointer;background:var(--bg3);border:1.5px solid var(--border);transition:all .2s;overflow:hidden}.hospital-card:hover{border-color:var(--accent3);transform:translate(3px);background:var(--bg4)}.hospital-card.recommended{border-color:#22c55e80;background:#22c55e0a;box-shadow:0 0 20px #22c55e14}.hospital-card.full{opacity:.55}.card-rank{position:absolute;top:10px;right:12px;font-size:11px;font-family:var(--font-mono);color:var(--text3);font-weight:700}.card-body{display:flex;flex-direction:column;gap:8px}.card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.card-name{font-size:14px;font-weight:700;padding-right:32px;color:var(--text)}.card-address{font-size:11px;color:var(--text2);font-family:var(--font-mono)}.card-score{font-size:26px;font-weight:800;font-family:var(--font-mono);flex-shrink:0}.card-stats{display:flex;flex-wrap:wrap;gap:6px}.bed-badge,.dist-badge,.eta-badge,.tier-badge{font-size:10px;padding:3px 9px;border-radius:20px;font-family:var(--font-mono);font-weight:700}.bed-badge.ok{background:#22c55e1f;color:#4ade80;border:1px solid rgba(34,197,94,.25)}.bed-badge.low{background:#f59e0b1f;color:#fbbf24;border:1px solid rgba(245,158,11,.25)}.bed-badge.full{background:#ef44441f;color:#f87171;border:1px solid rgba(239,68,68,.25)}.dist-badge{background:#3b82f61a;color:#60a5fa;border:1px solid rgba(59,130,246,.2)}.eta-badge{background:#f59e0b1a;color:#fbbf24;border:1px solid rgba(245,158,11,.2)}.tier-badge{background:#8b5cf61a;color:#a78bfa;border:1px solid rgba(139,92,246,.2)}.card-specialists{display:flex;gap:5px;flex-wrap:wrap}.spec-chip{font-size:9px;padding:2px 8px;border-radius:10px;background:#3b82f614;color:#60a5fa;border:1px solid rgba(59,130,246,.18);font-family:var(--font-mono)}.recommended-ribbon{position:absolute;top:0;left:0;background:var(--accent2);color:#000;font-size:9px;font-weight:800;font-family:var(--font-mono);padding:3px 12px;border-radius:0 0 8px;letter-spacing:1px}.error-banner{background:#ef444414;border-bottom:1px solid rgba(239,68,68,.25);padding:10px 28px;color:#f87171;font-size:13px;font-family:var(--font-mono)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--border2)}.leaflet-popup-content-wrapper{background:var(--bg3)!important;border:1px solid var(--border2)!important;color:var(--text)!important;border-radius:10px!important;box-shadow:0 8px 32px #0009!important}.leaflet-popup-tip{background:var(--bg3)!important}.leaflet-control-zoom a{background:var(--bg3)!important;color:var(--text)!important;border-color:var(--border2)!important}.leaflet-control-zoom a:hover{background:var(--bg4)!important;color:var(--accent3)!important}.hosp-dashboard{display:flex;flex-direction:column;height:100vh;overflow:hidden}.hosp-dashboard.flash{animation:flash-bg .5s ease 3}@keyframes flash-bg{0%,to{background:var(--bg)}50%{background:#ef444414}}.hosp-header{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;background:var(--bg2);border-bottom:1px solid var(--border);flex-shrink:0}.hosp-header-left{display:flex;align-items:center;gap:14px}.hosp-logo{font-size:32px}.hosp-title{font-size:20px;font-weight:800}.hosp-sub{font-size:11px;color:var(--text2);font-family:var(--font-mono);margin-top:2px}.hosp-header-right{display:flex;align-items:center;gap:12px}.active-count{display:flex;align-items:center;gap:6px;background:#ef44441f;border:1px solid rgba(239,68,68,.35);padding:5px 14px;border-radius:20px;font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--accent)}.active-dot{width:7px;height:7px;background:var(--accent);border-radius:50%;animation:blink 1s infinite}.last-updated{font-size:11px;color:var(--text2);font-family:var(--font-mono)}.back-btn{background:var(--bg3);border:1px solid #e2e8f0;color:var(--text);padding:7px 16px;border-radius:8px;cursor:pointer;font-family:var(--font-mono);font-size:12px;text-decoration:none;transition:all .2s}.back-btn:hover{border-color:var(--accent3);color:var(--accent3)}.new-alert-banner{background:var(--accent);color:#fff;text-align:center;padding:12px;font-weight:800;font-size:14px;letter-spacing:1.5px;animation:blink .5s infinite}.hosp-layout{display:grid;grid-template-columns:400px 1fr;flex:1;overflow:hidden}.hosp-left{overflow-y:auto;background:var(--bg2);border-right:1px solid var(--border);padding:16px}.hosp-right{overflow-y:auto;padding:28px}.hosp-loading{display:flex;align-items:center;gap:10px;padding:40px;color:var(--text2);font-family:var(--font-mono)}.no-alerts{text-align:center;padding:60px 20px}.no-alerts-icon{font-size:48px;margin-bottom:16px}.no-alerts h3{font-size:18px;font-weight:700;margin-bottom:8px}.no-alerts p{color:var(--text2);font-size:13px}.alert-section{margin-bottom:20px}.section-label{font-size:10px;font-weight:700;font-family:var(--font-mono);letter-spacing:2px;padding:4px 0;margin-bottom:8px}.section-label.urgent{color:var(--accent)}.section-label.completed{color:var(--text2)}.alert-card{padding:14px 16px;border-radius:10px;cursor:pointer;background:var(--bg3);border:1.5px solid var(--border);margin-bottom:8px;transition:all .2s;border-left:3px solid var(--urgency, #3b82f6)}.alert-card:hover{border-color:var(--urgency, #3b82f6);transform:translate(2px);background:var(--bg4)}.alert-card.selected{border-color:var(--urgency, #3b82f6);background:var(--bg4);box-shadow:0 0 16px #ffffff0a}.alert-card.dimmed{opacity:.45}.alert-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.alert-type-badge{font-size:10px;font-weight:700;padding:3px 10px;border-radius:20px;font-family:var(--font-mono)}.alert-time{font-size:10px;color:var(--text2);font-family:var(--font-mono)}.alert-hospital{font-size:13px;font-weight:700;margin-bottom:6px;color:var(--text)}.alert-meta{display:flex;gap:10px;font-size:11px;color:var(--text2);font-family:var(--font-mono);flex-wrap:wrap;margin-bottom:6px}.alert-webhook{font-size:10px;font-family:var(--font-mono);font-weight:700}.alert-webhook.sent{color:var(--accent2)}.alert-webhook.failed{color:var(--accent)}.no-selection{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text2)}.no-sel-icon{font-size:48px;margin-bottom:16px}.no-selection h3{font-size:18px;font-weight:700;margin-bottom:8px;color:var(--text)}.no-selection p{font-size:13px}.alert-detail{max-width:720px}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:22px;margin-bottom:26px;border-bottom:2px solid}.detail-type{font-size:11px;font-weight:700;font-family:var(--font-mono);letter-spacing:2px;margin-bottom:8px}.detail-hospital{font-size:26px;font-weight:800;margin-bottom:5px}.detail-time{font-size:11px;color:var(--text2);font-family:var(--font-mono)}.detail-eta{font-size:56px;font-weight:800;font-family:var(--font-mono);line-height:1;text-align:right}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}.info-box{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:var(--bg3);border:1px solid var(--border);border-radius:10px}.info-icon{font-size:20px;flex-shrink:0}.info-label{font-size:10px;color:var(--text2);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:1px;margin-bottom:4px}.info-value{font-size:14px;font-weight:700;color:var(--text)}.action-checklist{margin-bottom:20px}.checklist-title{font-size:12px;font-weight:700;margin-bottom:12px;font-family:var(--font-mono);color:var(--yellow);text-transform:uppercase;letter-spacing:1px}.checklist-item{display:flex;align-items:center;gap:12px;padding:11px 16px;border-radius:8px;cursor:pointer;border:1px solid var(--border);background:var(--bg3);margin-bottom:6px;transition:all .2s;font-size:13px;color:var(--text)}.checklist-item:hover{border-color:var(--accent2);background:#22c55e0a}.checklist-item.done{opacity:.45;text-decoration:line-through;color:var(--text2)}.check-box{width:20px;height:20px;border-radius:5px;border:2px solid var(--border2);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;transition:all .2s}.checklist-item.done .check-box{background:var(--accent2);border-color:var(--accent2);color:#000}.map-link{display:block;padding:13px 20px;background:var(--bg3);border:1px solid #e2e8f0;border-radius:10px;color:var(--accent3);text-decoration:none;font-size:13px;font-weight:600;transition:all .2s;text-align:center}.map-link:hover{border-color:var(--accent3);background:#3b82f614}@keyframes blink-dot{0%,to{opacity:1}50%{opacity:.15}}@keyframes blink-ring{0%,to{opacity:.5;transform:translate(-50%,-50%) scale(1)}50%{opacity:0;transform:translate(-50%,-50%) scale(1.8)}}@keyframes ripple{0%{transform:translate(-50%,-50%) scale(1);opacity:.6}to{transform:translate(-50%,-50%) scale(3.5);opacity:0}}@keyframes pulse-map{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.6}}
