:root{--color-primary: #3C6E5F;--color-on-primary: #FFFFFF;--color-primary-subtle: #EBF1EE;--color-accent: #3C6E5F;--color-background: #F7F7F6;--color-surface: #FFFFFF;--color-surface-elevated: #FFFFFF;--color-surface-muted: #F1F1EF;--color-text-primary: #1C1D1F;--color-text-secondary: #6B6D70;--color-text-tertiary: #9A9CA0;--color-border: #E7E7E4;--color-border-strong: #D5D5D1;--color-danger: #B4423A;--color-danger-subtle: #FBEEEC;--color-success: #3F7A5E;--color-success-subtle: #EAF3EE;--color-warning: #A87412;--color-warning-subtle: #FBF4E4;--color-info: #3E6BB8;--color-info-subtle: #EDF2FA;--color-ai: #5B4B8A;--color-ai-subtle: #F0ECF7;--color-plan-floor: #FFFFFF;--color-plan-room: #F4F4F2;--color-plan-wall: #2B2C2E;--color-plan-glass: #A9C6E0;--color-plan-grid: #EFEFED;--color-plan-object: #E3E1DC;--color-plan-conflict: #D64545;--color-plan-selected: #3C6E5F;--color-scene-background: #EEEEEC;--color-scene-wall: #F7F7F5;--color-scene-floor: #DDD8CF;--color-brand-background: #3C6E5F;--color-brand-foreground: #F4F1EC;--color-button-secondary-background: #FFFFFF;--color-button-secondary-foreground: #1C1D1F;--color-button-secondary-border: #D5D5D1;--color-button-disabled-background: #F1F1EF;--color-button-disabled-foreground: #9A9CA0;--color-button-disabled-border: #E7E7E4;--color-scrim: rgba(28, 29, 31, .32);--opacity-disabled: .4;--font-sans: "Inter Variable", Inter, "Noto Sans TC Variable", "Noto Sans SC Variable", "Noto Sans JP Variable", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--text-display-size: 28px;--text-display-weight: 600;--text-display-line: 1.25;--text-display-tracking: -.02em;--text-title-size: 20px;--text-title-weight: 600;--text-title-line: 1.3;--text-title-tracking: -.01em;--text-headline-size: 15px;--text-headline-weight: 600;--text-headline-line: 1.4;--text-headline-tracking: 0em;--text-body-size: 14px;--text-body-weight: 400;--text-body-line: 1.55;--text-body-tracking: 0em;--text-callout-size: 13px;--text-callout-weight: 400;--text-callout-line: 1.5;--text-callout-tracking: 0em;--text-footnote-size: 12px;--text-footnote-weight: 400;--text-footnote-line: 1.45;--text-footnote-tracking: 0em;--text-caption-size: 11px;--text-caption-weight: 500;--text-caption-line: 1.4;--text-caption-tracking: .02em;--space-xxs: 2px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 24px;--space-xxl: 32px;--space-xxxl: 48px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-pill: 999px;--shadow-card: 0 1px 2px rgba(0, 0, 0, .04);--shadow-popover: 0 4px 16px rgba(0, 0, 0, .08);--shadow-dialog: 0 12px 32px rgba(0, 0, 0, .12);--stroke-hairline: 1px;--stroke-icon: 1.5px;--size-touch-target: 44px;--size-control-height: 40px;--size-icon-small: 16px;--size-icon-medium: 20px;--size-icon-large: 24px;--size-icon-frame: 28px;--size-icon-hero: 40px;--size-icon-tile: 56px;--bg: var(--color-background);--panel: var(--color-surface);--ink: var(--color-text-primary);--muted: var(--color-text-secondary);--accent: var(--color-primary);--bad: var(--color-danger);--line: var(--color-border);--wall: var(--color-plan-wall);--floor: var(--color-plan-floor);--glass: var(--color-plan-glass);--grid: var(--color-plan-grid);color-scheme:light}:root[data-theme=dark]{--color-primary: #9FC4B4;--color-on-primary: #0F1C17;--color-primary-subtle: #1D2A25;--color-accent: #9FC4B4;--color-background: #111312;--color-surface: #181B1A;--color-surface-elevated: #202423;--color-surface-muted: #1C201F;--color-text-primary: #ECEDEC;--color-text-secondary: #A3A8A5;--color-text-tertiary: #6F7572;--color-border: #2A2E2C;--color-border-strong: #3A3F3D;--color-danger: #E8857C;--color-danger-subtle: #3A2220;--color-success: #8FCBAA;--color-success-subtle: #1C2F25;--color-warning: #E0B45A;--color-warning-subtle: #33291A;--color-info: #8DB0E8;--color-info-subtle: #1C2638;--color-ai: #BFB1E8;--color-ai-subtle: #28233D;--color-plan-floor: #1A1D1C;--color-plan-room: #222625;--color-plan-wall: #D9DBDA;--color-plan-glass: #5A7F9E;--color-plan-grid: #232726;--color-plan-object: #3A3F3D;--color-plan-conflict: #F08080;--color-plan-selected: #9FC4B4;--color-scene-background: #161918;--color-scene-wall: #3A3F3D;--color-scene-floor: #2A2724;--color-brand-background: #3C6E5F;--color-brand-foreground: #F4F1EC;--color-button-secondary-background: #181B1A;--color-button-secondary-foreground: #ECEDEC;--color-button-secondary-border: #3A3F3D;--color-button-disabled-background: #1C201F;--color-button-disabled-foreground: #6F7572;--color-button-disabled-border: #2A2E2C;--color-scrim: rgba(0, 0, 0, .6);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:var(--text-body-weight) var(--text-body-size)/var(--text-body-line) var(--font-sans);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100%}header{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--line);background:var(--color-surface)}h1{font-size:var(--text-title-size);font-weight:var(--text-title-weight);letter-spacing:var(--text-title-tracking);margin:0}h2{font-size:var(--text-headline-size);font-weight:var(--text-headline-weight);margin:0 0 var(--space-sm)}main{flex:1;display:grid;grid-template-columns:1fr 360px;min-height:0}.views{display:grid;grid-template-rows:1fr 1fr;min-height:0}@media(min-aspect-ratio:16/9){.views{grid-template-rows:none;grid-template-columns:1fr 1fr}}.pane{position:relative;min-height:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.pane>div:last-child,.pane>svg{width:100%;height:100%}.pane-title{position:absolute;top:var(--space-md);left:var(--space-md);z-index:1;font-size:var(--text-caption-size);font-weight:var(--text-caption-weight);letter-spacing:var(--text-caption-tracking);color:var(--muted);background:var(--panel);border:1px solid var(--line);padding:var(--space-xxs) var(--space-md);border-radius:var(--radius-pill)}.plan{width:100%;height:100%;display:block;touch-action:none;-webkit-user-select:none;user-select:none}.plan .furn{cursor:grab}.plan .wall{cursor:move}:root{--wall-new: var(--color-info);--wall-demolish: var(--color-text-tertiary)}.wall-status{display:flex;gap:var(--space-xs);align-items:center;flex-wrap:wrap}.wall-status .seg{display:inline-flex;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);overflow:hidden}.wall-status .seg button{border:0;border-radius:0;background:var(--color-surface);color:var(--color-text-secondary);padding:var(--space-xxs) var(--space-md)}.wall-status .seg button+button{border-left:1px solid var(--color-border-strong)}.wall-status .seg button[aria-pressed=true]{background:var(--color-primary);color:var(--color-on-primary)}.violations li.hint{color:var(--color-text-secondary)}.sidebar{overflow:auto;background:var(--panel);padding:var(--space-lg) var(--space-xl);display:flex;flex-direction:column;gap:var(--space-xl);border-left:1px solid var(--line)}.sidebar section{border-bottom:1px solid var(--line);padding-bottom:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-sm)}.sidebar section:last-child{border-bottom:0}.sidebar section h2{margin:0}.sidebar section p{margin:0}.row{display:flex;gap:var(--space-sm);flex-wrap:wrap;align-items:center}.between{justify-content:space-between}button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);background:var(--color-button-secondary-background);color:var(--color-button-secondary-foreground);border:1px solid var(--color-button-secondary-border);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-md);cursor:pointer;font:inherit;font-weight:500;line-height:1.4;transition:background-color .12s,border-color .12s,color .12s}button:hover:not(:disabled){background:var(--color-surface-muted);border-color:var(--color-text-tertiary)}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}button:disabled{opacity:var(--opacity-disabled);cursor:default}button.primary:disabled,button.approve:disabled{opacity:1;background:var(--color-button-disabled-background);color:var(--color-button-disabled-foreground);border-color:var(--color-button-disabled-border)}button.primary,button.approve{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}button.primary:hover:not(:disabled),button.approve:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 86%,black);border-color:transparent}button.ghost{background:transparent;border-color:transparent;color:var(--color-text-secondary);padding-inline:var(--space-sm)}button.ghost:hover:not(:disabled){background:var(--color-surface-muted);border-color:transparent;color:var(--color-text-primary)}button.danger,button.reject{background:var(--color-surface);color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 40%,transparent)}button.danger:hover:not(:disabled),button.reject:hover:not(:disabled){background:var(--color-danger-subtle);border-color:var(--color-danger)}button.small{padding:var(--space-xxs) var(--space-sm);font-size:var(--text-footnote-size)}.icon{flex:none}.spin{animation:nestor-spin 1s linear infinite}@keyframes nestor-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spin{animation:none}}select{font:inherit;padding:var(--space-xs);border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--color-surface);color:inherit;max-width:100%}.pill{display:inline-block;font-size:var(--text-footnote-size);padding:0 var(--space-sm);border-radius:var(--radius-pill);background:var(--line)}.pill.ok,.ok{color:var(--accent)}.pill.bad,.bad{color:var(--bad)}.muted{color:var(--muted)}.small{font-size:var(--text-footnote-size)}p{margin:var(--space-xs) 0}.violations{margin:0;padding-left:var(--space-lg);font-size:var(--text-callout-size)}table.bom{width:100%;border-collapse:collapse;font-size:var(--text-footnote-size)}.bom th,.bom td{text-align:left;padding:var(--space-xs) var(--space-xs);border-bottom:1px solid var(--line)}.bom td:nth-child(3),.bom td:nth-child(4),.bom th:nth-child(3),.bom th:nth-child(4){text-align:right}.bom tfoot td{font-weight:600}.bench{position:fixed;bottom:var(--space-md);left:var(--space-md);background:var(--ink);color:var(--bg);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);font:var(--text-footnote-size) var(--font-mono);z-index:10}@media(max-width:800px){main{grid-template-columns:1fr}.sidebar{max-height:45vh}}.assistant-log{display:flex;flex-direction:column;gap:var(--space-md);max-height:360px;overflow:auto;margin:var(--space-sm) 0}.assistant-turn{display:flex;flex-direction:column;gap:var(--space-xs)}.assistant-q{align-self:flex-end;background:var(--line);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-pill);max-width:90%}.assistant-a{white-space:normal;line-height:1.6}.assistant-tools .pill{font-size:var(--text-caption-size)}.assistant-input{flex:1;min-width:0;font:inherit;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);border:1px solid var(--line)}button.cite{background:transparent;color:var(--accent);border:1px solid var(--accent);padding:0 var(--space-xs);border-radius:var(--radius-xs);font:var(--text-footnote-size) var(--font-mono);margin:0 1px}button.cite.bad{color:var(--bad);border-color:var(--bad)}.pill.running{color:var(--ink);background:var(--color-warning-subtle)}.assistant-progress{margin:0}.consent-gate{position:fixed;inset:0;background:var(--color-scrim);display:flex;align-items:center;justify-content:center;z-index:50;padding:var(--space-lg)}.consent-card{background:var(--panel);border-radius:var(--radius-lg);max-width:560px;width:100%;max-height:90vh;overflow:auto;padding:var(--space-lg) var(--space-xl);box-shadow:var(--shadow-dialog)}.consent-card h1{margin-bottom:var(--space-sm)}.consent-list{list-style:none;padding:0;margin:var(--space-md) 0;display:flex;flex-direction:column;gap:var(--space-md)}.consent-list li{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md)}.consent-list label{display:flex;gap:var(--space-sm);align-items:center;cursor:pointer;font-weight:600}.consent-list input[type=checkbox]{width:16px;height:16px}.ai-disabled{opacity:.55}.nb{position:relative;display:inline-block;margin-left:auto}.nb-button{position:relative;background:transparent;border-color:transparent;color:var(--color-text-secondary);padding:var(--space-sm)}.nb-badge{position:absolute;top:-2px;right:-4px;background:var(--bad);color:var(--color-on-primary);border-radius:var(--radius-pill);font-size:var(--text-caption-size);line-height:16px;min-width:16px;padding:0 var(--space-xs);text-align:center}.nb-panel{position:absolute;right:0;top:calc(100% + var(--space-sm));width:340px;max-height:420px;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-popover);z-index:40}.nb-head{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--line)}.nb-link{background:transparent;border:0;color:var(--accent);padding:0;font-size:var(--text-footnote-size)}.nb-list{list-style:none;margin:0;padding:0}.nb-item{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--line);cursor:pointer}.nb-item:hover{background:var(--bg)}.nb-item.unread{border-left:3px solid var(--accent)}.nb-item.unread .nb-title{font-weight:600}.nb-empty{padding:var(--space-sm) var(--space-md)}.product-search{margin-bottom:var(--space-sm)}.search-hits{list-style:none;margin:var(--space-sm) 0;padding:0;max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-sm)}.search-hits li{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border-bottom:1px solid var(--line);font-size:var(--text-callout-size)}.import-review{display:grid;grid-template-columns:1fr 380px;height:100%;min-height:0}.ir-canvas{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line)}.ir-toolbar{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--line)}.ir-svg{flex:1;width:100%;min-height:0;background:var(--color-plan-floor);-webkit-user-select:none;user-select:none}.ir-side{overflow:auto;background:var(--panel);padding:var(--space-md) var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.ir-side section{border-bottom:1px solid var(--line);padding-bottom:var(--space-md)}.ir-list{list-style:none;padding:0;margin:var(--space-xs) 0;display:flex;flex-direction:column;gap:var(--space-xs);font-size:var(--text-callout-size)}.ir-list li{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer}.ir-list li:hover{background:var(--bg)}.ir-queue{margin:var(--space-xs) 0;padding-left:var(--space-xl)}.ir-summary{margin:var(--space-xs) 0;padding-left:var(--space-lg)}@media(max-width:900px){.import-review{grid-template-columns:1fr}.ir-svg{min-height:50vh}}.pill.ai{background:var(--color-ai-subtle);color:var(--color-ai);font-size:var(--text-caption-size)}.ai-scene-notice{position:absolute;top:var(--space-sm);left:var(--space-sm);padding:var(--space-xxs) var(--space-sm);border-radius:var(--radius-pill);font-size:var(--text-footnote-size);background:var(--color-ai);color:var(--color-surface);pointer-events:none}.nb-prefs{width:100%;font-size:var(--text-callout-size);border-collapse:collapse}.nb-prefs th,.nb-prefs td{padding:var(--space-xs) var(--space-sm);text-align:center}.nb-prefs td:first-child{text-align:left}.sign-in{min-height:100vh;display:grid;place-items:center;background:var(--color-background);padding:var(--space-lg)}.sign-in-card{width:min(380px,100%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xxl) var(--space-xl);box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:var(--space-md)}.sign-in-card h1{margin:0 0 var(--space-xs);font-size:var(--text-display-size);font-weight:var(--text-display-weight);letter-spacing:var(--text-display-tracking);line-height:var(--text-display-line)}.sign-in-card label{display:flex;flex-direction:column;gap:var(--space-xs);font-size:var(--text-body-size)}.sign-in-card input{font:inherit;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:inherit}.sign-in-card .primary{padding:var(--space-md);border:0;border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-on-primary);font:inherit;font-weight:600;cursor:pointer}.sign-in-card .primary:disabled{opacity:1;background:var(--color-surface-muted);color:var(--color-text-tertiary);cursor:default}.sign-in-card .link{background:none;border:0;color:var(--color-primary);cursor:pointer;padding:0;font:inherit;font-size:var(--text-callout-size)}.sign-in-tabs{display:flex;gap:var(--space-xs)}.sign-in-tabs button{flex:1;padding:var(--space-sm);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text-secondary);border-radius:var(--radius-sm);font:inherit;cursor:pointer}.sign-in-tabs button[aria-selected=true]{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.sign-in-links{display:flex;justify-content:space-between}.language-select{position:relative;display:inline-flex;align-items:center;color:var(--color-text-secondary);flex:none}.language-select select{appearance:none;-webkit-appearance:none;font:inherit;font-size:var(--text-callout-size);line-height:1.2;padding:var(--space-xs) var(--space-xl) var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:inherit;cursor:pointer;max-width:none}.language-select select:hover{border-color:var(--color-border-strong);color:var(--color-text-primary)}.language-select select:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.language-select .icon{position:absolute;right:var(--space-sm);pointer-events:none}.sign-in-card{position:relative}.sign-in-card>.language-select{position:absolute;top:var(--space-md);right:var(--space-md)}.projects-page{min-height:100%;background:var(--color-background)}.projects-page main{display:block;max-width:880px;margin:0 auto;padding:var(--space-xxxl) var(--space-xl)}.projects-page header{display:flex;gap:var(--space-md);align-items:center;padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.projects-page header .account{margin-left:auto;display:flex;gap:var(--space-sm);align-items:center}.projects-page a{color:var(--color-primary);text-decoration:none}.projects-page a:hover{text-decoration:underline}.project-create{display:flex;gap:var(--space-sm);margin-bottom:var(--space-xl)}.project-create input{flex:1;font:inherit;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:inherit}.project-create input:focus,.project-row input:focus{outline:2px solid var(--color-primary-subtle);border-color:var(--color-primary)}.project-create button{padding:var(--space-sm) var(--space-lg);font-weight:600}.project-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-sm)}.project-list li{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-card);transition:border-color .15s}.project-list li:hover{border-color:var(--color-border-strong)}.project-list li.open{border-color:var(--color-primary)}.project-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg)}.project-row form{display:flex;gap:var(--space-sm);flex:1}.project-row input{flex:1;font:inherit;padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:inherit}.project-row .project-name{background:none;border:0;font:inherit;font-size:var(--text-headline-size);font-weight:var(--text-headline-weight);color:inherit;cursor:pointer;text-align:left;padding:0}.project-row .actions{margin-left:auto;display:flex;gap:var(--space-sm)}.project-spaces{border-top:1px solid var(--color-border);padding:var(--space-md) var(--space-lg) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-xs)}.project-spaces .space-link{color:inherit;padding:var(--space-xs) 0}.project-spaces .space-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-sm)}.dialog-backdrop{position:fixed;inset:0;background:var(--color-scrim);display:grid;place-items:center;z-index:50}.dialog{background:var(--color-surface-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-dialog);padding:var(--space-xl);width:min(420px,calc(100% - 32px))}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-md)}.home-link{display:inline-flex;align-items:center;gap:var(--space-xs);color:var(--color-text-secondary);text-decoration:none;margin-right:var(--space-sm)}.home-link:hover{color:var(--color-text-primary)}.brand-title{display:inline-flex;align-items:center;gap:var(--space-sm)}.brand-mark{flex:none;border-radius:22%}.project-spaces .space-actions a{display:inline-flex;align-items:center;gap:var(--space-xs)}main.import-entry{display:flex;flex-direction:column;gap:var(--space-lg);max-width:720px;width:100%;margin:0 auto;padding:var(--space-xxl) var(--space-lg)}.entry-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-md)}.entry-card h2{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-headline-size);margin:0}.entry-card h2 .icon{color:var(--color-primary)}.entry-card.disabled,.entry-card.disabled h2 .icon{color:var(--color-text-tertiary)}.entry-card.dragging{border-color:var(--color-primary);background:var(--color-primary-subtle)}.drop-zone{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-xl);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md)}.drop-zone button{margin-bottom:var(--space-xs)}.tips ul{margin:var(--space-xs) 0 0;padding-left:var(--space-lg)}main.import-result-main{display:flex;flex-direction:column;min-height:0}.import-result{padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--color-border);background:var(--color-surface);display:flex;flex-direction:column;gap:var(--space-sm)}.import-result-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md)}.import-result-head button{margin-left:auto}.import-result-review{flex:1;min-height:0}.banner{display:flex;gap:var(--space-sm);align-items:flex-start;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md)}.banner p{margin:var(--space-xxs) 0 0}.banner.warning{background:var(--color-warning-subtle)}.banner.warning .icon{color:var(--color-warning)}.banner.info{background:var(--color-info-subtle)}.banner.info .icon{color:var(--color-info)}.ir-list li.active{border-color:var(--color-primary);background:var(--color-primary-subtle)}.ir-tech summary{cursor:pointer}.pill.quality-good{color:var(--color-success);background:var(--color-success-subtle)}.pill.quality-fair{color:var(--color-warning);background:var(--color-warning-subtle)}.pill.quality-poor{color:var(--color-danger);background:var(--color-danger-subtle)}.mesh-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-md);align-items:end}.mesh-options label{display:flex;flex-direction:column;gap:var(--space-xs);font-size:var(--text-footnote-size);color:var(--color-text-secondary)}.mesh-options select{padding:var(--space-sm) var(--space-sm)}.mesh-options button{justify-self:start}.mesh-hint{display:flex;gap:var(--space-sm);align-items:flex-start;margin:0}.mesh-issues{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xxs);color:var(--color-text-secondary)}.mesh-issues li{display:flex;gap:var(--space-sm);align-items:flex-start}.mesh-issues .icon{color:var(--color-info);flex:none;margin-top:var(--space-xxs)}.mesh-draw{flex:1;min-height:0;display:flex}.mesh-canvas{flex:1;min-width:0;display:flex;padding:var(--space-md);background:var(--color-background)}.mesh-svg{flex:1;width:100%;height:100%;min-height:360px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:crosshair;-webkit-user-select:none;user-select:none;touch-action:none}.mesh-rooms{width:320px;flex:none;border-left:1px solid var(--color-border);background:var(--color-surface);padding:var(--space-md) var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm);overflow:auto}.mesh-rooms>button.primary{margin-top:auto;padding:var(--space-sm) var(--space-md)}.mesh-active{display:flex;gap:var(--space-xs);flex-wrap:wrap}.mesh-room-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}.mesh-room-list li{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.mesh-room-list input{flex:1;min-width:0;font:inherit;padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:inherit}.mesh-room-list select{width:84px}.mesh-swatch{width:10px;height:10px;border-radius:50%;flex:none}@media(max-width:760px){.mesh-draw{flex-direction:column}.mesh-rooms{width:auto;border-left:0;border-top:1px solid var(--color-border)}}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-xs);padding:var(--space-xxl) var(--space-lg);color:var(--color-text-secondary)}.empty-state-icon{display:inline-grid;place-items:center;width:calc(var(--space-xxxl) + var(--space-lg));height:calc(var(--space-xxxl) + var(--space-lg));border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-text-tertiary);margin-bottom:var(--space-xs)}.empty-state-title{margin:0;color:var(--color-text-primary)}.empty-state-hint{margin:0;font-size:var(--text-footnote-size)}.empty-state-action{margin-top:var(--space-sm)}.empty-state.compact{flex-direction:row;justify-content:flex-start;text-align:left;padding:var(--space-sm) 0;gap:var(--space-sm)}.empty-state.compact .empty-state-icon{width:32px;height:32px;margin:0}.empty-state.compact .empty-state-title{color:var(--color-text-secondary);font-size:var(--text-footnote-size)}table.grid{border:1px solid var(--color-border);border-radius:var(--radius-md);border-collapse:separate;border-spacing:0;overflow:hidden;background:var(--color-surface)}table.grid th{background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:var(--text-caption-size);font-weight:var(--text-caption-weight);letter-spacing:var(--text-caption-tracking);text-transform:none;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border)}table.grid td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border)}table.grid tbody tr:last-child td{border-bottom:0}table.grid tbody tr:hover td{background:var(--color-surface-muted)}.ir-list li .ir-num{flex:none;display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 var(--space-xs);border-radius:var(--radius-pill);border:1px solid var(--color-primary);color:var(--color-primary);font-size:var(--text-caption-size);font-weight:600}.ir-list li:has(.ir-num){justify-content:flex-start}.ir-list li.active .ir-num{background:var(--color-primary);color:var(--color-on-primary)}header>.language-select{margin-left:auto}header>.language-select~.nb,.projects-page header>.language-select~.account{margin-left:0}.cand-drawer{position:fixed;left:var(--space-lg);right:calc(360px + var(--space-lg));bottom:var(--space-lg);z-index:30;max-height:calc(100vh - 96px);overflow:auto;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-dialog);padding:var(--space-lg) var(--space-xl) var(--space-xl);display:flex;flex-direction:column;gap:var(--space-md)}@media(max-width:900px){.cand-drawer{right:var(--space-lg)}}.cand-head{display:flex;align-items:center;gap:var(--space-md)}.cand-head h2{margin:0}.cand-head .cand-close{margin-left:auto;padding:var(--space-xs)}.cand-row{display:flex;gap:var(--space-lg);overflow-x:auto;padding-bottom:var(--space-xs);scroll-snap-type:x mandatory}.cand-card{flex:1 1 0;min-width:248px;max-width:380px;scroll-snap-align:start;display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.cand-card.applied{border-color:var(--color-primary)}.cand-title{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.cand-title h3{margin:0;font-size:var(--text-headline-size);font-weight:var(--text-headline-weight)}.cand-title .pill{display:inline-flex;align-items:center;gap:var(--space-xxs)}.cand-plan,.cand-thumb{display:block;width:100%;height:auto;aspect-ratio:16 / 10;border-radius:var(--radius-sm);background:var(--color-surface-muted)}.cand-thumb{object-fit:cover;background:var(--color-scene-background)}.cand-thumb.placeholder{display:grid;place-items:center;color:var(--color-text-tertiary)}.cand-highlight{margin:0;font-size:var(--text-footnote-size);color:var(--color-text-secondary);min-height:2.6em}.cand-actions{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-top:auto}.cand-actions button{flex:1 1 auto}.render-panel{display:flex;flex-direction:column;gap:var(--space-md)}.render-status{display:flex;align-items:center;gap:var(--space-sm);margin:0;color:var(--color-text-secondary)}.render-tabs{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.render-tabs .tab{background:transparent;border-color:transparent;color:var(--color-text-secondary);border-radius:var(--radius-pill);padding:var(--space-xs) var(--space-md)}.render-tabs .tab.active{background:var(--color-primary-subtle);color:var(--color-primary)}.render-images{display:flex;gap:var(--space-lg);flex-wrap:wrap}.render-images figure{flex:1 1 320px;margin:0;display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.render-images img{width:100%;max-height:52vh;object-fit:contain;border-radius:var(--radius-md);background:var(--color-scene-background)}.render-images figcaption{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.render-actions{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.render-actions p{margin:0}.cand-title .cand-open{margin-left:auto}.cand-thumb-btn{display:block;width:100%;padding:0;border:0;background:none;border-radius:var(--radius-sm);cursor:zoom-in}.cand-thumb-btn:hover:not(:disabled){background:none}.cand-thumb-btn:hover .cand-thumb{outline:1px solid var(--color-border-strong)}.cand-detail-backdrop{position:fixed;inset:0;z-index:45;background:var(--color-scrim);display:grid;place-items:center;padding:var(--space-lg)}.cand-detail{width:min(1200px,100%);height:min(860px,100%);display:flex;flex-direction:column;background:var(--color-surface-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-dialog);overflow:hidden}.cand-detail-head{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--color-border)}.cand-detail-head h2{margin:0}.cand-detail-head .cand-close{margin-left:auto;padding:var(--space-xs)}.seg{display:inline-flex;padding:var(--space-xxs);gap:var(--space-xxs);border-radius:var(--radius-pill);background:var(--color-surface-muted)}.seg button{border:0;background:transparent;border-radius:var(--radius-pill);padding:var(--space-xs) var(--space-md);color:var(--color-text-secondary)}.seg button:hover:not(:disabled){background:transparent;color:var(--color-text-primary)}.seg button.active,.seg button.active:hover:not(:disabled){background:var(--color-surface);color:var(--color-text-primary);box-shadow:var(--shadow-card)}.cand-detail-body{flex:1;min-height:0;position:relative;display:flex;flex-direction:column}.cand-viewer{position:relative;flex:1;min-height:0}.cand-viewer[hidden]{display:none}.cand-viewer>div:first-child{position:absolute!important;inset:0}.cand-viewer-bar{position:absolute;left:var(--space-lg);right:var(--space-lg);bottom:var(--space-lg);display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap;pointer-events:none}.cand-viewer-bar>*{pointer-events:auto}.cand-viewer-bar .seg{background:color-mix(in srgb,var(--color-surface) 80%,transparent);box-shadow:var(--shadow-card)}.cand-viewer-hint{font-size:var(--text-footnote-size);color:var(--color-text-secondary);background:color-mix(in srgb,var(--color-surface) 80%,transparent);padding:var(--space-xxs) var(--space-md);border-radius:var(--radius-pill)}.cand-render{flex:1;min-height:0;overflow:auto;padding:var(--space-lg) var(--space-xl);display:flex;flex-direction:column;gap:var(--space-md)}.cand-render-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);color:var(--color-text-tertiary)}.cand-render-empty p{margin:0}.cand-detail-foot{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-md) var(--space-xl);border-top:1px solid var(--color-border)}.cand-detail-foot .cand-highlight{flex:1;min-height:0}.cand-detail-foot .primary{padding:var(--space-sm) var(--space-xl)}.chip-recommended{display:inline-flex;align-items:center;padding:var(--space-xxs) var(--space-sm);border:1px solid transparent;background:var(--color-primary-subtle);border-radius:var(--radius-pill);color:var(--color-primary);font-size:var(--text-caption-size);font-weight:600;white-space:nowrap}.cand-reason{margin:0;color:var(--color-primary);font-size:var(--text-caption-size);font-weight:500}.cand-plan-wrap{position:relative;overflow:hidden}.cand-plan-wrap>svg{display:block;width:100%;height:100%}.cand-plan-area{position:absolute;top:var(--space-sm);right:var(--space-sm);padding:1px var(--space-sm);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--color-surface) 88%,transparent);color:var(--color-text-secondary);font-size:var(--text-caption-size);font-variant-numeric:tabular-nums;pointer-events:none;white-space:nowrap}.cand-scale{position:absolute;left:var(--space-sm);bottom:var(--space-sm);display:flex;flex-direction:column;gap:1px;padding:var(--space-xs) var(--space-md) var(--space-xs);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--color-surface) 88%,transparent);pointer-events:none}.cand-scale svg{display:block}.cand-scale-labels{position:relative;height:12px;font-size:var(--text-caption-size);line-height:12px;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.cand-scale-labels span{position:absolute;top:0;transform:translate(-50%);white-space:nowrap}.cand-detail-plan{flex:1;min-height:0;display:flex;padding:var(--space-lg) var(--space-xl)}.cand-plan-large{flex:1;min-height:0;border-radius:var(--radius-md);background:var(--color-surface-muted)}.chip-danger{display:inline-flex;align-items:center;gap:var(--space-xs);padding:1px var(--space-sm);border:1px solid color-mix(in srgb,var(--color-danger) 45%,transparent);border-radius:var(--radius-pill);background:var(--color-danger-subtle);color:var(--color-danger);font-size:var(--text-caption-size);font-weight:600;white-space:nowrap}.house-backdrop{position:fixed;inset:0;z-index:46;background:var(--color-scrim);display:grid;place-items:center;padding:var(--space-lg)}.house{width:min(1400px,100%);height:min(920px,100%);display:flex;flex-direction:column;background:var(--color-surface-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-dialog);overflow:hidden}.house-head{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--color-border);min-height:56px}.house-head h2{margin:0;font-size:var(--text-title-size);font-weight:var(--text-title-weight);letter-spacing:var(--text-title-tracking)}.house-close{margin-left:auto;padding:var(--space-xs)}.house-focus{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-xxs) var(--space-xs) var(--space-xxs) var(--space-md);border-radius:var(--radius-pill);background:var(--color-primary-subtle);color:var(--color-primary);font-weight:600}.house-focus button{color:var(--color-text-secondary);font-weight:500;padding:var(--space-xxs) var(--space-sm)}.house-canvas{position:relative;flex:1;min-height:0;background:var(--color-scene-background)}.house-canvas>div:first-child{position:absolute!important;inset:0}.house-bar{position:absolute;left:var(--space-lg);right:var(--space-lg);bottom:var(--space-lg);display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;pointer-events:none}.house-bar>*{pointer-events:auto}.house-bar .seg{background:color-mix(in srgb,var(--color-surface) 80%,transparent);box-shadow:var(--shadow-card)}.house-bar .cand-viewer-hint{pointer-events:none}.cand-viewer-bar>button,.house-bar>button{background:color-mix(in srgb,var(--color-surface) 88%,transparent);box-shadow:var(--shadow-card);border-color:var(--color-border);border-radius:var(--radius-pill);padding:var(--space-xs) var(--space-md)}.house-bar>button.toggle.on,.house-bar>button.toggle.on:hover:not(:disabled){background:var(--color-primary-subtle);color:var(--color-primary);border-color:color-mix(in srgb,var(--color-primary) 45%,transparent)}.house-bar>button:disabled{opacity:.5;cursor:default}.pane-action{position:absolute;top:var(--space-md);right:var(--space-md);z-index:1;background:var(--panel);border-radius:var(--radius-pill);padding:var(--space-xxs) var(--space-md);font-size:var(--text-caption-size);box-shadow:var(--shadow-card)}.pane-action.pane-action-2{top:calc(var(--space-md) + 32px)}.space-link-row{display:flex;align-items:center;gap:var(--space-md)}.space-link-row .space-3d{margin-left:auto;display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--text-caption-size)}.replace-drawer{gap:var(--space-md)}.replace-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,42%);gap:var(--space-lg);min-height:0}@media(max-width:1100px){.replace-body{grid-template-columns:minmax(0,1fr)}}.replace-list-wrap{min-height:0;max-height:min(58vh,560px);overflow:auto}.replace-status{display:flex;flex-direction:column;gap:var(--space-xs);align-items:flex-start;margin:0;padding:var(--space-lg) 0}.replace-status p{margin:0}p.replace-status{flex-direction:row;align-items:center;gap:var(--space-sm)}.replace-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--space-md)}.replace-card{width:100%;height:100%;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:var(--space-xs);padding:var(--space-sm);text-align:left;font-weight:400;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.replace-card:hover:not(:disabled){background:var(--color-surface);border-color:var(--color-border-strong)}.replace-card.selected,.replace-card.selected:hover:not(:disabled){border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.replace-card>.chip-recommended{align-self:flex-start}.replace-thumb{display:block;width:100%;aspect-ratio:4 / 3;object-fit:contain;border-radius:var(--radius-sm);background:var(--color-surface-muted)}.replace-thumb.placeholder{display:grid;place-items:center;color:var(--color-text-tertiary)}.replace-name{font-weight:600;line-height:1.35}.replace-meta{display:flex;justify-content:space-between;gap:var(--space-sm);font-size:var(--text-footnote-size);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.replace-price{color:var(--color-text-primary);font-weight:600}.replace-reasons{font-size:var(--text-caption-size);color:var(--color-text-secondary);line-height:1.4}.replace-preview{display:flex;flex-direction:column;gap:var(--space-sm);min-height:0}.replace-viewer{position:relative;flex:1;min-height:300px;border-radius:var(--radius-md);overflow:hidden;background:var(--color-scene-background)}.replace-viewer>div:first-child{position:absolute!important;inset:0}.replace-hint{position:absolute;left:50%;bottom:var(--space-md);transform:translate(-50%);white-space:nowrap;pointer-events:none}.replace-foot{display:flex;align-items:center;gap:var(--space-md)}.replace-foot-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-secondary)}.replace-foot .primary{padding:var(--space-sm) var(--space-xl)}.toast{position:fixed;left:50%;bottom:var(--space-xl);transform:translate(-50%);z-index:60;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-sm) var(--space-sm) var(--space-lg);border-radius:var(--radius-pill);background:var(--color-text-primary);color:var(--color-surface);box-shadow:var(--shadow-popover);max-width:calc(100vw - 32px)}.toast>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toast .toast-action{background:transparent;color:var(--color-surface);border-color:color-mix(in srgb,var(--color-surface) 45%,transparent);border-radius:var(--radius-pill)}.toast .toast-action:hover:not(:disabled){background:color-mix(in srgb,var(--color-surface) 15%,transparent);border-color:var(--color-surface)}.cab-panel{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-sm);padding-top:var(--space-md);border-top:1px dashed var(--line)}.cab-panel h3{margin:0;font-size:var(--text-body-size);font-weight:600}.cab-label{font-size:var(--text-footnote-size);font-weight:600;color:var(--color-text-secondary)}.seg.cab-mount{display:flex;border-radius:var(--radius-md)}.seg.cab-mount button{flex:1;flex-direction:column;gap:var(--space-xxs);padding:var(--space-xs) var(--space-xxs) var(--space-xs);border-radius:var(--radius-sm);font-size:var(--text-footnote-size)}.cab-glyph{display:block}.cab-g-panel{fill:var(--color-text-tertiary)}.cab-g-back{stroke:var(--color-border-strong);stroke-width:1}.cab-g-door{fill:var(--color-text-secondary)}.seg.cab-mount button.active .cab-g-door{fill:var(--color-primary)}.cab-elev{display:block;background:var(--color-surface-muted);border-radius:var(--radius-sm)}.cab-e-body{fill:var(--color-surface);stroke:var(--color-text-tertiary);stroke-width:1}.cab-e-stile,.cab-e-plinth{fill:var(--color-border)}.cab-e-door{cursor:pointer;outline:none}.cab-e-door rect{fill:color-mix(in srgb,var(--color-text-tertiary) 22%,var(--color-surface));stroke:var(--color-text-secondary);stroke-width:1;transition:fill .12s}.cab-e-door.inset rect{stroke-dasharray:3 2}.cab-e-door:hover rect,.cab-e-door:focus-visible rect{fill:var(--color-primary-subtle)}.cab-e-door.over rect{fill:var(--color-primary-subtle);stroke:var(--color-primary)}.cab-e-door.sel rect{stroke:var(--color-primary);stroke-width:2.5}.cab-e-door text{font-size:var(--text-caption-size);fill:var(--color-text-secondary);pointer-events:none}.cab-e-door.over text{fill:var(--color-primary);font-weight:600}.cab-e-front{fill:color-mix(in srgb,var(--color-text-tertiary) 22%,var(--color-surface));stroke:var(--color-text-secondary);stroke-width:1}.cab-e-front.track0{fill:color-mix(in srgb,var(--color-text-tertiary) 12%,var(--color-surface))}.cab-e-dot{fill:var(--color-primary)}.cab-door-pop{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-card)}.seg.cab-door-seg{display:flex;border-radius:var(--radius-md)}.seg.cab-door-seg button{flex:1;padding:var(--space-xs) var(--space-xs);border-radius:var(--radius-sm);font-size:var(--text-footnote-size)}.cab-toggle{align-self:flex-start;padding-inline:var(--space-xs)}.cab-tune{display:flex;flex-direction:column;gap:var(--space-sm)}.cab-field{display:grid;grid-template-columns:84px 1fr;align-items:center;column-gap:var(--space-sm);row-gap:0}.cab-field label{font-size:var(--text-footnote-size)}.cab-input{display:flex;align-items:center;gap:var(--space-xs)}.cab-input input{width:76px;font:inherit;padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:inherit;text-align:right}.cab-hint{grid-column:2}.cab-warnings{list-style:none;margin:0;padding:var(--space-sm) var(--space-sm);border-radius:var(--radius-sm);background:var(--color-warning-subtle);font-size:var(--text-footnote-size);display:flex;flex-direction:column;gap:var(--space-xs)}.cab-warnings li{display:flex;gap:var(--space-sm);align-items:flex-start}.cab-warnings .icon{color:var(--color-warning);margin-top:var(--space-xxs)}.cand-empty{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3, var(--space-md));padding:var(--space-4, var(--space-lg)) 0}button{min-height:32px}button.small,button.cite,.seg button,.house-focus button,.nb-link,.sign-in-card .link,.project-row .project-name,.cand-thumb-btn,.replace-card,.toast .toast-action{min-height:0}button.small{min-height:24px}button,.pill,.chip-recommended,.chip-danger{white-space:nowrap}select{min-height:32px;padding:0 var(--space-sm);border-color:var(--color-border-strong)}.input,.assistant-input{font:inherit;min-height:32px;padding:0 var(--space-sm);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:inherit;width:100%;min-width:0}.input:focus,.assistant-input:focus,select:focus{outline:2px solid var(--color-primary-subtle);border-color:var(--color-primary)}.input.grow,form.row>.assistant-input{flex:1;width:auto}.sidebar select{width:100%}input[type=checkbox]{accent-color:var(--color-primary);width:var(--size-icon-small);height:var(--size-icon-small);margin:0}label.check{display:inline-flex;align-items:center;gap:var(--space-sm);font-size:var(--text-callout-size);cursor:pointer}.field-stack{display:flex;flex-direction:column;gap:var(--space-sm);align-items:stretch}.field-stack>button{align-self:flex-start}.subhead{margin:0;font-size:var(--text-callout-size);font-weight:600}.sync-status{color:var(--color-text-tertiary);font-size:var(--text-footnote-size);white-space:nowrap}.error-state{display:flex;gap:var(--space-sm);align-items:flex-start;padding:var(--space-md);border-radius:var(--radius-md);background:var(--color-danger-subtle);color:var(--color-text-primary)}.error-state>.icon{color:var(--color-danger);margin-top:var(--space-xxs)}.error-state-body{flex:1;min-width:0}.error-state-title{margin:0;font-weight:600}.error-state-hint{margin:var(--space-xxs) 0 0;color:var(--color-text-secondary);font-size:var(--text-callout-size)}.error-state-actions{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-sm)}.error-state-details{margin-top:var(--space-sm);font-size:var(--text-footnote-size);color:var(--color-text-secondary)}.error-state-details summary{cursor:pointer}.error-state-details>div{margin-top:var(--space-xs);font-family:var(--font-mono);overflow-wrap:anywhere}.error-state.compact{padding:var(--space-sm) var(--space-md)}.error-state.compact .error-state-title{font-size:var(--text-callout-size)}.boot-error{display:block;max-width:560px;margin:var(--space-xxxl) auto;padding:0 var(--space-lg)}.assistant-paused{display:flex;flex-direction:column;gap:var(--space-xs)}.menu-wrap{position:relative;display:inline-block}.menu{position:absolute;top:calc(100% + var(--space-xs));left:0;z-index:40;min-width:220px;list-style:none;margin:0;padding:var(--space-xs);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-popover)}.menu[hidden]{display:none}.menu.menu-right{left:auto;right:0;min-width:160px}.menu button{width:100%;justify-content:flex-start;background:transparent;border-color:transparent;font-weight:400}.menu button:hover:not(:disabled){background:var(--color-surface-muted);border-color:transparent}.menu button>span{flex:1;text-align:left}.menu .menu-lock{color:var(--color-text-tertiary)}.menu .menu-danger{color:var(--color-danger)}.icon-button{padding:var(--space-xs);min-width:32px;background:transparent;border-color:transparent;color:var(--color-text-secondary)}.icon-button:hover:not(:disabled){background:var(--color-surface-muted);border-color:transparent;color:var(--color-text-primary)}.pane-tools{position:absolute;top:var(--space-md);right:var(--space-md);z-index:1;display:flex;gap:var(--space-xxs);padding:var(--space-xxs);background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}header .brand-title{white-space:nowrap}.header-sub{color:var(--color-text-secondary);font-size:var(--text-headline-size);line-height:var(--text-headline-line);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.button-link,.projects-page a.button-link{display:inline-flex;align-items:center;gap:var(--space-sm);min-height:32px;padding:var(--space-xs) var(--space-md);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-primary);font-weight:500;text-decoration:none;white-space:nowrap}a.button-link:hover,.projects-page a.button-link:hover{background:var(--color-surface-muted);text-decoration:none}a.button-link.primary,.projects-page a.button-link.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}a.button-link.primary:hover,.projects-page a.button-link.primary:hover{background:color-mix(in srgb,var(--color-primary) 86%,black)}a.button-link.ghost,.projects-page a.button-link.ghost{background:transparent;border-color:transparent;color:var(--color-text-secondary)}.project-meta{color:var(--color-text-secondary);font-size:var(--text-footnote-size);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.project-row .project-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.project-list li .row-menu{opacity:0;transition:opacity .12s}.project-list li:hover .row-menu,.project-list li .row-menu:focus-within,.project-list li .row-menu.open{opacity:1}@media(hover:none){.project-list li .row-menu{opacity:1}}.project-spaces .empty-state{padding:var(--space-xl) var(--space-lg)}.replace-body.single{grid-template-columns:minmax(0,1fr)}@media(max-width:640px){header,.projects-page header{padding:var(--space-md) var(--space-lg);gap:var(--space-sm)}.header-sub,.project-meta{display:none}header h1{font-size:var(--text-headline-size)}.projects-page main{padding:var(--space-xl) var(--space-lg)}.project-row{padding:var(--space-md);gap:var(--space-sm)}}.project-list .menu li{border:0;border-radius:0;background:none;box-shadow:none}.bom th{white-space:nowrap}.bom td:nth-child(3),.bom td:nth-child(4){white-space:nowrap}.render-form{display:flex;flex-direction:column;gap:var(--space-sm)}.render-field{display:flex;align-items:center;gap:var(--space-sm) var(--space-md);flex-wrap:wrap}.render-label{font-size:var(--text-footnote-size);color:var(--color-text-secondary)}.render-field .render-label:not(:first-child){margin-left:var(--space-md)}.render-room{min-width:160px;width:auto}.render-hint{margin:0}.seg button:disabled,.seg button:disabled:hover{opacity:1;color:var(--color-text-tertiary)}.seg button:disabled:not(.active){background:transparent}.pane-actions{position:absolute;top:var(--space-md);right:var(--space-md);z-index:1;display:flex;gap:var(--space-xs);flex-wrap:wrap;justify-content:flex-end;max-width:calc(100% - 80px)}.pane-actions .pane-action{position:static}.price-ref-tag{margin-left:var(--space-xxs);color:var(--color-text-secondary);font-size:var(--text-caption-size);font-weight:400;white-space:nowrap}.price-ref-note{margin:var(--space-xs) 0 0}.render-ai-caption{display:flex;flex-direction:column;gap:2px;min-width:0}.device-card{width:min(440px,100%)}.device-card .brand-title{display:flex;align-items:center;gap:var(--space-sm);margin:0;font-size:var(--text-title-size, var(--text-headline-size))}.device-form{display:flex;flex-direction:column;gap:var(--space-sm)}.device-form p{margin:0}.device-code-input{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--text-headline-size);letter-spacing:.12em;text-align:center;text-transform:uppercase}.device-confirm{display:flex;flex-direction:column;gap:var(--space-sm)}.device-confirm p{margin:0}.device-request{display:flex;flex-direction:column;gap:var(--space-xxs)}.device-code{font-family:var(--font-mono, ui-monospace, monospace);font-size:var(--text-display-size);font-weight:600;letter-spacing:.12em;text-align:center;padding:var(--space-md);border-radius:var(--radius-md);background:var(--color-surface-muted)}.device-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin-top:var(--space-xs)}.device-actions button{padding:var(--space-sm) var(--space-md)}.device-done{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-xs);padding:var(--space-md) 0}.device-done h2,.device-done p{margin:0}.device-done.approved .icon{color:var(--color-success)}.device-done.denied .icon{color:var(--color-text-tertiary)}.device-home{display:inline-flex;align-items:center;gap:var(--space-xs);align-self:center;color:var(--color-text-secondary)}main.mesh-replace{display:flex;flex-direction:column;max-width:1080px;width:100%;margin:0 auto;padding:var(--space-xxl) var(--space-lg)}.mesh-compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-md)}.mesh-compare-item{margin:0;display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.mesh-compare-svg{width:100%;height:auto;max-height:52vh;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.mesh-compare-empty{display:grid;place-items:center;min-height:200px;border:1px dashed var(--color-border-strong);border-radius:var(--radius-md)}.mesh-replace-actions{justify-content:flex-end}.fit-home-entry button{display:inline-flex;align-items:center;gap:var(--space-xs)}.fit-home-styles{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:var(--space-sm)}.fit-home-style{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-xs);padding:var(--space-sm);text-align:left;border-radius:var(--radius-md)}.fit-home-style.selected{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.fit-home-swatch{display:flex;height:36px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border)}.fit-home-swatch>span{flex:1}.fit-home-running{display:flex;flex-direction:column;gap:var(--space-sm);max-width:480px}.fit-home-running p{margin:0}.fit-home-progress{height:8px;border-radius:var(--radius-pill);background:var(--line);overflow:hidden}.fit-home-progress>span{display:block;height:100%;background:var(--color-primary);transition:width .4s ease}.fit-home-notices-toggle{display:inline-flex;align-items:center;gap:var(--space-xs);padding:0;text-align:left;white-space:normal}.fit-home-notices .icon.flip{transform:rotate(180deg)}.fit-home-notice-list{margin:var(--space-xs) 0 0;padding-left:var(--space-lg);font-size:var(--text-footnote-size);display:flex;flex-direction:column;gap:var(--space-xxs)}.fit-home-rooms{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.fit-home-room{display:flex;flex-direction:column;gap:var(--space-xxs);padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.fit-home-room p{margin:0}.fit-home-room>button{align-self:flex-start;margin-top:var(--space-xxs)}.fit-home-room .pill{display:inline-flex;align-items:center}.fit-home-highlights{margin:0;padding-left:var(--space-lg);color:var(--color-text-secondary)}.fit-home-failed{display:flex;flex-direction:column;gap:var(--space-sm)}.admin{display:flex;flex-direction:column;height:100%}.admin header{display:flex;align-items:center;gap:16px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--panel)}.admin nav{display:flex;gap:4px}.admin nav button{background:transparent;color:var(--color-text-secondary);border:1px solid transparent}.admin nav button[aria-current=page]{background:var(--accent);color:var(--color-on-primary)}.admin main{flex:1;min-height:0;display:block;overflow:auto;padding:12px 16px}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}.toolbar input[type=search]{font:inherit;padding:4px 8px;border-radius:var(--radius-sm);border:1px solid var(--line);min-width:200px}.pager{display:inline-flex;gap:6px;align-items:center;margin-left:auto}.counts{display:flex;gap:6px;flex-wrap:wrap}.review{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:12px;height:calc(100% - 48px);min-height:0}.queue{overflow:auto;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel)}.queue-item{display:grid;grid-template-columns:56px 1fr;gap:8px;padding:6px 8px;border-bottom:1px solid var(--line);cursor:pointer;align-items:center}.queue-item[aria-selected=true]{background:var(--color-primary-subtle)}.queue-item img,.thumb-empty{width:56px;height:56px;object-fit:contain;background:var(--color-surface);border-radius:var(--radius-xs);border:1px solid var(--line)}.queue-item .name{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flag{color:var(--bad);font-size:11px}.detail{overflow:auto;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);padding:12px 14px}.detail .hero{display:grid;grid-template-columns:260px 1fr;gap:14px}.detail .hero img,.detail .hero .thumb-empty{width:260px;height:260px}.kv{display:grid;grid-template-columns:110px 1fr;gap:2px 10px;font-size:13px}.kv dt{color:var(--muted)}.kv dd{margin:0;word-break:break-all}.reasons{background:var(--color-danger-subtle);border-left:3px solid var(--bad);padding:6px 10px;margin:10px 0;font-size:13px}.reasons li{margin:2px 0}.actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:12px 0}.actions input{font:inherit;padding:4px 8px;border-radius:var(--radius-sm);border:1px solid var(--line);min-width:220px}.chip{background:var(--line);color:var(--ink);padding:2px 8px;border-radius:var(--radius-pill);font-size:12px}details{font-size:12px;color:var(--muted)}table.grid{width:100%;font-size:13px}.grid th,.grid td{text-align:left;vertical-align:top}.grid th{position:sticky;top:0;background:var(--panel)}.status-failed{color:var(--bad)}.status-succeeded{color:var(--accent)}.kbd{font:11px ui-monospace,monospace;border:1px solid var(--line);border-radius:var(--radius-xs);padding:0 4px}.toast{position:fixed;bottom:14px;right:14px;background:var(--ink);color:var(--bg);padding:8px 12px;border-radius:var(--radius-sm);font-size:13px}@media(max-width:900px){.review,.detail .hero{grid-template-columns:1fr}}.ai{border:1px solid var(--line);border-radius:var(--radius-md);padding:8px 12px;margin:12px 0}.ai h3{margin:0 0 6px;font-size:14px}.ai .chip{margin-right:4px}.ai .chip.weak{opacity:.55}.ai .chip.strong{background:var(--color-success-subtle)}.ai .small-btn{margin-left:8px;padding:1px 8px;font-size:12px}.swatches{display:flex;gap:2px;margin:2px 0}.swatch{display:inline-block;width:14px;height:14px;border-radius:3px;border:1px solid var(--line)}.row-actions{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.row-actions input{font:inherit;padding:2px 6px;border-radius:var(--radius-sm);border:1px solid var(--line);width:110px}pre.patch{margin:0;font-size:11px;white-space:pre-wrap;max-width:420px}.blind-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:10px}.blind-side{border:2px solid var(--line);border-radius:var(--radius-md);padding:8px;display:flex;flex-direction:column;gap:6px;background:var(--color-surface)}.blind-side.chosen{border-color:var(--color-primary)}.blind-label{font-weight:600}.blind-plan{height:420px;display:flex;flex-direction:column}.blind-plan svg{flex:1;width:100%;min-height:0}.blind-image{max-height:160px;object-fit:contain}.file-button{display:inline-block;padding:4px 10px;border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;background:var(--color-surface)}.internal{border:1px dashed var(--color-warning);border-radius:var(--radius-md);padding:8px 12px;margin:12px 0;background:var(--color-warning-subtle)}.internal h3{margin:0 0 4px;font-size:14px;display:flex;align-items:center;gap:6px}.internal p{margin:0 0 6px;color:var(--muted)}.internal ul{margin:0;padding-left:18px}.internal-badge{font-size:11px;font-weight:600;padding:1px 6px;border-radius:var(--radius-pill);background:var(--ink);color:var(--bg)}.mono{font-family:ui-monospace,monospace}.name-issue{background:var(--color-danger-subtle);border:1px solid var(--bad);border-left-width:4px;border-radius:var(--radius-sm);padding:8px 12px;margin:10px 0;font-size:13px;display:grid;gap:4px}.name-issue strong{color:var(--bad)}.name-issue code{color:var(--muted);word-break:break-all}.blocked-reason{color:var(--bad);font-size:12px;font-weight:600}[data-testid=comment-reports] .comment-body{white-space:pre-wrap;margin-bottom:4px}[data-testid=comment-reports] .reason-list{margin:2px 0 4px 16px;padding:0}[data-testid=comment-reports] .actions{white-space:nowrap}[data-testid=comment-reports] .actions button{margin-right:4px}button.danger{color:var(--bad)}
