/* ============================================================
   Patrium Logistics — Traffic & Weather Dashboard
   styles.css
   ============================================================ */

:root {
  --bg-primary:#0a0e17; --bg-card:#111827; --bg-card-alt:#0f1629; --border:#1e293b;
  --accent:#38bdf8; --accent-warm:#f59e0b; --accent-green:#22c55e; --accent-red:#ef4444;
  --accent-purple:#a78bfa; --text-primary:#f1f5f9; --text-secondary:#94a3b8; --text-muted:#64748b;
  --patrium-green:#5cb339; --patrium-light:#7cc74e;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Outfit',sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow:hidden;position:relative;}
body::before{content:'';position:fixed;inset:0;background:radial-gradient(ellipse at 15% 20%,rgba(92,179,57,.06) 0%,transparent 50%),radial-gradient(ellipse at 85% 80%,rgba(167,139,250,.04) 0%,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(56,189,248,.02) 0%,transparent 70%);pointer-events:none;z-index:0;}
.scanline{position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.03) 2px,rgba(0,0,0,.03) 4px);pointer-events:none;z-index:999;}

/* ===== FIRST-LAUNCH SETUP OVERLAY ===== */
.setup-overlay{position:fixed;inset:0;z-index:2000;background:rgba(10,14,23,.88);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;animation:fadeIn .4s ease;}
.setup-overlay.hidden{display:none !important;}
.setup-card{background:var(--bg-card);border:1px solid var(--border);border-radius:20px;padding:36px 40px 32px;max-width:480px;width:92%;max-height:90vh;overflow-y:auto;box-shadow:0 40px 100px rgba(0,0,0,.7);text-align:center;}
.setup-logo{margin-bottom:10px;}
.setup-title{font-size:22px;font-weight:700;color:var(--text-primary);letter-spacing:-.5px;}
.setup-subtitle{font-size:12px;font-family:'JetBrains Mono',monospace;color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;margin-top:2px;margin-bottom:24px;}
.setup-section{text-align:left;margin-bottom:20px;padding-top:16px;border-top:1px solid var(--border);}
.setup-section-label{font-size:13px;font-weight:700;color:var(--patrium-light);margin-bottom:6px;font-family:'JetBrains Mono',monospace;letter-spacing:1px;}
.setup-section-desc{font-size:12px;color:var(--text-muted);margin-bottom:14px;line-height:1.5;}

/* Setup buttons */
.setup-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 18px;border-radius:10px;border:1px solid var(--border);font-family:'Outfit',sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;}
.setup-btn:disabled{opacity:.45;cursor:not-allowed;}
.setup-btn-icon{font-size:16px;}
.setup-btn-primary{background:var(--bg-card-alt);border-color:var(--border);color:var(--text-primary);}
.setup-btn-primary:hover:not(:disabled){border-color:var(--accent);background:rgba(56,189,248,.05);}
.setup-btn-small{flex:0 0 auto;width:auto;padding:10px 16px;font-size:13px;background:var(--patrium-green);border-color:var(--patrium-green);color:#fff;border-radius:8px;}
.setup-btn-small:hover:not(:disabled){background:var(--patrium-light);border-color:var(--patrium-light);}
.setup-btn-launch{background:var(--patrium-green);border-color:var(--patrium-green);color:#fff;font-size:16px;padding:14px;border-radius:12px;margin-top:4px;}
.setup-btn-launch:hover:not(:disabled){background:var(--patrium-light);border-color:var(--patrium-light);transform:translateY(-1px);box-shadow:0 6px 20px rgba(92,179,57,.3);}

.setup-status{font-family:'JetBrains Mono',monospace;font-size:11px;min-height:18px;margin-top:6px;letter-spacing:.5px;}
.setup-status-ok{color:var(--accent-green);}
.setup-status-error{color:var(--accent-red);}
.setup-status-info{color:var(--accent);}

.setup-divider{display:flex;align-items:center;gap:10px;margin:14px 0;font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text-muted);letter-spacing:1px;text-transform:uppercase;}
.setup-divider::before,.setup-divider::after{content:'';flex:1;height:1px;background:var(--border);}

.setup-input-row{display:flex;gap:8px;}
.setup-input{flex:1;padding:10px 14px;border-radius:8px;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);font-family:'JetBrains Mono',monospace;font-size:13px;outline:none;transition:border-color .2s;}
.setup-input:focus{border-color:var(--accent);}
.setup-input::placeholder{color:var(--text-muted);}

