:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#173042;background:radial-gradient(circle at 100% 0,#e6d4a761,#0000 28%),radial-gradient(circle at 0,#6c8fa62e,#0000 24%),linear-gradient(#f6f0df 0%,#efe8d6 44%,#ece4d7 100%);font-family:IBM Plex Sans,Segoe UI,sans-serif}html,body,#root{width:100%;height:100%;min-height:100%;margin:0}body{min-height:100vh;overflow:hidden}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.app-shell{box-sizing:border-box;flex-direction:column;height:100vh;padding:0;display:flex;overflow:hidden}.top-bar{justify-content:space-between;align-items:flex-start;gap:0;margin-bottom:0;display:flex}.top-bar-title{align-items:flex-start;gap:18px;min-width:0;display:flex}.top-bar-badges{flex-wrap:wrap;align-items:center;gap:14px;display:inline-flex}.top-bar h1{max-width:720px;margin:0;font-size:2rem;line-height:1.05}.top-bar-version{color:#0c5e54;letter-spacing:.03em;white-space:nowrap;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#168d8029,#0b4c7e2e);border:1px solid #0c5e542e;border-radius:999px;margin-top:3px;padding:5px 10px;font-size:.8rem;font-weight:700;line-height:1;box-shadow:inset 0 1px #ffffff80,0 8px 18px #152c3a1f}.top-bar-info-button{color:#0b4c7e;background:linear-gradient(135deg,#1d5d831f,#0b4c7e29);border-color:#0b4c7e38;border-radius:999px;width:34px;min-width:34px;height:34px;margin-top:2px;padding:0}.top-bar-info-button:hover{background:linear-gradient(135deg,#1d5d832e,#0b4c7e3d);box-shadow:0 8px 18px #183b4d1f}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:#7a5b2a;margin:0;font-size:.78rem}.top-bar-actions,.inline-actions{flex-wrap:wrap;gap:0;display:flex}.primary-button,.ghost-button,.mini-button,.sheet-tab{color:#173042;vertical-align:middle;box-sizing:border-box;background:#fffdf4d1;border:1px solid #173042;border-radius:0;justify-content:center;align-items:center;padding:8px 10px;line-height:1;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex}.primary-button{color:#fff;background:linear-gradient(135deg,#1d5d83,#0b4c7e);border-color:#0000}.mini-button{padding:4px 8px;font-size:.86rem}.topbar-icon-button{width:auto;min-width:42px;height:38px;padding:0 10px}.topbar-action-button{align-items:center;gap:8px;height:38px;padding:0 12px;display:inline-flex}.topbar-export-button{width:38px;min-width:38px;height:38px;padding:0}.ghost-button:hover,.primary-button:hover,.sheet-tab:hover,.mini-button:hover{transform:translateY(-1px);box-shadow:0 8px 18px #183b4d1f}.ghost-button:disabled,.primary-button:disabled,.mini-button:disabled,.sheet-tab:disabled{opacity:.42;color:#1730427a;box-shadow:none;background:#f0ebe0c7;transform:none}.primary-button:disabled{color:#ffffffbd;background:#17304233}.ghost-button:disabled:hover,.primary-button:disabled:hover,.sheet-tab:disabled:hover,.mini-button:disabled:hover{box-shadow:none;transform:none}.danger-button{border-color:#ad3a2838}.primary-button.danger-button{color:#fff6f3;background:linear-gradient(135deg,#b43a2c,#8f2418);border-color:#0000}.primary-button.danger-button:hover{box-shadow:0 10px 22px #8f24183d}.danger-button:not(.primary-button){color:#ad3a28;background:#ad3a2829}.danger-button:not(.primary-button):hover{background:#ad3a2838}.main-grid{grid-template-columns:var(--left-panel-width,320px) minmax(400px, 1fr) var(--right-panel-width,auto);flex:1;gap:0;min-height:0;display:grid;overflow:visible}.panel-rail{min-height:0;position:relative;overflow:visible}.canvas-drop-zone{min-width:0;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.canvas-drop-zone>.canvas-shell{flex:1;min-width:0;min-height:0}.panel-rail-left{width:var(--left-panel-width,320px);justify-self:start}.panel-rail-right{justify-self:end}.side-panel,.canvas-shell{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffbf1c7;border:1px solid #173042;border-radius:0;box-shadow:0 20px 40px #152c3a14}.drop-zone-active{box-shadow:0 0 0 2px #0b4c7e57,0 20px 40px #152c3a1f}.drop-zone-visible{box-shadow:0 0 0 1px #0b4c7e2e,0 20px 40px #152c3a1a}.side-panel{box-sizing:border-box;flex-direction:column;width:100%;height:100%;min-height:0;padding:8px;display:flex;overflow:hidden}.panel-heading h2,.panel-section h3{margin:0}.panel-heading p,.panel-section p,.part-card p{color:#496071;margin:0}.panel-heading{padding:2px 2px 6px}.panel-handle-button{color:#173042;z-index:4;background:#fffbf1f5;border:1px solid #173042;place-items:center;width:36px;height:36px;padding:0;display:grid;box-shadow:0 8px 18px #152c3a24}.panel-handle-button svg{display:block}.panel-handle-button-left{border-radius:0 999px 999px 0;position:absolute;top:50%;right:-36px;transform:translateY(-50%)}.panel-handle-button-right{border-radius:999px 0 0 999px;position:absolute;top:50%;left:-36px;transform:translateY(-50%)}.panel-section{border-top:1px dashed #1730428c;gap:8px;min-width:0;padding:8px 2px 0;display:grid}.panel-section+.panel-section{margin-top:6px}.collapsible-section{gap:8px;padding:8px 0 0}.panel-section-toggle{color:#6d5122;text-align:left;background:linear-gradient(#fffbf2fa,#f4ead6fa);border:1px solid #7a5b2a2e;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:7px 10px;transition:border-color .14s,box-shadow .14s,background .14s,color .14s;display:flex;box-shadow:0 1px 2px #152c3a0a}.panel-section-toggle:hover{background:linear-gradient(#fffdf7fc,#f7efe1fc);border-color:#7a5b2a47;box-shadow:0 3px 8px #152c3a14}.panel-section-toggle:focus-visible{outline-offset:2px;outline:2px solid #7a5b2a}.panel-section-toggle h3{font-size:1.1rem;font-weight:700;line-height:1.2}.panel-section-chevron{opacity:.72;flex:none;transition:transform .16s}.collapsible-section.is-open .panel-section-toggle{background:linear-gradient(#faf3e4fc,#efe4c9fc);border-color:#7a5b2a4d}.collapsible-section.is-open .panel-section-chevron{opacity:.95;transform:rotate(180deg)}.panel-section-content{gap:8px;padding:0 8px 4px;display:grid}.danger-zone{border-top-style:solid;border-top-color:#ad3a284d;margin-top:8px}.danger-zone .panel-section-toggle{color:#8f2418;background:linear-gradient(#fff4f0fa,#fae5dffa);border-color:#ad3a2824}.danger-zone .panel-section-toggle:hover,.danger-zone.is-open .panel-section-toggle{background:linear-gradient(#fff0ebfc,#f8dad2fc);border-color:#ad3a283d}.danger-zone h3,.danger-zone p{color:#8f2418}.field,.checkbox-field{gap:4px;min-width:0;display:grid}.field input{box-sizing:border-box;background:#ffffffd9;border:1px solid #173042;border-radius:0;width:100%;min-width:0;padding:6px 8px}.number-input-shell{grid-template-columns:minmax(0,2fr) minmax(3rem,1fr);width:100%;min-width:0;display:grid}.number-input-main{border-right:0}.number-input-main::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.number-input-main::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.number-input-main[type=number]{appearance:textfield}.number-input-drag-zone{cursor:ew-resize;-webkit-user-select:none;user-select:none;touch-action:none;background:#f8f2e6eb;border:1px solid #173042;place-items:center;min-width:0;transition:background .12s,box-shadow .12s;display:grid}.number-input-drag-zone:hover{background:#efe7d5fa}.number-input-drag-zone.dragging{background:#e3d9c3fa;box-shadow:inset 0 0 0 1px #17304226}.number-input-drag-zone.is-disabled,.number-input-shell.is-disabled .number-input-drag-zone{cursor:default;opacity:.55}.number-input-drag-grip{background:repeating-linear-gradient(90deg,#173042b8 0 1px,#0000 1px 4px);width:12px;height:18px}.checkbox-field{grid-template-columns:auto 1fr;align-items:center;min-width:0}.library-panel,.inspector-panel{min-height:0}.library-panel{width:var(--left-panel-width,320px);min-width:var(--left-panel-width,320px);max-width:var(--left-panel-width,320px)}.inspector-panel{scrollbar-gutter:stable;width:max-content;min-width:330px;max-width:330px;padding-right:8px;overflow:hidden auto}.part-list{scrollbar-width:none;direction:ltr;flex-direction:column;flex:auto;align-items:stretch;gap:0;min-height:0;padding-left:8px;padding-right:12px;display:flex;overflow:hidden auto}.part-list::-webkit-scrollbar{width:0;height:0}.part-list-shell{flex-direction:column;flex:auto;min-height:0;display:flex;position:relative;overflow:hidden}.part-scrollbar{pointer-events:none;width:4px;position:absolute;top:0;bottom:0;left:2px}.part-scrollbar-thumb{background:#1730429e;border-radius:999px;width:100%;transition:transform 80ms linear}.part-scrollbar-thumb:hover{background:#173042c7}.part-card{background:#ffffffb8;border:0;border-bottom:1px dashed #1730428c;border-radius:0;flex:none;grid-template-rows:auto auto auto auto;align-content:start;gap:8px;min-width:0;padding:8px 2px;display:grid;overflow:hidden}.part-card-header,.part-meta{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.part-card-header>div:first-child{min-width:0}.part-card-header h3{overflow-wrap:anywhere}.part-card-actions{z-index:1;pointer-events:auto;flex-shrink:0;align-items:center;gap:6px;min-width:0;display:inline-flex;position:absolute;bottom:8px;right:8px}.part-card-delete-label{opacity:0;white-space:nowrap;color:#8f2418;max-width:0;font-size:.8rem;transition:max-width .12s,opacity .12s,margin-left .12s;overflow:hidden}.part-card-delete-label.visible{opacity:1;max-width:96px;margin-left:2px}.part-card-delete{color:#ad3a28}.part-card-delete:hover:not(:disabled){color:#8f2418}.part-card-delete:disabled{color:#ad3a2866}.part-card h3{margin:0;font-size:1rem}.part-preview{background:linear-gradient(135deg,#0b4c7e0a,#0b4c7e1a),repeating-linear-gradient(0deg,#183b4d0d 0 1px,#0000 1px 24px),repeating-linear-gradient(90deg,#183b4d0d 0 1px,#0000 1px 24px);border-radius:0;flex:0 0 96px;width:100%;min-width:0;height:96px;min-height:96px;max-height:96px;position:relative;overflow:hidden}.part-preview-shell{min-width:0;position:relative}.part-preview svg{width:100%;max-width:100%;height:100%;display:block}.part-meta{color:#496071;font-size:.86rem}.warning-list,.validation-list{color:#7a5b2a;margin:0;padding-left:18px}.canvas-shell{box-sizing:border-box;flex-direction:column;min-height:0;padding:8px;display:flex;position:relative;overflow:hidden}.sheet-tabs{flex-wrap:wrap;gap:0;margin-bottom:8px;display:flex}.sheet-tab{align-items:center;display:inline-flex;position:relative}.sheet-tab.active{background:linear-gradient(135deg,#1d5d832e,#0b4c7e42);border-color:#0b4c7e47}.sheet-tab.is-dragging{opacity:.62}.sheet-tab.insert-before:before,.sheet-tab.insert-after:after{content:"";background:#0b4c7e;border-radius:999px;width:5px;position:absolute;top:3px;bottom:3px;box-shadow:0 0 0 1px #fffbf1f2}.sheet-tab.insert-before:before{left:-4px}.sheet-tab.insert-after:after{right:-4px}.editable-sheet-name{align-items:center;gap:6px;min-width:0;display:inline-flex}.editable-sheet-label{min-width:0}.editable-sheet-label-draggable{cursor:grab;-webkit-user-select:none;user-select:none}.editable-sheet-label-draggable:active{cursor:grabbing}.editable-sheet-hint{opacity:0;color:#496071;background:0 0;border:0;border-radius:0;place-items:center;width:0;padding:0;transition:opacity .12s,width .12s,margin-left .12s;display:inline-grid;overflow:hidden}.editable-sheet-name:hover .editable-sheet-hint,.editable-sheet-name:focus-visible .editable-sheet-hint{opacity:1;width:16px;margin-left:2px}.editable-sheet-delete{color:#ad3a28}.editable-sheet-delete:hover:not(:disabled){color:#8f2418}.editable-sheet-delete:disabled{color:#ad3a2866}.editable-sheet-delete-label{opacity:0;white-space:nowrap;color:#8f2418;max-width:0;font-size:.85rem;transition:max-width .12s,opacity .12s,margin-left .12s;overflow:hidden}.editable-sheet-delete-label.visible{opacity:1;max-width:96px;margin-left:2px}.editable-sheet-input{color:#173042;background:#fffffff0;border:1px solid #173042;border-radius:0;width:100%;min-width:110px;padding:4px 6px}.editable-sheet-save,.icon-button{place-items:center;width:28px;height:28px;padding:0;display:inline-grid}.canvas-surface{touch-action:none;background:linear-gradient(135deg,#112a360f,#112a3605),repeating-linear-gradient(0deg,#183b4d0f 0 1px,#0000 1px 24px),repeating-linear-gradient(90deg,#183b4d0f 0 1px,#0000 1px 24px);border-radius:0;flex:1;min-height:0;position:relative;overflow:hidden}.canvas-surface.is-panning{cursor:grabbing}.canvas-surface.is-measuring{cursor:crosshair}.floating-selection-layer{pointer-events:none;z-index:3;position:absolute;inset:0}.floating-selection-panel{pointer-events:auto;background:#fffbf1f5;border:1px solid #173042;border-radius:0;flex-direction:column;width:min(80%,150px);max-height:calc(100% - 16px);display:flex;position:absolute;overflow:hidden;box-shadow:0 18px 36px #152c3a2e}.floating-selection-panel.is-inactive{opacity:.5;filter:saturate(.45);background:#fffbf1cc}.floating-selection-panel.is-inactive .floating-selection-header{cursor:grab}.floating-selection-header{cursor:grab;-webkit-user-select:none;user-select:none;border-bottom:1px dashed #1730428c;justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 10px;display:flex}.floating-selection-header:active{cursor:grabbing}.floating-selection-kicker{text-transform:uppercase;letter-spacing:.14em;color:#7a5b2a;margin:0;font-size:.72rem}.floating-selection-title{flex:auto;min-width:0}.floating-selection-name-wrap{min-width:0;position:relative}.floating-selection-header h3{margin:2px 0 0;font-size:1rem}.floating-selection-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:100%;overflow:hidden}.floating-selection-tooltip{z-index:29;color:#173042;pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:#fffbf1fa;border:1px solid #173042;width:max-content;max-width:calc(100vw - 16px);padding:6px 8px;position:fixed;overflow:hidden;box-shadow:0 12px 24px #152c3a29}.floating-selection-hint{color:#496071;font-size:.78rem}.floating-selection-content{gap:8px;padding:8px 10px 10px;display:grid;overflow:auto}.floating-selection-content .inline-actions{gap:8px}.floating-selection-content .icon-button{width:36px;height:36px;padding:0}.floating-selection-content .icon-button.is-active{color:#0b4c7e;background:linear-gradient(135deg,#1d5d8338,#0b4c7e4d);border-color:#0b4c7e52}.floating-selection-content .danger-button{color:#ad3a28;background:#ad3a2829;border-color:#ad3a28}.floating-selection-content .danger-button:hover{background:#ad3a2838}.selection-placeholder{color:#496071;margin:0}.canvas-hint{color:#496071;background:#fffcf5e0;border-radius:0;padding:0;position:absolute;inset:auto 16px 16px auto}.canvas-hint-button{color:#173042;background:#fffbf1f5;border:1px solid #173042;border-radius:999px;place-items:center;width:38px;height:38px;display:grid;box-shadow:0 8px 18px #152c3a24}.canvas-hint-button:hover{transform:translateY(-1px);box-shadow:0 10px 20px #152c3a2e}.canvas-hint-import{z-index:6;gap:8px;margin:0;position:absolute;bottom:16px;right:16px;box-shadow:0 10px 20px #152c3a29}.canvas-home-button{z-index:6;width:38px;min-width:38px;height:38px;padding:0;position:absolute;top:16px;right:16px;box-shadow:0 10px 20px #152c3a1f}.canvas-measure-button{z-index:6;width:38px;min-width:38px;height:38px;padding:0;position:absolute;top:16px;right:60px;box-shadow:0 10px 20px #152c3a1f}.canvas-measure-button.is-active{color:#0b4c7e;background:linear-gradient(135deg,#1d5d8338,#0b4c7e4d);border-color:#0b4c7e52}.file-drop-overlay{z-index:12;pointer-events:none;opacity:.72;background:linear-gradient(135deg,#fffaefe6,#f1e9d6e0),repeating-linear-gradient(45deg,#0b4c7e0d 0 14px,#0000 14px 28px);place-items:center;padding:16px;transition:opacity .12s,background .12s;display:grid;position:absolute;inset:0}.file-drop-overlay-center{inset:0}.file-drop-overlay-hovered{opacity:.96;background:linear-gradient(135deg,#fffbf2f5,#ece4cbf0),repeating-linear-gradient(45deg,#0b4c7e14 0 14px,#0000 14px 28px)}.file-drop-card{text-align:center;background:#fffbf1f5;border:1px solid #173042;gap:8px;max-width:340px;padding:18px 20px;transition:transform .12s,box-shadow .12s,background .12s;display:grid;transform:scale(.985);box-shadow:0 20px 36px #152c3a29}.file-drop-overlay-hovered .file-drop-card{background:#fffcf5fa;transform:scale(1);box-shadow:0 24px 44px #152c3a33}.file-drop-card h3,.file-drop-card p{margin:0}.file-drop-card p{color:#496071}.file-drop-kicker{text-transform:uppercase;letter-spacing:.14em;color:#7a5b2a;font-size:.72rem}.selection-title{color:#173042;font-weight:600}.ok-text{color:#2d6a4f}.danger-text{color:#ad3a28}.empty-panel{color:#496071;text-align:center;place-items:center;min-height:0;display:grid}.part-library-import-button{flex:none;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:8px;display:inline-flex}.sheet-tab-action{justify-content:center;width:36px;min-width:36px;padding:0}.sheet-tab-action:hover{background:#fffdf4f2}[data-sonner-toast][data-styled=true]{border:1px solid #173042;border-radius:18px;font-family:IBM Plex Sans,Segoe UI,sans-serif;line-height:1.15;box-shadow:0 26px 44px #152c3a2e;min-width:320px!important;max-width:min(720px,100vw - 32px)!important;padding:18px 22px!important;font-size:1rem!important}[data-sonner-toast][data-styled=true] [data-title],[data-sonner-toast][data-styled=true] [data-description]{line-height:1.15;font-size:1rem!important}.modal-backdrop{z-index:30;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#111f2957;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-card{background:#fffbf1f5;border:1px solid #173042;flex-direction:column;gap:16px;width:min(920px,100vw - 48px);max-height:calc(100vh - 48px);display:flex;overflow:hidden;box-shadow:0 28px 60px #152c3a3d}.export-dialog{padding:18px}.confirm-dialog{width:min(520px,100vw - 48px);padding:18px}.help-dialog{width:min(700px,100vw - 48px);padding:18px}.help-dialog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-height:0;display:grid}.help-dialog-section{gap:10px;padding-top:0}.help-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.help-list li{color:#496071;align-items:center;gap:10px;display:flex}.help-list-secondary{margin-top:12px}.help-key{color:#173042;letter-spacing:.02em;white-space:nowrap;background:#ffffffd6;border:1px solid #1730422e;border-radius:999px;flex:none;padding:3px 8px;font-size:.8rem;font-weight:700}.help-steps{counter-reset:help-step;gap:10px;margin:0;padding:0;list-style:none;display:grid}.help-steps li{color:#496071;background:linear-gradient(135deg,#1d5d8314,#0b4c7e0a),#fffc;border:1px solid #17304224;border-radius:16px;gap:6px;padding:12px 12px 12px 54px;display:grid;position:relative}.help-steps li:before{counter-increment:help-step;content:counter(help-step);color:#0b4c7e;background:linear-gradient(135deg,#1d5d8329,#0b4c7e38);border:1px solid #0b4c7e38;border-radius:999px;place-items:center;width:30px;height:30px;font-size:.82rem;font-weight:700;display:grid;position:absolute;top:12px;left:12px}.modal-header,.modal-footer,.export-sheet-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.modal-header h2,.modal-kicker{margin:0}.modal-header p,.modal-footer p,.export-sheet-meta p{color:#496071;margin:0}.modal-kicker{text-transform:uppercase;letter-spacing:.14em;color:#7a5b2a;font-size:.72rem}.modal-section-grid{grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:18px;min-height:0;display:grid}.modal-section{padding-top:0}.confirm-dialog-section{gap:14px}.confirm-dialog-warning{color:#8f2418;background:#ad3a2814;border:1px solid #ad3a283d;align-items:flex-start;gap:10px;padding:12px;display:flex}.confirm-dialog-warning svg{flex:none;margin-top:1px}.confirm-dialog-warning p{color:inherit}.export-sheet-list-shell{min-height:0;position:relative;overflow:hidden}.export-sheet-list{scrollbar-width:none;gap:12px;max-height:min(52vh,520px);padding-right:12px;display:grid;overflow:auto}.export-sheet-list::-webkit-scrollbar{width:0;height:0}.export-sheet-row{background:#ffffffb8;border:1px solid #17304238;padding:12px;position:relative}.export-sheet-row.is-dragging{opacity:.62}.export-sheet-row.insert-before:before,.export-sheet-row.insert-after:after{content:"";background:#0b4c7e;border-radius:999px;height:3px;position:absolute;left:10px;right:10px;box-shadow:0 0 0 1px #fffbf1f2}.export-sheet-row.insert-before:before{top:-3px}.export-sheet-row.insert-after:after{bottom:-3px}.export-sheet-meta{gap:8px;min-width:0;display:grid}.modal-footer{border-top:1px dashed #17304266;align-items:center;padding-top:16px}.modal-footer-actions{flex-wrap:wrap;gap:10px;display:flex}@media (width<=1320px){.main-grid{grid-template-columns:var(--left-panel-width,290px) minmax(320px, 1fr)}.inspector-panel{grid-column:1/-1}}@media (width<=980px){.library-panel.is-collapsed .panel-handle-button-left{right:-16px}.inspector-panel.is-collapsed .panel-handle-button-right{left:-16px}.app-shell{padding:0}.top-bar{flex-direction:column}.main-grid{grid-template-columns:1fr}.modal-card{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.modal-section-grid,.help-dialog-grid{grid-template-columns:1fr}.library-panel,.canvas-shell,.inspector-panel{min-height:0}}
