:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font-ui:"Folio Inter", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"Folio Roboto Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--bg:#eef4ff;--bg-elevated:#f6f9ff;--surface:#fff;--surface-muted:#f3f7ff;--surface-hover:#e8f0ff;--surface-active:#dbe7ff;--canvas-bg:#dde8fb;--text:#0e1a3a;--text-secondary:#3a4a70;--text-muted:#55648a;--text-on-primary:#fff;--border:#0e1a3a1a;--border-strong:#0e1a3a33;--hairline:#0e1a3a0f;--primary:#2563eb;--primary-hover:#1d4fd8;--accent:#2563eb;--accent-soft:#2563eb1f;--accent-strong:#1d4fd8;--sun:#ffc300;--sun-hover:#ffd23f;--sun-soft:#ffc30038;--sun-ink:#0e1a3a;--danger:#c42618;--danger-soft:#c426181a;--success:#0b7a4b;--info-soft:#2563eb12;--selection:#2563eb;--warn-text:#7a4d00;--scrim:#eef4ffb8;--rail-a:#1a45c8;--rail-b:#2a62f0;--rail-text:#fff;--rail-muted:#ffffffc7;--rail-hover:#ffffff24;--radius-sm:4px;--radius:6px;--radius-lg:10px;--radius-xl:14px;--shadow-sm:0 1px 2px #0e1a3a0f, 0 0 0 1px var(--border);--shadow:0 1px 2px #0e1a3a0d, 0 4px 12px #0e1a3a12, 0 0 0 1px var(--border);--shadow-lg:0 2px 6px #0e1a3a14, 0 16px 40px #0e1a3a24, 0 0 0 1px var(--border);--shadow-page:0 1px 2px #0e1a3a14, 0 12px 32px #0e1a3a1f, 0 0 0 1px #0e1a3a0f;--focus-ring:0 0 0 2px var(--surface), 0 0 0 4px var(--accent);--topbar-h:48px;--sidebar-w:236px;--props-w:272px;--control-h:34px;--control-h-compact:28px;--toolbar-btn:44px;--font-size:14px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root{--dark-bg:#0a1128;--dark-bg-elevated:#101a38;--dark-surface:#141f42;--dark-surface-muted:#0e1733;--dark-surface-hover:#1b2850;--dark-surface-active:#24336a;--dark-canvas-bg:#070d1f;--dark-text:#eaf0ff;--dark-text-secondary:#b8c4e6;--dark-text-muted:#9fb0da;--dark-text-on-primary:#0a1128;--dark-border:#eaf0ff1f;--dark-border-strong:#eaf0ff38;--dark-hairline:#eaf0ff14;--dark-primary:#6ea0ff;--dark-primary-hover:#8ab4ff;--dark-accent:#6ea0ff;--dark-accent-soft:#6ea0ff33;--dark-accent-strong:#9bbcff;--dark-sun:#ffd23f;--dark-sun-hover:#ffdd6b;--dark-sun-soft:#ffd23f2e;--dark-sun-ink:#0a1128;--dark-danger:#ff8a7a;--dark-danger-soft:#ff8a7a29;--dark-success:#4fd1a1;--dark-info-soft:#eaf0ff0f;--dark-selection:#6ea0ff;--dark-warn-text:#ffd23f;--dark-scrim:#050916b3;--dark-rail-a:#0f2a7a;--dark-rail-b:#1c46c4;--dark-rail-text:#fff;--dark-rail-muted:#ffffffc7;--dark-rail-hover:#ffffff24;--dark-shadow-sm:0 1px 2px #0006, 0 0 0 1px var(--border);--dark-shadow:0 1px 2px #00000059, 0 4px 12px #00000073, 0 0 0 1px var(--border);--dark-shadow-lg:0 2px 6px #00000073, 0 16px 40px #0009, 0 0 0 1px var(--border);--dark-shadow-page:0 1px 2px #00000080, 0 12px 32px #0009, 0 0 0 1px #eaf0ff1a}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--dark-bg);--bg-elevated:var(--dark-bg-elevated);--surface:var(--dark-surface);--surface-muted:var(--dark-surface-muted);--surface-hover:var(--dark-surface-hover);--surface-active:var(--dark-surface-active);--canvas-bg:var(--dark-canvas-bg);--text:var(--dark-text);--text-secondary:var(--dark-text-secondary);--text-muted:var(--dark-text-muted);--text-on-primary:var(--dark-text-on-primary);--border:var(--dark-border);--border-strong:var(--dark-border-strong);--hairline:var(--dark-hairline);--primary:var(--dark-primary);--primary-hover:var(--dark-primary-hover);--accent:var(--dark-accent);--accent-soft:var(--dark-accent-soft);--accent-strong:var(--dark-accent-strong);--danger:var(--dark-danger);--danger-soft:var(--dark-danger-soft);--success:var(--dark-success);--info-soft:var(--dark-info-soft);--selection:var(--dark-selection);--sun:var(--dark-sun);--sun-hover:var(--dark-sun-hover);--sun-soft:var(--dark-sun-soft);--sun-ink:var(--dark-sun-ink);--rail-a:var(--dark-rail-a);--rail-b:var(--dark-rail-b);--rail-text:var(--dark-rail-text);--rail-muted:var(--dark-rail-muted);--rail-hover:var(--dark-rail-hover);--warn-text:var(--dark-warn-text);--scrim:var(--dark-scrim);--shadow-sm:var(--dark-shadow-sm);--shadow:var(--dark-shadow);--shadow-lg:var(--dark-shadow-lg);--shadow-page:var(--dark-shadow-page)}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:var(--dark-bg);--bg-elevated:var(--dark-bg-elevated);--surface:var(--dark-surface);--surface-muted:var(--dark-surface-muted);--surface-hover:var(--dark-surface-hover);--surface-active:var(--dark-surface-active);--canvas-bg:var(--dark-canvas-bg);--text:var(--dark-text);--text-secondary:var(--dark-text-secondary);--text-muted:var(--dark-text-muted);--text-on-primary:var(--dark-text-on-primary);--border:var(--dark-border);--border-strong:var(--dark-border-strong);--hairline:var(--dark-hairline);--primary:var(--dark-primary);--primary-hover:var(--dark-primary-hover);--accent:var(--dark-accent);--accent-soft:var(--dark-accent-soft);--accent-strong:var(--dark-accent-strong);--danger:var(--dark-danger);--danger-soft:var(--dark-danger-soft);--success:var(--dark-success);--info-soft:var(--dark-info-soft);--selection:var(--dark-selection);--sun:var(--dark-sun);--sun-hover:var(--dark-sun-hover);--sun-soft:var(--dark-sun-soft);--sun-ink:var(--dark-sun-ink);--rail-a:var(--dark-rail-a);--rail-b:var(--dark-rail-b);--rail-text:var(--dark-rail-text);--rail-muted:var(--dark-rail-muted);--rail-hover:var(--dark-rail-hover);--warn-text:var(--dark-warn-text);--scrim:var(--dark-scrim);--shadow-sm:var(--dark-shadow-sm);--shadow:var(--dark-shadow);--shadow-lg:var(--dark-shadow-lg);--shadow-page:var(--dark-shadow-page)}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.ink-presets{border-radius:var(--radius);background:#fff;padding:3px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-ui);font-size:var(--font-size);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overscroll-behavior:none;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent-strong)}:focus-visible{box-shadow:var(--focus-ring);outline:none}::selection{background:var(--accent-soft)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn{height:var(--control-h);border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);white-space:nowrap;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:700;transition:background .12s,border-color .12s,box-shadow .12s,transform 80ms;display:inline-flex;box-shadow:0 1px 1px #0e1a3a0a}.btn:hover:not(:disabled){background:var(--surface-hover)}.btn:active:not(:disabled){background:var(--surface-active);transform:translateY(.5px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--text-on-primary);box-shadow:0 1px 2px #0e1a3a40,inset 0 1px #ffffff14}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:active:not(:disabled){background:var(--primary)}.btn-ghost{box-shadow:none;background:0 0;border-color:#0000}.btn-danger{color:var(--danger);border-color:#b3412f59}.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-sm{height:var(--control-h-compact);padding:0 8px;font-size:12px}.btn-lg{height:38px;padding:0 16px;font-size:14px}.btn-icon{width:var(--control-h);padding:0}.btn-icon.btn-sm{width:var(--control-h-compact)}.btn.active,.btn[aria-pressed=true],.btn[role=tab][aria-selected=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.icon{stroke:currentColor;fill:none;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}[dir=rtl] .icon-mirror{transform:scaleX(-1)}.btn-icon:not(.btn-sm)>.icon{width:18px;height:18px}.input,.select,.textarea{height:var(--control-h);border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);width:100%;min-width:0;padding:0 9px;transition:border-color .12s,box-shadow .12s}.textarea{resize:vertical;height:auto;font-family:var(--font-mono);padding:7px 9px;font-size:12px}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input[aria-invalid=true]{border-color:var(--danger)}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2355648a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;padding-inline-end:26px}.field{flex-direction:column;gap:5px;display:flex}.field>label,.field-label{color:var(--text-secondary);font-size:12px;font-weight:700}.field-hint{color:var(--text-muted);font-size:12px}.field-error{color:var(--danger);font-size:12px}.row{align-items:center;gap:8px;display:flex}.row-wrap{flex-wrap:wrap}.grow{flex:auto;min-width:0}.stack{flex-direction:column;gap:12px;display:flex}.muted{color:var(--text-muted)}.small{font-size:12px}.mono{font-family:var(--font-mono);font-size:12px}.kbd{border:1px solid var(--border-strong);background:var(--surface-muted);font-family:var(--font-ui);color:var(--text-secondary);border-radius:4px;padding:0 5px;font-size:11px;line-height:17px;display:inline-block}.divider{background:var(--border-strong);width:1px;height:18px;margin:0 4px}.hr{background:var(--border);height:1px;margin:4px 0}.checkbox{cursor:pointer;align-items:center;gap:8px;display:flex}.checkbox input{width:15px;height:15px;accent-color:var(--primary);margin:0}.notice{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-muted);color:var(--text-secondary);padding:10px 12px;font-size:12.5px;line-height:1.5}.notice-warn{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 40%, transparent);color:var(--warn-text)}.notice-success{background:color-mix(in srgb, var(--success) 8%, transparent);border-color:color-mix(in srgb, var(--success) 40%, transparent);color:var(--success)}.notice-danger{background:var(--danger-soft);color:var(--danger);border-color:#b3412f4d}.notice ul{margin:6px 0 0;padding-inline-start:18px}.tag{background:var(--surface-muted);border:1px solid var(--border);height:20px;color:var(--text-secondary);border-radius:999px;align-items:center;padding:0 7px;font-size:11px;font-weight:500;display:inline-flex}.tag-accent{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent-strong)}.progress{background:var(--surface-active);border-radius:999px;height:4px;overflow:hidden}.progress>div{background:var(--accent);height:100%;transition:width .16s}dialog.dialog{border-radius:var(--radius-xl);background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg);border:none;flex-direction:column;width:min(520px,100vw - 32px);max-height:calc(100vh - 48px);padding:0;display:none;overflow:hidden}dialog.dialog[open]{display:flex}dialog.dialog-wide{width:min(760px,100vw - 32px)}dialog.dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0e1a3a59}.dialog-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}.dialog-title{letter-spacing:-.01em;margin:0;font-size:16px;font-weight:700}.dialog-body{flex-direction:column;gap:14px;padding:16px 20px;display:flex;overflow:auto}.dialog-footer{border-top:1px solid var(--border);background:var(--bg-elevated);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.dialog-footer .spacer{flex:1}.toasts{inset-inline-end:16px;z-index:100;flex-direction:column;gap:8px;max-width:min(420px,100vw - 32px);display:flex;position:fixed;bottom:16px}.toast{border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg);align-items:flex-start;gap:10px;padding:10px 12px;font-size:12.5px;line-height:1.45;animation:.18s toast-in;display:flex}.toast-error{border-inline-start:3px solid var(--danger)}.toast-success{border-inline-start:3px solid var(--success)}.toast-info{border-inline-start:3px solid var(--accent)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.loading-overlay{background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:90;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-card{border-radius:var(--radius-xl);background:var(--surface);width:min(360px,100vw - 32px);box-shadow:var(--shadow-lg);flex-direction:column;gap:10px;padding:18px 20px;display:flex}.shell{grid-template-columns:232px minmax(0,1fr);min-height:100%;display:grid}.rail{height:100vh;color:var(--rail-text);background:radial-gradient(90% 45% at 0% 100%, #5ac8ff66, transparent 65%), linear-gradient(170deg, var(--rail-a), var(--rail-b));flex-direction:column;gap:24px;padding:22px 14px 18px;display:flex;position:sticky;top:0;overflow:hidden}.rail:before,.rail:after{content:"";pointer-events:none;border:2px solid #ffffff1f;border-radius:50%;position:absolute}.rail:before{inset-inline-start:-110px;width:280px;height:280px;bottom:90px}.rail:after{inset-inline-start:-40px;width:180px;height:180px;bottom:140px}.rail>*{z-index:1;position:relative}.rail-brand{letter-spacing:-.02em;align-items:center;gap:10px;padding:0 8px;font-size:19px;font-weight:700;display:flex}.rail-brand .logo{background:var(--sun);width:32px;height:32px;color:var(--sun-ink);border-radius:10px;place-items:center;display:grid;box-shadow:0 4px 12px #0000002e}.rail-nav{flex-direction:column;gap:4px;display:flex}.rail-item{border-radius:var(--radius-lg);height:42px;color:var(--rail-text);text-align:start;background:0 0;border:0;align-items:center;gap:12px;padding:0 12px;font-size:14px;font-weight:700;transition:background .12s;display:flex}.rail-item:hover{background:var(--rail-hover)}.rail-item:focus-visible{box-shadow:0 0 0 2px var(--rail-b), 0 0 0 4px #fff}.rail-item .icon{width:20px;height:20px}.rail-badge{background:var(--sun);min-width:22px;height:22px;color:var(--sun-ink);border-radius:11px;place-items:center;padding:0 7px;font-size:12px;font-weight:700;display:grid}.rail-privacy{border-radius:var(--radius-lg);color:var(--rail-text);background:#ffffff24;align-items:flex-start;gap:10px;margin-top:auto;padding:14px;font-size:12.5px;font-weight:700;line-height:1.35;display:flex}.rail-privacy .icon{width:18px;height:18px;color:var(--sun);flex:none}.home{background:radial-gradient(60% 40% at 100% 0%, var(--accent-soft), transparent 70%), radial-gradient(50% 40% at 0% 0%, var(--accent-soft), transparent 70%);flex-direction:column;align-items:center;gap:28px;min-width:0;min-height:100%;padding:44px 32px 40px;display:flex}.home-hero{width:min(880px,100%)}.home-hero h1{letter-spacing:-.03em;text-align:center;color:var(--text);margin:0 0 10px;font-size:40px;font-weight:700;line-height:1.08}.home-hero h1:after{content:"";background:var(--sun);border-radius:3px;width:96px;height:6px;margin:14px auto 0;display:block}.home-hero p{max-width:620px;color:var(--text-secondary);text-align:center;margin:0 auto;font-size:15px}.dropzone{color:#fff;background:radial-gradient(70% 120% at 100% 0%, #5ac8ff80, transparent 58%), radial-gradient(60% 100% at 0% 100%, #ffffff24, transparent 60%), linear-gradient(135deg, var(--rail-a), var(--rail-b));border:2px dashed #ffffff8c;border-radius:22px;flex-direction:column;align-items:center;gap:16px;width:min(880px,100%);padding:40px 28px 36px;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 40px #2563eb4d}.dropzone:before{content:"";inset-inline-end:-90px;pointer-events:none;border:2px solid #ffffff29;border-radius:50%;width:360px;height:360px;position:absolute;top:-170px}.dropzone:after{content:"";background:var(--sun);opacity:.9;inset-inline-start:7%;pointer-events:none;border-radius:50%;width:54px;height:54px;position:absolute;bottom:22%}.dropzone>*{z-index:1;position:relative}.dropzone.over{border-color:var(--sun);box-shadow:0 0 0 5px var(--sun-soft), 0 18px 40px #2563eb61;transform:scale(1.01)}.dropzone-icon{background:#ffffff2e;border-radius:20px;place-items:center;width:64px;height:64px;display:grid}.dropzone-icon .icon{width:34px;height:34px}.dropzone-text{text-align:center;flex-direction:column;gap:4px;display:flex}.dropzone-text strong{letter-spacing:-.02em;font-size:22px}.dropzone-text .small{color:#ffffffdb;font-size:13.5px}.btn-sun{background:var(--sun);border-color:var(--sun);color:var(--sun-ink);box-shadow:0 6px 16px #0003}.btn-sun:hover:not(:disabled){background:var(--sun-hover);border-color:var(--sun-hover)}.dropzone .btn-sun:focus-visible{box-shadow:0 0 0 2px var(--rail-b), 0 0 0 4px #fff}.home-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;width:min(880px,100%);display:grid}.home-action{border:1px solid var(--border);background:var(--surface);text-align:start;box-shadow:var(--shadow-sm);border-radius:18px;align-items:center;gap:12px;padding:16px;transition:border-color .12s,transform .12s,box-shadow .12s;display:flex}.home-action:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}.home-action-text{flex-direction:column;flex:auto;gap:3px;min-width:0;display:flex}.home-action strong{font-size:15px;font-weight:700}.home-action-text span{color:var(--text-muted);font-size:12px;line-height:1.35}.home-action-go{color:var(--accent-strong);flex:none}.tile{border-radius:14px;flex:none;place-items:center;width:44px;height:44px;display:grid}.tile .icon{width:22px;height:22px}.tile-blue{background:var(--accent-soft);color:var(--accent-strong)}.tile-sun{background:var(--sun-soft);color:var(--warn-text)}.tile-mint{background:color-mix(in srgb, var(--success) 16%, transparent);color:var(--success)}.home-hint{border-radius:var(--radius-lg);background:var(--sun-soft);border:1px solid color-mix(in srgb, var(--sun) 60%, transparent);width:min(880px,100%);color:var(--warn-text);align-items:center;gap:10px;padding:10px 14px;font-size:12.5px;display:flex}.home-footer{color:var(--text-muted);text-align:center;max-width:640px;font-size:12px}.home-footer strong{color:var(--text-secondary);font-weight:700}@media (max-width:900px){.shell{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr)}.rail{flex-flow:wrap;align-items:center;gap:6px 10px;height:auto;padding:10px 14px;position:static}.rail-nav{flex-direction:row;margin-inline-start:auto}.rail-item{height:38px}.rail-privacy{display:none}.home{padding:28px 16px 32px}.home-hero h1{font-size:30px}.home-actions{grid-template-columns:minmax(0,1fr)}}.editor{grid-template-rows:var(--topbar-h) 1fr;grid-template-columns:var(--sidebar-w) 1fr var(--props-w);background:var(--bg);grid-template-areas:"top top top""side main props";height:100%;display:grid;overflow:clip}.editor.no-sidebar{grid-template-columns:0 1fr var(--props-w)}.editor.no-props{grid-template-columns:var(--sidebar-w) 1fr 0}.editor.no-sidebar.no-props{grid-template-columns:0 1fr 0}.topbar{background:var(--bg-elevated);border-bottom:1px solid var(--border);grid-area:top;align-items:center;gap:8px;min-width:0;padding:0 12px;display:flex}.topbar .filename{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.topbar .state{color:var(--text-muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.topbar .state .dot{background:var(--text-muted);border-radius:50%;width:7px;height:7px}.topbar .state.dirty .dot{background:var(--sun);box-shadow:0 0 0 3px var(--sun-soft)}.sidebar{border-inline-end:1px solid var(--border);background:var(--bg-elevated);flex-direction:column;grid-area:side;min-height:0;display:flex;overflow:hidden}.sidebar-header{border-bottom:1px solid var(--border);color:var(--text-secondary);align-items:center;gap:6px;padding:8px 10px;font-size:12px;display:flex}.props{border-inline-start:1px solid var(--border);background:var(--bg-elevated);grid-area:props;min-height:0;overflow:auto}.props-section{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;padding:12px 14px;display:flex}.props-section h3{text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);margin:0;font-size:11px;font-weight:700}.props-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.main{background:var(--canvas-bg);flex-direction:column;grid-area:main;min-width:0;min-height:0;display:flex;position:relative}.toolbar{border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);z-index:5;align-items:center;gap:2px;max-width:calc(100% - 16px);padding:4px;display:flex;position:absolute;top:10px;left:50%;overflow-x:auto;transform:translate(-50%)}.toolbar .btn{box-shadow:none;width:var(--toolbar-btn);height:var(--toolbar-btn);border-color:#0000;flex:none}.toolbar .btn.active{background:var(--primary);color:var(--text-on-primary);box-shadow:inset 0 -3px 0 var(--sun);border-color:#0000}.zoombar{border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);z-index:5;align-items:center;gap:2px;padding:4px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.zoombar .btn{box-shadow:none;border-color:#0000}.zoombar .zoom-value{text-align:center;font-variant-numeric:tabular-nums;min-width:52px;color:var(--text-secondary);font-size:12px}.canvas-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;direction:ltr;flex:1;padding:64px 32px 72px;position:relative;overflow:auto}.page-frame{box-shadow:var(--shadow-page);touch-action:pan-x pan-y;background:#fff;margin:0 auto;position:relative}.page-frame.tool-active{touch-action:none}.page-frame>canvas{display:block;position:absolute;inset:0}.page-frame>svg.overlay{position:absolute;inset:0;overflow:visible}.page-frame .text-editor{transform-origin:0 0;resize:none;white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word;background:0 0;border:none;outline:none;margin:0;padding:4px;position:absolute;top:0;left:0;overflow:hidden}.page-empty-state{color:var(--text-muted);pointer-events:none;justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;inset:0}.thumb-list{flex:1;grid-template-columns:1fr;align-content:start;gap:10px;padding:10px;display:grid;overflow:auto}.thumb-list.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;padding:20px}.thumb{border-radius:var(--radius-lg);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:pan-y;background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:6px;padding:8px 6px 6px;display:flex;position:relative}.thumb:hover{background:var(--surface-hover)}.thumb.selected{background:var(--accent-soft);border-color:var(--accent)}.thumb.current .thumb-num{color:var(--accent-strong);font-weight:600}.thumb-img{width:100%;aspect-ratio:var(--ar,.7727);background:var(--surface-muted);box-shadow:0 0 0 1px var(--border), 0 1px 3px #0e1a3a14;border-radius:3px;place-items:center;display:grid;overflow:hidden}.thumb-img>img,.thumb-img>.thumb-blank{object-fit:contain;transform-origin:50%;max-width:100%;max-height:100%}.thumb-img>.thumb-blank{background:#fff;width:100%;height:100%}.thumb-num{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:11px}.thumb-badge{top:10px;background:var(--primary);color:var(--text-on-primary);border-radius:4px;padding:1px 5px;font-size:10px;position:absolute;inset-inline-end:10px}.thumb.drop-before:before,.thumb.drop-after:after{content:"";background:var(--accent);border-radius:2px;height:3px;position:absolute;inset-inline:6px}.thumb.drop-before:before{top:-6px}.thumb.drop-after:after{bottom:-6px}.thumb-list.grid .thumb.drop-before:before,.thumb-list.grid .thumb.drop-after:after{top:6px;bottom:6px;width:3px;height:auto;inset-inline:auto}.thumb-list.grid .thumb.drop-before:before{inset-inline-start:-9px}.thumb-list.grid .thumb.drop-after:after{inset-inline-end:-9px}.thumb.dragging{opacity:.4}.page-actions{border-top:1px solid var(--border);background:var(--bg-elevated);flex-wrap:wrap;gap:4px;padding:8px 10px;display:flex}.review-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.review-list li{border-radius:var(--radius);background:var(--surface-muted);border:1px solid var(--border);align-items:flex-start;gap:8px;padding:8px 10px;font-size:12.5px;display:flex}.review-list li button{margin-inline-start:auto}.file-list{flex-direction:column;gap:6px;display:flex}.file-row{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);align-items:center;gap:8px;padding:8px 10px;display:flex}.file-row .name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.sigpad{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);touch-action:none;cursor:crosshair;width:100%;height:180px;display:block}.sig-preview{border-radius:var(--radius);border:1px solid var(--border);background:repeating-conic-gradient(#f1f0ec 0% 25%,#fff 0% 50%) 50%/16px 16px;place-items:center;min-height:120px;padding:12px;display:grid}.sig-thumb{border-radius:var(--radius);border:1px solid var(--border);background:repeating-conic-gradient(#f1f0ec 0% 25%,#fff 0% 50%) 50%/16px 16px;padding:4px 8px}.sig-preview img{max-width:100%;max-height:160px}@media (min-width:901px) and (max-width:1359px){.topbar .state .desktop-only,.topbar .draft-state{display:none}}@media (max-width:1119px){.topbar .collapsible{width:var(--control-h);padding:0}.topbar .collapsible .btn-label{display:none}.topbar .collapsible>.icon{width:18px;height:18px}}.mobile-only{display:none}@media (max-width:900px){.editor,.editor.no-sidebar,.editor.no-props,.editor.no-sidebar.no-props{grid-template-columns:1fr;grid-template-areas:"top""main"}.sidebar,.props{top:var(--topbar-h);z-index:20;width:min(320px,88vw);box-shadow:var(--shadow-lg);transition:transform .18s;position:fixed;bottom:0;transform:translate(-100%)}.sidebar{inset-inline-start:0}.props{inset-inline:auto 0;transform:translate(100%)}[dir=rtl] .sidebar:not(.open){transform:translate(100%)}[dir=rtl] .props:not(.open){transform:translate(-100%)}.sidebar.open,.props.open{transform:none}.drawer-backdrop{inset:var(--topbar-h) 0 0;z-index:15;background:#0e1a3a4d;position:fixed}.desktop-only{display:none!important}.mobile-only{display:inline-flex}.topbar{gap:2px;padding:0 6px}.topbar .btn-primary span{display:none}.toolbar{max-width:calc(100vw - 24px);padding:6px;top:auto;bottom:12px;overflow-x:auto}.zoombar{bottom:68px}.canvas-scroll{padding:20px 12px 130px}.home-actions{grid-template-columns:1fr}.thumb-list:not(.grid){grid-template-columns:repeat(2,minmax(0,1fr))}}.sidebar-tabs{border-bottom:1px solid var(--border);gap:2px;padding:6px 8px;display:flex}.sidebar-tabs .btn{box-shadow:none;border-color:#0000;flex:1;padding:0 6px}.panel-list{flex-direction:column;flex:1;gap:6px;padding:10px;display:flex;overflow:auto}.panel-item{text-align:start;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);cursor:pointer;flex-direction:column;align-items:stretch;gap:4px;padding:8px 10px;display:flex}.panel-item-wrap{position:relative}.panel-item-wrap>.panel-item{width:100%}.panel-item-spacer{flex:none;width:28px}.panel-item-delete{min-width:28px;min-height:28px;position:absolute;inset-block-start:4px;inset-inline-end:6px}.panel-item-row{flex-direction:row;align-items:center;gap:10px;width:100%;margin-bottom:4px}.panel-item:hover{background:var(--surface-hover)}.panel-item.active{border-color:var(--accent);background:var(--accent-soft)}.panel-item:disabled{opacity:.5;cursor:default}.panel-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12.5px;line-height:1.45}.text-layer span::selection{background:#2563eb4d}.draft-state{color:var(--text-muted);white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:inline-flex}.home-drafts{border:1px solid var(--border);background:var(--surface);width:min(880px,100%);box-shadow:var(--shadow-sm);border-radius:18px;flex-direction:column;gap:8px;padding:18px 18px 14px;scroll-margin-top:16px;display:flex}.home-drafts .file-row{border-radius:var(--radius-lg);border-color:var(--hairline);background:var(--surface-muted);padding:10px 12px}.home-drafts .file-row>.icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent-strong);border-radius:11px;padding:9px}.crop-layout{align-items:flex-start;gap:18px;display:flex}.crop-fields{flex:200px;min-width:0}@media (max-width:560px){.crop-layout{flex-wrap:wrap}}.crop-preview{background:var(--canvas-bg);border:1px solid var(--border);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:4px;flex:none;position:relative;overflow:hidden}.crop-preview canvas{display:block}.crop-shade{pointer-events:none;background:#0e1a3a73;position:absolute}.crop-rect{box-sizing:border-box;border:1.5px solid var(--accent);position:absolute;box-shadow:0 0 0 1px #fff9}.crop-handle{border:1.5px solid var(--accent);touch-action:none;background:#fff;border-radius:2px;width:12px;height:12px;position:absolute}.crop-handle:hover{background:var(--accent-soft)}.legal-links{gap:16px}.licence-text{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);max-height:260px;color:var(--text-secondary);font-family:var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);max-height:260px;font-size:11px;line-height:1.5;font-family:var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;padding:10px 12px;margin:0;padding:10px 12px;font-size:11px;line-height:1.5;overflow:auto}.crash{z-index:1000;background:var(--bg);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow:auto}.crash-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;gap:14px;width:min(560px,100%);padding:24px;display:flex}.crash-title{color:var(--text);margin:0;font-size:19px;font-weight:700}.crash-lede{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.6}.crash-details summary{color:var(--text-muted);cursor:pointer;font-size:12px}.crash-details pre{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);max-height:200px;color:var(--text-secondary);font-family:var(--font-mono);white-space:pre-wrap;margin:8px 0 0;padding:10px;font-size:11px;overflow:auto}.page-badge{z-index:3;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-secondary);pointer-events:none;padding:5px 10px;font-size:12px;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000014}.caret-input{opacity:0;width:1px;height:1px;position:absolute;top:0;left:-9999px}.text-selection{z-index:2;pointer-events:none;background:#5082dc47;position:absolute}.text-caret{z-index:3;background:var(--text);pointer-events:none;animation:1.06s step-end infinite caret-blink;position:absolute}@keyframes caret-blink{0%{opacity:1}50%{opacity:0}}@media (prefers-reduced-motion:reduce){.text-caret{animation:none}}.text-caret-surface{z-index:4;cursor:text;touch-action:none;position:absolute}.text-column{z-index:2;border:1px dashed var(--accent);pointer-events:none;background:#2563eb0f;position:absolute}.align-guide{z-index:5;pointer-events:none;background:#4a7fdc;position:absolute}.align-guide-label{z-index:6;color:#fff;white-space:nowrap;pointer-events:none;background:#4a7fdc;border-radius:4px;padding:2px 6px;font-size:10px;position:absolute;transform:translate(6px,4px)}.text-handle{z-index:6;border:1px solid var(--accent);background:var(--surface);touch-action:none;border-radius:3px;width:12px;height:12px;margin:-6px 0 0 -6px;position:absolute}.text-handle-right{cursor:ew-resize}.text-handle-bottom{cursor:ns-resize}.text-handle-corner{cursor:nwse-resize}.redaction-bar{border:1px solid color-mix(in srgb, var(--danger) 40%, transparent);border-radius:var(--radius-lg);background:var(--danger-soft);max-width:min(760px,100vw - 32px);color:var(--text);align-items:center;gap:10px;margin:0 auto 8px;padding:8px 12px;font-size:12px;display:flex;box-shadow:0 6px 18px #0000001a}.redaction-bar>svg{color:var(--danger);flex:none}.redaction-bar-text{flex:1;line-height:1.35}.redaction-preview{font-family:var(--mono,monospace)}.redaction-bar-actions{flex:none;gap:6px;display:flex}@media (min-width:901px){.redaction-bar{margin-top:62px}.redaction-bar~.canvas-scroll{padding-top:16px}}@media (max-width:640px){.redaction-bar{flex-wrap:wrap}.redaction-bar-actions{justify-content:flex-end;width:100%}}
