html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.module-tray{background:var(--builder-panel-bg,#fcfcfd);border-right:1px solid var(--builder-border,#d2dbe5);-webkit-user-select:none;user-select:none;flex-direction:column;flex-shrink:0;width:280px;min-width:280px;display:flex;overflow:hidden}.tray-header{border-bottom:1px solid var(--builder-border,#d2dbe5);justify-content:space-between;align-items:center;padding:10px 12px 8px;display:flex}.tray-title{color:#1e293b;font-size:12px;font-weight:500}.tray-close{color:var(--builder-dim,#7e8c9a);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 4px;font-size:16px;line-height:1}.tray-close:hover{color:#1e293b;background:#0b0d0e0d}.tray-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--builder-dim,#7e8c9a);padding:10px 12px 6px;font-size:11px}.tray-items{flex:1;padding:4px 8px 12px;overflow-y:auto}.tray-item{cursor:grab;color:#334155;border-radius:5px;align-items:center;gap:10px;margin-bottom:1px;padding:7px 10px;font-size:13px;transition:background .1s;display:flex}.tray-item:hover{color:#0f172a;background:#0b0d0e0d}.tray-item.dragging{opacity:.4}.tray-icon{text-align:center;width:22px;color:var(--builder-accent,#00a0d1);flex-shrink:0;font-family:monospace;font-size:14px}:root{--builder-accent:#00a0d1;--builder-accent-hover:#0090bd;--builder-muted:#555d66;--builder-target:32px;--builder-radius:6px}.node-chrome{outline-offset:-1px;outline:2px solid #0000;transition:outline-color .25s;position:relative}.node-chrome:hover{outline-color:var(--builder-accent);z-index:1}.node-chrome:hover>.chrome-actions{display:flex}.node-chrome.selected{outline-color:var(--builder-accent);z-index:2}.node-chrome.selected>.chrome-actions{display:flex}.node-chrome.node-muted{outline-color:var(--builder-muted)}.node-chrome.node-muted>.chrome-actions{background:var(--builder-muted);display:flex}.chrome-actions{z-index:10;background:var(--builder-accent);border-radius:0 0 var(--builder-radius) 0;align-items:center;gap:1px;padding:2px 4px;display:none;position:absolute;top:0;left:0}.chrome-btn{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;min-width:20px;min-height:22px;padding:2px 5px;font-size:11px;line-height:1;display:flex}.chrome-btn:hover{background:#fff3}.chrome-btn-delete{color:#fca5a5}.chrome-btn-delete:hover{color:#fff;background:#ef44444d}.chrome-divider{background:#ffffff40;width:1px;height:14px;margin:0 2px}.chrome-drag-handle{color:#ffffffbf;cursor:grab;touch-action:none;border-radius:3px;align-items:center;padding:2px 4px;font-size:12px;line-height:1;display:flex}.chrome-drag-handle:hover{color:#fff;background:#ffffff26}.chrome-drag-handle:active{cursor:grabbing}.node-chrome.node-highlighted{z-index:3;outline-width:2px;outline-color:#f59e0b!important}.tiptap-wrapper{flex-direction:column;gap:4px;display:flex}.tiptap-toolbar{gap:4px;display:flex}.tiptap-toggle{color:#ccc;cursor:pointer;background:#2a2a2a;border:1px solid #555;border-radius:3px;padding:2px 8px;font-size:11px}.tiptap-toggle.active{color:#fff;background:#4a90d9;border-color:#4a90d9}.tiptap-editor{color:#eee;cursor:text;background:#1e1e1e;border:1px solid #555;border-radius:3px;min-height:60px;padding:6px 8px;font-size:13px}.tiptap-editor .ProseMirror{outline:none;min-height:48px}.tiptap-editor .ProseMirror p{margin:0 0 4px}.tiptap-code{color:#9cdcfe;resize:vertical;box-sizing:border-box;background:#1e1e1e;border:1px solid #555;border-radius:3px;width:100%;min-height:60px;padding:6px 8px;font-family:monospace;font-size:12px}.module-node{cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:4px;min-height:32px;margin:4px 0;padding:10px 12px}.mod-heading{color:#111;font-size:20px;font-weight:700}.mod-text{color:#444;font-size:14px;line-height:1.5}.mod-image{text-align:center;color:#888;background:#f3f4f6;padding:16px;font-size:24px}.mod-button button{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:4px;padding:8px 20px;font-size:14px}.mod-spacer{background:repeating-linear-gradient(45deg,#f9fafb 0 4px,#e5e7eb 4px 8px);border-radius:2px;min-height:20px}.mod-divider{border-top:2px solid #e5e7eb;margin:8px 0}.mod-html{color:#888;background:#f3f4f6;border-radius:4px;padding:8px;font-family:monospace;font-size:13px}@keyframes sb-anim-fade{0%{opacity:0}to{opacity:1}}@keyframes sb-anim-slide-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes sb-anim-slide-down{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes sb-anim-slide-left{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes sb-anim-slide-right{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes sb-anim-zoom{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sb-anim-bounce{0%{opacity:0;transform:translateY(30px)}60%{transform:translateY(-10px)}80%{transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes sb-anim-flip{0%{opacity:0;transform:rotateY(90deg)}to{opacity:1;transform:rotateY(0)}}@keyframes sb-anim-pulse{0%{opacity:0;transform:scale(.95)}50%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.sb-anim{opacity:0}.sb-anim.sb-anim-active{animation-duration:.6s;animation-timing-function:ease-out;animation-fill-mode:forwards}.sb-anim.sb-anim-active[data-anim-preset=fade]{animation-name:sb-anim-fade}.sb-anim.sb-anim-active[data-anim-preset=slide-up]{animation-name:sb-anim-slide-up}.sb-anim.sb-anim-active[data-anim-preset=slide-down]{animation-name:sb-anim-slide-down}.sb-anim.sb-anim-active[data-anim-preset=slide-left]{animation-name:sb-anim-slide-left}.sb-anim.sb-anim-active[data-anim-preset=slide-right]{animation-name:sb-anim-slide-right}.sb-anim.sb-anim-active[data-anim-preset=zoom]{animation-name:sb-anim-zoom}.sb-anim.sb-anim-active[data-anim-preset=bounce]{animation-name:sb-anim-bounce}.sb-anim.sb-anim-active[data-anim-preset=flip]{animation-name:sb-anim-flip}.sb-anim.sb-anim-active[data-anim-preset=pulse]{animation-name:sb-anim-pulse}.col-node{background:#f8f9fc;border:1px dashed #d1d5db;border-radius:4px;flex:1;min-height:60px;padding:8px;transition:background .1s,border-color .1s}.col-node.drop-over{background:#eff6ff;border-style:solid;border-color:#3b82f6}.col-empty{color:#aaa;border:1px dashed #d1d5db;border-radius:4px;justify-content:center;align-items:center;min-height:48px;font-size:12px;display:none}.col-node.drop-over .col-empty{display:flex}.row-node{background:#fff;border:1px solid #e5e7eb;border-radius:6px;margin-bottom:8px;padding:8px;position:relative}.row-contained{max-width:1200px;margin-left:auto;margin-right:auto}.row-full-width{width:100%;max-width:none}.row-controls{align-items:center;gap:6px;margin-bottom:8px;display:none}.row-node:hover .row-controls{display:flex}.row-btn{cursor:pointer;color:#555;background:#f9fafb;border:1px solid #d1d5db;border-radius:4px;padding:3px 8px;font-size:11px}.row-btn:hover{background:#e5e7eb}.row-cols{gap:8px;display:flex}.asset-ref-badge{color:#6366f1;background:#eef2ff;border:1px solid #c7d2fe;border-radius:3px;margin-bottom:2px;padding:1px 5px;font-size:.68rem;display:inline-block}.canvas-wrap{background:#fff;flex:1;overflow:auto}.canvas-wrap.canvas-constrained{background:#e5e7eb;justify-content:center;align-items:flex-start;padding:24px;display:flex}.canvas-viewport{background:#fff;width:100%;min-height:100%;transition:max-width .3s}.canvas-constrained .canvas-viewport{border-radius:8px;min-height:600px;overflow:hidden;box-shadow:0 2px 16px #00000026}.canvas-empty{color:#9ca3af;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:320px;padding:48px;display:flex}.canvas-empty p{color:#9ca3af;font-size:14px}.add-row-btn{color:#fff;cursor:pointer;background:#00a0d1;border:none;border-radius:6px;padding:8px 20px;font-size:13px;font-weight:500}.add-row-btn:hover{background:#0090bd}.add-row-inline{color:#0000;cursor:pointer;background:0 0;border:2px dashed #0000;width:100%;margin-top:0;padding:8px;font-size:12px;transition:border-color .2s,color .2s;display:block}.add-row-inline:hover{color:#9ca3af;border-color:#d1d5db}.unit-input-row{align-items:center;gap:6px;margin-bottom:6px;display:flex}.unit-input-label{color:#aaa;flex-shrink:0;min-width:62px;font-size:11px}.unit-input-controls{flex:1;gap:2px;min-width:0;display:flex}.unit-input-number{color:#eee;background:#1a1a2e;border:1px solid #444;border-radius:4px 0 0 4px;flex:1 1 0;min-width:0;padding:3px 6px;font-size:12px}.unit-input-number:focus{border-color:#7c7cff;outline:none}.unit-input-number::-webkit-inner-spin-button{-webkit-appearance:none}.unit-input-number::-webkit-outer-spin-button{-webkit-appearance:none}.unit-input-select{color:#ccc;cursor:pointer;background:#252540;border:1px solid #444;border-left:none;border-radius:0 4px 4px 0;flex:none;width:46px;padding:3px 2px;font-size:11px}.unit-input-select:focus{border-color:#7c7cff;outline:none}.settings-panel{z-index:50;background:#16213e;border-left:1px solid #333;flex-direction:column;width:260px;display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden;box-shadow:-4px 0 24px #0000002e}.sp-panel-header{cursor:default;border-bottom:1px solid #2a2a4a;flex-shrink:0;justify-content:space-between;align-items:center;gap:6px;padding:8px 10px;display:flex}.sp-panel-title{color:#aaa;text-transform:uppercase;letter-spacing:.05em;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px;font-weight:500;overflow:hidden}.sp-panel-close{color:#666;cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;padding:2px 4px;font-size:14px;line-height:1}.sp-panel-close:hover{color:#ccc;background:#ffffff14}.sp-tabs{border-bottom:1px solid #333;flex-shrink:0;display:flex}.sp-tab-btn{color:#888;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:8px 4px;font-size:12px;transition:color .15s}.sp-tab-btn:hover{color:#ccc}.sp-tab-active{color:#7c7cff;border-bottom-color:#7c7cff}.sp-body{flex:1;padding:8px;overflow-y:auto}.sp-tab-content{flex-direction:column;display:flex}.sp-group{border-bottom:1px solid #2a2a4a;margin-bottom:12px;padding-bottom:12px}.sp-group:last-child{border-bottom:none}.sp-section-title{color:#7c7cff;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:11px;font-weight:600}.sp-sub{color:#666;text-transform:uppercase;letter-spacing:.04em;margin:6px 0 4px;font-size:10px}.sp-row{align-items:center;gap:6px;margin-bottom:6px;display:flex}.sp-label{color:#aaa;flex-shrink:0;min-width:80px;font-size:11px}.sp-select{color:#eee;background:#1a1a2e;border:1px solid #444;border-radius:4px;flex:1;padding:3px 6px;font-size:12px}.sp-select:focus{border-color:#7c7cff;outline:none}.sp-text{color:#eee;background:#1a1a2e;border:1px solid #444;border-radius:4px;flex:1;padding:3px 6px;font-size:12px}.sp-text:focus{border-color:#7c7cff;outline:none}.sp-color{cursor:pointer;background:#1a1a2e;border:1px solid #444;border-radius:4px;width:28px;height:22px;padding:1px}.sp-color-text{color:#eee;background:#1a1a2e;border:1px solid #444;border-radius:4px;flex:1;padding:3px 6px;font-family:monospace;font-size:11px}.sp-color-text:focus{border-color:#7c7cff;outline:none}.sp-hint{color:#666;text-align:center;padding:24px 8px;font-size:12px}.sp-page-placeholder{align-items:center}.sp-breakpoint-banner{color:#7ec8ff;text-align:center;letter-spacing:.03em;background:#1a3a5c;padding:5px 8px;font-size:11px;font-weight:600}.sp-row-stack{flex-direction:column;align-items:stretch}.sp-textarea{color:#eee;resize:vertical;box-sizing:border-box;background:#1a1a2e;border:1px solid #444;border-radius:4px;width:100%;padding:4px 6px;font-family:monospace;font-size:11px}.sp-textarea:focus{border-color:#7c7cff;outline:none}.sp-ai-btn{color:#fff;cursor:pointer;background:#7c3aed;border:none;border-radius:4px;flex:1;padding:5px 10px;font-size:12px;font-weight:600}.sp-ai-btn:hover:not(:disabled){background:#6d28d9}.sp-ai-btn:disabled{opacity:.4;cursor:not-allowed}.sp-ai-btn-secondary{background:#374151}.sp-ai-btn-secondary:hover:not(:disabled){background:#4b5563}.sp-ai-error{color:#ff6b6b;background:#ff6b6b1a;border-radius:3px;padding:4px 6px;font-size:11px}.panel-toggle{z-index:50;color:#ccc;cursor:pointer;background:#16213e;border:1px solid #333;border-right:none;border-radius:8px 0 0 8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;display:flex;position:absolute;top:50%;right:0;transform:translateY(-50%);box-shadow:-2px 2px 8px #00000059}.panel-toggle:hover{color:#fff;background:#1c2b52}.panel-toggle--open{border:1px solid #333;border-left:none;border-radius:0 8px 8px 0;right:260px;box-shadow:2px 2px 8px #00000059}.page-bar{background:#1a1a2e;border-bottom:1px solid #2a2a4a;flex-shrink:0;align-items:center;gap:2px;padding:4px 8px;display:flex;overflow-x:auto}.page-tab{cursor:pointer;color:#aaa;white-space:nowrap;background:#2a2a4a;border:1px solid #0000;border-bottom:none;border-radius:4px 4px 0 0;align-items:center;gap:4px;padding:4px 10px;font-size:13px;transition:background .15s;display:flex}.page-tab:hover{color:#ddd;background:#3a3a5a}.page-tab.active{color:#fff;background:#16213e;border-color:#4a4a6a}.page-tab-title{text-overflow:ellipsis;max-width:120px;overflow:hidden}.page-tab-edit-input{color:#fff;background:#0f3460;border:1px solid #4a4a6a;border-radius:2px;width:100px;padding:1px 4px;font-size:13px}.page-tab-btn{color:#888;cursor:pointer;opacity:.6;background:0 0;border:none;padding:0 2px;font-size:12px;line-height:1}.page-tab:hover .page-tab-btn{opacity:1}.page-tab-delete{color:#e74c3c}.page-tab-add{color:#888;cursor:pointer;background:0 0;border:1px solid #4a4a6a;border-radius:4px;flex-shrink:0;padding:2px 8px;font-size:16px;line-height:1}.page-tab-add:hover{color:#fff;background:#2a2a4a}.page-create-form{background:#0f3460;border:1px solid #4a4a6a;border-radius:4px;align-items:center;gap:4px;padding:2px 4px;display:flex}.page-create-form input{color:#fff;background:#1a1a2e;border:1px solid #4a4a6a;border-radius:3px;width:120px;padding:2px 6px;font-size:13px}.page-create-form button{color:#aaa;cursor:pointer;background:#0f3460;border:1px solid #4a4a6a;border-radius:3px;padding:2px 8px;font-size:12px}.page-create-form button:hover{color:#fff;background:#16213e}.revision-panel{z-index:100;background:#16213e;border-left:1px solid #2a2a4a;flex-direction:column;width:280px;display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-4px 0 16px #0006}.revision-panel-header{color:#ddd;border-bottom:1px solid #2a2a4a;justify-content:space-between;align-items:center;padding:12px 16px;font-weight:600;display:flex}.revision-close-btn{color:#888;cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:16px}.revision-close-btn:hover{color:#fff}.revision-loading,.revision-empty{color:#888;padding:16px;font-size:13px}.revision-list{flex:1;padding:8px;overflow-y:auto}.revision-item{background:#1a1a2e;border:1px solid #2a2a4a;border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:8px 10px;display:flex}.revision-meta{flex-direction:column;gap:2px;display:flex}.revision-note{color:#bbb;font-size:13px;font-weight:500}.revision-date{color:#666;font-size:11px}.revision-restore-btn{color:#aaa;cursor:pointer;background:#0f3460;border:1px solid #4a4a6a;border-radius:4px;flex-shrink:0;padding:4px 10px;font-size:12px}.revision-restore-btn:hover:not(:disabled){color:#fff;background:#16213e}.revision-restore-btn:disabled{opacity:.5;cursor:not-allowed}.asset-library{background:#fff;border-left:1px solid #e2e8f0;flex-direction:column;width:280px;min-width:280px;height:100%;display:flex;overflow-y:auto}.asset-library-header{background:#f8fafc;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:6px;padding:10px 12px;font-weight:600;display:flex}.asset-library-title{color:#334155;font-size:.9rem}.asset-lib-section{border-bottom:1px solid #f1f5f9;padding:10px 12px}.asset-lib-section-title{color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:.75rem;font-weight:600}.asset-lib-empty{color:#94a3b8;padding:6px 0;font-size:.8rem}.asset-grid{flex-direction:column;gap:8px;display:flex}.asset-card{background:#fafafa;border:1px solid #e2e8f0;border-radius:6px;flex-direction:column;gap:6px;padding:8px;display:flex}.asset-card:hover{background:#f8fafc;border-color:#cbd5e1}.asset-thumb{border-radius:4px;width:100%;height:auto;display:block}.asset-card-info{flex-direction:column;gap:3px;display:flex}.asset-name{color:#1e293b;word-break:break-word;font-size:.82rem;font-weight:500}.asset-type-badge{color:#fff;border-radius:10px;width:fit-content;padding:1px 5px;font-size:.68rem;font-weight:600;display:inline-block}.asset-card-actions{flex-wrap:wrap;gap:4px;display:flex}.asset-lib-btn{cursor:pointer;color:#374151;white-space:nowrap;background:#fff;border:1px solid #cbd5e1;border-radius:4px;padding:3px 8px;font-size:.75rem}.asset-lib-btn:hover:not(:disabled){background:#f1f5f9}.asset-lib-btn:disabled{opacity:.5;cursor:not-allowed}.asset-lib-btn-primary{color:#fff;background:#6366f1;border-color:#6366f1}.asset-lib-btn-primary:hover:not(:disabled){background:#4f46e5;border-color:#4f46e5}.asset-lib-btn-danger{color:#dc2626;background:#fff;border-color:#fca5a5}.asset-lib-btn-danger:hover:not(:disabled){background:#fef2f2}.asset-edit-input{border:1px solid #6366f1;border-radius:3px;width:100%;padding:2px 4px;font-size:.82rem}.asset-modal{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:8px;padding:12px;box-shadow:0 4px 16px #0000001f}.asset-modal-body{flex-direction:column;gap:10px;display:flex}.asset-modal-body label{color:#374151;flex-direction:column;gap:4px;font-size:.8rem;display:flex}.asset-modal-body input[type=text],.asset-modal-body input:not([type=checkbox]){border:1px solid #cbd5e1;border-radius:4px;padding:5px 8px;font-size:.85rem}.asset-check-label{align-items:center;flex-direction:row!important;gap:6px!important}.asset-modal-actions{justify-content:flex-end;gap:6px;display:flex}.shortcode-list{flex-direction:column;gap:6px;display:flex}.shortcode-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;font-size:.8rem;display:flex}.shortcode-name{flex:1;min-width:60px;font-weight:600}.shortcode-token{color:#3730a3;word-break:break-all;background:#e0e7ff;border-radius:4px;flex:2;padding:2px 6px;font-size:.75rem}.ai-modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ai-modal{background:#1e1e2e;border:1px solid #333;border-radius:8px;flex-direction:column;width:480px;max-width:95vw;display:flex}.ai-modal-header{color:#e0e0e0;border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:12px 16px;font-weight:600;display:flex}.ai-modal-close{color:#aaa;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px}.ai-modal-close:hover{color:#fff}.ai-modal-body{flex-direction:column;gap:8px;padding:16px;display:flex}.ai-label{color:#aaa;text-transform:uppercase;letter-spacing:.5px;font-size:12px}.ai-textarea{box-sizing:border-box;color:#e0e0e0;resize:vertical;background:#2a2a3e;border:1px solid #444;border-radius:4px;width:100%;padding:8px;font-size:14px}.ai-input{box-sizing:border-box;color:#e0e0e0;background:#2a2a3e;border:1px solid #444;border-radius:4px;width:100%;padding:6px 8px;font-size:14px}.ai-error{color:#ff6b6b;background:#ff6b6b1a;border-radius:4px;padding:6px;font-size:13px}.ai-modal-footer{border-top:1px solid #333;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.ai-btn-cancel{color:#aaa;cursor:pointer;background:0 0;border:1px solid #444;border-radius:4px;padding:6px 14px;font-size:13px}.ai-btn-cancel:hover{color:#fff;border-color:#666}.ai-btn-generate{color:#fff;cursor:pointer;background:#7c3aed;border:none;border-radius:4px;padding:6px 16px;font-size:13px;font-weight:600}.ai-btn-generate:hover:not(:disabled){background:#6d28d9}.ai-btn-generate:disabled{opacity:.5;cursor:not-allowed}.tg-overlay{z-index:2000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.tg-modal{background:#fff;border-radius:12px;flex-direction:column;width:min(900px,95vw);max-height:85vh;display:flex;overflow:hidden;box-shadow:0 8px 40px #0003}.tg-header{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.tg-title{color:#1a1a2e;font-size:18px;font-weight:700}.tg-close-btn{cursor:pointer;color:#666;background:0 0;border:1px solid #ddd;border-radius:6px;padding:4px 10px;font-size:14px}.tg-close-btn:hover{background:#f5f5f5}.tg-loading{text-align:center;color:#888;padding:48px}.tg-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;padding:24px;display:grid;overflow-y:auto}.tg-card{background:#fafafa;border:1px solid #e8e8f0;border-radius:10px;flex-direction:column;align-items:center;gap:10px;padding:16px;transition:box-shadow .15s,border-color .15s;display:flex}.tg-card:hover{border-color:#ec4899;box-shadow:0 4px 16px #ec499926}.tg-thumb{border-radius:6px;display:block}.tg-card-name{color:#1a1a2e;text-align:center;font-size:14px;font-weight:600}.tg-use-btn{color:#fff;cursor:pointer;background:#ec4899;border:none;border-radius:6px;width:100%;padding:7px 16px;font-size:13px;font-weight:600;transition:background .15s}.tg-use-btn:hover:not(:disabled){background:#db2777}.tg-use-btn:disabled{opacity:.5;cursor:not-allowed}.tg-empty{color:#aaa;text-align:center;grid-column:1/-1;padding:32px;font-size:14px}.outline-panel{background:var(--builder-panel-bg,#fcfcfd);border-right:1px solid var(--builder-border,#d2dbe5);-webkit-user-select:none;user-select:none;flex-direction:column;flex-shrink:0;width:220px;min-width:220px;display:flex;overflow:hidden}.outline-header{border-bottom:1px solid var(--builder-border,#d2dbe5);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 12px 8px;display:flex}.outline-title{color:#1e293b;font-size:12px;font-weight:500}.outline-close{color:var(--builder-dim,#7e8c9a);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 4px;font-size:16px;line-height:1}.outline-close:hover{color:#1e293b;background:#0b0d0e0d}.outline-body{flex:1;padding:4px 0;overflow-y:auto}.outline-empty{color:var(--builder-dim,#7e8c9a);text-align:center;padding:24px 12px;font-size:12px}.outline-item{flex-direction:column;display:flex}.outline-row{cursor:pointer;color:#475569;border-radius:3px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;transition:background .1s;display:flex}.outline-row:hover{color:#0f172a;background:#0b0d0e0d}.outline-row.outline-active{color:var(--builder-accent,#00a0d1);background:#0da6f214}.outline-level-0{padding-left:8px}.outline-level-1{padding-left:20px}.outline-level-2{padding-left:32px}.outline-level-3{padding-left:44px}.outline-toggle{width:14px;color:var(--builder-dim,#7e8c9a);cursor:pointer;text-align:center;flex-shrink:0;font-size:10px;line-height:1}.outline-toggle-leaf{cursor:default}.outline-icon{text-align:center;width:16px;color:var(--builder-dim,#7e8c9a);flex-shrink:0;font-size:11px}.outline-row.outline-active .outline-icon{color:var(--builder-accent,#00a0d1)}.outline-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}:root{--bar-height:44px;--builder-accent:#00a0d1;--builder-accent-hover:#0090bd;--builder-panel-bg:#fcfcfd;--builder-border:#d2dbe5;--builder-dim:#7e8c9a}.builder-root{background:var(--builder-panel-bg);color:#1e293b;flex-direction:column;height:100vh;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;display:flex;overflow:hidden}.builder-toolbar{height:var(--bar-height);background:var(--builder-panel-bg);border-bottom:1px solid var(--builder-border);z-index:100;flex-shrink:0;align-items:center;gap:6px;padding:0 12px;display:flex}.builder-title{color:#1e293b;white-space:nowrap;font-size:13px;font-weight:500}.builder-title-sep{color:var(--builder-border);margin:0 2px}.toolbar-spacer{flex:1}.toolbar-devices{gap:2px;display:flex}.device-btn{color:var(--builder-dim);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;height:28px;padding:4px 7px;font-size:13px;line-height:1;display:flex}.device-btn:hover{color:#1e293b;background:#0b0d0e0d}.device-btn.active{background:var(--builder-accent);color:#fff;border-radius:4px}.toolbar-sep{background:var(--builder-border);width:1px;height:20px;margin:0 4px}.toolbar-btn{color:var(--builder-dim);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:3px;align-items:center;gap:4px;height:28px;padding:4px 8px;font-size:13px;display:flex}.toolbar-btn:hover:not(:disabled){color:#1e293b;background:#0b0d0e0d}.toolbar-btn:disabled{opacity:.35;cursor:default}.save-chip{color:var(--builder-dim);border:1px solid var(--builder-border);white-space:nowrap;background:0 0;border-radius:10px;padding:2px 8px;font-size:12px;font-style:italic}.save-chip.saving{color:#f59e0b;border-color:#f59e0b44}.save-chip.saved{color:#22c55e;border-color:#22c55e44}.toolbar-btn-primary{background:var(--builder-accent);color:#fff;cursor:pointer;border:none;border-radius:3px;align-items:center;height:28px;padding:4px 14px;font-size:13px;font-weight:500;display:flex}.toolbar-btn-primary:hover:not(:disabled){background:var(--builder-accent-hover)}.toolbar-btn-primary:disabled{opacity:.5;cursor:default}.tray-toggle{color:var(--builder-dim);cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;width:28px;height:28px;font-size:18px;line-height:1;transition:transform .2s;display:flex}.tray-toggle:hover{color:#1e293b;background:#0b0d0e0d}.tray-toggle.open{color:var(--builder-accent);transform:rotate(45deg)}.builder-body{flex:1;display:flex;overflow:hidden}.preview-mode{z-index:200;background:#fff;position:fixed;inset:0}.preview-frame-full{background:#fff;border:none;width:100%;height:100%;display:block}.preview-controls{z-index:210;background:var(--builder-panel-bg);border:1px solid var(--builder-border);border-radius:8px;align-items:center;gap:6px;padding:6px 10px;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 4px 16px #0000001f}.panel-toggle{background:var(--builder-panel-bg);border:1px solid var(--builder-border);color:var(--builder-dim);cursor:pointer;z-index:20;border-right:none;border-radius:4px 0 0 4px;padding:6px 5px;font-size:14px;transition:color .15s;position:absolute;top:50%;right:0;transform:translateY(-50%)}.panel-toggle:hover{color:#1e293b}.panel-toggle--open{color:var(--builder-accent)}.toolbar-status{color:var(--builder-dim);font-size:11px}.toolbar-btn-active{color:var(--builder-accent);background:#0da6f21a}.drag-ghost{background:var(--builder-accent);color:#fff;white-space:nowrap;pointer-events:none;border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;font-weight:500;display:flex;box-shadow:0 4px 16px #0003}.drag-ghost-icon{opacity:.75;font-size:14px}.drag-ghost-label{text-transform:capitalize}.panel-toggle--open{right:260px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:#eee;background:#1a1a2e;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.token-gate{justify-content:center;align-items:center;min-height:100vh;display:flex}.token-gate form{background:#16213e;border-radius:12px;flex-direction:column;gap:12px;min-width:300px;padding:32px;display:flex}.token-gate input{color:#eee;background:#0f0e17;border:1px solid #444;border-radius:6px;padding:10px 12px;font-size:14px}.token-gate button{color:#fff;cursor:pointer;background:#7c7cff;border:none;border-radius:6px;padding:10px;font-size:14px}.token-error{color:#f87171;font-size:13px}.site-picker{max-width:600px;margin:60px auto;padding:24px}.site-picker h2{color:#7c7cff;margin-bottom:20px;font-size:24px}.site-picker h3{color:#ccc;margin-bottom:12px;font-size:16px}.site-list{flex-direction:column;gap:8px;margin-bottom:32px;display:flex}.site-card{background:#16213e;border:1px solid #333;border-radius:8px;padding:16px}.site-name{cursor:pointer;font-size:16px}.site-name:hover{color:#7c7cff}.site-slug{color:#888;font-size:12px}.page-list{flex-direction:column;gap:6px;margin-top:12px;display:flex}.page-btn{color:#ccc;cursor:pointer;text-align:left;background:#0f0e17;border:1px solid #444;border-radius:6px;padding:8px 12px;font-size:13px}.page-btn:hover{background:#7c7cff22;border-color:#7c7cff}.create-site-form{background:#16213e;border:1px solid #333;border-radius:8px;flex-direction:column;gap:10px;padding:20px;display:flex}.create-site-form input{color:#eee;background:#0f0e17;border:1px solid #444;border-radius:6px;padding:8px 12px;font-size:13px}.create-site-form button{color:#fff;cursor:pointer;background:#22c55e;border:none;border-radius:6px;padding:8px 16px;font-size:13px}.picker-loading{text-align:center;color:#888;padding:60px}.picker-error{color:#f87171;margin-bottom:16px}
