:root{
  --amarillo:#f5c400;--amarillo-claro:#ffd630;--negro:#111111;
  --gris-oscuro:#1a1a1a;--gris-medio:#555555;--gris-claro:#e0e0e0;
  --gris-bg:#f4f4f4;--blanco:#ffffff;--rojo:#e03e3e;--azul:#2563eb;--verde:#16a34a;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Barlow',sans-serif;background:var(--gris-bg);color:var(--negro);min-height:100vh;}

.sidebar-hidden{display:none !important;}

/* ── LOGIN ── */
#login-screen{
  display:flex;align-items:center;justify-content:center;
  min-height:100vh;background:var(--negro);
  background-image:repeating-linear-gradient(45deg,rgba(245,196,0,0.03) 0px,rgba(245,196,0,0.03) 1px,transparent 1px,transparent 50px);
}
.login-box{
  background:var(--blanco);border-radius:16px;padding:40px;width:420px;max-width:94vw;
  box-shadow:0 24px 60px rgba(0,0,0,0.4);border-top:5px solid var(--amarillo);
}
.login-logo{text-align:center;margin-bottom:28px;}
.login-logo img{width:64px;height:auto;margin-bottom:10px;}
.login-logo .title{font-family:'Barlow Condensed',sans-serif;font-size:26px;font-weight:900;letter-spacing:2px;text-transform:uppercase;}
.login-logo .sub{font-size:11px;color:var(--gris-medio);text-transform:uppercase;letter-spacing:2px;margin-top:2px;}
.login-field{margin-bottom:16px;}
.login-field label{font-size:10.5px;text-transform:uppercase;letter-spacing:1.5px;font-weight:700;color:var(--gris-medio);display:block;margin-bottom:5px;}
.login-field input{width:100%;border:2px solid var(--gris-claro);border-radius:8px;padding:11px 14px;font-family:'Barlow',sans-serif;font-size:14px;outline:none;transition:border-color 0.15s;}
.login-field input:focus{border-color:var(--amarillo);}
.login-btn{width:100%;padding:12px;background:var(--amarillo);color:var(--negro);border:none;border-radius:8px;font-family:'Barlow Condensed',sans-serif;font-size:18px;font-weight:900;letter-spacing:1px;cursor:pointer;transition:all 0.15s;margin-top:4px;}
.login-btn:hover{background:var(--amarillo-claro);}
.login-error{background:#fce4ec;color:#c62828;border-radius:7px;padding:10px 14px;font-size:13px;font-weight:600;margin-top:12px;display:none;}
.login-loading{text-align:center;color:var(--gris-medio);font-size:13px;margin-top:12px;display:none;}

/* ── APP ── */
#app{display:none;}
.sidebar{position:fixed;left:0;top:0;width:220px;height:100vh;background:var(--negro);display:flex;flex-direction:column;z-index:100;}
.sidebar-logo{padding:16px;background:var(--amarillo);border-bottom:3px solid #c9a000;}
.sidebar-logo img{width:50px;height:auto;display:block;margin-bottom:8px;}
.sidebar-logo .club-name{font-family:'Barlow Condensed',sans-serif;font-size:20px;font-weight:900;color:var(--negro);letter-spacing:2px;line-height:1.1;}
.sidebar-logo .club-sub{font-size:9px;color:rgba(0,0,0,0.6);text-transform:uppercase;letter-spacing:2px;margin-top:2px;font-weight:600;}
.sidebar-nav{flex:1;padding:12px 0;overflow-y:auto;}
.nav-section-label{font-size:9px;text-transform:uppercase;letter-spacing:2px;color:rgba(255,255,255,0.3);padding:10px 16px 4px;}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 16px;color:rgba(255,255,255,0.6);cursor:pointer;font-size:13.5px;font-weight:500;border-left:3px solid transparent;transition:all 0.15s;}
.nav-item:hover{background:rgba(255,255,255,0.06);color:var(--blanco);}
.nav-item.active{background:rgba(245,196,0,0.12);color:var(--amarillo);border-left-color:var(--amarillo);font-weight:700;}
.nav-item.hidden{display:none;}
.sidebar-user{padding:12px 16px;border-top:1px solid rgba(255,255,255,0.08);}
.sidebar-user .user-name{font-size:12px;font-weight:700;color:var(--blanco);}
.sidebar-user .user-rol{font-size:10px;color:var(--amarillo);text-transform:uppercase;letter-spacing:1px;margin-top:1px;}
.sidebar-user .logout-btn{margin-top:8px;width:100%;padding:6px;background:transparent;border:1px solid rgba(255,255,255,0.2);color:rgba(255,255,255,0.5);border-radius:5px;cursor:pointer;font-size:11px;font-family:'Barlow',sans-serif;transition:all 0.15s;}
.sidebar-user .logout-btn:hover{background:var(--rojo);border-color:var(--rojo);color:var(--blanco);}

.main{margin-left:220px;min-height:100vh;}
.mobile-menu-btn{display:none;align-items:center;justify-content:center;width:42px;height:42px;border:2px solid var(--negro);border-radius:8px;background:var(--blanco);color:var(--negro);font-size:22px;font-weight:900;cursor:pointer;flex-shrink:0;}
.mobile-menu-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:90;}
body.mobile-menu-open{overflow:hidden;}
body.mobile-menu-open .mobile-menu-overlay{display:block;}
body.mobile-menu-open .sidebar{transform:translateX(0);}
.topbar{background:var(--blanco);border-bottom:3px solid var(--amarillo);padding:12px 28px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50;}
.topbar-title{font-family:'Barlow Condensed',sans-serif;font-size:26px;font-weight:800;letter-spacing:2px;color:var(--negro);text-transform:uppercase;}
.topbar-actions{display:flex;gap:8px;align-items:center;}
.sync-info{font-size:11px;color:var(--gris-medio);}

