:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e9f2fa;background:#07101b;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer}.app{height:100dvh;min-height:400px;display:flex;flex-direction:column}.topbar{height:73px;background:#081520;border-bottom:1px solid #1f3345;display:flex;align-items:center;padding:0 30px;gap:23px;z-index:20;flex-shrink:0}.logo{display:flex;align-items:center;gap:13px}.mark{width:34px;height:34px;border:3px solid #19a9d2;border-radius:10px;display:grid;place-items:center;transform:rotate(-16deg)}.mark-inner{width:16px;height:16px;border:3px solid #d9f9ff;border-radius:50%;display:block}.wordmark{font-weight:900;letter-spacing:.035em;line-height:1.1;font-size:18px;white-space:nowrap}.wordmark>span{color:#42c7eb}.wordmark small{font-weight:650;font-size:8px;display:block;letter-spacing:.24em;color:#7695a8;margin-top:5px}.top-divider{width:1px;height:34px;background:#284051}.workspace{color:#8ba8ba;font-size:10px;letter-spacing:.17em;font-weight:800;white-space:nowrap}.status-dot,.live-dot{display:inline-block;width:7px;height:7px;background:#28c7a4;border-radius:50%;margin-right:8px;box-shadow:0 0 8px #17a78a55}.version{font-size:10px;color:#6f8ea2;border:1px solid #244459;padding:5px 7px;border-radius:5px;margin-left:10px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:22px}.engine-label{font:600 10px/1 monospace;letter-spacing:.13em;color:#7195ac}.header-btn{border:1px solid #36556b;border-radius:5px;padding:10px 15px;background:#13293b;color:#d2effb;font-size:11px;font-weight:800;letter-spacing:.07em}.header-btn:hover{background:#1b3a4f}main{flex:1;position:relative;overflow:hidden;background:#101f2e;touch-action:none}#glmap,#labels{position:absolute;inset:0;width:100%;height:100%;display:block}#glmap{touch-action:none}#labels{pointer-events:none}.compass-lines{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(#a7d5ef06 1px,transparent 1px),linear-gradient(90deg,#a7d5ef06 1px,transparent 1px);background-size:120px 120px;mix-blend-mode:screen;opacity:.65}.floating-search{position:absolute;top:25px;left:50%;transform:translateX(-50%);width:min(430px,calc(100vw - 760px));min-width:280px;height:48px;border:1px solid #33566b;background:#0c1e2deF;box-shadow:0 10px 40px #0005;display:flex;align-items:center;gap:10px;padding:0 15px;border-radius:7px;z-index:10;backdrop-filter:blur(12px)}.search-icon{font-size:27px;color:#44bbdd;line-height:0}.floating-search input{background:transparent;border:0;outline:0;color:#f1faff;width:100%;font-size:12px}.floating-search input::placeholder{color:#809aaa}.search-hint{font-size:10px;color:#597b90;border:1px solid #2a4658;border-radius:3px;padding:3px 5px;white-space:nowrap}.suggestions{position:absolute;top:53px;left:0;right:0;background:#0a1a29;border:1px solid #345065;box-shadow:0 22px 40px #0008;border-radius:7px;max-height:270px;overflow:auto}.suggestions button{display:flex;justify-content:space-between;align-items:center;width:100%;background:transparent;color:#cfe4f1;border:0;text-align:left;padding:13px 16px;font-size:12px;border-bottom:1px solid #233c4c}.suggestions button:hover,.suggestions button:focus{background:#204153}.suggestions small{color:#6ea9c6;font-size:10px}.left-panel{position:absolute;left:22px;top:22px;bottom:65px;max-height:740px;width:283px;background:linear-gradient(180deg,#0c1e2bf5,#091724f4);border:1px solid #274457;box-shadow:0 20px 50px #06111a99;padding:24px 22px;overflow:auto;scrollbar-width:thin;scrollbar-color:#386076 transparent;border-radius:9px;backdrop-filter:blur(14px)}.panel-overline,.panel-section-title{font-size:9px;font-weight:850;letter-spacing:.17em;color:#58bddb}.left-panel h1{font-size:36px;line-height:1.04;letter-spacing:-.05em;margin:16px 0 11px;font-weight:760}.left-panel h1 em{color:#6dd8f4;font-style:normal}.left-panel>p{color:#829cae;font-size:11px;line-height:1.75;margin:0}.panel-rule{margin:23px 0;height:1px;background:#294356}.panel-section-title{color:#b9d8ea;margin-bottom:14px}.gap-top{margin-top:28px}.style-picker{display:flex;gap:7px}.style-option{width:33.333%;padding:6px;background:transparent;border:1px solid transparent;border-radius:6px;color:#89a0b0;font-size:10px;font-weight:700}.style-option.active{border-color:#2badd2;background:#123448;color:#effaff}.style-thumb{display:block;height:46px;border-radius:3px;margin-bottom:7px;background-size:18px 18px}.style-thumb.midnight{background-color:#1b3441;background-image:linear-gradient(35deg,transparent 44%,#4b7b88 45%,#4b7b88 50%,transparent 51%),linear-gradient(110deg,transparent 40%,#305365 41%,#305365 45%,transparent 46%)}.style-thumb.slate{background-color:#3a4e58;background-image:linear-gradient(42deg,transparent 47%,#9bb2bc 49%,#9bb2bc 51%,transparent 53%)}.style-thumb.daylight{background-color:#cbd9d6;background-image:linear-gradient(42deg,transparent 47%,#fff 49%,#fff 51%,transparent 53%)}.toggle-row{min-height:38px;display:flex;justify-content:space-between;align-items:center;color:#aebfca;font-size:11px;border-bottom:1px solid #213749;cursor:pointer}.toggle-row>span:first-child{display:flex;align-items:center;gap:9px}.layer-marker{display:inline-block;height:8px;width:8px;border-radius:2px}.layer-marker.land{background:#244e51}.layer-marker.border{background:#7fa5b5}.layer-marker.county{background:#628295}.layer-marker.road{background:#e9a66e}.layer-marker.city{background:#3fd3e9}.toggle-row input{opacity:0;position:absolute;width:1px;height:1px}.switch{height:16px;width:29px;border-radius:50px;background:#3a4a5a;position:relative;transition:background .1s}.switch:before{content:"";width:12px;height:12px;background:#8fa1b0;border-radius:50%;position:absolute;left:2px;top:2px;transition:transform .1s}.toggle-row input:checked+.switch{background:#146582}.toggle-row input:checked+.switch:before{background:#71e2f5;transform:translateX(13px)}.toggle-row input:focus-visible+.switch{outline:2px solid white}.source-card{display:flex;gap:13px;background:#12303f;padding:14px 12px;border-radius:5px;border-left:2px solid #3fafd1}.source-icon{font-size:21px;color:#6dcbe5}.source-card strong{font-size:11px;color:#d5e9f3}.source-card p{margin:5px 0 0;color:#829ead;font-size:10px;line-height:1.65}.right-controls{position:absolute;right:23px;top:22px;border:1px solid #315067;border-radius:8px;display:grid;overflow:hidden;background:#0c2030ed;box-shadow:0 15px 30px #0005}.right-controls button{width:42px;height:43px;border:0;background:transparent;color:#d8f0fa;font-size:26px;border-bottom:1px solid #2e4555}.right-controls button:hover{background:#1e445a}.right-controls button:last-child{border:0}.control-separator{height:6px;background:#152b39}.attribution{position:absolute;right:25px;bottom:69px;font:600 9px/1.6 monospace;color:#789cb1;text-align:right;text-shadow:0 1px 4px #07131f}.attribution span{color:#376881;margin:0 8px}.map-crosshair{width:13px;height:13px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:.36}.map-crosshair:before,.map-crosshair:after{content:"";position:absolute;background:#b5def2}.map-crosshair:before{height:1px;width:13px;top:6px}.map-crosshair:after{height:13px;width:1px;left:6px}.bottom-status{height:38px;position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:17px;padding:0 26px;background:#081722ef;border-top:1px solid #2c4455;color:#91acbd;font:600 10px/1 monospace;letter-spacing:.04em}.status-heading{color:#5fcecf}.status-separator{height:14px;width:1px;background:#294454}.status-right{margin-left:auto;color:#aec2cc}.toast{position:absolute;bottom:62px;left:50%;transform:translateX(-50%);padding:12px 19px;border:1px solid #386b85;background:#0e2838;color:#cceaf8;border-radius:7px;font-size:12px;box-shadow:0 12px 30px #0008;max-width:calc(100vw - 30px);z-index:99;text-align:center}button:focus-visible{outline:2px solid #5ad5ff;outline-offset:2px}@media(max-width:1150px){.floating-search{left:auto;right:83px;transform:none;width:350px;min-width:0}.engine-label{display:none}}@media(max-width:760px){.topbar{padding:0 14px;height:60px;gap:10px}.top-divider,.workspace,.engine-label{display:none}.wordmark{font-size:15px}.mark{width:29px;height:29px}.top-actions{gap:4px}.header-btn{font-size:10px;padding:9px}.left-panel{left:12px;top:auto;bottom:50px;width:260px;max-height:220px;padding:15px;transition:max-height .2s}.left-panel:hover,.left-panel:focus-within{max-height:70vh}.left-panel h1,.left-panel>p,.source-card{display:none}.left-panel .panel-rule{margin:13px 0}.style-thumb{height:25px}.gap-top{margin-top:15px}.floating-search{top:12px;left:12px;right:70px;width:auto;height:42px}.right-controls{right:12px;top:12px}.right-controls button{width:37px;height:37px}.right-controls #locate,.right-controls #reset-north,.right-controls .control-separator{display:none}.attribution{right:10px;bottom:42px;font-size:7px;width:calc(100% - 280px)}.attribution span{margin:0 3px}.bottom-status{gap:8px;padding:0 10px;font-size:8px}.bottom-status #features,.bottom-status .status-separator:nth-of-type(3){display:none}}@media(max-width:450px){.left-panel{width:205px;max-height:150px}.attribution{display:none}.bottom-status #coord{display:none}}

