:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#1b1a17;--ink-2:#3f3d38;--text-2:#57544d;--muted:#858178;--faint:#aca89e;--line:#e7e4dd;--line-strong:#d7d3ca;--hover:#f6f5f1;--field:#f5f4f0;--chip:#ecebe6;--paper:#f3f2ee;--surface:#fff;--bar:#1b1a17;--bar-text:#f2f0ea;--bar-muted:#a9a59b;--bar-faint:#77736a;--bar-line:#34322d;--bar-hover:#2c2a26;--accent:#2b59c3;--accent-hover:#244ea9;--accent-soft:#e9eefa;--accent-line:#c5d2ef;--logo-tile:var(--accent);--logo-primary:#fff;--logo-secondary:#9fb8f2;--danger:#b8352b;--danger-soft:#fbeae8;--warning-soft:#fdf3dc;--warn:#d0602a;--warn-text:#e8a47f;--good:#2f8a57;--shadow-pop:0 10px 30px #1b1a1729;--shadow-float:0 4px 14px #1b1a171f;--series-1:#2a78d6;--series-2:#eb6834;--grid-line:#ecebe6;--font:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-family:var(--font);color:var(--ink);background:var(--surface);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.45}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{letter-spacing:-.012em;margin:0;font-size:20px;font-weight:600;line-height:28px}h2{margin:0 0 8px;font-size:14px;font-weight:600}h3{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:11px;font-weight:600}code,.mono{font-family:var(--mono)}.mono{font-size:12px}kbd{font-family:var(--mono);color:var(--faint);font-size:11px}button,.button{font:inherit;border:1px solid var(--line-strong);background:var(--surface);height:32px;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:4px;flex-direction:row;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}button:hover:not(:disabled),.button:hover{background:var(--hover);text-decoration:none}button:disabled{opacity:.45;cursor:default}button:focus-visible,.button:focus-within,a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled),.button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.danger{color:var(--danger)}button.danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}button.danger-solid:hover:not(:disabled){background:#9e2c23}button.ghost,.button.ghost{color:var(--text-2);background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){background:var(--hover);color:var(--ink)}button.subtle{color:var(--muted);font-weight:400}button.small,.button.small{height:26px;padding:0 8px;font-size:12px}button.block{width:100%;margin:4px 0}button.link{height:auto;color:var(--accent);background:0 0;border:0;padding:0;font-size:12px;font-weight:400}button.link:hover:not(:disabled){background:0 0;text-decoration:underline}.danger-text{color:var(--danger)!important}.icon-button{width:30px;height:30px;color:var(--muted);background:0 0;border:0;border-radius:4px;padding:0}.icon-button:hover:not(:disabled){background:var(--hover);color:var(--ink)}.icon-button.on{color:var(--accent)}.row-menu{width:28px;height:28px;color:var(--faint)}.row-menu:hover:not(:disabled),.row-menu.open{background:var(--chip);color:var(--text-2)}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:4px;width:100%;min-width:0;height:32px;padding:0 10px;font-size:13px;font-weight:400}select{padding:0 6px}textarea{resize:vertical;height:auto;padding:8px 10px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}input:disabled,select:disabled,textarea:disabled{color:var(--text-2);background:var(--hover)}input[type=checkbox],input[type=radio]{width:14px;height:14px;accent-color:var(--accent);box-shadow:none;flex:none;margin:0}input[type=range]{height:auto;accent-color:var(--accent);box-shadow:none;border:0;padding:0}input[type=color]{height:32px;padding:2px}label,.field{color:var(--text-2);flex-direction:column;gap:6px;font-size:12px;font-weight:500;display:flex}.field>span{color:var(--muted);font-size:12px}label.checkbox{color:var(--ink);flex-direction:row;align-items:center;gap:8px;font-size:13px;font-weight:400}label.compact{margin-top:6px}.length-input{align-items:center;display:flex;position:relative}.length-input input{font-family:var(--mono);padding-right:28px;font-size:13px}.length-input .suffix{font-family:var(--mono);color:var(--muted);pointer-events:none;font-size:12px;position:absolute;right:10px}.length-input.invalid input,.length-input.invalid{border-color:var(--danger)!important}.length-input.has-prefix{background:var(--field);border:1px solid #0000;border-radius:4px;height:28px}.length-input.has-prefix:hover{border-color:var(--line-strong)}.length-input.has-prefix:focus-within{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.length-input.has-prefix .prefix{text-align:center;min-width:22px;color:var(--muted);flex:none;padding:0 2px;font-size:12px}.length-input.has-prefix .prefix.word{padding:0 8px 0 4px}.length-input.has-prefix select{appearance:none}.length-input.has-prefix input,.length-input.has-prefix select{height:100%;box-shadow:none;font-family:var(--mono);background:0 0;border:0;flex:1;padding:0 4px 0 0;font-size:12px}.length-input.has-prefix .suffix{color:var(--faint);padding-right:8px;font-size:12px;position:static}fieldset{border:1px solid var(--line);border-radius:4px;flex-direction:column;gap:8px;margin:0 0 10px;padding:8px 10px 10px;display:flex}legend{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:0 4px;font-size:11px;font-weight:600}progress{width:100%;accent-color:var(--accent)}.segmented{border:1px solid var(--line-strong);border-radius:4px;font-size:12px;display:inline-flex;overflow:hidden}.segmented button{height:auto;color:var(--text-2);background:0 0;border:0;border-radius:0;padding:3px 9px;font-size:12px;font-weight:400}.segmented button.active,.segmented button.active:hover:not(:disabled){background:var(--ink);color:#fff;font-weight:500}.switch{background:#d3cfc6;border:0;border-radius:99px;flex:none;width:28px;height:16px;padding:0;transition:background .15s;position:relative}.switch:hover:not(:disabled){background:#c5c0b6}.switch.on,.switch.on:hover:not(:disabled){background:var(--accent)}.switch-knob{background:#fff;border-radius:50%;width:12px;height:12px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 1px #0003}.switch.on .switch-knob{left:14px}.tag{height:20px;color:var(--text-2);background:var(--chip);white-space:nowrap;border-radius:4px;align-items:center;padding:0 7px;font-size:12px;font-weight:500;display:inline-flex}.avatar{background:var(--chip);width:28px;height:28px;color:var(--text-2);letter-spacing:.02em;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex}.avatar-dark{width:26px;height:26px;color:var(--bar-text);background:#3a3833;font-size:11px}.muted{color:var(--muted)}.small{font-size:12px}.nowrap{white-space:nowrap}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row>label,.row>input{flex:1}.alert{border:1px solid var(--line-strong);background:var(--hover);border-radius:4px;margin:8px 0;padding:8px 12px;font-size:13px}.alert.error{background:var(--danger-soft);color:#7a2119;border-color:#e8b4ae}.alert.warning{background:var(--warning-soft);border-color:#e9cf8f}.alert.banner{border-width:0 0 1px;border-radius:0;align-items:center;gap:12px;margin:0;display:flex}.empty{color:var(--muted);text-align:center;padding:40px 12px}.empty p{margin:0 0 12px}.better{color:var(--good);font-weight:600}.worse{color:var(--danger)}.divider{color:var(--muted);align-items:center;gap:12px;font-size:12px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}ul.plain{margin:4px 0;padding:0;list-style:none}.list{margin:0;padding:0;list-style:none}@media (width>=901px){.mobile-only,.mobile-only-flex{display:none!important}}@media (width<=900px){.desktop-only,.desktop-only-cell{display:none!important}}.menu{display:inline-flex;position:relative}.menu-panel{z-index:40;background:var(--surface);border:1px solid var(--line-strong);min-width:180px;box-shadow:var(--shadow-pop);color:var(--ink);text-align:left;border-radius:6px;flex-direction:column;padding:4px;font-size:13px;display:flex;position:absolute;top:calc(100% + 6px)}.menu-panel.align-end{right:0}.menu-panel.align-start{left:0}.menu-item{width:100%;height:auto;color:var(--ink);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:4px;flex-direction:row;justify-content:flex-start;align-items:center;gap:8px;padding:7px 10px;font-size:13px;font-weight:400;display:flex}.menu-item:hover:not(:disabled){background:var(--hover)}.menu-item.danger{color:var(--danger)}.menu-separator{background:var(--line);height:1px;margin:4px -4px}.account-trigger{background:0 0;border:0;border-radius:50%;width:auto;height:auto;padding:0}.account-trigger:hover:not(:disabled){background:0 0}.account-trigger.open{box-shadow:0 0 0 2px var(--bar), 0 0 0 3.5px #8aa6e8}.account-panel{width:260px;padding:0}.account-who{border-bottom:1px solid var(--line);padding:12px 14px}.account-name{font-size:13px;font-weight:600}.account-email{color:var(--muted);text-overflow:ellipsis;font-size:12px;overflow:hidden}.account-settings{border-bottom:1px solid var(--line);padding:6px 0}.account-row{justify-content:space-between;align-items:center;padding:6px 14px;display:flex}.account-actions{padding:4px}.app{flex-direction:column;height:100%;display:flex}.app-main{flex:1;min-height:0;overflow:auto}.app-bar{height:calc(44px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 14px 0 16px;background:var(--bar);color:var(--bar-text);z-index:10;flex:none;align-items:center;display:flex;position:relative}.brand{color:var(--bar-text);white-space:nowrap;align-items:center;gap:9px;margin-right:22px;font-size:13px;font-weight:600;display:inline-flex}.brand:hover{text-decoration:none}.brand-mark{flex:none;display:block}.brand-mark-tile{fill:var(--logo-tile)}.brand-mark-primary{fill:var(--logo-primary)}.brand-mark-secondary{fill:var(--logo-secondary)}.app-nav{align-self:stretch;display:flex}.app-nav a{color:var(--bar-muted);align-items:center;padding:0 10px;font-size:13px;font-weight:500;display:flex;position:relative}.app-nav a:hover{color:var(--bar-text);text-decoration:none}.app-nav a.active{color:var(--bar-text)}.app-nav a.active:after{content:"";background:var(--bar-text);height:2px;position:absolute;bottom:0;left:10px;right:10px}.app-bar-end{align-items:center;gap:6px;margin-left:auto;display:flex}.page-loading{color:var(--muted);padding:32px}.page{--gutter:max(28px, calc((100% - 1160px) / 2));background:var(--surface);min-height:100%}.page-header{padding:28px var(--gutter) 20px;border-bottom:1px solid var(--line)}.page-header.with-breadcrumb{padding-top:20px}.page-header.with-tabs{padding-bottom:0}.breadcrumb{margin-bottom:4px;font-size:12px;display:flex}.breadcrumb a{color:var(--muted);align-items:center;gap:2px;display:inline-flex}.breadcrumb a:hover{color:var(--ink);text-decoration:none}.breadcrumb-sep{color:var(--faint);margin-left:6px}.page-header-row{align-items:flex-start;gap:16px;min-height:32px;display:flex}.page-heading{flex:1;min-width:0}.page-title{align-items:center;gap:10px;min-width:0;min-height:32px;display:flex}.page-title h1{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.count{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px}.page-title .count{font-size:14px;font-weight:400}.page-description{max-width:72ch;color:var(--muted);margin:2px 0 0;font-size:13px}.page-actions,.page-actions-inner{flex:none;gap:8px;margin-left:auto;display:flex}.page-tabs{scrollbar-width:none;gap:22px;margin-top:14px;display:flex;overflow-x:auto}.page-tabs::-webkit-scrollbar{display:none}.page-tabs button{height:auto;color:var(--muted);background:0 0;border:0;border-radius:0;align-items:baseline;padding:0 0 10px;font-size:13px;position:relative}.page-tabs button:hover:not(:disabled){color:var(--ink);background:0 0}.page-tabs button .count{font-size:12px}.page-tabs button.active{color:var(--ink)}.page-tabs button.active .count{color:var(--text-2)}.page-tabs button.active:after{content:"";background:var(--ink);height:2px;position:absolute;bottom:0;left:0;right:0}.page-body{padding:8px calc(var(--gutter) - 12px) 40px}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th{text-align:left;height:34px;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:0 12px;font-size:12px;font-weight:500}.data-table td{border-bottom:1px solid var(--line);vertical-align:middle;height:52px;padding:0 12px}.data-table .col-fill{width:100%;max-width:0}.data-table .col-menu{width:28px;padding-right:8px}.data-table tr.clickable{cursor:pointer}.data-table tr.clickable:hover td{background:var(--hover)}.name-line{align-items:baseline;gap:12px;min-width:0;display:flex}.row-link{color:var(--ink);white-space:nowrap;font-weight:500}.secondary{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.placeholder{color:var(--faint)}.cell-date{color:var(--text-2);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px}.cell-action{text-align:right}.compact-select{width:110px;height:28px;font-size:13px}.table-note{max-width:72ch;color:var(--muted);margin:0;padding:14px 12px;font-size:12px}.person{align-items:center;gap:10px;min-width:0;display:flex}.person-text{min-width:0;line-height:1.35}.person-name{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.you{color:var(--muted);font-weight:400}.person-email{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}tr.inactive .person{opacity:.5}.status-toggle{align-items:center;gap:8px;font-size:13px;display:inline-flex}tr.inactive .status-toggle{color:var(--muted)}.layout-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;padding:16px 12px;display:grid}.layout-card{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:6px;overflow:visible}.layout-card:hover{border-color:var(--line-strong)}.layout-thumb{background-color:var(--paper);border-bottom:1px solid var(--line);background-image:linear-gradient(#dfdcd4 1px,#0000 1px),linear-gradient(90deg,#dfdcd4 1px,#0000 1px),linear-gradient(#e9e7e1 1px,#0000 1px),linear-gradient(90deg,#e9e7e1 1px,#0000 1px);background-size:45px 45px,45px 45px,9px 9px,9px 9px;border-radius:6px 6px 0 0;height:188px;padding:20px 24px}.plan-preview{width:100%;height:100%;display:block}.layout-meta{align-items:center;gap:8px;padding:10px 8px 12px 12px;display:flex}.layout-text{flex:1;min-width:0}.layout-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-weight:500;display:block;overflow:hidden}.layout-detail{font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;gap:6px;margin-top:2px;font-size:12px;display:flex}.layout-detail .dot{color:var(--faint)}.settings{padding:0 12px}.settings-section{border-bottom:1px solid var(--line);grid-template-columns:280px minmax(0,520px);gap:48px;padding:24px 0;display:grid}.settings-section:last-child{border-bottom:0}.settings-intro h2{margin:0 0 4px;font-size:13px}.settings-intro p{color:var(--muted);margin:0;font-size:12px}.settings-fields{flex-direction:column;gap:16px;display:flex}.settings-submit{justify-content:flex-end;display:flex}.dialog-backdrop,.modal-backdrop{z-index:100;background:#1b1a1752;justify-content:center;align-items:flex-start;padding:110px 16px 16px;display:flex;position:fixed;inset:0;overflow:auto}.dialog{background:var(--surface);border-radius:6px;max-width:100%;box-shadow:0 20px 60px #1b1a174d}.dialog-header,.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:48px;padding:0 8px 0 18px;display:flex}.dialog-header h2,.modal-header h2{white-space:nowrap;margin:0;font-size:14px}.dialog-body{flex-direction:column;gap:16px;padding:18px;display:flex}.dialog-body p,.dialog-body .alert{margin:0}.dialog-footer{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.field-pair{grid-template-columns:1fr 1fr;gap:12px;display:grid}.dialog-note{color:var(--muted);font-size:12px}.error-text{color:var(--danger)}.login{background-color:var(--paper);place-items:center;min-height:100%;padding:16px;display:grid}.login-card{background:var(--surface);border:1px solid var(--line);width:min(380px,100%);box-shadow:var(--shadow-float);border-radius:8px;flex-direction:column;gap:20px;padding:32px;display:flex}.login-card p{margin:0}.login-brand{color:var(--ink);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.login-heading{flex-direction:column;gap:4px;display:flex}.login-heading p{font-size:13px}.login-note{color:var(--muted);font-size:12px;font-weight:500}.login-form button{height:36px;margin-top:4px}.button.google{height:36px}.editor{height:100%;color:var(--ink);background:var(--surface);flex-direction:column;display:flex}.editor-bar{height:calc(44px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 14px 0 16px;background:var(--bar);color:var(--bar-text);z-index:20;flex:none;align-items:center;gap:10px;display:flex;position:relative}.editor-bar .brand{margin:0}.editor-crumbs{align-items:center;gap:8px;min-width:0;margin-left:8px;font-size:13px;display:flex}.crumb{max-width:260px;color:var(--bar-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.crumb:hover{color:var(--bar-text);text-decoration:none}.crumb-sep{color:#5a574f}.title-block{min-width:0}.title-input{field-sizing:content;width:auto;min-width:6ch;max-width:360px;height:26px;color:var(--bar-text);background:0 0;border:0;border-radius:4px;margin:0 -6px;padding:3px 6px;font-size:13px;font-weight:500}.title-input:hover:not(:disabled),.title-input:focus{background:var(--bar-hover);box-shadow:0 0 0 1px #5a574f}.title-input:disabled{color:var(--bar-text);background:0 0}.editor-bar .version{font-family:var(--mono);color:var(--bar-faint);white-space:nowrap;font-size:12px}.save-status{color:var(--bar-muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.save-status.unsaved{color:var(--warn-text)}.status-dot{background:var(--warn);border-radius:50%;width:6px;height:6px}.bar-status{margin-left:6px}.bar-end{align-items:center;gap:2px;margin-left:auto;display:flex}.bar-group{align-items:center;gap:2px;display:flex}.bar-icon{width:30px;height:30px;color:var(--bar-muted);background:0 0;border:0;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.editor-bar .bar-icon:hover:not(:disabled),.editor-bar .bar-icon.open{background:var(--bar-hover);color:var(--bar-text)}.editor-bar .bar-icon:disabled{opacity:1;color:#56534c}.bar-divider{background:var(--bar-line);width:1px;height:18px;margin:0 8px}.bar-button{border-color:var(--bar-line);height:28px;color:var(--bar-text);background:0 0;padding:0 10px;font-size:12px}.bar-button:hover:not(:disabled),.bar-button.open{background:var(--bar-hover)}.bar-save{height:28px;margin:0 12px 0 6px;padding:0 12px;font-size:12px}.editor-bar .bar-save:disabled{opacity:1;border-color:var(--bar-line);color:var(--bar-faint);background:0 0}.editor-main{flex:1;grid-template:"dock canvas inspector"minmax(0,1fr)/48px minmax(0,1fr) 320px;min-height:0;display:grid}.canvas-area{grid-area:canvas;min-width:0;min-height:0;position:relative;overflow:hidden}.canvas-wrap{background:var(--paper);flex-direction:column;display:flex;position:absolute;inset:0}.canvas-viewport{flex:1;min-height:0;position:relative}.canvas{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:default;width:100%;height:100%;display:block;position:absolute;inset:0}.canvas.tool-pan,.canvas.panning{cursor:grab}.canvas.tool-wall,.canvas.tool-area,.canvas.tool-column,.canvas.tool-measure,.canvas.tool-equipment,.canvas.tool-stair,.canvas.tool-lift,.canvas.tool-door,.canvas.tool-double_door,.canvas.tool-sliding_door,.canvas.tool-window,.canvas.tool-dock{cursor:crosshair}.canvas.tool-flow{cursor:alias}.canvas .layer.locked{pointer-events:none}.canvas.tool-select .equipment{cursor:move}.canvas .handle{fill:#fff;stroke:var(--accent);cursor:grab}.canvas text{font-family:var(--font)}.float-controls{z-index:5;display:flex;position:absolute;top:12px}.float-controls.left{left:12px}.float-controls.right{right:12px}.button-group{background:var(--surface);border:1px solid var(--line-strong);border-radius:6px;display:flex;overflow:hidden;box-shadow:0 2px 8px #1b1a171a}.button-group .bar-icon{background:var(--surface);width:44px;height:44px;color:var(--ink-2);border-radius:0}.button-group .bar-icon+.bar-icon{border-left:1px solid var(--line)}.button-group .bar-icon:disabled{color:var(--faint)}.tool-hint{max-width:calc(100% - 48px);color:var(--bar-text);text-align:center;pointer-events:none;z-index:4;background:#1b1a17db;border-radius:4px;padding:5px 12px;font-size:12px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.chip{height:32px;box-shadow:var(--shadow-float);border-radius:4px;padding:0 12px}.draft-actions{z-index:6;gap:8px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.draft-note{height:32px;color:var(--bar-text);background:#1b1a17db;border-radius:4px;align-items:center;padding:0 12px;font-size:13px;display:inline-flex}.selection-toolbar{z-index:6;background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow-float);white-space:nowrap;border-radius:5px;align-items:center;display:flex;position:absolute;transform:translate(-50%,-100%)}.selection-toolbar button{background:0 0;border:0;height:28px;padding:0 9px;font-size:12px}.selection-toolbar button:first-child{border-radius:4px 0 0 4px}.selection-toolbar button:last-child{border-radius:0 4px 4px 0}.toolbar-sep{background:var(--line);width:1px;height:16px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.level-switch{z-index:5;position:absolute;top:12px;left:12px}.level-switch select{border:1px solid var(--line);background-color:var(--surface);font:inherit;color:var(--ink);border-radius:6px;padding:6px 28px 6px 10px;font-size:13px;font-weight:500;box-shadow:0 1px 2px #0000000f}.level-list{margin:0;padding:0;list-style:none}.level-list li{border-bottom:1px solid var(--line);align-items:center;gap:4px;display:flex}.level-list .level-row{min-width:0;min-height:36px;color:var(--text-2);font:inherit;text-align:left;background:0 0;border:0;border-radius:0;flex:1;justify-content:space-between;align-items:center;gap:12px;padding:0 8px 0 10px;font-size:13px;font-weight:400;line-height:1.3;display:flex;box-shadow:inset 2px 0 #0000}.level-list .level-row:hover:not(:disabled){background:var(--hover);color:var(--ink)}.level-list li.current .level-row{box-shadow:inset 2px 0 0 var(--accent);color:var(--ink);font-weight:600}.level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.level-elevation{font-family:var(--mono);color:var(--muted);flex:none;font-size:12px;font-weight:400}.level-action,.level-list .icon-button{flex:none;width:32px;height:32px}.level-fields{margin-top:12px}.level-copy{margin-top:10px}.drawing-aids{pointer-events:none;position:absolute;bottom:10px;left:12px;overflow:visible}.status-bar{background:var(--surface);border-top:1px solid var(--line);height:26px;font-family:var(--mono);color:var(--text-2);white-space:nowrap;flex:none;align-items:center;gap:18px;padding:0 12px;font-size:12px;display:flex;overflow:hidden}.status-cursor{white-space:pre;min-width:150px}.status-sep{color:var(--faint)}.status-button{height:auto;font:inherit;color:inherit;background:0 0;border:0;padding:0}.status-button:hover:not(:disabled){color:var(--ink);background:0 0}.status-button:disabled{opacity:1}.status-button .on{color:var(--good)}.status-button .off{color:var(--faint)}.status-selection{text-overflow:ellipsis;margin-left:auto;overflow:hidden}.status-zoom{align-items:center;gap:8px;display:inline-flex}.zoom-value{text-align:center;min-width:36px}.canvas-area .toast{position:absolute;bottom:44px}.tool-dock-wrap{z-index:8;background:var(--surface);border-right:1px solid var(--line);grid-area:dock;position:relative}.tool-dock{scrollbar-width:none;flex-direction:column;align-items:center;gap:2px;height:100%;padding:8px 0;display:flex;overflow-y:auto}.tool-dock::-webkit-scrollbar{display:none}.dock-slot{flex-direction:column;align-items:center;display:flex}.dock-divider{background:var(--line);width:24px;height:1px;margin:6px 0 8px}.dock-button{width:36px;height:36px;color:var(--ink-2);background:0 0;border:0;border-radius:4px;flex:none;padding:0;position:relative}.dock-button:hover:not(:disabled){background:var(--hover)}.dock-button.active,.dock-button.active:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.dock-caret{opacity:.5;border-bottom:3.5px solid;border-left:3.5px solid #0000;width:0;height:0;position:absolute;bottom:4px;right:4px}.dock-spacer{flex:1}.dock-help{color:var(--muted)}.dock-picker{left:calc(100% + 6px);top:var(--picker-top,8px);max-height:calc(100% - var(--picker-top,8px) - 8px);border:1px solid var(--line-strong);background:var(--surface);width:max-content;max-width:calc(100vw - 16px);box-shadow:var(--shadow-pop);z-index:30;border-radius:6px;flex-direction:column;gap:2px;padding:4px;display:flex;position:absolute;overflow-y:auto}.picker-option{text-transform:capitalize;background:0 0;border:0;border-radius:4px;justify-content:flex-start;gap:8px;height:32px;padding:0 10px;font-weight:400}.picker-option.active,.picker-option.active:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.zone-swatch{border:1px solid var(--line-strong);border-radius:2px;width:16px;height:16px}.zone-swatch.zone-aisle{background-image:repeating-linear-gradient(45deg,#0000 0 3px,#d4a01773 3px 4px)!important}.zone-swatch.zone-keepout{background-image:repeating-linear-gradient(-45deg,#0000 0 3px,#dc262673 3px 4px)!important}.dock-picker.library{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));width:min(560px,100vw - 80px);max-height:min(460px,100dvh - 120px);padding:6px;display:grid;overflow-y:auto}.library-item{white-space:normal;text-align:center;background:0 0;border:1px solid #0000;border-radius:4px;flex-direction:column;gap:4px;height:auto;padding:8px 6px;font-size:12px;font-weight:400}.library-item.active{border-color:var(--accent-line);background:var(--accent-soft)}.symbol-thumb{width:100%;height:52px}.inspector{background:var(--surface);border-left:1px solid var(--line);flex-direction:column;grid-area:inspector;min-height:0;font-size:13px;display:flex}.sheet-peek{display:none}.inspector-body{flex-direction:column;flex:1;min-height:0;display:flex}.inspector-tabs{border-bottom:1px solid var(--line);white-space:nowrap;scrollbar-width:none;flex:none;align-items:flex-end;gap:14px;height:38px;padding:0 12px;display:flex;overflow-x:auto}.inspector-tabs::-webkit-scrollbar{display:none}.inspector-tabs button{height:auto;color:var(--muted);background:0 0;border:0;border-radius:0;flex:none;padding:0 0 10px;font-size:12px;position:relative}.inspector-tabs button:hover:not(:disabled){color:var(--ink);background:0 0}.inspector-tabs button.active{color:var(--ink)}.inspector-tabs button.active:after{content:"";background:var(--ink);height:2px;position:absolute;bottom:-1px;left:0;right:0}.inspector-scroll{overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}.swatch-box{border:1.5px solid var(--swatch);background:color-mix(in srgb, var(--swatch) 14%, #fff);flex:none;width:14px;height:14px}.props input:not([type=checkbox]):not([type=color]),.props select{background:var(--field);border-color:#0000;height:28px;font-size:13px}.props input:not([type=checkbox]):not([type=color]):hover,.props select:hover{border-color:var(--line-strong)}.props input:focus,.props select:focus{background:var(--surface)}.props .length-input.has-prefix input,.props .length-input.has-prefix select{height:100%;box-shadow:none;background:0 0;border:0;font-size:12px}.props .length-input:not(.has-prefix) input{font-size:12px}.props button:not(.link):not(.danger){height:28px;font-size:12px}.props-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 14px 12px;display:flex}.props-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.props-section{border-bottom:1px solid var(--line);padding:12px 14px 14px}.props-section-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.props-section-head h3{margin:0}.props-grid{grid-template-columns:1fr 1fr;align-items:center;gap:8px;display:grid}.props-stack{flex-direction:column;gap:8px;display:flex}.color-field{background:var(--field);cursor:pointer;border:1px solid #0000;border-radius:4px;flex-direction:row;align-items:center;gap:8px;height:28px;padding:0 8px}.color-field:hover{border-color:var(--line-strong)}.color-field input[type=color]{cursor:pointer;background:0 0;border:0;border-radius:2px;flex:none;width:14px;height:14px;padding:0}.color-field input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-field input[type=color]::-webkit-color-swatch{border:0;border-radius:2px}.color-field input[type=color]::-moz-color-swatch{border:0;border-radius:2px}.color-field span{font-family:var(--mono);color:var(--ink);font-size:12px;font-weight:400}.props-note{color:var(--muted);margin:8px 0 0;font-size:12px}.props-note.mono{font-size:12px}.props-note.warning{color:var(--danger)}.revisions{margin-top:12px}.revisions-head{color:var(--muted);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12px;display:flex}.revision-summary{align-items:center;gap:8px;min-width:0;display:flex}.revision-mark{color:var(--text-2);flex:none}input[type=date]{text-align:left;width:100%;min-width:0}input[type=date]::-webkit-date-and-time-value{text-align:left}.props-stack.spaced,.props-grid.spaced{margin-top:12px}.props-route{margin:0 0 10px}label.checkbox.described{align-items:flex-start;margin-top:10px;font-size:13px;line-height:1.4}label.checkbox.described input{margin-top:2px}.checkbox .description{color:var(--muted);font-size:12px;display:block}.props-flows{margin:0;padding:0;list-style:none}.props-flows li{align-items:center;gap:8px;height:28px;display:flex}.props-flows li+li{border-top:1px solid var(--line)}.props-flows .direction{width:34px;color:var(--muted);font-size:12px}.props-flows .other{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.props-flows .mono{color:var(--text-2)}.props-footer{padding:12px 14px}.props-empty{color:var(--muted);padding:14px}.panel-body{flex-direction:column;gap:10px;padding:12px 14px;display:flex}.panel-title{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.panel-title.spaced{margin-top:12px}.field-row{grid-template-columns:1fr 1fr;align-items:end;gap:8px;display:grid}.slider{grid-template-columns:1fr 90px 2rem;align-items:center;gap:6px;font-size:12px;display:grid}.slider output{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}.inline-form{grid-template-columns:1fr 1fr 4rem auto;gap:4px;display:grid}.inline-form select,.inline-form input,.inline-form button{height:28px;padding:0 6px;font-size:12px}.stats{grid-template-columns:1fr auto;gap:4px 12px;margin:0;font-size:12px;display:grid}.stats dt{color:var(--muted)}.stats dd{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;margin:0;font-size:12px}.run{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding-top:10px;display:flex}.status{font-weight:600}.status-succeeded{color:var(--good)}.status-failed{color:var(--danger)}.status-running,.status-queued{color:#b7791f}.table{border-collapse:collapse;width:100%;font-size:12px}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:5px 6px;font-size:11px;font-weight:500}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:5px 6px}.table.compact td,.table.compact th{padding:4px}.table.compact input{width:4.5rem;height:26px;font-family:var(--mono);padding:0 4px;font-size:12px}.table.compact button{height:26px}.table tr.total td{font-weight:600}.results td:not(:first-child),.results th:not(:first-child){text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums}.layer-list{margin:0;padding:0;list-style:none}.layer-list li{border-bottom:1px solid var(--line);align-items:center;gap:4px;padding:4px 0;display:flex}.layer-list .layer-name{flex:1}.layer-list .layer-count{font-family:var(--mono);color:var(--faint);text-align:right;min-width:1.5rem;margin-right:4px;font-size:12px}.layer-list .hidden-layer .layer-name{color:var(--muted)}.layer-list .icon-button{width:32px;height:32px}details.history summary,details.table-view summary{cursor:pointer;color:var(--text-2);font-size:12px}.toast{z-index:50;box-shadow:var(--shadow-float);background:var(--ink);color:var(--bar-text);border-radius:4px;padding:7px 14px;font-size:13px;position:fixed;bottom:40px;left:50%;transform:translate(-50%)}.toast.error{background:var(--danger);color:#fff}.modal-backdrop{align-items:center;padding-top:16px}.modal{background:var(--surface);width:min(760px,100%);max-height:85dvh;color:var(--ink);border-radius:6px;overflow-y:auto;box-shadow:0 20px 60px #1b1a174d}.help-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px 24px;padding:16px 18px 20px;display:grid}.help-grid dl{grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:13px;display:grid}.help-grid dt{font-family:var(--mono);font-size:12px;font-weight:500}.help-grid dd{color:var(--text-2);margin:0}.viz-root{margin:4px 0}.energy-chart figcaption{color:var(--ink);font-size:12px;font-weight:600}.energy-chart .legend{color:var(--text-2);gap:14px;margin:2px 0;font-size:12px;display:flex}.energy-chart .legend span{align-items:center;gap:5px;display:inline-flex}.swatch.series-1{background:var(--series-1)}.swatch.series-2{background:var(--series-2)}.chart-box{position:relative}.chart-box svg{width:100%;height:auto;display:block}.energy-chart .gridline{stroke:var(--grid-line);stroke-width:1px}.energy-chart .tick,.energy-chart .direct-label{font-family:var(--mono);fill:var(--muted);font-size:9px}.energy-chart .direct-label{fill:var(--text-2)}.energy-chart .line{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.energy-chart .line.series-1{stroke:var(--series-1)}.energy-chart .line.series-2{stroke:var(--series-2);stroke-opacity:.85}.energy-chart .crosshair{stroke:var(--muted);stroke-width:1px;stroke-dasharray:2 2}.energy-chart .dot{stroke:var(--surface);stroke-width:2px}.energy-chart .dot.series-1{fill:var(--series-1)}.energy-chart .dot.series-2{fill:var(--series-2)}.chart-tooltip{background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow-float);pointer-events:none;color:var(--ink);white-space:nowrap;border-radius:4px;padding:5px 8px;font-size:12px;position:absolute;top:4px}.chart-tooltip .tooltip-title{font-weight:600}.chart-tooltip .swatch{width:8px;height:8px}@media (width<=900px){:root{font-size:15px}input,select,textarea{font-size:16px}.brand-name{display:none}.brand{margin-right:12px}.app-bar{height:calc(48px + env(safe-area-inset-top,0px))}.app-nav a{font-size:15px}.page-header{padding:18px 16px 14px}.page-header.with-breadcrumb{padding-top:14px}.page-header h1{font-size:22px;line-height:28px}.page-header-row{flex-wrap:wrap;gap:6px 10px}.page-description{font-size:14px}.page-header .page-actions button{height:40px;padding:0 16px;font-size:15px}.breadcrumb{font-size:14px}.page-tabs{gap:20px;margin-top:16px}.page-tabs button{font-size:15px}.page-body{padding:0 0 32px}.page-body>.alert{margin:12px 16px}.mobile-actions{grid-template-columns:1fr 1fr;gap:10px;padding:12px 16px 0;display:grid}.mobile-actions span{display:contents}.mobile-actions>:only-child{grid-column:1/-1}.mobile-actions button,.mobile-actions .button{width:100%;height:44px;font-size:15px}.data-table,.data-table tbody{display:block}.data-table thead{display:none}.data-table tr{border-bottom:1px solid var(--line);align-items:center;gap:6px 12px;padding:12px 16px;display:grid}.data-table td{border:0;min-width:0;height:auto;padding:0;display:block}.data-table .col-fill{width:auto;max-width:none}.data-table .col-menu{width:auto;padding:0}.projects-table tr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name chevron""role chevron"}.projects-table .cell-name{grid-area:name}.projects-table .cell-role{grid-area:role;align-items:center;gap:10px;display:flex}.projects-table .col-menu{color:var(--faint);grid-area:chevron}.projects-table .name-line{flex-direction:column;align-items:stretch;gap:2px}.projects-table .row-link{text-overflow:ellipsis;font-size:16px;overflow:hidden}.row-chevron{display:block}.members-table tr{grid-template-columns:minmax(0,1fr) auto auto}.users-table tr{grid-template-columns:minmax(0,1fr) auto;padding:14px 16px}.person .avatar{width:38px;height:38px;font-size:12px}.person{gap:14px}.person-name{font-size:15px}.person-email{font-size:14px}.person-extra{align-items:center;gap:8px;margin:4px 0 0 52px;font-size:13px;display:flex}tr.inactive .person-extra{opacity:.5}.switch{width:36px;height:22px}.switch-knob{width:18px;height:18px}.switch.on .switch-knob{left:16px}.table-note{padding:14px 16px}.layout-grid{grid-template-columns:minmax(0,1fr);gap:12px;padding:12px 16px}.layout-thumb{height:178px;padding:0}.layout-meta{padding:12px 10px 12px 14px}.layout-name{font-size:15px}.row-menu{width:40px;height:40px}.settings{padding:0 16px}.settings-section{grid-template-columns:minmax(0,1fr);gap:12px}.dialog-backdrop{padding-top:48px}.dialog-footer button{height:40px}.editor-bar{height:calc(52px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 6px 0;gap:4px}.bar-back,.editor-bar .bar-end .bar-icon{width:44px;height:44px;color:var(--bar-text)}.editor-bar .bar-end .bar-icon{color:var(--bar-muted)}.editor-crumbs{flex:1;margin:0}.title-block{flex:1;line-height:1.25}.title-input{text-overflow:ellipsis;width:100%;max-width:none;height:22px;margin:0;padding:0;font-size:15px;font-weight:600}.title-input:hover:not(:disabled),.title-input:focus{padding:0 4px}.title-status{color:var(--bar-muted);align-items:center;gap:6px;font-size:12px;display:flex}.title-status .dot{color:var(--bar-faint)}.bar-save{height:34px;margin:0 2px 0 6px;padding:0 14px;font-size:14px}.editor-main{grid-template:"canvas"minmax(0,1fr)"inspector""dock"/minmax(0,1fr)}.status-bar,.selection-toolbar{display:none}.drawing-aids{bottom:26px}.level-switch{left:50%;transform:translate(-50%)}.tool-hint{max-width:calc(100% - 120px);top:68px;left:auto;right:12px;transform:none}.draft-actions{bottom:24px}.chip{height:40px;font-size:14px}.canvas-area .toast{bottom:28px}.inspector{z-index:8;border-left:0;border-radius:14px 14px 0 0;margin-top:-14px;font-size:14px;position:relative;overflow:hidden;box-shadow:0 -6px 20px #1b1a171a}.sheet-peek{display:block}.sheet-handle{background:0 0;border:0;border-radius:0;width:100%;height:18px;padding:8px 0 4px;display:flex}.sheet-handle:hover:not(:disabled){background:0 0}.sheet-handle span{background:var(--line-strong);border-radius:2px;width:36px;height:4px}.sheet-summary{align-items:center;gap:8px;padding:2px 12px 12px 16px;display:flex}.sheet-title-button{text-align:left;background:0 0;border:0;flex:1;justify-content:flex-start;gap:10px;min-width:0;height:40px;padding:0}.sheet-title-button:hover:not(:disabled){background:0 0}.sheet-text{flex-direction:column;min-width:0;line-height:1.3;display:flex}.sheet-title{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.sheet-detail{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-size:12px;font-weight:400}.sheet-action{height:40px;padding:0 12px;font-size:14px}.inspector-body{border-top:1px solid var(--line);flex:none;height:52dvh;display:none}.sheet-open .inspector-body{display:flex}.inspector-tabs{gap:20px;height:44px;padding:0 16px}.inspector-tabs button{padding-bottom:12px;font-size:14px}.props-head{display:none}.props-section{padding:14px 16px 16px}.props input:not([type=checkbox]):not([type=color]),.props select,.props .length-input.has-prefix,.color-field{height:44px}.props .length-input.has-prefix input,.props .length-input.has-prefix select{font-size:16px}.props-grid{gap:10px}.tool-dock-wrap{z-index:10;border-right:0;border-top:1px solid var(--line);min-width:0}.tool-dock{height:auto;padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;flex-direction:row;gap:0;position:relative;overflow:auto hidden}.tool-dock:before,.tool-dock:after{content:"";flex:1 0 0}.tool-dock:after{order:2}.dock-slot{flex:none}.dock-divider,.dock-spacer,.dock-help{display:none}.slot-measure{order:1}.dock-button{border-radius:6px;width:42px;height:46px}.dock-picker{flex-flow:wrap;max-height:none;padding:6px;top:auto;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.picker-option{height:44px;padding:0 12px}.dock-picker.library{width:calc(100vw - 16px);max-height:55dvh}}