.setup-location-result{display:flex;align-items:center;gap:10px;padding:12px 16px;background:rgba(92,179,57,.08);border:1px solid rgba(92,179,57,.3);border-radius:10px;margin-top:10px;font-size:13px;font-weight:600;color:var(--patrium-light);}
.setup-location-check{font-size:18px;color:var(--accent-green);}

.setup-view-options{display:flex;flex-direction:column;gap:8px;margin-top:8px;}
.setup-view-option{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-card-alt);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .2s;}
.setup-view-option:hover{border-color:rgba(56,189,248,.3);}
.setup-view-option.active{border-color:var(--accent);background:rgba(56,189,248,.05);}
.setup-view-option input{display:none;}
.setup-view-radio{width:18px;height:18px;border:2px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.setup-view-option.active .setup-view-radio{border-color:var(--accent);}
.setup-view-radio-dot{width:8px;height:8px;background:var(--accent);border-radius:50%;display:none;}
.setup-view-option.active .setup-view-radio-dot{display:block;}
.setup-view-title{font-size:13px;font-weight:600;color:var(--text-primary);}
.setup-view-desc{font-size:11px;color:var(--text-muted);margin-top:2px;}

.setup-launch-hint{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text-muted);text-align:center;margin-top:8px;letter-spacing:.5px;}

/* ===== SETTINGS PANEL ===== */
.settings-toggle{position:fixed;top:16px;right:16px;z-index:1000;width:36px;height:36px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:18px;transition:all .3s;}
.settings-toggle:hover{border-color:var(--accent);color:var(--text-primary);}
.settings-panel{position:fixed;top:60px;right:16px;z-index:1000;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:20px 24px;width:340px;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.5);display:none;animation:fadeIn .2s ease;}
.settings-panel.open{display:block;}
.settings-title{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:16px;}
.settings-label{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:10px;}
.view-options{display:flex;flex-direction:column;gap:8px;}
.view-option{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-card-alt);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .2s;}
.view-option:hover{border-color:rgba(56,189,248,.3);}
.view-option.active{border-color:var(--accent);background:rgba(56,189,248,.05);}
.view-option input{display:none;}
.view-radio{width:18px;height:18px;border:2px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .2s;}
.view-option.active .view-radio{border-color:var(--accent);}
.view-radio-dot{width:8px;height:8px;background:var(--accent);border-radius:50%;display:none;}
.view-option.active .view-radio-dot{display:block;}
.view-option-title{font-size:13px;font-weight:600;color:var(--text-primary);}
.view-option-desc{font-size:11px;color:var(--text-muted);margin-top:2px;}
.settings-info{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text-muted);padding-top:14px;margin-top:14px;border-top:1px solid var(--border);line-height:1.6;letter-spacing:.5px;}