.header-btn.sdk-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:inherit}

/* BayouRender optional hosted imagery; disabled until licensed tiles exist. */
.basemap-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:10px 0}
.basemap-picker button{background:#112c3b;border:1px solid #3a5d6a;color:#d7eaf2;cursor:pointer;padding:9px 3px;border-radius:5px;font-size:11px}
.basemap-picker button.active{background:#225c75;border-color:#88b8cb;color:white}
.basemap-picker button[aria-disabled="true"]{opacity:.55}

/* v0.14 experimental terrain controls */
.terrain-reset { margin: 10px 0 2px; width:100%; padding:9px 12px; background:#173346; border:1px solid #45687a; border-radius:5px; color:#cce6f4; font-size:11px; }
.terrain-reset:disabled {opacity:.42;cursor:not-allowed}
.terrain-hint {font-size:10px;line-height:1.6;color:#7d9eaf;margin:6px 0 14px}

/* v0.20 professional cartography theme */
.style-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.style-option{width:auto;min-width:0;padding:5px 2px}
.style-thumb.storm{background-color:#142331;background-image:linear-gradient(42deg,transparent 45%,#d2a77d 46%,#d2a77d 50%,transparent 51%),linear-gradient(125deg,transparent 45%,#779ba6 46%,#779ba6 49%,transparent 50%)}
