@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Archivo:wght@400;500;600;700&family=Archivo+Narrow:wght@500;700&display=swap');

:root{
  --red:      #D6001C;
  --red-dark: #A3000F;
  --ink:      #14171A;
  --ink-2:    #23272B;
  --text:     #1a1a1a;
  --text-lo:  #5b5f63;
  --line:     #d9dcdf;
  --line-lo:  #ececee;
  --bg:       #e9eaec;
  --card:     #ffffff;
  --stripe:   #f4f5f6;
  --gold:     #b8860b;
  --gold-bg:  #fff8e6;
  --green:    #1a7a3c;
  --radius: 3px;
  --display: 'Oswald', sans-serif;
  --sans: 'Archivo', sans-serif;
  --narrow: 'Archivo Narrow', sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--bg); color:var(--text); font-family:var(--sans); line-height:1.45;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--display); margin:0;}

/* ---------- Password gate ---------- */
#gate{
  position:fixed; inset:0; z-index:500; background:var(--ink);
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:1.1rem; padding:2rem; text-align:center;
}
#gate h1{color:#fff; font-size:1.8rem; letter-spacing:0.02em;}
#gate p{color:#b7bcc1; max-width:34ch; margin:0; font-size:0.95rem; font-family:var(--sans);}
#gate form{display:flex; gap:0.6rem; flex-wrap:wrap; justify-content:center;}
#gate input[type=password]{
  background:#fff; border:2px solid #333; color:#111; padding:0.65rem 0.9rem;
  font-family:var(--sans); font-size:1rem; border-radius:var(--radius); min-width:220px;
}
#gate button{
  background:var(--red); color:#fff; border:none; padding:0.65rem 1.4rem;
  font-family:var(--display); font-weight:600; letter-spacing:0.03em; text-transform:uppercase;
  font-size:0.9rem; cursor:pointer; border-radius:var(--radius);
}
#gate button:hover{background:var(--red-dark);}
#gate .err{color:#ff8a80; font-size:0.85rem; min-height:1.2em;}
body.locked #site{display:none;}
body:not(.locked) #gate{display:none;}

/* ---------- Masthead ---------- */
.masthead{
  background:var(--ink); border-bottom:4px solid var(--red);
  display:flex; align-items:center; gap:0.9rem; padding:0.7rem 1.2rem; flex-wrap:wrap;
}
.masthead .wordmark{
  font-family:var(--display); font-weight:700; font-size:1.4rem; color:#fff; letter-spacing:0.01em;
  text-decoration:none; display:flex; align-items:baseline; gap:0.5rem;
}
.masthead .wordmark .tag{
  background:var(--red); color:#fff; font-size:0.62rem; font-weight:700; letter-spacing:0.06em;
  padding:0.18rem 0.4rem; border-radius:2px; font-family:var(--sans); vertical-align:middle;
}
.era-toggle{
  margin-left:auto; display:flex; align-items:center; gap:0.5rem; font-size:0.78rem; color:#cfd3d6; font-family:var(--sans);
}
.era-toggle label{display:flex; align-items:center; gap:0.45rem; cursor:pointer;}
.era-toggle input{accent-color:var(--red); width:0.95rem; height:0.95rem; cursor:pointer;}

/* ---------- Horizontal tab nav ---------- */
.subnav{
  background:#fff; border-bottom:1px solid var(--line); overflow-x:auto; white-space:nowrap;
  position:sticky; top:0; z-index:50;
}
.subnav .tabs{display:flex;}
.subnav a{
  font-family:var(--display); font-weight:500; font-size:0.82rem; text-transform:uppercase; letter-spacing:0.03em;
  color:var(--text-lo); text-decoration:none; padding:0.75rem 0.95rem; border-bottom:3px solid transparent;
  flex-shrink:0;
}
.subnav a:hover{color:var(--text); background:var(--line-lo);}
.subnav a.active{color:var(--ink); border-bottom-color:var(--red);}

