:root{--bg-base:#FBF9F5;--bg-elevated:#FFFFFF;--card-surface:#FFFFFF;--border-muted:#E6E2DA;--text-primary:#2B2D42;--text-secondary:#6C757D;--text-tertiary:#6C757D;--glass-bg:rgba(255,255,255,0.85);--glass-bg-hover:rgba(230,226,218,0.6);--glass-border:#E6E2DA;--glass-border-light:rgba(108,117,125,0.22);--surface-muted:rgba(230,226,218,0.4);--surface-muted-hover:rgba(230,226,218,0.65);--accent:#81B29A;--accent-soft:rgba(129,178,154,0.12);--accent-teal:#81B29A;--color-high:#E07A5F;--color-med:#E9C46A;--color-low:#A8DADC;--color-info:#81B29A;--color-high-text:#C1503A;--color-med-text:#9C7A1D;--color-low-text:#3E7E82;--header-height:64px;--bg-base-start:#FFFFFF;--bg-base-end:#FBF9F5;--accent-teal-glow:rgba(129,178,154,0.35)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg-base:#1B1D27;--bg-elevated:#242631;--card-surface:#242631;--border-muted:#383B4A;--text-primary:#EDEEF3;--text-secondary:#A6ABBD;--text-tertiary:#8B8FA3;--glass-bg:rgba(36,38,49,0.85);--glass-bg-hover:rgba(56,59,74,0.6);--glass-border:#383B4A;--glass-border-light:rgba(166,171,189,0.22);--surface-muted:rgba(56,59,74,0.4);--surface-muted-hover:rgba(56,59,74,0.65);--accent:#8FC7AC;--accent-soft:rgba(143,199,172,0.16);--accent-teal:#8FC7AC;--color-high:#E68B6E;--color-med:#EDCE7C;--color-low:#B7E2E4;--color-info:#8FC7AC;--color-high-text:#F2916F;--color-med-text:#E0B84A;--color-low-text:#7FC9CC;--bg-base-start:#242631;--bg-base-end:#1B1D27;--accent-teal-glow:rgba(143,199,172,0.35)}}:root[data-theme=dark]{--bg-base:#1B1D27;--bg-elevated:#242631;--card-surface:#242631;--border-muted:#383B4A;--text-primary:#EDEEF3;--text-secondary:#A6ABBD;--text-tertiary:#8B8FA3;--glass-bg:rgba(36,38,49,0.85);--glass-bg-hover:rgba(56,59,74,0.6);--glass-border:#383B4A;--glass-border-light:rgba(166,171,189,0.22);--surface-muted:rgba(56,59,74,0.4);--surface-muted-hover:rgba(56,59,74,0.65);--accent:#8FC7AC;--accent-soft:rgba(143,199,172,0.16);--accent-teal:#8FC7AC;--color-high:#E68B6E;--color-med:#EDCE7C;--color-low:#B7E2E4;--color-info:#8FC7AC;--color-high-text:#F2916F;--color-med-text:#E0B84A;--color-low-text:#7FC9CC;--bg-base-start:#242631;--bg-base-end:#1B1D27;--accent-teal-glow:rgba(143,199,172,0.35)}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--bg-base);color:var(--text-primary);font-family:IBM Plex Sans,Segoe UI,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}#__next,body,body>div:first-child,html{height:100%}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-muted);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.glass-panel{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border)}.leaflet-container{background:var(--bg-base)!important;font-family:inherit}.leaflet-popup-content-wrapper{backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;border:1px solid #e6e2da!important;border-radius:8px!important;box-shadow:0 12px 32px rgba(43,45,66,.16)!important;color:#2B2D42!important}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:rgba(255,255,255,.97)!important}.leaflet-popup-content{margin:0!important}.leaflet-popup-close-button{color:#6C757D!important;top:10px!important;right:12px!important;font-size:18px!important}.leaflet-popup-close-button:hover{color:#2B2D42!important}.leaflet-bar{border:1px solid var(--glass-border)!important;border-radius:6px!important;box-shadow:0 4px 12px rgba(43,45,66,.12)!important;overflow:hidden}.leaflet-bar a{background:var(--glass-bg)!important;backdrop-filter:blur(8px)!important;border-bottom:1px solid var(--glass-border)!important;color:var(--text-secondary)!important;width:30px!important;height:30px!important;line-height:30px!important}.leaflet-bar a:hover{background:var(--glass-bg-hover)!important;color:var(--text-primary)!important}.leaflet-bar a:last-child{border-bottom:none!important}.leaflet-control-attribution{background:rgba(255,255,255,.75)!important;color:var(--text-secondary)!important;font-size:9px!important}.leaflet-control-attribution a{color:var(--accent)!important}.popup-view-btn{display:block;width:100%;margin-top:12px;padding:8px 12px;background:var(--accent-soft);border:1px solid rgba(129,178,154,.35);border-radius:6px;color:var(--accent);font-size:11px;font-weight:600;letter-spacing:.06em;text-align:center;cursor:pointer;font-family:inherit;text-transform:uppercase}.popup-view-btn:hover{background:rgba(129,178,154,.2)}@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(168,218,220,.65);opacity:1}60%{box-shadow:0 0 0 6px rgba(168,218,220,0);opacity:.9}to{box-shadow:0 0 0 0 rgba(168,218,220,0);opacity:1}}@keyframes statusBlink{0%,to{opacity:1}50%{opacity:.45}}.system-status-blink{animation:statusBlink 1s ease-in-out infinite}@keyframes markerPulse{0%{box-shadow:0 0 0 0 rgba(224,122,95,.45)}70%{box-shadow:0 0 0 10px rgba(224,122,95,0)}to{box-shadow:0 0 0 0 rgba(224,122,95,0)}}@keyframes markerRing{0%{transform:translate(-50%,-50%) scale(1);opacity:.45}to{transform:translate(-50%,-50%) scale(2.6);opacity:0}}@keyframes spin{to{transform:rotate(1turn)}}.live-dot{animation:livePulse 2.2s ease-in-out infinite}.spinner{animation:spin .8s linear infinite}.pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500;border:1px solid transparent;white-space:nowrap}.pill-high{background:rgba(224,122,95,.12);color:var(--color-high-text);border-color:rgba(224,122,95,.28)}.pill-medium{background:rgba(233,196,106,.16);color:var(--color-med-text);border-color:rgba(233,196,106,.32)}.pill-low{background:rgba(168,218,220,.2);color:var(--color-low-text);border-color:rgba(168,218,220,.4)}.pill-detected,.pill-under_review{background:rgba(129,178,154,.12);color:var(--accent);border-color:rgba(129,178,154,.28)}.pill-confirmed,.pill-response{background:rgba(233,196,106,.16);color:var(--color-med-text);border-color:rgba(233,196,106,.32)}.pill-cleaning{background:rgba(129,178,154,.1);color:var(--accent);border-color:rgba(129,178,154,.25)}.pill-resolved{background:rgba(168,218,220,.2);color:var(--color-low-text);border-color:rgba(168,218,220,.4)}.pill-rejected{background:rgba(108,117,125,.12);color:var(--text-secondary);border-color:rgba(108,117,125,.28)}.pill-alert{background:rgba(233,196,106,.16);color:var(--color-med-text);border-color:rgba(233,196,106,.32)}.pill-collected{background:rgba(168,218,220,.2);color:var(--color-low-text);border-color:rgba(168,218,220,.4)}.pill-converted{background:rgba(43,45,66,.04);color:var(--text-primary);border-color:var(--glass-border)}.row-hover{transition:background .15s ease;border:1px solid transparent;border-radius:6px}.row-hover:hover{background:var(--glass-bg-hover)}.dashboard-shell{height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-base)}.dashboard-body{min-height:0}.dashboard-body,.dashboard-main{display:flex;flex:1;overflow:hidden}.dashboard-main{min-width:0;flex-direction:column;background:radial-gradient(ellipse 80% 50% at 70% 0,rgba(129,178,154,.06),transparent 55%),var(--bg-base)}.dashboard-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:16px 20px 24px;display:flex;flex-direction:column;gap:16px;transition:margin-right .25s ease}@media (min-width:900px){.dashboard-scroll--panel-open{margin-right:480px}}.dashboard-map-wrap{position:relative;flex:1;min-height:420px;border-radius:10px;overflow:hidden;border:1px solid var(--glass-border);background:var(--bg-elevated)}.dashboard-map-row{display:flex;gap:16px;flex:1;min-height:420px}.dashboard-weather-panel{width:320px;flex-shrink:0;display:flex;flex-direction:column}.dashboard-lower{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;min-height:280px}.panel{background:var(--bg-elevated);border:1px solid var(--glass-border);border-radius:10px;display:flex;flex-direction:column;min-height:0;overflow:hidden;box-shadow:0 1px 3px rgba(43,45,66,.06),0 1px 2px rgba(43,45,66,.04)}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--glass-border);flex-shrink:0}.panel-title{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-primary)}.panel-body{flex:1;min-height:0;overflow:auto}.panel-static,.panel-static>.panel-body{flex:0 0 auto;min-height:auto}.panel-static>.panel-body{overflow-y:visible}.auth-input{width:100%;background:rgba(43,45,66,.04);border:1px solid var(--glass-border);color:var(--text-primary);border-radius:8px;padding:10px 14px;font-size:14px;outline:none;transition:border-color .2s ease;font-family:inherit}.auth-input:focus{border-color:var(--accent);box-shadow:0 0 0 1px rgba(129,178,154,.25)}.auth-input::placeholder{color:var(--text-secondary)}.auth-button{width:100%;background:var(--accent);color:var(--bg-elevated);border:none;border-radius:8px;padding:12px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s ease;display:flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}.auth-button:hover{background:#6fa78d}.auth-button:active{transform:scale(.98)}.auth-button:disabled{opacity:.65;cursor:wait}@media (max-width:1100px){.dashboard-lower{grid-template-columns:1fr}.dashboard-map-row{flex-direction:column;flex:none;min-height:0}.dashboard-weather-panel{width:100%;min-height:280px}}@media (max-width:768px){.dashboard-map-wrap{min-height:320px}.dashboard-scroll{padding:12px}}.landing-page{min-height:100vh;background:radial-gradient(ellipse 70% 45% at 80% 0,rgba(129,178,154,.09),transparent 55%),var(--bg-base);color:var(--text-primary)}.landing-header{position:sticky;top:0;z-index:40;backdrop-filter:blur(14px);background:var(--glass-bg);border-bottom:1px solid var(--glass-border)}.landing-header-inner{max-width:1120px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.landing-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.landing-brand-name{font-weight:700;font-size:15px;letter-spacing:.08em;line-height:1.1}.landing-brand-tag{font-size:11px;color:var(--text-secondary);margin-top:3px}.landing-nav{display:flex;align-items:center;gap:10px}.landing-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600;text-decoration:none;font-family:inherit;border:1px solid transparent;transition:background .15s ease,border-color .15s ease,color .15s ease;white-space:nowrap}.landing-btn-ghost{color:var(--text-secondary);border-color:var(--glass-border);background:transparent}.landing-btn-ghost:hover{color:var(--text-primary);background:var(--glass-bg-hover)}.landing-btn-primary{color:var(--bg-elevated);background:var(--accent);border-color:transparent}.landing-btn-primary:hover{background:#6fa78d}.landing-btn-demo{color:#fff;background:var(--color-high);border-color:transparent;box-shadow:0 4px 16px rgba(224,122,95,.4)}.landing-btn-demo:hover{background:var(--color-high-text);box-shadow:0 6px 20px rgba(224,122,95,.5)}.landing-btn-demo:disabled{opacity:.75;box-shadow:none}.landing-btn-lg{padding:12px 18px;font-size:14px}.landing-hero{max-width:720px;margin:0 auto;padding:56px 24px 40px}.landing-eyebrow{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:16px}.landing-headline{font-size:clamp(2rem,4vw,3.1rem);font-weight:650;letter-spacing:-.02em;line-height:1.12;margin:0 0 18px}.landing-support{font-size:16px;color:var(--text-secondary);line-height:1.65;max-width:520px;margin:0 0 28px}.landing-cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:18px}.landing-hitl-note{font-size:12px;color:var(--text-tertiary);max-width:460px;line-height:1.5;margin:0;padding-left:12px;border-left:2px solid rgba(129,178,154,.35)}.landing-section{padding:56px 24px}.landing-section-alt{background:rgba(230,226,218,.45);border-top:1px solid var(--glass-border);border-bottom:1px solid var(--glass-border)}.landing-section-inner{max-width:1120px;margin:0 auto}.landing-section-title{font-size:24px;font-weight:650;margin:0 0 10px;letter-spacing:-.01em}.landing-section-sub{margin:0 0 28px;color:var(--text-secondary);max-width:560px;line-height:1.55;font-size:14px}.landing-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.landing-feature{padding:18px;border:1px solid var(--glass-border);border-radius:10px;background:var(--bg-elevated)}.landing-feature-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);margin-bottom:14px}.landing-feature h3{margin:0 0 8px;font-size:14px;font-weight:600}.landing-feature p{margin:0;font-size:13px;color:var(--text-secondary);line-height:1.55}.landing-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.landing-step-n{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--accent);margin-bottom:10px;font-variant-numeric:tabular-nums}.landing-step h3{margin:0 0 8px;font-size:16px;font-weight:600}.landing-step p{margin:0;font-size:13px;color:var(--text-secondary);line-height:1.55}.landing-bottom-cta{padding:64px 24px;text-align:center}.landing-bottom-inner h2{margin:0 0 12px;font-size:28px;font-weight:650}.landing-bottom-inner p{margin:0 auto 24px;max-width:480px;color:var(--text-secondary);line-height:1.55}.landing-footer{border-top:1px solid var(--glass-border);padding:28px 24px 36px}.landing-footer-inner{max-width:1120px;margin:0 auto;display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.landing-footer-meta{font-size:12px;color:var(--text-tertiary);margin-top:6px}.landing-footer-links{display:flex;gap:18px}.landing-footer-links a{color:var(--text-secondary);text-decoration:none;font-size:13px}.landing-footer-links a:hover{color:var(--accent)}.auth-page{min-height:100vh;position:relative;display:flex;align-items:center;justify-content:center;padding:32px 16px;background:var(--bg-base)}.auth-page-bg{position:absolute;inset:0;background:radial-gradient(ellipse 60% 40% at 50% -10%,rgba(129,178,154,.12),transparent 55%),radial-gradient(ellipse 40% 30% at 90% 80%,rgba(90,140,118,.08),transparent 50%);pointer-events:none}.auth-page-loading{color:var(--text-secondary);font-size:13px}.auth-page-shell{position:relative;z-index:1;width:100%;max-width:420px}.auth-back{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary);text-decoration:none;font-size:12px;margin-bottom:14px}.auth-back:hover{color:var(--text-primary)}.auth-card{background:var(--bg-elevated);border:1px solid var(--glass-border);border-radius:12px;padding:28px 28px 24px}.auth-card-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.auth-card-logo{width:36px;height:36px;object-fit:contain;flex-shrink:0}.auth-card-title{font-weight:700;letter-spacing:.08em;font-size:14px}.auth-card-sub{font-size:11px;color:var(--text-secondary);margin-top:2px}.auth-heading{margin:0 0 6px;font-size:22px;font-weight:650}.auth-lede{margin:0 0 22px;font-size:13px;color:var(--text-secondary)}.auth-form{gap:14px}.auth-field,.auth-form{display:flex;flex-direction:column}.auth-field{gap:6px}.auth-field label{font-weight:500}.auth-field label,.auth-remember{font-size:12px;color:var(--text-secondary)}.auth-remember{display:flex;align-items:center;gap:8px;user-select:none}.auth-remember input{accent-color:var(--accent)}.auth-error{font-size:12px;color:#C1503A;background:rgba(224,122,95,.1);border:1px solid rgba(224,122,95,.25);border-radius:8px;padding:10px 12px}.auth-switch{margin:18px 0 0;text-align:center;font-size:13px;color:var(--text-secondary)}.auth-switch a{color:var(--accent);text-decoration:none;font-weight:600}.auth-disclaimer{margin:14px 0 0;font-size:11px;color:var(--text-tertiary);line-height:1.45;text-align:center}@media (max-width:960px){.landing-hero{padding-top:36px}.landing-feature-grid,.landing-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.landing-header-inner{padding:12px 16px}.landing-brand-tag{display:none}.landing-bottom-cta,.landing-hero,.landing-section{padding-left:16px;padding-right:16px}.landing-feature-grid,.landing-steps{grid-template-columns:1fr}.landing-footer-inner{flex-direction:column}.landing-bottom-inner h2{font-size:22px}}