/* BuscoAmistoso - panel compacto estable */
:root{
  --ba-bg:#f5f7fb;
  --ba-card:#fff;
  --ba-text:#0f172a;
  --ba-muted:#64748b;
  --ba-border:#dbe3ee;
  --ba-soft:#f1f5f9;
  --ba-primary:#0f766e;
  --ba-primary-dark:#0b5f59;
  --ba-danger:#dc2626;
  --ba-radius:14px;
  --ba-shadow:0 8px 24px rgba(15,23,42,.07);
}
body{background:var(--ba-bg); color:var(--ba-text);} 
.app-navbar{box-shadow:0 1px 10px rgba(15,23,42,.04);} 

/* Layout panel */
.panel-shell,.ba-panel-layout{display:grid; grid-template-columns:210px minmax(0,1fr); gap:16px; align-items:start;}
.panel-content,.ba-panel-main{min-width:0; width:100%;}
.admin-sidebar,.sidebar,.ba-sidebar{background:#0f172a; color:#fff; border-radius:16px; padding:10px; position:sticky; top:76px; box-shadow:var(--ba-shadow);}
.admin-sidebar a,.sidebar a,.ba-sidebar a{display:flex; align-items:center; gap:8px; color:#dbeafe; text-decoration:none; padding:8px 10px; border-radius:10px; font-size:.9rem; font-weight:750; margin-bottom:2px; line-height:1.15; white-space:nowrap;}
.admin-sidebar a:hover,.sidebar a:hover,.ba-sidebar a:hover,.admin-sidebar a.active,.sidebar a.active,.ba-sidebar a.active{background:rgba(255,255,255,.13); color:#fff;}
.admin-sidebar i,.sidebar i,.ba-sidebar i{font-size:1rem; opacity:.95;}

/* Contenedores */
.ba-card,.card-soft,.table-card{background:var(--ba-card); border:1px solid var(--ba-border); border-radius:var(--ba-radius); box-shadow:var(--ba-shadow); padding:14px; margin-bottom:14px;}
.ba-card-compact{padding:12px 14px;}
.ba-toolbar{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px;}
.ba-toolbar-actions{display:flex; gap:8px; flex-wrap:wrap; align-items:center;}
.ba-page-title,.section-title{font-size:1.3rem; line-height:1.1; margin:0; font-weight:900; letter-spacing:-.025em;}
.ba-section-title{font-size:1rem; margin:0 0 10px; font-weight:900;}
.muted,.ba-muted{color:var(--ba-muted)!important;}
.ba-mini{font-size:.8rem;}

/* Formularios compactos pero legibles */
.ba-form-grid,.ba-compact-grid{display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:12px; align-items:end;}
.ba-field,.ba-span-6{grid-column:span 6; min-width:0;}
.ba-field-3,.ba-span-3{grid-column:span 3; min-width:0;}
.ba-field-4,.ba-span-4{grid-column:span 4; min-width:0;}
.ba-field-8,.ba-span-8{grid-column:span 8; min-width:0;}
.ba-field-12,.ba-span-12{grid-column:1/-1; min-width:0;}
.ba-field label,.form-label{font-size:.82rem; font-weight:800; color:#334155; margin-bottom:5px; display:block;}
.required{color:var(--ba-danger); font-weight:900;}
.ba-field input,.ba-field select,.ba-field textarea,.form-control,.form-select{
  width:100%; min-height:42px; border:1px solid var(--ba-border); border-radius:11px; padding:9px 11px; font-size:.94rem; background:#fff; color:var(--ba-text); box-shadow:none;
}
textarea.form-control,.ba-field textarea{min-height:82px; resize:vertical;}
.form-control:focus,.form-select:focus,.ba-field input:focus,.ba-field select:focus,.ba-field textarea:focus{border-color:var(--ba-primary); box-shadow:0 0 0 3px rgba(15,118,110,.12); outline:0;}

/* Neutralizar columnas bootstrap demasiado estrechas en formularios heredados */
.row.g-2,.row.g-3{--bs-gutter-x:.75rem; --bs-gutter-y:.75rem;}
@media (min-width:768px){
  .row.g-2>.col-md-2,.row.g-3>.col-md-2{width:25%;}
  .row.g-2>.col-md-3,.row.g-3>.col-md-3{width:33.333%;}
  .row.g-2>.col-md-4,.row.g-3>.col-md-4{width:33.333%;}
}

/* Asignaciones */
.list-assign{border:1px solid var(--ba-border); border-radius:12px; padding:8px; background:#fff; max-height:160px; overflow:auto; display:grid; gap:6px;}
.list-assign label{display:flex; gap:8px; align-items:flex-start; padding:7px 8px; background:#f8fafc; border-radius:9px; font-size:.9rem; font-weight:700; margin:0;}
.list-assign input{margin-top:2px; min-height:auto; width:auto;}

/* Tablas */
.table-card{padding:0; overflow:hidden;}
.table{margin:0;}
.table th{font-size:.74rem; text-transform:uppercase; letter-spacing:.04em; color:#475569; background:#f8fafc; padding:9px 10px; white-space:nowrap;}
.table td{padding:9px 10px; border-top:1px solid #eef2f7; vertical-align:middle; font-size:.9rem;}
.ba-actions{display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; align-items:center;}

/* Botones */
.btn,.ba-btn{border-radius:10px; font-weight:800; min-height:36px; padding:7px 11px;}
.btn-sm,.ba-btn-sm{min-height:30px; padding:5px 8px; font-size:.8rem; border-radius:8px;}
.btn-danger-soft,.ba-btn-danger{background:#fff; border:1px solid #fecaca; color:#b91c1c;}
.btn-danger-soft:hover,.ba-btn-danger:hover{background:#fef2f2; color:#991b1b;}
.btn-soft{background:#f8fafc; border:1px solid var(--ba-border); color:#0f172a;}
.btn-soft:hover{background:#eef2f7;}

/* Alertas y badges */
.ba-alert{border-radius:12px; padding:10px 12px; margin-bottom:12px; font-weight:700; border:1px solid transparent; font-size:.9rem;}
.ba-alert-ok{background:#ecfdf5; border-color:#bbf7d0; color:#166534;}
.ba-alert-error{background:#fef2f2; border-color:#fecaca; color:#991b1b;}
.ba-badge{display:inline-flex; align-items:center; padding:4px 8px; border-radius:999px; font-size:.74rem; font-weight:900; background:#eef2ff; color:#3730a3; white-space:nowrap;}
.ba-badge-muted{background:#f1f5f9; color:#475569;}
.ba-badge-ok{background:#dcfce7; color:#166534;}
.ba-badge-warn{background:#fef3c7; color:#92400e;}
.empty-state{padding:18px; text-align:center; color:#64748b; font-weight:700;}

/* Escudos */
.club-shield,.escudo-club,.team-shield,.amistoso-card img,.match-card img{width:44px!important; height:44px!important; min-width:44px!important; max-width:44px!important; object-fit:contain!important; border-radius:10px; background:#fff; padding:4px; border:1px solid rgba(15,23,42,.10);}
.club-shield-wrap,.escudo-club-wrap,.team-shield-wrap{width:52px; height:52px; min-width:52px; display:flex; align-items:center; justify-content:center; background:#f8fafc; border-radius:13px;}

@media (max-width:992px){
  .panel-shell,.ba-panel-layout{grid-template-columns:1fr; gap:10px;}
  .admin-sidebar,.sidebar,.ba-sidebar{position:relative; top:auto; display:flex; gap:6px; overflow-x:auto; border-radius:14px; padding:8px; margin-bottom:4px;}
  .admin-sidebar a,.sidebar a,.ba-sidebar a{margin:0; font-size:.84rem; padding:8px 9px;}
}
@media (max-width:768px){
  .container.py-4{padding-top:1rem!important; padding-bottom:1rem!important;}
  .ba-card,.card-soft,.table-card{padding:12px; border-radius:13px; margin-bottom:12px;}
  .table-card{padding:0;}
  .ba-form-grid,.ba-compact-grid{grid-template-columns:1fr; gap:10px;}
  .ba-field,.ba-field-3,.ba-field-4,.ba-field-8,.ba-field-12,.ba-span-3,.ba-span-4,.ba-span-6,.ba-span-8,.ba-span-12{grid-column:1/-1;}
  .ba-page-title,.section-title{font-size:1.18rem;}
  .table th,.table td{font-size:.82rem; padding:8px;}
  .ba-actions{justify-content:flex-start;}
}

/* V1 compact cleanup */
main > .container, .panel-page { max-width: 1180px; }
.panel-shell, .ba-panel-layout { margin-top: 0; }
.ba-sidebar { min-width: 0; }
.ba-sidebar a span { overflow: hidden; text-overflow: ellipsis; }
.card-soft, .ba-card { padding: 16px; }
.form-label { margin-bottom: 4px !important; }
.ba-compact-grid { gap: 12px !important; }
.ba-compact-grid .form-control, .ba-compact-grid .form-select { min-width: 0; }
.table-responsive { overflow-x: auto; }
.club-shield-sm { width: 36px !important; height: 36px !important; object-fit: contain !important; background:#fff; border:1px solid var(--ba-border); border-radius:10px; padding:3px; }
.admin-home-card { display:block; background:#fff; border:1px solid var(--ba-border); border-radius:14px; padding:16px; text-decoration:none; color:var(--ba-text); box-shadow:var(--ba-shadow); }
.admin-home-card strong { display:block; font-size:1.55rem; line-height:1; }
.admin-home-card span { color:var(--ba-muted); font-weight:800; font-size:.86rem; }
@media (min-width: 768px){
  .ba-compact-grid .ba-span-3{ grid-column: span 3; }
  .ba-compact-grid .ba-span-4{ grid-column: span 4; }
  .ba-compact-grid .ba-span-6{ grid-column: span 6; }
  .ba-compact-grid .ba-span-8{ grid-column: span 8; }
  .ba-compact-grid .ba-span-12{ grid-column: 1 / -1; }
}
@media (max-width: 767px){
  .ba-sidebar { margin-bottom: 12px; }
  .card-soft, .ba-card { padding: 12px; }
  .ba-toolbar { align-items:flex-start; }
}

/* =========================================================
   BUSCOAMISTOSO V1 - AJUSTE FINAL ADMIN/CLUB
   Escudos, tablas, menús y formularios compactos
   ========================================================= */

/* Layout general de panel */
body.admin-area,
body.club-area,
.panel-page{
    background:#f5f7fb;
}

.panel-shell,
.ba-panel-layout{
    gap:14px !important;
    align-items:flex-start;
}

.panel-content,
.ba-panel-main{
    min-width:0;
}

main .container.py-4,
main .container-fluid.py-4{
    padding-top:18px !important;
    padding-bottom:18px !important;
}

/* Menús laterales: compactos y siempre legibles */
.admin-sidebar,
.sidebar,
.ba-sidebar{
    width:100%;
    background:#0f172a !important;
    color:#fff !important;
    border-radius:16px !important;
    padding:9px !important;
    border:0 !important;
    box-shadow:0 10px 28px rgba(15,23,42,.10) !important;
}

.admin-sidebar a,
.sidebar a,
.ba-sidebar a{
    min-height:36px;
    color:#dbeafe !important;
    padding:8px 10px !important;
    border-radius:10px !important;
    font-size:.88rem !important;
    line-height:1.15 !important;
    font-weight:800 !important;
    margin-bottom:2px !important;
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
}

.admin-sidebar a:hover,
.sidebar a:hover,
.ba-sidebar a:hover,
.admin-sidebar a.active,
.sidebar a.active,
.ba-sidebar a.active{
    color:#fff !important;
    background:rgba(255,255,255,.14) !important;
}

/* Tarjetas y bloques */
.ba-card,
.card-soft,
.table-card,
.stat-card,
.auth-card{
    border-radius:15px !important;
    border:1px solid #dbe3ee !important;
    box-shadow:0 8px 22px rgba(15,23,42,.06) !important;
}

.ba-card,
.card-soft,
.stat-card{
    padding:14px !important;
    margin-bottom:14px !important;
}

.ba-toolbar{
    margin-bottom:12px !important;
    gap:10px !important;
}

.ba-page-title,
.section-title{
    font-size:1.22rem !important;
    line-height:1.12 !important;
    margin:0 !important;
    font-weight:950 !important;
}

.ba-section-title,
.card-title{
    font-size:1rem !important;
    font-weight:900 !important;
    margin-bottom:10px !important;
}

/* Formularios: compactos, sin campos aplastados */
.form-label,
.ba-field label{
    font-size:.81rem !important;
    line-height:1.15 !important;
    font-weight:850 !important;
    color:#334155 !important;
    margin-bottom:5px !important;
}

.form-control,
.form-select,
.ba-field input,
.ba-field select,
.ba-field textarea{
    min-height:40px !important;
    font-size:.92rem !important;
    padding:8px 10px !important;
    border-radius:10px !important;
}

textarea.form-control,
.ba-field textarea{
    min-height:78px !important;
}

.row.g-2,
.row.g-3{
    --bs-gutter-x:.7rem !important;
    --bs-gutter-y:.7rem !important;
}

/* Evita columnas demasiado estrechas en formularios del panel */
@media (min-width:768px){
    .panel-content .row.g-2 > .col-md-2,
    .panel-content .row.g-3 > .col-md-2,
    .ba-panel-main .row.g-2 > .col-md-2,
    .ba-panel-main .row.g-3 > .col-md-2{width:25% !important;}

    .panel-content .row.g-2 > .col-md-3,
    .panel-content .row.g-3 > .col-md-3,
    .ba-panel-main .row.g-2 > .col-md-3,
    .ba-panel-main .row.g-3 > .col-md-3{width:33.333% !important;}

    .panel-content .row.g-2 > .col-md-4,
    .panel-content .row.g-3 > .col-md-4,
    .ba-panel-main .row.g-2 > .col-md-4,
    .ba-panel-main .row.g-3 > .col-md-4{width:33.333% !important;}
}

/* Tablas compactas */
.table-card{
    padding:0 !important;
    overflow:hidden !important;
}

.table-responsive{
    overflow-x:auto !important;
}

.table{
    margin-bottom:0 !important;
    font-size:.9rem !important;
}

.table th{
    background:#f8fafc !important;
    color:#475569 !important;
    font-size:.72rem !important;
    text-transform:uppercase !important;
    letter-spacing:.045em !important;
    font-weight:900 !important;
    padding:8px 10px !important;
    white-space:nowrap !important;
    vertical-align:middle !important;
}

.table td{
    padding:8px 10px !important;
    border-top:1px solid #eef2f7 !important;
    vertical-align:middle !important;
    font-size:.88rem !important;
}

.table td p,
.table td .mb-0{
    margin-bottom:0 !important;
}

/* Botones */
.btn,
.ba-btn{
    min-height:34px !important;
    padding:6px 10px !important;
    border-radius:10px !important;
    font-size:.88rem !important;
    font-weight:850 !important;
}

.btn-sm,
.ba-btn-sm{
    min-height:29px !important;
    padding:4px 8px !important;
    font-size:.78rem !important;
    border-radius:8px !important;
}

.ba-actions,
.table .actions,
.table .btn-group{
    display:flex !important;
    gap:5px !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    justify-content:flex-end !important;
}

/* Escudos como icono fijo en TODOS los paneles */
.club-logo,
.club-shield,
.club-shield-sm,
.escudo-club,
.escudo-club-sm,
.team-shield,
.admin-club-logo,
.table-club-logo,
.ba-club-logo,
.ba-escudo,
.panel-content img[src*="uploads/escudos"],
.panel-content img[src*="/escudos/"],
.ba-panel-main img[src*="uploads/escudos"],
.ba-panel-main img[src*="/escudos/"],
.admin-sidebar + * img[src*="uploads/escudos"],
.table img[src*="uploads/escudos"],
.table img[src*="/escudos/"]{
    width:40px !important;
    height:40px !important;
    min-width:40px !important;
    max-width:40px !important;
    min-height:40px !important;
    max-height:40px !important;
    object-fit:contain !important;
    display:inline-flex !important;
    vertical-align:middle !important;
    background:#fff !important;
    border:1px solid #dbe3ee !important;
    border-radius:10px !important;
    padding:3px !important;
    box-shadow:0 1px 3px rgba(15,23,42,.08) !important;
}

/* Escudo en cabeceras de ficha, un poco mayor pero controlado */
.club-profile-logo,
.club-detail-logo,
.ba-profile-logo{
    width:58px !important;
    height:58px !important;
    min-width:58px !important;
    max-width:58px !important;
    object-fit:contain !important;
    background:#fff !important;
    border:1px solid #dbe3ee !important;
    border-radius:14px !important;
    padding:5px !important;
}

/* Si algún escudo se imprime sin clase fuera de tabla */
.ba-card img[src*="uploads/escudos"],
.card-soft img[src*="uploads/escudos"],
.stat-card img[src*="uploads/escudos"]{
    width:44px !important;
    height:44px !important;
    max-width:44px !important;
    max-height:44px !important;
    object-fit:contain !important;
}

/* Badges */
.badge,
.ba-badge,
.badge-status{
    border-radius:999px !important;
    font-weight:900 !important;
    letter-spacing:0 !important;
}

/* Responsive panel */
@media (max-width:992px){
    .panel-shell,
    .ba-panel-layout{
        grid-template-columns:1fr !important;
        gap:10px !important;
    }

    .admin-sidebar,
    .sidebar,
    .ba-sidebar{
        position:relative !important;
        top:auto !important;
        display:flex !important;
        gap:6px !important;
        overflow-x:auto !important;
        padding:8px !important;
        margin-bottom:8px !important;
        -webkit-overflow-scrolling:touch;
    }

    .admin-sidebar a,
    .sidebar a,
    .ba-sidebar a{
        flex:0 0 auto !important;
        margin-bottom:0 !important;
        white-space:nowrap !important;
    }
}

@media (max-width:768px){
    main .container.py-4,
    main .container-fluid.py-4{
        padding-top:12px !important;
        padding-bottom:12px !important;
    }

    .ba-card,
    .card-soft,
    .stat-card{
        padding:12px !important;
        border-radius:13px !important;
        margin-bottom:12px !important;
    }

    .table th,
    .table td{
        padding:7px 8px !important;
        font-size:.81rem !important;
    }

    .club-logo,
    .club-shield,
    .club-shield-sm,
    .escudo-club,
    .escudo-club-sm,
    .team-shield,
    .admin-club-logo,
    .table-club-logo,
    .ba-club-logo,
    .ba-escudo,
    .panel-content img[src*="uploads/escudos"],
    .panel-content img[src*="/escudos/"],
    .ba-panel-main img[src*="uploads/escudos"],
    .ba-panel-main img[src*="/escudos/"],
    .table img[src*="uploads/escudos"],
    .table img[src*="/escudos/"]{
        width:34px !important;
        height:34px !important;
        min-width:34px !important;
        max-width:34px !important;
        min-height:34px !important;
        max-height:34px !important;
        border-radius:9px !important;
        padding:2px !important;
    }

    .ba-page-title,
    .section-title{
        font-size:1.12rem !important;
    }

    .ba-actions,
    .table .actions,
    .table .btn-group{
        justify-content:flex-start !important;
    }
}

/* Calendario múltiple Nuevo amistoso */
.ba-calendar-field{
    display:flex;
    align-items:center;
    gap:.5rem;
    flex-wrap:wrap;
}
.ba-calendar-modal-content{
    border:0;
    border-radius:22px;
    overflow:hidden;
}
.ba-calendar-tools{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.75rem;
}
.ba-calendar-weekdays,
.ba-calendar-grid{
    display:grid;
    grid-template-columns:repeat(7, minmax(0,1fr));
    gap:.35rem;
}
.ba-calendar-weekdays span{
    text-align:center;
    font-size:.75rem;
    font-weight:800;
    color:#64748b;
    text-transform:uppercase;
}
.ba-calendar-empty{
    min-height:42px;
}
.ba-calendar-day{
    min-height:42px;
    border:1px solid #e2e8f0;
    background:#fff;
    border-radius:12px;
    font-weight:800;
    color:#0f172a;
}
.ba-calendar-day:hover:not(:disabled){
    border-color:#0f172a;
    background:#f8fafc;
}
.ba-calendar-day.is-selected{
    background:#0f172a;
    border-color:#0f172a;
    color:#fff;
}
.ba-calendar-day:disabled{
    opacity:.35;
    cursor:not-allowed;
    background:#f1f5f9;
}
.ba-selected-dates{
    display:flex;
    flex-direction:column;
    gap:.65rem;
}
.ba-date-row{
    border:1px solid #e2e8f0;
    border-radius:16px;
    padding:.75rem;
    background:#fff;
    display:grid;
    grid-template-columns:180px 1fr;
    gap:.75rem;
    align-items:center;
}
.ba-date-main{
    display:flex;
    flex-direction:column;
    gap:.15rem;
}
.ba-date-options{
    display:grid;
    grid-template-columns:minmax(160px,1fr) minmax(120px,.6fr);
    gap:.5rem;
}
@media (max-width: 576px){
    .ba-calendar-day{min-height:38px;border-radius:10px;font-size:.9rem;}
    .ba-calendar-empty{min-height:38px;}
    .ba-calendar-tools{gap:.5rem;}
    .ba-calendar-tools .btn{font-size:.78rem;padding:.35rem .5rem;}
    .ba-date-row{grid-template-columns:1fr;}
    .ba-date-options{grid-template-columns:1fr;}
}
