:root{--primary-50: #f0f4ff;--primary-100: #e0e7ff;--primary-200: #c7d2fe;--primary-300: #a5b4fc;--primary-400: #818cf8;--primary-500: #6366f1;--primary-600: #4f46e5;--primary-700: #4338ca;--primary-800: #3730a3;--primary-900: #312e81;--neutral-0: #ffffff;--neutral-50: #fafafa;--neutral-100: #f5f5f5;--neutral-200: #e5e5e5;--neutral-300: #d4d4d4;--neutral-400: #a3a3a3;--neutral-500: #737373;--neutral-600: #525252;--neutral-700: #404040;--neutral-800: #262626;--neutral-900: #171717;--success-500: #10b981;--warning-500: #f59e0b;--error-500: #ef4444;--info-500: #3b82f6;--color-bg-primary: var(--neutral-50);--color-bg-secondary: var(--primary-100);--color-bg-elevated: var(--neutral-0);--color-bg-surface: var(--neutral-0);--color-bg-overlay: rgba(0, 0, 0, .5);--color-text-primary: var(--neutral-900);--color-text-secondary: var(--neutral-600);--color-text-muted: var(--neutral-400);--color-text-inverse: var(--neutral-0);--color-text-link: var(--primary-600);--color-interactive-primary: var(--primary-600);--color-interactive-primary-hover: var(--primary-700);--color-interactive-primary-active: var(--primary-800);--color-interactive-secondary: var(--neutral-200);--color-interactive-secondary-hover: var(--neutral-300);--color-border-primary: var(--neutral-200);--color-border-secondary: var(--neutral-100);--color-border-interactive: var(--primary-300);--color-border-focus: var(--primary-500);--color-status-success: var(--success-500);--color-status-warning: var(--warning-500);--color-status-error: var(--error-500);--color-status-info: var(--info-500);--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--font-family-primary: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-size-6xl: 3.75rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--radius-none: 0;--radius-sm: .125rem;--radius-base: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-3xl: 1.5rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-base: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-md: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--color-bg-soft: #f0f4f8;--color-surface-soft: #ffffff;--color-shadow: rgba(209, 217, 224, .5);--color-shadow-dark: #d1d9e0;--shadow-card: 6px 6px 12px var(--color-shadow-dark);--shadow-card-inner: inset 3px 3px 6px var(--color-shadow);--shadow-card-hover: 12px 12px 24px var(--color-shadow-dark);--shadow-button: 3px 3px 6px var(--color-shadow-dark);--gradient-card: linear-gradient(145deg, var(--color-surface-soft), var(--color-bg-soft));--gradient-button: linear-gradient(145deg, var(--primary-500), var(--primary-600));--gradient-subtle: linear-gradient(145deg, #ffffff, #f8fafc);--container-max-width: 768px;--header-height: 4rem;--content-padding: var(--space-4);--transition-fast: .15s ease-in-out;--transition-base: .25s ease-in-out;--transition-slow: .35s ease-in-out;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--card-bg: var(--gradient-card);--card-shadow: var(--shadow-card);--card-radius: var(--radius-2xl);--card-padding: var(--space-8);--button-bg: var(--gradient-button);--button-shadow: var(--shadow-card);--button-shadow-hover: var(--shadow-card-hover);--button-radius: var(--radius-xl);--input-bg: var(--color-bg-soft);--input-shadow: var(--shadow-card-inner);--input-radius: var(--radius-xl);--input-padding: var(--space-4);--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px}:root{--color-primary: var(--color-interactive-primary);--color-primary-hover: var(--color-interactive-primary-hover);--color-secondary: var(--color-text-secondary);--color-background: var(--color-bg-primary);--color-surface: var(--color-bg-surface);--color-border: var(--color-border-primary);--color-text: var(--color-text-primary);--color-text-secondary: var(--color-text-secondary);--color-text-muted: var(--color-text-muted);--color-error: var(--color-status-error);--color-success: var(--color-status-success);--color-warning: var(--color-status-warning);--color-sunny: #fbbf24;--color-cloudy: #6b7280;--color-rainy: #3b82f6;--color-stormy: #6366f1;--color-snow: #e5e7eb;--space-xs: var(--space-1);--space-sm: var(--space-2);--space-md: var(--space-4);--space-lg: var(--space-6);--space-xl: var(--space-8);--space-2xl: var(--space-12);--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--shadow-sm: var(--shadow-xs);--shadow-md: var(--shadow-base);--shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--radius-sm: var(--radius-base);--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--transition-fast: .15s ease-in-out;--transition-normal: .25s ease-in-out;--transition-slow: .35s ease-in-out;--container-max-width: 768px;--header-height: 4rem}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-family-primary);font-size:var(--font-size-base);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--color-bg-soft);background-image:radial-gradient(circle at 20% 50%,rgba(99,102,241,.08) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(99,102,241,.08) 0%,transparent 50%),radial-gradient(circle at 40% 80%,rgba(99,102,241,.08) 0%,transparent 50%);font-family:var(--font-family-primary);line-height:var(--line-height-normal);color:var(--color-text-primary);min-height:100vh}::selection{background:var(--color-primary);color:var(--color-bg-soft)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}h1{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight)}h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-normal)}p{line-height:var(--line-height-relaxed)}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}button{background:none;border:none;font:inherit;cursor:pointer}input{background:none;border:none;font:inherit}ul,ol{list-style:none}.fade-in{animation:fadeIn var(--transition-base) ease-out}.fade-out{animation:fadeOut var(--transition-base) ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-10px)}}@keyframes slideDown{0%{max-height:0;opacity:0}to{max-height:300px;opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.container{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--content-padding)}.header{background:var(--card-bg);box-shadow:var(--shadow-card);border-radius:0 0 var(--card-radius) var(--card-radius);margin:0 auto var(--space-8) auto;height:var(--space-16);display:flex;align-items:center;justify-content:center;max-width:var(--container-max-width)}.header__title{background:var(--gradient-button);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);text-align:center}.main{padding:var(--space-4) 0;min-height:calc(100vh - var(--space-16))}.search-section{margin-bottom:var(--space-12)}.search-form__group{display:flex;gap:var(--space-4);align-items:stretch}.search-input{flex:1;padding:var(--input-padding);background:var(--color-bg-secondary);border:none;border-radius:var(--input-radius);box-shadow:var(--input-shadow);font-size:var(--font-size-base);color:var(--color-text-primary);transition:all var(--transition-base);height:3rem}.search-input:focus{outline:none;box-shadow:var(--input-shadow),0 0 0 3px #6366f11a}.search-input::placeholder{color:var(--color-text-muted)}.search-button{padding:var(--space-4) var(--space-6);background:var(--button-bg);border:none;border-radius:var(--button-radius);box-shadow:var(--button-shadow);color:var(--color-text-inverse);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;gap:var(--space-2);white-space:nowrap;height:3rem}.search-button:hover:not(:disabled){transform:translateY(-3px) scale(1.02);box-shadow:var(--button-shadow-hover);filter:brightness(1.1)}.search-button:active{transform:translateY(-1px) scale(.98);box-shadow:var(--button-shadow);transition:all .1s ease-out}.search-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.search-button__icon{font-size:var(--font-size-lg)}.weather-layout{display:grid;gap:var(--space-12);grid-template-columns:1fr}@media (min-width: 768px){.weather-layout{grid-template-columns:1fr 1fr;align-items:start}}.section-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-6);text-align:center}.weather-card{background:var(--card-bg);border-radius:var(--card-radius);padding:var(--card-padding);box-shadow:var(--card-shadow);position:relative;overflow:hidden}.weather-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--gradient-button);border-radius:var(--card-radius) var(--card-radius) 0 0}.current-weather__location{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin-bottom:var(--space-6);text-align:center;font-weight:var(--font-weight-medium)}.current-weather__main{display:flex;align-items:center;justify-content:center;gap:var(--space-6);margin-bottom:var(--space-8)}.current-weather__icon{font-size:4rem;display:flex;align-items:center;justify-content:center;width:100px;height:100px;background:var(--gradient-subtle);border-radius:var(--radius-full);box-shadow:var(--shadow-button)}.current-weather__temp-group{text-align:center}.current-weather__temp{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);color:var(--color-interactive-primary);margin-bottom:var(--space-2);text-shadow:0 2px 4px rgba(99,102,241,.1)}.current-weather__condition{font-size:var(--font-size-lg);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}@media (min-width: 768px){.current-weather__temp{font-size:var(--font-size-5xl)}.current-weather__icon{font-size:5rem;width:120px;height:120px}}.current-weather__details{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-6);margin-top:var(--space-8)}.weather-detail{text-align:center;padding:var(--space-2)}.weather-detail__label{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-1);font-weight:var(--font-weight-medium)}.weather-detail__value{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);font-size:var(--font-size-base)}.forecast__list{display:grid;gap:var(--space-4)}.forecast-item{background:var(--card-bg);border-radius:var(--button-radius);padding:var(--space-6);box-shadow:var(--card-shadow);cursor:pointer;transition:all var(--transition-base);position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center}.forecast-item:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:transparent;transition:background var(--transition-base)}.forecast-item:hover{transform:translateY(-3px) scale(1.01);box-shadow:var(--button-shadow-hover)}.forecast-item:focus{outline:none;box-shadow:var(--button-shadow-hover),0 0 0 3px #6366f11a}.forecast-item.active{box-shadow:var(--card-shadow);background:var(--button-bg);color:var(--color-text-inverse);flex-direction:column;align-items:stretch}.forecast-item.active:before{background:#ffffff4d}.forecast-item.active .forecast-item__day,.forecast-item.active .forecast-item__condition,.forecast-item.active .forecast-item__high,.forecast-item.active .forecast-item__low{color:var(--color-text-inverse)}.forecast-item__day{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);min-width:100px;font-size:var(--font-size-base)}.forecast-item.active .forecast-item__day{font-size:var(--font-size-xl);text-align:center;margin-bottom:var(--space-3)}.forecast-item__icon{font-size:var(--font-size-2xl);margin:0 var(--space-4);display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--input-bg);border-radius:var(--radius-full);box-shadow:var(--input-shadow)}.forecast-item.active .forecast-item__icon{font-size:var(--font-size-4xl);width:80px;height:80px;margin:var(--space-4) auto;background:#fff3;box-shadow:inset 2px 2px 4px #0000001a}.forecast-item__info{flex:1;text-align:center}.forecast-item__condition{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-1);font-weight:var(--font-weight-medium)}.forecast-item.active .forecast-item__condition{font-size:var(--font-size-2xl);margin-bottom:var(--space-3)}.forecast-item__temps{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);min-width:100px}.forecast-item__high{font-weight:var(--font-weight-bold);color:var(--color-text-primary);font-size:var(--font-size-base)}.forecast-item__low{color:var(--color-text-secondary);font-size:var(--font-size-base)}.forecast-item.active .forecast-item__high{font-size:var(--font-size-2xl)}.forecast-item.active .forecast-item__low{font-size:var(--font-size-xl)}.forecast-item.active{padding:var(--space-6)}.forecast-item.active .forecast-item__day,.forecast-item.active .forecast-item__info,.forecast-item.active .forecast-item__temps{margin-bottom:var(--space-4)}.forecast-item__details{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid rgba(255,255,255,.2);display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:var(--space-4);animation:slideDown var(--transition-base) ease-out}.forecast-item.active .forecast-item__details{border-top-color:#ffffff4d}.forecast-detail-item{text-align:center;padding:var(--space-3);background:#ffffff1a;border-radius:var(--radius-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.forecast-detail-item__label{font-size:var(--font-size-xs);margin-bottom:var(--space-1);opacity:.8;font-weight:var(--font-weight-medium)}.forecast-detail-item__value{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.loading{text-align:center;padding:var(--space-12);color:var(--color-text-secondary);background:var(--card-bg);border-radius:var(--button-radius);box-shadow:var(--card-shadow);animation:fadeIn var(--transition-slow) ease-out}.loading__spinner{width:40px;height:40px;border:4px solid var(--input-bg);border-top-color:var(--color-interactive-primary);border-radius:var(--radius-full);animation:spin 1s linear infinite;margin:0 auto var(--space-4);box-shadow:var(--input-shadow)}.error{text-align:center;padding:var(--space-8);background:linear-gradient(145deg,#fee2e2,#fecaca);border-radius:var(--button-radius);box-shadow:var(--card-shadow);color:var(--color-status-error);border:1px solid rgba(239,68,68,.2);animation:fadeIn var(--transition-base) ease-out}.error__title{font-weight:var(--font-weight-semibold);margin-bottom:var(--space-2)}.footer{margin-top:var(--space-16);padding:var(--space-4) 0;background:var(--color-bg-soft);box-shadow:var(--shadow-card);border-radius:var(--card-radius) var(--card-radius) 0 0}.footer__text{text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0}.footer__link{color:var(--color-interactive-primary);text-decoration:none;font-weight:var(--font-weight-medium);transition:color var(--transition-fast)}.footer__link:hover{color:var(--color-interactive-primary-hover)}.weather-condition-sunny{color:var(--color-sunny)}.weather-condition-cloudy{color:var(--color-cloudy)}.weather-condition-rainy{color:var(--color-rainy)}.weather-condition-stormy{color:var(--color-stormy)}@media (max-width: 640px){.search-form__group{flex-direction:column;align-items:stretch}.search-button{justify-content:center;padding:var(--space-3) var(--space-4);height:2.5rem}.search-input{height:2.5rem}.forecast-item:not(.active){flex-direction:column;text-align:center;gap:var(--space-2);padding:var(--space-4)}.forecast-item__temps{justify-content:center}.forecast-item__details{grid-template-columns:repeat(2,1fr)}}
