:root{--bg:#f3efe6;--bg-deep:#e7e0d2;--ink:#1c1915;--ink-soft:#5c554c;--line:#1c19151f;--panel:#fffcf6e0;--accent:#0f6e56;--accent-soft:#0f6e561f;--danger:#9b2c2c;--shadow:0 18px 50px #281c0c14;--radius:14px;--font-ui:"Segoe UI", "Avenir Next", "Helvetica Neue", sans-serif;--font-doc:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-mono:"IBM Plex Mono", "SF Mono", ui-monospace, Menlo, monospace;--measure:46rem}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--ink);font-family:var(--font-ui);background:radial-gradient(1200px 600px at 10% -10%, #fff8ea 0%, transparent 55%), radial-gradient(900px 500px at 100% 0%, #d9ece4 0%, transparent 45%), linear-gradient(180deg, var(--bg) 0%, var(--bg-deep) 100%)}button,input,textarea{font:inherit}.app-shell{flex-direction:column;min-height:100vh;display:flex}.loading-shell{color:var(--ink-soft);place-items:center;display:grid}.app-header{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:20;background:#fffcf6b8;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;padding:.9rem 1.25rem;display:flex;position:sticky;top:0}.brand-block{align-items:center;gap:.65rem;display:flex}.brand{letter-spacing:-.03em;margin:0;font-size:1.35rem;font-weight:700}.sync-pill{color:var(--ink-soft);border:1px solid var(--line);background:#ffffff8c;border-radius:999px;padding:.2rem .55rem;font-size:.72rem}.sync-pill[data-status=synced]{color:var(--accent);background:var(--accent-soft);border-color:#0f6e5647}.sync-pill[data-status=offline]{color:var(--danger)}.title-input{min-width:10rem;max-width:22rem;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:10px;flex:12rem;padding:.45rem .65rem}.title-input:hover,.title-input:focus{border-color:var(--line);background:#ffffffa6;outline:none}.header-actions{flex-wrap:wrap;gap:.4rem;display:flex}.ghost-btn,.primary-btn{border:1px solid var(--line);cursor:pointer;color:var(--ink);background:#ffffffb3;border-radius:10px;align-items:center;gap:.35rem;padding:.45rem .7rem;transition:background .12s,border-color .12s,transform .12s;display:inline-flex}.ghost-btn:hover,.primary-btn:hover{transform:translateY(-1px)}.primary-btn{background:var(--accent);border-color:var(--accent);color:#f7fff9}.toolbar{border-bottom:1px solid var(--line);z-index:15;background:#fffcf68c;flex-wrap:wrap;gap:.35rem;padding:.65rem 1.25rem;display:flex;position:sticky;top:64px}.tool-btn{width:2.15rem;height:2.15rem;color:var(--ink-soft);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;place-items:center;display:grid}.tool-btn:hover:not(:disabled){color:var(--ink);border-color:var(--line);background:#fffc}.tool-btn.is-active{background:var(--accent-soft);color:var(--accent);border-color:#0f6e5640}.tool-btn:disabled{opacity:.4;cursor:not-allowed}.editor-stage{padding:1.5rem 1.25rem 2rem}.stage-inner[hidden]{display:none!important}.stage-inner,.source-pane,.preview-pane{width:min(100%, var(--measure));background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-height:min(68vh,42rem);box-shadow:var(--shadow);margin:0 auto}.stage-inner{padding:2rem 2.1rem 3rem}.tiptap-surface{font-family:var(--font-doc);color:var(--ink);outline:none;min-height:28rem;font-size:1.125rem;line-height:1.7}.tiptap-surface>*+*{margin-top:.85rem}.tiptap-surface h1,.tiptap-surface h2,.tiptap-surface h3,.prose h1,.prose h2,.prose h3{letter-spacing:-.02em;margin:1.4rem 0 .55rem;line-height:1.25}.tiptap-surface h1,.prose h1{font-size:2.1rem}.tiptap-surface h2,.prose h2{font-size:1.55rem}.tiptap-surface h3,.prose h3{font-size:1.25rem}.tiptap-surface p.is-editor-empty:first-child:before{color:#9a9184;content:attr(data-placeholder);float:left;pointer-events:none;height:0}.tiptap-surface blockquote,.prose blockquote{color:var(--ink-soft);border-left:3px solid #0f6e5673;margin:0;padding-left:1rem}.tiptap-surface code,.prose code{font-family:var(--font-mono);background:#1c19150f;border-radius:5px;padding:.1em .35em;font-size:.9em}.tiptap-surface pre,.prose pre{font-family:var(--font-mono);color:#f4efe6;background:#1c1915;border-radius:10px;padding:.95rem 1rem;font-size:.9rem;overflow-x:auto}.tiptap-surface pre code,.prose pre code{color:inherit;background:0 0;padding:0}.tiptap-surface ul[data-type=taskList],.prose ul.contains-task-list{padding-left:0;list-style:none}.tiptap-surface ul[data-type=taskList] li,.prose .task-list-item{align-items:flex-start;gap:.5rem;display:flex}.tiptap-surface ul[data-type=taskList] li>label{margin-top:.35rem}.source-pane{width:min(100%, var(--measure));resize:vertical;border:1px solid var(--line);font-family:var(--font-mono);color:#f4efe6;background:#1c1915;padding:1.4rem 1.5rem;font-size:.92rem;line-height:1.6;display:block}.source-pane:focus{outline-offset:2px;outline:2px solid #0f6e5673}.preview-pane{font-family:var(--font-doc);padding:2rem 2.1rem 3rem;font-size:1.125rem;line-height:1.7}.prose p,.prose ul,.prose ol{margin:.75rem 0}.mode-tabs{border-top:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:20;background:#fffcf6eb;justify-content:center;align-items:center;gap:.35rem;min-height:3.25rem;padding:.65rem 1rem;display:flex;position:sticky;bottom:0}.mode-tab{height:2.25rem;color:var(--ink-soft);cursor:pointer;box-shadow:none;background:0 0;border:1px solid #0000;border-radius:999px;outline:none;flex:none;justify-content:center;align-items:center;padding:0 1rem;font-size:.9rem;font-weight:500;line-height:1;display:inline-flex;transform:none}.mode-tab:hover{color:var(--ink);background:#ffffffb3}.mode-tab:focus-visible{border-color:#0f6e5659;box-shadow:0 0 0 2px #0f6e562e}.mode-tab.is-active{color:var(--accent);background:var(--accent-soft);border-color:#0f6e5647}.toast{color:#f7f3ea;box-shadow:var(--shadow);z-index:40;background:#1c1915;border-radius:10px;padding:.65rem .9rem;font-size:.9rem;position:fixed;bottom:4.5rem;right:1rem}.plan-pill{border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;padding:.2rem .55rem;font-size:.72rem}.plan-pill[data-plan=pro]{color:var(--accent);background:var(--accent-soft);border-color:#0f6e5647}.link-btn{text-decoration:none}.limit-banner{color:#6b4a12;background:#fff4e5;border-bottom:1px solid #9b641433;padding:.55rem 1.25rem;font-size:.9rem}.limit-banner button{color:var(--accent);cursor:pointer;background:0 0;border:none;font-weight:600;text-decoration:underline}.workspace{flex:1;min-height:0;display:flex}.workspace .editor-stage{flex:1;min-width:0}.library-panel{border-right:1px solid var(--line);background:#fffcf6f2;flex-direction:column;gap:.75rem;width:min(100%,17.5rem);padding:1rem;display:flex}.library-head{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.library-head h2{margin:0;font-size:1rem}.library-head p{color:var(--ink-soft);margin:.2rem 0 0;font-size:.78rem}.library-empty{color:var(--ink-soft);align-items:center;gap:.45rem;font-size:.88rem;display:flex}.library-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex;overflow:auto}.library-list li{border-radius:10px;align-items:stretch;gap:.25rem;display:flex}.library-list li.is-active{background:var(--accent-soft)}.library-item{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;flex:1;padding:.55rem .6rem}.library-title{font-size:.9rem;font-weight:600;display:block}.library-meta{color:var(--ink-soft);margin-top:.15rem;font-size:.72rem;display:block}.icon-btn{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.45rem}.icon-btn:hover{color:var(--danger);background:#9b2c2c14}.upgrade-banner{background:var(--accent-soft);color:var(--accent);cursor:pointer;border:1px solid #0f6e5640;border-radius:10px;padding:.55rem .7rem;font-size:.85rem;font-weight:600}.auth-page{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.auth-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);width:min(100%,24rem);box-shadow:var(--shadow);flex-direction:column;gap:.85rem;padding:1.75rem;display:flex}.auth-brand{color:var(--ink);font-size:1.2rem;font-weight:700;text-decoration:none}.auth-card h1{margin:0;font-size:1.45rem}.auth-lead,.auth-footer{color:var(--ink-soft);margin:0;font-size:.92rem}.auth-card label{flex-direction:column;gap:.35rem;font-size:.88rem;font-weight:600;display:flex}.auth-card input{border:1px solid var(--line);background:#fff;border-radius:10px;padding:.65rem .75rem;font-weight:400}.auth-submit{justify-content:center;margin-top:.35rem}.auth-error{color:var(--danger);margin:0;font-size:.88rem}.auth-footer a{color:var(--accent)}.modal-backdrop{z-index:60;background:#14100c73;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.paywall-modal{background:#fff;border-radius:12px;width:min(100%,26rem);padding:1.5rem 1.5rem 1.35rem;position:relative;box-shadow:0 24px 80px #00000040}.modal-close{cursor:pointer;color:#667;background:0 0;border:none;position:absolute;top:.75rem;right:.75rem}.paywall-brand{color:#635bff;align-items:center;gap:.45rem;margin-bottom:.75rem;font-size:.95rem;font-weight:700;display:flex}.paywall-stripe-mark{color:#fff;background:#635bff;border-radius:4px;place-items:center;width:1.35rem;height:1.35rem;font-size:.75rem;display:grid}.paywall-modal h2{margin:0 0 .35rem;font-size:1.25rem}.paywall-price{margin:0;font-size:1.1rem}.paywall-price span{color:#667;font-size:.9rem}.paywall-desc{color:#667;margin:.25rem 0 .85rem;font-size:.9rem}.paywall-sim-note{color:#3c4257;background:#f6f9fc;border:1px solid #e6ebf1;border-radius:8px;align-items:flex-start;gap:.4rem;margin-bottom:.85rem;padding:.65rem .75rem;font-size:.8rem;display:flex}.paywall-form{flex-direction:column;gap:.7rem;display:flex}.paywall-form label{color:#3c4257;flex-direction:column;gap:.3rem;font-size:.8rem;font-weight:600;display:flex}.paywall-form input{border:1px solid #e6ebf1;border-radius:6px;padding:.6rem .7rem;font-weight:400}.paywall-row{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.paywall-pay-btn{color:#fff;cursor:pointer;background:#635bff;border:none;border-radius:6px;margin-top:.35rem;padding:.75rem;font-weight:600}.paywall-pay-btn:disabled{opacity:.7;cursor:wait}@media (max-width:720px){.app-header{align-items:stretch}.title-input{flex-basis:100%;order:3;max-width:none}.header-actions{width:100%}.header-actions .ghost-btn span,.header-actions .primary-btn span,.header-actions .link-btn span{display:none}.stage-inner,.preview-pane{padding:1.25rem 1.1rem 2rem}.toolbar{position:relative;top:0}.library-panel{z-index:30;width:min(100%,18rem);box-shadow:var(--shadow);position:fixed;inset:0 auto 0 0}}
