*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:#f4f7fb;color:#162033}button,a{font:inherit}a{color:#075bd6;text-decoration:none}.topbar{position:sticky;top:0;z-index:10;background:#0b1220;color:white;padding:12px max(16px,calc((100% - 1080px)/2));display:flex;justify-content:space-between;align-items:center}.brand{display:flex;gap:10px;align-items:center}.brand-icon{font-size:30px}.brand b{display:block;font-size:18px}.brand small{opacity:.7}.icon-btn{border:0;background:#202c43;color:white;border-radius:12px;width:44px;height:44px;font-size:26px;cursor:pointer}.hero{max-width:1080px;margin:auto;padding:28px 16px 18px;display:flex;justify-content:space-between;gap:18px;align-items:end}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;color:#65748b}.hero h1{margin:4px 0;font-size:30px}.hero p{margin:0;color:#6c788a}.primary-btn{border:0;background:#0b63ce;color:#fff;border-radius:12px;padding:12px 16px;font-weight:700;cursor:pointer}.tabs{max-width:1080px;margin:auto;padding:0 16px;display:flex;gap:7px;overflow:auto}.tab{white-space:nowrap;border:1px solid #dbe2ec;background:white;padding:10px 14px;border-radius:12px 12px 0 0;cursor:pointer;color:#526177}.tab.active{background:#0b63ce;color:white;border-color:#0b63ce}.tab-panel{max-width:1080px;margin:auto;padding:18px 16px 30px;display:none}.tab-panel.active{display:block}.grid{display:grid;gap:14px;margin-bottom:14px}.grid.four{grid-template-columns:repeat(4,1fr)}.grid.two{grid-template-columns:repeat(2,1fr)}.card{background:#fff;border:1px solid #e0e6ef;border-radius:16px;padding:18px}.metric span{color:#66748a;font-size:13px}.metric strong{display:block;font-size:27px;margin:7px 0}.metric small,.muted{color:#748197}.card-head,.section-title{display:flex;justify-content:space-between;gap:12px;align-items:center}.card h2{margin:0 0 8px;font-size:18px}.big-icon{font-size:40px}.big-text{font-size:24px;font-weight:750}.aqi-number{font-size:44px;display:block;margin:5px 0}.badge,.date-chip{display:inline-block;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;background:#e9eef5}.notice{background:#eaf4ff;border:1px solid #cfe4ff;padding:14px 16px;border-radius:14px;margin-bottom:14px}.section-title{margin-bottom:14px}.section-title h2{margin:2px 0 0}.source{font-size:12px;color:#718096}.live-dot{color:#c82d2d;font-size:12px;font-weight:800}.forecast-list{display:grid;gap:10px}.forecast-row{background:white;border:1px solid #e0e6ef;border-radius:14px;padding:14px;display:grid;grid-template-columns:110px 1fr 90px 90px;align-items:center;gap:12px}.forecast-row b{font-size:16px}.forecast-icon{font-size:26px}.rain-prob{color:#075bd6;font-weight:700}.simple{margin-top:14px}.air-main{display:flex;align-items:center;gap:20px}.air-circle{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:#edf2f7;font-size:25px;font-weight:800}.rows>div{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #edf0f4}.alert-list,.quake-list,.news-list{display:grid;gap:10px}.alert,.quake,.news{background:white;border:1px solid #e0e6ef;border-radius:14px;padding:14px}.alert{border-left:5px solid #d97706}.alert b,.quake b{display:block;margin-bottom:4px}.subheading{margin:22px 0 10px}.loading{color:#748197;padding:14px}.current-highlight{border-left:5px solid #0b63ce;margin-bottom:12px}.current-highlight h2{margin:8px 0}.current-highlight p{line-height:1.55}.source-card{margin-top:14px}.source-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.source-grid a{border:1px solid #e0e6ef;border-radius:12px;padding:12px;display:block;background:#fafcff}.source-grid b,.source-grid span{display:block}.source-grid span{color:#6d788b;font-size:13px;margin-top:3px}.text-link{display:inline-block;margin-top:12px;font-weight:700}footer{padding:22px 16px;text-align:center;color:#718096;font-size:12px;max-width:1080px;margin:auto}@media(max-width:760px){.hero{align-items:stretch;flex-direction:column}.hero h1{font-size:25px}.grid.four,.grid.two{grid-template-columns:repeat(2,1fr)}.forecast-row{grid-template-columns:70px 1fr 70px}.forecast-row small{grid-column:2/-1}.source-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:460px){.grid.four,.grid.two{grid-template-columns:1fr}.source-grid{grid-template-columns:1fr}.tab-panel{padding-top:14px}.metric strong{font-size:25px}}
