@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap");*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:radial-gradient(circle at 10% 0,#151a24 0,#0b0d12 55%,#0a0b0f 100%);color:#e8eaf0;min-height:100vh}.container{max-width:1140px;margin:0 auto;padding:28px 18px 80px}h1{font-size:1.65rem;font-weight:800;margin-bottom:2px;letter-spacing:-.02em;gap:10px}h1,h2{display:flex;align-items:center}h2{font-size:1.05rem;font-weight:700;margin:0 0 14px;gap:8px}h3{font-weight:600}.subtitle{color:#8b93a7;margin-top:0;margin-bottom:26px;font-size:.88rem}.badge{display:inline-flex;align-items:center;gap:4px;font-size:.65rem;font-weight:700;letter-spacing:.03em;padding:3px 10px;border-radius:999px;background:linear-gradient(135deg,#3a2f0f,#4a3a10);color:#f2c94c;vertical-align:middle}.grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;margin-bottom:20px}@media (max-width:700px){.grid{grid-template-columns:repeat(2,1fr)}}.tile{background:linear-gradient(160deg,#1b1f2a,#14171f);border:1px solid #262b38;border-radius:14px;padding:16px 16px 14px;transition:border-color .2s ease,transform .15s ease;position:relative;overflow:hidden}.tile:hover{border-color:#333a4a}.tile-icon{font-size:1.3rem;margin-bottom:6px;display:inline-block}.tile-label{font-size:.72rem;color:#8b93a7;margin-bottom:6px;font-weight:500}.tile-value{font-size:1.5rem;font-weight:700;letter-spacing:-.01em}.section{background:linear-gradient(160deg,#161a23,#10131a);border:1px solid #232834;border-radius:16px;padding:20px 20px 22px;margin-bottom:22px;box-shadow:0 8px 24px rgba(0,0,0,.18)}table{width:100%;border-collapse:collapse;font-size:.85rem}td,th{text-align:right;padding:8px 10px;border-bottom:1px solid #232834}th{color:#8b93a7;font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em}td:first-child,th:first-child{text-align:left}.price-cheap{color:#4ade80;font-weight:600}.price-expensive{color:#f87171;font-weight:600}.error,.loading{padding:10px 0;color:#8b93a7;font-size:.85rem}.error{color:#f87171}.pulse-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#4ade80;animation:pulseDot 1.4s ease-in-out infinite;margin-right:4px}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.weather-icon{display:inline-block;font-size:1.6rem;line-height:1}.anim-spin-slow{animation:spinSlow 12s linear infinite}@keyframes spinSlow{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.anim-float{animation:floatY 3s ease-in-out infinite}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.anim-bounce{animation:bounceY 1.1s ease-in-out infinite}@keyframes bounceY{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.anim-pulse{animation:iconPulse 2s ease-in-out infinite}@keyframes iconPulse{0%,to{opacity:1}50%{opacity:.5}}.anim-flash{animation:iconFlash 1.6s ease-in-out infinite}@keyframes iconFlash{0%,to{opacity:1}45%{opacity:1}50%{opacity:.3}55%{opacity:1}}.anim-spin{animation:spinFast .8s linear infinite;display:inline-block}@keyframes spinFast{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.flow-dot-path{stroke-dasharray:4 9;animation-name:flowDash;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes flowDash{to{stroke-dashoffset:-260}}button,input,select{font-family:inherit}input::placeholder{color:#5d6478}input[type=time]{color-scheme:dark;min-width:128px}input[type=time]::-webkit-calendar-picker-indicator{filter:invert(58%) sepia(62%) saturate(2380%) hue-rotate(88deg) brightness(1.2)}.chip{display:inline-flex;align-items:center;gap:4px;background:#1b1f2a;border:1px solid #262b38;border-radius:999px;padding:4px 10px;font-size:.75rem;color:#c3c8d4}.hourly-scroll{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px;margin-top:10px}.hourly-card{flex:0 0 auto;width:76px;background:#14171f;border:1px solid #232834;border-radius:12px;padding:10px 8px;text-align:center}.hourly-card .hour{font-size:.7rem;color:#8b93a7;margin-bottom:4px}.hourly-card .temp{font-size:.85rem;font-weight:700;margin-top:4px}.hourly-card .precip{font-size:.68rem;color:#5aa9ff;margin-top:2px}