:root{--bg:oklch(95% .006 65);--surface:oklch(99% .003 65);--surface-2:oklch(93% .009 65);--border:oklch(86% .01 65);--border-subtle:oklch(90% .007 65);--text:oklch(17% .01 65);--text-2:oklch(45% .009 65);--text-3:oklch(62% .007 65);--accent:oklch(44% .17 235);--accent-hover:oklch(38% .17 235);--accent-text:oklch(99% .003 235);--accent-subtle:oklch(95% .06 235);--success:oklch(52% .14 145);--success-subtle:oklch(95% .05 145);--error:oklch(50% .18 25);--error-subtle:oklch(96% .05 25);--radius:7px;--radius-sm:4px;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Cascadia Code", "Fira Code", monospace;--paper-bg:oklch(99.5% .002 65);--paper-text:#1a1814;--paper-subtext:#5a5650;--paper-border:oklch(84% .01 65)}:root[data-theme=dark]{--bg:oklch(13% .007 65);--surface:oklch(17% .009 65);--surface-2:oklch(22% .01 65);--border:oklch(30% .011 65);--border-subtle:oklch(25% .009 65);--text:oklch(92% .005 65);--text-2:oklch(60% .007 65);--text-3:oklch(40% .006 65);--accent:oklch(64% .16 235);--accent-hover:oklch(70% .16 235);--accent-text:oklch(13% .007 65);--accent-subtle:oklch(22% .09 235);--success:oklch(68% .14 145);--success-subtle:oklch(18% .06 145);--error:oklch(68% .16 25);--error-subtle:oklch(18% .06 25);--paper-bg:#1e1c18;--paper-text:#e2dcd4;--paper-subtext:#a09880;--paper-border:#3a3830}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.app{flex-direction:column;height:100%;display:flex}.app-body{flex:1;min-height:0;display:flex;overflow:hidden}.app-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;height:48px;padding:0 16px 0 20px;display:flex}.header-logo{color:var(--text);letter-spacing:-.02em;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.header-logo svg{color:var(--accent)}.header-spacer{flex:1}.header-divider{background:var(--border);flex-shrink:0;width:1px;height:20px}.chip{border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.chip--sending{background:var(--accent-subtle);color:var(--accent)}.chip--sent{background:var(--success-subtle);color:var(--success)}.chip--error{background:var(--error-subtle);color:var(--error);text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toggle-btn{border-radius:var(--radius-sm);border:1px solid var(--border);min-width:28px;height:28px;color:var(--text-2);font-family:var(--font);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:5px;padding:0 8px;font-size:11.5px;font-weight:500;transition:background .12s,color .12s;display:inline-flex}.toggle-btn:hover{background:var(--surface-2);color:var(--text)}.toggle-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.send-btn{background:var(--accent);height:34px;color:var(--accent-text);border-radius:var(--radius);font-family:var(--font);cursor:pointer;border:none;flex-shrink:0;align-items:center;gap:7px;padding:0 16px;font-size:13px;font-weight:500;transition:background .15s ease-out,transform .1s ease-out,opacity .15s;display:inline-flex}.send-btn:hover:not(:disabled){background:var(--accent-hover)}.send-btn:active:not(:disabled){transform:scale(.97)}.send-btn:disabled{opacity:.45;cursor:not-allowed}.send-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fax-editor{flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.mode-bar{z-index:20;flex-shrink:0;justify-content:center;align-items:center;padding:10px 0 8px;display:flex;position:absolute;right:2rem}.mode-pill{background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:0;padding:3px;display:inline-flex;box-shadow:0 1px 3px oklch(0% 0 0/.07),0 3px 10px oklch(0% 0 0/.05)}.mode-pill-btn{height:30px;font-family:var(--font);color:var(--text-3);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:5px 22px;font-size:12.5px;font-weight:500;transition:background .15s ease-out,color .15s ease-out}.mode-pill-btn:hover:not(.mode-pill-btn--active){color:var(--text-2)}.mode-pill-btn--active{background:var(--accent);color:var(--accent-text);box-shadow:0 1px 2px oklch(0% 0 0/.14)}.mode-pill-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.workspace{flex:1;min-height:0;display:flex;overflow:hidden}.workspace-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.toolbar{background:var(--surface);border-bottom:1px solid var(--border);scrollbar-width:none;flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:1px;height:40px;padding:0 8px;display:flex;overflow-x:auto}.toolbar::-webkit-scrollbar{display:none}.toolbar--centered{justify-content:center}.tb-btn{border-radius:var(--radius-sm);height:28px;color:var(--text-2);font-family:var(--font);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex-shrink:0;align-items:center;gap:4px;padding:0 7px;font-size:12px;font-weight:500;transition:background .1s,color .1s;display:inline-flex}.tb-btn:hover{background:var(--surface-2);color:var(--text)}.tb-btn--active{background:var(--accent-subtle);color:var(--accent)}.tb-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tb-btn__heading{letter-spacing:-.02em;font-size:11px;font-weight:700}.tb-btn__label{font-size:12px}.tb-sep{background:var(--border);flex-shrink:0;width:1px;height:16px;margin:0 3px}@media (width<=700px){.toolbar{flex-wrap:wrap;gap:2px;height:auto;padding:5px 8px}.tb-sep{width:100%;height:1px;margin:1px 0;display:none}}.editor-canvas{scrollbar-gutter:stable both-edges;background:0 0;flex:1;justify-content:center;align-items:flex-start;padding:20px clamp(24px,4vw,80px) 48px;display:flex;overflow:hidden auto}.editor-canvas::-webkit-scrollbar{width:6px}.editor-canvas::-webkit-scrollbar-track{background:0 0}.editor-canvas::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}.visual-frame{flex-direction:column;flex-shrink:0;width:min(210mm,100%);display:flex}.visual-frame .toolbar{z-index:5;border:1px solid var(--paper-border);border-bottom:1px solid var(--border);border-radius:2px 2px 0 0;position:sticky;top:0}.visual-frame .editor-paper{border:1px solid var(--paper-border);border-top:none;border-radius:0 0 2px 2px;box-shadow:0 1px 3px oklch(30% .01 65/.06),0 6px 24px oklch(30% .01 65/.1)}:root[data-theme=dark] .visual-frame .editor-paper{box-shadow:0 1px 4px oklch(0% 0 0/.45),0 6px 24px oklch(0% 0 0/.5)}.editor-paper{background:var(--paper-bg);width:min(210mm,100%);box-shadow:0 1px 3px oklch(30% .01 65/.06), 0 6px 24px oklch(30% .01 65/.1), 0 0 0 1px var(--paper-border);border-radius:2px;flex-shrink:0;position:relative}.editor-paper:after{content:"p. 2";color:#c83c3c66;pointer-events:none;font-size:7.5pt;font-family:var(--font);letter-spacing:.03em;border-top:1px dashed #c83c3c61;padding:3px 18mm 0;position:absolute;top:297mm;left:0;right:0}.editor-paper .ProseMirror{min-height:297mm;color:var(--paper-text);caret-color:var(--accent);background-image:linear-gradient(#6384b911 12mm,#0000 12mm),linear-gradient(90deg,#6384b911 18mm,#0000 18mm),linear-gradient(270deg,#6384b911 18mm,#0000 18mm);outline:none;padding:12mm 18mm 15mm;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Arial,Helvetica,sans-serif;font-size:11.5pt;line-height:1.65}:root[data-theme=dark] .editor-paper .ProseMirror{background-image:linear-gradient(#6384b90a 12mm,#0000 12mm),linear-gradient(90deg,#6384b90a 18mm,#0000 18mm),linear-gradient(270deg,#6384b90a 18mm,#0000 18mm)}.editor-paper .ProseMirror p{margin:0 0 .8em}.editor-paper .ProseMirror h1,.editor-paper .ProseMirror h2,.editor-paper .ProseMirror h3,.editor-paper .ProseMirror h4{margin:.85em 0 .4em;line-height:1.3}.editor-paper .ProseMirror h1{font-size:1.6em}.editor-paper .ProseMirror h2{font-size:1.35em}.editor-paper .ProseMirror h3{font-size:1.15em}.editor-paper .ProseMirror ul,.editor-paper .ProseMirror ol{margin:0 0 .8em;padding-left:1.4em}.editor-paper .ProseMirror li{margin-bottom:.25em}.editor-paper .ProseMirror li>p{margin:0}.editor-paper .ProseMirror hr{border:none;border-top:1px solid var(--paper-border);margin:1.4em 0}.editor-paper .ProseMirror blockquote{color:var(--paper-subtext);background:oklch(96% .004 65);margin:.8em 0;padding:.6em 1em;font-style:italic}:root[data-theme=dark] .editor-paper .ProseMirror blockquote{background:oklch(20% .007 65)}.editor-paper .ProseMirror pre{background:oklch(95% .005 65);border-radius:3px;margin-bottom:.8em;padding:.8em 1em;font-size:10pt;overflow-x:auto}:root[data-theme=dark] .editor-paper .ProseMirror pre{background:oklch(18% .007 65)}.editor-paper .ProseMirror code{font-family:var(--font-mono);background:oklch(95% .005 65);border-radius:2px;padding:.1em .35em;font-size:10pt}:root[data-theme=dark] .editor-paper .ProseMirror code{background:oklch(20% .007 65)}.fax-image-nv{line-height:0;display:block}.editor-paper .ProseMirror .fax-image{outline-offset:3px;border-radius:2px;outline:1.5px dashed oklch(75% .06 235);margin:14px 0;position:relative}.editor-paper .ProseMirror .fax-image--fullpage{outline-style:solid;outline-color:var(--accent)}.editor-paper .ProseMirror .fax-image img{max-width:100%;display:block}.fax-image__controls{background:var(--surface);border:1px solid var(--border);box-shadow:0 2px 8px oklch(0% 0 0/.1), 0 0 0 .5px var(--border);z-index:20;white-space:nowrap;border-radius:6px;align-items:center;gap:2px;padding:3px;display:flex;position:absolute;top:-38px;left:50%;transform:translate(-50%)}.fax-image__ctrl-btn{width:24px;height:24px;color:var(--text-2);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:background .1s,color .1s;display:flex}.fax-image__ctrl-btn:hover{background:var(--surface-2);color:var(--text)}.fax-image__ctrl-btn.is-active{background:var(--accent-subtle);color:var(--accent)}.fax-image__ctrl-sep{background:var(--border);width:1px;height:14px;margin:0 1px}.fax-image__resize-handle{background:var(--accent);cursor:se-resize;touch-action:none;opacity:0;z-index:10;border-radius:3px;width:14px;height:14px;transition:opacity .12s;position:absolute;bottom:4px;right:4px}.fax-image:hover .fax-image__resize-handle{opacity:.7}.ProseMirror-selectednode .fax-image__resize-handle{opacity:1}.editor-paper .ProseMirror ::selection{background:oklch(89% .08 235)}:root[data-theme=dark] .editor-paper .ProseMirror ::selection{background:oklch(30% .12 235)}:root[data-theme=dark] .editor-paper,:root[data-theme=dark] .preview-paper{box-shadow:0 1px 4px oklch(0% 0 0/.45), 0 6px 24px oklch(0% 0 0/.5), 0 0 0 1px var(--paper-border)}.html-split-wrap{background:0 0;flex:1;min-height:0;padding:0;display:flex;overflow:hidden}.editor-split{flex:1;min-height:0;display:flex;overflow:hidden}.editor-split__left{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:420px;min-height:0;display:flex}.editor-split__code{background:var(--surface);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.editor-split__code>div{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.editor-split__code .cm-editor{flex:1;min-height:0}.editor-split__code .cm-scroller{flex:1;min-height:0;overflow-y:auto}.editor-split__code::-webkit-scrollbar{width:5px}.editor-split__code::-webkit-scrollbar-track{background:0 0}.editor-split__code::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}.editor-split__preview{background:0 0;flex:1;padding:20px clamp(20px,3vw,56px) 40px 20px;overflow:hidden auto}.editor-split__preview::-webkit-scrollbar{width:6px}.editor-split__preview::-webkit-scrollbar-track{background:0 0}.editor-split__preview::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}.preview-paper{background:var(--paper-bg);width:min(210mm,100%);box-shadow:0 1px 3px oklch(30% .01 65/.06), 0 6px 24px oklch(30% .01 65/.1), 0 0 0 1px var(--paper-border);border-radius:2px;margin:0 auto;overflow:hidden}.image-sidebar{border-left:1px solid var(--border);background:var(--surface);flex-direction:column;flex-shrink:0;align-self:flex-start;width:196px;max-height:min(90vh,640px);display:flex;overflow:hidden}.image-sidebar__header{text-transform:uppercase;letter-spacing:.07em;color:var(--text-3);border-bottom:1px solid var(--border);flex-shrink:0;padding:11px 14px 9px;font-size:10.5px;font-weight:600}.image-sidebar__list{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-direction:column;flex:1;gap:8px;padding:8px;display:flex;overflow-y:auto}.image-sidebar__item{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);position:relative;overflow:hidden}.image-sidebar__thumb-wrap{background:var(--border-subtle);height:72px;overflow:hidden}.image-sidebar__thumb{object-fit:cover;width:100%;height:100%;display:block}.image-sidebar__remove{color:oklch(97% 0 0);cursor:pointer;opacity:0;z-index:1;background:oklch(0% 0 0/.55);border:none;border-radius:3px;justify-content:center;align-items:center;width:20px;height:20px;transition:opacity .12s;display:flex;position:absolute;top:4px;right:4px}.image-sidebar__item:hover .image-sidebar__remove{opacity:1}.image-sidebar__remove:focus-visible{opacity:1;outline:2px solid var(--accent);outline-offset:1px}.image-sidebar__name{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;padding:5px 8px 2px;font-size:10.5px;overflow:hidden}.image-sidebar__actions{gap:4px;padding:4px 6px 6px;display:flex}.image-sidebar__action-btn{font-size:10.5px;font-family:var(--font);background:var(--accent-subtle);color:var(--accent);cursor:pointer;border:none;border-radius:3px;flex:1;padding:4px 0;font-weight:500;transition:background .1s,color .1s}.image-sidebar__action-btn:hover{background:var(--accent);color:var(--accent-text)}.image-sidebar__action-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.html-mode-toggle{display:none}@media (width<=700px){.mode-bar{z-index:auto;justify-content:center;padding:8px 0;position:relative;right:auto}.fax-editor--source .mode-bar{display:none}.workspace{flex-direction:column}.workspace-main{flex:1;min-height:0}.image-sidebar{border-left:none;border-top:1px solid var(--border);flex-direction:row;align-self:auto;width:100%;max-height:160px;overflow:auto hidden}.image-sidebar__list{flex-direction:row;gap:8px;padding:8px}.image-sidebar__item{flex-shrink:0;width:110px}.image-sidebar__header{display:none}.editor-split{flex-direction:column;overflow-y:auto}.editor-split__left{border-right:none;border-bottom:1px solid var(--border);flex:none;width:100%;height:auto}.editor-split__code{flex:none;height:auto;min-height:140px;max-height:38vh;display:block;overflow-y:auto}.editor-split__code>div{flex:none;display:block;overflow:visible}.editor-split__code .cm-editor{flex:none;min-height:140px}.editor-split__code .cm-scroller{flex:none;overflow-y:auto}.editor-split__preview{flex:1;min-height:200px;padding:16px 16px 32px}.html-mode-toggle{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;align-items:center;gap:0;margin-left:auto;padding:2px;display:inline-flex}.html-mode-toggle__btn{height:24px;font-family:var(--font);color:var(--text-3);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:3px 14px;font-size:11.5px;font-weight:500}.html-mode-toggle__btn--active{background:var(--accent);color:var(--accent-text)}}.gate{background:0 0;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.gate-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;width:100%;max-width:320px;padding:28px;display:flex;box-shadow:0 8px 32px oklch(0% 0 0/.07)}.gate-card--shake{animation:.4s gate-shake}@keyframes gate-shake{10%,90%{transform:translate(-2px)}20%,80%{transform:translate(4px)}30%,50%,70%{transform:translate(-6px)}40%,60%{transform:translate(6px)}}.gate-logo{color:var(--text);align-items:center;gap:8px;margin-bottom:4px;font-size:16px;font-weight:600;display:flex}.gate-label{color:var(--text-2);align-items:center;gap:6px;font-size:12px;display:flex}.gate-input{font-family:var(--font);background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;padding:10px 12px;font-size:14px;transition:border-color .15s,box-shadow .15s}.gate-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.gate-input--error{border-color:var(--error);box-shadow:0 0 0 3px var(--error-subtle)}.gate-error{color:var(--error);align-items:center;gap:5px;margin-top:-6px;font-size:12px;display:flex}.gate-submit{font-family:var(--font);background:var(--accent);color:var(--accent-text);border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;padding:9px 14px;font-size:13px;font-weight:500;transition:background .15s,transform .1s,opacity .15s;display:inline-flex}.gate-submit:hover:not(:disabled){background:var(--accent-hover)}.gate-submit:active:not(:disabled){transform:scale(.97)}.gate-submit:disabled{opacity:.45;cursor:not-allowed}.fax-bg{z-index:-10;pointer-events:none;contain:layout paint;color:oklch(38% .02 65);--fax-bg-field:.08;--fax-bg-leaf-peak:.18;position:fixed;inset:-120px;-webkit-mask-image:radial-gradient(120% 85% at 50% 0,#000 14%,#0000 80%);mask-image:radial-gradient(120% 85% at 50% 0,#000 14%,#0000 80%)}:root[data-theme=dark] .fax-bg{color:oklch(78% .018 65);--fax-bg-field:.09}.fax-bg--hero{--fax-bg-field:.14;--fax-bg-leaf-peak:.32}:root[data-theme=dark] .fax-bg--hero{--fax-bg-field:.13}.fax-bg__field{will-change:transform;width:100%;height:100%;animation:240s linear infinite fax-bg-drift}.fax-bg__field-fill{opacity:var(--fax-bg-field)}@keyframes fax-bg-drift{0%{transform:translate(0,0)}to{transform:translate3d(0, var(--fax-bg-tile-h), 0)}}.fax-bg__leaf{opacity:0;transform-box:fill-box;transform-origin:0 100%;animation:34s ease-in-out infinite fax-bg-leaf}@keyframes fax-bg-leaf{0%,to{opacity:0;transform:rotate(0)}6%{opacity:var(--fax-bg-leaf-peak);transform:rotate(-1deg)}16%{opacity:var(--fax-bg-leaf-peak);transform:rotate(-9deg)}26%{opacity:0;transform:rotate(-15deg)}}@media (prefers-reduced-motion:reduce){.fax-bg__field,.fax-bg__leaf{animation:none}.fax-bg__leaf{opacity:0}}
