:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f7fa;margin:0;padding:0;display:flex;flex-direction:column;align-items:center;min-height:100vh;color:#333}.app{width:100%;min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:20px;box-sizing:border-box}.search-container{position:relative;max-width:100%;margin:0 0 20px;display:flex;gap:10px;align-items:center;width:100%}.search-container input{flex:1;padding:10px 15px;border:1px solid #ddd;border-radius:8px;font-size:14px;outline:none;transition:all .3s ease;min-height:40px;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.weather-card{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.weather-card input,.weather-card h2,.weather-card h3{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.search-container input:focus{border-color:#4caf50;box-shadow:0 0 0 2px #4caf5033}.search-btn{background:#4caf50;border:none;border-radius:8px;padding:10px 20px;color:#fff;font-size:14px;cursor:pointer;transition:all .3s ease;min-height:40px;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.search-btn:hover{background:#45a049;transform:translateY(-1px);box-shadow:0 2px 8px #4caf504d}.search-btn:active{transform:translateY(0);box-shadow:0 1px 4px #4caf504d}.location-btn{background:#666;border:none;border-radius:8px;padding:10px 20px;color:#fff;font-size:14px;cursor:pointer;transition:all .3s ease;min-height:40px;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.location-btn:hover{background:#555;transform:translateY(-1px);box-shadow:0 2px 8px #0003}.location-btn:active{transform:translateY(0);box-shadow:0 1px 4px #0003}.search-results{position:absolute;top:100%;left:0;right:0;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;max-height:300px;overflow-y:auto;z-index:1000;margin-top:10px}.search-result-item{padding:16px;cursor:pointer;transition:background-color .2s ease;border-bottom:1px solid #f0f0f0;min-height:48px;display:flex;align-items:center;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.search-result-item:hover{background-color:#f5f5f5}.search-result-item:active{background-color:#e9ecef}.search-result-item:last-child{border-bottom:none}.main{flex:1;display:flex;flex-direction:column;align-items:center}.loading{font-size:18px;color:#333;margin:50px 0}.error{background:#ff00001a;color:#333;padding:15px 20px;border-radius:8px;margin:20px 0;text-align:center;border-left:4px solid #f44336}.weather-card{width:100%;max-width:600px;margin:0 auto!important;padding:20px;box-sizing:border-box;background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000001a;animation:fadeIn .5s ease;display:flex;flex-direction:column;align-items:center}.weather-card>*{width:100%;max-width:100%}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.current-weather{margin-bottom:30px;text-align:left;width:100%}.current-weather h2{font-size:1.5rem;margin-bottom:5px;color:#333;text-align:left}.update-time{font-size:.9rem;color:#999;margin-bottom:20px;text-align:left}.weather-info{display:flex;align-items:center;justify-content:flex-start;gap:30px;margin-bottom:30px;flex-wrap:wrap}.temperature{font-size:3.5rem;font-weight:700;color:#333;flex-shrink:0}.weather-status{display:flex;flex-direction:column;justify-content:center}.weather-desc{font-size:1.2rem;color:#666;margin-bottom:5px}.air-quality-info{font-size:.9rem;color:#999}.weather-details{margin-bottom:30px;width:100%}.weather-detail-row{display:flex;gap:15px;margin-bottom:15px;width:100%}.weather-detail-item{flex:1;background:#f8f9fa;border-radius:8px;padding:15px;display:flex;justify-content:space-between;align-items:center}.weather-detail-label{font-size:.9rem;color:#666}.weather-detail-value{font-size:1.1rem;font-weight:500;color:#333;text-align:right}.forecast{margin-bottom:30px;text-align:left}.forecast h3{font-size:1.2rem;margin-bottom:15px;color:#333;text-align:left}.forecast-list{display:flex;gap:15px;overflow-x:auto;padding-bottom:10px;width:100%}.forecast-item{flex:0 0 auto;width:120px;background:#f8f9fa;border-radius:8px;padding:15px;text-align:center;transition:transform .2s ease;display:flex;flex-direction:column;align-items:center}.forecast-item:hover{transform:translateY(-2px);box-shadow:0 2px 8px #0000001a}.forecast-date{font-size:.9rem;color:#666;margin-bottom:10px}.forecast-sky{font-size:.9rem;color:#777;margin:10px 0}.forecast-temp{margin:10px 0;font-size:.9rem;color:#333}.temp-max{font-weight:700;color:#e74c3c;margin-right:10px}.temp-min{color:#3498db}.footer{text-align:center;margin-top:40px;color:#666;font-size:.9rem}@media(max-width:1024px){.app{max-width:90%}.weather-container>*{max-width:100%}.forecast-list{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}@media(max-width:768px){.app{padding:15px;max-width:95%}.header h1{font-size:1.8rem}.search-container{flex-direction:column;align-items:stretch}.search-btn,.location-btn{width:100%;padding:12px}.weather-container{padding:20px}.weather-info{flex-direction:column;text-align:center;gap:20px}.temperature{font-size:3rem}.weather-details{grid-template-columns:repeat(2,1fr)}.forecast-list{grid-template-columns:repeat(3,1fr)}.forecast-item{padding:15px}}@media(max-width:480px){.header h1{font-size:1.5rem}.search-container input{padding:10px 14px;font-size:14px}.search-btn,.location-btn{padding:10px;font-size:14px}.weather-container{padding:15px}.current-weather h2{font-size:1.3rem}.temperature{font-size:2.5rem}.weather-details{grid-template-columns:1fr}.weather-detail-item{padding:12px}.forecast-list{grid-template-columns:repeat(2,1fr)}.forecast-item{padding:12px}.aqi-info{flex-direction:column;gap:10px;align-items:center}.aqi-value{font-size:2rem}}@media(max-width:375px){.app{padding:10px}.header h1{font-size:1.3rem}.temperature{font-size:2.2rem}.weather-desc{font-size:1rem}.forecast-list{grid-template-columns:1fr}.forecast-item{flex-direction:row;justify-content:space-between;align-items:center;text-align:left}.forecast-sky{margin:0 10px}}