/* ---------- Page shell ---------- */
.page{max-width:1180px; margin:0 auto; padding:1.4rem 1.1rem 3rem;}
.page-title{
  display:flex; align-items:baseline; gap:0.7rem; margin:0 0 1.1rem; padding-bottom:0.7rem; border-bottom:3px solid var(--ink);
}
.page-title h1{font-size:1.6rem; text-transform:uppercase; letter-spacing:0.01em;}
.page-title .sub{font-family:var(--sans); font-size:0.88rem; color:var(--text-lo);}
.era-note{
  background:var(--gold-bg); border:1px solid #ecd9a0; color:#6b5511; font-size:0.83rem;
  padding:0.6rem 0.9rem; border-radius:var(--radius); margin-bottom:1.2rem;
}

/* ---------- Cards ---------- */
.card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); margin-bottom:1.1rem;}
.card-head{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:0.65rem 0.9rem; border-bottom:2px solid var(--ink); background:var(--stripe);
}
.card-head h2, .card-head h3{font-size:0.95rem; text-transform:uppercase; letter-spacing:0.02em;}
.card-head .note{font-size:0.76rem; color:var(--text-lo); font-family:var(--sans);}
.card-body{padding:0.9rem;}

/* Plaque grid (record book) */
.plaque-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(250px,1fr)); gap:1rem;}
.plaque{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); border-top:4px solid var(--red); padding:0.9rem 1rem;}
.plaque .label{font-family:var(--display); font-size:0.68rem; font-weight:600; color:var(--red); text-transform:uppercase; letter-spacing:0.04em; margin-bottom:0.4rem;}
.plaque .headline{font-family:var(--display); font-weight:600; font-size:1.35rem; line-height:1.1; margin-bottom:0.25rem;}
.plaque .who{font-size:0.85rem; color:var(--text-lo); margin-bottom:0.3rem;}
.plaque .detail{font-size:0.76rem; color:var(--text-lo); border-top:1px solid var(--line-lo); padding-top:0.45rem; margin-top:0.45rem;}
.plaque .detail div{display:flex; justify-content:space-between; padding:0.08rem 0;}
.plaque .detail span:last-child{font-family:var(--narrow); font-weight:700; color:var(--text);}

/* Tables */
table{width:100%; border-collapse:collapse; font-size:0.86rem;}
table thead th{
  text-align:left; font-family:var(--display); font-weight:600; font-size:0.7rem; text-transform:uppercase;
  letter-spacing:0.03em; color:#fff; background:var(--ink); padding:0.5rem 0.65rem;
}
table tbody td{padding:0.48rem 0.65rem; border-bottom:1px solid var(--line-lo);}
table tbody tr:nth-child(even){background:var(--stripe);}
table tbody tr:hover{background:#fff3e0;}
tr.champ td{font-weight:700;}
tr.champ td:first-child::before{content:'★ '; color:var(--gold);}
.champ-tag{color:var(--red); font-weight:700; font-family:var(--narrow); font-size:0.78rem;}

.bar{height:6px; background:var(--line); position:relative; border-radius:3px; overflow:hidden; width:90px; display:inline-block; vertical-align:middle; margin-left:0.4rem;}
.bar span{position:absolute; left:0; top:0; bottom:0; background:var(--red);}

/* Controls */
select, .btn-row button{font-family:var(--sans);}
select{
  background:#fff; border:1px solid var(--line); color:var(--text); padding:0.4rem 0.6rem;
  border-radius:var(--radius); font-size:0.85rem;
}
.controls{margin-bottom:1rem; display:flex; gap:0.6rem; align-items:center; flex-wrap:wrap;}
.year-picker{display:flex; gap:0.35rem; flex-wrap:wrap; margin-bottom:1.1rem;}
.year-picker button{
  background:#fff; color:var(--text-lo); border:1px solid var(--line); padding:0.32rem 0.6rem;
  font-family:var(--narrow); font-weight:700; font-size:0.78rem; cursor:pointer; border-radius:var(--radius);
}
.year-picker button.active{background:var(--ink); color:#fff; border-color:var(--ink);}
.year-picker button:hover:not(.active){border-color:var(--red); color:var(--red);}

/* Manager gallery */
.mgr-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(240px,1fr)); gap:0.8rem;}
.mgr-card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:0.85rem 0.95rem; cursor:pointer;
}
.mgr-card:hover{border-color:var(--red);}
.mgr-card .name{font-family:var(--display); font-weight:600; font-size:1.05rem; margin-bottom:0.1rem;}
.mgr-card .span{font-family:var(--narrow); font-size:0.72rem; color:var(--text-lo); margin-bottom:0.5rem;}
.mgr-card .titles{color:var(--gold); font-size:0.78rem; font-weight:700; margin-bottom:0.4rem; min-height:1.1em;}
.mgr-card .rec{font-family:var(--narrow); font-weight:700; font-size:0.85rem;}
.mgr-card .pf{font-size:0.74rem; color:var(--text-lo); margin-top:0.15rem;}

