:root{font-family:Inter,Arial,sans-serif;color:#1f2d3a;background:#eaf0f4}*{box-sizing:border-box}body{margin:0;background:#eaf0f4}button,input,select{font:inherit}button{border:1px solid #9db1c0;background:#f8fbfd;color:#23415a;border-radius:8px;padding:8px 12px;cursor:pointer}button:hover{background:#eef4f8}button:disabled{opacity:.55;cursor:not-allowed}.primary-action{background:#2d5f81;border-color:#244d68;color:#fff}.primary-action:hover{background:#244d68}.danger-action,.delete-button{background:#fff7f5;border-color:#d38b80;color:#982f25}.danger-action:hover,.delete-button:hover{background:#ffe8e3}input,select{width:100%;border:1px solid #b2c2cf;border-radius:8px;padding:7px 9px;background:#fff}label{display:block;font-size:12px;color:#54697b;margin-bottom:4px}header{padding:16px 18px 8px}header h1{margin:0;font-size:26px}header p{margin:4px 0 0;color:#566b7f}.app-shell{max-width:1640px;margin:0 auto;padding:10px}.panel{min-width:0;background:#dfe8ee;border:1px solid #c6d3dd;border-radius:14px;padding:12px;box-shadow:inset 0 1px #ffffff8c}.header-grid,.status-bar{display:grid;grid-template-columns:1.2fr 1.2fr 1fr auto;gap:12px;margin-bottom:10px}.status-bar>div,.meta-list>div{background:#ffffff73;border-radius:10px;padding:8px 10px;display:flex;justify-content:space-between;gap:10px}.main-layout{display:grid;grid-template-columns:420px minmax(0,1fr);gap:12px}.main-layout>*,.sidebar,.workspace{min-width:0}.sidebar,.workspace{display:flex;flex-direction:column;gap:12px}.stack{display:flex;flex-direction:column;gap:8px}.file-field{position:relative;overflow:hidden;padding:8px 12px;border:1px dashed #91a8b8;border-radius:8px;background:#ffffff80;display:inline-flex;align-items:center}.file-field.short{width:auto}.file-field input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.canvas-panel{min-width:0;min-height:760px;overflow:hidden}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.toolbar.compact{margin-bottom:8px}.segmented,.chips-row,.preset-row{display:inline-flex;gap:6px;flex-wrap:wrap}.segmented .active,.chip.active{background:#bfd2df}.slab-svg,.texture-svg{width:100%;background:#f7fbfe;border-radius:10px;border:1px solid rgba(127,152,173,.35)}.slab-svg{min-height:760px}.texture-svg{min-height:320px;display:block;max-width:none}.lists-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.lists-panel{display:flex;flex-direction:column;gap:14px}.lists-panel h3{margin:0 0 8px}.list-box{display:flex;flex-direction:column;gap:8px;max-height:240px;overflow:auto}.list-item{padding:8px 10px;background:#ffffff80;border-radius:10px;display:flex;flex-direction:column;gap:4px}.list-row{flex-direction:row;justify-content:space-between;align-items:center;gap:10px}.list-row>div{min-width:0;display:flex;flex-direction:column;gap:4px}.list-row span,.list-row strong{overflow:hidden;text-overflow:ellipsis}.delete-button{flex:0 0 auto;padding:6px 9px}.list-item.danger{border:1px solid #d62828}.checkbox-field{display:flex;align-items:end}.checkbox-field label{margin:0;font-size:14px}.header-actions{display:flex;flex-direction:column;align-items:stretch;justify-content:end;gap:7px;min-width:190px}.split-action{position:relative;display:grid;grid-template-columns:1fr 42px}.split-action .primary-action{border-radius:0}.split-action .split-main{border-radius:8px 0 0 8px}.split-action .split-arrow{border-left-color:#ffffff59;border-radius:0 8px 8px 0;padding:8px 0}.split-menu{position:absolute;right:0;top:calc(100% + 5px);z-index:25;min-width:190px;padding:6px;background:#f8fbfd;border:1px solid #9db1c0;border-radius:8px;box-shadow:0 12px 28px #1f2d3a2e;display:flex;flex-direction:column;gap:4px}.split-menu button{width:100%;text-align:left;border-color:transparent;background:transparent}.split-menu button:hover,.split-menu button.active{background:#dbe8f0;border-color:#bfd2df}.mode-caption{color:#536b7a;font-size:12px;text-align:center;margin-top:-3px}.forms-panel h3,.compact-panel h3{margin-top:0}.subgrid.two-col{display:grid;grid-template-columns:1fr;gap:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px}.form-grid.compact{margin-bottom:8px}.detail-launcher{display:flex;flex-direction:column;gap:10px;align-items:stretch;justify-content:flex-start}.detail-open-button{min-height:42px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:18px;background:#24344261}.detail-modal{width:min(920px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto;background:#edf4f9;border:1px solid #bfd0dc;border-radius:18px;padding:16px;box-shadow:0 22px 70px #1f2d3a52}.detail-modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.detail-modal-header h2{margin:0;font-size:26px}.detail-modal-header p{margin:4px 0 0;color:#536b7a;font-size:13px}.icon-button{width:36px;height:36px;padding:0;border-radius:10px;font-size:22px;line-height:1}.designer-select-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.shape-thumbnails{display:grid;grid-template-columns:repeat(7,minmax(76px,1fr));gap:8px;margin:10px 0}.shape-thumb{min-height:66px;padding:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:10px;background:#f6fafc}.shape-thumb.active{background:#d9e9f4;border-color:#8daabd}.shape-thumb svg{width:44px;height:30px;fill:none;stroke:#58738a;stroke-width:3}.shape-thumb span{font-size:10px;font-weight:700;color:#243b4d;line-height:1.15}.designer-meta{display:flex;gap:18px;flex-wrap:wrap;align-items:center;padding:8px 10px;margin-bottom:10px;border:1px solid #cad8e3;border-radius:10px;background:#ffffff6b;color:#536b7a;font-size:13px}.designer-meta input{width:74px;padding:5px 7px;margin-left:5px}.designer-card,.feature-designer{border:1px solid #cad8e3;border-radius:14px;background:#e6eef4;padding:12px;margin-bottom:10px}.designer-card h3,.feature-designer h3{margin:0 0 10px}.schema{position:relative;min-height:280px;border:1px solid #c6d6e1;border-radius:12px;background:#eef4f8;overflow:hidden}.schema-l,.schema-u{min-height:390px}.reference-schema{min-height:0;padding:0;background:#e8f0f6;display:flex;align-items:center;justify-content:center}.designer-scheme-svg{width:80%;height:auto;display:block;background:#e8f0f6}.designer-scheme-svg .scheme-part{fill:#ffffff73;stroke:#627b8e;stroke-width:1.8;vector-effect:non-scaling-stroke}.designer-scheme-svg .scheme-part.inner{fill:#ffffff42;stroke-width:1.2}.designer-scheme-svg .sink-section{fill:#ffffffb3}.designer-scheme-svg .scheme-dash{fill:none;stroke:#8ea1ad;stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.designer-scheme-svg .scheme-dim{fill:none;stroke:#9aacb7;stroke-width:1;vector-effect:non-scaling-stroke}.designer-scheme-svg .scheme-arrow{fill:none;stroke:#6d8495;stroke-width:1.1;marker-start:url(#arrow-start);marker-end:url(#arrow-end);vector-effect:non-scaling-stroke}.designer-scheme-svg marker path{fill:#6d8495;stroke:none}.designer-scheme-svg .scheme-caption{fill:#536b7a;font-size:15px;dominant-baseline:middle}.designer-scheme-svg .scheme-caption.centered{text-anchor:middle}.designer-scheme-svg .scheme-large-text{fill:#536b7a;font-size:24px;text-anchor:middle;dominant-baseline:middle}.designer-scheme-svg .scheme-symbol{fill:#2d5369;font-size:20px;font-weight:700;text-anchor:middle;dominant-baseline:middle}.scheme-input-wrap,.scheme-side-wrap{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.scheme-input-wrap input{width:100%;height:100%;padding:4px 6px;text-align:center;border-radius:8px;background:#fff;font-size:17px;color:#1f2d3a}.scheme-side-wrap button{width:100%;height:100%;padding:0;border-radius:8px;background:#f7fbfd;color:#6a8292;font-size:17px}.scheme-side-wrap button.active{background:#cfe3f0;border-color:#7898ad;color:#23415a}.scheme-radio-box{display:flex;flex-direction:column;gap:8px;color:#536b7a;font-size:14px}.scheme-radio-box label{display:flex;align-items:center;gap:8px;margin:0;font-size:14px;color:#536b7a}.scheme-radio-box input{width:auto}.scheme-check{width:100%;height:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;color:#536b7a;font-size:13px}.scheme-check input{width:auto}.shape-schema-svg{position:absolute;top:18px;right:122px;bottom:18px;left:118px;width:calc(100% - 240px);height:calc(100% - 36px);overflow:visible}.shape-schema-svg rect,.shape-schema-svg path,.shape-schema-svg circle,.shape-schema-svg ellipse{fill:#ffffff7a;stroke:#58738a;stroke-width:2.4;vector-effect:non-scaling-stroke}.shape-schema-svg line{stroke:#8aa0af;stroke-width:1.5;vector-effect:non-scaling-stroke;marker-start:none;marker-end:none}.shape-schema-svg .dash{stroke-dasharray:4 5;opacity:.75}.shape-schema-svg text{fill:#536b7a;font-size:24px;text-anchor:middle;dominant-baseline:middle}.schema-input{position:absolute;z-index:2;width:78px;padding:7px 8px;text-align:center;background:#fff}.dim-top{left:50%;top:18px;transform:translate(-50%)}.dim-left{left:18px;top:50%;transform:translateY(-50%)}.dim-left-stack.top{left:22px;top:88px}.dim-left-stack.bottom{left:22px;top:166px}.dim-notch-h{left:56%;bottom:56px;transform:translate(-50%)}.dim-notch-v{left:54%;top:55%;transform:translate(-50%,-50%)}.dim-offset{left:27%;bottom:34px;transform:translate(-50%)}.side-zone{position:absolute;z-index:3;width:46px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:#58738a;font-weight:700;background:#f7fbfd}.side-zone.active{background:#cfe3f0;border-color:#7898ad;color:#23415a}.side-a{left:48px;top:50%;transform:translateY(-50%)}.side-b{left:50%;top:62px;transform:translate(-50%)}.side-c{right:48px;top:50%;transform:translateY(-50%)}.side-d{left:50%;bottom:34px;transform:translate(-50%)}.side-e{left:43%;top:55%;transform:translate(-50%,-50%)}.side-f{left:38%;bottom:18px;transform:translate(-50%)}.side-g{left:31%;top:58%;transform:translate(-50%,-50%)}.side-h{left:25%;bottom:18px;transform:translate(-50%)}.circle-mode{position:absolute;z-index:4;left:18px;top:46px;display:flex;flex-direction:column;gap:8px;color:#536b7a;font-size:13px}.circle-mode label{display:flex;align-items:center;gap:8px;margin:0;font-size:14px;color:#334c60}.circle-mode input[type=radio]{width:auto}.circle-mode .schema-input{position:static;transform:none;width:82px}.quantity-input{position:absolute;z-index:3;right:28px;top:50%;transform:translateY(-50%);width:94px}.quantity-input input{text-align:center}.joint-checks{position:absolute;right:22px;bottom:28px;z-index:4;display:flex;flex-direction:column;gap:8px;width:180px}.joint-checks label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;font-size:13px;color:#536b7a}.joint-checks input{width:auto}.feature-designer{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px;align-items:end}.feature-designer h3{grid-column:1 / -1}.side-chip-row{display:flex;flex-wrap:wrap;gap:8px}.detail-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding-top:2px}.pdf-modal{width:min(920px,calc(100vw - 28px))}.pdf-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:12px}.pdf-section{min-width:0;border:1px solid #cad8e3;border-radius:14px;background:#e6eef4;padding:12px;display:flex;flex-direction:column;gap:10px}.pdf-section h3{margin:0 0 2px}.pdf-section-wide{grid-column:1 / -1}.pdf-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pdf-check-grid-wide{grid-template-columns:repeat(4,minmax(0,1fr));align-items:center}.pdf-check{margin:0;display:flex;align-items:center;gap:8px;min-height:34px;padding:7px 8px;border:1px solid #cad8e3;border-radius:10px;background:#ffffff6b;color:#243b4d;font-size:13px}.pdf-check input{width:auto;flex:0 0 auto}.pdf-hint{min-height:34px;padding:8px 10px;border-radius:10px;background:#ffffff59;color:#536b7a;font-size:13px}.pdf-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding-top:12px}.small-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mini-panel{background:#ffffff47;border:1px solid rgba(157,177,192,.55);border-radius:12px;padding:10px}.mini-panel h4{margin:0 0 8px}.error-box{color:#8b1d1d;background:#fff6;border:1px solid rgba(214,40,40,.4);padding:8px 10px;border-radius:10px;margin-bottom:10px}.chip{min-width:36px}.compact-panel{padding:10px}.texture-panel{min-width:0;min-height:380px;overflow:hidden}.texture-toolbar{align-items:flex-start}.texture-toolbar h3{margin:0 0 4px}.texture-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.texture-canvas-shell{position:relative;min-width:0;max-width:100%}.texture-canvas-scroll{width:100%;max-width:100%;overflow:hidden;border-radius:10px 10px 6px 6px;background:#f7fbfe;border:1px solid rgba(127,152,173,.35)}.texture-canvas-scroll .texture-svg{border:0;border-radius:0}.texture-resize-handle{height:14px;border:1px solid rgba(127,152,173,.35);border-top:0;border-radius:0 0 10px 10px;background:#e9f0f5;cursor:ns-resize;display:flex;align-items:center;justify-content:center}.texture-resize-handle span{width:54px;height:4px;border-radius:999px;background:#9db1c0}.texture-resize-handle:hover{background:#dfe8ee}.texture-piece.draggable{cursor:grab}.texture-piece.draggable:active{cursor:grabbing}.texture-piece.attached{opacity:.92}.texture-preview-floating{position:fixed;right:18px;bottom:18px;z-index:20;width:min(440px,calc(100vw - 36px));max-height:min(360px,calc(100vh - 36px));display:flex;flex-direction:column;background:#dfe8ee;border:1px solid #9db1c0;border-radius:10px;box-shadow:0 14px 40px #1f2d3a38;overflow:hidden}.texture-preview-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid #c6d3dd;cursor:move;-webkit-user-select:none;user-select:none}.texture-preview-header button{padding:5px 8px}.texture-preview-body{padding:10px;overflow:auto;background:#eef4f8}.texture-preview-body svg{width:100%!important;height:auto!important;max-height:260px;background:#f7fbfe;border:1px solid rgba(127,152,173,.35);border-radius:8px}.texture-preview-svg{display:block}.unplaced-panel{min-width:0;min-height:132px}.unplaced-panel .toolbar{margin-bottom:6px}.unplaced-window{width:100%;display:block;background:#f7fbfe;border:1px solid rgba(127,152,173,.35);border-radius:8px}.unplaced-window>rect{fill:#f8fbfd}.unplaced-window .unplaced-fill{fill:#7293ab40;stroke:none}.unplaced-window .unplaced-stroke{fill:#ffffff14;stroke:#35556b;stroke-width:1.4}.unplaced-window text{fill:#1f3342;pointer-events:none}.unplaced-window text+text{fill:#3a596c}.unplaced-item{cursor:grab}.unplaced-item:active,.unplaced-item.dragging{cursor:grabbing;opacity:0}.unplaced-panel.drop-target{border-color:#6f94ad;background:#d6e6f0}.unplaced-drag-ghost{position:fixed;z-index:80;pointer-events:none;min-width:126px;max-width:230px;padding:7px 9px;border:1px solid #7f98ad;border-radius:8px;background:#f8fbfdf5;box-shadow:0 10px 26px #1f2d3a38;color:#1f3342;display:flex;flex-direction:column;gap:2px}.unplaced-drag-ghost strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unplaced-drag-ghost span{font-size:11px;color:#536b7a}.unplaced-ghost-shape{width:94px;height:58px;align-self:center}.unplaced-ghost-shape polygon{fill:#7293ab40;stroke:#35556b;stroke-width:2}.buffer-drag-ghost{position:fixed;z-index:90;pointer-events:none;overflow:visible;filter:drop-shadow(0 10px 18px rgba(31,45,58,.22))}.buffer-drag-ghost .unplaced-fill{fill:#7293ab45}.buffer-drag-ghost .unplaced-stroke{fill:#ffffff1f;stroke:#35556b;stroke-width:1.4}.buffer-drag-ghost text{fill:#1f3342;pointer-events:none}.buffer-drag-ghost text+text{fill:#3a596c}.placement-drag-ghost{position:fixed;z-index:90;pointer-events:none;overflow:visible;filter:drop-shadow(0 10px 18px rgba(31,45,58,.24))}.placement-drag-ghost polygon{fill:#7293ab59;stroke:#2d4f6c;stroke-width:1.5;vector-effect:non-scaling-stroke}.placement-drag-ghost text{fill:#1e2d3d;font-size:13px;pointer-events:none}.slab-svg-drop-active{cursor:copy}.unplaced-empty{min-height:62px;display:flex;align-items:center;color:#536b7a;background:#ffffff59;border:1px dashed rgba(127,152,173,.55);border-radius:8px;padding:10px}.unplaced-empty.drop-empty{justify-content:center;min-height:96px;border-color:#6f94ad;color:#23415a}.muted{color:#536b7a;font-size:13px}.part-group{cursor:grab}.part-group:active{cursor:grabbing}.part-group.dragging-source{opacity:.18}.label-hover-zone{fill:transparent;pointer-events:all;cursor:text}.detail-label{pointer-events:none;transition:transform .12s ease;transform-box:fill-box;transform-origin:center}.detail-label-text{fill:#1e2d3d;font-weight:700}.detail-dims-text{fill:#496276}.detail-label-popover{pointer-events:all;cursor:text;filter:drop-shadow(0 8px 16px rgba(31,45,58,.18))}.detail-label-popover rect{fill:#f8fbfdf5;stroke:#7898ad;stroke-width:1}.detail-label-popover text{fill:#1e2d3d;font-size:14px;font-weight:700;pointer-events:none}@media (max-width: 1200px){.main-layout,.header-grid,.status-bar,.lists-grid,.designer-select-row,.feature-designer,.pdf-grid{grid-template-columns:1fr}.shape-thumbnails{grid-template-columns:repeat(3,minmax(76px,1fr))}.pdf-check-grid-wide{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 720px){.detail-modal{padding:12px}.shape-thumbnails,.pdf-check-grid,.pdf-check-grid-wide{grid-template-columns:repeat(2,minmax(76px,1fr))}.shape-schema-svg{top:52px;right:86px;bottom:40px;left:76px;width:calc(100% - 162px);height:calc(100% - 92px)}.quantity-input{right:12px}.side-a{left:10px}.side-c{right:10px}}
