:root{
    --ink:#17313B; --ink-soft:#4A6570;
    --paper:#EDF0EE; --surface:#FFFFFF;
    --rule:#C6CFCB; --rule-strong:#93A29D;
    --wall:#9E3323; --clear:#3E6B4F; --caution:#9A6B12; --focus:#1E6E8C;
    --measure:66ch;
  }
  *{box-sizing:border-box;}
  html{-webkit-text-size-adjust:100%;}
  body{
    margin:0; background:var(--paper); color:var(--ink);
    font-family:"Familjen Grotesk","Helvetica Neue",Arial,sans-serif;
    font-size:17px; line-height:1.5; font-variant-numeric:tabular-nums;
  }
  .wrap{max-width:1080px;margin:0 auto;padding:2.5rem 1.25rem 5rem;}

  .sitename{font-size:.95rem;font-weight:600;color:var(--ink-soft);margin:0 0 1.6rem;}
  .masthead{max-width:var(--measure);margin-bottom:2.5rem;}
  .masthead h1{font-size:clamp(1.9rem,4.6vw,2.9rem);line-height:1.08;font-weight:700;letter-spacing:-0.02em;margin:0 0 .6rem;}
  .masthead p{margin:0;color:var(--ink-soft);font-size:1.05rem;}

  .cols{display:grid;grid-template-columns:minmax(0,20.5rem) minmax(0,1fr);gap:2.5rem;align-items:start;}
  @media (max-width:860px){ .cols{grid-template-columns:1fr;gap:2rem;} }

  form{margin:0;}
  fieldset{border:0;padding:0;margin:0 0 1.75rem;}
  legend{font-weight:600;font-size:1rem;padding:0 0 .5rem;border-bottom:1px solid var(--rule-strong);width:100%;margin-bottom:.9rem;}
  .field{margin-bottom:1rem;}
  .field > label,.field .lab{display:block;font-size:.92rem;font-weight:500;margin-bottom:.3rem;}
  .hint{display:block;font-size:.82rem;color:var(--ink-soft);line-height:1.35;margin-top:.25rem;}

  input[type=number],select{
    font:inherit;font-variant-numeric:tabular-nums;color:var(--ink);
    background:var(--surface);border:1px solid var(--rule-strong);border-radius:2px;
    padding:.42rem .5rem;width:100%;min-width:0;
  }
  input[type=number]:focus-visible,select:focus-visible,button:focus-visible,input[type=checkbox]:focus-visible{
    outline:2px solid var(--focus);outline-offset:2px;
  }
  .pair{display:grid;grid-template-columns:1fr auto 1fr;gap:.35rem;align-items:center;}
  .pair .sep{color:var(--ink-soft);font-weight:600;}
  .trio{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;}

  .toggle{display:flex;border:1px solid var(--rule-strong);border-radius:2px;overflow:hidden;width:max-content;}
  .toggle button{font:inherit;font-size:.88rem;font-weight:500;background:var(--surface);color:var(--ink-soft);border:0;padding:.35rem .8rem;cursor:pointer;}
  .toggle button + button{border-left:1px solid var(--rule-strong);}
  .toggle button[aria-pressed=true]{background:var(--ink);color:var(--paper);}

  .check{display:flex;gap:.5rem;align-items:flex-start;font-size:.92rem;}
  .check input{margin-top:.25rem;}

  .cp-row{display:grid;grid-template-columns:1fr .8fr 1fr .9fr auto;gap:.35rem;margin-bottom:.5rem;align-items:center;}
  .cp-head{display:grid;grid-template-columns:1fr .8fr 1fr .9fr auto;gap:.35rem;font-size:.76rem;color:var(--ink-soft);margin-bottom:.25rem;}
  .cp-row select,.cp-row input{padding:.35rem .35rem;font-size:.9rem;}
  .linkbtn{font:inherit;font-size:.88rem;font-weight:500;background:none;border:0;padding:.2rem 0;color:var(--focus);text-decoration:underline;cursor:pointer;}
  .rm{font:inherit;line-height:1;background:var(--surface);border:1px solid var(--rule-strong);border-radius:2px;color:var(--ink-soft);padding:.3rem .45rem;cursor:pointer;}

  .result{background:var(--surface);border:1px solid var(--rule);padding:1.5rem 1.5rem 1.75rem;}
  @media (max-width:600px){ .result{padding:1.15rem 1rem 1.35rem;} }

  .verdict{font-size:1.12rem;font-weight:600;line-height:1.3;margin:0 0 1.35rem;max-width:38ch;}
  .verdict.clear{color:var(--clear);}
  .verdict.over,.verdict.checkpoint{color:var(--wall);}
  .verdict.tight,.verdict.unknown{color:var(--caution);}

  .figures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1.75rem;}
  @media (max-width:520px){ .figures{grid-template-columns:1fr 1fr;} }
  .fig .k{font-size:.82rem;color:var(--ink-soft);margin-bottom:.15rem;line-height:1.25;}
  .fig .v{font-size:1.85rem;font-weight:700;letter-spacing:-0.02em;line-height:1;}
  .fig .v.neg{color:var(--wall);}
  .fig .prov{font-size:.76rem;color:var(--ink-soft);margin-top:.35rem;line-height:1.3;}

  .tl{margin-bottom:1.5rem;}
  .tl svg{display:block;width:100%;height:auto;}
  .tl-cap{font-size:.82rem;color:var(--ink-soft);margin-top:.5rem;}

  table{width:100%;border-collapse:collapse;font-size:.93rem;margin-bottom:.4rem;}
  caption{text-align:left;font-weight:600;font-size:.95rem;padding-bottom:.5rem;}
  th,td{text-align:left;padding:.45rem .5rem .45rem 0;border-bottom:1px solid var(--rule);}
  th{font-weight:500;color:var(--ink-soft);font-size:.85rem;}
  td.num{font-variant-numeric:tabular-nums;}
  td.miss{color:var(--wall);font-weight:600;}
  td.ok{color:var(--clear);}

  .note{border-left:3px solid var(--rule-strong);padding:.15rem 0 .15rem .85rem;margin:1.25rem 0 0;font-size:.9rem;color:var(--ink-soft);max-width:62ch;}
  .note.flag{border-left-color:var(--caution);color:var(--ink);}

  .assumptions{margin-top:1.75rem;padding-top:1.25rem;border-top:1px solid var(--rule);}
  .assumptions h3{font-size:.95rem;font-weight:600;margin:0 0 .5rem;}
  .assumptions ul{margin:0;padding-left:1.1rem;font-size:.89rem;color:var(--ink-soft);}
  .assumptions li{margin-bottom:.2rem;}

  footer{max-width:var(--measure);margin-top:3rem;padding-top:1.25rem;border-top:1px solid var(--rule-strong);font-size:.88rem;color:var(--ink-soft);}
  footer p{margin:0 0 .6rem;}

