:root{font-family:Arial,Helvetica,sans-serif;color:#18343c;background:#eef1f0;font-size:16px}*{box-sizing:border-box}body{margin:0}header{min-height:94px;padding:20px 28px;display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;border-bottom:1px solid #d7dfdc}.brand{font-size:.75rem;letter-spacing:.18em;font-weight:700}h1{font-size:1.5rem;margin:7px 0 0;font-weight:500}h1 span{font-size:.85rem;background:#e5edeb;padding:5px 8px;margin-left:9px}.meta{font-size:.875rem;color:#536970}.meta span{margin:0 8px}main{display:grid;grid-template-columns:minmax(0,1fr) 300px;height:calc(100dvh - 94px);min-height:520px}#viewer{position:relative;min-width:0;overflow:hidden;background:#e6eceb}canvas{display:block;touch-action:none;width:100%;height:100%}.viewbar{position:absolute;z-index:2;top:18px;left:20px;display:flex;gap:5px;flex-wrap:wrap;max-width:calc(100% - 40px)}button{font:inherit;font-size:.875rem;background:#ffffffeb;color:#24454c;border:1px solid #cbd7d4;padding:10px 13px;border-radius:5px;cursor:pointer}button.active{background:#24454c;color:white;border-color:#24454c}button:focus-visible,input:focus-visible{outline:3px solid #c66b35;outline-offset:3px}.hint,.viewlabel{position:absolute;pointer-events:none;background:#ffffffd9;padding:9px 12px;border-radius:4px;font-size:.75rem;color:#3e5960}.hint{bottom:18px;left:20px;max-width:calc(100% - 40px)}.viewlabel{right:18px;top:74px}.vertex{position:absolute;font-size:14px;font-weight:700;color:#123d43;text-shadow:0 0 3px #fff,0 0 5px #fff;pointer-events:none}aside{background:#fff;padding:24px;overflow:auto}h2{font-size:1.05rem;font-weight:600;margin:0 0 24px}fieldset{border:0;padding:20px 0;margin:0;border-top:1px solid #e0e6e4}legend{font-size:.875rem;font-weight:600;padding:0 0 12px}fieldset label{display:flex;align-items:center;gap:9px;min-height:39px;font-size:.875rem}input[type=checkbox]{width:17px;height:17px;accent-color:#24454c}.floor{margin-bottom:27px}.floor label{display:flex;justify-content:space-between;font-size:.875rem}.floor strong{font-weight:600}input[type=range]{width:100%;margin-top:17px;accent-color:#24454c}.key{display:grid;gap:11px;font-size:.75rem;color:#546d72;border-top:1px solid #e0e6e4;padding-top:20px}.key span{display:flex;align-items:center;gap:9px}.key i{height:10px;width:18px;display:inline-block}details{margin-top:25px;font-size:.875rem;line-height:1.5}summary{cursor:pointer;font-weight:600}.note{font-size:.75rem;line-height:1.5;color:#63777a;margin-top:23px}#loading{position:absolute;inset:0;display:grid;place-items:center;z-index:3;background:#e6eceb;font-size:1rem;padding:30px;text-align:center}@media(max-width:800px){header{padding:16px;min-height:86px}.meta{display:none}main{height:auto;display:flex;flex-direction:column;min-height:0}#viewer{height:65dvh;min-height:380px}aside{padding:20px}fieldset{display:grid;grid-template-columns:1fr 1fr}h2{margin-bottom:16px}.key{grid-template-columns:1fr 1fr}.hint{font-size:.75rem}.viewbar{left:12px;top:12px;gap:4px}button{padding:10px;font-size:.8rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

[hidden]{display:none!important}.scenarios{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.scenarios button{flex:1;min-height:44px}.scenarios p{width:100%;margin:2px 0 0;font-size:.8rem;color:#546d72}.model-status{position:absolute;bottom:62px;left:20px;background:#24454cea;color:white;padding:8px 12px;border-radius:4px;font-size:.8rem;pointer-events:none;max-width:calc(100% - 40px)}input:disabled{opacity:.4}label:has(input:disabled){color:#929a9b}.scenarios button:focus-visible{outline:3px solid #c66b35}

.param-panel{border-top:1px solid #d7dfdc;padding:16px 0;margin-bottom:18px}.param-panel summary{font-size:.95rem}.param-panel details{margin:12px 0;padding:10px 0;border-top:1px solid #edf0ef}.param-control{margin:17px 0}.param-control label{display:flex;justify-content:space-between;gap:10px;font-size:.8rem}.param-control output{white-space:nowrap;font-weight:600}.param-control input{margin-top:9px;min-height:25px}.tower-select{display:flex;gap:12px;align-items:center;margin-top:16px;font-size:.85rem}.tower-select select{font:inherit;max-width:180px;padding:8px;border:1px solid #bccbc7;border-radius:5px}.small-help,#param-identity{font-size:.75rem;line-height:1.4;color:#63777a}.param-actions{display:flex;gap:6px;flex-wrap:wrap}.param-actions button{min-height:44px;font-size:.75rem}.param-panel[aria-busy=true] #param-status{color:#587166}#param-status{font-size:.8rem;line-height:1.5;padding:10px;background:#edf4f0;border-radius:5px}#param-status.error{background:#fff0eb;color:#973b25}.diagnostic{padding:26px 28px 45px;background:#f7f9f8;border-top:1px solid #d7dfdc}.diagnostic>details{margin:0}.diagnostic>details>summary{font-size:1.25rem}.diagnostic p{font-size:.85rem;line-height:1.6;color:#526a70}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:22px 0}.metric{padding:16px;border:1px solid #dbe5e1;background:white;border-radius:7px}.metric span{display:block;min-height:36px;font-size:.75rem;color:#536970}.metric strong{font-size:1.25rem;font-weight:500}.diagnostic-warnings{border-left:3px solid #b68c46;padding:1px 14px;background:#f5f0e4}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;margin-top:22px;font-size:.85rem;text-align:left}th,td{padding:11px;border-bottom:1px solid #dce5e1}th{background:#e9f0ed}.plan-preview{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.plan-preview>div{background:#fff;border:1px solid #dde5e2;border-radius:7px;padding:16px}.plan-preview h3{font-size:.9rem;font-weight:500}.plan-preview svg{width:100%;height:300px}#unit-conflicts{font-size:.85rem;line-height:1.6}@media(max-width:900px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.diagnostic{padding:20px}.plan-preview svg{height:240px}}@media(max-width:520px){.plan-preview{grid-template-columns:1fr}.metric strong{font-size:1.1rem}.metric{padding:12px}}

.param-label{display:flex;align-items:center;gap:7px}.param-label label{flex:1;font-size:.875rem}.param-label output{font-size:.85rem}.info-button{border-radius:50%;width:25px;height:25px;padding:0;flex-shrink:0;font-weight:700;font-family:Georgia,serif;background:#eaf1f0;color:#284e57}.param-help{font-size:.8rem;color:#34545c;line-height:1.5;background:#edf3f5;padding:10px;border-left:3px solid #598694}.vertex-heading{font-size:.9rem;color:#ad496b;margin:18px 0 0}.toggle{display:flex;gap:8px;font-size:.875rem;align-items:center}.tower-guide-label{color:#9f345e;background:#ffffffe0;padding:2px 4px;border-radius:3px;font-size:12px}.plan-select{display:flex;gap:12px;align-items:center;margin-top:20px}.plan-select select{font:inherit;padding:8px;border:1px solid #cbd7d4}aside{padding:20px}main{grid-template-columns:minmax(0,1fr) 345px}.param-control output{min-width:55px;text-align:right}.param-panel details{margin-top:8px}.param-panel h3+.param-control{margin-top:10px}

.unit-inspector{position:absolute;left:18px;bottom:108px;z-index:5;background:#fffef8f5;box-shadow:0 4px 24px #163e4433;border-left:4px solid #207e77;border-radius:7px;padding:15px 40px 15px 17px;max-width:310px;font-size:14px;line-height:1.5}.unit-inspector button{position:absolute;right:5px;top:5px;padding:5px 10px;font-size:20px}.unit-inspector strong{font-size:17px;display:block}.unit-inspector small{display:block;color:#64716c;margin-top:5px}.core-preview{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0}.core-card{background:white;border:1px solid #d7dfdd;padding:18px;border-radius:8px}.core-card svg{width:100%;height:360px}.core-card h3{font-size:16px}.core-card ul{font-size:14px;line-height:1.6;padding-left:20px}.core-card .rear-result{border-left:3px solid #c77824;padding-left:10px}@media(max-width:650px){.core-preview{grid-template-columns:1fr}.unit-inspector{bottom:105px;max-width:calc(100% - 36px)}}

.unit-dimension{position:absolute;z-index:4;pointer-events:none;transform:translate(-50%,-50%);font-size:11px;line-height:18px;white-space:nowrap;padding:0 4px;border-radius:3px;color:#174f58;background:#fffffff0;box-shadow:0 0 2px #52777a55;font-variant-numeric:tabular-nums}.unit-inspector{max-height:calc(100% - 185px);overflow:auto}

.overall-efficiency{margin:24px 0 30px;padding:24px;background:white;border:1px solid #b9d0c9;border-top:4px solid #207e77;border-radius:8px}.overall-efficiency h3{margin:0 0 22px;font-size:1.25rem}.overall-summary{display:grid;grid-template-columns:1fr 1fr;gap:20px}.overall-summary strong{display:block;font-size:1.8rem;color:#1d6663;font-weight:600}.overall-summary span{display:block;font-size:.82rem;line-height:1.5;max-width:230px;margin-top:6px;color:#526a70}.efficiency-bar{height:14px;display:flex;overflow:hidden;border-radius:4px;margin-top:22px}.efficiency-bar span{flex-basis:0}.eff-residential{background:#25867d}.eff-garages{background:#9479ac}.eff-commerce{background:#bd8a56}.eff-other{background:#b8c6c4}.eff-key{display:inline-block;width:11px;height:11px;border-radius:2px;margin-right:8px}.overall-efficiency table{margin-top:12px}.overall-efficiency th:not(:first-child),.overall-efficiency td:not(:first-child){white-space:nowrap;text-align:right}.eff-total th{background:#edf4f1}.overall-efficiency details{margin-top:12px}.overall-efficiency details p{font-size:.8rem}@media(max-width:650px){.overall-efficiency{padding:16px}.overall-summary{grid-template-columns:1fr;gap:15px}.overall-summary>div{padding-bottom:12px;border-bottom:1px solid #e1e9e6}.overall-summary span{max-width:none}.overall-summary strong{font-size:1.65rem}}

.tower-schedule{background:white;border:1px solid #cfddd8;border-radius:7px;padding:20px;margin:22px 0}.tower-schedule h3{margin:0;color:#1d6663;font-size:1.2rem}.tower-schedule h3 span{display:block;font-weight:400;font-size:.85rem;margin-top:8px;color:#536970}.tower-schedule h4{margin:24px 0 0;font-size:.95rem}.tower-schedule table{min-width:920px}.tower-schedule td:first-child{min-width:260px}.tower-schedule td:not(:first-child){white-space:nowrap}.unit-series{display:block;max-width:360px;white-space:normal;color:#63777a;font-size:.75rem;line-height:1.6;margin-top:5px}.unit-review{display:block;color:#9e4b33;font-size:.75rem}.tower-schedule tfoot{background:#edf4f1}.schedule-total{padding-top:12px;border-top:2px solid #cfddd8}@media(max-width:650px){.tower-schedule{padding:12px}}

.pilotis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.pilotis-card{padding:20px;border:1px solid #d0dcdd;border-radius:10px;background:white}.pilotis-card svg{width:100%;height:330px}.pilotis-alert{color:#a13228}.pilotis-ok{color:#096a7d}@media(max-width:720px){.pilotis-grid{grid-template-columns:1fr}}

.parking-estimate{background:#eef4f1;border:1px solid #cfddd7;border-radius:8px;padding:12px;margin:14px 0;color:#294a49}.parking-estimate h4{margin:0 0 6px;font-size:14px}.parking-number{font-size:25px}.parking-estimate p{font-size:12px;line-height:1.5;margin:7px 0}.parking-total{font-size:12px;line-height:1.6;border-top:1px solid #cfddd7;border-bottom:1px solid #cfddd7;padding:9px 0;margin:9px 0}.parking-estimate summary{font-size:12px}

#scenario-list{display:flex;flex-wrap:wrap;gap:8px;width:100%}.scenario-row{display:flex;flex:1 0 135px;border:1px solid #cbd8d3;border-radius:6px;overflow:hidden}.scenario-row button{border:0;border-radius:0;margin:0}.scenario-row .scenario-delete{flex:0 0 40px;color:#944f46;font-size:21px;border-left:1px solid #cbd8d3}.scenario-actions{display:flex;flex-wrap:wrap;gap:6px;width:100%}.scenario-actions button{font-size:12px;min-height:44px}#scenario-message{font-size:12px;line-height:1.5}#delete-scenario-dialog{max-width:420px;width:calc(100% - 48px);border:1px solid #c6d4cd;border-radius:12px;padding:24px;color:#294846}#delete-scenario-dialog::backdrop{background:#15333388}#delete-scenario-dialog p{font-size:14px;line-height:1.6}#confirm-scenario-delete{background:#a13e33;color:white}

.efficiency-comparison{display:grid;grid-template-columns:1fr 1fr;gap:16px}.efficiency-comparison>div{padding:18px;background:#f1f6f5;border:1px solid #cbded8;border-radius:6px}.efficiency-comparison>div:last-child{background:#e4f1ed;border-color:#72aaa0}.efficiency-comparison h4{font-size:1rem;margin:0 0 12px;color:#234b4d}.efficiency-comparison strong{display:block;font-size:2rem;font-weight:600;color:#1d6663}.efficiency-comparison span,.efficiency-comparison small{display:block;font-size:.875rem;line-height:1.5;margin-top:8px;color:#526a70}.efficiency-comparison-note{margin:14px 0 24px}@media(max-width:500px){.efficiency-comparison{grid-template-columns:1fr}}

.unit-diagnostic{margin:12px 0;padding:10px;background:#edf5f2;border-radius:4px}.unit-diagnostic.has-alerts{background:#fff0ec;border-left:3px solid #bd5851}.unit-diagnostic ul{padding-left:18px;margin:8px 0}.unit-diagnostic li{margin:0 0 10px}.unit-diagnostic li span{display:block;margin-top:4px;color:#614640}.unit-diagnostic p{margin:6px 0}.unit-diagnostic>small{font-size:12px}


#updateScenario,#updateVariation{background:#236c66;color:white;border-color:#236c66}#updateScenario:disabled,#updateVariation:disabled{opacity:.45;cursor:not-allowed}.scenario-actions button{font-size:14px}

/* FASA: identity from the office portal, monochrome controls and technical model colours. */
:root{color:#292929;background:#f4f4f2;--studio-ink:#292929;--studio-line:#dededb}
.studio-header{height:98px;min-height:98px;padding:18px 30px;border-bottom:1px solid var(--studio-line)}
.studio-identity{display:flex;align-items:center;gap:28px;min-width:0}.studio-identity>img{display:block;width:154px;height:56px;object-fit:contain;flex:none}.project-identity{border-left:1px solid var(--studio-line);padding-left:28px}.project-identity>span{display:block;color:#73736e;font-size:11px;letter-spacing:.16em}.project-identity h1{font-size:22px;font-weight:400;letter-spacing:.035em;margin:5px 0 0}.studio-header .meta{color:#70706c;font-size:13px}
main{height:calc(100dvh - 98px)}#viewer,#loading{background:#e8e8e5}aside{border-left:1px solid var(--studio-line)}h2{font-weight:500;letter-spacing:-.02em}button{color:#333;border-color:#d6d6d2;border-radius:4px}button:hover{background:#f0f0ed}button.active,#updateScenario,#updateVariation{background:var(--studio-ink);color:white;border-color:var(--studio-ink)}input[type=range],input[type=checkbox]{accent-color:var(--studio-ink)}button:focus-visible,input:focus-visible,select:focus-visible{outline-color:#7e8d99}.model-status{background:#292929e8}.hint,.viewlabel{color:#55554f}.scenarios p,.meta,.small-help,#param-identity,.note,.key{color:#696963}.param-panel,.scenario-row{border-color:#dcdcd7}.param-panel details{border-color:#ebebe7}.param-control label{font-size:.875rem}.scenario-actions{display:grid;grid-template-columns:1fr 1fr}.scenario-actions button{min-height:46px;font-size:13px}#scenario-message{font-size:13px}#param-status{background:#f0f0ec;color:#555}.diagnostic{background:#f7f7f5;border-color:var(--studio-line)}.diagnostic p{color:#62625e}.metric,.plan-preview>div,.core-card{border-color:#deded8;border-radius:5px}.metric span{color:#66665f}.metric strong{color:#30302d}th{background:#eeeee9}.overall-efficiency{border-color:#d4d4cf;border-top-color:#333;border-radius:5px}.overall-summary strong,.efficiency-comparison strong{color:#292929}.efficiency-comparison>div{background:#f5f5f1;border-color:#deded8}.efficiency-comparison>div:last-child{background:#eeeee7;border-color:#aaa99f}.efficiency-comparison h4{color:#333}.unit-inspector{border-left-color:#333}.tower-schedule h3{color:#333}.brand-footer{color:#777}
@media(max-width:800px){.studio-header{height:86px;min-height:86px;padding:14px 20px}.studio-identity{gap:20px}.studio-identity>img{width:126px;height:48px}.project-identity{padding-left:20px}.project-identity h1{font-size:20px}main{height:auto}.scenario-actions button{font-size:14px}}
@media(max-width:420px){.studio-identity{gap:14px}.studio-identity>img{width:110px;height:42px}.project-identity{padding-left:14px}.project-identity>span{font-size:9px;letter-spacing:.1em}}

.revision-control{display:flex;align-items:end;gap:10px;width:100%;padding-bottom:8px}.revision-control label{display:flex;flex-direction:column;gap:7px;flex:1;font-size:13px;color:#686861}.revision-control select{min-height:42px;border:1px solid #d6d6d2;background:white;font:inherit;color:#292929;border-radius:4px;padding:8px}.revision-control button{flex:none;min-height:42px;font-size:13px}#revision-help{font-size:12px;line-height:1.5;margin-bottom:14px}

.unit-count-summary{margin:16px 0;padding:16px;background:#f4f5f2;border:1px solid #cdd5ce;border-radius:6px}.unit-count-summary p{margin:7px 0}.small-help.error{color:#aa302a;font-weight:600}

.param-feedback{font-size:12px;line-height:1.45;color:#426451;margin:6px 0 12px}.param-control:has(.param-rejected) .param-feedback{color:#a92f2f}input[type=range]{touch-action:pan-y}input[type=range][style*="--feasible-track"]{background:var(--feasible-track);border-radius:6px}input[type=range].param-rejected{accent-color:#c13232;outline:2px solid #c13232;outline-offset:3px}input[type=range].param-rejected::-webkit-slider-thumb{background:#c13232}input[type=range].param-rejected::-moz-range-thumb{background:#c13232}
input[type=range][style*="--feasible-track"]{appearance:none;-webkit-appearance:none;height:18px;background:transparent}input[type=range][style*="--feasible-track"]::-webkit-slider-runnable-track{height:6px;background:var(--feasible-track);border-radius:4px}input[type=range][style*="--feasible-track"]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-5px;border-radius:50%;background:#292929;border:2px solid white;box-shadow:0 0 0 1px #666}input[type=range][style*="--feasible-track"]::-moz-range-track{height:6px;background:var(--feasible-track);border-radius:4px}input[type=range][style*="--feasible-track"]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#292929;border:2px solid white}input[type=range][style*="--feasible-track"].param-rejected::-webkit-slider-thumb{background:#c13232}input[type=range][style*="--feasible-track"].param-rejected::-moz-range-thumb{background:#c13232}

#parkingFloor{width:100%;padding:10px;margin:8px 0;font:inherit}.parking-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:20px}.parking-plan-grid article{background:white;border:1px solid #ddd;padding:16px}.parking-plan-grid svg{width:100%;min-height:350px}.parking-warning{color:#a65320!important}.parking-key{padding:12px;background:#fff4d6}@media(max-width:500px){.parking-plan-grid{grid-template-columns:1fr}.parking-plan-grid article{padding:8px}}

.parking-plan-grid text{font-family:Arial,sans-serif;font-weight:600}.parking-plan-grid path{vector-effect:non-scaling-stroke;stroke-width:1px}.parking-plan-grid svg{max-height:650px}#parking-live-count{font-weight:600}

.parking-plan-grid article{min-width:0}.parking-svg-wrap{overflow:auto}.parking-plan-grid article.parking-expanded{grid-column:1/-1}.parking-plan-grid article.parking-expanded svg{min-width:1000px;max-height:none}.parking-plan-grid button{margin:6px 0}

.parking-reference{padding:1.3rem;border:1px solid #cbd3d8;border-left:4px solid #356c80;margin:1.5rem 0;background:#fff}.parking-reference h3{margin-top:0}.parking-reference p{line-height:1.55}.parking-basis{font-weight:600}

/* Exploration extends the FASA working surface without replacing detailed tools. */
#cloud-status{font-size:14px;padding:9px 11px;border-left:3px solid #3f7568;background:#eef4f1}#cloud-status[data-state="offline"],#cloud-status[data-state="pending"]{border-color:#b87929;background:#fff6e8}
.explore-panel{border-top:1px solid #a8b8b4;margin-top:16px;padding-top:12px}.explore-panel>label,.finance-grid label{display:block;font-size:14px;margin:12px 0}.explore-panel select{width:100%;margin-top:6px}.explore-panel input[type=range]{width:100%}.explore-panel strong{float:right}.explore-panel summary{font-weight:700}.exploration-results{padding:28px clamp(18px,3vw,48px);background:#f4f5f2;border-top:1px solid #bac5c0}.exploration-results>p{max-width:1000px;font-size:14px;line-height:1.6}.explore-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}.explore-card{padding:20px;background:white;border:1px solid #bac5c0;border-radius:6px}.explore-card>strong{font-size:30px;color:#244e4c}.explore-card>strong small{display:block;font-size:13px;font-weight:400}.explore-card h3{font-size:17px}.explore-card dl{display:grid;grid-template-columns:1fr 1.2fr;gap:9px;font-size:14px}.explore-card dd{margin:0;text-align:right}.explore-card button{margin:5px 6px 0 0;min-height:40px}.explore-card button[aria-pressed=true]{background:#214944;color:white}.finance-controls{margin-top:24px}.finance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.finance-grid input{display:block;width:100%;box-sizing:border-box;padding:9px;margin-top:6px}.render-select{font-size:13px;display:flex;align-items:center;gap:5px;background:#ffffffed;padding:4px 8px;border-radius:4px}.render-select select{max-width:180px}.explore-financial{font-size:14px;color:#335f57}#alternative-shape-controls{margin:12px 0}#alternative-shape-controls input{width:100%}
/* Implantation uses an orthogonal SVG plan in model metres, independent of 3D perspective. */
#implantation-view{position:absolute;inset:0;z-index:1;background:#f7fafb}#implantation-svg{width:100%;height:100%;touch-action:none;user-select:none}#implantation-svg path{vector-effect:non-scaling-stroke;stroke-linejoin:round}#implantation-svg text{text-anchor:middle;dominant-baseline:middle;font-size:2.3px;fill:#263c45;paint-order:stroke;stroke:#fff;stroke-width:.7px;stroke-linejoin:round;pointer-events:none}.plan-lot{fill:#edf2f0;stroke:#344e56;stroke-width:2}.plan-buildable{fill:#fff;stroke:#b57c29;stroke-width:2;stroke-dasharray:7 5}.plan-tower{fill:#dce5e9;stroke:#617781;stroke-width:1.4;cursor:pointer}.plan-tower.selected{fill:#b3d8e3;stroke:#16728d;stroke-width:2.3}.plan-court{fill:#b6cda6;stroke:#758d66;stroke-width:1;pointer-events:none}.plan-core{fill:#afbcc3;stroke:#6d818b;stroke-width:1;pointer-events:none}.plan-invasion{fill:#e94646;opacity:.7;pointer-events:none}.plan-dimension{fill:#147567;stroke:#147567}.plan-dimension line{stroke-width:.25}.plan-dimension text{fill:#116456!important;font-size:2.1px!important}.plan-dimension.conflict{fill:#bb3434;stroke:#bb3434}.plan-dimension.conflict text{fill:#bb3434!important}.plan-vertex{font-weight:bold;font-size:2px!important}.plan-tower-label{font-weight:bold}.implantation-toolbar{position:absolute;left:18px;bottom:68px;display:flex;gap:5px}#implantation-caption{position:absolute;bottom:8px;left:18px;right:18px;font-size:.8rem;line-height:1.4;padding:8px 10px;background:#ffffffef;pointer-events:none;margin:0;max-width:650px}.implantation-active .vertex,.implantation-active .hint,.implantation-active .viewlabel,.implantation-active .model-status{display:none!important}.viewbar{z-index:3}.position-dimension{position:absolute;transform:translate(-50%,-50%);font-size:12px;white-space:nowrap;background:#fffffff0;border:1px solid #a6c2bf;color:#1b6d65;padding:3px 5px;border-radius:4px;pointer-events:none;z-index:1}.position-dimension.conflict{color:#b32f2f;border-color:#df9999}#position-readout{margin:12px 0;padding:10px;background:#f4f7f8;border:1px solid #d6e0e3;border-radius:5px}#position-readout table{font-size:.75rem;margin:8px 0;width:100%}#position-readout th,#position-readout td{padding:6px 3px;white-space:nowrap}#position-readout small{display:block;font-size:.75rem;line-height:1.4}#position-readout .conflict{color:#b32f2f;font-weight:600}#open-implantation{margin:10px 0}

#occupation-comparison{margin:0}#occupation-comparison>summary{display:flex;align-items:center;gap:12px;min-height:44px;list-style:none}#occupation-comparison>summary::-webkit-details-marker{display:none}#occupation-comparison>summary::before{content:"▸";font-size:18px}#occupation-comparison[open]>summary::before{content:"▾"}#occupation-comparison>summary h2{margin:0;flex:1}#occupation-comparison>summary:focus-visible{outline:3px solid #c66b35;outline-offset:4px}.comparison-toggle{font-size:14px;font-weight:400;color:#375d65}.comparison-expand{display:inline}.comparison-collapse{display:none}#occupation-comparison[open] .comparison-expand{display:none}#occupation-comparison[open] .comparison-collapse{display:inline}.comparison-content>p{max-width:1000px;font-size:14px;line-height:1.6}.comparison-content{padding-top:12px}

.sketch-hidden{display:none!important}.sketch-launch{width:100%;margin:10px 0;padding:12px;border:1px solid #467e75;background:#edf5f0;color:#285a51;font-weight:600}#croqui-controls label{display:block;margin:16px 0 6px}#croqui-controls output{float:right;font-weight:600}#croqui-controls input[type=range]{width:100%}#croqui-controls input[type=number]{display:block;width:100%;padding:10px}#croqui-controls .toggle{display:flex;gap:8px}#croqui-control-summary{padding:12px;background:#e4efea;border-radius:6px}

/* Keep the base template and old scene out of view until the selected geometry is ready. */
#viewer[data-scenario-loading] > :not(#loading){visibility:hidden!important}
#viewer[data-scenario-loading] #loading{display:grid;visibility:visible;z-index:100;background:#eeede9;color:#4b4843}
