@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=Inter:wght@300;400;500;600&display=swap";:root{--primary:#4a90d9;--primary-dark:#2e74c0;--primary-light:#e8f4fd;--primary-glow:#4a90d940;--secondary:#52c99b;--secondary-dark:#1e7e5b;--secondary-light:#e8f9f3;--secondary-glow:#52c99b40;--accent:#7b68ee;--accent-light:#f0eeff;--mint:#a8eddc;--sky:#bfe0f5;--emergency:#ff4757;--emergency-light:#fff0f1;--warning:#ffa502;--warning-light:#fff8ec;--success:#2ed573;--success-light:#edfff6;--info:#1e90ff;--triage-green:#27ae60;--triage-yellow:#f39c12;--triage-orange:#e67e22;--triage-red:#e74c3c;--white:#fff;--surface:#fff;--surface-dim:#f8fafc;--bg:#f0f5fa;--bg-secondary:#e8eef4;--text-primary:#1a2332;--text-secondary:#4b5b6e;--text-tertiary:#566578;--text-inverse:#fff;--border:#e2e8f0;--border-light:#f1f5f9;--divider:#eef2f7;--shadow-xs:0 1px 3px #1a23320f;--shadow-sm:0 2px 8px #1a233214;--shadow-md:0 4px 16px #1a23321a;--shadow-lg:0 8px 30px #1a23321f;--shadow-xl:0 16px 50px #1a233226;--shadow-primary:0 8px 24px #4a90d94d;--shadow-secondary:0 8px 24px #52c99b4d;--shadow-emergency:0 8px 24px #ff475759;--glass-bg:#ffffffb8;--glass-border:#ffffff73;--glass-backdrop:blur(20px) saturate(180%);--radius-xs:6px;--radius-sm:10px;--radius-md:16px;--radius-lg:20px;--radius-xl:28px;--radius-2xl:36px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--font-display:"Plus Jakarta Sans", sans-serif;--font-body:"Inter", sans-serif;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--z-base:1;--z-dropdown:100;--z-sticky:200;--z-overlay:300;--z-modal:400;--z-toast:500;--z-top:600;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}[data-theme=dark]{--surface:#1e2535;--surface-dim:#161d2b;--bg:#111827;--bg-secondary:#1a2236;--text-primary:#f0f5fa;--text-secondary:#94a3b8;--text-tertiary:#8fa0b5;--border:#2d3748;--border-light:#1e2535;--divider:#243049;--glass-bg:#1e2535cc;--glass-border:#ffffff14;--shadow-xs:0 1px 3px #0000004d;--shadow-sm:0 2px 8px #00000059;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 30px #00000073;--shadow-xl:0 16px 50px #00000080;--primary-light:#4a90d91f;--secondary-light:#52c99b1f;--accent-light:#7b68ee1f;--emergency-light:#ff47571f;--warning-light:#ffa5021f;--success-light:#2ed5731f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);color:var(--text-primary);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;font-size:15px;line-height:1.6;overflow-x:hidden}#app{width:100%;min-height:100dvh;position:relative}.app-frame{background:var(--bg);max-width:430px;min-height:100dvh;box-shadow:var(--shadow-xl);margin:0 auto;position:relative;overflow:hidden}@media (width>=431px) and (width<=767px){#app{max-width:430px;box-shadow:var(--shadow-xl);background:var(--bg);margin:0 auto;overflow:hidden}}@media (width>=500px){body{background:linear-gradient(135deg,#e8f4fd 0%,#e8f9f3 50%,#f0eeff 100%);justify-content:center;align-items:flex-start;min-height:100vh;padding:0;display:flex}[data-theme=dark] body{background:linear-gradient(135deg,#0d1117 0%,#111827 100%)}}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--text-primary);font-weight:700;line-height:1.2}.text-display{font-size:32px;font-weight:800;font-family:var(--font-display)}.text-h1{font-size:26px;font-weight:700;font-family:var(--font-display)}.text-h2{font-size:22px;font-weight:700;font-family:var(--font-display)}.text-h3{font-size:18px;font-weight:600;font-family:var(--font-display)}.text-h4{font-size:16px;font-weight:600;font-family:var(--font-display)}.text-body{font-size:15px;font-weight:400}.text-body-sm{font-size:13px;font-weight:400}.text-caption{color:var(--text-secondary);font-size:12px;font-weight:400}.text-label{letter-spacing:.6px;text-transform:uppercase;color:var(--text-tertiary);font-size:11px;font-weight:600}.text-primary{color:var(--primary)}.text-secondary{color:var(--secondary)}.text-accent{color:var(--accent)}.text-emergency{color:var(--emergency)}.text-warning{color:var(--warning)}.text-success{color:var(--success)}.text-muted{color:var(--text-secondary)}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.flex-1{flex:1}.w-full{width:100%}.h-full{height:100%}.screen{background:var(--bg);flex-direction:column;width:100%;min-height:100dvh;display:flex;position:relative}.screen-content{-webkit-overflow-scrolling:touch;padding-bottom:calc(80px + var(--safe-bottom));flex:1;overflow-y:auto}.screen-content::-webkit-scrollbar{display:none}.screen-content{scrollbar-width:none}.page-header{padding:calc(var(--space-4) + var(--safe-top)) var(--space-5) var(--space-4);background:var(--surface);border-bottom:1px solid var(--border-light);align-items:center;gap:var(--space-3);z-index:var(--z-sticky);-webkit-backdrop-filter:blur(10px);display:flex;position:sticky;top:0}.page-header.transparent{background:0 0;border-bottom:none}.back-btn{border-radius:var(--radius-sm);background:var(--surface-dim);border:1px solid var(--border);cursor:pointer;width:44px;min-width:44px;height:44px;min-height:44px;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.back-btn:hover{background:var(--primary-light);border-color:var(--primary)}.back-btn:active{transform:scale(.94)}.page-title{font-family:var(--font-display);color:var(--text-primary);flex:1;font-size:18px;font-weight:700}.card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);transition:all var(--transition-normal)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.card-glass{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-backdrop);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.card-gradient{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);border-radius:var(--radius-lg);box-shadow:var(--shadow-primary);color:#fff}.card-gradient-green{background:linear-gradient(135deg, var(--secondary) 0%, var(--secondary-dark) 100%);border-radius:var(--radius-lg);box-shadow:var(--shadow-secondary);color:#fff}.card-sm{padding:var(--space-4);border-radius:var(--radius-md)}.btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-display);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-normal);white-space:nowrap;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;letter-spacing:.2px;border:none;padding:14px 28px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";opacity:0;transition:opacity var(--transition-fast);background:#fff;position:absolute;inset:0}.btn:hover:after{opacity:.1}.btn:active{transform:scale(.97)}.btn:active:after{opacity:.15}.btn-primary{color:#fff;box-shadow:var(--shadow-primary);background:linear-gradient(135deg,#2e74c0 0%,#235ea0 100%)}.btn-primary:hover{box-shadow:0 10px 32px #4a90d966}.btn-secondary{color:#fff;box-shadow:var(--shadow-secondary);background:linear-gradient(135deg,#1e7e5b 0%,#166548 100%)}.btn-emergency{color:#fff;box-shadow:var(--shadow-emergency);background:linear-gradient(135deg,#d92b3a 0%,#b81d2b 100%)}.btn-outline{color:#2b6cb0;background:0 0;border:1.5px solid #2b6cb0}.btn-outline:hover{background:var(--primary-light)}.btn-ghost{background:var(--surface-dim);color:var(--text-primary);border:1px solid var(--border)}.btn-ghost:hover{background:var(--border)}.btn-sm{padding:10px 20px;font-size:13px}.btn-xs{padding:7px 14px;font-size:12px}.btn-lg{padding:16px 36px;font-size:16px}.btn-xl{border-radius:var(--radius-full);padding:18px 40px;font-size:17px}.btn-icon{border-radius:var(--radius-md);width:44px;height:44px;padding:0}.btn-icon-sm{border-radius:var(--radius-sm);width:44px;min-width:44px;height:44px;min-height:44px;padding:0}.btn-full{width:100%}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-label{font-family:var(--font-display);color:var(--text-secondary);letter-spacing:.3px;font-size:13px;font-weight:600}.form-input{width:100%;font-family:var(--font-body);color:var(--text-primary);background:var(--surface-dim);border:1.5px solid var(--border);border-radius:var(--radius-md);transition:all var(--transition-fast);-webkit-appearance:none;outline:none;padding:14px 16px;font-size:15px}.form-input::placeholder{color:var(--text-tertiary)}.form-input:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px var(--primary-glow)}.form-input.error{border-color:var(--emergency);box-shadow:0 0 0 3px #ff475726}.form-input.success{border-color:var(--secondary)}.form-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%236B7A8D' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;padding-right:40px}.form-error{color:var(--emergency);align-items:center;gap:4px;font-size:12px;display:flex}.input-group{align-items:center;display:flex;position:relative}.input-group .form-input{padding-left:44px}.input-group .input-icon{color:var(--text-tertiary);pointer-events:none;z-index:1;justify-content:center;align-items:center;display:inline-flex;position:absolute;left:14px}.input-group .input-suffix{color:var(--text-tertiary);cursor:pointer;position:absolute;right:14px}.badge{border-radius:var(--radius-full);letter-spacing:.4px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.badge-primary{background:var(--primary-light);color:#225aa8}.badge-secondary{background:var(--secondary-light);color:#186a4d}.badge-accent{background:var(--accent-light);color:#5643c7}.badge-emergency{background:var(--emergency-light);color:#c21f2e}.badge-warning{background:var(--warning-light);color:#9a5500}.badge-success{background:var(--success-light);color:#166534}.badge-triage-green{color:var(--triage-green);background:#27ae601f}.badge-triage-yellow{color:var(--triage-yellow);background:#f39c121f}.badge-triage-orange{color:var(--triage-orange);background:#e67e221f}.badge-triage-red{color:var(--triage-red);background:#e74c3c1f}.avatar{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--primary-light), var(--primary-glow));width:44px;height:44px;font-family:var(--font-display);color:var(--primary);flex-shrink:0;justify-content:center;align-items:center;font-size:16px;font-weight:700;display:flex;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar-lg{width:60px;height:60px;font-size:22px}.avatar-xl{width:80px;height:80px;font-size:28px}.avatar-sm{width:36px;height:36px;font-size:13px}.avatar-xs{width:28px;height:28px;font-size:11px}.chip{align-items:center;gap:var(--space-1);border-radius:var(--radius-full);background:var(--surface-dim);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);padding:6px 14px;font-size:13px;font-weight:500;display:inline-flex}.chip.active{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.chip:hover{border-color:var(--primary);color:var(--primary)}.divider{background:var(--divider);width:100%;height:1px}.divider-text{align-items:center;gap:var(--space-3);color:var(--text-tertiary);font-size:13px;display:flex}.divider-text:before,.divider-text:after{content:"";background:var(--border);flex:1;height:1px}.list-item{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--surface);border-bottom:1px solid var(--divider);cursor:pointer;transition:background var(--transition-fast);display:flex}.list-item:first-child{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.list-item:last-child{border-radius:0 0 var(--radius-lg) var(--radius-lg);border-bottom:none}.list-item:only-child{border-radius:var(--radius-lg)}.list-item:hover{background:var(--surface-dim)}.list-item:active{background:var(--primary-light)}.icon-box{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.icon-box-sm{border-radius:var(--radius-sm);width:36px;height:36px}.icon-box-lg{border-radius:var(--radius-md);width:56px;height:56px}.icon-box-primary{background:var(--primary-light);color:var(--primary)}.icon-box-secondary{background:var(--secondary-light);color:var(--secondary-dark)}.icon-box-accent{background:var(--accent-light);color:var(--accent)}.icon-box-emergency{background:var(--emergency-light);color:var(--emergency)}.icon-box-warning{background:var(--warning-light);color:var(--warning)}.icon-box-success{background:var(--success-light);color:#1e9950}.bottom-nav{background:var(--glass-bg);width:100%;max-width:430px;-webkit-backdrop-filter:var(--glass-backdrop);border-top:1px solid var(--border-light);padding:8px var(--space-2) calc(8px + var(--safe-bottom));z-index:var(--z-sticky);justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -4px 20px #1a233214}.nav-item{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);color:var(--text-tertiary);-webkit-tap-highlight-color:transparent;flex-direction:column;flex:1;align-items:center;gap:3px;padding:8px 12px;text-decoration:none;display:flex;position:relative}.nav-item.active{color:var(--primary)}.nav-item.active .nav-dot{background:var(--primary);border-radius:var(--radius-full);width:20px;height:3px;position:absolute;top:-1px}.nav-label{font-size:10px;font-weight:600;font-family:var(--font-display);letter-spacing:.3px}.nav-center-btn{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--emergency) 0%, #c62828 100%);color:#fff;cursor:pointer;width:54px;height:54px;box-shadow:var(--shadow-emergency);transition:all var(--transition-spring);flex-shrink:0;justify-content:center;align-items:center;margin-bottom:4px;animation:2s ease-in-out infinite pulse-emergency;display:flex}.nav-center-btn:hover{transform:scale(1.08)}.nav-center-btn:active{transform:scale(.96)}.progress-bar{background:var(--bg-secondary);border-radius:var(--radius-full);width:100%;height:4px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--primary) 0%, var(--secondary) 100%);border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.step-indicator{align-items:center;gap:var(--space-2);display:flex}.step-dot{border-radius:var(--radius-full);background:var(--border);width:8px;height:8px;transition:all var(--transition-normal)}.step-dot.active{background:var(--primary);width:24px}.step-dot.done{background:var(--secondary)}.toggle{cursor:pointer;flex-shrink:0;width:50px;height:28px;position:relative}.toggle input{opacity:0;width:0;height:0}.toggle-track{background:var(--border);border-radius:var(--radius-full);transition:all var(--transition-normal);position:absolute;inset:0}.toggle input:checked+.toggle-track{background:var(--primary)}.toggle-thumb{border-radius:var(--radius-full);width:22px;height:22px;transition:all var(--transition-normal);box-shadow:var(--shadow-sm);background:#fff;position:absolute;top:3px;left:3px}.toggle input:checked~.toggle-thumb{left:25px}.skeleton{background:linear-gradient(90deg, var(--bg-secondary) 25%, var(--border-light) 50%, var(--bg-secondary) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s ease-in-out infinite skeleton-loading}.skeleton-stack{flex-direction:column;gap:12px;display:flex}.skeleton-card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-4);border:1px solid var(--border-light);box-shadow:var(--shadow-sm)}.skeleton-row{align-items:center;gap:12px;display:flex}.skeleton-avatar{border-radius:var(--radius-full);flex-shrink:0;width:44px;height:44px}.skeleton-line{width:100%;height:12px;margin-bottom:8px}.skeleton-line:last-child{margin-bottom:0}.skeleton-line--title{width:58%;height:16px}.skeleton-line--medium{width:78%}.skeleton-line--short{width:38%}.skeleton-stat{border-radius:var(--radius-md);height:72px}.empty-state,.error-state{text-align:center;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);padding:32px 20px}.empty-state{border:1px dashed var(--border)}.error-state{border:1px solid #ff47574d}.empty-state-illustration{background:var(--primary-light);width:68px;height:68px;color:var(--primary);border-radius:20px;justify-content:center;align-items:center;margin:0 auto 14px;display:flex}.error-state-icon{border-radius:var(--radius-full);background:var(--emergency-light);width:56px;height:56px;color:var(--emergency);justify-content:center;align-items:center;margin:0 auto 14px;display:flex}.empty-state-title,.error-state-title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:6px;font-size:16px;font-weight:700}.empty-state-desc,.error-state-desc{color:var(--text-secondary);max-width:280px;margin:0 auto;font-size:13px;line-height:1.5}.empty-state-action,.error-state-action{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px;display:flex}.section{padding:var(--space-5) var(--space-5) 0}.section-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.section-title{font-family:var(--font-display);color:var(--text-primary);font-size:17px;font-weight:700}.section-link{color:var(--primary);cursor:pointer;font-size:13px;font-weight:600;text-decoration:none}.grid-2{gap:var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}.map-container{border-radius:var(--radius-lg);border:1px solid var(--border-light);width:100%;height:260px;box-shadow:var(--shadow-sm);overflow:hidden}#map{width:100%;height:100%}.chat-bubble{border-radius:18px;max-width:78%;padding:12px 16px;font-size:14px;line-height:1.5;animation:.25s slideUp;position:relative}.chat-bubble.user{background:var(--primary);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.chat-bubble.ai{background:var(--surface);color:var(--text-primary);border:1px solid var(--border);box-shadow:var(--shadow-xs);border-bottom-left-radius:4px;align-self:flex-start}#toast-container{z-index:var(--z-toast);gap:var(--space-2);pointer-events:none;flex-direction:column;align-items:center;width:380px;max-width:calc(100vw - 32px);display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%)}.toast{align-items:center;gap:var(--space-3);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-light);color:var(--text-primary);pointer-events:all;animation:toastIn .35s var(--transition-spring) forwards;width:100%;padding:14px 18px;font-size:14px;font-weight:500;display:flex}.toast.success{border-left:3px solid var(--success)}.toast.error{border-left:3px solid var(--emergency)}.toast.warning{border-left:3px solid var(--warning)}.toast.info{border-left:3px solid var(--primary)}.toast.removing{animation:.3s forwards toastOut}#modal-container{z-index:var(--z-modal);pointer-events:none;position:fixed;inset:0}.modal-overlay{-webkit-backdrop-filter:blur(4px);pointer-events:all;background:#1a233299;animation:.25s fadeIn;position:absolute;inset:0}.modal-sheet{background:var(--surface);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;width:100%;max-width:430px;padding:var(--space-2) var(--space-5) calc(var(--space-8) + var(--safe-bottom));max-height:90dvh;animation:.35s cubic-bezier(.34,1.56,.64,1) slideUp;position:absolute;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%)}.modal-handle{background:var(--border);border-radius:var(--radius-full);width:36px;height:4px;margin:10px auto var(--space-5)}.scroll-x{gap:var(--space-3);scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:4px 2px 8px;display:flex;overflow-x:auto}.scroll-x::-webkit-scrollbar{display:none}.score-ring{width:80px;height:80px;position:relative}.score-ring svg{transform:rotate(-90deg)}.score-ring .score-text{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.sos-btn{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--emergency) 0%, #c62828 100%);color:#fff;width:120px;height:120px;font-family:var(--font-display);cursor:pointer;transition:transform var(--transition-spring);border:none;outline:none;flex-direction:column;justify-content:center;align-items:center;font-size:28px;font-weight:800;animation:2s ease-in-out infinite pulse-ring;display:flex;box-shadow:0 0 0 10px #ff475726,0 0 0 20px #ff475714}.sos-btn:active{transform:scale(.95)}.leaflet-container{font-family:var(--font-body)!important}.leaflet-popup-content-wrapper{border-radius:var(--radius-md)!important;box-shadow:var(--shadow-lg)!important;border:1px solid var(--border-light)!important}.leaflet-popup-content{font-family:var(--font-body)!important;margin:12px 14px!important;font-size:13px!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideRight{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes scaleInSpring{0%{opacity:0;transform:scale(.7)}70%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes toastIn{0%{opacity:0;transform:translateY(-20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-10px)scale(.95)}}@keyframes pulse-ring{0%{box-shadow:0 0 #ff47574d,0 0 #ff475726}70%{box-shadow:0 0 0 12px #ff475700,0 0 0 24px #ff475700}to{box-shadow:0 0 #ff475700,0 0 #ff475700}}@keyframes pulse-emergency{0%,to{box-shadow:var(--shadow-emergency)}50%{box-shadow:0 8px 30px #ff47578c}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.15)}28%{transform:scale(1)}42%{transform:scale(1.1)}70%{transform:scale(1)}}@keyframes wave{0%,to{transform:scaleY(1)}50%{transform:scaleY(2)}}.animate-fade-in{animation:.4s forwards fadeIn}.animate-slide-up{animation:.4s forwards slideUp}.animate-scale-in{animation:scaleIn .35s var(--transition-spring) forwards}.animate-float{animation:3s ease-in-out infinite float}.animate-heartbeat{animation:1.5s ease-in-out infinite heartbeat}.animate-spin{animation:1.2s linear infinite spin}.splash-screen{z-index:var(--z-top);background:linear-gradient(160deg,#1a2332 0%,#1e3a5f 40%,#0d4f3c 100%);flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.splash-logo{align-items:center;gap:var(--space-4);animation:scaleInSpring .8s var(--transition-spring) .2s both;flex-direction:column;display:flex}.splash-icon{background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);border-radius:28px;justify-content:center;align-items:center;width:96px;height:96px;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 50px #4a90d980}.splash-icon:after{content:"";background:#ffffff40;width:60%;height:150%;animation:2s ease-in-out 1s infinite shimmer;position:absolute;top:-50%;left:-50%;transform:rotate(25deg)}.splash-title{font-family:var(--font-display);color:#fff;letter-spacing:-.5px;font-size:36px;font-weight:800}.splash-tagline{font-family:var(--font-body);color:#ffffffa6;letter-spacing:.5px;font-size:14px;animation:.5s 1s both fadeIn}.splash-loader{gap:6px;animation:.3s .8s both fadeIn;display:flex;position:absolute;bottom:80px}.splash-dot{border-radius:var(--radius-full);background:#fff6;width:7px;height:7px;animation:1.2s ease-in-out infinite wave}.splash-dot:nth-child(2){animation-delay:.15s}.splash-dot:nth-child(3){animation-delay:.3s}.bg-gradient-blue{background:linear-gradient(135deg,#e8f4fd 0%,#dbeeff 100%)}.bg-gradient-green{background:linear-gradient(135deg,#e8f9f3 0%,#d6f5e8 100%)}.bg-gradient-purple{background:linear-gradient(135deg,#f0eeff 0%,#e6e0ff 100%)}.hidden{display:none!important}.invisible{visibility:hidden}.relative{position:relative}.absolute{position:absolute}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:var(--radius-full)}.text-center{text-align:center}.text-right{text-align:right}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.bold{font-weight:700}.semibold{font-weight:600}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cursor-pointer{cursor:pointer}.no-select{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.screen-shell{background:var(--bg);flex-direction:column;min-height:100dvh;display:flex}.auth-main{flex:1;width:100%;max-width:480px;margin:0 auto;padding:20px 20px 48px}.flex-wrap-gap{gap:var(--space-2);flex-wrap:wrap;display:flex}.spinner-inline{vertical-align:middle;border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:16px;height:16px;margin-right:8px;display:inline-block}.btn-glass-back{color:#fff;background:#ffffff26;border-color:#ffffff40}.btn-glass{color:#fff;background:#ffffff29;border:1px solid #ffffff47}.btn-glass:hover{background:#ffffff40}.header-spacer-sm{flex-shrink:0;width:38px}.header-spacer-md{flex-shrink:0;width:70px}.header-title-light{font-family:var(--font-display);color:#fff;font-size:17px;font-weight:700}.header-subtitle-light{color:#ffffffbf;font-size:12px}.modal-title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:4px;font-size:18px;font-weight:700}.modal-title-lg{font-family:var(--font-display);color:var(--text-primary);font-size:20px;font-weight:700}.modal-subtitle{color:var(--text-secondary);margin-bottom:20px;font-size:13px}.modal-section-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:600}.modal-summary-box{background:var(--surface-dim);border-radius:14px;margin-bottom:16px;padding:16px}.modal-divider{margin:4px 0}.landing-header{text-align:center;background:var(--surface);border-bottom:1px solid var(--border-light);box-shadow:var(--shadow-xs);padding:28px 24px 20px}.landing-brand-row{align-items:center;gap:12px;margin-bottom:8px;display:inline-flex}.brand-logo-mark{background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);width:48px;height:48px;box-shadow:var(--shadow-sm);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.landing-title{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.5px;font-size:24px;font-weight:800;line-height:1.2}.landing-subtitle{color:var(--text-secondary);letter-spacing:.4px;font-size:12px;font-weight:600}.landing-lead{color:var(--text-secondary);max-width:380px;margin:10px auto 0;font-size:14px;line-height:1.5}.active-session-banner{background:var(--primary-light);text-align:left;border:1px solid #4a90d94d;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;max-width:400px;margin:14px auto 0;padding:12px 16px;display:flex}.active-session-label{color:var(--primary);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:700}.active-session-name{color:var(--text-primary);font-size:14px;font-weight:700}.active-session-role{color:var(--text-secondary);font-weight:500}.landing-heading-block{text-align:center;margin-bottom:24px}.landing-heading{font-family:var(--font-display);color:var(--text-primary);font-size:20px;font-weight:700}.landing-subheading{color:var(--text-secondary);margin-top:4px;font-size:13px}.landing-footer{text-align:center;border-top:1px solid var(--border-light);color:var(--text-tertiary);margin-top:36px;padding:16px 0;font-size:12px}.portal-icon--patient,.portal-pill--patient{background:var(--primary-light);color:var(--primary-dark)}.portal-cta--patient{color:var(--primary-dark)}.portal-icon--doctor,.portal-pill--doctor{background:var(--secondary-light);color:var(--secondary-dark)}.portal-cta--doctor{color:var(--secondary-dark)}.portal-icon--ambulance,.portal-pill--ambulance{background:var(--emergency-light);color:#9b2c2c}.portal-cta--ambulance{color:var(--emergency)}.consent-row{align-items:flex-start;gap:8px;display:flex}.consent-checkbox{accent-color:var(--primary);margin-top:3px}.consent-label{color:var(--text-secondary);cursor:pointer;font-size:12px;line-height:1.4}.forgot-modal-box{text-align:center;padding:20px}.forgot-modal-desc{color:var(--text-secondary);margin-bottom:20px;font-size:13px;line-height:1.5}.switch-profile-btn{color:#fff;background:#ffffff2e;border:1px solid #ffffff40;border-radius:12px;padding:4px 10px;font-size:11px}.score-unit{font-size:18px}.score-dot--active{background:var(--secondary)}.score-ring-overlay{text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.score-ring-num{color:#fff;font-size:20px;font-weight:800}.score-ring-caption{color:#ffffffb3;font-size:10px}.hospital-mini-rating-row{margin-top:4px}.hospital-mini-rating-val{font-size:11px;font-weight:600}.hospital-mini-emerg{color:var(--emergency);margin-top:3px;font-size:10px;font-weight:600}.blood-cta-card{cursor:pointer;padding:20px}.blood-cta-eyebrow{opacity:.85;margin-bottom:4px;font-size:13px}.blood-cta-title{font-family:var(--font-display);color:#fff;font-size:18px;font-weight:700}.blood-cta-sub{opacity:.85;margin-top:4px;font-size:13px}.blood-cta-icon{border-radius:var(--radius-full);background:#ffffff26;justify-content:center;align-items:center;width:60px;height:60px;display:flex}.qr-modal-info{background:var(--primary-light);text-align:center;border-radius:12px;margin-top:20px;padding:14px}.qr-modal-token{color:var(--primary);font-size:13px;font-weight:600}.qr-modal-meta{color:var(--text-secondary);margin-top:4px;font-size:12px}.appt-location-badge{color:var(--secondary);align-items:center;gap:4px;font-size:12px;display:flex}.appt-meta-row{align-items:center;gap:8px;margin-top:4px;display:flex}.modal-slot-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.pay-method-option{background:var(--surface-dim);cursor:pointer;border:1.5px solid #0000;border-radius:12px;align-items:center;gap:12px;padding:12px;display:flex}.pay-method-option--active{border-color:var(--primary)}.booking-confirm-box{text-align:center;padding:20px 0}.booking-success-icon{background:var(--success-light);width:80px;height:80px;animation:scaleInSpring .5s var(--transition-spring);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 20px;display:flex}.booking-confirm-title{font-family:var(--font-display);color:var(--text-primary);font-size:22px;font-weight:800}.sos-screen{color:#fff;min-height:100dvh;padding:calc(20px + var(--safe-top)) 24px calc(40px + var(--safe-bottom));background:linear-gradient(160deg,#1a0a0a 0%,#2d0b0e 50%,#1a2332 100%);justify-content:space-between}.sos-back-btn{background:#ffffff1a;border-color:#fff3}.sos-header-title{font-family:var(--font-display);color:var(--emergency);font-size:16px;font-weight:700}.sos-hero{text-align:center;margin-top:30px}.sos-hero-title{font-family:var(--font-display);color:#fff;font-size:28px;font-weight:800}.sos-hero-sub{color:#ffffffb8;margin-top:6px;font-size:14px}.sos-center{flex-direction:column;justify-content:center;align-items:center;display:flex}.sos-press-label{opacity:.85;margin-top:-2px;font-size:11px;font-weight:600}.sos-countdown-text{color:#ffffffd1;margin-top:28px;font-size:15px;font-weight:600}.sos-countdown-urgent{color:var(--emergency);font-size:20px;font-weight:800}.sos-location-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff14;border-radius:16px;align-items:center;gap:12px;padding:14px;display:flex}.sos-location-title{color:#fff;font-size:13px;font-weight:600}.sos-location-coords{color:#ffffffa6;font-size:11px}.sos-cancel-btn{color:#fff;background:#ffffff26;border:none}.sos-dispatch-screen{color:#fff;background:#111827;flex-direction:column;justify-content:space-between;min-height:100dvh;padding:20px;display:flex}.sos-dispatch-badge{background:var(--emergency);border-radius:50%;justify-content:center;align-items:center;width:70px;height:70px;margin:0 auto 12px;font-size:32px;animation:1.5s infinite pulse-ring;display:flex;box-shadow:0 0 30px #ff475799}.sos-dispatch-map{border-radius:18px;width:100%;height:240px;margin:16px 0;overflow:hidden;box-shadow:0 8px 24px #0006}.sos-dispatch-card{color:#fff;background:#ffffff14;border:1px solid #ffffff26;margin-bottom:16px;padding:16px}.sos-eta-label{color:#ffffffb8;font-size:12px;font-weight:700}.sos-eta-value{font-family:var(--font-display);color:var(--secondary);font-size:22px;font-weight:800}.sos-progress-dark{background:#ffffff26}.sos-dispatch-meta{color:#ffffffd9;font-size:12px}.triage-header{background:linear-gradient(135deg,#7b68ee,#5a4fcf);border-bottom:none}.triage-status{color:#fffc;align-items:center;gap:5px;font-size:12px;display:flex}.triage-status-dot{background:var(--success);border-radius:50%;width:7px;height:7px;animation:1.5s infinite pulse-ring}.triage-badge-pill{color:#fff;font-size:11px;font-weight:700;font-family:var(--font-display);background:#ffffff26;border-radius:20px;padding:6px 12px}.triage-disclaimer{background:var(--warning-light);border-bottom:1px solid #ffa50240;align-items:center;gap:8px;padding:10px 16px;display:flex}.triage-disclaimer-text{color:#b45309;font-size:12px;font-weight:500}.triage-chat-area{flex-direction:column;gap:12px;padding:16px 16px 220px;display:flex}.triage-input-dock{width:100%;max-width:430px;padding:12px 16px calc(12px + var(--safe-bottom));background:var(--surface);border-top:1px solid var(--border-light);position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -4px 20px #1a233214}.triage-result-icon{border-radius:16px;justify-content:center;align-items:center;width:52px;height:52px;font-size:24px;display:flex}.triage-result-msg{color:var(--text-primary);margin-bottom:16px;font-size:14px;line-height:1.6}.amb-controls-panel{background:var(--surface);width:100%;max-width:430px;padding:18px 20px calc(18px + var(--safe-bottom));z-index:20;border-radius:24px 24px 0 0;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -8px 30px #0003}.sidebar-brand,.sidebar-sos-label,.bottom-nav--desktop-only{display:none}.sidebar-brand-mark{background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.sidebar-brand-title{font-family:var(--font-display);color:var(--text-primary);font-size:16px;font-weight:800;line-height:1.1}.sidebar-brand-sub{color:var(--text-secondary);font-size:11px;font-weight:600}@media (width>=768px){#app{border-radius:var(--radius-2xl);width:calc(100% - 32px);max-width:760px;min-height:calc(100dvh - 40px);box-shadow:var(--shadow-xl);background:var(--bg);margin:20px auto;overflow:clip}.app-frame{max-width:760px}.screen{min-height:calc(100dvh - 40px)}.auth-main{max-width:580px;padding:28px 24px 48px}.bottom-nav{border-radius:0 0 var(--radius-2xl) var(--radius-2xl);max-width:760px}.triage-input-dock,.amb-controls-panel{width:100%;max-width:none;position:sticky;bottom:0;left:auto;transform:none}.modal-sheet{border-radius:var(--radius-2xl);max-width:540px;padding:var(--space-5) var(--space-6) var(--space-6);max-height:85dvh;animation:.25s scaleIn;bottom:50%;transform:translate(-50%,50%)}.modal-handle{display:none}.map-container{height:320px}#hospital-cards,#meds-list-container>div,#donors-list-container>div,#doc-queue-container>div,#video-doctors{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid!important}.empty-state,.error-state{grid-column:1/-1}}@media (width>=1024px){#app{width:calc(100% - 48px);max-width:1120px;min-height:calc(100dvh - 48px);margin:24px auto}.app-frame{max-width:1120px}.screen{min-height:calc(100dvh - 48px)}.auth-main{max-width:640px}.grid-4{gap:var(--space-4)}.screen:has(>.bottom-nav){grid-template-rows:auto 1fr;grid-template-columns:236px minmax(0,1fr);align-items:stretch;display:grid}.screen:has(>.bottom-nav)>:not(.bottom-nav){grid-column:2;min-width:0}.screen:has(>.bottom-nav)>.screen-content{max-width:none!important;padding-bottom:40px!important}.screen:has(>.bottom-nav)>.bottom-nav{border-top:none;border-right:1px solid var(--border-light);border-radius:var(--radius-2xl) 0 0 var(--radius-2xl);background:var(--surface);width:236px;max-width:none;height:calc(100dvh - 48px);box-shadow:none;z-index:5;flex-direction:column;grid-area:1/1/span 12;justify-content:flex-start;align-items:stretch;gap:6px;padding:20px 14px;display:flex;position:sticky;top:24px;bottom:auto;left:auto;transform:none}.screen:has(>.bottom-nav)>.bottom-nav.bottom-nav--desktop-only{border-top:none;border-right:1px solid var(--border-light);border-radius:var(--radius-2xl) 0 0 var(--radius-2xl);background:var(--surface);width:236px;max-width:none;height:calc(100dvh - 48px);box-shadow:none;z-index:5;flex-direction:column;grid-area:1/1/span 12;justify-content:flex-start;align-items:stretch;gap:6px;padding:20px 14px;display:flex;position:sticky;top:24px;bottom:auto;left:auto;transform:none}.sidebar-brand{border:0;border-bottom:1px solid var(--border-light);border-radius:var(--radius-md) var(--radius-md) 0 0;text-align:left;width:100%;font:inherit;cursor:pointer;transition:background var(--transition-fast), transform var(--transition-fast);background:0 0;align-items:center;gap:10px;margin-bottom:8px;padding:8px 10px 14px;display:flex}.sidebar-brand:hover{background:var(--primary-light)}.sidebar-brand:active{transform:scale(.98)}.sidebar-brand:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sidebar-brand-mark{transition:transform var(--transition-fast)}.sidebar-brand:hover .sidebar-brand-mark{transform:scale(1.05)}.bottom-nav .nav-item{border-radius:var(--radius-md);flex-direction:row;flex:none;justify-content:flex-start;gap:12px;padding:12px 14px}.bottom-nav .nav-item.active{background:var(--primary-light)}.bottom-nav .nav-item.active .nav-dot{width:4px;height:22px;top:50%;left:0;transform:translateY(-50%)}.bottom-nav .nav-label{font-size:14px}.bottom-nav .nav-center-btn{border-radius:var(--radius-md);order:10;gap:10px;width:100%;height:48px;margin-top:auto;margin-bottom:0;padding:0 16px}.sidebar-sos-label{font-family:var(--font-display);color:#fff;font-size:14px;font-weight:700;display:inline}}@keyframes pageEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes cardStaggerIn{0%{opacity:0;transform:translateY(12px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.page-enter{animation:.24s cubic-bezier(.22,1,.36,1) both pageEnter}.stagger-grid>*,.screen-content .card,.screen-content .hosp-card,.screen-content .med-card,.screen-content .appointment-card,.screen-content .hospital-mini-card,.screen-content .quick-action{animation:.28s cubic-bezier(.22,1,.36,1) both cardStaggerIn}.stagger-grid>:first-child,.screen-content .card:first-child,.screen-content .hosp-card:first-child,.screen-content .med-card:first-child,.screen-content .hospital-mini-card:first-child,.screen-content .quick-action:first-child{animation-delay:20ms}.stagger-grid>:nth-child(2),.screen-content .card:nth-child(2),.screen-content .hosp-card:nth-child(2),.screen-content .med-card:nth-child(2),.screen-content .hospital-mini-card:nth-child(2),.screen-content .quick-action:nth-child(2){animation-delay:50ms}.stagger-grid>:nth-child(3),.screen-content .card:nth-child(3),.screen-content .hosp-card:nth-child(3),.screen-content .med-card:nth-child(3),.screen-content .hospital-mini-card:nth-child(3),.screen-content .quick-action:nth-child(3){animation-delay:80ms}.stagger-grid>:nth-child(4),.screen-content .card:nth-child(4),.screen-content .hosp-card:nth-child(4),.screen-content .med-card:nth-child(4),.screen-content .hospital-mini-card:nth-child(4),.screen-content .quick-action:nth-child(4){animation-delay:.11s}.stagger-grid>:nth-child(5),.screen-content .card:nth-child(5),.screen-content .hosp-card:nth-child(5),.screen-content .med-card:nth-child(5),.screen-content .quick-action:nth-child(5){animation-delay:.14s}.stagger-grid>:nth-child(6),.screen-content .card:nth-child(6),.screen-content .quick-action:nth-child(6){animation-delay:.17s}.stagger-grid>:nth-child(n+7),.screen-content .quick-action:nth-child(n+7){animation-delay:.2s}.btn,.chip,.nav-item,.back-btn,.btn-icon,.btn-icon-sm,.quick-action,.hosp-card,.med-card,.appointment-card,.hospital-mini-card{transition:transform .14s cubic-bezier(.22,1,.36,1),box-shadow .2s,background-color .2s,border-color .2s,opacity .2s}.btn:active,.chip:active,.nav-item:active,.back-btn:active,.btn-icon:active,.btn-icon-sm:active,.quick-action:active,.med-card:active,.appointment-card:active,.hosp-card:active,.hospital-mini-card:active{transform:scale(.97)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.page-enter,.stagger-grid>*,.screen-content .card,.screen-content .hosp-card,.screen-content .med-card,.screen-content .appointment-card,.screen-content .hospital-mini-card,.screen-content .quick-action{opacity:1!important;animation:none!important;transform:none!important}}.account-menu-wrap{position:relative}.account-avatar-btn{cursor:pointer;border:2px solid #ffffff47;padding:0;transition:transform .14s,box-shadow .2s}.account-avatar-btn:hover{box-shadow:0 4px 12px #00000038}.account-menu{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);width:228px;box-shadow:var(--shadow-lg);z-index:60;padding:6px;animation:.16s cubic-bezier(.22,1,.36,1) both cardStaggerIn;position:absolute;top:calc(100% + 10px);right:0}.account-menu-header{padding:8px 10px 6px}.account-menu-name{font-family:var(--font-display);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.account-menu-meta{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.account-menu-divider{background:var(--border-light);height:1px;margin:4px 2px}.account-menu-item{border-radius:var(--radius-md);width:100%;min-height:44px;color:var(--text-primary);font-family:var(--font-body);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:9px 10px;font-size:13px;font-weight:600;transition:background-color .15s,color .15s;display:flex}.account-menu-item:hover{background:var(--bg)}.account-menu-item--danger{color:var(--emergency)}.account-menu-item--danger:hover{background:var(--emergency-light)}.btn:disabled,button:disabled{opacity:.65;cursor:not-allowed}.password-field-wrap{align-items:center;display:flex;position:relative}.password-field-wrap .form-input{padding-right:46px}.password-toggle-btn{border-radius:var(--radius-md);width:44px;height:44px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:color .15s,background-color .15s;display:flex;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.password-toggle-btn:hover{color:var(--text-primary)}.password-strength{margin-top:6px}.password-strength-bars{grid-template-columns:repeat(4,1fr);gap:5px;display:grid}.password-strength-bar{border-radius:var(--radius-full);background:var(--border);height:4px;transition:background-color .2s}.password-strength-bar.active.weak{background:var(--emergency)}.password-strength-bar.active.fair{background:var(--warning)}.password-strength-bar.active.good{background:var(--primary)}.password-strength-bar.active.strong{background:var(--secondary)}.password-strength-label{color:var(--text-tertiary);margin-top:4px;font-size:11px;font-weight:600}.password-strength-label.weak{color:var(--emergency)}.password-strength-label.fair{color:var(--warning-dark)}.password-strength-label.good{color:var(--primary)}.password-strength-label.strong{color:var(--secondary-dark)}.form-error{margin-top:5px;font-weight:600}.demo-divider{color:var(--text-tertiary);letter-spacing:.6px;align-items:center;gap:10px;margin:18px 0 12px;font-size:11px;font-weight:700;display:flex}.demo-divider:before,.demo-divider:after{content:"";background:var(--border-light);flex:1;height:1px}.demo-login-box{background:var(--surface-dim);border:1px dashed var(--border);border-radius:var(--radius-md);padding:12px}.demo-creds-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.demo-creds-title{font-family:var(--font-display);color:var(--text-primary);font-size:12.5px;font-weight:700}.demo-creds-meta{color:var(--text-secondary);word-break:break-word;margin-top:2px;font-size:11.5px;line-height:1.45}.demo-creds-meta code{background:var(--surface);border:1px solid var(--border-light);color:var(--primary);border-radius:5px;padding:1px 5px;font-size:11px;font-weight:600}.demo-fill-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);min-width:52px;min-height:44px;color:var(--text-primary);cursor:pointer;flex-shrink:0;padding:6px 12px;font-size:12px;font-weight:700;transition:background-color .15s,border-color .15s}.demo-fill-btn:hover{border-color:var(--primary);color:var(--primary)}.demo-continue-btn{border-color:var(--primary);color:var(--primary);background:var(--surface);font-weight:700}.demo-continue-btn:hover{background:var(--primary-light)}.triage-progress-wrap{background:var(--surface);border-bottom:1px solid var(--border-light);padding:10px 16px 12px}.triage-progress-meta{color:var(--text-secondary);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12px;font-weight:700;display:flex}.triage-back-row{justify-content:flex-start;margin-bottom:8px;display:flex}.triage-back-btn{color:var(--text-secondary);padding:6px 10px;font-size:12px;font-weight:600}.triage-back-btn:hover{color:var(--primary)}:focus-visible,button:focus-visible,a:focus-visible,[role=button]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2.5px solid var(--primary);outline-offset:2px}.btn,.btn-sm,.btn-xs,.chip,.blood-pill,.role-chip,.auth-tab,.option-btn,.date-chip,.time-slot,.nav-item,.header-icon-btn,.input-suffix-btn,.triage-back-btn{min-height:44px}.header-icon-btn,.input-suffix-btn{min-width:44px}[data-theme=dark] .btn-outline{color:#8fc0f3;border-color:#6ea8e5}[data-theme=dark] .badge-primary{color:#90c2f9}[data-theme=dark] .badge-secondary{color:#7ee2ba}[data-theme=dark] .badge-accent{color:#b4a8ff}[data-theme=dark] .badge-emergency{color:#ff8a95}[data-theme=dark] .badge-warning{color:#ffc65c}[data-theme=dark] .badge-success{color:#70e8a3}.verification-banner{background:var(--warning-light);border:1px solid #ffa50259;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;display:flex}.verification-banner--bar{z-index:10;border-left:none;border-right:none;border-radius:0;padding:8px 16px;position:relative}.verification-banner-title{color:#92400e;font-size:13px;font-weight:700}.verification-banner-sub{color:#b45309;font-size:11px}.verification-banner-btn{color:#fff;white-space:nowrap;background:#b45309;font-weight:700}[data-theme=dark] .verification-banner-title{color:#fde68a}[data-theme=dark] .verification-banner-sub,[data-theme=dark] .triage-disclaimer-text,[data-theme=dark] .password-strength-label.fair{color:#fcd34d}[data-theme=dark] .password-strength-label.strong{color:#7ee2ba}[data-theme=dark] .leaflet-popup-content-wrapper,[data-theme=dark] .leaflet-popup-tip{background:var(--surface);color:var(--text-primary)}.ui-icon{vertical-align:-.15em;flex-shrink:0;display:inline-block}.inline-icon-text{align-items:center;gap:6px;display:inline-flex}.btn .ui-icon{vertical-align:middle}.paypal-checkout-box{background:var(--surface-dim);border:1px solid var(--border);border-radius:var(--radius-md);text-align:left;margin-top:12px;padding:14px}.paypal-rate-banner{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding-bottom:10px;display:flex}.paypal-rate-label{text-transform:uppercase;letter-spacing:.4px;color:var(--text-tertiary);font-size:11px;font-weight:700}.paypal-rate-amounts{font-family:var(--font-display);color:var(--text-primary);align-items:center;gap:6px;margin-top:2px;font-size:15px;display:flex}.paypal-rate-note{color:var(--text-secondary);margin-top:2px;font-size:11px}.paypal-status-notice{text-align:left;border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:12px;line-height:1.45;display:flex}.paypal-status-notice--error{background:var(--emergency-light);color:var(--emergency);border:1px solid #ff47574d}.paypal-status-notice--warning{background:var(--warning-light);color:var(--text-primary);border:1px solid #ffa50259}.paypal-status-notice--info{background:var(--primary-light);color:var(--primary-dark);border:1px solid #4a90d94d}.paypal-status-title{font-size:13px;font-weight:700}.paypal-status-msg{color:var(--text-secondary);margin-top:2px}.paypal-success-card{background:var(--secondary-light);border-radius:var(--radius-md);text-align:left;border:1.5px solid #52c99b73;margin-top:10px;padding:14px}.paypal-success-header{align-items:center;gap:10px;display:flex}.paypal-success-icon{background:var(--surface);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.paypal-success-title{font-family:var(--font-display);color:var(--text-primary);font-size:15px;font-weight:800}.paypal-success-sub{color:var(--text-secondary);font-size:12px}.paypal-receipt-meta{border-top:1px solid #52c99b40;flex-direction:column;gap:6px;margin-top:12px;padding-top:10px;font-size:12px;display:flex}.paypal-receipt-meta>div{justify-content:space-between;gap:10px;display:flex}.paypal-receipt-meta span{color:var(--text-secondary)}.paypal-receipt-meta strong{color:var(--text-primary);text-align:right;word-break:break-all}[data-theme=dark] .paypal-status-notice--info{color:#93c5fd}.ai-explain-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1.5px solid #7b68ee47;padding:14px}.ai-explain-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.ai-explain-title-row{align-items:center;gap:8px;display:flex}.ai-explain-icon{color:#7b68ee;background:#7b68ee24;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.ai-explain-title{font-family:var(--font-display);color:var(--text-primary);font-size:14px;font-weight:700}.ai-explain-badge{text-transform:uppercase;letter-spacing:.3px;color:#6b5ce7;background:#7b68ee1f;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:700}[data-theme=dark] .ai-explain-badge{color:#c4b5fd;background:#7b68ee38}.ai-explain-skeleton{flex-direction:column;gap:8px;display:flex}.ai-explain-summary{color:var(--text-primary);margin:0 0 8px;font-size:13px;line-height:1.5}.ai-explain-why{color:var(--text-secondary);margin:0 0 10px;font-size:12px;line-height:1.45}.ai-explain-specialty-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.ai-explain-section{background:var(--surface-dim);border-radius:var(--radius-md);margin-top:8px;padding:10px 12px}.ai-explain-flags{background:#e85d5d14;border:1px solid #e85d5d33}.ai-explain-label{color:var(--text-primary);margin-bottom:6px;font-size:11px;font-weight:700}.ai-explain-list{color:var(--text-secondary);margin:0;padding-left:18px;font-size:12px;line-height:1.5}.ai-explain-list li+li{margin-top:3px}.ai-explain-disclaimer{border-top:1px solid var(--border);color:var(--text-muted);margin-top:10px;padding-top:8px;font-size:11px;line-height:1.4}.ai-chat-shell{background:var(--bg);flex-direction:column;height:100dvh;max-height:100dvh;display:flex}.ai-chat-thread{flex-direction:column;flex:1;gap:12px;min-height:0;padding:16px;display:flex;overflow-y:auto}@media (width>=1024px){.ai-chat-shell:has(>.bottom-nav){grid-template-rows:auto auto 1fr auto;grid-template-columns:236px minmax(0,1fr);height:calc(100dvh - 48px);max-height:calc(100dvh - 48px);display:grid}.ai-chat-shell>.ai-chat-thread{padding-bottom:16px!important}}.ai-welcome-card{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin:auto 0;padding:24px 18px}.ai-welcome-avatar{background:linear-gradient(135deg,#7b68ee,#5a4fcf);border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 12px;display:flex}.ai-welcome-title{font-family:var(--font-display);color:var(--text-primary);margin:0 0 6px;font-size:17px;font-weight:800}.ai-welcome-sub{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.5}.ai-msg-row{align-items:flex-end;gap:8px;display:flex}.ai-msg-row--user{justify-content:flex-end}.ai-msg-row--ai{justify-content:flex-start}.ai-msg-avatar{background:linear-gradient(135deg,#7b68ee,#5a4fcf);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.ai-msg-stack{flex-direction:column;gap:4px;max-width:82%;display:flex}.ai-msg-bubble{word-break:break-word;border-radius:16px;padding:11px 14px;font-size:13.5px;line-height:1.5}.ai-msg-bubble--user{background:var(--primary);color:#fff;border-bottom-right-radius:4px;max-width:82%}.ai-msg-bubble--ai{background:var(--surface);color:var(--text-primary);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-bottom-left-radius:4px}.ai-msg-bubble--loading{flex-direction:column;gap:7px;display:flex}.ai-msg-note{color:var(--text-muted);padding-left:4px;font-size:10.5px}.ai-error-card{border-radius:var(--radius-md);background:#e85d5d1a;border:1px solid #e85d5d4d;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.ai-error-text{color:var(--text-primary);font-size:12.5px}.ai-input-dock{background:var(--surface);border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:10px 14px 14px;display:flex}.ai-chip-row{gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.ai-chip-btn{border:1px solid var(--border);background:var(--surface-dim);color:var(--text-primary);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast);border-radius:999px;flex-shrink:0;padding:6px 12px;font-size:12px;font-weight:600}.ai-chip-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-light);color:var(--accent)}.ai-chip-btn:disabled{opacity:.55;cursor:not-allowed}.ai-chat-form{align-items:center;gap:8px;display:flex}.ai-chat-input{flex:1;min-height:44px}.ai-chat-send-btn{flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:inline-flex}.ai-intent-card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1.5px solid #4a90d959;margin-top:4px;padding:12px}.ai-intent-title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:4px;font-size:13px;font-weight:800}.ai-intent-meta{color:var(--text-secondary);margin-bottom:10px;font-size:12px;line-height:1.45}.ai-intent-actions{flex-wrap:wrap;gap:8px;display:flex}
