:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#182e43;background:#eef4f8;font-synthesis:none}*{box-sizing:border-box}body{margin:0}header,main,footer{max-width:1160px;margin:auto;padding:24px}header{display:flex;align-items:center;gap:28px;min-height:95px}header>span{color:#64788a;font-size:14px}.brand{text-decoration:none;font-size:25px;color:#197aad}.pill,button{border:0;border-radius:14px;padding:13px 20px;background:#167bc3;color:white;font:inherit;cursor:pointer;text-decoration:none}.pill{margin-left:auto;font-size:14px}button:hover{filter:brightness(.94)}button:disabled{opacity:.55;cursor:wait}input,select{font:inherit;padding:13px 16px;border:1px solid #cddce7;border-radius:12px;background:white;color:inherit;min-width:0}input:focus,button:focus-visible,a:focus-visible{outline:3px solid #79baff;outline-offset:3px}.searchbar{display:flex;gap:12px}.searchbar form{display:flex;gap:10px;flex:1}.searchbar input{flex:1}.quiet{background:#dfeaf2;color:#24526e}.results{display:grid;gap:8px;margin-top:12px}.results button{text-align:left;background:white;color:#234a67;border:1px solid #dae5ed}#message{color:#5f7486;min-height:24px}.hero{background:linear-gradient(130deg,#d7edff,#c4dff5 52%,#e5f3fa);border:1px solid #d0e5f3;border-radius:32px;padding:42px;display:grid;grid-template-columns:1.4fr 1fr;gap:30px;margin-bottom:20px}.eyebrow{letter-spacing:.14em;font-size:11px;font-weight:700;color:#427595}h1{font-size:42px;letter-spacing:-.04em;margin:14px 0}h2{font-size:20px;font-weight:600;margin:0 0 16px}p{line-height:1.6}.temperature{display:flex;align-items:center;gap:35px;font-size:98px;font-weight:300;letter-spacing:-.07em;margin:20px 0}.temperature #icon{font-size:74px;letter-spacing:0}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:center}.metric{background:#ffffff80;padding:24px 18px;border-radius:20px}.metric span{display:block;color:#5a788e;font-size:13px;margin-bottom:10px}.metric b{font-size:22px;font-weight:600}.card{background:#fff;border:1px solid #e1e9ef;border-radius:24px;padding:28px;margin-bottom:20px}.sectiontitle{display:flex;justify-content:space-between;gap:10px}.sectiontitle span{font-size:13px;color:#7b8e9f}.hours{display:flex;overflow-x:auto;gap:10px;padding:8px 0}.hour{min-width:82px;padding:15px;text-align:center;background:#f3f7fa;border-radius:16px}.hour span{display:block;color:#6d8497;font-size:13px}.hour i{display:block;font-style:normal;font-size:27px;margin:16px 0}.hour b{font-size:19px}.hour small{display:block;color:#568caf;margin-top:9px}.day{display:grid;grid-template-columns:1.5fr 1fr 2fr 1fr;gap:15px;align-items:center;padding:18px 0;border-bottom:1px solid #ecf1f5}.day:last-child{border:0}.day small{color:#708498}.bottomnote{padding:32px 10px;color:#667e91}.bottomnote h2{color:#34516a}footer{display:flex;flex-wrap:wrap;gap:24px;color:#718699;font-size:12px;border-top:1px solid #dce6ee}footer a{color:inherit}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}.panel{background:#101722;color:#e7edf7}.panel header{border-bottom:1px solid #293243}.panel .brand{color:#8fc6ff}.panel .card{background:#192333;border-color:#2b3749}.panel input,.panel select{background:#101b2a;color:#e7edf7;border-color:#34445a}.panel .quiet{background:#253349;color:#c4d6eb}.panel h1{font-size:32px}.panel .eyebrow{color:#85b5e0}.panel .metric{background:#1c2a3d}.panel .metric span{color:#9aadc4}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0}.stats .metric b{font-size:32px}.subtle{color:#9caec5;font-size:13px;line-height:1.7}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:14px 12px;border-bottom:1px solid #2b3749;white-space:nowrap}th{color:#8fa5bf;font-weight:500}.badge{padding:5px 9px;border-radius:8px;background:#24374c;color:#9ccafb}.badge.today{background:#173c37;color:#8ed6c2}.badge.inactive{background:#423423;color:#e2c28e}.bars{display:flex;align-items:end;gap:8px;height:150px;margin:20px 0 35px}.bar{flex:1;min-width:12px;background:#69aaf3;border-radius:6px 6px 0 0;position:relative}.bar span{position:absolute;top:100%;font-size:10px;color:#95a9c0;margin-top:8px}.login{max-width:420px;margin:60px auto}.login form{display:grid;gap:15px}.toolbar{display:flex;align-items:center;gap:12px}.toolbar select{margin-left:auto}.empty{padding:26px;color:#a0b2c9;text-align:center}.controlform{display:flex;flex-wrap:wrap;gap:10px}.controlform input{flex:1;min-width:200px}.panel footer{border-color:#293243}.panel .bottomnote{color:#a3b5ca}
@media(max-width:700px){header,main,footer{padding:18px}header{gap:12px}header>span{display:none}.hero{padding:26px;grid-template-columns:1fr;gap:10px}h1{font-size:32px}.temperature{font-size:80px;margin:12px 0}.metrics{gap:9px}.metric{padding:17px}.searchbar{flex-direction:column}.searchbar input{width:100%}.card{padding:20px}.day{grid-template-columns:1.3fr .5fr 1fr}.day small{display:none}.stats{grid-template-columns:1fr 1fr}.toolbar{flex-wrap:wrap}.stats .metric b{font-size:25px}.panel h1{font-size:27px}}

