:root{
  --bg:#0d1117; --panel:#161b22; --line:#26303d; --ink:#e6edf3; --mut:#8b97a6;
  --accent:#3fb950; --bad:#f0883e; --worst:#f85149; --best:#3fb950; --blue:#58a6ff;
  --head:#1f2733;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif}
.wrap{max-width:1040px;margin:0 auto;padding:0 20px}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}

header{background:linear-gradient(160deg,#11202e,#0d1117);border-bottom:1px solid var(--line);padding:42px 0 30px}
header h1{margin:0 0 8px;font-size:30px;letter-spacing:-.4px}
.sub{margin:0;color:var(--mut);max-width:760px}
.updated{margin:14px 0 0;font-size:13px;color:var(--mut)}

main{padding:26px 0 60px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:26px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.card .big{font-size:30px;font-weight:700;letter-spacing:-.5px}
.card .lbl{color:var(--mut);font-size:13px;margin-top:2px}

.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px 22px 26px;margin:20px 0}
.panel h2{margin:0 0 6px;font-size:20px}
.lede{color:var(--mut);margin:0 0 16px;font-size:14.5px}
.toggle{display:inline-flex;align-items:center;gap:6px;color:var(--mut);font-size:13px;margin-left:8px;cursor:pointer}

.corr-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;align-items:center}
.corr-stats .stat{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:10px 0}
.corr-stats .stat:last-child{border:0}
.corr-stats .v{font-weight:700;font-variant-numeric:tabular-nums}
.chart-box{position:relative;height:300px}
.chart-box.wide{height:320px}

.table-scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
th,td{text-align:right;padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
th:first-child,td:first-child{text-align:left}
th{position:sticky;top:0;background:var(--head);color:var(--mut);font-weight:600;cursor:pointer;user-select:none}
th.sorted::after{content:" \25BE";color:var(--blue)}
th.asc.sorted::after{content:" \25B4"}
tbody tr:hover{background:#1b2230}
td.rate{font-weight:600}
.rank{color:var(--mut);width:30px}
.flag{color:var(--bad);font-size:12px}
tr.best td.rate{color:var(--best)}
tr.worst td.rate{color:var(--worst)}
.pill{display:inline-block;padding:1px 7px;border-radius:20px;font-size:12px;background:#1f2733;color:var(--mut)}

.role-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin:0 0 20px}
.role-cards .card{background:#1b2430}
.mut{color:var(--mut)}

.tabs{display:flex;gap:8px;margin-bottom:14px}
.tabs button{background:#1f2733;color:var(--mut);border:1px solid var(--line);border-radius:8px;padding:6px 14px;cursor:pointer;font-size:14px}
.tabs button.active{background:var(--blue);color:#04121f;border-color:var(--blue);font-weight:600}

footer{border-top:1px solid var(--line);padding:24px 0 50px;color:var(--mut);font-size:13px}
footer p{margin:6px 0}

/* slim mode for iframe embedding: hide hero + footer, tighten spacing */
html.embed body{background:transparent}
html.embed header,html.embed footer{display:none}
html.embed main{padding:6px 0 18px}
html.embed .wrap{padding:0 12px}

@media(max-width:720px){
  .corr-grid{grid-template-columns:1fr}
  header h1{font-size:24px}
  .card .big{font-size:24px}
}
