:root{--color-primary: #4c6fff;--color-primary-dark: #3a5ce5;--color-primary-light: #6d8bff;--color-secondary: #8c52ff;--color-secondary-dark: #7a40e6;--color-secondary-light: #a377ff;--color-sunny: #f6ad55;--color-cloudy: #a0aec0;--color-rainy: #4299e1;--color-stormy: #dd6b20;--color-snowy: #718096;--color-background: #ffffff;--color-background-secondary: #f8fafc;--color-background-tertiary: #edf2f7;--color-card-background: #ffffff;--color-text: #1a202c;--color-text-secondary: #4a5568;--color-text-tertiary: #718096;--color-text-muted: #a0aec0;--color-text-inverse: #ffffff;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--color-border-dark: #cbd5e0;--color-success: #38a169;--color-success-light: #68d391;--color-warning: #dd6b20;--color-warning-light: #f6ad55;--color-error: #e53e3e;--color-error-light: #feb2b2;--color-info: #4299e1;--color-info-light: #63b3ed;--color-shadow: rgba(0, 0, 0, .1);--color-shadow-dark: rgba(0, 0, 0, .15);--transition-duration: .3s;--transition-easing: cubic-bezier(.4, 0, .2, 1);--animation-duration: .5s;--border-radius-sm: 4px;--border-radius-md: 8px;--border-radius-lg: 12px;--border-radius-xl: 16px;--border-radius-2xl: 24px;--border-radius-full: 9999px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--spacing-3xl: 64px;--font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--font-family-mono: "SF Mono", "Fira Code", "Menlo", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 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: 4rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--z-index-base: 0;--z-index-dropdown: 1000;--z-index-sticky: 1020;--z-index-fixed: 1030;--z-index-modal-backdrop: 1040;--z-index-modal: 1050;--z-index-popover: 1060;--z-index-tooltip: 1070;--z-index-toast: 2050;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px}[data-theme=dark]{--color-background: #1a202c;--color-background-secondary: #2d3748;--color-background-tertiary: #4a5568;--color-card-background: #2d3748;--color-text: #f7fafc;--color-text-secondary: #e2e8f0;--color-text-tertiary: #cbd5e0;--color-text-muted: #a0aec0;--color-text-inverse: #1a202c;--color-border: #2d3748;--color-border-light: #4a5568;--color-border-dark: #1a202c;--color-shadow: rgba(0, 0, 0, .3);--color-shadow-dark: rgba(0, 0, 0, .5)}@media print{:root{--color-background: #ffffff;--color-background-secondary: #f8fafc;--color-background-tertiary: #edf2f7;--color-card-background: #ffffff;--color-text: #1a202c;--color-text-secondary: #4a5568;--color-text-tertiary: #718096;--color-text-muted: #a0aec0;--color-text-inverse: #ffffff;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--color-border-dark: #cbd5e0}}@media (prefers-contrast: high){:root{--color-border: #000000;--color-shadow: rgba(0, 0, 0, .3)}[data-theme=dark]{--color-border: #ffffff}}*,*:before,*:after{box-sizing:border-box}html,body,h1,h2,h3,h4,h5,h6,p,ul,ol,li,dl,dt,dd,figure,figcaption,blockquote,pre,fieldset,legend,button,input,textarea,select{margin:0;padding:0}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-family-sans);font-size:var(--font-size-md);line-height:1.6;color:var(--color-text);background-color:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-duration) var(--transition-easing),color var(--transition-duration) var(--transition-easing)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:1.2;margin-bottom:var(--spacing-md)}h1{font-size:var(--font-size-5xl)}h2{font-size:var(--font-size-4xl)}h3{font-size:var(--font-size-3xl)}h4{font-size:var(--font-size-2xl)}h5{font-size:var(--font-size-xl)}h6{font-size:var(--font-size-lg)}p{margin-bottom:var(--spacing-md)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-duration) var(--transition-easing)}a:hover{color:var(--color-primary-dark);text-decoration:underline}a:focus{outline:2px solid var(--color-primary);outline-offset:2px}ul,ol{margin-left:var(--spacing-lg);margin-bottom:var(--spacing-md)}li{margin-bottom:var(--spacing-xs)}img{max-width:100%;height:auto;display:block}button,input,textarea,select{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;background-color:transparent;border:none;padding:0;margin:0}button{cursor:pointer;border:none;background:none;font-family:inherit;font-size:inherit;padding:0}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}table{width:100%;border-collapse:collapse;margin-bottom:var(--spacing-md)}th,td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border)}th{font-weight:var(--font-weight-bold);background-color:var(--color-background-secondary)}code,pre{font-family:var(--font-family-mono);background-color:var(--color-background-secondary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm)}pre{overflow-x:auto;padding:var(--spacing-md)}::selection{background-color:var(--color-primary-light);color:var(--color-text-inverse)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--color-background-secondary);border-radius:var(--border-radius-full)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--border-radius-full);border:3px solid var(--color-background-secondary)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.skip-link{position:absolute;top:-40px;left:0;background:var(--color-primary);color:var(--color-text-inverse);padding:var(--spacing-sm) var(--spacing-md);text-decoration:none;z-index:var(--z-index-modal);transition:top var(--transition-duration) var(--transition-easing)}.skip-link:focus{top:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sr-only:focus{position:fixed;top:var(--spacing-md);left:50%;transform:translate(-50%);width:auto;height:auto;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-primary);color:var(--color-text-inverse);border-radius:var(--border-radius-md);clip:auto;white-space:normal;z-index:var(--z-index-tooltip)}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{*,*:before,*:after{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid var(--color-border);page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}@media (prefers-contrast: high){:focus-visible{outline-width:3px!important}button,a,input,select,textarea{outline:1px solid var(--color-text)!important}}.app-container{max-width:1200px;margin:0 auto;padding:var(--spacing-md);width:100%}.header{background-color:var(--color-background-secondary);border-radius:var(--border-radius-xl);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);box-shadow:0 2px 8px var(--color-shadow)}.header-content{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.app-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-primary);margin:0;display:flex;align-items:center;gap:var(--spacing-xs)}.header-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.search-container{position:relative;display:flex;align-items:center}.search-input{padding:var(--spacing-sm) var(--spacing-xl) var(--spacing-sm) var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--border-radius-full);background-color:var(--color-background);color:var(--color-text);font-size:var(--font-size-md);transition:border-color var(--transition-duration) var(--transition-easing),box-shadow var(--transition-duration) var(--transition-easing);min-width:200px}.search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.search-input::placeholder{color:var(--color-text-muted)}.search-clear-btn{position:absolute;right:var(--spacing-sm);padding:var(--spacing-xs);transform:none!important;width:35px;height:35px;line-height:none}.search-clear-btn svg{vertical-align:middle}.main-content{display:grid;gap:var(--spacing-lg)}.weather-section{background-color:var(--color-card-background);border-radius:var(--border-radius-xl);padding:var(--spacing-lg);box-shadow:0 2px 8px var(--color-shadow)}.section-title{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-md);color:var(--color-text);display:flex;align-items:center;gap:var(--spacing-sm)}.favorites-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}@media (min-width: var(--breakpoint-md)){.header-content{flex-wrap:nowrap}.search-input{min-width:300px}}@media (min-width: var(--breakpoint-lg)){.main-content{grid-template-columns:1fr 350px}#current-weather{grid-column:1 / -1}#forecast{grid-column:1}#favorites{grid-column:2;align-self:start}}@media (min-width: var(--breakpoint-xl)){.search-input{min-width:400px}}@media print{.app-container{max-width:100%;padding:0}.header{display:none}.weather-section{page-break-inside:avoid;break-inside:avoid}.main-content{grid-template-columns:1fr!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-duration) var(--transition-easing);border:2px solid transparent;text-decoration:none;background-color:var(--color-background);color:var(--color-text)}.btn:hover{transform:translateY(-1px)}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover{background-color:var(--color-primary-dark)}.btn-primary:active{transform:translateY(1px)}.unit-display>svg{vertical-align:middle;text-align:center;margin:auto;display:inline}.weather-icon-container svg{transition:opacity .3s ease;display:block;margin:0 auto}.btn-secondary{background-color:var(--color-background-secondary);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background-color:var(--color-background-tertiary)}.btn-icon{width:40px;height:40px;padding:0;border-radius:var(--border-radius-full);background-color:var(--color-background);border:2px solid var(--color-border)}.btn-icon:hover{background-color:var(--color-background-secondary);border-color:var(--color-primary)}.icon{width:20px;height:20px;fill:currentColor;flex-shrink:0}.icon-lg{width:24px;height:24px}.icon-xl{width:32px;height:32px}.weather-card{display:flex;flex-direction:column;gap:var(--spacing-lg);padding:var(--spacing-xl);background:linear-gradient(135deg,var(--color-background) 0%,var(--color-background-secondary) 100%);border-radius:var(--border-radius-2xl);position:relative;overflow:hidden}.weather-card:before{content:"";position:absolute;top:-50%;right:-50%;width:200%;height:200%;background:radial-gradient(circle,var(--color-primary) 0%,transparent 70%);opacity:.05;z-index:0}.weather-card>*{position:relative;z-index:1}.location-info{display:flex;flex-direction:column;gap:var(--spacing-xs)}.location-name{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text)}.location-details{font-size:var(--font-size-md);color:var(--color-text-secondary)}.temperature-display{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.temperature-value{font-size:var(--font-size-5xl);font-weight:var(--font-weight-bold);color:var(--color-text);line-height:1}.temperature-unit{font-size:var(--font-size-xl);color:var(--color-text-secondary)}.weather-icon-container{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.weather-icon{width:90px;height:90px;color:var(--color-primary);margin:auto}.weather-condition{font-size:var(--font-size-lg);color:var(--color-text-secondary);text-transform:capitalize}.weather-details{display:grid;grid-template-columns:1fr;gap:var(--spacing-md);width:100%}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-background);border-radius:var(--border-radius-md)}.detail-label{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.detail-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.forecast-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-md);padding:var(--spacing-md) 0}.forecast-item{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-background-secondary);border-radius:var(--border-radius-lg);transition:transform var(--transition-duration) var(--transition-easing),box-shadow var(--transition-duration) var(--transition-easing);cursor:pointer}.forecast-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--color-shadow)}.forecast-day{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text);background-color:var(--color-background);border-radius:var(--border-radius-md);padding:var(--spacing-md)}.forecast-icon{width:100%;height:100px;color:var(--color-primary)}.forecast-temp{display:flex;width:100%;align-items:center;justify-content:center;gap:var(--spacing-xs)}.forecast-date{text-align:center;margin-bottom:10px}.temp-max,.temp-min{font-size:var(--font-size-md);color:var(--color-text)}.forecast-skeleton{background-color:var(--color-background-secondary);border-radius:var(--border-radius-lg);padding:var(--spacing-md);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.favorites-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.favorite-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background-color:var(--color-background-secondary);border-radius:var(--border-radius-md);border:2px solid transparent;cursor:pointer;transition:all var(--transition-duration) var(--transition-easing);width:100%;text-align:left}.favorite-item:hover{background-color:var(--color-background-tertiary);border-color:var(--color-primary)}.favorite-item-content{display:flex;align-items:center;gap:var(--spacing-sm);flex:1}.favorite-icon{width:20px;height:20px;color:var(--color-warning);flex-shrink:0}.favorite-location{font-size:var(--font-size-md);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.favorite-remove{width:32px;height:32px;padding:0;margin-left:var(--spacing-sm);background-color:transparent;color:var(--color-error);border:none;cursor:pointer;opacity:.7;transition:opacity var(--transition-duration) var(--transition-easing)}.favorite-remove:hover{opacity:1}.favorites-empty{text-align:center;color:var(--color-text-muted);font-style:italic;padding:var(--spacing-lg)}.autocomplete-container{position:absolute;top:100%;left:0;right:0;margin-top:var(--spacing-xs);background-color:var(--color-background);border:2px solid var(--color-border);border-radius:var(--border-radius-lg);box-shadow:0 4px 16px var(--color-shadow);z-index:var(--z-index-dropdown);max-height:300px;overflow-y:auto;overscroll-behavior:contain}.autocomplete-item{padding:var(--spacing-md);cursor:pointer;transition:background-color var(--transition-duration) var(--transition-easing);display:flex;align-items:center;gap:var(--spacing-sm)}.autocomplete-item:hover,.autocomplete-item[aria-selected=true]{background-color:var(--color-background-secondary)}.autocomplete-item-content{display:flex;align-items:center;gap:var(--spacing-sm);flex:1}.autocomplete-icon{width:20px;height:20px;color:var(--color-text-muted);flex-shrink:0}.autocomplete-location{font-size:var(--font-size-md);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast-container{position:fixed;bottom:var(--spacing-lg);left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:var(--z-index-toast);max-width:400px;width:100%}.toast{display:flex;padding:var(--spacing-md);background-color:var(--color-background);border-radius:var(--border-radius-lg);box-shadow:0 4px 16px var(--color-shadow-dark);transform:translate(calc(100% + 20px));opacity:0;transition:transform var(--transition-duration) var(--transition-easing),opacity var(--transition-duration) var(--transition-easing);min-width:300px}.toast-show{transform:translate(0);opacity:1}.toast-content{display:flex;align-items:center;gap:var(--spacing-md);flex:1}.toast-icon{width:24px;height:24px;flex-shrink:0}.toast-success .toast-icon{color:var(--color-success)}.toast-error .toast-icon{color:var(--color-error)}.toast-warning .toast-icon{color:var(--color-warning)}.toast-info .toast-icon{color:var(--color-info)}.toast-message{flex:1;font-size:var(--font-size-md);color:var(--color-text);line-height:1.5}.toast-close{width:32px;height:32px;padding:0;background-color:transparent;border:none;cursor:pointer;color:var(--color-text-muted);transition:color var(--transition-duration) var(--transition-easing)}.toast-close:hover{color:var(--color-text)}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:none;align-items:center;justify-content:center;z-index:var(--z-index-modal);opacity:0;transition:opacity var(--transition-duration) var(--transition-easing)}.loading-show{opacity:1}.loading-spinner{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);background-color:var(--color-background);padding:var(--spacing-xl);border-radius:var(--border-radius-xl);box-shadow:0 8px 32px var(--color-shadow-dark);min-width:250px}.spinner-ring{width:60px;height:60px;border:6px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spinner-rotate 1s linear infinite}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.loading-text{font-size:var(--font-size-lg);color:var(--color-text);text-align:center}.error-message{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-lg);padding:var(--spacing-2xl);text-align:center}.error-icon{width:64px;height:64px;color:var(--color-error);margin-bottom:var(--spacing-md)}.error-message p{font-size:var(--font-size-lg);color:var(--color-text);margin-bottom:var(--spacing-md)}.critical-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-lg);padding:var(--spacing-2xl);text-align:center;min-height:60vh}.critical-error h1{font-size:var(--font-size-4xl);color:var(--color-error);margin-bottom:var(--spacing-md)}.critical-error p{font-size:var(--font-size-lg);color:var(--color-text);margin-bottom:var(--spacing-md)}[data-theme=dark] .weather-card:before{background:radial-gradient(circle,var(--color-primary) 0%,transparent 70%);opacity:.1}.search-input.search-loading{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='%234c6fff' stroke-width='2'/%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='1s' repeatCount='indefinite'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:40px!important}.weather-icon-container .weather-icon,.weather-icon-container .weather-condition{transition:opacity .4s cubic-bezier(.4,0,.2,1)}.weather-icon-fallback{width:80px;height:80px;background:var(--color-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:2rem}.search-autocomplete{position:absolute;top:100%;left:0;right:0;background:var(--color-background);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 4px 20px #00000026;margin-top:8px;z-index:1000;display:none;max-height:320px;overflow-y:auto;opacity:0;transform:translateY(-10px);transition:opacity .2s ease,transform .2s ease,display .2s}.search-autocomplete.show{display:block;opacity:1;transform:translateY(0)}.search-results{padding:4px 0}.search-result-item{display:flex;align-items:center;width:100%;padding:10px 16px;background:none;border:none;text-align:left;cursor:pointer;color:var(--color-text);font-family:inherit;font-size:1rem;transition:background-color .2s}.search-result-item:hover,.search-result-item:focus{background-color:var(--color-border);outline:none}.search-result-item:focus{box-shadow:0 0 0 2px var(--color-primary)}.result-icon{flex-shrink:0;width:20px;height:20px;margin-right:12px;color:var(--color-primary)}.result-text{flex:1;min-width:0}.result-name{font-weight:500;margin-bottom:2px}.result-subtitle{font-size:.85rem;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-item.highlighted{background-color:var(--color-primary);color:#fff;outline:none}.search-result-item.highlighted .result-subtitle{color:#ffffffd9}.search-autocomplete{scroll-behavior:smooth}.search-input.loading{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='%234c6fff' stroke-width='2'/%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='1s' repeatCount='indefinite'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:20px;padding-right:40px!important}.location-name[data-coordinates]:after{content:attr(data-coordinates);display:block;font-size:.85rem;color:var(--color-text-secondary);margin-top:4px;font-family:monospace}.m-0{margin:0!important}.m-1{margin:var(--spacing-xs)!important}.m-2{margin:var(--spacing-sm)!important}.m-3{margin:var(--spacing-md)!important}.m-4{margin:var(--spacing-lg)!important}.m-5{margin:var(--spacing-xl)!important}.mt-0{margin-top:0!important}.mt-1{margin-top:var(--spacing-xs)!important}.mt-2{margin-top:var(--spacing-sm)!important}.mt-3{margin-top:var(--spacing-md)!important}.mt-4{margin-top:var(--spacing-lg)!important}.mt-5{margin-top:var(--spacing-xl)!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:var(--spacing-xs)!important}.mb-2{margin-bottom:var(--spacing-sm)!important}.mb-3{margin-bottom:var(--spacing-md)!important}.mb-4{margin-bottom:var(--spacing-lg)!important}.mb-5{margin-bottom:var(--spacing-xl)!important}.ml-0{margin-left:0!important}.ml-1{margin-left:var(--spacing-xs)!important}.ml-2{margin-left:var(--spacing-sm)!important}.ml-3{margin-left:var(--spacing-md)!important}.ml-4{margin-left:var(--spacing-lg)!important}.ml-5{margin-left:var(--spacing-xl)!important}.mr-0{margin-right:0!important}.mr-1{margin-right:var(--spacing-xs)!important}.mr-2{margin-right:var(--spacing-sm)!important}.mr-3{margin-right:var(--spacing-md)!important}.mr-4{margin-right:var(--spacing-lg)!important}.mr-5{margin-right:var(--spacing-xl)!important}.p-0{padding:0!important}.p-1{padding:var(--spacing-xs)!important}.p-2{padding:var(--spacing-sm)!important}.p-3{padding:var(--spacing-md)!important}.p-4{padding:var(--spacing-lg)!important}.p-5{padding:var(--spacing-xl)!important}.pt-0{padding-top:0!important}.pt-1{padding-top:var(--spacing-xs)!important}.pt-2{padding-top:var(--spacing-sm)!important}.pt-3{padding-top:var(--spacing-md)!important}.pt-4{padding-top:var(--spacing-lg)!important}.pt-5{padding-top:var(--spacing-xl)!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:var(--spacing-xs)!important}.pb-2{padding-bottom:var(--spacing-sm)!important}.pb-3{padding-bottom:var(--spacing-md)!important}.pb-4{padding-bottom:var(--spacing-lg)!important}.pb-5{padding-bottom:var(--spacing-xl)!important}.pl-0{padding-left:0!important}.pl-1{padding-left:var(--spacing-xs)!important}.pl-2{padding-left:var(--spacing-sm)!important}.pl-3{padding-left:var(--spacing-md)!important}.pl-4{padding-left:var(--spacing-lg)!important}.pl-5{padding-left:var(--spacing-xl)!important}.pr-0{padding-right:0!important}.pr-1{padding-right:var(--spacing-xs)!important}.pr-2{padding-right:var(--spacing-sm)!important}.pr-3{padding-right:var(--spacing-md)!important}.pr-4{padding-right:var(--spacing-lg)!important}.pr-5{padding-right:var(--spacing-xl)!important}.text-xs{font-size:var(--font-size-xs)!important}.text-sm{font-size:var(--font-size-sm)!important}.text-md{font-size:var(--font-size-md)!important}.text-lg{font-size:var(--font-size-lg)!important}.text-xl{font-size:var(--font-size-xl)!important}.text-2xl{font-size:var(--font-size-2xl)!important}.text-3xl{font-size:var(--font-size-3xl)!important}.text-4xl{font-size:var(--font-size-4xl)!important}.text-5xl{font-size:var(--font-size-5xl)!important}.text-6xl{font-size:var(--font-size-6xl)!important}.font-light{font-weight:var(--font-weight-light)!important}.font-normal{font-weight:var(--font-weight-normal)!important}.font-medium{font-weight:var(--font-weight-medium)!important}.font-semibold{font-weight:var(--font-weight-semibold)!important}.font-bold{font-weight:var(--font-weight-bold)!important}.font-extrabold{font-weight:var(--font-weight-extrabold)!important}.text-left{text-align:left!important}.text-center{text-align:center!important}.text-right{text-align:right!important}.text-justify{text-align:justify!important}.text-primary{color:var(--color-primary)!important}.text-secondary{color:var(--color-secondary)!important}.text-success{color:var(--color-success)!important}.text-warning{color:var(--color-warning)!important}.text-error{color:var(--color-error)!important}.text-info{color:var(--color-info)!important}.text-text{color:var(--color-text)!important}.text-muted{color:var(--color-text-muted)!important}.flex{display:flex!important}.inline-flex{display:inline-flex!important}.flex-col{flex-direction:column!important}.flex-row{flex-direction:row!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.items-start{align-items:flex-start!important}.items-center{align-items:center!important}.items-end{align-items:flex-end!important}.justify-start{justify-content:flex-start!important}.justify-center{justify-content:center!important}.justify-end{justify-content:flex-end!important}.justify-between{justify-content:space-between!important}.justify-around{justify-content:space-around!important}.gap-0{gap:0!important}.gap-1{gap:var(--spacing-xs)!important}.gap-2{gap:var(--spacing-sm)!important}.gap-3{gap:var(--spacing-md)!important}.gap-4{gap:var(--spacing-lg)!important}.gap-5{gap:var(--spacing-xl)!important}.hidden{display:none!important}.block{display:block!important}.inline{display:inline!important}.inline-block{display:inline-block!important}.table{display:table!important}.table-row{display:table-row!important}.table-cell{display:table-cell!important}.relative{position:relative!important}.absolute{position:absolute!important}.fixed{position:fixed!important}.sticky{position:sticky!important}.top-0{top:0!important}.right-0{right:0!important}.bottom-0{bottom:0!important}.left-0{left:0!important}.w-full{width:100%!important}.w-auto{width:auto!important}.h-full{height:100%!important}.h-auto{height:auto!important}.min-h-screen{min-height:100vh!important}.rounded-none{border-radius:0!important}.rounded-sm{border-radius:var(--border-radius-sm)!important}.rounded-md{border-radius:var(--border-radius-md)!important}.rounded-lg{border-radius:var(--border-radius-lg)!important}.rounded-xl{border-radius:var(--border-radius-xl)!important}.rounded-2xl{border-radius:var(--border-radius-2xl)!important}.rounded-full{border-radius:var(--border-radius-full)!important}.bg-primary{background-color:var(--color-primary)!important}.bg-secondary{background-color:var(--color-secondary)!important}.bg-success{background-color:var(--color-success)!important}.bg-warning{background-color:var(--color-warning)!important}.bg-error{background-color:var(--color-error)!important}.bg-info{background-color:var(--color-info)!important}.bg-background{background-color:var(--color-background)!important}.bg-card{background-color:var(--color-card-background)!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.cursor-pointer{cursor:pointer!important}.cursor-default{cursor:default!important}.cursor-not-allowed{cursor:not-allowed!important}.overflow-hidden{overflow:hidden!important}.overflow-auto{overflow:auto!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.capitalize{text-transform:capitalize!important}.normal-case{text-transform:none!important}.underline{text-decoration:underline!important}.line-through{text-decoration:line-through!important}.no-underline{text-decoration:none!important}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border-width:0!important}.focus-visible:focus-visible{outline:2px solid var(--color-primary)!important;outline-offset:2px!important}@media (prefers-reduced-motion: reduce){.motion-reduce{transition:none!important;animation:none!important}}@media print{.no-print{display:none!important}.print-only{display:block!important}}.weather-card{container-type:inline-size;container-name:weather-card}@container weather-card (min-width: 400px){.temperature-display{flex-direction:row;align-items:center;gap:var(--spacing-md)}.temperature-value{font-size:var(--font-size-6xl)}}@container weather-card (min-width: 600px){.weather-details{grid-template-columns:repeat(2,1fr)}}@media print{.header-actions,.favorites-header button,.toast-container,.loading-overlay{display:none!important}.weather-card{break-inside:avoid;page-break-inside:avoid}.forecast-container{display:grid!important;grid-template-columns:repeat(7,1fr)!important}}
