*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0;padding:0;overflow:hidden}#root{height:100%}@font-face{font-family:Chronicle Display;src:url(/fonts/chronicle-display/Chronicle%20Display%20Roman.otf)format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Chronicle Display;src:url(/fonts/chronicle-display/Chronicle%20Display%20Semibold.otf)format("opentype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Chronicle Display;src:url(/fonts/chronicle-display/Chronicle%20Display%20Black.otf)format("opentype");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Chronicle Display;src:url(/fonts/chronicle-display/Chronicle%20Display%20Light%20Italic.otf)format("opentype");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/montserrat/Montserrat-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/montserrat/Montserrat-Italic.ttf)format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/montserrat/Montserrat-Medium.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/montserrat/Montserrat-MediumItalic.ttf)format("truetype");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/montserrat/Montserrat-SemiBold.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/montserrat/Montserrat-SemiBoldItalic.ttf)format("truetype");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/montserrat/Montserrat-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Montserrat;src:url(/fonts/montserrat/Montserrat-BoldItalic.ttf)format("truetype");font-weight:700;font-style:italic;font-display:swap}:root{--marine:#075156;--marine-hover:teal;--marine-active:#066;--green:#2c8248;--green-hover:#2a9048;--citrus:#abdd65;--navy:#17232d;--pale-blue:#e5eeef;--white:#fff;--font-display:"Chronicle Display", Georgia, "Times New Roman", serif;--font-body:"Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", Consolas, "Courier New", monospace;--elevation-1:0 1px 2px 0 #17232d0d;--elevation-2:0 2px 4px -1px #17232d0f, 0 4px 6px 0 #17232d14;--elevation-3:0 5px 10px -3px #17232d14, 0 8px 16px 1px #17232d0f}.app-header img{height:32px}.app-header h1{font-family:var(--font-display);color:var(--navy);margin:0;font-size:1.25rem;font-weight:400}.editor-toolbar{background:var(--white);border-bottom:1px solid var(--pale-blue);box-sizing:border-box;flex-wrap:wrap;gap:4px;padding:6px 16px;display:flex}.editor-toolbar button{font-family:var(--font-body);color:var(--navy);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:4px 10px;font-size:.8rem;transition:background .15s,border-color .15s}.editor-toolbar button:hover{background:var(--pale-blue)}.editor-toolbar button.is-active{background:var(--marine);color:var(--white)}.editor-toolbar .separator{background:var(--pale-blue);width:1px;margin:2px 6px}.editor-wrapper{flex-direction:column;width:100%;height:100%;display:flex}.tiptap{background:var(--white);max-width:860px;min-height:calc(100vh - 140px);font-family:var(--font-body);color:var(--navy);outline:none;margin:0 auto;padding:24px 40px 80px;font-size:16px;line-height:1.6}.tiptap:focus{outline:none}.tiptap h1,.tiptap h2,.tiptap h3,.tiptap h4,.tiptap h5,.tiptap h6{font-family:var(--font-display);color:var(--navy);margin-top:1.5em;margin-bottom:.5em;font-weight:400;line-height:1.3}.tiptap h1{letter-spacing:-.01em;margin-top:0;padding-bottom:.3em;font-size:2em}.tiptap h2{border-bottom:2px solid var(--citrus);padding-bottom:8px;font-size:1.75em}.tiptap h3{font-size:1.375em}.tiptap h4{font-size:1.125em;font-weight:500}.tiptap h5{font-size:1em;font-weight:500}.tiptap h6{color:#555;font-size:.875em;font-weight:500}.tiptap a{color:var(--marine);border-bottom:1px solid #0000;text-decoration:none;transition:border-color .2s,color .2s}.tiptap a:hover{color:var(--marine-hover);border-bottom-color:var(--marine)}.tiptap p{margin:.8em 0}.tiptap strong{color:var(--navy);font-weight:600}.tiptap em{font-style:italic}.tiptap mark{background-color:#abdd6580;border-radius:2px;padding:2px 4px}.tiptap code{font-family:var(--font-mono);background-color:var(--pale-blue);color:var(--navy);border-radius:4px;padding:2px 6px;font-size:.9em}.tiptap pre{font-family:var(--font-mono);background-color:var(--pale-blue);border:1px solid #17232d1a;border-radius:6px;margin:20px 0;padding:15px;font-size:.9em;line-height:1.6;overflow-x:auto}.tiptap pre code{font-size:inherit;color:inherit;background:0 0;border-radius:0;padding:0}.tiptap pre .hljs-keyword{color:var(--marine);font-weight:500}.tiptap pre .hljs-string{color:var(--green)}.tiptap pre .hljs-number{color:#b5890b}.tiptap pre .hljs-comment{color:#6b7280;font-style:italic}.tiptap pre .hljs-function{color:var(--marine)}.tiptap pre .hljs-variable{color:var(--navy)}.tiptap pre .hljs-tag{color:var(--marine)}.tiptap pre .hljs-attr{color:var(--green)}.tiptap pre .hljs-built_in{color:var(--marine-hover)}.tiptap pre .hljs-title{color:var(--green)}.tiptap pre .hljs-type{color:var(--marine)}.tiptap pre .hljs-params{color:var(--navy)}.tiptap blockquote{border-left:4px solid var(--marine);color:var(--navy);background:#0751560d;margin:20px 0;padding:15px 20px}.tiptap blockquote p{margin:0}.tiptap blockquote blockquote{border-left-color:var(--green);background:#2c82480d;margin-top:10px}.tiptap ul,.tiptap ol{margin:15px 0;padding-left:30px}.tiptap li{margin:8px 0}.tiptap li>ul,.tiptap li>ol{margin:5px 0}.tiptap ul[data-type=taskList]{padding-left:0;list-style-type:none}.tiptap ul[data-type=taskList] li{align-items:flex-start;gap:8px;display:flex}.tiptap ul[data-type=taskList] li label{flex-shrink:0;margin-top:3px}.tiptap ul[data-type=taskList] li label input[type=checkbox]{accent-color:var(--marine);cursor:pointer;width:16px;height:16px}.tiptap ul[data-type=taskList] li div{flex:1}.tiptap table{border-collapse:collapse;background:var(--white);width:100%;box-shadow:var(--elevation-1);border-radius:6px;margin:20px 0;overflow:hidden}.tiptap th{background:var(--marine);color:var(--white);text-align:left;font-weight:600;font-family:var(--font-body);border:1px solid #0751564d;padding:12px 15px}.tiptap td{border:1px solid var(--pale-blue);font-family:var(--font-body);padding:12px 15px}.tiptap tr:nth-child(2n) td{background:#e5eeef4d}.tiptap .selectedCell{background:#abdd654d}.tiptap hr{border:none;border-top:2px solid var(--pale-blue);margin:30px 0}.tiptap img{max-width:100%;height:auto;box-shadow:var(--elevation-1);border-radius:6px}.mermaid-wrapper{background:var(--white);box-shadow:var(--elevation-1);text-align:center;border-radius:6px;margin:20px 0;padding:15px}.math-block{background:var(--pale-blue);text-align:center;border-radius:6px;margin:20px 0;padding:15px;overflow-x:auto}.math-inline{padding:0 2px}.frontmatter-block{background:linear-gradient(135deg, var(--navy) 0%, #2a3a47 100%);color:var(--pale-blue);font-family:var(--font-mono);white-space:pre-wrap;border:none;border-radius:6px;margin-bottom:30px;padding:15px 20px;font-size:.85em;line-height:1.6}.tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:#9ca3af;pointer-events:none;height:0;font-style:italic}.tiptap ::selection{background:#abdd6566}.source-view{background:var(--white);max-width:860px;min-height:calc(100vh - 140px);font-family:var(--font-mono);white-space:pre-wrap;color:var(--navy);margin:0 auto;padding:24px 40px 80px;font-size:.9em;line-height:1.6}.editor-status-bar{font-family:var(--font-body);color:#6b7280;background:var(--white);border-top:1px solid var(--pale-blue);box-sizing:border-box;justify-content:space-between;width:100%;padding:6px 16px;font-size:.7rem;display:flex}.ai-floating-toolbar{z-index:100;background:var(--white,#fff);border:1px solid var(--pale-blue,#e5eeef);font-family:var(--font-body,"Montserrat", sans-serif);border-radius:8px;gap:4px;padding:6px 10px;display:flex;position:absolute;box-shadow:0 4px 12px #17232d26}.ai-floating-toolbar button{border:1px solid var(--marine,#075156);background:var(--marine,#075156);color:#fff;cursor:pointer;border-radius:4px;padding:4px 12px;font-family:inherit;font-size:.8rem;transition:background .15s}.ai-floating-toolbar button:hover{background:var(--marine-hover,teal)}.ai-floating-toolbar button.secondary{color:var(--marine,#075156);background:0 0}.ai-floating-toolbar button.secondary:hover{background:var(--pale-blue,#e5eeef)}.ai-replaced-text{border-bottom:2px dashed var(--citrus,#abdd65);background:#abdd6533;transition:background .3s}.ai-suggestion-block{border-left:3px solid var(--citrus,#abdd65);font-family:var(--font-body,"Montserrat", sans-serif);background:#abdd6514;border-radius:0 6px 6px 0;margin:8px 0;padding:12px 16px;position:relative}.ai-suggestion-block .ai-label{color:var(--marine,#075156);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:.7rem;font-weight:600}.ai-suggestion-block .ai-content{color:var(--navy,#17232d);line-height:1.6}.ai-suggestion-block .ai-actions{gap:8px;margin-top:10px;display:flex}.ai-suggestion-block .ai-actions button{font-family:var(--font-body,"Montserrat", sans-serif);cursor:pointer;border:none;border-radius:4px;padding:4px 12px;font-size:.75rem;transition:background .15s}.ai-suggestion-block .ai-actions .accept{background:var(--marine,#075156);color:#fff}.ai-suggestion-block .ai-actions .accept:hover{background:var(--marine-hover,teal)}.ai-suggestion-block .ai-actions .reject{background:var(--pale-blue,#e5eeef);color:var(--navy,#17232d)}.ai-suggestion-block .ai-actions .reject:hover{background:#d4e0e1}.ai-track-original{color:#9ca3af;background:#dc26260d;text-decoration:line-through}.ai-track-new{border-bottom:2px solid var(--citrus,#abdd65);background:#abdd6540}.ai-streaming{color:var(--marine,#075156);align-items:center;gap:6px;padding:4px 0;font-size:.8rem;display:inline-flex}.ai-streaming .dot{background:var(--marine,#075156);border-radius:50%;width:6px;height:6px;animation:1s infinite pulse}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.pattern-selector{background:var(--pale-blue,#e5eeef);border-radius:8px;gap:2px;max-width:500px;margin-bottom:16px;padding:4px;display:flex}.pattern-selector button{font-family:var(--font-body,"Montserrat", sans-serif);cursor:pointer;color:var(--navy,#17232d);background:0 0;border:none;border-radius:6px;flex:1;padding:6px 12px;font-size:.8rem;transition:background .15s,color .15s}.pattern-selector button.active{background:var(--marine,#075156);color:#fff}.api-key-bar{font-family:var(--font-body,"Montserrat", sans-serif);background:#0751560d;border-radius:6px;align-items:center;gap:8px;margin-bottom:16px;padding:8px 12px;font-size:.8rem;display:flex}.api-key-bar input{border:1px solid var(--pale-blue,#e5eeef);font-family:var(--font-mono,monospace);border-radius:4px;flex:1;padding:4px 8px;font-size:.75rem}.api-key-bar label{color:var(--navy,#17232d);white-space:nowrap;font-weight:500}
