.Header_header__KwdYD{background:rgba(30,41,59,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:100;padding:0}.Header_inner__DLT3k{max-width:900px;margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between}.Header_logo____uDV{display:flex;align-items:center;gap:10px}.Header_logoIcon__p3gSG{font-size:28px;line-height:1}.Header_logoText__xA8kS{font-size:22px;font-weight:700;color:var(--text-primary);letter-spacing:-.5px}.Header_tagline__1TGOt{font-size:13px;color:var(--text-muted);letter-spacing:.5px}@media (max-width:480px){.Header_tagline__1TGOt{display:none}}.Footer_footer__pQtti{background:rgba(15,23,42,.9);border-top:1px solid var(--border);padding:20px 24px}.Footer_inner__vtL_T{max-width:900px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--text-muted)}.Footer_note__o1mys{font-size:12px;opacity:.7}@media (max-width:480px){.Footer_inner__vtL_T{flex-direction:column;gap:6px;text-align:center}}.page_main__nw1Wk{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(135deg,#0f172a,#1e293b 50%,#0f172a)}.page_content___38fW{flex:1 1;padding:40px 20px}.SearchBar_form__YP3wg{display:flex;gap:12px;max-width:640px;margin:0 auto}.SearchBar_inputWrapper__Xxewe{flex:1 1;position:relative;display:flex;align-items:center}.SearchBar_searchIcon__Nk_HQ{position:absolute;left:16px;font-size:18px;pointer-events:none;opacity:.6}.SearchBar_input__4jZzZ{width:100%;background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:15px;padding:14px 46px 14px 48px;transition:border-color var(--transition),box-shadow var(--transition)}.SearchBar_input__4jZzZ::placeholder{color:var(--text-muted)}.SearchBar_input__4jZzZ:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(56,189,248,.15)}.SearchBar_input__4jZzZ:disabled{opacity:.6}.SearchBar_clearBtn__FSOJb{position:absolute;right:14px;background:none;color:var(--text-muted);font-size:14px;padding:4px 6px;border-radius:4px;transition:color var(--transition)}.SearchBar_clearBtn__FSOJb:hover{color:var(--text-primary)}.SearchBar_submitBtn__txzgZ{background:var(--accent);color:var(--bg-primary);border-radius:var(--radius);font-size:15px;font-weight:700;padding:14px 28px;white-space:nowrap;transition:all var(--transition);display:flex;align-items:center;justify-content:center;min-width:100px}.SearchBar_submitBtn__txzgZ:hover:not(:disabled){background:#7dd3fc;transform:translateY(-1px)}.SearchBar_submitBtn__txzgZ:disabled{opacity:.5;cursor:not-allowed}.SearchBar_spinner__JvUOB{display:inline-block;width:18px;height:18px;border:2.5px solid rgba(15,23,42,.3);border-top:2.5px solid var(--bg-primary);border-radius:50%;animation:SearchBar_spin__YzXEQ .7s linear infinite}@keyframes SearchBar_spin__YzXEQ{to{transform:rotate(1turn)}}@media (max-width:480px){.SearchBar_form__YP3wg{flex-direction:column}.SearchBar_submitBtn__txzgZ{width:100%}}.WeatherCard_card__9zQJL{border-radius:var(--radius);padding:32px;box-shadow:var(--shadow);color:#fff;position:relative;overflow:hidden;transition:transform var(--transition)}.WeatherCard_card__9zQJL:before{content:"";position:absolute;top:-40px;right:-40px;width:200px;height:200px;background:hsla(0,0%,100%,.04);border-radius:50%;pointer-events:none}.WeatherCard_card__9zQJL:hover{transform:translateY(-2px)}.WeatherCard_top__hixFd{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.WeatherCard_city__n_1sn{font-size:32px;font-weight:800;line-height:1.1;margin-bottom:4px}.WeatherCard_country__zMc0T{font-size:16px;opacity:.85;margin-bottom:4px}.WeatherCard_coords__Im4MW{font-size:12px;opacity:.55;font-family:monospace}.WeatherCard_iconBlock__3556M{text-align:center}.WeatherCard_weatherIcon___cmcZ{font-size:72px;line-height:1;display:block;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3))}.WeatherCard_dayNight__liwuN{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;opacity:.6;margin-top:6px;display:block}.WeatherCard_bottom__sQ4Na{display:flex;align-items:flex-end;gap:24px}.WeatherCard_tempBlock__DJKVU{display:flex;align-items:flex-start;line-height:1}.WeatherCard_temp__9iYCa{font-size:80px;font-weight:900;letter-spacing:-4px}.WeatherCard_unit__itVe_{font-size:28px;font-weight:600;margin-top:14px;opacity:.8}.WeatherCard_description__hWCTr{font-size:20px;font-weight:600;margin-bottom:4px}.WeatherCard_feelsLike__FGWFV{font-size:14px;opacity:.75;margin-bottom:6px}.WeatherCard_wind__7nSwy{font-size:14px;opacity:.8}@media (max-width:560px){.WeatherCard_card__9zQJL{padding:24px 20px}.WeatherCard_city__n_1sn{font-size:24px}.WeatherCard_weatherIcon___cmcZ{font-size:52px}.WeatherCard_temp__9iYCa{font-size:60px}.WeatherCard_unit__itVe_{font-size:22px}.WeatherCard_description__hWCTr{font-size:16px}}.ForecastStrip_wrapper__jScuA{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:20px}.ForecastStrip_title__YG2jw{font-size:16px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;margin-bottom:20px}.ForecastStrip_strip__Ue0h8{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:8px;gap:8px}.ForecastStrip_card__snbqa{display:flex;flex-direction:column;align-items:center;gap:6px;background:hsla(0,0%,100%,.03);border-radius:var(--radius-sm);padding:12px 8px;border:1px solid transparent;transition:all var(--transition);text-align:center}.ForecastStrip_card__snbqa:hover{border-color:var(--border);background:hsla(0,0%,100%,.06)}.ForecastStrip_today__pwhT_{border-color:var(--accent)!important;background:rgba(56,189,248,.08)!important}.ForecastStrip_dayName__cWhML{font-size:12px;font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.ForecastStrip_dateStr__uyb9a{font-size:10px;color:var(--text-muted)}.ForecastStrip_icon__g000O{font-size:28px;line-height:1;margin:4px 0}.ForecastStrip_desc__QyRtL{font-size:10px;color:var(--text-secondary);text-align:center;line-height:1.3}.ForecastStrip_temps__8r1_T{display:flex;gap:6px;align-items:center}.ForecastStrip_maxTemp__LOk61{font-size:14px;font-weight:700;color:var(--text-primary)}.ForecastStrip_minTemp__0Z6MQ{font-size:12px;color:var(--text-muted)}.ForecastStrip_precip__Aaj4O{font-size:10px;color:#7dd3fc}@media (max-width:640px){.ForecastStrip_strip__Ue0h8{grid-template-columns:repeat(4,1fr)}}@media (max-width:400px){.ForecastStrip_strip__Ue0h8{grid-template-columns:repeat(2,1fr)}}.WeatherDetails_wrapper__Jun3z{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.WeatherDetails_title___mJby{font-size:16px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;margin-bottom:20px}.WeatherDetails_grid__YsV3a{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}.WeatherDetails_item__Jx1Ep{display:flex;align-items:flex-start;gap:12px;background:hsla(0,0%,100%,.03);border-radius:var(--radius-sm);padding:14px;border:1px solid transparent;transition:border-color var(--transition)}.WeatherDetails_item__Jx1Ep:hover{border-color:var(--border)}.WeatherDetails_icon__J_FxO{font-size:22px;line-height:1;flex-shrink:0;margin-top:2px}.WeatherDetails_info__yTU1y{display:flex;flex-direction:column;gap:2px}.WeatherDetails_label__Pmnth{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted)}.WeatherDetails_value__OPxpj{font-size:18px;font-weight:700;color:var(--text-primary)}.WeatherDetails_sub__VP0V5{font-size:11px;color:var(--accent)}@media (max-width:640px){.WeatherDetails_grid__YsV3a{grid-template-columns:repeat(2,1fr)}}@media (max-width:400px){.WeatherDetails_grid__YsV3a{grid-template-columns:1fr}}.LoadingSpinner_wrapper__ORl9Q{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px}.LoadingSpinner_spinner__a42C_{width:48px;height:48px;border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:LoadingSpinner_spin__qqp0p .8s linear infinite}.LoadingSpinner_text__G_fIl{font-size:15px;color:var(--text-muted)}@keyframes LoadingSpinner_spin__qqp0p{to{transform:rotate(1turn)}}.ErrorMessage_wrapper__o9KsL{display:flex;align-items:center;gap:12px;background:hsla(0,91%,71%,.1);border:1px solid hsla(0,91%,71%,.3);border-radius:var(--radius);padding:16px 20px;margin-top:24px;max-width:640px;margin-left:auto;margin-right:auto}.ErrorMessage_icon__FzDLx{font-size:22px;flex-shrink:0}.ErrorMessage_message__0YLWJ{font-size:15px;color:var(--error);line-height:1.5}.WeatherDashboard_dashboard__LE_ZE{max-width:860px;margin:0 auto}.WeatherDashboard_hero__YAeod{text-align:center;margin-bottom:36px}.WeatherDashboard_headline__sBtf0{font-size:clamp(28px,5vw,42px);font-weight:800;color:var(--text-primary);letter-spacing:-1px;margin-bottom:8px;background:linear-gradient(135deg,#f1f5f9,#38bdf8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.WeatherDashboard_subheadline__oDrcq{font-size:16px;color:var(--text-secondary)}.WeatherDashboard_results__iidcn{display:flex;flex-direction:column;gap:20px;margin-top:28px;animation:WeatherDashboard_fadeIn__uYGHE .4s ease}.WeatherDashboard_placeholder__GCjCd{text-align:center;margin-top:60px;color:var(--text-muted);font-size:16px}.WeatherDashboard_placeholderIcon__63EAG{font-size:64px;margin-bottom:16px;animation:WeatherDashboard_float__RUsmq 3s ease-in-out infinite}.WeatherDashboard_suggestions__P3MPn{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px}.WeatherDashboard_suggestionBtn__kIOca{background:var(--bg-card);color:var(--accent);border:1px solid var(--border);border-radius:20px;padding:8px 20px;font-size:14px;transition:all var(--transition)}.WeatherDashboard_suggestionBtn__kIOca:hover{background:var(--accent);color:var(--bg-primary);border-color:var(--accent);transform:translateY(-2px)}@keyframes WeatherDashboard_fadeIn__uYGHE{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes WeatherDashboard_float__RUsmq{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}