.mgr-detail{background:var(--card); border:1px solid var(--line); border-left:4px solid var(--red); border-radius:var(--radius); padding:1rem 1.1rem; margin-top:1.1rem; display:none;}
.mgr-detail.open{display:block;}
.mgr-detail h3{font-size:1.15rem; margin:0 0 0.7rem;}
.mgr-detail p{font-size:0.85rem; color:var(--text-lo); margin:0 0 0.8rem;}

/* Franchise files / rename ledger */
.file-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:1rem;}
.file-card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:0.9rem 1rem;}
.file-card .file-title{font-family:var(--display); font-weight:600; font-size:1rem; text-transform:uppercase; color:var(--red); margin-bottom:0.15rem;}
.file-card .file-sub{font-size:0.78rem; color:var(--text-lo); margin-bottom:0.7rem;}
.file-row{display:flex; justify-content:space-between; align-items:baseline; gap:0.7rem; padding:0.4rem 0; border-bottom:1px solid var(--line-lo); font-size:0.86rem;}
.file-row:last-child{border-bottom:none;}
.file-row .fr-name{font-weight:600;}
.file-row .fr-detail{font-family:var(--narrow); font-size:0.78rem; color:var(--text-lo); text-align:right;}
.file-row .fr-badge{color:var(--red); font-size:0.7rem; margin-left:0.35rem; font-weight:700;}
.file-empty{color:var(--text-lo); font-size:0.85rem; font-style:italic;}

.rename-ledger{max-height:560px; overflow-y:auto; border:1px solid var(--line); border-radius:var(--radius); background:var(--card);}
.rename-row{display:flex; align-items:baseline; gap:0.7rem; padding:0.55rem 0.9rem; border-bottom:1px solid var(--line-lo); font-size:0.85rem;}
.rename-row:last-child{border-bottom:none;}
.rename-row .rn-year{font-family:var(--narrow); font-weight:700; font-size:0.75rem; color:var(--text-lo); min-width:3em;}
.rename-row .rn-manager{min-width:9em; font-weight:600;}
.rename-row .rn-change{color:var(--text-lo); flex:1;}
.rename-row .rn-change b{color:var(--text); font-weight:600; font-style:normal;}
.rename-row .rn-badge{font-size:0.7rem; white-space:nowrap; font-weight:700;}
.rename-row .rn-badge.forced{color:var(--red);}
.rename-row .rn-badge.voluntary{color:var(--text-lo); font-weight:400; font-style:italic;}

