@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");:root{--bg-primary:#0a0f1a;--bg-secondary:#111827;--bg-panel:#1a2234;--bg-hover:#243044;--border:#2c3e56;--text-primary:#e5eefc;--text-secondary:#94a3b8;--text-muted:#64748b;--accent:#7dd3fc;--accent-warm:#f59e0b;--accent-green:#34d399;--accent-pink:#f472b6}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;font-family:Inter,system-ui,sans-serif;background:var(--bg-primary);color:var(--text-primary)}.page{max-width:960px;margin:0 auto;padding:80px 24px}.hero{text-align:center;margin-bottom:64px}.hero h1{font-size:2rem;font-weight:700;margin-bottom:12px;line-height:1.3}.hero p{color:var(--text-secondary);font-size:1.05rem;max-width:600px;margin:0 auto 32px;line-height:1.6}.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.button{display:inline-block;padding:12px 24px;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:.95rem;font-weight:500;text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s}.button:hover{background:var(--bg-hover);border-color:var(--accent)}.input-row{display:flex;gap:12px;max-width:600px;margin:0 auto}.input-row input{flex:1 1;padding:12px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:.95rem;font-family:inherit;outline:none}.input-row input:focus{border-color:var(--accent)}.input-row button{padding:12px 24px;background:var(--accent);color:var(--bg-primary);border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;white-space:nowrap}.input-row button:hover{opacity:.9}.stats{display:flex;gap:24px;justify-content:center;margin-top:40px}.stat{text-align:center}.stat-value{font-size:1.5rem;font-weight:700;color:var(--accent)}.stat-label{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:1.1rem;color:var(--text-secondary)}.error-text{color:#ef4444;text-align:center;margin-top:16px}.landing-page{min-height:100vh;background:#0a0f1a}.landing-hero{min-height:92vh;display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);grid-gap:48px;gap:48px;align-items:center;width:min(1180px,calc(100% - 48px));margin:0 auto;padding:56px 0 44px}.hero-copy{max-width:590px}.eyebrow{color:var(--accent-warm);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:18px}.landing-hero h1{font-size:4.2rem;line-height:.98;font-weight:750;margin-bottom:22px}.landing-hero p{color:var(--text-secondary);font-size:1.18rem;line-height:1.65;max-width:560px}.hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:34px}.primary-cta,.secondary-cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:8px;font-size:.95rem;font-weight:700;text-decoration:none;transition:transform .15s,border-color .15s,background .15s}.primary-cta{background:var(--text-primary);color:var(--bg-primary);border:1px solid var(--text-primary)}.secondary-cta{background:rgba(26,34,52,.72);color:var(--text-primary);border:1px solid var(--border)}.primary-cta:hover,.secondary-cta:hover{transform:translateY(-1px)}.secondary-cta:hover{border-color:var(--accent)}.hero-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;margin-top:42px}.hero-metrics div{border-top:1px solid var(--border);padding-top:12px}.hero-metrics span,.hero-metrics strong{display:block}.hero-metrics strong{color:var(--text-primary);font-size:.95rem;margin-bottom:4px}.hero-metrics span{color:var(--text-muted);font-size:.82rem;line-height:1.45}.graph-preview{height:min(640px,72vh);min-height:480px;border:1px solid var(--border);border-radius:8px;background:#0d1422;box-shadow:0 24px 80px rgba(0,0,0,.32);overflow:hidden;display:grid;grid-template-rows:auto 1fr auto}.preview-footer,.preview-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding:12px 14px;background:#111827;border-bottom:1px solid var(--border)}.preview-footer{border-top:1px solid var(--border);border-bottom:0;justify-content:flex-start;flex-wrap:wrap}.preview-canvas{position:relative;background-image:radial-gradient(#1e293b 1px,transparent 0);background-size:22px 22px}.preview-node{position:absolute;width:156px;min-height:70px;border:2px solid var(--border);border-radius:8px;background:#1a2234;color:var(--text-primary);font-size:.92rem;font-weight:700;line-height:1.25;padding:12px;box-shadow:0 14px 34px rgba(0,0,0,.24)}.preview-node span{display:block;font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}.node-thesis{top:42px;left:50%;transform:translateX(-50%);border-color:var(--accent-warm)}.node-thesis span{color:var(--accent-warm)}.node-plan-a{top:184px;left:16%;border-color:#8b5cf6}.node-plan-a span,.node-plan-b span{color:#c4b5fd}.node-plan-b{top:184px;right:16%;border-color:#8b5cf6}.node-layer{bottom:108px;left:22%;border-color:var(--accent)}.node-layer span{color:var(--accent)}.node-component{bottom:72px;right:20%;border-color:var(--accent-green)}.node-component span{color:var(--accent-green)}.preview-line{position:absolute;height:2px;background:#334155;transform-origin:left center}.line-a{left:39%;transform:rotate(145deg)}.line-a,.line-b{top:150px;width:140px}.line-b{left:52%;transform:rotate(35deg)}.line-c{bottom:190px;left:34%;width:240px;transform:rotate(18deg)}.landing-band,.local-section{border-top:1px solid var(--border)}.band-inner,.local-section{width:min(1180px,calc(100% - 48px));margin:0 auto}.band-inner{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);grid-gap:36px;gap:36px;padding:58px 0}.band-inner h2,.local-copy h2{font-size:1.45rem;line-height:1.2;margin-bottom:12px}.band-inner p,.local-copy p{color:var(--text-secondary);line-height:1.65}.proof-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.proof-item{border:1px solid var(--border);border-radius:8px;background:rgba(26,34,52,.58);padding:16px}.proof-item span{color:var(--accent-pink);font-size:.72rem;font-weight:800;letter-spacing:.08em}.proof-item strong{display:block;margin:12px 0 8px;font-size:.95rem}.proof-item p{color:var(--text-muted);font-size:.86rem;line-height:1.55}.local-section{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);grid-gap:36px;gap:36px;align-items:start;padding:48px 0 72px}.local-input{max-width:none;margin:0}.report-button{background:var(--bg-panel)!important;color:var(--text-primary)!important;border:1px solid var(--border)!important}@media (max-width:940px){.band-inner,.landing-hero,.local-section{grid-template-columns:1fr}.landing-hero{min-height:auto;padding-top:42px}.landing-hero h1{font-size:3.2rem}.graph-preview{height:520px;min-height:420px}.proof-grid{grid-template-columns:1fr}}@media (max-width:680px){.band-inner,.landing-hero,.local-section{width:min(100% - 32px,1180px)}.landing-hero h1{font-size:2.55rem}.landing-hero p{font-size:1rem}.hero-metrics,.input-row{grid-template-columns:1fr;flex-direction:column}.input-row button,.input-row input{width:100%}.preview-node{width:136px;font-size:.82rem}.node-plan-a{left:7%}.node-plan-b{right:7%}.node-layer{left:10%}.node-component{right:8%}}.react-flow__node{cursor:pointer}.react-flow__attribution{display:none!important}.report-page{max-width:860px;margin:0 auto;padding:32px 24px 80px}.report-header{margin-bottom:32px}.header-top{display:flex;align-items:center;gap:16px;margin-bottom:24px}.back-link{color:var(--text-muted);text-decoration:none;font-size:.9rem;transition:color .15s}.back-link:hover{color:var(--accent)}.report-header h1{font-size:1.5rem;font-weight:700}.date-controls{display:flex;flex-direction:column;gap:12px}.quick-ranges{display:flex;gap:8px;flex-wrap:wrap}.range-btn{padding:6px 14px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-size:.85rem;font-family:inherit;cursor:pointer;transition:all .15s}.range-btn:hover{border-color:var(--accent);color:var(--text-primary)}.range-btn.active{background:var(--bg-hover);border-color:var(--accent);color:var(--accent)}.custom-date{display:flex;gap:8px}.custom-date input{flex:1 1;padding:8px 14px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.85rem;font-family:inherit;outline:none}.custom-date input:focus{border-color:var(--accent)}.custom-date button{padding:8px 16px;background:var(--accent);color:var(--bg-primary);border:none;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer}.custom-date button:hover{opacity:.9}.report-summary{margin-bottom:36px}.summary-stats{display:flex;gap:32px;margin-bottom:12px}.summary-stats .stat{text-align:left}.date-range-label{font-size:.85rem;color:var(--text-muted)}.specs-section h2,.unassigned-section h2{font-size:1.1rem;font-weight:600;margin-bottom:16px;color:var(--text-secondary)}.section-desc{font-size:.85rem;color:var(--text-muted);margin-bottom:12px}.section-desc code{background:var(--bg-secondary);padding:1px 5px;border-radius:3px;font-size:.8rem}.spec-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:16px;margin-bottom:12px;transition:border-color .15s}.spec-card:hover{border-color:var(--accent)}.spec-header{cursor:pointer}.spec-title-row{display:flex;align-items:center;gap:10px;margin-bottom:6px}.spec-title-row h3{font-size:.95rem;font-weight:600}.spec-type-badge{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);background:rgba(125,211,252,.1);padding:2px 8px;border-radius:4px;font-weight:600}.spec-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:600;color:#fff;text-transform:uppercase;letter-spacing:.03em}.commit-count,.expand-icon{font-size:.8rem;color:var(--text-muted)}.expand-icon{margin-left:auto}.spec-summary{font-size:.85rem;color:var(--text-secondary);margin-top:8px;line-height:1.5}.spec-details{margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.spec-details h4{font-size:.8rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.commits-section{margin-bottom:16px}.commit-row{display:flex;align-items:center;gap:10px;padding:6px 0;flex-wrap:wrap}.commit-row.unassigned{padding:10px 12px;background:var(--bg-secondary);border-radius:6px;margin-bottom:8px;flex-direction:column;align-items:flex-start}.commit-hash{font-size:.8rem;color:var(--accent);background:rgba(125,211,252,.08);padding:1px 6px;border-radius:3px}.commit-message{font-size:.85rem;color:var(--text-primary);flex:1 1}.commit-date{font-size:.8rem;color:var(--text-muted);white-space:nowrap}.commit-files-inline{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.files-section{margin-bottom:16px}.file-list{display:flex;gap:6px;flex-wrap:wrap}.file-path{font-size:.75rem;color:var(--text-secondary);background:var(--bg-secondary);padding:3px 8px;border-radius:4px}.file-path.small{font-size:.7rem;padding:2px 6px}.related-section{margin-bottom:8px}.related-list{display:flex;gap:6px;flex-wrap:wrap}.related-tag{font-size:.75rem;color:var(--text-muted);background:var(--bg-secondary);padding:3px 8px;border-radius:4px}.unassigned-section{margin-top:32px}.empty-state{text-align:center;padding:48px 0;color:var(--text-muted);font-size:.95rem}