:root{--font-sans:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;--font-mono:"SFMono-Regular", ui-monospace, "Cascadia Code", Consolas, monospace;--clr-bg:#e7e7e3;--clr-canvas:#fbfdff;--clr-surface:#fbfaf7;--clr-surface-2:#f2f0ea;--clr-surface-3:#ebe8df;--clr-border:#d4d7dc;--clr-border-2:#bfc6cf;--clr-ink:#1d2530;--clr-muted:#657283;--clr-faint:#9aa5b2;--clr-accent:#12877d;--clr-accent-dim:#e2f1ee;--clr-blue:#2563eb;--clr-orange:#f59e0b;--clr-red:#dc2626;--clr-yellow:#d97706;--clr-rail:#12877d;--sp-xs:4px;--sp-sm:8px;--sp-md:16px;--sp-lg:24px;--sp-xl:40px;--r-sm:7px;--r-md:10px;--r-lg:16px;--r-xl:20px;--shadow-panel:0 22px 55px #28313c29, 0 1px 2px #28313c14;--shadow-sm:0 12px 30px #28313c1c, 0 1px 2px #28313c0f;--shadow-subtle:0 1px 0 #ffffffc7 inset}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;font-family:var(--font-sans);color:var(--clr-ink);background:var(--clr-bg);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5;overflow:hidden}#app{background:radial-gradient(circle at 12% -10%,#1769aa14,#0000 30%),radial-gradient(circle at 82% -18%,#12877d14,#0000 34%),linear-gradient(#f0f1ef 0%,#e3e4df 100%);flex-direction:column;width:100%;height:100%;display:flex}h1{letter-spacing:-.025em;font-size:18px;font-weight:750}h2{text-transform:uppercase;letter-spacing:.12em;color:#506174;font-size:11px;font-weight:760}h3{color:var(--clr-ink);font-size:13px;font-weight:700}p{color:var(--clr-muted);font-size:13px}code{font-family:var(--font-mono);font-size:12px}.app-header{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);justify-content:space-between;align-items:center;gap:var(--sp-md);z-index:20;background:#ffffffeb;border-bottom:1px solid #bec2c9c7;flex-shrink:0;height:58px;padding:0 18px;display:flex;box-shadow:inset 0 1px #ffffffc7,0 10px 26px #31374114}.app-header__brand{align-items:center;gap:10px;min-width:235px;display:flex}.app-header__logo{color:#fff;background:linear-gradient(135deg,#21c55d 0%,#0f8f86 100%);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:850;display:flex;box-shadow:0 10px 24px #0f8f8647}.app-header__title{color:var(--clr-ink);letter-spacing:-.02em;font-size:15px;font-weight:800}.app-header__subtitle{color:var(--clr-muted);background:var(--clr-surface-3);border-radius:999px;margin-left:2px;padding:2px 6px;font-size:11px}.app-header__nav{height:40px;box-shadow:var(--shadow-subtle);background:#efede7;border:1px solid #bec2c9d9;border-radius:999px;align-items:center;gap:4px;padding:4px;display:flex}.tab-btn{color:#5d6b7d;font-family:var(--font-sans);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:999px;align-items:center;height:30px;padding:0 16px;font-size:13px;font-weight:700;transition:background .15s,color .15s,box-shadow .15s;display:flex;position:relative}.tab-btn:hover{color:var(--clr-ink);background:#ffffffad}.tab-btn--active{color:#0c5f5a;background:#fbfaf7;box-shadow:0 7px 16px #28313c1f,0 0 0 1px #c4c8cfbd}.tab-btn--active:after{display:none}.app-header__actions{justify-content:flex-end;align-items:center;gap:6px;min-width:420px;display:flex}.export-menu-wrap{align-items:center;display:flex;position:relative}.export-menu{z-index:50;width:392px;max-height:min(640px,100vh - 90px);box-shadow:var(--shadow-panel);background:#fffffff5;border:1px solid #cbd5e1f0;border-radius:18px;padding:12px;position:absolute;top:calc(100% + 12px);right:0;overflow:auto}.export-menu[hidden]{display:none}.export-menu__header{border-bottom:1px solid var(--clr-border);flex-direction:column;gap:2px;margin-bottom:8px;padding:8px 10px 14px;display:flex}.export-menu__header strong{color:var(--clr-ink);font-size:15px}.export-menu__header span{color:var(--clr-muted);font-size:12px}.export-menu__item{width:100%;color:var(--clr-ink);font:inherit;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:14px;flex-direction:column;align-items:flex-start;gap:2px;margin-bottom:6px;padding:12px;transition:background .12s,border-color .12s,transform .12s;display:flex}.export-menu__item:hover{background:#f6f9fc;border-color:#d9e2ec;transform:translateY(-1px)}.export-menu__item span{font-size:13px;font-weight:800}.export-menu__item-head{justify-content:space-between;align-items:center;gap:10px;width:100%;display:flex}.export-menu__item-badge{color:#526173;letter-spacing:.08em;text-transform:uppercase;background:#fff;border:1px solid #d8dee6;border-radius:999px;align-items:center;padding:2px 8px;font-size:10px;font-weight:800;display:inline-flex}.export-menu__item small{color:var(--clr-muted);font-size:11px;line-height:1.35}.export-menu__bom{border-top:1px solid var(--clr-border);margin-top:10px;padding-top:10px}.export-menu__bom h3{color:var(--clr-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-size:11px}.app-workspace{flex-direction:column;flex:1;gap:0;min-height:0;padding:12px 14px 14px;display:flex;position:relative;overflow:hidden}.view-container{flex:1;width:100%;height:100%;min-height:0;display:none}.view-design{grid-template-columns:300px minmax(0,1fr) 310px;gap:14px;width:100%;height:100%}.view-3d{background:#f3f1eb;width:100%;height:100%}.view-export{width:100%;height:100%;padding:var(--sp-xl);background:var(--clr-bg);justify-content:center;align-items:flex-start;overflow-y:auto}.app-workspace[data-view=design] .view-design{display:grid}.app-workspace[data-view=viewer3d] .view-3d{display:block}.app-workspace[data-view=export] .view-export{display:flex}.panel{min-height:0;box-shadow:var(--shadow-sm);background:#fffffff5;border:1px solid #bec2c9c2;border-radius:18px;flex-direction:column;display:flex;overflow:hidden}.panel--left,.panel--right{border-left:1px solid #cbd5e1d9;border-right:1px solid #cbd5e1d9}.panel__header{background:linear-gradient(#fffffdf5,#f3f0e9e6);border-bottom:1px solid #e2e8f0f2;flex-shrink:0;justify-content:space-between;align-items:center;height:44px;padding:0 15px;display:flex}.panel__body{flex:1;padding:16px;overflow:auto}.panel__body--flush{padding:0}.canvas-area{background:linear-gradient(180deg, #fff 0%, var(--clr-canvas) 100%);flex-direction:column;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.canvas-area:before{content:"";pointer-events:none;z-index:1;background:linear-gradient(#ffffff59,#0000 90px);position:absolute;inset:0}.canvas-area__label{color:var(--clr-faint);-webkit-user-select:none;user-select:none;text-align:center;pointer-events:none;font-size:13px}#editor2d-canvas{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M12 2v20M2 12h20' stroke='%23111827' stroke-width='1.8' stroke-linecap='round'/%3E%3Ccircle cx='12' cy='12' r='2.1' fill='white' stroke='%23111827' stroke-width='1.5'/%3E%3C/svg%3E") 12 12,crosshair;width:100%;height:100%;display:block}#viewer3d-canvas{width:100%;height:100%;display:block}.app-statusbar{height:34px;color:var(--clr-muted);background:#ffffffeb;border-top:1px solid #cbd5e1e6;flex-shrink:0;align-items:center;gap:18px;padding:0 18px;font-size:12px;display:flex;box-shadow:0 -10px 32px #0f172a0a}.statusbar__item{align-items:center;gap:var(--sp-xs);display:flex}.statusbar__value{color:var(--clr-ink);font-variant-numeric:tabular-nums;font-weight:750}.statusbar__divider{background:var(--clr-border);width:1px;height:14px}.statusbar__validation{align-items:center;gap:var(--sp-xs);margin-left:auto;display:flex}.validation-dot{background:var(--clr-faint);border-radius:50%;flex-shrink:0;width:7px;height:7px}.validation-dot--ok{background:var(--clr-accent)}.validation-dot--warn{background:var(--clr-yellow)}.validation-dot--error{background:var(--clr-red)}.btn{align-items:center;gap:var(--sp-xs);color:#243244;height:34px;font:inherit;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;background:#fbfaf7;border:1px solid #d6d8dd;border-radius:11px;padding:0 12px;font-size:12.5px;font-weight:700;transition:background .12s,border-color .12s,color .12s,box-shadow .12s,transform .12s;display:inline-flex;box-shadow:0 1px 1px #0f172a0a}.btn:hover{background:#f3f1eb;border-color:#c2cfdd;transform:translateY(-1px)}.btn:focus-visible{outline-offset:2px;outline:3px solid #0f8f8638}.btn:disabled{cursor:not-allowed;opacity:.58;box-shadow:none;transform:none}.btn--primary{color:#fff;background:linear-gradient(#10a99e 0%,#0f8f86 100%);border-color:#0f8f86;box-shadow:0 10px 20px #0f8f8640}.btn--primary:hover{background:linear-gradient(#119f96 0%,#0c7770 100%);border-color:#0c7770}.btn--ghost{color:#526173;box-shadow:none;background:0 0;border-color:#0000}.btn--ghost:hover{color:var(--clr-ink);background:#fff;border-color:#d8e1eb;box-shadow:0 1px 2px #0f172a0f}.btn--sm{height:30px;padding:0 12px;font-size:12px}.catalog-section__title{margin-bottom:8px;padding:0 2px}.catalog-item{cursor:grab;background:0 0;border:1px solid #0000;border-radius:14px;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;margin-bottom:7px;padding:9px 10px;font-size:13px;transition:background .12s,border-color .12s,transform .12s,box-shadow .12s;display:grid}.catalog-item:hover{background:#fff;border-color:#dce5ef;transform:translateY(-1px);box-shadow:0 8px 18px #0f172a0f}.catalog-item__icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:800;display:flex}.catalog-item__label{min-width:0;color:var(--clr-ink);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:700;line-height:1.25;overflow:hidden}.catalog-item__dim{color:var(--clr-faint);font-variant-numeric:tabular-nums;font-size:11px}.properties-empty{height:100%;color:var(--clr-muted);text-align:center;justify-content:center;align-items:center;gap:var(--sp-sm);flex-direction:column;padding:20px;font-size:13px;display:flex}.viewer3d-wrap{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.viewer3d-wrap canvas{flex:1;min-height:0;display:block}.placeholder-overlay{justify-content:center;align-items:center;gap:var(--sp-sm);pointer-events:none;color:var(--clr-faint);text-align:center;flex-direction:column;font-size:13px;display:flex;position:absolute;inset:0}.placeholder-overlay__icon{opacity:.45;font-size:32px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.export-card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--r-lg);padding:var(--sp-lg);width:100%;max-width:700px;box-shadow:var(--shadow-panel);margin:auto 0}.export-card h2{color:var(--clr-ink);margin-bottom:var(--sp-sm);text-transform:none;letter-spacing:normal;font-size:20px;font-weight:760}.export-card p{margin-bottom:var(--sp-md);color:var(--clr-muted)}.export-actions{gap:var(--sp-sm);margin-bottom:var(--sp-lg);display:flex}.export-bom-section{border-top:1px solid var(--clr-border);padding-top:var(--sp-md)}.export-bom-section h3{text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--sp-md);color:var(--clr-muted);font-size:14px;font-weight:700}.bom-list-container{overflow-x:auto}.bom-table{border-collapse:collapse;text-align:left;width:100%;font-size:12.5px}.bom-table th{border-bottom:1px solid var(--clr-border);color:var(--clr-muted);text-transform:uppercase;letter-spacing:.08em;padding:8px 10px;font-size:10px;font-weight:760}.bom-table td{color:var(--clr-ink);vertical-align:middle;border-bottom:1px solid #edf2f7;padding:10px}.bom-table tr:hover td{background:#f3f1eb}.bom-empty{text-align:center;color:var(--clr-faint);padding:22px 0;font-style:italic}.bom-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px;display:grid}.bom-summary__item{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;gap:2px;padding:10px;display:flex}.bom-summary__item span{color:var(--clr-muted);font-size:11px}.bom-summary__item strong{color:var(--clr-ink);font-size:15px}.editor-toolbar{z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffeb;border:1px solid #cbd5e1eb;border-radius:999px;gap:6px;padding:5px;display:flex;position:absolute;top:14px;left:14px;box-shadow:0 12px 30px #0f172a1f,0 1px 2px #0f172a0f}.editor-toolbar .btn{height:30px;box-shadow:none;background:0 0;border-color:#0000;padding:0 12px;font-size:12px}.editor-toolbar .btn:hover{background:#f3f1eb;border-color:#d8e1eb;transform:none}.panel--left .panel__body{background:linear-gradient(#fbfaf7 0%,#f4f2ec 100%);padding:12px}.panel--right .panel__body{background:linear-gradient(#fbfaf7 0%,#f6f4ee 100%)}.catalog-section{grid-template-columns:1fr;gap:7px;margin-bottom:18px;display:grid}.catalog-section__title{appearance:none;cursor:pointer;color:#334155;background:0 0;border:0;grid-column:1/-1;justify-content:space-between;align-items:center;width:100%;margin:0 0 2px;padding:0 3px;display:flex}.catalog-section__title:after{content:"";background:linear-gradient(90deg,#94a3b857,#0000);flex:1;height:1px;margin-left:10px}.catalog-section__title strong{color:#64748b;margin-left:12px;font-size:16px;line-height:1}.catalog-section__body{gap:7px;display:grid}.catalog-section__body[hidden],.catalog-section--collapsed .catalog-section__body{display:none!important}.catalog-item{background:#fff;border:1px solid #e1e6ed;border-radius:13px;grid-template-columns:30px minmax(0,1fr);align-content:center;gap:8px;min-height:46px;margin:0;padding:8px 10px;display:grid;box-shadow:inset 0 1px #ffffffe0}.catalog-item:hover{background:#fff;border-color:#cfd6df;box-shadow:0 12px 28px #28313c1a,inset 0 1px #fffffff0}.catalog-item__icon{border-radius:10px;width:30px;height:30px;font-size:12px}.catalog-item__text{flex-direction:column;gap:1px;min-width:0;display:flex}.catalog-item__label{color:#111827;white-space:nowrap;text-overflow:ellipsis;align-self:center;font-size:12px;font-weight:760;line-height:1.25;overflow:hidden}.catalog-item__meta{color:var(--clr-faint);font-size:11px;line-height:1.2}.cat--background{color:#64748b;background:#eef2f7}.cat--rail{color:#0f766e;background:#d7f2ee}.cat--component{color:#2457d6;background:#e4edff}.cat--zone{color:#b65b16;background:#fff0d2}.cat--support{color:#475569;background:#e8edf3}.cat--drive{color:#0f766e;background:#def7ef}.cat--lift{color:#1d4ed8;background:#e7f0ff}.cat--electrical{color:#6d28d9;background:#ede9fe}.cat--carrier{color:#8a6500;background:#fff4bf}.properties-empty{color:#6b7787;background:#fff;border:1px solid #e1e6ed;border-radius:16px;max-width:250px;margin:auto;padding:18px 20px;box-shadow:0 1px 2px #0f172a0a}.properties-empty__icon{opacity:.4;font-size:20px}.properties-empty small{color:var(--clr-faint);font-size:12px;line-height:1.45}.properties-card{background:#fff;border:1px solid #e1e6ed;border-radius:16px;flex-direction:column;gap:12px;padding:14px;display:flex;box-shadow:0 1px 2px #0f172a0a}.properties-card--notice{background:#ecfdf5b8;border-color:#0f8f8659}.properties-card--compact{gap:10px;padding:12px}.properties-card__header{border-bottom:1px solid #edf2f7;flex-direction:column;gap:3px;padding-bottom:10px;display:flex}.properties-card__header--compact{gap:2px;padding-bottom:8px}.properties-card__header strong{color:#475569;letter-spacing:.08em;text-transform:uppercase;font-size:11px}.properties-card__header span{color:#111827;font-size:14px;font-weight:700}.properties-grid{grid-template-columns:minmax(0,90px) minmax(0,1fr);align-items:start;gap:10px 12px;display:grid}.properties-grid__label{color:var(--clr-muted);font-size:11.5px}.properties-grid__value{color:var(--clr-ink);word-break:break-word;min-width:0;font-size:12px;line-height:1.4}.properties-code{font-family:var(--font-mono);color:var(--clr-blue);font-size:12px}.properties-accent{color:var(--clr-accent);font-weight:700}.properties-summary{flex-direction:column;gap:12px;display:flex}.properties-summary--compact{gap:10px}.properties-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.properties-stat-grid--compact{gap:6px}.properties-stat{background:#f8fafc;border:1px solid #edf2f7;border-radius:12px;flex-direction:column;gap:2px;padding:9px 10px;display:flex}.properties-stat__label{color:var(--clr-muted);font-size:11px}.properties-stat strong{color:var(--clr-ink);font-size:14px;font-weight:700}.properties-list{flex-direction:column;gap:8px;list-style:none;display:flex}.properties-list li{color:var(--clr-ink);border-bottom:1px solid #edf2f7;justify-content:space-between;align-items:center;gap:12px;padding-bottom:8px;font-size:12.5px;display:flex}.properties-note{color:var(--clr-muted);font-size:12px;line-height:1.5}.properties-inline-note{color:var(--clr-muted);border-top:1px solid #edf2f7;padding-top:8px;font-size:11.5px;line-height:1.45}.editor-toolbar{background:#fbfaf7eb;border:1px solid #bec2c9c2;border-radius:18px;padding:6px;top:14px;left:14px;box-shadow:0 14px 32px #28313c24}.editor-toolbar .btn{background:0 0;border-radius:12px}.editor-toolbar .btn--active{color:#fff;background:#111827;border-color:#111827}.editor-toolbar__levels{border-left:1px solid #bec2c9c2;gap:4px;margin-left:4px;padding-left:8px;display:inline-flex}.editor-toolbar__meta{color:#475569;white-space:nowrap;align-items:center;margin-left:8px;font-size:11px;font-weight:700;display:inline-flex}.editor-toolbar__state{display:none}.viewport-fit-btn{z-index:11;color:#1f2937;letter-spacing:.01em;cursor:pointer;background:#fbfaf7f0;border:1px solid #bec2c9d1;border-radius:999px;height:34px;padding:0 14px;font-size:12px;font-weight:760;position:absolute;bottom:18px;right:18px;box-shadow:0 12px 30px #28313c24,0 1px 2px #28313c14}.viewport-fit-btn:hover{background:#fff;border-color:#9fb3c8;transform:translateY(-1px)}.export-menu{background:#fbfaf7fa;border-color:#cdd2d9}.export-menu__item:hover{background:#f4f2ec;border-color:#d7d2c6}.report-preview-modal{z-index:80;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#15202b3d;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.report-preview-modal[hidden]{display:none}.report-preview-modal__panel{background:#fff;border:1px solid #bec2c9d1;border-radius:20px;grid-template-rows:auto minmax(0,1fr);width:min(1400px,100%);height:min(900px,100vh - 120px);display:grid;overflow:hidden;box-shadow:0 30px 70px #0f172a38}.report-preview-modal__header{background:linear-gradient(#fffffffa,#f7f8faf5);border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.report-preview-modal__title{flex-direction:column;gap:2px;display:flex}.report-preview-modal__title strong{color:var(--clr-ink);font-size:14px}.report-preview-modal__title span{color:var(--clr-muted);font-size:12px}.report-preview-modal__actions{align-items:center;gap:8px;display:flex}.report-preview-modal__frame{background:#f2f4f7;border:0;width:100%;height:100%}.catalog-item--active,.catalog-item--active:hover{background:#f8fafc;border-color:#111827;box-shadow:0 0 0 2px #11182714,0 12px 28px #28313c1a}.catalog-item--active .catalog-item__icon{color:#fff;background:#111827}.project-settings-modal{z-index:1200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a6b;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.project-settings-modal[hidden]{display:none!important}.project-settings-modal__panel{border:1px solid var(--clr-border);width:min(560px,100vw - 48px);max-height:min(86vh,820px);box-shadow:var(--shadow-panel);background:#fff;border-radius:16px;flex-direction:column;display:flex;overflow:hidden}.project-settings-modal__header,.project-settings-modal__footer{background:linear-gradient(#fffffffa,#f7f8faf5);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.project-settings-modal__header{border-bottom:1px solid #edf2f7}.project-settings-modal__header strong{color:var(--clr-ink);font-size:14px}.project-settings-modal__body{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-height:0;padding:14px 16px;display:grid;overflow:auto}.settings-section{flex-direction:column;grid-column:1/-1;gap:3px;padding-top:6px;display:flex}.settings-section:first-child{padding-top:0}.settings-section strong{color:var(--clr-ink);letter-spacing:.06em;text-transform:uppercase;font-size:12px}.settings-section span{color:var(--clr-muted);font-size:12px}.settings-section--subgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:0;display:grid}.settings-field{gap:6px;display:grid}.settings-field span{color:var(--clr-muted);letter-spacing:.07em;text-transform:uppercase;font-size:11px;font-weight:760}.settings-field--checkbox{align-content:start}.settings-field--checkbox input{width:18px;height:18px;margin-top:4px}.properties-inline-form{border-top:1px solid #edf2f7;gap:10px;padding-top:10px;display:grid}.properties-inline-form label{gap:4px;display:grid}.properties-inline-form span{color:var(--clr-muted);letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:760}.properties-inline-form input{width:100%;color:var(--clr-ink);font:inherit;background:#fbfdff;border:1px solid #cbd5e1;border-radius:10px;padding:8px 10px;font-size:13px}.settings-field input,.settings-field select{width:100%;color:var(--clr-ink);font:inherit;background:#fbfdff;border:1px solid #cbd5e1;border-radius:12px;outline:none;padding:10px 12px;font-size:13px}.settings-field input:focus,.settings-field select:focus{border-color:#12877d;box-shadow:0 0 0 3px #12877d24}.project-settings-modal__footer{border-top:1px solid #edf2f7;justify-content:flex-end}.viewer3d-overlay{z-index:4;pointer-events:none;max-width:min(272px,100vw - 24px);position:absolute;top:10px;left:10px}.viewer3d-overlay__card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #bec2c9c7;border-radius:12px;gap:6px;width:100%;padding:8px 10px 9px;display:grid;box-shadow:0 10px 24px #28313c1f}.viewer3d-overlay__header{align-content:start;justify-items:start;gap:1px;display:grid}.viewer3d-overlay__toolbar{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:4px;display:flex}.viewer3d-overlay__toolbar .btn{pointer-events:auto}.viewer3d-overlay__toolbar .btn--active{color:#0f5f57;background:#12877d2e;border-color:#12877d8c}.viewer3d-overlay__fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.viewer3d-overlay__field{pointer-events:auto;grid-template-columns:auto 1fr;align-items:center;gap:6px;min-width:0;display:grid}.viewer3d-overlay__field-control{align-items:stretch;gap:4px;min-width:0;display:flex}.viewer3d-overlay__field-stepper{flex:none;grid-template-rows:1fr 1fr;gap:2px;display:grid}.viewer3d-overlay__step-btn{width:22px;min-height:0;color:var(--clr-ink);font:inherit;cursor:pointer;pointer-events:auto;background:#fff;border:1px solid #cbd5e1f2;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.viewer3d-overlay__step-btn:hover:not(:disabled){background:#ecfdf5e6;border-color:#0f8f8673}.viewer3d-overlay__step-btn:disabled{opacity:.45;cursor:not-allowed}.viewer3d-overlay__field-label{color:var(--clr-muted);letter-spacing:.04em;text-transform:uppercase;min-width:22px;font-size:10px;font-weight:700}.viewer3d-overlay__field-input{width:auto;min-width:0;color:var(--clr-ink);font:inherit;text-align:left;appearance:textfield;background:#fff;border:1px solid #cbd5e1f2;border-radius:7px;flex:auto;padding:4px 6px;font-size:12px;font-weight:600;line-height:1.2}.viewer3d-overlay__field-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.viewer3d-overlay__field-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.viewer3d-overlay__field-input:focus{border-color:#0f8f868c;outline:2px solid #0f8f8638}.viewer3d-overlay__field-input:disabled{opacity:.55;cursor:not-allowed;background:#f1f5f9e6}.viewer3d-overlay__header strong{color:var(--clr-ink);letter-spacing:.05em;text-transform:uppercase;font-size:11px;display:block}.viewer3d-overlay__header span{color:var(--clr-muted);font-size:10px;display:block}.viewer3d-overlay__concept{font-weight:600;color:#0f766e!important}.viewer3d-overlay .btn--xs{border-radius:7px;height:24px;padding:0 7px;font-size:11px}.viewer3d-overlay__stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.viewer3d-overlay__stats div{background:#f8fafceb;border:1px solid #e2e8f0eb;border-radius:8px;gap:1px;min-width:0;padding:4px 6px;display:grid}.viewer3d-overlay__stats div[data-status-tone=ok]{background:#ecfdf5eb;border-color:#86efaceb}.viewer3d-overlay__stats div[data-status-tone=warning]{background:#fffbebf0;border-color:#fcd34deb}.viewer3d-overlay__stats div[data-status-tone=risk]{background:#fff7edf2;border-color:#fb923ceb}.viewer3d-overlay__stats span{color:var(--clr-muted);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:9px;overflow:hidden}.viewer3d-overlay__stats strong{color:var(--clr-ink);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.viewer3d-fallback{z-index:3;color:#7f1d1d;max-width:720px;box-shadow:var(--shadow-sm);background:#fff8f8f5;border:1px solid #dc262647;border-radius:16px;padding:18px 20px;position:absolute;top:14px;left:14px;right:14px}.viewer3d-fallback strong{margin-bottom:8px;font-size:1.05rem;display:block}.viewer3d-fallback p{white-space:pre-line;margin:0 0 10px;line-height:1.45}.viewer3d-fallback__checks{margin:0 0 10px 18px;padding:0;line-height:1.45}.viewer3d-fallback__actions{flex-wrap:wrap;gap:8px;margin:0 0 10px;display:flex}.viewer3d-fallback__hint{color:#9a3412}#plan-fallback-canvas{width:100%;height:100%;display:block}.viewer3d-overlay__note{color:var(--clr-muted);font-size:10px;line-height:1.35}.viewer3d-overlay__note[hidden]{display:none}@media (width<=780px){.project-settings-modal__body,.settings-section--subgrid,.viewer3d-overlay__stats,.viewer3d-overlay__fields{grid-template-columns:1fr}}.catalog-section{margin-bottom:8px}.catalog-section__title{background:#ffffff94;border:1px solid #e2e8f0d1;border-radius:11px;min-height:34px;padding:0 8px 0 10px}.catalog-section__title:hover{background:#fff;border-color:#d6dde7}.catalog-section__title span{letter-spacing:.055em;text-transform:uppercase;font-size:11px;font-weight:820}.catalog-section__title:after{display:none}.catalog-section__body{padding-top:6px}.catalog-section--collapsed{margin-bottom:7px}.catalog-section--collapsed .catalog-section__title{background:#f4f2ecdb}.catalog-section--collapsed .catalog-section__body,.catalog-section__body[hidden]{display:none!important}.catalog-item{min-height:42px;padding:7px 9px}.catalog-item__meta{font-family:var(--font-mono);letter-spacing:-.01em;color:#6b7280;white-space:nowrap;text-overflow:ellipsis;font-size:10px;display:block;overflow:hidden}.panel__header-note{color:var(--clr-faint);letter-spacing:.04em;text-transform:none;margin-top:2px;font-size:10px;font-weight:600;display:block}.sales-mode .sales-mode-hidden,.sales-mode-only{display:none!important}.sales-mode .sales-mode-only{display:revert}.sales-mode .btn.sales-mode-only,.sales-mode .properties-card.sales-mode-only{display:inline-flex}.sales-mode .properties-card.sales-mode-only{display:block}.sales-mode .editor-toolbar{opacity:.92}.app-header__concept-badge{letter-spacing:.02em;color:#0f766e;white-space:nowrap;background:#e8f5f2;border:1px solid #99d5cf;border-radius:999px;align-items:center;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.statusbar__concept{color:#64748b;letter-spacing:.02em;margin-left:auto;margin-right:12px;font-size:11px;font-weight:600}#btn-sales-mode.btn--active{color:#0f766e;background:#e8f5f2;border-color:#99d5cf}.price-settings-modal,.price-settings-modal__panel{z-index:1200;position:fixed;inset:0}.price-settings-modal{background:#0f172a6b;justify-content:center;align-items:center;padding:24px;display:flex}.price-settings-modal[hidden]{display:none!important}.price-settings-modal__panel{border:1px solid var(--clr-border);width:min(720px,100vw - 48px);max-height:min(86vh,900px);box-shadow:var(--shadow-panel);background:#fff;border-radius:16px;flex-direction:column;display:flex;position:relative;inset:auto}.price-settings-modal__header,.price-settings-modal__footer{border-bottom:1px solid #edf2f7;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.price-settings-modal__footer{border-top:1px solid #edf2f7;border-bottom:0;flex-direction:column;align-items:stretch}.price-settings-modal__footer>div{justify-content:flex-end;gap:8px;display:flex}.price-settings-modal__disclaimer{color:#0f766e;margin:0;font-size:11px;line-height:1.45}.price-settings-modal__controls{border-bottom:1px solid #edf2f7;grid-template-columns:1fr 1fr;gap:10px;padding:12px 16px;display:grid}.price-settings-modal__list{gap:8px;padding:8px 16px 12px;display:grid;overflow:auto}.price-settings-row{background:#fbfcfe;border:1px solid #edf2f7;border-radius:10px;grid-template-columns:minmax(0,1fr) 120px;align-items:center;gap:10px;padding:8px 10px;display:grid}.price-settings-row__label{gap:2px;min-width:0;display:grid}.price-settings-row__label strong{font-size:12px}.price-settings-row__label small{color:var(--clr-muted);font-family:var(--font-mono);font-size:10px}.price-settings-row__price{justify-items:end;gap:4px;display:grid}.price-settings-row__line-total{color:var(--clr-muted);font-size:10px;font-weight:600}.price-settings-row input{border:1px solid var(--clr-border);width:100%;font:inherit;border-radius:8px;padding:7px 8px}.price-settings-empty{color:var(--clr-muted);margin:0;padding:12px 4px;font-size:12px;line-height:1.45}.price-settings-modal__total{background:#f8fffd;border:1px solid #bedbd5;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin:0 16px;padding:10px 12px;font-size:12px;display:flex}.price-settings-modal__total strong{color:#0f766e;font-size:15px}.properties-card--price{background:linear-gradient(#f8fffd,#fff);border-color:#bedbd5}.properties-price-summary{gap:8px;display:grid}.properties-price-summary__total{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.properties-price-summary__total strong{color:#0f766e;font-size:18px}.properties-price-summary__note{color:var(--clr-muted);margin:0;font-size:11px;line-height:1.4}.catalog-dimensions-ref{gap:4px;max-height:180px;display:grid;overflow:auto}.catalog-dimensions-ref__row{border-bottom:1px solid #f1f5f9;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:4px 0;font-size:11px;display:grid}.catalog-dimensions-ref__name{color:var(--clr-ink);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.catalog-dimensions-ref__dims{font-family:var(--font-mono);color:#0f766e;white-space:nowrap;font-size:10px}.validation-list{gap:6px;display:grid}.validation-list__item{text-align:left;width:100%;font:inherit;cursor:pointer;background:#fff;border:1px solid #edf2f7;border-radius:8px;padding:8px 10px;font-size:11px;line-height:1.35}.validation-list__item--error{color:#991b1b;background:#fff7f7;border-color:#fecaca}.validation-list__item--warning{color:#92400e;background:#fffbeb;border-color:#fde68a}.validation-list__item--info{color:#1d4ed8;background:#f8fbff;border-color:#dbeafe}.canvas-area canvas{touch-action:none}@media (pointer:coarse){.catalog-item{min-height:48px}.btn{min-height:40px}.editor-toolbar .btn{min-width:44px}}.bom-disclaimer{color:#0f5b55;background:#e8f5f2;border:1px solid #bedbd5;border-radius:8px;margin:8px 0 10px;padding:8px 10px;font-size:11px;line-height:1.4}.properties-actions{flex-wrap:wrap;gap:8px;display:flex}.properties-actions--grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.properties-actions--grid .btn,.properties-actions--selected .btn{justify-content:center;min-width:0}.properties-actions--selected{border-top:1px solid #edf2f7;margin-top:12px;padding-top:10px}.btn--danger{color:#991b1b;background:#fff7f7;border-color:#fecaca}.btn--danger:hover{color:#7f1d1d;background:#fee2e2;border-color:#fca5a5}.properties-card--guide{background:#fff}.properties-guide{color:var(--clr-muted);gap:6px;font-size:11.5px;line-height:1.35;display:grid}.properties-guide strong{min-width:72px;color:var(--clr-ink);font-family:var(--font-mono);font-size:11px;display:inline-flex}.catalog-section__label{align-items:center;gap:8px;min-width:0;display:inline-flex}.catalog-section__icon{color:#475569;background:#eef4f7;border-radius:8px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.catalog-section__icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.catalog-section__title[aria-expanded=true] .catalog-section__icon{color:#0f766e;background:#dff5f1}.layer-snapshot{gap:7px;display:grid}.layer-snapshot div{color:var(--clr-muted);border-bottom:1px solid #edf2f7;justify-content:space-between;align-items:center;gap:10px;padding:7px 0;font-size:12px;display:flex}.layer-snapshot div:last-child{border-bottom:0;padding-bottom:0}.layer-snapshot strong{color:var(--clr-ink);font-variant-numeric:tabular-nums}.properties-save-status{color:var(--clr-muted);gap:7px;font-size:12px;line-height:1.45;display:grid}.properties-save-status span{color:var(--clr-ink);font-weight:680}.properties-save-status small{color:var(--clr-muted);line-height:1.45}.app-toast{left:50%;bottom:calc(44px + var(--sp-md));z-index:1200;max-width:min(520px, calc(100vw - 2 * var(--sp-lg)));border-radius:var(--r-md);border:1px solid var(--clr-border);background:var(--clr-surface);color:var(--clr-ink);box-shadow:var(--shadow-sm);text-align:center;opacity:0;pointer-events:none;padding:11px 16px;font-size:13px;line-height:1.45;transition:opacity .18s,transform .18s;position:fixed;transform:translate(-50%)translateY(10px)}.app-toast--visible{opacity:1;transform:translate(-50%)translateY(0)}.app-toast[data-variant=error]{color:#9f1239;background:#fff5f5;border-color:#f5c2c7}.tablet-more-wrap,.tablet-more-menu{display:contents}.tablet-more-button,.tablet-panel-toggle,.tablet-drawer-backdrop,.tool-label-compact,.action-label-compact{display:none}.tablet-more-button{list-style:none}.tablet-more-button::-webkit-details-marker{display:none}@media (width<=1180px){html,body{overscroll-behavior:none}.app-header{gap:8px;height:64px;padding:0 12px}.app-header__brand{flex:none;min-width:auto}.app-header__title{text-overflow:ellipsis;white-space:nowrap;max-width:128px;overflow:hidden}.app-header__nav{flex:none;height:42px}.tab-btn{height:32px;padding:0 14px}.app-header__concept-badge{display:none}.app-header__actions{scrollbar-width:none;flex:none;justify-content:flex-end;min-width:0;padding:2px 0;overflow:visible}.app-header__actions::-webkit-scrollbar{display:none}.editor-toolbar::-webkit-scrollbar{display:none}.app-header__actions .btn{border-radius:14px;height:40px}.action-label-full,.tool-label-full{display:none}.action-label-compact,.tool-label-compact{display:inline}.tablet-more-wrap{flex:none;order:30;display:block;position:relative}#btn-load-sample{order:10}.export-menu-wrap{order:20}.tablet-more-button{display:inline-flex}.tablet-more-menu{z-index:70;-webkit-backdrop-filter:blur(24px)saturate(1.15);backdrop-filter:blur(24px)saturate(1.15);background:#fffffffb;border:1px solid #b8bfc9db;border-radius:20px;grid-template-columns:1fr;gap:2px;width:228px;padding:7px;display:none;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 28px 80px #0f172a33,0 1px 1px #0f172a0f}.tablet-more-wrap[open] .tablet-more-menu{display:grid}.tablet-more-menu .btn{width:100%;height:42px;box-shadow:none;background:0 0;border-color:#0000;border-radius:14px;justify-content:flex-start;padding:0 13px}.tablet-more-menu .btn:hover{background:#f3f1eb;transform:none}.app-workspace{padding:8px}.app-statusbar{white-space:nowrap;scrollbar-width:none;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff7;gap:14px;height:30px;padding-inline:14px;overflow-x:auto}.app-statusbar::-webkit-scrollbar{display:none}.statusbar__item,.statusbar__divider,.statusbar__validation{flex:none}.view-design{grid-template-columns:minmax(0,1fr);gap:0;position:relative}.canvas-area{border-radius:20px;grid-column:1;min-width:0}.tablet-panel-toggle{display:inline-flex}.editor-toolbar{-webkit-backdrop-filter:blur(22px)saturate(1.14);backdrop-filter:blur(22px)saturate(1.14);background:#fffffff0;border-color:#b8bfc9c7;border-radius:24px;align-items:center;gap:6px;max-width:calc(100% - 24px);padding:7px;scroll-padding-inline:8px;inset:auto auto 12px 50%;overflow-x:auto;transform:translate(-50%);box-shadow:0 18px 50px #0f172a2e,0 1px 1px #0f172a14}.editor-toolbar .btn{border-radius:16px;flex:none;min-width:46px;height:40px;padding:0 14px;font-weight:760}.editor-toolbar .btn--active{background:#0b1220;border-color:#0b1220;box-shadow:0 8px 18px #0f172a33}#btn-tool-straight{min-width:64px}.editor-toolbar__levels{flex:none}.editor-toolbar__meta{display:none}.viewport-fit-btn{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff7;height:44px;padding:0 16px;bottom:76px;right:12px}.viewer3d-overlay{max-width:min(282px,100vw - 24px);top:12px;left:12px}.viewer3d-overlay__card{-webkit-backdrop-filter:blur(22px)saturate(1.08);backdrop-filter:blur(22px)saturate(1.08);background:#ffffffeb;border-color:#b8bfc9cc;border-radius:18px;padding:11px;box-shadow:0 24px 64px #0f172a29,0 1px 1px #0f172a0f}.viewer3d-overlay__toolbar{gap:4px}.viewer3d-overlay .btn--xs{border-radius:10px;height:28px;padding:0 8px}.panel--left,.panel--right{z-index:42;opacity:0;pointer-events:none;width:min(380px,100vw - 32px);max-width:calc(100% - 24px);transition:opacity .18s,transform .18s;position:absolute;top:68px;bottom:12px;box-shadow:0 24px 70px #0f172a38,0 1px 2px #0f172a14}.panel--left{left:12px;transform:translate(-18px)scale(.98)}.panel--right{right:12px;transform:translate(18px)scale(.98)}.app-workspace[data-drawer=library] .panel--left,.app-workspace[data-drawer=properties] .panel--right{opacity:1;pointer-events:auto;transform:translate(0)scale(1)}.tablet-drawer-backdrop{z-index:35;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);opacity:0;pointer-events:none;background:#0f172a14;border:0;transition:opacity .18s;position:absolute;inset:0}.app-workspace[data-drawer=library] .tablet-drawer-backdrop,.app-workspace[data-drawer=properties] .tablet-drawer-backdrop{opacity:1;pointer-events:auto;display:block}.panel__header{height:52px}.panel__body{padding:14px}.catalog-item{background:#ffffff6b;border-radius:14px;min-height:52px}.view-3d{border-radius:20px;overflow:hidden}}@media (width<=820px){.app-header{flex-wrap:wrap;align-content:center;height:auto;min-height:64px;padding:8px 10px}.app-header__title,.app-header__subtitle{display:none}.app-header__actions{flex-basis:100%;order:3;justify-content:flex-start;width:100%}.app-workspace{padding:6px}.statusbar__concept,.statusbar__item--secondary,.statusbar__item--secondary+.statusbar__divider,.statusbar__item--coords+.statusbar__divider,.statusbar__item--coords{display:none}.tablet-more-menu{left:0;right:auto}.editor-toolbar{max-width:calc(100% - 16px);bottom:10px}.editor-toolbar .btn{padding:0 12px}.viewport-fit-btn{bottom:74px}.viewer3d-overlay{max-width:min(272px,100vw - 20px);top:10px;left:10px}.viewer3d-overlay__card{max-height:min(42vh,350px);overflow:auto}.viewer3d-overlay__note{display:none}.panel--left,.panel--right{width:auto;max-width:none;height:min(68vh,560px);inset:auto 8px 8px;transform:translateY(22px)scale(.99)}.app-workspace[data-drawer=library] .panel--left,.app-workspace[data-drawer=properties] .panel--right{transform:translateY(0)scale(1)}}