/* Settings location fields */
.location-current{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-card-alt);border:1px solid var(--border);border-radius:8px;margin-bottom:10px;}
.location-current-icon{font-size:14px;}
.location-current-text{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--text-secondary);letter-spacing:.5px;}
.location-override-fields{margin-top:8px;}
.location-input-group{display:flex;gap:6px;}
.location-input-group .location-input{flex:1;}
.location-input{width:100%;padding:9px 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);font-family:'JetBrains Mono',monospace;font-size:12px;outline:none;transition:border-color .2s;}
.location-input:focus{border-color:var(--accent);}
.location-input::placeholder{color:var(--text-muted);}
.location-coord-row{display:flex;gap:6px;margin-top:8px;}
.location-input-half{flex:1;}
.loc-btn{padding:9px 14px;border-radius:6px;border:1px solid var(--border);font-family:'Outfit',sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;}
.loc-btn:disabled{opacity:.5;cursor:not-allowed;}
.loc-btn-primary{background:var(--patrium-green);border-color:var(--patrium-green);color:#fff;}
.loc-btn-primary:hover:not(:disabled){background:var(--patrium-light);}
.loc-btn-secondary{background:var(--bg-card-alt);border-color:var(--border);color:var(--text-secondary);}
.loc-btn-secondary:hover:not(:disabled){border-color:var(--text-muted);color:var(--text-primary);}
.loc-btn-small{background:var(--bg-card-alt);border-color:var(--border);color:var(--text-secondary);}
.loc-btn-small:hover:not(:disabled){border-color:var(--accent);color:var(--text-primary);}

/* ===== DASHBOARD LAYOUT ===== */
.dashboard{position:relative;z-index:1;display:grid;grid-template-rows:auto auto 1fr;height:100vh;padding:18px 24px;gap:14px;}
.header{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--border);}
.header-left{display:flex;align-items:center;gap:14px;}
.header-title{font-size:20px;font-weight:700;letter-spacing:-.5px;background:linear-gradient(90deg,var(--text-primary),var(--patrium-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.header-subtitle{font-size:11px;color:var(--text-muted);font-family:'JetBrains Mono',monospace;letter-spacing:2px;text-transform:uppercase;margin-top:1px;}
.header-right{display:flex;align-items:center;gap:22px;}
.live-indicator{display:flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--accent-green);letter-spacing:1px;text-transform:uppercase;}
.live-dot{width:8px;height:8px;background:var(--accent-green);border-radius:50%;animation:pulse 2s ease-in-out infinite;box-shadow:0 0 8px rgba(34,197,94,.6);}
.next-update{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--text-muted);letter-spacing:.5px;}
.next-update span{color:var(--accent);}
.clock{font-family:'JetBrains Mono',monospace;font-size:24px;font-weight:300;color:var(--text-primary);letter-spacing:2px;}
.clock-date{font-size:11px;color:var(--text-muted);text-align:right;margin-top:1px;letter-spacing:1px;}
.view-container{display:none;min-height:0;}
.view-container.active{display:grid;}
#combinedView{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:14px;}
#fullscreenWeather{grid-template-columns:1fr 1fr 1fr;gap:14px;}
#fullscreenTraffic{grid-template-columns:1fr 340px;gap:14px;}

/* ===== CARDS ===== */
.card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:18px;position:relative;overflow:hidden;display:flex;flex-direction:column;animation:fadeInUp .5s ease-out both;}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.3;}
.card:nth-child(1){animation-delay:.05s;}.card:nth-child(2){animation-delay:.1s;}.card:nth-child(3){animation-delay:.15s;}.card:nth-child(4){animation-delay:.2s;}
.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-shrink:0;}
.card-title{font-size:12px;font-family:'JetBrains Mono',monospace;color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;display:flex;align-items:center;gap:8px;}
.card-title-icon{width:20px;height:20px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:11px;}
.card-badge{font-family:'JetBrains Mono',monospace;font-size:10px;padding:4px 10px;border-radius:20px;letter-spacing:1px;text-transform:uppercase;}

/* ===== WEATHER ===== */
.weather-content{flex:1;display:flex;flex-direction:column;gap:10px;min-height:0;}
.weather-main{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;}
.weather-primary{text-align:center;}
.weather-icon-container{position:relative;width:80px;height:80px;margin:0 auto 6px;}
.weather-icon{font-size:52px;line-height:1;filter:drop-shadow(0 0 14px rgba(56,189,248,.3));}
.weather-icon-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:75px;height:75px;border:1px solid rgba(56,189,248,.15);border-radius:50%;animation:spinSlow 20s linear infinite;}
.temp-display{font-size:48px;font-weight:800;letter-spacing:-2px;line-height:1;background:linear-gradient(180deg,var(--text-primary),var(--text-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;}
.temp-unit{font-size:20px;font-weight:300;-webkit-text-fill-color:var(--text-muted);}
.weather-desc{font-size:13px;color:var(--text-secondary);margin-top:2px;}
.weather-location{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text-muted);margin-top:4px;letter-spacing:1px;}
.weather-details{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.weather-detail{background:var(--bg-card-alt);border:1px solid var(--border);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:3px;}
.weather-detail-label{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--text-muted);letter-spacing:1.5px;text-transform:uppercase;}
.weather-detail-value{font-size:16px;font-weight:700;letter-spacing:-.5px;}
.weather-detail-sub{font-size:11px;color:var(--text-muted);}
.weather-forecast-row{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:auto;}
.forecast-item{background:var(--bg-card-alt);border:1px solid var(--border);border-radius:8px;padding:7px 3px;text-align:center;}
.forecast-item:first-child{border-color:rgba(56,189,248,.3);background:rgba(56,189,248,.05);}
.forecast-day{font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--text-muted);letter-spacing:1px;text-transform:uppercase;}
.forecast-icon{font-size:16px;margin:3px 0;}
.forecast-temp{font-size:12px;font-weight:700;}
.forecast-low{font-size:10px;color:var(--text-muted);}

/* ===== RADAR ===== */
.radar-content{flex:1;display:flex;flex-direction:column;min-height:0;}
.radar-frame{flex:1;border-radius:10px;overflow:hidden;border:1px solid var(--border);position:relative;min-height:0;}
.radar-frame iframe{width:100%;height:100%;border:none;}
.radar-frame-overlay{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 40px rgba(10,14,23,.4);border-radius:10px;}

