:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:#fff;color:#213547}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}h1,h2,h3,h4,h5,h6{color:#213547;margin:0}p{color:#213547}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#f9f9f9;color:#213547;cursor:pointer;transition:all .25s}button:hover{border-color:#646cff;background-color:#f0f0f0}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.geocoding-demo{max-width:1200px;margin:0 auto;padding:2rem}.drop-zone{border:3px dashed #bdc3c7;border-radius:12px;padding:3rem 2rem;text-align:center;background:#f8f9fa;transition:all .3s ease;cursor:pointer;margin-bottom:2rem}.drop-zone:hover,.drop-zone.drag-over{border-color:#3498db;background:#e3f2fd;transform:translateY(-2px)}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.upload-icon{font-size:3rem;margin-bottom:1rem}.drop-zone p{margin:0;color:#7f8c8d;font-size:1.1rem}.upload-or{color:#95a5a6!important;font-size:.9rem!important}.file-input-label{background:#3498db;color:#fff;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-weight:500;transition:background .3s ease}.file-info{background:#ecf0f1;padding:2rem;border-radius:8px;margin-bottom:2rem}.file-info h3{color:#2c3e50;margin-bottom:1rem}.preview{background:#fff;padding:1rem;border-radius:6px;margin:1rem 0;border:1px solid #bdc3c7}.preview h4{margin-top:0;color:#34495e}.preview pre{background:#f8f9fa;padding:1rem;border-radius:4px;overflow-x:auto;font-size:.9rem;margin:0}.process-button{background:#27ae60;color:#fff;border:none;padding:1rem 2rem;border-radius:6px;font-size:1.1rem;font-weight:500;cursor:pointer;transition:background .3s ease;margin-top:1rem}.results-section{background:#d5f4e6;padding:2rem;border-radius:8px;text-align:center;margin-bottom:2rem}.results-section h3{color:#27ae60;margin-bottom:1rem}.download-button{background:#e74c3c;color:#fff;border:none;padding:1rem 2rem;border-radius:6px;font-size:1.1rem;font-weight:500;cursor:pointer;transition:background .3s ease;margin-top:1rem}.download-button:hover{background:#c0392b}.demo-info{background:#f8f9fa;padding:2rem;border-radius:8px;border-left:4px solid #3498db}.demo-info h3{color:#2c3e50;margin-bottom:1rem}.demo-info ul{margin:1rem 0;padding-left:2rem}.demo-info li{color:#34495e;margin-bottom:.5rem}.demo-info p{color:#7f8c8d;line-height:1.6}.second-demo{max-width:1200px;margin:0 auto;padding:2rem}.demo-header{text-align:center;margin-bottom:3rem}.demo-header h2{color:#2c3e50;margin-bottom:1rem;font-size:2.5rem}.demo-header p{color:#7f8c8d;font-size:1.1rem;max-width:600px;margin:0 auto}.upload-section{margin-bottom:3rem}.file-uploads{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}.file-upload-card{background:#f8f9fa;padding:2rem;border-radius:12px;border:2px dashed #bdc3c7;text-align:center;transition:all .3s ease}.file-upload-card:hover{border-color:#3498db;background:#e3f2fd}.file-upload-card h3{color:#2c3e50;margin-bottom:.5rem;font-size:1.3rem}.file-upload-card p{color:#7f8c8d;margin-bottom:1.5rem;font-size:.9rem}.file-input{display:none}.file-input-label{background:#3498db;color:#fff;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-weight:500;transition:background .3s ease;display:inline-block}.file-input-label:hover{background:#2980b9}.file-status{margin-top:1rem;color:#27ae60;font-weight:500}.error-message{background:#e74c3c;color:#fff;padding:1rem;border-radius:6px;margin-bottom:1rem;text-align:center}.process-section{text-align:center;margin:2rem 0}.process-button{background:#27ae60;color:#fff;border:none;padding:1rem 2rem;border-radius:6px;font-size:1.1rem;font-weight:500;cursor:pointer;transition:background .3s ease}.process-button:hover:not(:disabled){background:#229954}.process-button:disabled{background:#95a5a6;cursor:not-allowed}.results-section{background:#d5f4e6;padding:2rem;border-radius:12px;margin-bottom:2rem}.results-section h3{color:#27ae60;margin-bottom:1.5rem;text-align:center}.results-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}.stat-card{background:#fff;padding:1.5rem;border-radius:8px;text-align:center;box-shadow:0 2px 4px #0000001a}.stat-number{font-size:2rem;font-weight:700;color:#2c3e50;margin-bottom:.5rem}.stat-label{color:#7f8c8d;font-size:.9rem;font-weight:500}.download-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.download-button{border:none;padding:1rem 1.5rem;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s ease}.download-button.primary{background:#e74c3c;color:#fff}.download-button.primary:hover{background:#c0392b}.download-button.secondary{background:#95a5a6;color:#fff}.download-button.secondary:hover{background:#7f8c8d}.demo-info{background:#f8f9fa;padding:2rem;border-radius:12px;border-left:4px solid #3498db}.demo-info h3{color:#2c3e50;margin-bottom:1.5rem;text-align:center}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.info-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.info-card h4{color:#2c3e50;margin-bottom:.5rem;font-size:1.1rem}.info-card p{color:#7f8c8d;font-size:.9rem;line-height:1.5;margin:0}@media (max-width: 768px){.file-uploads,.results-stats{grid-template-columns:1fr}.download-buttons{flex-direction:column;align-items:center}.download-button{width:100%;max-width:300px}}.app{min-height:100vh;background:#f8f9fa}.demo-banner{background:linear-gradient(135deg,#ff6b6b,#ee5a24);color:#fff;padding:.75rem 0;text-align:center;box-shadow:0 2px 4px #0000001a;position:sticky;top:0;z-index:200}.demo-banner-content{display:flex;align-items:center;justify-content:center;gap:.5rem;font-weight:600;font-size:.9rem}.demo-banner-icon{font-size:1.1rem}.demo-banner-text{letter-spacing:.5px}.nav{background:#fff;box-shadow:0 2px 10px #0000001a;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100}.nav-brand h1{color:#2c3e50;margin:0;font-size:1.8rem;font-weight:600}.nav-links{display:flex;gap:2rem}.nav-links a{text-decoration:none;color:#7f8c8d;font-weight:500;padding:.5rem 1rem;border-radius:6px;transition:all .3s ease;position:relative}.nav-links a:hover,.nav-links a.active{color:#3498db;background:#e3f2fd}.nav-links a.active:after{content:"";position:absolute;bottom:-1px;left:50%;transform:translate(-50%);width:20px;height:2px;background:#3498db;border-radius:1px}.main-content{min-height:calc(100vh - 80px);padding:0}
