
    @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

    :root {
      --primary: #fedd00;
      --primary-hover: #e5c700;
      --primary-light: #fffde6;
      --dark-purple: #0d000a;
      --bg: #f3f2f2;
      --sidebar-bg: #000000;
      --card-bg: #ffffff;
      --text-main: #0d000a;
      --text-muted: #665c63;
      --border: #e2dfdf;
      --danger: #ef4444;
      --warning: #f59e0b;
      --sidebar-width: 250px;
    }

    * { box-sizing: border-box; margin: 0; padding: 0; font-family: 'Inter', sans-serif; }
    body { background-color: var(--bg); color: var(--text-main); display: flex; height: 100vh; overflow: hidden; }

    /* LOGIN */
    #auth-screen { position: fixed; inset: 0; background: var(--dark-purple); z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
    .login-card { background: #ffffff; width: 100%; max-width: 440px; border-radius: 24px; padding: 2.5rem 2rem; box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5); border: 1px solid rgba(254, 221, 0, 0.3); text-align: center; }
    .login-brand-logo { width: 60px; height: 60px; background: var(--primary); color: var(--dark-purple); border-radius: 16px; margin: 0 auto 1rem; display: flex; align-items: center; justify-content: center; font-size: 2rem; font-weight: 900; overflow: hidden; }
    .login-card h2 { font-size: 1.6rem; font-weight: 900; color: var(--dark-purple); letter-spacing: 0.5px; }
    .login-card p { font-size: 0.8rem; color: var(--text-muted); margin-bottom: 1.5rem; font-weight: 600; }
    .demo-credentials { background: #fbf9fa; border: 1px solid var(--border); border-radius: 10px; padding: 0.65rem 0.75rem; margin-bottom: 1.25rem; font-size: 0.72rem; text-align: left; }
    .demo-btn-pill { background: white; border: 1px solid var(--border); border-radius: 6px; padding: 4px 8px; font-size: 0.75rem; font-weight: 800; color: var(--dark-purple); cursor: pointer; margin-right: 4px; transition: all 0.2s; }
    .demo-btn-pill:hover { background: var(--primary); border-color: var(--primary); }

    /* SIDEBAR */
    aside.sidebar { width: var(--sidebar-width); background: var(--sidebar-bg); border-right: 1px solid rgba(255,255,255,0.08); display: flex; flex-direction: column; flex-shrink: 0; z-index: 100; }
    .brand-section { padding: 1.25rem 1.2rem; display: flex; align-items: center; gap: 0.75rem; border-bottom: 1px solid rgba(255,255,255,0.08); position: relative; }
    .brand-logo { background: var(--primary); width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; color: var(--dark-purple); font-size: 1.4rem; font-weight: 900; overflow: hidden; flex-shrink: 0; transition: all 0.2s ease; }
    .brand-text { flex-grow: 1; overflow: hidden; }
    .brand-text strong { font-size: 1.15rem; color: #ffffff; font-weight: 900; letter-spacing: 0.5px; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .brand-text p { font-size: 0.68rem; color: #b8b0b6; margin-top: 1px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    
    .nav-menu { list-style: none; padding: 1.25rem 0.75rem; flex-grow: 1; overflow-y: auto; }
    .nav-item { display: flex; align-items: center; justify-content: space-between; padding: 0.7rem 0.9rem; color: #d6cfd4; border-radius: 10px; font-size: 0.92rem; font-weight: 600; cursor: pointer; margin-bottom: 0.25rem; transition: all 0.2s ease; }
    .nav-item-left { display: flex; align-items: center; gap: 0.9rem; }
    .nav-item i { font-size: 1.15rem; width: 22px; text-align: center; color: #9f969d; }
    .nav-item:hover { background: rgba(255, 255, 255, 0.08); color: #ffffff; }
    .nav-item:hover i { color: var(--primary); }
    .nav-item.active { background: rgba(254, 221, 0, 0.16); color: var(--primary); font-weight: 700; }
    .nav-item.active i { color: var(--primary); }
    .badge-count { background: var(--primary); color: var(--dark-purple); padding: 0.15rem 0.55rem; border-radius: 99px; font-size: 0.75rem; font-weight: 800; }
    .sidebar-footer { padding: 1.25rem 1rem; border-top: 1px solid rgba(255,255,255,0.08); }
    .licence-card { background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.1); padding: 0.85rem; border-radius: 12px; display: flex; gap: 0.75rem; align-items: center; }
    .licence-icon { width: 36px; height: 36px; background: var(--primary); border-radius: 8px; flex-shrink: 0; display:flex; align-items:center; justify-content:center; color:var(--dark-purple); }
    .licence-text strong { display: block; font-size: 0.85rem; color: #ffffff; }
    .licence-text span { font-size: 0.72rem; color: var(--primary); font-weight: 700; }

    /* MAIN CONTENT */
    .app-wrapper { flex-grow: 1; display: flex; flex-direction: column; overflow-y: auto; }
    header { background: #ffffff; border-bottom: 1px solid var(--border); padding: 0.75rem 2rem; display: flex; justify-content: flex-end; align-items: center; position: sticky; top: 0; z-index: 10; }
    .user-profile-box { display: flex; align-items: center; gap: 0.85rem; }
    .user-avatar { background: var(--dark-purple); color: var(--primary); width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.85rem; font-weight: 900; }
    .role-badge-tag { font-size: 0.68rem; font-weight: 800; padding: 2px 7px; border-radius: 6px; text-transform: uppercase; background: var(--primary); color: var(--dark-purple); }
    .btn-logout { background: #fee2e2; border: 1px solid #fecaca; color: var(--danger); padding: 0.35rem 0.65rem; border-radius: 8px; font-size: 0.75rem; font-weight: 800; cursor: pointer; transition: all 0.2s; display: inline-flex; align-items: center; gap: 4px; }
    .btn-logout:hover { background: #fecaca; }

    main { padding: 2rem; max-width: 1250px; margin: 0 auto; width: 100%; }
    .view-section { display: none; }
    .view-section.active { display: block; animation: fadeIn 0.25s ease-out; }
    @keyframes fadeIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }

    .page-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.75rem; flex-wrap: wrap; gap: 1rem; }
    .page-title { font-size: 1.6rem; font-weight: 900; color: var(--dark-purple); }
    
    .btn { padding: 0.6rem 1.2rem; border-radius: 8px; border: none; font-weight: 800; font-size: 0.9rem; cursor: pointer; display: inline-flex; align-items: center; gap: 0.5rem; transition: all 0.2s ease; }
    .btn-primary { background: var(--primary); color: var(--dark-purple); }
    .btn-primary:hover { background: var(--primary-hover); transform: translateY(-1px); }
    .btn-outline { background: white; border: 1px solid var(--border); color: var(--dark-purple); }
    .btn-outline:hover { background: #fdfcee; border-color: #cbd5e1; }
    .btn-danger { background: #fee2e2; color: var(--danger); border: 1px solid #fecaca; }
    .btn-danger:hover { background: #fecaca; }
    .btn-success { background: #dcfce7; color: #15803d; border: 1px solid #86efac; }
    .btn-success:hover { background: #bbf7d0; }
    .btn-wpp { background: #25d366; color: white; border: none; }
    .btn-wpp:hover { background: #1ebc59; }

    /* DOCK MACBOOK EFFECT */
    .dock-container:hover .dock-item { opacity: 0.65; }
    .dock-item { background: #ffffff; border-radius: 14px; position: relative; z-index: 1; transition: all 0.28s cubic-bezier(0.25, 1, 0.5, 1); }
    .dock-item:hover { transform: scale(1.045); z-index: 10; opacity: 1 !important; box-shadow: 0 16px 32px -4px rgba(13,0,10,0.12), 0 6px 14px rgba(13,0,10,0.06); }

    /* REGISTRO DE MATRÍCULAS */
    .matricula-stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-bottom:1.5rem; }
    .matricula-stat-card { background:white; border:1px solid var(--border); border-radius:12px; padding:1.1rem 1.25rem; }
    .matricula-stat-card .label { font-size:.72rem; font-weight:800; color:var(--text-muted); text-transform:uppercase; }
    .matricula-stat-card .value { font-size:1.8rem; font-weight:900; color:var(--dark-purple); margin-top:.35rem; }
    .matricula-stat-card.pending { border-bottom:4px solid var(--primary); }
    .matricula-stat-card.review { border-bottom:4px solid #f59e0b; }
    .matricula-stat-card.approved { border-bottom:4px solid #15803d; }
    .matricula-table td { padding:.85rem 1rem; border-bottom:1px solid var(--border); font-size:.84rem; vertical-align:middle; }
    .matricula-status { display:inline-flex; align-items:center; gap:5px; border-radius:99px; padding:.28rem .65rem; font-size:.7rem; font-weight:800; white-space:nowrap; }
    .matricula-status.pre { background:#e0f2fe; color:#0369a1; border:1px solid #bae6fd; }
    .matricula-status.review { background:#fef3c7; color:#b45309; border:1px solid #fde68a; }
    .matricula-status.approved { background:#dcfce7; color:#15803d; border:1px solid #bbf7d0; }
    .matricula-status.rejected { background:#fee2e2; color:#b91c1c; border:1px solid #fecaca; }
    .matricula-locked-box { background:var(--primary-light); border:1px solid var(--primary); border-radius:10px; padding:.75rem .85rem; }
    .matricula-link-box { background:#fbf9fa; border:1px dashed var(--border); border-radius:10px; padding:.85rem; }
    .matricula-proof { width:100%; max-height:420px; object-fit:contain; border:1px solid var(--border); border-radius:10px; background:#fbf9fa; }
    .matricula-public-shell { min-height:100vh; background:linear-gradient(135deg,#0d000a 0%,#1f1720 65%,#0d000a 100%); padding:1.5rem; display:flex; align-items:center; justify-content:center; overflow:auto; }
    .matricula-public-card { width:100%; max-width:820px; background:white; border-radius:24px; overflow:hidden; box-shadow:0 25px 60px rgba(0,0,0,.3); }
    .matricula-public-head { padding:1.5rem 1.75rem; background:var(--dark-purple); color:white; display:flex; align-items:center; gap:1rem; }
    .matricula-public-logo { width:48px; height:48px; background:var(--primary); color:var(--dark-purple); border-radius:13px; display:flex; align-items:center; justify-content:center; font-size:1.4rem; font-weight:900; flex-shrink:0; overflow:hidden; }
    .matricula-public-body { padding:1.5rem; }
    .matricula-public-section { border:1px solid var(--border); border-radius:14px; padding:1rem; margin-bottom:1rem; }
    .matricula-public-section h3 { font-size:.98rem; font-weight:900; color:var(--dark-purple); margin-bottom:.8rem; display:flex; align-items:center; gap:.5rem; }
    .matricula-schedule-list { display:flex; flex-wrap:wrap; gap:6px; }
    .matricula-schedule-pill { background:#f5f3f4; border:1px solid var(--border); border-radius:8px; padding:.38rem .6rem; font-size:.72rem; font-weight:800; color:var(--dark-purple); }
    .matricula-payment-box { display:grid; grid-template-columns:180px 1fr; gap:1rem; align-items:center; }
    .matricula-payment-qr { width:170px; height:170px; border:1px solid var(--border); border-radius:14px; padding:7px; object-fit:contain; background:white; }
    .matricula-dropzone { border:1.5px dashed #c8c0c5; border-radius:12px; padding:1rem; background:#fbf9fa; }
    .matricula-dropzone input[type=file] { width:100%; }
    .matricula-success { text-align:center; padding:2.5rem 1rem; }
    .matricula-success-icon { width:72px; height:72px; margin:0 auto 1rem; border-radius:50%; background:#dcfce7; color:#15803d; display:flex; align-items:center; justify-content:center; font-size:2rem; }
    @media (max-width: 900px) { .matricula-stats-grid{grid-template-columns:repeat(2,1fr)} .matricula-payment-box{grid-template-columns:1fr} .matricula-payment-qr{margin:0 auto} }
    @media (max-width: 520px) { .matricula-stats-grid{grid-template-columns:1fr} .matricula-public-body{padding:1rem} .matricula-public-head{padding:1.2rem} .form-grid{grid-template-columns:1fr} .matricula-table{min-width:760px} }

    /* TABLAS Y PANELES */
    .panel { background: var(--card-bg); border-radius: 12px; border: 1px solid var(--border); padding: 1.5rem; margin-bottom: 1.5rem; box-shadow: 0 1px 3px rgba(13,0,10,0.03); }
    table { width: 100%; border-collapse: separate; border-spacing: 0; }
    th { padding: 0.9rem 1rem; text-align: left; border-bottom: 1px solid var(--border); font-size: 0.74rem; font-weight: 700; color: var(--text-muted); text-transform: uppercase; }
    #tabla-miembros td, .cobranza-table td { padding: 0.9rem 1rem; border-bottom: 1px solid var(--border); background: inherit; transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1); }
    .dock-item:hover td { border-bottom-color: transparent; }
    .dock-item:hover td:first-child { border-top-left-radius: 12px; border-bottom-left-radius: 12px; }
    .dock-item:hover td:last-child { border-top-right-radius: 12px; border-bottom-right-radius: 12px; }

    .badge { padding: 0.3rem 0.75rem; border-radius: 99px; font-size: 0.75rem; font-weight: 800; display: inline-flex; align-items: center; gap: 4px; }
    .badge-success { background: #dcfce7; color: #15803d; border: 1px solid #bbf7d0; }
    .badge-warning { background: #fef3c7; color: #b45309; border: 1px solid #fde68a; }
    .badge-danger { background: #fee2e2; color: #b91c1c; border: 1px solid #fecaca; }
    .badge.torneo { background: var(--dark-purple); color: var(--primary); }
    .badge.fogueo { background: #0284c7; color: white; }
    .badge.copa { background: #d97706; color: white; }
    .badge.otro { background: #7c3aed; color: white; }

    /* COBRANZA */
    .cobranza-stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1.5rem; }
    .c-stat-card { background: white; border: 1px solid var(--border); border-radius: 12px; padding: 1.25rem; transition: all 0.2s; }
    .c-stat-title { font-size: 0.75rem; font-weight: 800; color: var(--text-muted); text-transform: uppercase; margin-bottom: 0.5rem; }
    .c-stat-val { font-size: 2rem; font-weight: 900; color: var(--dark-purple); }
    .c-stat-val.pagado { color: #15803d; }
    .c-stat-val.pendiente { color: #b91c1c; }
    
    .cobranza-table td { font-size: 0.85rem; }
    .user-td-info { display: flex; align-items: center; gap: 0.75rem; }
    .user-td-img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 1px solid var(--border); }
    
    .subrow-content { display: none; background: #fbf9fa; }
    .subrow-content.active { display: table-row; animation: fadeIn 0.2s; }
    .mes-cobro-pill { display: inline-flex; align-items: center; justify-content: space-between; background: white; border: 1px solid var(--border); border-radius: 8px; padding: 0.5rem 0.75rem; margin: 0.25rem; min-width: 140px; font-size: 0.75rem; font-weight: 700; box-shadow: 0 2px 4px rgba(0,0,0,0.02); }
    .mes-cobro-pill.highlight-pill { border: 2px solid var(--primary); background: var(--primary-light); }
    .btn-mes-accion { background: none; border: 1px solid var(--border); border-radius: 4px; padding: 3px 8px; font-size: 0.7rem; cursor: pointer; transition: all 0.2s; font-weight: 800; margin-left: 10px; }
    .btn-mes-accion.pagar { color: #15803d; background: #dcfce7; border-color: #86efac; }
    .btn-mes-accion.revertir { color: #b91c1c; background: #fee2e2; border-color: #fca5a5; }

    /* FACTURA VISUAL */
    .factura-box { background: white; padding: 2rem; border-radius: 12px; width: 100%; max-width: 400px; margin: 0 auto; color: var(--dark-purple); position: relative; border: 1px solid var(--border); }
    .factura-header { text-align: center; border-bottom: 2px dashed var(--border); padding-bottom: 0.85rem; margin-bottom: 1.25rem; }
    .factura-row { display: flex; justify-content: space-between; margin-bottom: 0.55rem; font-size: 0.88rem; }
    .factura-total { display: flex; justify-content: space-between; font-size: 1.3rem; font-weight: 900; margin-top: 1.25rem; border-top: 2px solid var(--dark-purple); padding-top: 0.85rem; color: #b91c1c; }
    .factura-total.pagado { color: #15803d; }

    /* ASISTENCIA */
    .asistencia-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(155px, 1fr)); gap: 0.9rem; padding: 0.5rem 0; }
    .asistencia-card { background: #ffffff; border: 1px solid var(--border); border-radius: 14px; padding: 0.85rem 0.65rem 0.65rem 0.65rem; display: flex; flex-direction: column; align-items: center; text-align: center; position: relative; }
    .asistencia-card.status-presente { border-top: 4px solid #22c55e; }
    .asistencia-card.status-falta { border-top: 4px solid #ef4444; }
    .asistencia-card.status-excusa { border-top: 4px solid #f59e0b; }
    .asistencia-card-avatar { width: 94px; height: 94px; border-radius: 50%; object-fit: cover; border: 3px solid var(--primary); margin-bottom: 0.5rem; box-shadow: 0 4px 10px rgba(0,0,0,0.08); }
    .asistencia-card-name { font-size: 0.85rem; font-weight: 800; color: var(--dark-purple); margin-bottom: 0.15rem; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.2; }
    .asistencia-card-doc { font-size: 0.7rem; color: var(--text-muted); margin-bottom: 0.65rem; }
    .asistencia-options-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; width: 100%; border-top: 1px solid #f1eeef; padding-top: 0.55rem; }
    .btn-asist-opt { padding: 0.35rem 0.15rem; border-radius: 6px; border: 1px solid var(--border); background: #fbf9fa; font-size: 0.65rem; font-weight: 800; color: var(--text-muted); cursor: pointer; transition: all 0.15s ease; display: flex; flex-direction: column; align-items: center; gap: 2px; }
    .btn-asist-opt.presente.active { background: #dcfce7; color: #15803d; border-color: #86efac; }
    .btn-asist-opt.falta.active { background: #fee2e2; color: #b91c1c; border-color: #fca5a5; }
    .btn-asist-opt.excusa.active { background: #fef3c7; color: #b45309; border-color: #fde68a; }

    /* HISTORIAL Y MESES */
    .attendance-months-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; margin-top: 0.4rem; }
    @media (max-width: 600px) { .attendance-months-grid { grid-template-columns: repeat(3, 1fr); } }
    .asist-month-box { border: 1px solid var(--border); border-radius: 10px; padding: 0.6rem 0.4rem; background: #ffffff; text-align: center; cursor: pointer; transition: all 0.25s cubic-bezier(0.25, 1, 0.5, 1); display: flex; flex-direction: column; justify-content: center; align-items: center; }
    .asist-month-box:hover { transform: translateY(-3px) scale(1.05); border-color: var(--primary); box-shadow: 0 8px 16px rgba(13,0,10,0.08); background: var(--primary-light); }
    .asist-month-box strong { font-size: 0.85rem; color: var(--dark-purple); font-weight: 900; }
    .asist-month-box span { font-size: 0.68rem; color: var(--text-muted); font-weight: 700; margin-top: 2px; }

    /* CALENDARIO DE EVENTOS */
    .cal-months-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 1rem; }
    @media (max-width: 768px) { .cal-months-grid { grid-template-columns: repeat(3, 1fr); } }
    @media (max-width: 480px) { .cal-months-grid { grid-template-columns: repeat(2, 1fr); } }
    .cal-month-card { background: #fbf9fa; border: 1px solid var(--border); border-radius: 12px; padding: 1.5rem 1rem; text-align: center; cursor: pointer; transition: all 0.2s cubic-bezier(0.25, 1, 0.5, 1); display: flex; flex-direction: column; align-items: center; gap: 0.6rem; }
    .cal-month-card:hover { transform: translateY(-4px); box-shadow: 0 10px 20px rgba(0,0,0,0.06); border-color: var(--primary); background: white; }
    .cal-month-card.active { border: 2px solid var(--primary); background: var(--primary-light); transform: translateY(-4px); box-shadow: 0 10px 20px rgba(0,0,0,0.08); }
    .cal-month-card strong { font-size: 1.15rem; color: var(--dark-purple); font-weight: 800; text-transform: uppercase; }
    .cal-month-card .ev-count { font-size: 0.75rem; font-weight: 700; color: var(--dark-purple); background: var(--primary); padding: 3px 10px; border-radius: 99px; }
    .cal-month-card .ev-count.zero { background: var(--border); color: var(--text-muted); }
    
    .event-list-card { display: flex; align-items: center; gap: 1rem; background: white; border: 1px solid var(--border); border-radius: 12px; padding: 1.2rem; box-shadow: 0 2px 5px rgba(0,0,0,0.02); transition: transform 0.2s; }
    .event-list-card:hover { transform: scale(1.01); border-color: var(--primary); }
    .event-list-date-box { background: var(--primary-light); color: var(--dark-purple); min-width: 65px; text-align: center; padding: 0.6rem; border-radius: 8px; border: 1px solid var(--primary); }
    .event-list-date-box strong { display: block; font-size: 1.5rem; line-height: 1; font-weight: 900;}
    .event-list-date-box span { font-size: 0.7rem; font-weight: 800; text-transform: uppercase; }
    .event-list-info { flex-grow: 1; }
    .event-list-info h4 { font-size: 1.1rem; color: var(--dark-purple); font-weight: 800; margin-bottom: 0.3rem; }
    .event-list-info p { font-size: 0.85rem; color: var(--text-muted); display: flex; align-items: center; gap: 6px; }

    .calendar-nav-btn { background: #fbf9fa; border: 1px solid var(--border); width: 36px; height: 36px; border-radius: 8px; cursor: pointer; color: var(--dark-purple); display: flex; align-items: center; justify-content: center; transition: all 0.2s; }
    .calendar-nav-btn:hover { background: var(--primary); border-color: var(--primary); }

    /* MÓDULO QR & CUENTAS */
    .qrs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1.5rem; }
    .qr-card { background: white; border-radius: 16px; border: 1px solid var(--border); padding: 1.5rem; display: flex; flex-direction: column; justify-content: space-between; position: relative; box-shadow: 0 4px 6px -1px rgba(13,0,10,0.03); transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); }
    .qr-card:hover { transform: translateY(-4px); box-shadow: 0 12px 20px -3px rgba(13,0,10,0.08); border-color: #cbd5e1; }
    .qr-card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; }
    .qr-title-tag { font-size: 0.95rem; font-weight: 800; color: var(--dark-purple); display: flex; align-items: center; gap: 6px; }
    .qr-img-box { width: 190px; height: 190px; margin: 0 auto 1.25rem; background: white; border: 2px solid var(--border); border-radius: 14px; padding: 8px; display: flex; align-items: center; justify-content: center; overflow: hidden; cursor: pointer; transition: transform 0.2s; }
    .qr-img-box:hover { transform: scale(1.03); border-color: var(--primary); }
    .qr-img-box img { width: 100%; height: 100%; object-fit: contain; }
    .qr-bank-details { background: #fbf9fa; border: 1px solid var(--border); border-radius: 10px; padding: 0.85rem; font-size: 0.82rem; margin-bottom: 1rem; }
    .qr-bank-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.4rem; }
    .qr-bank-row:last-child { margin-bottom: 0; }
    .qr-copy-pill { background: white; border: 1px solid var(--border); border-radius: 6px; padding: 2px 7px; font-weight: 800; cursor: pointer; color: var(--dark-purple); transition: all 0.15s; display: inline-flex; align-items: center; gap: 4px; }
    .qr-copy-pill:hover { background: var(--primary); border-color: var(--primary); }

    /* GRUPOS */
    .groups-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1.5rem; }
    .group-card-btn { background: white; border-radius: 16px; border: 1px solid var(--border); overflow: hidden; cursor: pointer; position: relative; box-shadow: 0 4px 6px -1px rgba(13,0,10,0.04); transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); display: flex; flex-direction: column; text-align: left; }
    .group-card-btn:hover { transform: translateY(-6px); box-shadow: 0 16px 25px -5px rgba(13,0,10,0.1); border-color: #cbd5e1; }
    .group-cover-wrapper { height: 140px; width: 100%; position: relative; background: var(--dark-purple); overflow: hidden; }
    .group-cover-img { width: 100%; height: 100%; object-fit: cover; opacity: 0.85; transition: transform 0.3s ease; }
    .group-card-btn:hover .group-cover-img { transform: scale(1.04); }
    .group-cover-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(13,0,10,0.1) 0%, rgba(13,0,10,0.78) 100%); }
    .group-actions-floating { position: absolute; top: 10px; right: 10px; display: flex; gap: 6px; z-index: 10; }
    .btn-action-icon { width: 34px; height: 34px; border-radius: 50%; background: rgba(255, 255, 255, 0.95); border: 1px solid rgba(0,0,0,0.05); display: flex; align-items: center; justify-content: center; color: var(--dark-purple); cursor: pointer; font-size: 0.85rem; transition: all 0.2s; box-shadow: 0 2px 5px rgba(0,0,0,0.15); }
    .btn-action-icon:hover { background: var(--primary); transform: scale(1.1); color: var(--dark-purple); }
    .btn-action-icon.delete:hover { color: var(--danger); background: #fee2e2; }
    .group-badge-members { position: absolute; bottom: 12px; left: 14px; background: rgba(255,255,255,0.96); color: var(--dark-purple); padding: 0.25rem 0.7rem; border-radius: 99px; font-size: 0.78rem; font-weight: 800; display: flex; align-items: center; gap: 6px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
    .group-card-body { padding: 1.25rem; display: flex; flex-direction: column; flex-grow: 1; justify-content: space-between; }
    .group-card-name { font-size: 1.15rem; font-weight: 800; color: var(--dark-purple); margin-bottom: 0.25rem; }
    .group-card-coach { font-size: 0.82rem; color: var(--text-muted); margin-bottom: 1rem; display: flex; align-items: center; gap: 6px; }
    .group-schedules-container { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 1rem; }
    .schedule-pill { background: #f5f3f4; color: var(--dark-purple); padding: 0.25rem 0.6rem; border-radius: 6px; font-size: 0.75rem; font-weight: 700; display: inline-flex; align-items: center; gap: 4px; border: 1px solid var(--border); }
    .group-card-footer-cta { border-top: 1px solid var(--border); padding-top: 0.85rem; font-size: 0.82rem; color: var(--dark-purple); font-weight: 800; display: flex; justify-content: space-between; align-items: center; }

    /* MODALES INTERNOS GRUPO */
    .member-group-item { display: flex; align-items: center; justify-content: space-between; padding: 0.85rem 1rem; border: 1px solid var(--border); margin-bottom: 0.5rem; }
    .member-group-avatar { width: 50px; height: 50px; border-radius: 50%; object-fit: cover; cursor: pointer; border: 2px solid var(--primary); transition: transform 0.2s; flex-shrink: 0; }
    .assign-panel { background: #fbf9fa; border: 1px solid var(--border); border-radius: 12px; padding: 1rem; margin-bottom: 1.25rem; display: none; animation: fadeIn 0.2s ease-in-out; }
    .assign-list-container { max-height: 230px; overflow-y: auto; display: flex; flex-direction: column; gap: 6px; margin: 0.75rem 0; padding: 0.5rem; }
    .assign-member-row { display: flex; align-items: center; justify-content: space-between; border: 1px solid var(--border); padding: 0.6rem 0.85rem; cursor: pointer; }
    .assign-member-row label { display: flex; align-items: center; gap: 0.75rem; cursor: pointer; width: 100%; font-size: 0.88rem; color: var(--dark-purple); font-weight: 700; }
    .note-item { display: flex; justify-content: space-between; align-items: flex-start; padding: 0.6rem 0.75rem; background: #fbf9fa; border: 1px solid var(--border); border-radius: 8px; font-size: 0.85rem; line-height: 1.3; }
    .note-date-badge { display: inline-block; font-size: 0.7rem; font-weight: 800; color: var(--dark-purple); background: var(--primary); padding: 1px 6px; border-radius: 4px; margin-bottom: 3px; }

    /* FICHA TÉCNICA */
    .ficha-layout { display: grid !important; grid-template-columns: 280px 1fr !important; gap: 1.75rem !important; }
    @media (max-width: 900px) { .ficha-layout { grid-template-columns: 1fr !important; } }
    .ficha-photo-box { width: 100% !important; height: 260px !important; border-radius: 16px !important; overflow: hidden !important; background: var(--dark-purple) !important; display: flex !important; align-items: center !important; justify-content: center !important; position: relative !important; box-shadow: 0 4px 6px -1px rgba(13,0,10,0.15) !important; }
    .ficha-photo-box img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
    .ficha-photo-initials { font-size: 4rem !important; font-weight: 900 !important; color: var(--primary) !important; letter-spacing: -2px !important; }
    .slider-control { margin-top: 0.75rem !important; display: flex !important; flex-direction: column !important; gap: 0.25rem !important; }
    .slider-control label { font-size: 0.75rem !important; color: var(--text-muted); font-weight: 600; }
    .slider-control input[type="range"] { width: 100% !important; accent-color: var(--dark-purple) !important; cursor: pointer !important; }
    .ficha-card-section { background: #ffffff !important; border: 1px solid var(--border) !important; border-radius: 12px !important; padding: 1.1rem !important; margin-bottom: 1rem !important; box-shadow: 0 1px 3px rgba(13,0,10,0.02) !important; }
    .ficha-section-title { font-size: 0.75rem !important; font-weight: 800 !important; color: var(--dark-purple) !important; text-transform: uppercase !important; letter-spacing: 0.5px !important; display: flex !important; align-items: center !important; gap: 0.5rem !important; margin-bottom: 0.75rem !important; }
    .ficha-data-row { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)) !important; gap: 0.75rem !important; }
    .ficha-item label { font-size: 0.72rem !important; color: var(--text-muted); display: block; margin-bottom: 2px; }
    .ficha-item strong { font-size: 0.95rem !important; color: var(--dark-purple); font-weight: 800; }
    .sizes-grid-pill { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 0.5rem !important; text-align: center !important; }
    .size-pill-box { border: 1px solid var(--border) !important; border-radius: 8px !important; padding: 0.4rem !important; background: #fbf9fa !important; }
    .size-pill-box span { font-size: 0.68rem !important; font-weight: 700; color: var(--text-muted); display: block; }
    .size-pill-box strong { font-size: 1rem !important; color: var(--dark-purple); }
    .billing-months-grid { display: grid !important; grid-template-columns: repeat(6, 1fr) !important; gap: 6px !important; margin-top: 0.5rem !important; }
    @media (max-width: 480px) { .billing-months-grid { grid-template-columns: repeat(3, 1fr) !important; } }
    .month-badge-btn { padding: 0.45rem 0.2rem !important; border-radius: 6px !important; font-size: 0.72rem !important; font-weight: 800 !important; text-align: center !important; cursor: pointer !important; border: 1px solid transparent !important; user-select: none !important; transition: all 0.15s !important; }
    .month-badge-btn.paid { background: var(--primary) !important; color: var(--dark-purple) !important; border-color: #e5c700 !important; }
    .month-badge-btn.pending { background: #fee2e2 !important; color: #b91c1c !important; border-color: #fca5a5 !important; }
    .month-badge-btn.pre-ingreso { background: #e0f2fe !important; color: #0369a1 !important; border-color: #bae6fd !important; cursor: not-allowed !important; opacity: 0.9 !important; }

    /* MINI CALENDARIO ASISTENCIA */
    #modal-calendario-mes-asist .modal-content { max-width: 380px !important; padding: 1.5rem !important; border-radius: 20px !important; }
    .mini-cal-grid { display: grid !important; grid-template-columns: repeat(7, 1fr) !important; gap: 6px !important; margin-top: 0.75rem !important; }
    .mini-cal-dayhead { text-align: center !important; font-size: 0.75rem !important; font-weight: 800 !important; color: var(--text-muted) !important; padding: 4px 0 !important; }
    .mini-cal-cell { aspect-ratio: 1 !important; border-radius: 8px !important; font-size: 0.8rem !important; font-weight: 800 !important; display: flex !important; align-items: center !important; justify-content: center !important; cursor: pointer !important; border: 1px solid var(--border) !important; background: #f8fafc !important; color: var(--text-muted) !important; transition: all 0.15s ease !important; }
    .mini-cal-cell:hover { transform: scale(1.1) !important; z-index: 5 !important; border-color: var(--dark-purple) !important; }
    .mini-cal-cell.empty { background: transparent !important; border-color: transparent !important; cursor: default !important; }
    .mini-cal-cell.empty:hover { transform: none !important; }
    .mini-cal-cell.presente { background: #dcfce7 !important; color: #15803d !important; border-color: #86efac !important; }
    .mini-cal-cell.falta { background: #fee2e2 !important; color: #b91c1c !important; border-color: #fca5a5 !important; }
    .mini-cal-cell.excusa { background: #fef3c7 !important; color: #b45309 !important; border-color: #fde68a !important; }
    .mini-cal-editor { margin-top: 1rem !important; padding-top: 0.85rem !important; border-top: 1px solid var(--border) !important; display: none; animation: fadeIn 0.2s ease-out; }
    .mini-cal-editor-btns { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 6px !important; margin-top: 6px !important; }

    /* CONFIGURACIÓN / USUARIOS */
    .config-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:1.25rem; }
    .config-user-card { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem; border:1px solid var(--border); border-radius:12px; background:#fff; margin-bottom:.65rem; }
    .config-user-main { display:flex; align-items:center; gap:.8rem; min-width:0; }
    .config-user-avatar { width:42px; height:42px; border-radius:50%; background:var(--dark-purple); color:var(--primary); display:flex; align-items:center; justify-content:center; font-weight:900; flex-shrink:0; }
    .config-user-name { font-size:.88rem; font-weight:900; color:var(--dark-purple); }
    .config-user-meta { font-size:.72rem; color:var(--text-muted); margin-top:2px; }
    .config-role-badge { display:inline-flex; border-radius:99px; padding:.25rem .55rem; font-size:.67rem; font-weight:800; text-transform:uppercase; margin-top:4px; }
    .config-role-badge.admin { background:var(--primary-light); color:var(--dark-purple); border:1px solid var(--primary); }
    .config-role-badge.entrenador { background:#e0f2fe; color:#0369a1; border:1px solid #bae6fd; }
    .config-toggle-row { display:flex; justify-content:space-between; gap:1rem; align-items:center; padding:.9rem 0; border-bottom:1px solid var(--border); }
    .config-toggle { position:relative; width:46px; height:24px; flex-shrink:0; }
    .config-toggle input { opacity:0; width:0; height:0; }
    .config-toggle span { position:absolute; inset:0; background:#d1d5db; border-radius:99px; cursor:pointer; transition:.2s; }
    .config-toggle span:before { content:''; position:absolute; width:18px; height:18px; left:3px; top:3px; background:white; border-radius:50%; transition:.2s; box-shadow:0 1px 3px rgba(0,0,0,.2); }
    .config-toggle input:checked + span { background:var(--dark-purple); }
    .config-toggle input:checked + span:before { transform:translateX(22px); }
    .config-note { font-size:.72rem; line-height:1.45; color:var(--text-muted); background:#fbf9fa; border:1px solid var(--border); border-radius:10px; padding:.75rem .85rem; }
    .parent-public-shell { min-height:100vh; background:linear-gradient(135deg,#0d000a 0%,#1f1720 65%,#0d000a 100%); padding:1rem; display:flex; align-items:center; justify-content:center; overflow:auto; }
    .parent-public-card { width:100%; max-width:960px; background:#fff; border-radius:24px; overflow:hidden; box-shadow:0 25px 60px rgba(0,0,0,.3); }
    .parent-public-head { padding:1.35rem 1.6rem; background:var(--dark-purple); color:#fff; display:flex; align-items:center; gap:1rem; }
    .parent-public-logo { width:50px; height:50px; border-radius:13px; background:var(--primary); color:var(--dark-purple); display:flex; align-items:center; justify-content:center; overflow:hidden; font-size:1.45rem; flex-shrink:0; }
    .parent-public-body { padding:1.5rem; }
    .parent-query-box { max-width:560px; margin:0 auto 1.25rem; }
    .parent-ficha-grid { display:grid; grid-template-columns:230px 1fr; gap:1rem; }
    .parent-photo { width:100%; height:250px; border-radius:16px; object-fit:cover; background:var(--dark-purple); border:1px solid var(--border); }
    .parent-info-card { background:#fff; border:1px solid var(--border); border-radius:14px; padding:1rem; margin-bottom:1rem; }
    .parent-info-title { font-size:.78rem; font-weight:900; color:var(--dark-purple); text-transform:uppercase; display:flex; align-items:center; gap:.45rem; margin-bottom:.8rem; }
    .parent-data-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:.75rem; }
    .parent-data-item label { font-size:.68rem; color:var(--text-muted); display:block; margin-bottom:2px; }
    .parent-data-item strong { font-size:.84rem; color:var(--dark-purple); }
    .parent-pill-row { display:flex; flex-wrap:wrap; gap:6px; }
    .parent-pill { background:#f5f3f4; border:1px solid var(--border); border-radius:8px; padding:.4rem .6rem; font-size:.72rem; font-weight:800; color:var(--dark-purple); }
    .parent-result-head { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; margin-bottom:1rem; flex-wrap:wrap; }
    @media (max-width:900px) { .config-grid{grid-template-columns:1fr;} .parent-ficha-grid{grid-template-columns:1fr;} .parent-photo{height:260px;} }
    @media (max-width:520px) { .parent-public-body{padding:1rem;} .parent-public-head{padding:1.1rem;} .parent-data-grid{grid-template-columns:1fr;} .config-user-card{align-items:flex-start; flex-direction:column;} }

    /* MODALES GLOBALES */
    .modal-overlay { position: fixed !important; top: 0 !important; left: 0 !important; width: 100vw !important; height: 100vh !important; background: rgba(13, 0, 10, 0.78) !important; backdrop-filter: blur(5px) !important; display: none !important; align-items: center !important; justify-content: center !important; z-index: 10000 !important; padding: 1.5rem !important; overflow-y: auto !important; }
    .modal-overlay.active { display: flex !important; }
    .modal-content { background: #ffffff !important; width: 100% !important; border-radius: 20px !important; padding: 2rem !important; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5) !important; position: relative !important; margin: auto !important; max-height: 92vh !important; overflow-y: auto !important; }
    .modal-header { display: flex !important; justify-content: space-between !important; align-items: center !important; margin-bottom: 1.25rem !important; border-bottom: 1px solid var(--border) !important; padding-bottom: 1rem !important; }
    .modal-header h3 { font-size: 1.3rem !important; font-weight: 900 !important; color: var(--dark-purple) !important; }
    .close-btn { background: #f1eeef; border: none; width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; cursor: pointer; color: var(--text-muted); transition: all 0.2s; }
    .close-btn:hover { background: var(--dark-purple); color: var(--primary); }
    .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1rem; }
    .form-group { display: flex; flex-direction: column; gap: 0.35rem; }
    .form-group.full { grid-column: 1 / -1; }
    label { font-size: 0.82rem; font-weight: 700; color: var(--dark-purple); }
    input, select, textarea { padding: 0.65rem; border: 1px solid var(--border); border-radius: 8px; font-size: 0.9rem; outline: none; background: white; color: var(--dark-purple); }
    input:focus, select:focus, textarea:focus { border-color: var(--dark-purple); box-shadow: 0 0 0 2px rgba(254, 221, 0, 0.4); }
    .horario-row { display: grid; grid-template-columns: 120px 1fr 1fr; gap: 0.75rem; align-items: center; padding: 0.6rem 0.8rem; background: #fbf9fa; border-radius: 8px; margin-bottom: 0.4rem; border: 1px solid var(--border); }
  

/* All V3 styles are scoped to the parent portal. */
#public-padre-screen { --fp-wine:#590e2c; --fp-yellow:#fedd00; --fp-coal:#202024; }
#public-padre-screen .parent-public-shell { align-items:flex-start; background:linear-gradient(140deg,#25111c,#202024 70%); padding:24px; }
#public-padre-screen .parent-public-card { max-width:1140px; }
#public-padre-screen .parent-public-head { background:var(--fp-wine); border-bottom:4px solid var(--fp-yellow); }
#public-padre-screen .parent-public-body { background:#f7f6f7; }
#public-padre-screen .parent-query-box { background:white; }
#public-padre-screen .parent-query-box input { min-width:0; width:100%; }
#public-padre-screen .parent-result-head { margin:24px 0 18px; gap:14px; flex-wrap:wrap; }
#public-padre-screen .parent-result-head h2 { font-size:1.65rem; color:var(--fp-wine); line-height:1.2; margin:5px 0; }
#public-padre-screen .parent-ficha-grid { grid-template-columns:260px minmax(0,1fr); gap:20px; }
#public-padre-screen .parent-ficha-grid > * { min-width:0; }
#public-padre-screen .parent-info-card { border:1px solid #e5e0e3; background:white; padding:20px; border-radius:16px; margin:0 0 18px; }
#public-padre-screen h3 { font-size:1.06rem; line-height:1.3; color:var(--fp-coal); margin-bottom:12px; }
#public-padre-screen .fp-eyebrow { font-size:.63rem; letter-spacing:.1em; font-weight:900; color:var(--fp-wine); }
#public-padre-screen .fp-note { font-size:.74rem; line-height:1.6; color:#66616a; margin:8px 0; }
#public-padre-screen .fp-photo { height:245px; border-radius:16px; overflow:hidden; background:var(--fp-wine); display:flex; align-items:center; justify-content:center; color:var(--fp-yellow); font-size:3rem; font-weight:900; margin-bottom:18px; }
#public-padre-screen .fp-photo img { width:100%; height:100%; object-fit:cover; }
#public-padre-screen .fp-schedule { background:var(--fp-yellow); border:0; }
#public-padre-screen .fp-schedule h3 { margin:8px 0; font-size:1.35rem; }
#public-padre-screen .fp-schedule p { font-size:.85rem; }
#public-padre-screen .fp-times { display:grid; gap:8px; margin-top:18px; }
#public-padre-screen .fp-times div { display:grid; gap:4px; padding:12px; border-radius:10px; background:#202024; color:#fff; font-size:.83rem; }
#public-padre-screen .fp-times strong { color:var(--fp-yellow); }
#public-padre-screen .parent-data-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:12px; }
#public-padre-screen .parent-data-item strong { overflow-wrap:anywhere; font-size:.82rem; }
#public-padre-screen .fp-attendance { border-top:6px solid var(--fp-yellow); box-shadow:0 6px 24px #25111c0c; }
#public-padre-screen .fp-attendance h3 { font-size:1.7rem; margin:3px 0 0; }
#public-padre-screen .fp-section-head { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:12px; }
#public-padre-screen .fp-section-head h3 { margin-bottom:0; }
#public-padre-screen .fp-section-head label { display:flex; align-items:center; gap:8px; }
#public-padre-screen .fp-months { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:6px; margin:20px 0; }
#public-padre-screen .fp-months button { padding:9px 4px; background:#f4f2f3; border:1px solid #ded9dc; border-radius:8px; font:inherit; font-size:.78rem; font-weight:700; cursor:pointer; }
#public-padre-screen .fp-months button.selected { background:var(--fp-yellow); color:#202024; border-color:#202024; }
#public-padre-screen button:focus-visible, #public-padre-screen select:focus-visible { outline:3px solid #590e2c; outline-offset:3px; }
#public-padre-screen .fp-calendar-title { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:14px; }
#public-padre-screen .fp-calendar-title h4 { color:var(--fp-wine); font-size:1.05rem; }
#public-padre-screen .fp-calendar-title > span { font-size:.7rem; color:#66616a; }
#public-padre-screen .fp-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin-bottom:20px; }
#public-padre-screen .fp-stats > div { padding:12px 4px; background:#f7f5f6; border-radius:10px; display:grid; text-align:center; gap:3px; }
#public-padre-screen .fp-stats strong { font-size:1.5rem; color:var(--fp-coal); }
#public-padre-screen .fp-stats span { font-size:.66rem; }
#public-padre-screen .fp-stats .fp-percent { background:var(--fp-yellow); }
#public-padre-screen .fp-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; }
#public-padre-screen .fp-weekday { font-size:.68rem; text-align:center; color:#66616a; padding:5px 0; font-weight:700; }
#public-padre-screen .fp-day { min-height:65px; padding:7px 3px; border-radius:9px; border:1px solid #e8e4e6; display:flex; flex-direction:column; gap:4px; align-items:center; font-size:.85rem; }
#public-padre-screen .fp-day.unmarked { background:#fafafa; color:#706973; }
#public-padre-screen .fp-unmarked { font-size:.6rem; color:#8c858c; }
#public-padre-screen .fp-mark { font-size:.61rem; font-weight:700; padding:2px; border-radius:3px; text-align:center; }
#public-padre-screen .presente { background:var(--primary, #b6ff36); color:#203012; border-color:#a0dd2f; }
#public-padre-screen .falta { background:#e52232; color:#fff; border-color:#cf1827; }
#public-padre-screen .excusa { background:#ffdf24; color:#493b00; border-color:#e9c819; }
#public-padre-screen .fp-legend { display:flex; flex-wrap:wrap; gap:7px; margin:16px 0 8px; }
#public-padre-screen .fp-legend span { border-radius:6px; padding:5px 8px; font-size:.67rem; font-weight:700; }
#public-padre-screen .fp-payments { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:16px 0; }
#public-padre-screen .fp-payment { border:1px solid #e1dcdf; border-radius:10px; padding:12px; display:flex; flex-direction:column; gap:5px; font-size:.8rem; }
#public-padre-screen .fp-payment small { font-size:.61rem; line-height:1.4; }
#public-padre-screen .paid { background:#e9f5ed; color:#17643a; }
#public-padre-screen .pending { background:#fff4dc; color:#795100; }
#public-padre-screen .na { background:#f1f0f2; color:#66616a; }
#public-padre-screen .fp-status { padding:7px 13px; font-size:.8rem; font-weight:800; border-radius:20px; }
#public-padre-screen .fp-proof { margin-top:14px; font-size:.75rem; }
/* Ajustes visuales solicitados: negro, tipografía de administración y tallas amarillas. */
#public-padre-screen .parent-public-head { background:#111111; }
#public-padre-screen .parent-result-head h2 { color:#111; font-size:clamp(1.9rem,3vw,2.4rem); font-weight:900; letter-spacing:-.035em; }
#public-padre-screen .parent-result-head .fp-eyebrow { color:#111; font-size:.8rem; }
#public-padre-screen .parent-result-head .fp-note { color:#111; font-size:.95rem; }
#public-padre-screen h3, #public-padre-screen .fp-calendar-title h4, #public-padre-screen .fp-eyebrow { color:#111; }
#public-padre-screen h3 { font-size:1.25rem; font-weight:900; }
#public-padre-screen .fp-calendar-title h4 { font-size:1.2rem; font-weight:900; }
#public-padre-screen .parent-pill-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
#public-padre-screen .parent-pill-row .parent-pill { background:var(--fp-yellow); color:#111; border:1px solid #edce00; border-radius:12px; min-height:52px; padding:12px 8px; font-size:.85rem; font-weight:800; justify-content:center; text-align:center; }
#public-padre-screen .fp-day, #public-padre-screen .fp-payment { position:relative; transform-origin:center; transition:transform 220ms cubic-bezier(.2,.8,.2,1),box-shadow 220ms ease,border-color 220ms ease; }
#public-padre-screen .fp-calendar, #public-padre-screen .fp-payments { isolation:isolate; }
#public-padre-screen .fp-months button { position:relative; transition:transform 220ms cubic-bezier(.2,.8,.2,1),box-shadow 220ms ease; }
#public-padre-screen .fp-notes { border-top:4px solid var(--fp-yellow); }
#public-padre-screen .fp-notes h3 { margin-top:8px; }
#public-padre-screen .fp-note-entry { border-left:3px solid var(--fp-yellow); background:#f7f6f7; border-radius:0 10px 10px 0; padding:14px; margin-top:12px; }
#public-padre-screen .fp-note-entry time { font-size:.75rem; font-weight:800; color:#444; }
#public-padre-screen .fp-note-entry p { margin-top:6px; font-size:.9rem; line-height:1.6; white-space:pre-wrap; overflow-wrap:anywhere; color:#111; }
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  #public-padre-screen .fp-months button:has(+ button:hover),
  #public-padre-screen .fp-months button:hover + button { transform:translateY(-3px) scale(1.045); z-index:1; }
  #public-padre-screen .fp-months button:hover { transform:translateY(-7px) scale(1.17); z-index:3; box-shadow:0 12px 24px #1113; }
  #public-padre-screen .fp-day:has(+ .fp-day:hover),
  #public-padre-screen .fp-day:hover + .fp-day { transform:translateY(-3px) scale(1.045); z-index:1; }
  #public-padre-screen .fp-payment:has(+ .fp-payment:hover),
  #public-padre-screen .fp-payment:hover + .fp-payment { transform:translateY(-3px) scale(1.025); z-index:1; }
  #public-padre-screen .fp-day:hover { transform:translateY(-7px) scale(1.17); z-index:3; box-shadow:0 12px 24px #1113; border-color:#bca500; }
  #public-padre-screen .fp-payment:hover { transform:translateY(-7px) scale(1.075); z-index:3; box-shadow:0 12px 24px #1113; border-color:#bca500; }
}
@media(prefers-reduced-motion:reduce) {
  #public-padre-screen .fp-day, #public-padre-screen .fp-payment, #public-padre-screen .fp-months button { transition:none; }
}
@media(max-width:800px) {
  #public-padre-screen .parent-ficha-grid { grid-template-columns:1fr; }
  #public-padre-screen .fp-photo { height:200px; }
  #public-padre-screen .fp-photo img { object-position:center 30%; }
  #public-padre-screen .fp-times { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:480px) {
  #public-padre-screen .parent-public-shell { padding:8px; }
  #public-padre-screen .parent-public-body { padding:12px; }
  #public-padre-screen .parent-info-card { padding:14px; }
  #public-padre-screen .fp-payments { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #public-padre-screen .fp-calendar { gap:3px; }
  #public-padre-screen .fp-day { min-height:52px; }
  #public-padre-screen .fp-day-label { display:none; }
  #public-padre-screen .fp-mark { font-size:.75rem; }
  #public-padre-screen .parent-query-box form > div { flex-wrap:wrap; }
  #public-padre-screen .parent-query-box button { justify-content:center; }
  #public-padre-screen .fp-stats strong { font-size:1.25rem; }
}

/* Distribución amplia del portal de padres. */
#public-padre-screen .parent-public-shell { padding:24px clamp(12px,2.5vw,48px); background:linear-gradient(135deg,#510609 0%,#2e0305 38%,#000000 85%); }
#public-padre-screen .parent-public-card { max-width:1600px; border:1px solid #ffffff18; box-shadow:0 24px 70px #0004; }
#public-padre-screen .parent-public-head { padding:22px 30px; }
#public-padre-screen .parent-public-body { padding:clamp(16px,2vw,32px); background:#f3f3f5; }
#public-padre-screen .parent-query-box { max-width:none; width:100%; margin:0; padding:22px 24px; border:1px solid #e4e4e8; border-radius:16px; display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,1fr); column-gap:32px; align-items:center; }
#public-padre-screen .parent-query-box h2 { text-align:left !important; grid-column:1; font-size:1.25rem !important; }
#public-padre-screen .parent-query-box > p:first-of-type { text-align:left !important; grid-column:1; margin:6px 0 0 !important; }
#public-padre-screen .parent-query-box form { grid-column:2; grid-row:1 / 3; }
#public-padre-screen .parent-query-box form > div { max-width:none !important; }
#public-padre-screen .parent-query-box > p:last-child { grid-column:2; text-align:left !important; margin-top:6px !important; }
#public-padre-screen .parent-result-head { padding:8px 0 18px; margin:24px 0 20px; border-bottom:1px solid #dedee3; }
#public-padre-screen .parent-ficha-grid { grid-template-columns:250px minmax(0,1fr); gap:24px; align-items:start; }
#public-padre-screen .parent-info-card { box-shadow:0 3px 14px #18182004; }
#public-padre-screen .fp-section-head { padding:0 0 14px; background:transparent; }
#public-padre-screen .fp-photo { height:250px; }
@media(min-width:1300px) {
  #public-padre-screen .fp-main { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:20px; align-items:start; }
  #public-padre-screen .fp-main > section { margin:0; min-width:0; }
  #public-padre-screen .fp-attendance { grid-column:1; grid-row:1; }
  #public-padre-screen .fp-notes { grid-column:1; grid-row:2; }
  #public-padre-screen .fp-main > section:has(.fp-payments) { grid-column:2; grid-row:1; }
  #public-padre-screen .fp-main > section:has(.fp-status) { grid-column:2; grid-row:2; }
  #public-padre-screen .fp-payments { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #public-padre-screen .fp-main:not(:has(.fp-payments)) { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:800px) {
  #public-padre-screen .parent-query-box { display:block; padding:18px; }
  #public-padre-screen .parent-query-box form { margin-top:16px; }
  #public-padre-screen .parent-ficha-grid { grid-template-columns:1fr; gap:0; }
  #public-padre-screen .parent-ficha-grid > aside { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  #public-padre-screen .parent-ficha-grid > aside > * { margin:0 0 16px; min-width:0; }
  #public-padre-screen .fp-photo { height:100%; min-height:210px; max-height:290px; }
}
@media(max-width:520px) {
  #public-padre-screen .parent-public-shell { padding:8px; }
  #public-padre-screen .parent-public-head { padding:18px; }
  #public-padre-screen .parent-public-body { padding:12px; }
  #public-padre-screen .parent-ficha-grid > aside { display:block; }
  #public-padre-screen .fp-photo { height:200px; min-height:0; }
  #public-padre-screen .parent-query-box { padding:16px; }
}



#public-padre-screen .fp-photo { box-shadow:0 18px 28px -10px rgba(0,0,0,.38),0 5px 10px -4px rgba(0,0,0,.18); transform:translateY(-3px); }


#public-padre-screen .fp-annual { border-top:1px solid #e0dde0;margin-top:20px;padding-top:20px; }
#public-padre-screen .fp-annual h4 { font-size:1.1rem;margin-bottom:14px; }
#public-padre-screen .fp-chart { margin:16px 0;padding:12px;background:#faf9fa;border:1px solid #e7e3e6;border-radius:12px; }
#public-padre-screen .fp-chart figcaption { font-size:.82rem;font-weight:800;margin-bottom:8px; }
#public-padre-screen .fp-chart svg { width:100%;height:auto;display:block; }
#public-padre-screen .fp-chart text { font-size:11px;fill:#555; }
#public-padre-screen .fp-chart summary { cursor:pointer;font-size:.72rem; }
#public-padre-screen .fp-chart-values { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;font-size:.7rem;margin-top:10px; }

/* Columnas independientes: evita huecos provocados por la altura de las gráficas. */
#public-padre-screen .parent-public-head { padding:16px 24px; }
#public-padre-screen .parent-public-body { padding:20px; }
#public-padre-screen .parent-query-box { padding:16px 20px; }
#public-padre-screen .parent-result-head { margin:16px 0; padding:0 0 14px; }
#public-padre-screen .parent-result-head h2 { font-size:clamp(1.8rem,2.5vw,2.15rem); }
#public-padre-screen .parent-ficha-grid { gap:20px; }
#public-padre-screen .fp-main { display:block; }
#public-padre-screen .fp-main > section { margin-bottom:18px; }
#public-padre-screen .fp-chart { padding:10px; }
#public-padre-screen .fp-annual .fp-stats { margin-bottom:10px; }
@media(min-width:1300px) {
  #public-padre-screen .fp-main { display:block; columns:2; column-gap:20px; }
  #public-padre-screen .fp-main > section { break-inside:avoid; margin:0 0 18px; }
  #public-padre-screen .fp-main > .fp-attendance { column-span:all; }
}
@media(min-width:1300px) {
  #public-padre-screen .fp-main { display:grid;columns:auto;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:20px;align-items:start; }
  #public-padre-screen .fp-main > .fp-attendance { grid-column:auto;grid-row:auto;margin:0; }
  #public-padre-screen .fp-secondary { min-width:0; }
  #public-padre-screen .fp-secondary > section { margin:0 0 18px; }
  #public-padre-screen .fp-main:not(:has(.fp-attendance)) { grid-template-columns:1fr; }
}
#public-padre-screen .fp-secondary .fp-notes { margin-top:0; }
@media(max-width:520px) {
  #public-padre-screen .parent-public-body { padding:12px; }
  #public-padre-screen .parent-query-box { padding:14px; }
}



 .asistencia-accesos { display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px; }
 .asistencia-acceso { text-align:left;display:flex;flex-direction:column;gap:8px;padding:18px;background:white;color:#111;border:1px solid #dedee3;border-top:4px solid #fedd00;border-radius:14px;cursor:pointer;box-shadow:0 4px 12px #00000005; }
 .asistencia-acceso strong { font-size:1rem;font-weight:900; }
 .asistencia-acceso span { font-size:.8rem;font-weight:700; }
 .asistencia-acceso small { font-size:.73rem;line-height:1.5;color:#555; }
 .asistencia-acceso:hover,.asistencia-acceso[aria-pressed="true"] { background:#fff8c5;border-color:#d9bd00; }
 .asistencia-acceso:focus-visible { outline:3px solid #111;outline-offset:3px; }
 #modal-ficha .ficha-card-section:has(#ficha-meses-asistencia-grid) { background:var(--primary) !important; }
 #modal-ficha .ficha-card-section:has(.asist-month-box) { background:var(--primary) !important; border-color:#ead000; box-shadow:none; }
 #modal-ficha .month-badge-btn.pending { background:#f0f1f3 !important;color:#606670 !important;border-color:#d8dbe0 !important; }
 #modal-ficha .month-badge-btn.overdue { background:#fee2e2 !important;color:#b91c1c !important;border-color:#fca5a5 !important; }
 #modal-ficha #foto-zoom-valor { float:right;font-weight:800; }
 #modal-ficha .month-badge-btn.current-due { background:#ffb45b !important; color:#653000 !important; border-color:#ed9227 !important; }
 #modal-ficha #ficha-asistencia-stats { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; border-bottom:0 !important; padding-bottom:0 !important; margin:16px 0 !important; }
 #modal-ficha #ficha-asistencia-stats .ficha-item { background:#fff; border:1px solid #00000009; border-radius:12px; padding:16px 12px; min-width:0; box-shadow:0 3px 8px #7a65000a; }
 #modal-ficha #ficha-asistencia-stats label { font-size:.75rem; font-weight:800; color:#4b4b4b; margin-bottom:8px; display:block; }
 #modal-ficha #ficha-asistencia-stats strong { font-size:clamp(1.15rem,1.65vw,1.65rem) !important; font-weight:900 !important; letter-spacing:-.035em; line-height:1.25; display:block; }
 @media(max-width:600px) { #modal-ficha #ficha-asistencia-stats { grid-template-columns:repeat(2,minmax(0,1fr)); } }
 

 .event-list-cover { width:160px;height:110px;flex-shrink:0;border-radius:10px;overflow:hidden;background:linear-gradient(135deg,#530609,#111);display:flex;align-items:center;justify-content:center;color:#fedd00;font-size:2rem; }
 .event-list-cover img { width:100%;height:100%;object-fit:cover; }
 .event-list-info { min-width:0; } .event-list-info h4 { overflow-wrap:anywhere; }
 @media(max-width:700px) { .event-list-card { flex-wrap:wrap; } .event-list-cover { width:100%;height:180px; } .event-list-info { flex:1; } }
 
.entrenadores-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px}.entrenador-card{background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;display:flex;box-shadow:0 5px 18px #00000008}.entrenador-avatar{width:150px;min-height:220px;background:linear-gradient(145deg,#55070b,#111);display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:2.5rem;font-weight:900;flex-shrink:0}.entrenador-avatar img{width:100%;height:100%;object-fit:cover}.entrenador-card-body{padding:18px;min-width:0;flex:1}.entrenador-card-head{display:flex;justify-content:space-between;gap:10px}.entrenador-card h3{font-size:1.15rem;color:var(--dark-purple);margin-bottom:7px}.entrenador-card p{margin:12px 0;color:var(--text-muted);font-size:.8rem}.entrenador-card dl{display:grid;gap:9px}.entrenador-card dt{font-size:.66rem;font-weight:800;text-transform:uppercase;color:var(--text-muted)}.entrenador-card dd{font-size:.78rem;margin-top:2px;white-space:pre-wrap;overflow-wrap:anywhere}.entrenador-active{font-size:.7rem;background:#dcfce7;color:#166534;border-radius:20px;padding:5px 8px;height:max-content}.entrenador-active.off{background:#fee2e2;color:#991b1b}.entrenador-actions{display:flex;gap:7px;margin-top:16px}.entrenador-actions .btn{font-size:.75rem;padding:6px 9px}.group-coaches-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;padding:10px;border:1px solid var(--border);border-radius:10px;background:#fafafa}.group-coach-option{display:flex;align-items:center;gap:8px;padding:9px;background:#fff;border:1px solid #e5e5e5;border-radius:8px;font-size:.8rem}.group-coach-option input{width:auto}.assign-filters{display:grid;grid-template-columns:1fr 160px auto;gap:8px;margin:8px 0}.assign-filters input{min-width:0;padding:8px;border:1px solid var(--border);border-radius:8px}.ent-photo-editor{display:grid;grid-template-columns:180px 1fr;gap:14px;margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:12px;background:#fafafa}.ent-photo-preview{height:180px;border-radius:10px;overflow:hidden;background:#111;display:flex;align-items:center;justify-content:center}.ent-photo-preview img{width:100%;height:100%;object-fit:cover;display:none;transition:transform .15s ease}.ent-photo-controls{display:grid;align-content:center;gap:5px}.ent-photo-controls label{font-size:.75rem;font-weight:700}.ent-photo-controls output{float:right;color:var(--text-muted)}.ent-photo-controls input{width:100%}#modal-miembros-grupo .modal-content{width:min(96vw,960px);max-width:960px!important;max-height:92vh}#modal-miembros-grupo #lista-checkboxes-jugadoras{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;max-height:46vh;overflow:auto;padding:4px}@media(max-width:600px){.assign-filters{grid-template-columns:1fr}.entrenador-card{display:block}.entrenador-avatar{width:100%;height:180px;min-height:0}.ent-photo-editor{grid-template-columns:1fr}#modal-miembros-grupo .modal-content{width:96vw}}
 
#panel-asignar-jugadoras .assign-member-row:hover{transform:none!important;z-index:auto!important;opacity:1!important;box-shadow:none!important;background:inherit!important}.group-cover-editor{margin-top:8px;height:260px;border-radius:10px;overflow:hidden;display:none;border:1px solid var(--border);background:#111}.group-cover-editor img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .15s ease}.group-cover-controls{display:grid;gap:4px;margin-top:10px}.group-cover-controls label{font-size:.75rem;font-weight:700}.group-cover-controls output{float:right;color:var(--text-muted)}.group-cover-controls input{width:100%}#modal-grupo .modal-content{width:min(94vw,900px);max-width:900px!important;max-height:94vh;padding:20px 24px}#modal-grupo .form-grid{gap:10px;margin-bottom:10px}#modal-grupo .form-group{gap:4px}#modal-grupo .form-group label{font-size:.78rem}#modal-grupo .group-cover-editor{height:170px;margin-top:5px}#modal-grupo .group-cover-controls{grid-template-columns:1fr 1fr 1fr;column-gap:12px;align-items:center}#modal-grupo .group-cover-controls input{margin-bottom:4px}#modal-grupo #horarios-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}#modal-grupo .horario-row{display:grid;grid-template-columns:86px minmax(0,1fr) minmax(0,1fr);align-items:center;padding:7px 9px;margin:0;gap:7px;border:1px solid var(--border);border-radius:9px;background:#fbfbfd}#modal-grupo .horario-row label{font-size:.75rem;white-space:nowrap}#modal-grupo .horario-row input{padding:7px 8px;min-width:0}#modal-ficha .ficha-card-section:has(#ficha-meses-asistencia-grid){background:#e5e7eb!important;border-color:#d1d5db!important;color:#202024}#modal-ficha .ficha-card-section:has(#ficha-fecha-ingreso-badge),#modal-ficha .ficha-card-section:has(#ficha-meses-container){background:#e5e7eb!important;border-color:#d1d5db!important}#modal-ficha .ficha-card-section:has(#ficha-meses-asistencia-grid) .ficha-section-title,#modal-ficha .ficha-card-section:has(#ficha-meses-asistencia-grid) .ficha-section-title i{color:#202024!important}#modal-ficha .ficha-card-section:has(#ficha-meses-asistencia-grid) .asist-month-box{background:#fff!important;border-color:#d1d5db!important;color:#202024!important}#modal-ficha .ficha-card-section:has(#ficha-meses-container) .ficha-section-title span{font-size:0}#modal-ficha .ficha-card-section:has(#ficha-meses-container) .ficha-section-title span:after{content:"Control de mensualidades";font-size:.85rem;font-weight:900}#modal-ficha .ficha-card-section:has(#ficha-meses-asistencia-grid) .asist-month-box strong,#modal-ficha .ficha-card-section:has(#ficha-meses-asistencia-grid) .asist-month-box span{color:#202024!important}#modal-ficha #ficha-foto{box-shadow:0 18px 30px rgba(0,0,0,.3),0 5px 10px rgba(0,0,0,.18);transform:translateY(-4px);transition:transform .2s ease,box-shadow .2s ease}#modal-ficha #ficha-foto:hover{transform:translateY(-7px);box-shadow:0 24px 38px rgba(0,0,0,.34),0 8px 14px rgba(0,0,0,.2)}@media(max-width:1100px){:root{--sidebar-width:210px}main{padding:1.25rem}.dashboard-grid,.config-grid{grid-template-columns:1fr 1fr!important}.parent-ficha-grid{grid-template-columns:220px minmax(0,1fr)}}@media(max-width:800px){body{overflow:auto}.sidebar{width:68px!important}.brand-section{padding:10px 8px;justify-content:center}.brand-text,.sidebar-footer{display:none}.nav-menu{padding:12px 6px}.nav-item{justify-content:center;padding:12px 6px}.nav-item-left{font-size:0;gap:0}.nav-item-left i{font-size:1.15rem}.badge-count{position:absolute;margin-left:24px;margin-top:-22px;font-size:.6rem;padding:2px 5px}.app-wrapper{min-width:0}header{padding:10px 14px}main{padding:14px}.page-header{flex-wrap:wrap;gap:10px}.dashboard-grid,.config-grid,.parent-ficha-grid,.ficha-layout{grid-template-columns:1fr!important}.form-grid{grid-template-columns:1fr!important}.form-grid .full{grid-column:1}.stats-grid,.attendance-stats-grid{grid-template-columns:repeat(2,1fr)!important}.modal-content{width:96vw!important;max-width:96vw!important;padding:18px!important}.modal-header{gap:8px}.modal-header h3{font-size:1.05rem}.table-wrapper,.table-scroll{overflow-x:auto}.group-cover-editor{height:190px}#modal-grupo #horarios-grid{grid-template-columns:1fr}.entrenadores-grid{grid-template-columns:1fr}.parent-public-card{width:96vw}.parent-public-body{padding:16px!important}.parent-query-box form>div{flex-direction:column!important;max-width:none!important}.parent-query-box button{width:100%}}@media(max-width:480px){.sidebar{width:54px!important}.nav-item{padding:11px 3px}.nav-item-left i{font-size:1rem}header{justify-content:space-between;padding:8px 10px}.user-profile-box{gap:6px}.user-profile-box>div{display:none}.btn-logout{font-size:.68rem;padding:6px}.page-title{font-size:1.35rem!important}main{padding:10px}.card,.panel,.ficha-card-section{border-radius:12px!important;padding:12px!important}.stats-grid,.attendance-stats-grid{grid-template-columns:1fr 1fr!important;gap:7px!important}.btn{min-height:38px}.modal-content{border-radius:14px!important;padding:14px!important}.form-actions,.modal-content form>div:last-child{flex-wrap:wrap}.form-actions .btn,.modal-content form>div:last-child .btn{flex:1;min-width:120px}.attendance-months-grid,.billing-months-grid{grid-template-columns:repeat(3,1fr)!important}.group-cover-controls{grid-template-columns:1fr!important}.parent-public-head{padding:14px!important}.parent-public-head strong{font-size:1rem!important}.parent-ficha-grid>aside{display:block!important}.parent-ficha-grid>aside>*{margin-bottom:12px!important}.ficha-photo-wrap,.parent-photo{height:230px!important}.ficha-card-section:has(.attendance-months-grid){overflow:hidden}.modal-content table{min-width:620px}}@media(max-width:600px){#modal-grupo .modal-content{width:96vw;padding:16px}#modal-grupo .group-cover-controls{grid-template-columns:1fr}#modal-grupo #horarios-grid{grid-template-columns:1fr}.group-cover-editor{height:190px}}
.torneos-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.torneo-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px;box-shadow:0 5px 16px #0000000a}.torneo-card-top{display:flex;justify-content:space-between;align-items:center;color:var(--text-muted);font-size:.75rem}.torneo-formato{background:var(--primary);color:var(--dark-purple);font-weight:900;padding:5px 9px;border-radius:999px}.torneo-card h3{margin:14px 0 8px;color:var(--dark-purple)}.torneo-card p{font-size:.8rem;color:var(--text-muted);margin-bottom:10px}.torneo-card-actions{display:flex;gap:8px;margin-top:14px}.torneo-card-actions .btn{font-size:.75rem;padding:7px 10px}.torneo-modal{max-width:820px!important}.torneo-participantes,.torneo-invitados{margin-top:14px;padding:12px;border:1px solid var(--border);border-radius:12px;background:#fafafa}.torneo-participantes h4,.torneo-invitados h4{margin-bottom:9px;color:var(--dark-purple)}.torneo-filtros,.torneo-invitado-form{display:grid;grid-template-columns:1fr 170px;gap:8px;margin-bottom:9px}.torneo-invitado-form{grid-template-columns:1fr 150px auto}.torneo-filtros input,.torneo-invitado-form input{padding:9px;border:1px solid var(--border);border-radius:8px;min-width:0}.torneo-miembros-lista{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:7px;max-height:240px;overflow:auto}.torneo-miembro{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;padding:9px;background:#fff;border:1px solid #e5e5e5;border-radius:8px;font-size:.8rem}.torneo-miembro small{color:var(--text-muted)}.torneo-empty{font-size:.78rem;color:var(--text-muted)}.torneo-invitada-pill{display:inline-flex;align-items:center;gap:5px;background:#fff4bf;border:1px solid #ead36a;border-radius:999px;padding:6px 9px;margin:4px;font-size:.76rem}.torneo-invitada-pill button{border:0;background:transparent;font-size:1rem;cursor:pointer}.torneo-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}@media(max-width:600px){.torneo-filtros,.torneo-invitado-form{grid-template-columns:1fr}.torneo-actions{flex-wrap:wrap}.torneo-actions .btn{flex:1}.torneo-modal{width:96vw!important}}

#modal-convocatoria .modal-content{max-width:1180px;width:96vw;padding:24px}.cv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.cv-card,.cv-column{background:#fff;border:1px solid #ddd;border-radius:14px;padding:16px}.cv-card h3{margin:8px 0}.cv-meta,.cv-filters{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.cv-meta label{flex:1;min-width:150px;font-size:12px;font-weight:700}.cv-meta input,.cv-meta select,.cv-filters input,.cv-filters select{width:100%;padding:10px;border:1px solid #ddd;border-radius:8px;margin-top:5px}.cv-filters>*{flex:1;min-width:120px}.cv-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.cv-column{background:#f5f5f6;min-width:0}.cv-players{max-height:440px;overflow:auto;min-height:140px;padding:4px}.cv-player{display:flex;gap:10px;align-items:center;background:white;border:1px solid #ddd;border-radius:10px;padding:10px;margin-bottom:8px}.cv-player[draggable]{cursor:grab}.cv-player img,.cv-avatar{width:40px;height:40px;object-fit:cover;border-radius:50%;background:#ffdf00;display:grid;place-items:center;flex-shrink:0}.cv-person{flex:1;min-width:0}.cv-person strong{display:block;font-size:13px}.cv-person small{font-size:11px;color:#596273}.cv-player select{max-width:115px;padding:7px;border:1px solid #ddd;border-radius:6px}.cv-player button{padding:6px 10px}.cv-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:16px}.cv-note{font-size:12px;color:#596273;margin:8px 0}.cv-drop{outline:2px dashed #c4a900;outline-offset:-3px}.cv-counter{float:right;background:#ffdf00;border-radius:20px;padding:3px 10px}#cv-message{color:#ad2929;font-size:13px;min-height:20px}#cv-share-text{width:100%;min-height:240px;padding:12px}@media(max-width:760px){.cv-columns{grid-template-columns:1fr}#modal-convocatoria .modal-content{padding:14px}.cv-players{max-height:320px}.cv-player{gap:6px}.cv-player select{max-width:100px}}

body{display:block;overflow:auto}#public-padre-screen{display:block}dialog{max-width:90vw;max-height:90vh;margin:auto;padding:20px;border:0;border-radius:14px}dialog img{max-width:100%;max-height:70vh}
#public-padre-screen .fp-payment.paid { background:var(--primary, #b6ff36); color:#203012; border-color:#a0dd2f; }
#public-padre-screen .fp-payment.pending { background:#ffdf24; color:#493b00; border-color:#e9c819; }
#public-padre-screen .fp-payment.overdue { background:#e52232; color:#fff; border-color:#cf1827; }
