/* App navigation: region → country → competition, shared with the mobile picker. */
.ob-app { --p-crest-surface:#c3cbd8; }
:root[data-theme=light] .ob-app { --p-crest-surface:#e7ebf2; }
@media(min-width:1024px) { :root { --p-app-sidebar-width:248px; } }
@media(min-width:1280px) { :root { --p-app-sidebar-width:272px; } }
@media(min-width:1600px) { :root { --p-app-sidebar-width:288px; } }
.ob-app #sidebar .sb-scroll { display:flex; flex-direction:column; overflow:hidden; }
.ob-app #sbNav { flex:none; margin-bottom:12px; }
.ob-app #sbNav .sb-item { font-weight:500; }
.ob-app #sbTorneos { display:flex; flex:1; flex-direction:column; min-height:0; margin:0; }
.ln-heading { margin:4px 8px 10px; color:var(--p-emphasis); font-size:12px; line-height:18px; font-weight:500; letter-spacing:0; text-transform:none; }
.ln-search { display:flex; align-items:center; gap:8px; margin:0 4px 10px; padding:0 10px; border:1px solid var(--p-border); border-radius:10px; background:var(--p-bg); }
.ln-search:focus-within { outline:2px solid var(--p-focus); outline-offset:2px; }
.ln-search svg { flex:none; color:var(--p-text-muted); }
.ln-search input { width:100%; min-width:0; height:42px; border:0; outline:0; background:transparent; color:var(--p-text); font:inherit; font-size:13px; }
.ln-search input::-webkit-search-cancel-button { -webkit-appearance:none; }
.ln-search .ln-clear { flex:none; width:28px; height:32px; border:0; border-radius:6px; background:transparent; color:var(--p-text-muted); cursor:pointer; font-size:20px; }
.ln-clear[hidden] { display:none; }
.ln-results { min-height:0; overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; padding:2px 4px 12px; scroll-padding:6px; }
.ln-results:focus-visible { outline:2px solid var(--p-focus); outline-offset:-2px; }
.ln-results .ln-group { margin:4px 0; border:0; padding:0; background:transparent; }
.ln-group>summary { list-style:none; display:flex; align-items:center; gap:8px; min-height:42px; padding:8px 10px; border-radius:8px; cursor:pointer; color:var(--p-text-muted); font:500 13px/20px var(--p-font-body); text-transform:none; letter-spacing:0; }
.ln-group>summary::-webkit-details-marker { display:none; }
.ln-group>summary:hover,.ln-item:hover { background:var(--p-surface-hover); }
.ln-group>summary>span:first-child { flex:1; }
.ln-subheading { padding:12px 8px 4px; color:var(--p-emphasis); font-size:12px; font-weight:500; line-height:18px; }
.ln-chevron { flex:none; color:var(--p-text-muted); transition:transform .15s; }
.ln-group[open]>summary>.ln-chevron { transform:rotate(90deg); }
.ln-children { margin:0 0 8px 12px; padding-left:10px; border-left:1px solid var(--p-border); }
#sidebar .ln-children { border-left:0; }
.ln-country>summary { color:var(--p-text); font-size:13px; font-weight:500; line-height:20px; text-transform:none; letter-spacing:0; }
.ln-country>.ln-children { margin-left:10px; padding-left:8px; }
.ln-row { display:flex; align-items:center; min-width:0; border-radius:8px; }
.ob-app .ln-item.sb-liga { display:flex; flex:1; min-width:0; align-items:center; gap:9px; min-height:42px; padding:8px; border:0; border-radius:8px; color:var(--p-text); text-decoration:none; font:400 13px/18px var(--p-font-body); }
.ln-item img { width:20px; height:20px; flex:none; object-fit:contain; }
.ln-item .ln-label { flex:1; min-width:0; overflow-wrap:anywhere; }
.ln-item small { display:block; margin-top:2px; color:var(--p-text-muted); font-size:max(11px, var(--p-font-size-min, 0px)); font-weight:400; }
.ob-app .ln-item[aria-current=page],.ob-app .ln-item.on { background:var(--p-surface-selected,var(--accent-dim)); color:var(--p-text); box-shadow:none; }
.ln-fav { flex:none; display:grid; place-items:center; width:30px; height:34px; padding:0; border:0; border-radius:8px; background:transparent; color:var(--p-text-muted); cursor:pointer; font-size:19px; }
.ln-fav[aria-pressed=true] { color:var(--p-highlight); }
.ln-fav:hover { background:var(--p-surface-hover); }
.ln-results :is(a,button,summary):focus-visible { outline:2px solid var(--p-focus); outline-offset:-2px; }
.ln-status,.ln-empty { margin:6px 8px 10px; color:var(--p-text-muted); font-size:12px; line-height:1.6; }
.ln-empty strong { display:block; margin-bottom:4px; color:var(--p-text); }
.ln-section-label { margin:20px 10px 6px; color:var(--p-emphasis); font-size:12px; font-weight:500; text-transform:none; letter-spacing:0; }
#leagueModal { display:none; position:fixed; inset:0; background:var(--p-overlay); }
#leagueModal.open,#leagueModal[data-closing] { display:block; }
.ln-panel { position:absolute; top:8vh; left:0; right:0; margin-inline:auto; transform:none; width:min(520px,calc(100% - 24px)); height:82vh; display:flex; flex-direction:column; background:var(--p-surface); border:1px solid var(--p-border); border-radius:18px; overflow:hidden; }
.ln-panel-head { display:flex; align-items:center; justify-content:space-between; padding:14px 16px 8px; flex:none; }
.ln-panel-head h2 { margin:0; font-size:18px; }
.ln-panel .ln-search { margin:4px 16px 12px; }
.ln-panel .ln-results { flex:1; padding-inline:16px; }
.ob-app .ln-panel .ln-item.sb-liga { min-height:48px; font-size:14px; }
.ln-panel .ln-fav { width:44px; height:44px; }
.ln-panel .ln-clear { width:36px; height:40px; }
.ln-panel .ln-group>summary { min-height:48px; }
.ln-panel-foot { flex:none; padding:10px 16px max(12px,env(safe-area-inset-bottom)); border-top:1px solid var(--p-border); font-size:12px; color:var(--p-text-muted); }
.ln-panel-foot a { color:var(--p-text-muted); text-underline-offset:3px; }
.ln-panel input { font-size:16px; height:46px; }
/* Compact entrance to the competition sheet, using the same surfaces as the cards. */
.ob-app #selTorneoBtn { min-height:56px; height:auto; gap:12px; padding:8px 12px; border:1px solid var(--p-border-control); border-radius:16px; background:linear-gradient(110deg,var(--p-brand-soft),transparent 80%),var(--p-surface); color:var(--p-text); box-shadow:none; text-align:left; transition:border-color 180ms ease,background-color 180ms ease; }
.ob-app #selTorneoBtn .ln-launcher-icon { flex:none; display:grid; place-items:center; width:32px; height:32px; border-radius:10px; background:var(--p-brand-soft); color:var(--p-icon-accent); }
.ob-app #selTorneoBtn .ln-launcher-copy { display:grid; min-width:0; gap:2px; }
.ob-app #selTorneoBtn .ln-launcher-title { font:500 14px/18px var(--p-font-body); letter-spacing:0; color:var(--p-text); }
.ob-app #selTorneoBtn .ln-launcher-hint { font:400 12px/16px var(--p-font-body); letter-spacing:0; color:var(--p-text-muted); }
.ob-app #selTorneoBtn .flecha-sel { width:28px; height:28px; border-radius:50%; background:var(--p-surface-raised); color:var(--p-emphasis); }
.ob-app #selTorneoBtn .flecha-sel svg { transition:transform 180ms ease; }
.ob-app #selTorneoBtn:is(:hover,[aria-expanded=true]) { border-color:var(--p-emphasis); }
.ob-app #selTorneoBtn[aria-expanded=true] .flecha-sel svg { transform:rotate(180deg); }
.ob-app #selTorneoBtn:focus-visible { outline:2px solid var(--p-focus); outline-offset:3px; }
@media(max-width:1023px) {
  #leagueModal { --p-motion-enter:320ms; --p-motion-exit:220ms; }
  #leagueModal .ln-panel { top:auto; bottom:var(--p-search-bottom,0px); left:0; right:0; width:auto; transform:none; height:min(86dvh,var(--p-search-height,calc(100dvh - 72px))); max-height:calc(100dvh - 16px); border-radius:20px 20px 0 0; }
  #leagueModal.open .ln-panel { animation:league-sheet-in var(--p-motion-enter) cubic-bezier(.22,1,.36,1) both; }
  #leagueModal[data-closing] .ln-panel { animation:league-sheet-out var(--p-motion-exit) ease-in both; }
  .ob-app #selectWrap { position:sticky; top:var(--p-app-header-height,64px); z-index:30; padding:8px 0; background:var(--p-bg); }
  .ob-app #vistaHome #selectWrap { margin-bottom:16px; }
  .ob-app #secTorneos { display:none; }
}
@keyframes league-sheet-in { from { transform:translateY(100%); } to { transform:translateY(0); } }
@keyframes league-sheet-out { from { transform:translateY(0); } to { transform:translateY(100%); } }
.ob-app main.wrap > .p-site-footer { margin-top:32px; padding:24px 0; border-top:1px solid var(--p-border); background:transparent; color:var(--p-text-muted); text-align:left; font:400 13px/1.6 var(--p-font-body); }
.p-site-footer .p-footer-main { display:grid; grid-template-columns:minmax(126px,1fr) minmax(260px,2fr) auto; align-items:start; gap:24px; }
.p-site-footer .p-footer-brand { display:inline-flex; align-items:center; justify-self:start; min-height:44px; border-radius:6px; }
.p-site-footer .cuotario-logo { width:126px; }
.p-site-footer .p-footer-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:0; }
.p-site-footer .p-footer-group h2 { margin:0 0 8px; color:var(--p-text); font:600 14px/1.5 var(--p-font-body); letter-spacing:0; }
.p-site-footer .p-footer-group ul { list-style:none; margin:0; padding:0; }
.p-site-footer .p-footer-group li { margin:0; padding:0; }
.p-site-footer .p-footer-links a { display:flex; align-items:center; min-height:44px; padding:7px 0; color:var(--p-text-muted); font-size:13px; font-weight:400; text-decoration:none; text-underline-offset:4px; }
.p-site-footer .p-footer-links a:hover { color:var(--p-text); text-decoration:underline; }
.p-site-footer .p-footer-support { display:flex; align-items:center; gap:10px; min-height:48px; padding:10px 12px; border:1px solid var(--p-border); border-radius:12px; background:var(--p-surface); color:var(--p-text); font-size:13px; font-weight:500; text-decoration:none; transition:background-color 180ms ease,border-color 180ms ease; }
.p-site-footer .p-footer-support svg { flex:none; color:var(--p-icon-accent); }
.p-site-footer .p-footer-support svg:last-child { margin-left:auto; }
.p-site-footer .p-footer-support:hover { background:var(--p-surface-raised); border-color:var(--p-border-control); }
.p-site-footer a:focus-visible { outline:2px solid var(--p-focus); outline-offset:3px; }
.p-site-footer .p-footer-notes { display:grid; gap:6px; margin-top:20px; padding-top:16px; border-top:1px solid var(--p-border); }
.p-site-footer .p-footer-notes p { margin:0; font-size:12px; line-height:1.65; }
@media(min-width:1024px) {
  .ob-app main.wrap > .p-site-footer { padding:16px 0; }
  .p-site-footer .p-footer-main { grid-template-columns:126px minmax(0,1fr) auto; align-items:center; gap:16px 24px; }
  .p-site-footer .p-footer-links { grid-template-columns:minmax(0,1fr); justify-self:center; gap:0; }
  .p-site-footer .p-footer-group { display:grid; grid-template-columns:64px minmax(0,1fr); align-items:baseline; gap:16px; }
  .p-site-footer .p-footer-group h2 { margin:0; font-size:13px; }
  .p-site-footer .p-footer-group ul { display:flex; flex-wrap:wrap; gap:0 20px; }
  .p-site-footer .p-footer-links a { min-height:32px; margin:0; padding:4px 0; }
  .p-site-footer .p-footer-notes { display:flex; flex-wrap:wrap; gap:4px 24px; margin-top:12px; padding-top:12px; }
}
@media(min-width:1024px) and (max-width:1279px) {
  .p-site-footer .p-footer-main { grid-template-columns:1fr auto; }
  .p-site-footer .p-footer-links { grid-column:1/-1; grid-row:2; justify-self:start; }
  .p-site-footer .p-footer-support { grid-column:2; grid-row:1; }
}
@media(max-width:1023px) {
  .p-site-footer .p-footer-main { grid-template-columns:1fr; gap:20px; }
  .p-site-footer .p-footer-links { gap:16px; }
  .ob-app main.wrap > .p-site-footer { padding-bottom:max(24px,env(safe-area-inset-bottom)); }
}
@media(prefers-reduced-motion:reduce) { .p-site-footer .p-footer-support { transition:none; } }
@media(prefers-reduced-motion:reduce) { .ln-chevron,.ob-app #selTorneoBtn,.ob-app #selTorneoBtn .flecha-sel svg { transition:none; } #leagueModal.open .ln-panel,#leagueModal[data-closing] .ln-panel { animation:none; } }

/* Let the footer reach the viewport bottom on short app views, in normal flow. */
.ob-app:not(.modo-admin) #mainContent.wrap {
  display:flex;
  flex-direction:column;
  gap:32px;
  min-height:calc(100vh - var(--p-app-header-height,64px) - 1px - 96px);
  min-height:calc(100dvh - var(--p-app-header-height,64px) - 1px - 96px);
  padding-bottom:0;
}
.ob-app:not(.modo-admin) #mainContent.wrap > .p-site-footer { flex-shrink:0; margin-top:auto; }
@media(min-width:1024px) {
  .ob-app:not(.modo-admin) #mainContent.wrap {
    min-height:calc(100vh - var(--p-app-header-height,64px) - 1px);
    min-height:calc(100dvh - var(--p-app-header-height,64px) - 1px);
  }
}
