.match-calendar [data-match-status="programado"] { --match-status-color: #38a7ff; --match-status-bg: #142b40; --match-status-ink: #d6edff; }
.match-calendar [data-match-status="jugado"] { --match-status-color: #33df88; --match-status-bg: #143b2b; --match-status-ink: #d4ffe8; }
.match-calendar [data-match-status="aplazado"] { --match-status-color: #ff526f; --match-status-bg: #3b1c29; --match-status-ink: #ffe0e7; }
.match-calendar [data-match-status="sin-hora"] { --match-status-color: #ffd13d; --match-status-bg: #392f19; --match-status-ink: #fff0be; }
.match-calendar [data-match-status="descanso"] { --match-status-color: #aeb9cb; --match-status-bg: #252d39; --match-status-ink: #e3e9f2; }
.match-calendar [data-match-status="pasado"] { --match-status-color: #b996ef; --match-status-bg: #2c2340; --match-status-ink: #eee3ff; }
.match-calendar [data-match-status="descanso-pasado"] { --match-status-color: #d49b76; --match-status-bg: #38281f; --match-status-ink: #ffe9d9; }
.match-calendar .partidos-legend { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 18px; }
.match-calendar .partidos-filter-field { display: grid; gap: 6px; min-width: 0; max-width: 100%; font-size: 14px; }
.match-calendar .partidos-filter-field select { width: 100%; min-width: 0; }
.match-calendar .partidos-filter-summary { margin: 0 0 18px; }
.match-calendar .partidos-cards[hidden] { display: none; }
.match-calendar .partidos-standing-summary { margin: 16px 0 20px; padding: 14px 0; border-top: 1px solid #365260; border-bottom: 1px solid #365260; }
.match-calendar .partidos-standing-values { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 8px; }
.match-calendar .partidos-standing-values div { min-width: 0; }
.match-calendar .partidos-standing-values span { display: block; font-size: 12px; color: #b8cedb; }
.match-calendar .partidos-standing-values strong { display: block; margin-top: 4px; font-size: 21px; color: #e9f8ff; }
.match-calendar .partidos-standing-summary button { margin: 8px 0 0; width: 100%; min-height: 44px; }
.partidos-standing-notice { color: #ffd59d; }
dialog.partidos-standings-dialog { box-sizing: border-box; width: min(960px, calc(100vw - 24px)); max-height: 88dvh; padding: 22px; border: 1px solid #527887; border-radius: 16px; background: #0d202a; color: #eef6fa; overflow-y: auto; }
.partidos-standings-dialog::backdrop { background: #000b; }
.partidos-standings-dialog h2 { font-size: clamp(20px, 4vw, 28px); margin: 0 0 12px; }
.partidos-standings-dialog p { color: #c3d3dc; line-height: 1.5; }
.partidos-standings-scroll { min-width: 0; max-width: 100%; overflow-x: auto; }
.partidos-standings-scroll table { width: 100%; min-width: 680px; border-collapse: collapse; font-size: 14px; }
.partidos-standings-scroll caption { text-align: left; font-weight: 700; padding-bottom: 12px; }
.partidos-standings-scroll :is(th, td) { padding: 11px 9px; border-bottom: 1px solid #3b5664; text-align: right; }
.partidos-standings-scroll th:nth-child(2) { text-align: left; min-width: 180px; }
.partidos-standings-scroll thead { background: #183542; }
.partidos-standing-own { background: #154b43; color: #e8fff7; font-weight: 700; }
.partidos-standing-own-label { display: block; margin-top: 4px; font-size: 11px; color: #8dffe3; }
.partidos-standings-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: center; margin-top: 20px; }
.partidos-standings-actions a { color: #8cdbff; }
.partidos-standings-actions button { min-height: 44px; padding: 10px 18px; cursor: pointer; }
@media(max-width:600px) { dialog.partidos-standings-dialog { padding: 14px; } }
.match-calendar .partidos-controls { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) minmax(0, 1.2fr) auto auto; align-items: end; gap: 10px; box-sizing: border-box; width: 100%; padding: 12px; border: 1px solid #365260; border-radius: 12px; background: #10232f; }
.match-calendar .partidos-controls h2 { min-width: 0; margin: 0; align-self: center; font-size: clamp(18px, 1.7vw, 23px); line-height: 1.25; }
.match-calendar .partidos-controls select { box-sizing: border-box; height: 44px; min-height: 44px; padding: 8px 10px; }
.match-calendar .partidos-controls > [data-partidos-clear] { box-sizing: border-box; min-height: 44px; height: 44px; margin: 0; padding: 8px 12px; }
.match-calendar .partidos-month-navigation { display: flex; flex-wrap: nowrap; align-items: center; justify-content: end; gap: 8px; width: 96px; min-width: 96px; white-space: nowrap; }
.match-calendar .partidos-month-navigation button { box-sizing: border-box; flex: 0 0 44px; width: 44px; height: 44px; min-width: 44px; min-height: 44px; margin: 0; padding: 0; }
.match-calendar .partidos-secondary-controls { position: sticky; top: 0; z-index: 5; margin: 24px 0 14px; box-shadow: 0 6px 20px #0005; }
.match-calendar .partidos-filter-toggle, .match-calendar .partidos-mobile-help, .match-calendar .partidos-day-extra { display: none; }
.match-calendar .partidos-list-section { min-width: 0; }
.match-calendar .partidos-match { scroll-margin-top: calc(var(--partidos-toolbar-height, 140px) + var(--partidos-toolbar-top, 0px)); }
.match-calendar .partidos-match:focus { outline: 2px solid #ffd166; outline-offset: 2px; }
.match-calendar .partidos-day-link { display: inline-block; width: auto; min-width: 26px; min-height: 26px; margin: 0; padding: 0 3px; border: 0; border-radius: 5px; color: inherit; background: transparent; font: inherit; text-align: left; cursor: pointer; }
.match-calendar .partidos-day-link:focus-visible { outline: 2px solid #ffd166; outline-offset: 2px; }
@media(max-width:600px) { .match-calendar .partidos-controls h2 { flex-basis: 100%; } .match-calendar .partidos-filter-field { flex: 1 1 100%; } }
.match-calendar .partidos-state { display: inline-block; padding: 5px 9px; margin: 4px 0; border-radius: 8px; font-size: 12px; font-weight: 600; background: var(--match-status-bg); color: var(--match-status-ink); border: 1px solid transparent; }
.match-calendar .partidos-state::before { content: ''; display: inline-block; width: 8px; height: 8px; margin-right: 7px; border-radius: 50%; background: var(--match-status-color); }
.match-calendar .partidos-event[data-match-status] { background: var(--match-status-bg); color: var(--match-status-ink); border: 1px solid transparent; border-left: 5px solid var(--match-status-color); padding: 7px 9px; font-weight: 600; box-shadow: none; }
.match-calendar :is(.partidos-match, .partidos-card)[data-match-status] { border-left: 5px solid var(--match-status-color); }
.match-calendar .partidos-match[data-match-status] { background: linear-gradient(100deg, var(--match-status-bg), #101d28 80%); }
.match-calendar .partidos-match-right{display:flex;flex-direction:column;gap:8px}
.match-calendar .partidos-status-large{display:block;align-self:flex-end;margin-top:8px;font-size:clamp(24px,2.4vw,38px);font-weight:900;letter-spacing:.04em;line-height:1.15;color:var(--match-status-ink)}
@media(max-width:800px){.match-calendar .partidos-status-large{align-self:flex-start;font-size:28px}}
.match-calendar .partidos-match .partidos-state { display: inline-flex; align-items: center; font-size: clamp(16px, 1.25vw, 18px); line-height: 1.4; padding: 8px 12px; }
.match-calendar .partidos-match .partidos-score { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin: 12px 0 0; color: #f4f8fa; line-height: 1.5; overflow-wrap: anywhere; }
.match-calendar .partidos-score strong { font-size: clamp(20px, 1.6vw, 24px); }
.match-calendar .partidos-set-scores { font-size: clamp(16px, 1.2vw, 18px); color: #c9dbe7; }
.match-calendar .partidos-status-large .partidos-finalized { display: block; font-size: 16px; letter-spacing: .06em; margin-bottom: 8px; }
.match-calendar .partidos-outcome { display: block; color: #c5ffe0; }
.match-calendar [data-match-outcome="perdido"] .partidos-outcome { color: #ffb9c6; }
@media(max-width:800px){.match-calendar .partidos-match{min-width:0}.match-calendar .partidos-match>div{min-width:0}.match-calendar .partidos-status-large{overflow-wrap:anywhere}}
@media(max-width:900px) {
  .match-calendar { --partidos-toolbar-top: calc(74px + env(safe-area-inset-top)); }
  .match-calendar .partidos-secondary-controls { top: var(--partidos-toolbar-top); }
}
@media(min-width:601px) and (max-width:1200px) {
  .match-calendar .partidos-controls { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) auto; }
  .match-calendar .partidos-controls h2 { grid-column: 1 / 3; grid-row: 1; }
  .match-calendar .partidos-controls .partidos-month-navigation { grid-column: 3; grid-row: 1; }
  .match-calendar .partidos-controls .partidos-filter-field { grid-row: 2; }
  .match-calendar .partidos-controls > [data-partidos-clear] { grid-column: 3; grid-row: 2; }
}
@media(max-width:600px) {
  .match-calendar .partidos-controls { grid-template-columns: minmax(0, 1fr) auto; }
  .match-calendar .partidos-controls h2 { grid-column: 1; grid-row: 1; }
  .match-calendar .partidos-controls .partidos-month-navigation { grid-column: 2; grid-row: 1; }
  .match-calendar .partidos-controls .partidos-filter-field, .match-calendar .partidos-controls > [data-partidos-clear] { grid-column: 1 / -1; }
  .match-calendar .partidos-mobile-help { display: block; font-size: 13px; }
  .match-calendar .partidos-grid { gap: 4px; }
  .match-calendar .partidos-weekday { font-size: 10px; padding: 4px 0; }
  .match-calendar .partidos-day { box-sizing: border-box; min-width: 0; min-height: 70px; padding: 4px 3px; overflow: hidden; }
  .match-calendar .partidos-day-number { display: block; font-size: 14px; line-height: 26px; }
  .match-calendar .partidos-day-link { width: 100%; min-width: 0; height: 30px; text-align: center; }
  .match-calendar .partidos-day-events { display: flex; align-items: center; align-content: start; flex-wrap: wrap; gap: 3px; max-height: 29px; overflow: hidden; overflow-wrap: normal; }
  .match-calendar .partidos-day-events .partidos-event { display: block; flex: 0 0 6px; box-sizing: border-box; min-width: 6px; width: 6px; height: 6px; margin: 0; padding: 0; border: 0; border-radius: 50%; overflow: hidden; font-size: 0; line-height: 0; color: transparent; background: var(--match-status-color); }
  .match-calendar .partidos-day-events .partidos-event:nth-child(n+3) { display: none; }
  .match-calendar .partidos-day-extra { display: block; font-size: 10px; line-height: 12px; color: #eaf4fc; }
  .match-calendar .partidos-secondary-controls { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
  .match-calendar .partidos-secondary-controls h2 { grid-column: 1; grid-row: 1; min-width: 0; font-size: 18px; }
  .match-calendar .partidos-secondary-controls [data-partidos-previous], .match-calendar .partidos-secondary-controls [data-partidos-next] { box-sizing: border-box; width: 44px; height: 44px; min-height: 44px; margin: 0; padding: 0; }
  .match-calendar .partidos-secondary-controls .partidos-filter-toggle { display: block; grid-column: 1 / -1; grid-row: 2; min-height: 38px; }
  .match-calendar .partidos-secondary-controls .partidos-filter-field, .match-calendar .partidos-secondary-controls [data-partidos-clear] { grid-column: 1 / -1; }
  .match-calendar .partidos-secondary-controls:not(.partidos-filters-open) .partidos-filter-field, .match-calendar .partidos-secondary-controls:not(.partidos-filters-open) [data-partidos-clear] { display: none; }
}
.partidos-rival-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 16px 0; }
.match-calendar button.partidos-event[data-match-status] { display:block; width:100%; min-width:0; min-height:0; margin:5px 0 0; border-radius:6px; padding:7px 9px; background:var(--match-status-bg); color:var(--match-status-ink); font-size:11px; line-height:1.4; text-align:left; cursor:pointer; white-space:normal; }
.match-calendar button.partidos-event:focus-visible { outline:2px solid #ffd166; outline-offset:2px; }
@media(max-width:600px) {
  .match-calendar .partidos-day-events { max-height:none; }
  .match-calendar .partidos-day-events button.partidos-event[data-match-status] { display:block; flex:0 0 24px; box-sizing:border-box; width:24px; min-width:24px; height:24px; min-height:24px; padding:0; margin:0; border:0; border-radius:6px; background:transparent; font-size:0; line-height:0; color:transparent; }
  .match-calendar .partidos-day-events button.partidos-event::before { content:''; display:block; width:7px; height:7px; margin:auto; border-radius:50%; background:var(--match-status-color); }
  .match-calendar .partidos-day-events button.partidos-event:nth-child(n+3) { display:none; }
}
.partidos-rival-fields label { display: grid; gap: 8px; min-width: 0; }
.partidos-rival-fields select { width: 100%; min-width: 0; padding: 12px; color: inherit; background: #102b38; border: 1px solid #527580; border-radius: 10px; }
.partidos-rival-results { display: grid; gap: 12px; margin: 16px 0; }
.partidos-rival-results article { padding: 14px; border: 1px solid #527580; border-radius: 12px; overflow-wrap: anywhere; }
@media (max-width: 600px) { .partidos-rival-fields { grid-template-columns: 1fr; } }
.partidos-custom-binding:not([hidden]) { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:14px; width:100%; grid-column:1/-1; }
.partidos-custom-binding[hidden] { display:none!important; }
.partidos-custom-binding label { display:flex; flex-direction:column; gap:7px; min-width:0; }
.partidos-custom-binding input { width:100%; min-width:0; box-sizing:border-box; }
