:root{
  --bg:#071018;--panel:#0c1823;--panel2:#102231;--line:#203748;--text:#f1f7fb;--muted:#8ba3b5;--cyan:#52e3c2;--amber:#ffca5a;--red:#ff6b6b;--blue:#67b7ff;
}
*{box-sizing:border-box} body{margin:0;background:radial-gradient(circle at 15% 0%,#123047 0,#071018 36%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}.shell{max-width:1440px;margin:auto;padding:28px}.hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-bottom:20px}.hero h1{font-size:clamp(34px,5vw,66px);line-height:.96;margin:8px 0 14px;letter-spacing:-.05em}.hero h1 span{display:block;color:#98b4c8;font-size:.53em;font-weight:600;letter-spacing:-.03em;margin-top:10px}.hero p{max-width:900px;color:var(--muted);font-size:16px;line-height:1.6}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.18em;color:var(--cyan)}.status{border:1px solid var(--line);padding:10px 14px;border-radius:999px;background:#0b1620;color:var(--muted);white-space:nowrap}.panel,.card{background:linear-gradient(180deg,rgba(16,34,49,.94),rgba(9,22,32,.94));border:1px solid var(--line);box-shadow:0 18px 60px rgba(0,0,0,.18);border-radius:20px}.controls{display:grid;grid-template-columns:1.2fr 1fr 1fr auto;gap:12px;padding:16px;margin-bottom:16px}.controls label{font-size:12px;color:var(--muted);display:flex;flex-direction:column;gap:7px}.controls input,.controls select{width:100%;background:#07131d;border:1px solid #244153;color:var(--text);border-radius:12px;padding:12px 13px;outline:none}.controls button{align-self:end;border:0;border-radius:12px;background:linear-gradient(135deg,#45e0c0,#58a9ff);color:#041018;padding:13px 18px;font-weight:900;cursor:pointer}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:16px 0}.card{padding:20px;min-height:132px}.label{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.big{font-size:44px;font-weight:900;letter-spacing:-.05em;margin:10px 0 2px}.chart-panel{padding:20px;margin-bottom:16px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.panel-head h2{margin:5px 0 0;font-size:21px}.legend{font-size:12px;color:var(--muted)}#aqiChart{width:100%;height:330px;background:linear-gradient(180deg,rgba(255,255,255,.015),rgba(255,255,255,0));border-radius:14px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.grid2 .panel{padding:20px}.metric-stack{display:grid;gap:12px}.metric-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.06)}.metric-row:last-child{border-bottom:0}.metric-row span{color:var(--muted)}.pill{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:5px 9px;font-size:12px}.table-wrap{overflow:auto}.panel:has(table){padding:20px}table{width:100%;border-collapse:collapse;min-width:1050px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid rgba(255,255,255,.07);font-size:13px}th{color:#8fb0c5;font-size:11px;letter-spacing:.08em;text-transform:uppercase;position:sticky;top:0;background:#0d1c28}td strong{font-size:15px}.footnote{margin:16px 0;padding:16px;color:var(--muted);line-height:1.6}.footnote strong{color:var(--text)}.good{color:#65e09a}.sat{color:#c5e86c}.moderate{color:#ffd55f}.poor{color:#ffad5a}.verypoor{color:#ff6d6d}.severe{color:#ff4f8b}
@media(max-width:900px){.controls{grid-template-columns:1fr 1fr}.controls button{grid-column:1/-1}.cards{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.hero{flex-direction:column}}@media(max-width:560px){.shell{padding:16px}.cards{grid-template-columns:1fr}.controls{grid-template-columns:1fr}.hero h1{font-size:42px}}
.data-panel{padding:20px}.error-box{padding:14px;border:1px solid rgba(255,107,107,.35);background:rgba(255,107,107,.08);border-radius:12px;color:#ffc1c1;line-height:1.5}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}

/* =======================================================
   AIRNOVA DEEP TECH SUITE: AIRVISION CAM & WIND PARTICLES
   ======================================================= */
.deeptech-section{margin:24px 0}
.deeptech-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:16px;flex-wrap:wrap;gap:12px}
.deeptech-header h2{font-size:26px;margin:4px 0 0;letter-spacing:-.03em}
.deeptech-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}
@media(max-width:1024px){.deeptech-grid{grid-template-columns:1fr}}

.deeptech-card{padding:24px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.deeptech-card .panel-head{margin-bottom:16px}

/* AirVision Cam UI */
.cam-preview-box{width:100%;min-height:280px;background:#060d14;border:1.5px dashed var(--line);border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;margin-bottom:16px;cursor:pointer}
.cam-preview-box:hover{border-color:var(--cyan)}
.cam-canvas-wrap{position:relative;width:100%;max-height:360px;display:flex;align-items:center;justify-content:center;background:#04090e;border-radius:12px;overflow:hidden}
.cam-canvas-wrap canvas{max-width:100%;max-height:340px;object-fit:contain;border-radius:8px}

.cam-controls{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.btn-action{background:linear-gradient(135deg,#38bdf8,#0ea5e9);color:#02111c;border:0;border-radius:10px;padding:10px 16px;font-size:13px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:transform 0.15s ease}
.btn-action:hover{transform:translateY(-1px)}
.btn-secondary{background:#0e1e2c;color:#cbd5e1;border:1px solid #203c52;border-radius:10px;padding:10px 14px;font-size:13px;font-weight:700;cursor:pointer}
.btn-secondary:hover{border-color:var(--cyan);color:var(--cyan)}

.vision-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.v-stat{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:12px;text-align:center}
.v-stat-val{font-size:20px;font-weight:900;color:var(--text);margin-top:2px}
.v-stat-lbl{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}

/* Windy.com Style Particle Engine */
.wind-canvas-wrap{width:100%;height:340px;background:#050c13;border-radius:16px;overflow:hidden;position:relative;border:1px solid var(--line)}
.wind-canvas-wrap canvas{width:100%;height:100%;display:block}

.wind-controls-deck{display:flex;flex-direction:column;gap:12px;margin-top:16px;padding:16px;background:rgba(6,16,25,.6);border:1px solid var(--line);border-radius:14px}
.wind-ctrl-row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px}
.wind-slider{flex:1;accent-color:var(--cyan);cursor:pointer}
.toggle-badge{padding:4px 10px;border-radius:999px;font-size:11px;font-weight:800;border:1px solid;cursor:pointer}
.toggle-active{background:rgba(239,68,68,.15);border-color:#ef4444;color:#fca5a5}
.toggle-inactive{background:rgba(56,189,248,.12);border-color:#38bdf8;color:#7dd3fc}

