@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Poppins:wght@400;500;600;700&display=swap');:root{--primary-blue:#4A90E2;--primary-blue-light:#6BA5E7;--primary-blue-dark:#357ABD;--temp-cold-start:#667eea;--temp-cold-end:#764ba2;--temp-cool-start:#4A90E2;--temp-cool-end:#5FA8E4;--temp-moderate-start:#56CCF2;--temp-moderate-end:#2F80ED;--temp-warm-start:#F2994A;--temp-warm-end:#F2C94C;--temp-hot-start:#FF6B6B;--temp-hot-end:#FF8E53;--gradient-temp-cold:linear-gradient(135deg,var(--temp-cold-start) 0%,var(--temp-cold-end) 100%);--gradient-temp-cool:linear-gradient(135deg,var(--temp-cool-start) 0%,var(--temp-cool-end) 100%);--gradient-temp-moderate:linear-gradient(135deg,var(--temp-moderate-start) 0%,var(--temp-moderate-end) 100%);--gradient-temp-warm:linear-gradient(135deg,var(--temp-warm-start) 0%,var(--temp-warm-end) 100%);--gradient-temp-hot:linear-gradient(135deg,var(--temp-hot-start) 0%,var(--temp-hot-end) 100%);--gray-50:#F8F9FA;--gray-100:#E9ECEF;--gray-200:#DEE2E6;--gray-300:#CED4DA;--gray-400:#ADB5BD;--gray-500:#868E96;--gray-600:#6C757D;--gray-700:#495057;--gray-800:#343A40;--gray-900:#212529;--success:#51CF66;--success-light:#69DB7C;--success-dark:#40C057;--warning:#FFD43B;--warning-light:#FFE066;--warning-dark:#FCC419;--danger:#FF6B6B;--danger-light:#FF8787;--danger-dark:#FA5252;--info:#4A90E2;--info-light:#6BA5E7;--info-dark:#357ABD;--bg-primary:#FFFFFF;--bg-secondary:var(--gray-50);--bg-tertiary:var(--gray-100);--text-primary:var(--gray-900);--text-secondary:var(--gray-600);--text-tertiary:var(--gray-500);--text-muted:var(--gray-400);--text-inverse:#FFFFFF;--border-light:var(--gray-100);--border-medium:var(--gray-200);--border-dark:var(--gray-300);--dark-bg:#1A1A1A;--dark-surface:#2D2D2D;--dark-surface-elevated:#3A3A3A;--dark-border:#404040;--dark-text:#E9ECEF;--dark-text-secondary:#ADB5BD;--dark-text-tertiary:#868E96;--font-primary:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI','Roboto','Oxygen','Ubuntu','Cantarell',sans-serif;--font-heading:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI','Roboto','Oxygen','Ubuntu','Cantarell',sans-serif;--font-mono:'SF Mono','Monaco','Inconsolata','Fira Code','Droid Sans Mono','Source Code Pro',monospace;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:2rem;--text-4xl:2.5rem;--text-5xl:3rem;--text-6xl:3.75rem;--text-7xl:4.5rem;--text-8xl:6rem;--font-light:300;--font-regular:400;--font-medium:500;--font-semibold:600;--font-bold:700;--font-extrabold:800;--font-black:900;--leading-none:1;--leading-tight:1.2;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.6;--leading-loose:1.8;--tracking-tighter:-0.05em;--tracking-tight:-0.025em;--tracking-normal:0;--tracking-wide:0.025em;--tracking-wider:0.05em;--tracking-widest:0.1em;--space-0:0;--space-px:1px;--space-0-5:0.25rem;--space-1:0.5rem;--space-1-5:0.75rem;--space-2:1rem;--space-2-5:1.25rem;--space-3:1.5rem;--space-3-5:1.75rem;--space-4:2rem;--space-5:2.5rem;--space-6:3rem;--space-7:3.5rem;--space-8:4rem;--space-9:4.5rem;--space-10:5rem;--space-12:6rem;--space-16:8rem;--space-20:10rem;--radius-none:0;--radius-xs:0.25rem;--radius-sm:0.5rem;--radius-md:0.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--radius-2xl:2rem;--radius-3xl:3rem;--radius-full:9999px;--shadow-xs:0 1px 2px rgba(0,0,0,0.05);--shadow-sm:0 1px 3px rgba(0,0,0,0.06);--shadow-md:0 2px 8px rgba(0,0,0,0.08);--shadow-lg:0 4px 16px rgba(0,0,0,0.12);--shadow-xl:0 8px 32px rgba(0,0,0,0.16);--shadow-2xl:0 16px 48px rgba(0,0,0,0.20);--shadow-inner:inset 0 2px 4px rgba(0,0,0,0.06);--shadow-primary:0 4px 16px rgba(74,144,226,0.15);--shadow-success:0 4px 16px rgba(81,207,102,0.15);--shadow-warning:0 4px 16px rgba(255,212,59,0.15);--shadow-danger:0 4px 16px rgba(255,107,107,0.15);--text-shadow-sm:0 1px 2px rgba(0,0,0,0.1);--text-shadow-md:0 2px 4px rgba(0,0,0,0.2);--text-shadow-lg:0 4px 8px rgba(0,0,0,0.3);--z-base:0;--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-modal-backdrop:400;--z-modal:500;--z-popover:600;--z-tooltip:700;--z-notification:800;--duration-instant:0ms;--duration-fast:150ms;--duration-normal:200ms;--duration-medium:300ms;--duration-slow:400ms;--duration-slower:600ms;--duration-slowest:800ms;--ease-linear:linear;--ease-in:cubic-bezier(0.4,0,1,1);--ease-out:cubic-bezier(0,0,0.2,1);--ease-in-out:cubic-bezier(0.4,0,0.2,1);--ease-smooth:cubic-bezier(0.33,1,0.68,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--ease-bounce:cubic-bezier(0.68,-0.55,0.265,1.55);--transition-fast:all var(--duration-fast) var(--ease-out);--transition-normal:all var(--duration-normal) var(--ease-out);--transition-medium:all var(--duration-medium) var(--ease-out);--transition-slow:all var(--duration-slow) var(--ease-out);--transition-colors:color var(--duration-normal) var(--ease-out),background-color var(--duration-normal) var(--ease-out),border-color var(--duration-normal) var(--ease-out);--transition-transform:transform var(--duration-normal) var(--ease-out);--transition-shadow:box-shadow var(--duration-normal) var(--ease-out);--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--breakpoint-2xl:1440px;--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1280px;--container-2xl:1400px;--opacity-0:0;--opacity-5:0.05;--opacity-10:0.1;--opacity-20:0.2;--opacity-30:0.3;--opacity-40:0.4;--opacity-50:0.5;--opacity-60:0.6;--opacity-70:0.7;--opacity-80:0.8;--opacity-90:0.9;--opacity-95:0.95;--opacity-100:1;--blur-none:0;--blur-sm:4px;--blur-md:8px;--blur-lg:12px;--blur-xl:16px;--blur-2xl:24px;--blur-3xl:40px}@media (prefers-color-scheme:dark){:root{--bg-primary:var(--dark-bg);--bg-secondary:var(--dark-surface);--bg-tertiary:var(--dark-surface-elevated);--text-primary:var(--dark-text);--text-secondary:var(--dark-text-secondary);--text-tertiary:var(--dark-text-tertiary);--border-light:var(--dark-border);--border-medium:var(--dark-border);--border-dark:var(--dark-border)}}[data-theme="dark"]{--bg-primary:var(--dark-bg);--bg-secondary:var(--dark-surface);--bg-tertiary:var(--dark-surface-elevated);--text-primary:var(--dark-text);--text-secondary:var(--dark-text-secondary);--text-tertiary:var(--dark-text-tertiary);--border-light:var(--dark-border);--border-medium:var(--dark-border);--border-dark:var(--dark-border)}@media (prefers-reduced-motion:reduce){:root{--duration-instant:0ms;--duration-fast:0ms;--duration-normal:0ms;--duration-medium:0ms;--duration-slow:0ms;--duration-slower:0ms;--duration-slowest:0ms}*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}body{font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-regular);line-height:var(--leading-relaxed);color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:var(--tracking-normal)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-semibold);line-height:var(--leading-tight);color:var(--text-primary);margin-top:0;margin-bottom:var(--space-2);letter-spacing:var(--tracking-tight)}h1{font-size:var(--text-4xl);font-weight:var(--font-bold);letter-spacing:-0.5px}h2{font-size:1.5rem;font-weight:var(--font-semibold)}h3{font-size:var(--text-2xl);font-weight:var(--font-semibold)}h4{font-size:var(--text-xl);font-weight:var(--font-semibold)}h5{font-size:var(--text-lg);font-weight:var(--font-medium)}h6{font-size:var(--text-base);font-weight:var(--font-medium)}@media (max-width:767px){h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}}p{margin-top:0;margin-bottom:var(--space-2);line-height:var(--leading-relaxed)}a{color:var(--primary-blue);text-decoration:none;transition:var(--transition-colors)}a:hover{color:var(--primary-blue-dark)}a:focus{outline:2px solid var(--primary-blue);outline-offset:2px}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.text-4xl{font-size:var(--text-4xl)}.text-5xl{font-size:var(--text-5xl)}.font-light{font-weight:var(--font-light)}.font-regular{font-weight:var(--font-regular)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-muted{color:var(--text-muted)}.text-inverse{color:var(--text-inverse)}.leading-none{line-height:var(--leading-none)}.leading-tight{line-height:var(--leading-tight)}.leading-normal{line-height:var(--leading-normal)}.leading-relaxed{line-height:var(--leading-relaxed)}.leading-loose{line-height:var(--leading-loose)}.tracking-tight{letter-spacing:var(--tracking-tight)}.tracking-normal{letter-spacing:var(--tracking-normal)}.tracking-wide{letter-spacing:var(--tracking-wide)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.container{width:100%;max-width:var(--container-2xl);margin-left:auto;margin-right:auto;padding-left:var(--space-2);padding-right:var(--space-2)}.container-sm{max-width:var(--container-sm)}.container-md{max-width:var(--container-md)}.container-lg{max-width:var(--container-lg)}.container-xl{max-width:var(--container-xl)}@media (min-width:768px){.container{padding-left:var(--space-4);padding-right:var(--space-4)}}@media (min-width:1024px){.container{padding-left:var(--space-6);padding-right:var(--space-6)}}.container-fluid{width:100%;padding-left:var(--space-2);padding-right:var(--space-2)}.m-0{margin:var(--space-0)}.m-1{margin:var(--space-1)}.m-2{margin:var(--space-2)}.m-3{margin:var(--space-3)}.m-4{margin:var(--space-4)}.m-5{margin:var(--space-5)}.m-6{margin:var(--space-6)}.m-8{margin:var(--space-8)}.m-10{margin:var(--space-10)}.mt-0{margin-top:var(--space-0)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mt-10{margin-top:var(--space-10)}.mb-0{margin-bottom:var(--space-0)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-5{margin-bottom:var(--space-5)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.mb-10{margin-bottom:var(--space-10)}.ml-0{margin-left:var(--space-0)}.ml-1{margin-left:var(--space-1)}.ml-2{margin-left:var(--space-2)}.ml-3{margin-left:var(--space-3)}.ml-4{margin-left:var(--space-4)}.mr-0{margin-right:var(--space-0)}.mr-1{margin-right:var(--space-1)}.mr-2{margin-right:var(--space-2)}.mr-3{margin-right:var(--space-3)}.mr-4{margin-right:var(--space-4)}.mx-auto{margin-left:auto;margin-right:auto}.mx-0{margin-left:var(--space-0);margin-right:var(--space-0)}.mx-1{margin-left:var(--space-1);margin-right:var(--space-1)}.mx-2{margin-left:var(--space-2);margin-right:var(--space-2)}.mx-3{margin-left:var(--space-3);margin-right:var(--space-3)}.mx-4{margin-left:var(--space-4);margin-right:var(--space-4)}.my-0{margin-top:var(--space-0);margin-bottom:var(--space-0)}.my-1{margin-top:var(--space-1);margin-bottom:var(--space-1)}.my-2{margin-top:var(--space-2);margin-bottom:var(--space-2)}.my-3{margin-top:var(--space-3);margin-bottom:var(--space-3)}.my-4{margin-top:var(--space-4);margin-bottom:var(--space-4)}.my-6{margin-top:var(--space-6);margin-bottom:var(--space-6)}.my-8{margin-top:var(--space-8);margin-bottom:var(--space-8)}.p-0{padding:var(--space-0)}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.pt-0{padding-top:var(--space-0)}.pt-1{padding-top:var(--space-1)}.pt-2{padding-top:var(--space-2)}.pt-3{padding-top:var(--space-3)}.pt-4{padding-top:var(--space-4)}.pt-6{padding-top:var(--space-6)}.pt-8{padding-top:var(--space-8)}.pb-0{padding-bottom:var(--space-0)}.pb-1{padding-bottom:var(--space-1)}.pb-2{padding-bottom:var(--space-2)}.pb-3{padding-bottom:var(--space-3)}.pb-4{padding-bottom:var(--space-4)}.pb-6{padding-bottom:var(--space-6)}.pb-8{padding-bottom:var(--space-8)}.pl-0{padding-left:var(--space-0)}.pl-1{padding-left:var(--space-1)}.pl-2{padding-left:var(--space-2)}.pl-3{padding-left:var(--space-3)}.pl-4{padding-left:var(--space-4)}.pr-0{padding-right:var(--space-0)}.pr-1{padding-right:var(--space-1)}.pr-2{padding-right:var(--space-2)}.pr-3{padding-right:var(--space-3)}.pr-4{padding-right:var(--space-4)}.px-0{padding-left:var(--space-0);padding-right:var(--space-0)}.px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.py-0{padding-top:var(--space-0);padding-bottom:var(--space-0)}.py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.flex{display:flex}.inline-flex{display:inline-flex}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-center{align-content:center}.content-between{align-content:space-between}.content-around{align-content:space-around}.gap-0{gap:var(--space-0)}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.grid{display:grid}.inline-grid{display:inline-grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-auto-fit{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.grid-auto-fill{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.hidden{display:none}@media (min-width:768px){.md\:block{display:block}.md\:hidden{display:none}.md\:flex{display:flex}.md\:grid{display:grid}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1024px){.lg\:block{display:block}.lg\:hidden{display:none}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}.w-full{width:100%}.w-auto{width:auto}.w-screen{width:100vw}.h-full{height:100%}.h-auto{height:auto}.h-screen{height:100vh}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.rounded-none{border-radius:var(--radius-none)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-none{box-shadow:none}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.opacity-0{opacity:var(--opacity-0)}.opacity-50{opacity:var(--opacity-50)}.opacity-75{opacity:var(--opacity-75)}.opacity-90{opacity:var(--opacity-90)}.opacity-100{opacity:var(--opacity-100)}header{position:relative;z-index:1000}.navbar{position:sticky;top:0;background:rgba(255,255,255,0.95);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:var(--space-2) 0;transition:box-shadow var(--transition-normal) ease;z-index:1000;border-bottom:1px solid transparent}.navbar.scrolled{box-shadow:var(--shadow-md);border-bottom-color:var(--gray-100)}.navbar .container{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}.navbar-brand{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--gray-900);text-decoration:none;display:flex;align-items:center;gap:var(--space-1);transition:color var(--transition-normal) ease;letter-spacing:var(--tracking-tight)}.navbar-brand:hover{color:var(--primary-blue)}.navbar-brand:focus{outline:2px solid var(--primary-blue);outline-offset:2px;border-radius:var(--radius-sm)}.navbar-brand img{width:32px;height:32px;object-fit:contain}.navbar-toggler{display:none;width:44px;height:44px;padding:0;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-normal) ease;align-items:center;justify-content:center}.navbar-toggler:hover{background-color:var(--gray-50)}.navbar-toggler:focus{outline:2px solid var(--primary-blue);outline-offset:2px}.navbar-toggler .material-icons{font-size:24px;color:var(--gray-900)}@media (max-width:767px){.navbar-toggler{display:flex}}.navbar-collapse{display:flex;align-items:center;justify-content:space-between;flex-grow:1;flex-basis:auto;margin-left:var(--space-4)}@media (max-width:767px){.navbar-collapse{display:none;flex-basis:100%;flex-grow:1;margin-left:0;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--gray-100)}.navbar-collapse.show{display:flex;flex-direction:column;align-items:stretch}}.navbar-nav{display:flex;align-items:center;gap:var(--space-1);list-style:none;margin:0;padding:0}@media (max-width:767px){.navbar-nav{flex-direction:column;align-items:stretch;width:100%;gap:var(--space-1)}}.nav-item{position:relative}.nav-link{display:block;padding:var(--space-1) var(--space-2);font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--gray-600);text-decoration:none;border-radius:var(--radius-sm);transition:all var(--transition-normal) ease;white-space:nowrap}.nav-link:hover{background-color:var(--gray-50);color:var(--gray-900)}.nav-link:focus{outline:2px solid var(--primary-blue);outline-offset:2px}.nav-link.active{background-color:var(--gray-100);color:var(--primary-blue);font-weight:var(--font-semibold)}.nav-link.dropdown-toggle{display:flex;align-items:center;gap:4px}.nav-link.dropdown-toggle::after{content:'';display:inline-block;width:0;height:0;margin-left:4px;vertical-align:middle;border-top:4px solid currentColor;border-right:4px solid transparent;border-left:4px solid transparent;transition:transform var(--transition-normal) ease}.nav-link.dropdown-toggle[aria-expanded="true"]::after{transform:rotate(180deg)}@media (max-width:767px){.nav-link{padding:var(--space-2) var(--space-3);font-size:var(--text-base)}}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:200px;max-height:320px;margin-top:var(--space-1);padding:var(--space-1);background-color:white;border:1px solid var(--gray-100);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow-y:auto;list-style:none}.dropdown-menu.show{display:block;animation:dropdownFadeIn var(--transition-slow) ease-out}@keyframes dropdownFadeIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-menu::-webkit-scrollbar{width:6px}.dropdown-menu::-webkit-scrollbar-track{background:var(--gray-50);border-radius:var(--radius-sm)}.dropdown-menu::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-sm)}.dropdown-menu::-webkit-scrollbar-thumb:hover{background:var(--gray-600)}.dropdown-item{display:block;width:100%;padding:10px var(--space-2);font-size:var(--text-sm);color:var(--gray-900);text-decoration:none;border-radius:var(--radius-sm);transition:background-color var(--transition-fast) ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-item:hover{background-color:var(--gray-50);color:var(--primary-blue)}.dropdown-item:focus{outline:2px solid var(--primary-blue);outline-offset:-2px;background-color:var(--gray-50)}.dropdown-item img{width:20px;height:20px;margin-right:var(--space-1);vertical-align:middle}@media (max-width:767px){.dropdown-menu{position:static;width:100%;max-height:240px;margin-top:var(--space-1);box-shadow:none;border:1px solid var(--gray-200)}}.navbar form{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}@media (max-width:767px){.navbar form{width:100%;margin-left:0;margin-top:var(--space-3);flex-direction:column}}.navbar .form-control{width:280px;padding:10px var(--space-3);font-size:var(--text-sm);font-family:var(--font-primary);color:var(--gray-900);background-color:var(--gray-50);border:2px solid transparent;border-radius:var(--radius-full);transition:all var(--transition-normal) ease;outline:none}.navbar .form-control::placeholder{color:var(--gray-600)}.navbar .form-control:hover{background-color:var(--gray-100)}.navbar .form-control:focus{background-color:white;border-color:var(--primary-blue);box-shadow:0 0 0 4px rgba(74,144,226,0.1)}@media (max-width:767px){.navbar .form-control{width:100%}}.navbar .btn{padding:10px var(--space-3);font-size:var(--text-sm);font-weight:var(--font-semibold);font-family:var(--font-primary);color:white;background-color:var(--primary-blue);border:none;border-radius:var(--radius-xl);cursor:pointer;transition:all var(--transition-normal) ease;white-space:nowrap}.navbar .btn:hover{background-color:var(--primary-blue-dark);transform:translateY(-2px);box-shadow:var(--shadow-md)}.navbar .btn:active{transform:scale(0.98)}.navbar .btn:focus{outline:2px solid var(--primary-blue);outline-offset:2px}@media (max-width:767px){.navbar .btn{width:100%}}#countryList{position:absolute;top:calc(100%+8px);left:0;right:0;z-index:1000;display:none;max-height:320px;background-color:white;border:1px solid var(--gray-100);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow-y:auto;animation:dropdownFadeIn var(--transition-slow) ease-out}#countryList.show{display:block}#countryList a{display:block;padding:12px var(--space-2);font-size:var(--text-sm);color:var(--gray-900);text-decoration:none;border-bottom:1px solid var(--gray-100);transition:background-color var(--transition-fast) ease}#countryList a:last-child{border-bottom:none}#countryList a:hover{background-color:var(--gray-50);color:var(--primary-blue)}.navbar-backdrop{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,0.5);z-index:999;animation:fadeIn var(--transition-slow) ease}.navbar-backdrop.show{display:block}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.skip-to-main{position:absolute;top:-40px;left:0;background:var(--primary-blue);color:white;padding:var(--space-1) var(--space-2);text-decoration:none;border-radius:var(--radius-sm);z-index:10000}.skip-to-main:focus{top:var(--space-1);outline:2px solid white;outline-offset:2px}@media (prefers-reduced-motion:reduce){.navbar,.nav-link,.dropdown-menu,.navbar .form-control,.navbar .btn{transition:none}.dropdown-menu.show{animation:none}}@media (min-width:768px) and (max-width:1023px){.navbar .form-control{width:200px}.navbar-nav{gap:4px}.nav-link{padding:var(--space-1) 12px;font-size:13px}}@media (min-width:1024px){.navbar{padding:var(--space-2) 0}.navbar .container{flex-wrap:nowrap}}.weather-card{position:relative;min-height:480px;padding:var(--space-6) var(--space-4);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);color:white;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;transition:all var(--transition-medium) ease}.weather-card.temp-cold{background:var(--gradient-temp-cold)}.weather-card.temp-cool{background:var(--gradient-temp-cool)}.weather-card.temp-moderate{background:var(--gradient-temp-moderate)}.weather-card.temp-warm{background:var(--gradient-temp-warm)}.weather-card.temp-hot{background:var(--gradient-temp-hot)}.weather-card:not([class*="temp-"]){background:var(--gradient-temp-moderate)}.weather-card *{text-shadow:var(--text-shadow-md)}.weather-card .city-selector{background:rgba(255,255,255,0.2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,0.3);border-radius:var(--radius-md);padding:12px var(--space-2);color:white;font-size:var(--text-base);font-weight:var(--font-medium);font-family:var(--font-primary);margin-bottom:var(--space-4);width:100%;max-width:320px;cursor:pointer;transition:all var(--transition-normal) ease;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='white' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}.weather-card .city-selector:hover{background:rgba(255,255,255,0.3);border-color:rgba(255,255,255,0.5)}.weather-card .city-selector:focus{outline:2px solid white;outline-offset:2px;background:rgba(255,255,255,0.3)}.weather-card .city-selector option{color:var(--gray-900);background:white;padding:var(--space-1)}.weather-card-header{margin-bottom:var(--space-4)}.weather-card .city-name{font-family:var(--font-heading);font-size:var(--text-5xl);font-weight:var(--font-bold);line-height:var(--leading-tight);margin-bottom:4px;letter-spacing:-0.5px}.weather-card .date-time{font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-regular);opacity:0.9;margin-bottom:var(--space-4)}.weather-card-main{display:flex;flex-direction:column;align-items:center;text-align:center;margin:var(--space-4) 0}.weather-card .weather-icon{width:120px;height:120px;filter:drop-shadow(0 4px 8px rgba(0,0,0,0.2));margin-bottom:var(--space-2);animation:weatherIconFloat 3s ease-in-out infinite}@keyframes weatherIconFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}.weather-card .temperature{font-family:var(--font-heading);font-size:var(--text-8xl);font-weight:var(--font-light);line-height:var(--leading-none);margin:var(--space-2) 0;letter-spacing:-2px}.weather-card .weather-description{font-family:var(--font-primary);font-size:var(--text-xl);font-weight:var(--font-medium);margin-bottom:var(--space-1);text-transform:capitalize}.weather-card .secondary-info{font-family:var(--font-primary);font-size:var(--text-base);font-weight:var(--font-regular);opacity:0.95;margin-bottom:var(--space-3)}.weather-stats{display:flex;align-items:center;justify-content:center;gap:var(--space-3);flex-wrap:wrap;font-size:var(--text-sm);margin-top:var(--space-3)}.weather-stat{display:flex;align-items:center;gap:var(--space-1)}.weather-stat .material-icons{font-size:18px;vertical-align:middle}.weather-details{background:white;border-radius:var(--radius-lg);padding:var(--space-3);box-shadow:var(--shadow-md);margin-top:var(--space-3)}.weather-details table{width:100%;border-collapse:collapse}.weather-details tr{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0;border-bottom:1px solid var(--gray-100)}.weather-details tr:last-child{border-bottom:none}.weather-details td:first-child{font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--gray-600);text-shadow:none}.weather-details td:last-child{font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--gray-900);display:flex;align-items:center;gap:var(--space-1);text-shadow:none}.weather-details .material-icons{font-size:20px;color:var(--primary-blue);vertical-align:middle}@media (max-width:767px){.weather-card{min-height:400px;padding:var(--space-4) var(--space-3)}.weather-card .city-name{font-size:var(--text-4xl)}.weather-card .temperature{font-size:var(--text-6xl)}.weather-card .weather-icon{width:96px;height:96px}.weather-card .weather-description{font-size:var(--text-lg)}.weather-card .secondary-info{font-size:var(--text-sm)}.weather-stats{gap:var(--space-2);font-size:var(--text-xs)}.weather-card .city-selector{max-width:100%}}@media (min-width:768px) and (max-width:1023px){.weather-card{min-height:440px}.weather-card .city-name{font-size:var(--text-4xl)}.weather-card .temperature{font-size:var(--text-7xl)}}@media (min-width:1024px){.weather-card{padding:var(--space-6) var(--space-6)}}@media (prefers-reduced-motion:reduce){.weather-card .weather-icon{animation:none}.weather-card{transition:none}}@media (prefers-contrast:high){.weather-card{border:2px solid white}.weather-card .city-selector{border:2px solid white}}.forecast-section-header{font-family:var(--font-heading);font-weight:var(--font-semibold);font-size:var(--text-2xl);color:var(--gray-900);margin-bottom:var(--space-3);display:flex;align-items:center;gap:var(--space-1)}.forecast-section-header .material-icons{font-size:var(--text-2xl);color:var(--primary-blue)}.forecast-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-2);margin-bottom:var(--space-6)}@media (max-width:767px){.forecast-grid{grid-template-columns:1fr;gap:var(--space-2)}}@media (min-width:768px) and (max-width:1023px){.forecast-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-2)}}@media (min-width:1024px){.forecast-grid{grid-template-columns:repeat(4,1fr);gap:var(--space-2)}}.forecast-card{background:white;border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--space-3);text-align:center;transition:all 200ms ease;cursor:pointer}.forecast-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--primary-blue)}.forecast-card *{transition:inherit}.forecast-card .day-name{font-family:var(--font-heading);font-weight:var(--font-semibold);font-size:var(--text-base);color:var(--gray-900);margin-bottom:var(--space-2)}.forecast-card .weather-icon{width:64px;height:64px;margin:var(--space-2) 0;filter:drop-shadow(0 2px 4px rgba(0,0,0,0.1))}.forecast-card .weather-description{font-family:var(--font-primary);font-weight:var(--font-regular);font-size:var(--text-sm);color:var(--gray-600);margin-bottom:var(--space-2);min-height:36px;display:flex;align-items:center;justify-content:center}.forecast-card .temperature-badges{display:inline-flex;gap:var(--space-1);margin-bottom:var(--space-2)}.forecast-card .temp-badge{padding:6px 12px;border-radius:var(--radius-xl);font-family:var(--font-primary);font-weight:var(--font-semibold);font-size:var(--text-base);color:white}.forecast-card .temp-badge.day{background:var(--primary-blue)}.forecast-card .temp-badge.day.temp-hot{background:linear-gradient(135deg,#ff6b6b 0%,#ff8e53 100%)}.forecast-card .temp-badge.day.temp-warm{background:linear-gradient(135deg,#f2994a 0%,#f2c94c 100%)}.forecast-card .temp-badge.day.temp-moderate{background:linear-gradient(135deg,#56ccf2 0%,#2f80ed 100%)}.forecast-card .temp-badge.day.temp-cool{background:linear-gradient(135deg,#4a90e2 0%,#5fa8e4 100%)}.forecast-card .temp-badge.day.temp-cold{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.forecast-card .temp-badge.night{background:var(--gray-600)}.forecast-card .weather-stats{display:flex;justify-content:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--gray-600)}.forecast-card .weather-stat{display:flex;align-items:center;gap:4px}.forecast-card .weather-stat .material-icons{font-size:var(--text-sm)}.table-responsive{background:white;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;margin-bottom:var(--space-6)}.table-responsive .table{margin-bottom:0;border-collapse:collapse}.table-responsive .table,.table-responsive .table td,.table-responsive .table tr{border:none}.table-responsive .table tr td[colspan]{background:var(--gray-50);padding:12px 20px;font-family:var(--font-heading);font-weight:var(--font-semibold);font-size:var(--text-base);color:var(--gray-900);border-top:2px solid var(--gray-200)}.table-responsive .table tr:first-child td[colspan]{border-top:none}.table-responsive .table td:not([colspan]){display:inline-block;padding:20px;border-right:1px solid var(--gray-200);min-width:120px;text-align:center;vertical-align:top;transition:background 150ms ease}.table-responsive .table td:not([colspan]):hover{background:var(--gray-50)}.table-responsive .table td:not([colspan]):last-child{border-right:none}.table-responsive .table td .font-weight-bold{font-family:var(--font-heading);font-weight:var(--font-semibold);font-size:var(--text-sm);color:var(--gray-900);margin-bottom:12px;display:block}.table-responsive .table td img{width:48px;height:48px;margin:12px 0;filter:drop-shadow(0 2px 4px rgba(0,0,0,0.1))}.table-responsive .table td small{font-family:var(--font-primary);font-weight:var(--font-regular);font-size:var(--text-xs);color:var(--gray-600);margin-bottom:12px;display:block;min-height:32px}.table-responsive .table td .badge{padding:6px 12px;border-radius:var(--radius-xl);font-family:var(--font-primary);font-weight:var(--font-semibold);font-size:var(--text-sm);color:white;display:inline-block;margin:2px}.table-responsive .table td .badge.day{background:var(--primary-blue)}.table-responsive .table td .badge.bg-danger.day{background:linear-gradient(135deg,#ff6b6b 0%,#ff8e53 100%)}.table-responsive .table td .badge.bg-primary.day{background:linear-gradient(135deg,#4a90e2 0%,#5fa8e4 100%)}.table-responsive .table td .badge.bg-secondary{background:var(--gray-600);color:white !important}@media (min-width:768px){.table-responsive{overflow-x:auto;overflow-y:hidden}.table-responsive::-webkit-scrollbar{height:8px}.table-responsive::-webkit-scrollbar-track{background:var(--gray-100);border-radius:var(--radius-sm)}.table-responsive::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-sm);transition:background 200ms ease}.table-responsive::-webkit-scrollbar-thumb:hover{background:var(--gray-600)}.table-responsive{scrollbar-width:thin;scrollbar-color:var(--gray-300) var(--gray-100)}}@media (max-width:767px){.table-responsive .table td:not([colspan]){display:block;width:100%;min-width:100%;border-right:none;border-bottom:1px solid var(--gray-200)}.table-responsive .table td:not([colspan]):last-child{border-bottom:none}.table-responsive .table td:not([colspan]){padding:var(--space-2)}.table-responsive .table td .badge{margin:4px}}.table-responsive .table td{transition:all 300ms ease}.table-responsive{background:white;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,0.08);overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:24px;padding:8px}.table-responsive::-webkit-scrollbar{height:6px}.table-responsive::-webkit-scrollbar-track{background:#F8F9FA}.table-responsive::-webkit-scrollbar-thumb{background:#CED4DA;border-radius:3px}.table-responsive::-webkit-scrollbar-thumb:hover{background:#ADB5BD}.table-responsive .table{margin-bottom:0;border-collapse:collapse}.table-responsive .table th[colspan]{background:transparent;padding:12px 16px;font-size:14px;font-weight:600;color:#212529;text-align:left;border:none;border-bottom:2px solid #E9ECEF}.table-responsive .table td[role="cell"]{padding:16px;text-align:center;vertical-align:middle;border-right:1px solid #E9ECEF;border-bottom:1px solid #E9ECEF;background:white;transition:background 150ms ease}.table-responsive .table td[role="cell"]:hover{background:#F8F9FA}.table-responsive .table td time{display:block;font-size:14px;font-weight:600;color:#212529;margin-bottom:8px}.table-responsive .table td img{width:48px;height:48px;margin:8px auto;display:block}.table-responsive .table td small{display:block;font-size:12px;color:#6C757D;margin:8px 0;line-height:1.3}.table-responsive .table td .badge{display:inline-block;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;margin:4px 2px}.table-responsive .table td .badge.bg-primary,.table-responsive .table td .badge.day{background:#4A90E2;color:white}.table-responsive .table td .badge.bg-danger{background:#FF6B6B;color:white}.table-responsive .table td .badge.bg-secondary{background:#E9ECEF;color:#6C757D}@media (max-width:767px){.table-responsive{border-radius:8px;margin-left:-16px;margin-right:-16px;padding:4px}.table-responsive .table td[role="cell"]{padding:12px 8px}.table-responsive .table td time{font-size:13px}.table-responsive .table td img{width:40px;height:40px}.table-responsive .table td small{font-size:11px}.table-responsive .table td .badge{padding:4px 8px;font-size:11px}}@media (min-width:1024px){.table-responsive .table td[role="cell"]:hover{background:#F8F9FA;box-shadow:0 2px 4px rgba(0,0,0,0.05)}}.other{margin-top:32px;margin-bottom:24px;display:flex;flex-wrap:wrap;gap:8px}.other h2{width:100%;margin-bottom:16px}.other .btn{background:#F8F9FA;border:1px solid #DEE2E6;border-radius:20px;padding:8px 16px;font-size:14px;font-weight:500;color:#495057;text-decoration:none;transition:all 150ms ease}.other .btn:hover{background:white;border-color:#4A90E2;color:#4A90E2;text-decoration:none}@media (max-width:767px){.other{gap:6px}.other .btn{padding:6px 12px;font-size:13px}}footer{background:var(--gray-50);border-top:1px solid var(--gray-200);padding:var(--space-6) 0;margin-top:var(--space-8)}footer .container .row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);align-items:center}footer small{font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-regular);color:var(--gray-600);line-height:var(--leading-normal)}footer .text-right{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end}footer a{font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--gray-600);text-decoration:none;position:relative;transition:color 200ms ease}footer a:hover{color:var(--primary-blue)}footer a::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background-color:var(--primary-blue);transition:width 200ms ease}footer a:hover::after{width:100%}@media (max-width:767px){footer .container .row{grid-template-columns:1fr;gap:var(--space-3)}footer .text-right{justify-content:flex-start}footer small{display:block;margin-bottom:var(--space-2)}}@keyframes fadeIn{from{opacity:0;transform:translateY(20px) translateZ(0)}to{opacity:1;transform:translateY(0) translateZ(0)}}main{animation:fadeIn 0.6s ease-out}.weather-card{animation:fadeIn 0.6s ease-out 0.1s backwards}.weather-details{animation:fadeIn 0.6s ease-out 0.2s backwards}.forecast-grid{animation:fadeIn 0.6s ease-out 0.3s backwards}.forecast-card{animation:fadeIn 0.4s ease-out calc(0.4s+var(--card-index,0) * 0.1s) backwards}.table-responsive{animation:fadeIn 0.6s ease-out 0.5s backwards}.other{animation:fadeIn 0.6s ease-out 0.6s backwards}footer{animation:fadeIn 0.6s ease-out 0.7s backwards}button,.btn,a,input,select,.nav-link,.dropdown-item,.forecast-card,.city-pill,.navbar-toggler{transition:all 0.2s ease}.btn,button[type="submit"]{transition:transform 0.2s ease,box-shadow 0.2s ease,background-color 0.2s ease;will-change:transform,box-shadow}.btn:hover,button[type="submit"]:hover{transform:translateY(-2px) translateZ(0);box-shadow:0 6px 20px rgba(74,144,226,0.25)}.btn:active,button[type="submit"]:active{transform:scale(0.98) translateZ(0)}.forecast-card{transition:transform 0.2s ease,box-shadow 0.3s ease,border-color 0.2s ease;will-change:transform,box-shadow}.forecast-card:hover{transform:translateY(-4px) translateZ(0);box-shadow:0 8px 24px rgba(0,0,0,0.12);border-color:var(--primary-blue,#4A90E2)}.weather-card{transition:box-shadow 0.3s ease}.weather-card:hover{box-shadow:0 12px 40px rgba(0,0,0,0.2)}.city-pill,.other a{transition:transform 0.2s ease,box-shadow 0.2s ease,background-color 0.2s ease,border-color 0.2s ease,color 0.2s ease;will-change:transform,box-shadow}.city-pill:hover,.other a:hover{transform:translateY(-2px) translateZ(0);box-shadow:0 4px 12px rgba(74,144,226,0.15)}.nav-link{transition:background-color 0.2s ease,color 0.2s ease}.dropdown-menu{animation:dropdownFadeIn 0.3s ease-out}@keyframes dropdownFadeIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{transition:background-color 0.15s ease}input,select,textarea{transition:border-color 0.2s ease,box-shadow 0.2s ease,background-color 0.2s ease}input:focus,select:focus,textarea:focus{transition:border-color 0.2s ease,box-shadow 0.2s ease}.table tbody tr{transition:background-color 0.15s ease}.table td{transition:background-color 0.15s ease}footer a{position:relative;transition:color 0.2s ease}footer a::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background-color:var(--primary-blue,#4A90E2);transition:width 0.2s ease}footer a:hover::after{width:100%}@keyframes float{0%,100%{transform:translateY(0) translateZ(0)}50%{transform:translateY(-10px) translateZ(0)}}.weather-card .weather-icon{animation:float 3s ease-in-out infinite;will-change:transform}@keyframes iconPulse{0%,100%{transform:scale(1) translateZ(0)}50%{transform:scale(1.05) translateZ(0)}}.forecast-card:hover .weather-icon{animation:iconPulse 1s ease-in-out infinite;will-change:transform}.navbar{transition:box-shadow 0.3s ease,background-color 0.3s ease}.navbar.scrolled{box-shadow:0 2px 8px rgba(0,0,0,0.08)}html{scroll-behavior:smooth}@keyframes shimmer{0%{background-position:-1000px 0}100%{background-position:1000px 0}}.loading-skeleton{background:linear-gradient(90deg,#F8F9FA 25%,#E9ECEF 50%,#F8F9FA 75%);background-size:1000px 100%;animation:shimmer 1.5s infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.spinner{width:40px;height:40px;border:4px solid #E9ECEF;border-top-color:var(--primary-blue,#4A90E2);border-radius:50%;animation:spin 0.8s linear infinite}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}.weather-card .weather-icon{animation:none}.forecast-card:hover .weather-icon{animation:none}}.fade-in{animation:fadeIn 0.6s ease-out}@keyframes slideUp{from{opacity:0;transform:translateY(30px) translateZ(0)}to{opacity:1;transform:translateY(0) translateZ(0)}}.slide-up{animation:slideUp 0.6s ease-out}@keyframes scaleIn{from{opacity:0;transform:scale(0.9) translateZ(0)}to{opacity:1;transform:scale(1) translateZ(0)}}.scale-in{animation:scaleIn 0.4s ease-out}a:focus,button:focus,input:focus,select:focus,textarea:focus,[tabindex]:focus{outline:2px solid var(--primary-blue);outline-offset:2px;border-radius:var(--radius-sm)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px}a:focus:not(:focus-visible),button:focus:not(:focus-visible),input:focus:not(:focus-visible),select:focus:not(:focus-visible),textarea:focus:not(:focus-visible),[tabindex]:focus:not(:focus-visible){outline:none}.nav-link:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px;background-color:var(--gray-50)}.dropdown-item:focus-visible{outline:2px solid var(--primary-blue);outline-offset:-2px;background-color:var(--gray-50)}.btn:focus-visible,.navbar .btn:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px;box-shadow:0 0 0 4px rgba(74,144,226,0.2)}.form-control:focus-visible,.navbar .form-control:focus-visible{outline:2px solid var(--primary-blue);outline-offset:0;border-color:var(--primary-blue);box-shadow:0 0 0 4px rgba(74,144,226,0.1)}.city-selector:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px;border-color:rgba(255,255,255,0.5)}.city-pill:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px;background-color:white;border-color:var(--primary-blue);color:var(--primary-blue);transform:translateY(-2px);box-shadow:var(--shadow-primary)}.forecast-card:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px;transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--primary-blue)}.navbar-brand:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px;border-radius:var(--radius-sm)}.navbar-toggler:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px}footer a:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px;color:var(--primary-blue)}.skip-to-main{position:absolute;top:-100px;left:var(--space-2);background:var(--primary-blue);color:white;padding:var(--space-2) var(--space-3);text-decoration:none;border-radius:var(--radius-sm);font-weight:var(--font-semibold);z-index:10000;transition:top var(--transition-fast) ease}.skip-to-main:focus{top:var(--space-2);outline:2px solid white;outline-offset:2px}.navbar-brand{order:1}.navbar-collapse{order:2}.navbar-toggler{order:3}.sr-only,.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:focus,.visually-hidden-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}.weather-icon{animation:none !important}.forecast-card{transition:none !important}.forecast-card:hover{transform:none !important}.city-pill{transition:none !important}.city-pill:hover{transform:none !important}.nav-link{transition:none !important}.dropdown-menu{animation:none !important}.navbar{transition:none !important}.btn{transition:none !important}.btn:hover{transform:none !important}*:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px}}@media (prefers-contrast:high){:root{--text-primary:#000000;--text-secondary:#333333;--border-medium:#000000}.nav-link{border:1px solid transparent}.nav-link:focus{border-color:var(--primary-blue)}.btn{border:2px solid var(--primary-blue-dark)}.forecast-card{border:2px solid var(--gray-300)}}.nav-link{min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center}.navbar-toggler{min-height:44px;min-width:44px}.btn{min-height:44px;padding:var(--space-2) var(--space-3)}.dropdown-item{min-height:44px;display:flex;align-items:center}.city-pill{min-height:44px;display:inline-flex;align-items:center;padding:var(--space-2) var(--space-3)}@media (max-width:767px){.nav-link{min-height:48px;padding:var(--space-2) var(--space-3)}.btn{min-height:48px}.dropdown-item{min-height:48px}.city-pill{min-height:48px}}body.user-is-tabbing *:focus{outline:2px solid var(--primary-blue);outline-offset:2px}[aria-live="polite"],[aria-live="assertive"]{position:relative}.temp-badge{font-weight:var(--font-semibold);text-shadow:0 1px 2px rgba(0,0,0,0.1)}.weather-card{text-shadow:0 2px 4px rgba(0,0,0,0.2)}a{text-decoration-skip-ink:auto}a:hover{text-decoration:underline}.material-icons[data-icon]::before{content:attr(data-icon);position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[data-loading="true"]{pointer-events:none;opacity:0.6}[data-loading="false"]{pointer-events:auto;opacity:1}@media (min-width:768px) and (max-width:1023px){a:focus-visible,button:focus-visible{outline-width:2px;outline-offset:2px}}@media (min-width:1024px){a:focus-visible,button:focus-visible{outline-width:2px;outline-offset:2px}}@media (max-width:767px){body{overflow-x:hidden}.container{padding-left:var(--space-2);padding-right:var(--space-2);max-width:100%}main{padding-top:var(--space-3);padding-bottom:var(--space-4)}button,a,input,select,.btn,.nav-link,.dropdown-item,.forecast-card,.city-pill{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}.navbar-toggler{min-width:44px;min-height:44px}.nav-link{min-height:44px;padding:var(--space-2) var(--space-3);display:flex;align-items:center}.form-control,.navbar .form-control{min-height:44px;padding:12px var(--space-3)}.btn,.navbar .btn{min-height:44px;padding:12px var(--space-3)}.dropdown-item{min-height:44px;padding:12px var(--space-2)}.weather-card .city-selector{min-height:44px;padding:12px var(--space-2)}.city-pill{min-height:44px;padding:12px var(--space-3)}.navbar{padding:var(--space-2) 0}.navbar .container{flex-wrap:wrap}.navbar-brand{font-size:var(--text-lg);min-height:44px}.navbar-collapse{width:100%;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--gray-100)}.navbar-collapse.show{display:flex;flex-direction:column}.navbar-nav{flex-direction:column;width:100%;gap:var(--space-1)}.navbar form{width:100%;flex-direction:column;gap:var(--space-2);margin-top:var(--space-3)}.navbar .form-control{width:100%}.navbar .btn{width:100%}.dropdown-menu{position:static;width:100%;max-height:240px;margin-top:var(--space-1);box-shadow:none;border:1px solid var(--gray-200)}section{margin-bottom:var(--space-4)}h1,h2,h3{margin-bottom:var(--space-2)}.forecast-section-header{font-size:var(--text-xl);margin-bottom:var(--space-2)}.weather-card{min-height:400px;padding:var(--space-4) var(--space-3);margin-bottom:var(--space-4)}.weather-card .city-name{font-size:var(--text-4xl);margin-bottom:var(--space-1)}.weather-card .temperature{font-size:var(--text-6xl);margin:var(--space-2) 0}.weather-card .weather-icon{width:96px;height:96px}.weather-card .weather-description{font-size:var(--text-lg)}.weather-card .secondary-info{font-size:var(--text-sm)}.weather-stats{gap:var(--space-2);font-size:var(--text-xs)}.weather-details{padding:var(--space-2);margin-top:var(--space-3)}.forecast-grid{grid-template-columns:1fr;gap:var(--space-2);margin-bottom:var(--space-4)}.forecast-card{padding:var(--space-3)}.table-responsive .table td:not([colspan]){display:block;width:100%;min-width:100%;border-right:none;border-bottom:1px solid var(--gray-200);padding:var(--space-3)}.table-responsive .table td:not([colspan]):last-child{border-bottom:none}.city-pills-container{gap:var(--space-2)}.city-pill{flex:1 1 calc(50% - var(--space-1));min-width:calc(50% - var(--space-1));text-align:center}footer{padding:var(--space-4) 0;margin-top:var(--space-6)}footer .container{grid-template-columns:1fr;gap:var(--space-3)}footer .footer-links{justify-content:flex-start;gap:var(--space-2)}}@media (min-width:768px) and (max-width:1023px){.container{padding-left:var(--space-4);padding-right:var(--space-4)}.forecast-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-2)}.weather-card{min-height:440px;padding:var(--space-5) var(--space-4)}.weather-card .city-name{font-size:var(--text-4xl)}.weather-card .temperature{font-size:var(--text-7xl)}.weather-card .weather-icon{width:108px;height:108px}.navbar-nav{gap:4px}.nav-link{padding:var(--space-1) 12px;font-size:var(--text-sm)}.navbar .form-control{width:200px}section{margin-bottom:var(--space-5)}.forecast-section-header{font-size:var(--text-2xl);margin-bottom:var(--space-3)}.table-responsive{overflow-x:auto}.table-responsive .table td:not([colspan]){display:inline-block;min-width:120px}footer{padding:var(--space-5) 0}footer .container{grid-template-columns:1fr 1fr;gap:var(--space-4)}}@media (min-width:1024px){.container{max-width:var(--container-2xl);padding-left:var(--space-6);padding-right:var(--space-6)}.forecast-grid{grid-template-columns:repeat(4,1fr);gap:var(--space-2)}.weather-card{min-height:480px;padding:var(--space-6) var(--space-6)}.weather-card .city-name{font-size:var(--text-5xl)}.weather-card .temperature{font-size:var(--text-8xl)}.weather-card .weather-icon{width:120px;height:120px}.navbar{padding:var(--space-2) 0}.navbar .container{flex-wrap:nowrap}.navbar-nav{gap:var(--space-1)}.nav-link{padding:var(--space-1) var(--space-2);font-size:var(--text-sm)}.navbar .form-control{width:280px}.forecast-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--primary-blue)}.btn:hover,.navbar .btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.city-pill:hover{transform:translateY(-2px);box-shadow:var(--shadow-primary)}.nav-link:hover{background-color:var(--gray-50)}.table-responsive .table td:not([colspan]):hover{background:var(--gray-50)}section{margin-bottom:var(--space-6)}.forecast-section-header{font-size:var(--text-2xl);margin-bottom:var(--space-3)}footer{padding:var(--space-6) 0;margin-top:var(--space-10)}footer .container{grid-template-columns:1fr 1fr;gap:var(--space-4)}}.container,.forecast-grid,.weather-card,.navbar,.navbar-nav,footer .container{transition:all var(--duration-medium) var(--ease-smooth)}h1,h2,h3,h4,h5,h6,.weather-card .city-name,.weather-card .temperature,.forecast-section-header{transition:font-size var(--duration-medium) var(--ease-smooth)}.weather-card,.forecast-card,section,footer{transition:padding var(--duration-medium) var(--ease-smooth),margin var(--duration-medium) var(--ease-smooth)}@media (orientation:portrait){.weather-card{min-height:400px}.forecast-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}@media (max-width:767px) and (orientation:landscape){.weather-card{min-height:320px;padding:var(--space-3) var(--space-4)}.weather-card .city-name{font-size:var(--text-3xl)}.weather-card .temperature{font-size:var(--text-5xl)}.weather-card .weather-icon{width:80px;height:80px}.forecast-grid{grid-template-columns:repeat(2,1fr)}}*{box-sizing:border-box}html{overflow-x:hidden}body{overflow-x:hidden;min-width:320px}img{max-width:100%;height:auto}.weather-card .city-name,.weather-card .weather-description{word-wrap:break-word;overflow-wrap:break-word}.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:374px){.container{padding-left:var(--space-1);padding-right:var(--space-1)}.weather-card{padding:var(--space-3) var(--space-2)}.weather-card .city-name{font-size:var(--text-3xl)}.weather-card .temperature{font-size:var(--text-5xl)}.forecast-card{padding:var(--space-2)}}@media (min-width:1440px){.container{max-width:var(--container-2xl)}.forecast-grid{grid-template-columns:repeat(4,1fr);gap:var(--space-2)}}@media (min-width:1200px){.h2,h2{font-size:1.5rem !important}}@media (prefers-reduced-motion:reduce){.container,.forecast-grid,.weather-card,.navbar,.navbar-nav,footer .container,h1,h2,h3,h4,h5,h6,.weather-card .city-name,.weather-card .temperature,.forecast-section-header{transition:none}}@media (prefers-contrast:high){.forecast-card,.weather-details,.table-responsive{border:2px solid currentColor}.btn,.navbar .btn{border:2px solid currentColor}}@media print{.navbar,.navbar-toggler,footer,.city-pills-container{display:none}.container{max-width:100%;padding:0}.weather-card{page-break-inside:avoid}.forecast-grid{grid-template-columns:repeat(2,1fr)}}