:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#2a4039;background:#f0efe8;font-synthesis:none;color-scheme:light}*{box-sizing:border-box}html,body,#viewer{width:100%;height:100%;margin:0;overflow:hidden}button,input{font:inherit}button{color:inherit;cursor:pointer;border:0;background:none;display:inline-flex;align-items:center;justify-content:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,#scene:focus-visible{outline:2px solid #52745d;outline-offset:4px}button:hover{background:#e4e9df}button:disabled{opacity:.35;cursor:default}button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}#scene{position:absolute;inset:0;outline:none;touch-action:none;cursor:grab}#scene:active{cursor:grabbing}#scene canvas{display:block}#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.lot-label{position:absolute;top:0;left:0;font-size:11px;font-weight:600;line-height:20px;min-width:20px;text-align:center;transform:translate(-50%,-50%);color:#233d30;text-shadow:0 1px 2px #fff9;transition:opacity .2s;will-change:transform}.lot-label.selected{background:#2d4f3c;color:#fff;min-width:28px;border-radius:20px;padding:2px 7px;text-shadow:none;box-shadow:0 2px 10px #23442d30;z-index:2}.glass{background:#fffffff0;border:1px solid #fff;box-shadow:0 5px 25px #293b2b09,0 0 0 1px #31493608;backdrop-filter:blur(16px);border-radius:13px}.view-switch{position:absolute;top:28px;left:28px;display:flex;padding:4px;gap:4px}.view-switch button{padding:11px 21px;border-radius:9px;font-size:13px;font-weight:600;min-width:64px}.view-switch .active{background:#2f4a3d;color:white;box-shadow:0 2px 6px #213c2520}.top-actions{position:absolute;right:28px;top:28px;display:flex;gap:10px}.icon{width:46px;height:46px;border-radius:12px;font-size:28px}.labeled{height:46px;gap:9px;padding:0 16px;font-size:12px;font-weight:600}.labeled.active{background:#2f4a3d;color:#fff;border-color:#2f4a3d}#layers{position:absolute;right:28px;top:85px;width:228px;padding:10px 17px;z-index:5}#layers label{display:flex;align-items:center;justify-content:space-between;padding:13px 0;font-size:12px;gap:15px;cursor:pointer}#layers label+label{border-top:1px solid #2b47300c}#layers label>span{display:flex;align-items:center;gap:10px}.swatch{display:inline-block;width:14px;height:14px;border-radius:4px}.swatch.lots{background:#b4ca96;border:1px solid #657a57}.swatch.green{background:#527c54}.swatch.contour{background:repeating-linear-gradient(-20deg,transparent 0 3px,#6c7f66 3px 4px)}.swatch.number{font-size:8px;font-style:normal;border:1px solid #c5cec1;text-align:center}.swatch.trees{background:#466248;border-radius:50%}input[type=checkbox]{appearance:none;width:29px;height:17px;border-radius:20px;background:#d6dcd4;position:relative;cursor:pointer;margin:0;flex-shrink:0;transition:background .2s}input[type=checkbox]:before{content:'';width:11px;height:11px;border-radius:100%;background:white;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0002;transition:transform .2s}input:checked{background:#3e614c}input:checked:before{transform:translateX(12px)}.compass{position:absolute;right:30px;top:calc(50% - 150px);width:48px;height:66px;display:flex;flex-direction:column;border-radius:30px;gap:0}.compass span{font-size:9px;letter-spacing:.04em;padding-top:5px}.compass svg{width:33px;height:39px;fill:#3e5f49;stroke:none}.zoom{position:absolute;right:30px;top:calc(50% - 64px);width:48px;display:flex;flex-direction:column;padding:4px}.zoom button{width:38px;height:42px;border-radius:9px}.divider{height:1px;background:#d9dfd5;margin:1px 6px}#overview{position:absolute;left:28px;bottom:30px;width:130px;height:140px;padding:12px;opacity:.9}#overview img{width:100%;height:100%;object-fit:contain}.bottom-controls{position:absolute;left:50%;bottom:43px;transform:translateX(-50%);display:flex;gap:10px}#hint{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:.015em;white-space:nowrap;color:#6f7d6e;pointer-events:none}#hint span{padding:0 6px}#selection{position:absolute;bottom:32px;right:28px;display:flex;align-items:center;gap:20px;padding:7px 9px 7px 17px;font-size:12px;font-weight:600}#selection button{width:28px;height:28px;border-radius:8px;font-size:22px;font-weight:400}#loading{position:absolute;inset:0;display:flex;flex-direction:column;gap:20px;align-items:center;justify-content:center;background:#f0efe8;z-index:9;font-size:12px;color:#61725f;transition:opacity .5s}#loading.done{opacity:0;pointer-events:none}.loader{width:32px;height:32px;border:1px solid #c3cdbd;border-top-color:#3c6048;border-radius:100%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}[hidden]{display:none!important}.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}#map-dialog{width:min(900px,92vw);height:min(650px,84dvh);padding:0;border:1px solid white;border-radius:18px;box-shadow:0 25px 90px #1e37233d;overflow:hidden;background:#e8eddf}#map-dialog::backdrop{background:#263d2c55;backdrop-filter:blur(6px)}#close-map{position:absolute;top:15px;right:15px;z-index:2}#location-map{width:100%;height:100%;border:0}#fallback{width:100%;height:100%;object-fit:contain;padding:75px 85px 90px}body.fallback .view-switch,body.fallback #compass,body.fallback .zoom,body.fallback #rotate,body.fallback #layers-button{display:none}@media(max-width:600px){.view-switch{top:16px;left:16px}.view-switch button{padding:10px 15px;font-size:12px;min-width:50px}.top-actions{top:16px;right:16px;gap:7px}.top-actions .labeled span{display:none}.top-actions .labeled{width:43px;padding:0}.icon{width:43px;height:43px}#layers{top:70px;right:16px}.compass{right:17px;top:auto;bottom:246px}.zoom{right:17px;top:auto;bottom:94px}#overview{left:16px;bottom:25px;width:84px;height:100px;padding:8px}.bottom-controls{bottom:46px}#hint{font-size:9px;bottom:20px}#selection{bottom:auto;top:77px;left:16px;right:auto;font-size:11px;gap:10px;padding:4px 5px 4px 12px}.lot-label{font-size:10px}.labeled{height:43px}#fallback{padding:85px 25px 100px}}@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important}}
