:root{color-scheme:light dark;--bg: #ffffff;--surface: #fafafa;--surface-2: #f2f2f3;--surface-3: #e9e9ec;--text: #1b1d20;--text-dim: #6b7075;--text-faint: #9aa0a6;--border: #dcdee1;--border-strong: #c3c6cb;--accent: #2563eb;--accent-fg: #ffffff;--ok: #16a34a;--ok-text: #15803d;--warn: #f59e0b;--info: #0e8ea3;--error: #c02626;--error-bg: #fdeaea;--error-border: #f0c2c2;--user-bubble: #e8effa;--code-bg: #f6f6f7;--series-1: #2a78d6;--series-2: #eb6834;--series-3: #1baf7a;--series-4: #eda100;--series-5: #e87ba4;--accent-soft: #e8effa;--accent-text: #1d4ed8;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 20px;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--toolbar-h: 36px;--hud-h: calc(var(--toolbar-h) + 2 * var(--sp-1) + 2px);--hud-bottom: 48px;--ctl-h: 28px;--row-h: 40px;--row-h-dense: 28px;--header-h: 46px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--r-sm: 4px;--r-md: 6px;--shadow-1: 0 1px 2px rgba(0, 0, 0, .06);--shadow-2: 0 8px 24px rgba(0, 0, 0, .16);font-family:var(--font-sans);font-size:var(--fs-md);line-height:1.5;font-weight:400;color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{--bg: #17181b;--surface: #1e2024;--surface-2: #24262b;--surface-3: #2c2f35;--text: #e6e8ea;--text-dim: #9aa1a9;--text-faint: #6d757e;--border: #33373d;--border-strong: #454a52;--accent: #4b86f5;--accent-fg: #0f1115;--ok: #35c26a;--ok-text: #56d187;--warn: #e2a33a;--info: #35b4c9;--error: #f0736b;--error-bg: #2a1a1a;--error-border: #5a2d2d;--user-bubble: #23304a;--code-bg: #202227;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--accent-soft: #23304a;--accent-text: #9dbcff;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 10px 28px rgba(0, 0, 0, .5)}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;width:100%}body{background:var(--bg);color:var(--text);overflow:hidden}button,input,textarea,select{font-family:inherit;font-size:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:4px}button{cursor:pointer}button:disabled{cursor:default}textarea,input,select{accent-color:var(--accent)}::placeholder{color:var(--text-faint)}*{scrollbar-color:var(--border-strong) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px;border:2px solid transparent;background-clip:content-box}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:2px 10px;min-height:var(--ctl-h);font-size:var(--fs-md);font-weight:500;font-family:inherit;line-height:1.4;color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--r-sm);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.ui-btn:hover:not(:disabled){background:var(--surface-3);border-color:var(--text-faint)}.ui-btn:active:not(:disabled){transform:translateY(.5px)}.ui-btn:disabled{opacity:.45;background:transparent;cursor:not-allowed}.ui-btn:disabled:not(.ui-btn--ghost):not(.ui-btn--bare){border-style:dashed;border-color:var(--border-strong)}.ui-btn--primary{background:var(--accent);border-color:transparent;color:var(--accent-fg);font-weight:600}.ui-btn--primary:hover:not(:disabled){background:var(--accent);border-color:transparent;filter:brightness(1.08)}.ui-btn--ghost{background:transparent;border-color:transparent;color:var(--text-dim)}.ui-btn--ghost:hover:not(:disabled){background:var(--surface-2);border-color:transparent;color:var(--text)}.ui-btn--bare{padding:0;min-height:0;background:transparent;border-color:transparent;color:inherit;font-size:inherit;font-weight:inherit;justify-content:flex-start;text-align:left}.ui-btn--bare:hover:not(:disabled){background:transparent;border-color:transparent}.ui-btn--bare.ui-btn--icon{justify-content:center;color:var(--text-dim);border-radius:var(--r-md)}.ui-btn--bare.ui-btn--icon:hover:not(:disabled){color:var(--text)}.ui-btn--icon{width:var(--ctl-h);height:var(--ctl-h);padding:0;flex-shrink:0}.ui-btn--sm{padding:3px 8px;min-height:0;font-size:var(--fs-sm)}.ui-btn--danger:hover:not(:disabled){background:var(--error-bg);border-color:var(--error-border);color:var(--error)}.ui-btn.is-on,.ui-btn[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text)}.ui-btn.is-on:hover:not(:disabled),.ui-btn[aria-pressed=true]:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent);filter:brightness(1.04)}.ui-btn:focus-visible,.ui-input:focus-visible,.ui-select:focus-visible,.tree-row:focus-visible,.tree-head:focus-visible,.issue-row:focus-visible,.ui-card:focus-visible,.ui-listrow:focus-visible,.ui-seg__btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ui-btn:focus:not(:focus-visible){outline:none}.ui-seg{display:inline-flex;gap:2px;padding:2px;min-height:var(--ctl-h);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md)}.ui-seg__btn{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;font-size:var(--fs-md);font-weight:500;font-family:inherit;color:var(--text);background:transparent;border:none;border-radius:var(--r-sm);cursor:pointer;transition:background .12s,color .12s}.ui-seg__btn:hover:not(:disabled):not([aria-pressed=true]){background:var(--surface-3)}.ui-seg__btn[aria-pressed=true]{background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--shadow-1)}.ui-seg__btn--icon{justify-content:center;width:calc(var(--ctl-h) - 6px);padding:0}.ui-seg__btn:disabled{opacity:.3;cursor:not-allowed}.ui-tab{padding:8px 14px;font-size:var(--fs-md);font-weight:500;font-family:inherit;color:var(--text-dim);background:none;border:none;border-bottom:2px solid transparent;border-radius:0;margin-bottom:-1px;cursor:pointer;transition:color .12s,border-color .12s}.ui-tab:hover{color:var(--text)}.ui-tab[aria-pressed=true]{color:var(--text);font-weight:600;border-bottom-color:var(--accent)}.ui-tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.ui-input,.ui-select{box-sizing:border-box;padding:5px 8px;min-height:var(--ctl-h);font-size:var(--fs-md);font-family:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);transition:border-color .12s}.ui-input:hover,.ui-select:hover{border-color:var(--text-faint)}.ui-input:focus,.ui-select:focus{outline:none;border-color:var(--accent)}.ui-label{display:block;font-size:var(--fs-sm);font-weight:500;color:var(--text);margin-bottom:var(--sp-1)}.ui-help{font-size:var(--fs-sm);color:var(--text-faint);line-height:1.4;margin-top:var(--sp-1)}.ui-eyebrow{font-size:var(--fs-sm);font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--text-dim)}.ui-section-header{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border)}.ui-section-header__title{margin:0;flex:1;min-width:0}.ui-num{font-variant-numeric:tabular-nums}.param-num{position:relative;display:inline-flex;width:92px;flex-shrink:0}.param-num>.ui-input{width:100%;text-align:right;padding-right:34px;-moz-appearance:textfield}.param-num>.ui-input::-webkit-inner-spin-button,.param-num>.ui-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.param-num__unit{position:absolute;right:9px;top:50%;transform:translateY(-50%);font-size:var(--fs-sm);color:var(--text-faint);pointer-events:none}.ui-search{position:relative;display:flex;align-items:center}.ui-search>svg{position:absolute;left:var(--sp-2);color:var(--text-faint);pointer-events:none}.ui-search>.ui-input{width:100%;padding-left:28px}.ui-card{display:block;width:100%;text-align:left;padding:var(--sp-2);font-family:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;transition:background .12s,border-color .12s}.ui-card:hover{background:var(--surface-3);border-color:var(--border-strong)}.ui-card.is-on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text)}.ui-card__title{font-size:var(--fs-md);font-weight:600}.ui-card__sub{font-size:var(--fs-sm);color:var(--text-faint);line-height:1.4;margin-top:2px}.ui-card.is-on .ui-card__sub{color:var(--accent-text);opacity:.8}.swatches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-2);padding:0 var(--sp-3)}.swatch{display:flex;flex-direction:column;padding:0;overflow:hidden}.swatch__chip{display:block;width:100%;height:40px;flex-shrink:0}.ui-card__sub.swatch__name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-top:0;padding:4px 6px;line-height:1.3;width:100%;height:calc(2.6em + 8px);box-sizing:border-box;overflow-wrap:anywhere}.ui-card--media{display:flex;align-items:stretch;padding:0;overflow:hidden}.ui-card__media{flex:none;display:grid;place-items:center;padding:var(--sp-2);background:var(--surface);border-right:1px solid var(--border);transition:border-color .12s}.ui-card:hover .ui-card__media{border-right-color:var(--border-strong)}.ui-card.is-on .ui-card__media{border-right-color:var(--accent)}.ui-card__body{display:flex;align-items:center;flex:1;min-width:0;padding:var(--sp-2)}.ui-tag{font-size:var(--fs-xs);font-weight:700;letter-spacing:.3px;padding:1px 4px;border-radius:3px;border:1px solid var(--warn);color:var(--warn);flex-shrink:0}.ui-stack{display:flex;flex-direction:column;min-width:0}.ui-row{display:flex;align-items:center;min-width:0}.ui-row--wrap{flex-wrap:wrap}.ui-gap-0{gap:0}.ui-gap-1{gap:var(--sp-1)}.ui-gap-2{gap:var(--sp-2)}.ui-gap-3{gap:var(--sp-3)}.ui-gap-4{gap:var(--sp-4)}.ui-gap-5{gap:var(--sp-5)}.ui-gap-6{gap:var(--sp-6)}.ui-spacer{flex:1;min-width:0}.ui-field{min-width:0}.ui-field>label{display:block}.ui-text--xs{font-size:var(--fs-xs)}.ui-text--sm{font-size:var(--fs-sm)}.ui-text--md{font-size:var(--fs-md)}.ui-text--lg{font-size:var(--fs-lg)}.ui-text--xl{font-size:var(--fs-xl)}.ui-tone--dim{color:var(--text-dim)}.ui-tone--faint{color:var(--text-faint)}.ui-tone--error{color:var(--error)}.ui-tone--ok{color:var(--ok-text)}.ui-tone--accent{color:var(--accent)}.ui-italic{font-style:italic}.ui-mono{font-family:var(--font-mono)}.ui-block{display:block}.ui-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-prewrap{white-space:pre-wrap}.ui-toast{max-width:min(520px,100%);box-sizing:border-box;padding:9px 13px;border-radius:var(--r-md);font-size:var(--fs-md);line-height:1.45;text-align:center;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);box-shadow:var(--shadow-2);animation:ui-toast-in .14s ease-out}.ui-toast--warn{border-color:var(--warn)}@keyframes ui-toast-in{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion: reduce){.ui-toast{animation:none}}.ui-top-stack{position:absolute;top:calc(env(safe-area-inset-top,0px) + var(--sp-3));left:var(--sp-3);right:var(--sp-3);z-index:21;display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);pointer-events:none}.ui-top-stack .viewport-prompt,.ui-top-stack .ui-toast{pointer-events:auto}.ui-listrow{display:flex;align-items:center;gap:var(--sp-2);width:100%;text-align:left;padding:9px 10px;font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--r-md);cursor:pointer;transition:background .12s,border-color .12s}.ui-listrow:hover:not(:disabled){background:var(--surface-3)}.ui-listrow:disabled{cursor:default}.rail{display:flex;flex-direction:column;min-height:0;background:var(--surface);border-right:1px solid var(--border);flex-shrink:0}.rail__badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:15px;padding:0 4px;border-radius:8px;font-size:var(--fs-xs);font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent-fg);background:var(--text-faint)}.rail__badge--error{background:var(--error);color:#fff}.rail__badge--warn{background:var(--warn);color:#1b1d20}.rail__body{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.rail__toolbar{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);flex-shrink:0}.rail__scroll{flex:1;min-height:0;overflow-y:auto}.rail__body>:only-child{flex:1;min-height:0}.rail__resize{width:5px;margin-left:-3px;margin-right:-2px;z-index:5;cursor:col-resize;background:transparent;border:none;padding:0;flex-shrink:0;transition:background .12s}.rail__resize:hover,.rail__resize:focus-visible,.rail__resize.is-dragging{background:var(--accent);outline:none}.rail__icons{--ctl-h: var(--toolbar-h);display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);width:calc(var(--toolbar-h) + 2 * var(--sp-2));padding:var(--sp-2) 0;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border)}.rail__sections{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1)}.rail__sections>.ui-btn{position:relative}.rail__icons .rail__badge{position:absolute;top:-3px;right:-5px}.rail__pages{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding-top:var(--sp-1);border-top:1px solid var(--border)}.rail__actions{margin-top:auto;display:flex;flex-direction:column;align-items:center;gap:var(--sp-1)}.tree-section{border-bottom:1px solid var(--border)}.tree-head{display:flex;align-items:center;gap:6px;width:100%;padding:6px var(--sp-2);font-size:var(--fs-sm);font-family:inherit;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--text-dim);background:transparent;border:none;cursor:pointer;transition:color .12s,background .12s}.tree-head:hover{color:var(--text);background:var(--surface-2)}.tree-head__count{font-weight:500;font-variant-numeric:tabular-nums}.tree-row{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:4px var(--sp-2);font-size:var(--fs-md);font-family:inherit;color:var(--text);background:transparent;border:none;border-left:2px solid transparent;border-radius:0;text-align:left;cursor:pointer;transition:background .12s,color .12s}.tree-row:hover{background:var(--surface-2)}.tree-row[aria-selected=true]{background:var(--accent-soft);color:var(--accent-text);border-left-color:var(--accent);font-weight:600}.tree-row__icon{flex:0 0 auto;color:var(--text-faint);display:flex}.tree-row[aria-selected=true] .tree-row__icon{color:var(--accent-text)}.tree-row__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-row__meta{flex:0 0 auto;font-size:var(--fs-sm);font-weight:400;color:var(--text-dim);font-variant-numeric:tabular-nums}.tree-row[aria-selected=true] .tree-row__meta{color:var(--accent-text);opacity:.75}.tree-row--group{color:var(--text-dim);font-weight:600}.tree-row--group:hover{color:var(--text)}.tree-twisty{flex:0 0 auto;display:flex;color:var(--text-faint);transition:transform .12s}.tree-twisty.is-open{transform:rotate(90deg)}.tree-row.is-hidden .tree-row__label,.tree-row.is-hidden .tree-row__icon,.tree-row.is-hidden .tree-row__meta{opacity:.4}.tree-row__eye{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;color:var(--text-faint);background:none;border:none;border-radius:3px;cursor:pointer;opacity:0;transition:opacity .12s,color .12s,background .12s}.tree-row:hover .tree-row__eye,.tree-row:focus-within .tree-row__eye,.tree-row.is-hidden .tree-row__eye{opacity:1}.tree-row__eye:hover{color:var(--text);background:var(--surface-3)}.tree-row__eye:focus-visible{opacity:1;outline:2px solid var(--accent);outline-offset:-2px}.tree-dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%}.tree-dot--error{background:var(--error)}.tree-dot--warning{border:2px solid var(--warn)}.tree-empty{padding:var(--sp-4);font-size:var(--fs-md);color:var(--text-dim);line-height:1.5}.issue-summary{display:flex;gap:var(--sp-1);padding:var(--sp-2) var(--sp-2) var(--sp-1)}.issue-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;font:inherit;font-size:var(--fs-xs);font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;cursor:pointer}.issue-pill:disabled{opacity:.45;cursor:default}.issue-pill:not(:disabled):hover{color:var(--text);border-color:var(--border-strong)}.issue-pill[aria-pressed=true]{color:var(--text);border-color:currentColor}.issue-pill--error[aria-pressed=true]{color:var(--error);background:color-mix(in srgb,var(--error) 10%,transparent)}.issue-pill--warning[aria-pressed=true]{color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,transparent)}.issue-groups{display:grid;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2) var(--sp-3)}.issue-group{border:1px solid var(--border);border-radius:8px;background:var(--surface);overflow:hidden}.issue-group{transition:border-color .12s}.issue-group:has(.issue-group__head:not(:disabled)):hover{border-color:var(--accent)}.issue-group__head{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:6px var(--sp-2);font:inherit;font-size:var(--fs-sm);text-align:left;color:var(--text);background:var(--surface-2);border:none;border-bottom:1px solid var(--border);cursor:pointer}.issue-group__head:disabled{cursor:default}.issue-group__head:not(:disabled):hover{background:color-mix(in srgb,var(--accent) 8%,var(--surface-2))}.issue-group__head>svg{color:var(--text-faint);flex-shrink:0;margin-left:auto}.issue-group__glyph{display:flex;color:var(--text-dim);flex-shrink:0}.issue-group__name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.issue-group__id{flex:1;min-width:0;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.issue-line{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-2);padding:7px var(--sp-2);font-size:var(--fs-sm);line-height:1.4}.issue-line+.issue-line{border-top:1px solid var(--border)}.issue-line.is-selectable{cursor:default;user-select:none}.issue-line.is-selectable:hover{background:var(--surface-2)}.issue-line.is-selected,.issue-line.is-selected:hover{background:var(--accent-soft, color-mix(in srgb, var(--accent) 12%, transparent))}.issue-line__title{font-weight:600;color:var(--text)}.issue-line__msg{color:var(--text-dim);overflow-wrap:anywhere}.issue-icon{display:flex;padding-top:1px}.issue-icon--error{color:var(--error)}.issue-icon--warning{color:var(--warn)}.issue-row{display:block;width:100%;padding:0;font:inherit;text-align:left;background:transparent;border:none;border-bottom:1px solid var(--border);cursor:pointer}.issue-row:hover{background:var(--surface-2)}.issue-row:disabled{cursor:default}.issue-row:disabled:hover{background:transparent}.issue-callouts{display:grid;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3) var(--sp-2)}.issue-callout{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-2);padding:var(--sp-2);font-size:var(--fs-sm);line-height:1.4;border:1px solid;border-radius:8px}.issue-callout--error{background:color-mix(in srgb,var(--error) 8%,var(--surface));border-color:color-mix(in srgb,var(--error) 35%,transparent)}.issue-callout--warning{background:color-mix(in srgb,var(--warn) 10%,var(--surface));border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.inspector{display:flex;flex-direction:column;min-height:0;max-height:55%;flex-shrink:0;background:var(--surface);border-top:1px solid var(--border)}.rail__inspector{flex:1;min-height:0;display:flex;flex-direction:column}.rail__inspector>.inspector{flex:1;max-height:none;border-top:none}.inspector__head{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);flex-shrink:0}.inspector__title{font-size:var(--fs-lg);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspector__sub{font-size:var(--fs-sm);color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}.inspector__body{flex:1;min-height:0;overflow-y:auto;padding-bottom:var(--sp-2)}.inspector__foot{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-top:1px solid var(--border);flex-shrink:0}.inspector__foot .ui-btn{flex:1 1 84px}.facts{display:grid;grid-template-columns:auto 1fr;gap:3px var(--sp-3);padding:0 var(--sp-3) var(--sp-2);font-size:var(--fs-md)}.facts dt{color:var(--text-dim)}.facts dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewport-hud{--ctl-h: var(--toolbar-h);position:absolute;bottom:var(--hud-bottom);left:50%;transform:translate(-50%);z-index:10;min-height:var(--hud-h);box-sizing:border-box;display:flex;align-items:center;gap:var(--sp-1);max-width:calc(100% - 2 * var(--sp-3));width:max-content;flex-wrap:wrap;justify-content:center;padding:var(--sp-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-2)}@supports (backdrop-filter: blur(8px)){.viewport-hud{background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(8px)}}.viewport-prompt{position:absolute;top:var(--sp-3);left:50%;transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:var(--sp-3);max-width:calc(100% - var(--sp-3) * 2);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);color:var(--text);background:var(--surface);border:1px solid var(--accent);border-radius:var(--r-md);box-shadow:var(--shadow-2)}.ui-top-stack .viewport-prompt{position:static;transform:none;max-width:100%;box-sizing:border-box}.plan-topright{position:absolute;right:var(--sp-3);top:var(--sp-3);z-index:20;pointer-events:none;display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-2)}.plan-wall-face{pointer-events:auto;background:var(--surface);box-shadow:var(--shadow-2)}.plan-zoom{position:absolute;right:var(--sp-3);bottom:var(--sp-3);z-index:10;display:flex;flex-direction:column;gap:2px;padding:2px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-2)}.plan-zoom .ui-btn.ui-btn--ghost{color:var(--text)}.plan-scale{position:absolute;left:var(--sp-3);bottom:var(--sp-3);z-index:10;pointer-events:none}.plan-measure{pointer-events:none;display:grid;grid-template-columns:auto auto;align-items:baseline;gap:0 var(--sp-2);padding:var(--sp-1) var(--sp-2);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-2)}.plan-measure__label{font-size:var(--fs-sm);color:var(--text-dim)}.plan-measure__value{min-width:6ch;text-align:right;font-family:var(--font-mono);font-size:var(--fs-md);font-variant-numeric:tabular-nums;color:var(--text)}.plan-measure__live{color:var(--text-dim)}.plan-measure__caret{display:inline-block;width:1px;height:1em;margin-left:1px;vertical-align:text-bottom;background:var(--accent);animation:plan-measure-blink 1.1s steps(1,end) infinite}@keyframes plan-measure-blink{50%{opacity:0}}.plan-measure__note{grid-column:1 / -1;max-width:24ch;font-size:var(--fs-sm);color:var(--error)}.plan-measure--bad{border-color:var(--error)}@media (prefers-reduced-motion: reduce){.plan-measure__caret{animation:none}}.viewport-hud__sep{width:1px;align-self:stretch;margin:2px var(--sp-1);background:var(--border)}.generate-kind{position:relative;display:flex}.generate-kind__caret{width:16px;min-width:16px;padding:0}.generate-kind__menu{width:180px}.bg-picker{position:relative;display:flex}.bg-picker__swatch{width:18px;height:18px;border-radius:3px;box-shadow:inset 0 0 0 1px var(--border-strong)}.bg-menu{position:absolute;bottom:calc(100% + var(--sp-2));right:0;z-index:20;width:260px;padding:var(--sp-1);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-2)}.bg-menu__title{padding:var(--sp-1) var(--sp-2) 5px;font-size:var(--fs-sm);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint)}.bg-menu__item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:5px var(--sp-2);text-align:left;background:none;border:none;border-radius:var(--r-sm);color:var(--text)}.bg-menu__item:hover{background:var(--surface-2)}.bg-menu__item[aria-checked=true]{background:var(--accent-soft);color:var(--accent-text)}.bg-menu__swatch{flex:0 0 auto;width:34px;height:24px;border-radius:var(--r-sm);box-shadow:inset 0 0 0 1px var(--border-strong)}.shutter-dot{width:18px;height:18px;border-radius:50%;border:1.7px solid currentColor;box-sizing:border-box;display:grid;place-items:center}.shutter-dot:after{content:"";width:10px;height:10px;border-radius:50%;background:currentColor}.bg-menu__rule{height:1px;margin:var(--sp-1) var(--sp-2);background:var(--border)}.bg-menu__check{flex:0 0 auto;width:34px;height:18px;border-radius:9px;background:var(--surface-3);box-shadow:inset 0 0 0 1px var(--border-strong);position:relative;transition:background .12s}.bg-menu__check:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px #00000040;transition:transform .12s}.bg-menu__check.is-on{background:var(--accent);box-shadow:none}.bg-menu__check.is-on:after{transform:translate(16px)}.bg-menu__label{font-size:var(--fs-md);font-weight:600}.drag-readout{position:absolute;top:var(--sp-3);left:50%;transform:translate(-50%);z-index:11;pointer-events:none;padding:5px 10px;font-size:var(--fs-md);font-variant-numeric:tabular-nums;color:var(--text);background:var(--surface);border:1px solid var(--accent);border-radius:var(--r-sm);box-shadow:var(--shadow-2);white-space:nowrap}.drag-readout--at{position:fixed;transform:translate(18px,-130%);z-index:60}.marquee-box{position:fixed;z-index:11;pointer-events:none;box-sizing:border-box}.marquee-box--window{border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.marquee-box--crossing{border:1px dashed var(--ok);background:color-mix(in srgb,var(--ok) 10%,transparent)}.sheet-scrim{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);background:#00000059}.sheet{width:min(460px,100%);max-height:80vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-2)}.sheet__head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border)}.sheet__title{flex:1;margin:0;font-size:var(--fs-lg);font-weight:600}.sheet__body{padding:var(--sp-3) var(--sp-4) var(--sp-4);overflow:auto}.sheet__foot{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border)}.keys{display:grid;grid-template-columns:1fr auto;gap:var(--sp-1) var(--sp-4);margin:var(--sp-2) 0 0;font-size:var(--fs-md)}.keys dt{color:var(--text-dim);align-self:center}.keys dd{margin:0;justify-self:end}kbd{display:inline-block;padding:2px 6px;font-family:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-bottom-width:2px;border-radius:var(--r-sm);white-space:nowrap}.ctx-menu{position:fixed;z-index:95;min-width:210px;max-width:320px;padding:var(--sp-1);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-2);outline:none}@supports (backdrop-filter: blur(8px)){.ctx-menu{background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(8px)}}.ctx-menu__rule{height:1px;margin:var(--sp-1) 0;background:var(--border)}.ctx-menu__item{display:flex;align-items:center;gap:var(--sp-4);width:100%;padding:5px var(--sp-2);font-family:inherit;font-size:var(--fs-md);line-height:1.4;text-align:left;color:var(--text);background:transparent;border:none;border-radius:var(--r-sm);cursor:pointer}.ctx-menu__item[data-active]{background:var(--accent);color:var(--accent-fg, #fff)}.ctx-menu__item[aria-disabled=true]{color:var(--text-faint);cursor:default}.ctx-menu__item--danger{color:var(--error)}.ctx-menu__item--danger[data-active]{background:var(--error);color:#fff}.ctx-menu__item--danger[aria-disabled=true]{color:var(--text-faint)}.ctx-menu__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctx-menu__keys{flex:0 0 auto;font-size:var(--fs-sm);color:var(--text-faint);font-variant-numeric:tabular-nums}.ctx-menu__item[data-active] .ctx-menu__keys{color:inherit;opacity:.75}.libcat{display:grid;grid-template-columns:minmax(268px,340px) minmax(148px,190px) minmax(0,1fr);height:100%;min-height:0;background:var(--bg)}.libcat__rail{display:flex;flex-direction:column;gap:1px;padding:var(--sp-3) var(--sp-2);overflow-y:auto;border-right:1px solid var(--border)}.libcat__search{margin-bottom:var(--sp-3)}.libcat__rule{height:1px;margin:var(--sp-2) var(--sp-2);background:var(--border)}.libcat__cat{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:5px var(--sp-2);font-family:inherit;font-size:var(--fs-md);text-align:left;color:var(--text-dim);background:transparent;border:none;border-radius:var(--r-sm);cursor:pointer}.libcat__cat:hover:not(:disabled){color:var(--text);background:var(--surface-2)}.libcat__cat:disabled{color:var(--text-faint);cursor:default}.libcat__cat[aria-pressed=true]{color:var(--accent-text);background:var(--accent-soft);font-weight:600}.libcat__cat-label{flex:1;min-width:0}.libcat__cat-count{flex:0 0 auto;font-size:var(--fs-sm);color:var(--text-faint)}.libcat__cat[aria-pressed=true] .libcat__cat-count{color:inherit;opacity:.7}.libcat__list{min-width:0;overflow-y:auto;overflow-x:hidden;container-type:inline-size}.libcat__detail{display:flex;flex-direction:column;min-height:0;overflow:hidden;border-right:1px solid var(--border);background:var(--surface)}.libcat__detail-scroll{flex:1;min-height:0;overflow-y:auto;padding:var(--sp-4) var(--sp-4) var(--sp-6)}.libcat__title{margin:0 0 var(--sp-1);font-size:var(--fs-lg);font-weight:700}.libcat__blurb{margin:0 0 var(--sp-3);font-size:var(--fs-md);line-height:1.5;color:var(--text-dim)}.libcat__caveat{margin:0 0 var(--sp-2);padding-left:var(--sp-2);font-size:var(--fs-sm);line-height:1.45;color:var(--text-faint);border-left:2px solid var(--border-strong)}.libcat__caveat--warn{border-left-color:var(--warn);color:var(--text-dim)}.libcat__section{margin:var(--sp-5) 0 var(--sp-3)}.libcat__actions{display:grid;gap:var(--sp-2);margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--border);justify-items:start}.libcat__empty{padding:var(--sp-5) var(--sp-4);margin:0;font-size:var(--fs-md);line-height:1.5;color:var(--text-faint)}.libcat__orphans{margin:var(--sp-4) var(--sp-4) var(--sp-6);padding:var(--sp-3);border:1px solid var(--warn);border-radius:var(--r-md)}.libcat__orphan{display:flex;align-items:flex-start;gap:var(--sp-3);margin-top:var(--sp-2);font-size:var(--fs-md);line-height:1.5;color:var(--text-dim)}.ui-sort{display:inline-flex;align-items:center;gap:var(--sp-1);padding:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;background:none;border:none;cursor:pointer}.ui-sort:hover{color:var(--text)}.ui-sort__caret{display:inline-flex;align-items:center;width:12px}.libtable{width:100%;table-layout:fixed;border-collapse:collapse;font-size:var(--fs-md)}.libtable thead th:nth-child(1){width:46%}.libtable thead th:nth-child(2){width:16%}.libtable thead th:nth-child(3){width:21%}.libtable thead th:nth-child(4){width:17%}.libtable thead th{position:sticky;top:0;z-index:1;padding:var(--sp-2) var(--sp-3);text-align:left;font-size:var(--fs-sm);font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--text-faint);background:var(--bg);border-bottom:1px solid var(--border);white-space:nowrap}.libtable tbody tr{cursor:pointer;border-bottom:1px solid var(--border)}.libtable tbody tr:hover{background:var(--surface-2)}.libtable tbody tr[aria-selected=true]{background:var(--accent-soft);color:var(--accent-text)}.libtable tbody tr:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.libtable th[scope=row],.libtable td{padding:var(--sp-2) var(--sp-3);text-align:left;font-weight:400;vertical-align:top;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.libtable th[scope=row]{color:var(--text)}.libtable tbody tr[aria-selected=true] td{color:inherit;opacity:.85}.libtable__line{display:flex;align-items:baseline;gap:var(--sp-2);min-width:0}.libtable__name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.libtable__tag{flex:0 0 auto}.libtable__size{white-space:nowrap}.projtable__frame{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);overflow-x:auto}.projtable{width:100%;border-collapse:collapse;font-size:var(--fs-md)}.projtable thead th:nth-child(1){width:60%}.projtable thead th:nth-child(n+2){width:1%}.projtable thead th:nth-child(n+2),.projtable tbody tr>:nth-child(n+2){white-space:nowrap}.projtable thead th{padding:0;text-align:left;font-size:var(--fs-sm);font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:var(--text-dim);background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap}.projtable thead th>.ui-sort,.projtable thead th>span{padding:9px 12px}.projtable thead th>.ui-sort{width:100%}.projtable thead th[aria-sort]:not([aria-sort=none]){color:var(--text)}.projtable td{padding:9px 12px;vertical-align:middle;color:var(--text-dim);border-bottom:1px solid var(--border)}.projtable tbody tr:last-child td{border-bottom:none}.projtable tbody tr.projtable__row{cursor:pointer}.projtable tbody tr.projtable__row:hover{background:var(--surface-2)}.projtable__right{text-align:right}.projtable__nowrap{white-space:nowrap}.projtable__name{padding:0;font:inherit;font-weight:600;color:var(--text);text-align:left;background:none;border:none;cursor:pointer}.projtable__empty{padding:var(--sp-6) var(--sp-3);text-align:center;color:var(--text-dim)}table :is(td,th).ui-num{text-align:right}th>.ui-sort--end{width:100%;justify-content:flex-end}@media not ((max-width: 639px) or ((max-height: 500px) and (pointer: coarse))){:is(.libtable,.projtable,.doctable) tbody tr:not(:has(>td[colspan])){height:var(--row-h)}:is(.libtable,.projtable,.doctable) tbody tr:not(:has(>td[colspan]))>:is(th,td){padding-top:0;padding-bottom:0;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.projtable tbody tr:not(:has(>td[colspan]))>:nth-child(1){max-width:0}.doctable tbody tr:not(:has(>td[colspan]))>td:first-child{width:100%;max-width:0}}.projtable__name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-sheet{width:100%;border-collapse:collapse;font-size:var(--fs-md)}.ui-sheet th{position:sticky;top:0;z-index:1;background:var(--bg);height:var(--row-h-dense);padding:0 var(--sp-2);border-bottom:1px solid var(--border);font-size:var(--fs-sm);font-weight:500;color:var(--text-dim);text-align:left;white-space:nowrap}.ui-sheet td{height:var(--row-h-dense);padding:0 var(--sp-2);white-space:nowrap;vertical-align:middle;border-bottom:1px solid var(--surface-2)}.ui-sheet :is(th,td).ui-num{text-align:right;font-variant-numeric:tabular-nums}.ui-input.ui-cell{min-height:0;height:var(--row-h-dense);padding:0 var(--sp-2);border:1px solid var(--border);border-radius:0;background:var(--bg);text-align:right;font-variant-numeric:tabular-nums;transition:none}.ui-sheet td>.ui-input.ui-cell{width:100%;min-width:64px;height:calc(var(--row-h-dense) - 1px);border-color:transparent;background:transparent}.ui-sheet td:has(>.ui-cell){padding:0}.ui-input.ui-cell:hover:not(:disabled),.ui-sheet td>.ui-input.ui-cell:hover:not(:disabled){border-color:var(--border-strong)}.ui-input.ui-cell:focus,.ui-sheet td>.ui-input.ui-cell:focus{outline:none;border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--bg)}.ui-input.ui-cell--edited,.ui-sheet td>.ui-input.ui-cell--edited{background:var(--accent-soft)}.ui-input.ui-cell:disabled{color:var(--text-faint);background:transparent}.ui-input.ui-cell{-moz-appearance:textfield;appearance:textfield}.ui-input.ui-cell::-webkit-inner-spin-button,.ui-input.ui-cell::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.jobtable tbody tr,.jobtable tfoot tr{height:var(--row-h-dense)}.jobtable :is(tbody,tfoot) td{vertical-align:middle}.jobtable__dim{color:var(--text-dim)}.jobtable tbody tr:hover{background:var(--surface-2)}.jobtable tbody tr.jobtable__edited{background:color-mix(in srgb,var(--accent-soft) 50%,transparent)}.jobtable tbody tr.jobtable__open{background:var(--accent-soft)}.jobtable td .ui-input{min-height:0;height:calc(var(--row-h-dense) - 4px);padding-top:0;padding-bottom:0;vertical-align:middle}.teamtable{table-layout:fixed}.teamtable tbody tr:not(:has(>td[colspan])){height:var(--row-h)}.teamtable tbody tr:not(:has(>td[colspan]))>td{padding-top:0;padding-bottom:0;vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.itemview{flex:0 0 auto;height:340px;display:flex;flex-direction:column;border-bottom:1px solid var(--border)}.itemview__stage{position:relative;flex:1;min-height:0;background:linear-gradient(180deg,var(--surface-3),var(--surface-2))}.itemview__bar{flex-shrink:0;display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);border-top:1px solid var(--border);background:var(--bg)}.itemview__bar .ui-btn{min-height:var(--ctl-h);white-space:nowrap}.itemview__fallback{display:flex;align-items:center;justify-content:center;height:100%;padding:var(--sp-4);font-size:var(--fs-md);line-height:1.5;text-align:center;color:var(--text-faint)}.libpin{padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2)}.libpin.is-on{border-color:var(--accent)}.libpin__toggle{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);font-size:var(--fs-sm);font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--text-faint);cursor:pointer}.libpin.is-on .libpin__toggle{color:var(--accent-text)}@container (max-width: 620px){.libtable thead th:nth-child(2),.libtable tbody tr>:nth-child(2){display:none}.libtable thead th:nth-child(1){width:51%}.libtable thead th:nth-child(3){width:27%}.libtable thead th:nth-child(4){width:22%}}@container (max-width: 430px){.libtable thead th:nth-child(4),.libtable tbody tr>:nth-child(4){display:none}.libtable thead th:nth-child(1){width:62%}.libtable thead th:nth-child(3){width:38%}}.projpage{container-type:inline-size}@container (max-width: 980px){.projtable thead th:nth-child(5),.projtable tbody tr>:nth-child(5){display:none}}@container (max-width: 860px){.projtable thead th:nth-child(3),.projtable tbody tr>:nth-child(3){display:none}}@keyframes chat-working{0%,to{opacity:1}50%{opacity:.25}}.chat-working{animation:chat-working 1.4s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.chat-working{animation:none}}.chat-pill .chat-pill-remove{opacity:0;transition:opacity .12s}.chat-pill:hover .chat-pill-remove,.chat-pill:focus-within .chat-pill-remove{opacity:1}.chat-panel{position:relative;width:100%;height:100%;min-height:0;display:flex;flex-direction:column;border-left:1px solid var(--border);background:var(--surface)}.chat-drop{position:absolute;inset:6px;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:2px dashed var(--accent);border-radius:8px;background:color-mix(in srgb,var(--surface) 82%,transparent);color:var(--accent);font-size:var(--fs-md);font-weight:600;pointer-events:none}.chat-head{padding:8px 10px;border-bottom:1px solid var(--border);font-weight:600}.chat-scroll{flex:1;min-height:0;overflow-y:auto;padding:10px;font-size:var(--fs-md);line-height:1.5}.chat-list{flex:1;min-height:0;overflow-y:auto;padding:0 10px 12px;font-size:var(--fs-md)}.chat-list__label{font-size:var(--fs-sm);color:var(--text-dim);padding:14px 4px 7px}.chat-list__note{padding:10px 4px}.chat-pill{display:flex;align-items:center;gap:var(--sp-1);margin-bottom:var(--sp-2);padding:2px 6px 2px 13px;border-radius:999px;background:var(--bg);box-shadow:var(--shadow-1);border:1px solid var(--border)}.chat-pill.is-on{border-color:var(--accent)}.chat-pill__open{padding:9px 4px 9px 6px}.chat-pill__meta{flex-shrink:0}.chat-pill-remove{width:24px;height:24px;border-radius:50%}.chat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--text-faint)}.chat-dot.is-on{background:var(--accent)}.chat-badge-host{position:relative}.chat-badge{position:absolute;top:-2px;right:-2px;width:8px;height:8px;border-radius:50%;background:var(--accent);border:1.5px solid var(--surface)}.chat-turn{margin:14px 0}.chat-turn__text{margin:6px 0}.chat-feedback{margin-top:var(--sp-1);color:var(--text-dim)}.chat-feedback .ui-btn{opacity:.45;transition:opacity .12s}.chat-turn:hover .chat-feedback .ui-btn,.chat-feedback .ui-btn:focus-visible,.chat-feedback .ui-btn[aria-pressed=true]{opacity:1}.chat-room{margin:var(--sp-2) 0}.chat-user{display:flex;flex-direction:column;align-items:flex-end;gap:6px;margin:14px 0}.chat-user__imgs{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:88%}.chat-bubble{margin:10px 0;padding:8px 12px;border-radius:14px}.chat-user .chat-bubble{margin:0}.chat-bubble--user{max-width:88%;background:var(--user-bubble);border-bottom-right-radius:4px}.chat-bubble--error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error);white-space:pre-wrap}.chat-thumb{cursor:zoom-in;padding:0;border-radius:10px;overflow:hidden}.chat-thumb img{width:64px;height:64px;object-fit:cover;display:block;border-radius:10px;border:1px solid var(--border)}.chat-thumb--missing{width:64px;height:64px;display:inline-flex;align-items:center;justify-content:center;cursor:default;background:var(--bg);border:1px solid var(--border);color:var(--text-faint)}.chat-step{display:flex;align-items:center;gap:7px;min-width:0;margin:3px 0;font-size:var(--fs-sm);color:var(--text-dim)}.chat-step__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok)}.chat-step.is-error .chat-step__icon{background:color-mix(in srgb,var(--error) 14%,transparent);color:var(--error)}.chat-step__label{flex-shrink:0;color:var(--text);font-weight:500}.chat-step__summary{min-width:0}.chat-step+.chat-turn__text{margin-top:10px}.chat-status{display:flex;align-items:center;gap:8px;margin:10px 0;font-size:var(--fs-sm);color:var(--text-dim)}.chat-status__dots{display:inline-flex;gap:3px}.chat-status__dots i{width:5px;height:5px;border-radius:50%;background:var(--accent);animation:chat-dot 1.2s ease-in-out infinite}.chat-status__dots i:nth-child(2){animation-delay:.15s}.chat-status__dots i:nth-child(3){animation-delay:.3s}@keyframes chat-dot{0%,80%,to{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.chat-status__dots i{animation:none;opacity:.6}}.chat-composer-wrap{padding:10px}.chat-composer{border:1px solid var(--border-strong);border-radius:12px;background:var(--surface-2);padding:var(--sp-2);transition:border-color .12s}.chat-composer.is-focused{border-color:var(--accent)}.chat-composer.is-dragging{border-style:dashed;border-color:var(--accent)}.chat-composer__input{width:100%;box-sizing:border-box;font-size:var(--fs-md);line-height:1.45;font-family:inherit;color:var(--text);padding:2px 2px 6px;border:none;outline:none;background:transparent;resize:none;max-height:200px}.chat-attachments{margin-bottom:7px}.chat-attachment{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:3px 5px 3px 4px;border-radius:7px;background:var(--surface);border:1px solid var(--border);font-size:var(--fs-sm);color:var(--text-dim)}.chat-attachment img{width:26px;height:26px;object-fit:cover;border-radius:var(--r-sm);display:block}.chat-attachment__view{padding:0;cursor:zoom-in;border-radius:var(--r-sm)}.chat-attachment__name{max-width:130px}.chat-attachment__x{width:18px;height:18px;border-radius:5px}.chat-objects{padding:2px 2px 0}.chat-bubble__objects{margin-bottom:4px}.chat-bubble__objects:last-child{margin-bottom:0}.chat-object{display:inline-flex;align-items:center;gap:2px;max-width:100%;padding:1px 3px 1px 0;border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);font-size:var(--fs-xs);color:var(--accent)}.chat-object__body{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:180px;padding:1px 4px 1px 7px;font:inherit;color:inherit;background:none;border:none}button.chat-object__body{cursor:pointer}button.chat-object__body:hover{text-decoration:underline}.chat-attach{width:30px;height:30px;border-radius:8px}.chat-send{display:grid;place-items:center;width:30px;height:30px;flex-shrink:0;border:none;border-radius:50%;background:var(--accent);color:var(--accent-fg);cursor:pointer;transition:background .12s}.chat-send:disabled{background:var(--text-faint);cursor:default}.md{display:flow-root}.md p{margin:.5em 0}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{margin:.9em 0 .35em;font-weight:600;line-height:1.3}.md h1{font-size:1.15em}.md h2{font-size:1.08em}.md h3,.md h4,.md h5,.md h6{font-size:1em}.md ul,.md ol{margin:.45em 0;padding-left:1.35em}.md li{margin:.18em 0}.md li>p{margin:0}.md li>p+p{margin-top:.35em}.md code{font-family:var(--font-mono);font-size:.92em;background:var(--code-bg);border:1px solid var(--border);border-radius:var(--r-sm);padding:.05em .3em;overflow-wrap:anywhere}.md pre{margin:.55em 0;padding:.55em .65em;background:var(--code-bg);border:1px solid var(--border);border-radius:var(--r-md);overflow-x:auto;font-size:.92em;line-height:1.45}.md pre code{background:none;border:0;padding:0;font-size:1em;white-space:pre;overflow-wrap:normal}.md blockquote{margin:.55em 0;padding:.1em 0 .1em .7em;border-left:2px solid var(--border-strong);color:var(--text-dim)}.md hr{margin:.9em 0;border:0;border-top:1px solid var(--border)}.md a{color:var(--accent-text);text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}.md__tablewrap{margin:.55em 0;overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-md)}.md table{border-collapse:collapse;width:100%;font-size:.95em}.md th,.md td{padding:.32em .5em;border-bottom:1px solid var(--border);vertical-align:top;text-align:left}.md th{background:var(--surface-2);font-weight:600;white-space:nowrap}.md tr:last-child td{border-bottom:0}.md li input[type=checkbox]{margin-right:.4em}.sheet--wide{width:min(1060px,100%);max-height:90vh}.render-panel{display:flex;flex-direction:column;height:100%;min-height:0}.render-panel__scroll{flex:1;min-height:0;overflow-y:auto;padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-1)}.render-panel__scroll .ui-label{margin-top:var(--sp-3)}.render-panel__scroll .ui-label:first-child{margin-top:0}.render-panel__scroll .ui-help{margin:0}.render-panel__model-note{margin:var(--sp-1) 0 0;font-size:var(--fs-sm);line-height:1.45;color:var(--text)}.render-panel__choice{align-self:stretch;display:flex}.render-panel__choice>button{flex:1;justify-content:center;font-variant-numeric:tabular-nums}.render-panel__check{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-md);cursor:pointer}.render-panel__show-prompt{align-self:flex-start;margin-top:var(--sp-3)}.render-panel__go{flex-shrink:0;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);border-top:1px solid var(--border)}.render-panel__go>.ui-btn{width:100%;justify-content:center}.render-panel__go .ui-help{margin:0}.render-panel__gallery{flex-shrink:0;display:flex;flex-direction:column;max-height:45%;border-bottom:1px solid var(--border)}.render-panel__section{margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--border);font-size:var(--fs-sm);font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.render-panel__tiles{overflow-y:auto;min-height:0;padding:var(--sp-2) var(--sp-3) var(--sp-3);display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--sp-2)}.render-panel__none{grid-column:1 / -1;margin:0}.render-tile{display:flex;flex-direction:column;gap:2px;min-width:0}.render-tile__open{display:flex;align-items:center;justify-content:center;aspect-ratio:4 / 3;padding:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);cursor:zoom-in}.render-tile__open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.render-tile.is-selected .render-tile__open{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.render-tile.is-selected .render-tile__title{color:var(--accent-text);font-weight:600}.render-tile__image{width:100%;height:100%;object-fit:cover;display:block}.render-tile--failed .render-tile__open{border-color:color-mix(in srgb,var(--error) 45%,var(--border))}.render-tile__failed{padding:var(--sp-2);font-size:var(--fs-xs);line-height:1.35;color:var(--text-dim);text-align:left;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.render-tile__failed>svg{flex:0 0 auto;color:var(--error);vertical-align:-2px;margin-right:4px}.render-tile .render-card__waiting{border:none;padding:var(--sp-2);width:100%}.render-tile__foot{display:flex;align-items:center;gap:var(--sp-1);min-width:0}.render-tile__title{flex:1;min-width:0;font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.render-tile__action{opacity:0}.render-tile:hover .render-tile__action,.render-tile.is-selected .render-tile__action,.render-tile__action:focus-visible{opacity:1}.viewport-panes{position:absolute;inset:0;display:flex}.viewport-pane{position:relative;box-sizing:border-box;flex:1 1 0;min-width:0;display:flex;flex-direction:column}.viewport-panes.is-split .viewport-pane{flex:0 0 auto}.viewport-panes.is-split .viewport-pane+.viewport-pane{border-left:1px solid var(--border)}.viewport-pane__body{position:relative;flex:1;min-height:0}.viewport-pane__files{overflow:auto;background:var(--surface)}.viewport-pane__head .ui-btn--ghost:not(:disabled){color:var(--text)}.viewport-pane__head{--ctl-h: var(--toolbar-h);flex:none;display:flex;align-items:center;gap:var(--sp-1);padding:3px var(--sp-2);background:var(--surface);border-bottom:1px solid var(--border);min-width:0}.viewport-pane__tools{flex:1;min-width:0;display:flex;align-items:center;gap:var(--sp-1);padding-left:var(--sp-2)}.viewport-split-handle{position:absolute;top:0;bottom:0;width:9px;margin-left:-4px;z-index:6;cursor:col-resize;touch-action:none}.viewport-split-handle:hover,.viewport-split-handle:focus-visible{outline:none;background:linear-gradient(to right,transparent 3px,var(--accent) 3px,var(--accent) 6px,transparent 6px)}.image-pane{position:relative;flex:1;min-height:0;overflow:hidden;background:var(--surface-2);touch-action:none}.image-pane.is-dropping{outline:2px dashed var(--accent);outline-offset:-6px}.image-pane__drag{display:inline-flex;align-items:center;gap:var(--sp-1);min-width:0;max-width:220px;height:calc(var(--ctl-h) - 8px);padding:0 var(--sp-2);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);color:var(--text-dim);font-size:var(--fs-sm);cursor:grab;user-select:none}.image-pane__drag:hover{color:var(--text);border-color:var(--text-faint)}.image-pane__drag:active{cursor:grabbing}.image-pane__drag-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-pane__img{position:absolute;left:50%;top:calc(50% - 47px);max-width:none;user-select:none;box-shadow:var(--shadow-1)}.image-pane__media{position:absolute;top:var(--sp-3);left:var(--sp-3);width:calc(100% - 2 * var(--sp-3));height:calc(100% - var(--sp-3) - var(--hud-bottom) - var(--hud-h));object-fit:contain;background:#000;border:none}.image-pane__doc{background:var(--surface)}.image-pane__empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-5);text-align:center;color:var(--text-dim);font-size:var(--fs-sm)}.image-pane__empty p{margin:0;max-width:280px;line-height:1.5}.image-pane__hint{color:var(--text-faint);font-size:var(--fs-xs)}.viewport-stage{position:absolute;inset:0;display:grid;place-items:center}.viewport-stage__frame{width:100%;height:100%}.viewport-stage.is-framed{inset:calc(var(--hud-h) + var(--sp-4)) var(--sp-4) calc(var(--hud-bottom) + var(--hud-h) + var(--sp-2));container-type:size}.viewport-stage.is-framed .viewport-stage__frame{width:min(100cqw,100cqh * var(--frame-aspect));height:auto;aspect-ratio:var(--frame-aspect);outline:1px solid var(--border-strong);box-shadow:var(--shadow-2)}.render-panel__prompt{margin:var(--sp-2) 0 0;padding:var(--sp-2);max-height:220px;overflow:auto;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);font-size:var(--fs-sm);white-space:pre-wrap;color:var(--text-dim)}.render-panel__warn{display:flex;gap:var(--sp-2);align-items:flex-start;margin:var(--sp-2) 0 0;padding:var(--sp-2);border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border-strong);font-size:var(--fs-sm);line-height:1.45;color:var(--text-dim)}.render-panel__warn>svg{flex:0 0 auto;margin-top:2px;color:var(--warn)}.render-panel__gallery{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.render-card{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-2);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2)}.render-card__head{display:flex;align-items:center;gap:var(--sp-2)}.render-card__title{flex:1;font-weight:600;font-size:var(--fs-md)}.render-card__status--running,.render-card__status--queued{color:var(--accent-text)}.render-card__status--failed{color:var(--error)}.render-card__open{display:block;width:100%;padding:0;border:none;background:none;cursor:zoom-in;border-radius:var(--r-sm)}.render-card__open:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.render-card__image{width:100%;display:block;border-radius:var(--r-sm);border:1px solid var(--border)}.render-card__waiting{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3) var(--sp-2);font-size:var(--fs-sm);color:var(--text-dim);border:1px dashed var(--border-strong);border-radius:var(--r-sm)}.render-card__working-note{display:flex;justify-content:space-between;gap:var(--sp-2)}.render-card__bar{height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden}.render-card__bar>span{display:block;height:100%;background:var(--accent);transition:width .3s ease-out}.render-card__pulse{height:6px;border-radius:3px;background:repeating-linear-gradient(-45deg,var(--surface-3) 0 8px,var(--border-strong) 8px 16px);background-size:22.6px 100%;animation:render-pulse .9s linear infinite}@keyframes render-pulse{0%{background-position:0 0}to{background-position:22.6px 0}}@media (prefers-reduced-motion: reduce){.render-card__pulse{animation:none}.render-card__bar>span{transition:none}}.lightbox{position:fixed;inset:0;z-index:120;display:flex;flex-direction:column;background:var(--surface-2);color:var(--text)}.lightbox--contained{position:absolute;z-index:40;pointer-events:auto}.viewport-viewer-slot{position:absolute;inset:0;z-index:40;pointer-events:none}.viewport-viewer-slot:empty{display:none}.ui-viewer-bar{position:absolute;right:14px;bottom:16px;z-index:3;display:flex;align-items:center;gap:2px;padding:4px 6px;border-radius:9px;background:var(--surface);border:1px solid var(--border-strong);box-shadow:0 4px 18px #0000002e;font-size:var(--fs-sm);color:var(--text)}.ui-viewer-bar__sep{width:1px;height:16px;background:var(--border);margin:0 4px}.ui-viewer-bar__step{min-width:22px}.ui-viewer-bar__count{min-width:52px;text-align:center;color:var(--text-dim)}.ui-viewer-bar__zoom{width:52px;color:var(--text)}.ui-viewer-bar__zoom.is-fitted{color:var(--text-dim)}.lightbox__bar{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-2) var(--sp-3);background:var(--surface);border-bottom:1px solid var(--border)}.lightbox__title{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;font-size:var(--fs-md)}.lightbox__caption{font-size:var(--fs-sm);color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lightbox__stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;overscroll-behavior:contain;touch-action:none}.lightbox__image{max-width:100%;max-height:100%;transform-origin:center center;user-select:none}.ui-page{box-sizing:border-box;width:100%;max-width:1040px;margin:0 auto;padding:var(--sp-5) 22px 40px}.ui-page--wide{max-width:1200px}.ui-page--full{max-width:none;padding:var(--sp-3) 22px var(--sp-5)}.ui-page--measure{max-width:860px}.ui-pageframe{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.ui-pagehead{flex-shrink:0;padding:14px 22px;border-bottom:1px solid var(--border);background:var(--bg)}.ui-pagehead--tabs{padding-bottom:0}.ui-pagehead__row{display:flex;align-items:center;gap:var(--sp-3);min-height:var(--ctl-h)}.ui-pagehead__title{flex:1;min-width:0;margin:0;font-size:var(--fs-lg);font-weight:700;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-pagehead__actions{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.ui-pagehead__tabs{display:flex;gap:2px;margin-top:var(--sp-3)}.ui-pagebody{flex:1;min-height:0;overflow-y:auto}.ui-pagebody--bleed{overflow:visible;display:flex;flex-direction:column}.ui-page-empty{margin:0;font-size:var(--fs-md);line-height:1.5;color:var(--text-dim)}.ui-navrow{width:100%;display:flex;align-items:center;gap:9px;padding:7px 10px;font-family:inherit;font-size:var(--fs-md);text-align:left;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--text-dim);transition:background .12s,color .12s}.ui-navrow:not([aria-current=page]):not([aria-selected=true]):hover,.ui-navrow:not([aria-current=page]):not([aria-selected=true]):focus-visible{background:var(--surface-2);color:var(--text)}.ui-navrow:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.ui-navrow__circle{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;flex-shrink:0;border-radius:50%;border:1px solid currentColor;box-sizing:border-box}.ui-sidetabs{display:grid;grid-template-columns:180px minmax(0,1fr);gap:var(--sp-5);align-items:start}.ui-sidetabs__menu{position:sticky;top:var(--sp-3);display:grid;gap:2px}.ui-sidetabs__panel{min-width:0}.ui-logopicker{display:flex;gap:var(--sp-4);align-items:flex-start}.ui-logopicker__tile{position:relative;flex-shrink:0;height:96px;min-width:96px;max-width:320px;padding:10px;box-sizing:border-box;border:1px solid var(--border-strong);border-radius:12px;background:#fff;display:grid;place-items:center;overflow:hidden;cursor:pointer}.ui-logopicker__tile img{display:block;height:76px;width:auto;max-width:300px;object-fit:contain}.ui-logopicker__tile--empty{border-style:dashed;background:var(--surface-2)}.ui-logopicker__initial{font-size:44px;font-weight:700;color:var(--text-faint)}.ui-logopicker__overlay{position:absolute;inset:0;display:grid;place-items:center;background:#00000080;color:#fff;font-size:var(--fs-sm);font-weight:600;opacity:0;transition:opacity .12s ease-out}.ui-logopicker__tile:hover .ui-logopicker__overlay,.ui-logopicker__tile:focus-visible .ui-logopicker__overlay,.ui-logopicker__tile--over .ui-logopicker__overlay{opacity:1}.ui-logopicker__tile--over{border-color:var(--accent)}.ui-logopicker__side{min-width:0;display:grid;gap:var(--sp-2);align-content:start}.ui-logopicker__problem{margin:0;font-size:var(--fs-sm);color:var(--danger, #c33)}.ui-logobar{display:flex;align-items:center;height:var(--header-h);padding:0 var(--sp-3);flex-shrink:0;box-sizing:border-box;border-bottom:1px solid transparent}.ui-logo{padding:0;border:none;background:none;font-family:inherit;font-size:var(--fs-lg);font-weight:700;letter-spacing:-.2px;line-height:normal;color:var(--text);cursor:pointer;flex-shrink:0}.scene-tape__label{padding:1px var(--sp-1);background:var(--surface);border:1px solid var(--accent);border-radius:3px;color:var(--accent);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.scene-tape__end{width:7px;height:7px;border-radius:50%;background:var(--accent)}.scene-tape__end--ring{width:12px;height:12px;background:transparent;border:2px solid var(--accent)}.scene-tape__end--rest{width:9px;height:9px;background:transparent;border:1.5px solid #6b7280}.scene-dim{padding:0 3px;color:#374151;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap;text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 2px #fff;cursor:pointer;user-select:none}.scene-dim--selected,.scene-dim--live{color:var(--accent);font-weight:600}.plan-root{--plan-bg: #fbfbfa;--plan-grid: #e7e5e0;--plan-ink: #23262a;--plan-wall: #d9d6d0;--plan-dim: #8a8580;--plan-overhead: #9aa3ad}:root[data-theme=light] .plan-root{--plan-bg: #fbfbfa;--plan-grid: #e7e5e0;--plan-ink: #23262a;--plan-wall: #d9d6d0;--plan-dim: #8a8580;--plan-overhead: #9aa3ad}:root[data-theme=dark] .plan-root{--plan-bg: #17191c;--plan-grid: #23262a;--plan-ink: #d8dade;--plan-wall: #2c3035;--plan-dim: #7d848c;--plan-overhead: #6a737d}.history-section{display:flex;flex-direction:column;height:100%;min-height:0}.history-section__tabs{flex-shrink:0;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border)}.history-section__switch{display:flex}.history-section__switch>button{flex:1;justify-content:center}.history-section>:last-child{flex:1;min-height:0}.rev-panel{overflow-y:auto;padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}.rev-card{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.rev-card--working{background:var(--surface-2)}.rev-card.is-superseded{opacity:.72}.rev-card>.ui-btn--primary{align-self:stretch;justify-content:center}.rev-card__head{display:flex;align-items:center;gap:var(--sp-2)}.rev-card__title{flex:1;min-width:0;display:flex;flex-direction:column;font-size:var(--fs-md)}.rev-card__meta{font-size:var(--fs-sm);color:var(--text-dim)}.rev-card__reason{margin:0;font-size:var(--fs-md);line-height:1.45}.rev-card__actions{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.rev-letter{flex-shrink:0;width:28px;height:28px;display:grid;place-items:center;border-radius:var(--r-sm);font-weight:700;font-size:var(--fs-md);background:var(--surface-3);color:var(--text)}.rev-letter--working{background:transparent;border:1px dashed var(--border-strong);color:var(--text-dim)}.rev-letter--approved{background:color-mix(in srgb,var(--ok) 22%,var(--surface))}.rev-letter--released{background:var(--accent);color:var(--accent-fg)}.rev-status--approved{color:var(--ok)}.rev-status--released{color:var(--accent-text)}.rev-status.is-superseded{color:var(--text-faint)}.rev-form{display:flex;flex-direction:column;gap:var(--sp-1)}.rev-form__actions{display:flex;justify-content:flex-end;gap:var(--sp-1);margin-top:var(--sp-1)}.rev-error{color:var(--error)}.rev-changes{display:flex;flex-direction:column;gap:var(--sp-2)}.rev-changes__room{display:flex;flex-direction:column;gap:1px}.rev-changes__room-name{font-size:var(--fs-sm);font-weight:600;color:var(--text-dim);margin-bottom:2px}.rev-changes__row{display:grid;grid-template-columns:14px minmax(0,auto) 1fr;align-items:baseline;gap:var(--sp-1) var(--sp-2);padding:3px 4px;font-size:var(--fs-sm);text-align:left;background:none;border:none;border-radius:var(--r-sm);color:var(--text);font-family:inherit}.rev-changes__row.is-link{cursor:pointer}.rev-changes__row.is-link:hover{background:var(--surface-3)}.rev-changes__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rev-changes__details{color:var(--text-dim);min-width:0}.rev-mark{font-weight:700;text-align:center}.rev-mark--added{color:var(--ok)}.rev-mark--removed{color:var(--error)}.rev-mark--changed{color:var(--warn)}.release-notice{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);font-size:var(--fs-sm);line-height:1.45}.release-notice.is-changed{border-color:color-mix(in srgb,var(--warn) 55%,var(--border))}.release-notice>span:nth-child(2){flex:1;min-width:200px}.release-notice__tag{flex-shrink:0;padding:2px 8px;border-radius:20px;background:var(--accent);color:var(--accent-fg);font-weight:600;font-size:var(--fs-xs)}.tp-revision{padding:var(--sp-3) var(--sp-3) 0}.tp-revision .release-notice{margin-bottom:0}.rev-changes__moved{color:var(--text-dim)}.rev-mark--moved{color:var(--text-faint);font-weight:400}.project-title{display:flex;align-items:center;gap:6px;min-width:0;font-size:var(--fs-md)}.project-title__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 6px;margin:0 -6px;border:none;border-radius:var(--r-sm);background:none;color:var(--text);font:inherit;font-weight:600;cursor:pointer}.project-title__name:hover{background:var(--surface-2)}.project-title__input{width:240px}.project-title{position:relative}.project-title__menu{top:calc(100% + var(--sp-1));bottom:auto;left:-6px;right:auto;width:300px;z-index:70}.project-title__item-name{font-weight:400;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-title__item-when{flex:0 0 auto;font-size:var(--fs-sm);color:var(--text-dim)}.revision-chip{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:3px 9px;border:1px solid var(--border);border-radius:20px;background:var(--surface-2);color:var(--text-dim);font:inherit;font-size:var(--fs-sm);cursor:pointer}.revision-chip:hover{border-color:var(--border-strong);color:var(--text)}.revision-chip__letter{font-weight:700;color:var(--text)}.revision-chip.is-released .revision-chip__state{color:var(--accent-text)}.revision-chip.is-approved .revision-chip__state{color:var(--ok)}.revision-chip__changes{padding-left:6px;border-left:1px solid var(--border-strong);color:var(--warn);font-weight:600}.revision-chip.is-none{border-style:dashed}.objects-panel{display:flex;flex-direction:column;height:100%;min-height:0}.objects-panel>:last-child{flex:1;min-height:0}.rooms-section{flex-shrink:0;max-height:34%;display:flex;flex-direction:column;border-bottom:1px solid var(--border)}.rooms-section__head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-2) 2px var(--sp-3)}.rooms-section__title{font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint)}.rooms-section__list{overflow-y:auto;padding:0 var(--sp-2) var(--sp-2)}.rooms-row{display:flex;align-items:center;gap:2px;border-radius:var(--r-sm)}.rooms-row:hover{background:var(--surface-2)}.rooms-row.is-current{background:var(--accent-soft, color-mix(in srgb, var(--accent) 12%, transparent))}.rooms-row.is-editing{padding:2px 0}.rooms-row__open{flex:1;min-width:0;padding:5px 8px;border:none;background:none;color:var(--text);font:inherit;font-size:var(--fs-md);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.rooms-row.is-current .rooms-row__open{color:var(--accent-text);font-weight:600;cursor:default}.rooms-row__action{opacity:0}.rooms-row:hover .rooms-row__action,.rooms-row__action:focus-visible{opacity:1}.theme-toggle-row{width:100%;font-weight:500;cursor:pointer}.shop-editor{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3);max-width:880px}.shop-editor__head{display:flex;align-items:flex-end;gap:var(--sp-3);flex-wrap:wrap}.shop-editor__names{flex:1;display:grid;grid-template-columns:auto minmax(0,1fr) auto 90px;align-items:center;gap:var(--sp-2);min-width:280px}.shop-editor__names .ui-label{margin:0}.shop-editor__actions{display:flex;gap:var(--sp-1)}.shop-editor__issues{padding:var(--sp-2) var(--sp-3);border:1px solid color-mix(in srgb,var(--error) 50%,var(--border));border-radius:var(--r-md);background:color-mix(in srgb,var(--error) 7%,var(--surface));font-size:var(--fs-sm)}.shop-editor__issues ul{margin:var(--sp-1) 0 0;padding-left:18px;color:var(--text-dim)}.shop-editor__sections{align-self:flex-start;flex-wrap:wrap}.shop-editor__body,.sf-object{display:flex;flex-direction:column;gap:var(--sp-3)}.sf-grid{display:grid;grid-template-columns:minmax(140px,200px) minmax(0,1fr);align-items:center;gap:var(--sp-2) var(--sp-3)}.sf-label{font-size:var(--fs-md);color:var(--text-dim)}.sf-control{min-width:0}.sf-control>.ui-input,.sf-control>.ui-select{max-width:320px}.sf-number{display:inline-flex;align-items:center;gap:6px}.sf-number .ui-input{width:120px}.sf-unit{font-size:var(--fs-sm);color:var(--text-faint)}.sf-check{width:16px;height:16px}.sf-readonly{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text-faint)}.sf-error{margin-top:3px;font-size:var(--fs-sm);color:var(--error)}.sf-group{margin:0;padding:var(--sp-2) var(--sp-3) var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);min-width:0}.sf-group.has-error{border-color:color-mix(in srgb,var(--error) 55%,var(--border))}.sf-group__title{padding:0 4px;font-size:var(--fs-sm);font-weight:600;color:var(--text);display:flex;align-items:center;gap:var(--sp-2)}.sf-group__toggle{display:inline-flex;align-items:center;gap:4px;font-weight:400;color:var(--text-dim)}.sf-list{display:flex;flex-direction:column;gap:var(--sp-1)}.sf-list__head{display:flex;align-items:baseline;gap:var(--sp-2);padding:0 2px var(--sp-1)}.sf-list__title{font-size:var(--fs-md);font-weight:600}.sf-list__count{font-size:var(--fs-sm);color:var(--text-faint)}.sf-list__add{align-self:flex-start;gap:6px;margin-top:var(--sp-1)}.sf-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface)}.sf-card.has-error{border-color:color-mix(in srgb,var(--error) 55%,var(--border))}.sf-card__head{display:flex;align-items:center;gap:2px;padding:2px 4px 2px 2px}.sf-card__toggle{flex:1;min-width:0;display:flex;align-items:center;gap:6px;padding:6px 8px;border:none;background:none;color:var(--text);font:inherit;font-size:var(--fs-md);text-align:left;cursor:pointer}.sf-card__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sf-card__flag{flex-shrink:0;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;background:var(--error);color:#fff;font-size:11px;font-weight:700}.sf-card__body{padding:var(--sp-2) var(--sp-3) var(--sp-3);border-top:1px solid var(--border)}.sf-record{display:flex;flex-direction:column;gap:var(--sp-1);align-items:flex-start}.sf-record__row{display:grid;grid-template-columns:180px 220px auto;gap:var(--sp-1);align-items:center}.price-table{display:flex;flex-direction:column;gap:2px}.price-table__unit{font-size:var(--fs-sm);color:var(--text-faint)}.price-table__missing{margin-left:auto;font-size:var(--fs-sm);color:var(--warn)}.price-table__empty{font-size:var(--fs-sm);color:var(--text-faint);padding:4px 2px}.price-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,200px) 120px 28px;align-items:center;gap:var(--sp-2);padding:4px 8px;border-radius:var(--r-sm)}.price-row:hover{background:var(--surface-2)}.price-row.is-stale .price-row__name{color:var(--text-faint);text-decoration:line-through}.price-row__name{font-size:var(--fs-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.price-row__detail{font-size:var(--fs-sm);color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.price-row__key{grid-column:span 2}.price-input{width:120px;text-align:right;font-variant-numeric:tabular-nums}.rate-line{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1.2fr) 150px 60px 28px;align-items:center;gap:var(--sp-2);padding:4px 8px}.rate-line--head{font-size:var(--fs-xs);font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--text-faint);padding-bottom:0}.rate-line__kinds{display:flex;flex-wrap:wrap;gap:2px 8px;font-size:var(--fs-sm);color:var(--text-dim)}.rate-line__kinds label{display:inline-flex;align-items:center;gap:3px;text-transform:capitalize}.files-panel{display:flex;flex-direction:column;min-height:100%}.files-panel.is-dropping{outline:2px dashed var(--accent);outline-offset:-6px}.files-panel__head{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3)}.files-panel__head--selection{justify-content:flex-start;gap:var(--sp-1);padding-left:var(--sp-2)}.files-panel__count{font-size:var(--fs-md);font-weight:600}.files-panel__spacer{flex:1}.files-panel__uploads{display:flex;flex-direction:column;gap:var(--sp-2);padding:0 var(--sp-3) var(--sp-2)}.files-upload{font-size:var(--fs-sm)}.files-upload__line{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);min-width:0}.files-upload__bar{height:4px;border-radius:2px;background:var(--surface-3);overflow:hidden;margin:2px 0}.files-upload__bar>div{height:100%;background:var(--accent);transition:width .2s}.files-upload__error{color:var(--error);font-size:var(--fs-xs);line-height:1.4}.files-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:var(--fs-sm)}.files-table thead th:nth-child(2){width:88px}.files-table thead th:nth-child(3){width:72px}.files-table thead th:nth-child(4){width:34px}.files-table thead th{padding:0;text-align:left;font-size:var(--fs-sm);font-weight:600;color:var(--text-dim);border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden}.files-table thead th>.ui-sort{width:100%;padding:7px 6px}.files-table thead th:first-child>.ui-sort{padding-left:calc(var(--sp-2) + 4px)}.files-table thead th[aria-sort]:not([aria-sort=none]){color:var(--text)}.files-table td{padding:4px 6px;vertical-align:middle;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid var(--border)}.files-table td:first-child{padding-left:var(--sp-2)}.files-table__row{cursor:default;user-select:none}.files-table__row:hover,.files-table__row.is-open,.files-table__details{background:var(--surface-2)}.files-table__row.is-selected,.files-table__row.is-selected+.files-table__details{background:var(--accent-soft, color-mix(in srgb, var(--accent) 12%, transparent))}.files-table__row.is-open td{border-bottom:none}.files-table__open{cursor:inherit;display:flex;align-items:center;gap:var(--sp-2);width:100%;min-width:0;padding:2px 4px;font:inherit;font-size:var(--fs-md);color:var(--text);text-align:left;background:none;border:none}.files-table__open>svg{flex:none;color:var(--text-dim)}.files-table__text{display:flex;flex-direction:column;min-width:0}.files-table__actions{text-align:right;overflow:visible}.files-row__meta{font-size:var(--fs-xs);color:var(--text-faint)}.files-row__action{opacity:0}.files-table__row:hover .files-row__action,.files-table__row.is-open .files-row__action,.files-row__action:focus-visible{opacity:1}.files-row__details{display:flex;flex-direction:column;gap:var(--sp-2);padding:0 4px var(--sp-1) 27px;white-space:normal}.files-row__field{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-dim)}.files-row__field .ui-select{flex:1;min-width:0}.files-row__buttons{display:flex;gap:var(--sp-1);flex-wrap:wrap}.files-row__buttons a.ui-btn{display:inline-flex;align-items:center;gap:4px;text-decoration:none}.files-panel__empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-4);text-align:center;color:var(--text-dim);font-size:var(--fs-sm)}.files-panel__empty p{margin:0;line-height:1.5;max-width:260px}.view-flyout{position:relative;display:flex}.view-flyout>.ui-seg__btn{position:relative}.view-flyout__caret{position:absolute;right:1px;bottom:1px;width:10px;height:10px}.view-flyout__caret:after{content:"";position:absolute;right:1px;bottom:1px;border-style:solid;border-width:0 0 4px 4px;border-color:transparent transparent currentColor transparent;opacity:.65}.view-flyout__menu{position:fixed;z-index:100;display:flex;flex-direction:column;gap:2px;padding:3px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-2)}.view-flyout__item{display:grid;place-items:center;width:30px;height:30px;padding:0;background:none;border:none;border-radius:var(--r-sm);color:var(--text-dim);cursor:pointer}.view-flyout__item:hover{background:var(--surface-2);color:var(--text)}.view-flyout__item[aria-checked=true]{background:var(--accent-soft);color:var(--accent-text)}.invitations-card{position:fixed;right:var(--sp-3);bottom:var(--sp-3);z-index:90;max-width:440px;display:grid;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-2);font-size:var(--fs-md)}.invitations-card__row{display:flex;align-items:center;gap:var(--sp-2)}.invitations-card__text{flex:1;min-width:0;line-height:1.4}.invitations-card__error{font-size:var(--fs-sm);color:var(--error)}.sign-in{min-height:100vh;display:grid;place-items:center;background:var(--bg)}.sign-in__card{display:grid;gap:var(--sp-3);justify-items:center;padding:var(--sp-5, 32px) var(--sp-6, 48px);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-2)}.sign-in__title{margin:0;font-size:var(--fs-xl)}.sign-in__text{margin:0;color:var(--text-dim)}.sign-in__error{margin:0;max-width:320px;text-align:center;font-size:var(--fs-sm);color:var(--error)}:root{--safe-t: env(safe-area-inset-top, 0px);--safe-r: env(safe-area-inset-right, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--tabbar-h: calc(52px + var(--safe-b));--touch-min: 44px}@media (pointer: coarse){html{touch-action:manipulation;-webkit-text-size-adjust:100%}input,textarea,select,.ui-input,.ui-select,.ui-search input{font-size:16px}.ui-btn,.tree-row,.libcat__item,.ctx-menu button,.ui-seg{min-height:var(--touch-min)}.ui-seg button{min-height:calc(var(--touch-min) - 6px)}.ui-seg__btn--icon{width:calc(var(--touch-min) - 6px)}.ui-btn--icon{min-width:var(--touch-min)}.itemview__bar .ui-btn{min-height:var(--touch-min)}.tree-row:hover,.libtable tbody tr:hover,.projtable tbody tr:hover,.issue-row:hover{background:inherit}.rail__body,.inspector,.sheet,.libtable-wrap,.mobile-sheet__body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}}.viewport-surface canvas,.viewport-surface svg{touch-action:none}.app-shell{height:100dvh}@supports not (height: 100dvh){.app-shell{height:100vh}}@media (max-width: 767px),(max-height: 500px) and (pointer: coarse){.app-shell{padding-right:0!important;padding-left:var(--safe-l)}.app-header{height:48px;padding-top:var(--safe-t);height:calc(48px + var(--safe-t));gap:var(--sp-2)}.rail{width:100%!important;border-right:none}.rail__resize{display:none}.roomswitcher{flex:1 1 auto;min-width:0;overflow:hidden}.roomswitcher>button{max-width:100%!important;overflow:hidden}.roomswitcher>button>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-header>span[style*="flex: 1"]{display:none}.viewport-hud{top:var(--sp-2);bottom:auto;left:var(--sp-2);right:var(--sp-2);transform:none;flex-wrap:wrap;height:auto;row-gap:var(--sp-1);justify-content:center}.bg-menu{top:calc(100% + var(--sp-2));bottom:auto}.plan-zoom,.plan-scale{bottom:calc(var(--tabbar-h) + var(--sp-3))}.plan-topright{top:calc(var(--plan-top-chrome, 0px) + var(--sp-2));right:var(--sp-2)}.assistant-strip{left:var(--sp-2);right:var(--sp-2);max-width:none!important}}.mobile-tabbar{display:none}@media (max-width: 767px),(max-height: 500px) and (pointer: coarse){.mobile-tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:80;align-items:stretch;height:var(--tabbar-h);padding-bottom:var(--safe-b);background:var(--surface);border-top:1px solid var(--border)}.mobile-tabbar__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;padding:0 2px;border:none;border-radius:0;background:none;color:var(--text-dim);font-size:var(--fs-xs);font-weight:500;line-height:1}.mobile-tabbar__item[aria-selected=true],.mobile-tabbar__item[aria-current=page]{color:var(--accent-text)}.mobile-tabbar__label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-tabbar__badge{position:absolute;top:4px;margin-left:18px;min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:var(--warn);color:#1b1d20;font-size:var(--fs-xs);font-weight:700;line-height:15px;text-align:center}.mobile-tabbar__badge--error{background:var(--error);color:#fff}}.mobile-sheet__scrim{position:fixed;top:0;left:0;right:0;bottom:var(--tabbar-h);z-index:70;background:#00000059;border:none;padding:0;animation:mobile-sheet-fade .16s ease-out}.mobile-sheet{position:fixed;left:0;right:0;bottom:var(--tabbar-h);z-index:71;display:flex;flex-direction:column;max-height:calc(88dvh - var(--tabbar-h));background:var(--bg);border-top-left-radius:14px;border-top-right-radius:14px;box-shadow:var(--shadow-2);animation:mobile-sheet-up .2s cubic-bezier(.2,.8,.2,1)}.mobile-sheet__grab{display:flex;align-items:center;justify-content:center;flex-shrink:0;height:22px;cursor:grab;touch-action:none}.mobile-sheet__grab:before{content:"";width:36px;height:4px;border-radius:2px;background:var(--border-strong)}.mobile-sheet__head{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0;padding:0 var(--sp-2) var(--sp-2) var(--sp-3);font-size:var(--fs-lg);font-weight:600}.mobile-sheet__body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto}.mobile-sheet__body>.rail,.mobile-sheet__body>.inspector{flex:1;min-height:0;border:none;width:100%}@keyframes mobile-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes mobile-sheet-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.mobile-sheet,.mobile-sheet__scrim{animation:none}}.chat-scrim{position:fixed;inset:0;z-index:77;padding:0;border:none;background:#00000047;animation:mobile-sheet-fade .16s ease-out}@media (prefers-reduced-motion: reduce){.chat-scrim{animation:none}}.mobile-more{display:flex;flex-direction:column;padding:0 var(--sp-2) var(--sp-2)}.mobile-more__row{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:var(--sp-3);border:none;border-bottom:1px solid var(--border);border-radius:0;background:none;text-align:left}.mobile-more__row:last-child{border-bottom:none}.mobile-more__row:disabled{opacity:.45}.mobile-more__label{font-size:var(--fs-md);font-weight:600;color:var(--text)}.mobile-more__hint{font-size:var(--fs-sm);line-height:1.35;color:var(--text-dim)}@media (max-width: 639px),(max-height: 500px) and (pointer: coarse){:is(.libtable,.projtable,.doctable) thead{display:none}:is(.libtable,.projtable,.doctable),:is(.libtable,.projtable,.doctable) tbody{display:block;width:auto}:is(.libtable,.projtable,.doctable) tr{position:relative;display:grid;grid-template-columns:minmax(0,max-content) max-content minmax(0,max-content) minmax(0,1fr);height:auto;align-items:baseline;column-gap:5px;row-gap:1px;margin:0;padding:var(--sp-2) 0;border:none;border-bottom:1px solid var(--border);border-radius:0;background:none}.projtable tr{grid-template-columns:max-content minmax(0,max-content) minmax(0,1fr)}.libtable tr{padding-left:var(--sp-3);padding-right:var(--sp-3)}:is(.libtable,.projtable,.doctable) tbody th,.libtable tbody th[scope=row],:is(.libtable,.projtable,.doctable) td:first-child{grid-column:1 / -1;width:auto;max-width:none;contain:inline-size;min-width:0;padding:0 104px 2px 0;border:none;font-size:var(--fs-lg);font-weight:600;text-align:left}:is(.libtable,.projtable,.doctable) tbody th:before,:is(.libtable,.projtable,.doctable) td:first-child:before{content:none}:is(.libtable,.projtable,.doctable) td[data-label]{min-width:0;max-width:none;padding:0;border:none;font-size:var(--fs-md);color:var(--text-dim);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:is(.libtable,.projtable,.doctable) td[data-label]:before{content:attr(data-label) " ";color:var(--text-faint)}.libtable td[data-label]:before{content:none}.libtable tbody th[scope=row]{padding-right:0}:is(.libtable,.projtable,.doctable) td[data-label]:has(~td[data-label]):after{content:" · ";color:var(--text-faint)}.libtable tbody tr>:nth-child(2),.libtable tbody tr>:nth-child(4){display:block}.projtable:not(.clienttable) tbody tr>:nth-child(2),.projtable:not(.clienttable) tbody tr>:nth-child(4),.projtable:not(.clienttable) tbody tr>:nth-child(5),.projtable:not(.clienttable) tbody tr>:nth-child(6),.projtable:not(.clienttable) tbody tr>:nth-child(7),.clienttable tbody tr>:nth-child(3),.clienttable tbody tr>:nth-child(5),.doctable tbody tr>:nth-child(4),.doctable tbody tr>:nth-child(5){display:none}.projtable__frame,.libtable-wrap{overflow-x:visible}:is(.libtable,.projtable,.doctable) tr{white-space:nowrap}:is(.libtable,.projtable,.doctable) td:not([data-label]):last-child{position:absolute;top:var(--sp-2);right:0;padding:0;border:none;white-space:nowrap}:is(.libtable,.projtable,.doctable) td:not([data-label]):before{content:none}.doctable td,.doctable th{padding:0!important}.doctable__frame{padding:0 var(--sp-3)!important}.doctable td:first-child{padding-right:140px!important}.projtable__empty,:is(.libtable,.projtable,.doctable) td[colspan]{display:block;padding:var(--sp-4) 0!important;text-align:center}}.libcat__cats{display:flex;flex-direction:column;gap:1px;min-height:0}@media (max-width: 767px),(max-height: 500px) and (pointer: coarse){.libcat--phone{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.libcat--phone .libcat__rail{flex-direction:column;gap:var(--sp-2);padding:var(--sp-2);overflow-y:visible;border-right:none;border-bottom:1px solid var(--border)}.libcat--phone .libcat__cats{flex-direction:row;gap:var(--sp-1);overflow-x:auto;scrollbar-width:none}.libcat--phone .libcat__cats::-webkit-scrollbar{display:none}.libcat--phone .libcat__cat{flex-shrink:0;width:auto;gap:var(--sp-1);border:1px solid var(--border);border-radius:999px}.libcat--phone .libcat__rule,.libcat--phone .libcat__detail,.libcat--phone.is-detail .libcat__rail,.libcat--phone.is-detail .libcat__list{display:none}.libcat--phone.is-detail .libcat__detail{display:block;grid-row:1 / -1;overflow-y:auto}.libcat__back{position:sticky;top:0;z-index:1;width:100%;justify-content:flex-start;border-radius:0;border-bottom:1px solid var(--border);background:var(--bg)}}@media (max-width: 767px),(max-height: 500px) and (pointer: coarse){.mobile-sheet__body .doc-pages{width:100%!important;border-right:none!important;background:none!important}.mobile-sheet__body .doc-pages>div:last-child{grid-template-columns:repeat(auto-fill,172px);justify-content:center}.mobile-sheet__body .doc-pages>div:first-child{display:none}.doc-pagebar{top:var(--sp-2);bottom:auto!important;right:var(--sp-2)!important}.doc-scroll{padding-bottom:72px!important}.doc-index{padding:var(--sp-3) var(--sp-3) 96px!important}.mf-browse{width:100%!important;flex:1;min-height:0;border-right:none!important;padding:var(--sp-3)!important}.mf-viewer{flex:1;min-width:0;min-height:0}.mf-browse>div:first-of-type{grid-template-columns:repeat(4,1fr)!important}.mf-browse>div:last-of-type{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.mf-browse .mf-thumb{width:100%!important}.mf-browse input{padding:var(--sp-2) var(--sp-3)!important;border-radius:var(--r-md)!important}}@media (max-width: 767px),(max-height: 500px) and (pointer: coarse){.jobtable th,.jobtable td{padding-left:6px!important;padding-right:6px!important}.jobtable__room{display:none}.jobtable td:first-child,.jobtable th:first-child{white-space:nowrap!important;width:100%;max-width:0;overflow:hidden;text-overflow:ellipsis;min-width:6.5em}.jobtable th:first-child,.jobtable td:first-child{padding-left:0!important}.jobtable th:last-child,.jobtable td:last-child{padding-right:0!important}.jobtable{display:block;overflow-x:auto;scrollbar-width:none}.jobtable::-webkit-scrollbar{display:none}}@media (max-width: 767px),(max-height: 500px) and (pointer: coarse){.sheet{inset:auto 0 0;width:auto;max-width:none;max-height:88dvh;transform:none;border-radius:14px 14px 0 0;padding-bottom:calc(var(--sp-4) + var(--safe-b))}.ctx-menu{position:fixed!important;left:var(--sp-2)!important;right:var(--sp-2);top:auto!important;bottom:calc(var(--tabbar-h) + var(--sp-2));width:auto;min-width:0;max-height:60dvh;overflow:auto;border-radius:var(--r-md)}.keys{grid-template-columns:1fr}}@media (max-width: 767px),(max-height: 500px) and (pointer: coarse){.page-scroll{padding-bottom:var(--tabbar-h)}.ui-page{padding-left:var(--sp-3);padding-right:var(--sp-3)}.ui-sidetabs{grid-template-columns:minmax(0,1fr);gap:var(--sp-4)}.ui-sidetabs__menu{position:static;display:flex;gap:var(--sp-1);overflow-x:auto;scrollbar-width:none}.ui-sidetabs__menu::-webkit-scrollbar{display:none}.ui-sidetabs__menu .ui-navrow{flex-shrink:0;width:auto;border-color:var(--border);border-radius:999px}}.tp-root{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.tp-layout{flex:1;min-height:0;display:grid;grid-template-rows:minmax(260px,1fr) minmax(200px,.9fr)}.tp-top{min-height:0;display:grid;grid-template-columns:minmax(170px,.7fr) minmax(320px,1.5fr) minmax(300px,1.6fr);border-bottom:1px solid var(--border)}.tp-bottom{min-height:0;display:flex;flex-direction:column}.tp-pane,.tp-detail{min-width:0;min-height:0;display:flex;flex-direction:column;border-right:1px solid var(--border)}.tp-detail{border-right:0}.tp-pane__head{display:flex;align-items:center;gap:var(--sp-2);min-height:var(--row-h);padding:0 var(--sp-3);border-bottom:1px solid var(--border);font-size:var(--fs-sm);font-weight:600;color:var(--text-dim);white-space:nowrap;overflow:hidden}.tp-pane__head>span:first-of-type{overflow:hidden;text-overflow:ellipsis}.tp-pane__body{flex:1;min-height:0;overflow:auto}.tp-count{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:var(--surface-3);color:var(--text-dim);font-size:var(--fs-xs);font-weight:500;text-align:center}.tp-dim{color:var(--text-dim)}.tp-error{color:var(--error)}.tp-ops__spacer{flex:1}.tp-list tbody tr{cursor:pointer}.tp-list tbody tr:hover{background:var(--surface-2)}.tp-list tbody tr:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.tp-list .tp-list__sel,.tp-list .tp-list__sel:hover{background:var(--accent-soft)}.tp-list__name{max-width:180px;overflow:hidden;text-overflow:ellipsis}.tp-list__mat{max-width:140px;overflow:hidden;text-overflow:ellipsis;color:var(--text-dim)}.tp-list__size{font-variant-numeric:tabular-nums}.tp-list__marks{width:22px;padding-right:0!important;white-space:nowrap}.tp-list__omitted td{color:var(--text-faint);text-decoration:line-through}.tp-list__omitted td.tp-list__marks{text-decoration:none}.tp-list .tp-list__group{cursor:default}.tp-list .tp-list__group:hover{background:none}.tp-list__group td{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);background:var(--surface)}.tp-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:2px;border-radius:3px;background:var(--accent-soft);color:var(--accent-text);font-size:10px;font-weight:700;line-height:1}.tp-badge--add{background:color-mix(in srgb,var(--ok) 16%,transparent);color:var(--ok-text)}.tp-badge--del{background:var(--surface-3);color:var(--text-dim)}.tp-badge--error{background:var(--error-bg);color:var(--error)}.tp-fields{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);font-size:var(--fs-sm)}.tp-fields__title{font-size:var(--fs-md);margin-right:var(--sp-2)}.tp-fields__name{width:180px}.tp-fields__f{display:inline-flex;align-items:center;gap:4px;color:var(--text-dim)}.tp-num.ui-cell{width:76px}.tp-preview{position:relative;flex:1;min-height:140px;background:var(--surface)}.tp-preview__svg{position:absolute;inset:8px 8px 24px;width:calc(100% - 16px);height:calc(100% - 32px)}.tp-preview__legend{position:absolute;left:0;right:0;bottom:4px;text-align:center;font-size:var(--fs-xs);color:var(--text-dim)}.tp-part{fill:var(--bg);stroke:var(--text);vector-effect:non-scaling-stroke}.tp-edge{stroke:var(--series-4);opacity:.7;vector-effect:non-scaling-stroke;stroke-width:4px}.tp-op{cursor:pointer}.tp-op circle,.tp-op path,.tp-op polygon{fill:color-mix(in srgb,var(--series-1) 18%,transparent);stroke:var(--series-1);vector-effect:non-scaling-stroke;stroke-width:1.2px}.tp-op .tp-op__bar,.tp-op line{stroke:color-mix(in srgb,var(--series-1) 45%,transparent)}.tp-op--cutout path{fill:var(--surface-3)}.tp-op--pocket path,.tp-op--rebate polygon{fill:color-mix(in srgb,var(--series-3) 20%,transparent);stroke:var(--series-3)}.tp-op--edited circle,.tp-op--edited path,.tp-op--edited polygon{stroke:var(--series-2);fill:color-mix(in srgb,var(--series-2) 22%,transparent)}.tp-op--other{opacity:.35}.tp-op--other circle{stroke-dasharray:3 2}.tp-op--ghost{opacity:.45;pointer-events:none}.tp-op--ghost circle,.tp-op--ghost path,.tp-op--ghost polygon{fill:none;stroke:var(--text-faint);stroke-dasharray:2 2}.tp-op--lit{opacity:1}.tp-op--lit circle,.tp-op--lit path,.tp-op--lit polygon{stroke:var(--accent);fill:color-mix(in srgb,var(--accent) 35%,transparent);stroke-width:2.5px}.tp-op--lit line{stroke:color-mix(in srgb,var(--accent) 60%,transparent)}.tp-ops{flex:1;min-height:0;display:flex;flex-direction:column}.tp-ops__tabs{display:flex;align-items:center;gap:var(--sp-1);padding:0 var(--sp-3);min-height:var(--row-h);border-bottom:1px solid var(--border);overflow-x:auto;flex-shrink:0}.tp-ops__tabs .ui-tab{white-space:nowrap}.tp-ops__add{display:inline-flex;gap:var(--sp-1);margin-left:var(--sp-2)}.tp-ops__scroll{flex:1;min-height:0;overflow:auto}.tp-grid__mark{width:22px}.tp-grid__act{width:1%;text-align:right}.tp-row{cursor:pointer}.tp-row--hover{background:var(--surface-2)}.tp-row--sel,.tp-row--sel.tp-row--hover{background:var(--accent-soft)}.tp-row--deleted td{color:var(--text-faint);text-decoration:line-through}.tp-row--deleted td.tp-grid__act,.tp-row--deleted td.tp-grid__mark{text-decoration:none}.tp-val{font-variant-numeric:tabular-nums}.tp-note{display:flex;align-items:center;gap:var(--sp-2);padding:6px var(--sp-3);font-size:var(--fs-sm);background:var(--surface-2);border-bottom:1px solid var(--border)}.tp-note--error{background:var(--error-bg);color:var(--error);border-color:var(--error-border)}.tp-note--warn{background:color-mix(in srgb,var(--warn) 14%,var(--bg))}.tp-empty{padding:var(--sp-4);color:var(--text-dim);font-size:var(--fs-md)}.tp-camrow{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);font-size:var(--fs-sm)}.tp-review section+section{margin-top:var(--sp-4)}.tp-review h3{font-size:var(--fs-md);margin:0 0 var(--sp-2);display:flex;gap:var(--sp-2);align-items:center}.tp-review p{font-size:var(--fs-sm);margin:0 0 var(--sp-2)}.tp-review__list{list-style:none;margin:0;padding:0;font-size:var(--fs-sm)}.tp-review__list>li{padding:6px 0;border-bottom:1px solid var(--surface-2)}.tp-review__list ul{margin:2px 0 0;padding-left:var(--sp-4);color:var(--text-dim)}.tp-review__orphan{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2)}.tp-link{border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--accent-text);cursor:pointer;text-align:left}.tp-link:hover{text-decoration:underline}.tp-form{display:flex;flex-direction:column;gap:var(--sp-3)}.tp-form__row{display:grid;grid-template-columns:1fr 1fr 70px;gap:var(--sp-2)}.tp-form p{margin:0;font-size:var(--fs-sm)}.tp-mobile{flex:1;min-height:0;display:flex;flex-direction:column}.tp-mobile>.tp-pane{flex:1;border-right:0}.tp-mobile__part{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto}.tp-mobile__part .tp-detail{flex:none}.tp-mobile__part .tp-preview{min-height:220px;flex:none;height:38vh}.tp-mobile__part .tp-ops{flex:none;min-height:260px}.tp-mobile .tp-list__mat{display:none}@media (max-width: 1100px){.tp-top{grid-template-columns:minmax(140px,.6fr) minmax(280px,1.4fr) minmax(260px,1.4fr)}.tp-list__mat{display:none}}
