.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);color:var(--sidebar-text);overflow-y:auto;overflow-x:hidden;flex-shrink:0;transition:margin-left .2s ease;border-right:1px solid rgba(255,255,255,.06)}.sidebar.closed{margin-left:calc(-1 * var(--sidebar-width))}.sidebar-nav{display:flex;flex-direction:column;height:100%}.sidebar-header{padding:16px 16px 12px;border-bottom:1px solid rgba(255,255,255,.06)}.sidebar-brand{display:flex;align-items:center;gap:10px}.brand-icon{width:32px;height:32px;border-radius:8px;background:var(--accent);color:var(--sidebar-bg);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px}.brand-name{font-size:14px;font-weight:600;color:var(--sidebar-text-bright)}.brand-sub{font-size:11px;color:var(--sidebar-text);opacity:.7}.sidebar-sections{padding:8px 0;flex:1;overflow-y:auto}.nav-section{margin-bottom:2px}.section-header{width:100%;display:flex;align-items:center;gap:6px;padding:8px 16px;background:none;border:none;color:var(--sidebar-text);cursor:pointer;font-family:var(--font-body);font-size:13px;font-weight:600;text-align:left;transition:all .15s}.section-header:hover{background:var(--sidebar-hover);color:var(--sidebar-text-bright)}.section-header .chevron{flex-shrink:0;transition:transform .15s;opacity:.5}.section-header.expanded .chevron{transform:rotate(90deg)}.section-number{color:var(--accent);font-weight:700;font-size:11px;min-width:18px;opacity:.8}.section-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-children{padding:2px 0 6px}.nav-item{display:flex;align-items:center;gap:8px;padding:5px 16px 5px 40px;color:var(--sidebar-text);font-size:13px;text-decoration:none;transition:all .1s;border-left:2px solid transparent}.nav-item:hover{background:var(--sidebar-hover);color:var(--sidebar-text-bright);text-decoration:none}.nav-item.active{background:var(--sidebar-active);color:var(--accent);border-left-color:var(--accent)}.nav-item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.sidebar::-webkit-scrollbar-thumb:hover{background:#fff3}.content-area{flex:1;overflow-y:auto;background:var(--content-bg)}.content-page{max-width:var(--content-max-width);margin:0 auto;padding:32px 48px 80px}.content-header{margin-bottom:32px}.content-breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--content-text-secondary);margin-bottom:16px}.content-breadcrumb a{color:var(--content-text-secondary)}.content-breadcrumb a:hover{color:var(--accent)}.breadcrumb-sep{opacity:.4}.content-title-row{display:flex;align-items:center;gap:12px}.content-title-row h1{font-family:var(--font-serif);font-size:34px;font-weight:700;letter-spacing:-.5px;line-height:1.2;color:var(--content-text)}.markdown-body{color:var(--content-text);line-height:1.75}.markdown-body h1{font-family:var(--font-serif);font-size:28px;font-weight:700;margin:40px 0 16px;letter-spacing:-.3px}.markdown-body h2{font-size:22px;font-weight:700;margin:36px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.markdown-body h3{font-size:18px;font-weight:600;margin:28px 0 10px}.markdown-body h4{font-size:15px;font-weight:600;margin:24px 0 8px}.markdown-body p{margin:0 0 16px}.markdown-body ul,.markdown-body ol{margin:0 0 16px;padding-left:24px}.markdown-body li{margin-bottom:4px}.markdown-body li>ul,.markdown-body li>ol{margin-top:4px;margin-bottom:4px}.markdown-body blockquote{margin:0 0 16px;padding:12px 20px;border-left:3px solid var(--accent);background:#2e8b570a;color:var(--content-text-secondary);border-radius:0 6px 6px 0}.markdown-body blockquote p:last-child{margin-bottom:0}.markdown-body code{background:var(--code-bg);padding:2px 6px;border-radius:3px;font-size:.875em}.markdown-body pre{margin:0 0 16px;padding:16px 20px;background:#1e1e2e;color:#cdd6f4;border-radius:8px;overflow-x:auto;font-size:13px;line-height:1.6}.markdown-body pre code{background:none;padding:0;border-radius:0;font-size:inherit;color:inherit}.markdown-body table{width:100%;margin:0 0 16px;border-collapse:collapse;font-size:14px}.markdown-body th{text-align:left;font-weight:600;padding:10px 12px;border-bottom:2px solid #111111;background:var(--border-light)}.markdown-body td{padding:8px 12px;border-bottom:1px solid var(--border)}.markdown-body tr:hover td{background:#00000005}.markdown-body hr{border:none;border-top:1px solid var(--border);margin:32px 0}.markdown-body strong{font-weight:600}.markdown-body a{color:var(--accent-dim);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s}.markdown-body a:hover{border-bottom-color:var(--accent-dim);text-decoration:none}.markdown-body img{max-width:100%;border-radius:8px}.landing-page{max-width:900px;margin:0 auto;padding:48px}.landing-hero{text-align:center;margin-bottom:48px}.landing-hero h1{font-family:var(--font-serif);font-size:44px;font-weight:700;letter-spacing:-1px;margin-bottom:12px}.landing-subtitle{font-size:16px;color:var(--content-text-secondary);max-width:560px;margin:0 auto 32px;line-height:1.6}.landing-stats{display:flex;justify-content:center;gap:48px;margin-bottom:24px}.stat{display:flex;flex-direction:column;align-items:center}.stat-number{font-size:36px;font-weight:700;color:var(--accent-dim);line-height:1}.stat-label{font-size:13px;color:var(--content-text-secondary);margin-top:4px}.landing-progress{max-width:400px;margin:0 auto;display:flex;align-items:center;gap:12px}.progress-bar{flex:1;height:6px;background:var(--border);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .5s ease}.progress-label{font-size:13px;color:var(--content-text-secondary);white-space:nowrap}.landing-sections h2{font-size:20px;font-weight:700;margin-bottom:20px}.sections-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.section-card{display:flex;align-items:flex-start;gap:14px;padding:16px;border:1px solid var(--border);border-radius:10px;text-decoration:none;color:inherit;transition:all .15s}.section-card:hover{border-color:var(--accent);background:#2e8b5708;text-decoration:none}.card-number{font-size:24px;font-weight:700;color:var(--accent);opacity:.6;line-height:1;min-width:28px}.card-body h3{font-size:14px;font-weight:600;margin-bottom:4px;color:var(--content-text)}.card-progress{font-size:12px;color:var(--content-text-secondary)}.diagram-embed{margin:32px 0;border:1px solid var(--border);border-radius:10px;overflow:hidden}.diagram-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--border-light);border-bottom:1px solid var(--border)}.diagram-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--content-text-secondary)}.diagram-open{font-size:12px;color:var(--accent-dim)}.diagram-frame-wrapper{background:#0a0a0a}.diagram-frame{width:100%;height:650px;border:none;display:block}.backlinks-panel{margin-top:48px;padding-top:24px;border-top:1px solid var(--border)}.backlinks-header{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--content-text-secondary);margin-bottom:12px}.backlinks-list{display:flex;flex-wrap:wrap;gap:8px}.backlink-item{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:6px;font-size:13px;color:var(--content-text);text-decoration:none;transition:all .15s}.backlink-item:hover{border-color:var(--accent);background:#2e8b570d;text-decoration:none}.backlink-id{font-weight:600;color:var(--accent-dim);font-size:11px}.search-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding-top:15vh}.search-modal{width:560px;max-width:90vw;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;overflow:hidden}.search-input-wrapper{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}.search-icon{flex-shrink:0;color:var(--content-text-secondary)}.search-input{flex:1;border:none;outline:none;font-size:16px;font-family:var(--font-body);color:var(--content-text);background:transparent}.search-input::placeholder{color:var(--content-text-secondary)}.search-esc{flex-shrink:0}.search-results{max-height:400px;overflow-y:auto;padding:8px}.search-hint{padding:8px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--content-text-secondary)}.search-result{width:100%;display:block;padding:10px 12px;border:none;background:none;border-radius:8px;cursor:pointer;text-align:left;font-family:var(--font-body);transition:background .1s}.search-result:hover,.search-result.selected{background:var(--border-light)}.search-result-main{display:flex;align-items:center;gap:8px}.search-result-title{font-size:14px;font-weight:500;color:var(--content-text)}.search-result-section{font-size:12px;color:var(--content-text-secondary);margin-left:auto}.search-result-snippet{font-size:12px;color:var(--content-text-secondary);margin-top:4px;padding-left:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-empty{padding:24px;text-align:center;color:var(--content-text-secondary);font-size:14px}.graph-button{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:6px;color:var(--sidebar-text);text-decoration:none;font-size:13px;transition:all .15s}.graph-button:hover{background:#ffffff14;color:var(--sidebar-text-bright);text-decoration:none}.top-bar-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.top-bar-title{text-decoration:none;color:inherit;display:flex;align-items:center;gap:8px}.top-bar-title:hover{text-decoration:none}.graph-page{height:100%;display:flex;flex-direction:column;background:#111;color:var(--sidebar-text-bright)}.graph-header{padding:20px 24px 0}.graph-header h1{font-size:20px;font-weight:700;color:var(--sidebar-text-bright)}.graph-header p{font-size:13px;color:var(--sidebar-text);margin-top:4px}.graph-legend{display:flex;flex-wrap:wrap;gap:12px;padding:12px 24px;font-size:12px;color:var(--sidebar-text)}.legend-item{display:flex;align-items:center;gap:6px}.legend-dot{width:8px;height:8px;border-radius:50%}.graph-container{flex:1;position:relative;overflow:hidden}.graph-tooltip{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:#111111f2;padding:10px 16px;border-radius:8px;font-size:13px;color:var(--sidebar-text-bright);pointer-events:none;z-index:10;border:1px solid rgba(255,255,255,.1)}.tooltip-section{font-size:11px;color:var(--sidebar-text)}@media(max-width:768px){.content-page{padding:24px 20px 60px}.content-title-row h1{font-size:24px}.landing-page{padding:24px 20px}.landing-hero h1{font-size:32px}.landing-stats{gap:24px}.stat-number{font-size:28px}}.ai-toolbar{position:fixed;transform:translate(-50%,-100%);display:flex;gap:2px;padding:4px;background:var(--top-bar-bg);border:1px solid rgba(255,255,255,.12);border-radius:8px;box-shadow:0 8px 24px #0006;z-index:500;animation:toolbarFadeIn .12s ease}@keyframes toolbarFadeIn{0%{opacity:0;transform:translate(-50%,-90%)}to{opacity:1;transform:translate(-50%,-100%)}}.ai-toolbar-btn{padding:6px 12px;border:none;background:none;color:var(--sidebar-text);font-family:var(--font-body);font-size:12px;font-weight:500;border-radius:5px;cursor:pointer;white-space:nowrap;transition:all .1s}.ai-toolbar-btn:hover{background:#ffffff1a;color:var(--sidebar-text-bright)}.ai-toolbar-custom{color:var(--accent)}.ai-toolbar-custom:hover{color:var(--accent);background:#2e8b5726}.ai-panel-overlay{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px}.ai-panel{width:640px;max-width:100%;max-height:85vh;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;overflow:hidden}.ai-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.ai-panel-header h3{font-size:16px;font-weight:600;color:var(--content-text)}.ai-panel-close{border:none;background:none;padding:4px;cursor:pointer;color:var(--content-text-secondary);border-radius:4px}.ai-panel-close:hover{background:var(--border-light);color:var(--content-text)}.ai-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--content-text-secondary);margin-bottom:8px}.ai-panel-selected{padding:16px 20px;border-bottom:1px solid var(--border)}.ai-selected-text{font-size:13px;color:var(--content-text);background:var(--border-light);padding:10px 12px;border-radius:6px;line-height:1.5;max-height:100px;overflow-y:auto}.ai-panel-prompt{padding:16px 20px;border-bottom:1px solid var(--border)}.ai-prompt-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-family:var(--font-body);font-size:13px;color:var(--content-text);resize:vertical;line-height:1.5}.ai-prompt-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #2e8b5726}.ai-submit-btn{margin-top:10px;padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-family:var(--font-body);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}.ai-submit-btn:hover{background:var(--accent-dim)}.ai-panel-result{flex:1;overflow-y:auto;padding:16px 20px;min-height:120px}.ai-result-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.ai-result-header .ai-label{margin-bottom:0}.ai-copy-btn{padding:4px 10px;border:1px solid var(--border);background:none;border-radius:5px;font-family:var(--font-body);font-size:12px;color:var(--content-text-secondary);cursor:pointer;transition:all .15s}.ai-copy-btn:hover{background:var(--border-light);color:var(--content-text)}.ai-result-content{font-size:14px;line-height:1.7}.ai-result-content.markdown-body{max-width:100%}.ai-loading{display:flex;align-items:center;justify-content:center;gap:6px;padding:32px 0}.ai-loading-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:aiDotPulse 1.4s ease-in-out infinite}.ai-loading-dot:nth-child(2){animation-delay:.2s}.ai-loading-dot:nth-child(3){animation-delay:.4s}@keyframes aiDotPulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}:root{--sidebar-bg: #111111;--sidebar-text: rgba(255, 255, 255, .45);--sidebar-text-bright: rgba(255, 255, 255, .85);--sidebar-hover: rgba(255, 255, 255, .04);--sidebar-active: rgba(46, 139, 87, .1);--accent: #2E8B57;--accent-dim: #267A4A;--content-bg: #FFFFFF;--content-text: #111111;--content-text-secondary: #888888;--border: #E0E0E0;--border-light: #F5F5F3;--code-bg: #F5F5F3;--top-bar-bg: #111111;--status-written: #2E8B57;--status-draft: #B8860B;--status-todo: #888888;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif: "Source Serif 4", Georgia, serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--sidebar-width: 240px;--top-bar-height: 48px;--content-max-width: 760px}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-body);font-size:15px;line-height:1.7;color:var(--content-text);background:var(--content-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent-dim);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--font-mono);font-size:.875em}kbd{font-family:var(--font-mono);font-size:.75em;padding:2px 6px;border-radius:4px;border:1px solid var(--border);background:var(--border-light);color:var(--content-text-secondary)}.layout{height:100vh;display:flex;flex-direction:column;overflow:hidden}.top-bar{height:var(--top-bar-height);background:var(--top-bar-bg);color:var(--sidebar-text-bright);display:flex;align-items:center;padding:0 16px;gap:12px;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.08);z-index:100}.hamburger{background:none;border:none;color:var(--sidebar-text);cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center}.hamburger:hover{background:#ffffff14;color:var(--sidebar-text-bright)}.top-bar-title{font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px}.top-bar-logo{color:var(--accent);font-weight:700;letter-spacing:.3em}.top-bar-divider{color:var(--sidebar-text);opacity:.4}.top-bar-actions{margin-left:auto}.search-trigger{display:flex;align-items:center;gap:8px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:5px;color:var(--sidebar-text);padding:5px 12px;cursor:pointer;font-size:13px;font-family:var(--font-body);transition:all .15s}.search-trigger:hover{background:#ffffff1a;color:var(--sidebar-text-bright)}.search-trigger kbd{border-color:#ffffff26;background:#ffffff0f;color:var(--sidebar-text)}.layout-body{display:flex;flex:1;overflow:hidden}.status-badge{display:inline-flex;align-items:center;gap:6px}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.status-written .status-dot{background:var(--status-written)}.status-draft .status-dot{background:var(--status-draft)}.status-todo .status-dot{background:var(--status-todo);opacity:.5}.status-md .status-label{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.status-written .status-label{color:var(--status-written)}.status-draft .status-label{color:var(--status-draft)}.status-todo .status-label{color:var(--status-todo)}.content-loading{padding:48px;max-width:var(--content-max-width)}.loading-shimmer{height:20px;background:linear-gradient(90deg,var(--border-light) 25%,var(--border) 50%,var(--border-light) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px;margin-bottom:16px}.loading-shimmer.short{width:60%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.content-error{padding:48px;text-align:center;color:var(--content-text-secondary)}.content-error h2{font-size:24px;color:var(--content-text);margin-bottom:8px}.content-error code{background:var(--code-bg);padding:2px 6px;border-radius:3px}.content-error a{display:inline-block;margin-top:16px;color:var(--accent)}
