/* Author: Codex app agent · 2026-09-11. Presentation only; model units are unchanged. */
:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#243d40;background:#f5f6f3;font-synthesis:none;--ink:#193e42;--accent:#19646a;--line:#d6dfdc;--muted:#566a6c}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}a{color:var(--accent);text-underline-offset:3px}button,a,input,select,summary{touch-action:manipulation}button{min-height:42px;padding:9px 12px;border:1px solid #b9c9c7;border-radius:7px;background:#fff;color:var(--ink);font-size:13px;font-weight:600;cursor:pointer}button:hover:not(:disabled){background:#edf4f1;border-color:#638c8c}button:disabled{color:#697775;background:#eef0ed;border-color:#dce1dd;cursor:default}button.primary{color:#fff;background:var(--accent);border-color:var(--accent)}button.primary:hover{background:#124f54}button[aria-pressed=true]{background:#dceee7;border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}:focus-visible{outline:3px solid #b36725;outline-offset:3px}
.app-header{height:64px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);background:#fff}.brand{font-size:20px;letter-spacing:-.7px;font-weight:800;text-decoration:none;color:var(--ink)}.brand span{font-size:13px;letter-spacing:0;font-weight:400;color:var(--muted);margin-left:18px}.app-header nav{display:flex;gap:22px;font-size:13px}.app-header nav a{padding:12px 0}
#config-panel{display:flex;flex-direction:column;min-height:0;background:#fff;border-right:1px solid var(--line);z-index:2}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 18px;border-bottom:1px solid var(--line)}h1{font-size:16px;margin:0;letter-spacing:-.3px}.panel-header button{font-size:12px;padding:8px}.config-body{overflow-y:auto;min-height:0;flex:1;overscroll-behavior:contain;scrollbar-gutter:stable}.settings-section{padding:20px 18px;border-bottom:1px solid var(--line)}h2{font-size:15px;display:flex;align-items:center;gap:9px;margin:0 0 16px}h2>span{font-size:11px;color:#617b79;font-weight:500}h2 small{font-size:11px;font-weight:400;margin-left:auto;color:var(--muted)}label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;min-width:0;margin:10px 0 6px}.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.grid label{margin:0}.grid input{margin-top:auto}.field-hint{font-size:11px;font-weight:400;color:var(--muted)}input,select{width:100%;min-width:0;min-height:42px;border:1px solid #b9c9c7;border-radius:6px;background:#fff;color:#233d40;padding:9px 10px;font-size:14px}input:disabled,select:disabled{background:#f0f2ef;color:#687471}input[type=file]{padding:8px;font-size:12px}input::file-selector-button{border:0;border-radius:3px;padding:6px;background:#e6eeea;color:var(--ink);cursor:pointer;margin-right:8px}.row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.presets{gap:6px}.presets button{flex:1;padding:8px}.presets #refresh-source{flex:1.7}.hint,details p{font-size:12px;line-height:1.55;color:var(--muted);margin:9px 0 12px}details{font-size:12px;line-height:1.5}summary{cursor:pointer;padding:10px 0;font-size:12px;font-weight:600;color:var(--ink)}details.settings-section{padding-top:10px;padding-bottom:10px}details.settings-section summary{font-size:13px}.tool-row{align-items:end;margin-bottom:12px}.tool-row button{margin-bottom:0}.panel-actions{padding:14px 18px 16px;background:#f6f8f5;border-top:1px solid var(--line);flex-shrink:0}.panel-actions>.primary{width:100%;font-size:14px}#status{font-size:12px;line-height:1.45;margin:10px 0;overflow-wrap:anywhere;max-height:96px;overflow:auto}#status::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;background:#9b792f;margin-right:7px}.panel-actions:has(#download-btn:enabled) #status::before{background:#25805c}.downloads{display:flex;gap:8px}.downloads button{flex:1;font-size:12px;padding:9px 6px}.downloads button:enabled{color:var(--accent);border-color:#78a39b;background:#fff}
.map-workspace,.model-workspace{position:relative;min-width:0;min-height:0;display:flex;flex-direction:column}.map-workspace{border-right:1px solid var(--line)}.view-title{height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 16px;background:#f6f8f5;font-size:12px;font-weight:600;border-bottom:1px solid var(--line)}.view-title span{font-size:11px;font-weight:400;color:var(--muted)}#map,#threejs{flex:1;min-height:0;min-width:0;position:relative}#threejs{background:#f0f0f0}#threejs canvas{display:block;width:100%!important;height:100%!important}.placement-feedback{background:#f6f8f5;padding:10px 14px;display:flex;gap:8px;align-items:center;border-top:1px solid var(--line);min-height:64px}.placement-feedback p{font-size:12px;line-height:1.4;margin:0;flex:1}.placement-feedback button:disabled{display:none}#local-note{font-size:12px;line-height:1.4;margin:0;padding:10px 14px;background:#e5efea}.drawing-source .map-workspace{display:none}

/* Author: Codex app agent · 2026-09-12. Full-size comparison layers and right settings drawer. */
body{height:100dvh;overflow:hidden}
.container{position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:58px minmax(0,1fr) auto;height:calc(100dvh - 64px);min-height:0;overflow:hidden}
.workspace-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;font-size:12px;background:#fff;border-bottom:1px solid var(--line)}
#config-panel{position:absolute;grid-row:2;inset:0 0 0 auto;width:min(380px,100%);border:0;border-left:1px solid var(--line);box-shadow:-8px 0 20px #193e4226;z-index:1001;isolation:isolate;overscroll-behavior:contain;transition:transform .18s ease,visibility .18s}
#config-panel.collapsed{transform:translateX(100%);visibility:hidden;pointer-events:none}
.panel-header{height:58px;min-height:58px;padding:8px 16px}
.views{--reveal:50%;grid-row:2;position:relative;min-height:0;overflow:hidden;isolation:isolate}
.map-workspace,.model-workspace{position:absolute;inset:0;overflow:hidden;border:0;isolation:isolate;display:block}
.model-workspace{z-index:0}.map-workspace{z-index:1;clip-path:inset(0 calc(100% - var(--reveal)) 0 0)}
#map,#threejs{position:absolute;inset:0;width:100%;height:100%}
.view-title{position:absolute;top:10px;height:28px;padding:0 10px;z-index:500;border:1px solid var(--line);border-radius:5px;pointer-events:none;box-shadow:0 1px 5px #193e4226}
.map-workspace .view-title{left:54px}.model-workspace .view-title{right:12px}
#view-splitter{position:absolute;top:0;bottom:0;left:var(--reveal);width:44px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;color:var(--ink);cursor:col-resize;touch-action:none;user-select:none;z-index:600}
#view-splitter::before{content:"";position:absolute;top:0;bottom:0;width:2px;background:#19646a;box-shadow:0 0 3px #fff}
#view-splitter span{position:relative;background:#fff;border:1px solid var(--accent);border-radius:20px;padding:10px 6px;box-shadow:0 2px 8px #193e4233}
#view-splitter:focus-visible{outline-offset:-3px}
.placement-feedback{position:absolute;bottom:0;left:0;right:0;z-index:700;min-height:0;padding:4px 12px;background:#f6f8f5e8}
.placement-feedback p{font-size:11px}.placement-feedback button{min-height:28px;padding:3px 8px}
#local-note{position:absolute;top:48px;left:12px;right:12px}
.panel-actions{grid-row:3;display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr) minmax(240px,320px);align-items:center;gap:12px;padding:8px 16px;z-index:1002;margin:0}
#status{margin:0;max-height:52px}.downloads{min-width:0}
.drawing-source #view-splitter{display:none}
@media(prefers-reduced-motion:reduce){#config-panel{transition:none}}
@media(max-width:760px){.app-header{height:52px;padding:0 12px}.brand span{display:none}.app-header nav{gap:12px;font-size:12px}.container{height:calc(100dvh - 52px)}.panel-actions{grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);gap:6px;padding:6px 10px}.panel-actions #status{grid-row:2;grid-column:1/-1;max-height:36px;font-size:11px}.downloads{gap:5px}.downloads button{padding:8px 4px;font-size:11px}.panel-actions>.primary{font-size:12px;padding:8px 4px}input,select{font-size:16px}.settings-section{padding:16px}.placement-feedback{padding:3px 10px}.placement-feedback p{font-size:10px}}
@media(max-height:540px){.app-header{height:44px}.container{height:calc(100dvh - 44px)}.panel-actions{padding-top:4px;padding-bottom:4px}.placement-feedback p{max-height:28px;overflow:auto}}
