/* Master Mach — tema claro compartido. Cargar después de los estilos de página. */
:root { --mm-ink:#18332c; --mm-muted:#586c64; --mm-green:#16734f; --mm-line:#dce6df; --mm-surface:#e9eee5; --bs-body-color:var(--mm-ink); --bs-body-bg:#dce4dc; }
body, body.home-public { background:#dce4dc; color:var(--mm-ink); font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; padding-top:0; }
.header.fixed-header { position:sticky; top:0; padding:0; background:#e9eee5; border-bottom:1px solid var(--mm-line); box-shadow:none; }
.mm-navbar { background:#e9eee5; padding:10px 0; box-shadow:none!important; --bs-navbar-color:#445c51; --bs-navbar-hover-color:#16734f; --bs-navbar-active-color:#14573e; }
.mm-navbar>.container-fluid { max-width:1280px; padding-inline:24px; flex-direction:row!important; gap:24px; }
.mm-navbar>.container-fluid>div:first-child { width:auto!important; margin-bottom:0!important; }
.mm-logo-img { height:62px; max-height:62px; width:auto; }
.mm-navbar .nav-link { font-weight:600; padding:12px 16px!important; border-radius:8px; }
.mm-navbar .nav-link.active { background:#e8f3e9; color:#14573e; border:0; }
.navbar-toggler { border-color:#b8ccc0; }
.navbar-toggler-icon { filter:brightness(.25); }
.dropdown-menu-dark { --bs-dropdown-bg:#e9eee5; --bs-dropdown-color:#18332c; --bs-dropdown-link-color:#18332c; --bs-dropdown-link-hover-bg:#e8f3e9; --bs-dropdown-link-hover-color:#14573e; --bs-dropdown-link-active-bg:#16734f; border:1px solid var(--mm-line); box-shadow:0 12px 30px #18332c12; }
main.container, main.main-home { margin-top:0!important; padding-top:36px!important; padding-bottom:64px; min-height:70vh; }
main>h2 { text-align:left!important; font-size:clamp(1.6rem,3vw,2.2rem); font-weight:750; letter-spacing:-.035em; margin-bottom:28px!important; }
.hero-home { padding-top:28px; padding-bottom:48px; }
.hero-title { font-size:clamp(2.5rem,5vw,4.5rem); line-height:1.04; letter-spacing:-.055em; text-transform:none; color:var(--mm-ink); }
.hero-subtitle { color:var(--mm-muted); font-size:1.12rem; line-height:1.7; margin-block:24px; }
.mm-eyebrow { color:var(--mm-green); font-size:.75rem; font-weight:750; letter-spacing:.16em; text-transform:uppercase; margin-bottom:20px; }
.hero-card { background:#ccdabe; border:1px solid #cedfc5; box-shadow:none; border-radius:24px; padding:32px; color:var(--mm-ink); }
.hero-card-label { color:#326347; font-weight:700; }
.hero-card-title { font-size:1.6rem; letter-spacing:-.03em; margin:20px 0 12px; }
.hero-card-text,.hero-card-meta { color:#486143; line-height:1.6; }
.torneos-home-section { border-top:1px solid var(--mm-line); padding:32px 0; }
.torneos-home-title,.torneos-home-subtitle { text-align:left; letter-spacing:normal; text-transform:none; }
.torneos-home-title { font-size:1.7rem; color:var(--mm-ink); }
.torneos-home-subtitle,.sponsors-subtitle { color:var(--mm-muted); }
.sponsors-home { background:#d2ddcf; padding:32px 0; border-top:1px solid var(--mm-line); }
.sponsors-title { color:var(--mm-ink); font-size:1.2rem; text-align:left; }
.card-mm,.card,.cat-card,.gestion-torneo,.modal-content { background:#e9eee5!important; color:var(--mm-ink)!important; border:1px solid var(--mm-line)!important; border-radius:16px; box-shadow:0 4px 18px #18332c06; }
.card-mm::before { background:var(--mm-green)!important; height:3px!important; }
.card-torneo { color:#e9eee5; }
.card-torneo .text-muted,.card-torneo .text-light { color:#e4ece7!important; }
.bg-dark:not(.badge):not(.card-torneo),.bg-secondary:not(.badge) { background-color:#e9eee5!important; color:var(--mm-ink)!important; }
.text-muted,.nota-obligatorios { color:var(--mm-muted)!important; }
.text-white:not(.badge):not(.btn),.text-light:not(.badge):not(.btn) { color:var(--mm-ink)!important; }
.btn { min-height:42px; padding:10px 18px; border-radius:9px; font-weight:650; font-size:.9rem; transition:background-color .15s,border-color .15s; }
.btn:hover { transform:none; filter:none; }
.btn-primary,.btn-success { --bs-btn-bg:#16734f; --bs-btn-border-color:#16734f; --bs-btn-hover-bg:#10583c; --bs-btn-hover-border-color:#10583c; --bs-btn-active-bg:#10583c; --bs-btn-active-border-color:#10583c; }
.btn-outline-light,.btn-busqueda { color:#254e3d; background:#e9eee5; border:1px solid #bfd0c5; }
.btn-outline-light:hover,.btn-busqueda:hover { color:#14573e; background:#e8f3e9; border-color:#16734f; }
.form-control,.form-select { background-color:#e9eee5; border-color:#bdcec3; color:var(--mm-ink); min-height:44px; border-radius:8px; }
.form-control:focus,.form-select:focus { background:#e9eee5; color:var(--mm-ink); border-color:#16734f; box-shadow:0 0 0 3px #16734f20; }
.form-control::placeholder { color:#687c70; }
.form-label { font-size:.9rem; font-weight:600; }
.table,.table-dark { --bs-table-bg:#e9eee5; --bs-table-color:#18332c; --bs-table-border-color:#e0e8e2; --bs-table-striped-bg:#dfe7db; --bs-table-striped-color:#18332c; --bs-table-hover-bg:#edf4ec; --bs-table-hover-color:#18332c; }
.table>thead th,#tablaJugadores thead th { background:#d5dfd1!important; color:#3c5949!important; font-size:.75rem; letter-spacing:.06em; padding:14px 12px; }
.table td,#tablaJugadores tbody td { color:#18332c!important; padding:12px; border-color:#e0e8e2!important; }
.modal-header,.modal-footer { border-color:var(--mm-line)!important; }
.modal-content .btn-close-white { filter:none; }
#modalLogin .modal-title,#modalLogin .form-label,
#modalCambioObligatorio .modal-title,#modalCambioObligatorio .form-label { color:#18332c!important; font-weight:700; }
#modalLogin .small.text-secondary,#modalCambioObligatorio .form-text,
#modalCambioObligatorio p.text-light-emphasis { color:#586c64!important; opacity:1; }
.footer { background:#dce4dc; color:#596f61; border-top:1px solid var(--mm-line); padding:26px 20px; font-size:.8rem; }
.footer p { margin:0; }
#btnAbrirLogin { position:static!important; display:block; margin:0 auto 24px; opacity:1!important; }
a:focus-visible,button:focus-visible { outline:3px solid #16734f; outline-offset:3px; }
@media(max-width:991px) { .mm-navbar>.container-fluid { flex-wrap:wrap; gap:0; padding-inline:16px; } .mm-navbar>.container-fluid>div:first-child { width:100%!important; justify-content:space-between!important; } .mm-navbar .navbar-collapse { flex-basis:100%; } .mm-logo-img { height:50px; max-height:50px; } main.container,main.main-home { padding-top:24px!important; } .hero-home { padding-top:12px; } .hero-card { padding:24px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

/* Identidad Master Mach: azul de la marca, naranja y lima como acentos. */
:root { --mm-brand-blue:#146b9c; --mm-brand-orange:#d66b1c; --mm-brand-lime:#bfd44c; }
.header.fixed-header { border-bottom:3px solid var(--mm-brand-blue); }
.mm-navbar { padding-block:8px; }
.mm-navbar .navbar-brand { margin-right:12px; padding:0; }
.mm-logo-img { height:108px; max-height:108px; width:108px; object-fit:contain; }
.mm-navbar .nav-link.active { background:#d5e4eb; color:#124f75; box-shadow:inset 0 -3px var(--mm-brand-orange); }
.mm-navbar .nav-link:hover { color:#124f75; background:#dce7e8; }
.mm-eyebrow { color:#12577c; display:flex; align-items:center; gap:10px; }
.mm-eyebrow::before { content:""; width:26px; height:4px; border-radius:4px; background:var(--mm-brand-orange); }
.btn-primary { --bs-btn-bg:#146b9c; --bs-btn-border-color:#146b9c; --bs-btn-hover-bg:#105578; --bs-btn-hover-border-color:#105578; --bs-btn-active-bg:#105578; --bs-btn-active-border-color:#105578; }
.hero-actions .btn-outline-light { border-color:#b46324; color:#774019; background:#e9e5d8; }
.hero-actions .btn-outline-light:hover { background:#e4d8bd; border-color:#94521e; }
.hero-card { border-top:4px solid var(--mm-brand-orange); }
.hero-card-label { color:#315329; }
.hero-card-label::before { content:""; display:inline-block; width:9px; height:9px; border-radius:50%; background:var(--mm-brand-lime); border:1px solid #748a23; margin-right:8px; }
.card-mm::before { background:var(--mm-brand-blue)!important; }
.torneos-home-title::before { content:""; display:block; width:38px; height:4px; border-radius:4px; background:var(--mm-brand-orange); margin-bottom:12px; }
.form-control:focus,.form-select:focus { border-color:var(--mm-brand-blue); box-shadow:0 0 0 3px #146b9c20; }
a:focus-visible,button:focus-visible { outline-color:var(--mm-brand-blue); }
.footer { border-top:2px solid #a6bac2; }
@media(max-width:991px) { .mm-logo-img { height:86px; max-height:86px; width:86px; } }

/* Presentación informativa secundaria, sin titular promocional dominante. */
.home-public .hero-home { padding-top:0; padding-bottom:24px; }
.platform-intro { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 16px; padding:14px 0; margin-bottom:22px; border-bottom:1px solid #b9c9bb; }
.platform-intro h1 { margin:0; font-size:1rem; line-height:1.6; font-weight:650; letter-spacing:0; color:#345447; }
.platform-intro p { margin:0; font-size:.9rem; line-height:1.6; color:#52675c; }
@media(max-width:575px) { .platform-intro { gap:3px; margin-bottom:18px; } .platform-intro h1 { font-size:.95rem; } .platform-intro p { font-size:.85rem; } }

/* Calendario como contenido principal de inicio. */
.home-public .hero-home { padding-bottom:0; }
.platform-intro { margin-bottom:0; }
.home-public .torneos-home-section { border-top:0; padding-top:24px; min-height:330px; }
#torneosHomeContainer { position:relative; align-items:stretch; scroll-snap-type:x proximity; padding:12px 3px 22px; }
#torneosHomeContainer .torneo-slide { flex:0 0 calc((100% - 3rem)/4); min-width:245px; scroll-snap-align:start; }
#torneosHomeContainer .card-torneo { background:#e9eee5!important; color:#18332c!important; border:1px solid #b8c9bf!important; box-shadow:none; }
#torneosHomeContainer .card-body { padding:22px; }
#torneosHomeContainer .card-title { font-size:1.2rem; line-height:1.3; color:#18332c; }
#torneosHomeContainer .card-body>div:first-child { flex-direction:column-reverse; gap:14px; }
#torneosHomeContainer .tipo-torneo { color:#146b9c!important; }
#torneosHomeContainer .fechas-torneo { color:#425c4e; }
#torneosHomeContainer .torneo-actual .card-torneo { background:#dbe8cd!important; border:2px solid #146b9c!important; border-top:5px solid #d66b1c!important; box-shadow:0 5px 16px #18332c12; }
#torneosHomeContainer .badge-estado { position:static; background:#d8e2e4; color:#24536c; border-radius:20px; padding:5px 10px; font-size:.75rem; }
#torneosHomeContainer .en-curso { background:#146b9c; color:#fff; }
#torneosHomeContainer .badge-categoria { background:#d3dfd1; color:#294c38; }
.calendar-notice { flex:0 0 190px; align-self:center; color:#52675c; font-size:.9rem; }
@media(max-width:767px) { #torneosHomeContainer .torneo-slide { flex-basis:84%; min-width:0; } }
/* Superficies compartidas de gestión y competencia. */
body.bg-dark { background:#dce4dc!important; }
.zona-card,.partido-card,.cardParejaZona,.player-card,.cat-row,.panel-pagos,.pastel-modal { background:#e9eee5!important; color:#18332c!important; border:1px solid #b8c9bf; box-shadow:0 3px 12px #18332c08; }
.zona-modal-header,#modalEditarZona .modal-header { background:#d5e4eb!important; color:#18332c!important; }
.zona-modal-body { background:#e9eee5!important; color:#18332c!important; }
.partido-card .nombre,.cat-row .nombre,.cat-row .desc,.panel-pagos .form-label,.panel-pagos .form-check-label { color:#18332c!important; }
.partido-card .vs,.partido-card .divisor { color:#146b9c; }
.panel-pagos .form-control,.panel-pagos .form-select { background:#e9eee5!important; color:#18332c!important; border-color:#bdcec3; }
.cat-estado-activa { color:#22653e; }
.cat-estado-inactiva,.required-star { color:#ab3434; }
.card-torneo:not([style*="background-image"]) { background:#e9eee5!important; color:#18332c!important; }
.card-torneo:not([style*="background-image"]) .text-muted,.card-torneo:not([style*="background-image"]) .text-light { color:#52675c!important; }
.card-torneo .tipo-torneo { color:#146b9c!important; }

/* Elementos conservados para los scripts originales, fuera de la presentación. */
[hidden] { display:none!important; }

/* Inicio: fotografía decorativa, estados distinguibles y acción siempre visible. */
#torneosHomeContainer .torneo-cover { display:block; width:100%; height:160px; object-fit:cover; flex-shrink:0; background:#c7d6c8; }
#torneosHomeContainer .card-torneo::before { display:none; }
#torneosHomeContainer .card-torneo .card-body { color:#18332c; }
#torneosHomeContainer .card-torneo small { color:#52675c; font-size:.72rem; font-weight:650; letter-spacing:.06em; }
#torneosHomeContainer .badge-estado.finalizado { background:#dbe1e5; color:#374d5b; border:1px solid #aebfc9; }
#torneosHomeContainer .badge-estado.pendiente { background:#f1dfb8; color:#714309; border:1px solid #cba65e; }
#torneosHomeContainer .badge-estado.en-curso { background:#d3e8cb; color:#205522; border:1px solid #82ad77; }
#torneosHomeContainer .badge-estado.en-curso::before { content:""; display:inline-block; width:7px; height:7px; margin-right:6px; border-radius:50%; background:#287833; }
#torneosHomeContainer .btn-ver-detalle { display:inline-flex; align-items:center; justify-content:center; color:#fff!important; background:#146b9c!important; border:1px solid #146b9c!important; opacity:1; min-height:42px; border-radius:9px; text-decoration:none; }
#torneosHomeContainer .btn-ver-detalle:hover,#torneosHomeContainer .btn-ver-detalle:focus-visible { color:#fff!important; background:#105578!important; border-color:#105578!important; }
@media(max-width:575px) { #torneosHomeContainer .torneo-cover { height:145px; } }

/* Fotos a fondo completo y tarjetas compactas, sin cabecera de imagen. */
#torneosHomeContainer .card-torneo { position:relative; isolation:isolate; }
#torneosHomeContainer .card-torneo .torneo-cover { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-1; }
#torneosHomeContainer .card-torneo .card-body { padding:16px; background:linear-gradient(110deg,rgba(8,25,23,.82),rgba(8,25,23,.55)); color:#f4f7f3; }
#torneosHomeContainer .card-torneo .card-title { color:#f4f7f3; font-size:1.05rem; line-height:1.3; }
#torneosHomeContainer .card-torneo .tipo-torneo { color:#acd8f4!important; font-size:.88rem; }
#torneosHomeContainer .card-torneo .fechas-torneo { color:#e3ece5; }
#torneosHomeContainer .card-torneo small { color:#dbe7de; font-size:.66rem; }
#torneosHomeContainer .card-body>div:first-child { gap:8px; }
#torneosHomeContainer .card-torneo .badge-categoria { display:inline-flex; width:auto; padding:4px 8px; margin:0!important; font-size:.7rem; background:#dce7d8; color:#234732; border:0; }
#torneosHomeContainer .card-body>div.mt-2 { display:flex; flex-wrap:wrap; gap:5px; margin-top:8px!important; }
#torneosHomeContainer .card-body>div.mt-2 small { flex-basis:100%; }
#torneosHomeContainer .card-body>div.mt-2 br { display:none; }
#torneosHomeContainer .card-body>div:last-child { padding-top:12px!important; }
#torneosHomeContainer .btn-ver-detalle { min-height:36px; padding:7px 12px; }

/* Navegación agrupada: público, gestión, administración y perfil. */
.mm-navbar .nav-link { white-space:nowrap; font-size:.9rem; }
.mm-navbar button.nav-link { background:transparent; border:0; }
.mm-navbar .nav-link.active { background:#d5e4eb; }
.mm-navbar .nav-link[aria-expanded="true"] { background:#dbe6dc; color:#18332c; }
.mm-navbar .dropdown-menu { background:#eef2ea; border:1px solid #b8c9bf; border-radius:12px; padding:8px; box-shadow:0 12px 28px #18332c25; min-width:220px; }
.mm-navbar .dropdown-item { border-radius:7px; padding:9px 12px; color:#244736; white-space:normal; }
.mm-navbar .dropdown-item.active { background:#146b9c; color:#fff; }
.mm-navbar .dropdown-header { color:#63766b; font-size:.68rem; font-weight:650; letter-spacing:.08em; text-transform:uppercase; padding:9px 12px 5px; white-space:normal; }
.mm-navbar .mm-profile-toggle { display:flex; align-items:center; gap:9px; text-align:left; }
.mm-avatar { width:32px; height:32px; flex-shrink:0; display:grid; place-items:center; border-radius:50%; background:#d1e1d5; color:#28543a; font-size:.8rem; }
.mm-profile-name { max-width:120px; overflow:hidden; text-overflow:ellipsis; }
.mm-profile-name small { display:block; font-size:.7rem; font-weight:400; color:#63766b; }
@media(min-width:992px) {
 .mm-navbar .nav-link { padding:12px 11px!important; }
 .mm-navbar-nav-center { gap:3px; }
 .mm-navbar .mm-management:nth-child(4) { margin-left:12px; padding-left:12px; border-left:1px solid #b8c9bf; }
 .mm-navbar>.container-fluid { gap:14px; }
 .mm-navbar .dropdown-menu { max-height:calc(100dvh - 150px); overflow-y:auto; }
}
@media(max-width:991px) {
 .mm-navbar .dropdown-menu { box-shadow:none; margin:4px 0 10px; min-width:0; }
 .mm-navbar .mm-profile { border-top:1px solid #b8c9bf; padding-top:8px; margin-top:8px; }
 .mm-navbar .navbar-collapse { max-height:calc(100dvh - 115px); overflow-y:auto; }
}

/* Todos los torneos: encabezado compacto y calendario legible. */
.mm-todos-page .mm-todos-top { margin-top:0; margin-bottom:20px; }
.mm-todos-page .mm-todos-top .hero-title { font-size:1.75rem; line-height:1.2; letter-spacing:-.035em; }
.mm-todos-page .mm-todos-top .hero-subtitle { font-size:.9rem; line-height:1.5; margin:8px 0 0; max-width:none; }
.mm-todos-page .mm-year-card { min-width:240px; padding:12px 16px; border:1px solid #bdcec3; background:#e9eee5; border-radius:12px; }
.mm-todos-page .mm-year-card-label { color:#52675c; font-size:.7rem; }
.mm-todos-page .mm-year-count { color:#38584a; white-space:nowrap; }
.mm-todos-page .mm-year-select { width:110px; }
.mm-todos-page .mm-months-wrap { background:#d2ddcf; border-block:1px solid #b8c9bf; backdrop-filter:none; }
.mm-todos-page .mm-month-btn { color:#38584a; background:#e9eee5; border-color:#b8c9bf; letter-spacing:.02em; padding:8px 12px; }
.mm-todos-page .mm-month-btn:hover { background:#d5e4eb; color:#124f75; }
.mm-todos-page .mm-month-btn.active { background:#146b9c; color:#fff; border-color:#146b9c; }
.mm-todos-page .mm-month-title { color:#244736; font-weight:650; letter-spacing:.06em; }
.mm-todos-page .mm-empty { color:#52675c; }
@media(max-width:575px) { .mm-todos-page .mm-todos-top .hero-title { font-size:1.5rem; } .mm-todos-page .mm-year-card { min-width:0; } }

/* Barra compacta: indicación, año y cantidad en una misma fila. */
.mm-todos-page main.main-home { padding-top:16px!important; }
.mm-todos-page .mm-todos-top { margin-bottom:12px; }
.mm-todos-toolbar { display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.mm-todos-page .mm-todos-top .hero-subtitle { margin:0; font-size:.85rem; }
.mm-todos-page .mm-year-card { min-width:0; padding:0; background:transparent; border:0; border-radius:0; }
.mm-todos-page .mm-year-card .flex-grow-1 { display:flex; align-items:center; gap:10px; }
.mm-todos-page .mm-year-card-label { margin:0; }
.mm-todos-page .mm-year-select { min-height:36px; width:95px; }
.mm-todos-page .mm-year-count { font-size:.8rem; }
@media(max-width:575px) { .mm-todos-toolbar { gap:10px; } }

/* Calendario anual: mismo tratamiento fotográfico que Inicio. */
.mm-todos-page .mm-torneo-card-v2 { isolation:isolate; background:#203830; border:1px solid #8ca395; box-shadow:none; min-height:190px; }
.mm-todos-page .mm-torneo-card-v2::before { display:none; }
.mm-todos-page .mm-torneo-v2-right { position:absolute; inset:0; width:100%; height:100%; border:0; display:block; z-index:-1; box-shadow:none; }
.mm-todos-page .mm-torneo-v2-right::before,.mm-todos-page .mm-torneo-v2-right::after { display:none; }
.mm-todos-page .mm-torneo-v2-img { filter:none; transform:none; }
.mm-todos-page .mm-torneo-card-v2:hover .mm-torneo-v2-img { filter:none; transform:none; }
.mm-todos-page .mm-torneo-v2-left { min-width:0; padding:16px; background:linear-gradient(110deg,rgba(8,25,23,.74),rgba(8,25,23,.45)); }
.mm-todos-page .mm-torneo-v2-title { color:#f4f7f3; font-weight:650; white-space:normal; font-size:1.05rem; }
.mm-todos-page .mm-torneo-v2-sub { color:#e3ece5; font-size:.83rem; }
.mm-todos-page .mm-torneo-v2-sub .mm-k { opacity:1; color:#c5d6cc; }
.mm-todos-page .mm-cat-chip { background:#dce7d8; color:#234732; border:0; padding:4px 8px; }
.mm-todos-page .mm-torneo-v2-actions { align-items:center; gap:10px; padding-top:12px; }
.mm-todos-page .mm-torneo-v2-actions .btn { background:#146b9c; color:#fff; border:1px solid #146b9c; min-height:36px; padding:7px 12px; }
.mm-todos-page .mm-torneo-card-v2:hover .mm-torneo-v2-actions .btn { background:#105578; }
.mm-todos-page .mm-status-chip { font-weight:650; font-size:.7rem; letter-spacing:.02em; padding:7px 10px; }
.mm-todos-page .mm-status-finalizado { background:#dbe1e5; color:#374d5b; border-color:#aebfc9; }
.mm-todos-page .mm-status-enjuego { background:#d3e8cb; color:#205522; border-color:#82ad77; }
.mm-todos-page .mm-status-pendiente { background:#f1dfb8; color:#714309; border-color:#cba65e; }

/* Detalle del torneo: resumen pastel compacto. */
.mm-torneo-resumen { background:linear-gradient(115deg,#d7e7e7 0%,#e5ead8 58%,#efe3d1 100%)!important; border:1px solid #bacbc0!important; border-left:5px solid #d66b1c!important; color:#18332c!important; }
.mm-torneo-resumen .card-body { padding:14px 20px!important; }
.mm-torneo-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:4px; }
.mm-torneo-title { color:#18332c!important; font-size:clamp(1.4rem,2.5vw,1.9rem); line-height:1.12; letter-spacing:-.035em; }
.mm-torneo-meta { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px; margin-bottom:8px; }
.mm-torneo-type { color:#146b9c!important; font-weight:700; font-size:.88rem; }
.mm-torneo-dates { color:#52675c!important; font-size:.82rem; font-weight:550; opacity:1!important; }
.mm-torneo-categories { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; }
.mm-torneo-resumen .mm-torneo-categories small { color:#52675c!important; font-size:.65rem; font-weight:700; letter-spacing:.07em; }
.mm-torneo-category-list { display:flex; flex-wrap:wrap; gap:5px; }
.mm-torneo-resumen .badge-estado { border-radius:99px; padding:7px 11px; font-size:.72rem; }
.mm-torneo-resumen .badge-estado.finalizado { background:#dbe1e5; border:1px solid #aebfc9; color:#374d5b; }
.mm-torneo-resumen .badge-estado.en-curso { background:#d3e8cb; border:1px solid #82ad77; color:#205522; }
.mm-torneo-resumen .badge-estado.pendiente { background:#f1dfb8; border:1px solid #cba65e; color:#714309; }
.mm-torneo-resumen small.text-uppercase { color:#52675c!important; font-size:.68rem; letter-spacing:.07em; }
.mm-torneo-resumen .badge-categoria-filter { background:#e1ebda; color:#294c38!important; border:1px solid #b7cba9; padding:5px 10px; font-size:.76rem; }
.mm-torneo-resumen .badge-categoria-filter.badge-categoria-active { background:#146b9c; color:#fff; border-color:#146b9c; }
/* Zonas: cinco tarjetas por fila en escritorio y paleta pastel por zona. */
.mm-zones-section { margin-top:14px; }
.mm-zone-category-title { margin:0 0 8px; color:#18332c!important; font-size:.88rem; font-weight:750; letter-spacing:.025em; }
.mm-zone-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.mm-zones-empty-message { color:#40584b!important; font-size:.92rem; font-weight:550; }
.mm-zone-item { min-width:0; }
.mm-zone-card { height:100%; min-height:104px; border:1px solid #bdcec3; border-radius:12px; padding:12px; background:#e2ebdf; }
.mm-zone-item:nth-child(5n+1) .mm-zone-card { background:#dce9e9; border-top:3px solid #146b9c; }
.mm-zone-item:nth-child(5n+2) .mm-zone-card { background:#f0e5d7; border-top:3px solid #d66b1c; }
.mm-zone-item:nth-child(5n+3) .mm-zone-card { background:#e6ebd7; border-top:3px solid #82943b; }
.mm-zone-item:nth-child(5n+4) .mm-zone-card { background:#e9e1eb; border-top:3px solid #8b638a; }
.mm-zone-item:nth-child(5n+5) .mm-zone-card { background:#dce9df; border-top:3px solid #45845c; }
.mm-zone-card-body { display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.mm-zone-pill { display:inline-flex; align-items:center; min-height:28px; padding:5px 11px; border-radius:99px; background:#146b9c; color:#fff; font-weight:700; font-size:.78rem; }
.mm-zone-item:nth-child(5n+2) .mm-zone-pill { background:#b95b19; }
.mm-zone-item:nth-child(5n+3) .mm-zone-pill { background:#687c2c; }
.mm-zone-item:nth-child(5n+4) .mm-zone-pill { background:#765578; }
.mm-zone-item:nth-child(5n+5) .mm-zone-pill { background:#35724b; }
.mm-zone-card .btn-ver-partidos-zona { background:#183f58!important; border:1px solid #183f58!important; color:#fff!important; min-height:34px; padding:6px 10px; font-size:.78rem; }
.mm-zone-card .btn-ver-partidos-zona:hover { background:#146b9c!important; border-color:#146b9c!important; }
@media(max-width:1100px) { .mm-zone-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:850px) { .mm-zone-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:600px) { .mm-zone-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; } .mm-zone-card { min-height:96px; padding:10px; } .mm-torneo-resumen .card-body { padding:12px 14px!important; } .mm-torneo-heading { align-items:flex-start; } .mm-torneo-title { font-size:1.35rem; } }
@media(max-width:380px) { .mm-zone-grid { grid-template-columns:1fr; } }

/* Cuadro final: llaves conectadas, compacto y con color estable por fase. */
.mm-bracket-card { background:#e4e9e1!important; border:1px solid #c6d0c5!important; color:#18332c!important; }
.mm-bracket-card>.card-body { padding:18px!important; }
.mm-bracket-heading { display:flex; justify-content:space-between; align-items:center; gap:14px; margin-bottom:10px; }
.mm-bracket-heading h3 { color:#18332c; font-size:1.15rem; font-weight:700; }
.mm-bracket-caption { color:#40584b!important; font-size:.82rem; font-weight:600; }
.mm-bracket-empty-title { color:#18332c!important; }
.mm-bracket-empty-message { color:#40584b!important; }
#detalleTorneoContainer .mm-zones-empty-message { color:#40584b!important; }
#cuadroFinalPublicContainer .mm-bracket-empty-title { color:#18332c!important; }
#cuadroFinalPublicContainer .mm-bracket-empty-message { color:#40584b!important; }
.mm-bracket-start { display:inline-flex; border-radius:99px; padding:6px 10px; background:#d5e4eb; color:#124f75; font-size:.75rem; font-weight:650; }
#mmCuadroScrollTop { height:8px!important; margin-bottom:4px!important; }
#mmCuadroScrollBody { scrollbar-color:#9cb1a2 #d7e0d5; }
.mm-bracket-flow { display:flex; align-items:stretch; gap:34px; width:max-content; min-width:100%; padding:12px 8px 20px; }
.mm-round-col { --phase:#146b9c; --phase-soft:#dce9e9; flex:0 0 330px; width:330px; position:relative; }
.mm-round-dieciseisavos { --phase:#0879ad; --phase-soft:#d4eaf3; }
.mm-round-octavos { --phase:#287da0; --phase-soft:#d5e9ed; }
.mm-round-cuartos { --phase:#ca5b12; --phase-soft:#f5dfcd; }
.mm-round-semifinales { --phase:#57751e; --phase-soft:#e2ebc9; }
.mm-round-final { --phase:#754279; --phase-soft:#ead9ed; flex-basis:350px; width:350px; }
.mm-round-title { min-height:34px; display:flex; align-items:center; gap:8px; margin:0 0 10px; padding:7px 10px; border:1px solid color-mix(in srgb,var(--phase) 38%,white); border-left:4px solid var(--phase); border-radius:8px; background:var(--phase-soft); color:var(--phase); font-size:.74rem; font-weight:800; letter-spacing:.055em; text-transform:uppercase; }
.mm-round-title::before { content:""; width:8px; height:8px; flex:none; border-radius:50%; background:var(--phase); }
.mm-round-track { display:flex; flex-direction:column; justify-content:space-around; position:relative; }
.mm-bracket-pair { position:relative; display:flex; flex-direction:column; justify-content:space-around; flex:1 0 auto; min-height:0; }
.mm-bracket-slot { display:flex; align-items:center; justify-content:stretch; min-height:126px; position:relative; z-index:1; }
.mm-bracket-slot>.mb-0 { width:100%; }
.mm-round-col:not(.mm-round-final) .mm-bracket-slot::after { content:""; position:absolute; top:50%; right:-18px; width:18px; border-top:1px solid color-mix(in srgb,var(--phase) 58%,#aebfb5); }
.mm-bracket-join { position:absolute; z-index:0; right:-18px; top:25%; bottom:25%; width:1px; background:color-mix(in srgb,var(--phase) 58%,#aebfb5); }
.mm-bracket-pair:not(.is-bye)::after { content:""; position:absolute; right:-35px; top:50%; width:17px; border-top:1px solid color-mix(in srgb,var(--phase) 58%,#aebfb5); }
.mm-round-empty { align-self:center; margin:auto; color:#68796e; font-size:.82rem; }
.mm-final-track { justify-content:center; }
.mm-final-slot { min-height:170px; }
.mm-round-col .resultado-item-public { border:1px solid color-mix(in srgb,var(--phase) 34%,#c6d1c7)!important; border-left:5px solid var(--phase)!important; border-radius:10px!important; padding:9px!important; background:color-mix(in srgb,var(--phase-soft) 58%,#f6f5ef)!important; color:#18332c!important; box-shadow:0 2px 8px #18332c0b; }
.mm-round-col .resultado-item-public .text-truncate { color:#254537!important; font-size:.72rem; }
.mm-round-col .resultado-item-public .text-warning { color:#a45c16!important; }
.mm-round-col .resultado-item-public .rounded-circle:not(img) { background:var(--phase-soft)!important; border:1px solid color-mix(in srgb,var(--phase) 44%,#c6d1c7)!important; color:var(--phase)!important; }
.mm-round-col .resultado-item-public .badge.bg-light { background:var(--phase-soft)!important; color:#38584a!important; font-size:.62rem!important; }
.mm-round-col .resultado-item-public .badge.bg-secondary { background:#d9e2dc!important; color:#38584a!important; font-weight:550; font-size:.62rem; }
.mm-round-col .resultado-item-public [style*="rgba(255,255,255"] { border-color:#cbd6cc!important; }
.mm-round-col .set-cell { color:#18332c!important; }
.mm-round-col .sets-wrapper { color:#18332c!important; }
.mm-round-final .resultado-item-public { border-left-color:var(--phase)!important; background:#f0e9f0!important; box-shadow:0 4px 14px #76557818; }
.mm-inline-head { display:flex; justify-content:space-between; align-items:center; gap:8px; min-width:0; margin:0 0 4px; }
.mm-match-id { display:inline-flex; flex:0 0 auto; align-items:center; border-radius:999px; padding:4px 9px; background:var(--phase-soft); color:var(--phase); font-size:.65rem; font-weight:750; letter-spacing:.07em; }
.mm-inline-meta { min-width:0; color:#52675c; font-size:11px; font-weight:600; white-space:nowrap; }
.mm-inline-meta b { padding:0 3px; color:#9bac9f; font-weight:400; }
.mm-inline-score-head,.mm-inline-team { display:grid; grid-template-columns:minmax(0,1fr) repeat(3,19px); align-items:center; gap:5px; }
.mm-inline-score-head { margin:0 0 2px; color:#61766a; font-size:11px; text-align:center; }
.mm-match-teams { display:grid; gap:2px; }
.mm-inline-team { min-height:26px; }
.mm-inline-team .mm-team-pair { grid-column:1; }
.mm-inline-score { color:#18332c; font-size:.72rem; font-weight:650; text-align:center; }
.mm-inline-winner .mm-inline-score { color:#218650; font-weight:800; }
.mm-round-col .mm-inline-team { position:relative; }
.mm-round-col .mm-inline-winner { min-height:31px; margin:2px 0; padding:3px 4px 3px 25px; border:1px solid #a9d5b8; border-left:3px solid #218650; border-radius:8px; background:#e0f1e5; box-shadow:0 1px 4px #165b3714; }
.mm-round-col .mm-inline-winner::before { content:"✓"; position:absolute; left:6px; top:50%; display:grid; width:14px; height:14px; place-items:center; transform:translateY(-50%); border-radius:50%; background:#218650; color:#fff; font-size:9px; font-weight:900; line-height:1; }
.mm-round-col .mm-inline-winner .mm-pair-player { color:#165b37; font-weight:800; }
.mm-round-col .mm-inline-winner .mm-inline-score { display:grid; min-height:20px; place-items:center; border-radius:5px; background:#218650; color:#fff; font-weight:850; }
.mm-team-pair { display:flex; align-items:center; gap:5px; min-width:0; min-height:27px; padding:2px 0; }
.mm-pair-player { display:inline-flex; flex:1 1 0; align-items:flex-start; gap:4px; min-width:0; color:#203f33; font-size:.69rem; font-weight:700; }
.mm-player-photo,.mm-player-initial { width:23px; height:23px; flex:0 0 23px; display:inline-grid; place-items:center; overflow:hidden; border-radius:50%; }
.mm-player-photo { padding:0; border:1px solid color-mix(in srgb,var(--phase) 52%,white); background:#fff; cursor:zoom-in; }
.mm-player-photo img { width:100%; height:100%; object-fit:cover; }
.mm-player-initial { border:1px solid color-mix(in srgb,var(--phase) 45%,white); background:var(--phase-soft); color:var(--phase); font-size:.68rem; font-weight:800; }
.mm-player-label { min-width:0; overflow:visible; text-overflow:clip; white-space:normal; overflow-wrap:anywhere; line-height:1.15; }
.mm-pair-slash { flex:0 0 auto; color:var(--phase); font-size:.8rem; font-weight:800; }
@media(max-width:700px) {
 .mm-bracket-card>.card-body { padding:12px!important; }
 .mm-bracket-heading { align-items:flex-start; flex-direction:column; }
 .mm-bracket-flow { gap:26px; }
 .mm-round-col { flex-basis:318px; width:318px; }
 .mm-round-final { flex-basis:338px; width:338px; }
 .mm-inline-score-head,.mm-inline-team { grid-template-columns:minmax(0,1fr) repeat(3,17px); gap:3px; }
 .mm-inline-head { gap:5px; }
 .mm-inline-meta { font-size:11px; }
}

/* Ranking: tabla compacta con puestos compartidos para los empates. */
.mm-ranking-page { padding-top:30px!important; }
.mm-ranking-shell { max-width:1040px; margin:0 auto; }
.mm-ranking-page-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:18px; }
.mm-ranking-kicker { margin:0 0 4px; color:#146b9c; font-size:.7rem; font-weight:750; letter-spacing:.12em; }
.mm-ranking-page-head h1 { margin:0; color:#18332c; font-size:clamp(1.7rem,3vw,2.2rem); font-weight:750; letter-spacing:-.04em; }
.mm-ranking-controls { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:flex-end; gap:8px; }
.mm-ranking-category-control { display:flex; flex-direction:column; gap:4px; min-width:180px; }
.mm-ranking-category-control label { color:#52675c; font-size:.73rem; font-weight:700; }
.mm-ranking-category-control .form-select { min-height:38px; }
.mm-ranking-controls .btn { min-height:38px; padding:7px 12px; font-size:.8rem; }
.mm-ranking-mode-tabs { display:flex; gap:8px; margin:0 0 16px; padding:5px; width:max-content; max-width:100%; border:1px solid #bdcec3; border-radius:12px; background:#e9eee5; }
.mm-ranking-mode-tabs button { min-height:38px; padding:7px 15px; border:0; border-radius:8px; background:transparent; color:#52675c; font-size:.82rem; font-weight:750; }
.mm-ranking-mode-tabs button.active { background:#146b9c; color:#fff; box-shadow:0 2px 7px rgba(20,107,156,.22); }
.mm-ranking-mode-help { margin:-8px 0 14px; color:#52675c; font-size:.8rem; }
.mm-ranking-page #btnRefrescarRanking { color:#294c3a; background:#e9eee5; border:1px solid #bdcec3; }
.mm-ranking-page #btnRefrescarRanking:hover { background:#dce9df; border-color:#93ae9c; }
.mm-ranking-page #btnRecalcularRanking { color:#fff; background:#146b9c; border-color:#146b9c; }
.mm-ranking-page #btnRecalcularRanking:hover { background:#105578; border-color:#105578; }
.mm-ranking-page #alertRanking { margin-bottom:14px; }
.mm-ranking-table-wrap { overflow:hidden; border:1px solid #bdcec3; border-radius:13px; background:#e9eee5; }
.mm-ranking-table-heading { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:13px 16px 9px; }
.mm-ranking-table-heading h2 { margin:0; color:#18332c; font-size:1rem; font-weight:750; }
.mm-ranking-table-heading span { color:#52675c; font-size:.75rem; }
.mm-ranking-table { min-width:760px; margin:0; color:#18332c; --bs-table-bg:transparent; --bs-table-color:#18332c; --bs-table-hover-bg:#cbdde0; --bs-table-hover-color:#18332c; --bs-table-border-color:#c5d4cf; }
.mm-ranking-table thead th { padding:9px 12px; border-bottom:1px solid #bdcec3; color:#52675c; font-size:.7rem; font-weight:750; letter-spacing:.06em; text-transform:uppercase; }
.mm-ranking-table tbody td { padding:9px 12px; color:#29483a; font-size:.8rem; vertical-align:middle; }
.mm-ranking-table tbody tr:nth-child(odd)>td { --bs-table-bg:#f0f4ed; }
.mm-ranking-table tbody tr:nth-child(even)>td { --bs-table-bg:#dce8e7; }
.mm-ranking-table .mm-ranking-row-position { width:52px; color:#52675c; font-weight:750; text-align:center; }
.mm-ranking-row-first .mm-ranking-row-position { --bs-table-bg:#d4e8eb; color:#146b9c!important; font-weight:850!important; }
.mm-ranking-player-cell { display:flex; align-items:center; gap:8px; min-width:230px; }
.mm-ranking-page .btn-avatar-ranking { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; min-height:36px; flex:0 0 36px; padding:0!important; margin:0!important; border:0; border-radius:50%; }
.mm-ranking-page .btn-avatar-ranking img,.mm-ranking-page .mm-ranking-avatar-fallback { width:34px!important; height:34px!important; object-fit:cover; }
.mm-ranking-page .mm-ranking-avatar-fallback { border:1px solid #afc7b6; background:#dce9df; color:#315843; font-size:.8rem; font-weight:750; }
.mm-ranking-player-name { display:block; max-width:100%; color:#18332c; font-size:.86rem; font-weight:700; line-height:1.25; overflow-wrap:anywhere; }
.mm-ranking-nickname { color:#b45a1d; font-weight:750; }
.mm-ranking-row-points { color:#146b9c!important; font-weight:800!important; text-align:right; }
.mm-ranking-page .mm-ranking-detail-button { min-height:32px; margin:0; padding:5px 11px; border:1px solid #aebfb6; border-radius:8px; background:#f0f4ee; color:#214a37; font-size:.73rem; font-weight:700; white-space:nowrap; }
.mm-ranking-page .mm-ranking-detail-button:hover { background:#dce9df; border-color:#789783; color:#18332c; }
.mm-ranking-table { width:100%; min-width:0; table-layout:fixed; }
.mm-ranking-player-cell { min-width:0; gap:6px; }
.mm-ranking-table-heading .mm-ranking-category-title { color:#146b9c; font-size:.9rem; font-weight:650; }
.mm-ranking-row-date { white-space:nowrap; }
.mm-ranking-table th:last-child,.mm-ranking-table td:last-child { text-align:center!important; }
.mm-ranking-table th:nth-child(1) { text-align:center!important; }
.mm-ranking-table th:nth-child(3) { text-align:right!important; }
.panel-pagos .form-check-input {
  width: 1.15rem;
  height: 1.15rem;
  margin-top: .15rem;
  border: 2px solid #60786a;
  background-color: #f7f8f2;
  cursor: pointer;
}
.panel-pagos .form-check-input:checked {
  border-color: #146b9c;
  background-color: #146b9c;
}
.panel-pagos .form-check-input:focus {
  border-color: #146b9c;
  box-shadow: 0 0 0 .2rem rgba(20,107,156,.2);
}
.panel-pagos .form-check-label { cursor:pointer; }
@media(max-width:850px) {
 .mm-ranking-page-head { align-items:flex-start; flex-direction:column; }
 .mm-ranking-controls { justify-content:flex-start; }
}
@media(max-width:600px) {
 .mm-ranking-page { padding-top:22px!important; }
 .mm-ranking-controls { width:100%; }
 .mm-ranking-category-control { flex:1 1 100%; }
 .mm-ranking-mode-tabs { width:100%; }
 .mm-ranking-mode-tabs button { flex:1; }
 .mm-ranking-table-heading { padding-inline:11px; }
 .mm-ranking-table { width:100%; min-width:0; table-layout:fixed; }
 .mm-ranking-table thead th { padding:7px 3px; font-size:.55rem; letter-spacing:.015em; }
 .mm-ranking-table tbody td { padding:6px 3px; font-size:.68rem; }
 .mm-ranking-table th:nth-child(1),.mm-ranking-table td:nth-child(1) { width:9%; }
 .mm-ranking-table th:nth-child(2),.mm-ranking-table td:nth-child(2) { width:38%; }
 .mm-ranking-table th:nth-child(3),.mm-ranking-table td:nth-child(3) { width:12%; }
 .mm-ranking-table th:nth-child(4),.mm-ranking-table td:nth-child(4) { width:18%; }
 .mm-ranking-table th:nth-child(5),.mm-ranking-table td:nth-child(5) { width:23%; }
 .mm-ranking-table .mm-ranking-row-position { font-size:.68rem; }
 .mm-ranking-player-cell { gap:4px; }
 .mm-ranking-page .btn-avatar-ranking { width:27px; height:27px; min-height:27px; flex-basis:27px; }
 .mm-ranking-page .btn-avatar-ranking img,.mm-ranking-page .mm-ranking-avatar-fallback { width:25px!important; height:25px!important; }
 .mm-ranking-player-name { font-size:.68rem; line-height:1.15; }
 .mm-ranking-row-points { font-size:.66rem!important; }
 .mm-ranking-row-date { font-size:.61rem!important; white-space:normal; overflow-wrap:anywhere; }
 .mm-ranking-page .mm-ranking-detail-button { width:100%; min-height:27px; padding:4px 2px; font-size:.59rem; line-height:1.05; white-space:normal; }
}


/* Móvil/tablet: tablas anchas se recorren con el dedo sin comprimir columnas. */
.table-responsive { -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
#mmCuadroScrollBody, .bracket-wrap { -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; touch-action: pan-x pan-y; }
.modal-dialog-scrollable .modal-body { overscroll-behavior-y: contain; }

/* Entrada sutil del logo principal en la portada. */
.mm-home-logo-motion {
  position:relative;
  isolation:isolate;
  display:flex;
  width:190px;
  margin:0 auto 8px;
  animation:mmHomeLogoReveal .9s cubic-bezier(.2,.75,.25,1) both;
}
.mm-home-logo-motion::before {
  position:absolute;
  z-index:-1;
  inset:12% 8%;
  border-radius:50%;
  background:radial-gradient(circle,#d66b1c30 0, #146b9c12 48%, transparent 74%);
  content:"";
  filter:blur(12px);
  animation:mmHomeLogoAura 1.1s ease-out both;
}
.mm-home-logo-motion img {
  display:block;
  width:100%;
  height:auto;
  border-radius:20px;
  filter:drop-shadow(0 8px 16px #18332c22);
}
@keyframes mmHomeLogoReveal {
  from { opacity:0; transform:translateY(12px) scale(.94) rotate(-1.5deg); }
  to { opacity:1; transform:translateY(0) scale(1) rotate(0); }
}
@keyframes mmHomeLogoAura {
  from { opacity:0; transform:scale(.72); }
  to { opacity:1; transform:scale(1); }
}
@media(max-width:575px) { .mm-home-logo-motion { width:150px; margin-bottom:6px; } }

/* Fixture público de Liga: fechas y cruces agrupados con el estilo del torneo. */
.mm-liga-public-container { margin: 1rem 0 1.5rem; }
.mm-liga-public-header, .mm-liga-round-heading, .mm-liga-match-meta {
  display:flex; align-items:center; justify-content:space-between; gap:.75rem;
}
.mm-liga-public-header { margin: 1.5rem 0 1rem; }
.mm-liga-public-header h2 { margin:.2rem 0 0; color:#19352f; font-size:1.25rem; font-weight:750; }
.mm-liga-public-eyebrow { color:#126d9a; font-size:.7rem; font-weight:800; letter-spacing:.14em; }
.mm-liga-round-count { padding:.35rem .7rem; border:1px solid #bfd1c8; border-radius:999px; color:#435d55; font-size:.8rem; font-weight:700; }
.mm-liga-date-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.mm-liga-date-card { display:flex; align-items:center; gap:.8rem; min-width:0; padding:.9rem; border:1px solid #bfd1c8; border-left:4px solid #126d9a; border-radius:13px; background:#f1f4ed; color:#19352f; text-align:left; box-shadow:0 3px 10px #18332c0b; transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.mm-liga-date-card:hover, .mm-liga-date-card:focus-visible { transform:translateY(-2px); border-color:#79a9ba; box-shadow:0 7px 18px #18332c18; outline:none; }
.mm-liga-date-icon { display:grid; flex:0 0 42px; width:42px; height:42px; place-items:center; border-radius:12px; background:#dce9e8; color:#126d9a; font-size:.9rem; font-weight:800; }
.mm-liga-date-copy { display:flex; min-width:0; flex:1; flex-direction:column; gap:.18rem; }
.mm-liga-date-copy strong { font-size:.95rem; }
.mm-liga-date-copy span, .mm-liga-date-copy small { overflow:hidden; color:#586f67; font-size:.75rem; text-overflow:ellipsis; white-space:nowrap; }
.mm-liga-date-action { display:flex; flex:0 0 auto; align-items:center; gap:.3rem; color:#126d9a; font-size:.75rem; font-weight:750; }
.mm-liga-modal-content { overflow:hidden; border:1px solid #b9cdc3; border-top:4px solid #d66b1c; border-radius:16px; background:#e9efe7; color:#19352f; box-shadow:0 18px 48px #10241c38; }
.mm-liga-modal-header, .mm-liga-modal-footer { border-color:#d0dcd3; }
.mm-liga-modal-header { align-items:center; padding:1.1rem 1.25rem; }
.mm-liga-modal-header .modal-title { margin-top:.15rem; color:#19352f; font-size:1.25rem; font-weight:800; }
.mm-liga-modal-content .modal-body { padding:1rem 1.25rem; }
.mm-liga-modal-footer { padding:.75rem 1.25rem; }
.mm-liga-modal-content .mm-liga-match { background:#f8faf5; }
.mm-liga-match-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
.mm-liga-match { min-width:0; padding:.8rem .9rem; border:1px solid #cbd9cf; border-left:4px solid #cf5f17; border-radius:10px; background:#fffefa; }
.mm-liga-match.is-played { border-left-color:#16845c; }
.mm-liga-match-meta { justify-content:flex-start; flex-wrap:wrap; color:#526a61; font-size:.75rem; font-weight:650; }
.mm-liga-court { margin-left:auto; padding:.2rem .5rem; border:1px solid #e9c79f; border-radius:999px; background:#fff1df; color:#8a4c12; }
.mm-liga-match-body { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:.55rem; margin-top:.65rem; color:#1c3831; }
.mm-liga-team { display:flex; min-width:0; flex-direction:column; align-items:flex-start; gap:.22rem; }
.mm-liga-team strong { font-size:.9rem; line-height:1.35; }
.mm-liga-team.is-right { align-items:flex-end; text-align:right; }
.mm-liga-team.is-winner strong { color:#126d55; font-weight:850; }
.mm-liga-winner-badge { display:inline-flex; width:max-content; padding:.16rem .48rem; border:1px solid #9acdb0; border-radius:999px; background:#dcefe1; color:#176640; font-size:.64rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.mm-liga-vs { color:#d4661d; font-size:.78rem; font-weight:800; }
.mm-liga-score { margin-top:.55rem; color:#16724f; font-size:.85rem; font-weight:800; text-align:center; }
.mm-liga-pending { margin-top:.55rem; color:#697d75; font-size:.78rem; }
.mm-liga-public-status, .mm-liga-public-empty { margin:1rem 0; padding:1rem; border:1px solid #bfd1c8; border-radius:12px; background:#f1f4ed; color:#405b52; }
.mm-liga-public-empty strong { display:block; margin-bottom:.35rem; color:#19352f; }
.mm-liga-public-status.is-error { border-color:#e3b8b5; color:#a13430; }
@media(max-width:991px) { .mm-liga-date-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767px) { .mm-liga-match-grid { grid-template-columns:1fr; } }
@media(max-width:575px) {
  .mm-liga-date-grid { grid-template-columns:1fr; }
  .mm-liga-date-card { padding:.75rem; }
  .mm-liga-date-action { font-size:0; }
  .mm-liga-date-action span { font-size:1rem; }
  .mm-liga-match { padding:.7rem; }
  .mm-liga-match-body { grid-template-columns:1fr auto 1fr; gap:.35rem; }
  .mm-liga-team strong { font-size:.82rem; }
  .mm-liga-public-header h2 { font-size:1.05rem; }
  .mm-liga-modal-header, .mm-liga-modal-content .modal-body { padding:.9rem; }
}
