: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;padding:0;min-width:320px;min-height:100vh;overflow:hidden}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}}.map-wrapper{position:fixed;top:0;left:0;width:100%;height:100vh;overflow:hidden}.map-container{width:100%;height:100%}.map-controls{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;gap:10px;z-index:1000}.map-control-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#fff;border:none;border-radius:4px;box-shadow:0 2px 6px #0000004d;cursor:pointer;font-family:Arial,sans-serif;font-size:14px;font-weight:500;color:#333;transition:all .2s ease}.map-control-btn:hover{background:#f8f8f8;box-shadow:0 3px 8px #0006;transform:translateY(-1px)}.map-control-btn:active{transform:translateY(0);box-shadow:0 2px 4px #0000004d}.map-control-btn svg{flex-shrink:0}.reset-btn svg{stroke:#3498db}.navigate-btn svg{stroke:#e74c3c}@media(max-width:768px){.map-controls{bottom:10px;top:auto;left:50%;transform:translate(-50%);flex-direction:row}.map-control-btn span{display:none}.map-control-btn{padding:12px;border-radius:50%;width:44px;height:44px;justify-content:center}}.school-popup{font-family:Arial,sans-serif;padding:10px}.school-popup h3{margin:0 0 10px;font-size:16px;color:#333}.school-popup p{margin:5px 0;font-size:14px;color:#666}.school-popup strong{color:#333}.school-popup a{color:#3498db;text-decoration:none}.school-popup a:hover{text-decoration:underline}.mapboxgl-popup-content{padding:15px;border-radius:8px;box-shadow:0 2px 10px #0003}.mapboxgl-popup-close-button{font-size:24px;padding:0 8px;color:#333!important;font-weight:700;line-height:1;background:transparent;border:none;transition:all .2s ease}.mapboxgl-popup-close-button:hover{color:#e74c3c!important;background:#f5f5f5;border-radius:4px}.dde-button{position:absolute;top:10px;right:10px;display:flex;align-items:center;gap:8px;padding:12px 18px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;text-decoration:none;border-radius:8px;box-shadow:0 4px 12px #667eea66;font-family:Arial,sans-serif;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;z-index:1001}.dde-button:hover{background:linear-gradient(135deg,#764ba2,#667eea);box-shadow:0 6px 16px #667eea80;transform:translateY(-2px)}.dde-button:active{transform:translateY(0);box-shadow:0 3px 8px #667eea4d}.dde-button svg{flex-shrink:0;stroke:#fff}.filter-panel{position:absolute;top:70px;right:10px;width:280px;max-height:calc(100vh - 100px);background:#fff;border-radius:8px;box-shadow:0 2px 8px #00000026;overflow:hidden;display:flex;flex-direction:column;z-index:1000}.filter-header{padding:16px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center;background:#f8f9fa}.filter-header h3{margin:0;font-size:16px;font-weight:600;color:#333}.clear-filters-btn{padding:6px 12px;background:#ff6b6b;color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:background .2s}.clear-filters-btn:hover{background:#ee5a52}.filter-list{padding:12px;overflow-y:auto;flex:1}.filter-item{display:flex;align-items:center;padding:10px;margin-bottom:4px;border-radius:4px;cursor:pointer;transition:background .2s;gap:10px}.filter-item:hover{background:#f5f5f5}.filter-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#11b4da}.category-name{flex:1;font-size:14px;color:#333}.category-count{font-size:12px;color:#888;font-weight:500}@media(max-width:768px){.dde-button{top:10px;right:10px;left:10px;width:calc(100% - 20px);justify-content:center;font-size:14px;padding:10px 16px}.filter-panel{width:calc(100% - 20px);left:10px;right:10px;top:60px;max-height:250px}.filter-header h3{font-size:14px}.filter-list,.filter-item{padding:8px}.category-name{font-size:13px}}.app{width:100%;height:100vh;margin:0;padding:0;overflow:hidden}.loading-container,.error-container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100vh;width:100%;font-family:Arial,sans-serif}.loading-spinner{width:50px;height:50px;border:5px solid #f3f3f3;border-top:5px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-container p,.error-container p{margin-top:20px;font-size:18px;color:#666}.error-container h2{color:#e74c3c;margin-bottom:10px}.geocoding-progress{text-align:center;max-width:400px;width:90%}.geocoding-progress p{margin:10px 0}.progress-details{font-size:16px;font-weight:700;color:#3498db}.progress-school{font-size:14px;color:#888;font-style:italic;margin-bottom:20px!important}.progress-bar{width:100%;height:8px;background-color:#f3f3f3;border-radius:10px;overflow:hidden;margin-top:15px}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#3498db,#2ecc71);border-radius:10px;transition:width .3s ease}
