/* CzechLiga.Pro V34.1 — unified readable typography and footer geometry. */

/* One serious, neutral and highly readable local font stack across public pages.
   It uses platform fonts only, so there is no remote font request or layout shift. */
:root{
  --cz-font-public:Aptos,"Segoe UI Variable Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --cz-font-display:Aptos,"Segoe UI Variable Display","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
body:not(.admin-page),
body:not(.admin-page) button,
body:not(.admin-page) input,
body:not(.admin-page) select,
body:not(.admin-page) textarea{
  font-family:var(--cz-font-public)!important;
  font-synthesis:none;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
body:not(.admin-page) h1,
body:not(.admin-page) h2,
body:not(.admin-page) h3,
body:not(.admin-page) h4,
body:not(.admin-page) h5,
body:not(.admin-page) h6,
body:not(.admin-page) .site-logo,
body:not(.admin-page) .logo,
body:not(.admin-page) .brand,
body:not(.admin-page) .auth-tab,
body:not(.admin-page) .nav-link{
  font-family:var(--cz-font-display)!important;
  letter-spacing:0;
}
.radio-display,
.radio-spectrum,
.radio-waveform,
.radio-station-meta,
code,pre,kbd,samp{
  font-family:Consolas,"Cascadia Mono","Courier New",monospace!important;
}

/* Standard password visibility control: familiar outline eye, no black fill or autofill halo. */
body.auth-page .password-wrap{
  position:relative!important;
  display:block!important;
}
body.auth-page .password-wrap>input{
  padding-right:56px!important;
}
body.auth-page .password-eye,
body.auth-page .password-eye:hover,
body.auth-page .password-eye:active,
body.auth-page .password-eye:focus,
body.auth-page .password-wrap:has(>input:-webkit-autofill) .password-eye,
body.auth-page .password-wrap>input:-webkit-autofill~.password-eye,
body.auth-page .password-wrap>input:-webkit-autofill:hover~.password-eye,
body.auth-page .password-wrap>input:-webkit-autofill:focus~.password-eye{
  -webkit-appearance:none!important;
  appearance:none!important;
  position:absolute!important;
  top:50%!important;
  right:8px!important;
  transform:translateY(-50%)!important;
  display:grid!important;
  place-items:center!important;
  width:40px!important;
  min-width:40px!important;
  max-width:40px!important;
  height:40px!important;
  min-height:40px!important;
  max-height:40px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:10px!important;
  outline:0!important;
  background:transparent!important;
  color:rgba(224,231,241,.68)!important;
  box-shadow:none!important;
  -webkit-box-shadow:none!important;
  filter:none!important;
  text-shadow:none!important;
  line-height:0!important;
  z-index:6!important;
  cursor:pointer!important;
  -webkit-tap-highlight-color:transparent!important;
}
body.auth-page .password-eye:hover{
  color:#f6f8fb!important;
  background:rgba(255,255,255,.055)!important;
}
body.auth-page .password-eye:focus-visible{
  color:#fff!important;
  outline:1px solid rgba(181,202,226,.48)!important;
  outline-offset:1px!important;
}
body.auth-page .password-eye::before,
body.auth-page .password-eye::after,
body.auth-page .password-eye .eye-shape,
body.auth-page .password-eye .eye-pupil,
body.auth-page .password-eye .eye-slash{
  content:none!important;
  display:none!important;
}
body.auth-page .password-eye-icon{
  display:block!important;
  width:21px!important;
  height:21px!important;
  overflow:visible!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.75!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  filter:none!important;
  box-shadow:none!important;
}
body.auth-page .password-eye-icon .password-eye-pupil{
  fill:none!important;
  stroke:currentColor!important;
}
body.auth-page .password-eye-icon .password-eye-slash{
  opacity:1;
  transition:opacity .12s ease;
}
body.auth-page .password-eye.active .password-eye-icon .password-eye-slash{
  opacity:0;
}
body.auth-page input[type="password"]::-ms-reveal,
body.auth-page input[type="password"]::-ms-clear{
  display:none!important;
}
body.auth-page input::-webkit-credentials-auto-fill-button,
body.auth-page input::-webkit-contacts-auto-fill-button{
  visibility:hidden!important;
  display:none!important;
  pointer-events:none!important;
}

/* Cookie settings must be exactly the same kind of link as the legal neighbours. */
body.auth-page .auth-legal-links{
  display:grid!important;
  grid-template-columns:repeat(5,max-content)!important;
  grid-auto-flow:row!important;
  align-items:center!important;
  justify-content:center!important;
  justify-items:center!important;
  width:100%!important;
  max-width:100%!important;
  margin-inline:auto!important;
  gap:6px 10px!important;
}
body.auth-page .auth-legal-links>.legal-footer-copy{
  grid-column:1 / -1!important;
  grid-row:1!important;
  justify-self:center!important;
  width:auto!important;
  margin:0!important;
}
body.auth-page .auth-legal-links>a,
body.auth-page .auth-legal-links>button.cookie-settings-link,
body.auth-page .auth-legal-links>.cookie-settings-link{
  grid-row:2!important;
}
body.auth-page .auth-legal-links>.legal-footer-copy,
body.auth-page .auth-legal-links>a,
body.auth-page .auth-legal-links>button.cookie-settings-link,
body.auth-page .auth-legal-links>.cookie-settings-link{
  position:static!important;
  flex:0 0 auto!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  outline:0!important;
  background:none!important;
  background-color:transparent!important;
  color:rgba(174,184,199,.58)!important;
  font-family:inherit!important;
  font-size:.72rem!important;
  font-weight:600!important;
  font-style:normal!important;
  line-height:1.35!important;
  letter-spacing:.01em!important;
  text-align:center!important;
  text-decoration:none!important;
  text-transform:none!important;
  white-space:nowrap!important;
  opacity:1!important;
  box-shadow:none!important;
  filter:none!important;
  transform:none!important;
  cursor:pointer!important;
  vertical-align:baseline!important;
}
body.auth-page .auth-legal-links>.legal-footer-copy{
  cursor:default!important;
}
body.auth-page .auth-legal-links>a:hover,
body.auth-page .auth-legal-links>button.cookie-settings-link:hover,
body.auth-page .auth-legal-links>.cookie-settings-link:hover,
body.auth-page .auth-legal-links>a:focus-visible,
body.auth-page .auth-legal-links>button.cookie-settings-link:focus-visible,
body.auth-page .auth-legal-links>.cookie-settings-link:focus-visible{
  color:rgba(225,231,239,.84)!important;
  background:transparent!important;
  text-decoration:none!important;
  box-shadow:none!important;
  transform:none!important;
}

/* Keep ordinary footer cookie link equal to its neighbouring links as well. */
.legal-footer-links>button.cookie-settings-link,
.footer-links>button.cookie-settings-link{
  -webkit-appearance:none!important;
  appearance:none!important;
  display:inline!important;
  width:auto!important;
  min-width:0!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:inherit!important;
  font:inherit!important;
  line-height:inherit!important;
  letter-spacing:inherit!important;
  text-decoration:none!important;
  opacity:1!important;
  box-shadow:none!important;
  transform:none!important;
}

@media(max-width:560px){
  body.auth-page .auth-legal-links{
    grid-template-columns:repeat(5,max-content)!important;
    gap:5px 7px!important;
  }
  body.auth-page .auth-legal-links>.legal-footer-copy{
    font-size:.66rem!important;
  }
  body.auth-page .auth-legal-links>a,
  body.auth-page .auth-legal-links>button.cookie-settings-link,
  body.auth-page .auth-legal-links>.cookie-settings-link{
    font-size:.62rem!important;
    letter-spacing:0!important;
  }
}
@media(max-width:360px){
  body.auth-page .auth-legal-links{gap:5px 5px!important}
  body.auth-page .auth-legal-links>.legal-footer-copy{font-size:.62rem!important}
  body.auth-page .auth-legal-links>a,
  body.auth-page .auth-legal-links>button.cookie-settings-link,
  body.auth-page .auth-legal-links>.cookie-settings-link{font-size:.57rem!important}
}

/* Public tabs use one footer width and one centre line. FAQ no longer reserves an
   additional scrollbar gutter that made its footer appear shifted to the left. */
html.faq-document,
html.faq-document body.faq-page{
  scrollbar-gutter:auto!important;
}
:is(body.fixed-matches-page,body.faq-page,body.radio-page,body.security-page)>.legal-footer{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  width:min(1180px,calc(100% - 28px))!important;
  max-width:1180px!important;
  min-height:48px!important;
  height:48px!important;
  margin:0 auto!important;
  padding:0 12px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  align-content:center!important;
  gap:8px 16px!important;
  text-align:center!important;
  transform:none!important;
  translate:none!important;
  box-sizing:border-box!important;
}
:is(body.fixed-matches-page,body.faq-page,body.radio-page,body.security-page)>.legal-footer>.legal-footer-links{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:12px 16px!important;
  margin:0!important;
  padding:0!important;
  transform:none!important;
}
@media(max-width:620px){
  :is(body.fixed-matches-page,body.faq-page,body.radio-page,body.security-page)>.legal-footer{
    width:calc(100% - 20px)!important;
    height:auto!important;
    min-height:48px!important;
    padding:8px 10px!important;
    flex-wrap:wrap!important;
    gap:4px 12px!important;
  }
  :is(body.fixed-matches-page,body.faq-page,body.radio-page,body.security-page)>.legal-footer>.legal-footer-links{
    flex-wrap:wrap!important;
    gap:5px 12px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  body.auth-page .password-eye-icon .password-eye-slash{transition:none!important}
}


/* CzechLiga.Pro V34.2 — viewport-locked footer, Profile label and restrained typography. */
body:not(.admin-page),
body:not(.admin-page) button,
body:not(.admin-page) input,
body:not(.admin-page) select,
body:not(.admin-page) textarea{
  font-family:var(--cz-font-public)!important;
  font-variant-ligatures:common-ligatures;
  font-feature-settings:"kern" 1,"liga" 1;
}
body:not(.admin-page) h1,
body:not(.admin-page) h2,
body:not(.admin-page) h3,
body:not(.admin-page) h4,
body:not(.admin-page) h5,
body:not(.admin-page) h6,
body:not(.admin-page) .site-logo,
body:not(.admin-page) .logo,
body:not(.admin-page) .brand,
body:not(.admin-page) .nav-link{
  font-family:var(--cz-font-display)!important;
  font-style:normal!important;
}

/* The legal footer is centered against the viewport, not against a page-specific
   scroll container. Its horizontal coordinate therefore stays identical on
   Matches, FAQ, Radio and the remaining public pages. */
body:not(.admin-page) > .legal-footer{
  position:relative!important;
  left:50vw!important;
  right:auto!important;
  width:min(1180px,calc(100vw - 32px))!important;
  max-width:1180px!important;
  min-width:0!important;
  margin-left:0!important;
  margin-right:0!important;
  box-sizing:border-box!important;
  transform:translateX(-50%)!important;
  translate:none!important;
  scale:none!important;
  rotate:none!important;
  font-family:var(--cz-font-public)!important;
  font-size:12px!important;
  line-height:1.5!important;
  letter-spacing:0!important;
}
body:not(.admin-page) > .legal-footer > span,
body:not(.admin-page) > .legal-footer .legal-footer-links,
body:not(.admin-page) > .legal-footer .legal-footer-links > a,
body:not(.admin-page) > .legal-footer .legal-footer-links > button{
  font-family:inherit!important;
  font-size:inherit!important;
  line-height:inherit!important;
  letter-spacing:inherit!important;
}
body:not(.admin-page) > .legal-footer .legal-footer-links{
  align-items:center!important;
}
body:not(.admin-page) > .legal-footer .cookie-settings-link{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:inherit!important;
  font:inherit!important;
  opacity:1!important;
  transform:none!important;
  box-shadow:none!important;
}

/* The account button always has a stable, neutral label. The real username
   remains visible inside the opened account menu. */
:is(body.fixed-matches-page,body.faq-page,body.radio-page,body.security-page) .cz-account-name{
  font-family:var(--cz-font-public)!important;
  font-weight:650!important;
  letter-spacing:0!important;
}

@media(max-width:620px){
  body:not(.admin-page) > .legal-footer{
    width:calc(100vw - 20px)!important;
    font-size:11px!important;
  }
}


/* V34.4 — compact Profile icon spacing and a clear Purchased matches page link. */
@media(min-width:861px){
  :is(body.fixed-matches-page,body.faq-page,body.radio-page,body.security-page) .header-account-slot .cz-account-button{
    padding-left:8px!important;
    padding-right:12px!important;
    gap:7px!important;
  }
}
.cz-account-menu .cz-purchases-link{
  -webkit-appearance:none!important;
  appearance:none!important;
  display:flex!important;
  align-items:center!important;
  width:100%!important;
  min-height:42px!important;
  padding:0 12px!important;
  border:1px solid rgba(255,255,255,.12)!important;
  border-radius:10px!important;
  background:rgba(255,255,255,.095)!important;
  color:rgba(247,249,252,.94)!important;
  opacity:1!important;
  text-decoration:none!important;
  box-shadow:none!important;
}
.cz-account-menu .cz-purchases-link:hover,
.cz-account-menu .cz-purchases-link:focus-visible{
  border-color:rgba(157,199,234,.28)!important;
  background:rgba(91,142,184,.16)!important;
  color:#fff!important;
}


/* CzechLiga.Pro V35.6 — balanced Profile spacing and restrained logo sweep. */
@media(min-width:861px){
  :is(body.fixed-matches-page,body.faq-page,body.radio-page,body.security-page) .header-account-slot .cz-account-button{
    padding-left:5px!important;
    padding-right:10px!important;
    gap:6px!important;
  }
}

/* CzechLiga.Pro V35.8 — logo sweep/glow removed completely. */

/* CzechLiga.Pro V35.7 — tighter Profile button and unified account menu geometry. */
@media(min-width:861px){
  :is(body.fixed-matches-page,body.faq-page,body.radio-page,body.security-page) .header-account-slot .cz-account-button{
    padding-left:4px!important;
    padding-right:4px!important;
    gap:5px!important;
  }
}

/* Keep every row inside the Profile popover visually consistent. */
.cz-account-menu .cz-account-user,
.cz-account-menu .cz-account-action,
.cz-account-menu .cz-purchases-link,
.cz-account-menu .cz-account-toggle,
.cz-account-menu .cz-account-logout{
  box-sizing:border-box!important;
  min-height:46px!important;
  height:46px!important;
  font-family:var(--cz-font-public)!important;
  font-size:15px!important;
  font-weight:800!important;
  line-height:1!important;
  letter-spacing:0!important;
}
.cz-account-menu .cz-account-user{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 12px!important;
  margin:0 0 9px!important;
  text-align:center!important;
  color:rgba(247,249,252,.92)!important;
}
.cz-account-menu .cz-account-action,
.cz-account-menu .cz-purchases-link,
.cz-account-menu .cz-account-logout{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  padding:0 12px!important;
  margin:0 0 9px!important;
  border-radius:12px!important;
  text-align:center!important;
}
.cz-account-menu .cz-account-logout{
  margin-bottom:0!important;
}
.cz-account-menu .cz-account-toggle{
  display:grid!important;
  grid-template-columns:52px minmax(0,1fr) 52px!important;
  align-items:center!important;
  gap:8px!important;
  width:100%!important;
  padding:0 10px!important;
  margin:0 0 9px!important;
  border-radius:12px!important;
}
.cz-account-menu .cz-account-toggle::before{
  content:"";
  display:block;
  width:52px;
  height:1px;
}
.cz-account-menu .cz-account-toggle>span{
  min-width:0!important;
  color:#f5f8fc!important;
  opacity:1!important;
  font:inherit!important;
  text-align:center!important;
  white-space:nowrap!important;
}
.cz-account-menu .cz-switch{
  position:relative!important;
  width:52px!important;
  height:28px!important;
  display:inline-block!important;
  justify-self:end!important;
  flex:0 0 52px!important;
}
.cz-account-menu .cz-slider:before{
  width:22px!important;
  height:22px!important;
  left:3px!important;
  top:3px!important;
}
.cz-account-menu .cz-switch input:checked+.cz-slider:before{
  transform:translateX(24px)!important;
}
@media(max-width:420px){
  .cz-account-menu .cz-account-user,
  .cz-account-menu .cz-account-action,
  .cz-account-menu .cz-purchases-link,
  .cz-account-menu .cz-account-toggle,
  .cz-account-menu .cz-account-logout{
    font-size:14px!important;
  }
  .cz-account-menu .cz-account-toggle{
    grid-template-columns:48px minmax(0,1fr) 48px!important;
    gap:6px!important;
  }
  .cz-account-menu .cz-account-toggle::before,
  .cz-account-menu .cz-switch{
    width:48px!important;
    flex-basis:48px!important;
  }
}

/* CzechLiga.Pro V35.11 — nudge the notification label slightly right while keeping switch clearance. */
.cz-account-menu .cz-account-toggle{
  grid-template-columns:minmax(0,1fr) 52px!important;
  column-gap:12px!important;
  padding-left:16px!important;
  padding-right:10px!important;
}
.cz-account-menu .cz-account-toggle::before{
  content:none!important;
  display:none!important;
}
.cz-account-menu .cz-account-toggle>span{
  grid-column:1!important;
  justify-self:start!important;
  width:100%!important;
  min-width:0!important;
  text-align:left!important;
  white-space:nowrap!important;
  overflow:visible!important;
}
.cz-account-menu .cz-account-toggle .cz-switch{
  grid-column:2!important;
  justify-self:end!important;
}
@media(max-width:420px){
  .cz-account-menu .cz-account-toggle{
    grid-template-columns:minmax(0,1fr) 48px!important;
    column-gap:10px!important;
    padding-left:14px!important;
    padding-right:8px!important;
  }
}

/* CzechLiga.Pro V35.15 — move the Profile icon another 1px closer to the left edge. */
@media(min-width:861px){
  :is(body.fixed-matches-page,body.faq-page,body.radio-page,body.security-page) .header-account-slot .cz-account-button{
    padding-left:2px!important;
    padding-right:5px!important;
    padding-inline-start:2px!important;
    padding-inline-end:5px!important;
    justify-content:center!important;
    gap:5px!important;
  }
}
