:root{font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:#212529;background:#f4f5f9;font-size:14px;--ink:#121c3d;--muted:#606a7b;--teal:#0b5ed7;--border:#dce0e8}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{touch-action:manipulation}button{border:1px solid #cdd4df;border-radius:7px;background:#fff;color:var(--ink);font-weight:600;cursor:pointer;padding:10px 12px;transition:background .15s}button:hover:enabled{background:#e9effa}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,#map:focus-visible{outline:3px solid #d39338;outline-offset:3px}.topbar{height:76px;padding:0 30px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px;font-size:24px;font-weight:750;color:var(--ink);text-decoration:none;letter-spacing:-1px}.brandmark{background:var(--ink);color:#fff;border-radius:9px;width:35px;height:35px;display:flex;align-items:center;justify-content:center;font-size:20px;position:relative}.brandmark span{font-size:14px;color:#94baff;margin-left:1px}.brand-divider{font-weight:300;color:#bac9c7;margin:0 8px}.brand-subtitle{font-size:10px;letter-spacing:1.6px;color:var(--muted);font-weight:650}.local-badge{font-size:10px;letter-spacing:1.2px;display:flex;align-items:center;gap:8px;color:#606a7b}.local-badge>span{width:6px;height:6px;border-radius:50%;background:#0b5ed7}.workspace{display:grid;grid-template-columns:350px minmax(0,1fr);height:calc(100dvh - 76px);min-height:680px}.sidebar{padding:30px 26px 16px;overflow:auto;border-right:1px solid var(--border);background:#f8f9fc}.eyebrow{font-size:9px;letter-spacing:1.6px;font-weight:750;color:#4c6085;margin:0 0 12px}h1{font-size:29px;line-height:1.16;font-weight:650;letter-spacing:-1px;margin:0 0 14px}p{line-height:1.6}.intro>p:last-child{color:var(--muted);font-size:12px;margin-bottom:26px}.panel{border-top:1px solid var(--border);padding:21px 0 14px}.section-label{display:flex;align-items:center;gap:10px}.step{border:1px solid #c6d0e3;border-radius:50%;font-size:9px;width:25px;height:25px;display:grid;place-items:center;color:#4c6085}h2{font-size:14px;margin:0;font-weight:700}.small,.hint{color:var(--muted);font-size:11px}.small{margin:12px 0 16px}.hint{line-height:1.6}.primary,.export{width:100%;display:flex;align-items:center;justify-content:space-between;padding:13px 15px;background:var(--teal);color:#fff;border-color:var(--teal);font-size:12px}.primary:hover:enabled,.export:hover:enabled{background:#084298}.primary[aria-pressed=true]{background:#984d21;border-color:#984d21}.button-row{display:flex;gap:6px;margin-top:8px}.button-row button{font-size:10px;flex:1;padding:9px 5px}.secondary-row button:first-child{flex:2}.metrics{display:grid;grid-template-columns:1fr 1.4fr;margin:18px 0;gap:18px}.metrics>div+div{border-left:1px solid var(--border);padding-left:18px}dt{font-size:10px;color:var(--muted)}dd{font-size:26px;letter-spacing:-.7px;margin:5px 0 0}dd small{font-size:10px;letter-spacing:0;color:var(--muted)}label[for=filename]{font-size:10px;color:var(--muted);display:block;margin-bottom:6px}#filename{width:100%;border:1px solid #cdd4df;background:#fff;border-radius:6px;padding:10px 11px;font-size:12px;margin-bottom:10px}.export{background:var(--ink);border-color:var(--ink)}.privacy-note{font-size:10px;color:#697386;border-top:1px solid var(--border);padding-top:15px}.map-shell{position:relative;overflow:hidden;background:#e9edf5}#map{width:100%;height:100%;min-height:680px}.map-toolbar{position:absolute;left:24px;right:24px;top:20px;display:flex;justify-content:space-between;align-items:center;gap:12px;pointer-events:none}.map-title,.map-toolbar button{background:#fffffff5;box-shadow:0 3px 15px #121c3d14;border:1px solid #dce0e8;border-radius:7px;pointer-events:auto}.map-title{padding:12px 16px;font-weight:650;font-size:12px}.layer-icon{font-size:20px;color:var(--teal);vertical-align:middle;margin-right:9px}.map-toolbar button{font-size:11px;padding:12px}.map-location{position:absolute;left:25px;bottom:64px;display:flex;flex-direction:column;font-size:8px;letter-spacing:1.4px;color:#606a7b;background:#fffffff0;padding:10px 13px;border-radius:5px}.map-location strong{font-size:11px;font-weight:600;letter-spacing:0;color:var(--ink);margin-top:4px}.legend{position:absolute;right:24px;top:86px;width:280px;max-height:calc(100% - 150px);overflow:auto;background:#fffffff5;padding:18px;border:1px solid #dce0e8;border-radius:9px;box-shadow:0 8px 30px #121c3d14}.legend-heading{display:flex;justify-content:space-between;align-items:center}.legend-heading .eyebrow{font-size:8px;margin-bottom:7px}.toggle{font-size:10px;display:flex;align-items:center;gap:4px;cursor:pointer}.toggle input{accent-color:var(--teal)}.opacity-label{font-size:10px;color:var(--muted);display:flex;justify-content:space-between;margin-top:20px}#opacity{width:100%;accent-color:var(--teal);margin:9px 0}.layer-status{font-size:10px;color:#606a7b;margin:5px 0 12px}.layer-status.error{color:#a43c25}.legend-items{border-top:1px solid var(--border);padding-top:10px;max-height:330px;overflow:auto}.legend-item{display:flex;gap:10px;align-items:center;padding:7px 0;font-size:11px;line-height:1.4}.legend-item img{width:24px;object-fit:contain;flex-shrink:0;border:1px solid #cdd4df;background:#f1f3f8}.legend-actions{display:flex;gap:7px;margin-top:12px}.legend-actions button{font-size:9px;padding:7px 8px;flex:1}.legend>a{font-size:10px;color:var(--teal);display:inline-block;margin-top:12px}.legend-note{font-size:9px;line-height:1.5;color:#697386;margin-bottom:0}.map-footer{position:absolute;bottom:0;background:#fffffff2;border-top:1px solid #dce0e8;width:100%;padding:12px 23px;font-size:8px;font-weight:650;letter-spacing:1.5px;display:flex;justify-content:space-between;gap:15px}.map-footer span{font-weight:400;letter-spacing:0;font-size:10px;color:var(--muted)}.ol-zoom{top:86px;left:24px;background:#ffffffb0;padding:3px;border-radius:6px}.ol-zoom button{background:var(--ink);font-size:20px}.ol-scale-line{bottom:112px;left:25px;background:#121c3d8c}.ol-attribution{bottom:40px;font-size:9px}.fatal{position:absolute;left:24px;bottom:150px;max-width:410px;background:#fff0e4;border:1px solid #d8a175;border-radius:7px;padding:15px;color:#743d16;font-size:12px;z-index:10}.fatal[hidden]{display:none}@media(min-width:1500px){.workspace{grid-template-columns:380px minmax(0,1fr)}.sidebar{padding-left:36px;padding-right:36px}}@media(max-width:900px){.workspace{grid-template-columns:295px minmax(0,1fr)}.sidebar{padding:24px 18px}.legend{width:235px;right:14px;top:80px}.map-toolbar{left:14px;right:14px}.map-title{font-size:10px;padding:12px 9px}.map-toolbar button{font-size:10px}.map-footer>span{display:none}}@media(max-width:650px){.topbar{height:64px;padding:0 16px}.brand-subtitle,.brand-divider,.local-badge{display:none}.workspace{display:flex;flex-direction:column;height:auto;min-height:0}.sidebar{order:2;overflow:visible;border-right:0}.intro{display:none}.map-shell{order:1;height:65dvh;min-height:450px}#map{min-height:450px}.legend{width:210px;max-height:calc(100% - 130px);padding:13px}.legend-items{max-height:155px}.legend-note{font-size:8px}.map-location{display:none}.panel{padding:17px 0}.map-toolbar{top:12px}.legend{top:68px}.ol-zoom{left:14px;top:70px}.map-footer{padding:10px 14px}.ol-scale-line{bottom:65px}}

label[for=export-mode]{font-size:10px;color:var(--muted);display:block;margin:4px 0 6px}#export-mode{font:inherit;font-size:12px;width:100%;padding:10px 8px;background:#fff;color:var(--ink);border:1px solid #cdd4df;border-radius:6px;margin-bottom:12px}

.bibliography-link{font-size:11px;color:var(--teal);text-decoration:none;font-weight:600;white-space:nowrap}
.test-controls label{font-size:10px;color:var(--muted);display:block;margin:15px 0 6px}#test-layer{width:100%;padding:10px 7px;font-size:11px;background:#fff;border:1px solid #cdd4df;border-radius:6px;color:var(--ink)}.test-controls .primary{margin-top:12px}.cancel-test{font-size:11px;width:100%;margin-top:8px}.hint.error{color:#a43c25}.test-results{position:absolute;bottom:40px;left:15px;right:15px;background:#fffffff7;border:1px solid #cdd4df;border-radius:9px;z-index:5;box-shadow:0 -4px 25px #121c3d1a;max-height:44%;overflow:auto}.test-results[hidden]{display:none}.results-header{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:13px 16px;border-bottom:1px solid var(--border)}.results-header h2{font-size:13px}.results-header p{font-size:10px;line-height:1.4;margin:4px 0 0;color:var(--muted)}.results-header button{font-size:10px;padding:6px 9px}.results-table-wrap{overflow:auto;max-height:200px}.test-results table{width:100%;border-collapse:collapse;font-size:11px;text-align:left}.test-results th{position:sticky;top:0;background:#edf1f8;font-size:9px;letter-spacing:.4px;padding:10px}.test-results td{padding:10px;border-top:1px solid #e2e6ee;max-width:250px;overflow-wrap:anywhere;vertical-align:top}.test-results td small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.test-results td button{padding:5px 7px;font-size:9px}.test-results .value-cell{min-width:110px;white-space:pre-wrap}.results-actions{padding:10px 14px;display:flex;justify-content:space-between;align-items:center;gap:15px}.results-actions button{font-size:10px;padding:7px}.results-actions span{font-size:9px;color:var(--muted)}.test-results.stale .results-header{background:#fff2da}.result-status-complete{color:#126b55}.result-status-error,.result-status-incomplete{color:#9b452c}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.legend{max-height:calc(100% - 180px)}.map-shell.has-results .legend{max-height:43%}@media(max-width:650px){.test-results{left:6px;right:6px;max-height:55%;bottom:35px}.test-results td,.test-results th{padding:7px}.results-table-wrap{max-height:130px}.map-shell.has-results .legend{max-height:28%}.results-actions{flex-wrap:wrap}.test-controls .hint{font-size:10px}}

/* Checkboxes choose API work; the separate dropdown chooses only visible imagery. */
.layer-selection{border:0;padding:0;margin:16px 0 4px;min-width:0}
.layer-selection legend{font-size:11px;font-weight:650;color:var(--ink)}
#test-layer-options{margin-top:10px;max-height:220px;overflow:auto}
.test-controls .layer-choice{display:flex;align-items:flex-start;gap:9px;padding:8px;margin:0;border-radius:5px;color:var(--ink);font-size:11px;cursor:pointer;line-height:1.5}
.layer-choice:hover{background:#e9effa}.layer-choice input{margin:2px 0 0;accent-color:var(--teal);flex-shrink:0}
.test-results td button+button{margin-top:5px}

/* Indeterminate activity: the API returns one response, so no percentage is implied. */
.test-progress{display:flex;align-items:center;gap:11px;background:#e8effa;border:1px solid #b6c8eb;border-radius:7px;padding:13px 11px;margin-top:12px;color:#084298}
.test-progress[hidden],.results-running[hidden]{display:none}
.test-progress strong{display:block;font-size:12px}.test-progress span:not(.test-spinner){display:block;font-size:10px;line-height:1.5;margin-top:4px}
.test-spinner{width:23px;height:23px;flex-shrink:0;border:3px solid #b6c8eb;border-top-color:#0b5ed7;border-radius:50%;animation:test-spin .85s linear infinite}
.results-running{height:4px;background:#dbe5f5;overflow:hidden}.results-running>span{display:block;width:35%;height:100%;background:#0b5ed7;animation:test-sweep 1.5s ease-in-out infinite}
@keyframes test-spin{to{transform:rotate(360deg)}}
@keyframes test-sweep{from{transform:translateX(-100%)}to{transform:translateX(390%)}}
@media(prefers-reduced-motion:reduce){.test-spinner,.results-running>span{animation:none}.test-spinner{border-style:dashed}.results-running>span{width:100%;opacity:.6}}
label[for=sample-area]{display:block;margin:16px 0 7px;font-size:11px;color:var(--muted)}
#sample-area{width:100%;padding:10px 7px;font:inherit;font-size:11px;border:1px solid #cdd4df;border-radius:6px;background:white;color:var(--ink)}
#load-sample{width:100%;margin-top:8px;font-size:11px}
label[for=shapefile-zip]{display:block;margin:18px 0 8px;font-size:11px;color:var(--muted)}
#shapefile-zip{width:100%;font-size:11px}#import-shapefile{width:100%;margin-top:8px;font-size:11px}
.diagnostic-panel summary{cursor:pointer;font-size:12px;font-weight:650}.diagnostic-panel summary span{font-size:10px;background:#dbe5f5;border-radius:10px;padding:2px 7px;margin-left:6px}
#diagnostic-events{padding-left:18px;max-height:230px;overflow:auto;font-size:10px;line-height:1.6;overflow-wrap:anywhere;color:var(--muted)}#diagnostic-events li{margin:7px 0}

.public-links{display:flex;gap:16px;align-items:center;flex-wrap:wrap;justify-content:flex-end}@media(max-width:650px){.public-links{gap:9px}.public-links a{font-size:10px}}

/* Match HiLatitude navigation; source map symbology remains provider-owned. */
.topbar{background:#121c3d;border-color:#121c3d}.topbar .brand,.topbar .brand-subtitle,.topbar .brand-divider{color:#fff}.topbar .brandmark{background:#fff;color:#121c3d}.topbar .bibliography-link{color:#dce2f2}.topbar .bibliography-link:hover{color:#fff}
