:root{--raised:#15181c;--bg:#1c1f24;--field:#24282e;--hover:#2d3239;--line:#31363d;--line-strong:#444b54;--ink:#e4e7eb;--ink-2:#a7afb9;--ink-3:#8f98a3;--accent:#2b63d6;--accent-line:#3e86ff;--accent-ink:#8cb4ff;--accent-soft:#2a3550;--on-accent:#fff;--danger:#ff7b7b;--danger-fill:#c43a3a;--warn:#f5b860;--warn-bg:#3a2f1c;--place:#b9a6ff;--band:#e07a2f;--ax-x:#ff6b6b;--ax-y:#5fd17a;--ax-z:#6aaeff;--scene:#e8eaed;--shadow:0 6px 18px #00000059;--radius:3px;--control:28px;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", sans-serif;--font-num:ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", "DejaVu Sans Mono", Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--font-ui);color:var(--ink);background:var(--bg);accent-color:var(--accent-line);font-size:13px;line-height:1.4}.theme-light{--raised:#f3f4f6;--bg:#fff;--field:#fff;--hover:#f1f3f5;--line:#dde0e5;--line-strong:#c4c9d0;--ink:#1c1f24;--ink-2:#5c6470;--ink-3:#6b7280;--accent-ink:#2f6ae0;--accent-soft:#e6eefc;--danger:#c43a3a;--warn:#8a4b00;--warn-bg:#fff4e5;--shadow:0 6px 18px #0f141e1f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}::selection{background:var(--accent);color:var(--on-accent)}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}h1,h2,h3{margin:0}h2{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin-bottom:10px;font-size:11px;font-weight:600}h3{margin:20px 0 8px;font-size:12px;font-weight:600}.num,.part__dims,.group-row__detail,.finished strong,.dim-label,.sec-label,.catalog__price,.count{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:12px}:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px}button{font:inherit;color:inherit;background:var(--field);border:1px solid var(--line-strong);border-radius:var(--radius);min-height:var(--control);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 10px;transition:background .12s ease-out,border-color .12s ease-out,color .12s ease-out;display:inline-flex}button:hover:not(:disabled){background:var(--hover);border-color:var(--ink-3)}button:active:not(:disabled){background:var(--line)}button:disabled{opacity:.4;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}button.primary:hover:not(:disabled){background:#3470e6;border-color:#3470e6}button.danger{color:var(--danger)}button.danger:hover:not(:disabled){border-color:var(--danger)}button.small{min-height:24px;padding:0 8px;font-size:12px}button.icon{min-width:var(--control);color:var(--ink-2);background:0 0;border-color:#0000;padding:0 6px}button.icon:hover:not(:disabled){color:var(--ink);background:var(--hover);border-color:#0000}button.small.icon{min-width:24px;padding:0 4px}button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent-line);color:var(--ink)}button svg{flex:none}input,select{font:inherit;color:inherit;border:1px solid var(--line-strong);border-radius:var(--radius);min-height:var(--control);background:var(--field);min-width:0;padding:0 8px}input::placeholder{color:var(--ink-3)}input:focus,select:focus{border-color:var(--accent-line);box-shadow:0 0 0 1px var(--accent-line);outline:none}input[type=checkbox],input[type=radio]{width:15px;height:15px;min-height:0;margin:0}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px;box-shadow:none}input[type=color]{width:40px;height:var(--control);padding:0 2px}input[type=file]{background:0 0;border:none;min-height:0;padding:0}[data-tip]{position:relative}[data-tip]:hover:after,[data-tip]:focus-visible:after{content:attr(data-tip);z-index:300;border-radius:var(--radius);border:1px solid var(--line-strong);color:#e4e7eb;text-align:left;white-space:pre-line;pointer-events:none;width:max-content;max-width:280px;box-shadow:var(--shadow);background:#0e1013;padding:6px 8px;font-size:12px;font-weight:400;line-height:1.4;animation:.12s ease-out .4s both tip-in;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}[data-tip-pos=top]:hover:after,[data-tip-pos=top]:focus-visible:after{top:auto;bottom:calc(100% + 6px)}[data-tip-align=start]:hover:after,[data-tip-align=start]:focus-visible:after{left:0;transform:none}[data-tip-align=end]:hover:after,[data-tip-align=end]:focus-visible:after{left:auto;right:0;transform:none}@keyframes tip-in{0%{opacity:0}to{opacity:1}}.app{flex-direction:column;height:100%;display:flex}.toolbar{background:var(--raised);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:8px;height:48px;padding:0 10px;display:flex}.toolbar__brand{flex:none;align-items:center;gap:6px;display:flex}.logo{width:26px;height:26px;display:block}.project-name{background:0 0;border-color:#0000;width:160px;font-weight:600}.project-name:hover{border-color:var(--line-strong)}.toolbar__tools{align-items:center;gap:8px;min-width:0;display:flex}.toolbar__group{border-left:1px solid var(--line);align-items:center;gap:2px;padding-left:8px;display:flex}.toolbar__group--end{margin-left:auto}.toolbar__label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin-right:6px;font-size:11px;font-weight:600}.tool{background:0 0;border-color:#0000;padding:0 6px}.tool:hover:not(:disabled){border-color:#0000}.tool svg{color:var(--ink-2)}.tool:hover:not(:disabled) svg,.tool[aria-pressed=true] svg{color:var(--ink)}.tool.primary svg{color:var(--on-accent)}@media (width<=1799px){.toolbar__label,.tool--secondary .tool__text{display:none}.project-name{width:116px}}@media (width<=1359px){.tool .tool__text{display:none}}.tabs{background:var(--bg);border:1px solid var(--line);border-radius:calc(var(--radius) + 1px);flex:none;gap:2px;padding:2px;display:flex}.tabs button{min-height:24px;color:var(--ink-2);background:0 0;border:none;padding:0 12px}.tabs button:hover:not(:disabled){background:var(--hover);color:var(--ink)}.tabs button[aria-selected=true]{background:var(--field);color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent-line);font-weight:600}.menu{position:relative}.menu__list{z-index:200;background:var(--bg);border:1px solid var(--line-strong);border-radius:calc(var(--radius) + 1px);min-width:220px;box-shadow:var(--shadow);margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);right:0}.menu__list button{background:0 0;border-color:#0000;justify-content:flex-start;width:100%}.menu__list button:hover:not(:disabled),.menu__list button:focus-visible{background:var(--hover);border-color:#0000}.menu__list kbd{margin-left:auto}.lang-switch{border-left:1px solid var(--line);color:var(--ink-2);align-items:center;margin-left:4px;padding-left:8px}.lang-switch svg{margin-right:4px}.lang-switch button{font-weight:600}kbd{font-family:var(--font-num);color:var(--ink-3);font-size:11px}.segmented{gap:2px;display:inline-flex}.workspace{flex:1;grid-template-columns:248px 1fr 320px;min-height:0;display:grid}.workspace--single{display:block;overflow:auto}.sidebar{background:var(--bg);min-height:0;padding:12px;overflow-y:auto}.sidebar--left{border-right:1px solid var(--line)}.sidebar--right{border-left:1px solid var(--line)}.viewport{background:var(--scene);min-width:0;min-height:0;position:relative}.viewport-canvas{position:absolute;inset:0}.float-bar,.view-buttons,.place-bar{z-index:20;background:var(--bg);border:1px solid var(--line-strong);border-radius:calc(var(--radius) + 1px);box-shadow:var(--shadow)}.view-buttons{align-items:center;gap:2px;padding:3px;display:flex;position:absolute;top:10px;left:10px}.view-buttons button{background:0 0;border-color:#0000;min-height:26px;padding:0 8px}.view-buttons button:hover:not(:disabled){background:var(--hover);border-color:#0000}.view-buttons button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent-line)}.view-buttons__sep{background:var(--line);align-self:stretch;width:1px;margin:3px 4px}.viewport-error{text-align:center;color:#1c1f24;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex;position:absolute;inset:0}.viewport-error .hint{color:#5c6470;max-width:440px}.viewport-canvas--placing{cursor:crosshair}.place-bar{border-color:var(--place);max-width:calc(100% - 20px);box-shadow:0 0 0 1px var(--place), var(--shadow);flex-wrap:wrap;align-items:center;gap:12px;padding:5px 6px 5px 12px;display:flex;position:absolute;top:50px;left:10px}.place-bar strong{color:var(--place)}.place-bar .muted{color:var(--ink-2);font-size:12px}.place-bar label{color:var(--ink-2);align-items:center;gap:6px;display:flex}.place-bar .num-input{width:84px}.selection-bar{align-items:center;gap:2px;max-width:calc(100% - 20px);padding:3px;animation:.16s cubic-bezier(.16,1,.3,1) bar-in;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.selection-bar__label{text-overflow:ellipsis;white-space:nowrap;max-width:220px;padding:0 10px 0 8px;font-weight:600;overflow:hidden}.selection-bar__sep{background:var(--line);align-self:stretch;width:1px;margin:3px 4px}.selection-bar button{min-width:30px;min-height:30px}.selection-bar button.icon[aria-pressed=true]{background:var(--accent-soft);color:var(--ink)}.selection-bar button.danger{color:var(--danger)}@keyframes bar-in{0%{opacity:0;transform:translate(-50%,8px)}}@media (prefers-reduced-motion:reduce){.selection-bar{animation:none}}.count{color:var(--ink-2);background:var(--field);border-radius:var(--radius);letter-spacing:0;margin-left:6px;padding:0 5px}.parts{margin:0 -6px;padding:0;list-style:none}.part{text-align:left;background:0 0;border:1px solid #0000;justify-content:flex-start;align-items:center;gap:8px;width:100%;min-height:26px;padding:0 6px;display:flex}.part:hover:not(:disabled){border-color:#0000}.part--selected,.part--selected:hover:not(:disabled),.group-row__label--selected,.group-row__label--selected:hover:not(:disabled){color:var(--ink);background:#24408a;border-color:#24408a}.part--selected .part__dims,.group-row__label--selected .group-row__detail{color:#b8c4d6}.parts-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.parts-head button{text-transform:none;letter-spacing:0;font-weight:500}.part-row{align-items:center;display:flex}.part-row .part{flex:1;min-width:0}.part-row--hidden .part{opacity:.45}.eye{min-width:26px;min-height:24px;color:var(--ink-3);background:0 0;border:none;flex:none;padding:0}.eye:hover:not(:disabled){background:var(--hover);color:var(--ink)}.eye--mixed{opacity:.6}.eye--hidden,.eye[aria-pressed=true]{color:var(--ink-3);background:0 0;border:none}.group-row{align-items:center;margin-top:6px;display:flex}.group-row--1{margin-top:2px;padding-left:16px}.group-row__caret{min-width:22px;min-height:24px;color:var(--ink-3);background:0 0;border:none;padding:0}.group-row__caret:hover:not(:disabled){color:var(--ink);background:0 0}.group-row__label{text-align:left;background:0 0;border:1px solid #0000;flex:1;justify-content:flex-start;align-items:center;gap:8px;min-width:0;padding:2px 6px;font-weight:600;display:flex}.group-row__label:hover:not(:disabled){border-color:#0000}.group-row--1 .group-row__label{font-weight:500}.group-row__name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.group-row__detail{color:var(--ink-2);font-weight:400}.group-row--0 .group-row__label{flex-direction:column;align-items:flex-start;gap:0}.group-row--0 .group-row__name{width:100%}.part__swatch{border:1px solid #ffffff40;border-radius:2px;flex:none;width:10px;height:10px}.part__name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.part__dims{color:var(--ink-2)}.hint{color:var(--ink-2);font-size:12px;line-height:1.45}.warning{background:var(--warn-bg);color:var(--warn);border:1px solid color-mix(in srgb, var(--warn) 40%, transparent);border-radius:var(--radius);align-items:flex-start;gap:8px;padding:8px;font-size:12px;display:flex}.warning svg{flex:none;margin-top:1px}.warning>span{flex:1}.props{flex-direction:column;display:flex}.props__title{text-transform:none;letter-spacing:0;color:var(--ink);align-items:baseline;gap:8px;margin:0 0 12px;font-size:14px;font-weight:600;display:flex}.props__title .muted{font-size:12px;font-weight:400}.field{flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.field>span:first-child{color:var(--ink-2);font-size:12px}.field--compact{margin-bottom:6px}.finished{background:var(--field);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:1fr 1fr;gap:8px;padding:8px 10px;display:grid}.finished__label{color:var(--ink-2);font-size:11px;display:block}.finished strong{font-size:13px}.dims{grid-template-columns:auto 1fr 1fr;align-items:center;gap:6px;display:grid}.dims__head{color:var(--ink-2);font-size:11px}.dims__label{color:var(--ink-2);font-size:12px}.num-input{min-height:var(--control);border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--field);align-items:center;min-width:0;display:flex}.num-input:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 1px var(--accent-line)}.num-input input{box-shadow:none;width:100%;min-height:calc(var(--control) - 2px);text-align:right;min-width:40px;font-family:var(--font-num);font-variant-numeric:tabular-nums;background:0 0;border:none;outline:none;padding:0 2px 0 6px;font-size:12.5px}.num-input input:focus{box-shadow:none}.num-input input:disabled{color:var(--ink-3)}.num-input:has(input:disabled){background:0 0;border-style:dashed}.num-input__suffix{color:var(--ink-3);padding-right:6px;font-size:11px}.num-input__axis{min-width:20px;font-family:var(--font-num);border-right:1px solid var(--line);align-self:stretch;place-items:center;font-size:11px;font-weight:700;display:grid}.num-input__axis--x{color:var(--ax-x)}.num-input__axis--y{color:var(--ax-y)}.num-input__axis--z{color:var(--ax-z)}.num-input--invalid,.num-input--invalid:focus-within{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}.axis-x{color:var(--ax-x)}.axis-y{color:var(--ax-y)}.axis-z{color:var(--ax-z)}.row{flex-wrap:wrap;align-items:center;gap:4px;margin:10px 0;display:flex}.row__label{color:var(--ink-2);margin-right:4px;font-size:12px}.edges{grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);grid-template-areas:"top top top""left board right""bottom bottom bottom";align-items:end;gap:6px;display:grid}.edges__board{grid-area:board;place-items:center;height:64px;display:grid}.edges__board svg{overflow:visible}.edges .field{margin:0}.edges__top,.edges__bottom{justify-self:center;width:calc(50% - 3px)}.edges__top{grid-area:top}.edges__bottom{grid-area:bottom}.edges__left{grid-area:left}.edges__right{grid-area:right}.edges__face{fill:var(--field);stroke:var(--line-strong)}.edges__edge{stroke:var(--line-strong);stroke-width:2px}.edges__edge--banded{stroke:var(--band);stroke-width:4px}.joints{margin:0;padding:0;list-style:none}.joints li{border-bottom:1px solid var(--line);grid-template-columns:1fr 86px auto;align-items:center;gap:6px;padding:4px 0;font-size:12px;display:grid}.summary-list{grid-template-columns:1fr auto;gap:4px 12px;margin:0 0 4px;font-size:12px;display:grid}.summary-list dt{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.summary-list dd{text-align:right;margin:0}.help{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.help summary{cursor:pointer;align-items:center;gap:6px;margin-bottom:8px;font-weight:600;list-style:none;display:flex}.help summary::-webkit-details-marker{display:none}.help summary svg{color:var(--ink-3);transition:transform .12s ease-out}.help[open] summary svg{transform:rotate(90deg)}.help ol{color:var(--ink-2);margin:0;padding-left:20px;line-height:1.55}.help strong{color:var(--ink)}.dim-label{color:#1f5fd6;white-space:nowrap;background:#fffffff0;border:1px solid #1f5fd6;border-radius:2px;padding:0 4px;font-weight:600}.dim-label--x{color:#c92a2a;border-color:#c92a2a}.dim-label--y{color:#237032;border-color:#237032}.dim-label--z{color:#1971c2;border-color:#1971c2}.dim-label--gap{color:#3d434b;border-style:dashed;border-color:#5c6470}.dim-label--tape{font-weight:700}.dim-label--live{background:#fff}.dim-label.dim-label--room{color:#6f695e;border-color:#9a9488;font-weight:500}.dim-label.dim-label--place{color:#6741d9;border-color:#6741d9}.tape-dot{background:#fff;border:2px solid #212529;border-radius:50%;width:9px;height:9px}.tape-dot--start{background:#212529}.modal-backdrop{z-index:100;background:#080a0d99;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--bg);border:1px solid var(--line-strong);border-radius:calc(var(--radius) + 2px);width:min(620px,100%);max-height:calc(100vh - 32px);padding:0 20px;overflow-y:auto;box-shadow:0 20px 50px #00000080}.modal--wide{width:min(820px,100%)}.modal--drawer{width:min(1000px,100%)}.modal__head{z-index:2;background:var(--raised);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin:0 -20px 14px;padding:12px 12px 12px 20px;display:flex;position:sticky;top:0}.modal__head h2{text-transform:none;letter-spacing:0;color:var(--ink);margin:0;font-size:14px;font-weight:600}.modal__actions{z-index:2;background:var(--raised);border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:8px;margin:16px -20px 0;padding:10px 20px;display:flex;position:sticky;bottom:0}.modal__actions .spacer{flex:1}.table--edit .code-input{width:150px}.catalog{position:relative}.catalog__info{max-width:220px;color:var(--ink-2);margin-top:2px;font-size:11px}.catalog__info>div{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.catalog__warn{color:var(--danger);font-weight:600}.catalog__list{z-index:10;background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius);width:520px;max-height:280px;box-shadow:var(--shadow);margin:0;padding:4px 0;font-size:12px;list-style:none;position:absolute;top:30px;left:0;overflow-y:auto}.catalog__list li{cursor:pointer;gap:8px;padding:4px 8px;display:flex}.catalog__list li.active{background:var(--accent-soft)}.catalog__code{width:52px;color:var(--ink-2);font-family:var(--font-num);flex:none}.catalog__name{flex:1}.catalog__price{color:var(--ink-2);flex:none}.code-input--missing input{border-color:var(--warn)}.openings .num-input{width:78px}.openings__note td{color:var(--ink-2);padding:2px 8px;font-size:12px}.openings__problem td{color:var(--warn);background:var(--warn-bg);padding:2px 8px;font-size:12px}.drawer-parts td,.drawer-parts th{font-size:12px}.form h3{margin:16px 0 6px}.form__row2,.form__row3{gap:10px;display:grid}.form__row2{grid-template-columns:1fr 1fr}.form__row3{grid-template-columns:1fr 1fr 1fr}.segmented--wide{margin-bottom:12px;display:flex}.segmented--wide button{flex:1}.check{align-items:center;gap:6px;font-size:13px;display:flex}.check .num-input{width:80px}.table{border-collapse:collapse;background:var(--bg);width:100%}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;padding:6px 8px}.table th{color:var(--ink-2);background:var(--raised);font-size:11px;font-weight:600}.table th.group{text-align:center}.table .num{text-align:right}.table .strong{font-weight:700}.table .muted{color:var(--ink-2)}.table tbody tr{cursor:pointer}.table tbody tr:hover{background:var(--hover)}.table--compact td{padding:4px 8px}.table--compact tbody tr,.table--edit tbody tr{cursor:default}.table--edit td{padding:4px}.table--edit input:not([type]){width:100%}.table--edit td:has(>.num-input){width:104px}.names{max-width:280px}.band{white-space:nowrap}.band--none{color:var(--line-strong)}.band__dot{vertical-align:middle;border-radius:50%;width:9px;height:9px;margin-right:5px;display:inline-block}.cutlist{max-width:1300px;min-height:100%;padding:20px 24px}.cutlist__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.cutlist__head h1{font-size:20px;font-weight:600}.cutlist__actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cutlist .warning{align-items:center;margin-bottom:16px}.summary{flex-wrap:wrap;gap:32px;margin-top:24px;display:flex}.summary section{min-width:280px}.summary h2{color:var(--ink);text-transform:none;letter-spacing:0;margin-bottom:8px;font-size:12px}.print-only{display:none}.toast{border-radius:calc(var(--radius) + 1px);color:var(--ink);background:var(--raised);border:1px solid var(--line-strong);box-shadow:var(--shadow);z-index:200;cursor:pointer;align-items:flex-start;gap:8px;max-width:min(640px,90vw);padding:10px 14px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast svg{flex:none;margin-top:1px}.toast--info svg{color:var(--accent-ink)}.toast--warn{border-color:var(--warn);background:var(--warn-bg);color:var(--warn)}.toast--error{border-color:var(--danger-fill);background:var(--danger-fill);color:#fff}@media (width<=1100px){.workspace{grid-template-columns:200px 1fr 280px}}@media print{.toolbar,.no-print,.toast{display:none!important}.print-only{color:#444;font-size:11px;display:block}:root,body{background:#fff;font-size:11px}.workspace--single{overflow:visible}.cutlist{max-width:none;padding:0}.table th,.table td{border-bottom:1px solid #999;padding:3px 5px}.table tbody tr{break-inside:avoid}.band__dot{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.drawer-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:20px;display:grid}@media (width<=900px){.drawer-layout{grid-template-columns:minmax(0,1fr)}}.field--linked{background:var(--accent-soft);border-radius:var(--radius);box-shadow:0 0 0 4px var(--accent-soft)}.drawer-section{position:sticky;top:60px}.drawer-section h3{margin:14px 0 6px}.drawer-section svg{border:1px solid var(--line);border-radius:var(--radius);background:#fafbfc;width:100%;height:auto;display:block}.drawer-section .floor{fill:#e6dfd2;stroke:#b5aa96}.drawer-section .limit{stroke:#9aa1ad;stroke-dasharray:4 3}.drawer-section .sec-part{stroke:#4b5563;stroke-width:1px}.drawer-section .sec-part--front{fill:#f2c59a}.drawer-section .sec-part--side{fill:#eef1f5;stroke:#9aa1ad}.drawer-section .sec-part--wallF,.drawer-section .sec-part--wallB{fill:#b9c6d6}.drawer-section .sec-part--bottom{fill:#cdbde6}.drawer-section .sec-part.lit{stroke:#1f5fd6;stroke-width:2.5px}.drawer-section .sec-dim line{stroke:#6b7280;stroke-width:1px}.drawer-section .sec-dim .ext{stroke:#c3c8d0;stroke-dasharray:2 2}.drawer-section .sec-dim text{font-size:10px;font-family:var(--font-num);fill:#374151}.drawer-section .sec-dim .hit{fill:#0000}.drawer-section .sec-dim.lit line{stroke:#1f5fd6;stroke-width:2px}.drawer-section .sec-dim.lit .ext{stroke:#1f5fd6;stroke-width:1px}.drawer-section .sec-dim.lit text{fill:#1f5fd6;font-weight:700}.drawer-3d{border:1px solid var(--line);border-radius:var(--radius);cursor:grab;height:360px;position:relative;overflow:hidden}.drawer-3d:active{cursor:grabbing}.sec-label{visibility:hidden;border:1.5px solid var(--dim,#6b7280);color:var(--dim,#374151);white-space:nowrap;cursor:default;background:#fffffff2;border-radius:2px;padding:0 4px;font-size:11px;font-weight:600;position:absolute;top:0;left:0}.sec-label.lit{background:var(--dim,#1f5fd6);color:#fff;z-index:1;font-weight:700}.sec-label.faded{opacity:.35}.dim-dot{vertical-align:baseline;border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block}.drawer-section__legend{margin:8px 0 4px;padding:0;font-size:12px;list-style:none}.drawer-section__legend li{border-radius:var(--radius);justify-content:space-between;padding:2px 6px;display:flex}.drawer-section__legend li.lit{background:var(--accent-soft)}.cabinet-preview{border:1px solid var(--line);border-radius:var(--radius);background:#fafbfc;flex:none;display:block}.library__preview{width:80px;padding:4px 0}.library__save{align-items:flex-end}.library__save .hint{padding-bottom:8px}.library__name{flex:1;margin-bottom:0}.library__actions{justify-content:flex-end;gap:6px;display:flex}.cabinet-size{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.cabinet-units{margin:0 0 8px;padding:0;list-style:none}.cabinet-units li{justify-content:space-between;align-items:center;gap:8px;padding:3px 0;display:flex}.cabinet-units .muted,.muted{color:var(--ink-2)}.warn-icon{color:var(--warn)}.landing{--brand:#ffb547;flex-direction:column;gap:16px;max-width:480px;min-height:100%;margin:0 auto;padding:16px 20px 32px;font-size:16px;line-height:1.5;display:flex}.landing__top{align-items:center;gap:10px;display:flex}.landing__top .logo{width:32px;height:32px}.landing__name{margin-right:auto;font-size:20px;font-weight:800}.landing__name em{color:var(--brand);font-style:normal}.landing .lang-switch{border-left:0}.landing .lang-switch button{min-height:32px;font-size:14px}.landing__tagline{text-wrap:balance;margin:4px 0 0;font-size:28px;font-weight:800;line-height:1.15}.landing__video{aspect-ratio:9/16;object-fit:contain;background:#0e1014;border-radius:12px;width:100%;max-height:60vh;display:block}.landing__points{text-wrap:pretty;gap:4px;margin:0;padding-left:1.4em;display:grid}.landing__points li::marker{color:var(--brand);font-weight:700}.landing__desktop{color:var(--ink-2);text-wrap:pretty;margin:0}button.landing__share{white-space:normal;text-align:center;background:var(--brand);border-color:var(--brand);color:#0e1014;border-radius:10px;justify-content:center;gap:10px;min-height:52px;padding:10px 16px;font-size:17px;font-weight:700}button.landing__share:hover:not(:disabled){background:#ffc670;border-color:#ffc670}.landing__note{color:var(--ink-2);margin:0;font-size:14px}.landing__url{font-family:var(--font-num);color:var(--ink);-webkit-user-select:all;user-select:all;word-break:break-all}button.landing__open{min-height:44px;color:var(--ink-2);text-underline-offset:3px;background:0 0;border:0;align-self:center;font-size:15px;text-decoration:underline}