.btn{padding:7px 16px;border-radius:5px;border:none;cursor:pointer;font-family:'Barlow',sans-serif;font-size:13px;font-weight:700;transition:all 0.15s;}
.btn-primary{background:var(--amarillo);color:var(--negro);}
.btn-primary:hover{background:var(--amarillo-claro);}
.btn-secondary{background:transparent;color:var(--negro);border:2px solid var(--negro);}
.btn-secondary:hover{background:var(--negro);color:var(--amarillo);}
.btn-danger{background:var(--rojo);color:var(--blanco);}
.btn-sm{padding:4px 10px;font-size:11.5px;}
.btn-wa{background:#25D366;color:#fff;display:inline-flex;align-items:center;gap:5px;}
.btn-wa:hover{background:#1da851;}
.btn-wa-mini{background:#25D366;color:#fff;border:none;border-radius:4px;padding:2px 7px;font-size:11px;font-weight:700;cursor:pointer;font-family:'Barlow',sans-serif;line-height:1.6;}
.btn-wa-mini:hover{background:#1da851;}

.content{padding:24px 28px;}
.panel{display:none;}.panel.active{display:block;}

/* STATS */
.stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:24px;}
.stat-card{background:var(--blanco);border-radius:10px;padding:16px;border:1px solid var(--gris-claro);position:relative;overflow:hidden;border-bottom:3px solid var(--amarillo);}
.stat-label{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gris-medio);margin-bottom:6px;font-weight:600;}
.stat-number{font-family:'Barlow Condensed',sans-serif;font-size:44px;font-weight:900;line-height:1;color:var(--negro);}
.stat-icon{position:absolute;top:12px;right:12px;font-size:26px;opacity:0.1;}

/* TOOLBAR */
.toolbar{background:var(--blanco);border-radius:8px;border:1px solid var(--gris-claro);padding:12px 16px;display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap;}
.filter-input,.filter-select{border:1.5px solid var(--gris-claro);border-radius:6px;padding:7px 11px;font-family:'Barlow',sans-serif;font-size:13px;background:var(--blanco);outline:none;transition:border-color 0.15s;}
.filter-input{flex:1;min-width:180px;}
.filter-input:focus,.filter-select:focus{border-color:var(--amarillo);}
.view-toggle{display:flex;gap:4px;margin-left:auto;}
.view-btn{padding:6px 12px;border:1.5px solid var(--gris-claro);background:var(--blanco);border-radius:5px;cursor:pointer;font-size:13px;font-weight:600;transition:all 0.15s;}
.view-btn.active{background:var(--negro);color:var(--amarillo);border-color:var(--negro);}

/* TABLE */
.table-container{background:var(--blanco);border-radius:10px;border:1px solid var(--gris-claro);overflow:hidden;}
table{width:100%;border-collapse:collapse;}
thead{background:var(--negro);border-bottom:3px solid var(--amarillo);}
thead th{padding:11px 14px;text-align:left;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:rgba(255,255,255,0.7);cursor:pointer;user-select:none;}
thead th:hover{color:var(--amarillo);}
tbody tr{border-bottom:1px solid var(--gris-claro);transition:background 0.12s;cursor:pointer;}
tbody tr:hover{background:#fffbe6;}
tbody td{padding:10px 14px;font-size:13px;vertical-align:middle;}
.avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Barlow Condensed',sans-serif;font-size:13px;font-weight:700;color:var(--negro);flex-shrink:0;}
.name-cell{display:flex;align-items:center;gap:9px;}
.name-info strong{font-size:13.5px;display:block;}
.name-info span{font-size:11px;color:var(--gris-medio);}

/* BADGES */
.badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:700;}
.badge-futbol{background:#fffbe6;color:#7a6200;}
.badge-baloncesto{background:#fff3e0;color:#c45000;}
.badge-m{background:#e3f2fd;color:#1565c0;}
.badge-f{background:#fce4ec;color:#c62828;}
.badge-nuevo{background:#e3f2fd;color:#1565c0;}
.badge-contactado{background:#fff9c4;color:#856700;}
.badge-confirmado{background:#e8f5e9;color:#1b7a3c;}
.badge-descartado{background:#fce4ec;color:#c62828;}
.badge-dot{width:5px;height:5px;border-radius:50%;background:currentColor;}
.equipo-badge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:11px;font-weight:900;background:var(--negro);color:var(--amarillo);}


/* EQUIPOS VIEW */
.equipos-wrapper{display:flex;flex-direction:column;gap:24px;}
.equipos-cat-block{background:var(--blanco);border-radius:12px;border:1px solid var(--gris-claro);overflow:hidden;}
.equipos-cat-header{padding:12px 18px;display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none;border-bottom:3px solid var(--amarillo);}
.equipos-cat-header-title{font-family:'Barlow Condensed',sans-serif;font-size:18px;font-weight:900;text-transform:uppercase;letter-spacing:1px;flex:1;}
.equipos-cat-body{padding:16px;}
.equipos-group{margin-bottom:16px;}
.equipos-group:last-child{margin-bottom:0;}
.equipos-group-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:6px;border-bottom:2px solid var(--gris-claro);}
.equipos-group-label{font-family:'Barlow Condensed',sans-serif;font-size:14px;font-weight:900;text-transform:uppercase;letter-spacing:2px;}
.equipos-group-count{background:var(--gris-claro);border-radius:20px;padding:1px 8px;font-size:11px;font-weight:700;color:var(--negro);}
.equipos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;}
.equipos-card{background:var(--gris-bg);border-radius:8px;border:1px solid var(--gris-claro);padding:10px 12px;cursor:pointer;transition:all 0.15s;display:flex;align-items:center;gap:10px;}
.equipos-card:hover{border-color:var(--amarillo);background:var(--blanco);box-shadow:0 2px 8px rgba(0,0,0,0.08);}
.equipos-card-info{flex:1;min-width:0;}
.equipos-card-name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.equipos-card-meta{font-size:11px;color:var(--gris-medio);margin-top:2px;}
.equipos-sin-equipo .equipos-group-label{color:var(--gris-medio);}
.equipos-sin-equipo .equipos-group-header{border-bottom-style:dashed;}

/* KANBAN */
.kanban-wrapper{overflow-x:auto;padding-bottom:16px;}
.kanban-board{display:flex;gap:14px;min-width:max-content;align-items:flex-start;}
.kanban-col{background:var(--blanco);border-radius:10px;border:1px solid var(--gris-claro);width:265px;flex-shrink:0;border-top:3px solid var(--amarillo);}
.kanban-col-header{padding:12px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--gris-claro);}
.kanban-col-title{font-family:'Barlow Condensed',sans-serif;font-size:15px;font-weight:800;text-transform:uppercase;letter-spacing:1px;}
.kanban-count{background:var(--negro);color:var(--amarillo);border-radius:20px;padding:1px 8px;font-size:11px;font-weight:700;}
.kanban-cards{padding:10px;display:flex;flex-direction:column;gap:8px;min-height:80px;}
.kanban-card{background:var(--gris-bg);border-radius:8px;border:1px solid var(--gris-claro);padding:11px 12px;cursor:pointer;transition:all 0.15s;position:relative;}
.kanban-card:hover{border-color:var(--amarillo);background:var(--blanco);box-shadow:0 2px 8px rgba(0,0,0,0.08);transform:translateY(-1px);}
.kanban-card.nuevo-inscrito{border-color:#c0392b;border-width:2px;background:var(--blanco);}
.kanban-card.nuevo-inscrito.contactado{border-color:var(--gris-claro);border-width:1px;background:var(--gris-bg);}
.kanban-card-name{font-weight:700;font-size:13px;margin-bottom:4px;}
.kanban-card-meta{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px;}
.kanban-card-actions{display:flex;gap:5px;align-items:center;margin-top:7px;border-top:1px solid var(--gris-claro);padding-top:7px;flex-wrap:wrap;}
.asiste-btn{padding:3px 8px;border-radius:4px;border:1.5px solid var(--gris-claro);background:var(--blanco);font-size:11px;font-weight:700;cursor:pointer;transition:all 0.15s;}
.asiste-btn.si{background:#e8f5e9;border-color:#1b7a3c;color:#1b7a3c;}
.asiste-btn.no{background:#fce4ec;border-color:#c62828;color:#c62828;}
.equipo-select{border:1.5px solid var(--gris-claro);border-radius:4px;padding:3px 6px;font-size:11px;font-weight:700;font-family:'Barlow',sans-serif;background:var(--blanco);cursor:pointer;outline:none;}

/* MODAL */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:200;align-items:center;justify-content:center;}
.modal-overlay.open{display:flex;}
.modal{background:var(--blanco);border-radius:14px;width:600px;max-width:96vw;max-height:92vh;overflow-y:auto;box-shadow:0 24px 60px rgba(0,0,0,0.25);border-top:4px solid var(--amarillo);}
.modal-header{padding:20px 24px 14px;border-bottom:1px solid var(--gris-claro);display:flex;align-items:center;justify-content:space-between;}
.modal-header h2{font-family:'Barlow Condensed',sans-serif;font-size:22px;font-weight:800;letter-spacing:1px;text-transform:uppercase;}
.modal-close{width:28px;height:28px;border-radius:50%;border:none;background:var(--gris-claro);cursor:pointer;font-size:15px;}
.modal-body{padding:20px 24px;}
.modal-footer{padding:14px 24px 20px;display:flex;gap:8px;justify-content:flex-end;border-top:1px solid var(--gris-claro);}
.detail-row{display:flex;gap:14px;margin-bottom:12px;}
.detail-field{flex:1;}
.detail-field label{font-size:9.5px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gris-medio);display:block;margin-bottom:4px;font-weight:700;}
.detail-field .val{font-size:14px;font-weight:600;}
.detail-field select,.detail-field textarea,.detail-field input{width:100%;border:1.5px solid var(--gris-claro);border-radius:6px;padding:7px 9px;font-family:'Barlow',sans-serif;font-size:13px;outline:none;}
.detail-field select:focus,.detail-field textarea:focus,.detail-field input:focus{border-color:var(--amarillo);}
.detail-field textarea{resize:vertical;min-height:70px;}

/* COMMENTS */
.comment-list{margin-top:8px;display:flex;flex-direction:column;gap:6px;max-height:180px;overflow-y:auto;}
.comment-item{background:var(--gris-bg);border-radius:6px;padding:8px 10px;border-left:3px solid var(--amarillo);}
.comment-meta{font-size:10px;color:var(--gris-medio);margin-bottom:3px;}
.comment-text{font-size:13px;}

/* USERS PANEL */
.users-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:6px;}
.user-card{background:var(--blanco);border-radius:10px;border:1px solid var(--gris-claro);padding:18px;border-left:4px solid var(--amarillo);}
.user-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.user-card-name{font-weight:700;font-size:14px;}
.user-card-email{font-size:12px;color:var(--gris-medio);margin-top:1px;}
.rol-badge{padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;}
.rol-admin{background:#fffbe6;color:#7a6200;border:1px solid var(--amarillo);}
.rol-entrenador{background:#e3f2fd;color:#1565c0;}
.rol-invitado{background:#f3f4f6;color:#555;}
.rol-monitor{background:#fff3e0;color:#c45000;border:1px solid #f5c400;}


/* INTEGRATION */
.integration-box{background:var(--blanco);border:1px solid var(--gris-claro);border-radius:10px;padding:24px;margin-bottom:18px;}
.integration-box h3{font-family:'Barlow Condensed',sans-serif;font-size:19px;font-weight:800;color:var(--negro);margin-bottom:6px;letter-spacing:0.5px;text-transform:uppercase;}
.integration-box p{font-size:13.5px;color:var(--gris-medio);margin-bottom:12px;line-height:1.6;}
.code-block{background:var(--negro);color:#f5c400;border-radius:7px;padding:14px 16px;font-size:12px;font-family:'Courier New',monospace;line-height:1.8;margin:10px 0;overflow-x:auto;}
.steps-list{counter-reset:steps;list-style:none;margin:10px 0;}
.steps-list li{counter-increment:steps;display:flex;gap:10px;align-items:flex-start;margin-bottom:9px;font-size:13.5px;line-height:1.5;}
.steps-list li::before{content:counter(steps);min-width:22px;height:22px;background:var(--amarillo);color:var(--negro);border-radius:50%;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}

/* PRUEBAS */
.pruebas-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.prueba-sesion{background:var(--blanco);border-radius:7px;padding:10px 12px;margin-bottom:8px;border:1px solid var(--gris-claro);display:flex;justify-content:space-between;align-items:center;}

/* TOAST */
.toast{position:fixed;bottom:20px;right:20px;background:var(--negro);color:var(--amarillo);padding:11px 18px;border-radius:7px;font-size:13.5px;font-weight:600;box-shadow:0 4px 20px rgba(0,0,0,0.25);transform:translateY(80px);opacity:0;transition:all 0.3s;z-index:999;border-left:4px solid var(--amarillo);}
.toast.show{transform:translateY(0);opacity:1;}
.empty-state{text-align:center;padding:40px 20px;color:var(--gris-medio);}
.empty-state .icon{font-size:44px;margin-bottom:10px;}
.chart-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:22px;}
.chart-box{background:var(--blanco);border:1px solid var(--gris-claro);border-radius:10px;padding:18px;}
.chart-box h4{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--gris-medio);margin-bottom:14px;font-weight:700;}
.bar-row{display:flex;align-items:center;gap:9px;margin-bottom:9px;}
.bar-label{font-size:12px;min-width:88px;color:var(--gris-medio);}
.bar-track{flex:1;height:9px;background:var(--gris-claro);border-radius:9px;overflow:hidden;}
.bar-fill{height:100%;border-radius:9px;background:var(--amarillo);transition:width 0.8s;}
.bar-val{font-size:12px;font-weight:700;min-width:22px;text-align:right;}

/* ENTRENAMIENTOS */
.et-card{background:var(--blanco);border-radius:10px;border:1px solid var(--gris-claro);padding:16px;cursor:pointer;transition:all 0.15s;border-left:4px solid var(--amarillo);}
.et-card:hover{box-shadow:0 4px 16px rgba(0,0,0,0.1);transform:translateY(-2px);}
.et-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;}
.et-card-title{font-family:'Barlow Condensed',sans-serif;font-size:17px;font-weight:900;text-transform:uppercase;letter-spacing:1px;}
.et-card-meta{font-size:11.5px;color:var(--gris-medio);margin-top:2px;}
.et-card-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px;}
.et-tag{padding:2px 8px;border-radius:20px;font-size:10.5px;font-weight:700;}
.et-tag-tecnico{background:#dbeafe;color:#1e40af;}
.et-tag-tactico{background:#dcfce7;color:#166534;}
.et-tag-fisico{background:#fef9c3;color:#854d0e;}
.et-tag-competicion{background:#fce7f3;color:#9d174d;}
.et-tag-calentamiento{background:#ffedd5;color:#9a3412;}
.et-tag-vuelta{background:#f1f5f9;color:#475569;}
.et-tag-generico{background:var(--gris-bg);color:var(--gris-medio);}
.bib-card{background:var(--blanco);border-radius:10px;border:1px solid var(--gris-claro);overflow:hidden;transition:all 0.15s;}
.bib-card:hover{box-shadow:0 4px 16px rgba(0,0,0,0.1);border-color:var(--amarillo);}
.bib-card-body{padding:12px 14px;}
.bib-card-title{font-weight:700;font-size:14px;margin-bottom:4px;}
.bib-card-desc{font-size:12px;color:var(--gris-medio);margin-bottom:8px;line-height:1.5;}
.pizarra-canvas{border-radius:8px;cursor:crosshair;display:block;max-width:100%;}
.pizarra-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px;align-items:center;}
.pizarra-tool{padding:5px 10px;border:1.5px solid var(--gris-claro);border-radius:5px;background:var(--blanco);cursor:pointer;font-size:12px;font-weight:700;transition:all 0.15s;}
.pizarra-tool.active{background:var(--negro);color:var(--amarillo);border-color:var(--negro);}
.ej-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--gris-bg);border-radius:7px;border:1px solid var(--gris-claro);margin-bottom:6px;}
.ej-row-num{font-family:'Barlow Condensed',sans-serif;font-size:18px;font-weight:900;min-width:22px;color:var(--gris-medio);}
.ej-row-name{flex:1;font-size:13px;font-weight:700;}
.ej-row-dur{font-size:12px;color:var(--gris-medio);white-space:nowrap;}

/* 3X3 SAN VIATOR */
.t3x3-tabs{display:flex;gap:4px;background:var(--blanco);border:1px solid var(--gris-claro);border-radius:8px;padding:4px;margin-bottom:16px;flex-wrap:wrap;}
.t3x3-tab{border:none;background:transparent;border-radius:5px;padding:8px 12px;font-family:'Barlow',sans-serif;font-size:12.5px;font-weight:800;cursor:pointer;color:var(--gris-medio);transition:all 0.15s;}
.t3x3-tab.active{background:var(--negro);color:var(--amarillo);}
.t3x3-section{display:none;}
.t3x3-section.active{display:block;}
.t3x3-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;}
.t3x3-card{background:var(--blanco);border:1px solid var(--gris-claro);border-radius:8px;padding:14px;border-left:4px solid var(--amarillo);}
.t3x3-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;}
.t3x3-card-title{font-family:'Barlow Condensed',sans-serif;font-size:18px;font-weight:900;text-transform:uppercase;letter-spacing:1px;line-height:1.1;}
.t3x3-card-meta{font-size:12px;color:var(--gris-medio);line-height:1.5;}
.t3x3-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:10px;}
.t3x3-pill{display:inline-flex;align-items:center;gap:4px;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:800;background:var(--gris-bg);color:var(--gris-medio);}
.t3x3-pill.ok{background:#e8f5e9;color:#166534;}
.t3x3-pill.warn{background:#fffbe6;color:#7a6200;}
.t3x3-pill.bad{background:#fce4ec;color:#c62828;}
.t3x3-pill.info{background:#e3f2fd;color:#1565c0;}
.t3x3-category{background:var(--blanco);border:1px solid var(--gris-claro);border-radius:10px;overflow:hidden;margin-bottom:16px;}
.t3x3-category-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-bottom:3px solid var(--amarillo);background:#fffbe6;}
.t3x3-category-title{font-family:'Barlow Condensed',sans-serif;font-size:18px;font-weight:900;text-transform:uppercase;letter-spacing:1px;}
.t3x3-category-body{padding:14px;}
.t3x3-table{width:100%;border-collapse:collapse;background:var(--blanco);border:1px solid var(--gris-claro);border-radius:8px;overflow:hidden;}
.t3x3-table th{background:var(--negro);color:rgba(255,255,255,0.72);font-size:10px;text-transform:uppercase;letter-spacing:1.2px;padding:9px 10px;text-align:left;}
.t3x3-table td{border-bottom:1px solid var(--gris-claro);padding:8px 10px;font-size:12.5px;vertical-align:middle;}
.t3x3-table tr:last-child td{border-bottom:none;}
.t3x3-match{background:var(--blanco);border:1px solid var(--gris-claro);border-radius:8px;padding:12px;display:grid;grid-template-columns:1fr auto 1fr auto;gap:10px;align-items:center;}
.t3x3-match-team{font-weight:800;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.t3x3-score{font-family:'Barlow Condensed',sans-serif;font-size:26px;font-weight:900;color:var(--negro);min-width:54px;text-align:center;}
.t3x3-player-row{display:grid;grid-template-columns:1.2fr 0.8fr 0.9fr 0.9fr 0.8fr auto;gap:6px;align-items:end;margin-bottom:8px;padding:8px;border:1px solid var(--gris-claro);border-radius:8px;background:var(--gris-bg);}
.t3x3-player-row .detail-field{margin-bottom:0;}
.t3x3-monitor-band{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-bottom:14px;}
.t3x3-acta-score{display:grid;grid-template-columns:1fr 120px 1fr;gap:10px;align-items:center;margin:14px 0;}
.t3x3-acta-score input{font-family:'Barlow Condensed',sans-serif;font-size:38px;font-weight:900;text-align:center;padding:8px;border:2px solid var(--gris-claro);border-radius:8px;}
@media(max-width:900px){
  body{overflow-x:hidden;}
  .mobile-menu-btn{display:flex;}
  .sidebar{width:280px;max-width:84vw;transform:translateX(-102%);transition:transform 0.22s ease;box-shadow:8px 0 30px rgba(0,0,0,0.35);z-index:100;}
  .sidebar-logo .club-name,.sidebar-logo .club-sub,.nav-section-label,.nav-item span,.sidebar-user .user-name,.sidebar-user .user-rol{display:block;}
  .sidebar-logo{padding:14px 16px;}
  .sidebar-logo img{width:46px;margin-bottom:6px;}
  .nav-item{justify-content:flex-start;padding:12px 16px;font-size:14px;}
  .nav-section-label{padding:12px 16px 5px;}
  .sidebar-user{padding:14px 16px;}
  .main{margin-left:0;width:100%;}
  .topbar{padding:10px 12px;gap:8px;align-items:center;}
  .topbar-title{font-size:22px;letter-spacing:1px;line-height:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .topbar-actions{gap:6px;flex-shrink:0;}
  .sync-info{display:none;}
  .topbar-actions .btn{padding:7px 10px;font-size:12px;white-space:nowrap;}
  .topbar-actions #topbar-add-btn{max-width:126px;overflow:hidden;text-overflow:ellipsis;}
  .content{padding:16px 12px;overflow-x:hidden;}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .stat-card{padding:12px;}
  .stat-number{font-size:34px;}
  .toolbar{padding:10px;gap:8px;}
  .filter-input,.filter-select{width:100%;min-width:0;flex:1 1 100%;}
  .view-toggle{margin-left:0;width:100%;}
  .view-btn{flex:1;}
  .table-container{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  table{min-width:720px;}
  .chart-row,.pruebas-grid{grid-template-columns:1fr;}
  .modal{width:96vw;max-height:88vh;border-radius:12px;}
  .modal-header,.modal-body,.modal-footer{padding-left:16px;padding-right:16px;}
  .detail-row{flex-direction:column;gap:8px;}
  .t3x3-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;}
  .t3x3-tab{white-space:nowrap;}
  .t3x3-grid{grid-template-columns:1fr;}
  .t3x3-match{grid-template-columns:1fr;gap:6px;}
  .t3x3-score{text-align:left;}
  .t3x3-player-row{grid-template-columns:1fr;}
  .campus-tabs,.campus-subtabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;}
  .campus-tab,.campus-subtab{white-space:nowrap;min-width:max-content;}
}
@media(max-width:520px){
  .stats-grid{grid-template-columns:1fr;}
  .topbar-actions #sync-btn{display:none!important;}
  .topbar-actions #topbar-add-btn{max-width:105px;padding-left:8px;padding-right:8px;}
  .topbar-title{font-size:19px;}
}

/* --- CSS CONSOLIDADO: evita estilos sueltos en el cuerpo del HTML --- */

.campus-header{background:var(--negro);border-radius:12px;padding:20px 24px;display:flex;align-items:center;gap:16px;margin-bottom:20px;border-bottom:4px solid #c0392b;}
          .campus-tabs{display:flex;gap:0;background:var(--blanco);border-radius:8px;border:1px solid var(--gris-claro);overflow:hidden;margin-bottom:20px;}
          .campus-tab{padding:10px 18px;font-size:13px;font-weight:700;cursor:pointer;border:none;background:transparent;font-family:'Barlow',sans-serif;transition:all 0.15s;color:var(--gris-medio);border-right:1px solid var(--gris-claro);}
          .campus-tab:last-child{border-right:none;}
          .campus-tab.active{background:var(--negro);color:var(--amarillo);}
          .campus-tab:hover:not(.active){background:var(--gris-bg);}
          .campus-section{display:none;}.campus-section.active{display:block;}
          .cp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;}
          .cp-card{background:var(--blanco);border-radius:8px;border:1px solid var(--gris-claro);padding:14px;border-left:4px solid #c0392b;transition:all 0.15s;cursor:pointer;}
          .cp-card:hover{box-shadow:0 3px 12px rgba(0,0,0,0.1);transform:translateY(-1px);}
          .cp-name{font-weight:700;font-size:14px;margin-bottom:3px;}
          .cp-meta{font-size:11.5px;color:var(--gris-medio);}
          .cp-badges{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px;}
          .cp-badge{padding:2px 7px;border-radius:20px;font-size:10.5px;font-weight:700;}
          .alergia-badge{background:#fce4ec;color:#c62828;}
          .equipo-color{background:var(--negro);color:var(--amarillo);}
          .schedule-day{background:var(--blanco);border-radius:8px;border:1px solid var(--gris-claro);overflow:hidden;margin-bottom:12px;}
          .schedule-day-header{background:var(--negro);color:var(--amarillo);padding:10px 16px;font-family:'Barlow Condensed',sans-serif;font-size:16px;font-weight:800;letter-spacing:1px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;}
          .schedule-day-body{padding:12px;}
          .schedule-row{display:flex;gap:12px;padding:7px 0;border-bottom:1px solid var(--gris-claro);align-items:flex-start;}
          .schedule-row:last-child{border-bottom:none;}
          .schedule-hora{font-family:'Barlow Condensed',sans-serif;font-size:18px;font-weight:900;color:#c0392b;min-width:55px;}
          .schedule-act{font-size:13px;flex:1;}
          .velada-card{background:var(--blanco);border-radius:10px;border:1px solid var(--gris-claro);padding:18px;border-top:3px solid #c0392b;}
          .velada-tipo-competicion{border-top-color:#f97316;}
          .velada-tipo-ocio{border-top-color:#3b82f6;}
          .velada-tipo-excursion{border-top-color:#10b981;}
          .velada-tipo-especial{border-top-color:#8b5cf6;}
          .velada-tipo-recuperacion{border-top-color:#6b7280;}
          .monitor-card{background:var(--blanco);border-radius:8px;border:1px solid var(--gris-claro);padding:12px 14px;display:flex;align-items:center;gap:10px;}
          .monitor-avatar{width:36px;height:36px;border-radius:50%;background:#c0392b;color:#fff;font-family:'Barlow Condensed',sans-serif;font-size:14px;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
          .contenido-card{background:var(--blanco);border-radius:10px;border:1px solid var(--gris-claro);padding:20px;border-left:4px solid #c0392b;}
          .contenido-card h4{font-family:'Barlow Condensed',sans-serif;font-size:17px;font-weight:800;text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;}
          .contenido-textarea{width:100%;border:1.5px solid var(--gris-claro);border-radius:6px;padding:10px;font-family:'Barlow',sans-serif;font-size:13px;min-height:120px;resize:vertical;outline:none;}
          .contenido-textarea:focus{border-color:#c0392b;}

/* --- CSS CONSOLIDADO: evita estilos sueltos en el cuerpo del HTML --- */

html,body{max-width:100%;overflow-x:hidden;}
img{max-width:100%;}
@media (max-width:900px){
  :root{--mobile-pad:12px;}
  #app{overflow-x:hidden;}
  .main{margin-left:0!important;width:100%!important;max-width:100vw!important;}
  .content{padding:14px var(--mobile-pad) 96px!important;max-width:100vw;overflow-x:hidden;}
  .mobile-menu-btn{display:inline-flex!important;width:46px!important;height:46px!important;min-width:46px!important;border:2px solid var(--negro)!important;border-radius:10px!important;background:#fff!important;font-size:24px!important;line-height:1!important;position:relative;z-index:70;}
  .mobile-menu-overlay{z-index:999!important;background:rgba(0,0,0,.58)!important;backdrop-filter:blur(2px);}
  .sidebar{position:fixed!important;left:0!important;top:0!important;bottom:0!important;height:100dvh!important;width:310px!important;max-width:86vw!important;z-index:1000!important;transform:translateX(-105%)!important;transition:transform .22s ease!important;box-shadow:10px 0 34px rgba(0,0,0,.38)!important;padding-top:env(safe-area-inset-top);overflow-y:auto!important;-webkit-overflow-scrolling:touch;}
  body.mobile-menu-open .sidebar{transform:translateX(0)!important;}
  body.mobile-menu-open .mobile-menu-overlay{display:block!important;}
  .sidebar-logo{position:sticky;top:0;z-index:2;}
  .sidebar-logo img{width:44px!important;}
  .sidebar-logo .club-name{font-size:19px!important;display:block!important;}
  .sidebar-logo .club-sub{display:block!important;}
  .nav-section-label{display:block!important;padding:13px 16px 5px!important;}
  .nav-item{justify-content:flex-start!important;padding:13px 16px!important;font-size:15px!important;min-height:46px;}
  .nav-item span{display:inline!important;}
  .sidebar-user .user-name,.sidebar-user .user-rol{display:block!important;}
  .topbar{position:sticky!important;top:0!important;z-index:60!important;padding:9px 10px!important;gap:8px!important;min-height:62px;background:#fff!important;box-shadow:0 1px 0 rgba(0,0,0,.04);}
  .topbar-title{font-size:20px!important;letter-spacing:1px!important;line-height:1.05!important;flex:1 1 auto!important;min-width:0!important;white-space:normal!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .topbar-actions{display:flex!important;gap:6px!important;flex:0 0 auto!important;}
  .topbar-actions .btn{font-size:12px!important;padding:8px 9px!important;border-radius:8px!important;}
  .topbar-actions #sync-btn{display:none!important;}
  .topbar-actions #topbar-add-btn{max-width:132px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  #panel-campus .campus-header{margin:10px 0 16px!important;padding:18px 14px!important;border-radius:14px!important;display:grid!important;grid-template-columns:78px minmax(0,1fr)!important;gap:14px!important;align-items:center!important;}
  #panel-campus .campus-header img{width:78px!important;height:auto!important;margin:0!important;}
  #panel-campus .campus-header h3{font-size:31px!important;line-height:.96!important;letter-spacing:1px!important;margin:0 0 8px!important;word-break:normal!important;}
  #panel-campus .campus-header div[style*="color:rgba"]{font-size:15px!important;line-height:1.5!important;}
  #panel-campus .campus-header div[style*="display:flex"]{gap:7px!important;align-items:flex-start!important;}
  #panel-campus .campus-header .badge{font-size:12px!important;padding:5px 10px!important;margin:2px 2px 0 0!important;}
  #panel-campus .campus-tabs{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch!important;scroll-snap-type:x proximity;border-radius:12px!important;margin:0 0 16px!important;background:#fff!important;border:1px solid var(--gris-claro)!important;box-shadow:0 2px 10px rgba(0,0,0,.04);padding:0!important;}
  #panel-campus .campus-tabs::-webkit-scrollbar{display:none;}
  #panel-campus .campus-tab{flex:0 0 auto!important;min-width:142px!important;max-width:170px!important;padding:13px 14px!important;font-size:15px!important;line-height:1.15!important;white-space:normal!important;text-align:center!important;scroll-snap-align:start;border-right:1px solid var(--gris-claro)!important;}
  #panel-campus .campus-tab.active{box-shadow:inset 0 -3px 0 var(--amarillo);}
  #panel-campus .toolbar{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;padding:0!important;background:transparent!important;border:0!important;}
  #panel-campus .toolbar .filter-input,#panel-campus .toolbar .filter-select{width:100%!important;min-width:0!important;font-size:15px!important;padding:12px!important;border-radius:10px!important;}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;}
  .stat-card{padding:14px!important;border-radius:12px!important;}
  .stat-number{font-size:34px!important;}
  .table-container{max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;border-radius:12px!important;}
  table{min-width:680px;}
  .equipos-grid,.users-grid,.t3x3-grid{grid-template-columns:1fr!important;}
  .chart-row,.pruebas-grid{grid-template-columns:1fr!important;}
  .modal-overlay{align-items:flex-end!important;padding:0!important;}
  .modal{width:100vw!important;max-width:100vw!important;max-height:92dvh!important;border-radius:18px 18px 0 0!important;}
  .modal-header{position:sticky;top:0;background:#fff;z-index:2;}
  .modal-footer{position:sticky;bottom:0;background:#fff;z-index:2;flex-wrap:wrap;}
  .modal-footer .btn{flex:1 1 auto;min-height:42px;}
  .detail-row{flex-direction:column!important;gap:10px!important;}
  .detail-field input,.detail-field select,.detail-field textarea{font-size:16px!important;padding:12px!important;border-radius:10px!important;}
  .t3x3-tabs{overflow-x:auto!important;flex-wrap:nowrap!important;-webkit-overflow-scrolling:touch!important;}
  .t3x3-tabs::-webkit-scrollbar{display:none;}
  .t3x3-tab{white-space:nowrap!important;min-width:max-content!important;padding:10px 14px!important;}
}
@media (max-width:520px){
  .content{padding-left:10px!important;padding-right:10px!important;}
  .topbar-title{font-size:19px!important;}
  .topbar-actions #topbar-add-btn{max-width:118px!important;}
  #panel-campus .campus-header{grid-template-columns:70px minmax(0,1fr)!important;padding:16px 12px!important;gap:12px!important;}
  #panel-campus .campus-header img{width:70px!important;}
  #panel-campus .campus-header h3{font-size:27px!important;}
  #panel-campus .campus-tab{min-width:132px!important;font-size:14px!important;padding:12px 12px!important;}
  #panel-campus .toolbar{grid-template-columns:1fr!important;}
  .stats-grid{grid-template-columns:1fr!important;}
}

/* --- CSS CONSOLIDADO: evita estilos sueltos en el cuerpo del HTML --- */

.t3x3-planner-controls{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr)) auto auto auto;gap:10px;align-items:end;background:var(--blanco);border:1px solid var(--gris-claro);border-radius:10px;padding:12px;margin-bottom:14px;}
.t3x3-planner-controls .detail-field{margin:0;}
.t3x3-planner-wrap{background:var(--blanco);border:1px solid var(--gris-claro);border-radius:12px;overflow:auto;max-width:100%;box-shadow:0 2px 12px rgba(0,0,0,.04);}
.t3x3-planner-table{border-collapse:separate;border-spacing:0;min-width:980px;width:max-content;background:#fff;}
.t3x3-planner-table th{position:sticky;top:0;z-index:4;background:var(--negro);color:rgba(255,255,255,.75);font-size:10px;text-transform:uppercase;letter-spacing:1.2px;padding:10px;border-right:1px solid rgba(255,255,255,.12);white-space:nowrap;}
.t3x3-planner-table .t3x3-sticky-col{position:sticky;left:0;z-index:5;min-width:132px;max-width:132px;}
.t3x3-planner-table tbody .t3x3-sticky-col{background:#fffbe6;color:var(--negro);border-right:2px solid var(--amarillo);font-family:'Barlow Condensed',sans-serif;font-size:15px;font-weight:900;text-transform:uppercase;letter-spacing:1px;}
.t3x3-slot-cell{width:148px;min-width:148px;height:116px;vertical-align:top;border-right:1px solid var(--gris-claro);border-bottom:1px solid var(--gris-claro);padding:8px;cursor:pointer;background:#fff;transition:all .12s;}
.t3x3-slot-cell:hover{outline:2px solid var(--amarillo);outline-offset:-2px;background:#fffbe6;}
.t3x3-slot-cell.free{background:#f9fafb;}
.t3x3-slot-cell.assigned{background:#eef6ff;}
.t3x3-slot-cell.blocked{background:#f3f4f6;color:#777;background-image:repeating-linear-gradient(135deg,rgba(0,0,0,.05) 0,rgba(0,0,0,.05) 6px,transparent 6px,transparent 12px);}
.t3x3-slot-cell.t3x3-slot-muted{background:#fafafa;color:#aaa;font-size:12px;text-align:center;vertical-align:middle;}
.t3x3-slot-time{font-size:10px;font-weight:900;color:var(--gris-medio);letter-spacing:.7px;margin-bottom:4px;}
.t3x3-slot-title{font-size:12px;font-weight:900;line-height:1.2;color:var(--negro);}
.t3x3-slot-cat{display:inline-flex;margin-top:5px;background:var(--amarillo);border-radius:14px;padding:2px 7px;font-size:10px;font-weight:900;color:var(--negro);}
.t3x3-slot-roles{font-size:10px;line-height:1.25;color:var(--gris-medio);border-top:1px dashed var(--gris-claro);margin-top:6px;padding-top:5px;}
.t3x3-pending-panel{background:var(--blanco);border:1px solid var(--gris-claro);border-left:4px solid var(--amarillo);border-radius:10px;padding:14px;margin-top:14px;}
.t3x3-pending-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.t3x3-check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;border:1px solid var(--gris-claro);border-radius:8px;padding:10px;background:var(--gris-bg);}
.t3x3-check-grid label{font-size:13px;font-weight:700;display:flex;align-items:center;gap:6px;}
.t3x3-monitor-agenda{display:flex;flex-direction:column;gap:8px;}
.t3x3-agenda-card{display:grid;grid-template-columns:74px 1fr;gap:10px;align-items:center;background:var(--gris-bg);border:1px solid var(--gris-claro);border-radius:9px;padding:10px;}
.t3x3-agenda-time{font-family:'Barlow Condensed',sans-serif;font-size:24px;font-weight:900;line-height:1;text-align:center;background:var(--negro);color:var(--amarillo);border-radius:8px;padding:8px 4px;}
.t3x3-agenda-time span{display:block;font-size:12px;color:rgba(255,255,255,.72);margin-top:2px;}
@media(max-width:900px){
  .t3x3-planner-controls{grid-template-columns:1fr 1fr;gap:8px;}
  .t3x3-planner-controls .btn{min-height:42px;}
  .t3x3-planner-table{min-width:860px;}
  .t3x3-slot-cell{width:138px;min-width:138px;height:112px;}
}
@media(max-width:520px){
  .t3x3-planner-controls{grid-template-columns:1fr;}
  .t3x3-agenda-card{grid-template-columns:66px 1fr;}
  .t3x3-agenda-time{font-size:20px;}
}


/* --- FIX V8: estabilidad de maquetación y móvil --- */
html,body{max-width:100%;overflow-x:hidden;}
#app{max-width:100%;}
pre,code{white-space:pre-wrap;}
@media(max-width:900px){
  body{font-size:15px;}
  .main{margin-left:0!important;width:100%!important;}
  .content{padding:14px!important;}
  .topbar{padding:10px 12px!important;gap:10px!important;align-items:center!important;}
  .topbar-title{font-size:22px!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .sidebar{transform:translateX(-105%);transition:transform .2s ease;width:280px!important;max-width:84vw!important;z-index:1001!important;}
  body.mobile-menu-open .sidebar{transform:translateX(0)!important;}
  .sidebar-logo .club-name,.sidebar-logo .club-sub,.nav-section-label,.nav-item span,.sidebar-user .user-name,.sidebar-user .user-rol{display:block!important;}
  .nav-item{justify-content:flex-start!important;padding:12px 16px!important;}
  .mobile-menu-btn{display:inline-flex!important;align-items:center;justify-content:center;width:46px;height:46px;border:3px solid var(--negro);border-radius:10px;background:var(--blanco);font-size:24px;font-weight:900;flex-shrink:0;}
  .mobile-sidebar-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1000;display:none;}
  body.mobile-menu-open .mobile-sidebar-overlay{display:block;}
  .toolbar{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;align-items:stretch!important;}
  .toolbar .filter-input,.toolbar .filter-select,.toolbar input,.toolbar select{width:100%!important;min-width:0!important;}
  .toolbar .btn{width:100%;}
  .campus-header{padding:18px 16px!important;align-items:center!important;gap:14px!important;}
  .campus-header img{height:74px!important;width:auto!important;flex:0 0 auto!important;}
  .campus-header>div{min-width:0!important;}
  .campus-header>div>div:first-child{font-size:31px!important;line-height:1.04!important;}
  .campus-tabs,.t3x3-tabs{display:flex!important;overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch!important;scroll-snap-type:x proximity;}
  .campus-tab,.t3x3-tab{min-width:max-content!important;scroll-snap-align:start!important;}
  .table-container,.t3x3-planner-wrap{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;}
  .t3x3-planner-table{min-width:860px!important;}
  .t3x3-planner-controls{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;}
  .t3x3-planner-controls .btn{width:100%!important;}
  .t3x3-card,.t3x3-category,.panel{max-width:100%!important;}
  .stats-grid,.chart-row,.pruebas-grid,.t3x3-grid,.cp-grid{grid-template-columns:1fr!important;}
  .modal{width:calc(100vw - 20px)!important;max-width:calc(100vw - 20px)!important;}
  .detail-row{flex-direction:column!important;gap:10px!important;}
}
@media(min-width:901px){.mobile-menu-btn,.mobile-sidebar-overlay{display:none!important;}}


/* --- 3X3 ACTA FULLSCREEN --- */
.modal-overlay.acta-fullscreen{align-items:stretch!important;justify-content:stretch!important;padding:0!important;}
.modal-overlay.acta-fullscreen .modal{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important;display:flex!important;flex-direction:column!important;border-top:0!important;}
.modal-overlay.acta-fullscreen .modal-header{padding:8px 12px!important;flex:0 0 auto;}
.modal-overlay.acta-fullscreen .modal-body{padding:8px 10px!important;flex:1 1 auto;overflow:hidden!important;min-height:0;}
.modal-overlay.acta-fullscreen .modal-footer{padding:8px 10px!important;flex:0 0 auto;}
.t3x3-acta-shell{height:100%;display:grid;grid-template-rows:auto 1fr auto;gap:8px;min-height:0;}
.t3x3-acta-top{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;}
.t3x3-acta-top .t3x3-card-title{font-size:clamp(18px,2vw,26px);}
.t3x3-acta-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,20vw) minmax(0,1fr);gap:8px;min-height:0;align-items:stretch;}
.t3x3-acta-team{background:var(--gris-bg);border:1px solid var(--gris-claro);border-radius:12px;padding:10px;display:grid;grid-template-rows:auto auto auto 1fr;gap:6px;min-height:0;}
.t3x3-acta-team.right{text-align:right;}
.t3x3-acta-team-name{font-family:'Barlow Condensed',sans-serif;font-size:clamp(20px,2.4vw,30px);font-weight:900;line-height:.95;text-transform:uppercase;}
.t3x3-acta-team-score{font-family:'Barlow Condensed',sans-serif;font-size:clamp(42px,7vw,72px);font-weight:900;line-height:.9;}
.t3x3-acta-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;}
.t3x3-acta-actions .btn{padding:8px 6px;font-size:clamp(13px,1.3vw,16px);font-weight:900;}
.t3x3-acta-fouls{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;}
.t3x3-acta-center{background:var(--negro);color:var(--blanco);border-radius:14px;padding:10px;display:grid;grid-template-rows:auto 1fr auto;gap:8px;align-items:center;min-height:0;}
.t3x3-acta-clock{border:3px solid var(--amarillo);background:transparent;color:var(--amarillo);border-radius:16px;padding:10px 8px;font-family:'Barlow Condensed',sans-serif;font-size:clamp(38px,6vw,72px);font-weight:900;line-height:.9;cursor:pointer;width:100%;}
.t3x3-acta-clock small{display:block;font-size:clamp(9px,.9vw,12px);letter-spacing:1px;color:rgba(255,255,255,.75);margin-top:4px;font-family:'Barlow',sans-serif;font-weight:700;}
.t3x3-acta-timer-edit{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.t3x3-acta-timer-edit input{width:100%;border:2px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;border-radius:10px;padding:8px 10px;font-size:20px;font-weight:900;text-align:center;}
.t3x3-acta-timer-edit label{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,.72);margin-bottom:4px;}
.t3x3-acta-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,1.1fr) minmax(0,1fr);gap:8px;min-height:0;}
.t3x3-sign-box,.t3x3-notes-box{background:var(--blanco);border:1px solid var(--gris-claro);border-radius:12px;padding:10px;display:grid;gap:8px;align-content:start;min-height:0;}
.t3x3-sign-header{display:flex;justify-content:space-between;align-items:center;gap:8px;}
.t3x3-sign-ok{display:none;background:#e8f5e9;color:#166534;border:1px solid #166534;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:800;justify-self:start;}
.t3x3-sign-box.signed{display:flex;align-items:center;justify-content:center;min-height:0;}
.t3x3-sign-box.signed .t3x3-sign-header,.t3x3-sign-box.signed .t3x3-sign-pad{display:none!important;}
.t3x3-sign-box.signed .t3x3-sign-ok{display:inline-flex;font-size:16px;padding:6px 14px;}
.t3x3-sign-pad{width:100%;height:48px;border:2px dashed var(--gris-claro);border-radius:10px;background:#fff;touch-action:none;cursor:crosshair;}
.t3x3-notes-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:2px solid var(--gris-claro);background:#fff;border-radius:10px;padding:10px 12px;font-family:'Barlow',sans-serif;font-size:16px;font-weight:800;cursor:pointer;}
.t3x3-notes-box.collapsed .t3x3-notes-extra{display:none;}
.t3x3-notes-box textarea{width:100%;height:52px;min-height:0;resize:none;border:1.5px solid var(--gris-claro);border-radius:10px;padding:8px;font-family:'Barlow',sans-serif;font-size:13px;}
.t3x3-acta-time-inline{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;}
.t3x3-acta-time-inline input{width:100%;border:2px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;border-radius:10px;padding:8px 10px;font-size:24px;font-weight:900;text-align:center;}
.t3x3-acta-time-inline label{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:rgba(255,255,255,.72);margin-bottom:4px;}
.t3x3-sign-status{font-size:11px;font-weight:700;color:var(--gris-medio);}
@media(max-width:980px){
  .t3x3-acta-main{grid-template-columns:1fr 170px 1fr;}
  .t3x3-acta-bottom{grid-template-columns:1fr 1fr 1fr;}
  .t3x3-sign-pad{height:42px;}
  .t3x3-notes-box textarea{height:54px;}
}
@media(max-width:700px){
  .modal-overlay.acta-fullscreen .modal-header{padding:8px 10px!important;}
  .modal-overlay.acta-fullscreen .modal-body{padding:8px 10px!important;}
  .modal-overlay.acta-fullscreen .modal-footer{padding:8px 10px!important;}
  .t3x3-acta-shell{gap:8px;}
  .t3x3-acta-top{grid-template-columns:1fr;gap:6px;}
  .t3x3-acta-main{grid-template-columns:1fr 120px 1fr;gap:8px;}
  .t3x3-acta-team{padding:8px;gap:6px;}
  .t3x3-acta-actions .btn{padding:8px 4px;font-size:13px;}
  .t3x3-acta-bottom{grid-template-columns:1fr 1fr 1fr;gap:8px;}
  .t3x3-sign-box,.t3x3-notes-box{padding:8px;}
  .t3x3-sign-pad{height:38px;}
  .t3x3-notes-box textarea{height:48px;padding:8px;font-size:13px;}
  .modal-overlay.acta-fullscreen .modal-footer .btn{min-height:40px;padding:8px 10px;}
}


/* --- AJUSTES MÓVIL: MENSAJES, ACTA 3X3 Y CAMPUS --- */
@media(max-width:900px){
  #panel-mensajes > div{display:block!important;height:calc(100dvh - 150px)!important;position:relative;}
  #msg-layout.mobile-chat-open #msg-sidebar{display:none!important;}
  #msg-layout.mobile-chat-open #msg-chat{display:flex!important;}
  #msg-sidebar,#msg-chat{width:100%!important;height:100%!important;border-right:0!important;min-width:0!important;}
  #msg-chat{display:none!important;}
  #msg-chat-header{position:sticky;top:0;background:var(--blanco);z-index:2;padding:12px!important;display:flex;align-items:center;gap:10px;min-width:0;}
  #msg-chat-messages{padding:12px!important;}
  #msg-chat-input{display:flex!important;position:sticky;bottom:0;background:var(--blanco);padding:10px 12px!important;}
  #msg-chat-input input{font-size:16px!important;min-width:0;}
  #msg-chat-input .btn{flex:0 0 auto;}
  #msg-mobile-back{display:inline-flex!important;align-items:center;justify-content:center;border:2px solid var(--negro);background:var(--blanco);color:var(--negro);border-radius:8px;padding:6px 10px;font-size:16px;font-weight:900;line-height:1;cursor:pointer;flex-shrink:0;}
  .modal-overlay.acta-fullscreen .modal-body{overflow-y:auto!important;padding:8px!important;}
  .modal-overlay.acta-fullscreen .modal-footer{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;position:sticky;bottom:0;background:var(--blanco);padding:8px!important;}
  .modal-overlay.acta-fullscreen .modal-footer .btn{width:100%;min-height:44px;}
  .t3x3-acta-shell{height:auto!important;display:flex!important;flex-direction:column!important;gap:8px!important;min-height:100%;}
  .t3x3-acta-top,.t3x3-acta-main,.t3x3-acta-bottom{grid-template-columns:1fr!important;gap:8px!important;}
  .t3x3-acta-center,.t3x3-acta-team,.t3x3-sign-box,.t3x3-notes-box{padding:8px!important;}
  .t3x3-acta-team-name{font-size:clamp(18px,8vw,28px)!important;}
  .t3x3-acta-team-score{font-size:clamp(34px,14vw,56px)!important;}
  .t3x3-acta-actions{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
  .t3x3-acta-actions .btn{padding:10px 4px!important;font-size:14px!important;min-height:44px;}
  .t3x3-acta-fouls{justify-content:space-between!important;}
  .t3x3-acta-clock{font-size:clamp(34px,15vw,58px)!important;padding:12px 8px!important;}
  .t3x3-acta-time-inline{grid-template-columns:1fr auto!important;}
  .t3x3-acta-time-inline input{font-size:22px!important;min-height:44px;}
  .t3x3-sign-pad{height:82px!important;}
  .t3x3-notes-box textarea{height:92px!important;font-size:14px!important;}
  .campus-header{padding:14px!important;align-items:flex-start!important;gap:12px!important;flex-direction:column!important;}
  .campus-header > div:first-child{width:100%!important;justify-content:center;}
  .campus-header img{width:86px!important;height:auto!important;}
  .campus-header h2{font-size:clamp(26px,8vw,44px)!important;line-height:0.95!important;}
  .campus-header p{font-size:13px!important;line-height:1.35!important;}
  #cs-participantes > div:first-child{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;}
  #cs-participantes > div:first-child > *{width:100%!important;min-width:0!important;}
  #cp-search,#cp-equipo,#cp-deporte,#cp-alergia{font-size:16px!important;min-height:46px!important;}
  .cp-grid{grid-template-columns:1fr!important;gap:10px!important;}
  .cp-card{padding:12px!important;}
  .cp-card > div:first-child{gap:12px!important;}
  .cp-card img{width:72px!important;height:72px!important;}
  .cp-name{font-size:15px!important;line-height:1.05!important;}
  .cp-meta{font-size:13px!important;line-height:1.35!important;}
  .cp-badges{gap:6px!important;}
  .campus-tabs{display:flex!important;overflow-x:auto!important;scroll-snap-type:x proximity;}
  .campus-tab{padding:12px 14px!important;font-size:14px!important;scroll-snap-align:start;}
}
@media(max-width:520px){
  .campus-header h2{font-size:22px!important;}
  .campus-header p{font-size:12px!important;}
  .cp-card img{width:64px!important;height:64px!important;}
}


/* Mobile fix: 3x3 acta must fit in one screen */
@media(max-width:640px){
  .modal-overlay.acta-fullscreen .modal{overflow:hidden!important;}
  .modal-overlay.acta-fullscreen .modal-header{padding:8px 10px!important;}
  .modal-overlay.acta-fullscreen .modal-header h2{font-size:16px!important;line-height:1!important;}
  .modal-overlay.acta-fullscreen .modal-body{padding:6px!important;overflow:hidden!important;display:flex!important;align-items:flex-start;justify-content:center;}
  .modal-overlay.acta-fullscreen .modal-footer{padding:6px!important;display:grid!important;grid-template-columns:1fr 1fr 1.15fr!important;gap:6px!important;}
  .modal-overlay.acta-fullscreen .modal-footer .btn{min-height:48px!important;padding:8px 6px!important;font-size:12px!important;}
  .t3x3-acta-shell{gap:6px!important;min-height:0!important;}
  .t3x3-acta-top{gap:6px!important;}
  .t3x3-acta-top .t3x3-card-title{font-size:18px!important;line-height:.95!important;}
  .t3x3-acta-top .t3x3-card-meta{font-size:11px!important;line-height:1.1!important;}
  .t3x3-acta-main{grid-template-columns:1fr 1fr!important;grid-template-areas:'center center' 'teamA teamB'!important;gap:6px!important;}
  .t3x3-acta-main > .t3x3-acta-center{grid-area:center;}
  .t3x3-acta-main > .t3x3-acta-team:first-child{grid-area:teamA;}
  .t3x3-acta-main > .t3x3-acta-team.right{grid-area:teamB;}
  .t3x3-acta-center{padding:8px!important;gap:6px!important;border-radius:12px!important;}
  #t3-acta-live-score{font-size:36px!important;line-height:1!important;}
  .t3x3-acta-clock{padding:8px 6px!important;font-size:48px!important;line-height:.88!important;border-width:2px!important;border-radius:14px!important;}
  .t3x3-acta-clock small{font-size:12px!important;line-height:1!important;}
  .t3x3-acta-time-inline{display:grid!important;grid-template-columns:1fr auto!important;gap:6px!important;align-items:end!important;}
  .t3x3-acta-time-inline label{font-size:10px!important;}
  #t3-acta-time-direct{min-height:44px!important;font-size:26px!important;}
  .t3x3-acta-team{padding:8px!important;gap:4px!important;border-radius:12px!important;}
  .t3x3-acta-team-name{font-size:24px!important;line-height:.92!important;}
  .t3x3-acta-team .t3x3-card-meta{font-size:11px!important;line-height:1!important;}
  .t3x3-acta-team-score{font-size:58px!important;line-height:.9!important;}
  .t3x3-acta-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:4px!important;}
  .t3x3-acta-actions .btn{min-height:40px!important;padding:7px 0!important;font-size:18px!important;}
  .t3x3-acta-fouls{margin-top:2px!important;display:flex!important;justify-content:space-between!important;align-items:center!important;gap:4px!important;}
  .t3x3-acta-fouls .t3x3-pill{font-size:12px!important;padding:4px 8px!important;}
  .t3x3-acta-fouls .btn{min-height:34px!important;padding:6px 10px!important;font-size:16px!important;}
  .t3x3-acta-bottom{grid-template-columns:1fr 1fr 1fr!important;gap:6px!important;}
  .t3x3-sign-box,.t3x3-notes-box{padding:8px!important;gap:6px!important;min-height:64px!important;border-radius:12px!important;}
  .t3x3-sign-header{gap:6px!important;}
  .t3x3-sign-header strong{font-size:12px!important;}
  .t3x3-sign-header .btn{padding:5px 8px!important;font-size:11px!important;min-height:32px!important;}
  .t3x3-sign-pad{height:72px!important;}
  .t3x3-sign-ok{font-size:11px!important;padding:4px 8px!important;}
  .t3x3-notes-toggle{padding:10px!important;min-height:48px!important;font-size:15px!important;}
  .t3x3-notes-extra textarea{min-height:72px!important;font-size:13px!important;}
}

/* --- AJUSTE FINAL MÓVIL ACTA 3X3 --- */
@media(max-width:430px){
  .modal-overlay.acta-fullscreen .modal{
    height:100dvh!important;
    max-height:100dvh!important;
  }
  .modal-overlay.acta-fullscreen .modal-header{
    padding:6px 8px!important;
  }
  .modal-overlay.acta-fullscreen .modal-header h2{
    font-size:16px!important;
    line-height:1!important;
  }
  .modal-overlay.acta-fullscreen .modal-close{
    width:34px!important;height:34px!important;font-size:18px!important;
  }
  .modal-overlay.acta-fullscreen .modal-body{
    padding:4px 8px 0!important;
    overflow:hidden!important;
  }
  .t3x3-acta-shell{
    gap:6px!important;
    transform-origin:top left!important;
  }
  .t3x3-acta-top .t3x3-card-title{
    font-size:16px!important;
  }
  .t3x3-acta-top .t3x3-card-meta{
    font-size:11px!important;
    line-height:1.15!important;
  }
  .t3x3-acta-main{
    grid-template-columns:1fr 1fr!important;
    grid-template-areas:
      "center center"
      "teama teamb"!important;
    gap:6px!important;
  }
  .t3x3-acta-center{grid-column:1 / -1!important;padding:8px!important;}
  .t3x3-acta-team{padding:7px!important;gap:4px!important;}
  .t3x3-acta-team-name{font-size:15px!important;line-height:0.95!important;}
  .t3x3-acta-team-score{font-size:44px!important;}
  .t3x3-acta-actions .btn{
    min-height:34px!important;
    padding:4px 2px!important;
    font-size:12px!important;
    border-width:2px!important;
  }
  .t3x3-acta-fouls .btn{
    min-height:32px!important;
    padding:2px 0!important;
  }
  .t3x3-pill{font-size:11px!important;padding:3px 8px!important;}
  .t3x3-acta-clock{
    font-size:44px!important;
    padding:10px 6px!important;
    border-width:3px!important;
  }
  .t3x3-acta-clock small{
    font-size:12px!important;
    margin-top:2px!important;
  }
  .t3x3-acta-time-inline input{
    min-height:38px!important;
    font-size:18px!important;
  }
  .t3x3-acta-time-inline .btn{
    min-height:38px!important;
    padding:6px 8px!important;
  }
  .t3x3-sign-box,.t3x3-notes-box{
    padding:7px!important;
    min-height:0!important;
  }
  .t3x3-sign-ok{
    font-size:13px!important;
    padding:4px 8px!important;
  }
  .t3x3-sign-pad{height:56px!important;}
  .t3x3-notes-toggle{
    font-size:13px!important;
    padding:8px 10px!important;
  }
  .modal-overlay.acta-fullscreen .modal-footer{
    display:grid!important;
    grid-template-columns:0.92fr 1fr 1.18fr!important;
    gap:6px!important;
    padding:6px 8px calc(6px + env(safe-area-inset-bottom))!important;
    border-top:1px solid var(--gris-claro)!important;
    background:var(--blanco)!important;
  }
  .modal-overlay.acta-fullscreen .modal-footer .btn{
    min-width:0!important;
    width:100%!important;
    min-height:40px!important;
    padding:8px 4px!important;
    font-size:11px!important;
    letter-spacing:0!important;
    white-space:nowrap!important;
  }
}


/* --- FIX DEFINITIVO MÓVIL ACTA 3X3 --- */
@media(max-width:430px){
  .modal-overlay.acta-fullscreen{padding:0!important;align-items:stretch!important;justify-content:stretch!important;}
  .modal-overlay.acta-fullscreen .modal{
    width:100vw!important;
    max-width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    overflow:hidden!important;
    border-radius:0!important;
  }
  .modal-overlay.acta-fullscreen .modal-header{
    padding:6px 8px!important;
    min-height:52px!important;
  }
  .modal-overlay.acta-fullscreen .modal-header h2{
    font-size:16px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  .modal-overlay.acta-fullscreen .modal-body{
    padding:4px 6px!important;
    overflow:hidden!important;
    display:block!important;
  }
  .modal-overlay.acta-fullscreen .modal-footer{
    padding:6px!important;
    display:grid!important;
    grid-template-columns:1fr 1fr 1.25fr!important;
    gap:6px!important;
    border-top:1px solid var(--gris-claro)!important;
  }
  .modal-overlay.acta-fullscreen .modal-footer .btn{
    min-height:38px!important;
    padding:6px 4px!important;
    font-size:11px!important;
    border-width:2px!important;
  }

  .t3x3-acta-shell{
    gap:6px!important;
    transform-origin:top left!important;
    width:100%!important;
  }
  .t3x3-acta-top{
    display:grid!important;
    grid-template-columns:1fr auto!important;
    gap:6px!important;
    align-items:center!important;
  }
  .t3x3-acta-top .t3x3-card-title{font-size:15px!important;line-height:.95!important;}
  .t3x3-acta-top .t3x3-card-meta{font-size:10px!important;line-height:1.1!important;}
  .t3x3-acta-top .t3x3-pill{font-size:10px!important;padding:4px 8px!important;}

  .t3x3-acta-main{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    grid-template-areas:
      "center center"
      "teamA teamB"!important;
    gap:6px!important;
    align-items:stretch!important;
  }
  .t3x3-acta-main > .t3x3-acta-center{grid-area:center!important;}
  .t3x3-acta-main > .t3x3-acta-team:first-of-type{grid-area:teamA!important;}
  .t3x3-acta-main > .t3x3-acta-team.right{grid-area:teamB!important;text-align:right!important;}

  .t3x3-acta-center{
    padding:7px!important;
    gap:6px!important;
    border-radius:12px!important;
  }
  #t3-acta-live-score{font-size:30px!important;line-height:1!important;}
  .t3x3-acta-clock{
    font-size:40px!important;
    line-height:.9!important;
    padding:8px 6px!important;
    border-width:2px!important;
    border-radius:12px!important;
  }
  .t3x3-acta-clock small{font-size:10px!important;line-height:1!important;margin-top:2px!important;}
  .t3x3-acta-time-inline{grid-template-columns:1fr auto!important;gap:6px!important;}
  .t3x3-acta-time-inline label{font-size:9px!important;margin-bottom:2px!important;}
  #t3-acta-time-direct,.t3x3-acta-time-inline input{
    min-height:34px!important;
    font-size:18px!important;
    padding:6px 8px!important;
  }
  .t3x3-acta-center .btn{min-height:32px!important;padding:6px 6px!important;font-size:11px!important;}

  .t3x3-acta-team{
    padding:7px!important;
    gap:4px!important;
    border-radius:10px!important;
    min-width:0!important;
  }
  .t3x3-acta-team-name{
    font-size:14px!important;
    line-height:.95!important;
    word-break:break-word!important;
  }
  .t3x3-acta-team .t3x3-card-meta{font-size:10px!important;line-height:1!important;}
  .t3x3-acta-team-score{font-size:42px!important;line-height:.9!important;}

  .t3x3-acta-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:4px!important;
  }
  .t3x3-acta-actions .btn{
    min-height:32px!important;
    padding:5px 2px!important;
    font-size:15px!important;
    border-width:2px!important;
  }
  .t3x3-acta-fouls{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:4px!important;
    flex-wrap:nowrap!important;
  }
  .t3x3-acta-fouls .t3x3-pill{
    font-size:10px!important;
    padding:4px 6px!important;
    white-space:nowrap!important;
  }
  .t3x3-acta-fouls .btn{
    min-height:28px!important;
    padding:4px 8px!important;
    font-size:14px!important;
  }

  .t3x3-acta-bottom{
    display:grid!important;
    grid-template-columns:1fr 1.15fr 1fr!important;
    gap:6px!important;
    align-items:stretch!important;
  }
  .t3x3-sign-box,.t3x3-notes-box{
    padding:6px!important;
    gap:6px!important;
    min-height:56px!important;
    border-radius:10px!important;
  }
  .t3x3-sign-header{gap:4px!important;}
  .t3x3-sign-header strong{font-size:10px!important;line-height:1!important;}
  .t3x3-sign-header .btn{
    min-height:28px!important;
    padding:4px 6px!important;
    font-size:10px!important;
  }
  .t3x3-sign-pad{height:46px!important;}
  .t3x3-sign-ok{
    font-size:10px!important;
    padding:4px 6px!important;
    line-height:1!important;
  }
  .t3x3-notes-toggle{
    min-height:44px!important;
    padding:8px 10px!important;
    font-size:12px!important;
    gap:6px!important;
  }
  .t3x3-notes-extra textarea{
    min-height:54px!important;
    height:54px!important;
    font-size:11px!important;
  }
}

/* --- PATCH USABILIDAD MÓVIL CAMPUS --- */
@media (max-width: 768px){
  #panel-campus .campus-tabs{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    overflow:visible !important;
    white-space:normal !important;
  }
  #panel-campus .campus-tab{
    min-width:0 !important;
    max-width:none !important;
    white-space:normal !important;
    word-break:break-word !important;
    padding:12px 8px !important;
    font-size:13px !important;
    line-height:1.15 !important;
    text-align:center !important;
    border-right:1px solid var(--gris-claro) !important;
    border-bottom:1px solid var(--gris-claro) !important;
  }
  #panel-campus .campus-tab:nth-child(3n){ border-right:none !important; }
  #panel-campus .campus-tab:last-child{ border-right:none !important; }

  #campus-cuentas-content .stats-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
  }
  #campus-cuentas-content .stat-card{
    min-width:0 !important;
    padding:14px 12px !important;
  }
  #campus-cuentas-content .stat-number{
    font-size:28px !important;
    line-height:0.95 !important;
    word-break:break-word !important;
  }
  #campus-cuentas-content > div[style*="grid-template-columns:1.3fr 1fr"]{
    grid-template-columns:1fr !important;
    gap:12px !important;
  }
  #campus-cuentas-content > div[style*="padding-top:10px;border-top:1px solid var(--gris-claro);display:grid;grid-template-columns:1fr 1fr"]{
    grid-template-columns:1fr 1fr !important;
  }
  #campus-cuentas-content .chart-box{
    min-width:0 !important;
    overflow:hidden !important;
    padding:14px !important;
  }
  #campus-cuentas-content .chart-box h4{
    font-size:15px !important;
    margin-bottom:12px !important;
  }
  #campus-cuentas-content .bar-row{
    display:grid !important;
    grid-template-columns:minmax(92px,1fr) minmax(90px,1.4fr) auto !important;
    gap:8px !important;
    align-items:center !important;
  }
  #campus-cuentas-content .bar-label{
    min-width:0 !important;
    white-space:normal !important;
    line-height:1.2 !important;
    font-size:13px !important;
  }
  #campus-cuentas-content .bar-track{ width:100% !important; }
  #campus-cuentas-content .bar-val{
    font-size:13px !important;
    white-space:nowrap !important;
  }
  #campus-cuentas-content .table-container{
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch !important;
    border-radius:12px !important;
  }
  #campus-cuentas-content table{
    min-width:640px !important;
  }
  #campus-cuentas-content th,
  #campus-cuentas-content td{
    font-size:12px !important;
    padding:10px 8px !important;
  }

  #contenido-grid{
    display:block !important;
    min-width:0 !important;
  }
  #contenido-grid > div{
    display:block !important;
    min-width:0 !important;
  }
  #contenido-grid [style*="display:grid;grid-template-columns:1fr 1fr;gap:0"]{
    display:block !important;
  }
  #contenido-grid [style*="border-right:1px solid rgba(255,255,255,0.06)"]{
    border-right:none !important;
    border-bottom:1px solid rgba(255,255,255,0.08) !important;
  }
  #contenido-grid [style*="padding:16px 20px"]{
    padding:14px !important;
  }
  #contenido-grid [style*="background:#1565c0;padding:14px 20px;display:flex;align-items:center;gap:10px;"],
  #contenido-grid [style*="background:#7b3f9e;padding:14px 20px;display:flex;align-items:center;gap:10px;"],
  #contenido-grid [style*="background:#166534;padding:14px 20px;display:flex;align-items:center;gap:10px;"]{
    padding:14px !important;
    align-items:flex-start !important;
  }
  #contenido-grid [style*="display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid rgba(255,255,255,0.06);"]{
    display:block !important;
    padding:12px 0 !important;
  }
  #contenido-grid [style*="min-width:52px;text-align:center;padding-top:1px;"]{
    min-width:0 !important;
    display:flex !important;
    align-items:flex-end !important;
    gap:6px !important;
    text-align:left !important;
    margin-bottom:6px !important;
  }
  #contenido-grid [style*="font-size:11px;color:rgba(255,255,255,0.6);"]{
    line-height:1.35 !important;
    overflow-wrap:anywhere !important;
  }
  #contenido-grid [style*="font-size:11px;color:rgba(255,255,255,0.55);line-height:1.5;margin-top:2px;"],
  #contenido-grid [style*="font-size:11px;color:rgba(255,255,255,0.6);padding:2px 0 2px 10px;"],
  #contenido-grid [style*="font-size:11px;color:rgba(255,255,255,0.5);margin-top:1px;line-height:1.4;"]{
    font-size:12.5px !important;
    line-height:1.5 !important;
    overflow-wrap:anywhere !important;
  }
  #contenido-grid a{ overflow-wrap:anywhere !important; }
}

@media (max-width: 520px){
  #panel-campus .campus-tabs{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  #campus-cuentas-content .stats-grid{
    grid-template-columns:1fr !important;
  }
  #campus-cuentas-content > div[style*="padding-top:10px;border-top:1px solid var(--gris-claro);display:grid;grid-template-columns:1fr 1fr"]{
    grid-template-columns:1fr !important;
  }
  #campus-cuentas-content .bar-row{
    grid-template-columns:1fr !important;
    gap:6px !important;
  }
  #campus-cuentas-content .bar-track{ order:2 !important; }
  #campus-cuentas-content .bar-val{ order:3 !important; }
  #campus-cuentas-content .chart-box{
    padding:12px !important;
  }
  #campus-cuentas-content .stat-number{
    font-size:24px !important;
  }
}

