:root{--theme-primary:#312e81;--theme-accent:#7a210b;--theme-accent-light:#e0e7ff;--color-primary:var(--theme-accent);--color-primary-light:#3b82f6;--color-bg:#f1f5f9;--color-surface:#fff;--color-text:#0f172a;--color-muted:#64748b;--color-border:#e2e8f0;--color-row-line:#f0f4f8;--color-head-bg:#f8fafd;--color-success:#16a34a;--color-warning:#d97706;--color-danger:#dc2626;--color-fab:#1e293b;--radius:8px;--radius-pill:20px;--shadow:0 1px 3px #0000001a;--shadow-fab:0 6px 20px #0f172a47;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--header-h:48px;--sidebar-w:220px}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font);color:var(--color-text);background:var(--color-bg);font-size:16px;line-height:1.5}.sa-shell{background:var(--color-bg);min-height:100dvh}.sa-header{z-index:20;height:var(--header-h);background:var(--theme-primary);color:#fff;align-items:center;gap:12px;padding:0 16px;display:flex;position:sticky;top:0}.sa-logo{height:34px;color:var(--theme-primary);background:#fff;border-radius:4px;align-items:center;padding:2px 6px;font-size:13px;font-weight:700;display:flex}.sa-search{position:relative}.sa-search input{color:#fff;width:200px;height:30px;box-shadow:none;background:#ffffff1f;border:1px solid #ffffff38;border-radius:15px;padding:0 12px 0 30px;font-size:12px}.sa-search input::placeholder{color:#ffffff80}.sa-search input:focus{border-color:#ffffff73;outline:none}.sa-search:before{content:"⌕";color:#fff9;font-size:13px;position:absolute;top:5px;left:11px}.sa-assoc-chip{border-radius:var(--radius-pill);color:#fff;letter-spacing:.01em;background:#ffffff1f;border:1px solid #fff3;align-items:center;gap:6px;padding:4px 14px;font-size:12.8px;font-weight:600;display:inline-flex}.sa-header-spacer{flex:1}.sa-header-icon{color:#ffffffd9;padding:4px 6px;font-size:15px}.sa-user{border-radius:var(--radius-pill);background:#ffffff14;border:1px solid #fff3;align-items:center;gap:8px;padding:3px 10px 3px 4px;display:flex}.sa-avatar{background:var(--theme-accent);color:#fff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:10px;font-weight:700;display:grid}.sa-user-name{color:#fff;font-size:12px;font-weight:600;line-height:1.3}.sa-user-role{color:#ffffff8c;text-transform:uppercase;font-size:10px;line-height:1.3}.sa-body{min-height:calc(100dvh - var(--header-h));display:flex}.sa-sidebar{width:var(--sidebar-w);background:var(--color-surface);border-right:1px solid var(--color-border);flex:none}.sa-sb-head{background:var(--color-head-bg);border-bottom:1.6px solid var(--theme-accent);color:var(--color-muted);letter-spacing:.07em;text-transform:uppercase;padding:10px 14px 8px;font-size:10px;font-weight:700}.sa-sb-single,.sa-mg{border-bottom:1px solid var(--color-border);color:var(--color-text);align-items:center;gap:8px;padding:9px 14px;font-size:12.5px;font-weight:600;text-decoration:none;display:flex}.sa-sb-single.active{background:var(--theme-accent-light);border-left:2.4px solid var(--theme-accent);color:var(--theme-accent);padding-left:11px}.sa-mg-ic{background:var(--color-bg);border:1px solid var(--color-border);width:20px;height:20px;color:var(--color-muted);border-radius:50%;flex:none;place-items:center;font-size:9px;font-weight:700;display:grid}.sa-mg-chev{color:var(--color-muted);margin-left:auto;font-size:10px}.sa-main{flex:1;min-width:0;padding:24px}.sa-main h1{color:var(--color-text);margin:0;font-size:24px;font-weight:700;line-height:36px}.sa-subtitle{color:var(--color-muted);margin:0 0 12px;font-size:14px;line-height:21px}.sa-pill{border-radius:var(--radius-pill);background:var(--color-primary-light);color:#fff;align-items:center;gap:6px;padding:4px 12px;font-size:13px;font-weight:600;display:inline-flex}.card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--color-text);padding:20px;text-decoration:none;display:block}.card-title{color:var(--theme-accent);font-size:16px;font-weight:600;line-height:24px}.card-desc{color:var(--color-muted);font-size:14px;line-height:21px}.stat-card .value{color:var(--theme-accent);font-size:32px;font-weight:700;line-height:48px}.stat-card .label{color:var(--color-muted);font-size:14px}button,.btn{border-radius:var(--radius);cursor:pointer;border:none;padding:.5rem 1rem;font-family:inherit;font-size:.875rem;font-weight:500}button:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){filter:brightness(.9)}.btn-secondary{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}.btn-danger{background:var(--color-danger);color:#fff}.sa-fab{background:var(--color-fab);color:#fff;width:54px;height:54px;box-shadow:var(--shadow-fab);border-radius:27px;place-items:center;padding:0;font-size:22px;display:grid;position:fixed;bottom:20px;right:20px}label{font-size:.875rem;font-weight:500}input,select,textarea{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);padding:.5rem .75rem;font-family:inherit;font-size:.875rem}input:focus,select:focus,textarea:focus{border-color:var(--color-primary-light);outline:none;box-shadow:0 0 0 3px #3b82f626}input[type=checkbox],input[type=radio]{accent-color:var(--color-primary)}.badge{border-radius:100px;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-blue{color:#1e40af;background:#dbeafe}.badge-green{color:#15803d;background:#dcfce7}.badge-red{color:#991b1b;background:#fee2e2}.badge-yellow{color:#a16207;background:#fef9c3}.badge-gray{color:#475569;background:#f1f5f9}.badge-purple{color:#6d28d9;background:#ede9fe}.ent-page-table{border:1px solid var(--color-border);background:#fff;border-radius:6px;overflow:hidden}.ent-page-table table{border-collapse:collapse;width:100%;font-size:13px}.ent-page-table thead th{text-align:left;color:var(--color-muted);border-bottom:2px solid var(--color-border);background:#f7f9fd;padding:10px 14px;font-size:11.5px;font-weight:600}.ent-page-table tbody td{border-bottom:1px solid var(--color-row-line);padding:10px 14px}.ent-page-table tbody tr:last-child td{border-bottom:none}.ent-page-table tbody tr:hover td{background:var(--color-head-bg)}@media (max-width:768px){.sa-sidebar{display:none}.sa-search input{width:140px}.sa-main{padding:16px}}.sa-nav-toggle{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff40;border-radius:6px;width:34px;height:34px;margin-right:10px;font-size:16px}.sa-nav-toggle:hover{background:#ffffff1f}.sa-sidebar{transition:width .15s;overflow:hidden}.sa-sidebar.slim{width:52px}.sa-sidebar.slim .sa-mg-label,.sa-sidebar.slim .sa-mg-chev{display:none}.sa-sidebar.slim .sa-sb-single,.sa-sidebar.slim .sa-mg{justify-content:center;padding-left:0;padding-right:0}.sa-sidebar.slim .sa-mg-ic{width:26px;height:26px;font-size:11px}.sa-sidebar.gone{display:none}.sa-main.focus{padding:12px 16px}
.sa-mg.disabled{color:var(--color-muted);cursor:default}.sa-mg.disabled .sa-mg-chev{text-transform:uppercase;letter-spacing:.05em;font-size:9.5px}.workspace{grid-template-columns:minmax(300px,360px) 1fr;align-items:start;gap:16px;margin-top:16px;display:grid}.chat{flex-direction:column;gap:10px;height:min(640px,100dvh - 190px);min-height:420px;display:flex}.chat-log{flex-direction:column;flex:1;gap:10px;padding-right:2px;display:flex;overflow-y:auto}.msg{border-radius:var(--radius);overflow-wrap:anywhere;max-width:92%;padding:9px 12px;font-size:13px;line-height:1.45}.msg.user{background:var(--theme-accent-light);align-self:flex-end}.msg.ai{background:var(--color-bg);border:1px solid var(--color-border);align-self:flex-start}.msg.ai.error{color:#991b1b;background:#fee2e2;border-color:#fecaca}.msg.typing{color:var(--color-muted);font-style:italic}.msg .assume{color:var(--color-muted);margin-top:6px;font-size:11.5px;display:block}.msg .delta{color:var(--color-success);margin-top:4px;font-size:11.5px;font-weight:600;display:block}.msg .delta.warn{color:var(--theme-accent)}.msg .mode{color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:4px;font-size:10.5px;display:block}.msg .options{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.msg .options button{padding:.3rem .7rem;font-size:12px}.examples{flex-direction:column;gap:6px;display:flex}.example{text-align:left;padding:.4rem .7rem;font-size:12px}.chat-input{align-items:flex-end;gap:8px;display:flex}.chat-input textarea{resize:none;flex:1;min-width:0;font-family:inherit;line-height:1.45}.chat-hint{color:var(--color-muted);margin:6px 2px 0;font-size:11.5px}.plan-card{min-width:0}.canvas-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.tabs{flex-wrap:wrap;gap:4px;display:flex}.tab{border-radius:var(--radius-pill);color:var(--color-muted);padding:5px 12px;font-size:12.5px;font-weight:600}.tab.on{background:var(--theme-accent-light);color:var(--theme-accent)}.tab.off{opacity:.6}.history-btns{gap:6px;margin-left:auto;display:flex}.history-btns button{padding:.35rem .75rem}.plan-wrap{border:1px solid var(--color-border);background:#fff;border-radius:6px;position:relative;overflow:hidden}.plan-toolbar{z-index:2;border-radius:var(--radius);box-shadow:var(--shadow);background:#ffffffeb;flex-wrap:wrap;justify-content:flex-end;gap:4px;padding:4px;display:flex;position:absolute;bottom:8px;right:8px}.plan-toolbar button{min-width:34px;height:32px;padding:0 8px;font-size:14px;line-height:1}.plan-toolbar-sep{background:var(--color-border);width:1px;margin:2px}.plan-svg{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;width:100%;height:max(420px,100dvh - 330px);min-height:300px;display:block}.plan-svg:active{cursor:grabbing}.plan-svg .room{fill:#fff}.plan-svg .room.wet{fill:#eef6ff}.plan-svg .room.core-room{fill:#f4f3fb}.plan-svg .room.hot{fill:#fff4ed}.plan-svg .room-label text{paint-order:stroke;stroke:#ffffffd9;stroke-width:60px;stroke-linejoin:round}.plan-svg .room-name{fill:var(--color-text);text-anchor:middle;font-weight:600;font-family:var(--font)}.plan-svg .room-size{fill:var(--color-muted);text-anchor:middle;font-family:var(--font)}.plan-svg .wall{stroke:var(--color-text)}.plan-svg .wall.hot{stroke:var(--theme-accent)}.plan-svg .opening-gap{stroke:#fff}.plan-svg .door-leaf{stroke:var(--color-text);stroke-width:40px}.plan-svg .door-arc{fill:none;stroke:var(--color-muted);stroke-width:22px;stroke-dasharray:70 50}.plan-svg .window-line{stroke:#2563eb;stroke-width:24px}.plan-svg .jamb-line{stroke:#1f2937;stroke-width:30px}.plan-svg .opening.hot .door-leaf,.plan-svg .opening.hot .door-arc,.plan-svg .opening.hot .window-line{stroke:var(--theme-accent)}.plan-svg .furniture rect{fill:#f8fafc;stroke:#94a3b8;stroke-width:22px}.plan-svg .furniture .furn-detail{fill:#e2e8f0}.plan-svg .furniture .furn-detail-line{stroke:#cbd5e1;stroke-width:16px}.plan-svg .furniture.hot rect{stroke:var(--theme-accent);fill:#fff4ed}.plan-svg .issue circle{stroke:#fff;stroke-width:40px}.plan-svg .issue text{fill:#fff;text-anchor:middle;font-weight:700;font-family:var(--font)}.plan-svg .issue.error circle{fill:var(--color-danger)}.plan-svg .issue.warning circle{fill:var(--color-warning)}.plan-svg .issue.advisory circle{fill:#94a3b8}.plan-svg .dim line{stroke:var(--color-muted);stroke-width:18px}.plan-svg .dim text{fill:var(--color-muted);text-anchor:middle;font-family:var(--font)}.plan-svg .north polygon{fill:var(--theme-primary)}.plan-svg .north text{fill:var(--theme-primary);text-anchor:middle;font-weight:700;font-family:var(--font)}.checks{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.issue-list{color:var(--color-muted);margin:10px 0 0;padding-left:18px;font-size:12.5px}.issue-list li.error{color:#991b1b}.issue-list li.warning{color:#a16207}.stats{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px;display:grid}.stat-card .value{font-size:28px;line-height:42px}.linkish{color:var(--theme-accent);font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}@media (max-width:900px){.workspace{grid-template-columns:1fr}.plan-card{order:-1}.chat{height:auto;min-height:0}.chat-log{max-height:46dvh}.stats{grid-template-columns:1fr;gap:10px}.hide-sm{display:none!important}.sa-main h1{font-size:20px;line-height:28px}}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.row input{flex:1;min-width:0}.btn-sm{align-items:center;padding:.35rem .75rem;font-size:12.5px;text-decoration:none;display:inline-flex}a.btn-primary,a.btn-secondary{border-radius:var(--radius);text-decoration:none}.danger-text{color:var(--color-danger)}.form-error{color:#991b1b;border-radius:var(--radius);background:#fee2e2;padding:8px 12px;font-size:13px}.card-desc{color:var(--color-muted);margin:4px 0 10px;font-size:13px}.sa-logo{text-decoration:none}.sa-logout{color:#fffc;background:0 0;border:1px solid #ffffff40;border-radius:12px;padding:2px 6px;font-size:11px}.sa-logout:hover{color:#fff;border-color:#ffffff80}.nav-btn{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:0;font-size:12.5px;font-weight:600}.sa-mg.nav-btn{color:var(--color-text)}.login-page{background:#f3efe4;place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.login-card{background:#fff;border-radius:16px;width:min(380px,100%);overflow:hidden;box-shadow:0 18px 40px #3c28141f}.login-brand{text-align:center;background:linear-gradient(#f8f5ee,#efe9dc);padding:32px 24px 22px}.login-mark{background:var(--theme-primary);color:#fff;border-radius:14px;place-items:center;width:64px;height:64px;margin:0 auto 10px;font-size:22px;font-weight:800;display:grid}.login-name{color:var(--theme-primary);font-size:22px;font-weight:700}.login-tag{color:var(--color-muted);margin-top:2px;font-size:11.5px}.login-body{flex-direction:column;gap:8px;padding:20px 24px 24px;display:flex}.login-body label{letter-spacing:.05em;text-transform:uppercase;color:#8a6d5a;margin-top:4px;font-size:11.5px;font-weight:600}.login-body input{text-align:center;padding:.7rem .75rem;font-size:15px}.pin-input{letter-spacing:.5em;font-size:20px!important}.login-btn{background:#c4562c;margin-top:8px;padding:.75rem 1rem;font-size:15px;font-weight:600}.login-btn:hover:not(:disabled){filter:brightness(.93)}.login-alt{color:#c4562c;align-self:center;margin-top:4px;font-weight:500}.login-hint{color:var(--color-muted);text-align:center;overflow-wrap:anywhere;margin:0;font-size:13px}.login-test{color:#854d0e;border-radius:var(--radius);text-align:center;background:#fef9c3;margin:0;padding:8px 10px;font-size:12.5px}.login-error{color:#991b1b;border-radius:var(--radius);text-align:center;background:#fee2e2;margin:4px 0 0;padding:8px 10px;font-size:13px}.login-foot{color:var(--color-muted);text-align:center;background:#f8f5ee;border-top:1px solid #efe9dc;padding:10px;font-size:11px}.new-design{max-width:640px;margin:16px 0}.design-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:16px;display:grid}.design-card{flex-direction:column;gap:10px;display:flex}.design-open{color:inherit;text-decoration:none;display:block}.design-open:hover .card-title{text-decoration:underline}.design-last{color:var(--color-text);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12.5px;display:-webkit-box;overflow:hidden}.design-actions{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.empty{margin-top:24px}.side-card{flex-direction:column;gap:10px;height:min(680px,100dvh - 190px);min-height:420px;display:flex}.side-tabs{border-bottom:1px solid var(--color-border);padding-bottom:8px}.side-tabs .tab{cursor:pointer;background:0 0;border:none;font-family:inherit}.side-card .chat{flex-direction:column;flex:1;gap:10px;height:auto;min-height:0;display:flex}.versions,.share{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow-y:auto}.rev-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.rev{border:1px solid var(--color-border);border-radius:var(--radius);grid-template-columns:auto 1fr;align-items:start;gap:2px 8px;padding:8px;display:grid}.rev.on{border-color:var(--theme-accent);background:#fff8f4}.rev input[type=checkbox]{margin-top:4px}.rev-main{text-align:left;cursor:pointer;color:inherit;background:0 0;border:none;flex-direction:column;gap:2px;min-width:0;padding:0;font-family:inherit;display:flex}.rev-head{flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.rev-sum{color:var(--color-text);overflow-wrap:anywhere;font-size:12.5px}.rev-when{color:var(--color-muted);font-size:11px}.rev-name-btn,.rev-label{grid-column:2;justify-self:start;font-size:12px}.compare-go{align-self:flex-start}.share-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.share-list li{border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:6px;padding:10px;display:flex}.share-what{color:var(--color-muted);font-size:12px;font-weight:600}.share-list input{font-size:12px}.viewing-banner{border-radius:var(--radius);color:#854d0e;background:#fef9c3;margin:0 0 8px;padding:6px 10px;font-size:12.5px;font-weight:600}.compare-grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;display:grid}.compare-grid .plan-svg{height:min(420px,50dvh)}.compare-table{margin-top:16px}.compare-table table{width:100%}.issue-list.plain{color:var(--color-text)}.shared-main{max-width:1100px;margin:0 auto}.shared-foot{text-align:center;color:var(--color-muted);margin:18px 0 8px;font-size:11.5px}@media (max-width:900px){.side-card{height:auto;min-height:0}.side-card .chat .chat-log{max-height:46dvh}.compare-grid{grid-template-columns:1fr}}button.tab{cursor:pointer;background:0 0;border:none;font-family:inherit}.site-panel{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex;overflow-y:auto}.site-section{border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:8px;padding:10px;display:flex}.site-section>button{align-self:flex-start}.site-head{text-transform:uppercase;letter-spacing:.05em;color:var(--theme-accent);font-size:12px;font-weight:700}.field-grid{gap:8px;display:grid}.field-grid.two{grid-template-columns:1fr 1fr}.field-grid.four{grid-template-columns:repeat(4,1fr)}.field-grid label{color:var(--color-muted);flex-direction:column;gap:3px;min-width:0;font-size:11.5px;display:flex}.field-grid input,.field-grid select{width:100%;min-width:0;padding:.4rem .5rem;font-size:13px}.access-row{grid-template-columns:52px 1fr 90px;align-items:center;gap:6px;font-size:12.5px;display:grid}.access-row select,.access-row input{min-width:0;padding:.35rem .5rem;font-size:12.5px}.access-side{font-weight:600}.tree-list{flex-direction:column;gap:4px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.tree-list li{justify-content:space-between;align-items:center;display:flex}.tree-form{flex-direction:column;gap:8px;display:flex}.tree-form>button{align-self:flex-start}.site-empty{text-align:center;min-height:300px;color:var(--color-muted);place-items:center;padding:24px;font-size:14px;display:grid}.plan-svg .plot-band{fill:#fdf3ea}.plan-svg .buildable{fill:#fff;stroke:var(--theme-accent);stroke-width:40px;stroke-dasharray:240 160}.plan-svg .plot-line{fill:none;stroke:var(--color-text);stroke-width:90px}.plan-svg .plot-line.hot{stroke:var(--theme-accent)}.plan-svg .access rect{fill:#e2e8f0;opacity:.75}.plan-svg .access.road rect{fill:#cbd5e1}.plan-svg .access text{fill:#475569;font-weight:600;font-family:var(--font)}.plan-svg .setback-label{fill:#9a5b3c;font-family:var(--font)}.plan-svg .tree .canopy{fill:#22c55e24;stroke:#16a34a80;stroke-width:30px}.plan-svg .tree .protect{fill:none;stroke:#15803d;stroke-width:30px;stroke-dasharray:90 70}.plan-svg .tree .trunk{fill:#78350f}.plan-svg .tree text{fill:#166534;font-weight:600;font-family:var(--font)}.plan-svg .footprint{fill:#eef2ff;stroke:none}.plan-svg .footprint.hot{fill:#fff4ed}.plan-svg .site-wall{stroke:var(--color-text)}.plan-svg .footprint-label{fill:var(--theme-primary);font-weight:700;font-family:var(--font);paint-order:stroke;stroke:#ffffffd9;stroke-width:70px}.plan-svg .gap line{stroke:#16a34a;stroke-width:30px;stroke-dasharray:120 80}.plan-svg .gap text{fill:#15803d;font-weight:700;font-family:var(--font);paint-order:stroke;stroke:#fff;stroke-width:60px}.plan-svg .gap.short line{stroke:var(--color-danger)}.plan-svg .gap.short text{fill:var(--color-danger)}@media (max-width:900px){.field-grid.four{grid-template-columns:1fr 1fr}}.site-result{border-radius:var(--radius);background:var(--color-bg);border:1px solid var(--color-border);padding:9px 12px;font-size:13px;line-height:1.45}.site-result .assume{color:var(--color-muted);margin-top:6px;font-size:11.5px}.site-result .delta{color:var(--color-success);margin-top:4px;font-size:11.5px;font-weight:600}.site-result .delta.warn{color:var(--theme-accent)}.site-result .mode{color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:4px;font-size:10.5px}.new-design{flex-direction:column;gap:8px;max-width:860px;display:flex}.nd-label{text-transform:uppercase;letter-spacing:.05em;color:var(--theme-accent);margin-top:6px;font-size:11.5px;font-weight:700}.nd-sub{color:var(--color-muted);margin-top:6px;font-size:12px;font-weight:600}.nd-check{align-items:center;gap:8px;margin-top:4px;font-size:13px;font-weight:500;display:flex}.nd-plot{border:1px solid var(--color-border);border-radius:var(--radius);background:#fcfdff;flex-direction:column;gap:6px;padding:12px;display:flex}.nd-plot>.btn-sm{align-self:flex-start}.nd-create{align-self:flex-start;margin-top:6px;padding:.6rem 1.4rem}.field-grid.three{grid-template-columns:1fr 1.4fr 1fr}.field-grid.tree-row{grid-template-columns:1fr 1fr auto;align-items:center}.field-grid.tree-row input,.field-grid.tree-row select{min-width:0;padding:.4rem .5rem;font-size:13px}.tpl-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.tpl-card{text-align:left;border:1.5px solid var(--color-border);border-radius:var(--radius);cursor:pointer;color:inherit;background:#fff;flex-direction:column;gap:3px;padding:10px;font-family:inherit;display:flex}.tpl-card.on{border-color:var(--theme-accent);background:#fff8f4;box-shadow:0 0 0 2px #7a210b1f}.tpl-thumb{width:100%;height:86px;margin-bottom:4px}.tpl-thumb line{stroke:var(--color-text)}.tpl-card.on .tpl-thumb line{stroke:var(--theme-accent)}.tpl-name{font-size:13.5px;font-weight:700}.tpl-desc{color:var(--color-muted);font-size:11.5px;line-height:1.35}.tpl-size{color:var(--theme-primary);font-size:11px;font-weight:600}@media (max-width:700px){.tpl-grid,.field-grid.three{grid-template-columns:1fr 1fr}}.plan-svg .plinth-label{fill:var(--theme-accent);font-weight:600;font-family:var(--font)}.tpl-card.auto{background:linear-gradient(160deg,#fff,#f5f3ff);justify-content:center}.tpl-card.auto.on{background:linear-gradient(160deg,#fff8f4,#f5f3ff)}.tpl-auto-mark{color:var(--theme-primary);margin-bottom:8px;font-size:30px;line-height:1}.nd-plinth{border-radius:var(--radius);color:var(--theme-primary);background:#eef2ff;margin:4px 0 0;padding:8px 10px;font-size:13px;font-weight:600}.nd-plinth.bad{color:#991b1b;background:#fee2e2}.tpl-grid{grid-template-columns:repeat(4,1fr)}@media (max-width:900px){.tpl-grid{grid-template-columns:1fr 1fr}}.tree-list li.tree-edit{border:1px solid var(--theme-accent);border-radius:var(--radius);background:#fff8f4;padding:8px;display:block}.plan-svg .hit{stroke:#0000;fill:none;pointer-events:stroke}.plan-svg.editable .drag{cursor:grab}.plan-svg.editable .drag:active{cursor:grabbing}.plan-svg.editable g.drag:hover .wall,.plan-svg.editable g.drag:hover .furniture rect,.plan-svg.editable g.drag:hover .core-box{stroke:var(--theme-primary)}.plan-svg .drag-readout{fill:var(--theme-primary);text-anchor:middle;font-weight:700;font-family:var(--font);paint-order:stroke;stroke:#fff;stroke-width:80px}.plan-svg .core-hit{fill:#0000}.plan-svg .core-box{fill:#f1f5f9;stroke:#475569;stroke-width:30px}.plan-svg .core-line{stroke:#64748b;stroke-width:22px}.plan-svg .core-tread{stroke:#94a3b8;stroke-width:14px}.plan-svg .core-arrow{stroke:var(--theme-accent);stroke-width:30px;fill:none;marker-end:none}.plan-svg .core-text{fill:#475569;text-anchor:middle;font-weight:700;font-family:var(--font)}.plan-svg .core.hot .core-box{stroke:var(--theme-accent);fill:#fff4ed}.plan-svg .tree.drag,.plan-svg .footprint.drag{cursor:grab}.edit-status{color:var(--color-muted);margin:8px 2px 0;font-size:12px}.edit-status.err{color:#991b1b}.plan-svg text,.plan-svg .tree .canopy,.plan-svg.editable .issue{pointer-events:none}.nd-rooms{flex-wrap:wrap;align-items:flex-start;gap:8px 28px;margin-top:4px;display:flex}.nd-rooms .nd-hint{color:var(--color-muted);flex-basis:100%;margin:0;font-size:12px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border-radius:var(--radius-pill);border:1px solid var(--color-border,#e5e7eb);min-width:40px;color:var(--color-text);cursor:pointer;background:#fff;padding:6px 12px;font-size:13px;font-weight:600}.chip.on{background:var(--theme-primary);border-color:var(--theme-primary);color:#fff}.chip:disabled{cursor:default;opacity:.55}.chip:disabled.on{opacity:1}.plan-svg .core-wall{fill:var(--color-text)}.plan-svg .core.hot .core-wall{fill:var(--theme-accent)}.plan-svg.editable g.drag:hover .core-wall{fill:var(--theme-primary)}.plan-svg.editable .room-grab{cursor:grab}.plan-svg .room-grab-hit{fill:#0000;pointer-events:all}.plan-svg.editable .room-grab:hover .room-name{fill:var(--theme-primary);text-decoration:underline}.plan-svg .drop-target{fill:#312e811f;stroke:var(--theme-primary);stroke-width:60px;stroke-dasharray:220 140;pointer-events:none}.plan-svg .block-wall{fill:var(--color-text)}.plan-svg .block-wall.hot{fill:var(--theme-accent)}.plan-svg.editable g.drag:hover .block-wall{fill:var(--theme-primary)}.plan-svg .block-ghost{fill:#312e811a;stroke:var(--theme-primary);stroke-width:60px;stroke-dasharray:220 140;pointer-events:none}.palette{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px;display:flex}.palette-title{letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);margin-right:4px;font-size:11.5px;font-weight:700}.block-chip{border-radius:var(--radius-pill);border:1px solid var(--color-border,#e5e7eb);color:var(--color-text);cursor:grab;-webkit-user-select:none;user-select:none;background:#fff;align-items:center;gap:6px;padding:6px 11px;font-size:12.5px;font-weight:600;display:inline-flex}.block-chip:hover{border-color:var(--theme-primary)}.block-chip:active{cursor:grabbing}.block-chip.on{background:var(--theme-primary);border-color:var(--theme-primary);color:#fff}.block-swatch{background:#cbd5e1;border-radius:2px;width:10px;height:10px;box-shadow:inset 0 0 0 2px #475569}.block-chip:before{content:"⠿";color:var(--color-muted);margin-right:-2px;font-size:13px}.block-chip.on:before{color:#fff}.block-chip.toilet .block-swatch,.block-chip.kitchen .block-swatch{background:#bfdbfe}.block-chip.stair .block-swatch,.block-chip.lift .block-swatch{background:#c7d2fe}.block-chip.bedroom .block-swatch,.block-chip.lobby .block-swatch{background:#fff}.placing-hint{color:var(--theme-primary);margin:-4px 0 8px;font-size:13px;font-weight:600}.link-btn{color:var(--theme-primary);cursor:pointer;font-weight:600;font-size:inherit;background:0 0;border:0;padding:0 4px;text-decoration:underline}.plan-svg .room-selected{fill:none;stroke:var(--theme-primary);stroke-width:70px;stroke-dasharray:260 130;pointer-events:none}.room-editor{border:1px solid var(--color-border,#e5e7eb);background:#fafaff;border-radius:12px;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;margin-top:10px;padding:12px 14px;display:flex}.room-editor label{color:var(--color-muted);text-transform:uppercase;letter-spacing:.03em;flex-direction:column;gap:4px;font-size:11.5px;font-weight:700;display:flex}.room-editor input{width:120px}.room-editor label:first-child input{width:160px}.room-editor-btns{align-items:center;gap:8px;display:flex}.room-editor-hint{color:var(--color-muted);flex-basis:100%;margin:0;font-size:12px}.shell-hint{color:var(--color-muted);margin:4px 0 0;font-size:13px}.plan-svg .live-gaps line{stroke:#b45309;stroke-width:28px}.plan-svg .live-gaps text{fill:#b45309;font-weight:700;font-family:var(--font);paint-order:stroke;stroke:#ffffffe6;stroke-width:70px;stroke-linejoin:round}.plan-svg .door-selected{fill:#312e811a;stroke:var(--theme-primary);stroke-width:50px;stroke-dasharray:160 100;pointer-events:none}.room-editor select{border-radius:10px;height:38px}.chat-download{float:right;margin-top:6px;font-size:12px}.fix-btn{margin-right:6px}.draft-banner{color:#9a3412;background:#fff7ed;border:1px dashed #fdba74;border-radius:10px;margin:0 0 8px;padding:7px 12px;font-size:13px;font-weight:600}.agent-panel{background:linear-gradient(#f5f7ff,#fff);border:1px solid #c7d2fe;border-radius:14px;margin:4px 0 12px;padding:14px 16px}.agent-panel.running{border-color:var(--theme-primary);box-shadow:0 0 0 3px #312e8114}.agent-head{flex-wrap:wrap;align-items:baseline;gap:6px 14px;display:flex}.agent-head strong{color:var(--theme-primary);font-size:15px}.agent-counts{color:var(--color-text);font-size:13px;font-weight:600}.agent-mode{color:var(--color-muted);text-transform:uppercase;letter-spacing:.04em;margin-left:auto;font-size:11px}.agent-steps{margin:10px 0 4px;padding-left:4px;font-size:13px;list-style:none}.agent-steps li{margin:3px 0}.agent-steps .ok{color:#15803d;margin-right:4px;font-weight:700}.agent-trying{color:var(--color-muted);margin:6px 0;font-size:12.5px;font-style:italic}.agent-tried-btn{font-size:12px}.agent-tried{color:var(--color-muted);margin:4px 0;padding-left:4px;font-size:12px;list-style:none}.agent-remaining{margin-top:8px;font-size:12.5px;font-weight:600}.agent-remaining ul{margin:4px 0 0;padding-left:18px;font-weight:400}.agent-btns{gap:8px;margin-top:12px;display:flex}.brief-panel{flex-direction:column;flex:1;gap:12px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.brief-intro{color:var(--color-muted);margin:0;font-size:13px}.brief-list{flex-direction:column;gap:8px;display:flex}.brief-list label{flex-wrap:wrap;align-items:center;gap:8px;font-size:13.5px;display:flex}.brief-list input[type=checkbox]{width:16px;height:16px;accent-color:var(--theme-primary)}.brief-row select{border-radius:8px;height:30px;padding:0 6px;font-size:13px}.brief-row input:not([type=checkbox]){width:64px;height:30px;padding:0 6px;font-size:13px}.brief-btns{gap:8px;display:flex}.brief-status{border-top:1px solid var(--color-border,#e5e7eb);padding-top:10px}.brief-status-head{color:var(--theme-primary);margin-bottom:6px;font-size:13px;font-weight:700}.brief-status ul{margin:0;padding:0;font-size:13px;list-style:none}.brief-status li{margin:5px 0}.brief-status .mark{width:16px;font-weight:700;display:inline-block}.brief-status .met .mark{color:#15803d}.brief-status .unmet .mark{color:#b91c1c}.brief-status .empty{color:var(--color-muted)}.brief-status .why{color:var(--color-muted);margin-left:20px;font-size:12px}.brief-sub{text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);justify-content:space-between;align-items:center;font-size:12px;font-weight:700;display:flex}.brief-presets{white-space:nowrap;gap:6px;display:flex}.brief-presets button{text-transform:none;letter-spacing:0;border:1px solid var(--color-border,#d4d7e3);cursor:pointer;color:var(--theme-primary);background:#fff;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600}.brief-counts{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px 22px;display:grid}.brief-count{align-items:center;gap:6px;font-size:13.5px;display:flex}.brief-count span{flex:1}.brief-count button{border:1px solid var(--color-border,#d4d7e3);cursor:pointer;background:#fff;border-radius:7px;flex:none;place-items:center;width:26px;height:26px;padding:0;font-size:15px;line-height:1;display:grid}.brief-count button:disabled{opacity:.4;cursor:default}.brief-count b{text-align:center;min-width:16px}.options{flex-direction:column;gap:8px;display:flex}.option-card{text-align:left;border:1px solid var(--color-border,#d4d7e3);cursor:pointer;font:inherit;background:#fff;border-radius:10px;align-items:center;gap:10px;padding:8px;display:flex}.option-card.on{border-color:var(--theme-primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--theme-primary) 25%, transparent)}.mini-plan{flex:none;width:116px;height:auto}.option-text{flex-direction:column;gap:2px;font-size:13px;display:flex}.option-desc{color:var(--color-muted);font-size:12px}.option-stats{color:var(--theme-primary);font-size:12px;font-weight:600}.option-banner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.option-banner-btns{gap:6px;display:flex}.cost-panel{flex-direction:column;flex:1;gap:12px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.cost-total{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.cost-big{color:var(--theme-primary);font-size:30px;font-weight:800;line-height:1.1}.cost-sub{color:var(--color-muted);margin-top:4px;font-size:12px}.cost-budget-tag{white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.cost-budget-tag.over{color:#b91c1c;background:#fde8e8}.cost-budget-tag.ok{color:#15803d;background:#e3f6ea}.cost-budget{flex-wrap:wrap;align-items:center;gap:8px;font-size:13.5px;display:flex}.cost-budget input{width:70px;height:30px;padding:0 6px;font-size:13px}.cost-fit{border:1px solid color-mix(in srgb, var(--theme-primary) 35%, transparent);background:color-mix(in srgb, var(--theme-primary) 5%, #fff);border-radius:10px;padding:10px 12px;font-size:13px}.cost-fit-head{margin-bottom:4px;font-weight:700}.cost-fit ul{margin:4px 0 8px;padding-left:18px}.cost-fit li{margin:3px 0}.cost-fit .saves{color:#15803d;white-space:nowrap;font-weight:600}.cost-fit-gap{color:#b91c1c;margin:0 0 8px}.cost-table{border-collapse:collapse;width:100%;font-size:12.5px}.cost-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--color-muted);border-bottom:1px solid var(--color-border,#e5e7eb);padding:4px;font-size:11px}.cost-table td{vertical-align:middle;border-bottom:1px solid #f0f1f5;padding:5px 4px}.cost-table .num{text-align:right;white-space:nowrap}.cost-table .qty{white-space:nowrap;color:var(--color-muted)}.cost-table select{border-radius:6px;max-width:140px;height:28px;padding:0 4px;font-size:12px}.cost-group td{color:var(--theme-primary);background:#f6f7fb;font-weight:700}.cost-grand td{border-top:2px solid var(--theme-primary);font-size:14px;font-weight:800}.rate-form{gap:4px;display:inline-flex}.rate-form input{width:70px;height:26px;padding:0 4px;font-size:12px}.cost-note{color:var(--color-muted);margin:0;font-size:11.5px}.cost-list{flex-direction:column;gap:2px;font-size:13px;display:flex}.cost-grp{flex-direction:column;display:flex}.cost-grp-head{color:var(--theme-primary);background:#f6f7fb;border-radius:6px;justify-content:space-between;margin-top:6px;padding:6px 8px;font-weight:700;display:flex}.cost-row{border-bottom:1px solid #f0f1f5;padding:7px 8px}.cost-row-top{justify-content:space-between;gap:8px;display:flex}.cost-row-top b{white-space:nowrap}.cost-row-sub{justify-content:space-between;align-items:center;gap:8px;margin-top:3px;display:flex}.cost-calc{color:var(--color-muted);font-size:12px}.cost-row-sub select{border-radius:6px;max-width:52%;height:28px;padding:0 4px;font-size:12px}.cost-grand{border-top:2px solid var(--theme-primary);justify-content:space-between;margin-top:4px;padding:8px;font-size:15px;font-weight:800;display:flex}.rate-form{color:var(--color-muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.struct-banner{color:#9a3412;background:#fff7ed;border:1px dashed #fdba74;border-radius:8px;margin:0 0 8px;padding:8px 12px;font-size:12.5px}.struct-panel{flex-direction:column;gap:10px;margin-top:10px;display:flex}.struct-settings{flex-wrap:wrap;align-items:center;gap:16px;font-size:13px;display:flex}.struct-settings label{align-items:center;gap:6px;display:flex}.struct-settings select{border-radius:8px;height:30px;padding:0 6px;font-size:13px}.struct-count{color:var(--color-muted);margin-left:auto}.struct-grid-cards{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;display:grid}.struct-card{border:1px solid var(--color-border,#e5e7eb);border-radius:10px;flex-direction:column;gap:4px;padding:10px 12px;font-size:12.5px;display:flex}.struct-card h4{text-transform:uppercase;letter-spacing:.04em;color:var(--theme-primary);margin:0 0 4px;font-size:12px}.struct-card div{justify-content:space-between;gap:8px;display:flex}.struct-card span{color:var(--color-muted);text-align:right}.struct-total{border-top:1px solid #eef0f5;margin-top:2px;padding-top:4px}.struct-notes{margin:0;padding-left:18px;font-size:12.5px}.struct-notes .warning{color:#b45309}.struct-notes .info{color:var(--color-muted)}.struct-edit{background:#f6f7fb;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.struct-edit>span{flex:1}.struct-hint{color:var(--color-muted)}.col-drag{cursor:grab}.agents-bar{background:linear-gradient(90deg, color-mix(in srgb, var(--theme-primary) 9%, #fff), #fff);border:1px solid color-mix(in srgb, var(--theme-primary) 22%, transparent);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;display:flex}.agents-title{letter-spacing:.05em;text-transform:uppercase;color:var(--theme-primary);margin-right:4px;font-size:12px;font-weight:800}.agent-chip{font:inherit;border:1px solid var(--theme-primary);background:var(--theme-primary);color:#fff;cursor:pointer;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600}.agent-chip:hover{filter:brightness(1.1)}.agent-chip.off{color:var(--color-muted);border-color:var(--color-border,#d4d7e3);cursor:help;background:#fff}.agents-why{color:#9a3412;background:#fff7ed;border-radius:8px;margin:-4px 0 10px;padding:6px 10px;font-size:12.5px}.options-compare{flex-direction:column;gap:12px;display:flex}.options-compare-head{flex-wrap:wrap;align-items:center;gap:12px;font-size:13.5px;display:flex}.options-compare-head button{margin-left:auto}.options-compare-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}@media (max-width:700px){.options-compare-grid{grid-template-columns:1fr}}.compare-card{border:1px solid var(--color-border,#d4d7e3);background:#fff;border-radius:12px;flex-direction:column;gap:6px;min-width:0;padding:8px;font-size:13px;display:flex}.compare-plan{cursor:zoom-in;background:#fafbfd;border:1px solid #eef0f5;border-radius:8px;padding:0}.mini-plan.big{width:100%}.compare-btns{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.option-misses{color:#b91c1c;font-size:11.5px;line-height:1.35}.brief-need{color:#b45309;margin:2px 0 0;font-size:12px}.room-size.live{fill:var(--color-primary,#2d2a7a);font-weight:700}.plan-svg .wall-grab.wall-h,.plan-svg .wall-grab.wall-h .hit{cursor:row-resize}.plan-svg .wall-grab.wall-v,.plan-svg .wall-grab.wall-v .hit{cursor:col-resize}.plan-svg .wall-grab .hit{fill:#0000;pointer-events:all}.plan-svg .wall-grab:hover .block-wall,.plan-svg .wall-grab:hover line:not(.hit){fill:var(--theme-accent,#2d2a7a);stroke:var(--theme-accent,#2d2a7a)}.studio-title{flex-wrap:wrap;align-items:baseline;gap:14px;display:flex}.studio-title h1{font-size:20px;line-height:30px}.studio-title .sa-subtitle{margin:0;font-size:13px}.studio-title.gone{display:none}.workspace.wide{grid-template-columns:1fr}.workspace.focus{margin-top:0}.workspace.focus .plan-svg{height:max(420px,100dvh - 190px)}.agents-bar[hidden]{display:none}.workspace.wide:not(.focus) .plan-svg{height:max(420px,100dvh - 300px)}.side-card{position:relative}.side-card[hidden]{display:none}.panel-hide{border:1px solid var(--color-border);font:inherit;color:var(--color-muted);cursor:pointer;background:0 0;border-radius:6px;padding:3px 8px;font-size:11.5px;font-weight:600;position:absolute;top:10px;right:10px}.panel-hide:hover{color:var(--theme-accent);border-color:var(--theme-accent)}.view-btns{gap:6px;display:flex}.view-btns .btn-sm.on{background:var(--theme-accent-light);color:var(--theme-accent);border-color:var(--theme-accent)}.agents-bar,.palette{scrollbar-width:thin;flex-wrap:nowrap;overflow-x:auto}.agents-bar>*,.palette>*{flex:none}@media (max-width:900px){.view-btns{display:none}}.side-card .side-tabs{padding-right:66px}
