:root{--canvas-w: 816px;--canvas-h: 1054px;--panel-w: 272px;--panel-bg: #f4f4f5;--workspace-bg: #d9d9d9;--accent: #4285f4;--danger: #dc2626}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;color:#333;display:flex;height:100vh;overflow:hidden}.center-col{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.top-toolbar{display:flex;align-items:center;gap:3px;padding:5px 10px;background:var(--panel-bg);border-bottom:1px solid #d4d4d8;flex-shrink:0;flex-wrap:wrap}.toolbar-btn{display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid #d1d5db;background:#f9fafb;color:#374151;white-space:nowrap;transition:background .15s,border-color .15s}.toolbar-btn:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-btn-danger{color:var(--danger);border-color:#fca5a5}.toolbar-btn-danger:hover:not(:disabled){background:#fee2e2}.toolbar-sep{width:1px;height:22px;background:#d4d4d8;flex-shrink:0;margin:0 4px}.toolbar-zoom{display:flex;align-items:center;gap:6px;font-size:12px;color:#52525b;font-weight:500}.toolbar-zoom select{padding:4px 6px;border:1px solid #d1d5db;border-radius:4px;font-size:12px;background:#fff;color:#111;cursor:pointer;transition:border-color .15s}.toolbar-zoom select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #4285f42e}.tree-widget{border:1px solid #e4e4e7;border-radius:5px;overflow:hidden}.tree-toolbar{display:flex;background:#f4f4f6;border-bottom:1px solid #e4e4e7}.tree-ctrl-btn{flex:1;padding:3px 0;font-size:10px;color:#52525b;background:transparent;border:none;border-right:1px solid #e4e4e7;cursor:pointer;transition:background .12s}.tree-ctrl-btn:last-child{border-right:none}.tree-ctrl-btn:hover{background:#e9e9ec;color:#111}.tree-container{height:200px;overflow-y:auto;background:#fff;font-size:12px}.tree-container::-webkit-scrollbar{width:4px}.tree-container::-webkit-scrollbar-thumb{background:#c0c0c5;border-radius:2px}.tree-empty{display:flex;align-items:center;justify-content:center;height:100%;font-size:11px;color:#d0d0d0;pointer-events:none;-webkit-user-select:none;user-select:none}.tree-row{display:flex;align-items:center;gap:5px;padding:4px 8px 4px 0;cursor:pointer;-webkit-user-select:none;user-select:none;min-height:26px;border-top:2px solid transparent;border-bottom:2px solid transparent;transition:background .1s}.tree-row:hover{background:#00000008}.tree-row.is-selected{background:#4285f417}.tree-row.is-selected .tree-label{color:var(--accent);font-weight:500}.tree-row.tree-dragging{opacity:.4}.tree-row.tree-drop-before{border-top:2px solid var(--accent)}.tree-row.tree-drop-after{border-bottom:2px solid var(--accent)}.tree-row.tree-drop-inside{background:#4285f41a!important;outline:1px dashed var(--accent);outline-offset:-1px}.tree-indent{display:inline-block;flex-shrink:0}.tree-toggle{width:14px;flex-shrink:0;font-size:9px;color:#9ca3af;text-align:center;line-height:1;cursor:pointer}.tree-type-badge{display:inline-flex;align-items:center;font-size:9px;font-weight:700;padding:1px 4px;border-radius:3px;flex-shrink:0;letter-spacing:.3px}.tree-type-badge.vl{background:#dbeafe;color:#1d4ed8}.tree-type-badge.hl{background:#dcfce7;color:#15803d}.tree-type-badge.pb{background:#fef3c7;color:#92400e}.tree-block-icon{font-size:11px;color:#9ca3af;flex-shrink:0;width:14px;text-align:center}.tree-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#374151;font-size:12px}.tree-label-default{color:#9ca3af}.panel{width:var(--panel-w);min-width:var(--panel-w);background:var(--panel-bg);border-right:1px solid #d4d4d8;overflow-y:auto;display:flex;flex-direction:column}.panel-right{width:544px;min-width:544px;border-right:none;border-left:none}.panel-resize-handle{width:5px;flex-shrink:0;cursor:ew-resize;background:#d4d4d8;transition:background .15s}.panel-resize-handle:hover,.panel-resize-handle.is-resizing{background:var(--accent)}.panel::-webkit-scrollbar{width:4px}.panel::-webkit-scrollbar-thumb{background:#c0c0c5;border-radius:2px}.panel-header{padding:16px 16px 14px;border-bottom:1px solid #d4d4d8;flex-shrink:0}.panel-header h1{font-size:14px;font-weight:600;color:#111}.panel-header p{margin-top:3px;font-size:11px;color:#888}.section{padding:14px 16px;border-bottom:1px solid #e4e4e7;display:flex;flex-direction:column;gap:10px;flex-shrink:0}.section-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#9ca3af}#layout-style-container{display:flex;flex-direction:column;gap:8px}.section.ctx{display:none}.section.ctx.visible{display:flex}.field{display:flex;flex-direction:column;gap:4px}.field>label{font-size:12px;color:#52525b;font-weight:500}.field select,.field input[type=number]{padding:6px 8px;border:1px solid #d1d5db;border-radius:5px;font-size:13px;background:#fff;color:#111;width:100%;transition:border-color .15s,box-shadow .15s}.field select:focus,.field input[type=number]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #4285f42e}.field-row{display:flex;gap:8px}.field-row .field{flex:1}.custom-fields{display:none;flex-direction:column;gap:10px}.custom-fields.visible{display:flex}.hint{font-size:11px;color:#9ca3af;line-height:1.4}.btn-row{display:flex;gap:6px}.btn-row .btn{flex:1}.btn{padding:7px 12px;border-radius:5px;font-size:12px;font-weight:500;cursor:pointer;width:100%;border:1px solid #d1d5db;background:#f9fafb;color:#374151;transition:background .15s,border-color .15s}.btn:hover{background:#f3f4f6;border-color:#9ca3af}.btn-vl{background:#dbeafe;color:#1d4ed8;border:1px solid #bfdbfe}.btn-vl:hover{background:#bfdbfe}.btn-hl{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}.btn-hl:hover{background:#bbf7d0}.btn-pb{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.btn-pb:hover{background:#fde68a}.btn-danger{background:#fff;color:var(--danger);border:1px solid #fca5a5}.btn-danger:hover{background:#fee2e2}.type-badge{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:3px 8px;border-radius:4px}.type-badge.vl{background:#dbeafe;color:#1d4ed8}.type-badge.hl{background:#dcfce7;color:#15803d}.type-badge.pb{background:#fef3c7;color:#92400e}.workspace{flex:1;background:var(--workspace-bg);background-image:radial-gradient(circle,#bbb 1px,transparent 1px);background-size:20px 20px;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:40px 48px}.workspace::-webkit-scrollbar{width:8px;height:8px}.workspace::-webkit-scrollbar-track{background:transparent}.workspace::-webkit-scrollbar-thumb{background:#aaa;border-radius:4px}.canvas-wrapper{display:flex;flex-direction:column;align-items:center;gap:8px}.zoom-wrapper{position:relative;transition:width .2s ease,height .2s ease}.canvas{position:absolute;top:0;left:0;background:#fff;box-shadow:0 1px 2px #00000026,0 4px 12px #0003,0 8px 30px #0000001f;width:var(--canvas-w);min-height:var(--canvas-h);height:auto;transform-origin:top left;transition:width .2s ease,min-height .2s ease,transform .2s ease;overflow:visible}.canvas.is-continuous:after{content:"";position:absolute;bottom:0;left:0;right:0;height:4px;background:repeating-linear-gradient(to right,#bbb 0px,#bbb 8px,transparent 8px,transparent 16px)}.canvas-continues{font-size:10px;color:#888;letter-spacing:3px;text-transform:uppercase;padding:2px 0 4px;display:none}.canvas-continues.visible{display:block}.layout-root{width:100%;min-height:64px;position:relative}.layout-root-empty{display:flex;align-items:center;justify-content:center;height:64px;color:#ccc;font-size:11px;letter-spacing:.5px;pointer-events:none;-webkit-user-select:none;user-select:none}.page-break-marker{position:relative;width:100%;flex-shrink:0;cursor:pointer;box-sizing:border-box}.page-break-line{position:relative;height:0;border-top:2px dashed #cbd5e1;display:flex;justify-content:center}.page-break-marker.is-selected .page-break-line{border-top-color:var(--accent)}.page-break-label{position:absolute;top:-9px;background:#fff;padding:0 8px;font-size:10px;color:#94a3b8;text-transform:uppercase;letter-spacing:.4px;-webkit-user-select:none;user-select:none;pointer-events:none;white-space:nowrap}.page-break-marker.is-selected .page-break-label{color:var(--accent)}.page-break-marker .layout-toolbar{position:absolute;top:0;right:0;z-index:2}.page-break-marker.dnd-over-top{box-shadow:0 -3px 0 0 var(--accent)}.page-break-marker.dnd-over-bottom{box-shadow:0 3px 0 0 var(--accent)}.page-break-marker.dnd-dragging{opacity:.4}.layout{position:relative;display:flex;flex-direction:column;min-height:48px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s}.layout.vl{border-left:3px solid rgba(59,130,246,.4);border-bottom:1px dashed rgba(59,130,246,.15)}.layout.hl{border-left:3px solid rgba(34,197,94,.4);border-bottom:1px dashed rgba(34,197,94,.15)}.layout:hover{background:#00000004}.layout.is-selected{outline:2px solid var(--accent);outline-offset:-2px;background:#4285f40a;z-index:2}.layout.dnd-over-top,.block.dnd-over-top{border-top:2px solid var(--accent)!important}.layout.dnd-over-bottom,.block.dnd-over-bottom{border-bottom:2px solid var(--accent)!important}.layout.dnd-over-left,.block.dnd-over-left{border-left:2px solid var(--accent)!important}.layout.dnd-over-right,.block.dnd-over-right{border-right:2px solid var(--accent)!important}.layout.dnd-dragging,.block.dnd-dragging{opacity:.35}.layout.dnd-over-inside{background:#4285f414!important;outline:2px dashed var(--accent)!important;outline-offset:-2px}.layout-badge{position:absolute;top:3px;left:5px;font-size:8px;font-weight:700;padding:1px 5px;border-radius:3px;cursor:grab;z-index:10;letter-spacing:.8px;opacity:0;transition:opacity .15s;-webkit-user-select:none;user-select:none}.layout:hover .layout-badge,.layout.is-selected .layout-badge{opacity:1}.layout-badge:active{cursor:grabbing}.layout.vl .layout-badge{background:#dbeafe;color:#1d4ed8}.layout.hl .layout-badge{background:#dcfce7;color:#15803d}.layout-toolbar{position:absolute;top:3px;right:3px;display:none;gap:2px;z-index:10}.layout:hover .layout-toolbar,.layout.is-selected .layout-toolbar{display:flex}.layout-btn{width:20px;height:20px;border:1px solid #d1d5db;border-radius:3px;background:#fff;cursor:pointer;font-size:11px;display:flex;align-items:center;justify-content:center;color:#666;padding:0;line-height:1;transition:background .1s,color .1s,border-color .1s}.layout-btn:hover{background:#fee2e2;border-color:#fca5a5;color:var(--danger)}.layout-children{display:flex;padding:0}.layout.vl>.layout-children{flex-direction:column}.layout.hl>.layout-children{flex-direction:row}.layout.hl>.layout-children>.layout,.layout.hl>.layout-children>.block{flex:1;min-width:0}#block-palette{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.btn-block{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:10px 4px 8px;aspect-ratio:1;width:100%;text-align:center;font-size:10px;line-height:1.2;background:#f9fafb;color:#374151;border:1px solid #d1d5db;overflow:hidden}.btn-block i{font-size:18px;display:block}.btn-block span{display:block}.btn-block:hover{background:#f3f4f6;border-color:#9ca3af}.btn-block.dnd-dragging{opacity:.5}#block-fields{display:flex;flex-direction:column;gap:.5em}.block-config-header{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#374151;padding:2px 0 6px}.block-field-input{width:100%;padding:6px 8px;border:1px solid #d1d5db;border-radius:5px;font-size:13px;font-family:inherit;color:#111;background:#fff;transition:border-color .15s,box-shadow .15s}.block-field-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #4285f42e}textarea.block-field-input{resize:vertical;min-height:64px}.range-field{display:flex;align-items:center;gap:.5em}.range-field input[type=range]{flex:1;accent-color:var(--accent)}.range-value{font-size:12px;color:#6b7280;min-width:3.5em;text-align:right}.block{position:relative;min-width:0;padding:0;cursor:pointer;border:1px dashed transparent;transition:border-color .1s,background .1s;min-height:24px}.block:hover{border-color:#d1d5db;background:#00000003}.block.is-selected{border:1px solid var(--accent);background:#4285f408}.block-badge{position:absolute;top:3px;left:28px;font-size:9px;font-weight:600;color:#9ca3af;opacity:0;transition:opacity .15s;-webkit-user-select:none;user-select:none;pointer-events:none;display:flex;align-items:center;gap:3px}.block:hover .block-badge,.block.is-selected .block-badge{opacity:1}.block-toolbar{position:absolute;top:2px;right:2px;display:none;z-index:10}.block-preview{pointer-events:none}.style-section{border:1px solid #e4e4e7;border-radius:5px;overflow:hidden}.style-section summary{padding:6px 10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#9ca3af;cursor:pointer;background:#fafafa;-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:5px}.style-section summary::-webkit-details-marker{display:none}.style-section summary:before{content:"▸";font-size:9px;color:#9ca3af;transition:transform .15s}.style-section[open] summary:before{transform:rotate(90deg)}.style-section-body{padding:10px;display:flex;flex-direction:column;gap:8px;border-top:1px solid #e4e4e7;background:#fff}.page-style-body{gap:10px}.style-row{display:flex;align-items:flex-start;gap:8px}.style-row-label{width:52px;font-size:11px;color:#6b7280;flex-shrink:0;padding-top:5px}.style-4inputs{display:flex;gap:4px;flex:1}.style-4inputs>div{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1}.style-4inputs input[type=number]{width:100%;padding:4px 2px;font-size:12px;text-align:center;border:1px solid #d1d5db;border-radius:4px;background:#fff}.style-4inputs span{font-size:9px;color:#9ca3af;letter-spacing:.3px}.style-border-inputs{display:flex;gap:4px;flex:1;align-items:center}.style-border-inputs input[type=number]{width:52px;padding:5px 4px;font-size:12px;text-align:center;border:1px solid #d1d5db;border-radius:4px}.style-border-inputs select{flex:1;padding:5px 6px;font-size:12px;border:1px solid #d1d5db;border-radius:4px;background:#fff}.style-minh{display:flex;align-items:center;gap:6px;flex:1}.style-minh input[type=number]{width:72px;padding:4px 6px;font-size:12px;text-align:center;border:1px solid #d1d5db;border-radius:4px}.style-minh span{font-size:11px;color:#9ca3af}.style-border-inputs input[type=color]{width:32px;height:29px;padding:1px;border:1px solid #d1d5db;border-radius:4px;cursor:pointer}.style-bg-inputs{display:flex;align-items:center;gap:6px;flex:1}.style-bg-inputs input[type=color]{width:32px;height:29px;padding:1px;border:1px solid #d1d5db;border-radius:4px;cursor:pointer}.style-color-unset{opacity:.35}.style-bg-clear-btn{width:22px;height:29px;border:1px solid #d1d5db;border-radius:4px;background:#fff;cursor:pointer;font-size:11px;color:#6b7280;flex-shrink:0;padding:0;line-height:1;transition:background .1s,border-color .1s,color .1s}.style-bg-clear-btn:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5;color:var(--danger)}.style-bg-clear-btn:disabled{opacity:.3;cursor:not-allowed}.col-widths-section{display:flex;flex-direction:column;gap:6px}.col-widths-list{display:flex;flex-direction:column;gap:4px}.col-widths-row{display:flex;align-items:center;gap:5px}.col-widths-label{flex:1;font-size:11px;color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.col-widths-inp{width:46px;padding:4px 2px;font-size:12px;text-align:center;border:1px solid #d1d5db;border-radius:4px;background:#fff;color:#111;flex-shrink:0}.col-widths-inp:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #4285f426}.col-widths-unit{font-size:11px;color:#9ca3af;flex-shrink:0}.col-widths-clear{width:20px;height:24px;border:1px solid #d1d5db;border-radius:3px;background:#fff;cursor:pointer;font-size:13px;color:#6b7280;flex-shrink:0;padding:0;line-height:1;transition:background .1s,border-color .1s,color .1s}.col-widths-clear:hover:not(:disabled){background:#fee2e2;border-color:#fca5a5;color:var(--danger)}.col-widths-clear:disabled{opacity:.3;cursor:not-allowed}.col-widths-total{font-size:11px;color:#9ca3af}.col-widths-ok{color:#15803d;font-weight:500}.col-widths-warn{color:#d97706;font-weight:500}.condition-field{border-left:3px solid #f59e0b;padding-left:8px}.condition-field>label{color:#92400e!important}.condition-inp{font-family:monospace;font-size:12px!important}.note-editor.note-frame{border-color:#d1d5db!important;border-radius:5px}.note-editor.note-frame .note-toolbar{background:#f9fafb!important;border-color:#d1d5db!important;padding:4px!important}.note-editor .note-editable{font-size:13px}.block:hover .block-toolbar,.block.is-selected .block-toolbar{display:flex}.var-row{display:flex;align-items:center;gap:5px;margin-bottom:5px}.var-inp{padding:4px 6px;border:1px solid #d1d5db;border-radius:4px;font-size:12px;background:#fff;color:#111;transition:border-color .15s}.var-inp:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #4285f426}.var-name-inp{width:68px;flex-shrink:0;font-family:monospace}.var-val-inp{flex:1;min-width:0}.var-eq{font-size:12px;color:#9ca3af;flex-shrink:0;-webkit-user-select:none;user-select:none}.var-del-btn{width:20px;height:26px;border:1px solid #fca5a5;border-radius:3px;background:#fff;cursor:pointer;font-size:11px;color:var(--danger);flex-shrink:0;padding:0;line-height:1;transition:background .1s}.var-del-btn:hover{background:#fee2e2}.col-builder{border:1px solid #e4e4e7;border-radius:5px;overflow:hidden}.col-builder-header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:#fafafa;border-bottom:1px solid #e4e4e7;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#9ca3af}.col-add-btn{font-size:11px;padding:3px 8px;width:auto;height:auto}.col-list{padding:6px;display:flex;flex-direction:column;gap:5px;background:#fff;min-height:28px}.col-row{border:1px solid #e4e4e7;border-radius:4px;padding:6px;display:flex;flex-direction:column;gap:5px;background:#fafafa}.col-row-line1{display:flex;gap:4px;align-items:center}.col-inp{padding:3px 5px;border:1px solid #d1d5db;border-radius:4px;font-size:12px;font-family:inherit;background:#fff;color:#111;transition:border-color .15s}.col-inp:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #4285f426}.col-label-inp{flex:1;min-width:0;height:26px}.col-width-inp{width:42px;text-align:center;flex-shrink:0;height:26px}.col-align-sel{width:68px;flex-shrink:0;height:26px}.col-value-ta{resize:vertical;min-height:26px;width:100%;line-height:1.4;font-family:monospace}.col-move-btn{width:20px;height:26px;border:1px solid #d1d5db;border-radius:3px;background:#fff;cursor:pointer;font-size:11px;flex-shrink:0;color:#6b7280;padding:0;line-height:1;transition:background .1s,border-color .1s}.col-move-btn:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.col-move-btn:disabled{opacity:.3;cursor:not-allowed}.col-del-btn{width:20px;height:26px;border:1px solid #fca5a5;border-radius:3px;background:#fff;cursor:pointer;font-size:11px;color:var(--danger);flex-shrink:0;padding:0;line-height:1;transition:background .1s}.col-del-btn:hover{background:#fee2e2}@media print{.panel,.panel-right,.panel-resize-handle,.top-toolbar{display:none!important}body{display:block;height:auto;overflow:visible}.center-col{display:block}.workspace{display:block!important;background:#fff!important;background-image:none!important;padding:0!important;overflow:visible!important}.canvas-wrapper{display:block}.zoom-wrapper{display:block;width:auto!important;height:auto!important}.canvas{transform:none!important;position:static!important;box-shadow:none!important;width:var(--canvas-w)!important;height:auto!important;min-height:0!important}.canvas-continues,.layout-badge,.layout-toolbar,.block-badge,.block-toolbar,.layout-root-empty,.layout-inner-empty{display:none!important}.page-break-marker{break-before:page!important;page-break-before:always!important;height:0!important;padding-bottom:0!important;overflow:hidden!important}.page-break-line,.page-break-label,.page-break-marker .layout-toolbar{display:none!important}.layout.vl,.layout.hl{border-left:none!important;border-bottom:none!important}.block{border-color:transparent!important}.layout.is-selected,.block.is-selected{outline:none!important;background:transparent!important}.layout:hover,.block:hover{background:transparent!important}}.layout-inner-empty{flex:1;display:flex;align-items:center;justify-content:center;font-size:10px;color:#d0d0d0;letter-spacing:.3px;pointer-events:none;-webkit-user-select:none;user-select:none;min-height:28px}
