@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/static/fonts/Inter/Inter[opsz,wght].woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/static/fonts/Inter/Inter-Italic[opsz,wght].woff2) format("woff2")}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter;background:#fff;color:#000;line-height:1.5;overflow-x:hidden}.app-header{background:#fff;color:#000;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #E0E0E0}.app-header .logo{display:flex;align-items:center;gap:1rem;text-decoration:none;color:#000}.app-header .logo h1{font-size:1.25rem;font-weight:600;margin:0}.app-header .header-right{display:flex;gap:1rem}.app-header .btn-link{color:#f60;text-decoration:none;padding:.5rem 1rem;font-weight:500;transition:.2s ease}.app-header .btn-link:hover{text-decoration:underline}.app-main{min-height:calc(100vh - 200px);padding:2rem}.step{display:none}.step.active{display:block;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.split-view{display:grid;grid-template-columns:2fr 1fr;gap:2rem;height:600px}@media (max-width: 1024px){.split-view{grid-template-columns:1fr;height:auto}}.map-container{position:relative;background:#fff;box-shadow:0 2px 4px #0000001a;overflow:hidden}.leaflet-map{width:100%;height:100%;min-height:400px}.map-search{position:absolute;top:1rem;left:1rem;right:1rem;z-index:1000}.map-search input{width:100%;padding:1rem;border:1px solid #E0E0E0;font-size:1rem;box-shadow:0 4px 8px #0000001a;transition:.2s ease}.map-search input:focus{outline:none;border-color:#f60}.search-results{margin-top:.5rem;background:#fff;box-shadow:0 4px 8px #0000001a;max-height:300px;overflow-y:auto;display:none}.search-results.has-results{display:block}.search-results .result-item{padding:1rem;cursor:pointer;border-bottom:1px solid #E0E0E0;transition:.2s ease}.search-results .result-item:hover{background:#f5f5f5}.search-results .result-item:last-child{border-bottom:none}.config-panel,.result-panel{background:#fff;padding:2rem;box-shadow:0 2px 4px #0000001a;overflow-y:auto}.config-panel h2,.result-panel h2{font-size:1.25rem;font-weight:600;margin-bottom:1rem;color:#000}.form-group{margin-bottom:1rem}.form-group label{display:block;font-weight:500;margin-bottom:.5rem;color:#000}.form-group input[type=text],.form-group input[type=number],.form-group select{width:100%;padding:1rem;border:1px solid #E0E0E0;font-size:1rem;font-family:Inter;transition:.2s ease}.form-group input[type=text]:focus,.form-group input[type=number]:focus,.form-group select:focus{outline:none;border-color:#f60}.form-group input[type=text]:disabled,.form-group input[type=text][readonly],.form-group input[type=number]:disabled,.form-group input[type=number][readonly],.form-group select:disabled,.form-group select[readonly]{background:#f5f5f5;cursor:not-allowed}.form-group input[type=range]{width:100%;margin-right:.5rem;accent-color:#FF6600}.form-group .coords,.form-group .preset-description{font-size:.875rem;color:#666;margin-top:.5rem}.btn{padding:1rem;border:none;font-size:1rem;font-weight:500;font-family:Inter;cursor:pointer;transition:.2s ease;display:inline-flex;align-items:center;gap:.5rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#f60;color:#fff}.btn-primary:hover:not(:disabled){background:#cc5200}.btn-secondary{background:#f5f5f5;color:#000;border:1px solid #E0E0E0}.btn-secondary:hover:not(:disabled){background:#e8e8e8}.btn-icon{padding:.5rem;background:#ffffffe6;border:1px solid #E0E0E0;cursor:pointer;font-size:1rem;box-shadow:0 1px 2px #0000000d;transition:.2s ease}.btn-icon:hover{background:#fff;box-shadow:0 2px 4px #0000001a}.progress-container{max-width:600px;margin:0 auto;text-align:center}.progress-container h2{color:#000;margin-bottom:2rem;font-weight:600}.progress-bar{width:100%;height:40px;background:#f5f5f5;overflow:hidden;margin-bottom:1rem}.progress-fill{height:100%;background:#f60;transition:width .3s ease;display:flex;align-items:center;justify-content:flex-end;padding-right:1rem;color:#fff;font-weight:600}#progress-percentage{font-size:2rem;font-weight:700;color:#f60;margin-bottom:1rem}.progress-log{list-style:none;text-align:left;max-width:400px;margin:0 auto}.progress-log li{padding:.5rem;margin-bottom:.5rem;background:#f5f5f5;font-size:.875rem}.progress-log li.complete{color:#48bb78}.progress-log li.active{color:#f60}.viewer-container{position:relative;background:linear-gradient(to bottom,#e8e8e8,#f5f5f5);box-shadow:0 2px 4px #0000001a;overflow:hidden}#viewer-canvas{width:100%;height:100%;min-height:400px;display:block}.viewer-controls{position:absolute;bottom:1rem;right:1rem;display:flex;gap:.5rem}.result-info{margin-bottom:1rem;padding:1rem;background:#f5f5f5}.result-info p{margin-bottom:.5rem}.result-info p:last-child{margin-bottom:0}.file-list{margin-bottom:1rem}.file-list h3{font-size:1rem;font-weight:600;margin-bottom:.5rem}.file-list ul{list-style:none}.file-list ul li{padding:.5rem 0;border-bottom:1px solid #E0E0E0}.file-list ul li:last-child{border-bottom:none}.action-buttons{display:flex;flex-direction:column;gap:.5rem}.action-buttons .btn{width:100%;justify-content:center}.app-footer{background:#f60;padding:1rem 2rem;text-align:center;color:#fff;font-size:.875rem}.app-footer p{margin-bottom:.5rem}.app-footer p:last-child{margin-bottom:0}.app-footer a{color:#fff;text-decoration:underline}.app-footer a:hover{text-decoration:none}.app-footer strong{font-weight:600}.hidden{display:none!important}.loading{opacity:.6;pointer-events:none}@keyframes spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;animation:spin .6s linear infinite}