@media (max-width: 768px){
  .cp-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }
  .cp-card{
    display:block !important;
    overflow:visible !important;
  }
  .cp-card > div:first-child{
    display:grid !important;
    grid-template-columns:72px minmax(0,1fr) !important;
    align-items:start !important;
    gap:12px !important;
  }
  .cp-card img{
    display:block !important;
    width:72px !important;
    height:72px !important;
    min-width:72px !important;
    min-height:72px !important;
    max-width:72px !important;
    object-fit:cover !important;
    border-radius:50% !important;
    flex-shrink:0 !important;
    background:#f3f4f6 !important;
    border:3px solid #8b5cf6 !important;
    visibility:visible !important;
    opacity:1 !important;
  }
  .cp-card .cp-avatar,
  .cp-card .participant-photo-fallback{
    display:flex !important;
    width:72px !important;
    height:72px !important;
    min-width:72px !important;
    min-height:72px !important;
    border-radius:50% !important;
    align-items:center !important;
    justify-content:center !important;
    font-size:26px !important;
    font-weight:900 !important;
    flex-shrink:0 !important;
  }
  .cp-card .cp-name{
    font-size:18px !important;
    line-height:1.05 !important;
    margin-bottom:6px !important;
    word-break:break-word !important;
  }
  .cp-card .cp-meta{
    font-size:13px !important;
    line-height:1.35 !important;
  }
  .cp-card .cp-badges{
    margin-top:8px !important;
    gap:6px !important;
  }
}
@media (max-width: 520px){
  .cp-card > div:first-child{
    grid-template-columns:64px minmax(0,1fr) !important;
    gap:10px !important;
  }
  .cp-card img,
  .cp-card .cp-avatar,
  .cp-card .participant-photo-fallback{
    width:64px !important;
    height:64px !important;
    min-width:64px !important;
    min-height:64px !important;
    max-width:64px !important;
  }
}

