@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&family=Raleway:wght@500;600;700;800&display=swap";:root{--font-primary:"Raleway", sans-serif;--font-secondary:"IBM Plex Sans", sans-serif;--font-mono:"IBM Plex Mono", monospace}*{box-sizing:border-box}html,body{color:#e9e9e9;min-height:100%;font:400 16px/1.45 var(--font-secondary);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 12% -10%,#1f1f1f 0%,#121212 42%,#090909 100%);margin:0}#root{min-height:100vh}h1,h2,h3,h4{font-family:var(--font-primary);margin:0}button,input,select{color:inherit}.login-overlay{z-index:9999;background:#0a0a0a;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.login-modal{background:#141414;border:1px solid #252525;border-radius:14px;flex-direction:column;gap:1rem;width:340px;padding:2.5rem 2rem 2rem;display:flex}.login-logo{max-width:140px;height:auto;margin:0 auto .25rem}.login-modal h2{text-align:center;color:#e8e8e8;margin:0;font-size:1.3rem;font-weight:600}.login-modal input{appearance:none;color:#e8e8e8;background:#0d0d0d;border:1px solid #2f2f2f;border-radius:8px;outline:none;padding:.7rem .85rem;font-size:.92rem;transition:border-color .15s}.login-modal input:focus{border-color:#555}.login-modal button{appearance:none;color:#111;font:600 .92rem/1 var(--font-secondary);cursor:pointer;background:#fafafa;border:none;border-radius:8px;padding:.72rem;transition:background .15s}.login-modal button:hover{background:#e0e0e0}.login-error{color:#f87171;text-align:center;margin:0;font-size:.82rem}.shell{grid-template-columns:290px 1fr;min-height:100vh;display:grid}.sidebar{background:linear-gradient(165deg,#0a0a0a 0%,#111 44%,#161616 100%);border-right:1px solid #252525;flex-direction:column;gap:2rem;height:100vh;padding:2rem 1.25rem 1.5rem;display:flex;position:sticky;top:0}.brand-block h1{letter-spacing:.03em;margin:0;font-size:2.3rem;line-height:1}.brand-logo{max-width:180px;height:auto}.kicker{font:600 .73rem/1 var(--font-secondary);text-transform:uppercase;letter-spacing:.18em;color:#bdbdbd;margin:0 0 .55rem}.sub{color:#a9a9a9;max-width:25ch;margin-top:.8rem;font-size:.92rem}.nav{gap:.35rem;display:grid}.nav-item{appearance:none;color:#9a9a9a;font:500 .84rem/1.2 var(--font-secondary);letter-spacing:.01em;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.62rem .75rem;transition:color .15s,background-color .15s;position:relative}.nav-item:hover{color:#e0e0e0;background:#ffffff0d}.nav-item.active{color:#fff;background:#ffffff14;font-weight:600}.nav-item.active:before{content:"";background:#fff;border-radius:0 3px 3px 0;width:3px;height:60%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.main-panel{color:#ececec;background:radial-gradient(circle at 60% -20%,#1a1a1a 0%,#0d0d0d 45%,#080808 100%);padding:1.7rem 1.7rem 2.3rem}.view{gap:1rem;display:grid}.view-header{background:linear-gradient(#171717 0%,#111 100%);border:1px solid #2f2f2f;border-radius:14px;padding:1.2rem}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font:600 .72rem/1 var(--font-secondary);color:#9a9a9a;margin:0}.view-header h2{letter-spacing:.01em;margin:.6rem 0 .3rem;font-size:clamp(1.32rem,2.5vw,1.9rem)}.lede{color:#b8b8b8;max-width:74ch;margin:0}.search-bar{grid-template-columns:1fr auto;gap:.55rem;display:grid}.search-bar input,.search-bar button,.filter-row select,.simulator input[type=range]{font-family:var(--font-secondary)}.search-bar input,.filter-row select{background:#121212;border:1px solid #343434;border-radius:10px;padding:.75rem .82rem;font-size:.93rem}.search-bar button{color:#111;cursor:pointer;background:#ececec;border:1px solid #f0f0f0;border-radius:10px;padding:.75rem 1.05rem;font-weight:600}.typeahead-wrap{position:relative}.typeahead-wrap input{box-sizing:border-box;width:100%}.typeahead-list{z-index:100;background:#1a1a1a;border:1px solid #383838;border-radius:10px;max-height:280px;margin:.25rem 0 0;padding:0;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.typeahead-list li{cursor:pointer;justify-content:space-between;align-items:center;padding:.55rem .82rem;font-size:.9rem;display:flex}.typeahead-list li:hover,.typeahead-active{background:#272727}.typeahead-name{color:#f0f0f0}.typeahead-meta{align-items:center;gap:.35rem;display:flex}.typeahead-flagged .typeahead-name{color:#fecaca}.typeahead-flag-pill{font:700 .64rem/1 var(--font-secondary);text-transform:uppercase;letter-spacing:.08em;color:#fecaca;background:#3f1b1f;border:1px solid #7f1d1d;border-radius:999px;padding:.16rem .36rem}.typeahead-ticker{font:600 .72rem/1 var(--font-secondary);color:#8eb4f0;background:#1e2a3a;border-radius:4px;padding:.15rem .4rem}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.sortable-th:hover{color:#f0f0f0}.metric-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.7rem;display:grid}.metric-card{background:#141414;border:1px solid #2f2f2f;border-radius:12px;padding:.88rem}.metric-card-danger{border-color:#7f1d1d;box-shadow:inset 0 0 0 1px #7f1d1d59}.metric-card p{color:#979797;font:500 .8rem/1.2 var(--font-secondary);text-transform:uppercase;letter-spacing:.09em;margin:0}.metric-card h3{margin:.5rem 0 0;font-size:1.2rem}.danger-text{color:#fca5a5}.status-alert{font:700 .68rem/1 var(--font-secondary);text-transform:uppercase;letter-spacing:.09em;color:#fecaca;background:#3f1b1f;border:1px solid #7f1d1d;border-radius:999px;margin-top:.45rem;padding:.22rem .45rem;display:inline-block}.two-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.panel-card{background:#141414;border:1px solid #2f2f2f;border-radius:12px;padding:.95rem}.panel-card h4{letter-spacing:.01em;margin:0 0 .7rem;font-size:1rem}.bar-row{grid-template-columns:minmax(0,1fr) auto;gap:.2rem .8rem;margin-bottom:.62rem;display:grid}.bar-row span{font-size:.9rem}.bar-row strong{font:700 .84rem/1 var(--font-secondary)}.bar-track{background:#222;border-radius:999px;grid-column:1/-1;height:9px;overflow:hidden}.bar-fill{border-radius:inherit;background:linear-gradient(90deg,#d7d7d7 0%,#f3f3f3 100%);height:100%}.split-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.micro-title{color:#9d9d9d;text-transform:uppercase;letter-spacing:.12em;font:600 .69rem/1 var(--font-secondary);margin:0 0 .48rem}.list-row{border-top:1px dashed #353535;justify-content:space-between;margin:0;padding:.45rem 0;font-size:.9rem;display:flex}.lineage-table,.data-table,.mini-table{border-collapse:collapse;width:100%;font:500 .84rem/1.35 var(--font-secondary)}.lineage-table th,.lineage-table td,.data-table th,.data-table td,.mini-table th,.mini-table td{text-align:left;border-top:1px solid #2d2d2d;padding:.5rem .35rem}.lineage-table th,.data-table th,.mini-table th{text-transform:uppercase;letter-spacing:.1em;color:#9a9a9a;font-size:.72rem}.heat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.heatmap{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}.heat-cell{background:linear-gradient(170deg, color-mix(in srgb, #151515 calc(100% - var(--intensity)), #d6d6d6 var(--intensity)) 0%, color-mix(in srgb, #101010 calc(100% - var(--intensity)), #f2f2f2 var(--intensity)) 100%);border:1px solid #2f2f2f;border-radius:10px;flex-direction:column;gap:.4rem;min-height:78px;padding:.66rem;display:flex}.heat-cell span{color:#c5c5c5;font-size:.82rem}.heat-cell strong{color:#fff;font-size:1.1rem}.heat-cell.heat-dark span{color:#222}.heat-cell.heat-dark strong{color:#111}.heatmap-clickable{cursor:pointer;transition:border-color .15s}.heatmap-clickable:hover{border-color:#555}.expand-hint{color:#666;margin-left:.5rem;font-size:.68rem;font-weight:400}.heatmap-overlay{z-index:900;background:#000000bf;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.heatmap-modal{background:#141414;border:1px solid #2f2f2f;border-radius:14px;width:min(92vw,960px);max-height:85vh;padding:1.6rem 2rem;overflow-y:auto}.heatmap-modal-header{justify-content:space-between;align-items:center;margin-bottom:1.2rem;display:flex}.heatmap-modal-header h3{margin:0;font-size:1.2rem}.close-btn{color:#aaa;cursor:pointer;background:0 0;border:1px solid #444;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.4rem;display:flex}.close-btn:hover{color:#fff;border-color:#888}.heatmap-expanded{grid-template-columns:repeat(4,minmax(0,1fr))}.heat-usd{color:#888;margin-top:-.15rem;font-size:.72rem}.heat-cell.heat-dark .heat-usd{color:#444}.clo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;display:grid}.deal-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.status-pill{font:700 .69rem/1 var(--font-secondary);text-transform:uppercase;letter-spacing:.09em;border:1px solid #4a4a4a;border-radius:999px;padding:.35rem .58rem}.status-pill.pass{background:#1d1d1d}.status-pill.watch{background:#262626;border-color:#a2a2a2}.status-pill.alert{color:#fff;background:#161616;border-color:#161616}.deal-meta{color:#a2a2a2;margin:0 0 .7rem;font-size:.82rem}.row-alert{background:#242424}.simulator{gap:.72rem;display:grid}.simulator label{font:600 .85rem/1.3 var(--font-secondary)}.sim-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;display:grid}.sim-grid p{border:1px solid #303030;border-radius:10px;gap:.25rem;margin:0;padding:.65rem;display:grid}.sim-grid span{color:#9c9c9c;font:500 .74rem/1.3 var(--font-secondary);text-transform:uppercase;letter-spacing:.07em}.sim-grid strong{font:700 .92rem/1.2 var(--font-secondary)}.animate-in{animation:.48s both reveal}.stagger-1{animation-delay:80ms}.loading-msg{color:#999;font:500 .88rem/1.4 var(--font-secondary);margin:0;animation:1.2s ease-in-out infinite pulse}.error-msg{color:#e09090;font:500 .88rem/1.4 var(--font-secondary);background:#dc6e6e0f;border:1px solid #dc6e6e40;border-radius:8px;margin:0;padding:.6rem .8rem}.empty-state{text-align:center;background:#ffffff05;border:1px dashed #3a3a3a;border-radius:14px;padding:2.5rem 1.5rem}.empty-state h3{color:#cfcfcf;margin:0 0 .5rem;font-size:1.15rem}.empty-state p{color:#888;margin:0;max-width:45ch;margin-inline:auto;font-size:.9rem}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes reveal{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (width<=1120px){.shell{grid-template-columns:1fr}.sidebar{border-bottom:1px solid #2a2a2a;border-right:0;height:auto;position:relative}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.clo-grid,.sim-grid,.split-list,.two-col,.heat-grid,.filter-row{grid-template-columns:1fr}}.dir-tag{font:700 .68rem/1 var(--font-secondary);text-transform:uppercase;letter-spacing:.06em;border-radius:4px;padding:.2rem .38rem;display:inline-block}.dir-tag.long{color:#8cd4a0;background:#64c8821f;border:1px solid #64c88240}.dir-tag.short{color:#e09090;background:#dc6e6e1f;border:1px solid #dc6e6e40}.metric-tag{font:500 .72rem/1 var(--font-secondary);color:#b0b0b0;background:#ffffff0d;border:1px solid #3a3a3a;border-radius:4px;margin-top:.35rem;padding:.18rem .4rem;display:inline-block}.pnl-pos{color:#8cd4a0}.pnl-neg{color:#e09090}.table-scroll{overflow-x:auto}.bar-split{grid-column:1/-1;gap:.3rem;display:flex}.bar-split .bar-track{flex:1}.bar-long{background:linear-gradient(90deg,#7ec89a 0%,#a0dab2 100%)}.bar-short{background:linear-gradient(90deg,#d47878 0%,#e8a0a0 100%)}.filter-row{grid-template-columns:repeat(6,minmax(0,1fr));gap:.5rem;display:grid}.er-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:.8rem;display:grid}.er-card{flex-direction:column;gap:.5rem;display:flex}.er-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.er-header h4{margin:0}.er-subtitle{color:#8a8a8a;font:500 .8rem/1.2 var(--font-secondary);margin:0}.er-aliases{flex-direction:column;gap:.35rem;display:flex}.er-alias-row{border-top:1px solid #2a2a2a;grid-template-columns:1fr auto auto;align-items:center;gap:.5rem;padding:.4rem 0;font-size:.85rem;display:grid}.er-alias-name{color:#d0d0d0}.er-method{font:600 .66rem/1 var(--font-secondary);text-transform:uppercase;letter-spacing:.06em;color:#a0a0a0;border:1px solid #3a3a3a;border-radius:4px;padding:.15rem .35rem}.er-method.exact_name{color:#90c8e0;border-color:#64b4dc4d}.er-method.fuzzy{color:#d4c07a;border-color:#dcb4504d}.er-method.manual{color:#c0a0e0;border-color:#b478dc4d}.er-confidence{font:700 .82rem/1 var(--font-secondary);color:#e0e0e0;text-align:right;min-width:32px}.reserve-bars{flex-direction:column;gap:.55rem;display:flex}.reserve-bar-row{grid-template-columns:180px 1fr 50px 120px;align-items:center;gap:.6rem;font-size:.88rem;display:grid}.reserve-label{color:silver;font-size:.84rem}.reserve-pct{text-align:right;color:#aaa;font:600 .82rem/1 var(--font-secondary)}.reserve-mv{text-align:right;font:700 .84rem/1 var(--font-secondary)}@media (width<=700px){.main-panel{padding:1rem .8rem 1.6rem}.search-bar,.metric-grid{grid-template-columns:1fr}.lineage-table,.data-table,.mini-table{font-size:.77rem}.lineage-drawer{width:100%}}.lineage-overlay{z-index:1000;background:#0000008c;justify-content:flex-end;display:flex;position:fixed;inset:0}.lineage-drawer{background:#161616;border-left:1px solid #2d2d2d;flex-direction:column;width:min(560px,90vw);height:100vh;display:flex;overflow:hidden;box-shadow:-8px 0 32px #0006}.lineage-drawer-header{border-bottom:1px solid #2d2d2d;flex-shrink:0;justify-content:space-between;align-items:flex-start;padding:1.4rem 1.5rem 1rem;display:flex}.lineage-drawer-header h3{font:600 1.1rem/1.3 var(--font-primary);margin:.2rem 0 0}.lineage-target-value{font:700 1.6rem/1 var(--font-secondary);color:#00e5c8;margin:.5rem 0 0}.lineage-close{color:#aaa;cursor:pointer;background:0 0;border:1px solid #3a3a3a;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:1.4rem;transition:background .15s,color .15s;display:flex}.lineage-close:hover{color:#fff;background:#2a2a2a}.lineage-drawer-body{flex:1;padding:1.2rem 1.5rem;overflow-y:auto}.lineage-empty{color:#888;text-align:center;padding:2rem 0;font-size:.9rem}.lineage-chain{flex-direction:column;gap:0;display:flex}.lineage-step{gap:.8rem;display:flex;position:relative}.lineage-step-connector{flex-direction:column;flex-shrink:0;align-items:center;width:2rem;display:flex}.lineage-step-number{color:#000;width:1.6rem;height:1.6rem;font:700 .72rem/1.6rem var(--font-secondary);text-align:center;z-index:1;background:#00e5c8;border-radius:50%;flex-shrink:0}.lineage-step.warning .lineage-step-number{background:#f5a623}.lineage-step.override .lineage-step-number{background:#ff6b6b}.lineage-step-line{background:#2d2d2d;flex:1;width:2px;min-height:1rem}.lineage-step-content{background:#1c1c1c;border:1px solid #2d2d2d;border-radius:8px;flex:1;margin-bottom:.6rem;padding:.8rem 1rem;transition:border-color .15s}.lineage-step-content:hover{border-color:#3a3a3a}.lineage-step-header{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.6rem;display:flex}.lineage-type-badge{font:700 .65rem/1.4 var(--font-secondary);text-transform:uppercase;letter-spacing:.06em;color:#8eb4f0;background:#2a3040;border-radius:3px;padding:.15rem .5rem;display:inline-block}.lineage-type-badge.direct-map,.lineage-type-badge.extraction{color:#6bc98a;background:#1e3a2a}.lineage-type-badge.calculation{color:#b08ef0;background:#2a2040}.lineage-type-badge.model-valuation{color:#d08ef0;background:#3a2040}.lineage-type-badge.override{color:#f08e8e;background:#3a2020}.lineage-type-badge.entity-resolution{color:#8eb4f0;background:#2a3040}.lineage-step-system{font:600 .82rem/1 var(--font-secondary);color:#e0e0e0}.lineage-system-type{font:500 .7rem/1 var(--font-secondary);color:#888;background:#222;border-radius:3px;padding:.1rem .35rem}.lineage-step-details{flex-direction:column;gap:.25rem;display:flex}.lineage-step-details p{gap:.4rem;margin:0;font-size:.8rem;line-height:1.4;display:flex}.lineage-detail-label{color:#777;text-transform:uppercase;letter-spacing:.06em;flex-shrink:0;min-width:7.5rem;font-size:.72rem}.lineage-detail-value{color:#ccc;word-break:break-word}.lineage-detail-value strong{color:#fff}.lineage-override-row .lineage-detail-value{color:#ff6b6b}.lineage-step-footer{border-top:1px solid #252525;flex-wrap:wrap;gap:.4rem;margin-top:.5rem;padding-top:.4rem;display:flex}.lineage-quality{font:600 .65rem/1.4 var(--font-secondary);text-transform:uppercase;letter-spacing:.05em;border-radius:3px;padding:.1rem .4rem;display:inline-block}.lineage-quality.clean{color:#6bc98a;background:#1a3024}.lineage-quality.warning{color:#f5a623;background:#3a2d1a}.lineage-quality.stale{color:#f07b5e;background:#3a201a}.lineage-quality.override{color:#ff6b6b;background:#3a1a1a}.lineage-quality.review{color:#f5a623;background:#3a2d1a}.lineage-stale,.lineage-vendor,.lineage-format,.lineage-freq{font:500 .65rem/1.4 var(--font-secondary);color:#999;background:#222;border-radius:3px;padding:.1rem .35rem}.lineage-drawer-footer{border-top:1px solid #2d2d2d;flex-shrink:0;padding:.8rem 1.5rem}.lineage-drawer-footer p{font:500 .72rem/1.4 var(--font-secondary);color:#555;text-transform:uppercase;letter-spacing:.06em;margin:0}.lineage-clickable{cursor:pointer;transition:background .15s;position:relative;color:#00e5c8!important}.lineage-clickable:after{content:"⟵";opacity:.4;margin-left:.3rem;font-size:.6rem;transition:opacity .15s}.lineage-clickable:hover{background:#00e5c80f}.lineage-clickable:hover:after{opacity:1}.lineage-row-clickable{cursor:pointer;transition:background .15s}.lineage-row-clickable:hover{background:#00e5c80f}.lineage-system-badge{color:#8eb4f0;font:600 .72rem/1.4 var(--font-secondary);background:#1e2a3a;border-radius:3px;padding:.1rem .35rem;display:inline-block}.lineage-file-cell{text-overflow:ellipsis;white-space:nowrap;color:#999;max-width:14rem;font-size:.75rem;overflow:hidden}.demo-banner{z-index:9999;color:#fff;text-align:center;font:700 .78rem/1 var(--font-secondary);letter-spacing:.12em;text-transform:uppercase;pointer-events:none;background:#b91c1c;padding:.5rem 1rem;position:fixed;bottom:0;left:0;right:0}
