:root{--fb-ease-snappy:cubic-bezier(.16,1,.3,1);--fb-ease-smooth:cubic-bezier(.22,1,.36,1);--fb-ease-bounce:cubic-bezier(.34,1.56,.64,1);--fb-shadow-xs:0 1px 2px #0000000a;--fb-shadow-sm:0 2px 4px #0000000a,0 1px 2px #00000005;--fb-shadow-md:0 4px 12px #0000000d,0 2px 4px #00000008;--fb-shadow-hover:0 12px 24px -4px #2563eb1f,0 4px 8px -2px #2563eb14;--fb-shadow-float:0 24px 48px -12px #0000002e;--fb-glass-bg:#ffffffd9;--fb-glass-blur:blur(16px);--fb-glass-border:#fff6}[data-theme=dark]{--fb-shadow-xs:0 1px 2px #0006;--fb-shadow-sm:0 2px 8px #00000080;--fb-shadow-md:0 8px 24px #0009;--fb-shadow-hover:0 12px 28px #818cf826;--fb-shadow-float:0 32px 64px -12px #000000b3;--fb-glass-bg:#0f172ad9;--fb-glass-border:#ffffff0d}.fb-root{color:var(--wh-text,#09090b);font-family:var(--wh-font,"Inter",system-ui,sans-serif);--fb-device-fg:#111827;background:#fff;flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.fb-root ::-webkit-scrollbar{width:6px;height:6px}.fb-root ::-webkit-scrollbar-track{background:0 0}.fb-root ::-webkit-scrollbar-thumb{background:var(--wh-border-light,#d4d4d8);border-radius:10px}.fb-root ::-webkit-scrollbar-thumb:hover{background:var(--wh-text-muted,#a1a1aa)}.fb-toolbar{border-bottom:1px solid var(--wh-border-light,#0000000f);z-index:20;background:0 0;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:6px 16px;display:flex}.fb-toolbar-left{align-items:center;gap:16px;min-width:0;display:flex}.fb-toolbar-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.fb-toolbar-divider{background:var(--wh-border-light,#e4e4e7);width:1px;height:20px;margin:0 8px}.fb-save-status{color:var(--wh-text-muted,#71717a);white-space:nowrap;transition:all .3s var(--fb-ease-snappy);background:0 0;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:13px;font-weight:500;display:inline-flex}.fb-save-dot{background:var(--wh-text-muted,#a1a1aa);box-shadow:0 0 0 2px var(--fb-glass-bg);border-radius:50%;flex-shrink:0;width:6px;height:6px}.fb-save-unsaved{color:var(--wh-text-muted,#71717a)}.fb-save-unsaved .fb-save-dot{background:#f59e0b}.fb-save-saving{color:var(--wh-primary,#2563eb);background:#2563eb0f}.fb-save-saving>svg,.fb-save-saving [class*=icon]{animation:1s cubic-bezier(.5,.1,.4,.9) infinite fb-spin}@keyframes fb-spin{to{transform:rotate(360deg)}}.fb-save-saved{color:#16a34a;background:#16a34a0f}.fb-save-error{color:var(--wh-error,#ef4444);background:var(--wh-error-light,#ef444414)}.fb-grid{flex:1;grid-template-columns:1fr;gap:48px;min-height:0;padding:40px 48px 32px;display:grid;overflow:auto}.fb-grid-with-preview{grid-template-columns:minmax(0,1fr) 420px}@media (width<=1100px){.fb-grid-with-preview{grid-template-columns:minmax(0,1fr)}.fb-preview-col{border-top:1px dashed var(--wh-border-light);order:2;padding-top:32px}.fb-preview-sticky{max-width:520px;margin:0 auto;position:static}}.fb-editor{flex-direction:column;gap:28px;width:100%;min-width:0;max-width:720px;margin:0 auto;display:flex}.fb-canvas-head{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.fb-canvas-titleblock{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.fb-title-input{letter-spacing:-.02em;color:var(--wh-text,#09090b);background:0 0;border:none;outline:none;width:100%;padding:0;font-family:inherit;font-size:22px;font-weight:700;line-height:1.25}.fb-title-input::placeholder{color:var(--wh-text-muted,#a1a1aa);font-weight:700}.fb-description-input{color:var(--wh-text-secondary,#52525b);background:0 0;border:none;outline:none;width:100%;padding:0;font-family:inherit;font-size:14px;font-weight:400;line-height:1.4}.fb-description-input::placeholder{color:var(--wh-text-muted,#a1a1aa)}.fb-empty{color:var(--wh-text-muted,#71717a);text-align:center;background:0 0;border:none;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:56px 24px;display:flex}.fb-empty-icon-wrapper{box-shadow:none;color:var(--wh-text-muted,#a1a1aa);opacity:.6;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:4px;display:flex}.fb-empty-title{color:var(--wh-text-secondary,#52525b);letter-spacing:-.005em;font-size:14px;font-weight:500}.fb-empty-sub{color:var(--wh-text-muted,#a1a1aa);max-width:320px;font-size:13px;line-height:1.5}.fb-empty-chips{flex-wrap:wrap;justify-content:center;gap:12px;max-width:540px;margin-top:24px;display:flex}.fb-empty-chip{border:1px solid var(--wh-border-light,#00000014);background:var(--wh-surface,#fff);color:var(--wh-text,#09090b);cursor:pointer;box-shadow:var(--fb-shadow-xs);transition:all .2s var(--fb-ease-snappy);border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:500;display:inline-flex}.fb-empty-chip:hover{border-color:var(--wh-primary,#2563eb);color:var(--wh-primary,#2563eb);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb14}.fb-rows{flex-direction:column;gap:2px;display:flex}.fb-row{grid-template-columns:32px 1fr;align-items:center;gap:12px;display:grid;position:relative}.fb-row-num{color:var(--wh-primary,#2563eb);background:var(--wh-primary-light,#2563eb1a);user-select:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;margin:0 auto;font-size:11px;font-weight:600;display:inline-flex}.fb-row-card{background:var(--wh-surface,#fff);border:1px solid var(--wh-border-light,#0000000f);font:inherit;text-align:left;cursor:pointer;color:var(--wh-text,#09090b);transition:all .2s var(--fb-ease-snappy);border-radius:10px;align-items:center;gap:12px;width:100%;min-height:48px;padding:10px 14px;display:flex;position:relative;box-shadow:0 1px 2px #00000005}.fb-row-card:hover{background:var(--wh-bg-alt,#f9fafb);border-color:var(--wh-border,#0000001a)}.fb-row-card:focus-visible{background:var(--wh-bg-alt,#f4f4f5);box-shadow:0 0 0 2px var(--wh-surface),0 0 0 4px var(--wh-primary,#2563eb);outline:none}.fb-row-dragging{z-index:50;position:relative}.fb-row-dragging .fb-row-card{opacity:.92;background:var(--wh-surface);box-shadow:var(--fb-shadow-float);cursor:grabbing;border-color:#2563eb4d}.fb-row-grip{cursor:grab;color:var(--wh-text-muted,#a1a1aa);opacity:0;font:inherit;-webkit-tap-highlight-color:transparent;touch-action:none;background:0 0;border:0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:32px;padding:0;transition:background-color .2s,color .2s,opacity .2s;display:inline-flex}.fb-row-grip:focus-visible{opacity:1;box-shadow:0 0 0 2px var(--wh-surface),0 0 0 4px var(--wh-primary,#2563eb);outline:none}.fb-row-dragging .fb-row-grip{cursor:grabbing}.fb-row:hover .fb-row-grip,.fb-row-card:focus-within .fb-row-grip{opacity:1}.fb-row-grip:hover{color:var(--wh-text-secondary,#52525b);background:var(--wh-border-light,#e4e4e7)}.fb-row-grip:active{cursor:grabbing}.fb-row-icon{background:var(--wh-bg,#fafafa);border:1px solid var(--wh-border-light,#0000000a);color:var(--wh-text-secondary,#52525b);transition:all .2s var(--fb-ease-snappy);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.fb-row-card:hover .fb-row-icon{background:var(--wh-surface,#fff);box-shadow:var(--fb-shadow-xs);color:var(--wh-primary,#2563eb)}.fb-row-label{color:var(--wh-text,#09090b);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;padding-right:120px;font-size:14px;font-weight:500;overflow:hidden}.fb-row-required{color:var(--wh-error,#ef4444);flex-shrink:0;margin-right:8px;font-size:14px;font-weight:700}.fb-row-actions{background:linear-gradient(90deg,#f4f4f500 0%,var(--wh-bg-alt,#f4f4f5)20%,var(--wh-bg-alt,#f4f4f5)100%);opacity:0;pointer-events:none;transition:all .2s var(--fb-ease-snappy);border-radius:0 10px 10px 0;align-items:center;gap:4px;padding-left:24px;display:inline-flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)translate(10px)}.fb-row-card:hover .fb-row-actions,.fb-row-card:focus-within .fb-row-actions{opacity:1;pointer-events:auto;transform:translateY(-50%)translate(0)}.fb-row-act{color:var(--wh-text-muted,#71717a);cursor:pointer;transition:all .2s var(--fb-ease-snappy);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.fb-row-act:hover{background:var(--wh-border-light,#e4e4e7);color:var(--wh-text,#09090b)}.fb-row-act-danger:hover{background:var(--wh-error-light,#fef2f2);color:var(--wh-error,#ef4444)}.fb-insert{grid-template-columns:32px 1fr;align-items:center;height:8px;margin:2px 0;display:grid;position:relative}.fb-insert-line{background:var(--wh-primary,#2563eb);opacity:0;pointer-events:none;border-radius:2px;grid-column:2;width:100%;height:2px;transition:opacity .2s}.fb-insert:hover .fb-insert-line{opacity:.2}.fb-insert-btn{border:1px solid var(--wh-border-light,#e4e4e7);background:var(--wh-surface,#fff);color:var(--wh-text-muted,#71717a);cursor:pointer;opacity:0;transition:all .2s var(--fb-ease-bounce);box-shadow:var(--fb-shadow-sm);z-index:5;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex;position:absolute;left:50%;transform:translate(-50%)scale(.8)}.fb-insert:hover .fb-insert-btn,.fb-insert-btn:focus-visible,.fb-insert-btn[data-state=open]{opacity:1;transform:translate(-50%)scale(1)}.fb-insert-btn:hover{background:var(--wh-primary,#2563eb);border-color:var(--wh-primary,#2563eb);color:#fff;transform:translate(-50%)scale(1.1);box-shadow:0 4px 12px #2563eb33}.fb-preview-col{position:relative}.fb-preview-sticky{flex-direction:column;align-items:center;gap:14px;padding-top:0;display:flex;position:sticky;top:0}.fb-preview-header{justify-content:space-between;align-items:center;width:100%;max-width:420px;display:flex}.fb-preview-title{color:var(--wh-text-secondary,#52525b);letter-spacing:-.005em;align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.fb-preview-device-toggle{background:var(--wh-bg-alt,#f4f4f5);border:1px solid var(--wh-border-light,#0000000a);border-radius:8px;align-items:center;gap:2px;padding:3px;display:inline-flex}.fb-preview-device-btn{font:inherit;color:var(--wh-text-muted,#71717a);cursor:pointer;transition:all .2s var(--fb-ease-snappy);background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;display:inline-flex}.fb-preview-device-btn:hover{color:var(--wh-text,#09090b)}.fb-preview-device-btn.active{background:var(--wh-surface,#fff);color:var(--wh-text,#09090b);box-shadow:var(--fb-shadow-xs)}.fb-phone-bezel{border:1px solid var(--wh-border-light,#00000014);background:var(--wh-surface,#fff);transition:width .4s var(--fb-ease-smooth),height .4s var(--fb-ease-smooth);border-radius:32px;flex-direction:column;flex-shrink:0;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 24px -8px #00000014,0 2px 6px #0000000a}.fb-phone-notch,.fb-phone-notch-camera,.fb-phone-notch-speaker{display:none}.fb-phone-status{color:var(--fb-device-fg,#000);z-index:5;flex-shrink:0;justify-content:space-between;align-items:center;min-height:36px;padding:14px 24px 6px;font-size:13px;font-weight:600;display:flex}.fb-phone-status-icons{color:var(--fb-device-fg,#000);align-items:center;gap:6px;display:flex}.fb-phone-screen{background:var(--wh-surface,#fff);scrollbar-width:thin;scrollbar-color:#0003 transparent;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden auto}.fb-phone-screen::-webkit-scrollbar{width:4px}.fb-phone-screen::-webkit-scrollbar-thumb{background-color:#0003;border-radius:4px}.fb-phone-home{background:var(--fb-device-fg,#000);opacity:.6;border-radius:4px;flex-shrink:0;width:110px;height:4px;margin:10px auto 8px}.fb-preview-fullscreen{color:var(--wh-text-muted,#71717a);font:inherit;cursor:pointer;transition:all .2s var(--fb-ease-snappy);background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:6px 8px;font-size:13px;font-weight:500;display:inline-flex}.fb-preview-fullscreen:hover{color:var(--wh-text,#09090b);background:#0000000a}.fb-preview-actions{align-items:center;gap:4px;margin-top:4px;display:inline-flex}.fb-preview-reset{color:var(--wh-primary,#2563eb);font:inherit;cursor:pointer;transition:background-color .2s var(--fb-ease-snappy);background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:500;display:inline-flex}.fb-preview-reset:hover{background:#2563eb14}.fb-actionbar{background:var(--wh-surface,#fff);border-top:1px solid var(--wh-border-light,#0000000f);z-index:20;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;padding:12px 24px;display:flex}.fb-toast-wrap{z-index:100;pointer-events:none;animation:fb-toast-in .4s var(--fb-ease-bounce)both;position:absolute;bottom:80px;left:50%;transform:translate(-50%)}@keyframes fb-toast-in{0%{opacity:0;transform:translate(-50%,24px)scale(.9)}to{opacity:1;transform:translate(-50%)scale(1)}}.fb-toast{color:#fff;box-shadow:var(--fb-shadow-float);pointer-events:auto;background:#18181b;border:1px solid #ffffff1a;border-radius:12px;align-items:center;gap:14px;padding:12px 16px 12px 20px;font-size:13px;font-weight:500;display:inline-flex}.fb-toast-message{white-space:nowrap}.fb-toast-action{color:#fff;font:inherit;cursor:pointer;background:#ffffff1a;border:none;border-radius:6px;padding:6px 10px;font-size:12px;font-weight:600;transition:all .2s}.fb-toast-action:hover{background:#fff3}.fb-toast-close{color:#fff6;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;margin-left:-4px;padding:4px;transition:all .2s;display:inline-flex}.fb-toast-close:hover{color:#fff;background:#ffffff1a}.fb-dark{--fb-device-fg:#fff}.fb-dark .fb-root{background:var(--wh-bg,#09090b)}.fb-dark .fb-phone-bezel{background:#000;border-color:#27272a;box-shadow:0 0 0 1px #52525b,0 32px 64px -16px #000c,inset 0 0 0 2px #000}.fb-dark .fb-phone-notch,.fb-dark .fb-phone-screen{background:#000}.fb-dark .fb-card{background:var(--wh-surface,#18181b);border-color:#ffffff0f}.fb-dark .fb-row-card{background:0 0}.fb-dark .fb-row-card:hover,.fb-dark .fb-row-card:focus-visible{background:#ffffff0a}.fb-dark .fb-row-actions{background:linear-gradient(90deg,#18181b00 0%,var(--wh-surface,#18181b)20%,var(--wh-surface,#18181b)100%)}.fb-dark .fb-row-icon{background:#ffffff0a;border-color:#ffffff14}.fb-dark .fb-row-card:hover .fb-row-icon{background:#ffffff14}.fb-dark .fb-empty{background:#ffffff05;border-color:#ffffff14}.fb-dark .fb-empty-chip{color:#e4e4e7;background:#ffffff0a;border-color:#ffffff14}.fb-dark .fb-empty-icon-wrapper{color:#a1a1aa;background:#ffffff0d}.fb-dark .fb-preview-device-toggle{background:#ffffff0d;border-color:#ffffff14}.fb-dark .fb-preview-device-btn.active{background:var(--wh-surface,#27272a)}.fb-dark .fb-insert-btn{background:#18181b;border-color:#ffffff1a}