/* ---- site chrome ---- */
.topnav{display:flex;flex-wrap:wrap;gap:1.1rem;align-items:baseline;margin-bottom:2.5rem;
  padding-bottom:.8rem;border-bottom:1px solid var(--rule-strong);font-size:.92rem;}
.topnav a{color:var(--ink-soft);text-decoration:none;}
.topnav a:hover,.topnav a:focus-visible{color:var(--ink);text-decoration:underline;}
.topnav .brand{font-weight:600;color:var(--ink);margin-right:auto;}
h1{font-size:clamp(1.8rem,4.2vw,2.6rem);line-height:1.1;letter-spacing:-0.02em;margin:0 0 .5rem;}
h2{font-size:1.25rem;margin:2.5rem 0 .9rem;padding-bottom:.4rem;border-bottom:1px solid var(--rule-strong);}
.lede{max-width:var(--measure);color:var(--ink-soft);margin:0 0 1.5rem;}
p{max-width:var(--measure);}
.meta{font-size:.87rem;color:var(--ink-soft);}
.racehead .meta{margin:.2rem 0;}

/* ---- fact table ---- */
table.facts{width:100%;border-collapse:collapse;margin-bottom:1rem;}
table.facts th{width:14rem;vertical-align:top;text-align:left;font-weight:500;color:var(--ink-soft);
  font-size:.9rem;padding:.75rem .9rem .75rem 0;border-bottom:1px solid var(--rule);}
table.facts td{vertical-align:top;padding:.75rem 0;border-bottom:1px solid var(--rule);}
@media (max-width:640px){
  table.facts,table.facts tbody,table.facts tr,table.facts th,table.facts td{display:block;width:auto;}
  table.facts th{border:0;padding-bottom:.1rem;}
  table.facts td{padding-top:0;}
}
.published{color:var(--ink);}
.missing{color:var(--wall);font-weight:600;}
.stated-none{color:var(--clear);font-weight:500;}
.detail,.searched,.conseq{display:block;font-size:.86rem;color:var(--ink-soft);margin-top:.35rem;max-width:60ch;}
.conseq{color:var(--caution);}
.searched{font-style:italic;}
a.src{font-size:.8rem;color:var(--focus);}
.sources{font-size:.88rem;padding-left:1.1rem;max-width:var(--measure);}
.sources li{margin-bottom:.45rem;word-break:break-word;}
.stalebanner{background:var(--wall);color:#fff;padding:.8rem 1rem;margin:0 0 1.5rem;max-width:none;font-weight:500;}

/* ---- race list ---- */
.racelist{list-style:none;padding:0;margin:0;}
.racelist li{padding:.9rem 0;border-bottom:1px solid var(--rule);}
.racelist a{font-size:1.08rem;font-weight:600;color:var(--ink);}
.racelist .meta{display:block;margin-top:.2rem;}

/* ---- race-page calculator ---- */
.calcbox{background:var(--surface);border:1px solid var(--rule);padding:1.35rem 1.5rem 1.5rem;margin-bottom:1rem;}
.calcbox h2{margin-top:0;border:0;padding:0;font-size:1.1rem;}
.calcbox.nocalc{border-left:3px solid var(--caution);}
.rc-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.85rem;margin-bottom:1.1rem;}
.rc-inputs label{font-size:.85rem;color:var(--ink-soft);display:block;}
.rc-inputs .u{font-size:.78rem;}
.rc-inputs input,.rc-inputs select{margin-top:.25rem;}
.rc-inputs .pair{display:flex;gap:.3rem;align-items:center;margin-top:.25rem;}
.rc-verdict{font-weight:600;margin:0 0 .5rem;}
.rc-verdict.clear{color:var(--clear);} .rc-verdict.over,.rc-verdict.checkpoint{color:var(--wall);}
.rc-verdict.tight,.rc-verdict.unknown{color:var(--caution);}
.rc-nums{margin:0 0 .5rem;font-size:1.02rem;}
.rc-note{font-size:.84rem;color:var(--ink-soft);margin:0;}