@media (max-width: 900px){
  #cs-participantes .cp-card{
    overflow:visible !important;
  }
  #cs-participantes .cp-card > div:first-child{
    display:grid !important;
    grid-template-columns:72px minmax(0,1fr) !important;
    gap:12px !important;
    align-items:start !important;
  }
  #cs-participantes .cp-card img{
    display:block !important;
    width:72px !important;
    height:72px !important;
    min-width:72px !important;
    min-height:72px !important;
    max-width:72px !important;
    object-fit:cover !important;
    border-radius:50% !important;
    opacity:1 !important;
    visibility:visible !important;
  }
  #cs-participantes .cp-card .cp-name{
    line-height:1.1 !important;
    word-break:break-word !important;
  }
}
@media (max-width: 600px){
  #cs-participantes .cp-card > div:first-child{
    grid-template-columns:64px minmax(0,1fr) !important;
    gap:10px !important;
  }
  #cs-participantes .cp-card img{
    width:64px !important;
    height:64px !important;
    min-width:64px !important;
    min-height:64px !important;
    max-width:64px !important;
  }
}

.velada-card .btn.btn-sm{display:inline-flex!important;align-items:center;justify-content:center;gap:6px}

.campus-icon-btn{width:44px;min-width:44px;height:44px;display:inline-flex!important;align-items:center;justify-content:center;padding:0!important;font-size:20px!important;line-height:1!important}

