:root{--ink:#203b32;--green:#2c5b46;--muted:#65736b;--border:#dbe0d9;--paper:#fff;--panel:#fafbf8;--stage:#f0f1eb;--accent:#e4eddf;--radius:7px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);font-size:13px}*{box-sizing:border-box}body{margin:0;background:var(--paper)}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--border);background:white;border-radius:var(--radius);color:var(--ink);min-height:36px;padding:7px 11px;font-weight:500;transition:background .15s}button:hover{background:#edf2e9}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,svg:focus-visible{outline:2px solid #397958;outline-offset:3px}input,select{min-width:0;background:white;border:1px solid #cbd3c9;border-radius:5px;padding:8px;color:var(--ink);width:100%}input[type=checkbox]{width:15px;accent-color:var(--green);flex-shrink:0}input[type=range]{padding:0;accent-color:var(--green)}input[type=color]{height:34px;padding:3px}h1,h2,p{margin:0}h1{font-size:16px;font-weight:650;letter-spacing:-.3px}h2{font-size:12px;font-weight:650;margin-bottom:12px}.app-header{height:76px;display:flex;align-items:center;gap:26px;padding:0 23px;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:12px}.brand svg{width:33px;height:33px;fill:none;stroke:var(--green);stroke-width:1.7}.brand span{display:block;color:var(--muted);font-size:11px;margin-top:5px}.app-header nav{margin-left:auto;display:flex;gap:8px}.save-state{font-size:11px;color:var(--muted)}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#214937}.workspace{display:grid;grid-template-columns:206px minmax(340px,1fr) 256px;height:calc(100dvh - 76px)}aside{background:var(--panel);overflow:auto}.tools-panel{border-right:1px solid var(--border);display:flex;flex-direction:column}.properties-panel{border-left:1px solid var(--border);padding:18px}.panel-title{font-size:12px;font-weight:700;margin-bottom:16px}.tools-panel>.panel-title{padding:19px 17px 0;margin-bottom:12px}.tools{padding:0 10px;display:grid;gap:3px}.tool{display:flex;align-items:center;gap:11px;border-color:transparent;background:transparent;text-align:left;width:100%;min-height:36px;padding:7px 9px}.tool svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;flex-shrink:0}.tool kbd{margin-left:auto;color:var(--muted);font:10px inherit}.tool.active{background:var(--accent);color:#204632}.section{margin:17px 16px 0;padding-top:17px;border-top:1px solid var(--border)}.wide{width:100%;margin-top:8px}.subtle{background:transparent;font-size:12px}.check{display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}.range-label{display:flex;justify-content:space-between;margin-top:13px;margin-bottom:6px;font-size:11px;color:var(--muted)}.small-note{font-size:11px;line-height:1.55;color:var(--muted);margin-top:9px}.layer-section{min-height:160px;flex:1;display:flex;flex-direction:column}.layer-section h2{display:flex;justify-content:space-between}.layers{max-height:215px;overflow:auto}.layer{display:flex;align-items:center;gap:3px;border-bottom:1px solid #e8ece5}.layer>button{border:0;min-height:28px;padding:4px;background:transparent;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer>button:first-child{flex:1;text-align:left}.layer.selected{background:var(--accent)}.layer svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.5}.help-button{margin:15px 16px;background:#edf2e7;font-size:12px}.drawing-main{display:flex;flex-direction:column;min-width:0;min-height:0}.drawing-toolbar{height:57px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 15px;border-bottom:1px solid var(--border);gap:12px}.floor-tabs{display:flex;gap:5px}.floor-tabs button{border:0;background:transparent;padding:9px 15px}.floor-tabs button[aria-selected=true]{background:var(--accent);font-weight:650}.drawing-actions{display:flex;gap:8px;align-items:center}.drawing-actions>button{font-size:22px;padding:0 7px;min-height:30px;border:0}.divider{height:20px;width:1px;background:var(--border);margin:0 4px}.canvas-wrap{flex:1;min-height:0;position:relative;overflow:hidden;background:var(--stage)}#canvas{display:block;width:100%;height:100%;touch-action:none;user-select:none}#canvas [data-id]{cursor:move}#canvas.tool-create [data-id]{cursor:crosshair}.canvas-caption{position:absolute;left:20px;top:16px;pointer-events:none;background:#f0f1ebee;padding:6px 9px;border-radius:4px}.canvas-caption strong{font-size:12px;display:block}.canvas-caption span{font-size:10px;display:block;color:var(--muted);margin-top:4px}.zoom-controls{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;background:#fff;border:1px solid var(--border);border-radius:8px;padding:3px;gap:5px}.zoom-controls button{border:0;min-height:30px;padding:5px 10px}.zoom-controls output{min-width:41px;text-align:center;font-size:11px}.status-bar{display:flex;justify-content:space-between;gap:8px;height:34px;align-items:center;padding:0 13px;font-size:10px;color:var(--muted);border-top:1px solid var(--border)}#hint{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#coordinates{white-space:nowrap}.property-empty{padding:6px 0 24px}.property-empty svg{width:43px;height:43px;stroke:#648268;fill:none;stroke-width:1.2;margin:8px 0 15px}.property-empty h2{font-size:15px}.property-empty p{color:var(--muted);font-size:12px;line-height:1.65}.properties-panel label{display:block;font-size:11px;color:var(--muted);margin:12px 0 0}.properties-panel label input,.properties-panel label select{display:block;margin-top:5px;font-size:12px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.property-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:650;margin:5px 0 17px}.property-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:17px}.property-actions button{font-size:11px;padding:6px}.danger{color:#9c3b2c}.project-info{margin-top:25px;padding-top:20px;border-top:1px solid var(--border)}.project-info h2{font-size:12px}.property-tip{font-size:11px;line-height:1.55;padding:10px;background:#edf2e7;margin-top:13px;border-radius:4px}#toast{position:fixed;bottom:48px;left:50%;transform:translateX(-50%);background:#203c32;color:white;padding:12px 19px;border-radius:8px;z-index:20;pointer-events:none;opacity:0;transition:opacity .2s;max-width:80vw;font-size:12px}#toast.visible{opacity:1}dialog{border:0;border-radius:14px;padding:29px;max-width:min(540px,90vw);box-shadow:0 16px 70px #183b3333;color:var(--ink)}dialog::backdrop{background:#1b2e2855}dialog h2{font-size:23px;font-weight:600;margin:10px 24px 14px 0}dialog p{line-height:1.6;color:var(--muted)}dialog .close{position:absolute;right:12px;top:12px;border:0;min-height:28px;font-size:22px}dialog ol{padding-left:20px;font-size:13px;line-height:1.65}dialog li{margin-bottom:9px}.shortcuts{background:var(--accent);border-radius:6px;padding:12px;font-size:11px}.export-options{display:grid;gap:11px;margin-top:20px}.export-options button{padding:16px;text-align:left}.export-options strong{display:block;font-size:15px;margin-bottom:7px}.export-options span{font-size:12px;color:var(--muted)}dialog .primary{margin-top:18px}.sr-only{position:fixed;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1100px){.workspace{grid-template-columns:174px minmax(300px,1fr) 218px}.app-header{padding:0 14px}.save-state{display:none}.drawing-toolbar{padding:0 7px}.drawing-actions{gap:3px}.drawing-actions .check{font-size:10px}.floor-tabs button{padding:7px 9px}.properties-panel{padding:13px}.section{margin-left:12px;margin-right:12px}.brand h1{font-size:14px}}@media(max-width:800px){.workspace{grid-template-columns:150px minmax(320px,1fr) 200px;min-width:740px}.app-header{min-width:740px}.app-header nav button{font-size:11px}.drawing-toolbar{flex-wrap:wrap;height:85px;justify-content:center}.canvas-caption{left:8px;font-size:10px}.status-bar{height:40px}.app-header{gap:12px}.tools-panel .section{margin-top:12px}.brand svg{width:26px}.brand{gap:8px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.compact-switches{display:none}@media(max-width:900px){.app-header{min-width:0;height:auto;min-height:90px;padding:12px;flex-wrap:wrap;gap:10px}.app-header nav{gap:5px}.app-header nav button{font-size:11px;padding:7px 8px;min-height:32px}.workspace{min-width:0;grid-template-columns:minmax(0,1fr);height:calc(100dvh - 90px);position:relative}.drawing-main{grid-column:1}.tools-panel,.properties-panel{display:none;position:absolute;top:42px;bottom:0;z-index:6;width:230px;box-shadow:0 8px 25px #203b3222}.tools-panel{left:0}.properties-panel{right:0}.show-tools .tools-panel{display:flex}.show-properties .properties-panel{display:block}.compact-switches{display:flex;align-items:center;justify-content:space-between;height:42px;padding:5px 12px;background:#fafbf8;border-bottom:1px solid var(--border)}.compact-switches button{min-height:28px;padding:4px 12px;font-size:11px}.drawing-toolbar{height:48px;flex-wrap:nowrap;justify-content:space-between}.drawing-actions{gap:2px}.drawing-actions .check{font-size:10px}.drawing-actions .divider{display:none}.floor-tabs button{padding:6px 8px}.canvas-caption{left:12px;top:9px}.status-bar{height:33px}.brand span{display:none}.brand h1{font-size:13px}.brand svg{width:25px}.app-header{justify-content:space-between}.app-header nav{margin-left:0}.status-bar #coordinates{display:none}}

.stair-counter{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;gap:6px;margin-top:6px;align-items:center}.stair-counter input{margin:0;text-align:center;min-width:0}.stair-counter button{padding:0;min-height:36px;font-size:20px}

/* Large, stable dimension controls replace tiny native number spinners. */
.workspace{grid-template-columns:206px minmax(340px,1fr) 300px}
.properties-panel .fields{grid-template-columns:minmax(0,1fr);gap:0}
.number-control{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:6px;align-items:center;margin-top:6px}
.number-control input{height:44px;font-size:15px;text-align:center;padding:8px 4px;min-width:0;font-variant-numeric:tabular-nums}
.number-control button{height:44px;min-height:44px;padding:0;font-size:23px;font-weight:600;touch-action:manipulation}
.number-control input::-webkit-inner-spin-button,.number-control input::-webkit-outer-spin-button{appearance:none;margin:0}
.number-control input[type=number]{appearance:textfield;-moz-appearance:textfield}
.stair-counter{grid-template-columns:44px minmax(0,1fr) 44px}
.stair-counter button,.stair-counter input{height:44px;min-height:44px;font-size:15px}.stair-counter button{font-size:23px}
@media(max-width:1100px){.workspace{grid-template-columns:174px minmax(300px,1fr) 270px}}
@media(max-width:800px){.workspace{grid-template-columns:150px minmax(320px,1fr) 250px;min-width:720px}}
@media(max-width:900px){.workspace{grid-template-columns:minmax(0,1fr);min-width:0}.properties-panel{width:270px}}

.area-table{width:100%;border-collapse:collapse;font-size:11px;margin:12px 0}.area-table th,.area-table td{padding:6px 2px;border-bottom:1px solid var(--border);text-align:left}.area-table th:last-child,.area-table td:last-child{text-align:right;white-space:nowrap}.area-table button{font-size:11px;min-height:28px;border:0;background:transparent;padding:3px 0;text-align:left}.area-table tfoot{font-weight:650}.area-warning{font-size:11px;line-height:1.5;color:#974729;margin:8px 0}

/* Dedicated full-height layers panel, independent of the tools scroller. */
.tools-panel{overflow:hidden;min-height:0}.sidebar-tabs{display:flex;gap:4px;padding:9px 10px;border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-tabs button{flex:1;border:0;background:transparent;min-height:38px}.sidebar-tabs button[aria-selected=true]{background:var(--accent);font-weight:650}#toolContent{overflow:auto;min-height:0;flex:1}#toolContent>.panel-title{padding:16px 17px 0;margin-bottom:12px}#layerPanel{display:flex;flex:1;flex-direction:column;min-height:0;padding:12px 10px 0}#toolContent[hidden],#layerPanel[hidden]{display:none}.layers-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.layers-heading h2{margin:0}.layers-heading h2 span{font-weight:400;margin-left:5px}.layers-heading button{font-size:11px;min-height:32px;padding:4px 8px}.layer-editor{padding:0 3px 12px;border-bottom:1px solid var(--border)}.layer-editor>label{font-size:11px;color:var(--muted)}#layerName{margin-top:5px}.layer-order{display:flex;gap:6px;margin-top:7px}.layer-order button{display:flex;align-items:center;justify-content:center;gap:5px;flex:1;font-size:12px;min-height:38px}.layer-order svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}.layer-editor .range-label{margin-top:10px}#layerTransparency{height:24px}.layer-editor .small-note{font-size:10px;margin-top:2px;min-height:28px}.layers{flex:1;min-height:100px;max-height:none;overflow:auto;overscroll-behavior:contain;margin:0 -5px;padding:0 5px}.layer{position:relative;min-height:39px;gap:0}.layer>button{min-height:38px;padding:5px;flex:0 0 30px}.layer>button:first-child{flex:0 0 22px;text-align:center;padding:3px;cursor:grab}.layer>button.layer-name{flex:1;min-width:0;text-align:left;font-size:12px}.layer-name small{display:block;font-size:10px;color:var(--muted)}.layer.drop-above{box-shadow:inset 0 3px var(--green)}.layer.drop-below{box-shadow:inset 0 -3px var(--green)}.layers-footnote{font-size:10px;line-height:1.5;color:var(--muted);padding:9px 3px;border-top:1px solid var(--border);flex-shrink:0}.wide-layers .workspace{grid-template-columns:340px minmax(300px,1fr) 300px}@media(min-width:901px){.workspace{grid-template-columns:260px minmax(300px,1fr) 300px}}@media(max-width:900px){.tools-panel{width:min(340px,90vw)}.wide-layers .workspace{grid-template-columns:minmax(0,1fr)}}

.layer-settings summary{cursor:pointer;min-height:35px;display:list-item;font-size:12px;padding:8px 0;color:var(--ink)}.layer-settings>label{display:block;font-size:11px;color:var(--muted)}.layer-settings .range-label{display:flex}.layer-settings[open]{padding-bottom:5px}.panel-resizer{display:none}.workspace{position:relative}@media(min-width:901px){.workspace,.wide-layers .workspace{grid-template-columns:var(--left-panel-width,260px) minmax(320px,1fr) var(--right-panel-width,300px)}.panel-resizer{display:block;position:absolute;top:0;bottom:0;width:8px;cursor:col-resize;z-index:8;touch-action:none}.panel-resizer.left{left:calc(var(--left-panel-width,260px) - 4px)}.panel-resizer.right{right:calc(var(--right-panel-width,300px) - 4px)}.panel-resizer::after{content:"";position:absolute;width:3px;height:42px;left:3px;top:45%;border-radius:2px;background:#8a9b8c}.panel-resizer:hover,.panel-resizer:focus-visible{background:#4b8b5d30;outline:1px solid #397958}.resizing-panels,.resizing-panels *{cursor:col-resize!important;user-select:none!important}}

.properties-panel label.range-label{display:flex;align-items:center;gap:12px}.properties-panel .range-label output{flex-shrink:0;margin-left:auto}

.layer-inline{padding:9px 10px 12px;margin:0 0 7px;background:var(--accent);border:1px solid var(--border);border-top:0;border-radius:0 0 5px 5px}.layer-inline label{display:block;font-size:11px;color:var(--ink)}.layer-inline input:not([type=range]){width:100%;margin:5px 0 10px;min-height:34px}.layer-inline .range-label{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.layer-inline output{margin-left:auto}.layer-inline input[type=range]{width:100%;height:24px;flex-basis:100%;margin:0}.layer-inline .small-note{font-size:10px;margin:4px 0 0}.layer-name{white-space:normal!important;overflow-wrap:anywhere}.property-title{overflow-wrap:anywhere}

.layer-name-editor{flex:1;min-width:0;padding:4px}.layer-name-editor input{width:100%;min-width:0;min-height:32px;font-size:12px;padding:5px}.layer-name-editor small{font-size:10px;color:var(--muted)}

.app-header nav{flex-wrap:wrap;justify-content:flex-end;gap:6px}.app-header nav button{font-size:12px;min-height:34px;padding:6px 10px}.app-header{gap:14px;min-height:76px;height:auto;padding-top:10px;padding-bottom:10px}.app-header [hidden]{display:none!important}.project-dialog{width:min(520px,calc(100vw - 32px));max-height:90vh;overflow:auto;padding:30px;border:1px solid var(--border);color:var(--ink);border-radius:8px;background:var(--paper)}.project-dialog::backdrop{background:#10251d66}.project-dialog h2{font-size:22px;margin:0 36px 12px 0}.project-dialog p{line-height:1.55;color:var(--muted);margin:0 0 18px}.project-dialog label:not(.check){display:block;font-size:12px;margin:16px 0 8px}.project-dialog label input:not([type=checkbox]),.project-dialog label select{display:block;width:100%;margin-top:7px;min-height:40px}.project-dialog .check{display:flex;align-items:flex-start;gap:8px;margin:18px 0;font-size:12px;line-height:1.5}.project-dialog .check input{flex-shrink:0;margin-top:2px}.project-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;margin-top:20px}.project-dialog .project-error{color:var(--danger);font-size:12px;min-height:18px;margin-top:14px}.project-hub,.admin-dialog{width:min(900px,calc(100vw - 32px))}.project-current{display:flex;align-items:flex-end;gap:12px;border-bottom:1px solid var(--border);padding-bottom:20px}.project-current label{flex:1}.project-current button{margin-bottom:8px}.project-tabs{display:flex;gap:8px;margin:20px 0 12px}.project-tabs button[aria-pressed=true]{background:var(--accent);font-weight:650}.project-entry{display:flex;gap:16px;align-items:center;padding:16px 0;border-top:1px solid var(--border)}.project-entry>div:first-child{flex:1;min-width:0}.project-entry strong{display:block;overflow-wrap:anywhere}.project-entry small{display:block;margin-top:5px;color:var(--muted)}.project-entry .entry-actions{display:flex;gap:6px;flex-wrap:wrap}.project-entry button{font-size:12px;min-height:34px}.project-empty{padding:24px 0;font-size:14px}.invite-form{display:flex;gap:12px;align-items:flex-end}.invite-form label{flex:1}.invite-form button{margin-bottom:8px}.admin-user{display:grid;grid-template-columns:minmax(160px,1fr) minmax(150px,220px) auto;align-items:center;gap:16px;padding:18px 0;border-top:1px solid var(--border)}.admin-user strong{display:block;overflow-wrap:anywhere}.admin-user small{display:block;color:var(--muted);margin-top:5px}.admin-user label{margin:0!important}.admin-user .check{margin:8px 0!important}.admin-user input[type=number]{width:90px!important}.admin-user .user-actions{display:flex;flex-direction:column;gap:6px}.project-dialog button:disabled{opacity:.55;cursor:wait}.cloud-caption{font-size:11px;color:var(--muted)}@media(max-width:900px){.app-header{align-items:flex-start}.app-header nav{gap:4px}.app-header nav button{font-size:11px;padding:5px 7px}.app-header .brand{min-width:100px}.project-dialog{padding:24px 18px}.project-entry,.project-current,.invite-form{align-items:stretch;flex-direction:column;gap:8px}.admin-user{grid-template-columns:1fr;gap:12px}.admin-user .user-actions{flex-direction:row}.project-current button,.invite-form button{margin-bottom:0}}

body:not(.auth-page){height:100dvh;display:flex;flex-direction:column;overflow:hidden}.app-header{flex-shrink:0}.workspace{height:auto!important;flex:1;min-height:0}body:not(.auth-page) .project-dialog{flex:none}.project-dialog .check{white-space:normal}.app-header .brand{flex-shrink:0}

:root{--danger:#9c3b2c}.project-hub,.admin-dialog{max-width:min(900px,calc(100vw - 32px))}.project-dialog .project-error{color:var(--muted)}.project-dialog .project-error.is-error,.project-dialog .project-error[role=alert]{color:var(--danger)}
.balcony-heading{font-size:11px;color:var(--muted);margin:16px 0 6px}.balcony-field{display:grid;grid-template-columns:minmax(0,1fr) 64px 30px;gap:5px;margin-top:5px}.balcony-field select,.balcony-field input{font-size:12px;padding:6px}.balcony-field button{min-height:32px;padding:0}
#furnitureSearch{margin-bottom:6px}.search-results{display:grid;max-height:260px;overflow:auto;border:1px solid var(--border);border-radius:5px;background:#fff;margin-bottom:6px}.search-results button{border:0;border-bottom:1px solid #eef0eb;border-radius:0;text-align:left;font-size:12px;min-height:34px;padding:6px 9px;background:#fff}.search-results button small{display:block;font-size:10px;color:var(--muted);font-weight:400;margin-top:2px}.search-results button.active{background:var(--accent)}.search-results .small-note{margin:8px 9px}

.measurement-panel{margin:0 16px 18px;padding:16px;background:#f3f6f0;border:1px solid #ccd8c8;border-radius:8px}.measurement-panel[hidden]{display:none}.measurement-panel h2{margin:0 0 12px}.measurement-value{display:block;font-size:26px;font-weight:650;line-height:1.3;color:#254c33;font-variant-numeric:tabular-nums}.measurement-row+.measurement-row{margin-top:12px}.measurement-row>span,.measurement-name{display:block;overflow-wrap:anywhere;margin:0 0 4px}.measurement-scale{border-top:1px solid #ccd8c8;margin-top:12px;padding-top:12px}.measurement-scale .check{margin-top:10px}.measurement-scale strong{display:block;font-size:13px}#scaleDialog input,#scaleDialog select{width:100%;min-height:42px;margin:6px 0 12px}#scaleDialog label{display:block}
