:root{--font-mono: "Berkeley Mono", "IBM Plex Mono", "SF Mono", ui-monospace, Menlo, monospace;--font-sans: "IBM Plex Sans", -apple-system, "Segoe UI", Roboto, Helvetica, sans-serif;--sp-1: 2px;--sp-2: 4px;--sp-3: 6px;--sp-4: 8px;--sp-5: 12px;--sp-6: 16px;--sp-7: 20px;--sp-8: 24px;--text-xs: 10px;--text-sm: 11px;--text-base: 12px;--text-md: 13px;--text-lg: 14px;--text-xl: 16px;--text-2xl: 20px;--text-3xl: 28px}[data-theme=light]{--bg-primary: #fafafa;--bg-secondary: #ffffff;--bg-tertiary: #f4f4f5;--bg-hover: #e4e4e7;--border-subtle: #e4e4e7;--border-default: #d4d4d8;--border-strong: #a1a1aa;--text-primary: #18181b;--text-secondary: #52525b;--text-tertiary: #a1a1aa;--text-accent: #0a7a4a;--accent-blue: #0a7a4a;--accent-green: #0a7a4a;--accent-amber: #8a6500;--accent-red: #c02020;--accent-purple: #6a40b0;--tag-blue-bg: rgba(10,122,74,.08);--tag-blue-border: rgba(10,122,74,.25);--tag-red-bg: rgba(192,32,32,.08);--tag-red-border: rgba(192,32,32,.25);--shadow-card: 0 1px 2px rgba(0,0,0,.04);--shadow-card-hover: 0 2px 8px rgba(0,0,0,.08);--scanline-opacity: .015}[data-theme=dark]{--bg-primary: #0a0a0e;--bg-secondary: #111116;--bg-tertiary: #18181e;--bg-hover: #1e1e26;--border-subtle: #1e1e28;--border-default: #2a2a36;--border-strong: #3a3a48;--text-primary: #e8e8ec;--text-secondary: #9090a0;--text-tertiary: #606070;--text-accent: #34d399;--accent-blue: #34d399;--accent-green: #34d399;--accent-amber: #fbbf24;--accent-red: #f87171;--accent-purple: #a78bfa;--tag-blue-bg: rgba(52,211,153,.08);--tag-blue-border: rgba(52,211,153,.3);--tag-red-bg: rgba(248,113,113,.08);--tag-red-border: rgba(248,113,113,.3);--shadow-card: 0 1px 2px rgba(0,0,0,.2);--shadow-card-hover: 0 2px 8px rgba(0,0,0,.3);--scanline-opacity: .03}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-mono);font-size:var(--text-base);line-height:1.5;color:var(--text-primary);background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,var(--scanline-opacity)) 2px,rgba(0,0,0,var(--scanline-opacity)) 4px) fixed,var(--bg-primary)}:focus-visible{outline:2px solid var(--accent-blue);outline-offset:1px}.app-shell{display:grid;grid-template-columns:200px 1fr;grid-template-rows:44px 1fr;height:100vh;overflow:hidden}.topbar{grid-column:1 / -1;display:flex;align-items:center;gap:var(--sp-7);padding:0 var(--sp-7);background:var(--bg-secondary);border-bottom:1px solid var(--border-default);height:44px}.logo{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--text-primary)}.logo span{color:var(--text-tertiary);font-weight:400}.title-input{font-family:var(--font-mono);font-size:var(--text-md);background:transparent;border:0;color:var(--text-primary);flex:1;padding:0;min-width:0}.title-input:focus{outline:none}.title-input:disabled{color:var(--text-tertiary)}.title-input::placeholder{color:var(--text-tertiary)}.status{color:var(--text-tertiary);font-size:var(--text-xs);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em}.theme-toggle{font-family:var(--font-mono);font-size:var(--text-xs);background:transparent;border:1px solid var(--border-subtle);color:var(--text-tertiary);padding:3px var(--sp-4);border-radius:3px;cursor:pointer;text-transform:uppercase;letter-spacing:.08em}.theme-toggle:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-default)}.sidebar{background:var(--bg-secondary);border-right:1px solid var(--border-default);overflow-y:auto;padding:var(--sp-3) 0}.sidebar-item{display:flex;flex-direction:column;gap:2px;padding:var(--sp-3) var(--sp-6);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-secondary);border-left:2px solid transparent;cursor:pointer;transition:all .1s ease}.sidebar-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sidebar-item.active{background:var(--bg-tertiary);color:var(--text-accent);border-left-color:var(--accent-blue)}.sidebar-item .title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-item .meta{display:flex;justify-content:space-between;align-items:center;color:var(--text-tertiary);font-size:var(--text-xs);letter-spacing:.04em}.sidebar-item .meta button{background:transparent;border:0;color:var(--text-tertiary);cursor:pointer;font:inherit;padding:0 2px;text-transform:uppercase;letter-spacing:.08em}.sidebar-item .meta button:hover{color:var(--accent-red)}.sidebar-empty{padding:var(--sp-6);color:var(--text-tertiary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em}.editor{display:flex;flex-direction:column;min-height:0;background:var(--bg-secondary)}.toolbar{display:flex;align-items:center;gap:var(--sp-1);padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border-subtle);background:var(--bg-secondary);min-height:34px}.toolbar .sep{width:1px;height:16px;background:var(--border-default);margin:0 var(--sp-3)}.btn{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;padding:6px 14px;border:1px solid var(--border-default);border-radius:3px;cursor:pointer;white-space:nowrap;text-transform:uppercase;letter-spacing:.05em;display:inline-flex;align-items:center;gap:var(--sp-3);background:var(--bg-tertiary);color:var(--text-secondary);transition:all .1s ease}.btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-strong)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:var(--sp-1) var(--sp-4)}.btn-primary{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.btn-primary:hover:not(:disabled){opacity:.9;border-color:var(--accent-blue);color:#fff}.btn-ghost{background:transparent;border-color:var(--border-subtle);color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-default)}.cm-editor-host{flex:1;overflow:hidden;min-height:0;background:var(--bg-secondary)}.cm-editor,.cm-scroller{height:100%}.cm-editor .cm-cursor{border-color:var(--text-primary)}.cm-editor .cm-selectionBackground,.cm-editor.cm-focused .cm-selectionBackground{background:var(--tag-blue-bg)!important}.cm-md-strong{font-weight:700;color:var(--text-primary)}.cm-md-em{font-style:italic}.cm-md-strike{text-decoration:line-through;color:var(--text-tertiary)}.cm-md-code{font-family:var(--font-mono);background:var(--bg-tertiary);padding:1px 5px;border-radius:3px;font-size:.9em;color:var(--accent-purple)}.cm-md-mark{color:var(--text-tertiary);opacity:.55}.cm-md-link{color:var(--text-accent);text-decoration:underline;cursor:pointer}.cm-md-link:hover{opacity:.85}.cm-md-bullet{color:var(--accent-blue);font-weight:700;margin-right:.25em;display:inline-block;width:.9em;text-align:center}.cm-md-num{color:var(--accent-blue);font-weight:600}.cm-md-task{color:var(--text-tertiary);margin-right:.3em;font-size:.95em;display:inline-block;width:1em;text-align:center}.cm-md-task.checked{color:var(--accent-green)}.cm-md-img{display:block;max-width:100%;max-height:420px;margin:var(--sp-4) 0;border-radius:4px;border:1px solid var(--border-subtle);background:var(--bg-tertiary)}.cm-md-img-error{display:inline-block;padding:var(--sp-3) var(--sp-5);font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--accent-red);background:var(--tag-red-bg);border:1px solid var(--tag-red-border);border-radius:3px}.cm-md-h1,.cm-md-h2,.cm-md-h3,.cm-md-h4,.cm-md-h5,.cm-md-h6{font-family:var(--font-mono);font-weight:700;line-height:1.3;margin-top:.3em;color:var(--text-primary)}.cm-md-h1{font-size:1.7em}.cm-md-h2{font-size:1.35em}.cm-md-h3{font-size:1.15em}.cm-md-h4{font-size:1em;color:var(--text-secondary)}.cm-md-h5{font-size:.9em;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em}.cm-md-h6{font-size:.85em;color:var(--text-tertiary)}.cm-md-h1 .cm-md-mark,.cm-md-h2 .cm-md-mark,.cm-md-h3 .cm-md-mark,.cm-md-h4 .cm-md-mark,.cm-md-h5 .cm-md-mark,.cm-md-h6 .cm-md-mark{font-family:var(--font-mono);font-size:.55em;vertical-align:middle;margin-right:.3em;color:var(--text-tertiary)}.empty-state{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--sp-3);height:100%;padding:var(--sp-8);color:var(--text-tertiary);text-align:center}.empty-state-title{font-family:var(--font-mono);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:var(--text-xs);color:var(--text-secondary)}.empty-state-body{font-size:var(--text-sm);color:var(--text-tertiary)}
