:root{color-scheme:light;font-family:"Segoe UI",Arial,sans-serif;color:#292d22;background:#fff;font-synthesis:none;--ink:#292d22;--muted:#72776d;--line:#e3e6de;--accent:#c5ce36;--selection:#e9edc8}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,select,summary{cursor:pointer}button{color:inherit}button:focus-visible,select:focus-visible,summary:focus-visible,#plan:focus-visible{outline:2px solid #727b12;outline-offset:3px}button{touch-action:manipulation}fieldset{margin:0;padding:0;border:0;min-width:0}[hidden]{display:none!important}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 284px;height:100dvh;min-height:650px;overflow:hidden}.drawing-panel{display:flex;flex-direction:column;min-width:0;background:#fff;padding:30px 32px 17px}.drawing-header{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;min-height:64px;padding-right:6px}.drawing-header h1{font-size:23px;line-height:1.2;font-weight:620;letter-spacing:-.45px;margin:0 0 7px;color:#2d3942}.drawing-header p{font-size:12px;line-height:1.5;color:#5e7485;margin:0}.quiet-button{background:#fff;border:1px solid var(--line);border-radius:5px;padding:7px 10px;display:flex;align-items:center;gap:7px;font-size:12px;color:#62685c;white-space:nowrap}.quiet-button:hover{background:#f6f7f3;border-color:#b8bfaa}
.drawing-body{display:flex;flex:1;min-height:0;gap:16px;padding:10px 0 12px}.drawing-area{position:relative;flex:1;min-width:0;overflow:hidden;border-radius:3px;isolation:isolate}#plan{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#plan.dragging{cursor:grabbing}#plan [id$="layer"]{pointer-events:none}.color-scale{width:61px;flex-shrink:0;align-self:center;height:62%;max-height:450px;min-height:230px;display:flex;flex-direction:column;gap:9px}.scale-unit{font-size:11px;color:#5e7485;margin-left:-1px}.scale-body{flex:1;display:flex;position:relative}.scale-gradient{width:15px;height:100%;background:linear-gradient(to top,#4040a2,#10d8d6,#43fb0d,#f8eb0e,#c30000)}.scale-ticks{position:relative;flex:1}.scale-tick{position:absolute;left:0;display:flex;align-items:center;gap:5px;transform:translateY(50%);font-size:10px;color:#5e7485;white-space:nowrap}.scale-tick:before{content:"";width:4px;height:1px;background:#95a3ac}.drawing-footer{min-height:20px;display:flex;justify-content:space-between;gap:15px;font-size:10px;color:#858c83}.drawing-footer span:last-child{color:#9a9f96}
.controls{background:#fafbf8;border-left:1px solid var(--line);padding:30px 23px 22px;overflow:auto;scrollbar-width:thin}.app-heading{display:flex;align-items:center;gap:10px;margin:0 0 35px}.app-mark{height:35px;width:35px;display:flex;align-items:center;justify-content:center;background:#e9edc8;border-radius:5px;color:#5e6516}.app-heading h2{font-size:15px;font-weight:620;letter-spacing:-.2px;line-height:1.25;margin:0 0 3px}.app-heading p{font-size:11px;color:var(--muted);margin:0}.control-group{margin-bottom:23px}.control-group>label:not(.check-row),.control-group>legend{display:block;margin-bottom:9px;font-size:12px;font-weight:600;color:#555d4e}.select-wrap{position:relative}.select-wrap>svg{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:#666d5f}.select-wrap select{appearance:none;width:100%;padding:10px 35px 10px 11px;background:#fff;border:1px solid #d8ddd0;border-radius:5px;font-size:13px;line-height:1.4;color:var(--ink)}.select-wrap select:hover{border-color:#a5ad96}.select-wrap select:disabled{opacity:.5;cursor:wait}.segmented{display:flex;border:1px solid #d8ddd0;background:#fff;border-radius:5px;padding:3px;gap:3px}.segmented button{flex:1;border:0;background:transparent;font-size:12px;padding:7px 9px;border-radius:3px;line-height:1.4;color:#737b6a}.segmented button[aria-pressed="true"]{background:var(--selection);color:#464d1e;font-weight:600}.segmented button:hover{background:#f1f3e9}.scenario-description{font-size:11px;color:var(--muted);line-height:1.45;margin:9px 0 0}.hour-options{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.hour-options button{font-variant-numeric:tabular-nums;border:1px solid #d8ddd0;background:#fff;padding:8px 0;border-radius:4px;font-size:12px;color:#72796b}.hour-options button[aria-pressed="true"]{border-color:#7b842a;color:#41481f;background:#f0f2dc;font-weight:600}.hour-options button:hover{border-color:#929a7f}.divider{height:1px;background:var(--line);margin:1px 0 23px}.layers{margin-bottom:22px}.check-row{position:relative;display:flex;align-items:center;justify-content:space-between;font-size:12px;padding:9px 0;line-height:1.4;cursor:pointer}.check-row input{position:absolute;right:0;opacity:0;width:18px;height:18px;margin:0}.check-icon{width:16px;height:16px;border:1px solid #bdc5b2;border-radius:3px;background:#fff;position:relative;flex-shrink:0}.check-row input:checked+.check-icon{background:#c5ce36;border-color:#9da51f}.check-row input:checked+.check-icon:after{content:"";position:absolute;width:7px;height:4px;border-left:1.7px solid #3a4215;border-bottom:1.7px solid #3a4215;transform:rotate(-45deg);left:3px;top:3px}.check-row input:focus-visible+.check-icon{outline:2px solid #727b12;outline-offset:3px}.boundary-help{font-size:10px;line-height:1.65;color:#858c7b;margin-top:5px}.boundary-help summary{list-style:none;color:#7b836f;text-decoration:underline;text-decoration-color:#c8cfbd;text-underline-offset:3px}.boundary-help summary::-webkit-details-marker{display:none}.boundary-help p{margin:10px 0 0;padding:0 0 0 9px;border-left:2px solid #dce1d1}.scale-control{margin-bottom:28px}.controls-foot{font-size:10px;color:#7a826e;line-height:1.5;border-top:1px solid var(--line);padding-top:15px}.local-dot{display:inline-block;width:5px;height:5px;background:#91a23f;border-radius:50%;margin-right:5px;vertical-align:middle}.controls-foot p{font-size:10px;line-height:1.65;color:#929a88;margin:7px 0 0}
.zoom-tools{display:flex;position:absolute;bottom:9px;left:8px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:5px;box-shadow:0 1px 3px #00000005;overflow:hidden}.zoom-tools button{background:none;border:0;width:31px;height:29px;font-size:18px;color:#68705e;line-height:1}.zoom-tools button+button{border-left:1px solid var(--line)}.zoom-tools button:hover{background:#f1f3e9}.loading{position:absolute;inset:0;background:rgba(255,255,255,.84);display:flex;align-items:center;justify-content:center;gap:11px;font-size:12px;color:#66705a;pointer-events:none;z-index:5}.spinner{width:17px;height:17px;border:2px solid #e5e9db;border-top-color:#9ba52b;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sensor-tooltip{position:absolute;pointer-events:none;background:#fff;border:1px solid #d5dccb;border-radius:5px;padding:9px 11px;font-size:11px;color:#68705e;line-height:1.55;box-shadow:0 3px 15px #00000012;z-index:10;white-space:nowrap}.sensor-tooltip strong{display:block;font-size:14px;font-weight:620;color:#292d22;font-variant-numeric:tabular-nums}.error{position:absolute;inset:20% 8%;background:#fff;border:1px solid #e2d7cc;border-radius:5px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:25px;font-size:13px;z-index:8}.error strong{font-weight:600}.error p{font-size:12px;line-height:1.6;color:#777064}.error button{padding:8px 12px;border:1px solid #d5dacb;border-radius:4px;background:#f6f7ef}
@media(min-width:1700px){.drawing-panel{padding:38px 45px 22px}.controls{padding:37px 26px}.workspace{grid-template-columns:minmax(0,1fr) 310px}}
@media(max-height:830px) and (min-width:761px){.controls{padding-top:22px}.app-heading{margin-bottom:23px}.control-group{margin-bottom:18px}.divider{margin-bottom:17px}.check-row{padding:7px 0}.scale-control{margin-bottom:20px}.drawing-panel{padding-top:23px}.drawing-header{min-height:59px}}
@media(max-width:760px){.workspace{display:flex;flex-direction:column;height:auto;min-height:100dvh;overflow:visible}.drawing-panel{height:72dvh;min-height:430px;padding:21px 17px 12px}.drawing-header{min-height:60px}.drawing-header h1{font-size:21px}.drawing-header p{font-size:11px}.drawing-body{gap:8px;padding-top:0}.color-scale{width:52px}.scale-tick{font-size:9px;gap:3px}.scale-gradient{width:12px}.drawing-footer{font-size:9px}.drawing-footer span:last-child{display:none}.controls{border-left:0;border-top:1px solid var(--line);padding:22px;overflow:visible;display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.app-heading{grid-column:1/-1;margin-bottom:25px}.controls .divider{grid-column:1/-1;margin:2px 0 20px}.control-group{margin-bottom:21px}.layers,.controls-foot{grid-column:1/-1}.controls-foot{margin-top:0}.boundary-help p{max-width:45em}.floor-control{grid-column:1/-1}.quiet-button{padding:6px 8px}.scale-control{margin-bottom:23px}}
@media(prefers-reduced-motion:reduce){.spinner{animation:none}}

/* Flex sizing: the drawing follows the available height, never its intrinsic SVG ratio. */
.workspace{grid-template-rows:minmax(0,1fr)}.drawing-panel{min-height:0;overflow:hidden}.drawing-body{height:0}.drawing-area{min-height:0}#plan{position:absolute;inset:0}
.furniture-transparency{margin:2px 0 9px;padding:8px 0 4px}.range-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:#72776d}.range-heading output{font-variant-numeric:tabular-nums;color:#555d4e;min-width:30px;text-align:right}.furniture-transparency input[type=range]{display:block;width:100%;height:18px;margin:9px 0 2px;appearance:none;background:transparent;cursor:pointer;--range-progress:0%}.furniture-transparency input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:3px;background:linear-gradient(to right,#9da62a var(--range-progress),#dde2d3 var(--range-progress))}.furniture-transparency input[type=range]::-webkit-slider-thumb{appearance:none;height:13px;width:13px;margin-top:-5px;border:1px solid #8d962a;background:#fff;border-radius:50%;box-shadow:0 1px 2px #292d2212}.furniture-transparency input[type=range]::-moz-range-track{height:3px;background:#dde2d3;border-radius:3px}.furniture-transparency input[type=range]::-moz-range-progress{height:3px;background:#9da62a}.furniture-transparency input[type=range]::-moz-range-thumb{height:12px;width:12px;border:1px solid #8d962a;background:#fff;border-radius:50%}.furniture-transparency input:focus-visible{outline:2px solid #727b12;outline-offset:4px;border-radius:2px}.range-limits{display:flex;justify-content:space-between;font-size:9px;color:#929a88}
/* Room detail belongs to the control rail; it never overlaps the drawing. */
.controls{display:flex;flex-direction:column;padding:0;overflow:hidden}.controls-scroll{flex:1;min-height:0;overflow:auto;padding:30px 23px 22px;scrollbar-width:thin}.room-focus{flex-shrink:0;padding:19px 23px 20px;border-top:1px solid #dce1d1;background:#fff}.room-focus-location{margin:0;color:#72776d;font-size:11px;line-height:1.5}.room-focus h3{font-size:17px;font-weight:620;letter-spacing:-.25px;line-height:1.35;color:#292d22;margin:5px 0 15px}.room-focus-label{margin:0;color:#72776d;font-size:11px;line-height:1.4}.room-focus-metric{display:flex;align-items:baseline;gap:7px;margin:3px 0 7px;color:#292d22;font-size:27px;line-height:1.2;font-weight:570;font-variant-numeric:tabular-nums;letter-spacing:-.55px}.room-focus-unit{color:#72776d;font-size:12px;letter-spacing:0;font-weight:400}.room-focus-note{margin:0;color:#858c7b;font-size:10px;line-height:1.5}
@media(min-width:1700px){.controls-scroll{padding:37px 26px}.room-focus{padding:21px 26px 24px}}
@media(max-height:830px) and (min-width:761px){.controls-scroll{padding-top:22px}.room-focus{padding-top:15px;padding-bottom:16px}.room-focus h3{margin-bottom:10px}}
@media(max-width:760px){.controls{display:grid;padding:22px;overflow:visible}.controls-scroll{display:contents}.room-focus{grid-column:1/-1;margin:0 -22px -22px;padding:20px 22px 23px}.room-focus h3{margin-bottom:11px}}
/* Studio detail: slide up on entry, down on exit, with its layout space. */
.room-focus-slot{display:grid;grid-template-rows:0fr;flex-shrink:0;transition:grid-template-rows 240ms cubic-bezier(.22,.68,.3,1)}.room-focus-slot.is-visible{grid-template-rows:1fr}.room-focus-clip{min-height:0;overflow:hidden}.room-focus{opacity:0;transform:translateY(14px);transition:opacity 180ms ease,transform 240ms cubic-bezier(.22,.68,.3,1);pointer-events:none}.room-focus-slot.is-visible .room-focus{opacity:1;transform:translateY(0);pointer-events:auto}.room-focus h3{margin-bottom:12px}.room-focus-gauge{margin:15px 0 13px;position:relative;padding-top:1px}.room-focus-gradient{height:7px;border-radius:2px;position:relative;background:linear-gradient(to right,#4040a2,#10d8d6,#43fb0d,#f8eb0e,#c30000)}.room-focus-indicator{position:absolute;top:-3px;bottom:-3px;width:2px;left:0;transform:translateX(-50%);background:#292d22;box-shadow:0 0 0 1px #fff;border-radius:1px;transition:left 220ms ease}.room-focus-indicator:before{content:"";position:absolute;left:50%;top:-4px;transform:translateX(-50%);border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #292d22}.room-focus-graduations{position:relative;height:19px;margin-top:5px;color:#858c7b;font-size:9px;font-variant-numeric:tabular-nums;line-height:1.5}.room-focus-graduations span{position:absolute;white-space:nowrap;transform:translateX(-50%)}.room-focus-graduations span:first-child{transform:none}.room-focus-graduations span:last-child{transform:translateX(-100%)}.room-focus-graduations span:before{content:"";position:absolute;left:50%;top:-9px;width:1px;height:3px;background:#ffffffa8}.room-focus-graduations span:first-child:before{left:0}.room-focus-graduations span:last-child:before{left:auto;right:0}
@media(max-width:760px){.room-focus-slot{grid-column:1/-1;margin:0 -22px -22px}.room-focus-slot .room-focus{margin:0}}
@media(prefers-reduced-motion:reduce){.room-focus-slot,.room-focus,.room-focus-indicator{transition:none!important}}
.room-only-row{margin-top:13px;padding:12px 0 0;border-top:1px solid var(--line);color:var(--ink)}
.room-visibility{opacity:1;transition:opacity 280ms ease}
@media(prefers-reduced-motion:reduce){.room-visibility{transition:none!important}}
