:root{color-scheme:dark;--bg:#10171e;--panel:#16212b;--border:#2c3c48;--text:#edf0f2;--muted:#9dafbb;--gold:#dabe7c;font:16px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}[hidden]{display:none!important}
button,input,a,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{opacity:.5;cursor:not-allowed}
button:focus-visible,input:focus-visible,a:focus-visible,summary:focus-visible,#canvas-wrap:focus-visible{outline:2px solid #a5ddec;outline-offset:3px}
h1,h2,h3,p{margin:0}h1{font-size:18px;font-weight:550;line-height:1.2;letter-spacing:-.4px}h2{font-size:22px;line-height:1.25;font-weight:550;letter-spacing:-.5px}h3{font-size:15px;font-weight:600}
.topbar{min-height:82px;padding:13px 22px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #33414b;background:#111b24}
.brand{display:flex;align-items:center;gap:13px;min-width:210px}.brand-mark{display:grid;place-items:center;width:36px;height:43px;background:var(--gold);color:#18212a;font-family:Georgia,serif;font-size:29px;border-radius:4px}
.brand-name{font-size:10px;letter-spacing:2.5px;color:var(--gold);font-weight:650}.header-actions{display:flex;align-items:center;gap:7px}
.btn{border:1px solid #40515e;background:#1e2d38;padding:9px 12px;border-radius:6px;font-size:13px;font-weight:550;line-height:1.4;transition:background .15s;white-space:nowrap}
.btn:hover{background:#304553;border-color:#73858c}.btn.primary{color:#1d2a31;background:var(--gold);border-color:var(--gold)}.btn.primary:hover{background:#edcf8a}.btn.help{width:36px;padding:8px}
.header-actions .btn span{font-size:10px;margin-left:4px;color:#c3d1d9;background:#344854;padding:1px 5px;border-radius:4px;font-variant-numeric:tabular-nums}.full{width:100%}
.workspace{display:grid;grid-template-columns:280px minmax(0,1fr);height:calc(100dvh - var(--studio-header-height,82px));min-height:430px}
.sidebar{overflow-y:auto;border-right:1px solid #394952;background:linear-gradient(180deg,#182630,#14212b);scrollbar-width:thin;scrollbar-color:#435967 transparent;scrollbar-gutter:stable}
.intro-section{padding:21px 21px 18px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:650;color:var(--gold);margin-bottom:7px}.intro-section h2{font-size:20px;font-weight:500;overflow-wrap:anywhere}
.side-section{border-top:1px solid #34434e;padding:17px 20px}.object-section{padding-top:17px;padding-bottom:17px}.control-group{padding:0 20px}.control-group>summary{display:flex;align-items:center;gap:8px;min-height:55px;padding:14px 0;list-style:none;cursor:pointer;font-size:13px;font-weight:500;color:#dbe5eb}
.control-group>summary::-webkit-details-marker{display:none}.control-group>summary:after{content:'+';margin-left:auto;font-size:19px;line-height:1;color:#859dac;font-weight:400}.control-group[open]>summary:after{content:'−'}.control-group>summary .muted{font-size:10px;margin-left:auto}.control-group>summary:has(.muted):after{margin-left:4px}
.control-group>summary:hover{color:#ead1a0}.control-content{padding:0 0 18px}.control-content>.small{margin-bottom:14px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.section-heading h3{font-size:13px}.muted{font-size:12px;color:var(--muted)}
.layer{display:flex;position:relative;align-items:center;justify-content:space-between;min-height:39px;cursor:pointer;font-size:13px;gap:8px}.layer>span:first-child{display:flex;align-items:center;gap:9px}.layer input{position:absolute;right:0;width:35px;height:28px;opacity:0;cursor:pointer;z-index:1}
.switch-art{display:block;width:32px;height:18px;border-radius:12px;background:#41525e;position:relative;flex-shrink:0;transition:background .15s}.switch-art:after{content:'';position:absolute;left:3px;top:3px;width:12px;height:12px;background:#aab8c2;border-radius:50%;transition:transform .15s}
.layer input:checked+.switch-art{background:#bfa669}.layer input:checked+.switch-art:after{transform:translateX(14px);background:#15202a}.layer input:focus-visible+.switch-art{outline:2px solid #a5ddec;outline-offset:3px}
.swatch{width:8px;height:8px;border-radius:2px;display:inline-block}.swatch.parcel{border:1px solid #e3c26e}.swatch.building{background:#ece9df}.swatch.pond{background:#72a5b9}.swatch.tree{background:#7ea176}.swatch.proposal{background:#c5a461}
.mini-tag{font-size:9px;letter-spacing:.6px;color:#dbc38e;background:#363629;padding:3px 5px;border-radius:3px;margin-left:auto}.small{font-size:12px;line-height:1.65;color:var(--muted)}
.paired-controls{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.paired-controls label{font-size:13px;color:#d8e2e7}.paired-controls label span{float:right;color:var(--muted);font-size:11px}.paired-controls input{margin-top:6px;width:100%;min-height:40px;border:1px solid #435968;border-radius:5px;color:#fff;background:#101e29;padding:6px 10px;font-size:16px;font-variant-numeric:tabular-nums}
.range-label{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#dbe1e5}.range-label output{color:var(--gold);font-size:12px}input[type=range]{width:100%;height:22px;margin:6px 0 12px;accent-color:var(--gold);cursor:pointer}
.placement-controls{display:flex;flex-direction:column;gap:6px}.placement-controls .small{text-align:center;font-size:11px}.btn.placing{background:#425b67;border-color:#88b5c3}
.proposal-foot{display:flex;justify-content:space-between;align-items:center;padding-top:13px;margin-top:12px;border-top:1px dashed #42515a;font-size:11px;color:var(--muted)}.proposal-foot strong{font-weight:500;color:#e6dac0}
.text-btn{padding:4px 0;background:none;border:0;font-size:12px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.text-btn:hover{color:#ead1a0}
.files-section{padding-bottom:22px}.files-section .btn{font-size:12px}.files-section .text-btn{margin-top:8px}.export-actions{display:flex;flex-direction:column;align-items:flex-start;gap:1px}.files-section>#sample-reset{text-align:left;font-size:11px;color:#849caa;margin-top:17px}#save-project-mobile{display:none}
.viewport{position:relative;overflow:hidden;min-width:0;background:#b6c5cd;isolation:isolate;container-type:inline-size;container-name:map}
#canvas-wrap{width:100%;height:100%;outline-offset:-3px!important;touch-action:none}canvas{display:block}
.source-disclosure{position:absolute;left:20px;top:20px;z-index:4;max-width:calc(100% - 40px);color:#e2eaed}
.source-disclosure>summary{display:flex;align-items:center;gap:9px;list-style:none;cursor:pointer;width:max-content;max-width:100%;min-height:37px;padding:8px 12px;border:1px solid #647582;background:#182b37ed;border-radius:6px;font-size:11px;font-weight:500;box-shadow:0 3px 13px #1e3d4810}
.source-disclosure>summary::-webkit-details-marker{display:none}.source-disclosure>summary:hover{border-color:#d4bc88}.source-symbol{font-size:18px;color:#e3c78b;line-height:1}.source-chevron{color:#9cb4c1;font-size:15px;margin-left:5px}.source-disclosure[open] .source-chevron{transform:rotate(180deg)}
.source-content{width:300px;max-width:100%;border:1px solid #637785;border-radius:7px;background:#162b38f7;box-shadow:0 10px 35px #19323c40;padding:17px 18px;margin-top:8px}.source-content h3{font-size:13px;color:#efd49f;margin-bottom:9px}.source-content p{font-size:12px;line-height:1.7;color:#bdced9;margin-top:7px}.source-context-note{border-top:1px solid #4b607044;padding-top:10px;color:#9bb3c2!important}
.camera-controls{position:absolute;top:20px;right:20px;left:auto;display:flex;align-items:center;border:1px solid #647582;background:#182b37ed;border-radius:6px;box-shadow:0 3px 13px #1e3d4810;overflow:hidden;z-index:2}
.camera-controls button{border:0;border-right:1px solid #465a68;background:none;padding:9px 12px;min-height:36px;font-size:11px;white-space:nowrap;color:#dce7ec}.camera-controls button:last-child{border-right:0}.camera-controls button:hover{background:#405763}.camera-controls button.active,.camera-controls button[aria-pressed=true]{background:#d7bc81;color:#24343c}
.map-navigation{position:absolute;right:20px;top:82px;display:flex;flex-direction:column;align-items:stretch;gap:0;width:43px;border:1px solid #71828a;background:#172c38ef;border-radius:7px;box-shadow:0 5px 14px #24424e20;overflow:hidden;z-index:2}
.map-navigation button{border:0;border-bottom:1px solid #456071;min-width:41px;min-height:42px;background:transparent;color:#e2e9ec;font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center}.map-navigation button:last-child{border-bottom:0}.map-navigation button:hover{background:#405864}.map-navigation #pan-mode{font-size:10px;font-weight:600;min-height:40px}.map-navigation #pan-mode[aria-pressed=true]{background:#d6bc82;color:#23343e}
.map-navigation .north-control{flex-direction:column;gap:2px;min-height:57px;font-size:10px;color:#e8d09c}.north-control i{font-style:normal;font-size:25px;line-height:1;transform-origin:50% 55%;display:block}
.selected-map-label{position:absolute;z-index:2;transform:translate(-50%,-100%);pointer-events:none;max-width:200px;padding:7px 10px;border-radius:5px;border:1px solid #c5ad77;background:#172d38f2;box-shadow:0 3px 16px #1d344333;display:flex;flex-direction:column;align-items:center;gap:2px}
.selected-map-label span{font-size:8px;letter-spacing:1.2px;text-transform:uppercase;color:#d2b679}.selected-map-label strong{font-size:11px;font-weight:500;color:#f1e9d7;max-width:180px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.selected-map-label:after{content:'';position:absolute;bottom:-6px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #c5ad77}
.selection-panel{position:absolute;left:20px;bottom:54px;width:min(326px,calc(100% - 90px));border:1px solid #6f7d79;background:#172c37f5;border-radius:9px;padding:17px 18px;box-shadow:0 8px 26px #17344533;pointer-events:auto;z-index:3;max-height:calc(100% - 136px);overflow:auto;scrollbar-width:thin}
.selection-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:7px}.selection-heading>div{min-width:0}.selection-panel .eyebrow{font-size:9px;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:5px}.selection-panel h3{font-size:17px;font-weight:500;letter-spacing:-.3px;line-height:1.3;overflow-wrap:anywhere}
.selection-heading>button{display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:4px;background:transparent;color:#a7bdc8;font-size:23px;line-height:1;flex-shrink:0;margin:-5px -6px 0 0}.selection-heading>button:hover{background:#354b56;color:#e7d09e}
.selection-panel>p{font-size:11px;color:#a9c0cc;line-height:1.6}.selection-actions{display:flex;gap:7px;margin-top:13px}.selection-actions .btn{padding:7px 13px;font-size:11px;min-height:34px}
.selection-source-details{border-top:1px solid #47606c55;margin-top:13px;padding-top:10px}.selection-source-details>summary{font-size:10px;color:#9fb6c3;cursor:pointer;width:max-content;max-width:100%;padding:2px 0}.selection-source-details>summary:hover{color:#e4c891}.selection-source-details p,.selection-source-details dl{font-size:11px;line-height:1.7;color:#b0c4d0;margin-top:10px;overflow-wrap:anywhere}
.selection-source-details dl:empty{display:none}.selection-source-details dt{font-size:9px;letter-spacing:.4px;text-transform:uppercase;color:#dbc18a;margin-top:10px}.selection-source-details dd{margin:3px 0 0}.selection-source-details a{font-size:11px;color:#ead09a;display:inline-block;margin-top:7px;overflow-wrap:anywhere}
.view-bottom{position:absolute;bottom:0;left:0;right:0;min-height:35px;padding:9px 19px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#19333dd9;color:#bdcdd5;font-size:10px;border-top:1px solid #738b9540;pointer-events:none;z-index:2}.interaction-hint{color:#c3d4dd}
.loading,.fatal{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;padding:40px;background:#172633;z-index:6;color:#dce7ee;text-align:center}.fatal p{max-width:420px;color:#c2ced7;font-size:14px}
.toast{position:fixed;z-index:20;left:50%;bottom:23px;transform:translateX(-50%);max-width:min(90vw,560px);border:1px solid #728789;border-radius:8px;padding:13px 19px;font-size:13px;box-shadow:0 8px 40px #0004;background:#1b313e;color:#f3f5f7}.toast.error{border-color:#b17c62;background:#432c28}
dialog{border:1px solid #576a78;border-radius:12px;background:#172733;color:#e9eef1;padding:27px;max-width:650px;width:calc(100% - 30px);box-shadow:0 24px 90px #0007}dialog::backdrop{background:#06101ac4;backdrop-filter:blur(5px)}
.dialog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:19px}.dialog-header h2{font-size:23px}dialog p,dialog li{font-size:14px;line-height:1.65;color:#c7d0d7}dialog ol{padding-left:23px}dialog li{padding-left:5px;margin-bottom:13px}dialog strong{color:#f0eadc;font-weight:600}dialog code{font-size:12px;background:#283a47;padding:1px 4px;border-radius:3px}.dialog-note{background:#203945;padding:15px 17px;margin:17px 0;border-radius:6px}.dialog-note p{margin-top:5px;font-size:13px}.dialog-links{margin-top:21px;display:flex;flex-wrap:wrap;gap:10px 23px}.dialog-links a{font-size:14px;color:#e3c68a}
body.placing-scene #canvas-wrap{cursor:crosshair}body.panning-scene #canvas-wrap{cursor:grab}body.panning-scene #canvas-wrap:active{cursor:grabbing}body.placing-scene.panning-scene #canvas-wrap{cursor:crosshair}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.viewport .markup-tool-hud{top:78px;left:20px;max-width:calc(100% - 96px)}
@container map (max-width:700px){
 .source-disclosure{top:16px;left:16px}.camera-controls{top:66px;left:16px;right:auto}.camera-controls button{padding:9px 11px;min-height:37px}.map-navigation{top:123px;right:16px}.selection-panel{left:16px;bottom:50px;width:min(302px,calc(100% - 86px));padding:14px 15px}.view-bottom{padding-left:16px;padding-right:16px}.view-bottom #scale-label{display:none}.viewport .markup-tool-hud{top:118px;left:16px;max-width:calc(100% - 87px)}
}
@container map (max-height:430px){.map-navigation{top:70px}.selection-panel{max-height:calc(100% - 115px)}}
@media(min-width:1600px){.workspace{grid-template-columns:300px minmax(0,1fr)}.intro-section,.side-section{padding-left:23px;padding-right:23px}}
@media(min-width:721px) and (max-width:1000px){.workspace{grid-template-columns:260px minmax(0,1fr)}.intro-section,.side-section{padding-left:17px;padding-right:17px}}
@media(max-width:720px){
 .workspace{height:auto;min-height:0;display:flex;flex-direction:column}.viewport{height:72dvh;min-height:460px;order:0}.sidebar{order:1;overflow:visible;display:block;border-right:0}.intro-section{padding:22px 20px 19px}.intro-section h2{font-size:22px}.side-section{padding-left:20px;padding-right:20px}.control-group>summary{min-height:59px;font-size:14px}.control-content{padding-bottom:20px}.layer{min-height:44px;font-size:14px}.paired-controls input{min-height:44px}.btn{min-height:42px}.files-section{padding-bottom:30px}.files-section .btn{font-size:13px}.files-section .text-btn{min-height:33px;font-size:12px}
 .selection-panel{width:min(310px,calc(100% - 81px));bottom:49px;padding:12px 14px}.selection-panel h3{font-size:16px}.selection-panel .eyebrow{font-size:9px}.selection-panel>p{font-size:10px}.selection-actions{margin-top:9px}.selection-actions .btn{min-height:38px;font-size:11px}.selection-source-details{margin-top:9px;padding-top:7px}.selection-source-details>summary{font-size:10px}
 .camera-controls button{min-height:42px;font-size:11px}.source-disclosure>summary{min-height:39px;font-size:11px}.map-navigation{width:45px}.map-navigation button{min-height:44px}.map-navigation #pan-mode{min-height:42px}.source-content{width:290px}
 .view-bottom{font-size:10px}.view-bottom #scale-label{display:none}dialog{padding:21px}.dialog-header h2{font-size:21px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
