.history-hero { min-height: 500px; }
.history-metrics { margin-top: -20px; }
.chart-panel, .years-panel { margin-bottom: 24px; }
.legend { display: flex; gap: 18px; color: var(--muted); font-size: 12px; }
.legend i { display: inline-block; width: 9px; height: 9px; margin-right: 7px; }
.chart-switch { display: flex; gap: 8px; flex-wrap: wrap; }
.chart-switch button.active { color: var(--green); border-color: var(--green); }
.chart-stage { display: grid; grid-template-columns: 45px 1fr; gap: 10px; }
.y-axis { height: 280px; padding-top: 24px; display: flex; flex-direction: column; justify-content: space-between; color: var(--muted); font: 10px ui-monospace, monospace; }
.history-chart { height: 280px; display: flex; align-items: end; gap: 2px; padding-top: 25px; border-bottom: 1px solid var(--line); overflow: hidden; }
.chart-column { flex: 1; min-width: 1px; height: 100%; display: flex; align-items: end; position: relative; }
.chart-bar { width: 100%; min-height: 1px; background: linear-gradient(to top, var(--violet), #7056bc); opacity: .9; }
.chart-bar.perfect { background: var(--green); }
.chart-column:hover .chart-bar { background: var(--green); }
.chart-column:hover::after { content: attr(data-tip); position: absolute; z-index: 5; bottom: calc(var(--bar-height) + 8px); left: 50%; transform: translateX(-50%); width: max-content; max-width: 210px; padding: 7px 9px; background: var(--ink); color: var(--bg); font: 10px ui-monospace, monospace; }
.chart-empty { margin: auto; color: var(--muted); font-size: 13px; }
.chart-axis { display: flex; justify-content: space-between; margin-top: 9px; color: var(--muted); font: 10px ui-monospace, monospace; }
.year-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 28px; background: var(--line); border: 1px solid var(--line); }
.year-card { background: #0b1410; padding: 20px; min-height: 165px; }
.year-card h3 { margin: 0 0 25px; font: 700 25px ui-monospace, monospace; }
.year-stat { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; border-top: 1px solid var(--line); font-size: 11px; }
.year-stat span { color: var(--muted); }
.year-card.milestone { border-top: 2px solid var(--green); }
@media(max-width:900px){.year-grid{grid-template-columns:repeat(2,1fr)}.history-chart,.y-axis{height:220px}}
@media(max-width:480px){.year-grid{grid-template-columns:1fr}.history-chart,.y-axis{height:180px}.legend{margin-top:8px}.chart-switch button{flex:1;padding:9px 8px}}
.indicator-note{margin:-.5rem 0 1.25rem;color:var(--muted);max-width:70ch}
.indicator-value{display:block;margin:.85rem 0 .35rem;font-size:1.65rem;color:var(--ink)}
.snapshot-chip{padding:.55rem .75rem;border:1px solid var(--line);border-radius:999px;color:var(--green);font:700 .7rem ui-monospace,monospace;letter-spacing:.04em}
.ranking-table-wrap{overflow:auto;border:1px solid var(--line)}
.ranking-table{width:100%;border-collapse:collapse;font-size:.78rem;white-space:nowrap}
.ranking-table th{padding:.7rem .8rem;text-align:left;color:var(--muted);font:600 .65rem ui-monospace,monospace;text-transform:uppercase;letter-spacing:.06em;background:#0a0d0b}
.ranking-table td{padding:.72rem .8rem;border-top:1px solid var(--line)}
.ranking-table tbody tr{cursor:pointer;background:#0b1410;transition:background .15s ease}
.ranking-table tbody tr:hover{background:#14231a}
.ranking-table td:first-child,.ranking-table td:nth-child(3){color:var(--green)}
.contract-badge{display:block;width:max-content;margin-top:.35rem;padding:.2rem .35rem;border:1px solid var(--green);border-radius:.25rem;color:var(--green);font:700 .55rem ui-monospace,monospace;letter-spacing:.04em}
.formula-note{margin:1rem 0 0;color:var(--muted);font-size:.75rem;line-height:1.5}
.methodology-panel{margin-bottom:24px}
.methodology-formula{margin:24px 0;padding:16px;border-left:2px solid var(--green);background:#0b1410;color:var(--ink);font:700 .82rem/1.55 ui-monospace,monospace}
.score-total{display:grid;gap:4px;min-width:120px;text-align:right}
.score-total span{color:var(--muted);font:700 .62rem ui-monospace,monospace;text-transform:uppercase;letter-spacing:.08em}
.score-total strong{color:var(--green);font:700 2rem ui-monospace,monospace}
.methodology-subhead{display:grid;grid-template-columns:1fr auto;align-items:end;gap:4px 18px;margin:28px 0 12px}
.methodology-subhead h3{margin:0;font-size:1.05rem}
.methodology-subhead strong{grid-row:1/3;grid-column:2;color:var(--green);font:700 1.7rem ui-monospace,monospace}
.methodology-subhead span{color:var(--muted);font-size:.68rem}
.score-method-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border:1px solid var(--line);background:var(--line)}
.score-method-grid article{min-width:0;padding:18px;background:#0b1410}
.score-method-grid span{color:var(--muted);font:700 .65rem ui-monospace,monospace;text-transform:uppercase;letter-spacing:.06em}
.score-method-grid strong{display:block;margin:14px 0 10px;color:var(--green);font:700 1.7rem ui-monospace,monospace}
.score-method-grid p,.methodology-footnote{margin:0;color:var(--muted);font-size:.72rem;line-height:1.55}
.methodology-footnote{margin-top:18px}
.protocol-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem}
.protocol-card{padding:1.25rem;border:1px solid var(--line);background:#0b1410}
.protocol-card.concentrated{border-top:3px solid #ff8066}
.protocol-card.distributed{border-top:3px solid var(--green)}
.protocol-title{display:flex;justify-content:space-between;gap:1rem;align-items:start;margin-bottom:1.1rem}
.protocol-title h3{margin:0;font-size:1.35rem}
.protocol-title span{font:700 .62rem ui-monospace,monospace;color:var(--muted);letter-spacing:.05em}
.protocol-card.concentrated .protocol-title span{color:#ff8066}
.protocol-card.distributed .protocol-title span{color:var(--green)}
.protocol-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.protocol-stats>div{display:grid;gap:.3rem;padding:.75rem;background:#0d1711}
.protocol-stats small{color:var(--muted);font-size:.65rem}
.protocol-stats b{font-size:.85rem}
.protocol-alert{margin-top:1rem;padding:.75rem;border-left:2px solid #ff8066;background:#24120f;color:#ffb4a5;font-size:.74rem;line-height:1.5}
.protocol-action{margin:1rem 0 0;color:var(--text);font-size:.8rem;line-height:1.55}
@media(max-width:900px){.protocol-grid{grid-template-columns:1fr}.protocol-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.score-method-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.score-method-grid{grid-template-columns:1fr}.score-total{text-align:left}}

/* Unified validator explorer shell */
.app-shell{display:flex;min-height:100vh}
.workspace{min-width:0;flex:1}
.workspace main{width:min(1180px,calc(100% - 48px))}
.topbar-left{display:flex;align-items:center;gap:12px}
.sidebar-toggle{display:none;width:36px;height:36px;padding:0;background:transparent;color:var(--ink);border-color:var(--line);font-size:17px}
.validator-sidebar{position:sticky;top:0;z-index:30;display:flex;flex:0 0 340px;flex-direction:column;height:100vh;border-right:1px solid var(--line);background:#090f0c}
.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px;border-bottom:1px solid var(--line)}
.sidebar-head>div{display:grid;gap:5px}
.sidebar-head strong{font-size:1rem}
.sidebar-kicker{color:var(--green);font:700 .62rem ui-monospace,monospace;letter-spacing:.12em}
.sidebar-close{display:none;width:34px;height:34px;padding:0;background:transparent;color:var(--muted);border-color:var(--line);font-size:1.25rem}
.sidebar-search,.sidebar-sort{display:grid;gap:7px;padding:14px 18px 0;color:var(--muted);font:700 .62rem ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}
.sidebar-search input,.sidebar-sort select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:0;background:#101814;color:var(--ink);font:500 .78rem ui-monospace,monospace;text-transform:none;letter-spacing:0}
.sidebar-search input:focus,.sidebar-sort select:focus{outline:1px solid var(--green);border-color:var(--green)}
.sidebar-meta{padding:14px 18px 9px;color:var(--muted);font:600 .65rem ui-monospace,monospace}
.validator-list{min-height:0;flex:1;overflow-y:auto;padding:0 10px 14px;scrollbar-color:var(--line) transparent}
.validator-item{display:grid;width:100%;grid-template-columns:34px minmax(0,1fr) 40px;gap:9px;align-items:center;padding:11px 9px;border:0;border-bottom:1px solid #17221c;background:transparent;color:var(--ink);text-align:left}
.validator-item:hover{background:#101b15}
.validator-item.active{background:#14271c;box-shadow:inset 2px 0 var(--green)}
.validator-item.loading{opacity:.55}
.validator-rank,.validator-score{color:var(--green);font:700 .68rem ui-monospace,monospace}
.validator-score{text-align:right}
.validator-item-main{display:grid;min-width:0;gap:5px}
.validator-item-main strong{overflow:hidden;text-overflow:ellipsis;font:700 .7rem ui-monospace,monospace;white-space:nowrap}
.validator-item-main small{overflow:hidden;color:var(--muted);font-size:.61rem;text-overflow:ellipsis;white-space:nowrap}
.validator-empty{padding:20px 10px;color:var(--muted);font-size:.75rem;line-height:1.5}
.sidebar-foot{padding:13px 18px;border-top:1px solid var(--line);color:var(--muted);font-size:.65rem}
.sidebar-foot code{color:var(--green)}
.sidebar-overlay{display:none}
.identity-coverage{display:block;margin:10px 0 4px;color:var(--muted);font-size:.67rem;line-height:1.4}
footer a{color:inherit}

@media(max-width:1100px){
  .validator-sidebar{position:fixed;left:0;transform:translateX(-102%);width:min(360px,88vw);transition:transform .22s ease;box-shadow:24px 0 60px rgba(0,0,0,.4)}
  .sidebar-open .validator-sidebar{transform:translateX(0)}
  .sidebar-close,.sidebar-toggle{display:block}
  .sidebar-overlay{position:fixed;inset:0;z-index:25;border:0;background:rgba(2,7,5,.72);opacity:0;pointer-events:none;transition:opacity .22s ease}
  .sidebar-open .sidebar-overlay{display:block;opacity:1;pointer-events:auto}
  .sidebar-open{overflow:hidden}
  .workspace main{width:min(1180px,92vw)}
}

@media(max-width:560px){
  .network{display:none}
  .workspace main{width:min(94vw,1180px)}
  .history-hero{padding-top:48px}
}

/* Compact neutral light interface */
:root{--ink:#18211c;--muted:#647069;--bg:#f4f6f4;--panel:#fff;--line:#dce3de;--green:#18794e;--violet:#7357b8;--blue:#2479a8;--danger:#b6432f;color-scheme:light}
body{background:#f4f6f4;color:var(--ink)}
.workspace{background:#f4f6f4}
.workspace main{width:min(1240px,calc(100% - 40px));padding:22px 0 8px}
.topbar{height:60px;padding:0 24px;background:rgba(255,255,255,.94);border-color:var(--line);box-shadow:0 1px 8px rgba(24,33,28,.04)}
.brand{color:var(--ink)}
.brand-mark{border-color:var(--green);color:var(--green);background:#eef8f2}
.network{color:var(--muted)}
.pulse{background:var(--green);box-shadow:none}
.sidebar-toggle{color:var(--ink);background:#fff}

.validator-sidebar{flex-basis:320px;background:#fff;border-color:var(--line);box-shadow:1px 0 8px rgba(24,33,28,.03)}
.sidebar-head{padding:18px;border-color:var(--line)}
.sidebar-kicker,.validator-rank,.validator-score{color:var(--green)}
.sidebar-search,.sidebar-sort{padding:12px 14px 0;color:var(--muted)}
.sidebar-search input,.sidebar-sort select{padding:10px 11px;border-color:var(--line);border-radius:8px;background:#f8faf8;color:var(--ink)}
.sidebar-meta{padding:12px 14px 8px}
.validator-list{padding:0 8px 12px;scrollbar-color:#cbd5ce transparent}
.validator-item{padding:10px 8px;color:var(--ink);border-color:#edf0ee;border-radius:7px}
.validator-item:hover{background:#f3f7f4}
.validator-item.active{background:#e9f5ee;box-shadow:inset 3px 0 var(--green)}
.validator-item-main small,.sidebar-foot{color:var(--muted)}
.sidebar-foot{border-color:var(--line);background:#fafbfa}

.validator-summary{display:grid;grid-template-columns:minmax(280px,.9fr) 1.6fr;gap:24px;align-items:center;margin-bottom:18px;padding:24px 26px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 6px 20px rgba(24,33,28,.04)}
.validator-heading{min-width:0}
.validator-heading .eyebrow{margin-bottom:9px}
.validator-heading h1{overflow:hidden;margin:0;color:var(--ink);font:700 clamp(1.35rem,2.4vw,2rem)/1.2 ui-monospace,monospace;letter-spacing:-.04em;text-overflow:ellipsis;white-space:nowrap}
.identity-coverage{margin:8px 0 0;color:var(--muted)}
.summary-facts{display:grid;grid-template-columns:repeat(3,minmax(125px,1fr)) auto;align-items:stretch;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.summary-facts article{display:grid;align-content:center;gap:6px;min-width:0;padding:13px 15px;border-right:1px solid var(--line)}
.summary-facts span{color:var(--muted);font-size:.66rem;text-transform:uppercase;letter-spacing:.06em}
.summary-facts b{overflow:hidden;font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}
.summary-facts a{display:grid;place-items:center;padding:12px 15px;background:#eef8f2;color:var(--green);font-size:.75rem;text-decoration:none;white-space:nowrap}

.workspace main>section{margin-bottom:18px}
.panel{padding:24px;border-color:var(--line);border-radius:12px;background:#fff;box-shadow:0 3px 14px rgba(24,33,28,.035)}
.history-metrics{margin-top:0;margin-bottom:18px;gap:10px;border:0}
.metrics article{padding:18px 20px;border:1px solid var(--line)!important;border-radius:10px;background:#fff}
.metrics strong{margin:12px 0 8px;color:var(--ink);font-size:clamp(1.7rem,3vw,2.5rem)}
.section-head h2,.panel h2{font-size:clamp(1.35rem,2.2vw,1.8rem)}
.eyebrow{margin-bottom:10px;color:var(--green)}
.indicator-note{margin:10px 0 18px;color:var(--muted)}
.snapshot-chip{border-color:#b9d9c6;background:#eef8f2;color:var(--green)}

.year-grid{margin-top:18px;border-color:var(--line);background:var(--line)}
.year-card{min-height:130px;padding:17px;background:#fff}
.year-card h3{margin-bottom:18px;color:var(--ink);font-size:1.05rem}
.year-stat{border-color:var(--line)}
.indicator-value{font-size:1.4rem}
.ranking-table-wrap{border-color:var(--line);border-radius:9px}
.ranking-table th{background:#f4f7f5;color:#59655e}
.ranking-table td{border-color:#e7ece8}
.ranking-table tbody tr{background:#fff}
.ranking-table tbody tr:nth-child(even){background:#fafbfa}
.ranking-table tbody tr:hover{background:#eef7f1}
.contract-badge{border-color:#94c9aa;background:#eef8f2;color:var(--green)}
.formula-note,.methodology-footnote{color:var(--muted)}

.methodology-formula{margin:18px 0;padding:13px 15px;border-color:var(--green);background:#f2f8f4;color:var(--ink)}
.score-method-grid{border-color:var(--line);background:var(--line)}
.score-method-grid article{padding:16px;background:#fff}
.score-method-grid strong,.score-total strong,.methodology-subhead strong{color:var(--green)}
.protocol-card{border-color:var(--line);border-radius:9px;background:#fff}
.protocol-stats{border-color:var(--line);background:var(--line)}
.protocol-stats>div{background:#f8faf8}
.protocol-alert{background:#fff1ed;color:#99422f}
.protocol-action{color:var(--ink)}

.notice{margin:18px 0 14px;background:#eef6fa;color:#52646d}
.epoch-card,.skeleton{min-height:250px;border-color:var(--line);border-radius:9px;background:#fff}
.track{background:#e6ebe7}
.epoch-meta{border-color:var(--line)}
.chart-stage,.history-chart{border-color:var(--line)}
.chart-empty,.chart-axis,.y-axis{color:var(--muted)}
button.secondary{background:#fff;color:var(--ink);border-color:var(--line);border-radius:7px}
.chart-switch button.active{background:#eef8f2;color:var(--green);border-color:#94c9aa}
footer{border-color:var(--line);background:#fff;color:var(--muted)}

@media(max-width:1100px){
  .validator-sidebar{background:#fff}
  .workspace main{width:min(1240px,94vw)}
}
@media(max-width:920px){
  .validator-summary{grid-template-columns:1fr;gap:16px}
  .summary-facts{grid-template-columns:repeat(3,1fr)}
  .summary-facts a{grid-column:1/-1;border-top:1px solid var(--line)}
}
@media(max-width:640px){
  .workspace main{padding-top:14px}
  .validator-summary{padding:18px}
  .summary-facts{grid-template-columns:1fr}
  .summary-facts article{border-right:0;border-bottom:1px solid var(--line)}
  .summary-facts a{grid-column:auto}
  .panel{padding:18px}
}
