:root{--background-dark: linear-gradient(135deg, #1e3c72, #2a5298);--background-light: linear-gradient(135deg, #f5f7fa, #c3cfe2);--text-dark: #fff;--text-light: #333;--card-bg-dark: rgba(255, 255, 255, .1);--card-bg-light: rgba(255, 255, 255, .8);--input-bg-dark: rgba(255, 255, 255, .8);--input-bg-light: rgba(255, 255, 255, 1);--button-bg-dark: #ff6f61;--button-bg-light: #ff4a3d;--error-color-dark: #ff4a3d;--error-color-light: #ff4a3d}body{margin:0;font-family:Arial,sans-serif;min-height:100vh;display:flex;justify-content:center;align-items:center;background:var(--background-dark);color:var(--text-dark);transition:background .3s ease,color .3s ease}.App{text-align:center;background:var(--card-bg-dark);padding:2rem;border-radius:15px;box-shadow:0 8px 32px #0000001a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);max-width:400px;width:100%;transition:background .3s ease,color .3s ease}.App.light{background:var(--card-bg-light);color:var(--text-light)}h1{font-size:2.5rem;margin-bottom:1rem;color:inherit;text-shadow:2px 2px 4px rgba(0,0,0,.3)}input{padding:.75rem;font-size:1rem;border:none;border-radius:8px;margin-right:.5rem;width:60%;background:var(--input-bg-dark);transition:background .3s ease,color .3s ease}.App.light input{background:var(--input-bg-light)}input:focus{outline:none;background:#fff}button{padding:.75rem 1.5rem;font-size:1rem;border:none;border-radius:8px;background:var(--button-bg-dark);color:#fff;cursor:pointer;transition:background .3s ease,transform .2s ease}.App.light button{background:var(--button-bg-light)}button:hover{background:#ff4a3d;transform:scale(1.05)}button:active{transform:scale(.95)}.theme-toggle{margin-bottom:1rem;background:#555;color:#fff}.theme-toggle:hover{background:#444}.weather-info{margin-top:2rem;padding:1rem;background:#fff3;border-radius:10px;animation:fadeIn 1s ease-in-out}.App.light .weather-info{background:#fffc}h2{font-size:2rem;margin-bottom:.5rem;color:inherit}p{font-size:1.2rem;margin:.5rem 0;color:inherit}.error{color:var(--error-color-dark);font-size:1rem;margin-top:1rem;animation:shake .5s ease-in-out}.App.light .error{color:var(--error-color-light)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%{transform:translate(0)}25%{transform:translate(-10px)}50%{transform:translate(10px)}75%{transform:translate(-10px)}to{transform:translate(0)}}@media (max-width: 480px){.App{padding:1rem}h1{font-size:2rem}input{width:50%}button{padding:.75rem 1rem}}.dark{background-color:#000;color:#fff}.light{background-color:#fff;color:#000}
