*{box-sizing:border-box}body{margin:0;background:#f4f5f1;color:#243a40;font-family:Inter,"Segoe UI","Microsoft JhengHei",sans-serif}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #c78a40;outline-offset:3px}header{height:88px;background:#fff;border-bottom:1px solid #dbe0db;display:flex;align-items:center;justify-content:space-between;padding:0 36px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;font-size:21px;font-weight:650;letter-spacing:3px}.logo{background:#233e43;color:#e4c79b;width:43px;height:46px;display:grid;place-items:center;font-size:30px}.sub{display:block;font-size:9px;font-weight:500;letter-spacing:2px;margin-top:5px}.project{font-size:13px}.project span{display:block;font-size:11px;color:#7a8586;margin-top:5px}.source{font-size:12px;color:inherit;text-decoration:none;border:1px solid #d1d9d6;border-radius:4px;padding:11px 16px}main{display:grid;grid-template-columns:284px 1fr;min-height:calc(100vh - 88px)}aside{background:#fff;padding:30px 28px;border-right:1px solid #dbe0db}.eyebrow{font-size:9px;letter-spacing:2px;color:#81918e;font-weight:650}h1{font-size:27px;line-height:1.5;letter-spacing:2px;font-weight:500;margin:16px 0 10px}.intro{color:#87918c;font-size:12px;line-height:1.9;margin:0 0 27px}.section-label{display:flex;gap:12px;color:#97a5a0;font-size:10px;margin:22px 0 13px;align-items:center}.section-label span{font-size:12px;color:#3c5356}.section-label small{margin-left:auto;font-size:8px;letter-spacing:1px}.modes{display:flex;padding:4px;background:#eef1ed;border-radius:5px;gap:3px}.modes button{flex:1;background:none;border:0;padding:9px 0;font-size:12px;border-radius:3px}.modes .active{background:#29484b;color:white;box-shadow:0 2px 5px #243a4020}#floors{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}#floors button{background:#fff;border:1px solid #dde3dd;border-radius:3px;padding:9px 2px;font-size:12px}#floors button:hover{background:#f0f4ef}#floors button.active{border-color:#2d6264;background:#e7eeea;color:#214d4f;font-weight:bold}.setting{display:flex;gap:9px;align-items:center;font-size:11px;margin-top:17px;color:#647872}.setting input{accent-color:#315a59}.notice{margin-top:26px;padding-top:17px;border-top:1px solid #e7eae4;font-size:10px;line-height:1.8;color:#81908c}.notice span{color:#98743e}.notice p{margin:8px 0 0}.workspace{min-width:0;display:flex;flex-direction:column;height:calc(100vh - 88px);min-height:640px}.view-tabs{height:58px;display:flex;align-items:center;gap:23px;padding:0 30px;border-bottom:1px solid #dbe0db;background:#f7f8f4}.view-tabs button{height:100%;border:0;border-bottom:2px solid transparent;background:none;font-size:12px}.view-tabs .active{border-bottom-color:#315a59;font-weight:650}#status{margin-left:auto;font-size:10px;color:#7b8e87}#scene{position:relative;flex:1;min-height:300px;background:radial-gradient(ellipse at 50% 40%,#fafbf7,#e8ede6)}#canvas{position:absolute;inset:0;touch-action:none}canvas{display:block;width:100%;height:100%}.scene-title{position:absolute;top:30px;left:32px;pointer-events:none;z-index:1}.scene-title h2{font-size:22px;font-weight:500;margin:10px 0}.scene-title p{font-size:11px;color:#7b8e87;margin:0}.tools{position:absolute;right:26px;top:28px;display:flex;gap:6px}.tools button,.plan-tools button{border:1px solid #d3ddd5;background:#ffffffdd;border-radius:4px;padding:9px 11px;font-size:12px}.legend{position:absolute;bottom:20px;left:32px;font-size:10px;color:#71867e;pointer-events:none}.legend i{display:inline-block;width:7px;height:7px;background:#c48e4a;border-radius:50%;margin-right:5px}.legend span{padding:0 10px;color:#acb9ae}footer{height:112px;background:#fff;border-top:1px solid #dbe0db;display:flex;align-items:center;justify-content:space-between;padding:17px 30px;gap:15px}footer .eyebrow{display:block;font-size:8px}footer strong{font-size:29px;display:inline-block;margin:7px 18px 0 0;font-weight:500}#floorDesc{font-size:11px;color:#7a8981}#showPlan{display:flex;align-items:center;gap:14px;background:none;border:0;padding:0;font-size:11px}#thumb{width:91px;height:72px;object-fit:cover;border:1px solid #e1e7e0}#planView{flex:1;min-height:0;display:flex;flex-direction:column;background:#dfe5de}#planView[hidden],#scene[hidden]{display:none}.plan-tools{padding:12px 20px;display:flex;justify-content:space-between;gap:12px;background:#f8f9f6;align-items:center;font-size:12px}.plan-tools div{display:flex;align-items:center;gap:7px}.plan-tools a{color:#335c5a;font-size:11px;margin-left:9px}#planScroll{overflow:auto;flex:1;padding:18px;text-align:center;touch-action:pan-x pan-y}#largePlan{display:block;width:100%;height:auto;margin:0 auto;background:white;box-shadow:0 3px 18px #263b3a18}#error{position:absolute;inset:45% 10% auto;background:#fff;padding:20px;border:1px solid #cda565;font-size:13px;z-index:5}
@media(max-width:900px){header{padding:0 18px}.project{display:none}main{grid-template-columns:220px 1fr}aside{padding:24px 18px}h1{font-size:23px}#status{font-size:9px}.view-tabs{padding:0 20px;gap:15px}footer{padding:15px 20px}#floorDesc{display:block;font-size:10px}#thumb{width:70px}.scene-title{top:24px;left:20px}.tools{top:auto;bottom:47px;right:15px}.legend{left:20px;font-size:9px}}
@media(max-width:600px){header{height:70px}.brand{font-size:17px}.source{padding:8px 10px}main{display:flex;flex-direction:column;min-height:0}aside{padding:16px;border-right:0;border-bottom:1px solid #dbe0db}aside>.eyebrow,h1,.intro,.section-label,.notice{display:none}.modes{width:100%;margin-bottom:12px}#floors{grid-template-columns:repeat(6,1fr);gap:5px}#floors button{padding:7px 0;font-size:11px}.setting{display:inline-flex;margin:12px 16px 0 0;font-size:10px}.workspace{height:680px;min-height:0}.view-tabs{height:48px;padding:0 14px;gap:12px}#status{max-width:130px;text-align:right}.scene-title h2{font-size:18px}.scene-title .eyebrow{font-size:8px}.scene-title p{font-size:10px}.legend{left:14px;bottom:15px;font-size:8px}.legend span{padding:0 2px}footer{height:100px;padding:10px 14px}#showPlan span{font-size:10px}#thumb{width:62px;height:58px}#floorDesc{max-width:175px}.plan-tools{padding:10px;font-size:11px}.plan-tools div{gap:4px}.plan-tools a{font-size:9px}}

.geo-link{font-size:11px;color:#315a59;text-decoration:none;white-space:nowrap}aside{overflow:auto}.workspace{min-height:640px}@media(max-width:600px){.geo-link{font-size:10px}.view-tabs{gap:9px}.view-tabs #status{display:none}}

.environment-info{font-size:9px;line-height:1.6;color:#81908c}.setting input[type=range]{width:95px}.tools{flex-wrap:wrap;max-width:390px}.workspace{min-height:740px}aside{max-height:calc(100vh - 88px)}@media(max-width:600px){aside{max-height:none}.workspace{min-height:680px}.environment-info{margin-bottom:0}.tools{max-width:310px}}
#planSheet{position:relative;margin:auto}#largePlan{width:100%!important}#windowOverlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.window-compare{display:flex;justify-content:space-between;padding:8px 20px;font-size:11px;background:#edf5f1;color:#356775}.window-compare input{accent-color:#008db0}.osm-credit{font-size:8px;color:#7a8981;max-width:100px;text-decoration:none}.workspace{min-height:640px}
.sales-dialog{width:min(95vw,1200px);max-height:90vh;padding:0;border:1px solid #b9c9c2;border-radius:8px;background:#fff;color:#243e38}
.sales-dialog::backdrop{background:#14251f99}
.sales-toolbar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #dce4de}
.sales-sheet{max-height:calc(90vh - 62px);overflow:auto}
.sales-sheet img{display:block;width:100%;min-width:760px;height:auto}

.unit-areas{display:flex;gap:8px;flex:0 0 auto;overflow-x:auto;padding:9px 16px;background:#eef2ee;border-top:1px solid #dbe0db}
.unit-areas[hidden]{display:none}
.unit-area{flex:1 0 auto;display:flex;align-items:center;gap:10px;background:white;border:1px solid #dae4dd;border-radius:5px;padding:8px 10px;font-size:12px;font-variant-numeric:tabular-nums}
.unit-area strong{color:#285357}

#interiorCutawaySetting[hidden]{display:none}

#unitCallouts{position:absolute;inset:0;pointer-events:none;z-index:2}
#unitLeaderLines{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}
#unitLeaderLines line{stroke:#397579;stroke-width:1.25}
#unitLeaderLines circle{fill:#397579;stroke:white;stroke-width:1}
.unit-callout{position:absolute;left:0;top:0;width:150px;height:60px;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:7px 10px;background:#ffffffed;border:1px solid #bdcec9;border-radius:5px;color:#284d4e;box-shadow:0 2px 10px #173f381c;font-size:12px;font-variant-numeric:tabular-nums}
.unit-callout[hidden],#unitCallouts[hidden]{display:none}
.unit-callout strong{font-size:13px}
@media(max-width:900px){.unit-callout{font-size:11px}}
@media(max-width:600px){.unit-callout{width:108px;height:64px;font-size:10px;padding:5px 7px}}

#floors button.basement-floor{background:#e4e6e7;color:#475358}
#floors button.basement-floor.active{background:#c8ced0;border-color:#647578}

.sales-filters{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;padding:14px 16px}
.sales-table{width:100%;border-collapse:collapse;white-space:nowrap;font-variant-numeric:tabular-nums}
.sales-table caption,.sales-note{text-align:left;padding:10px 16px}
.sales-table th,.sales-table td{padding:8px 12px;text-align:right;border-bottom:1px solid #dce4de}
.sales-table th:first-child,.sales-table td:first-child{text-align:left}
.sales-table thead th{position:sticky;top:0;background:#e9efec}
.sales-table .sales-floor-odd{background:#fafcfb}
.sales-table .sales-floor-even{background:#dce7e2}

.sales-unit{color:#215b57;text-decoration:underline;text-underline-offset:3px}
.unit-callout.focused-unit{border-color:#26736a;box-shadow:0 0 0 2px #26736a55}
.sales-table tbody td:nth-child(2){font-weight:700}

button.unit-callout,button.unit-area{pointer-events:auto;cursor:pointer;text-align:left}
.sales-table .sales-selected-row{outline:3px solid #26736a;outline-offset:-3px}

.scene-title h2{font-size:clamp(22px,3vw,30px);font-weight:700;margin:0 0 8px}
.scene-title #viewDesc,.scene-title #viewParking{font-size:clamp(13px,1.6vw,17px);font-weight:700;color:#334e4a;line-height:1.5}
.scene-title #viewParking:not([hidden]){display:block;margin-top:3px}

.environment-mode:has(button[hidden]){display:none}
.environment-mode button[aria-pressed="true"]{background:#29484b;color:white}
.tools #showPlan{display:inline-block;background:#fff;border:1px solid #dbe0db;padding:7px 9px}
#scene .osm-credit{position:absolute;bottom:10px;right:12px;z-index:3}
