:root{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:#162b3d;background:#f4f6f8;font-size:15px;--navy:#102a3a;--green:#c8ef76;--line:#dce4e8}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;border:0;border-radius:8px;padding:11px 17px;background:var(--navy);color:white;font-weight:650}button:disabled{opacity:.5;cursor:wait}button.secondary,.secondary{background:#eaf0f3;color:var(--navy)}button.danger{background:#aa3344}a{color:#1b617f;text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(28px,4vw,48px);letter-spacing:-1.5px;line-height:1.1}h2{font-size:25px;letter-spacing:-.6px}h3{font-size:17px}p{line-height:1.6}.muted{color:#657984}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:800;color:#608173}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 5%;border-bottom:1px solid var(--line);background:white}.brand{font-size:20px;font-weight:850;color:var(--navy);letter-spacing:-.7px}.brand span{color:#658b28}.topbar .links{display:flex;align-items:center;gap:20px}.public{max-width:1200px;margin:auto;padding:48px 28px}.hero{background:var(--navy);color:white;border-radius:18px;padding:45px;margin-bottom:32px;display:flex;justify-content:space-between;gap:24px;align-items:center}.hero p{color:#becdd4;max-width:540px;margin-bottom:0}.hero .eyebrow{color:var(--green)}.hero .tag{color:var(--green);font-size:50px;font-weight:850;min-width:100px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:24px}.league-card{display:flex;flex-direction:column;min-height:245px}.league-card h2{font-size:23px}.league-card a{margin-top:auto;padding-top:18px;font-weight:750}.league-logo{width:60px;height:60px;object-fit:contain;margin-bottom:22px}.initials{width:54px;height:54px;background:#eef5e4;color:#355626;border-radius:10px;display:grid;place-items:center;font-weight:850;margin-bottom:22px}.shell{display:grid;grid-template-columns:235px 1fr;min-height:100vh}.sidebar{background:var(--navy);color:white;padding:28px 18px;display:flex;flex-direction:column;gap:8px}.sidebar .brand{color:white;margin:0 10px 25px}.sidebar button{text-align:left;background:transparent;color:#bfcdd4}.sidebar button.active{background:#274554;color:white;border-left:3px solid var(--green)}.sidebar .role{font-size:12px;color:var(--green);margin:0 10px 22px}.sidebar footer{margin-top:auto;padding:25px 10px 0;font-size:12px;color:#bfcdd4}.main{min-width:0}.context{padding:20px 32px;display:flex;justify-content:space-between;align-items:center;gap:16px;background:white;border-bottom:1px solid var(--line)}.context label{font-size:12px}.context .selectors{display:flex;gap:15px;flex-wrap:wrap}.context select{min-width:180px}.content{padding:32px;max-width:1600px}.toolbar{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:24px}.toolbar h2{margin:0}.actions{display:flex;gap:8px;flex-wrap:wrap}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:16px;margin-bottom:26px}.metric{padding:23px;background:white;border:1px solid var(--line);border-radius:12px}.metric strong{font-size:32px;display:block;margin-top:8px;letter-spacing:-1px}.metric span{color:#657984;font-size:13px}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:12px;margin-bottom:24px}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;padding:15px 16px;border-bottom:1px solid #edf1f3;vertical-align:middle}th{font-size:11px;text-transform:uppercase;letter-spacing:.8px;background:#f9fbfc;color:#627785}td button{padding:7px 10px;font-size:12px;margin:2px}tr:last-child td{border-bottom:0}.badge{display:inline-block;font-size:11px;padding:5px 9px;border-radius:20px;background:#eef2f5;color:#506573;text-transform:uppercase;font-weight:750}.badge.aprobado,.badge.pagado,.badge.aceptado{background:#e6f3d8;color:#365b16}.badge.pendiente{background:#fff1d3;color:#835c08}.badge.correccion,.badge.rechazado{background:#ffe6e6;color:#942e40}.empty{padding:45px 25px;text-align:center;border:1px dashed #c7d2d9;border-radius:12px;background:#fafcfd;color:#637785;margin-bottom:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px;font-size:13px}.field.wide{grid-column:1/-1}.field input,.field select,.field textarea,select.search,input.search,.context select{width:100%;padding:11px;border:1px solid #cdd8df;border-radius:7px;background:white;color:#162b3d}.field textarea{min-height:100px}.field small{color:#617784;line-height:1.4}.form-actions{margin-top:24px;display:flex;gap:10px;align-items:center}.error{color:#9c2638;font-size:13px;line-height:1.5}.login{max-width:450px;margin:8vh auto;padding:32px}.login h1{font-size:33px}.login .form-grid{grid-template-columns:1fr}.login .eyebrow{margin-top:25px}.loading{padding:40px}.section-gap{margin-top:32px}.note{padding:15px;background:#eef4e6;border-radius:8px;color:#466035;font-size:13px;line-height:1.5;margin-bottom:20px}dialog{width:min(740px,94vw);max-height:90vh;overflow:auto;border:0;border-radius:15px;padding:30px;color:#162b3d;box-shadow:0 20px 80px #102a3a40}dialog::backdrop{background:#0b253a88}.close{float:right;background:#eef2f5;color:#162b3d;padding:4px 11px;font-size:22px}#dialogBody{padding-top:15px}#status{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#152f40;color:white;border-radius:8px;box-shadow:0 5px 25px #0002;max-width:90vw;z-index:20}#status:not(:empty){padding:12px 20px}.documents{display:grid;grid-template-columns:1fr 1fr;gap:14px}.documents img{width:100%;max-height:430px;object-fit:contain;background:#f1f4f6;border-radius:8px}.documents h3{margin-top:12px}.public-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:25px 0}.public-tabs button.active{background:var(--navy);color:white}.search-row{display:flex;gap:15px;margin-bottom:25px}.search-row input{max-width:420px}.public footer{padding-top:35px;color:#6a7e88;font-size:12px}.caption{font-size:12px;color:#637782;margin-top:-12px;margin-bottom:25px}.notice{border-left:3px solid #c8ef76;padding:12px 18px;margin:12px 0;background:white;white-space:pre-wrap}.identity{font-size:13px}.identity strong{display:block}.checkline{display:flex;gap:8px;align-items:center}.checkline input{width:auto}
@media(max-width:850px){.shell{grid-template-columns:1fr}.sidebar{padding:16px;display:block}.sidebar .brand{display:inline-block;margin:0 10px 12px 0}.sidebar .role{display:inline-block;margin:0}.sidebar nav{display:flex;overflow:auto;gap:5px}.sidebar button{white-space:nowrap}.sidebar footer{display:none}.content{padding:20px}.context{padding:16px;align-items:flex-start}.context select{min-width:145px}.hero{padding:28px}.hero .tag{display:none}.public{padding:25px 16px}.form-grid{grid-template-columns:1fr}.field.wide{grid-column:auto}.documents{grid-template-columns:1fr}.topbar .links{gap:12px;font-size:13px}}
/* Ligas Central, menú deportivo nativo v2. */
:root{--navy:#193e78;--green:#ffd83f;--line:#dbe3ef}
.shell{grid-template-columns:238px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(165deg,#1b4385,#223c60);padding:16px 12px;gap:0;z-index:30;scrollbar-width:thin}
.sidebar-head{display:flex;align-items:flex-start;justify-content:space-between}
.sidebar .brand{display:flex;flex-direction:column;align-items:center;gap:10px;margin:0 0 12px;padding:0 8px;color:white;text-align:center;width:100%;letter-spacing:0;font-size:14px}
.brand-logo{display:flex;align-items:center;justify-content:center;width:160px;min-height:112px;background:white;border-radius:13px;padding:12px;color:#193e78}
.brand-logo img{width:100%;height:90px;object-fit:contain}
.brand-initials{display:grid;place-items:center;width:72px;height:72px;border:2px solid #193e78;border-radius:50%;font-size:19px;font-weight:850}
.brand-title{line-height:1.35;overflow-wrap:anywhere;font-weight:800}
.sidebar .role{text-align:center;color:#d3def0;font-size:11px;margin:0 6px 14px}
.sidebar nav{display:flex;flex-direction:column;gap:5px;flex:1;overflow:visible}
.nav-heading{margin:15px 10px 5px;color:#b7cae7;font-size:10px;letter-spacing:1.3px;text-transform:uppercase;font-weight:850}
.sidebar nav button{min-height:36px;padding:10px 12px;border-radius:11px;background:#ffffff12;color:#fff;font-size:13px;font-weight:700;white-space:normal;text-align:left;line-height:1.35;transition:background .15s}
.sidebar nav button:hover{background:#ffffff29}
.sidebar nav button.active{background:#ffd83f;color:#172d4c;border-left:0;box-shadow:0 3px 12px #00000013}
.sidebar footer{padding:22px 10px 14px;margin-top:12px;border-top:1px solid #ffffff25}
.menu-toggle,.menu-close,.sidebar-overlay{display:none}
.context{gap:18px;flex-wrap:wrap}
.context-start{display:flex;align-items:center;gap:14px;min-width:0;flex:1}
.context .selectors{display:flex;gap:14px;flex-wrap:wrap;flex:1}
.context .selectors label{min-width:190px;flex:1;max-width:360px}
.context select{min-width:0}
.context select:disabled{background:#f2f5f8;color:#506377}
.content{max-width:1600px;width:100%}
.sports-intro{margin-bottom:24px;background:#f8fbff;border-color:#d9e5f2}
.sports-intro h2{font-size:20px}
.sports-intro p:last-child{margin-bottom:0}
.sports-rounds{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:18px 0 26px}
.sports-rounds .card{padding:18px}
.sports-rounds h3{margin-bottom:15px;color:#193e78}
.sports-pair{display:grid;grid-template-columns:minmax(0,1fr) 36px minmax(0,1fr);gap:10px;align-items:center;padding:11px 0;border-top:1px solid #e6ecf3;font-size:13px}
.sports-pair span{overflow-wrap:anywhere}
.sports-pair b{text-align:center;color:#8293aa;font-size:10px}
.sports-preview{max-height:45vh;overflow:auto;margin:16px 0}
.sports-preview .sports-rounds{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.sports-bracket-select{max-width:240px;margin-bottom:22px}
.sports-json{padding:15px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:#f2f5fa;border-radius:8px;font-size:12px;line-height:1.6}
.sidebar button:focus-visible,.menu-toggle:focus-visible{outline:3px solid #ffd83f;outline-offset:3px}
@media(max-width:950px){
 .shell{display:block}.main{min-width:0}
 .sidebar{position:fixed;left:0;top:0;bottom:0;width:min(290px,86vw);height:100dvh;transform:translateX(-105%);transition:transform .2s ease;z-index:50;display:flex;visibility:hidden}
 .menu-open .sidebar{transform:translateX(0);visibility:visible}
 .sidebar nav{display:flex;flex-direction:column;overflow:visible;gap:5px}
 .sidebar button{white-space:normal}
 .sidebar .brand{display:flex;margin:0 0 12px}
 .sidebar .role{display:block;margin:0 6px 14px}
 .sidebar footer{display:block}
 .sidebar-overlay{position:fixed;inset:0;background:#0b1f3c99;z-index:40}
 .menu-open .sidebar-overlay{display:block}
 .menu-toggle{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:42px;height:42px;padding:0;background:#eaf0f7;color:#193e78;font-size:22px}
 .menu-close{display:inline-flex;align-items:center;justify-content:center;background:#ffffff22;color:white;padding:4px 10px;font-size:24px;position:absolute;right:10px;top:10px}
 .context{padding:16px;align-items:center}.context-start{flex:1 1 100%;align-items:flex-start}.context .selectors{flex:1;gap:10px}.context .selectors label{min-width:140px;max-width:none}.identity{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px}
 .content{padding:20px}.sidebar .brand-title{max-width:210px}
}
@media(max-width:520px){.context .selectors{flex-direction:column}.context .selectors label{width:100%;min-width:0}.sports-rounds{grid-template-columns:1fr}.sports-pair{grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr)}.content{padding:16px}.toolbar h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){.sidebar,.sidebar nav button{transition:none}}

/* Escudos en tablas deportivas */
.team-cell{display:flex;align-items:center;gap:10px;min-width:155px}
.team-crest{width:36px;height:36px;flex:0 0 36px;object-fit:contain;border-radius:6px}
.team-crest-fallback{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;border-radius:8px;background:#eaf0f6;color:#254671;font-size:11px;font-weight:800}
.team-crest[hidden],.team-crest-fallback[hidden]{display:none!important}
.team-cell-name{min-width:0;line-height:1.35;font-weight:600}
@media(max-width:600px){.team-cell{min-width:130px;gap:7px}.team-crest,.team-crest-fallback{width:30px;height:30px;flex-basis:30px}}

/* Escudos compactos en tablas deportivas */
.team-cell {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    max-width: 100%;
}

.team-crest,
.team-crest-fallback {
    width: 36px !important;
    height: 36px !important;
    max-width: 36px !important;
    max-height: 36px !important;
    flex: 0 0 36px !important;
    border-radius: 6px;
}

.team-crest {
    object-fit: contain;
    display: block;
}

.team-crest-fallback {
    display: grid;
    place-items: center;
    background: #eaf0f6;
    color: #254671;
    font-size: 11px;
    font-weight: 800;
}

.team-crest[hidden],
.team-crest-fallback[hidden] {
    display: none !important;
}

.team-cell-name {
    min-width: 0;
    line-height: 1.35;
    font-weight: 600;
}

@media (max-width: 600px) {
    .team-crest,
    .team-crest-fallback {
        width: 30px !important;
        height: 30px !important;
        max-width: 30px !important;
        max-height: 30px !important;
        flex-basis: 30px !important;
    }

    .team-cell {
        gap: 7px;
    }
}