:root{
  --tap-size:44px;
  --mobile-pad:12px;
  --section-gap:12px;
}
html,body{max-width:100%;overflow-x:hidden;}
*{box-sizing:border-box;}
img,video,canvas,svg{max-width:100%;height:auto;}
input,select,textarea,button{font:inherit;}
.btn,.login-btn,.campus-tab,.campus-subtab,.sidebar-item,.topbar-btn{
  min-height:var(--tap-size);
}
.main,.content,#app,.panel,.modal,.modal-body,.modal-footer{max-width:100%;}

.detail-row{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px!important;
}
.detail-field{min-width:0;}
.detail-field input,
.detail-field select,
.detail-field textarea{
  width:100%;
  min-width:0;
}

table.responsive-table,
.content table,
.modal-body table{
  width:100%;
  border-collapse:collapse;
}
@media (max-width:1100px){
  .stats-grid,
  .dashboard-grid,
  .resumen-grid,
  .panel-grid,
  .cards-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  #veladas-grid,
  #monitores-grid,
  #contenido-grid,
  #cs-entrenos-grid,
  .cp-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media (max-width:900px){
  :root{--mobile-pad:12px;}
  body{overflow-x:hidden;}
  .content{
    padding:14px var(--mobile-pad) 96px!important;
    width:100%!important;
    max-width:100vw!important;
    overflow-x:hidden!important;
  }
  .main{
    margin-left:0!important;
    width:100%!important;
    max-width:100vw!important;
  }
  .topbar,.topbar-actions{
    flex-wrap:wrap!important;
    gap:8px!important;
  }
  .topbar-title{
    font-size:20px!important;
    min-width:0;
  }
  .campus-header{
    padding:14px!important;
    align-items:flex-start!important;
    gap:12px!important;
    flex-direction:column!important;
  }
  .campus-header > div:first-child{
    width:100%!important;
    min-width:0;
  }
  .campus-header img{
    width:84px!important;
    height:auto!important;
  }
  .campus-tabs,.campus-subtabs,
  .tabs,.subtabs{
    display:flex!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-width:thin;
    gap:0!important;
    padding-bottom:2px;
  }
  .campus-tab,.campus-subtab,
  .tab,.subtab{
    flex:0 0 auto!important;
    white-space:nowrap!important;
    padding:12px 14px!important;
    min-height:var(--tap-size)!important;
  }
  #cs-participantes > div:first-child,
  #cs-monitores > div:first-child,
  #cs-almacen > div:first-child,
  #cs-cuentas > div:first-child{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  #cp-search,#cp-equipo,#cp-deporte,#cp-alergia,
  #med-search,#med-equipo,
  #bb-search,
  input[type="text"],input[type="email"],input[type="password"],input[type="number"],input[type="date"],input[type="time"],select,textarea{
    font-size:16px!important;
    min-height:46px!important;
  }
  textarea{min-height:100px;}
  .detail-row{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .stats-grid,
  .dashboard-grid,
  .resumen-grid,
  .panel-grid,
  .cards-grid,
  #veladas-grid,
  #monitores-grid,
  #contenido-grid,
  #cs-entrenos-grid,
  .cp-grid{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .cp-card,.velada-card,.monitor-card,.contenido-card,
  .et-card{
    padding:12px!important;
    border-radius:10px!important;
  }
  .cp-card > div:first-child{
    display:grid!important;
    grid-template-columns:72px minmax(0,1fr)!important;
    gap:12px!important;
    align-items:start!important;
  }
  .cp-card img{
    width:72px!important;
    height:72px!important;
    min-width:72px!important;
    min-height:72px!important;
    object-fit:cover!important;
    border-radius:50%!important;
  }
  .cp-name{
    font-size:15px!important;
    line-height:1.08!important;
    word-break:break-word!important;
  }
  .cp-meta{
    font-size:12.5px!important;
    line-height:1.35!important;
  }
  .cp-badges{
    gap:6px!important;
    flex-wrap:wrap!important;
  }
  .modal-overlay .modal{
    width:min(100vw - 16px, 980px)!important;
    max-width:100vw!important;
    max-height:calc(var(--vh, 1vh) * 100 - 16px)!important;
    margin:8px auto!important;
    border-radius:14px!important;
  }
  .modal-overlay .modal-header{
    padding:12px 14px!important;
  }
  .modal-overlay .modal-header h2{
    font-size:18px!important;
    line-height:1.1!important;
  }
  .modal-overlay .modal-body{
    padding:12px!important;
    overflow:auto!important;
  }
  .modal-overlay .modal-footer{
    padding:12px!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    position:sticky;
    bottom:0;
    background:var(--blanco);
  }
  .modal-overlay .modal-footer .btn{
    width:100%!important;
  }
  .schedule-day-header,
  .et-card-header,
  .velada-card > div:first-child{
    flex-wrap:wrap!important;
    gap:8px!important;
  }
  .schedule-row{
    display:grid!important;
    grid-template-columns:64px 1fr!important;
    gap:8px!important;
    align-items:start!important;
  }
  .schedule-hora{
    min-width:auto!important;
    font-size:17px!important;
  }
  .schedule-act{
    min-width:0;
  }
  .content table,
  .modal-body table{
    display:block;
    width:100%;
    overflow-x:auto;
    white-space:nowrap;
    -webkit-overflow-scrolling:touch;
  }
}

@media (max-width:640px){
  :root{--mobile-pad:10px;}
  .content{padding-left:10px!important;padding-right:10px!important;}
  .topbar-title{font-size:18px!important;}
  .campus-header h2{font-size:clamp(22px,8vw,34px)!important;line-height:0.98!important;}
  .campus-header p{font-size:12px!important;line-height:1.35!important;}
  .cp-card > div:first-child{
    grid-template-columns:64px minmax(0,1fr)!important;
    gap:10px!important;
  }
  .cp-card img{
    width:64px!important;
    height:64px!important;
    min-width:64px!important;
    min-height:64px!important;
  }
  .btn,.login-btn{padding:10px 12px!important;}
  .modal-overlay .modal{
    width:100vw!important;
    height:calc(var(--vh, 1vh) * 100)!important;
    max-height:calc(var(--vh, 1vh) * 100)!important;
    margin:0!important;
    border-radius:0!important;
  }
  .modal-overlay .modal-header{
    position:sticky;
    top:0;
    z-index:3;
    background:var(--blanco);
  }
  .modal-overlay .modal-body{
    padding:10px!important;
  }
  .modal-overlay .modal-footer{
    padding:10px!important;
  }
  #campus-almacen-content > div:last-child,
  #campus-bancobar-content > div:last-child{
    grid-template-columns:1fr!important;
  }
  #campus-bancobar-content [style*="grid-template-columns:320px 1fr"]{
    grid-template-columns:1fr!important;
  }
  #campus-bancobar-content [style*="grid-template-columns:1fr 1fr"]{
    grid-template-columns:1fr!important;
  }
}