/* ===== WIND ===== */
.wind-content{flex:1;display:flex;flex-direction:column;gap:10px;min-height:0;}
.wind-main{display:grid;grid-template-columns:1fr 1fr;gap:14px;flex:1;align-items:center;}
.compass-container{display:flex;justify-content:center;align-items:center;}
.compass{width:150px;height:150px;position:relative;}
.compass-ring{position:absolute;inset:0;border:2px solid var(--border);border-radius:50%;}
.compass-ring-inner{position:absolute;top:12px;left:12px;right:12px;bottom:12px;border:1px solid rgba(30,41,59,.6);border-radius:50%;}
.compass-label{position:absolute;font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;color:var(--text-secondary);transform:translate(-50%,-50%);}
.compass-label.north{top:12%;left:50%;color:var(--accent);}
.compass-label.south{top:88%;left:50%;}
.compass-label.east{top:50%;left:88%;}
.compass-label.west{top:50%;left:12%;}
.compass-arrow{position:absolute;top:50%;left:50%;width:4px;height:52px;transform-origin:bottom center;transform:translate(-50%,-100%) rotate(0deg);transition:transform 1s cubic-bezier(.34,1.56,.64,1);}
.compass-arrow::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:18px solid var(--accent);filter:drop-shadow(0 0 6px rgba(56,189,248,.5));}
.compass-arrow::after{content:'';position:absolute;bottom:-44px;left:50%;transform:translateX(-50%);border-left:5px solid transparent;border-right:5px solid transparent;border-top:14px solid var(--accent-red);opacity:.5;}
.compass-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:10px;height:10px;background:var(--accent);border-radius:50%;box-shadow:0 0 10px rgba(56,189,248,.6);z-index:2;}
.wind-stats{display:flex;flex-direction:column;gap:8px;}
.wind-speed-display{text-align:center;padding:12px;background:var(--bg-card-alt);border:1px solid var(--border);border-radius:10px;}
.wind-speed-value{font-size:40px;font-weight:800;letter-spacing:-2px;color:var(--accent);line-height:1;}
.wind-speed-unit{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--text-muted);margin-top:2px;}
.wind-direction-text{font-size:13px;color:var(--text-secondary);margin-top:2px;}
.wind-stat-mini{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--bg-card-alt);border:1px solid var(--border);border-radius:8px;}
.wind-stat-mini-label{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text-muted);letter-spacing:1px;text-transform:uppercase;}
.wind-stat-mini-value{font-size:15px;font-weight:700;}
.wind-history{display:flex;align-items:flex-end;gap:3px;height:36px;padding:6px 10px;background:var(--bg-card-alt);border:1px solid var(--border);border-radius:8px;}
.wind-bar{flex:1;background:var(--accent);border-radius:2px 2px 0 0;min-height:3px;transition:height .5s ease;}

/* ===== TRAFFIC ===== */
.traffic-inner{flex:1;display:grid;gap:10px;min-height:0;}
.traffic-map-container{position:relative;border-radius:10px;overflow:hidden;background:var(--bg-card-alt);border:1px solid var(--border);min-height:0;}
.traffic-map-container iframe{width:100%;height:100%;border:none;border-radius:10px;filter:saturate(.7) brightness(.85) contrast(1.1);}
.traffic-map-overlay{position:absolute;inset:0;pointer-events:none;border-radius:10px;box-shadow:inset 0 0 50px rgba(10,14,23,.5);}
.traffic-sidebar{display:flex;flex-direction:column;gap:8px;overflow-y:auto;}
.traffic-route{background:var(--bg-card-alt);border:1px solid var(--border);border-radius:10px;padding:12px;display:flex;align-items:center;gap:10px;}
.traffic-status-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.traffic-status-dot.green{background:var(--accent-green);box-shadow:0 0 8px rgba(34,197,94,.5);}
.traffic-status-dot.yellow{background:var(--accent-warm);box-shadow:0 0 8px rgba(245,158,11,.5);}
.traffic-status-dot.red{background:var(--accent-red);box-shadow:0 0 8px rgba(239,68,68,.5);}
.traffic-route-info{flex:1;}
.traffic-route-name{font-size:12px;font-weight:600;margin-bottom:1px;}
.traffic-route-desc{font-size:10px;color:var(--text-muted);font-family:'JetBrains Mono',monospace;}
.traffic-route-time{font-size:16px;font-weight:700;font-family:'JetBrains Mono',monospace;white-space:nowrap;}
.traffic-route-time span{font-size:10px;color:var(--text-muted);font-weight:400;}
.traffic-summary{margin-top:auto;background:var(--bg-card-alt);border:1px solid var(--border);border-radius:10px;padding:12px;text-align:center;}
.traffic-overall-label{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--text-muted);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:4px;}
.traffic-overall-status{font-size:15px;font-weight:700;}

