*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--bg-base: #0a0a14;--bg-surface: #12121f;--bg-raised: #1a1a2e;--bg-nav: #10101c;--bg-hover: #22223a;--text-primary: #e0e0ec;--text-secondary: #a0a0b8;--text-muted: #606078;--text-dim: #404058;--accent: #2dd4bf;--accent-dim: #1a9e8f;--status-ok: #4ade80;--status-warn: #fbbf24;--status-error: #f87171;--status-proposed: #fbbf24;--status-accepted: #60a5fa;--status-synthesized: #4ade80;--status-coded: #a78bfa;--status-ok-bg: rgba(74, 222, 128, .1);--status-warn-bg: rgba(251, 191, 36, .1);--status-error-bg: rgba(248, 113, 113, .1);--status-proposed-bg: rgba(251, 191, 36, .1);--status-accepted-bg: rgba(96, 165, 250, .1);--status-synthesized-bg: rgba(74, 222, 128, .1);--status-coded-bg: rgba(167, 139, 250, .1);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", Menlo, monospace;--nav-width: 220px}body{font-family:var(--font-sans);font-size:14px;line-height:1.5;color:var(--text-primary);background-color:var(--bg-base);min-height:100vh}#root{min-height:100vh}a{color:inherit;text-decoration:none}ul,ol{list-style:none}.shell{display:flex;min-height:100vh}.shell-nav{width:var(--nav-width);min-width:var(--nav-width);background-color:var(--bg-nav);display:flex;flex-direction:column;border-right:1px solid rgba(45,212,191,.08);position:fixed;top:0;left:0;bottom:0;overflow-y:auto}.shell-main{flex:1;margin-left:var(--nav-width);padding:var(--space-xl);min-height:100vh;background-color:var(--bg-base)}.nav-header{padding:var(--space-lg) 20px var(--space-md);display:flex;align-items:center;gap:var(--space-sm)}.nav-brand{font-size:15px;font-weight:700;letter-spacing:.5px;color:var(--text-primary)}.nav-brand-dot{color:var(--accent)}.nav-link{display:block;padding:10px 20px;font-size:13px;color:var(--text-secondary);border-left:3px solid transparent;transition:background-color .15s,color .15s}.nav-link:hover{background-color:var(--bg-hover);color:var(--text-primary)}.nav-link.active{color:var(--text-primary);background-color:var(--bg-raised);border-left-color:var(--accent)}.nav-footer{margin-top:auto;padding:var(--space-md) 20px;font-size:11px;color:var(--text-dim);font-family:var(--font-mono)}.card{background-color:var(--bg-raised);border-radius:var(--radius-lg);padding:var(--space-md) 20px;border:1px solid rgba(255,255,255,.04)}.card--bordered-ok{border-left:3px solid var(--status-ok)}.card--bordered-warn{border-left:3px solid var(--status-warn)}.card--bordered-error{border-left:3px solid var(--status-error)}.card--bordered-accent{border-left:3px solid var(--accent)}.card--clickable{cursor:pointer;transition:background-color .15s,border-color .15s}.card--clickable:hover{background-color:var(--bg-hover);border-color:#2dd4bf26}.card-label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);margin-bottom:var(--space-xs)}.card-value{font-size:22px;font-weight:600;font-family:var(--font-mono)}.card-value--ok{color:var(--status-ok)}.card-value--warn{color:var(--status-warn)}.card-value--error{color:var(--status-error)}.card-value--accent{color:var(--accent)}.progress-bar{width:100%}.progress-bar__header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-xs);font-size:12px}.progress-bar__label{color:var(--text-secondary)}.progress-bar__value{font-family:var(--font-mono);color:var(--text-muted);font-size:11px}.progress-bar__track{height:6px;background-color:#ffffff0f;border-radius:3px;overflow:hidden}.progress-bar__fill{height:100%;border-radius:3px;transition:width .5s ease;min-width:2px;background-color:var(--accent)}.progress-bar__fill--ok{background-color:var(--status-ok)}.progress-bar__fill--warn{background-color:var(--status-warn)}.badge{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:11px;font-weight:500;padding:3px 10px;border-radius:12px;font-family:var(--font-mono)}.badge--ok{background-color:var(--status-ok-bg);color:var(--status-ok)}.badge--warn{background-color:var(--status-warn-bg);color:var(--status-warn)}.badge--error{background-color:var(--status-error-bg);color:var(--status-error)}.badge--muted{background-color:#ffffff0f;color:var(--text-muted)}.badge--accent{background-color:#2dd4bf1f;color:var(--accent)}.badge--proposed{background-color:var(--status-proposed-bg);color:var(--status-proposed)}.badge--accepted{background-color:var(--status-accepted-bg);color:var(--status-accepted)}.badge--synthesized{background-color:var(--status-synthesized-bg);color:var(--status-synthesized)}.badge--coded{background-color:var(--status-coded-bg);color:var(--status-coded)}.badge--readonly{background-color:#ffffff0a;color:var(--text-dim);border:1px solid rgba(255,255,255,.08);font-size:10px;text-transform:uppercase;letter-spacing:.5px}.section-title{font-size:14px;font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid rgba(255,255,255,.06);text-transform:uppercase;letter-spacing:.5px}.page-title{font-size:22px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-xs)}.page-subtitle{font-size:12px;color:var(--text-muted);margin-bottom:var(--space-lg)}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}@media (max-width: 1200px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 800px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}.mono{font-family:var(--font-mono)}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.text-dim{color:var(--text-dim)}.text-ok{color:var(--status-ok)}.text-warn{color:var(--status-warn)}.text-error{color:var(--status-error)}.text-accent{color:var(--accent)}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-center{display:flex;align-items:center}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.stack{display:flex;flex-direction:column}.activity-item{display:flex;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid rgba(255,255,255,.04);font-size:13px}.activity-item:last-child{border-bottom:none}.activity-item__type{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);min-width:48px;padding-top:2px}.activity-item__body{flex:1;min-width:0}.activity-item__title{color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-item__meta{font-size:11px;color:var(--text-muted);font-family:var(--font-mono);margin-top:2px}.file-tree{font-size:13px}.file-tree__dir{margin-bottom:var(--space-sm)}.file-tree__dir-name{font-weight:600;color:var(--text-secondary);padding:var(--space-xs) 0;cursor:pointer;display:flex;align-items:center;gap:var(--space-sm)}.file-tree__dir-name:hover{color:var(--accent)}.file-tree__files{padding-left:var(--space-lg)}.file-tree__file{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;color:var(--text-secondary);cursor:pointer;transition:color .1s}.file-tree__file:hover{color:var(--accent)}.file-tree__file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-tree__file-meta{font-size:11px;color:var(--text-dim);font-family:var(--font-mono);flex-shrink:0}.markdown-body{color:var(--text-primary);line-height:1.7;font-size:14px}.markdown-body h1{font-size:24px;font-weight:700;margin:var(--space-xl) 0 var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid rgba(255,255,255,.08);color:var(--text-primary)}.markdown-body h2{font-size:20px;font-weight:600;margin:var(--space-lg) 0 var(--space-sm);color:var(--text-primary)}.markdown-body h3{font-size:16px;font-weight:600;margin:var(--space-lg) 0 var(--space-sm);color:var(--text-secondary)}.markdown-body h4,.markdown-body h5,.markdown-body h6{font-size:14px;font-weight:600;margin:var(--space-md) 0 var(--space-xs);color:var(--text-secondary)}.markdown-body p{margin:var(--space-sm) 0}.markdown-body ul,.markdown-body ol{margin:var(--space-sm) 0;padding-left:var(--space-lg)}.markdown-body ul{list-style:disc}.markdown-body ol{list-style:decimal}.markdown-body li{margin:var(--space-xs) 0}.markdown-body code{font-family:var(--font-mono);font-size:13px;background-color:#ffffff0f;padding:2px 6px;border-radius:var(--radius-sm);color:var(--accent)}.markdown-body pre{margin:var(--space-md) 0;padding:var(--space-md);background-color:var(--bg-surface);border-radius:var(--radius-md);overflow-x:auto;border:1px solid rgba(255,255,255,.06)}.markdown-body pre code{background:none;padding:0;border-radius:0;color:var(--text-primary)}.markdown-body blockquote{border-left:3px solid var(--accent-dim);padding-left:var(--space-md);margin:var(--space-md) 0;color:var(--text-secondary)}.markdown-body table{width:100%;border-collapse:collapse;margin:var(--space-md) 0;font-size:13px}.markdown-body th,.markdown-body td{padding:var(--space-sm) var(--space-md);border:1px solid rgba(255,255,255,.08);text-align:left}.markdown-body th{background-color:var(--bg-surface);font-weight:600;color:var(--text-secondary)}.markdown-body a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.markdown-body a:hover{color:var(--accent-dim)}.markdown-body hr{border:none;border-top:1px solid rgba(255,255,255,.08);margin:var(--space-lg) 0}.markdown-body strong{font-weight:600}.markdown-body em{font-style:italic}.section-anchor{color:var(--text-dim);text-decoration:none;margin-left:var(--space-sm);font-size:.8em;opacity:0;transition:opacity .15s}.markdown-body h1:hover .section-anchor,.markdown-body h2:hover .section-anchor,.markdown-body h3:hover .section-anchor{opacity:1}.meta-bar{display:flex;flex-wrap:wrap;gap:var(--space-md);padding:var(--space-md);background-color:var(--bg-surface);border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.04);margin-bottom:var(--space-lg);font-size:12px}.meta-bar__item{display:flex;align-items:center;gap:var(--space-xs)}.meta-bar__label{color:var(--text-dim);text-transform:uppercase;font-size:10px;letter-spacing:.5px}.meta-bar__value{color:var(--text-secondary);font-family:var(--font-mono)}.back-link{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:13px;color:var(--text-muted);margin-bottom:var(--space-lg);transition:color .1s;cursor:pointer}.back-link:hover{color:var(--accent)}.tab-bar{display:flex;gap:0;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:var(--space-lg)}.tab-bar__tab{padding:var(--space-sm) var(--space-md);font-size:13px;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;background:none;border-top:none;border-left:none;border-right:none;font-family:inherit}.tab-bar__tab:hover{color:var(--text-primary)}.tab-bar__tab--active{color:var(--text-primary);border-bottom-color:var(--accent)}.loading-state{color:var(--text-muted);font-size:13px;padding:var(--space-xl)}.error-state{color:var(--status-error);font-size:13px;padding:var(--space-xl)}.empty-state{background-color:var(--bg-surface);border:1px dashed rgba(255,255,255,.08);border-radius:var(--radius-lg);padding:var(--space-xl);text-align:center;color:var(--text-muted);font-size:13px}.refresh-indicator{display:flex;align-items:center;gap:var(--space-sm);font-size:11px;color:var(--text-dim);font-family:var(--font-mono);margin-top:var(--space-xl);padding-top:var(--space-md);border-top:1px solid rgba(255,255,255,.04)}.sidebar-panel{background-color:var(--bg-surface);border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.04);padding:var(--space-md)}.sidebar-panel__title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:var(--space-sm)}.viewer-layout{display:grid;grid-template-columns:1fr 280px;gap:var(--space-lg)}@media (max-width: 1000px){.viewer-layout{grid-template-columns:1fr}}.summary-panel{background-color:var(--bg-raised);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-xl);border:1px solid rgba(255,255,255,.04);border-left:3px solid var(--accent);margin-bottom:var(--space-lg)}.summary-panel__date{font-size:11px;font-family:var(--font-mono);color:var(--text-muted)}.summary-panel__excerpt{font-size:14px;color:var(--text-secondary);line-height:1.6;margin:var(--space-sm) 0 var(--space-md)}.summary-panel__link{font-size:12px;color:var(--accent);text-decoration:underline;text-underline-offset:2px}.summary-panel__link:hover{color:var(--text-primary)}.metrics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-xs) var(--space-md)}.metrics-grid__item{display:flex;justify-content:space-between;align-items:baseline;padding:var(--space-xs) 0;border-bottom:1px solid rgba(255,255,255,.04)}.metrics-grid__label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.metrics-grid__value{font-size:13px;font-family:var(--font-mono);color:var(--text-primary)}.tree-toolbar{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.tree-search{flex:1;background-color:var(--bg-surface);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-sm);color:var(--text-primary);font-size:13px;font-family:var(--font-sans);outline:none}.tree-search:focus{border-color:var(--accent-dim)}.tree-search::placeholder{color:var(--text-dim)}.tree-btn{background:none;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);color:var(--text-muted);font-size:11px;cursor:pointer;font-family:inherit;white-space:nowrap}.tree-btn:hover{color:var(--text-primary);border-color:#ffffff26}