.improbable-list{display:flex; flex-direction:column; gap:0.6rem;}
.improbable-row{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:0.7rem 0.9rem; font-size:0.86rem;}
.improbable-row .ir-top{display:flex; justify-content:space-between; margin-bottom:0.15rem;}
.improbable-row .ir-name{font-family:var(--display); font-weight:600; font-size:1rem;}
.improbable-row .ir-year{font-family:var(--narrow); font-weight:700; font-size:0.78rem; color:var(--red);}
.improbable-row .ir-detail{color:var(--text-lo); font-size:0.8rem;}

/* Rule changes */
.rule-year-group{margin-bottom:1.3rem;}
.rule-year-group h4{font-family:var(--display); font-size:0.85rem; color:#fff; background:var(--ink); display:inline-block; padding:0.2rem 0.6rem; margin:0 0 0.5rem;}
.rule-row{display:flex; align-items:baseline; gap:0.7rem; padding:0.5rem 0.85rem; border-bottom:1px solid var(--line-lo); font-size:0.85rem; background:var(--card); border-left:1px solid var(--line); border-right:1px solid var(--line);}
.rule-year-group .rule-row:first-of-type{border-top:1px solid var(--line);}
.rule-row:last-child{border-bottom:1px solid var(--line);}
.rule-row .ru-cat{font-family:var(--narrow); font-weight:700; font-size:0.65rem; color:var(--red); min-width:5em; text-transform:uppercase;}
.rule-row .ru-rule{flex:1; font-weight:600;}
.rule-row .ru-vals{font-family:var(--narrow); font-weight:700; font-size:0.82rem; color:var(--text-lo); white-space:nowrap;}
.rule-row.equivalent{opacity:0.5;}
.rule-row .ru-note{font-size:0.7rem; font-style:italic; color:var(--text-lo); font-weight:400;}

/* Draft board */
.draft-board{display:grid; grid-template-columns:repeat(auto-fill, minmax(220px,1fr)); gap:0.55rem;}
.draft-pick{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:0.6rem 0.75rem;}
.draft-pick .pk-num{font-family:var(--narrow); font-weight:700; font-size:0.68rem; color:var(--red);}
.draft-pick .pk-player{font-family:var(--display); font-weight:600; font-size:1rem; margin:0.1rem 0;}
.draft-pick .pk-meta{font-size:0.75rem; color:var(--text-lo); display:flex; justify-content:space-between;}
.draft-pick .pk-pts{font-family:var(--narrow); font-weight:700; color:var(--text);}

/* All-play */
.allplay-note{background:var(--gold-bg); border-left:3px solid var(--gold); padding:0.7rem 0.9rem; margin-bottom:1.1rem; font-size:0.85rem; color:#6b5511; border-radius:var(--radius);}
.swing-tag{font-size:0.68rem; font-family:var(--narrow); font-weight:700;}
.swing-tag.out{color:var(--red);}
.swing-tag.in{color:var(--green);}
tr.swing-out td:first-child{color:var(--red);}
tr.swing-in td:first-child{color:var(--green);}

/* Season archive */
.season-summary{margin-bottom:1rem;}
.season-summary .champ-banner{font-family:var(--display); font-weight:600; font-size:1.1rem; background:var(--ink); color:#fff; padding:0.5rem 0.9rem; border-radius:var(--radius); display:inline-block;}

footer{text-align:center; padding:2rem 1.1rem; color:var(--text-lo); font-size:0.78rem; background:var(--ink);}
footer a{color:#cfd3d6;}

@media (max-width:640px){
  .page{padding:1.1rem 0.8rem 2.4rem;}
  .masthead{padding:0.6rem 0.8rem;}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;} *{transition:none !important;}
}

/* ================= v2 additions ================= */

/* Clickable rows / links */
.clickable{cursor:pointer;}
tr.clickable:hover td{background:#fff3e0;}
.linkish{color:var(--red); text-decoration:none; font-weight:600; cursor:pointer; background:none; border:none; padding:0; font:inherit;}
.linkish:hover{text-decoration:underline;}

/* Record cards with ranked lists */
.rec-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(340px,1fr)); gap:1rem;}
.rec-card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;}
.rec-card h3{font-size:0.82rem; text-transform:uppercase; letter-spacing:0.03em; color:#fff; background:var(--ink); padding:0.5rem 0.8rem;}
.rec-card .rec-note{font-size:0.72rem; color:var(--text-lo); padding:0.45rem 0.8rem 0; }
.rec-row{display:grid; grid-template-columns:1.6rem 1fr auto; gap:0.5rem; align-items:baseline; padding:0.5rem 0.8rem; border-bottom:1px solid var(--line-lo); font-size:0.84rem;}
.rec-row:last-child{border-bottom:none;}
.rec-row .rk{font-family:var(--narrow); font-weight:700; color:var(--text-lo);}
.rec-row.first .rk{color:var(--red);}
.rec-row .who{min-width:0;}
.rec-row .who b{display:block; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.rec-row .who span{font-size:0.74rem; color:var(--text-lo);}
.rec-row .val{font-family:var(--display); font-weight:600; font-size:1rem; white-space:nowrap;}
.rec-row.clickable:hover{background:#fff3e0;}

/* Badges */
.badge{display:inline-block; font-family:var(--narrow); font-weight:700; font-size:0.66rem; letter-spacing:0.02em;
  padding:0.08rem 0.35rem; border-radius:2px; vertical-align:middle; margin-left:0.3rem; text-transform:uppercase; white-space:nowrap;}
.b-confirmed{background:var(--green); color:#fff;}
.b-likely{background:#e7f1ea; color:var(--green); border:1px solid #b9d6c1;}
.b-early{background:#f3f0e4; color:#7a6a2c; border:1px solid #ddd0a4;}
.b-unverified{background:var(--gold-bg); color:#8a6d0b; border:1px solid #ecd9a0;}
.b-missing{background:#f1f1f2; color:var(--text-lo); border:1px dashed #c3c6c9;}
.b-edited{background:#e8eefc; color:#2c4fb5; border:1px solid #bccbf2;}
.b-traded{background:#fde8ea; color:var(--red-dark); border:1px solid #f3bcc3;}
.b-kind{background:#eceef0; color:#444;}
.b-forced{background:var(--red); color:#fff;}

/* Status banner */
.banner{padding:0.6rem 0.9rem; border-radius:var(--radius); font-size:0.83rem; margin-bottom:1rem; border:1px solid;}
.banner.ok{background:#eef7f1; border-color:#bfdcc8; color:#1d5a33;}
.banner.warn{background:var(--gold-bg); border-color:#ecd9a0; color:#6b5511;}
.banner.info{background:#eef2f8; border-color:#c9d4e6; color:#2f4466;}

/* Draft board */
.board-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius); background:var(--card);}
table.board{min-width:1100px; table-layout:fixed;}
table.board th{text-align:center; font-size:0.62rem; line-height:1.2; padding:0.45rem 0.25rem; white-space:normal;}
table.board th.rd{width:2.6rem;}
table.board td{vertical-align:top; padding:0.35rem 0.35rem; font-size:0.74rem; border-right:1px solid var(--line-lo); height:3.6rem;}
table.board td.rd{font-family:var(--narrow); font-weight:700; text-align:center; color:var(--text-lo); background:var(--stripe);}
table.board tbody tr:nth-child(even){background:transparent;}
.cell-player{font-weight:600; display:block; line-height:1.2;}
.cell-meta{color:var(--text-lo); font-size:0.66rem;}
td.k-confirmed{background:#e6f3ea !important;}
td.k-likely{background:#f1f8f3 !important;}
td.k-early{background:#f8f5ea !important;}
td.editable-cell{cursor:pointer;}
td.editable-cell:hover{outline:2px solid var(--red); outline-offset:-2px;}
.legend{display:flex; flex-wrap:wrap; gap:0.9rem; font-size:0.76rem; color:var(--text-lo); margin:0 0 0.8rem;}

/* Modal */
.modal-bg{position:fixed; inset:0; background:rgba(12,14,16,0.55); z-index:400; display:none; align-items:flex-start; justify-content:center; padding:4vh 1rem; overflow-y:auto;}
.modal-bg.open{display:flex;}
.modal{background:#fff; border-radius:var(--radius); width:min(880px, 100%); box-shadow:0 10px 40px rgba(0,0,0,0.35); border-top:4px solid var(--red);}
.modal-head{display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:0.8rem 1rem; border-bottom:1px solid var(--line);}
.modal-head h2{font-size:1.1rem; text-transform:uppercase;}
.modal-close{background:none; border:none; font-size:1.5rem; line-height:1; cursor:pointer; color:var(--text-lo);}
.modal-body{padding:1rem;}
.box-grid{display:grid; grid-template-columns:1fr 1fr; gap:1rem;}
.box-team h3{font-size:0.9rem; margin-bottom:0.2rem;}
.box-team .score{font-family:var(--display); font-size:1.8rem; font-weight:700;}
.box-team.won .score{color:var(--green);}
.box-team table td{padding:0.3rem 0.45rem; font-size:0.78rem;}
tr.bench td{color:var(--text-lo); font-style:italic;}
@media (max-width:640px){ .box-grid{grid-template-columns:1fr;} }

/* Forms */
.form-row{display:flex; flex-direction:column; gap:0.3rem; margin-bottom:0.8rem;}
.form-row label{font-size:0.78rem; font-weight:600;}
.form-row input, .form-row select, .form-row textarea{font-family:var(--sans); font-size:0.9rem; padding:0.5rem 0.6rem; border:1px solid var(--line); border-radius:var(--radius);}
.form-row input:focus, .form-row select:focus{outline:2px solid var(--red); outline-offset:0;}
.form-hint{font-size:0.74rem; color:var(--text-lo);}
.btn{background:var(--red); color:#fff; border:none; padding:0.5rem 1rem; font-family:var(--display); font-weight:600; text-transform:uppercase; font-size:0.82rem; letter-spacing:0.03em; border-radius:var(--radius); cursor:pointer;}
.btn:hover{background:var(--red-dark);}
.btn.secondary{background:#fff; color:var(--text); border:1px solid var(--line);}
.btn:disabled{opacity:0.5; cursor:not-allowed;}
.form-error{color:var(--red-dark); font-size:0.8rem; min-height:1.1em;}
.edit-btn{font-family:var(--narrow); font-weight:700; font-size:0.7rem; text-transform:uppercase; background:#fff; border:1px solid var(--line); color:var(--text-lo); border-radius:2px; padding:0.1rem 0.4rem; cursor:pointer; margin-left:0.35rem;}
.edit-btn:hover{border-color:var(--red); color:var(--red);}
.edit-btn:disabled{display:none;}

/* Person picker */
.chip-row{display:flex; flex-wrap:wrap; gap:0.35rem; margin-bottom:1rem;}
.chip{background:#fff; border:1px solid var(--line); border-radius:999px; padding:0.3rem 0.75rem; font-size:0.8rem; cursor:pointer; font-family:var(--sans);}
.chip.active{background:var(--ink); color:#fff; border-color:var(--ink);}
.chip:hover:not(.active){border-color:var(--red);}

/* Fraud alert numbers */
.fraud-pos{color:var(--red-dark); font-weight:700;}
.fraud-neg{color:var(--green); font-weight:700;}
.num{font-family:var(--narrow); font-weight:700; text-align:right; white-space:nowrap;}
td.num, th.num{text-align:right;}
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:1rem;}
@media (max-width:760px){ .two-col{grid-template-columns:1fr;} }
.muted{color:var(--text-lo);}
.small{font-size:0.78rem;}

/* ---------- PERV COIN (clicking Joe Lombardo's team) ----------
   A deliberately obnoxious turn-of-the-century popunder. Gold-on-black to
   match the Pervinators brand. z-index sits above the gate (500) because a
   real popup respects nothing. */
.perv-bg{position:fixed; inset:0; z-index:900; background:rgba(0,0,0,0.6); display:flex; align-items:center; justify-content:center; padding:1rem; animation:perv-in 0.18s ease-out;}
@keyframes perv-in{from{opacity:0;} to{opacity:1;}}
@keyframes perv-shake{0%,100%{transform:translate(0,0) rotate(0);}25%{transform:translate(-3px,1px) rotate(-0.4deg);}75%{transform:translate(3px,-1px) rotate(0.4deg);}}
.perv-win{
  width:min(560px,100%); max-height:92vh; overflow-y:auto; background:#0b0906;
  border:1px solid #7a5c14; box-shadow:0 0 0 1px #000, 0 18px 60px rgba(0,0,0,0.8);
  font-family:var(--sans); color:#f3e3b8; animation:perv-shake 0.5s ease-in-out;
}
.perv-chrome{
  display:flex; align-items:center; gap:0.5rem; padding:0.3rem 0.5rem;
  background:linear-gradient(#123a8f,#0a1f52); color:#fff; font:600 0.78rem/1.4 var(--sans); position:sticky; top:0;
}
.perv-chrome .perv-url{flex:1; background:#fff; color:#111; padding:0.1rem 0.4rem; font:400 0.72rem/1.5 monospace; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.perv-x{border:1px solid #fff; background:#c0c0c0; color:#000; width:20px; height:18px; font:700 0.7rem/1 var(--sans); cursor:pointer; flex:none;}
.perv-x:hover{background:#e04a4a; color:#fff;}
.perv-marquee{overflow:hidden; white-space:nowrap; background:#1b1408; border-bottom:1px solid #7a5c14; color:#e8c869; font:600 0.72rem/2 var(--narrow); letter-spacing:0.16em;}
.perv-marquee span{display:inline-block; padding-left:100%; animation:perv-scroll 11s linear infinite;}
@keyframes perv-scroll{to{transform:translateX(-100%);}}
.perv-body{padding:1.1rem 1.2rem 1.3rem; text-align:center; background:radial-gradient(120% 90% at 50% 0%,#1d1608 0%,#0b0906 70%);}
.perv-kicker{font:600 0.66rem/1.4 var(--narrow); letter-spacing:0.3em; color:#a98a3c;}
.perv-title{
  font-family:var(--display); font-size:clamp(2rem,9vw,2.9rem); line-height:0.95; letter-spacing:0.02em; margin:0.25rem 0 0.1rem;
  background:linear-gradient(#fdf0c0 8%,#d9a93a 42%,#8a6416 72%,#f4dd9a 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent; text-shadow:0 1px 0 rgba(0,0,0,0.4);
}
.perv-sub{font:500 0.72rem/1.5 var(--narrow); letter-spacing:0.28em; color:#c9a94e;}
.perv-tag{font:500 0.7rem/1.5 var(--narrow); letter-spacing:0.26em; color:#b9954a; margin-bottom:0.7rem;}
.perv-coin{width:150px; height:150px; margin:0.5rem auto 0.7rem; display:block; border-radius:50%;}
.perv-coin-img{width:150px; height:auto; margin:0.5rem auto 0.7rem; display:block;}
.perv-pitch{font-size:0.9rem; color:#e6d3a3; margin:0 auto 0.8rem; max-width:44ch;}
.perv-pitch b{color:#f7e3ac;}
.perv-ticker{display:flex; justify-content:center; gap:1.4rem; border-block:1px solid #4a3a12; padding:0.55rem 0; margin-bottom:0.85rem;}
.perv-ticker div{font:700 1.15rem/1.1 var(--display); color:#f0d489;}
.perv-ticker small{display:block; font:500 0.6rem/1.6 var(--narrow); letter-spacing:0.18em; color:#9a7e3c;}
.perv-down{color:#e2564b !important;}
.perv-list{list-style:none; margin:0 0 0.9rem; padding:0; text-align:left; display:grid; gap:0.28rem; max-width:23rem; margin-inline:auto;}
.perv-list li{font-size:0.8rem; color:#d8c69a;}
.perv-btn{
  display:block; width:100%; margin:0 auto 0.5rem; padding:0.75rem 1rem; cursor:pointer; border:1px solid #f0d489;
  background:linear-gradient(#e8c261,#a97c18); color:#241a05; font:700 1rem/1 var(--display); letter-spacing:0.06em; text-transform:uppercase;
}
.perv-btn:hover{background:linear-gradient(#f7dc9a,#c4922a);}
.perv-no{background:none; border:0; color:#8d7a4e; font-size:0.74rem; text-decoration:underline; cursor:pointer;}
.perv-fine{margin:0.8rem 0 0; font-size:0.62rem; line-height:1.5; color:#7b6a45;}

/* ---------- Rivalries: one line per manager ----------
   Each pairing is two rows sharing a rowspan'd Meetings cell, so the default
   even/odd striping would cut pairs in half. Stripe per pairing instead. */
table.riv-table tbody tr:nth-child(even){background:transparent;}
table.riv-table tbody tr.riv-alt td{background:var(--stripe);}
table.riv-table tbody tr:hover{background:transparent;}
table.riv-table tbody tr.riv-a td{border-bottom:0; padding-bottom:0.12rem;}
table.riv-table tbody tr.riv-b td{padding-top:0.12rem;}
table.riv-table tbody tr.riv-b td{border-bottom:1px solid var(--line);}
td.riv-name{white-space:nowrap;}
td.riv-name.me{font-weight:700;}
td.riv-name .bar{width:64px;}
td.riv-wins{font-family:var(--display); font-weight:600; font-size:1rem; color:var(--text-lo); width:4.5rem;}
td.riv-wins.lead{color:var(--red); font-weight:700;}
td.riv-pf{font-family:var(--narrow); color:var(--text-lo); width:6.5rem;}
td.riv-meet{vertical-align:middle; font-family:var(--display); font-weight:600; font-size:1.05rem; width:6rem; border-bottom:1px solid var(--line) !important;}
td.riv-meet small{display:block; font:500 0.62rem/1.4 var(--narrow); color:var(--text-lo); text-transform:uppercase; letter-spacing:0.06em;}
.perv-never{display:flex; align-items:center; justify-content:center; gap:0.4rem; margin:0.15rem 0 0.55rem; font-size:0.76rem; color:#b9a76e;}
.perv-never input{width:15px; height:15px; cursor:pointer; accent-color:#c8a24e;}
.perv-never span{cursor:pointer;}

/* ---------- Managers: active now, everyone else behind a fold ---------- */
.mgr-head{font-size:1rem; text-transform:uppercase; letter-spacing:0.03em; margin:0 0 0.7rem;}
.mgr-former{margin-top:1.4rem; border-top:1px solid var(--line); padding-top:0.9rem;}
.mgr-former > summary{
  font-family:var(--display); font-weight:600; font-size:1rem; text-transform:uppercase; letter-spacing:0.03em;
  cursor:pointer; list-style:none; display:flex; align-items:center; gap:0.45rem; color:var(--text-lo);
}
.mgr-former > summary::-webkit-details-marker{display:none;}
.mgr-former > summary::before{content:'\25B6'; font-size:0.7rem; transition:transform .12s; color:var(--red);}
.mgr-former[open] > summary::before{transform:rotate(90deg);}
.mgr-former > summary:hover{color:var(--text);}
.mgr-former .mgr-grid{margin-top:0.8rem;}