@media (max-height:540px) and (orientation:landscape){
  .topbar{padding-top:8px!important;padding-bottom:8px!important;}
  .content{padding-top:10px!important;}
  .campus-header{padding:10px 12px!important;gap:8px!important;}
  .campus-header img{width:64px!important;}
  .campus-header h2{font-size:24px!important;}
  .modal-overlay .modal{
    width:min(100vw - 12px, 1200px)!important;
    height:calc(var(--vh, 1vh) * 100 - 12px)!important;
    max-height:calc(var(--vh, 1vh) * 100 - 12px)!important;
    margin:6px auto!important;
    border-radius:12px!important;
  }
  .modal-overlay .modal-body{
    padding:10px!important;
  }
  .modal-overlay .modal-footer{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .cp-grid,
  #veladas-grid,
  #monitores-grid,
  #contenido-grid,
  #cs-entrenos-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media (pointer:coarse){
  button,[role="button"],.btn,.campus-tab,.campus-subtab,.sidebar-item{
    touch-action:manipulation;
  }
}

@media (max-width: 900px) and (orientation: portrait){
  #cs-horario > div[style*="grid-template-columns:1fr 300px"]{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  #cs-horario #hor-pistas{
    display:flex!important;
    flex-direction:column!important;
    gap:12px!important;
  }
  #cs-horario #hor-pistas > div{
    margin-bottom:0!important;
    padding-bottom:12px!important;
  }
  #cs-horario #hor-pistas [style*="grid-template-columns:1fr 1fr"]{
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  #cs-horario #hor-dia-header > div{
    flex-wrap:wrap!important;
    align-items:flex-start!important;
    padding:12px!important;
  }
  #cs-horario #hor-dia-header > div > div:first-child{
    padding:6px 12px!important;
    font-size:24px!important;
  }
  #cs-horario #hor-dia-header > div > div:nth-child(2) > div:first-child{
    font-size:18px!important;
    line-height:1.05!important;
  }
  #cs-horario #hor-dia-header > div > div:last-child{
    margin-left:0!important;
  }
}

