:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--p2-accent:#0071e3;--p2-accent-hover:#0063c6;--p2-page:#fff;--p2-surface:#fff;--p2-surface-2:#f0f2f5;--p2-zebra:#fafbfc;--p2-chapter:#eef1f5;--p2-chapter-strong:#dde2e8;--p2-chapter-strong2:#d2d8e0;--p2-select-bg:#0071e333;--p2-hover-bg:#0071e321;--p2-select-text:#0071e3;--p2-border:#ebeef2;--p2-border-strong:#cbd2db;--p2-text:#18212f;--p2-text-2:#5f6b7a;--p2-text-3:#8a94a3;--p2-state-blue-bg:#0071e31f;--p2-state-blue-tx:#0c447c;--p2-state-green-bg:#34c75924;--p2-state-green-tx:#1d7a36;--p2-state-amber-bg:#ff950029;--p2-state-amber-tx:#8a4f00;--p2-state-purple-bg:#af52de24;--p2-state-purple-tx:#6a2096;--p2-state-red-bg:#ff3b3024;--p2-state-red-tx:#b3261c;--p2-state-gray-bg:#63636624;--p2-state-gray-tx:#48484a;--p2-shadow-subtle:0 1px 2px #0f172a11;--p2-shadow-card:0 2px 4px #0f172a0d, 0 8px 24px #0f172a1b;--p2-shadow-sidebar:1px 0 3px #0f172a0d;--p2-focus-ring:0 0 0 3px #0071e359}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--p2-accent:#0a84ff;--p2-accent-hover:#3398ff;--p2-page:#1c1c1e;--p2-surface:#2c2c2e;--p2-surface-2:#3a3a3c;--p2-zebra:#252527;--p2-chapter:#2c2c2e;--p2-chapter-strong:#363638;--p2-chapter-strong2:#262626;--p2-select-bg:#3a3a3c;--p2-hover-bg:#343436;--p2-select-text:#f2f3f5;--p2-border:#3a3a3c;--p2-border-strong:#48484a;--p2-text:#f2f3f5;--p2-text-2:#aeb6c2;--p2-text-3:#7c8694;--p2-state-blue-bg:#0a84ff38;--p2-state-blue-tx:#6cb6ff;--p2-state-green-bg:#34c75938;--p2-state-green-tx:#5dd87a;--p2-state-amber-bg:#ff95003d;--p2-state-amber-tx:#ffb340;--p2-state-purple-bg:#af52de3d;--p2-state-purple-tx:#cf90f0;--p2-state-red-bg:#ff3b303d;--p2-state-red-tx:#ff8078;--p2-state-gray-bg:#8e8e9342;--p2-state-gray-tx:#c4c4c8;--p2-shadow-subtle:0 1px 2px #0003;--p2-shadow-card:0 2px 4px #0000004d, 0 8px 24px #00000073;--p2-shadow-sidebar:none;--p2-focus-ring:0 0 0 3px #0a84ff59}:root{--p2-font-family:"Instrument Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--p2-font-weight-regular:400;--p2-font-weight-medium:500;--p2-type-kpi-size:26px;--p2-type-page-title-size:22px;--p2-type-section-title-size:18px;--p2-type-card-title-size:15px;--p2-type-body-size:14px;--p2-type-body-secondary-size:13px;--p2-type-table-dense-size:12.5px;--p2-type-eyebrow-size:11px;--p2-space-1:4px;--p2-space-2:8px;--p2-space-3:12px;--p2-space-4:14px;--p2-space-5:16px;--p2-space-6:20px;--p2-space-7:24px;--p2-space-8:32px;--p2-radius-sm:6px;--p2-radius-md:8px;--p2-radius-lg:14px;--p2-border-width:.5px}*{box-sizing:border-box}body{background:var(--p2-page);min-width:320px;color:var(--p2-text);font-family:var(--p2-font-family);margin:0;transition:background-color .2s,color .2s}button,input,select,textarea{font:inherit}a{color:inherit}.auth-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel,.panel,.status-item,.vue-check{background:#fff;border:1px solid #d8dee8;border-radius:8px}.login-panel{width:min(100%,400px);padding:24px;box-shadow:0 14px 34px #161f2d14}.login-title,.page-title{letter-spacing:0;margin:0;font-size:24px;line-height:1.2}.login-subtitle,.page-subtitle{color:#5b6678;margin:8px 0 0;line-height:1.45}.eyebrow{color:#0f766e;letter-spacing:0;text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:800}.field{gap:6px;margin-top:16px;display:grid}.field.compact{margin-top:0}.field label{font-size:14px;font-weight:700}.field input,.field select,.field textarea{color:#18212f;background:#fff;border:1px solid #c7d0dc;border-radius:6px;width:100%;padding:10px 12px}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#0f766e;outline:3px solid #0f766e29}.error,.notice{border-radius:6px;margin:0 0 12px;padding:10px 12px;font-size:14px}.error{color:#b42318;background:#fff1f0}.notice{color:#0f766e;background:#eef6f5}.actions,.form-actions,.row-actions,.counter{align-items:center;gap:10px;display:flex}.actions{margin-top:18px}.form-actions{grid-column:1/-1;margin-top:4px}.button{color:#fff;cursor:pointer;background:#0f766e;border:0;border-radius:6px;min-height:42px;padding:10px 14px;font-weight:800;text-decoration:none}.button.secondary{color:#1f2937;background:#e7ebf0}.button.ghost{color:#344054;background:#fff;border:1px solid #c7d0dc}.button.danger{color:#fff;background:#b42318}.button.small{min-height:34px;padding:7px 10px;font-size:13px}.button:disabled{cursor:wait;opacity:.7}.dashboard-shell{background:#f5f7fa;grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.topbar{background:#fff;border-bottom:1px solid #d8dee8;justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;display:flex}.brand{gap:2px;display:grid}.brand strong{font-size:16px}.brand span{color:#5b6678;font-size:13px}.page{width:min(100%,1320px);margin:0 auto;padding:32px 24px}.panel,.vue-check{margin-top:18px;padding:18px}.section-title,.edit-title{letter-spacing:0;margin:0 0 14px;font-size:18px}.status-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px;display:grid}.status-item{padding:16px}.status-label{color:#5b6678;text-transform:uppercase;margin:0 0 6px;font-size:13px;font-weight:700}.status-value{overflow-wrap:anywhere;margin:0;font-size:18px;font-weight:800}.counter{margin-top:12px}.counter-value{color:#0f766e;background:#eef6f5;border-radius:6px;place-items:center;min-width:48px;height:42px;font-weight:900;display:grid}.form-grid,.settings-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.settings-layout{margin-top:18px}.settings-layout .panel{margin-top:0}.panel-heading,.project-detail-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.panel-heading{margin-bottom:16px}.project-detail-header{flex-wrap:wrap;align-items:center}.project-meta-grid{flex:420px;grid-template-columns:repeat(3,minmax(150px,1fr));gap:10px;display:grid}.project-meta-grid article{background:#f8fafc;border:1px solid #e3e8ef;border-radius:6px;gap:4px;padding:10px 12px;display:grid}.project-meta-grid span{color:#5b6678;text-transform:uppercase;font-size:12px;font-weight:700}.project-meta-grid strong{overflow-wrap:anywhere}.wide,.password-field,.span-2{grid-column:1/-1}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.inline-form input,.inline-form select,.form-grid label input,.form-grid label select,.form-grid label textarea{color:#18212f;background:#fff;border:1px solid #c7d0dc;border-radius:6px;width:100%;padding:10px 12px}.inline-form input,.inline-form select{width:auto;min-width:180px}.form-grid label{color:#344054;gap:6px;font-size:14px;font-weight:700;display:grid}.inline-field{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;vertical-align:middle;padding:10px 8px}th{color:#5b6678;text-transform:uppercase;font-size:12px}.numeric{text-align:right;white-space:nowrap}.bc3-section{gap:var(--p2-space-5);color:var(--p2-text);display:grid}.bc3-toolbar{justify-content:space-between;align-items:flex-start;gap:var(--p2-space-5);border:var(--p2-border-width) solid var(--p2-border);border-radius:var(--p2-radius-lg);padding:var(--p2-space-5);background:var(--p2-surface);box-shadow:var(--p2-shadow-subtle);display:flex}.bc3-total{color:var(--p2-text);font-size:var(--p2-type-card-title-size);font-weight:var(--p2-font-weight-medium);margin:0;line-height:1.3}.bc3-margin-indicator{margin:var(--p2-space-1) 0 0;color:var(--p2-text-2);font-size:var(--p2-type-body-secondary-size);font-weight:var(--p2-font-weight-regular);line-height:1.35}.bc3-actions,.bc3-import-form{align-items:flex-end;gap:var(--p2-space-3);flex-wrap:wrap;display:flex}.bc3-global-margin-form{align-items:flex-end;gap:var(--p2-space-3);display:flex}.compact-label{gap:var(--p2-space-1);color:var(--p2-text-2);font-size:var(--p2-type-body-secondary-size);font-weight:var(--p2-font-weight-regular);line-height:1.35;display:grid}.compact-label input{border:var(--p2-border-width) solid var(--p2-border-strong);border-radius:var(--p2-radius-sm);width:120px;padding:var(--p2-space-2) var(--p2-space-3);background:var(--p2-surface);color:var(--p2-text);font:inherit}.bc3-structure-form,.bc3-measurement-form{gap:var(--p2-space-3);border:var(--p2-border-width) solid var(--p2-border);border-radius:var(--p2-radius-lg);padding:var(--p2-space-4);background:var(--p2-surface-2);grid-template-columns:repeat(5,minmax(110px,1fr)) auto;align-items:end;display:grid}.bc3-structure-form h4,.bc3-measurement-form h4{color:var(--p2-text);font-size:var(--p2-type-card-title-size);font-weight:var(--p2-font-weight-medium);grid-column:1/-1;margin:0;line-height:1.3}.bc3-structure-form label,.bc3-measurement-form label{gap:var(--p2-space-1);color:var(--p2-text-2);font-size:var(--p2-type-body-secondary-size);font-weight:var(--p2-font-weight-regular);line-height:1.35;display:grid}.bc3-structure-form input,.bc3-structure-form select,.bc3-measurement-form input{border:var(--p2-border-width) solid var(--p2-border-strong);border-radius:var(--p2-radius-sm);width:100%;padding:var(--p2-space-2) var(--p2-space-3);background:var(--p2-surface);color:var(--p2-text);font:inherit}.file-picker{gap:var(--p2-space-2);color:var(--p2-text-2);font-size:var(--p2-type-body-secondary-size);font-weight:var(--p2-font-weight-regular);line-height:1.35;display:grid}.file-picker input{max-width:260px;color:var(--p2-text-2)}.bc3-table-wrap{border:var(--p2-border-width) solid var(--p2-border);border-radius:var(--p2-radius-lg);background:var(--p2-surface)}.bc3-table{border-collapse:separate;border-spacing:0;background:var(--p2-surface);min-width:1040px;color:var(--p2-text);font-size:var(--p2-type-table-dense-size)}.bc3-table th,.bc3-table td{padding:3px 10px;line-height:1.35}.bc3-table th{top:var(--h-pill,0px);z-index:2;background:var(--p2-zebra);color:var(--p2-text-2);font-size:var(--p2-type-table-dense-size);font-weight:var(--p2-font-weight-medium);text-transform:none;position:sticky}.bc3-code-cell{min-width:150px;color:var(--p2-text);white-space:nowrap}.bc3-code-content{align-items:center;gap:var(--p2-space-2);display:flex}.tree-toggle{border:var(--p2-border-width) solid var(--p2-border-strong);border-radius:var(--p2-radius-sm);background:var(--p2-surface);width:24px;height:24px;color:var(--p2-text-2);cursor:pointer;font-size:var(--p2-type-table-dense-size);place-items:center;line-height:1;transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s;display:grid}.tree-toggle:hover{border-color:var(--p2-accent);background:var(--p2-state-blue-bg);color:var(--p2-accent)}.tree-spacer{flex:0 0 24px;width:24px;height:24px}.bc3-summary{min-width:280px}.bc3-cell-button{border:var(--p2-border-width) solid transparent;border-radius:var(--p2-radius-sm);width:100%;padding:var(--p2-space-1) var(--p2-space-2);color:inherit;cursor:pointer;font:inherit;text-align:inherit;background:0 0;transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s}.bc3-cell-button:hover{border-color:var(--p2-border-strong);background:var(--p2-state-blue-bg);color:var(--p2-accent)}.bc3-cell-button.text-left{text-align:left}.bc3-cell-button.numeric-button{text-align:right}.bc3-cell-input{border:var(--p2-border-width) solid var(--p2-accent);border-radius:var(--p2-radius-sm);width:100%;min-width:220px;padding:var(--p2-space-1) var(--p2-space-2);color:var(--p2-text);background:var(--p2-surface);font:inherit}.bc3-cell-input.compact{min-width:70px}.bc3-cell-input.numeric-input{text-align:right;min-width:100px}.readonly-cell{color:var(--p2-text-3)}.price-alert,.price-alert .bc3-cell-button{color:var(--p2-state-red-tx);font-weight:var(--p2-font-weight-medium)}.bc3-table tr.is-chapter{background:var(--p2-chapter-strong2)}.bc3-table tr.is-chapter td{background:var(--p2-chapter-strong2);font-weight:var(--p2-font-weight-medium)}.bc3-table tr.is-chapter td:first-child{border-top-left-radius:8px}.bc3-table tr.is-chapter td:last-child{border-top-right-radius:8px}.bc3-table tr.is-block-end td:first-child{border-bottom-left-radius:8px}.bc3-table tr.is-block-end td:last-child{border-bottom-right-radius:8px}.bc3-table tr.is-chapter.is-block-end td:first-child{border-radius:8px 0 0 8px}.bc3-table tr.is-chapter.is-block-end td:last-child{border-radius:0 8px 8px 0}.bc3-table tr.bc3-gap td{background:var(--p2-surface);height:2px;padding:0}.bc3-table tr.is-root{background:var(--p2-surface)}.bc3-table tr.is-root td{top:calc(var(--h-pill,0px) + var(--h-head,0px));z-index:1;background:var(--p2-surface);position:sticky}.bc3-table tr.is-root td:first-child{border-radius:8px 0 0 8px}.bc3-table tr.is-root td:last-child{border-radius:0 8px 8px 0}.bc3-table tbody tr{cursor:pointer;background:var(--p2-chapter);transition:background-color .2s}.bc3-table tbody tr td{background:var(--p2-chapter)}.bc3-table tbody tr:not(.is-selected):not(.is-root):not(.bc3-gap):hover td{background:var(--p2-hover-bg)}.bc3-table tr.is-selected td{background:var(--p2-select-bg);color:var(--p2-select-text);font-weight:var(--p2-font-weight-medium)}.bc3-row-actions{gap:var(--p2-space-2);flex-wrap:wrap;display:flex}.bc3-detail-panels{gap:var(--p2-space-4);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);display:grid}.bc3-detail-panel,.bc3-measurements-panel{gap:var(--p2-space-3);border:var(--p2-border-width) solid var(--p2-border);border-radius:var(--p2-radius-lg);padding:var(--p2-space-5);background:var(--p2-surface);box-shadow:var(--p2-shadow-subtle);display:grid}.bc3-description-textarea{border:var(--p2-border-width) solid var(--p2-border-strong);border-radius:var(--p2-radius-sm);width:100%;min-height:260px;padding:var(--p2-space-3);background:var(--p2-surface);color:var(--p2-text);font:inherit;font-size:var(--p2-type-body-size);resize:vertical;line-height:1.5;transition:border-color .2s,box-shadow .2s,background-color .2s,color .2s}.bc3-description-textarea[readonly]{background:var(--p2-surface-2);color:var(--p2-text-2)}.bc3-panel-actions{align-items:center;gap:var(--p2-space-3);display:flex}.bc3-measurements-table{background:var(--p2-surface);min-width:820px;color:var(--p2-text);font-size:var(--p2-type-table-dense-size)}.bc3-measurements-table th,.bc3-measurements-table td{border-bottom:var(--p2-border-width) solid var(--p2-border);padding:7px 10px;line-height:1.35}.bc3-measurements-table th{background:var(--p2-surface-2);color:var(--p2-text-2);font-size:var(--p2-type-table-dense-size);font-weight:var(--p2-font-weight-medium);text-transform:none}.bc3-measurements-table tbody tr:nth-child(2n){background:var(--p2-zebra)}.bc3-empty{border:var(--p2-border-width) dashed var(--p2-border-strong);border-radius:var(--p2-radius-lg);padding:var(--p2-space-5);background:var(--p2-surface-2)}.bc3-section .button{border:var(--p2-border-width) solid transparent;border-radius:var(--p2-radius-md);min-height:34px;padding:0 var(--p2-space-4);background:var(--p2-accent);color:var(--p2-surface);font-size:var(--p2-type-body-secondary-size);font-weight:var(--p2-font-weight-medium);line-height:1;transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s}.bc3-section .button:hover{background:var(--p2-accent-hover)}.bc3-section .button.secondary{border-color:var(--p2-border-strong);background:var(--p2-surface);color:var(--p2-text)}.bc3-section .button.secondary:hover{border-color:var(--p2-accent);color:var(--p2-accent)}.bc3-section .button.danger{background:var(--p2-state-red-tx);color:var(--p2-surface)}.bc3-section .button.danger:hover{box-shadow:inset 0 0 0 var(--p2-border-width) var(--p2-state-red-bg)}.bc3-section .button.small{min-height:30px;padding:0 var(--p2-space-3);font-size:var(--p2-type-table-dense-size)}.compact-label input:focus,.bc3-structure-form input:focus,.bc3-structure-form select:focus,.bc3-measurement-form input:focus,.bc3-cell-input:focus,.bc3-cell-button:focus-visible,.bc3-description-textarea:focus,.tree-toggle:focus-visible,.bc3-section .button:focus-visible{border-color:var(--p2-accent);box-shadow:var(--p2-focus-ring);outline:0}:root[data-theme=dark] .bc3-section .button,:root[data-theme=dark] .bc3-section .button.danger{color:var(--p2-text)}.row-actions{justify-content:flex-end;min-width:220px}.table-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;min-width:220px;display:flex}.edit-panel{border-top:1px solid #e3e8ef;margin-top:16px;padding-top:16px}.edit-title{grid-column:1/-1}.module-list{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.module-list li{border-top:1px solid #e3e8ef;justify-content:space-between;gap:12px;padding-top:8px;display:flex}@media (width<=780px){.dashboard-shell{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:flex-start}.status-grid,.form-grid,.settings-layout,.project-meta-grid,.bc3-detail-panels,.bc3-structure-form,.bc3-measurement-form{grid-template-columns:1fr}.actions,.form-actions,.row-actions,.counter,.bc3-toolbar,.bc3-global-margin-form{flex-wrap:wrap}.inline-field{grid-template-columns:1fr}}.widget-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:14px;display:grid}.widget-card{background:#f0faf9;border:1px solid #b6d9d6;border-radius:8px;padding:16px}.widget-card-module{text-transform:uppercase;letter-spacing:.06em;color:#0f766e;margin:0 0 6px;font-size:11px;font-weight:700}.widget-card-label{letter-spacing:0;margin:0 0 4px;font-size:16px;font-weight:700}.widget-card-desc{color:#5b6678;margin:0;font-size:13px;line-height:1.4}.catalog-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.catalog-item{border-top:1px solid #e3e8ef;padding:10px 0}.catalog-label{cursor:pointer;align-items:flex-start;gap:12px;display:flex}.catalog-label input[type=checkbox]{cursor:pointer;accent-color:#0f766e;flex-shrink:0;width:16px;height:16px;margin-top:3px}.catalog-info{gap:2px;display:grid}.catalog-name{font-size:14px;font-weight:700}.catalog-module{text-transform:uppercase;letter-spacing:.05em;color:#0f766e;font-size:11px;font-weight:700}.catalog-desc{color:#5b6678;font-size:13px}@media (width<=780px){.widget-grid{grid-template-columns:1fr}}
