:root{--bg:#f3f1ec;--surface:#fff;--surface-2:#f7f4f0;--surface-3:#f4f1ec;--card:var(--surface);--ink:#2b2d33;--ink-2:#4a4e57;--muted:#8a8f98;--line:#ece8e1;--line-strong:#d8d2c8;--accent:#f26b1d;--accent-hover:#e05e12;--accent-soft:#fff1e8;--accent-ink:#b4581a;--danger:#d9412b;--danger-soft:#fdf0ee;--ok:#2f9e5b;--ok-soft:#eaf6ef;--warn:#d98a1d;--warn-soft:#fff4e2;--radius-xs:6px;--radius-sm:9px;--radius:12px;--radius-lg:16px;--radius-pill:999px;--shadow-sm:0 1px 3px #281e141f;--shadow:0 1px 2px #281e140f, 0 8px 24px #281e1414;--shadow-lg:0 2px 4px #281e140f, 0 16px 40px #281e1424;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--font:Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--text-xs:11px;--text-sm:12.5px;--text-md:14px;--text-lg:17px;--text-xl:22px;--control-h-sm:28px;--control-h:32px;--control-h-lg:38px;--header-h:52px;--header-top:10px;--chrome-top:calc(var(--header-top) + var(--header-h) + var(--space-3));--ruler:24px;--z-chrome:5;--z-popover:20;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html{font:var(--text-md) / 1.4 var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.card--padded{padding:var(--space-4)}.eyebrow{color:var(--muted);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.muted{color:var(--muted);font-size:13px}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.panel{flex-direction:column;min-height:0;display:flex}.panel__head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-2);display:flex}.panel__title{font-size:var(--text-lg);font-weight:650}.panel__actions{gap:var(--space-1);display:flex}.panel__body{min-height:0;padding:var(--space-2) var(--space-4) var(--space-4);flex:1;overflow:auto}.panel__foot{padding:var(--space-3) var(--space-4);border-top:1px solid var(--line)}.btn{height:var(--control-h);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit;white-space:nowrap;cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:550;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.btn--sm{height:var(--control-h-sm);padding:0 10px;font-size:12.5px}.btn:hover:not(:disabled),.btn--pressed{border-color:var(--line-strong);background:#faf8f5}.btn:disabled{opacity:.45;cursor:default}.btn--primary,.btn--primary:hover:not(:disabled){border-color:var(--accent);background:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){background:var(--surface-2);border-color:#0000}.btn--danger{color:var(--danger)}.btn--danger:hover:not(:disabled){background:var(--danger-soft);border-color:#f3c9c2}.btn__icon{display:inline-flex}.icon-btn{width:var(--control-h);height:var(--control-h);border-radius:var(--radius-sm);color:var(--ink-2);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;transition:background .15s,color .15s;display:inline-grid}.icon-btn--sm{width:var(--control-h-sm);height:var(--control-h-sm)}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.icon-btn--active,.icon-btn--active:hover:not(:disabled){background:var(--accent);color:#fff}.icon-btn:disabled{opacity:.4;cursor:default}.icon-btn svg{width:18px;height:18px}.segmented{background:var(--surface-3);border-radius:10px;flex:none;gap:2px;height:36px;padding:3px;display:inline-flex}.segmented--sm{height:30px}.segmented__item{color:var(--muted);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.segmented--sm .segmented__item{padding:0 9px;font-size:12px}.segmented__item:hover{color:var(--ink);text-decoration:none}.segmented__item--active,.segmented__item--active:hover{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.badge{border-radius:var(--radius-pill);background:var(--surface-3);height:20px;color:var(--ink-2);font-size:var(--text-xs);white-space:nowrap;align-items:center;gap:4px;padding:0 8px;font-weight:600;display:inline-flex}.badge--accent{background:var(--accent-soft);color:var(--accent)}.badge--ok{background:var(--ok-soft);color:var(--ok)}.badge--warn{background:var(--warn-soft);color:var(--accent-ink)}.badge--danger{background:var(--danger-soft);color:var(--danger)}.field{flex-direction:column;gap:4px;display:inline-flex}.field__label{color:var(--muted);font-size:12px}.input{height:var(--control-h);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);align-items:center;padding:0 8px;transition:border-color .15s,box-shadow .15s;display:inline-flex}.input--sm{height:var(--control-h-sm);border-radius:var(--radius-xs)}.input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input--invalid{border-color:var(--danger)}.input__control{width:100%;min-width:0;height:100%;font:inherit;font-variant-numeric:tabular-nums;background:0 0;border:0;outline:0;padding:0;font-size:13px}.input__suffix{color:var(--muted);flex:none;margin-left:4px;font-size:12px}.checkbox{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:inline-flex}.checkbox__control{opacity:0;pointer-events:none;position:absolute}.checkbox__box{border:1.5px solid var(--line-strong);background:var(--surface);border-radius:5px;flex:none;width:16px;height:16px;transition:background .15s,border-color .15s}.checkbox__control:checked+.checkbox__box{border-color:var(--accent);background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat}.checkbox__control:focus-visible+.checkbox__box{box-shadow:0 0 0 3px var(--accent-soft)}.table-wrap{overflow:auto}.table{border-collapse:collapse;width:100%;font-size:13px}.table th{border-bottom:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:var(--text-xs);letter-spacing:.04em;text-align:left;text-transform:uppercase;white-space:nowrap;padding:8px 10px;font-weight:600;position:sticky;top:0}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:8px 10px}.table--dense th,.table--dense td{padding:5px 8px}.table tbody tr:hover td{background:#fcfbf9}.table__row--muted td{color:var(--muted)}.table th.num{text-align:right}.canvas-toolbar{z-index:var(--z-chrome);border-radius:14px;align-items:center;gap:4px;padding:6px;display:flex;position:absolute}.canvas-toolbar--column{flex-direction:column}.canvas-toolbar--top-left{top:var(--chrome-top);left:var(--chrome-left,12px)}.canvas-toolbar--top-right{top:var(--chrome-top);right:12px}.canvas-toolbar--top-center{top:var(--chrome-top);left:50%;transform:translate(-50%)}.canvas-toolbar--bottom-left{bottom:12px;left:var(--chrome-left,12px)}.canvas-toolbar--bottom-right{bottom:12px;right:12px}.canvas-toolbar--bottom-center{bottom:12px;left:50%;transform:translate(-50%)}.canvas-toolbar__sep{background:var(--line);align-self:stretch;width:1px;margin:4px 2px}.canvas-toolbar--column .canvas-toolbar__sep{width:auto;height:1px;margin:2px 4px}.menu{position:relative}.menu__panel{max-height:70vh;box-shadow:var(--shadow-lg);z-index:var(--z-popover);padding:6px;position:absolute;top:calc(100% + 8px);overflow:auto}.menu__panel--right{right:0}.menu__panel--left{left:0}.menu__section+.menu__section{border-top:1px solid var(--line);margin-top:4px;padding-top:4px}.menu__title{padding:6px 8px 4px}.menu__item{width:100%;min-height:32px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.menu__item:hover:not(:disabled){background:var(--surface-2)}.menu__item:disabled{color:var(--muted);cursor:default}.menu__label{text-overflow:ellipsis;min-width:0;overflow:hidden}.menu__hint{color:var(--muted);flex:none;font-size:12px}.menu__scroll{max-height:320px;overflow:auto}.menu__note{color:var(--muted);padding:6px 8px;font-size:12.5px}.menu__note--error{color:var(--danger)}.is-demo{--demo-h:24px}.is-demo #root{height:calc(100% - var(--demo-h));margin-top:var(--demo-h)}.demo-banner{z-index:100;height:var(--demo-h,24px);background:var(--accent-soft);color:var(--accent-ink);border-bottom:1px solid var(--line);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 12px;font-size:12px;display:flex;position:fixed;top:0;left:0;right:0}.demo-banner__text{text-overflow:ellipsis;min-width:0;overflow:hidden}.demo-banner__text--short{display:none}@media (width<=760px){.demo-banner__text--long{display:none}.demo-banner__text--short{display:inline}}.demo-banner__link{color:var(--accent-ink);flex:none;font-weight:600}.floorbar__label{color:var(--muted);padding:0 6px 0 8px;font-size:12px}.floorbar__panel{top:calc(var(--chrome-top) + 52px);z-index:var(--z-chrome);border-radius:14px;width:min(340px,100vw - 32px);padding:14px;position:absolute;left:50%;transform:translate(-50%)}.floorbar__actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}@media (width<=720px){.floorbar.canvas-toolbar--top-center{top:auto;bottom:64px}}*{box-sizing:border-box}html,body{overscroll-behavior:none}html,body,#root{background:var(--bg);height:100%;margin:0;overflow:hidden}button,select,input{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app{width:100%;height:100%;position:relative}.plan-canvas{touch-action:none;cursor:grab;position:absolute;inset:0}.plan-canvas:active{cursor:grabbing}.plan-canvas--zone,.plan-canvas--zone:active,.plan-canvas--measure,.plan-canvas--measure:active,.plan-canvas--wall,.plan-canvas--wall:active,.plan-canvas--door,.plan-canvas--door:active,.plan-canvas--window,.plan-canvas--window:active{cursor:crosshair}.plan-canvas--dragging,.plan-canvas--dragging:active{cursor:move}.overlay{pointer-events:none;position:absolute;inset:0}.overlay>*{pointer-events:auto}.header{top:var(--header-top);height:var(--header-h);z-index:5;border-radius:14px;align-items:center;gap:12px;padding:0 8px 0 12px;display:flex;position:absolute;left:10px;right:10px}.app--plan{--header-top:calc(var(--ruler) + 8px);--chrome-left:calc(var(--ruler) + 8px);--chrome-top:calc(var(--header-top) + var(--header-h) + 8px)}.app--plan .header{left:var(--chrome-left)}.header__logo{background:var(--accent);border-radius:7px;flex:none;width:22px;height:22px;box-shadow:inset 0 -5px #0000001f}.header__text{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.header__title{font-size:14px;font-weight:650}.header__meta{color:var(--muted);margin-left:10px;font-size:12.5px}.header__actions{flex:none;gap:4px;display:flex}.save{max-width:260px;height:26px;color:var(--muted);white-space:nowrap;background:#f6f4f0;border-radius:999px;flex:none;align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}a.save:hover{background:var(--accent-soft);text-decoration:none}.save__text{text-overflow:ellipsis;overflow:hidden}.save__dot{background:var(--ok);border-radius:50%;flex:none;width:7px;height:7px}.save--warn{background:var(--accent-soft);color:#b4581a}.save--warn .save__dot{background:var(--warn)}.save--err{color:var(--danger);background:#fdf0ee}.save--err .save__dot{background:var(--danger)}.save--busy .save__dot{background:var(--warn);animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.3}}.page{padding:calc(var(--header-h) + 22px) 16px 24px;position:absolute;inset:0;overflow:auto}.page--full{touch-action:none;padding:0;overflow:hidden}.page__loading{height:100%;min-height:200px;color:var(--muted);place-items:center;display:grid}.toolbar.canvas-toolbar{width:80px;max-height:calc(100% - var(--chrome-top) - 56px);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;align-items:stretch;padding:6px;overflow-y:auto}.toolbar.canvas-toolbar>*{flex:none}.toolbar.canvas-toolbar::-webkit-scrollbar{width:4px}.toolbar.canvas-toolbar::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:2px}.toolbar .tool{width:100%}.toolbar.canvas-toolbar--column .canvas-toolbar__sep{margin:2px 0}.toolbar__history{z-index:1;background:var(--surface);grid-template-columns:1fr 1fr;gap:2px;margin:-6px -6px 0;padding:6px 6px 2px;display:grid;position:sticky;top:-6px}.toolbar .tool--mini{width:auto;padding:6px 0}.tool:disabled{opacity:.35;cursor:default;background:0 0}.tool--on{color:var(--accent);background:var(--accent-soft)}.toolbar__opacity{width:100%;color:var(--muted);font-variant-numeric:tabular-nums;flex-direction:column;align-items:center;gap:2px;font-size:11px;display:flex}.toolbar__opacity input{width:56px;accent-color:var(--accent)}.tool{cursor:pointer;width:66px;color:var(--ink);background:0 0;border:0;border-radius:11px;flex-direction:column;align-items:center;gap:2px;padding:7px 2px 5px;display:flex}.tool:hover{background:#f7f4f0}.tool--active,.tool--active:hover{background:var(--accent);color:#fff}.tool__icon{fill:currentColor;width:20px;height:20px}.tool__icon--line{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.tool__label{font-size:11px;font-weight:600}.toolbar__material{background:var(--card);box-shadow:var(--shadow);white-space:nowrap;border-radius:12px;align-items:center;gap:8px;padding:8px 10px;display:flex;position:absolute;top:6px;left:calc(100% + 10px)}.select{border:1px solid var(--line);background:var(--card);border-radius:8px;height:30px;padding:0 8px}.swatch{border-radius:4px;flex:none;width:12px;height:12px;display:inline-block;box-shadow:inset 0 0 0 1px #0000001f}.swatch--lg{border-radius:8px;width:28px;height:28px}.inspector{top:var(--chrome-top);width:310px;max-height:calc(100% - var(--chrome-top) - 60px);padding:16px;position:absolute;right:12px;overflow:auto}.inspector__head{margin-bottom:12px;position:relative}.eyebrow--lock{align-items:center;gap:5px;display:inline-flex}.inspector__tabs{justify-content:space-between;align-items:center;gap:8px;min-width:0;margin-bottom:12px;display:flex}.inspector__sheet-close,.tool--narrow{display:none}.inspector__close{position:absolute;top:-4px;right:-6px}.inspector__title{font-size:17px;font-weight:650}.inspector__section{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.props{grid-template-columns:auto 1fr;gap:6px 12px;margin:0;display:grid}.props dt{color:var(--muted)}.props dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.chip{align-items:center;gap:6px;display:inline-flex}.row{justify-content:space-between;gap:8px;padding:4px 0;display:flex}.row--center{align-items:center}.total{margin-top:4px;font-size:15px}.furniture-panel{top:var(--chrome-top);left:calc(var(--chrome-left,12px) + 88px);width:300px;max-height:calc(100% - var(--chrome-top) - 60px);position:absolute}.furniture-panel__group+.furniture-panel__group{margin-top:14px}.furniture-panel__grid{grid-template-columns:repeat(3,1fr);gap:4px;margin-top:6px;display:grid}.furniture-panel__item{border-radius:var(--radius-sm);color:var(--ink-2);cursor:grab;background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 6px;display:flex}.furniture-panel__item:hover{border-color:var(--line);background:var(--surface-2)}.furniture-panel__name{text-align:center;font-size:11px;line-height:1.2}.gate{background:var(--bg);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.gate__card{flex-direction:column;gap:12px;width:min(340px,100%);padding:24px;display:flex}.gate__card .input{width:100%;height:var(--control-h-lg)}.gate__title{font-size:var(--text-lg);font-weight:650}.gate__error{color:var(--danger);font-size:13px}button.save{font:inherit;cursor:pointer;border:0;font-size:12px}.preview-bar{top:calc(var(--chrome-top) + 4px);border-left:3px solid var(--accent);max-width:calc(100% - 24px);z-index:var(--z-popover);align-items:center;gap:14px;padding:8px 10px 8px 16px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.preview-bar__actions{flex:none;gap:6px;display:flex}.versions__head{padding:4px 4px 8px}.versions__save{gap:6px;padding:4px;display:flex}.versions__save .input{flex:1}.versions__row{border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:6px 4px;display:flex}.versions__row:hover{background:var(--surface-2)}.versions__info{min-width:0}.versions__name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.versions__actions{flex:none;gap:4px;display:flex}.toast{top:calc(var(--chrome-top) + 4px);border-left:3px solid var(--ok);z-index:var(--z-popover);padding:10px 16px;font-weight:600;animation:.2s ease-out toast-in;position:absolute;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-6px)}}.align-controls{top:var(--chrome-top);z-index:var(--z-chrome);flex-direction:column;gap:6px;padding:10px 14px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.align-controls__head{align-items:baseline;gap:10px;display:flex}.ctx-menu{min-width:190px;box-shadow:var(--shadow-lg);z-index:var(--z-popover);padding:4px;position:absolute}.measure-hint{color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;z-index:var(--z-chrome);padding:8px 14px;font-size:12.5px;position:absolute;bottom:60px;left:50%;transform:translate(-50%)}.room-edit__input{text-align:center;width:140px}.view-controls{bottom:12px}.compass svg{width:20px;height:20px;transition:transform .2s}.form{gap:8px;margin-bottom:12px;display:grid}.form__row{color:var(--muted);grid-template-columns:96px 1fr;align-items:center;gap:8px;font-size:13px;display:grid}.form__row .input,.form__select{width:100%;color:var(--ink)}.form__color{border:1px solid var(--line);border-radius:var(--radius-xs);background:0 0;width:44px;height:28px;padding:0}.props--compact{font-size:13px}.layout-hint{border-radius:var(--radius-sm);background:var(--surface-2);margin-top:12px;padding:10px 12px;font-size:12.5px;line-height:1.5}.layout-hint--warn{background:var(--warn-soft)}.layout-hint__actions{gap:4px;margin-top:6px;display:flex}.row--link{border-radius:var(--radius-xs);text-align:left;cursor:pointer;background:0 0;border:0;width:100%}.row--link:hover{background:var(--surface-2)}.inspector__actions{justify-content:space-between;gap:8px;margin-top:16px;display:flex}.waste{width:72px}.inspector__delete{width:100%;margin-top:16px}.material{align-items:flex-start;gap:10px;padding:10px 0;display:flex}.material+.material{border-top:1px solid var(--line)}.material--unused{opacity:.6}.material__body{flex:1;min-width:0}.material__name{font-weight:600}.material__calc{font-variant-numeric:tabular-nums;margin-top:4px;line-height:1.5}.material__price{font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;margin-top:4px;display:flex}.material__source{margin-top:2px;font-size:12px}.hint{color:var(--muted);margin:12px 0 0;font-size:12px}.grid-legend{align-items:center;gap:6px;display:inline-flex}.grid-legend__cell{background:#fff;border:1px solid #d9d3c9;width:10px;height:10px;box-shadow:inset 0 0 0 .5px #ece8e1}.status{left:var(--chrome-left,12px);font-variant-numeric:tabular-nums;gap:16px;padding:8px 14px;font-size:12px;display:flex;position:absolute;bottom:12px}.alert{top:var(--chrome-top);max-width:520px;color:var(--danger);white-space:pre-wrap;padding:12px 16px;position:absolute;left:50%;transform:translate(-50%)}.notice{border-left:3px solid var(--accent);z-index:6;align-items:center;gap:16px;max-width:calc(100% - 24px);padding:12px 14px 12px 16px;display:flex;position:absolute;bottom:60px;left:50%;transform:translate(-50%)}.notice__title{font-weight:650}.notice__actions{flex:none;gap:6px;display:flex}.length-edit{background:var(--card);box-shadow:0 0 0 2px var(--accent), var(--shadow);border-radius:9px;align-items:center;gap:4px;padding:3px 8px 3px 3px;display:flex;position:absolute;transform:translate(-50%,-50%)}.length-edit__input{text-align:right;font-variant-numeric:tabular-nums;border:0;outline:0;width:72px;height:26px;padding:0 6px;font-weight:600}.length-edit__unit{color:var(--muted);font-size:12px}@media (width<=1100px){.header__meta{display:none}}@media (width<=760px){:root{--header-top:6px}.app--plan{--header-top:calc(var(--ruler) + 6px);--chrome-left:8px;--chrome-top:calc(var(--header-top) + var(--header-h) + 8px)}.app--plan .header{left:6px}.header{gap:6px;padding:0 4px 0 8px;left:6px;right:6px}.header .segmented{scrollbar-width:none;flex:auto;min-width:0;overflow-x:auto}.header__text,.save__text{display:none}.header .segmented__item{padding:0 8px}.toolbar.canvas-toolbar{scrollbar-width:none;flex-direction:row;width:auto;inset:auto 8px 8px;overflow-x:auto}.toolbar .tool{flex:none;width:64px}.toolbar__history{flex:none;width:72px}.toolbar .tool--mini{width:auto}.toolbar__opacity{width:64px}.toolbar .canvas-toolbar__sep{width:1px;height:auto;margin:4px 2px}.toolbar__material{position:fixed;top:auto;bottom:86px;left:8px}.toolbar__opacity{flex:none}.inspector{width:auto;max-height:55vh;box-shadow:var(--shadow-lg);z-index:15;border-radius:16px 16px 0 0;position:fixed;inset:auto 0 0}.inspector--summary{display:none}.inspector--summary.inspector--open{display:block}.inspector__sheet-close,.toolbar .tool--narrow{display:flex}.furniture-panel{z-index:15;border-radius:16px 16px 0 0;width:auto;max-height:60vh;position:fixed;inset:auto 0 0}.status{display:none}.view-controls.canvas-toolbar{top:var(--chrome-top);bottom:auto;right:8px}.align-controls{left:8px;right:8px;transform:none}.align-controls__head .muted{display:none}.measure-hint{white-space:normal;text-align:center;max-width:calc(100% - 16px);bottom:84px}.notice{flex-direction:column;align-items:stretch;bottom:120px}}.net-layers{z-index:var(--z-popover);gap:var(--space-2);border-radius:var(--radius);min-width:220px;max-width:280px;max-height:calc(100vh - 16px);box-shadow:var(--shadow-lg);flex-direction:column;padding:10px 12px;display:flex;position:fixed;overflow:auto}.net-layers__row{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:var(--control-h-sm);display:flex}.net-layers__actions{align-items:center;gap:2px;display:inline-flex}.net-layers__lock{color:var(--muted)}.net-layers__lock--on,.net-layers__edit--on{color:var(--accent);background:var(--accent-soft)}.net-layers__note{font-size:var(--text-xs)}.net-editbar{top:calc(var(--chrome-top) + var(--ruler));z-index:var(--z-popover);align-items:center;gap:var(--space-3);border-radius:var(--radius);max-width:calc(100vw - 464px);box-shadow:var(--shadow-lg);white-space:nowrap;padding:6px 8px 6px 14px;display:flex;position:fixed;left:124px}.net-editbar__title{font-weight:650}.net-editbar__hint{font-size:var(--text-xs);text-overflow:ellipsis;overflow:hidden}.net-props__pair{display:contents}.net-items{flex-direction:column;gap:2px;display:flex}.net-item{gap:var(--space-2);font-size:var(--text-sm);border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto;align-items:baseline;padding:6px 0;display:grid}.net-item__name a{color:inherit}.net-item__from{font-size:var(--text-xs)}.net-item__qty,.net-item__sum{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.net-item__sum{min-width:76px}.net-warnings{margin-top:var(--space-2);flex-direction:column;gap:6px;display:flex}.net-warnings .layout-hint{margin-top:0}.net-warning{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;border:0}.tool[aria-disabled=true]{opacity:.35;cursor:not-allowed}.tool[aria-disabled=true]:hover{background:0 0}.inspector__tabs .segmented{flex-wrap:wrap;flex:0 auto;min-width:0;height:auto}.inspector__tabs .segmented__item{white-space:nowrap;min-height:24px}.el-tool{z-index:var(--z-popover);flex-wrap:wrap;max-width:460px}.el-form{gap:var(--space-1);flex-direction:column;display:flex}.el-field>span:first-child{color:var(--muted);white-space:nowrap}.el-field .select{max-width:170px}.el-num{width:110px}.el-text{width:170px}.el-pair{gap:var(--space-1);display:inline-flex}.el-head{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);display:flex}.el-table td{vertical-align:top}.el-row{cursor:pointer}.el-row:hover,.el-row--active{background:var(--surface-2)}.el-dot{border-radius:var(--radius-pill);vertical-align:1px;width:9px;height:9px;margin-right:6px;display:inline-block}.el-sub{font-size:var(--text-xs)}.el-edit{margin-top:var(--space-2);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--surface-2)}.el-edit .inspector__actions{margin-top:var(--space-2)}.el-add{gap:var(--space-2);margin-top:var(--space-2);display:flex}.el-items{margin-top:var(--space-2);flex-direction:column;display:flex}.el-item{gap:var(--space-2);font-size:var(--text-sm);border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto;align-items:baseline;padding:6px 0;display:grid}.el-item__name a{color:inherit}.el-item__qty,.el-item__sum{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.el-item__sum{min-width:72px}.el-warnings{margin-top:var(--space-2);flex-direction:column;gap:6px;display:flex}.el-warning{border-radius:var(--radius-xs);width:100%;color:var(--ink);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;border:0;padding:8px 10px}.el-warning--error{background:var(--danger-soft)}.el-warning--warn{background:var(--warn-soft)}.el-warning--info{background:var(--surface-2);color:var(--ink-2)}.el-howto summary{cursor:pointer;font-weight:600}.el-howto ol{margin:var(--space-2) 0;font-size:var(--text-sm);padding-left:18px;line-height:1.45}.el-howto li+li{margin-top:4px}.el-howto .muted{font-size:var(--text-xs);line-height:1.45}@media (width<=760px){.el-tool{max-width:calc(100vw - 16px)}}.el-group-select{max-width:160px}.hp-summary .props{margin-bottom:var(--space-2)}.hp-actions{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.hp-form{gap:var(--space-1);margin-top:var(--space-2);flex-direction:column;display:flex}.hp-field{justify-content:space-between;gap:var(--space-2)}.hp-field>span:first-child{color:var(--muted);white-space:nowrap}.hp-field .select{max-width:170px}.hp-pair{align-items:center;gap:var(--space-1);display:inline-flex}.hp-num{width:80px}.hp-text{width:150px}.hp-table{margin-top:var(--space-2)}.hp-table td{vertical-align:top}.hp-row{cursor:pointer}.hp-row:hover,.hp-row--active{background:var(--surface-2)}.hp-row--off{opacity:.5}.hp-total td{border-top:1px solid var(--line);font-weight:600}.hp-sub{font-size:var(--text-xs)}.hp-bad{color:var(--danger);font-weight:600}.hp-ok{color:var(--ink)}.hp-items{margin-top:var(--space-2);flex-direction:column;display:flex}.hp-item{gap:var(--space-2);font-size:var(--text-sm);border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto;align-items:baseline;padding:6px 0;display:grid}.hp-item__name a{color:inherit}.hp-item__qty,.hp-item__sum{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.hp-item__sum{min-width:72px}.hp-warnings{margin-top:var(--space-2);flex-direction:column;gap:6px;display:flex}.hp-warning{border-radius:var(--radius-xs);width:100%;color:var(--ink);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer;border:0;padding:8px 10px}.hp-warning--error{background:var(--danger-soft)}.hp-warning--warn{background:var(--warn-soft)}.hp-warning--info{background:var(--surface-2);color:var(--ink-2)}.hp-howto summary{cursor:pointer;font-weight:600}.hp-howto ol{margin:var(--space-2) 0;font-size:var(--text-sm);padding-left:18px;line-height:1.45}.hp-howto li+li{margin-top:4px}.hp-howto .muted{font-size:var(--text-xs);line-height:1.45}.marquee{border:1px dashed var(--accent);pointer-events:none;z-index:2;background:#f26b1d14;position:absolute}.group-delta{border-radius:var(--radius-sm);background:var(--card);box-shadow:0 0 0 1.5px var(--accent), var(--shadow);color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;z-index:3;padding:3px 8px;font-size:12px;position:absolute;transform:translate(-50%,-100%)}.group-delta--guide{color:var(--accent-ink);box-shadow:0 0 0 1px var(--accent);padding:1px 6px;font-size:11px;transform:translate(-50%,-50%)}.gate__field{flex-direction:column;gap:4px;display:flex}.gate__label{color:var(--ink-2);font-size:var(--text-sm);font-weight:600}.gate__hint{text-align:center;margin:0}.gate__card p{margin:0}.invite__role{align-items:center;gap:8px;display:flex}.invite__note{border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--accent-ink);padding:8px 10px;font-size:13px}.link-btn{color:var(--accent-ink);font:inherit;cursor:pointer;background:0 0;border:0;align-self:center;padding:2px 0;font-size:13px;font-weight:600}.link-btn:hover{text-decoration:underline}.link-btn--danger{color:var(--danger)}.collab-head{flex:none;align-items:center;gap:4px;display:flex}.collab-head__role{margin-right:2px}.collab-head__btn{position:relative}.collab-count{border-radius:var(--radius-pill);min-width:16px;height:16px;box-shadow:0 0 0 2px var(--surface);text-align:center;pointer-events:none;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:1px;right:0}.collab-count--accent{background:var(--accent);color:#fff}.collab-count--neutral{background:var(--ink-2);color:#fff}.icon-btn--active .collab-count{box-shadow:0 0 0 2px var(--accent)}.avatar{color:#fff;letter-spacing:.02em;text-shadow:0 1px 1px #0003;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;place-items:center;font-weight:700;display:inline-grid}.avatar--md{width:28px;height:28px;font-size:11px}.avatar--sm{width:22px;height:22px;font-size:9.5px}.avatar--more{background:var(--surface-3);color:var(--ink-2);text-shadow:none}.presence{align-items:center;margin-right:4px;padding-left:6px;display:flex}.presence .avatar{box-shadow:0 0 0 2px var(--surface);cursor:default;margin-left:-6px}.user-btn{width:var(--control-h);height:var(--control-h);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:inline-grid}.user-btn:hover .avatar,.user-btn--open .avatar{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--accent)}.user-menu__who{align-items:center;gap:10px;padding:6px 8px;display:flex}.user-menu__text{flex:1;min-width:0}.user-menu__name{font-weight:650}.user-menu__email{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.user-menu__form{flex-direction:column;gap:6px;padding:4px 8px 8px;display:flex}.user-menu__form .input{width:100%}.user-menu__form .menu__note{padding:0}.collab-panel{top:var(--chrome-top);width:380px;max-width:calc(100% - 24px);max-height:calc(100% - var(--chrome-top) - 12px);height:fit-content;box-shadow:var(--shadow-lg);z-index:16;position:absolute;right:12px}.collab-panel .panel__body{padding-top:4px}.collab-sections{flex-direction:column;gap:18px;display:flex}.collab-sections>section{min-width:0}.collab-eyebrow{margin-bottom:8px}.collab-eyebrow--toggle{cursor:pointer;background:0 0;border:0;padding:0}.collab-eyebrow--toggle:hover{color:var(--ink-2)}.collab-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.collab-list+.link-btn{margin-top:8px}.collab-error{border-radius:var(--radius-xs);background:var(--danger-soft);color:var(--danger);overflow-wrap:anywhere;padding:6px 8px;font-size:12.5px}.collab-select{min-width:0;max-width:100%;font:inherit;font-size:13px}.collab-field{flex-direction:column;gap:4px;display:flex}.collab-field__label{color:var(--ink-2);font-size:var(--text-sm);font-weight:600}.collab-field .input,.collab-field .select{width:100%}.collab-field__hint{margin:-4px 0 0;font-size:12px}.dot{border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.member{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.member:last-child{border-bottom:0}.member--disabled .avatar,.member--disabled .member__text{opacity:.55}.member__main{flex:160px;align-items:center;gap:10px;min-width:0;display:flex}.member__text{min-width:0}.member__name{flex-wrap:wrap;align-items:center;gap:4px;font-weight:600;display:flex}.member__email{white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.member__actions{flex:none;align-items:center;gap:4px;display:flex}.member>.collab-error{flex-basis:100%}.invite-form{flex-direction:column;gap:10px;display:flex}.invite-form>.btn{align-self:flex-start}.invite-link{flex-direction:column;gap:6px;display:flex}.invite-link__row{gap:6px;display:flex}.invite-link__input{flex:1;min-width:0}.invite-link p{margin:0;font-size:12px}.invite{border-radius:var(--radius-sm);background:var(--surface-2);justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.invite__text{min-width:0}.invite__title{flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.invite__who{overflow-wrap:anywhere;font-weight:400}.invite__text .muted{font-size:12px}.cr{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:10px 12px}.cr--pending{border-color:var(--line-strong)}.cr--ghost{border-color:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}.cr__head{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:flex}.cr__id{font-variant-numeric:tabular-nums;font-weight:700}.cr__author{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.cr__time{white-space:nowrap;flex:1;font-size:12px}.cr__reason{overflow-wrap:anywhere;white-space:pre-wrap;margin:6px 0 0;font-size:13px}.cr__warn{border-radius:var(--radius-xs);background:var(--warn-soft);color:var(--accent-ink);margin-top:8px;padding:6px 8px;font-size:12.5px}.cr__items{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.cr-item{border-left:3px solid var(--warn);border-radius:0 var(--radius-xs) var(--radius-xs) 0;background:var(--surface-2);padding:6px 8px}.cr-item--approved{border-left-color:var(--ok)}.cr-item--rejected{border-left-color:var(--danger)}.cr-item__main{align-items:center;gap:6px;display:flex}.cr-item__summary{min-width:0;color:var(--ink);font:inherit;text-align:left;overflow-wrap:anywhere;cursor:pointer;background:0 0;border:0;flex:1;padding:0;font-size:13px}.cr-item__summary:hover:not(:disabled){color:var(--accent-ink);text-decoration:underline}.cr-item__summary:disabled{cursor:default}.cr-item__meta{flex:none;font-size:11.5px}.cr-item__note{margin-top:2px;font-size:12px}.cr-item .collab-error{margin-top:4px}.cr-item__actions{gap:4px;margin-top:6px;display:flex}.cr>.collab-error{margin-top:8px}.cr__foot{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.cr__ghost{cursor:pointer;align-items:center;gap:6px;margin-right:auto;font-size:13px;display:inline-flex}.cr__ghost input{accent-color:var(--accent)}.cr__note{flex-basis:100%;width:100%}.cr__actions{gap:6px;display:flex}.composer{border-radius:var(--radius);background:var(--surface-2);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.composer__target{font-size:12.5px}.composer__target strong{color:var(--ink)}.composer__foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.composer__hint{font-size:12px}.mention{position:relative}.mention__input{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:52px;color:var(--ink);font:inherit;resize:vertical;box-sizing:border-box;outline:0;padding:7px 9px;font-size:13px;transition:border-color .15s,box-shadow .15s;display:block}.mention__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.mention__list{box-shadow:var(--shadow-lg);z-index:var(--z-popover);margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0}.mention__item{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:8px;padding:5px 6px;font-size:13px;display:flex}.mention__item .muted{white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.mention__item--active,.mention__item:hover{background:var(--surface-2)}.mention__name{flex:none;font-weight:600}.mention-tag{background:var(--accent-soft);color:var(--accent-ink);border-radius:4px;padding:0 3px;font-weight:600}.thread{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:8px;padding:10px 12px;transition:border-color .3s,box-shadow .3s;display:flex}.thread--resolved{background:var(--surface-2)}.thread--resolved .comment__body{color:var(--ink-2)}.thread--focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.thread__target{justify-content:space-between;align-items:center;gap:8px;display:flex}.thread__locate{min-width:0;color:var(--accent-ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;font-size:12px;font-weight:600;display:inline-flex}.thread__locate svg{flex:none}.thread__locate:hover:not(:disabled){text-decoration:underline}.thread__locate:disabled{color:var(--muted);cursor:default}.thread__id{flex:none;font-size:12px}.thread__resolved{font-size:12px}.thread__actions{justify-content:flex-end;gap:4px;display:flex}.comment+.comment{border-top:1px solid var(--line);padding-top:8px}.comment__head{align-items:center;gap:6px;display:flex}.comment__author{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.comment__time{white-space:nowrap;flex:1;font-size:12px}.comment__delete{font-size:12px;font-weight:500}.comment__body{overflow-wrap:anywhere;white-space:pre-wrap;margin-top:4px;font-size:13.5px}.collab-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.collab-overlay__label{fill:#fff;font:600 11px var(--font)}.collab-overlay__cursor{transition:transform 80ms linear}.collab-overlay__pin{pointer-events:auto;cursor:pointer;filter:drop-shadow(0 1px 2px #281e144d)}.collab-overlay__pin:hover path,.collab-overlay__pin:focus-visible path{stroke:var(--ink)}.collab-overlay__pin:focus{outline:none}.collab-overlay__pin-text{fill:#fff;font:700 10.5px var(--font);pointer-events:none}@media (width<=760px){.collab-panel{top:var(--chrome-top);width:auto;max-width:none;height:auto;max-height:none;bottom:8px;left:8px;right:8px}.collab-head{gap:2px}.collab-head__btn.icon-btn{width:var(--control-h-sm)}}:root{--ai-pane-w:0px;--ai-add:#2f9e44;--ai-change:#f08c00;--ai-remove:#e03131}.app{margin-left:var(--ai-pane-w);width:calc(100% - var(--ai-pane-w))}:root .net-editbar{left:calc(124px + var(--ai-pane-w))}.ai-dock{top:var(--demo-h,0px);z-index:12;width:var(--ai-pane-width);display:flex;position:fixed;bottom:0;left:0}.ai-dock--narrow{z-index:40;width:auto;right:0}.ai-resizer{z-index:2;cursor:col-resize;touch-action:none;width:8px;position:absolute;top:0;bottom:0;right:-4px}.ai-resizer:after{content:"";background:0 0;width:2px;transition:background .15s;position:absolute;top:0;bottom:0;left:3px}.ai-resizer:hover:after,.ai-resizer:focus-visible:after,.ai-resizer--drag:after{background:var(--accent)}.ai-resizer:focus-visible{outline:none}.ai-pane{border-right:1px solid var(--line);background:var(--surface);min-width:0;height:100%;color:var(--ink);font-size:var(--text-md);flex-direction:column;flex:1;display:flex;position:relative}.ai-pane__body{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.ai-head{border-bottom:1px solid var(--line);flex-direction:column;flex:none;gap:6px;padding:10px 10px 8px 12px;display:flex}.ai-head__row{align-items:center;gap:2px;min-width:0;display:flex}.ai-head__row>.menu:first-child{flex:1;min-width:0}.ai-head__row--sub{justify-content:space-between;gap:8px}.ai-head__title{max-width:100%;height:var(--control-h-sm);border-radius:var(--radius-sm);color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;margin-left:-6px;padding:0 6px;font-size:14px;font-weight:650;display:inline-flex}.ai-head__title:hover,.ai-head__title[aria-expanded=true]{background:var(--surface-2)}.ai-head__title-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ai-head__chev{width:14px;height:14px;color:var(--muted);flex:none}.ai-head__warn{border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--accent-ink);font-size:var(--text-sm);padding:6px 8px}.ai-head .icon-btn svg{width:17px;height:17px}.ai-picker{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);min-width:0;height:26px;color:var(--ink-2);font:inherit;cursor:pointer;align-items:center;gap:6px;padding:0 6px 0 9px;font-size:12.5px;font-weight:600;display:inline-flex}.ai-picker:hover,.ai-picker[aria-expanded=true]{border-color:var(--line-strong);background:var(--surface-2)}.ai-picker--off{color:var(--danger);border-color:#f3c9c2}.ai-picker__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ai-caps{flex:none;gap:2px;display:inline-flex}.ai-cap{background:var(--surface-3);border-radius:5px;place-items:center;min-width:18px;height:18px;font-size:10.5px;line-height:1;display:inline-grid}.ai-cap--off{opacity:.35;filter:grayscale()}.ai-model{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:7px 8px;font-size:13px;display:flex}.ai-model:hover:not(:disabled){background:var(--surface-2)}.ai-model:disabled{opacity:.5;cursor:not-allowed}.ai-model--active,.ai-model--active:hover:not(:disabled){background:var(--accent-soft)}.ai-model__main{flex-direction:column;min-width:0;display:flex}.ai-model__label{font-weight:600}.ai-model__notes{color:var(--muted);font-size:11.5px}.ai-model__reason{color:var(--danger)}.ai-switch{color:var(--ink-2);cursor:pointer;-webkit-user-select:none;user-select:none;flex:none;align-items:center;gap:6px;font-size:12.5px;font-weight:550;display:inline-flex;position:relative}.ai-switch input{opacity:0;pointer-events:none;position:absolute}.ai-switch__track{background:var(--line-strong);border-radius:999px;width:28px;height:16px;transition:background .15s;position:relative}.ai-switch__thumb{width:12px;height:12px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .15s;position:absolute;top:2px;left:2px}.ai-switch input:checked+.ai-switch__track{background:var(--accent)}.ai-switch input:checked+.ai-switch__track .ai-switch__thumb{transform:translate(12px)}.ai-switch input:focus-visible+.ai-switch__track{box-shadow:0 0 0 3px var(--accent-soft)}.ai-conv-list{max-height:min(380px,55vh);overflow:auto}.ai-conv__new{justify-content:flex-start;font-weight:600}.ai-conv__new svg{width:16px;height:16px}.ai-conv{border-radius:8px;align-items:center;gap:2px;display:flex}.ai-conv:hover,.ai-conv:focus-within{background:var(--surface-2)}.ai-conv--active{background:var(--accent-soft)}.ai-conv--edit{padding:2px 4px}.ai-conv--edit .input{width:100%}.ai-conv__pick{min-width:0;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;padding:6px 8px;display:flex}.ai-conv__title{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:550;overflow:hidden}.ai-conv__when{color:var(--muted);font-size:11.5px}.ai-conv__actions{opacity:0;transition:opacity .12s;display:inline-flex}.ai-conv:hover .ai-conv__actions,.ai-conv:focus-within .ai-conv__actions{opacity:1}.ai-conv__actions .icon-btn svg{width:15px;height:15px}.ai-conv__confirm{gap:8px;padding-right:8px;display:inline-flex}.ai-log-wrap{flex:1;min-height:0;position:relative}.ai-log{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;height:100%;overflow-y:auto}.ai-log__inner{flex-direction:column;gap:18px;min-height:100%;padding:16px 14px 20px;display:flex}.ai-log__loading{text-align:center;padding:24px 4px}.ai-log__jump{border:1px solid var(--line);background:var(--surface);width:30px;height:30px;box-shadow:var(--shadow);color:var(--ink-2);cursor:pointer;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.ai-log__jump svg{width:16px;height:16px}.ai-empty{flex-direction:column;flex:1;justify-content:flex-end;align-items:flex-start;gap:8px;padding:8px 2px;display:flex}.ai-empty__mark{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:11px;place-items:center;display:grid}.ai-empty__mark svg{width:20px;height:20px}.ai-empty__title{letter-spacing:-.01em;font-size:17px;font-weight:650}.ai-empty__text{color:var(--ink-2);margin:0 0 6px;font-size:13px;line-height:1.5}.ai-empty__chips{flex-direction:column;gap:6px;width:100%;display:flex}.ai-suggest{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink-2);font:inherit;text-align:left;cursor:pointer;padding:8px 11px;font-size:13px;transition:border-color .15s,background .15s}.ai-suggest:hover:not(:disabled){border-color:var(--line-strong);background:var(--surface-2);color:var(--ink)}.ai-suggest:disabled{opacity:.5;cursor:default}.ai-msg{flex-direction:column;gap:8px;min-width:0;animation:.2s cubic-bezier(.23,1,.32,1) both ai-enter;display:flex}@keyframes ai-enter{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){.ai-msg{animation:none}}.ai-msg--user{align-items:flex-end}.ai-bubble{background:var(--surface-3);max-width:88%;color:var(--ink);overflow-wrap:anywhere;white-space:pre-wrap;border-radius:16px 16px 4px;padding:8px 12px;font-size:13.5px;line-height:1.5}.ai-msg__atts{flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:88%;display:flex}.ai-msg__chips{flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:88%;display:flex}.ai-msg__role{color:var(--ink);align-items:center;gap:6px;font-size:13px;font-weight:650;display:flex}.ai-msg__mark{background:var(--accent-soft);width:20px;height:20px;color:var(--accent);border-radius:6px;place-items:center;display:grid}.ai-msg__mark svg{width:13px;height:13px}.ai-msg__model{color:var(--muted);font-size:12px;font-weight:500}.ai-msg__usage{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11.5px}.ai-note{color:var(--muted);font-size:12.5px;font-style:italic}.ai-error{border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);border:1px solid #f3c9c2;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.ai-working{color:var(--muted);align-items:center;gap:8px;font-size:12.5px;display:flex}.ai-dots{gap:3px;display:inline-flex}.ai-dots i{background:var(--accent);border-radius:50%;width:5px;height:5px;animation:1.1s ease-in-out infinite ai-dot}.ai-dots i:nth-child(2){animation-delay:.15s}.ai-dots i:nth-child(3){animation-delay:.3s}@keyframes ai-dot{0%,80%,to{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.ai-md{color:var(--ink);overflow-wrap:anywhere;font-size:13.5px;line-height:1.55}.ai-md>:first-child{margin-top:0}.ai-md>:last-child{margin-bottom:0}.ai-md p,.ai-md ul,.ai-md ol,.ai-md pre,.ai-md blockquote{margin:0 0 8px}.ai-md ul,.ai-md ol{padding-left:20px}.ai-md li+li{margin-top:2px}.ai-md h1,.ai-md h2,.ai-md h3,.ai-md h4{margin:12px 0 6px;font-size:14px;font-weight:650}.ai-md code{background:var(--surface-3);font-family:var(--font-mono);border-radius:4px;padding:1px 4px;font-size:12px}.ai-md pre{border-radius:var(--radius-sm);background:var(--surface-3);padding:8px 10px;overflow:auto}.ai-md pre code{background:0 0;padding:0}.ai-md blockquote{border-left:3px solid var(--line-strong);color:var(--ink-2);padding-left:10px}.ai-md a{color:var(--accent-ink);text-underline-offset:2px;text-decoration:underline}.ai-md__table{margin:0 0 8px;overflow-x:auto}.ai-md table{border-collapse:collapse;font-size:12.5px}.ai-md th,.ai-md td{border:1px solid var(--line);text-align:left;padding:4px 8px}.ai-md th{background:var(--surface-2);font-weight:600}.ai-tool{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font-size:12.5px}.ai-tool--error{border-color:#f3c9c2}.ai-tool--nested{border:0;border-radius:0}.ai-tool--nested+.ai-tool--nested{border-top:1px solid var(--line)}.ai-tool__row{border-radius:inherit;width:100%;min-height:32px;color:var(--ink-2);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:5px 9px;display:flex}.ai-tool__row:disabled{cursor:default}.ai-tool__row:hover:not(:disabled){background:var(--surface-2)}.ai-tool__row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.ai-tool__icon{color:var(--muted);flex:none;place-items:center;display:grid}.ai-tool__icon svg{width:15px;height:15px}.ai-tool__label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ai-tool--open>.ai-tool__row .ai-tool__label{white-space:normal}.ai-tool__mini{object-fit:cover;border:1px solid var(--line);border-radius:4px;flex:none;width:34px;height:22px}.ai-tool__ok,.ai-tool__err{flex:none;place-items:center;display:grid}.ai-tool__ok{color:var(--ok)}.ai-tool__err{color:var(--danger)}.ai-tool__ok svg,.ai-tool__err svg{width:15px;height:15px}.ai-spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;flex:none;width:13px;height:13px;animation:.8s linear infinite ai-spin}@keyframes ai-spin{to{transform:rotate(360deg)}}.ai-tool__body{flex-direction:column;gap:8px;padding:2px 10px 10px 32px;display:flex}.ai-tool__name{color:var(--muted);font-family:var(--font-mono);font-size:11px}.ai-tool__detail{color:var(--ink-2);white-space:pre-wrap}.ai-tool__detail--err{color:var(--danger)}.ai-tool__image img{border:1px solid var(--line);background:var(--surface-2);border-radius:6px;width:100%;display:block}.ai-tool__input{background:var(--surface-2);max-height:220px;color:var(--ink-2);font-family:var(--font-mono);white-space:pre;border-radius:6px;margin:0;padding:8px;font-size:11px;line-height:1.45;overflow:auto}.ai-tool__list{border-left:2px solid var(--line);margin:0 6px 6px 26px}.ai-chip{border-radius:var(--radius-pill);background:var(--accent-soft);max-width:100%;height:22px;color:var(--accent-ink);white-space:nowrap;align-items:center;gap:2px;padding:0 4px 0 8px;font-size:12px;font-weight:550;display:inline-flex}.ai-chip--static{padding-right:8px}.ai-chip__x{width:16px;height:16px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.ai-chip__x:hover,.ai-chip__x:focus-visible{background:#b4581a26}.ai-chip__x svg{width:11px;height:11px}.ai-att{border:1px solid var(--line);background:var(--surface-2);border-radius:9px;flex:none;width:56px;height:56px;display:block;position:relative;overflow:hidden}.ai-att--sent{width:72px;height:72px}.ai-att img{object-fit:cover;width:100%;height:100%}.ai-att--error{border-color:var(--danger)}.ai-att--error img{opacity:.4}.ai-att__error{color:var(--danger);place-items:center;font-size:18px;font-weight:800;display:grid;position:absolute;inset:0}.ai-att__progress{background:#fffc;border-radius:2px;height:4px;position:absolute;bottom:5px;left:5px;right:5px;overflow:hidden}.ai-att__progress span{background:var(--accent);height:100%;transition:width .15s;display:block}.ai-att__remove{color:#fff;cursor:pointer;background:#1e1e1ea6;border:0;border-radius:50%;place-items:center;width:18px;height:18px;padding:0;display:grid;position:absolute;top:3px;right:3px}.ai-att__remove svg{width:11px;height:11px}.ai-prop{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);flex-direction:column;gap:8px;padding:12px;font-size:13px;display:flex}.ai-prop--loading{color:var(--muted);font-size:12.5px}.ai-prop--applied{border-left-color:var(--ok)}.ai-prop--rejected,.ai-prop--failed{border-left-color:var(--line-strong)}.ai-prop--requested,.ai-prop--partial{border-left-color:var(--warn)}.ai-prop--review{box-shadow:0 0 0 3px var(--accent-soft)}.ai-prop__head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.ai-prop__titles{min-width:0}.ai-prop__eyebrow{color:var(--muted);font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase;font-weight:650}.ai-prop__title{font-size:14px;font-weight:650;line-height:1.3}.ai-prop__badge--live{animation:1.6s ease-in-out infinite ai-pulse}@keyframes ai-pulse{50%{opacity:.55}}.ai-prop__link{color:var(--accent-ink);font:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:0;font-size:12.5px;font-weight:600}.ai-prop__link:hover{text-decoration:underline}.ai-prop__meta{color:var(--muted);margin-top:-4px;font-size:12px}.ai-prop__diff{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:12px;font-size:12.5px;font-weight:650;display:flex}.ai-prop__rules{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding-top:8px;display:flex}.ai-prop__counts{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.ai-prop__count{color:var(--ink-2)}.ai-prop__count--err{color:var(--danger);font-weight:600}.ai-prop__count--warn{color:var(--accent-ink);font-weight:600}.ai-prop__count--ok{color:var(--ok);font-weight:600}.ai-prop__viols{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.ai-viol{align-items:baseline;gap:6px;font-size:12.5px;line-height:1.4;display:flex}.ai-viol__sev{text-align:center;text-transform:uppercase;border-radius:5px;flex:none;min-width:52px;padding:1px 6px;font-size:10.5px;font-weight:700}.ai-viol--err .ai-viol__sev{background:var(--danger-soft);color:var(--danger)}.ai-viol--warn .ai-viol__sev{background:var(--warn-soft);color:var(--accent-ink)}.ai-viol--info .ai-viol__sev{background:var(--surface-3);color:var(--ink-2)}.ai-viol--ok .ai-viol__sev{background:var(--ok-soft);color:var(--ok)}.ai-viol--ok .ai-viol__msg{color:var(--ink-2);-webkit-text-decoration:line-through #2f9e5b80;text-decoration:line-through #2f9e5b80}.ai-prop__groups{border-top:1px solid var(--line);flex-direction:column;gap:2px;margin:0;padding:8px 0 0;list-style:none;display:flex}.ai-group{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2px 8px;padding:4px 0;display:flex}.ai-group .checkbox{flex:1;align-items:flex-start;min-width:0}.ai-group .checkbox__box{margin-top:1px}.ai-group--done .checkbox{cursor:default;opacity:.7}.ai-group__text{flex-direction:column;min-width:0;display:flex}.ai-group__label{font-size:13px;line-height:1.35}.ai-group__floor{color:var(--muted);font-size:11.5px}.ai-group__conflict{color:var(--danger);flex-basis:100%;margin-left:24px;font-size:12px}.ai-prop__note{color:var(--muted);font-size:12.5px}.ai-prop__note--err{color:var(--danger)}.ai-prop__actions{flex-wrap:wrap;gap:6px;padding-top:2px;display:flex}.ai-prop__actions .btn__icon svg{width:15px;height:15px}.ai-prop__reject{color:var(--danger);margin-left:auto}.ai-composer{flex:none;padding:8px 12px 12px;position:relative}.ai-composer__shell{border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;gap:4px;padding:8px 8px 6px 10px;transition:border-color .12s,box-shadow .12s;display:flex}.ai-composer__shell:focus-within{border-color:color-mix(in srgb, var(--accent) 45%, var(--line-strong));box-shadow:0 0 0 3px var(--accent-soft)}.ai-composer--drag .ai-composer__shell{border-style:dashed;border-color:var(--accent)}.ai-composer__context{flex-wrap:wrap;gap:6px;padding-bottom:4px;display:flex}.ai-composer__input{resize:none;width:100%;min-height:40px;max-height:220px;color:var(--ink);font:inherit;background:0 0;border:0;outline:none;padding:4px 2px;font-size:13.5px;line-height:1.45}.ai-composer__input::placeholder{color:var(--muted)}.ai-composer__row{align-items:center;gap:6px;display:flex}.ai-composer__tool{width:28px;height:28px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:grid}.ai-composer__tool:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.ai-composer__tool:disabled{opacity:.4;cursor:default}.ai-composer__tool svg{width:17px;height:17px}.ai-composer__hint{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11.5px;overflow:hidden}.ai-send{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;padding:0;transition:background .14s,opacity .14s,transform .14s;display:grid}.ai-send:hover:not(:disabled){background:#000}.ai-send:active:not(:disabled){transform:translateY(1px)}.ai-send:disabled{opacity:.3;cursor:default}.ai-send:focus-visible,.ai-composer__tool:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ai-send svg{width:16px;height:16px}.ai-send--stop{background:var(--accent)}.ai-send--stop:hover:not(:disabled){background:var(--accent-hover)}.ai-composer__drop{border-radius:var(--radius-lg);color:var(--accent-ink);pointer-events:none;background:#fff1e8eb;place-items:center;font-size:13px;font-weight:600;display:grid;position:absolute;inset:8px 12px 12px}.ai-memory{z-index:3;background:var(--surface);flex-direction:column;display:flex;position:absolute;inset:0}.ai-memory__head{justify-content:space-between;align-items:flex-start;gap:8px;padding:12px 10px 8px 14px;display:flex}.ai-memory__sub{margin-top:2px;font-size:12px}.ai-memory__body{flex:1;min-height:0;padding:0 14px 12px;overflow-y:auto}.ai-memory__empty{padding:8px 0}.ai-memory__list{flex-direction:column;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.ai-memory__item{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:8px 34px 8px 10px;font-size:13px;line-height:1.45;position:relative}.ai-memory__item--pending{border-style:dashed;border-color:var(--warn);background:var(--warn-soft);padding-right:10px}.ai-memory__text{white-space:pre-wrap;overflow-wrap:anywhere}.ai-memory__reason{margin-top:2px;font-size:12px}.ai-memory__meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;display:flex}.ai-memory__meta .muted{font-size:12px}.ai-memory__actions{gap:4px;margin-left:auto;display:inline-flex}.ai-memory__del{position:absolute;top:4px;right:4px}.ai-memory__del svg{width:15px;height:15px}.ai-memory__add{border-top:1px solid var(--line);align-items:flex-end;gap:8px;padding:10px 14px 12px;display:flex}.ai-memory__input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);resize:vertical;background:var(--surface);min-height:36px;color:var(--ink);font:inherit;flex:1;padding:7px 9px;font-size:13px}.ai-memory__input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.ai-head-btn{flex:none;gap:4px;width:auto;padding:0 9px 0 7px;font-size:12.5px;font-weight:700;display:inline-flex;position:relative}.ai-head-btn svg{width:16px;height:16px}.ai-head-btn__dot{border:1.5px solid var(--surface);background:var(--ok);border-radius:50%;width:7px;height:7px;animation:1.4s ease-in-out infinite ai-pulse;position:absolute;top:4px;right:3px}.ai-activity{border-radius:var(--radius-pill);background:var(--surface-3);height:24px;color:var(--ink-2);white-space:nowrap;flex:none;align-items:center;gap:6px;padding:0 9px 0 7px;font-size:12px;font-weight:600;display:inline-flex}.ai-activity__dot{border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite ai-pulse}.ai-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.ai-overlay__pill{filter:drop-shadow(0 1px 2px #281e144d)}.ai-overlay__pill-text{fill:#fff;font:650 11.5px var(--font)}@media (width<=760px){.ai-head-btn__text{display:none}.ai-head-btn{width:var(--control-h);padding:0}}.ai-head__title:focus-visible,.ai-picker:focus-visible,.ai-conv__pick:focus-visible,.ai-model:focus-visible,.ai-suggest:focus-visible,.ai-prop__link:focus-visible,.ai-chip__x:focus-visible,.ai-att__remove:focus-visible,.ai-log__jump:focus-visible,.ai-head-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.projects{background:var(--bg);flex-direction:column;gap:16px;padding:24px max(16px,50vw - 380px);display:flex;position:fixed;inset:0;overflow-y:auto}.projects__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.projects__org{font-size:var(--text-lg);margin-top:8px;font-weight:650}.projects__actions{flex-wrap:wrap;gap:8px;display:flex}.projects__notice{background:var(--surface-2,#7f7f7f1a);border-radius:8px;padding:10px 36px 10px 12px;font-size:13px;position:relative}.projects__notice--warn{color:var(--danger)}.projects__dismiss{cursor:pointer;color:inherit;background:0 0;border:0;font-size:16px;position:absolute;top:6px;right:8px}.projects__new{flex-direction:column;gap:10px;padding:16px;display:flex}.projects__new .input{width:100%;height:var(--control-h-lg)}.projects__from{flex-wrap:wrap;gap:16px;font-size:13px;display:flex}.projects__error a{color:inherit;text-decoration:underline}.projects__list{flex-direction:column;gap:8px;display:flex}.projects__item{align-items:center;gap:8px;padding:8px 12px;display:flex}.projects__item--archived{opacity:.75}.projects__open{text-align:left;cursor:pointer;min-width:0;color:inherit;font:inherit;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;gap:2px;padding:4px 0;display:flex}.projects__name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:600;overflow:hidden}.projects__toggle{cursor:pointer;font:inherit;background:0 0;border:0;align-self:flex-start;padding:4px 0}.readonly-banner{z-index:50;background:var(--surface,#fff);border-radius:8px;max-width:calc(100vw - 32px);padding:6px 12px;font-size:13px;position:fixed;top:8px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000026}.plan-stats{gap:var(--space-4);min-width:0;font-size:var(--text-md);flex-direction:column;display:flex}.plan-stats__title{margin:0 0 var(--space-1);color:var(--muted);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.plan-stats__list{margin:0}.plan-stats__row{justify-content:space-between;align-items:baseline;gap:var(--space-3);border-bottom:1px solid var(--line);padding:7px 0;display:flex}.plan-stats__row:last-child{border-bottom:0}.plan-stats__row dt{min-width:0;color:var(--ink-2)}.plan-stats__row dd{color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;margin:0}.plan-stats__bad{color:var(--danger);font-size:var(--text-xs);display:block}.plan-stats__empty{color:var(--muted);margin:0}
