*{box-sizing:border-box} :root{--ink:#1d2b38;--muted:#71818e;--line:#e4e9ed;--teal:#167c75;--teal-light:#edf7f4;--orange:#d67a37;--paper:#fff;--surface:#f7f9fa;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}
body{margin:0;background:var(--paper);font-size:14px}button,input,select{font:inherit}button,a,select,input[type=file]{-webkit-tap-highlight-color:transparent}button,a{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #77beb6;outline-offset:3px}a{color:var(--teal)}button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:7px;padding:10px 12px}button:hover:not(:disabled){background:#f2f7f6}h1,h2,h3,p{margin:0}h2{font-size:14px;font-weight:600;margin-bottom:16px}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--line)}.brand{text-decoration:none;color:var(--ink);font-weight:600;font-size:24px;display:flex;align-items:center;gap:10px}.brand-mark{display:inline-flex;background:var(--teal);color:#fff;border-radius:9px;width:33px;height:33px;align-items:center;justify-content:center;font-size:28px}.brand-tag{font-size:10px;color:var(--muted);font-weight:500;letter-spacing:1.8px;margin-left:14px;border-left:1px solid var(--line);padding-left:22px}.api-link{font-size:12px;text-decoration:none;color:#657582}.workspace{display:grid;grid-template-columns:360px minmax(0,1fr);height:calc(100vh - 72px)}.sidebar{padding:30px 28px;overflow-y:auto;border-right:1px solid var(--line)}.eyebrow{font-size:10px;letter-spacing:1.3px;color:var(--muted);font-weight:600}.section-title h1{font-size:37px;line-height:1.13;font-weight:500;letter-spacing:-1.6px;margin:14px 0}.intro{font-size:13px;line-height:1.6;color:var(--muted);max-width:265px}.sidebar section{padding-top:24px;margin-top:24px;border-top:1px solid var(--line)}.step-number{font-size:11px;color:#85959e;padding-right:8px;font-variant-numeric:tabular-nums}.file-area{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:18px 10px;border:1px dashed #b9c9c9;border-radius:9px;cursor:pointer;background:#fbfdfc;text-align:center;overflow-wrap:anywhere}.file-area input{position:absolute;width:1px;height:1px;opacity:0}.file-area:focus-within{outline:3px solid #77beb6}.upload-arrow{font-size:25px;color:var(--teal)}.file-area small{color:var(--muted);font-size:11px}.profile-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:16px;font-size:12px}.profile-row select{border:1px solid var(--line);padding:7px 4px;background:white;border-radius:5px;max-width:175px;color:var(--ink)}.input-actions{display:flex;flex-direction:column;gap:6px;margin-top:12px}.text-button{border:0;color:var(--teal);font-size:12px;background:transparent}.status-text{font-size:11px;color:var(--muted);margin-top:7px;line-height:1.5}.primary-button{width:100%;display:flex;align-items:center;justify-content:space-between;background:var(--teal);color:#fff;border:0;padding:13px 15px}.primary-button:hover:not(:disabled){background:#11675f}.progress-caption{display:flex;justify-content:space-between;margin-top:14px;font-size:11px;color:var(--muted)}progress{width:100%;height:5px;accent-color:var(--teal);margin-top:7px}.map-panel{position:relative;overflow:hidden;background:#f4f6f5;min-height:450px}#map{height:100%;width:100%;z-index:1;background:#f3f6f4}.map-heading{position:absolute;left:24px;top:20px;z-index:500;display:flex;align-items:center;gap:9px;background:rgba(255,255,255,.95);border:1px solid #e0e9e6;padding:7px 8px 7px 13px;border-radius:7px;font-size:12px;max-width:calc(100% - 100px)}.map-heading button{padding:7px 9px;font-size:11px;margin-left:14px}.map-indicator{width:6px;height:6px;background:var(--teal);border-radius:50%}.map-empty{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);text-align:center;z-index:450;width:80%;color:#5f7973;pointer-events:none}.empty-symbol{font-size:44px;display:block;margin-bottom:18px;color:#9bbbb2}.map-empty h2{font-size:22px;font-weight:500;margin-bottom:12px}.map-empty p{font-size:13px;line-height:1.75}.layer-panel{position:absolute;top:82px;right:20px;background:#fff;border:1px solid #e0e9e6;border-radius:9px;padding:12px 15px;width:210px;z-index:500;box-shadow:0 4px 18px #20382c08}#layer-toggle{border:0;padding:0;width:100%;display:flex;justify-content:space-between;font-weight:600;font-size:12px}#layers{padding-top:10px;display:flex;flex-direction:column;gap:8px}#layers label{display:flex;align-items:center;gap:8px;font-size:11px;cursor:pointer}#layers input{accent-color:var(--teal);margin:0}.swatch{width:12px;height:3px;border-radius:1px}.map-footer{position:absolute;bottom:0;left:0;right:0;z-index:450;display:flex;justify-content:space-between;gap:8px;padding:9px 18px;background:#ffffffdd;font-size:10px;color:#75867e}.leaflet-bottom{bottom:32px}.leaflet-top.leaflet-left{left:auto;right:20px;top:15px}.variant{width:100%;padding:12px;margin-bottom:8px;text-align:left;display:grid;grid-template-columns:1fr auto;gap:5px;background:#fff}.variant[aria-pressed=true]{border-color:var(--teal);background:var(--teal-light)}.variant strong{font-size:12px}.variant small{font-size:11px;color:var(--muted)}.variant .rank{grid-row:span 2;align-self:center;color:var(--teal);font-size:16px;font-weight:500}.notice{font-size:11px;line-height:1.55;padding:11px 12px;background:#fff6e9;color:#85632d;border-radius:6px;margin:12px 0}dl{display:grid;grid-template-columns:1fr auto;gap:10px 12px;font-size:12px;margin:17px 0}dt{color:var(--muted)}dd{margin:0;font-weight:500;text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.download-link{display:block;text-decoration:none;border-top:1px solid var(--line);padding-top:14px;font-size:12px}details{margin-top:24px;border-top:1px solid var(--line);padding-top:18px;font-size:12px}summary{cursor:pointer;font-weight:500}#diagnostics{max-height:300px;overflow:auto}.diagnostic{font-size:11px;line-height:1.55;margin-top:10px;padding-left:9px;border-left:2px solid #cadbd5}.diagnostic.error-item{border-color:#d16d54}.diagnostic strong{display:block;font-size:10px;overflow-wrap:anywhere}.error{margin-top:14px;font-size:12px;background:#fff2ed;color:#a7432c;border-radius:6px;padding:10px}.sidebar-footer{font-size:10px;line-height:1.8;color:#91a19b;margin-top:30px}.selection-card{position:absolute;bottom:55px;left:24px;z-index:500;background:#fff;border:1px solid #e0e9e6;border-radius:10px;padding:20px;width:min(335px,calc(100% - 48px));box-shadow:0 8px 25px #20382c10}.selection-card h3{font-size:18px;font-weight:500;margin-top:7px;overflow-wrap:anywhere}.selection-card dl{margin-bottom:0;grid-template-columns:90px 1fr}#close-selection{float:right;border:0;font-size:22px;padding:0 4px}.node-symbol{display:flex;align-items:center;justify-content:center;font-size:18px;text-shadow:0 0 3px white}.node-chamber{width:10px;height:10px;background:currentColor;border:2px solid #fff;box-shadow:0 0 0 1px currentColor}[hidden]{display:none!important}
@media(max-width:1000px){.workspace{grid-template-columns:320px minmax(0,1fr)}.sidebar{padding:24px 20px}.layer-panel{width:190px;right:12px}.map-heading{left:12px;max-width:calc(100% - 75px)}.map-heading button{margin-left:2px}.brand-tag{display:none}.section-title h1{font-size:33px}}
@media(max-width:700px){.topbar{height:62px;padding:0 18px}.brand{font-size:21px}.api-link{font-size:11px}.workspace{display:flex;flex-direction:column;height:auto}.sidebar{overflow:visible;border-right:0;padding:24px 20px}.section-title h1 br{display:none}.section-title h1{font-size:29px;margin:10px 0}.intro{max-width:none}.sidebar section{margin-top:18px;padding-top:18px}.sidebar-footer{display:none}.map-panel{height:65vh;min-height:440px}.layer-panel{top:77px;font-size:11px}#layers{gap:9px}.map-heading{font-size:11px}.map-footer{font-size:9px}.selection-card{left:12px;bottom:45px;width:calc(100% - 24px)}.profile-row select{font-size:16px}.file-area{padding:14px}}

.backend-controls{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:20px;font-size:11px}.backend-controls label,.backend-controls span{grid-column:1/-1}.backend-controls input{width:100%;min-width:0;padding:8px;border:1px solid var(--line);border-radius:6px}.backend-controls button{font-size:11px;padding:8px}.tariff-fields{display:grid;gap:8px;margin:14px 0}.tariff-fields label{display:flex;justify-content:space-between;align-items:center;font-size:11px;gap:8px}.tariff-fields input{width:105px;padding:6px;border:1px solid var(--line);border-radius:5px}.settings textarea{box-sizing:border-box;width:100%;height:220px;font:11px/1.5 monospace;margin:10px 0;resize:vertical;border:1px solid var(--line);border-radius:6px;padding:8px}.settings input[type=file]{width:100%;font-size:11px}.result-import{display:block;font-size:11px;color:var(--teal);margin-top:10px}.result-import input{font-size:11px;width:100%;margin-top:7px}.profile-card{position:absolute;right:15px;bottom:40px;z-index:490;width:min(580px,calc(100% - 30px));background:#fffffff5;border:1px solid #ccd9d6;border-radius:8px;padding:12px;box-shadow:0 5px 18px #20382c10}.profile-card label{font-size:12px;font-weight:600}.profile-card select{float:right;font-size:11px;max-width:50%;border:1px solid var(--line);border-radius:4px}.profile-card svg{display:block;width:100%;height:170px}.profile-card small{font-size:9px;color:#657582}.depth-legend{position:absolute;z-index:480;bottom:280px;right:16px;background:#fffffff0;padding:8px;border-radius:5px;font-size:10px}.depth-legend span{display:inline-block;width:100px;height:7px;background:linear-gradient(90deg,#0eaf88,#2364ce,#6437b7);margin:0 6px}.with-depth .selection-card{bottom:280px}.with-depth .layer-panel{max-height:calc(100% - 390px);overflow:auto;min-height:110px}
