:root{--bg: #1a1a2e;--surface: #16213e;--primary: #e94560;--text: #eee;--text-muted: #888;--border: #333;--radius: 6px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.btn,button[type=submit]{background:var(--primary);color:#fff;border:none;padding:.5em 1.2em;border-radius:var(--radius);cursor:pointer;font-size:.95rem}.btn:hover{opacity:.9}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-small{background:var(--surface);color:var(--text);border:1px solid var(--border);padding:.25em .7em;border-radius:var(--radius);cursor:pointer;font-size:.85rem}.btn-small:hover{border-color:var(--primary)}.btn-danger{color:#ff6b6b;border-color:#ff6b6b}.btn-danger:hover{background:#ff6b6b;color:#fff}.error{color:#ff6b6b;margin:.5em 0}.empty{color:var(--text-muted);font-style:italic}.dirty-flag{color:#ffa94d;font-size:.85rem;margin-left:1em}.app-header{display:flex;align-items:center;gap:1em;padding:.75em 1.5em;background:var(--surface);border-bottom:1px solid var(--border)}.logo{font-size:1.3rem;font-weight:700;color:var(--primary)!important}.spacer{flex:1}.user{color:var(--text-muted)}.app-main{max-width:1200px;margin:0 auto;padding:1.5em}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh}.login-form{background:var(--surface);padding:2em;border-radius:var(--radius);display:flex;flex-direction:column;gap:1em;min-width:320px}.login-form h1{color:var(--primary)}.login-form input{padding:.6em;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:1rem}.create-form{display:flex;gap:.5em;margin-bottom:1.5em}.create-form input{flex:1;padding:.5em;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text)}.doc-list{list-style:none}.doc-list li{display:flex;align-items:center;gap:1em;padding:.75em 1em;background:var(--surface);border-radius:var(--radius);margin-bottom:.5em}.doc-list li a{flex:1;font-size:1.1rem}.doc-header{display:flex;align-items:center;gap:1em;margin-bottom:1em}.doc-header h2{flex:1}.back{font-size:.9rem}.tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:1em}.tab{background:none;border:none;color:var(--text-muted);padding:.6em 1.2em;cursor:pointer;font-size:.95rem;border-bottom:2px solid transparent;margin-bottom:-2px}.tab:hover{color:var(--text)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.editor-actions{margin-bottom:.75em;display:flex;align-items:center}.split-view{display:grid;grid-template-columns:1fr 1fr;gap:1em}.md-editor{width:100%;min-height:400px;padding:1em;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);font-family:Fira Code,monospace;font-size:.9rem;resize:vertical}.md-preview{padding:1em;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:auto;max-height:500px}.md-preview h1,.md-preview h2,.md-preview h3{color:var(--primary)}.md-preview pre{background:var(--bg);padding:1em;border-radius:var(--radius);overflow-x:auto}.md-preview code{background:var(--bg);padding:.1em .3em;border-radius:3px}.md-preview table{border-collapse:collapse;width:100%}.md-preview th,.md-preview td{border:1px solid var(--border);padding:.5em}.file-list{list-style:none}.file-list li{display:flex;align-items:center;gap:.5em;padding:.4em 0}.file-link{background:none;border:none;color:var(--primary);cursor:pointer;font-size:.95rem;text-align:left}.file-link:hover{text-decoration:underline}.file-viewer{margin-top:1em}.file-viewer h4{margin-bottom:.5em;color:var(--text-muted)}.ref-list{list-style:none}.ref-list li{display:flex;align-items:center;gap:.5em;padding:.5em 0}.ref-size{color:var(--text-muted);font-size:.85rem}.ref-link-badge{background:var(--primary);color:#fff;font-size:.75rem;padding:.1em .5em;border-radius:4px}.upload-area,.link-area{margin-bottom:1em}.link-area label{display:block;margin-bottom:.3em}.link-form{display:flex;gap:.5em;align-items:center}.link-form input{flex:1;padding:.4em;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:4px}.error-msg{color:#f44;font-size:.85rem;margin-top:.3em}.gen-status{margin-bottom:1.5em}.gen-info{margin-top:.75em}.gen-info pre{background:var(--surface);padding:1em;border-radius:var(--radius);max-height:300px;overflow:auto;font-size:.85rem}.gen-live-logs{margin-top:.5em}.gen-live-label{color:var(--primary);font-weight:700;margin-bottom:.25em}.gen-logs-pre{max-height:400px}.gen-pipeline-progress{margin:.5em 0}.gen-step-label{color:var(--primary);font-weight:700;margin-bottom:.25em}.gen-progress-bar{background:var(--border);border-radius:var(--radius);height:8px;overflow:hidden;margin-bottom:.25em}.gen-progress-fill{background:var(--primary);height:100%;transition:width .3s ease}.gen-iteration{color:var(--text-muted);font-size:.85rem}.git-log{width:100%;border-collapse:collapse}.git-log th{background:var(--primary);color:#fff;padding:.5em;text-align:left}.git-log td{padding:.5em;border-bottom:1px solid var(--border)}.git-log .hash{font-family:monospace;color:var(--text-muted)}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-dialog{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5em 2em;min-width:340px;max-width:480px}.modal-title{color:var(--primary);margin-bottom:.5em}.modal-message{color:var(--text);margin-bottom:1.5em}.modal-actions{display:flex;justify-content:flex-end;gap:.75em}.btn-danger-fill{background:#ff6b6b;color:#fff;border:none}.md-editor-wrapper{position:relative}.ref-autocomplete{position:absolute;z-index:100;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 12px #0006;max-height:200px;overflow-y:auto;min-width:220px}.ref-autocomplete li{padding:.4em .8em;cursor:pointer;font-size:.9rem}.ref-autocomplete li:hover,.ref-autocomplete li.highlighted{background:var(--primary);color:#fff}.ref-prefix{color:var(--text-muted);font-size:.85em}.ref-autocomplete li.highlighted .ref-prefix,.ref-autocomplete li:hover .ref-prefix{color:#ffffffb3}.toast-notification{position:fixed;bottom:1.5em;right:1.5em;background:var(--surface);color:var(--text);border:1px solid var(--primary);border-radius:var(--radius);padding:.75em 1.25em;font-size:.9rem;box-shadow:0 4px 12px #0006;z-index:1100;animation:toast-fade-in .3s ease}@keyframes toast-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
