:root{--primary-color:#2c3e50;--secondary-color:#34495e;--accent-color:#5dade2;--text-color:#ecf0f1;--border-color:#456789;--shadow-color:rgba(0,0,0,.3)}body,html{font-family:Inter,sans-serif;height:100%;margin:0;padding:0;width:100%}body{background-color:var(--primary-color)!important;color:var(--text-color)!important;overflow:hidden}#map-container{background-color:#fff;bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}#map{height:100%;width:100%}.gm-style button{color:#565656!important}.gm-style .gm-control-active,.gm-style .gm-control-active:hover,.gm-style button,.gm-style button:hover{background-color:#fff!important}.gm-style .gm-control-active img{filter:none!important}.gm-style .gm-style-mtc button,.gm-svpc{background-color:#fff!important}.gm-style .gm-style-mtc button{color:#565656!important}.app-header{background-color:var(--secondary-color)!important;box-shadow:0 1px 4px var(--shadow-color)}.app-footer,.app-header,.app-title{color:var(--text-color)!important}.app-footer{background-color:var(--secondary-color)!important;border-top:1px solid var(--border-color);font-size:12px;height:15px;line-height:15px;text-align:center}.search-container{left:50%;max-width:400px;position:absolute;top:20px;transform:translateX(-50%);width:80%;z-index:1000}.search-input{background-color:var(--secondary-color)!important;border:1px solid var(--border-color);border-radius:4px;box-shadow:0 2px 8px var(--shadow-color);color:var(--text-color)!important;font-size:16px;padding:12px;width:100%}.search-input:focus{border-color:var(--accent-color);box-shadow:0 2px 12px rgba(93,173,226,.3);outline:none}.search-input::placeholder{color:rgba(236,240,241,.7)}.weather-overlay{background-color:var(--secondary-color)!important;border-left:1px solid var(--border-color);box-shadow:-2px 0 8px var(--shadow-color);color:var(--text-color)!important}.weather-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:20px}.weather-header h2{margin:0;padding-right:20px}.close-overlay{align-items:center;background:none!important;border:none;border-radius:50%;color:var(--text-color)!important;cursor:pointer;display:flex;justify-content:center;opacity:.7;padding:4px;transition:opacity .2s ease}.close-overlay:hover{background-color:hsla(0,0%,100%,.1)!important;opacity:1}.close-overlay svg{height:20px;width:20px}.weather-score{border-radius:8px;padding:20px}.graph-container,.weather-score{background-color:var(--primary-color)!important;margin:15px}.graph-container{border:1px solid var(--border-color);border-radius:8px;padding:16px}.category-title,.graph-label,.y-axis-label{color:var(--text-color)!important}.category-title{background-color:var(--primary-color)!important;border-bottom:1px solid var(--border-color);border-radius:8px 8px 0 0;margin:0;padding:10px 15px}button{background-color:var(--secondary-color)!important;border:1px solid var(--border-color);border-radius:4px;color:var(--text-color)!important;padding:8px 16px;transition:background-color .2s ease}button:hover{background-color:var(--accent-color)!important}.toast{border:1px solid var(--border-color);border-radius:4px;color:var(--text-color)!important;padding:12px 20px}.pac-container,.toast{background-color:var(--secondary-color)!important;box-shadow:0 2px 8px var(--shadow-color)}.pac-container{border:1px solid var(--border-color)}.pac-item{background-color:var(--secondary-color)!important;border-color:var(--border-color);color:var(--text-color)!important;padding:8px 12px}.pac-item:hover{background-color:var(--primary-color)!important}.pac-item-query{color:var(--text-color)!important}.pac-matched{color:var(--accent-color)!important}.score-bar{background-color:var(--primary-color)!important;border:1px solid var(--border-color);border-radius:4px;margin:10px 0;overflow:hidden}.score-bar-fill{height:20px;transition:width .3s ease}.score-bar-fill.score-excellent{background-color:var(--accent-color)!important}.loading-indicator{background-color:var(--secondary-color)!important;border-radius:4px;color:var(--text-color)!important;margin:15px;padding:15px}.loading-spinner{border-color:var(--border-color);border-top-color:var(--accent-color)}