@media(max-width:900px){
  #panel-circulares [style*="grid-template-columns:1.2fr .95fr"]{grid-template-columns:1fr!important;}
}


/* === Fase 21: hamburger campus === */
.campus-hamburger-holder{
  position:absolute;
  top:14px;
  right:14px;
  z-index:20;
}
.campus-hamburger-btn{
  border:2px solid #111;
  background:#fff;
  color:#111;
  border-radius:12px;
  padding:10px 14px;
  font-weight:800;
  box-shadow:0 6px 20px rgba(0,0,0,.08);
}
.campus-hamburger-menu{
  display:none;
  position:absolute;
  right:0;
  top:52px;
  min-width:220px;
  background:#fff;
  border:1px solid #ddd;
  border-radius:14px;
  box-shadow:0 12px 30px rgba(0,0,0,.14);
  padding:8px;
}
.campus-hamburger-menu.open{display:block}
.campus-hamburger-item{
  display:block;
  width:100%;
  text-align:left;
  border:0;
  background:#fff;
  padding:10px 12px;
  border-radius:10px;
  font-weight:700;
}
.campus-hamburger-item:hover{background:#f3f4f6}
@media (min-width: 1100px){
  .campus-hamburger-holder{display:block}
}

/* === Fase 75: Campus solo menu hamburguesa === */
#panel-campus .campus-tabs{
  display:none !important;
}
#panel-campus .campus-current-section-title{
  background:#fff;
  border:1px solid var(--gris-claro);
  border-radius:14px;
  padding:18px 22px;
  margin:18px 0 18px;
  box-shadow:0 3px 12px rgba(0,0,0,.04);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
#panel-campus .campus-current-section-title h2{
  margin:0;
  font-family:'Barlow Condensed',sans-serif;
  font-size:34px;
  line-height:1;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:1px;
  color:var(--negro);
}
#panel-campus .campus-current-section-kicker{
  width:100%;
  font-size:10px;
  font-weight:800;
  letter-spacing:1.8px;
  color:var(--gris-medio);
  text-transform:uppercase;
  margin-bottom:-8px;
}
#panel-campus .campus-current-section-help{
  margin-left:auto;
  font-size:13px;
  color:var(--gris-medio);
}
#panel-campus .campus-hamburger-menu{
  z-index:9999;
}
#panel-campus .campus-hamburger-item.active{
  background:#111;
  color:var(--amarillo);
}
@media(max-width:700px){
  #panel-campus .campus-current-section-title{
    padding:14px 16px;
    margin:14px 0;
  }
  #panel-campus .campus-current-section-title h2{
    font-size:28px;
  }
  #panel-campus .campus-current-section-help{
    width:100%;
    margin-left:0;
  }
}
