@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-wdth-normal-rJmnGBSt.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-wdth-normal-7khWdh9v.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-wdth-normal-DY7AcnAa.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--n-0:oklch(99.4% .002 165);--n-50:oklch(97.8% .004 165);--n-100:oklch(95.8% .005 165);--n-150:oklch(93.5% .006 165);--n-200:oklch(90.5% .007 165);--n-300:oklch(84.5% .008 165);--n-400:oklch(70% .01 165);--n-500:oklch(52% .012 165);--n-600:oklch(44% .013 165);--n-700:oklch(35% .013 165);--n-800:oklch(26% .013 165);--n-850:oklch(23.5% .012 165);--n-900:oklch(20.5% .012 165);--n-950:oklch(17.2% .011 165);--bg:var(--n-100);--surface:var(--n-0);--glass:color-mix(in oklch, var(--n-0) 84%, transparent);--glass-line:color-mix(in oklch, var(--n-0) 60%, var(--n-200));--field:var(--n-0);--sunken:var(--n-150);--hover:var(--n-150);--line:var(--n-200);--line-strong:var(--n-300);--ink:var(--n-800);--ink-2:var(--n-600);--ink-3:var(--n-500);--accent:oklch(52% .115 163);--accent-strong:oklch(45% .105 163);--accent-soft:oklch(94.5% .035 163);--accent-ink:oklch(40% .09 163);--on-accent:var(--n-0);--alert:oklch(54% .17 28);--alert-soft:oklch(95.5% .028 28);--warn:oklch(50% .11 68);--warn-soft:oklch(96% .045 88);--info:oklch(50% .13 255);--info-soft:oklch(95.5% .025 255);--ok:var(--accent-strong);--ok-soft:var(--accent-soft);--hot:oklch(96.5% .05 95);--sun:oklch(80% .15 78);--sun-ink:oklch(52% .12 60);--wind:oklch(56% .13 262);--canvas:var(--n-100);--canvas-grid:oklch(91.5% .006 165);--canvas-grid-major:oklch(87.5% .008 165);--canvas-ink:var(--n-800);--canvas-ghost:oklch(45% .012 165/.4);--room-line:var(--n-0);--wall:oklch(29% .014 165);--opening:oklch(29% .014 165);--pane:oklch(98.5% .006 220);--sel:var(--accent-strong);--dim:var(--accent-ink);--guide:oklch(58% .14 255);--draft-fill:oklch(52% .115 163/.12);--handle:var(--n-0);--handle-line:var(--n-800);--site-ground:var(--n-0);--site-line:var(--n-300);--site-walk:oklch(93.5% .01 85);--street:oklch(33% .01 165);--city-ground:oklch(94.8% .005 165);--city-road:oklch(87% .004 165);--city-walk:oklch(97.5% .004 85);--city-building:oklch(80% .009 165);--city-building-line:oklch(68% .01 165);--city-green:oklch(90% .045 145);--city-wood:oklch(85% .06 145);--city-tree:oklch(72% .08 145/.8);--city-water:oklch(87% .045 235);--city-sand:oklch(93.5% .035 85);--city-lot:oklch(90% .004 165);--city-contour:oklch(58% .07 70/.55);--city-contour-major:oklch(52% .08 70/.85);--tag-bg:var(--n-800);--tag-ink:var(--n-0);--shadow-1:0 1px 2px oklch(25% .02 165/.07), 0 4px 14px oklch(25% .02 165/.06);--shadow-2:0 1px 3px oklch(25% .02 165/.07), 0 14px 40px oklch(25% .02 165/.12);--shadow-3:0 2px 6px oklch(20% .02 165/.1), 0 28px 70px oklch(20% .02 165/.22);--scrim:oklch(25% .02 165/.35);--r-s:7px;--r-m:10px;--r-l:16px;--font:"Archivo Variable", "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;--ease-out:cubic-bezier(.22, 1, .36, 1);--sk-hi:var(--n-50);--paper:var(--bg);--paper-hi:var(--surface);--paper-2:var(--sunken);--paper-3:var(--line-strong);--blueline:var(--accent);--blueline-soft:var(--accent-soft);--canary:var(--sel);--foam:var(--room-line);--mat:var(--canvas);--mat-deep:var(--line-strong);--mat-line:var(--canvas-grid);--mat-line-major:var(--canvas-grid-major);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:var(--n-950);--surface:var(--n-900);--glass:color-mix(in oklch, var(--n-900) 82%, transparent);--glass-line:oklch(30% .012 165);--field:var(--n-850);--sunken:oklch(25% .012 165);--hover:oklch(27% .012 165);--line:oklch(29% .012 165);--line-strong:oklch(36% .013 165);--ink:oklch(94% .006 165);--ink-2:oklch(79% .01 165);--ink-3:oklch(67% .011 165);--accent:oklch(74% .12 163);--accent-strong:oklch(79% .12 163);--accent-soft:oklch(31% .05 163);--accent-ink:oklch(85% .09 163);--on-accent:oklch(18% .02 163);--alert:oklch(72% .15 28);--alert-soft:oklch(31% .06 28);--warn:oklch(83% .12 82);--warn-soft:oklch(32% .05 82);--info:oklch(76% .11 255);--info-soft:oklch(31% .05 255);--hot:oklch(33% .05 95);--sun:oklch(83% .15 80);--sun-ink:oklch(86% .13 80);--wind:oklch(74% .12 250);--canvas:oklch(18.2% .012 165);--canvas-grid:oklch(22.5% .012 165);--canvas-grid-major:oklch(27% .013 165);--canvas-ink:oklch(94% .006 165);--canvas-ghost:oklch(90% .01 165/.3);--room-line:oklch(20% .012 165);--wall:oklch(88% .008 165);--opening:oklch(92% .008 165);--pane:oklch(50% .03 225);--sel:oklch(88% .15 95);--dim:oklch(88% .15 95);--guide:oklch(76% .12 255);--draft-fill:oklch(88% .15 95/.14);--handle:var(--n-900);--handle-line:oklch(94% .006 165);--site-ground:oklch(23.5% .012 165);--site-line:oklch(36% .013 165);--site-walk:oklch(33% .012 85);--street:oklch(12% .008 165);--city-ground:oklch(20% .009 165);--city-road:oklch(15.5% .007 165);--city-walk:oklch(25.5% .009 165);--city-building:oklch(33% .012 165);--city-building-line:oklch(42% .012 165);--city-green:oklch(28% .045 150);--city-wood:oklch(31% .06 150);--city-tree:oklch(42% .08 150/.8);--city-water:oklch(29% .055 240);--city-sand:oklch(32% .03 85);--city-lot:oklch(23% .007 165);--city-contour:oklch(62% .06 75/.45);--city-contour-major:oklch(70% .07 75/.7);--tag-bg:oklch(94% .006 165);--tag-ink:var(--n-900);--shadow-1:0 1px 2px oklch(0% 0 0/.3), 0 4px 14px oklch(0% 0 0/.25);--shadow-2:0 1px 3px oklch(0% 0 0/.3), 0 14px 40px oklch(0% 0 0/.4);--shadow-3:0 2px 6px oklch(0% 0 0/.35), 0 28px 70px oklch(0% 0 0/.55);--scrim:oklch(8% .01 165/.6);--sk-hi:oklch(30% .012 165);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--ink);background:var(--bg);font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.4}:root[data-theme=dark] body{font-weight:380}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-soft);color:var(--ink)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}html,body{overflow:hidden}.app{background:var(--bg);grid-template-rows:56px 1fr 30px;grid-template-columns:minmax(0,1fr);height:100vh;display:grid;overflow:hidden}.workspace{--inset-l:324px;--inset-r:364px;min-height:0;position:relative}.workspace.left-closed{--inset-l:0px}.workspace.right-closed{--inset-r:0px}.topbar{background:var(--bg);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;min-width:0;padding:0 14px;display:grid}.topbar>.flow{justify-self:center;min-width:0}.topbar-side{align-items:center;gap:8px;min-width:0;display:flex}.topbar-side.end{justify-content:flex-end}.brand{letter-spacing:-.015em;white-space:nowrap;flex:none;align-items:center;gap:8px;font-size:19px;font-weight:780;font-stretch:118%;display:flex}.brand-mark{flex:none;width:24px;height:24px}.topbar .project-name{border-radius:var(--r-s);text-overflow:ellipsis;background:0 0;border:1px solid #0000;flex:0 200px;min-width:80px;padding:4px 8px;font-weight:600}.project-name:hover{border-color:var(--line-strong)}.project-name:focus{background:var(--field);border-color:var(--accent);outline:none}.spacer{flex:1}.topbar .divider{background:var(--line-strong);flex:none;width:1px;height:22px}.btn{border:1px solid var(--line-strong);border-radius:var(--r-s);background:var(--field);cursor:pointer;white-space:nowrap;height:32px;transition:background-color .15s var(--ease-out), border-color .15s var(--ease-out);align-items:center;gap:6px;padding:0 12px;font-weight:550;display:inline-flex}.btn:hover{background:var(--hover);border-color:var(--ink-3)}.btn:active{background:var(--sunken)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--hover)}.btn.danger{color:var(--alert)}.btn.small{height:28px;padding:0 10px;font-size:12px}.btn svg{flex:none;width:15px;height:15px}.icon-btn{border-radius:var(--r-s);cursor:pointer;width:32px;height:32px;color:var(--ink-2);transition:background-color .15s var(--ease-out), color .15s var(--ease-out);background:0 0;border:1px solid #0000;flex:none;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--hover);color:var(--ink)}.icon-btn:disabled{opacity:.35;cursor:default;background:0 0}.icon-btn.active{background:var(--ink);color:var(--surface)}.icon-btn svg{width:17px;height:17px}.seg{background:var(--sunken);border-radius:99px;gap:2px;padding:3px;display:inline-flex}.seg button{cursor:pointer;color:var(--ink-2);white-space:nowrap;transition:background-color .15s var(--ease-out), color .15s var(--ease-out);background:0 0;border:0;border-radius:99px;align-items:center;gap:5px;padding:4px 11px;display:inline-flex}.seg button:hover{color:var(--ink)}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1);font-weight:600}.seg button svg{width:14px;height:14px}input[type=text],input[type=number],input[type=search],input[type=date],input[type=time],input:not([type]),select,textarea{border:1px solid var(--line-strong);border-radius:var(--r-s);background:var(--field);min-width:0;height:32px;padding:0 9px}textarea{resize:vertical;height:auto;padding:7px 9px;line-height:1.45}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}input[type=number]{text-align:right}input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;margin:0}input[type=range]{accent-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--ink-3)}.field{gap:5px;display:grid}.field>span{color:var(--ink-2);font-size:12px}.field-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.field-row.three{grid-template-columns:1fr 1fr 1fr}.with-unit{display:flex;position:relative}.with-unit input{width:100%;padding-right:30px}.with-unit em{color:var(--ink-3);pointer-events:none;font-size:12px;font-style:normal;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.check{cursor:pointer;align-items:center;gap:8px;display:flex}.hint{color:var(--ink-3);font-size:12px}.muted{color:var(--ink-3)}.panel{z-index:10;background:var(--glass);-webkit-backdrop-filter:blur(18px)saturate(1.3);border:1px solid var(--glass-line);border-radius:var(--r-l);min-height:0;box-shadow:var(--shadow-2);flex-direction:column;display:flex;position:absolute;top:12px;bottom:12px;overflow:hidden}.panel.left{width:300px;left:12px}.panel.right{width:340px;right:12px;container-type:inline-size}@container (width<=400px){.tabs button:not(.on) .tab-label{display:none}}.panel-head{align-items:center;gap:8px;padding:12px 12px 8px 16px;display:flex}.panel-head h2{flex:1;margin:0;font-size:15px;font-weight:680}.panel-body{flex:1;min-height:0;overflow:auto}.panel-foot{border-top:1px solid var(--line);gap:8px;padding:12px 14px;display:grid}.section{border-bottom:1px solid var(--line);gap:10px;padding:14px 16px;display:grid}.section:last-child{border-bottom:0}.section h3{align-items:center;gap:6px;margin:0;font-size:13px;font-weight:680;display:flex}.section h3 .spacer{flex:1}.section.lift{background:color-mix(in oklch, var(--surface) 70%, transparent)}.panel-reopen{z-index:9;border:1px solid var(--glass-line);background:var(--glass);-webkit-backdrop-filter:blur(14px);height:34px;box-shadow:var(--shadow-1);cursor:pointer;color:var(--ink);border-radius:99px;align-items:center;gap:6px;padding:0 12px;font-weight:600;display:inline-flex;position:absolute;top:12px}.panel-reopen svg{width:15px;height:15px;color:var(--ink-2)}.panel-reopen.left{left:12px}.panel-reopen.right{right:12px}.tabs{scrollbar-width:none;border-bottom:1px solid var(--line);gap:2px;padding:8px 8px 0;display:flex;overflow-x:auto}.tabs button{cursor:pointer;color:var(--ink-2);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;align-items:center;gap:6px;margin-bottom:-1px;padding:7px 8px 9px;display:inline-flex}.tabs button svg{width:14px;height:14px}.tabs button{position:relative}.tabs button.on{color:var(--ink);font-weight:650}.tab-line{background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:-2px;left:0;right:0}.tabs button:hover{color:var(--ink)}.program-tools{grid-template-columns:1fr auto;gap:6px;padding:0 12px 8px 16px;display:grid}.group-head{background:color-mix(in oklch, var(--surface) 92%, transparent);z-index:1;align-items:center;gap:8px;padding:12px 14px 4px 16px;font-weight:650;display:flex;position:sticky;top:0}.group-head .count{color:var(--ink-3);font-weight:400}.group-head .sum{color:var(--ink-2);margin-left:auto;font-weight:500}.swatch{border-radius:3px;flex:none;width:11px;height:11px;box-shadow:inset 0 0 0 1px oklch(20% .02 165/.14)}.prow{cursor:pointer;border-radius:0;grid-template-columns:11px 1fr auto;align-items:center;gap:8px;padding:6px 14px 6px 16px;display:grid}.prow:hover{background:var(--hover)}.prow.sel{background:var(--accent-soft)}.prow.sel .name{color:var(--accent-ink);font-weight:650}.prow .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.prow.unplaced .name{color:var(--ink-2);font-style:italic}.prow .meta{color:var(--ink-2);align-items:center;gap:6px;font-size:12px;display:flex}.prow .lvl{color:var(--ink-3);font-size:11px;font-stretch:85%}.delta{border-radius:4px;padding:0 5px;font-size:11px}.delta.over{color:var(--alert);background:var(--alert-soft)}.delta.under{color:var(--warn);background:var(--warn-soft)}.totals{grid-template-columns:1fr auto;gap:2px 12px;font-size:12px;display:grid}.totals dt{color:var(--ink-2)}.totals dd{text-align:right;margin:0;font-weight:600}.stage{min-width:0;min-height:0;display:grid;position:absolute;inset:0}.stage.split{grid-template-columns:1fr 1fr}.stage.split>.canvas-wrap+.canvas-wrap{border-left:1px solid var(--line-strong)}.canvas-wrap{background:var(--canvas);min-width:0;min-height:0;position:relative;overflow:hidden}.canvas-wrap svg.plan{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block;position:absolute;inset:0}.plan text{font-family:var(--font)}.room-label{fill:oklch(22% .015 165);pointer-events:none;font-weight:640;font-stretch:82%}.room-area{fill:oklch(22% .015 165/.72);pointer-events:none;font-stretch:82%}.dim-label{fill:var(--dim);pointer-events:none;font-size:11px;font-weight:650;font-stretch:85%}.float{z-index:5;align-items:center;gap:6px;display:flex;position:absolute}.float.tl{top:12px;left:calc(var(--inset-l,0px) + 12px)}.float.tr{top:12px;right:calc(var(--inset-r,0px) + 12px)}.float.bl{bottom:12px;left:calc(var(--inset-l,0px) + 12px)}.float.br{bottom:12px;right:calc(var(--inset-r,0px) + 12px)}.float.tc,.float.bc{left:calc(var(--inset-l,0px) + (100% - var(--inset-l,0px) - var(--inset-r,0px)) / 2);transform:translate(-50%)}.float.tc{top:12px}.workspace.left-closed .float.tl,.workspace.right-closed .float.tr{top:56px}@media (width<=1000px){.workspace .float.tl,.workspace .float.tr{top:56px}}.float.bc{bottom:12px}.stage.split>.canvas-wrap:first-child{--inset-r:0px}.stage.split>.canvas-wrap+.canvas-wrap{--inset-l:0px}.workspace.left-closed .stage.split>.canvas-wrap+.canvas-wrap .float.tl,.workspace.right-closed .stage.split>.canvas-wrap:first-child .float.tr{top:12px}.float{max-width:calc(100% - var(--inset-l,0px) - var(--inset-r,0px) - 24px)}.float .toolbar{flex-wrap:wrap}.float.tc,.float.bc{width:max-content}.stage.split .tool-label{display:none}.stage.split .toolbar .tool-btn{padding:0 8px}.toolbar.compact .tool-label{display:none}.toolbar.compact .tool-btn{padding:0 8px}.float.plan-corner{flex-direction:column;align-items:flex-end}.plan-corner .corner-row{align-items:center;gap:6px;display:flex}.scale-row{padding-right:2px}.toolbar{background:var(--glass);border-radius:var(--r-m);border:1px solid var(--glass-line);box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(14px);align-items:center;gap:2px;padding:4px;display:flex}.toolbar .sep{background:var(--line-strong);align-self:stretch;width:1px;margin:4px 3px}.toolbar .zoom{text-align:center;min-width:48px;color:var(--ink-2);align-self:center;font-size:12px}.chip{background:var(--glass);color:var(--ink);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(10px);border-radius:99px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:inline-flex}.banner{background:var(--glass);border:1px solid var(--glass-line);box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(14px);border-radius:99px;align-items:center;gap:10px;padding:5px 5px 5px 14px;display:flex}.scalebar{color:var(--ink-2);justify-items:start;gap:2px;font-size:11px;display:grid}.scalebar .bar{border:1.5px solid var(--ink-2);border-top:0;height:5px}.empty-state{pointer-events:none;z-index:4;padding-left:var(--inset-l,0px);padding-right:var(--inset-r,0px);place-items:center;display:grid;position:absolute;inset:0}.empty-card{pointer-events:auto;text-align:left;background:var(--surface);border-radius:var(--r-l);max-width:400px;box-shadow:var(--shadow-2);border:1px solid var(--line);gap:10px;padding:22px 24px;display:grid}.empty-card h2{margin:0;font-size:18px;font-stretch:108%}.empty-card p{color:var(--ink-2);margin:0}.empty-card .actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.kv{grid-template-columns:auto 1fr;gap:4px 12px;font-size:12px;display:grid}.kv dt{color:var(--ink-2)}.kv dd{text-align:right;margin:0}.adj-row{grid-template-columns:11px 1fr auto auto;align-items:center;gap:8px;display:grid}.adj-row select{height:28px;padding:0 4px;font-size:12px}.pill{background:var(--sunken);color:var(--ink-2);white-space:nowrap;border-radius:99px;padding:2px 8px;font-size:11px}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.bad{background:var(--alert-soft);color:var(--alert)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.blue{background:var(--accent-soft);color:var(--accent-ink)}.meter{background:var(--sunken);border-radius:99px;height:6px;overflow:hidden}.meter>i{background:var(--accent);border-radius:99px;height:100%;display:block}.bars{gap:8px;display:grid}.bar-row{grid-template-columns:1fr auto;gap:3px 8px;font-size:12px;display:grid}.bar-row .track{background:var(--sunken);border-radius:3px;grid-column:1/-1;height:8px;position:relative;overflow:hidden}.bar-row .track i{border-radius:3px;position:absolute;top:0;bottom:0;left:0}.bar-row .track b{background:var(--ink);width:2px;position:absolute;top:-2px;bottom:-2px}.issue{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:start;gap:8px;padding:7px 0;font-size:12px;display:grid}.issue:first-child{border-top:0}.stat-grid{background:var(--line);border-radius:var(--r-m);border:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.stat{background:var(--surface);gap:1px;padding:9px 11px;display:grid}.stat b{font-size:16px;font-weight:650;font-stretch:95%}.stat span{color:var(--ink-2);font-size:11px}.stat.bad b{color:var(--alert)}.stat.good b{color:var(--ok)}.diagram{aspect-ratio:1;background:var(--canvas);border-radius:var(--r-m);cursor:default;border:1px solid var(--line);width:100%;display:block}.diagram text{font-family:var(--font);pointer-events:none;font-stretch:80%}.legend{color:var(--ink-2);flex-wrap:wrap;gap:10px;font-size:11px;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}.chat{flex-direction:column;gap:10px;padding:14px;display:flex}.msg{white-space:pre-wrap;border-radius:12px;max-width:92%;padding:8px 11px;line-height:1.45}.msg.user{background:var(--ink);color:var(--surface);border-bottom-right-radius:4px;align-self:flex-end}.msg.assistant{background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:4px;align-self:flex-start}.msg.error{background:var(--alert-soft);color:var(--alert);align-self:flex-start}.msg ul{color:var(--ink-2);margin:6px 0 0;padding-left:16px;font-size:12px}.suggestions{flex-wrap:wrap;gap:6px;display:flex}.suggestions button{border:1px solid var(--line-strong);background:var(--field);cursor:pointer;text-align:left;border-radius:99px;padding:5px 11px;font-size:12px}.suggestions button:hover{border-color:var(--ink-3)}.composer{border-top:1px solid var(--line);gap:6px;padding:12px 14px;display:grid}.composer-row{align-items:flex-end;gap:6px;display:flex}.composer textarea{flex:1;min-height:38px;max-height:140px}.scrim{background:var(--scrim);z-index:50;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--bg);border-radius:var(--r-l);width:min(1180px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow-3);border:1px solid var(--line);flex-direction:column;display:flex;overflow:hidden}.dialog.narrow{width:min(560px,100%)}.dialog-head{border-bottom:1px solid var(--line);background:var(--surface);align-items:center;gap:10px;padding:14px 16px 12px;display:flex}.dialog-head h2{flex:1;margin:0;font-size:17px;font-stretch:108%}.dialog-body{flex:1;min-height:0;overflow:auto}.dialog-foot{border-top:1px solid var(--line);background:var(--surface);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;display:flex}.drop{border:2px dashed var(--line-strong);border-radius:var(--r-l);text-align:center;background:var(--surface);cursor:pointer;justify-items:center;gap:12px;margin:18px;padding:36px 24px;display:grid}.drop.over{border-color:var(--accent);background:var(--accent-soft)}.drop h3{margin:0;font-size:18px;font-stretch:108%}.drop p{color:var(--ink-2);max-width:520px;margin:0}.drop svg.big{width:34px;height:34px;color:var(--ink-3)}.kinds{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 18px 18px;display:grid}.kind{background:var(--surface);border-radius:var(--r-m);border:1px solid var(--line);gap:4px;padding:12px 14px;display:grid}.kind b{font-size:13px}.kind span{color:var(--ink-2);font-size:12px}.review{grid-template-columns:minmax(280px,40%) 1fr;height:100%;min-height:0;display:grid}.review-source{border-right:1px solid var(--line);background:var(--surface);align-content:start;gap:12px;padding:14px;display:grid;overflow:auto}.review-table{flex-direction:column;min-height:0;display:flex;overflow:auto}.source-tabs{flex-wrap:wrap;gap:6px;display:flex}.img-check{border-radius:var(--r-m);border:1px solid var(--line);background:var(--n-0);position:relative;overflow:hidden}.img-check img{width:100%;height:auto;display:block}.img-check svg{width:100%;height:100%;position:absolute;inset:0}.marker{cursor:pointer}.org-summary{background:var(--ok-soft);color:var(--ok);align-items:center;gap:10px;padding:10px 14px;font-size:12px;display:flex}.org-summary .spacer{flex:1}.review-tools{border-bottom:1px solid var(--line);background:var(--bg);z-index:2;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;display:flex;position:sticky;top:0}table.grid{border-collapse:collapse;width:100%;font-size:12px}table.grid th{text-align:left;color:var(--ink-2);border-bottom:1px solid var(--line-strong);background:var(--bg);z-index:1;white-space:nowrap;padding:7px 6px;font-weight:600;position:sticky;top:51px}table.grid td{border-bottom:1px solid var(--line);vertical-align:middle;padding:3px 4px}table.grid tr.off td{opacity:.45}table.grid tr.hot td{background:var(--hot)}table.grid input,table.grid select{background:0 0;border-color:#0000;width:100%;height:28px;padding:0 6px;font-size:12px}table.grid input:hover,table.grid select:hover{border-color:var(--line-strong);background:var(--field)}table.grid input:focus,table.grid select:focus{background:var(--field)}table.grid .num{width:74px}table.grid .qty{width:52px}table.grid .flags{flex-wrap:wrap;gap:4px;display:flex}.mapping{grid-template-columns:auto 1fr;align-items:center;gap:6px 10px;font-size:12px;display:grid}.mapping select{height:28px;font-size:12px}table.preview{border-collapse:collapse;background:var(--surface);width:100%;font-size:11px}table.preview td,table.preview th{border:1px solid var(--line);text-overflow:ellipsis;white-space:nowrap;max-width:140px;padding:2px 5px;overflow:hidden}table.preview th{background:var(--sunken);color:var(--ink-2);font-weight:600}table.preview tr.header td{background:var(--accent-soft);font-weight:600}table.preview tr.skipped td{color:var(--ink-3);text-decoration:line-through}.progress-list{gap:10px;width:100%;max-width:640px;margin:0 auto;padding:24px;display:grid}.progress-item{background:var(--surface);border-radius:var(--r-m);border:1px solid var(--line);grid-template-columns:22px 1fr auto;align-items:center;gap:10px;padding:12px 14px;display:grid}.progress-item .sub{color:var(--ink-2);font-size:12px}.spin{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.model-list{gap:6px;display:grid}.model-item{background:var(--surface);border-radius:var(--r-s);border:1px solid var(--line);align-items:center;gap:8px;padding:7px 9px;font-size:12px;display:flex}.model-item b{font-weight:600}.code{background:var(--n-900);color:var(--n-50);border-radius:var(--r-s);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12px;display:flex}.status-dot{background:var(--ink-3);border-radius:50%;flex:none;width:8px;height:8px}.status-dot.online{background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.status-dot.offline{background:var(--alert)}.status-dot.checking{background:var(--sun)}.menu-wrap{position:relative}.menu{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);min-width:230px;box-shadow:var(--shadow-2);z-index:40;padding:5px;display:grid;position:absolute;top:calc(100% + 6px);right:0}.menu.left{left:0;right:auto}.menu button{text-align:left;border-radius:var(--r-s);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:7px 10px;display:flex}.menu button:hover{background:var(--hover)}.menu button svg{width:15px;height:15px;color:var(--ink-2)}.menu hr{border:0;border-top:1px solid var(--line);margin:4px 2px}.menu .label{color:var(--ink-3);padding:6px 10px 2px;font-size:11px}.toasts{z-index:60;justify-items:center;gap:8px;display:grid;position:fixed;bottom:44px;left:50%;transform:translate(-50%)}.toast{background:var(--tag-bg);color:var(--tag-ink);border-radius:var(--r-m);box-shadow:var(--shadow-2);align-items:center;gap:12px;max-width:560px;padding:9px 12px 9px 14px;display:flex}.toast.error{background:var(--alert);color:var(--n-0)}.toast.success{background:var(--accent-strong);color:var(--on-accent)}.toast button{color:inherit;border-radius:var(--r-s);cursor:pointer;opacity:.9;background:0 0;border:1px solid;padding:2px 8px}@media (width<=1280px){.workspace{--inset-l:284px;--inset-r:324px}.panel.left{width:260px}.panel.right{width:300px}}@media (width<=1000px){.workspace,.workspace.left-closed,.workspace.right-closed{--inset-l:0px;--inset-r:0px}.panel.left,.panel.right{z-index:20;width:min(320px,100vw - 24px);box-shadow:var(--shadow-3)}.topbar .undo-redo,.topbar .divider{display:none}}@media (width<=820px){.topbar .project-name,.topbar .import-label{display:none}.review{grid-template-columns:1fr}.review-source{border-right:0;border-bottom:1px solid var(--line)}.kinds{grid-template-columns:1fr}.stage.split{grid-template-rows:1fr 1fr;grid-template-columns:1fr}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.swatch{display:inline-block}table.grid{table-layout:fixed;min-width:940px}table.grid col.c-check,table.grid col.c-num{width:30px}table.grid col.c-name{width:210px}table.grid col.c-zone{width:140px}table.grid col.c-area{width:86px}table.grid col.c-qty{width:60px}table.grid col.c-level{width:124px}table.grid col.c-adj{width:170px}table.grid col.c-flags{width:150px}table.grid .zone-cell{align-items:center;gap:6px;padding-left:4px;display:flex}table.grid tr.group-row td{border-bottom:1px solid var(--line-strong);background:var(--bg);padding:10px 6px 4px;font-size:12px;font-weight:600}table.grid tr.group-row td .swatch{vertical-align:-1px;margin-right:7px;display:inline-block}table.grid tr.group-row td .muted{margin-left:8px;font-weight:400}@media (width<=560px){.topbar{gap:4px;padding:0 6px}.topbar-side{gap:4px}.topbar .brand-word,.topbar .search-label,.topbar .search-btn .kbd,.topbar .theme-btn,.topbar .help-btn,.topbar .ai-pill{display:none}.topbar .search-btn{min-width:0;padding:0 8px}}.kbd-group{flex:none;gap:2px;margin-left:6px;display:inline-flex}kbd{font-family:var(--font);text-align:center;background:var(--sunken);min-width:18px;color:var(--ink-2);border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:5px;padding:3px 5px;font-size:11px;font-weight:600;line-height:1}.flow{background:var(--sunken);border-radius:99px;gap:2px;padding:4px;display:flex}.flow-tab{height:36px;color:var(--ink-2);cursor:pointer;white-space:nowrap;transition:background-color .18s var(--ease-out), color .18s var(--ease-out), box-shadow .18s var(--ease-out);background:0 0;border:0;border-radius:99px;align-items:center;gap:8px;padding:0 16px 0 6px;font-weight:560;display:inline-flex}.flow-tab:hover{color:var(--ink)}.flow-tab{isolation:isolate;position:relative}.flow-tab.on{color:var(--ink);font-weight:650}.flow-pill{z-index:-1;background:var(--surface);box-shadow:var(--shadow-1);border-radius:99px;position:absolute;inset:0}.flow-step{background:var(--surface);width:24px;height:24px;color:var(--ink-2);border:1px solid var(--line-strong);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:inline-grid}.flow-tab.on .flow-step{background:var(--ink);color:var(--surface);border-color:var(--ink)}.flow-tab.done .flow-step{background:var(--accent-soft);color:var(--accent-ink);border-color:#0000}.flow-tab.on.done .flow-step{background:var(--accent);color:var(--on-accent)}.flow-step svg{width:13px;height:13px}.tooltip{z-index:90;pointer-events:none;background:var(--tag-bg);max-width:300px;color:var(--tag-ink);box-shadow:var(--shadow-2);border-radius:7px;align-items:center;gap:4px;padding:6px 9px;font-size:12px;line-height:1.35;display:flex;position:fixed}.tooltip kbd{background:color-mix(in oklch, var(--tag-ink) 14%, transparent);color:var(--tag-ink);border-color:color-mix(in oklch, var(--tag-ink) 28%, transparent)}.statusbar{background:var(--bg);min-width:0;color:var(--ink-2);white-space:nowrap;align-items:center;gap:10px;padding:0 14px;font-size:12px;display:flex}.statusbar-icon{width:14px;height:14px;color:var(--accent);flex:none}.statusbar-hint{text-overflow:ellipsis;color:var(--ink);min-width:0;overflow:hidden}.statusbar-info{text-overflow:ellipsis;max-width:32%;overflow:hidden}.statusbar-link{cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-radius:5px;flex:none;align-items:center;gap:4px;padding:2px 5px;display:inline-flex}.statusbar-link:hover{background:var(--hover);color:var(--ink)}.statusbar-link .kbd-group{margin-left:0}.dims-box{flex:none;align-items:center;gap:4px;display:inline-flex}.dims-box input{width:58px;height:22px;padding:0 6px;font-size:12px}.dims-box span{color:var(--ink-3)}.scrim.top{align-items:start;padding-top:12vh}.palette{background:var(--surface);border-radius:var(--r-l);width:min(620px,100%);box-shadow:var(--shadow-3);border:1px solid var(--line);flex-direction:column;max-height:70vh;display:flex;overflow:hidden}.palette-input{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 14px;display:flex}.palette-input svg{width:18px;height:18px;color:var(--ink-3);flex:none}.palette-input input{background:0 0;border:0;flex:1;height:32px;padding:0;font-size:16px}.palette-input input:focus{box-shadow:none}.palette-list{padding:6px;overflow:auto}.palette-section{color:var(--ink-3);padding:8px 10px 4px;font-size:11px}.palette-item{border-radius:var(--r-s);cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.palette-item.on{background:var(--accent-soft);color:var(--accent-ink)}.palette-empty{color:var(--ink-2);margin:0;padding:16px 12px}.shortcut-panel{z-index:55;background:var(--surface);border-radius:var(--r-l);width:min(420px,100vw - 32px);max-height:calc(100vh - 110px);box-shadow:var(--shadow-3);border:1px solid var(--line);flex-direction:column;display:flex;position:fixed;bottom:42px;right:16px}.shortcut-panel .dialog-head{border-radius:var(--r-l) var(--r-l) 0 0}.shortcut-panel .dialog-head input{flex:1}.shortcut-list{padding:4px 16px 16px;overflow:auto}.shortcut-list h3{margin:12px 0 4px;font-size:13px}.shortcut-list h3 .muted{font-weight:400}.shortcut-list dl{margin:0;display:grid}.shortcut-list dl>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:4px 0;font-size:12px;display:flex}.shortcut-list dt{color:var(--ink-2)}.shortcut-list dd{margin:0}.guide{background:var(--glass);border:1px solid var(--glass-line);max-width:min(620px,100%);box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(18px)saturate(1.3);border-radius:18px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:8px 8px 8px 10px;display:grid}.guide-badge{background:var(--accent-soft);width:34px;height:34px;color:var(--accent-ink);border-radius:11px;place-items:center;display:inline-grid}.guide-badge svg{width:18px;height:18px}.guide-text{gap:1px;min-width:0;display:grid}.guide-text b{font-size:13px;font-weight:680}.guide-text span{color:var(--ink-2);font-size:12px;line-height:1.35}.guide.collapsed{border-radius:99px;grid-template-columns:auto auto;gap:8px;padding:4px 4px 4px 12px}.guide-steps{flex-wrap:wrap;grid-column:1/-1;gap:4px;padding:2px 0 2px 46px;display:flex}.guide-step{background:var(--sunken);color:var(--ink-3);border-radius:99px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;display:inline-flex}.guide-step.done{background:var(--accent-soft);color:var(--accent-ink)}.guide-step.now{background:var(--ink);color:var(--surface)}.guide-step svg{width:11px;height:11px}.metrics{background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--r-l);box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(16px)saturate(1.3);align-items:stretch;display:flex}.metric{grid-template-columns:auto auto;align-items:end;column-gap:10px;min-width:0;padding:8px 14px;display:grid}.metric+.metric{border-left:1px solid var(--line)}.metric-value{white-space:nowrap;font-size:20px;font-weight:680;font-stretch:92%;line-height:1.1}.metric-value small{color:var(--ink-3);margin-left:2px;font-size:12px;font-weight:500}.metric-label{color:var(--ink-2);white-space:nowrap;grid-column:1/-1;font-size:11px}.metric.bad .metric-value{color:var(--alert)}.metric-viz{width:64px;height:22px;display:block}.metric-viz .track{fill:var(--sunken)}.metric-viz .fill{fill:var(--accent)}.metric-viz .fill.bad{fill:var(--alert)}.metric-viz .mark{fill:var(--ink)}.metric-viz .bar{fill:var(--line-strong)}.metric-viz .bar.on{fill:var(--accent)}.canvas-wrap{container-type:inline-size}.metrics:has(>:only-child) .metric{padding-right:18px}.north{cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;display:block}.north svg{filter:drop-shadow(0 1px 2px oklch(20% .02 165/.15));display:block}.north:hover circle{stroke:var(--accent)}.menu.context{z-index:70;min-width:230px;max-height:80vh;position:fixed;top:0;left:0;right:auto;overflow:auto}.menu button.danger,.menu button.danger svg{color:var(--alert)}.menu button:disabled{opacity:.4;cursor:default}.menu button:focus-visible{background:var(--hover);outline:none}.menu-icon-space{flex:none;width:15px}.menu-label{flex:1}.menu-check{color:var(--accent);font-weight:700}.menu .kbd-group{margin-left:12px}.menu-swatches{flex-wrap:wrap;gap:5px;padding:4px 10px 8px;display:flex}.menu-swatches button{border:2px solid #0000;border-radius:6px;width:22px;height:22px;padding:0;box-shadow:inset 0 0 0 1px oklch(20% .02 165/.14)}.menu-swatches button.on{border-color:var(--ink)}.floors{background:var(--glass);border-radius:var(--r-m);border:1px solid var(--glass-line);min-width:120px;box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(14px);flex-direction:column;gap:2px;padding:4px;display:flex}.floors button{text-align:left;border-radius:var(--r-s);cursor:pointer;color:var(--ink-2);white-space:nowrap;background:0 0;border:0;padding:6px 10px}.floors button:hover{background:var(--hover);color:var(--ink)}.floors button.on{background:var(--ink);color:var(--surface);font-weight:600}.floors .floors-add{color:var(--accent-ink);align-items:center;gap:4px;font-size:12px;display:flex}.tool-btn{border-radius:var(--r-s);cursor:pointer;height:32px;color:var(--ink-2);white-space:nowrap;transition:background-color .15s var(--ease-out), color .15s var(--ease-out);background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:0 11px;font-weight:550;display:inline-flex}.tool-btn:hover{background:var(--hover);color:var(--ink)}.tool-btn.active{background:var(--ink);color:var(--surface)}.tool-btn svg{flex:none;width:15px;height:15px}.icon-btn.danger:hover{color:var(--alert);background:var(--alert-soft)}.selection-bar{z-index:7;background:var(--surface);border-radius:var(--r-m);box-shadow:var(--shadow-2);border:1px solid var(--line);align-items:center;gap:2px;padding:4px;display:flex;position:absolute}.selection-bar .sep{background:var(--line-strong);align-self:stretch;width:1px;margin:4px 3px}.selection-name{text-overflow:ellipsis;max-width:160px;color:var(--ink);font-weight:650;overflow:hidden}.selection-count{padding:0 10px;font-weight:650}.selection-bar .menu{top:calc(100% + 6px)}.rename-input{z-index:8;text-align:center;height:32px;font-weight:650;font-stretch:85%;position:absolute;border:2px solid var(--sel)!important;box-shadow:var(--shadow-2)!important}.prow .rename-inline{width:100%;height:24px;padding:0 4px;font-size:13px}.hover-tag{z-index:6;pointer-events:none;white-space:nowrap;background:var(--tag-bg);color:var(--tag-ink);box-shadow:var(--shadow-1);border-radius:7px;padding:4px 9px;font-size:12px;position:absolute;transform:translate(-50%,-100%)}.hover-tag b{margin-right:4px;font-weight:650}.prow.hot{background:var(--hot)}.tab-badge{background:var(--alert);min-width:16px;height:16px;color:var(--n-0);border-radius:99px;place-items:center;padding:0 4px;font-size:10px;font-weight:700;display:inline-grid}.stages{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.stage-pill{background:var(--sunken);color:var(--ink-3);border-radius:99px;padding:2px 8px;font-size:11px}.stage-pill.now{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.stage-pill.done{background:var(--ok-soft);color:var(--ok)}.search-btn{border:1px solid var(--line-strong);background:var(--field);height:34px;color:var(--ink-3);cursor:pointer;border-radius:99px;flex:none;align-items:center;gap:6px;min-width:0;padding:0 6px 0 11px;display:inline-flex}.search-btn:hover{border-color:var(--ink-3);color:var(--ink-2)}.search-btn svg{flex:none;width:15px;height:15px}.search-btn .kbd-group{margin-left:16px}.ai-pill{cursor:pointer;border:1px solid var(--line-strong);background:var(--field);height:30px;color:var(--ink-2);white-space:nowrap;border-radius:99px;flex:none;align-items:center;gap:6px;padding:0 11px;font-size:12px;display:inline-flex}.ai-pill.ready{color:var(--accent-ink);background:var(--accent-soft);border-color:#0000}.ai-pill.offline,.ai-pill.unknown{color:var(--alert);background:var(--alert-soft);border-color:#0000}.muted-btn{color:var(--ink-3)}.topbar .btn.primary{border-radius:99px;height:34px;padding:0 16px}@media (width<=1400px){.search-btn .kbd-group,.search-label{display:none}.search-btn{padding:0 9px}.flow-tab{padding-right:12px}}@media (width<=1180px){.brand-word,.ai-label{display:none}.ai-pill{padding:0 9px}.topbar .project-name{flex-basis:120px}.statusbar-info,.flow-label{display:none}.flow-tab{padding:0 6px}}@media (width<=900px){.statusbar-link{display:none}}@container (width<=760px){.tool-label{display:none}.toolbar .tool-btn{padding:0 8px}.layout-seg{display:none!important}.guide-text span{display:none}}@container (width<=480px){.floors{min-width:0}.floors .floors-add{gap:0;font-size:0}}.canvas-wrap.climate{background:var(--canvas)}.stack{justify-items:center;gap:8px;display:grid}.timebar{background:var(--glass);border:1px solid var(--glass-line);width:min(640px,100vw - 48px);box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(18px)saturate(1.3);border-radius:18px;grid-template-columns:auto auto 1fr auto;align-items:center;gap:10px;padding:8px 14px 8px 8px;display:grid}.timebar .play{background:var(--ink);width:38px;height:38px;color:var(--surface);border-radius:50%}.timebar .play:hover{background:var(--ink-2);color:var(--surface)}.timebar-date{gap:1px;min-width:104px;display:grid}.timebar-date b{font-size:13px}.timebar-date span{color:var(--ink-2);font-size:11px}.timebar-track{gap:2px;display:grid}.timebar-track input{width:100%}.timebar-ticks{color:var(--ink-3);justify-content:space-between;padding:0 2px;font-size:10px;display:flex}.timebar-now{text-align:right;min-width:52px;font-size:18px;font-weight:680;font-stretch:92%}.workspace .stage .float.tl.legend-slot{top:84px}.legend-card{background:var(--glass);border:1px solid var(--glass-line);border-radius:var(--r-m);width:230px;box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(14px);gap:6px;padding:10px 12px;display:grid}.legend-card b{font-size:12px}.legend-card p{color:var(--ink-2);margin:0;font-size:11px;line-height:1.35}.ramp{border-radius:99px;height:10px}.ramp-scale{color:var(--ink-2);justify-content:space-between;font-size:10px;display:flex}.layer-seg{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.layer-btn{text-align:left;border-radius:var(--r-m);cursor:pointer;border:1px solid var(--line-strong);background:var(--field);color:var(--ink-2);transition:border-color .15s var(--ease-out), background-color .15s var(--ease-out);justify-items:start;gap:2px;padding:8px 9px;display:grid}.layer-btn b{color:var(--ink);white-space:nowrap;justify-items:start;gap:4px;font-size:12px;display:grid}.layer-btn b svg{width:14px;height:14px}.layer-btn span{font-size:11px;line-height:1.25}.layer-btn:hover{border-color:var(--ink-3)}.layer-btn.on{border-color:var(--accent);background:var(--accent-soft)}.layer-btn.on b{color:var(--accent-ink)}.presets{flex-wrap:wrap;gap:4px;display:flex}.presets button{border:1px solid var(--line-strong);background:var(--field);cursor:pointer;color:var(--ink-2);border-radius:99px;padding:4px 10px;font-size:12px}.presets button:hover{border-color:var(--ink-3);color:var(--ink)}.presets button.on{background:var(--ink);border-color:var(--ink);color:var(--surface)}.place-results{gap:2px;margin-top:-4px;display:grid}.place-results button{text-align:left;border-radius:var(--r-s);cursor:pointer;background:0 0;border:0;padding:6px 8px;display:grid}.place-results button:hover{background:var(--hover)}.place-results button span{color:var(--ink-3);font-size:11px}.compass{grid-template-columns:92px 1fr;align-items:center;gap:12px;display:grid}.compass svg{cursor:grab;touch-action:none;width:92px;height:92px}.compass svg:active{cursor:grabbing}.chart{width:100%;height:auto;display:block}.chart text{font-family:var(--font)}.explain{color:var(--ink-2);max-width:60ch;margin:0;font-size:12px;line-height:1.45}.explain b{color:var(--ink);font-weight:650}.source{color:var(--ink-3);font-size:11px}.recs{gap:8px;display:grid}.rec{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);grid-template-columns:30px 1fr;gap:10px;padding:10px 12px;display:grid}.rec-icon{border-radius:9px;place-items:center;width:30px;height:30px;display:grid}.rec-icon svg{width:16px;height:16px}.rec-icon.sun{background:color-mix(in oklch, var(--sun) 22%, var(--surface));color:var(--sun-ink)}.rec-icon.wind{background:color-mix(in oklch, var(--wind) 16%, var(--surface));color:var(--wind)}.rec-icon.place{background:var(--accent-soft);color:var(--accent-ink)}.rec b{margin-bottom:2px;font-size:13px;display:block}.rec p{color:var(--ink-2);margin:0;font-size:12px;line-height:1.4}.rec .btn{margin-top:8px}.rec .rec-detail{border-top:1px solid var(--line);color:var(--ink);margin-top:8px;padding-top:8px}.rec .rec-detail p{color:var(--ink);margin:0 0 4px}.room-chip{border:1px solid var(--line-strong);background:var(--field);color:var(--ink);cursor:pointer;transition:border-color .15s var(--ease-out), background-color .15s var(--ease-out);border-radius:99px;align-items:center;gap:3px;margin:2px 4px 2px 0;padding:1px 6px 1px 9px;font-size:12px;display:inline-flex}.room-chip svg{width:12px;height:12px;color:var(--ink-3)}.room-chip:hover{border-color:var(--accent);background:var(--accent-soft)}.bars-h{gap:6px;display:grid}.bars-h .row{grid-template-columns:58px 1fr 64px;align-items:center;gap:8px;font-size:12px;display:grid}.bars-h .row span:last-child{text-align:right;color:var(--ink-2)}.bars-h .track{background:var(--sunken);border-radius:4px;height:12px;position:relative;overflow:hidden}.bars-h .track i{border-radius:4px;position:absolute;top:0;bottom:0;left:0}.bars-h .track i.w{background:color-mix(in oklch, var(--sun) 55%, var(--surface))}.bars-h .track i.s{background:var(--sun-ink);height:5px;top:auto}.wind-grid{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.wind-grid label{color:var(--ink-2);gap:2px;font-size:11px;display:grid}.wind-grid input{height:28px;font-size:12px}.theme-icon{place-items:center;display:grid}.cloud-pill{border:1px solid var(--line-strong);background:var(--field);height:28px;color:var(--ink-2);white-space:nowrap;cursor:pointer;border-radius:99px;flex:none;align-items:center;gap:5px;padding:0 10px;font-size:12px;display:inline-flex}.cloud-pill svg{width:14px;height:14px}button.cloud-pill:hover{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.cloud-pill.quiet{cursor:default;color:var(--ink-3);background:0 0;border-color:#0000}.cloud-pill.quiet svg{color:var(--accent)}.cloud-pill.bad{background:var(--alert-soft);color:var(--alert);border-color:#0000}.cloud-pill.warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}@media (width<=640px){.cloud-pill.local-pill{display:none}}.pulse{animation:pulse 1.2s var(--ease-out) infinite alternate}@keyframes pulse{0%{opacity:.35}to{opacity:1}}.avatar{cursor:pointer;background:var(--accent-soft);width:32px;height:32px;color:var(--accent-ink);border:0;border-radius:50%;flex:none;font-weight:700}.avatar:hover{box-shadow:0 0 0 3px var(--accent-soft)}.dialog.account{width:min(440px,100%)}.account-form{gap:12px;padding:16px 18px 18px;display:grid}.account-form .with-unit input{padding-right:40px}.account-form .reveal{width:28px;height:28px;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.account-form .btn.primary{justify-content:center;height:36px}.account-error{border-radius:var(--r-s);background:var(--alert-soft);color:var(--alert);align-items:flex-start;gap:8px;margin:0;padding:8px 10px;font-size:12px;display:flex}.account-sent{border-radius:var(--r-s);background:var(--accent-soft);color:var(--accent-ink);align-items:flex-start;gap:8px;margin:0;padding:10px 12px;display:flex}.account-error svg,.account-sent svg{flex:none;width:16px;height:16px;margin-top:1px}.account-terms{color:var(--ink-2);align-items:flex-start;font-size:12px;line-height:1.5}.account-terms input{margin-top:2px}.account-terms a{color:var(--accent-strong);text-underline-offset:2px}.account-switch{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.account-current{border-radius:var(--r-m);background:var(--sunken);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.projects-list{padding:4px 0 8px;display:grid}.project-row{grid-template-columns:1fr auto auto;align-items:center;gap:8px;min-height:52px;padding:8px 12px 8px 18px;display:grid}.project-row:hover{background:var(--hover)}.project-row.current{background:var(--accent-soft)}.project-name{gap:1px;min-width:0;display:grid}.project-name b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-name span{color:var(--ink-3);font-size:12px}.project-row.current .project-name span{color:var(--accent-ink)}.project-row.skeleton{border-radius:var(--r-s);background:var(--sunken);min-height:40px;animation:pulse 1s var(--ease-out) infinite alternate;margin:4px 18px}.home{background:var(--bg);height:100vh;overflow-y:auto}.home-bar{z-index:5;background:color-mix(in oklch, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid color-mix(in oklch, var(--line) 60%, transparent);grid-template-columns:auto minmax(0,480px) auto;justify-content:space-between;align-items:center;gap:16px;padding:12px 24px;display:grid;position:sticky;top:0}.home-bar .brand span{font-weight:780}.home-bar-end{justify-content:flex-end;align-items:center;gap:8px;display:flex}.home-search{background:var(--field);border:1px solid var(--line-strong);height:40px;color:var(--ink-3);border-radius:99px;align-items:center;gap:8px;padding:0 8px 0 14px;display:flex}.home-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.home-search svg{flex:none;width:16px;height:16px}.home-search input{background:0 0;border:0;flex:1;min-width:0;height:36px;padding:0}.home-search input:focus{box-shadow:none}.home-main{gap:36px;max-width:1240px;margin:0 auto;padding:28px 24px 72px;display:grid}.home-start{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);border-radius:20px;grid-template-columns:minmax(0,1fr) minmax(0,480px);align-items:start;gap:22px 36px;padding:28px;display:grid}.home-intro h1{letter-spacing:-.015em;margin:0 0 6px;font-size:30px;font-weight:720;font-stretch:108%;line-height:1.15}.home-intro p{color:var(--ink-2);max-width:62ch;margin:0;font-size:15px}.start-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}@media (width<=960px){.start-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=540px){.start-actions{grid-template-columns:1fr}}.start-action{text-align:left;border:1px solid var(--line-strong);background:var(--field);cursor:pointer;color:var(--ink);transition:border-color .15s var(--ease-out), background-color .15s var(--ease-out);border-radius:14px;grid-template-columns:38px 1fr;align-items:center;gap:12px;padding:14px 16px;display:grid}.start-action:hover{border-color:var(--ink-3)}.start-action>svg{background:var(--accent-soft);width:38px;height:38px;color:var(--accent-ink);border-radius:11px;padding:9px}.start-action>span{gap:2px;min-width:0;display:grid}.start-action b{font-size:14px}.start-action span span{color:var(--ink-2);font-size:12px}.start-action.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.start-action.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.start-action.primary>svg{background:color-mix(in oklch, var(--on-accent) 20%, transparent);color:var(--on-accent)}.start-action.primary span span{color:color-mix(in oklch, var(--on-accent) 82%, transparent)}.start-more{gap:8px;margin:-6px 0 -8px;display:flex}.home-start>.start-actions,.home-start>.start-more,.home-start>.start-account{grid-column:1/-1}.start-account{color:var(--ink-2);align-items:flex-start;gap:8px;margin:-2px 0 0;font-size:13px;line-height:1.5;display:flex}.start-account>svg{width:15px;height:15px;color:var(--accent-strong);flex:none;margin-top:3px}.hero-stage{border:1px solid var(--line);background:var(--canvas);aspect-ratio:480/300;border-radius:14px;overflow:hidden}.hero-player,.hero-skeleton{width:100%;height:100%}.hero-skeleton{border-radius:0}.hero-steps{gap:2px;max-width:540px;margin:18px 0 0;padding:0;list-style:none;display:grid}.hero-steps button{text-align:left;width:100%;color:var(--ink-2);cursor:pointer;transition:background-color .18s var(--ease-out), color .18s var(--ease-out);background:0 0;border:0;border-radius:10px;grid-template-columns:24px 1fr;align-items:start;gap:12px;padding:8px 10px;display:grid;position:relative;overflow:hidden}.hero-steps button:hover{background:var(--hover);color:var(--ink)}.hero-steps button.on{background:var(--sunken);color:var(--ink)}.hero-step-num{background:var(--surface);border:1px solid var(--line-strong);width:24px;height:24px;transition:background-color .18s var(--ease-out), color .18s var(--ease-out);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid}.hero-steps button.on .hero-step-num{background:var(--ink);color:var(--surface);border-color:var(--ink)}.hero-step-text{gap:1px;padding-top:2px;display:grid}.hero-step-text b{font-size:14px;font-weight:650}.hero-step-text span{color:var(--ink-3);font-size:12.5px}.hero-step-bar{background:var(--accent);transform-origin:0;border-radius:2px;height:2px;animation:linear forwards step-progress;position:absolute;bottom:0;left:10px;right:10px}@keyframes step-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (width<=900px){.home-start{grid-template-columns:minmax(0,1fr)}.hero-steps{max-width:none}}.home-projects{gap:16px;display:grid}.projects-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.projects-head h2{margin:0;font-size:19px;font-weight:700}.projects-head h2 .muted{margin-left:4px;font-weight:500}.projects-head select{border-radius:99px;height:34px;padding:0 12px}.home-note{background:var(--sunken);color:var(--ink-2);border-radius:12px;flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:10px 14px;font-size:13px;display:flex}.home-note svg{width:15px;height:15px;color:var(--ink-3)}.home-empty{text-align:center;color:var(--ink-2);border:1px dashed var(--line-strong);border-radius:16px;gap:4px;margin:0;padding:44px 24px;display:grid}.home-empty b{color:var(--ink);font-size:15px}.project-grid{grid-template-columns:repeat(auto-fill,minmax(236px,1fr));gap:16px;display:grid;position:relative}.pcard{background:var(--surface);border:1px solid var(--line);transition:box-shadow .18s var(--ease-out), border-color .18s var(--ease-out);border-radius:16px;grid-template-rows:auto 1fr;display:grid;position:relative;overflow:hidden}.pcard:hover{box-shadow:var(--shadow-2);border-color:var(--line-strong)}.pcard-open{z-index:1;cursor:pointer;border-radius:inherit;background:0 0;border:0;position:absolute;inset:0}.pcard-open:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.pcard-thumb{aspect-ratio:16/10;border-bottom:1px solid var(--line);background-color:var(--canvas);background-image:linear-gradient(var(--canvas-grid) 1px, transparent 1px), linear-gradient(90deg, var(--canvas-grid) 1px, transparent 1px);background-size:14px 14px;place-items:center;padding:16px;display:grid;position:relative}.plan-thumb{width:100%;height:100%;display:block}.pcard-badge{background:var(--surface);height:22px;color:var(--ink-2);box-shadow:var(--shadow-1);z-index:2;border-radius:99px;align-items:center;gap:4px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex;position:absolute;top:10px;left:10px}.pcard-badge svg{width:12px;height:12px}.pcard-badge.account{color:var(--accent-ink)}.pcard-body{align-content:start;gap:2px;padding:12px 46px 14px 14px;display:grid}.pcard-name{text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.pcard-meta{color:var(--ink-3);font-size:12px}.pcard-stats{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.pcard-menu{z-index:2;position:absolute;bottom:10px;right:6px}.pcard-menu .menu{top:auto;bottom:calc(100% + 4px)}.pcard-rename{z-index:2;height:28px;font-weight:650;position:relative}.pcard.skeleton{grid-template-rows:none;align-content:start;gap:10px;min-height:244px;padding-bottom:16px}.pcard.skeleton .sk-thumb{aspect-ratio:16/10;border-radius:0}.pcard.skeleton .sk-line{margin:0 14px}.brand.home-link{cursor:pointer;border-radius:var(--r-s);color:inherit;font:inherit;background:0 0;border:0;padding:4px 8px 4px 4px;font-size:19px;font-weight:780;font-stretch:118%}.brand.home-link:hover{background:var(--hover)}@media (width<=720px){.hero-step-text span{display:none}.home-bar{grid-template-columns:auto auto;padding:10px 16px}.home-search{grid-area:2/1/auto/-1}.home-search kbd{display:none}.home-main{gap:28px;padding:18px 16px 56px}.home-start{padding:20px}.home-intro h1{font-size:24px}}.screen{height:100%}.sk{background:var(--sunken) linear-gradient(100deg, var(--sunken) 38%, var(--sk-hi) 50%, var(--sunken) 62%);background-size:300% 100%;border-radius:8px;animation:1.6s ease-in-out infinite shimmer;display:block}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.sk-line{border-radius:6px;height:12px}.sk-title{width:46%;height:18px;margin-bottom:6px}.sk-brand{width:104px;height:28px}.sk-name{width:140px;height:18px}.sk-tabs{border-radius:99px;justify-self:center;width:min(540px,46vw);height:44px}.sk-pill{border-radius:99px;width:116px;height:32px}.sk-dot{border-radius:50%;width:32px;height:32px}.sk-panel{gap:14px;padding:18px 16px}.sk-canvas{padding:0 var(--inset-r,0) 0 var(--inset-l,0);background-color:var(--canvas);background-size:24px 24px;background-image:linear-gradient(var(--canvas-grid) 1px, transparent 1px), linear-gradient(90deg, var(--canvas-grid) 1px, transparent 1px);place-items:center;display:grid}.sk-plan{aspect-ratio:13/8;border:2px dashed var(--line-strong);width:min(34vw,420px);animation:pulse 1.1s var(--ease-out) infinite alternate;border-radius:4px}.sk-chip{color:var(--ink-2);background:var(--glass);border:1px solid var(--glass-line);box-shadow:var(--shadow-1);-webkit-backdrop-filter:blur(10px);border-radius:99px;align-items:center;gap:8px;padding:8px 14px;font-weight:560;display:inline-flex}.sk-spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@media (width<=1000px){.sk-panel{display:none}}.pcard.opening{cursor:progress}.pcard.opening .pcard-thumb:after{content:"";background:linear-gradient(100deg, transparent 35%, color-mix(in oklch, var(--surface) 55%, transparent) 50%, transparent 65%);background-size:300% 100%;animation:.9s ease-in-out infinite shimmer;position:absolute;inset:0}.stage>*{animation:view-in .24s var(--ease-out) backwards}@keyframes view-in{0%{opacity:0}}.grip-anchor{z-index:30;visibility:hidden;position:absolute;top:0;left:0}.height-grip{white-space:nowrap;border:1.5px solid var(--sel);background:var(--surface);height:30px;color:var(--ink);box-shadow:var(--shadow-2);cursor:ns-resize;touch-action:none;-webkit-user-select:none;user-select:none;transition:transform .15s var(--ease-out), background-color .15s var(--ease-out);border-radius:99px;align-items:center;gap:5px;padding:0 12px 0 9px;font-size:12.5px;font-weight:650;display:inline-flex}.height-grip svg{width:15px;height:15px;color:var(--sel)}.height-grip:hover,.height-grip.dragging{background:var(--hot);transform:scale(1.06)}.dialog.site-import{width:min(1100px,100%)}.site-import-error{margin:0 18px 12px}.site-import-wait{text-align:center;color:var(--ink-2);justify-items:center;gap:8px;padding:64px 24px;display:grid}.site-import-wait b{color:var(--ink);font-size:15px}.site-import-wait .sk-spinner{border-width:3px;width:22px;height:22px}.site-review{grid-template-columns:minmax(0,1fr) 320px;height:min(620px,100vh - 180px);min-height:0;display:grid}.site-review-canvas{background:var(--canvas);border-right:1px solid var(--line);min-width:0;min-height:0;position:relative}.site-review-modes{z-index:2;box-shadow:var(--shadow-1);background:var(--surface);position:absolute;top:12px;left:12px}.site-review-wide{z-index:2;background:var(--glass);border-radius:99px;padding:4px 10px;font-size:12px;position:absolute;bottom:12px;left:12px}.site-preview{width:100%;height:100%;display:block}.site-preview .cad{fill:none;stroke:var(--ink-3);stroke-width:.8px;opacity:.55}.site-preview .cad.closed{fill:#0000}.site-preview.mode-plot .cad.closed:not(.frame),.site-preview.mode-neighbours .cad.closed:not(.frame):not(.lot){cursor:pointer}.site-preview.mode-plot .cad.closed:not(.frame):hover,.site-preview.mode-neighbours .cad.closed:not(.frame):not(.lot):hover{stroke:var(--accent);opacity:1;stroke-width:1.6px}.site-preview .cad.frame{stroke-dasharray:4 4;opacity:.3}.site-preview .cad.road{stroke:var(--ink);stroke-width:1.6px;opacity:.85}.site-preview .cad.building{fill:var(--line-strong);stroke:var(--ink-2);opacity:.9}.site-preview .cad.lot{fill:color-mix(in oklch, var(--accent) 16%, transparent);stroke:var(--accent);stroke-width:2.6px;opacity:1}.site-preview .cad.street-side{stroke:var(--sun-ink);stroke-width:6px;opacity:.9;stroke-linecap:round}.site-preview .cad.side-pick{stroke:#0000;stroke-width:14px;opacity:1;cursor:pointer}.site-preview .cad.side-pick:hover{stroke:color-mix(in oklch, var(--sun) 60%, transparent)}.site-preview .cad.north{fill:var(--ink);stroke:none;opacity:.8}.site-review-side{background:var(--surface);align-content:start;gap:12px;padding:16px;display:grid;overflow:auto}.site-review-side .kv select{height:28px}.site-review-who{border-radius:var(--r-s);background:var(--sunken);color:var(--ink-2);align-items:flex-start;gap:8px;margin:0;padding:8px 10px;font-size:12px;display:flex}.site-review-who.ai{background:var(--accent-soft);color:var(--accent-ink)}.site-review-who svg,.site-review-note svg{flex:none;width:15px;height:15px;margin-top:1px}.site-review-note{color:var(--ink-2);gap:8px;margin:0;font-size:12px;display:flex}.inline-icon{vertical-align:-2px;width:14px;height:14px}.site-source h3{margin-bottom:0}.site-plot-size{justify-items:start;gap:8px;display:grid}@media (width<=820px){.site-review{grid-template-columns:1fr;height:auto}.site-review-canvas{border-right:0;border-bottom:1px solid var(--line);height:360px}}.site-review-how{color:var(--ink-2);font-size:12px}.site-review-how summary{cursor:pointer;color:var(--ink);margin-bottom:6px;font-weight:600}.site-review-how .site-review-note{margin:4px 0}.dialog.site-map{width:min(1320px,100%);height:calc(100vh - 32px)}.site-map-body{flex:1;grid-template-columns:minmax(0,1fr) 340px;min-height:0;display:grid}.site-map-canvas{background:#0f1512;min-width:0;min-height:0;position:relative}.site-map-leaflet{position:absolute;inset:0}.site-map-canvas.mode-detect .leaflet-container,.site-map-canvas.mode-draw .leaflet-container{cursor:crosshair}.site-map-busy{z-index:500;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-2);border-radius:99px;align-items:center;gap:8px;padding:8px 14px;font-weight:560;display:inline-flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.site-map-side{background:var(--surface);border-left:1px solid var(--line);align-content:start;gap:14px;padding:16px;display:grid;overflow:auto}.site-map-search{height:38px}.site-map-results{gap:2px;margin-top:-6px;display:grid}.site-map-results button{text-align:left;border-radius:var(--r-s);cursor:pointer;color:var(--ink);background:0 0;border:0;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.site-map-results button:hover{background:var(--hover)}.site-map-results button>span{gap:1px;display:grid}.site-map-results button span span{color:var(--ink-3);font-size:12px}.site-map-results svg{width:15px;height:15px;color:var(--accent);flex:none;margin-top:2px}.site-map-step{border-top:1px solid var(--line);gap:8px;padding-top:12px;display:grid}.site-map-step h3{margin:0;font-size:13px}.site-map-step .seg button{align-items:center;gap:6px;display:inline-flex}.site-map-step .seg svg{width:14px;height:14px}.site-map-step>.btn{justify-self:start}.map-vertex{cursor:move;background:#fff;border:2.5px solid #1f4a3f;border-radius:50%;box-shadow:0 1px 4px #0006}.dialog.site-map.sk{border:0}.site-source-actions{flex-wrap:wrap;gap:6px;display:flex}@media (width<=860px){.site-map-body{grid-template-rows:minmax(320px,1fr) auto;grid-template-columns:1fr}.site-map-side{border-left:0;border-top:1px solid var(--line);max-height:45vh}}.city-row{border-top:1px solid var(--line);gap:8px;margin-top:10px;padding-top:10px;display:grid}.city-row .hint{margin:0}.city-row .btn{justify-self:start}.rules h3>svg{width:15px;height:15px}.rules-place{margin:0 0 8px;font-size:13px;font-weight:600}.rule-checks{background:var(--line);border:1px solid var(--line);border-radius:var(--r-m);gap:1px;margin:0 0 8px;padding:0;list-style:none;display:grid;overflow:hidden}.rule-checks li{background:var(--surface);grid-template-columns:18px minmax(0,1fr) auto;grid-template-areas:"mark label value""mark limit limit";align-items:baseline;column-gap:8px;padding:7px 10px;font-size:12px;display:grid}.rule-mark{border-radius:50%;grid-area:mark;align-self:start;place-items:center;width:16px;height:16px;margin-top:1px;display:grid}.rule-checks li.ok .rule-mark{background:var(--accent-soft);color:var(--accent-strong)}.rule-checks li.bad .rule-mark{background:color-mix(in oklch, var(--alert) 14%, transparent);color:var(--alert)}.rule-mark svg{stroke-width:3px;width:11px;height:11px}.rule-label{grid-area:label;font-weight:600}.rule-value{font-variant-numeric:tabular-nums;grid-area:value;font-weight:650}.rule-checks li.bad .rule-value{color:var(--alert)}.rule-limit{color:var(--ink-2);grid-area:limit}.rules-form{gap:6px;margin-bottom:8px;display:grid}details.rules-notes li{margin:4px 0}.rules-sources p{margin:4px 0;font-size:12px}.rules-sources a{color:var(--accent-strong);align-items:center;gap:4px;display:inline-flex}.rules-sources a svg{flex:none;width:12px;height:12px}.rules h3 .icon-btn{width:26px;height:26px}.rules h3 .icon-btn svg{width:14px;height:14px}.rules-pick{gap:8px;margin-bottom:8px;display:grid}.rules-pick .hint{margin:0}.rules-pick select{width:100%}.rules-pick .btn{justify-self:start}.rules a{color:var(--accent-strong)}details.rules-notes{color:var(--ink-2);margin:6px 0;padding:0;font-size:12px}details.rules-notes summary{cursor:pointer;color:var(--ink);padding:4px 0;font-weight:600}details.rules-notes ul{margin:4px 0 0;padding-left:18px}.crash-wrap{z-index:5;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.crash{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);width:100%;max-width:460px;box-shadow:var(--shadow-2);color:var(--ink);gap:8px;padding:18px 20px;display:grid}.crash b{font-size:15px}.crash p{color:var(--ink-2);margin:0}.crash code{color:var(--alert);background:var(--sunken);border-radius:var(--r-s);overflow-wrap:anywhere;padding:6px 8px;font-size:12px}.crash-actions{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.scrim>.crash{margin:auto}.report-root{z-index:60;background:var(--canvas);position:fixed;inset:0;overflow:auto}.report-bar{z-index:1;padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top,0px));background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex;position:sticky;top:0}.report-bar b{font-size:15px}.report-bar-hint{color:var(--ink-2);font-size:12px}.report-bar .spacer{flex:1}.report-pages{grid-template-columns:minmax(0,1fr);justify-items:center;gap:24px;padding:24px 16px 48px;display:grid}.report-page{color:#1b1f1e;width:210mm;max-width:100%;min-height:297mm;box-shadow:var(--shadow-2);font-family:var(--font);background:#fff;flex-direction:column;padding:16mm 15mm 10mm;font-size:9.5pt;line-height:1.45;display:flex}.report-page-body{flex-direction:column;flex:1;gap:5mm;min-width:0;display:flex}.report-foot{color:#6b7370;border-top:.3mm solid #d9dedc;justify-content:space-between;margin-top:6mm;padding-top:2.5mm;font-size:8pt;display:flex}.report-page h1{letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:30pt;font-weight:780;line-height:1.05}.report-page h2{margin:0;font-size:16pt;font-weight:720}.report-page h3{margin:2mm 0 0;font-size:11pt;font-weight:700}.report-kicker{color:#1d6b4c;margin:0;font-size:10pt;font-weight:650}.report-meta{color:#56605c;margin:0;font-size:10.5pt}.report-cover{flex-direction:column;flex:1;gap:5mm;display:flex}.report-figures{grid-template-columns:repeat(3,minmax(0,1fr));gap:3mm;margin:2mm 0 0;display:grid}.report-figures>div{border:.3mm solid #dfe4e2;border-radius:2mm;gap:.5mm;padding:3mm 3.5mm;display:grid}.report-figures dt{color:#56605c;font-size:8pt;font-weight:600}.report-figures dd{font-variant-numeric:tabular-nums;margin:0;font-size:14pt;font-weight:720}.report-figures span{color:#6b7370;font-size:8pt}.report-figures.small dd{font-size:11.5pt}.report-drawing{place-items:center;min-height:0;margin:0;display:grid}.report-drawing svg{width:100%;height:auto;max-height:205mm}.report-cover .report-drawing svg{max-height:120mm}.report-table{border-collapse:collapse;width:100%;font-size:8.5pt}.report-table th{text-align:left;color:#56605c;border-bottom:.4mm solid #1b1f1e;padding:1.5mm 2mm;font-weight:650}.report-table td{vertical-align:top;border-bottom:.2mm solid #e6eae8;padding:1.2mm 2mm}.report-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.report-table tr.group td{border-bottom-color:#cfd6d3;padding-top:3mm;font-weight:700}.report-table tr.group i{vertical-align:-.2mm;border-radius:.6mm;width:2.5mm;height:2.5mm;margin-right:2mm;display:inline-block}.report-table tfoot td{border-top:.3mm solid #1b1f1e;border-bottom:none;font-weight:700}.report-table tfoot tr+tr td{border-top:none;font-weight:600}.report-table .off{color:#b3261e;font-weight:650}.report-table .ok{color:#1d6b4c;font-weight:650}.report-note{color:#56605c;margin:0;font-size:8.5pt}.report-advice{gap:3mm;margin:0;padding-left:5mm;display:grid}.report-advice p{margin:.8mm 0 0}.report-issues{columns:2;column-gap:8mm;margin:0;padding-left:5mm;font-size:8.5pt}.report-issues li{break-inside:avoid;margin-bottom:1mm}.report-made{margin-top:auto}@page{size:A4;margin:0}@media print{html,body{background:#fff!important;height:auto!important;overflow:visible!important}body.printing-report>:not(.report-root){display:none!important}.report-root{background:#fff;position:static;overflow:visible}.report-bar{display:none}.report-pages{padding:0;display:block}.report-page{box-shadow:none;break-after:page;width:210mm;max-width:none;height:297mm;min-height:0;overflow:hidden}.report-page:last-child{break-after:auto}}@media (width<=860px){.report-figures{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.timebar{grid-template-columns:auto auto minmax(0,1fr) auto;gap:6px;width:calc(100vw - 24px);padding:6px 10px 6px 6px}.timebar-date{min-width:0}.timebar-date select{max-width:104px}.timebar-ticks{display:none}.timebar-now{min-width:42px;font-size:15px}}.dialog.about{flex-direction:column;width:min(620px,100vw - 32px);max-height:calc(100vh - 32px);display:flex}.about-body{gap:16px;padding:16px 20px 20px;display:grid;overflow:auto}.about-body section{justify-items:start;gap:6px;display:grid}.about-body h3{margin:0;font-size:13px}.about-body p,.about-body ul{color:var(--ink-2);max-width:62ch;margin:0;line-height:1.5}.about-body ul{gap:4px;padding-left:18px;display:grid}.about-lede{font-size:14px;color:var(--ink)!important}.about-credits{font-size:12px}.home-foot{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:6px 16px;padding:24px 4px 32px;font-size:12px;display:flex}.linkish{color:var(--accent-strong);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.linkish:hover{color:var(--accent)}.home-foot a{color:var(--ink-3);text-underline-offset:2px}.home-foot a:hover{color:var(--accent-strong)}.dialog.privacy{flex-direction:column;width:min(520px,100vw - 32px);max-height:calc(100vh - 32px);display:flex}.dialog.privacy h2{align-items:center;gap:8px;display:flex}.dialog.privacy h2 svg{width:18px;height:18px;color:var(--accent-strong)}.privacy-body{gap:18px;padding:16px 20px 20px;display:grid;overflow:auto}.privacy-body section{justify-items:start;gap:8px;display:grid}.privacy-body h3{margin:0;font-size:13px}.privacy-body p{color:var(--ink-2);margin:0;font-size:13px;line-height:1.5}.privacy-body code{background:var(--sunken);border-radius:4px;padding:1px 5px;font:12px ui-monospace,Cascadia Code,Consolas,monospace}.privacy-row{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:12px;display:flex}.privacy-actions{flex-wrap:wrap;gap:8px;display:flex}.privacy-delete{border-radius:var(--r-m);background:var(--alert-soft);box-sizing:border-box;justify-items:start;gap:8px;width:100%;padding:12px;display:grid}.privacy-delete p{color:var(--ink)}.privacy-delete input{border:1px solid var(--line-strong);border-radius:var(--r-s);background:var(--field);height:30px;color:var(--ink);font:inherit;padding:0 8px}.privacy-links{color:var(--ink-3);border-top:1px solid var(--line);flex-wrap:wrap;gap:6px 16px;padding-top:12px;font-size:12px;display:flex!important}.privacy-links a{color:var(--accent-strong);text-underline-offset:2px}.dialog.admin{flex-direction:column;width:min(1080px,100vw - 32px);height:calc(100vh - 32px);display:flex}.dialog.admin h2{align-items:center;gap:8px;display:flex}.dialog.admin h2 svg{width:18px;height:18px;color:var(--accent-strong)}.dialog.admin .dialog-head{gap:8px}.admin-body{background:var(--sunken);align-content:start;gap:14px;padding:16px 20px 20px;display:grid;overflow:auto}.admin-loading{color:var(--ink-2);align-items:center;gap:8px;display:flex}.admin-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.admin-kpis>div{border-radius:var(--r-m);background:var(--surface);border:1px solid var(--line);gap:2px;padding:14px 16px;display:grid}.admin-kpis b{color:var(--ink);font-variant-numeric:tabular-nums;font-size:28px;font-weight:650;line-height:1.1}.admin-kpis span{color:var(--ink-2);font-size:12px}.admin-kpis em{color:var(--ink-3);font-size:11px;font-style:normal}.admin-card{border-radius:var(--r-m);background:var(--surface);border:1px solid var(--line);align-content:start;gap:10px;min-width:0;padding:14px 16px;display:grid}.admin-card h3{align-items:baseline;gap:8px;margin:0;font-size:13px;display:flex}.admin-card h3 .muted,.admin-card .muted{color:var(--ink-3);font-size:12px;font-weight:400}.admin-card p{margin:0}.admin-chart{width:100%;height:120px;display:block}.admin-chart .bar{fill:var(--accent)}.admin-chart .bar:hover{fill:var(--accent-strong)}.admin-chart .dot{fill:var(--warn)}.admin-axis{color:var(--ink-3);justify-content:space-between;font-size:11px;display:flex}.admin-cols{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:14px;display:grid}.admin-top{gap:4px;margin:0;padding:0;list-style:none;display:grid}.admin-top li{grid-template-columns:minmax(0,150px) minmax(0,1fr) minmax(40px,max-content);align-items:center;gap:8px;font-size:12px;display:grid}.admin-top li span{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2);overflow:hidden}.admin-top li i{background:var(--accent-soft);height:8px;box-shadow:inset 0 0 0 1px var(--accent);border-radius:4px;min-width:2px}.admin-top li b{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.admin-errors{color:var(--ink-2);gap:4px;margin:0;padding-left:16px;font-size:12px;display:grid}.admin-errors b{color:var(--alert);font-weight:600}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:12px}.admin-table th{text-align:left;color:var(--ink-3);border-bottom:1px solid var(--line);white-space:nowrap;padding:6px 8px;font-weight:600}.admin-table td{border-bottom:1px solid var(--line);white-space:nowrap;color:var(--ink-2);padding:7px 8px}.admin-table .num{text-align:right;font-variant-numeric:tabular-nums}.admin-table tbody tr:not(.admin-detail){cursor:pointer}.admin-table tbody tr:not(.admin-detail):hover td,.admin-table tr.open td{background:var(--sunken)}.admin-table td svg{width:14px;height:14px;color:var(--ink-3)}.admin-detail td{white-space:normal;background:var(--sunken)}.admin-detail ul{gap:4px;margin:0 0 6px;padding:0;list-style:none;display:grid}.admin-detail li{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.admin-trail{font-size:11px}.spinning{animation:.9s linear infinite spin}.admin-tabs{border-bottom:1px solid var(--line);align-items:center;gap:4px;padding:0 20px;font-size:13px;display:flex}.admin-tabs button{font:inherit;color:var(--ink-2);cursor:pointer;background:0 0;border:0;padding:10px 10px 11px;position:relative}.admin-tabs button.on{color:var(--ink);font-weight:600}.admin-tabs button:hover{color:var(--ink)}.admin-tabs .tab-line{background:var(--accent-strong);border-radius:2px;height:2px;position:absolute;bottom:-1px;left:8px;right:8px}.admin-tabs .muted{color:var(--ink-3);font-size:12px}.admin-funnel{gap:6px;margin:0;padding:0;list-style:none;display:grid}.admin-funnel li{grid-template-columns:minmax(0,170px) minmax(0,1fr) 40px minmax(0,130px);align-items:center;gap:10px;font-size:12.5px;display:grid}.admin-funnel li>span:first-child{color:var(--ink)}.admin-funnel i{background:var(--sunken);border-radius:4px;height:14px;overflow:hidden}.admin-funnel em{background:var(--accent);border-radius:4px;min-width:2px;height:100%;display:block}.admin-funnel b{text-align:right;font-variant-numeric:tabular-nums}.admin-funnel .muted{color:var(--ink-3);font-size:12px}.admin-facts{grid-template-columns:max-content 1fr;gap:6px 14px;margin:0;font-size:12.5px;display:grid}.admin-facts dt{color:var(--ink);font-weight:600}.admin-facts dd{color:var(--ink-2);margin:0}.admin-card .hint{color:var(--ink-3);margin:0;font-size:12px}.admin-card h3 select{height:28px;font:inherit;border:1px solid var(--line-strong);border-radius:var(--r-s);background:var(--field);color:var(--ink);padding:0 6px;font-size:12px;font-weight:400}.admin-stages{gap:3px;display:inline-flex}.admin-stages span{background:var(--sunken);color:var(--ink-3);border-radius:4px;padding:1px 5px;font-size:10.5px}.admin-stages span.on{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.admin-timeline{color:var(--ink-2);gap:3px;margin:0;padding:0;font-size:12px;list-style:none;display:grid}.admin-timeline time{width:52px;color:var(--ink-3);font-variant-numeric:tabular-nums;display:inline-block}.admin-timeline li.bad{color:var(--alert)}.admin-their-visits{gap:2px;margin-top:6px;display:grid}.admin-their-visits p{margin:0;font-size:12px}@media (width<=800px){.admin-funnel li{grid-template-columns:minmax(0,1fr) 60px 32px}.admin-funnel li .muted{display:none}.admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-cols{grid-template-columns:1fr}}.tour{z-index:70;pointer-events:none;position:fixed;inset:0}.tour-spot{box-shadow:0 0 0 2px var(--accent), 0 0 0 9999px oklch(20% .02 165/.38);border-radius:12px;position:fixed}.tour-card{box-sizing:border-box;border-radius:var(--r-l);background:var(--surface);width:min(320px,100vw - 24px);color:var(--ink);box-shadow:var(--shadow-2);pointer-events:auto;outline:none;gap:6px;padding:14px 16px 12px;display:grid;position:fixed}.tour-card:before{content:"";left:calc(var(--arrow) - 7px);background:var(--surface);border-radius:2px;width:14px;height:14px;position:absolute;transform:rotate(45deg)}.tour-card.below:before{top:-6px}.tour-card.above:before{bottom:-6px}.tour-card.right:before,.tour-card.left:before{left:auto;top:calc(var(--arrow) - 7px)}.tour-card.right:before{left:-6px}.tour-card.left:before{right:-6px}.tour-card b{padding-right:24px;font-size:14px}.tour-card p{color:var(--ink-2);margin:0;font-size:13px;line-height:1.5}.tour-close{position:absolute;top:8px;right:8px}.tour-foot{align-items:center;gap:6px;margin-top:6px;display:flex}.tour-count{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:12px}.consent{z-index:60;box-sizing:border-box;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);width:min(380px,100vw - 32px);box-shadow:var(--shadow-2);color:var(--ink-2);gap:10px;padding:14px 16px;font-size:12.5px;line-height:1.5;display:grid;position:fixed;bottom:44px;left:16px}.consent p{margin:0}.consent b{color:var(--ink);margin-bottom:2px;font-size:13px;display:block}.consent a{color:var(--accent-strong);text-underline-offset:2px}.consent-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}@media (width<=640px){.consent{width:auto;bottom:16px;left:16px;right:16px}}body:has(.scrim,.onb) .consent{z-index:40}.checks-group{margin:4px 0}.checks-group>summary{cursor:pointer;color:var(--ink-2);align-items:center;gap:6px;padding:4px 0;font-size:12px;font-weight:600;display:flex}.checks-group>summary::marker{color:var(--ink-3)}.checks-fix{border-radius:var(--r-m);background:var(--sunken);justify-items:start;gap:6px;margin:6px 0 8px;padding:10px 12px;display:grid}.checks-fix .hint{margin:0}.typed-program{border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);gap:6px;margin:14px 16px 0;padding:12px;display:grid}.typed-program label{gap:2px;display:grid}.typed-program label span{color:var(--ink-2);font-size:12px}.typed-program textarea{resize:vertical;width:100%;min-height:110px;font:inherit;border:1px solid var(--line-strong);border-radius:var(--r-s);background:var(--field);color:var(--ink);padding:8px 10px;font-size:13px;line-height:1.5}.typed-program textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:#0000}.typed-program .btn{justify-self:start}.outside-ai{border-radius:var(--r-m);background:var(--sunken);color:var(--ink-2);gap:6px;margin:10px 16px 14px;padding:10px 12px;font-size:12px;display:grid}.outside-ai.emph{background:var(--accent-soft);color:var(--ink)}.outside-ai>b{color:var(--ink);align-items:center;gap:6px;font-size:13px;display:flex}.outside-ai>b svg{width:15px;height:15px;color:var(--accent-strong)}.outside-ai ol,.outside-panel ol{gap:4px;margin:0;padding-left:18px;line-height:1.5;display:grid}.outside-ai li>span,.outside-panel li>span{margin-right:8px}.outside-ai li .btn,.outside-panel li .btn{vertical-align:middle}.manual-prompt{border:1px solid var(--line-strong);border-radius:var(--r-m);background:var(--surface);gap:6px;margin:0 16px 14px;padding:10px 12px;font-size:12px;display:grid}.manual-prompt p{margin:0}.manual-prompt textarea{border:1px solid var(--line);border-radius:var(--r-s);background:var(--field);width:100%;color:var(--ink);resize:vertical;padding:8px;font:12px/1.45 ui-monospace,Cascadia Code,Consolas,monospace}.manual-prompt .btn{justify-self:start}.outside-panel{background:var(--sunken);color:var(--ink-2);border-bottom:1px solid var(--line);gap:8px;padding:10px 14px;font-size:12px;display:grid}.outside-panel textarea{border:1px solid var(--line-strong);border-radius:var(--r-s);background:var(--field);width:100%;color:var(--ink);resize:vertical;padding:8px;font:12px/1.45 ui-monospace,Cascadia Code,Consolas,monospace}.outside-panel textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:#0000}.outside-actions{gap:6px;display:flex}.answer-check{border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);justify-items:start;gap:8px;padding:12px;display:grid}.answer-check p{color:var(--ink-2);margin:0;font-size:12px;line-height:1.55}.import-ai-off{border-radius:var(--r-m);background:var(--sunken);color:var(--ink-2);align-items:flex-start;gap:8px;margin:-6px 18px 18px;padding:10px 12px;font-size:12px;line-height:1.5;display:flex}.import-ai-off>svg{width:15px;height:15px;color:var(--warn);flex:none;margin-top:2px}.dialog .hint a{color:var(--accent-strong);text-underline-offset:2px}.about-links{flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:12px;display:flex}.about-links a{color:var(--accent-strong);text-underline-offset:2px}.dialog.site-export{width:min(560px,100vw - 32px)}.dialog.site-export h2{align-items:center;gap:8px;display:flex}.dialog.site-export h2 svg{width:18px;height:18px;color:var(--accent-strong)}.site-export-body{gap:14px;padding:16px 20px 18px;display:grid}.site-export-body .explain{margin:0}.site-export-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.site-export-grid fieldset{border:1px solid var(--line);border-radius:var(--r-m);align-content:start;gap:6px;margin:0;padding:10px 12px;display:grid}.site-export-grid legend{color:var(--ink-2);padding:0 4px;font-size:12px;font-weight:600}.site-export-opt{font-size:13px}.site-export-opt.off{color:var(--ink-3)}.site-export-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.site-export-count{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px;margin:0;font-size:12.5px;display:flex}.site-export-count .warn{color:var(--warn)}.city-actions{flex-wrap:wrap;gap:8px;display:flex}@media (width<=560px){.site-export-grid,.site-export-row{grid-template-columns:1fr}}.dialog.revit-guide{width:min(600px,100vw - 32px)}.dialog.revit-guide h2{align-items:center;gap:8px;display:flex}.dialog.revit-guide h2 svg{width:18px;height:18px;color:var(--accent-strong)}.revit-guide-body{gap:14px;max-height:min(64vh,640px);padding:16px 20px 18px;display:grid;overflow-y:auto}.revit-guide-body .explain,.revit-guide-body .hint{max-width:none;margin:0}.revit-steps{color:var(--ink-2);gap:12px;margin:0;padding-left:22px;font-size:13px;line-height:1.5;display:grid}.revit-steps>li::marker{color:var(--accent-strong);font-weight:700}.revit-steps b{color:var(--ink);font-weight:650}.revit-steps ul{gap:4px;margin:6px 0;padding-left:18px;display:grid}.revit-steps code{background:var(--sunken);overflow-wrap:anywhere;border-radius:4px;padding:1px 5px;font:12px ui-monospace,Cascadia Code,Consolas,monospace}.ui-path{color:var(--ink);white-space:nowrap;font-weight:600}.onb{z-index:55;background:color-mix(in oklch, var(--canvas) 72%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow:auto}.onb-card{box-sizing:border-box;background:var(--surface);border:1px solid var(--line);width:min(760px,100%);box-shadow:var(--shadow-2);border-radius:20px;overflow:hidden}.onb-head{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:14px 16px 14px 22px;display:flex}.onb-steps{color:var(--ink-3);flex-wrap:wrap;gap:6px 18px;margin:0 auto 0 0;padding:0;font-size:13px;list-style:none;display:flex}.onb-steps li{align-items:center;gap:7px;display:flex}.onb-steps li.on{color:var(--ink);font-weight:600}.onb-steps li.done{color:var(--accent-strong)}.onb-dot{background:var(--sunken);width:22px;height:22px;color:var(--ink-2);border-radius:50%;place-items:center;font-size:12px;font-weight:600;display:grid}.onb-steps li.on .onb-dot{background:var(--accent);color:var(--on-accent)}.onb-steps li.done .onb-dot{background:var(--accent-soft);color:var(--accent-strong)}.onb-dot svg{width:13px;height:13px}.onb-body{gap:14px;padding:26px 26px 18px;display:grid}.onb-body h2{letter-spacing:-.01em;margin:0;font-size:26px;line-height:1.15}.onb-lede{color:var(--ink-2);max-width:60ch;margin:-6px 0 2px;font-size:14.5px;line-height:1.5}.onb-have{background:var(--accent-soft);color:var(--accent-ink);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;font-size:13.5px;display:flex}.onb-have>svg{flex:none;width:18px;height:18px}.onb-have>span{flex:1;min-width:0}.onb-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.onb-option{border:1px solid var(--line-strong);background:var(--field);transition:border-color .15s var(--ease-out);border-radius:14px;align-content:start;gap:10px;display:grid}.onb-option:hover,.onb-option.active{border-color:var(--accent)}.onb-option-main{text-align:left;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:14px;justify-items:start;gap:10px;padding:16px;display:grid}.onb-option-main>svg{box-sizing:border-box;background:var(--accent-soft);width:40px;height:40px;color:var(--accent-ink);border-radius:11px;padding:9px}.onb-option-main>span{gap:4px;display:grid}.onb-option-main b{font-size:15px}.onb-option-main span span{color:var(--ink-2);font-size:12.5px;line-height:1.45}.onb-option-main:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.onb-size{gap:8px;padding:0 16px 16px;display:grid}.onb-size .btn{justify-self:start}.onb-chips{flex-wrap:wrap;gap:6px;padding:0 16px 16px;display:flex}.onb-summary{color:var(--ink-2);gap:6px;margin:0;padding:0;font-size:14px;list-style:none;display:grid}.onb-summary li{align-items:flex-start;gap:8px;display:flex}.onb-summary li.ok{color:var(--ink)}.onb-summary svg{width:17px;height:17px;color:var(--accent-strong);flex:none;margin-top:1px}.onb-dash{text-align:center;width:17px;color:var(--ink-3)}.onb-go{justify-self:start;height:44px;padding:0 20px;font-size:15px}.onb-next{background:var(--sunken);color:var(--ink-2);border-radius:12px;gap:6px;padding:14px 16px;font-size:13px;display:grid}.onb-next b{color:var(--ink);font-size:13px}.onb-next ol{gap:3px;margin:0;padding-left:20px;display:grid}.onb-foot{align-items:center;gap:8px;margin-top:4px;display:flex}@media (width<=720px){.onb-options{grid-template-columns:1fr}.onb-body{padding:20px 18px 14px}.onb-body h2{font-size:22px}.onb-steps{flex-wrap:nowrap;gap:8px}.onb-steps li:not(.on) .onb-label{display:none}.onb-head{padding-left:16px}}.lane-step{color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:2px;padding-right:2px;font-size:12px;display:inline-flex}.lane-step .icon-btn{width:26px;height:26px}.stack>.banner{flex-wrap:wrap;justify-content:center;max-width:100%}.path-checks{align-content:end;gap:6px;padding-bottom:4px;display:grid}.import-guide{align-content:start;gap:12px;padding:16px 18px 20px;display:grid}.import-guide .drop{margin:0}.import-guide .typed-program{background:0 0;border:0;margin:0;padding:0}.import-steps{margin:0 0 4px}.import-q{letter-spacing:-.01em;margin:2px 0 0;font-size:17px;font-weight:650}.import-back{justify-self:start}.import-alt{justify-self:start;font-size:12px}.ai-line{border-radius:var(--r-m);background:var(--sunken);color:var(--ink-2);align-items:flex-start;gap:8px;margin:0;padding:10px 12px;font-size:12px;line-height:1.5;display:flex}.ai-line>svg{width:16px;height:16px;color:var(--accent-strong);flex:none;margin-top:1px}.ai-line.ok{background:var(--accent-soft);color:var(--ink)}.assistant-steps{gap:10px;display:grid}.assistant-why{border-radius:var(--r-m);background:var(--accent-soft);color:var(--ink);align-items:flex-start;gap:8px;margin:0;padding:10px 12px;font-size:13px;line-height:1.5;display:flex}.assistant-why>svg{width:17px;height:17px;color:var(--accent-strong);flex:none;margin-top:2px}.assistant-steps>ol{gap:8px;margin:0;padding:0;list-style:none;display:grid}.assistant-steps>ol>li{border:1px solid var(--line);background:var(--field);color:var(--ink-2);transition:border-color .15s var(--ease-out);border-radius:14px;grid-template-columns:22px minmax(0,1fr);gap:12px;padding:12px 14px;display:grid}.assistant-steps>ol>li.on{border-color:var(--accent);color:var(--ink)}.assistant-steps>ol>li.on .onb-dot{background:var(--accent);color:var(--on-accent)}.assistant-steps>ol>li.done .onb-dot{background:var(--accent-soft);color:var(--accent-strong)}.assistant-steps>ol>li>div{justify-items:start;gap:6px;min-width:0;display:grid}.assistant-steps>ol>li b{color:var(--ink);font-size:14px}.assistant-steps>ol>li>div>span{font-size:12.5px;line-height:1.5}.assistant-steps textarea{resize:vertical;border:1px solid var(--line-strong);border-radius:var(--r-s);background:var(--surface);width:100%;min-height:96px;color:var(--ink);box-sizing:border-box;padding:8px 10px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.assistant-steps textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:#0000}.assistant-links{flex-wrap:wrap;gap:6px;display:flex}.assistant-links .btn svg{width:13px;height:13px}.assistant-error{color:var(--alert);align-items:flex-start;gap:6px;margin:0;font-size:12px;line-height:1.45;display:flex}.assistant-error svg{flex:none;width:14px;height:14px;margin-top:1px}.assistant-links .btn{text-decoration:none}.file-checks{box-sizing:border-box;align-content:start;gap:10px;width:100%;max-width:760px;margin:0 auto;padding:16px 18px 20px;display:grid}.file-checks.compact{max-width:none;margin:0;padding:0}.file-check{border:1px solid var(--line);background:var(--field);border-radius:14px;gap:8px;padding:12px 14px;display:grid}.file-check.warn{border-color:color-mix(in oklch, var(--warn) 45%, var(--line))}.file-check.fail{border-color:color-mix(in oklch, var(--alert) 45%, var(--line))}.file-check.assistant{border-color:var(--accent)}.file-check-head{grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.file-check-head>svg{width:18px;height:18px;color:var(--ink-2)}.file-check-name{gap:1px;min-width:0;display:grid}.file-check-name b{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.file-check-name span{color:var(--ink-3);font-size:11.5px}.file-check-sub{color:var(--ink-2);gap:6px;margin:0 0 0 30px;font-size:12px;display:grid}.checks{gap:6px;margin:0 0 0 30px;padding:0;list-style:none;display:grid}.checks li{color:var(--ink);grid-template-columns:16px minmax(0,1fr);align-items:start;gap:8px;font-size:13px;line-height:1.45;display:grid}.checks li>svg{width:15px;height:15px;color:var(--ok);margin-top:2px}.checks li.warn>svg{color:var(--warn)}.checks li.fail>svg{color:var(--alert)}.checks li.info>svg{color:var(--ink-3)}.checks li.info{color:var(--ink-2)}.checks li.assistant>svg{color:var(--accent-strong)}.checks small{color:var(--ink-2);font-size:12px;line-height:1.45;display:block}.file-check-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;display:flex}.file-check-actions>p{color:var(--ink-2);flex-basis:100%;margin:0;font-size:13px}.file-check-actions .btn svg{width:15px;height:15px}.file-check-go{align-items:center;gap:8px;flex-basis:auto!important;display:flex!important}.file-check-go .spin{width:14px;height:14px}.review-checks{border-radius:var(--r-m);background:var(--sunken);gap:8px;padding:10px 12px;display:grid}.review-checks>b{color:var(--ink-2);font-size:12px;font-weight:600}.review-checks .checks{margin:0}.review-checks .checks li{font-size:12.5px}.app{grid-template-rows:48px minmax(0,1fr)}.topbar{background:var(--surface);border-bottom:1px solid var(--line);z-index:20;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;padding:0 10px 0 12px;position:relative}.topbar .brand-mark{width:26px;height:26px}.topbar .home-link{cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0}.topbar .project-name{flex:0 220px;font-weight:600}.topbar .name-menu{width:26px;height:26px;margin-left:-6px}.topbar .name-menu svg{width:15px;height:15px}.tabs-top{justify-self:center;gap:2px;display:flex}.top-tab{height:34px;color:var(--ink-2);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:9px;align-items:center;gap:7px;padding:0 14px;font-weight:560;display:inline-flex;position:relative}.top-tab:hover{color:var(--ink);background:var(--hover)}.top-tab.on{color:var(--accent-ink)}.top-tab.on:hover{background:0 0}.top-tab>svg{width:17px;height:17px;position:relative}.top-tab-label{position:relative}.top-tab-pill{background:var(--accent-soft);border-radius:9px;position:absolute;inset:0}.top-tab-done{color:var(--accent);width:13px!important;height:13px!important}.topbar-side.end{gap:4px}.topbar .icon-btn.on{background:var(--accent-soft);color:var(--accent-ink)}.import-btn{margin:0 4px}.ai-dot{border:1px solid var(--line);background:var(--surface);height:28px;color:var(--ink-2);cursor:pointer;border-radius:99px;align-items:center;gap:5px;padding:0 9px;font-size:12px;font-weight:600;display:inline-flex}.ai-dot .status-dot{background:var(--ink-3);border-radius:50%;width:7px;height:7px}.ai-dot.ready .status-dot{background:var(--accent)}.ai-dot.off .status-dot{background:var(--alert)}.ai-dot.checking .status-dot{background:var(--warn)}@media (width<=1180px){.top-tab-label{display:none}.top-tab{padding:0 10px}}@media (width<=900px){.import-label,.ai-dot,.topbar .cloud-pill:not(.bad):not(.warn){display:none}}.workspace{--inset-l:0px;--inset-r:0px;min-height:0;display:flex}.workspace.left-closed,.workspace.right-closed{--inset-l:0px;--inset-r:0px}.workspace>.stage{flex:1;min-width:0;min-height:0;position:relative;inset:auto}.workspace>.panel.right{border:0;border-left:1px solid var(--line);width:320px;box-shadow:none;background:var(--surface);-webkit-backdrop-filter:none;border-radius:0;flex:none;position:relative;top:auto;bottom:auto;right:auto}.panel-reopen.left{justify-content:center;width:34px;padding:0;top:12px;left:12px}.tree{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex:none;width:250px;min-height:0;display:flex}.tree-head{border-bottom:1px solid var(--line);gap:8px;padding:12px 12px 10px 16px;display:grid}.tree-title{align-items:center;gap:8px;display:flex}.tree-title b{flex:1;font-size:14px}.tree-title .icon-btn{width:26px;height:26px}.tree-title .icon-btn svg{width:15px;height:15px}.tree-numbers{gap:4px;font-size:12px;display:grid}.tree-numbers b{font-size:15px;font-weight:700}.tree-numbers .muted{font-size:11.5px}.tree-body{flex:1;align-content:start;gap:6px;padding:6px 8px 12px;display:grid;overflow:auto}.tree-list{border-bottom:1px solid var(--line);gap:1px;margin:0;padding:0 0 6px;list-style:none;display:grid}.tree-list:last-child{border-bottom:0}.tree-item{width:100%;height:32px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:9px;padding:0 8px;font-size:13px;display:flex}.tree-item:hover{background:var(--hover)}.tree-item.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.tree-item>svg{width:15px;height:15px;color:var(--ink-3);flex:none}.tree-item.on>svg{color:var(--accent-ink)}.tree-item.add{color:var(--ink-2)}.tree-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tree-meta{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:12px}.tree-item .swatch{border-radius:3px;flex:none;width:11px;height:11px}.tree-item.layer .eye{width:14px;height:14px;color:var(--ink-3);opacity:0}.tree-item.layer:hover .eye,.tree-item.layer.off .eye{opacity:1}.tree-item.layer.off .tree-name,.tree-item.layer.off .tree-meta{color:var(--ink-3);text-decoration:line-through}.tree-item.layer.off .swatch{opacity:.35}.tree-section{gap:2px;display:grid}.tree-label{color:var(--ink-3);padding:6px 8px 2px;font-size:11.5px;font-weight:600}.dock-slot{flex-direction:column;align-items:center;gap:6px;max-width:calc(100% - 24px);top:12px}.dock{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:2px;padding:4px;display:flex}.dock-btn{width:34px;height:34px;color:var(--ink-2);cursor:pointer;transition:background-color .12s var(--ease-out), color .12s var(--ease-out);background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.dock-btn:hover{background:var(--hover);color:var(--ink)}.dock-btn.on{background:var(--accent-soft);color:var(--accent-ink)}.dock-btn:disabled{opacity:.35;cursor:default;background:0 0}.dock-btn svg{width:18px;height:18px}.dock-sep{background:var(--line);width:1px;height:22px;margin:0 4px}.dock-seg{background:0 0}.dock-check{white-space:nowrap;padding:0 6px;font-size:12.5px}.tool-hint{background:color-mix(in oklch, var(--ink) 82%, transparent);color:var(--surface);text-align:center;max-width:620px;box-shadow:var(--shadow-1);border-radius:99px;margin:0;padding:5px 12px;font-size:12px;line-height:1.4}.chooser-slot{top:100px}.site-numbers{top:12px;left:12px}.site-numbers .metrics{flex-direction:column;align-items:stretch}.scale-slot{bottom:64px;left:14px}.float.bc.above-bar{bottom:64px}.pull-label{z-index:60;pointer-events:none;background:var(--ink);color:var(--surface);font-variant-numeric:tabular-nums;border-radius:7px;padding:4px 9px;font-size:12px;font-weight:600;position:fixed}.snap-label{fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:3px;font-size:11px;font-weight:600}.measure-label{font-weight:700}.canvas-bar{z-index:8;pointer-events:none;grid-template-columns:1fr auto 1fr;align-items:end;gap:12px;display:grid;position:absolute;bottom:12px;left:12px;right:12px}.canvas-bar>*{pointer-events:auto}.canvas-bar>.bar-group:first-child{justify-self:start}.canvas-bar>.bar-group:last-child{justify-self:end}.bar-group{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);border-radius:12px;align-items:center;gap:2px;padding:4px;display:flex}.bar-group .icon-btn{width:32px;height:32px}.bar-group .icon-btn.active{background:var(--accent-soft);color:var(--accent-ink)}.bar-group .north svg{width:32px;height:32px}.bar-sep{background:var(--line);width:1px;height:20px;margin:0 3px}.bar-zoom{text-align:center;min-width:44px;color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:12px}.bar-search{border:1px solid var(--line);background:var(--surface);min-width:300px;height:42px;box-shadow:var(--shadow-1);color:var(--ink-3);cursor:text;border-radius:12px;align-items:center;gap:8px;padding:0 12px;font-size:13px;display:inline-flex}.bar-search>svg{width:16px;height:16px}.bar-search>span{text-align:left;flex:1}.dim-switch{background:var(--sunken);border-radius:9px;gap:2px;padding:2px;display:inline-flex}.dim-switch button{height:28px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:5px;padding:0 9px;font-size:12px;font-weight:650;display:inline-flex}.dim-switch button svg{width:14px;height:14px}.dim-switch button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}.menu.up{top:auto;bottom:calc(100% + 8px)}.menu-check{border-radius:var(--r-s);cursor:pointer;align-items:center;gap:8px;padding:7px 10px;font-size:13px;display:flex}.menu-check:hover{background:var(--hover)}@media (width<=1100px){.bar-search{justify-content:center;width:42px;min-width:0;padding:0}.bar-search>span,.bar-search kbd{display:none}}.page{background:var(--bg);align-content:start;gap:18px;padding:28px 32px 48px;display:grid;position:absolute;inset:0;overflow:auto}.page>*{width:100%;max-width:1180px;margin:0 auto}.page-head{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.page-head>div:first-child{flex:1;min-width:260px}.page-head h1{letter-spacing:-.015em;margin:0;font-size:26px;font-stretch:110%}.page-head p{margin:4px 0 0}.page-actions{flex-wrap:wrap;gap:8px;display:flex}.page-empty{border:1px dashed var(--line-strong);background:var(--surface);border-radius:16px;justify-items:start;gap:8px;padding:32px;display:grid}.page-empty b{font-size:16px}.page-empty span{color:var(--ink-2);max-width:60ch}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;min-width:0}.card-head{gap:2px;padding:14px 16px 6px;display:grid}.program-grid{grid-template-columns:minmax(0,1.25fr) minmax(320px,1fr);align-items:start;gap:16px;display:grid}.program-list{overflow:hidden}.program-embedded{flex-direction:column;min-height:360px;max-height:calc(100vh - 190px);display:flex}.program-embedded .panel-body{overflow:auto}.program-side{max-height:calc(100vh - 190px);position:sticky;top:0;overflow-y:auto}@media (width<=960px){.program-grid{grid-template-columns:1fr}.program-side{max-height:none;position:static}}.report-card{border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;color:var(--ink);border-radius:16px;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:18px 20px;display:grid}.report-card:hover:not(:disabled){border-color:var(--accent)}.report-card:disabled{opacity:.55;cursor:default}.report-card>span:nth-child(2){gap:3px;display:grid}.report-card b{font-size:16px}.report-card>span:nth-child(2)>span{color:var(--ink-2);max-width:70ch;font-size:13px}.report-icon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent-ink);border-radius:12px;place-items:center;display:grid}.report-icon svg{width:22px;height:22px}.output-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;display:grid}.output{align-content:start;gap:6px;padding:16px;display:grid}.output p{color:var(--ink-2);margin:0;font-size:12.5px;line-height:1.5}.output-icon{background:var(--sunken);width:34px;height:34px;color:var(--ink-2);border-radius:10px;place-items:center;display:grid}.output-icon svg{width:17px;height:17px}.output-actions{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}@media (width<=640px){.page{padding:18px 16px 40px}.report-card{grid-template-columns:1fr}}.toasts{bottom:76px}.bar-search>span{white-space:nowrap}.topbar .project-name{field-sizing:content;flex:none;min-width:60px;max-width:280px}.home{background:var(--surface);grid-template-columns:236px minmax(0,1fr);height:100vh;display:grid;overflow:hidden}.home-side{border-right:1px solid var(--line);background:var(--surface);flex-direction:column;gap:10px;min-height:0;padding:16px 12px;display:flex;overflow:auto}.home-side .brand{padding:2px 6px 6px;font-size:19px}.home-ws{color:var(--ink-3);letter-spacing:.01em;padding:6px 8px 0;font-size:11.5px;font-weight:650}.home-nav{gap:2px;display:grid}.home-nav button{height:34px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:0 10px;font-size:13.5px;display:flex}.home-nav button:hover{background:var(--hover)}.home-nav button.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.home-nav button svg{width:16px;height:16px;color:var(--ink-3)}.home-nav button.on svg{color:var(--accent-ink)}.home-side-card{border:1px solid var(--line);color:var(--ink-2);border-radius:12px;justify-items:start;gap:8px;margin-top:10px;padding:14px;font-size:12.5px;line-height:1.5;display:grid}.home-side-foot{color:var(--ink-3);flex-wrap:wrap;gap:4px 12px;margin-top:auto;padding:8px 6px 0;font-size:11.5px;display:flex}.home-side-foot a,.home-side-foot .linkish{color:var(--ink-3);font-size:11.5px}.home>.home-main{background:var(--surface);max-width:none;min-height:0;margin:0;padding:0 0 72px;display:block;overflow-y:auto}.home-main>.home-bar{background:color-mix(in oklch, var(--surface) 90%, transparent);border-bottom:0;grid-template-columns:none;justify-content:flex-start;padding:12px 28px;display:flex}.home-main>.home-bar .home-search{background:var(--surface);border-color:var(--line);width:min(420px,100%)}.home-head{align-items:center;gap:12px;max-width:1180px;margin:10px auto 0;padding:0 28px;display:flex}.home-head h1{flex:1;margin:0;font-size:22px;font-weight:720}.btn.dark{background:var(--ink);border-color:var(--ink);color:var(--surface)}.btn.dark:hover{background:color-mix(in oklch, var(--ink) 86%, var(--surface));border-color:#0000}.home-ask{justify-items:center;gap:14px;max-width:700px;margin:44px auto 52px;padding:0 24px;display:grid}.home-ask h2{text-align:center;margin:0 0 4px;font-size:21px;font-weight:650}.ask-box{border:1px solid var(--line-strong);background:var(--surface);width:100%;box-shadow:var(--shadow-1);transition:border-color .15s var(--ease-out), box-shadow .15s var(--ease-out);border-radius:16px;gap:6px;padding:12px 12px 10px 14px;display:grid}.ask-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.ask-box textarea{resize:none;min-height:48px;box-shadow:none;background:0 0;border:0;padding:2px 0;font-size:14.5px}.ask-box textarea:focus{box-shadow:none}.ask-row{align-items:center;gap:6px;display:flex}.ask-chip{border:1px solid var(--line);background:var(--surface);height:30px;color:var(--ink-2);cursor:pointer;border-radius:99px;align-items:center;gap:6px;padding:0 11px;font-size:12.5px;display:inline-flex}.ask-chip:hover{border-color:var(--ink-3);color:var(--ink)}.ask-chip svg{width:14px;height:14px}.ask-send{background:var(--ink);width:34px;height:34px;color:var(--surface);cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid}.ask-send:disabled{background:var(--sunken);color:var(--ink-3);cursor:default}.ask-send svg{width:17px;height:17px}.ask-ideas{flex-wrap:wrap;justify-content:center;gap:8px;max-width:640px;display:flex}.ask-idea{border:1px solid var(--line);background:var(--surface);height:32px;color:var(--ink-2);cursor:pointer;border-radius:99px;align-items:center;gap:6px;padding:0 13px;font-size:12.5px;display:inline-flex}.ask-idea:hover{border-color:var(--accent);color:var(--accent-ink)}.ask-idea svg{width:14px;height:14px}.home-main>.home-projects{max-width:1180px;margin:0 auto;padding:0 28px}.home-main .projects-head h2{font-size:15px}.example-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;max-width:1180px;margin:24px auto 0;padding:0 28px;display:grid}.example-card{text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:14px;justify-items:start;gap:6px;padding:18px;display:grid}.example-card:hover{border-color:var(--accent)}.example-card>svg{width:20px;height:20px;color:var(--accent)}.example-card b{font-size:15px}.example-card>span:not(.linkish){color:var(--ink-2);font-size:13px;line-height:1.5}.describe{gap:10px;display:grid}.describe textarea{box-sizing:border-box;width:100%}@media (width<=820px){.home{grid-template-columns:minmax(0,1fr)}.home-side{display:none}.home-head,.home-main>.home-projects,.example-grid{padding:0 16px}.home-main>.home-bar{padding:12px 16px}.home-ask{margin:28px auto 36px;padding:0 16px}}.workspace>.stage{container:stage/inline-size}@container stage (width<=760px){.canvas-bar .bar-zoom,.canvas-bar .bar-sep,.canvas-bar button[aria-label=Zoom\ in],.canvas-bar button[aria-label=Zoom\ out]{display:none}.canvas-bar .bar-search{justify-content:center;width:42px;min-width:0;padding:0}.canvas-bar .bar-search>span,.canvas-bar .bar-search kbd{display:none}}@container stage (width<=520px){.canvas-bar .north,.canvas-bar button[aria-label=What\ shows],.dim-switch button svg{display:none}}.floors-control{align-items:center;gap:6px;display:inline-flex}.floors-control label{color:var(--ink-2);align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.floors-control input{text-align:center;width:52px}.import-or{color:var(--ink-3);align-items:center;gap:10px;margin:14px 0 8px;font-size:12px;display:flex}.import-or:before,.import-or:after{content:"";background:var(--line);flex:1;height:1px}.import-paste{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.import-paste textarea{resize:vertical;min-height:108px;font-size:13px}.import-more{margin:10px 0 0}@media (width<=640px){.import-paste{grid-template-columns:minmax(0,1fr)}}.example-grid .example-head{grid-column:1/-1;margin-top:18px}.example-grid .example-head h2{margin:0 0 4px;font-size:15px;font-weight:650}.example-grid .example-head p{color:var(--ink-2);max-width:70ch;margin:0;font-size:13px;line-height:1.5}.program-col{align-content:start;gap:16px;min-width:0;display:grid}.cost-card{gap:10px;padding:16px 18px;display:grid}.cost-card .card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.cost-card .card-head b{align-items:center;gap:8px;font-size:14px;display:inline-flex}.cost-card .card-head b svg{width:16px;height:16px;color:var(--ink-3)}.cost-currency{color:var(--ink-2);align-items:center;gap:8px;font-size:12.5px;display:inline-flex}.cost-note{max-width:80ch;margin:0;font-size:12.5px;line-height:1.5}.cost-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.cost-table th{text-align:left;color:var(--ink-3);border-bottom:1px solid var(--line);padding:6px 8px;font-size:12px;font-weight:600}.cost-table td{border-bottom:1px solid var(--line);padding:5px 8px}.cost-table .num{text-align:right}.cost-table td.num input{text-align:right;width:110px}.cost-table .swatch{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.cost-table tfoot td{border-bottom:0}.cost-table .cost-total td{border-top:1px solid var(--line-strong);font-size:14px;font-weight:700}.cost-pct{align-items:center;gap:4px;display:inline-flex}.cost-pct input{width:64px!important}.cost-missing{margin:0}.comment-mark{cursor:pointer}.comment-mark path{fill:#f5c400;stroke:#1d2320;stroke-width:1.2px}.comment-mark text{fill:#1d2320;pointer-events:none;font-size:11px;font-weight:700}.comment-mark.on path{fill:#1d2320;stroke:#f5c400;stroke-width:2px}.comment-mark.on text{fill:#f5c400}.comment-mark.resolved{opacity:.55}.comments{gap:10px;display:grid}.comments h3{align-items:center;gap:8px;display:flex}.comments h3 .muted{font-size:12px;font-weight:500}.comment-level{gap:6px;display:grid}.comment-level-name{color:var(--ink-3);font-size:11.5px;font-weight:650}.comment{border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);cursor:pointer;grid-template-columns:24px minmax(0,1fr);gap:8px;padding:8px;display:grid}.comment.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.comment.resolved{opacity:.6}.comment-pin{color:#1d2320;background:#f5c400;border:1px solid #1d2320;border-radius:50%;place-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:grid}.comment-body{gap:4px;min-width:0;display:grid}.comment-body textarea{box-sizing:border-box;resize:vertical;width:100%;min-height:44px;font-size:13px}.comment-meta{align-items:center;gap:4px;font-size:11.5px;display:flex}.comments-empty{gap:10px;display:grid}.tab-badge.soft{color:#1d2320;background:#f5c400}.report-comments h3{margin:14px 0 6px;font-size:13px}.report-comments ol{gap:6px;margin:0;padding-left:22px;font-size:12.5px;line-height:1.5;display:grid}.versions .dialog-head h2{align-items:center;gap:8px;display:inline-flex}.versions .dialog-head h2 svg{width:18px;height:18px;color:var(--ink-3)}.versions-body{gap:12px;max-height:min(70vh,640px);padding:14px 18px 18px;display:grid;overflow:auto}.versions-body>p{margin:0;font-size:13px;line-height:1.5}.version-day{gap:4px;display:grid}.version-day-name{color:var(--ink-3);padding:4px 0;font-size:12px;font-weight:650}.version{border:1px solid var(--line);border-radius:var(--r-m);grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.version b{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.version-name{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.version-name em{color:var(--ink-3);font-size:12px;font-style:normal}.share .dialog-head h2{align-items:center;gap:8px;display:inline-flex}.share .dialog-head h2 svg{width:18px;height:18px;color:var(--ink-3)}.share-body{gap:12px;padding:14px 18px 18px;display:grid}.share-body>p{margin:0;font-size:13px;line-height:1.5}.share-link{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.share-link input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.share-status{background:var(--surface);place-items:center;min-height:100vh;padding:16px;display:grid}.share-status-card{border:1px solid var(--line);background:var(--surface);border-radius:14px;gap:10px;max-width:420px;padding:22px;font-size:14px;line-height:1.5;display:grid}.share-status-card .brand{font-size:18px}.share-status-card p{align-items:center;gap:8px;margin:0;display:flex}.share-model{background:#f3f1ec;grid-template-rows:auto minmax(0,1fr);display:grid;position:fixed;inset:0}.share-canvas{min-height:0;position:relative}.share-canvas canvas{display:block}