/* ClimaDesign.kt palette; original SoftWeatherIcon artwork. Scoped to public site. */
.weather{background:#f0f7ff;color:#24334d;font-family:Roboto,Segoe UI,Arial,sans-serif}.weather header,.weather main,.weather footer{max-width:1080px}.weather header{padding-top:28px}.weather .brand{display:flex;align-items:center;gap:10px;color:#24334d;letter-spacing:-1px}.weather .brand img{border-radius:12px}.weather .pill,.weather button{background:#198df0;border-radius:18px}.weather input{border:1px solid #e4effa;border-radius:20px;background:#fdfeff}.weather .quiet{background:#dcedff;color:#287cbd}.weather .searchbar{padding:8px 0}.weather .hero{background:linear-gradient(125deg,#deefff,#ecf7ff);border:1px solid #e4effa;border-radius:30px;padding:34px;gap:36px}.weather h1{font-size:34px;font-weight:600;letter-spacing:-1px;margin:12px 0}.weather .eyebrow{color:#7586a0;letter-spacing:.08em}.weather #date,.weather #feels{color:#7586a0;font-size:14px}.weather .temperature{font-size:100px;font-weight:300;gap:18px;line-height:1.1;margin:16px 0}.weather #condition{font-size:21px;margin-bottom:4px}.weather .metric{background:#fdfeffb8;border:1px solid #ffffff90;border-radius:22px;padding:22px}.weather .metric span{color:#7586a0}.weather .metric b{font-size:23px;font-weight:500}.weather .card{border:1px solid #e4effa;border-radius:28px;background:#fdfeff;padding:26px}.weather .card h2{font-size:21px;color:#24334d}.weather .hour{background:#f1f7fe;border-radius:20px;min-width:92px;padding:15px 12px}.weather .hour:first-child{background:#e0efff}.weather .hour span:not(.weather-icon):not(.sun):not(.cloud):not(.weather-marks){color:#7586a0}.weather .hour small{font-size:11px;color:#7586a0}.weather .day{grid-template-columns:1.3fr 64px 1.5fr 1fr;border-color:#e4effa;padding:10px 12px;border-radius:16px}.weather .day:first-child{background:#f1f7fe}.weather .day>b:last-child{text-align:right;white-space:nowrap}.weather .day small{color:#7586a0}.weather .bottomnote{padding:24px 8px;color:#7586a0}.weather .weather-icon{display:inline-block;position:relative;width:64px;height:64px;flex-shrink:0;vertical-align:middle}.weather #icon>.weather-icon{width:128px;height:128px}.weather .hour>.weather-icon{display:block;margin:10px auto}.weather .cloud{position:absolute;left:6%;top:25%;width:88%;height:55.6%;overflow:hidden}.weather .cloud img{position:absolute;width:115.26%;height:auto;left:-6.985%;top:-43.17%;max-width:none}.weather .cloud.raised{top:12%}.weather .moon{position:absolute;width:80%;height:80%;left:10%;top:10%;object-fit:contain}.weather .moon.partial{width:55%;height:55%;left:42.5%;top:.5%}.weather .sun{position:absolute;width:46%;height:46%;left:27%;top:27%;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff4ab,#ffd454 65%,#ffaf26);box-shadow:0 0 12px #ffda6440}.weather .sun:before{content:"";position:absolute;inset:-36%;background:repeating-conic-gradient(from -4deg,#ffd268 0deg 8deg,transparent 8deg 45deg);mask:radial-gradient(circle,transparent 53%,#000 55%,#000 67%,transparent 70%);border-radius:50%}.weather .sun.partial{width:32%;height:32%;left:52%;top:12%}.weather .weather-marks{position:absolute;left:15%;top:67%;width:70%;text-align:center;font-size:20px;line-height:1;color:#75bff1;letter-spacing:0}.weather #icon .weather-marks{font-size:38px}.weather #message:empty{min-height:0;margin:12px 0}.weather .results button{background:#fdfeff;color:#24334d}
@media(max-width:700px){.weather header,.weather main,.weather footer{padding:16px}.weather header{min-height:80px}.weather .hero{padding:25px;gap:14px}.weather h1{font-size:29px}.weather .temperature{font-size:86px;justify-content:space-between;max-width:330px}.weather #icon>.weather-icon{width:110px;height:110px}.weather .metrics{grid-template-columns:1fr 1fr;gap:10px}.weather .metric{padding:17px}.weather .card{padding:20px 16px}.weather .day{grid-template-columns:1fr 54px 1fr;padding:10px 4px;gap:6px}.weather .day small{display:none}.weather .day .weather-icon{width:54px;height:54px}.weather .pill{padding:12px;font-size:12px}.weather .sectiontitle span{font-size:11px}.weather .card h2{font-size:19px}.weather .searchbar form{gap:6px}.weather .searchbar form button{padding:13px}.weather .brand{font-size:23px}}
