:root{--bg: #ffffff;--panel: #f5f5f3;--border: #dcdcd6;--text: #222222;--accent: #3b6ea5;--eligible: #2f7d38;--eligible-soft: #eaf7ec;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}:where(.floating){background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 26px #00000029}:where(.floating--accent){border-color:var(--accent)}.button{padding:.3rem .7rem;font:inherit;font-size:.78rem;color:inherit;border-radius:6px;border:1px solid var(--border);background:#fff;cursor:pointer}.button:hover:not(:disabled){background:#f2f4f7}.button:disabled{cursor:default;opacity:.45}.button--primary,.button.active{color:#fff;background:var(--accent);border-color:var(--accent)}.button--primary:hover:not(:disabled),.button.active:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}.button--icon{padding:0 .2rem;border:none;background:none;color:#999;font-size:1rem;line-height:1}.button--icon:hover:not(:disabled){background:none;color:#444}.button--compact{padding:.1rem .45rem;font-size:.7rem}.button--danger{color:#c65b5b}.button--danger:hover:not(:disabled){color:#8c1c13;border-color:#8c1c13;background:#fdf3f2}.button--icon.button--danger:hover:not(:disabled){background:none}.note{margin:.4rem 0 0;padding:.3rem .45rem;border-radius:6px;line-height:1.35;font-size:.78rem}.note--hint{color:#777}.note--warning{color:#8a5a12;background:#fdf6e6}.note--success{color:#2c5c33;background:var(--eligible-soft)}.note--error{color:#8c1c13;background:#fdeceb}.note--compact{font-size:.7rem}.asset-panel>.note{margin-inline:.75rem}.note__text{margin:0}.note__actions{min-height:1.6rem;margin-top:.35rem;display:flex;align-items:center}.button.note__action{border-color:currentColor;background:transparent;color:inherit}.button.note__action:hover:not(:disabled){background:#0000000f}.section-title{display:flex;align-items:center;justify-content:space-between;padding:.4rem 0 .1rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:#999}.asset-panel>.section-title{padding-inline:.75rem}.section-title__actions{display:flex;gap:.3rem}.radio-button-group{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.radio-button-group button{padding:.35rem .7rem;font:inherit;font-size:.78rem;border:none;border-radius:0;background:#fff;color:inherit;cursor:pointer}.radio-button-group button+button{border-left:1px solid var(--border)}.radio-button-group button:hover:not(.active){background:#f2f4f7}.radio-button-group button.active{background:var(--accent);color:#fff}.radio-button-group button:disabled{cursor:default;opacity:.55}.radio-button-group--compact button{padding:.12rem .4rem;font-size:.68rem}.radio-button-group--stretch{display:flex;width:100%}.radio-button-group--stretch button{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.switch{position:relative;flex:0 0 auto;width:1.9rem;height:1.05rem;padding:0;border:1px solid #999;border-radius:999px;background:#fff;cursor:pointer}.switch[aria-checked=true]{border-color:var(--accent);background:var(--accent)}.switch__knob{position:absolute;top:.1rem;left:.1rem;width:.75rem;height:.75rem;border-radius:50%;background:#999;transition:transform .12s ease}.switch[aria-checked=true] .switch__knob{background:#fff;transform:translate(.85rem)}.hold-toggle{display:inline-flex;align-items:center;gap:.25rem;padding:.1rem .4rem;font-size:.7rem;color:#6a6a6a;background:#f4f4f5;border:1px solid var(--border);border-radius:999px;cursor:pointer}.hold-toggle.on{color:#2c5c33;background:var(--eligible-soft);border-color:var(--eligible)}.hold-toggle:disabled{cursor:default;opacity:.75}.asset-panel{display:flex;flex-direction:column;width:240px;flex-shrink:0;border-right:1px solid var(--border);background:var(--panel);overflow-y:auto}.asset-panel__header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;border-bottom:1px solid var(--border)}.asset-panel__title{font-weight:600;font-size:.9rem}.asset-panel>.row-list{padding:.5rem .75rem}.modal__body>.row-list{padding:.25rem .5rem}.row-list{list-style:none;margin:0;padding:0 0 .5rem;display:flex;flex-direction:column;gap:.35rem}.row{display:flex;align-items:stretch;gap:.3rem}.row>:not(.row__body){align-self:center}.row__body{flex:1;min-width:0;display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border:1px solid var(--border);background:#fff;border-radius:7px;text-align:left;font:inherit;color:inherit}button.row__body{cursor:pointer}button.row__body:hover:not(:disabled){border-color:var(--accent)}.row__body.active{border-color:var(--accent);box-shadow:0 0 0 2px #3b6ea540}button.row__body:disabled{opacity:.55;cursor:default}.row__meta{display:flex;flex-direction:column;min-width:0}.row__name{font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row__sub{font-size:.7rem;color:#777}.swatch{display:block;flex-shrink:0;width:22px;height:22px;border:1px solid rgba(0,0,0,.2);border-radius:4px}.swatch--assembly{background:repeating-linear-gradient(45deg,#7a5cc0,#7a5cc0 4px,#b6a3e0 4px,#b6a3e0 8px)}.row__body--danger{border-color:#e9b9b9;background:#fdf3f3}button.row__body--danger:hover:not(:disabled){border-color:#c92a2a}.row__body--danger.active{border-color:#c92a2a;box-shadow:0 0 0 2px #c92a2a40}.row__body--danger .row__sub{color:#8c2f2f}.row--compact .row__body{padding:.14rem .4rem;border:none;border-radius:0 4px 4px 0;background:#fafafa;font-size:.75rem;color:#444}.row--compact .row__name{font-size:inherit;font-weight:500}.row--compact .row__body--danger{border:none;border-left:3px solid #c92a2a;background:#fafafa}.row--compact .row__body--regular{border-left:3px solid #2f7d38}.row__delete{flex-shrink:0;width:1.15rem;height:1.15rem;padding:0;border:none;border-radius:4px;background:transparent;color:#8b8d98;font-size:.95rem;line-height:1;cursor:pointer}.row:hover .row__delete,.row__delete:focus-visible{color:#c92a2a;background:#c92a2a1a}.attach-panel{position:absolute;z-index:26;left:12px;top:56px;width:19rem;max-height:calc(100% - 68px);overflow:auto;overscroll-behavior:contain;padding:.7rem .8rem .75rem;font-size:.78rem}.attach-panel__head{position:relative;padding-bottom:.45rem;padding-right:1.4rem;margin-bottom:.55rem;border-bottom:1px solid var(--border);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.attach-panel__head:active{cursor:grabbing}.attach-panel__title{display:block;font-weight:600;color:#1f4368}.attach-panel__pair{display:block;margin-top:.15rem;color:#555;line-height:1.4}.attach-panel__infomark{position:absolute;top:0;right:0;width:1.05rem;height:1.05rem;padding:0;font:inherit;font-size:.68rem;font-style:italic;font-weight:700;line-height:1;color:#8a93a0;background:#fff;border:1px solid #d3d9e0;border-radius:50%;cursor:help}.attach-panel__infomark:hover,.attach-panel__infomark:focus-visible{color:var(--accent);border-color:var(--accent)}.popover-note{position:absolute;z-index:30;padding:.35rem .5rem;font-size:.72rem;line-height:1.35;color:#33383f;pointer-events:none}.attach-panel__note{top:calc(100% + .3rem);left:0;right:0}.attach-panel__actions{display:flex;justify-content:flex-end;gap:.4rem;margin-top:.7rem}.attach-panel__actions .button.attach-panel__abort{margin-right:auto;color:#6b7280}.attach-panel__actions .button.attach-panel__abort:hover:not(:disabled){color:#8c1c13;border-color:#8c1c13;background:#fdf3f2}.attach-panel__rows{display:flex;flex-direction:column;gap:.45rem}.attach-panel__rowhead{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.1rem}.attach-panel__label{font-weight:600;color:#444}.attach-panel__rowbody{display:flex;align-items:flex-end;gap:.5rem}.attach-panel__rowbody>:first-child{flex:1}.attach-panel__row--free .attach-panel__label,.attach-panel__row--free .inspector-field input{color:#9a9a9a}.attach-panel__flush{font-weight:600}.picker-flyout{position:fixed;z-index:30;display:flex;flex-direction:column;width:15rem;overflow:hidden;border-radius:0 9px 9px 0;border-left:none}.picker-flyout__head{flex-shrink:0;padding:.45rem .6rem .35rem;border-bottom:1px solid var(--border)}.picker-flyout__list{padding:.3rem;overflow-y:auto;gap:.2rem}.picker-flyout .note{margin:.5rem}.picker-flyout__empty{display:flex;flex-direction:column;align-items:center;gap:.6rem;text-align:center}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#14141859;display:flex;align-items:center;justify-content:center}.modal{width:min(30rem,calc(100vw - 2rem));max-height:min(32rem,calc(100vh - 4rem));display:flex;flex-direction:column;overflow:hidden}.modal__header{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;border-bottom:1px solid var(--border);background:var(--panel)}.modal__title{font-weight:600;font-size:.85rem}.modal__close{margin-left:auto}.modal__body{overflow-y:auto;padding:.4rem 0}.action-hints{min-width:180px;max-width:240px;padding:.6rem .75rem}.action-hints--armed{background:#e3edf7f2;border-color:var(--accent)}.action-hints--armed .action-hints__title{color:#1f4368}.action-hints__title{display:block;font-weight:600;font-size:.8rem;margin-bottom:.35rem}.action-hints__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.2rem}.action-hints__list li{color:#666;font-size:.75rem;padding-left:.9rem;position:relative}.action-hints__list li:before{content:"›";position:absolute;left:0;color:var(--accent)}.rail-card{padding:.4rem;background:#ffffffeb;border:1px solid var(--border);border-radius:8px;box-shadow:0 2px 8px #0000001a;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none}.rail-card--interactive{pointer-events:auto}.rail-card .inspector-field input{padding:.2rem .35rem;font-size:.78rem}.rail-card .inspector-field__box input[type=number]{padding-right:1.35rem}.save-state{display:flex;flex-direction:column;gap:3px;padding:0 .75rem .6rem}.save-state__line{padding:.18rem .45rem;border-left:3px solid var(--state-tone);border-radius:0 4px 4px 0;background:#fafafa;font-size:.72rem;color:#444}.save-state__line--ok{--state-tone: #2f7d38}.save-state__line--pending{--state-tone: #a5731a}.save-state__line--idle{--state-tone: #c9c9c4}.save-state__line--danger{--state-tone: #c92a2a;color:#8c2f2f;background:#fdf3f3}.annotation{padding:.15rem .4rem;font-size:.7rem;font-weight:600;white-space:nowrap;color:#fff;border-radius:4px;box-shadow:0 1px 4px #00000040;pointer-events:none;-webkit-user-select:none;user-select:none}.annotation--refused{display:inline-block;width:max-content;max-width:18rem;white-space:normal}.annotation--editable,.annotation--editing{pointer-events:auto;cursor:text}.annotation--editing{display:inline-flex;align-items:center;gap:.25rem}.annotation__field{width:4.5rem;padding:0 .2rem;border:none;border-radius:3px;font:inherit;color:#1f2933;background:#fff}.radial-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20}.radial-anchor{position:absolute;z-index:21;transform:translate(-50%,-50%);pointer-events:none}.radial-menu{overflow:visible;pointer-events:none;filter:drop-shadow(0 4px 10px rgba(0,0,0,.22))}.radial-menu__item{pointer-events:auto;cursor:pointer}.radial-menu__seg{fill:#fff;stroke:var(--border);stroke-width:1;transition:fill .1s ease}.radial-menu__item:hover .radial-menu__seg{fill:var(--accent)}.radial-menu__item.disabled{pointer-events:none;cursor:default}.radial-menu__item.disabled .radial-menu__seg{fill:#f0f0f0}.radial-menu__item.disabled .radial-menu__label,.radial-menu__item.disabled .radial-menu__icon{fill:#b0b0b0}.radial-menu__label{fill:#333;font-size:11px;font-weight:600;dominant-baseline:middle;-webkit-user-select:none;user-select:none}.radial-menu__icon{fill:#333;font-size:15px;dominant-baseline:middle}.radial-menu__item:hover .radial-menu__label,.radial-menu__item:hover .radial-menu__icon{fill:#fff}.radial-menu__item--category.open .radial-menu__seg{fill:var(--accent)}.radial-menu__item--category.open .radial-menu__label,.radial-menu__item--category.open .radial-menu__icon{fill:#fff}.radial-menu__item--action .radial-menu__seg{fill:#fbfbf9}.inspector-field{display:flex;flex-direction:column;gap:.2rem;padding:.4rem .75rem;font-size:.8rem}.inspector-field span,.inspector-field label{color:#666;font-size:.72rem}.inspector-field input,.inspector-field select{padding:.35rem;border:1px solid var(--border);border-radius:5px;font-size:.85rem;width:100%}.inspector-field--invalid input{border-color:#c65b5b;outline-color:#c65b5b}.inspector-field span.inspector-field__error{min-height:1lh;color:#8c1c13}.inspector-field__box{position:relative;display:block}.inspector-field__box input[type=number]{-moz-appearance:textfield;padding-right:1.35rem}.inspector-field__box input[type=number]::-webkit-outer-spin-button,.inspector-field__box input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.inspector-field__arrows{position:absolute;top:1px;bottom:1px;right:1px;display:flex;flex-direction:column;width:1.15rem}.inspector-field__arrows button{flex:1;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:0 4px 4px 0;background:#f1f1f3;color:#555;font-size:.6rem;line-height:1;cursor:pointer}.inspector-field__arrows button:hover{background:#e3e3e7;color:#111}.inspector-field__box input.inspector-field__input--status{padding-right:1.8rem}.inspector-field span.inspector-field__status{position:absolute;top:50%;right:.5rem;display:flex;width:1rem;height:1rem;transform:translateY(-50%);font-size:.75rem}.inspector-field__status svg{width:100%;height:100%;outline:none}.inspector-field span.inspector-field__status--valid{color:var(--eligible)}.inspector-field span.inspector-field__status--invalid{color:#c65b5b;cursor:help}.inspector-field__spinner{width:100%;height:100%;box-sizing:border-box;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:inspector-field-turn .7s linear infinite}@keyframes inspector-field-turn{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.inspector-field__spinner{animation-duration:2s}}.inspector-field span.inspector-field__said{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.inspector-field span.inspector-field__overlay{position:absolute;right:-.4rem;bottom:calc(100% + .45rem);z-index:10;padding:.35rem .55rem;color:#8c1c13;font-size:.75rem;white-space:nowrap;visibility:hidden;pointer-events:none}.inspector-field__status--invalid:hover .inspector-field__overlay,.inspector-field__status--invalid:focus-within .inspector-field__overlay{visibility:visible}.form-card{width:100%;padding:1.25rem 1.25rem 1rem;border:1px solid var(--border);border-radius:7px;background:var(--bg)}.form-card--danger{border-color:#e7c2bf}.form-card__title{margin:0;font-size:1rem}.form-card__lede{margin:.35rem 0 .6rem;color:#777;font-size:.82rem;line-height:1.5}.form-card form{display:flex;flex-direction:column}.form-card .inspector-field{padding-inline:0}.form-card form>.button{margin-top:.6rem;align-self:flex-start}.form-card__outcome{margin-top:.6rem}.form-card__links{margin:1rem 0 0;display:flex;flex-wrap:wrap;gap:.35rem 1rem;color:#777;font-size:.8rem}.form-card a{color:var(--accent)}.toolbar{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid var(--border);background:var(--panel)}.toolbar .brand{margin-right:.75rem}.toolbar .spacer{flex:1}.mode-switch{margin-left:0;margin-right:.5rem}.toolbar-nav{margin-right:.5rem}.working-dot{width:1rem;height:1rem;flex:0 0 auto;margin:0 .15rem;border-radius:50%;border:2px solid transparent}.working-dot--busy{border-color:var(--border);border-top-color:var(--accent);animation:working-turn .7s linear infinite}.working-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;pointer-events:none;background:color-mix(in srgb,var(--bg) 70%,transparent)}.working-overlay--hold{z-index:20}.working-ring{width:2rem;height:2rem;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:working-turn .7s linear infinite}.working-what{font-size:.8rem;color:var(--text);opacity:.7}@keyframes working-turn{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.working-dot--busy,.working-ring{animation-duration:2.4s}}.working-overlay--refused{z-index:20;background:none;justify-content:flex-start;padding-top:.75rem}.working-overlay--refused .working-what{padding:.3rem .6rem;border-radius:6px;background:#fdf6e6;color:#8a5a12;font-weight:600;max-width:80%;text-align:center}.connection-status{display:inline-flex;align-items:center;gap:.4rem;flex:0 0 auto;min-width:8.2rem;max-width:18rem;padding:.25rem .6rem;border-radius:999px;border:1px solid;font-size:.75rem;white-space:nowrap;cursor:default;-webkit-user-select:none;user-select:none}.connection-status__dot{flex:0 0 auto;width:.5rem;height:.5rem;border-radius:50%;background:currentColor}.connection-status__word{overflow:hidden;text-overflow:ellipsis}.connection-status--authenticated{color:#2e6b40;background:#e6f4ea;border-color:#b8dcc4}.connection-status--unauthenticated,.connection-status--reconnecting{color:#8a5a12;background:#fdf6e6;border-color:#ecd6a4}.connection-status--reconnecting .connection-status__dot{animation:connection-pulse 1.2s ease-in-out infinite}.connection-status--disconnected{color:#8c2f2f;background:#fbeaea;border-color:#e3bcbc}.connection-status--unauthenticated{padding:0}.connection-status__open{flex:1;min-width:0;display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .6rem;border:none;border-radius:inherit;background:transparent;color:inherit;font:inherit;cursor:pointer}.connection-status__open:hover{background:#0000000d}.connection-status__open:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.connection-status-anchor{position:relative;display:inline-flex}.connection-status--authenticated:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.connection-status__card{position:absolute;top:100%;right:0;z-index:20;padding-top:.35rem}.connection-status__card-body{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;min-width:14rem;max-width:22rem;padding:.6rem .75rem;font-size:.75rem;color:var(--text)}.connection-status__card-line{overflow-wrap:anywhere}.connection-status__card-line--quiet{color:#777}.connection-status__card-action{margin-top:.25rem}@keyframes connection-pulse{50%{opacity:.25}}@media (prefers-reduced-motion: reduce){.connection-status--reconnecting .connection-status__dot{animation:none}}.unsaved-work{padding:.5rem .75rem .15rem}.unsaved-work__list{margin:.3rem 0 0;padding-left:1.1rem}.unsaved-work__actions{display:flex;align-items:center;gap:.4rem;margin-top:.75rem}.unsaved-work__spacer{flex:1}.loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--panel)}.loading-screen__card{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;padding:0 1rem}.loading-screen__spinner{width:22px;height:22px;margin-bottom:.25rem;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:loading-screen-turn 1s linear infinite}@keyframes loading-screen-turn{to{transform:rotate(1turn)}}@media (prefers-reduced-motion: reduce){.loading-screen__spinner{animation:none}}.loading-screen__title{font-weight:600;font-size:.9rem}.loading-screen__status{font-size:.8rem;color:#666;max-width:24rem}.toaster{position:fixed;right:3.5rem;bottom:3.5rem;z-index:60;display:flex;flex-direction:column;align-items:stretch;gap:.5rem;max-width:min(26rem,calc(100vw - 7rem))}.toast{position:relative;overflow:hidden;cursor:pointer;font-size:.78rem;line-height:1.45}.toast__body{display:flex;align-items:flex-start;gap:.5rem;padding:.55rem .55rem .6rem .7rem}.toast__message{flex:1;white-space:pre-wrap;overflow-wrap:anywhere}.toast__close{flex-shrink:0;margin-top:-.1rem}.toast__clock{position:absolute;left:0;bottom:0;height:2px;background:var(--toast-tone);transition:width .1s linear}.toast--info{--toast-tone: #2e6b40;border-color:#b8dcc4}.toast--warning{--toast-tone: #a5731a;border-color:#e4cf9b}.toast--error{--toast-tone: #c92a2a;border-color:#e9b9b9}.toast--held{box-shadow:0 10px 30px #00000038}.toast--held .toast__clock{opacity:.35}.asset-panel--collapsed{width:40px;align-items:center;padding-top:.5rem}.asset-panel__toggle{width:26px;height:26px;padding:0}.planner-actions{display:flex;gap:.4rem;padding:.5rem .75rem}.planner-actions .button{flex:1}.blank-room-start{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;pointer-events:none}.blank-room-start__button{pointer-events:auto;padding:.9rem 1.8rem;border-radius:10px;font-size:1.05rem}.blank-room-start__note{font-size:.8rem;color:#6b6b64}.floor-plan-panel__method{margin-bottom:.55rem}.floor-plan-panel__defaults{display:flex;gap:.5rem}.floor-plan-panel__switch{display:flex;align-items:center;gap:.45rem;margin-top:.4rem;font-size:.75rem;color:#555;cursor:pointer}.floor-plan-panel__refusal{margin:.5rem 0 0;font-size:.74rem;line-height:1.4;color:#8c1c13}.floor-plan-panel__holds{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.55rem;font-size:.75rem;color:#555}.plan-readout{display:flex;flex-direction:column;gap:.1rem;margin:14px 0 0 14px;padding:.25rem .45rem;z-index:24}.plan-readout.annotation--draft{background:var(--plan-draft, #8b8d98)}.plan-readout.annotation--refused{background:var(--plan-refused, #e5484d)}.plan-readout__line{display:flex;align-items:baseline;gap:.35rem}.plan-readout__label{font-weight:500;opacity:.8}.plan-readout__value{font-variant-numeric:tabular-nums}.plan-readout__typed{padding:0 .2rem;color:#1f2933;background:#fff;border-radius:3px;font-variant-numeric:tabular-nums}.plan-readout__typed--open{box-shadow:inset 0 0 0 2px #1f2933}.plan-chip{--plan-chip-standoff: 14px;--plan-chip-away-x: 0;--plan-chip-away-y: -1;position:absolute;display:flex;flex-direction:column;align-items:stretch;gap:.25rem;padding:.3rem;background:#fff;border:1px solid #d7d3c8;border-radius:5px;box-shadow:0 2px 8px #0000002e;transform:translate(-50%,-50%) translate(calc(var(--plan-chip-away-x) * 50%),calc(var(--plan-chip-away-y) * 50%)) translate(calc(var(--plan-chip-away-x) * var(--plan-chip-standoff)),calc(var(--plan-chip-away-y) * var(--plan-chip-standoff)));pointer-events:auto;z-index:25}.plan-chip__row{display:flex;align-items:center;justify-content:space-between;gap:.3rem}.plan-chip--movable{cursor:grab;-webkit-user-select:none;user-select:none}.plan-chip--moving,.plan-chip--moving *{cursor:grabbing}.plan-chip--aside,.plan-chip--aside *{pointer-events:none}.plan-chip__field{background:var(--plan-measure, #7d7869)}.plan-chip--selected .plan-chip__field{background:#3b6ea5}.plan-chip--lit .plan-chip__field,.plan-chip__row--lit .plan-chip__field{background:#e5484d}.plan-chip--lit .hold-toggle.on,.plan-chip__row--lit .hold-toggle.on{color:#8c1c13;background:#fbe3e3;border-color:#e5484d}.plan-chip__refusal{max-width:11rem;margin:0;font-size:.68rem;line-height:1.35;color:#8c1c13}.workspace-settings__head{padding:.1rem .35rem .25rem}.workspace-settings__row{display:flex;align-items:center;gap:.5rem;height:1.9rem;padding:0 .35rem;font-size:.75rem;color:#555}.workspace-settings__label{flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workspace-settings__control{flex:0 0 auto;display:flex;align-items:center;gap:.35rem}.workspace-settings__control .inspector-field{padding:0;width:4.6rem}.workspace-settings__slider{width:5.2rem;margin:0;accent-color:var(--accent)}.workspace-settings__readout{flex:0 0 auto;width:3ch;min-width:3ch;padding-right:.35rem;text-align:right;font-variant-numeric:tabular-nums}.workspace-settings__slider,.workspace-settings__readout{flex-shrink:0}.mill-panel{max-width:260px}.mill-panel__all,.mill-panel__shapes{width:100%;margin-bottom:.5rem}.mill-panel__edge{margin:0 0 .5rem;font-size:.8rem;color:#444}.mill-panel__size{margin-bottom:.4rem}.mill-panel__picked{margin:0 0 .5rem;padding:0;max-height:9rem;overflow-y:auto}.cut-panel__hint,.cut-panel__result{margin:.35rem 0 0;font-size:.8rem;line-height:1.45;color:#3c4757}.cut-panel__delete{display:flex;align-items:center;justify-content:center;padding-bottom:.75rem}.cut-panel__delete .button{font-size:1.25rem}.cut-panel__keeps{margin:.5rem 0 0;font-size:.74rem;line-height:1.4;color:#6b7683}.cut-panel__angles{display:flex;gap:.5rem;margin-top:.5rem}.cut-panel__flip{margin-top:.6rem;width:100%}.drill-panel__hint,.drill-panel__result{margin:.35rem 0 0;font-size:.8rem;line-height:1.45;color:#3c4757}.drill-panel__offsets,.drill-panel__depth{display:flex;gap:.5rem;margin-top:.5rem}.drill-panel__depth{align-items:flex-end}.drill-panel__through{display:flex;align-items:center;gap:.3rem;padding-bottom:.35rem;font-size:.78rem;color:#3c4757;white-space:nowrap}.link-control__row,.link-control__chip{display:flex;align-items:center;gap:.4rem;width:100%;padding:.22rem .35rem;border:1px solid transparent;border-radius:6px;background:none;font:inherit;font-size:.75rem;color:#555;text-align:left;cursor:pointer}.link-control__row:hover:not(:disabled),.link-control__chip:hover:not(:disabled){background:#f1f4f8}.link-control__row.on,.link-control__chip.on{border-color:var(--accent);background:#eef4fb;color:#1f4368;font-weight:600}.link-control__row:disabled,.link-control__chip:disabled{color:#aaa;cursor:default}.link-control__row--master{border-bottom:1px solid var(--border);border-radius:6px 6px 0 0;margin-bottom:.15rem}.link-control__box{flex:0 0 auto;width:.7rem;height:.7rem;border:1px solid #999;border-radius:3px;background:#fff}.link-control__box--on{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 6px var(--accent)}.link-control__box--mixed{border-color:var(--accent);background:linear-gradient(to bottom,#fff 0,#fff 35%,var(--accent) 35%,var(--accent) 65%,#fff 65%)}.link-control__glyph,.link-control__mark{flex:0 0 .9rem;text-align:center;font-size:.8rem;line-height:1}.link-control__name{flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.link-control__count{flex:0 0 1.6rem;text-align:right;font-variant-numeric:tabular-nums}.link-control__states{display:flex;gap:.25rem;margin-top:.15rem;padding-top:.25rem;border-top:1px solid var(--border)}.link-control__chip{width:auto;flex:1 1 0;gap:.25rem;padding:.22rem .3rem}.link-control__chip .link-control__count{flex:0 0 auto}.link-control__status{margin:.3rem 0 .1rem;padding:0 .35rem;font-size:.7rem;color:#888}.builder-panel{gap:0}.builder-parts{padding:.25rem .75rem;border-top:1px solid var(--border)}.builder-add-row{display:grid;grid-template-columns:1fr 1fr;gap:.3rem;padding:.1rem 0 .45rem}.builder-add-row .button{width:100%;text-align:center}.builder-bom{margin:.25rem .75rem .5rem}.builder-exports{padding:.25rem .75rem .4rem;border-top:1px solid var(--border)}.export-list{list-style:none;margin:0;padding:0 0 .4rem;display:flex;flex-direction:column;gap:.3rem}.export-row{display:flex;align-items:center;gap:.4rem}.export-row__label{flex:1;min-width:0;padding:.3rem .4rem;border:1px solid var(--border);border-radius:5px;font-size:.8rem}.export-row__driver{flex-shrink:0;color:#777;font-size:.7rem;white-space:nowrap}.part-row__lines{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem}.part-row__badge{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:#7a5cc0;border:1px solid #cbb8ec;border-radius:4px;padding:0 .25rem}.builder-actions{display:flex;gap:.5rem;padding:.5rem .75rem}.builder-actions .button{flex:1}.link-group-0{--link-group: #3b6ea5}.link-group-1{--link-group: #c98a2b}.link-group-2{--link-group: #4c9a5f}.link-group-3{--link-group: #9c5bb8}.link-group-4{--link-group: #c0563f}.link-group-5{--link-group: #2f8a8a}.part-row__links{display:flex;align-items:center;gap:.15rem}.part-row__chain{padding:.1rem .3rem;border:1px solid var(--link-group, var(--border));border-radius:5px;background:#fff;color:var(--link-group, #666);font-size:.66rem;line-height:1.3;cursor:pointer}.part-row__chain.on{background:var(--link-group, var(--accent));color:#fff}.part-row__chain:hover:not(.on){background:#f2f5f8}.part-row__conflict{display:inline-flex;align-items:center;justify-content:center;width:1.1rem;height:1.1rem;border-radius:50%;background:#f3c15b;color:#6b4708;font-size:.68rem;font-weight:700}.bom-table{width:calc(100% - 1.5rem);margin:0 .75rem;border-collapse:collapse;font-size:.72rem}.bom-table th{text-align:left;color:#999;font-weight:600;padding:.2rem .3rem;border-bottom:1px solid var(--border)}.bom-table td{padding:.25rem .3rem;border-bottom:1px solid #ececec;vertical-align:top}.bom-group-head td{font-weight:700;font-size:.7rem;color:#555;background:#f2f0f7;padding-top:.35rem}.library-workspace{overflow-y:auto;background:var(--bg)}.library-browser{width:100%;max-width:46rem;margin:0 auto;padding:1.6rem 1.25rem 3rem}.library-browser__title{margin:0;font-size:1.35rem}.library-browser__lede{margin:.35rem 0 0;color:#777;font-size:.82rem;line-height:1.5}.library-section{margin-top:2rem}.library-section__head{padding-bottom:.35rem;border-bottom:1px solid var(--border)}.library-section__head .section-title__text{display:flex;align-items:baseline;gap:.5rem}.library-section__count{padding:0 .4rem;border-radius:9px;background:var(--panel);color:#666;font-size:.72rem;letter-spacing:normal}.library-section__note{margin:.5rem 0 .75rem}.library-list{gap:.4rem}.library-row__uses{font-style:normal;color:#a5731a}.library-empty{margin:.6rem 0 0;display:flex;flex-direction:column;align-items:center;gap:.6rem;text-align:center}.library-tabs{margin-top:1rem}.library-browser__filter{display:flex;justify-content:flex-end;margin:.6rem 0 .2rem}.library-state{font-weight:600}.library-state--published{color:#2f7a43}.library-state--withdrawn{color:#a5731a}.library-row__actions{display:flex;align-items:center;gap:.3rem}.library-browser--login{display:flex;flex-direction:column}.library-browser__login{flex:1;display:flex;align-items:center;justify-content:center;padding:1.5rem 0 4rem}.library-login{max-width:20rem;text-align:center}.library-login .login-form,.library-login .library-login__form{text-align:left}.library-login .login-form>.login-form__submit{align-self:stretch}.library-login__signup{margin:1rem 0 0;color:#777;font-size:.8rem}.selection-card__head{padding:.1rem .35rem .25rem}.selection-card__title{padding:.35rem .35rem .1rem}.selection-card .inspector-field{padding:.1rem .35rem}.selection-card__xyz{display:grid;grid-template-columns:repeat(3,1fr);gap:.3rem;padding:0 .35rem}.selection-card__xyz .inspector-field{padding:0;min-width:0}.selection-card .note{margin:.2rem .35rem 0}.selection-card__source{margin:0;padding:.3rem .35rem .1rem;font-size:.85rem;font-weight:600}.workbench-panel .asset-panel__title:before{content:"🪵 "}.workbench-measures,.workbench-view{padding:.5rem .75rem;border-top:1px solid var(--border)}.workbench-measures__row{display:flex;align-items:baseline;justify-content:space-between;font-size:.85rem;padding:.18rem 0}.workbench-measures__row span{color:#555}.workbench-measures__field{display:flex;align-items:center;gap:.5rem}.workbench-measures__field>:first-child{flex:1 1 auto;min-width:0}.workbench-measures__derived{flex:0 0 auto;font-size:.8rem;color:#555;white-space:nowrap}.workbench-view__row{display:flex;align-items:center;gap:.4rem;font-size:.85rem;padding:.1rem 0 .25rem}.workbench-view__label{flex:0 0 auto;white-space:nowrap;color:#666;font-size:.75rem}.workbench-view__actions{display:flex;gap:.3rem;margin-left:auto}.workbench-framings{display:flex;gap:.3rem;flex-wrap:wrap}.workbench-warning{margin:0;padding:.55rem .75rem;border-top:1px solid var(--border);border-radius:0}.workbench-publish{margin:.75rem .75rem 0}.workbench-back{margin:.75rem}.workbench-caption{position:absolute;top:12px;left:12px;z-index:10;display:flex;align-items:baseline;gap:.5rem;padding:.4rem .7rem;background:#ffffffeb;border:1px solid var(--border);border-radius:8px;box-shadow:0 2px 8px #00000014;pointer-events:none}.workbench-caption__name{font-size:.85rem;font-weight:600}.workbench-caption__face{font-size:.75rem;color:#777}.operations-panel{position:relative}.operations-panel__head{padding:0 .15rem .3rem}.operations-panel__count{min-width:1.4em;font-variant-numeric:tabular-nums;text-align:right;color:#9aa3ad}.operations-panel__list{display:flex;flex-direction:column;gap:.2rem;max-height:15rem;margin:0;padding:0;overflow-y:auto;list-style:none}.operations-panel__item{display:grid;grid-template-columns:1fr 1.35rem;align-items:center;gap:.2rem}.operations-panel__row{width:100%;padding:.28rem .4rem;border:1px solid var(--border);border-radius:6px;background:#fff;font:inherit;font-size:.78rem;color:#33383f;text-align:center;cursor:pointer}.operations-panel__row:hover{background:#f1f4f8}.operations-panel__row.is-selected{border-color:var(--accent);background:#eef4fb;color:#1f4368;font-weight:600}.operations-panel__row.is-failed{border-color:#a67c00;background:#fdf6e3;color:#6b5200}.operations-panel__row.is-skipped{opacity:.45}.operations-panel__delete{display:flex;justify-content:center}.operations-panel__note{right:calc(100% + .45rem);width:15rem;transform:translateY(-50%)}.align-panel{border-color:var(--eligible);width:21rem}.align-panel .attach-panel__title{color:var(--eligible)}.align-panel__row--angle{margin-bottom:.55rem}.align-panel__anglevalue{flex:1;padding:.3rem .5rem;font-variant-numeric:tabular-nums;color:#444;background:#f7f7f8;border:1px solid var(--border);border-radius:6px}.align-panel__mover{margin-top:.55rem}.align-panel__moverlabel{display:block;margin-bottom:.2rem;font-weight:600;color:#444}.align-panel__moversays{margin:.3rem 0 0;color:#666;line-height:1.35}.match-panel{width:21rem}.match-panel__aim{flex:1;display:inline-flex;align-items:baseline;gap:.3rem;font-size:.7rem;color:#555}.match-panel__aim select{padding:.05rem .2rem;border:1px solid var(--border);border-radius:5px;background:#fff;font-size:.7rem;color:#555;cursor:pointer}.match-panel__reading{margin:.1rem 0 0;font-size:.68rem;color:#2f6ea8;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.export-panel{width:18rem}.face-panel{width:15rem}.face-panel__facts{display:flex;flex-direction:column;gap:.15rem;margin:.6rem 0 0}.face-panel__fact{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;padding:.12rem 0;border-bottom:1px solid var(--border)}.face-panel__fact:last-child{border-bottom:none}.face-panel__fact dt{font-size:.72rem;color:#6b7280}.face-panel__fact dd{margin:0;font-size:.75rem;font-weight:600;color:#1f2933}.face-panel__mono{overflow:hidden;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;font-weight:400;text-overflow:ellipsis;white-space:nowrap}.tool-context-bar__button{margin-top:.3rem}.tool-context-bar{position:absolute;left:50%;bottom:.9rem;z-index:22;transform:translate(-50%);display:flex;align-items:center;gap:.6rem;max-width:min(38rem,90%);padding:.4rem .75rem;font-size:.75rem;line-height:1.35;color:#555;background:#fffffff0;border:1px solid var(--border);border-radius:8px;box-shadow:0 3px 12px #0000001f}.tool-context-bar.armed{color:#1f4368;border-color:var(--accent);background:#eef4fb}.tool-context-bar.suppressed{color:#7a4b00;border-color:#d79a2b;background:#fdf4e3}.tool-context-bar em{font-style:normal;color:#2f6ea8}.tab-strip{display:flex;align-items:center;gap:.5rem;padding:.3rem .5rem;background:var(--panel);border-bottom:1px solid var(--border);overflow-x:auto}.tab-strip__tabs{display:flex;gap:.3rem;min-width:0}.tab{display:flex;align-items:center;gap:.4rem;padding:.3rem .4rem .3rem .35rem;border:1px solid var(--border);border-radius:7px;background:#fff;cursor:pointer;font-size:.8rem;white-space:nowrap}.tab.active{border-color:var(--accent);box-shadow:0 0 0 2px #3b6ea533}.tab.tab--recovered{border-color:#d9a54a}.tab__badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;font-size:.65rem;font-weight:700;color:#fff}.tab__badge--furniture{background:var(--accent)}.tab__badge--assembly{background:#7a5cc0}.tab__badge--layout{background:#7a6a4f}.tab__name{max-width:12rem;overflow:hidden;text-overflow:ellipsis}.tab-strip__new{display:flex;gap:.3rem;margin-left:auto}.tab__dirty{color:var(--accent, #c9a06a);font-size:10px;line-height:1}:root{--plan-draft: #8b8d98;--plan-refused: #e5484d;--plan-measure: #7d7869}.planner-2d{isolation:isolate}.planner-2d__overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.plan-angle{background:var(--plan-draft);transform:translate(-50%,-50%);z-index:24}.plan-angle.annotation--refused{background:var(--plan-refused)}.plan-corner-angle{background:var(--plan-measure);transform:translate(-50%,-50%);z-index:23}.plan-clearance{background:var(--plan-draft);transform:translate(-50%,-50%);z-index:24}.link-symbol{display:flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:11px;line-height:1;font-weight:700;background:#fff;border:2px solid currentColor;border-radius:50%;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.link-symbol.dim{opacity:.35}.link-symbol.selected{box-shadow:0 0 0 3px #3b6ea559}.link-card{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%);width:17rem;padding:.45rem .55rem;color:#333;font-size:.72rem;font-weight:400;line-height:1.35;cursor:default;-webkit-user-select:none;user-select:none;z-index:5}.link-card.pinned{border-color:var(--accent);box-shadow:0 6px 20px #3b6ea547;z-index:60}.link-card__sentence{display:block}.link-card--tip{pointer-events:none;width:15rem}.link-card__edit{display:flex;gap:.35rem;margin-top:.45rem}.link-card__field{display:flex;flex-direction:column;gap:.1rem;flex:1;min-width:0;font-size:.66rem;color:#777}.link-card__field input{width:100%;min-width:0;padding:.15rem .3rem;border:1px solid var(--border);border-radius:5px;font-size:.74rem}.link-card__actions{display:flex;gap:.35rem;margin-top:.5rem}.face-card{display:flex;align-items:baseline;gap:.35rem;padding:.15rem .45rem;font-size:.7rem;color:#fff;white-space:nowrap;cursor:pointer;background:#1f2933eb;border-radius:4px;box-shadow:0 1px 4px #00000040;-webkit-user-select:none;user-select:none}.face-card__owner{color:#98a0aa}.face-card__owner:after{content:" ·"}.face-card__name{font-weight:600}.face-card__size{color:#c3c9d1}.offset-hint{padding:.1rem .35rem;background:#8c1c13;opacity:.82}.offset-hint--active{opacity:1}.offset-hint--align{background:#1f4368}.offset-hint--lifted{display:inline-block;transform:translateY(-1.35rem)}.measurement-pill{padding:.1rem .35rem;white-space:nowrap;opacity:.82}.measurement-pill--active{opacity:1}.measurement-pill--lifted{display:inline-block;transform:translateY(-1.35rem)}.surface-tip{padding:.2rem .45rem;background:#1f4368f0;border-radius:5px;box-shadow:none}.surface-tip.annotation--refused{display:block;max-width:15rem;line-height:1.35;text-align:center;font-weight:400;background:#282c30eb;box-shadow:0 2px 8px #00000047}.placement-dimension{background:#2f6fed;font-size:.72rem}.placement-dimension--lifted{display:inline-block;transform:translateY(-3rem)}.measure-hint{display:inline-flex;align-items:center;gap:.25rem;padding:.1rem .4rem;opacity:.85}.measure-hint--active{opacity:1;box-shadow:0 0 0 2px #ffffffb3,0 1px 4px #0000004d}.measure-hint--dim{opacity:.45}.measure-hint__glyph{font-weight:700;opacity:.85}.measure-hint__badge{padding:0 .3rem;border-radius:3px;background:#ffffffe6;color:#1f2933;font-size:.65rem;font-weight:600}.measure-hint__diameter{opacity:.8}.canvas-notice{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;background:#eef1f4eb}.canvas-notice__card{max-width:340px;padding:1.1rem 1.25rem;border:1px solid var(--border, #d4d8dd);border-radius:8px;background:#fff;box-shadow:0 6px 24px #0000001f;text-align:left}.canvas-notice__title{display:block;font-weight:600;font-size:.85rem;margin-bottom:.4rem}.canvas-notice__body{margin:0 0 .9rem;color:#666;font-size:.75rem;line-height:1.45}.canvas-notice__reload{display:block;margin:0 auto}.mill-edge-tip{display:inline-block;padding:.2rem .45rem;border-radius:5px;background:#fffffff2;border:1px solid var(--border);box-shadow:none;font-size:.72rem;font-weight:400;color:#1f2933;transform:translateY(-3em)}.mill-edge-tip__name{display:block;font-weight:600}.mill-edge-tip__why{display:block;color:#8a8a8a}.mill-edge-tip.annotation--refused .mill-edge-tip__why{max-width:16rem;color:#a06060}.cut-dimension{font-size:.72rem}.cut-dimension.annotation--refused{background:#8b8d98;font-weight:500;text-align:center;line-height:1.35}.angle-pill{background:#e5484d;font-size:.72rem;transform:translate(-50%,-50%)}.drill-hint{padding:.1rem .4rem;background:#8c1c13}.drill-hint.annotation--refused{background:#5c5f66}.drill-layouts{display:flex;flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none}.drill-layouts__pick{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;text-align:left}.drill-layouts__name{font-weight:600}.drill-layouts__hint{opacity:.72;font-size:.78rem}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;color:var(--text)}.app{display:flex;flex-direction:column;height:100vh}.workspace{flex:1;display:flex;min-height:0}.canvas-area{flex:1;position:relative;min-width:0;background:var(--bg)}.workspace-shell{flex:1;display:flex;flex-direction:column;min-height:0}.canvas-rail{position:absolute;top:12px;right:12px;z-index:10;display:flex;flex-direction:column;align-items:stretch;gap:.5rem;width:240px;pointer-events:none}.canvas-hints{position:absolute;left:12px;bottom:12px;z-index:10;width:240px;pointer-events:none}
