*{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;margin:0}#root{min-height:100vh}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--sky-top:#4a90d9;--sky-mid:#6fb3e0;--sky-bottom:#bfe0f0;--color-text:#fff;--color-text-muted:#ffffffb8;--color-text-faint:#ffffff80;--color-primary:#ffb648;--color-primary-dark:#f2994a;--color-secondary:#7fb7e8;--color-error:#ff8a80;--glass-bg:#ffffff24;--glass-bg-strong:#ffffff38;--glass-border:#ffffff47;--glass-shadow:0 8px 32px #0a142847;--radius-sm:12px;--radius-md:18px;--radius-lg:28px;--font-family:"Poppins", sans-serif}:root[data-theme=night]{--sky-top:#0b1026;--sky-mid:#1b2550;--sky-bottom:#3a3f72;--glass-bg:#ffffff14;--glass-bg-strong:#ffffff24;--glass-border:#ffffff2e}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);color:var(--color-text);background:linear-gradient(180deg, var(--sky-top) 0%, var(--sky-mid) 55%, var(--sky-bottom) 100%);min-height:100vh;transition:background .8s;position:relative;overflow-x:hidden}body:before,body:after{content:"";z-index:0;pointer-events:none;opacity:.55;filter:blur(2px);background-repeat:no-repeat;animation:60s ease-in-out infinite alternate drift;position:fixed;inset:-10%}body:before{background:radial-gradient(38% 16% at 20% 28%,#ffffff8c,#0000 70%),radial-gradient(30% 12% at 70% 18%,#fff6,#0000 70%)}body:after{background:radial-gradient(34% 14% at 85% 65%,#ffffff4d,#0000 70%),radial-gradient(26% 10% at 12% 72%,#ffffff47,#0000 70%);animation-duration:80s;animation-direction:alternate-reverse}:root[data-theme=night] body:before,:root[data-theme=night] body:after{opacity:.12}@keyframes drift{0%{transform:translate(-3%)translateY(0)}to{transform:translate(3%)translateY(2%)}}@media (prefers-reduced-motion:reduce){body:before,body:after{animation:none}}.page-container{z-index:1;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative}.card{background:var(--glass-bg);-webkit-backdrop-filter:blur(24px)saturate(140%);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);width:100%;max-width:420px;padding:36px}.stat-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px)saturate(140%);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:16px 18px}h1,h2,h3{color:var(--color-text);margin-bottom:8px;font-weight:600;line-height:1.2}h1{font-size:26px}h2{font-size:20px}.subtitle{color:var(--color-text-muted);margin-bottom:24px}.brand{letter-spacing:.04em;text-transform:uppercase;color:var(--color-primary);margin-bottom:16px;font-size:13px;font-weight:600}.form-group{margin-bottom:16px}.form-group label{color:var(--color-text-muted);margin-bottom:6px;font-size:14px;font-weight:500;display:block}input{border:1px solid var(--glass-border);border-radius:var(--radius-sm);width:100%;font-family:var(--font-family);color:var(--color-text);background-color:#ffffff1a;outline:none;padding:12px 16px;font-size:15px;transition:border-color .2s,background-color .2s}input::placeholder{color:var(--color-text-faint)}input:focus{border-color:var(--color-primary);background-color:#ffffff29}input[type=date]::-webkit-calendar-picker-indicator{filter:invert();cursor:pointer}.btn{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));color:#2d2a26;width:100%;font-family:var(--font-family);cursor:pointer;border:none;padding:12px 16px;font-size:15px;font-weight:600;transition:filter .2s,transform .1s}.btn:hover{filter:brightness(1.08)}.btn:active{transform:translateY(1px)}.btn:disabled{background:var(--glass-bg-strong);color:var(--color-text-faint);cursor:not-allowed}.btn-ghost{color:var(--color-text-muted);font-family:var(--font-family);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 8px;font-size:14px;transition:background-color .2s,color .2s}.btn-ghost:hover{color:var(--color-text);background:#ffffff1a}.error-text{color:var(--color-error);margin-top:8px;font-size:14px}.link-text{color:var(--color-text-muted);text-align:center;margin-top:20px;font-size:14px}.link-text a{color:var(--color-primary);font-weight:600;text-decoration:none}.link-text a:hover{text-decoration:underline}hr.divider{border:none;border-top:1px solid var(--glass-border);margin:24px 0}.result-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.result-location h2{margin-bottom:2px}.result-location .subtitle{margin-bottom:0}.result-label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:8px;font-size:12px;font-weight:600}.result-current{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.result-temp{font-size:48px;font-weight:600;line-height:1}.result-temp-meta{color:var(--color-text-muted);text-transform:capitalize;margin-top:4px;font-size:14px}.result-condition{text-align:center;flex-direction:column;align-items:center;display:flex}.result-condition-text{text-transform:capitalize;color:var(--color-text-muted);margin-top:-6px;font-size:14px}.weather-icon{object-fit:contain;filter:drop-shadow(0 4px 10px #0003);width:64px;height:64px;display:block}.weather-icon--fallback{justify-content:center;align-items:center;width:64px;height:64px;line-height:1;display:flex}.sun-arc{margin:8px 0 20px}.sun-arc__svg{width:100%;height:auto;display:block}.sun-arc__sun{fill:var(--color-primary);filter:drop-shadow(0 0 8px #ffb648cc)}.sun-arc__moon{fill:#d7def2;filter:drop-shadow(0 0 6px #d7def2b3)}.sun-arc__labels{justify-content:space-between;margin-top:4px;display:flex}.sun-arc__label{flex-direction:column;display:flex}.sun-arc__label--right{align-items:flex-end}.sun-arc__time{font-size:16px;font-weight:600}.sun-arc__caption{color:var(--color-text-muted);font-size:12px}.stat-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.stat-card-label{color:var(--color-text-muted);margin-bottom:6px;font-size:13px}.stat-card-value{font-size:20px;font-weight:600}