/* ===== ALERT BANNER ===== */
.alert-banner{display:none;border-radius:10px;padding:0;overflow:hidden;flex-shrink:0;position:relative;}
.alert-banner.active{display:block;}
.alert-banner.severity-extreme{background:linear-gradient(90deg,#7f1d1d,#991b1b,#7f1d1d);border:1px solid #dc2626;box-shadow:0 0 20px rgba(220,38,38,.3);}
.alert-banner.severity-severe{background:linear-gradient(90deg,#7f1d1d,#991b1b,#7f1d1d);border:1px solid #dc2626;box-shadow:0 0 15px rgba(220,38,38,.25);}
.alert-banner.severity-moderate{background:linear-gradient(90deg,#78350f,#92400e,#78350f);border:1px solid #d97706;box-shadow:0 0 12px rgba(217,119,6,.2);}
.alert-banner.severity-minor{background:linear-gradient(90deg,#1e3a5f,#1e40af,#1e3a5f);border:1px solid #3b82f6;box-shadow:0 0 10px rgba(59,130,246,.15);}
.alert-banner.severity-unknown{background:linear-gradient(90deg,#7f1d1d,#991b1b,#7f1d1d);border:1px solid #dc2626;}
.alert-banner-inner{display:flex;align-items:center;padding:10px 16px;gap:12px;min-height:42px;}
.alert-icon{font-size:18px;flex-shrink:0;animation:alertPulse 1.5s ease-in-out infinite;}
.alert-label{font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#fca5a5;flex-shrink:0;padding:3px 8px;background:rgba(0,0,0,.3);border-radius:4px;white-space:nowrap;}
.alert-banner.severity-moderate .alert-label{color:#fcd34d;}
.alert-banner.severity-minor .alert-label{color:#93c5fd;}
.alert-text-container{flex:1;overflow:hidden;position:relative;mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);}
.alert-text-scroll{display:flex;gap:60px;animation:alertScroll 30s linear infinite;white-space:nowrap;}
.alert-text-scroll.no-scroll{animation:none;}
.alert-text{font-size:13px;font-weight:600;color:#fff;white-space:nowrap;}
.alert-text strong{color:#fca5a5;font-weight:700;}
.alert-banner.severity-moderate .alert-text strong{color:#fcd34d;}
.alert-banner.severity-minor .alert-text strong{color:#93c5fd;}
.alert-count{font-family:'JetBrains Mono',monospace;font-size:10px;color:rgba(255,255,255,.6);flex-shrink:0;white-space:nowrap;}
.alert-banner-multi{display:flex;flex-direction:column;gap:0;}
.alert-banner-multi .alert-banner{border-radius:0;}
.alert-banner-multi .alert-banner:first-child{border-radius:10px 10px 0 0;}
.alert-banner-multi .alert-banner:last-child{border-radius:0 0 10px 10px;}
.alert-banner-multi .alert-banner:only-child{border-radius:10px;}

/* ===== FULLSCREEN OVERRIDES ===== */
#fullscreenWeather .temp-display{font-size:64px;}
#fullscreenWeather .weather-icon{font-size:70px;}
#fullscreenWeather .weather-icon-container{width:100px;height:100px;}
#fullscreenWeather .weather-detail-value{font-size:22px;}
#fullscreenWeather .compass{width:200px;height:200px;}
#fullscreenWeather .compass-arrow{height:65px;}
#fullscreenWeather .wind-speed-value{font-size:52px;}
#fullscreenWeather .forecast-item{padding:10px 6px;}
#fullscreenWeather .forecast-icon{font-size:22px;}
#fullscreenWeather .forecast-temp{font-size:15px;}

/* ===== ANIMATIONS ===== */
@keyframes fadeIn{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.5;transform:scale(.85);}}
@keyframes spinSlow{to{transform:translate(-50%,-50%) rotate(360deg);}}
@keyframes spinfast{to{transform:rotate(360deg);}}
@keyframes alertPulse{0%,100%{opacity:1;}50%{opacity:.6;}}
@keyframes alertScroll{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
@keyframes viewFade{from{opacity:0;transform:scale(.98);}to{opacity:1;transform:scale(1);}}
.view-fade{animation:viewFade .6s ease both;}

/* ===== LOADING & ERROR ===== */
.loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:1px;}
.loading-spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spinfast .8s linear infinite;margin-right:10px;}
.error-msg{color:var(--accent-red);font-family:'JetBrains Mono',monospace;font-size:12px;text-align:center;padding:20px;}
