/* =========================================================
   ESAT Admin v3
   Este archivo corrige el panel admin sin tocar el diseño público.
   ========================================================= */
:root{
    --esat-bg:#eef3f8;
    --esat-panel:#ffffff;
    --esat-dark:#071018;
    --esat-dark-2:#0e1a26;
    --esat-line:#d9e1ea;
    --esat-text:#101c2c;
    --esat-muted:#64748b;
    --esat-lime:#9dff00;
    --esat-lime-2:#c7ff52;
    --esat-red:#c8102e;
    --esat-blue:#20aee5;
    --esat-radius:18px;
    --esat-shadow:0 14px 34px rgba(15,23,42,.10);
    --esat-shadow-soft:0 8px 22px rgba(15,23,42,.08);
}

html{scroll-behavior:smooth;}
body.esat-admin-body{
    display:block !important;
    min-height:100vh;
    margin:0;
    background:var(--esat-bg) !important;
    color:var(--esat-text);
    font-family:Arial, Helvetica, sans-serif;
    overflow-x:hidden;
}

.esat-admin-shell{
    min-height:100vh;
    display:flex;
    align-items:stretch;
    width:100%;
}

.esat-admin-sidebar{
    width:286px;
    flex:0 0 286px;
    min-height:100vh;
    position:sticky;
    top:0;
    align-self:flex-start;
    background:linear-gradient(180deg,#070d13 0%,#101b28 100%);
    color:#fff;
    padding:26px 20px;
    display:flex;
    flex-direction:column;
    gap:24px;
    box-shadow:10px 0 32px rgba(7,16,24,.12);
    z-index:40;
}

.esat-admin-brand{
    display:flex;
    flex-direction:column;
    gap:12px;
    padding:4px 8px 18px;
    border-bottom:1px solid rgba(255,255,255,.12);
}
.esat-admin-brand img{
    display:block;
    width:142px;
    height:auto;
    max-height:none;
    object-fit:contain;
}
.esat-admin-brand span{
    color:var(--esat-lime);
    font-weight:900;
    font-size:12px;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.esat-admin-nav{
    display:flex;
    flex-direction:column;
    gap:8px;
}
.esat-admin-nav a{
    display:flex;
    align-items:center;
    gap:10px;
    padding:13px 14px;
    border-radius:14px;
    color:#eef6ff;
    text-decoration:none;
    font-weight:900;
    font-size:14px;
    line-height:1.2;
    transition:background .16s ease, color .16s ease, transform .16s ease;
}
.esat-admin-nav a span{width:22px;text-align:center;}
.esat-admin-nav a:hover{
    background:rgba(255,255,255,.10);
    transform:translateX(2px);
}
.esat-admin-nav a.is-active{
    background:var(--esat-lime);
    color:#071018;
    box-shadow:0 8px 18px rgba(157,255,0,.24);
}

.esat-admin-userbox{
    margin-top:auto;
    padding:16px;
    border-radius:16px;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.12);
}
.esat-admin-userbox strong,
.esat-admin-userbox small{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
}
.esat-admin-userbox strong{font-size:14px;margin-bottom:4px;}
.esat-admin-userbox small{font-size:12px;color:#b7c3d1;}
.esat-admin-userbox a{
    margin-top:14px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:40px;
    border-radius:999px;
    background:#ffffff;
    color:#071018;
    font-size:13px;
    font-weight:900;
    text-decoration:none;
}

.esat-admin-main{
    flex:1 1 auto;
    min-width:0;
    padding:28px;
}
.esat-admin-topbar{
    min-height:86px;
    background:var(--esat-panel);
    border-radius:var(--esat-radius);
    padding:20px 24px;
    margin-bottom:24px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    box-shadow:var(--esat-shadow-soft);
    border-top:5px solid var(--esat-lime);
}
.esat-admin-kicker{
    display:block;
    margin-bottom:4px;
    color:var(--esat-muted);
    font-size:12px;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.esat-admin-topbar h1{
    margin:0;
    color:var(--esat-text);
    font-size:clamp(24px,2.8vw,36px);
    line-height:1.08;
}
.esat-admin-public-link,
.esat-admin-menu-btn{
    border:0;
    border-radius:999px;
    background:#142131;
    color:#fff;
    font-weight:900;
    padding:12px 18px;
    text-decoration:none;
    white-space:nowrap;
    cursor:pointer;
}
.esat-admin-menu-btn{display:none;font-size:18px;padding:10px 14px;}

.esat-admin-content{
    max-width:1220px;
    width:100%;
}
.esat-admin-alert{max-width:1220px;box-shadow:var(--esat-shadow-soft);}

/* Encabezados internos */
.esat-admin-body .admin-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    flex-wrap:wrap;
    margin:0 0 18px;
}
.esat-admin-body .admin-head h1{
    margin:0;
    color:var(--esat-text);
    font-size:clamp(26px,3vw,40px);
    line-height:1.1;
}

/* Tarjetas y formularios */
.esat-admin-body .form-card,
.esat-admin-body .admin-card{
    width:100%;
    max-width:1120px;
    background:#fff;
    border-radius:var(--esat-radius);
    padding:26px;
    box-shadow:var(--esat-shadow);
    border:1px solid rgba(15,23,42,.06);
}
.esat-admin-body .admin-form{max-width:1120px;width:100%;}
.esat-admin-body .narrow-card{max-width:720px;}
.esat-admin-body form label{
    display:flex;
    flex-direction:column;
    gap:8px;
    margin:0 0 16px;
    color:#0f172a;
    font-weight:900;
    font-size:13px;
}
.esat-admin-body input,
.esat-admin-body select,
.esat-admin-body textarea{
    width:100%;
    min-height:46px;
    border:1px solid #cbd5e1;
    border-radius:12px;
    background:#fff;
    color:#0f172a;
    padding:12px 14px;
    font:inherit;
    font-weight:700;
    outline:none;
    box-shadow:none;
}
.esat-admin-body textarea{min-height:108px;resize:vertical;line-height:1.45;}
.esat-admin-body input:focus,
.esat-admin-body select:focus,
.esat-admin-body textarea:focus{
    border-color:var(--esat-blue);
    box-shadow:0 0 0 4px rgba(32,174,229,.15);
}
.esat-admin-body input[type="file"]{
    padding:11px;
    background:#f8fafc;
    min-height:48px;
}
.esat-admin-body .grid-2,
.esat-admin-body .grid-3,
.esat-admin-body .grid-4{
    width:100%;
    align-items:start;
}
.esat-admin-body .grid-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.esat-admin-body .grid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.esat-admin-body .grid-4{grid-template-columns:repeat(4,minmax(0,1fr));}

.esat-form-section{
    border:1px solid var(--esat-line);
    border-radius:16px;
    padding:22px;
    margin-bottom:20px;
    background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);
}
.esat-form-section h2{
    margin:0 0 6px;
    font-size:20px;
    color:#0f172a;
}
.esat-form-section p{
    margin:0 0 18px;
    color:var(--esat-muted);
    font-size:14px;
    line-height:1.45;
}
.esat-help{
    display:block;
    color:var(--esat-muted);
    font-size:12px;
    font-weight:700;
    margin-top:-4px;
}
.esat-preview-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.esat-image-preview{
    border:1px dashed #b8c4d1;
    background:#f8fafc;
    border-radius:14px;
    padding:12px;
}
.esat-image-preview span{
    display:block;
    margin-bottom:8px;
    color:var(--esat-muted);
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
}
.esat-image-preview img{
    display:block;
    width:100%;
    max-height:180px;
    object-fit:cover;
    border-radius:10px;
    background:#071018;
}

/* Botones */
.esat-admin-body .btn,
.esat-admin-body button{
    min-height:40px;
    border:0;
    border-radius:999px;
    padding:10px 18px;
    font-weight:900;
    cursor:pointer;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
}
.esat-admin-body .btn{background:#1f2c3a;color:#fff;}
.esat-admin-body .btn-lime{background:var(--esat-lime);color:#071018;}
.esat-admin-body .btn-red{background:var(--esat-red);color:#fff;}
.esat-admin-body .btn-secondary{background:#e9eef5;color:#142131;}
.esat-admin-body .form-actions,
.esat-admin-body .admin-inline-actions{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    margin-top:18px;
}

/* Dashboard */
.esat-admin-body .dashboard-grid{
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:18px;
}
.esat-admin-body .stat-card{
    border-radius:18px;
    background:#fff;
    padding:22px;
    border-top:6px solid var(--esat-lime);
    box-shadow:var(--esat-shadow-soft);
}
.esat-admin-body .stat-card strong{font-size:44px;color:#0f172a;}
.esat-admin-body .stat-card span{font-size:13px;text-transform:uppercase;letter-spacing:.04em;}
.esat-admin-body .action-grid{
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:18px;
}
.esat-admin-body .admin-action{
    border-radius:18px;
    min-height:96px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,#101b28,#1e344d);
    box-shadow:var(--esat-shadow-soft);
    border-bottom:5px solid var(--esat-lime);
}

/* Tablas */
.esat-table-wrap{
    width:100%;
    overflow-x:auto;
    border-radius:16px;
    box-shadow:var(--esat-shadow-soft);
    background:#fff;
}
.esat-admin-body .admin-table{
    width:100%;
    min-width:820px;
    border-collapse:separate;
    border-spacing:0;
    background:#fff;
    border-radius:16px;
    overflow:hidden;
    box-shadow:none;
}
.esat-admin-body .admin-table th{
    background:#0d1824;
    color:#fff;
    text-transform:uppercase;
    letter-spacing:.04em;
    font-size:12px;
    white-space:nowrap;
}
.esat-admin-body .admin-table th,
.esat-admin-body .admin-table td{
    padding:14px 16px;
    border-bottom:1px solid #e6edf4;
    vertical-align:middle;
}
.esat-admin-body .admin-table tr:last-child td{border-bottom:0;}
.esat-admin-body .admin-table small{color:var(--esat-muted);font-weight:700;}
.esat-admin-body .row-actions{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}
.esat-admin-body .row-actions a,
.esat-admin-body .row-actions button{
    min-height:34px;
    padding:8px 12px;
    border-radius:999px;
    background:#eef3f8;
    color:#132032;
    font-size:12px;
    font-weight:900;
    text-decoration:none;
}
.esat-admin-body .row-actions a:hover,
.esat-admin-body .row-actions button:hover{background:#dfe8f1;}

.esat-status-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    padding:6px 10px;
    font-size:12px;
    font-weight:900;
    background:#edf2f7;
    color:#142131;
    white-space:nowrap;
}
.esat-status-proximos{background:#e8ffcc;color:#1f5800;}
.esat-status-en_proceso{background:#dff7ff;color:#075a70;}
.esat-status-finalizados{background:#ffe4e9;color:#9b0014;}

/* Login */
body.esat-login-body .login-card{
    border-radius:22px;
    padding:36px;
    border-top:7px solid var(--esat-lime);
}
body.esat-login-body .login-card img{height:auto;width:150px;}

@media(max-width:1120px){
    .esat-admin-sidebar{width:260px;flex-basis:260px;}
    .esat-admin-main{padding:22px;}
}

@media(max-width:980px){
    .esat-admin-shell{display:block;}
    .esat-admin-sidebar{
        position:fixed;
        inset:0 auto 0 0;
        height:100vh;
        transform:translateX(-105%);
        transition:transform .2s ease;
    }
    .esat-admin-menu-open .esat-admin-sidebar{transform:translateX(0);}
    .esat-admin-main{padding:18px;}
    .esat-admin-menu-btn{display:inline-flex;}
    .esat-admin-public-link{display:none;}
    .esat-admin-topbar{align-items:flex-start;justify-content:flex-start;}
}

@media(max-width:720px){
    .esat-admin-body .grid-2,
    .esat-admin-body .grid-3,
    .esat-admin-body .grid-4,
    .esat-preview-grid{
        grid-template-columns:1fr;
    }
    .esat-admin-body .form-card,
    .esat-admin-body .admin-card,
    .esat-form-section{padding:18px;}
    .esat-admin-topbar{padding:16px;}
    .esat-admin-body .admin-head h1{font-size:28px;}
}

/* =========================================================
   ESAT Admin v11 · Estado torneo Round Robin y marcadores
   ========================================================= */
.esat-status-progress{display:flex;align-items:center;gap:10px;margin:8px 0 24px;padding:18px;border-radius:14px;background:#f8fafc;border:1px solid #dbe3ec}
.esat-status-step{display:flex;align-items:center;gap:8px;color:#94a3b8;white-space:nowrap}
.esat-status-step span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#e2e8f0;color:#64748b;font-weight:1000}
.esat-status-step.is-active,.esat-status-step.is-complete{color:#0f172a}
.esat-status-step.is-active span{background:var(--esat-lime);color:#071018;box-shadow:0 0 0 5px rgba(157,255,0,.18)}
.esat-status-step.is-complete span{background:#142131;color:#fff}
.esat-status-line{height:4px;flex:1;min-width:30px;border-radius:999px;background:#e2e8f0}
.esat-status-line.is-complete{background:var(--esat-lime)}

.rr-draw-form{margin-bottom:26px}
.rr-team-selector{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.esat-admin-body .rr-team-option{display:flex;flex-direction:row;align-items:center;gap:11px;margin:0;padding:12px;border:1px solid #d7e0e9;border-radius:12px;background:#f8fafc;cursor:pointer}
.esat-admin-body .rr-team-option input{width:20px;min-height:20px;height:20px;flex:0 0 20px;margin:0;padding:0}
.rr-team-option span{display:flex;flex-direction:column;gap:2px;min-width:0}
.rr-team-option small{color:#64748b;font-weight:700}
.rr-team-option:has(input:checked){border-color:var(--esat-lime);background:#f4ffe4;box-shadow:0 0 0 3px rgba(157,255,0,.13)}
.rr-team-option.is-disabled{opacity:.45;cursor:not-allowed}
.rr-selection-count{font-weight:900;color:#475569}
.rr-selection-count.is-error{color:#c8102e}
.rr-admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin:28px 0 14px}
.rr-admin-toolbar h2{margin:0}
.rr-admin-toolbar p{margin:4px 0 0}
.esat-admin-body .rr-card{max-width:100%}
.esat-admin-body .rr-result a:hover .rr-set{outline:2px solid var(--esat-blue)}

.esat-set-score-grid{display:grid;grid-template-columns:minmax(90px,.55fr) repeat(2,minmax(110px,1fr));gap:8px;align-items:center;margin:14px 0 8px;max-width:720px}
.esat-set-score-grid .esat-set-head{padding:10px;border-radius:8px;background:#142131;color:#fff;text-align:center;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.esat-set-score-grid .esat-set-label{font-weight:900;color:#334155;padding-left:8px}
.esat-admin-body .esat-set-score-grid input{margin:0;text-align:center;font-size:1rem;font-weight:1000}
.esat-auto-players{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:10px 0 16px}
.esat-auto-players>div{padding:16px;border:1px solid #d7e0e9;border-radius:12px;background:#f8fafc}
.esat-auto-players small,.esat-auto-players strong{display:block}
.esat-auto-players small{color:#64748b;margin-bottom:5px}
.esat-auto-players strong{font-size:1.05rem}
.esat-notes-cell{min-width:260px;white-space:normal;line-height:1.4}
.esat-registrations-table{min-width:1350px}

@media (max-width:800px){
  .esat-status-progress{align-items:flex-start;flex-direction:column}
  .esat-status-line{width:4px;height:24px;min-width:4px;margin-left:14px}
  .rr-team-selector{grid-template-columns:1fr}
  .esat-auto-players{grid-template-columns:1fr}
}
.esat-auto-round{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:10px 0 12px}
.esat-auto-round>div{padding:14px 16px;border-radius:12px;background:#142131;color:#fff}
.esat-auto-round small,.esat-auto-round strong{display:block}
.esat-auto-round small{color:#b9c7d5;margin-bottom:4px}
@media (max-width:700px){.esat-auto-round{grid-template-columns:1fr}}

/* ESAT eliminatorias v16 */
.admin-head-actions {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.rr-admin-toolbar .admin-head-actions form {
    margin: 0;
}

.elimination-generate-box {
    display: flex;
    justify-content: space-between;
    gap: 22px;
    align-items: center;
    margin-bottom: 18px;
}

.elimination-tabs {
    display: flex;
    gap: 10px;
    margin: 14px 0 22px;
    flex-wrap: wrap;
}

.elimination-tabs a {
    background: #0d1c2d;
    color: #ffffff;
    border-radius: 999px;
    padding: 12px 20px;
    text-decoration: none;
    font-weight: 900;
}

.elimination-tabs a:hover {
    background: #8cff00;
    color: #07111f;
}

.elimination-stage {
    margin-bottom: 24px;
}

.elimination-stage-head {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    margin-bottom: 14px;
}

.elimination-round-table {
    margin-top: 18px;
}

.elimination-round-table h3 {
    background: linear-gradient(90deg, #008996, #24b6c8);
    color: #fff;
    padding: 13px 18px;
    border-radius: 14px 14px 0 0;
    margin: 0;
}

.elimination-table {
    min-width: 980px;
    border-radius: 0 0 14px 14px;
    overflow: hidden;
}

.elimination-table td,
.elimination-table th {
    vertical-align: middle;
}

.status-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 7px 12px;
    background: #eef3f8;
    color: #0d1c2d;
    font-weight: 800;
    font-size: 13px;
}

@media (max-width: 900px) {
    .elimination-generate-box {
        align-items: stretch;
        flex-direction: column;
    }
    .admin-head-actions {
        justify-content: flex-start;
    }
}
