:root{--navy:#00004c;--navy-2:#0a0a65;--red:#d70f27;--red-dark:#b90920;--gold:#caa946;--ink:#1b1c2f;--muted:#696b7d;--line:#e3e4ea;--surface:#fff;--background:#f4f5f8;--success:#1f7b51;--warning:#aa6500;--sidebar:244px;font:15px Inter,Aptos,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--background)}
*{box-sizing:border-box}body{margin:0;min-width:1050px;background:var(--background)}button,input,textarea,select{font:inherit}button{cursor:pointer}.hidden,[hidden]{display:none!important}.skip-link{position:fixed;z-index:100;left:1rem;top:-5rem;padding:.7rem 1rem;color:#fff;background:var(--navy);border-radius:6px}.skip-link:focus{top:1rem}
.auth-gate{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 10%,#23335e,#10152b 55%,#090c18)}.auth-gate:has(.auth-card.hidden:nth-child(1)):has(.auth-card.hidden:nth-child(2)){display:none}.auth-card{width:min(460px,100%);padding:30px;border-radius:16px;background:#fff;box-shadow:0 24px 80px #0008}.auth-card h2{margin:22px 0 6px;color:var(--navy)}.auth-card>p{margin:0 0 22px;color:var(--muted)}.auth-card form{display:grid;gap:14px}.auth-brand{margin:-30px -30px 0;padding:20px 30px;display:flex;align-items:center;gap:14px;border-radius:16px 16px 0 0;color:#fff;background:var(--navy)}.auth-logo,.brand-logo-text{display:grid;place-items:center;background:#fff;color:var(--navy);font-weight:900;letter-spacing:-.04em}.auth-logo{width:54px;height:54px;border-radius:12px;font-size:1.05rem}.auth-brand div:last-child{display:grid}.auth-brand small{color:#d7daea}.auth-brand strong{font-size:1.05rem}.password-help,.user-password-help,.form-note{color:var(--muted);font-size:.76rem}.password-input-wrap{position:relative;display:block}.password-input-wrap input{padding-right:46px}.password-toggle{position:absolute;top:50%;right:8px;transform:translateY(-50%);width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:#697386}.password-toggle:hover{background:#f0f3f8;color:var(--navy)}
.topbar{position:sticky;z-index:20;top:0;height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 26px;color:#fff;background:var(--navy);border-bottom:3px solid var(--red);box-shadow:0 3px 14px #00004c2d}.brand{display:flex;align-items:center;gap:13px}.brand-logo-text{width:52px;height:52px;border-radius:10px;font-size:.9rem}.brand p{margin:0 0 2px;color:#dadae8;font-size:.69rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.brand h1{margin:0;font:700 1.47rem/1 Georgia,serif;letter-spacing:-.02em}.topbar-status{display:flex;align-items:center;gap:13px}.edition{padding-right:13px;color:#d7d7e5;border-right:1px solid #ffffff3e;font-size:.82rem}.edition-active-badge{display:inline-flex;align-items:center;max-width:330px;padding:7px 12px;border:1px solid #f5e2a4;border-radius:999px;background:#f3dc8d;color:#3e3108;font-size:.78rem;font-weight:900;line-height:1.1}.user-menu{display:flex;align-items:center;gap:9px;padding:4px 8px}.user-menu>b{width:34px;height:34px;display:grid;place-items:center;background:var(--red);border-radius:50%;font-size:.72rem}.user-menu span{display:grid}.user-menu strong{font-size:.78rem}.user-menu small{color:#c9c9dc;font-size:.67rem}.topbar-logout{padding:7px 10px;border:1px solid #ffffff55;border-radius:6px;color:#fff;background:transparent}.topbar-logout:hover{background:#ffffff18}
.app-shell{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:calc(100vh - 74px)}.sidebar{position:sticky;top:74px;height:calc(100vh - 74px);display:flex;flex-direction:column;justify-content:space-between;padding:13px 12px 11px;background:#fff;border-right:1px solid var(--line)}.sidebar nav{overflow:auto;padding-right:2px}.nav-title{margin:0 10px 6px;color:#999aa8;font-size:.64rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.nav-section{margin-top:14px}.nav-item{position:relative;width:100%;min-height:38px;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;margin-bottom:1px;padding:4px 9px;color:#505265;background:transparent;border:0;border-radius:7px;font-size:.79rem;text-align:left}.nav-item:hover:not(:disabled){color:var(--navy);background:#f0f0f5}.nav-item.active{color:#fff;background:var(--navy);box-shadow:inset 3px 0 var(--red);font-weight:750}.nav-item:disabled{opacity:.42;cursor:not-allowed}.nav-item>i{width:25px;height:25px;display:grid;place-items:center;border:1px solid #d7d8df;border-radius:6px;font-style:normal;font-size:.57rem;font-weight:850}.nav-item.active>i{border-color:#ffffff75}.nav-item>b{min-width:18px;height:18px;display:grid;place-items:center;padding:0 5px;color:#8d8f9d;background:#eeeef2;border-radius:9px;font-size:.62rem}.sidebar-footer{padding:14px 10px 2px;border-top:1px solid var(--line)}.sidebar-credits{display:flex;flex-direction:column;gap:4px;line-height:1.28}.sidebar-credits strong{color:var(--navy);font-size:.67rem}.sidebar-credits small{color:var(--muted);font-size:.61rem}
.content{width:100%;max-width:1540px;margin:0 auto;padding:25px 30px 38px;outline:0}.view{display:none}.view.active{display:block;animation:appear .18s ease}@keyframes appear{from{opacity:.45;transform:translateY(3px)}}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px}.page-heading h2{margin:2px 0 5px;color:var(--navy);font:700 1.72rem/1.1 Georgia,serif}.page-heading p:not(.eyebrow){margin:0;color:var(--muted);font-size:.81rem}.eyebrow,.card-kicker{margin:0;color:var(--red);font-size:.64rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.button,.primary-btn,.secondary-btn,.danger-btn{min-height:38px;padding:8px 14px;border:1px solid transparent;border-radius:6px;font-size:.74rem;font-weight:780}.button.primary,.primary-btn{color:#fff;background:var(--red)}.button.primary:hover,.primary-btn:hover{background:var(--red-dark)}.button.secondary,.secondary-btn{color:var(--navy);background:#fff;border-color:#c8c9d2}.button.secondary:hover,.secondary-btn:hover{background:#f2f2f6}.button.danger,.danger-btn{color:#b42332;background:#fff;border-color:#e7c2c7}.button.full{width:100%;color:#fff;background:var(--navy)}.button.compact,.secondary-btn.compact{min-height:32px;padding:6px 10px;font-size:.68rem}.button:disabled,.primary-btn:disabled,.secondary-btn:disabled{opacity:.48;cursor:not-allowed}
.card{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 2px 8px #14143208}.card>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 17px;background:#fafafd;border-bottom:1px solid var(--line)}.card>header h3{margin:2px 0 3px;color:var(--navy);font-size:.86rem}.card>header p:not(.card-kicker){margin:0;color:var(--muted);font-size:.65rem}
.field{display:grid;align-content:start;gap:6px}.field.wide,.wide{grid-column:span 2}.field>span{color:#3f4052;font-size:.68rem;font-weight:750}.field input,.field textarea,.field select{width:100%;padding:10px 11px;color:var(--ink);background:#fff;border:1px solid #cecfd8;border-radius:6px;outline:0}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--navy);box-shadow:0 0 0 3px #00004c15}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px 16px}.form-grid.two{grid-template-columns:repeat(2,1fr)}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
.notice{margin-bottom:14px;padding:10px 12px;border:1px solid #cfe4d7;border-radius:7px;background:#eff9f3;color:#176144;font-size:.72rem}.notice.error{border-color:#efcbd0;background:#fff3f4;color:#9d2435}
.club-layout{display:grid;grid-template-columns:minmax(235px,300px) minmax(0,1fr);gap:16px}.clubs-column{align-self:start}.club-list{display:grid}.club-card{width:100%;display:grid;gap:3px;padding:12px 15px;text-align:left;background:#fff;border:0;border-top:1px solid var(--line);color:var(--ink)}.club-card:first-child{border-top:0}.club-card:hover{background:#f7f7fa}.club-card.active{background:#f0f0f6;box-shadow:inset 3px 0 var(--red)}.club-card strong{color:var(--navy);font-size:.8rem}.club-card small{color:var(--muted);font-size:.63rem}.detail-column>.card,.detail-column.card{min-height:260px}.detail-head{display:flex;align-items:center;gap:13px;padding:15px 17px;background:#fafafd;border-bottom:1px solid var(--line)}.club-avatar,.empty-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:8px;background:var(--navy);color:#fff;font-size:.68rem;font-weight:900}.detail-head h2{margin:0 0 3px;color:var(--navy);font:700 1.12rem Georgia,serif}.detail-head p{margin:0;color:var(--muted);font-size:.67rem}.detail-body{padding:16px 17px}.status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:12px 0}.status-tile{padding:10px 11px;border:1px solid var(--line);border-radius:7px;background:#fafafd}.status-tile span{display:block;color:var(--muted);font-size:.59rem}.status-tile strong{display:block;margin-top:3px;color:var(--navy);font-size:.77rem}.sync-row,.actions-row,.teams-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.sync-row h3,.teams-head h3{margin:0 0 3px;color:var(--navy);font-size:.8rem}.sync-row p{margin:0;color:var(--muted);font-size:.64rem}.actions-row .muted{color:var(--muted);font-size:.62rem}.badge,.role-pill{display:inline-flex;width:max-content;padding:4px 8px;border-radius:999px;background:#eef1f7;color:#505265;font-size:.62rem;font-weight:800}.badge.ok{color:#176144;background:#e1f3e9}.switch input{display:none}.switch span{display:block;width:42px;height:24px;padding:3px;border-radius:999px;background:#cfd1d8;transition:.15s}.switch span:before{content:"";display:block;width:18px;height:18px;border-radius:50%;background:#fff;transition:.15s;box-shadow:0 1px 3px #0003}.switch input:checked+span{background:var(--success)}.switch input:checked+span:before{transform:translateX(18px)}.team-table{display:grid;border:1px solid var(--line);border-radius:7px;overflow:hidden}.team-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,.85fr) auto;gap:10px;align-items:center;padding:9px 10px;border-top:1px solid var(--line)}.team-row:first-child{border-top:0}.team-fnf{display:grid;gap:2px}.team-fnf strong{font-size:.7rem}.team-fnf small{color:var(--muted);font-size:.58rem}.display-name,.inline-form input{width:100%;padding:8px 9px;border:1px solid #cecfd8;border-radius:6px;font-size:.68rem}.wizard{margin-bottom:12px;padding:13px 14px;border:1px solid #dedfe6;border-radius:8px;background:#fffdf8}.wizard h3{margin:7px 0 4px;color:var(--navy);font-size:.82rem}.wizard p{margin:0 0 10px;color:var(--muted);font-size:.65rem;line-height:1.5}.wizard-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.wizard-step{height:4px;border-radius:4px;background:#e1e1e7}.wizard-step.done{background:var(--success)}.wizard-step.current{background:var(--red)}.inline-form{display:grid;grid-template-columns:1fr auto;gap:8px}.empty-state{min-height:240px;display:grid;place-items:center;align-content:center;gap:7px;padding:24px;text-align:center;color:var(--muted)}.empty-state h2,.empty-state strong{margin:0;color:var(--navy)}.empty-state p{max-width:480px;margin:0;font-size:.68rem;line-height:1.45}
.user-list{display:grid}.user-row{display:grid;grid-template-columns:minmax(190px,1.5fr) 150px 105px 165px minmax(180px,auto);align-items:center;gap:12px;padding:14px 18px;border-top:1px solid var(--line)}.user-row:first-child{border-top:0}.user-identity{display:grid;gap:2px}.user-identity strong{color:var(--navy);font-size:.78rem}.user-identity small,.user-last-login{color:var(--muted);font-size:.65rem}.role-chip{width:fit-content;padding:4px 9px;border-radius:999px;background:#eef1f7;font-size:.72rem;font-weight:800}.role-chip.admin{color:#7e1730;background:#fff0f3}.role-chip.manager{color:#174f70;background:#edf7fc}.role-chip.owner{color:#5f4800;background:#fff5cc}.role-chip.coordinator{color:#4c3b78;background:#f2effc}.role-chip.coach{color:#276049;background:#eef8f2}.user-state{font-size:.78rem;font-weight:800}.user-state.active{color:#176144}.user-state.inactive{color:#a12d3d}.user-actions{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}.empty{padding:18px;color:var(--muted);font-size:.7rem}
.modal-backdrop{position:fixed;z-index:2000;inset:0;display:grid;place-items:center;padding:24px;background:#10112299;backdrop-filter:blur(2px)}.modal{width:min(620px,96vw);max-height:90vh;overflow:auto;border-radius:10px;background:#fff;box-shadow:0 25px 70px #0004}.modal-header{position:sticky;z-index:2;top:0;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:16px 19px;background:#fafafd;border-bottom:1px solid var(--line)}.modal-header h3{margin:2px 0 4px;color:var(--navy);font:700 1.15rem Georgia,serif}.modal-header p:not(.card-kicker){margin:0;color:var(--muted);font-size:.67rem}.modal-close{border:0;background:transparent;color:#676978;font-size:1.4rem;line-height:1}.modal-body{display:grid;gap:14px;padding:18px 19px}.modal-actions{padding-top:4px}.modal-open{overflow:hidden}
@media(max-width:1100px){body{min-width:0}.user-row{grid-template-columns:minmax(170px,1fr) 120px 100px 1fr}.user-actions{grid-column:1/-1;justify-content:flex-start}.club-layout{grid-template-columns:1fr}.clubs-column{max-width:none}}
@media(max-width:760px){.topbar{height:auto;min-height:68px;padding:9px 13px}.brand p,.edition-active-badge{display:none}.brand h1{font-size:1.15rem}.brand-logo-text{width:42px;height:42px}.user-menu span{display:none}.app-shell{display:block}.sidebar{position:static;height:auto;padding:7px 8px}.sidebar nav{display:flex;gap:5px;overflow:auto}.nav-title,.sidebar-footer,.nav-item:disabled{display:none}.nav-item{width:auto;min-width:max-content;grid-template-columns:26px auto;padding:4px 8px}.nav-item>b{display:none}.content{padding:17px 13px 28px}.page-heading{align-items:flex-start}.page-heading h2{font-size:1.35rem}.club-layout{display:block}.detail-column{margin-top:12px}.form-grid.two{grid-template-columns:1fr}.field.wide,.wide{grid-column:auto}.user-row{grid-template-columns:1fr;align-items:start}.user-actions{grid-column:auto}.status-grid{grid-template-columns:1fr}.team-row{grid-template-columns:1fr}.modal-backdrop{padding:8px}}

.password-pending{display:block;margin-top:4px;color:#8a5a00;font-weight:700}
.user-row .user-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.user-row .user-last-login{white-space:normal;line-height:1.35}
@media (max-width:900px){
  .user-row{grid-template-columns:1fr;gap:8px}
  .user-row .user-actions{justify-content:flex-start}
}

/* v0.67.0 · 01 Clubes */
.active-club-card{display:flex;align-items:center;gap:14px;padding:15px 17px;margin-bottom:15px;border-left:3px solid var(--red)}
.active-club-mark,.mini-club-mark{display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:900}
.active-club-mark{width:46px;height:46px;border-radius:8px;font-size:.72rem;flex:0 0 auto}
.active-club-copy{min-width:0;flex:1}.active-club-copy h3{margin:2px 0 3px;color:var(--navy);font:700 1.08rem Georgia,serif}.active-club-copy p:not(.card-kicker){margin:0;color:var(--muted);font-size:.67rem}
.status-pill{display:inline-flex;align-items:center;width:max-content;padding:5px 9px;border-radius:999px;font-size:.61rem;font-weight:850;white-space:nowrap}
.status-pill.active,.status-pill.linked{color:#176144;background:#e8f6ee}.status-pill.pending{color:#8a5a00;background:#fff4d8}.status-pill.neutral{color:#666979;background:#f0f1f4}
.configured-clubs-card{margin-bottom:15px}
.club-list-table{display:grid}
.club-table-row{display:grid;grid-template-columns:minmax(230px,1.45fr) minmax(120px,.75fr) 92px minmax(180px,1fr) 105px;gap:14px;align-items:center;width:100%;padding:11px 16px;text-align:left;color:var(--ink);background:#fff;border:0;border-top:1px solid var(--line)}
.club-table-row:first-child{border-top:0}.club-table-row:hover{background:#fafafd}.club-table-row.active{background:#f7f7fb;box-shadow:inset 3px 0 var(--red)}
.club-table-name{display:flex;align-items:center;gap:10px;min-width:0}.mini-club-mark{width:34px;height:34px;border-radius:7px;font-size:.57rem;flex:0 0 auto}.club-table-name>span,.club-table-fnf,.club-table-teams,.club-table-updated{display:grid;gap:2px}
.club-table-name strong,.club-table-teams strong,.club-table-updated strong{color:var(--navy);font-size:.72rem}.club-table-name small,.club-table-fnf small,.club-table-teams small,.club-table-updated small{color:var(--muted);font-size:.59rem}
.club-table-action{justify-self:end;color:var(--navy);font-size:.64rem;font-weight:800}.selected-label{color:var(--red)}
.club-detail-area{display:block}.club-detail-grid{display:grid;grid-template-columns:minmax(280px,.78fr) minmax(420px,1.35fr);gap:15px}.club-info-body,.federation-body{padding:15px 17px}
.club-data-list{display:grid;margin:0}.club-data-list>div{display:grid;grid-template-columns:135px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.club-data-list>div:first-child{border-top:0}.club-data-list dt{color:var(--muted);font-size:.62rem}.club-data-list dd{margin:0;color:var(--navy);font-size:.7rem;font-weight:750}
.section-hint{margin:10px 0 0;padding-top:10px;border-top:1px solid var(--line);color:var(--muted);font-size:.61rem;line-height:1.45}
.federation-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:13px}.federation-summary>div{padding:10px 11px;border:1px solid var(--line);border-radius:7px;background:#fafafd}.federation-summary span{display:block;color:var(--muted);font-size:.58rem}.federation-summary strong{display:block;margin-top:3px;color:var(--navy);font-size:.72rem}
.setup-box{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;padding:13px 14px;border:1px solid #e1d9bd;border-radius:7px;background:#fffdf7}.setup-box h4{margin:3px 0;color:var(--navy);font-size:.78rem}.setup-box p:not(.card-kicker){margin:0;color:var(--muted);font-size:.62rem;line-height:1.45}.setup-form{min-width:330px}
.federation-actions{display:flex;align-items:center;gap:12px;padding-top:12px}.federation-actions span{color:var(--muted);font-size:.61rem;line-height:1.4}
.technical-details{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.technical-details summary{cursor:pointer;color:var(--muted);font-size:.62rem;font-weight:750}.technical-details .sync-row{padding-bottom:0}
.compact-empty{min-height:130px}
@media(max-width:1050px){.club-table-row{grid-template-columns:minmax(210px,1.2fr) 120px 80px 1fr}.club-table-action{grid-column:1/-1;justify-self:start}.club-detail-grid{grid-template-columns:1fr}}
@media(max-width:760px){.active-club-card{align-items:flex-start;flex-wrap:wrap}.active-club-copy{width:calc(100% - 64px)}.club-table-row{grid-template-columns:1fr;gap:7px}.club-table-action{grid-column:auto}.federation-summary{grid-template-columns:1fr}.setup-box{grid-template-columns:1fr}.setup-form{min-width:0;grid-template-columns:1fr}.federation-actions{align-items:flex-start;flex-direction:column}}

/* v0.68.0 · ficha federativa del club */
.active-club-mark.has-crest{background:#fff;border:1px solid var(--line);overflow:hidden;padding:3px}
.active-club-mark.has-crest img{width:100%;height:100%;object-fit:contain}
.club-profile-head{display:flex;align-items:center;gap:15px;padding:14px 17px;margin-bottom:15px}
.club-profile-crest{width:72px;height:72px;object-fit:contain;border:1px solid var(--line);border-radius:9px;background:#fff;padding:5px;flex:0 0 auto}
.club-profile-crest.fallback{display:grid;place-items:center;background:var(--navy);color:#fff;font-size:.8rem;font-weight:900}
.club-profile-title{min-width:0;flex:1}.club-profile-title h2{margin:2px 0 4px;color:var(--navy);font:700 1.25rem Georgia,serif}.club-profile-title p:not(.card-kicker){margin:0;color:var(--muted);font-size:.66rem}
.club-data-list a{color:var(--navy);font-weight:750;text-decoration:underline;text-underline-offset:2px}
.federation-summary{grid-template-columns:repeat(2,1fr)}
.current-teams-card{margin-top:15px}.season-team-list{display:grid}.season-team-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 16px;border-top:1px solid var(--line)}.season-team-row:first-child{border-top:0}.season-team-row>div{display:grid;gap:2px}.season-team-row strong{color:var(--navy);font-size:.7rem}.season-team-row small{color:var(--muted);font-size:.6rem}.season-team-row.inactive{opacity:.62}
@media(max-width:760px){.club-profile-head{align-items:flex-start;flex-wrap:wrap}.club-profile-title{width:calc(100% - 92px)}.club-profile-head>.button{width:100%}.season-team-row{align-items:flex-start;flex-direction:column;gap:6px}}

/* v0.68.1 · compactación + contexto global */
.page-heading{margin-bottom:10px}
.page-heading h2{margin-top:1px;margin-bottom:2px}
.page-heading p{margin-top:0}
.active-club-card{padding:10px 14px;margin-bottom:10px;gap:10px}
.active-club-mark{width:38px;height:38px}
.active-club-copy h3{font-size:1rem;margin:0 0 2px}
.configured-clubs-card{margin-bottom:10px}
.configured-clubs-card>header,.club-info-card>header,.federation-card>header,.current-teams-card>header{padding:10px 14px}
.club-table-row{padding:8px 14px}
.club-profile-head{padding:9px 14px;margin-bottom:10px}
.club-profile-crest{width:54px;height:54px}
.club-profile-title h2{font-size:1.08rem}
.club-detail-grid{gap:10px}
.club-info-body,.federation-body{padding:10px 14px}
.club-data-list>div{padding:6px 0;grid-template-columns:125px 1fr}
.federation-summary{gap:6px;margin-bottom:8px}
.federation-summary>div{padding:7px 9px}
.federation-actions{padding-top:8px;gap:8px}
.current-teams-card{margin-top:10px}
.season-team-row{padding:7px 14px}
.topbar-club-context{display:flex;align-items:center;gap:7px;margin-left:auto;margin-right:10px;padding:5px 9px;border:1px solid #dedee8;border-radius:7px;background:#fff}
.topbar-club-context span{color:var(--muted);font-size:.56rem;text-transform:uppercase;letter-spacing:.04em;font-weight:800}
.topbar-club-context strong{color:var(--navy);font-size:.66rem}
.club-context-message{margin:0 0 10px;padding:8px 12px;border-radius:6px;font-size:.64rem;font-weight:700}
.club-context-message.info{background:#eef3ff;color:#24376a}
.club-context-message.success{background:#e9f6ee;color:#176144}
.club-context-message.error{background:#fff0f0;color:#a01f2f}
@media(max-width:760px){
  .topbar-club-context{order:3;width:100%;margin:6px 0 0;justify-content:center}
  .club-profile-crest{width:48px;height:48px}
}

/* v0.68.4 · escudos en listado de clubes */
.mini-club-mark.has-crest{
  background:#fff;
  border:1px solid var(--line);
  padding:3px;
  overflow:hidden;
}
.mini-club-mark.has-crest img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

/* v0.68.5 · corrección de recorte en escudos pequeños */
.mini-club-mark{
  box-sizing:border-box;
  overflow:hidden;
}
.mini-club-mark.has-crest{
  display:flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  padding:3px;
  line-height:1;
}
.mini-club-mark.has-crest img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
}

/* v0.69.0 · edición y eliminación de clubes */
.club-profile-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.button.ghost-danger{background:#fff;color:#aa2637;border:1px solid #e6bcc2}
.button.ghost-danger:hover{background:#fff5f6}
.danger-modal{max-width:570px}
.danger-warning{padding:11px 13px;border:1px solid #ecc5ca;border-radius:7px;background:#fff6f7;color:#762330}
.danger-warning strong{font-size:.7rem}
.danger-warning p{margin:5px 0 0;font-size:.62rem;line-height:1.45;color:#84515a}
@media(max-width:760px){.club-profile-actions{width:100%;justify-content:flex-start}.club-profile-actions .button{flex:1 1 auto}}

/* v0.69.2 · enlace oficial FNF por equipo */
.season-team-main{display:grid;gap:2px;min-width:0;flex:1}
.season-team-actions{display:flex;align-items:center;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.team-fnf-link{font-size:.61rem;font-weight:800;color:var(--navy);text-decoration:none;white-space:nowrap}
.team-fnf-link:hover{text-decoration:underline;text-underline-offset:2px}
@media(max-width:760px){
  .season-team-actions{justify-content:flex-start}
}

/* v0.69.3 · equipos en una sola línea */
.season-team-row.compact{
  display:grid;
  grid-template-columns:minmax(210px,1.45fr) minmax(170px,1fr) 125px 115px;
  align-items:center;
  gap:12px;
  padding:6px 14px;
}
.season-team-name{
  color:var(--navy);
  font-size:.68rem;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.season-team-category{
  color:var(--muted);
  font-size:.61rem;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.season-team-row.compact .team-fnf-link{
  justify-self:start;
}
.season-team-row.compact .status-pill{
  justify-self:end;
}
@media(max-width:900px){
  .season-team-row.compact{
    grid-template-columns:minmax(180px,1.25fr) minmax(150px,1fr) 115px 105px;
    gap:8px;
  }
}
@media(max-width:700px){
  .season-team-row.compact{
    grid-template-columns:1fr;
    gap:4px;
    padding:8px 14px;
  }
  .season-team-row.compact .status-pill{justify-self:start}
}

/* v0.69.5 · ajuste del escudo en Club activo */
.active-club-mark{
  box-sizing:border-box;
  overflow:hidden;
}
.active-club-mark.has-crest{
  display:flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  padding:3px;
  background:#fff;
  border:1px solid var(--line);
  line-height:1;
}
.active-club-mark.has-crest img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
}

/* v0.69.8 · restauración visual de cabecera + sticky */
.topbar{
  position:sticky;
  top:0;
  z-index:100;
}

/* v0.69.9 · solo posición de elementos en la cabecera restaurada */
.topbar{
  position:sticky;
  top:0;
  z-index:100;
}
.topbar-club-centered{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  margin:0;
}
.topbar-user-right{
  margin-left:auto;
}
@media(max-width:900px){
  .topbar-club-centered{
    position:static;
    transform:none;
    margin-left:auto;
    margin-right:12px;
  }
  .topbar-user-right{
    margin-left:0;
  }
}


/* v0.71.0 · contexto global Club + Temporada en cabecera */
.topbar-work-context{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:8px;
}
.topbar-work-context .topbar-club-context{
  position:static;
  transform:none;
  margin:0;
}
.topbar-season-context{
  display:flex;
  align-items:center;
  gap:7px;
  padding:5px 9px;
  border:1px solid #dedee8;
  border-radius:7px;
  background:#fff;
}
.topbar-season-context span{
  color:var(--muted);
  font-size:.56rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-weight:800;
  white-space:nowrap;
}
.topbar-season-context select{
  max-width:118px;
  border:0;
  outline:0;
  background:transparent;
  color:var(--navy);
  font:800 .66rem/1 inherit;
  cursor:pointer;
}
@media(max-width:900px){
  .topbar-work-context{
    position:static;
    transform:none;
    margin-left:auto;
    margin-right:12px;
  }
}
@media(max-width:760px){
  .topbar-work-context{
    order:3;
    width:100%;
    margin:6px 0 0;
    justify-content:center;
    flex-wrap:wrap;
  }
  .topbar-season-context{
    padding:4px 7px;
  }
}


/* v0.71.1 · Temporada + Club con el mismo formato en cabecera */
.topbar-context-card{
  box-sizing:border-box;
  height:38px;
  min-height:38px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:5px 9px;
  border:1px solid #dedee8;
  border-radius:7px;
  background:#fff;
}
.topbar-season-context,
.topbar-work-context .topbar-club-context{
  box-sizing:border-box;
  height:38px;
  min-height:38px;
  margin:0;
  padding:5px 9px;
  border:1px solid #dedee8;
  border-radius:7px;
  background:#fff;
}
.topbar-season-context{
  min-width:174px;
  justify-content:space-between;
}
.topbar-work-context .topbar-club-context{
  min-width:174px;
}
.topbar-context-copy{
  min-width:0;
  display:flex;
  align-items:baseline;
  gap:7px;
}
.topbar-context-copy > span,
.topbar-season-context > span{
  color:var(--muted);
  font-size:.56rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-weight:800;
  white-space:nowrap;
}
.topbar-context-copy strong{
  color:var(--navy);
  font-size:.66rem;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:150px;
}
.topbar-club-crest{
  box-sizing:border-box;
  width:26px;
  height:26px;
  flex:0 0 26px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:5px;
  background:#f7f7fa;
  overflow:hidden;
  color:var(--navy);
  font-size:.55rem;
  font-weight:900;
}
.topbar-club-crest.has-crest{
  padding:2px;
  background:#fff;
  border:1px solid var(--line);
}
.topbar-club-crest img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.topbar-club-crest b{
  font:900 .55rem/1 inherit;
}
.topbar-season-context select{
  min-width:86px;
  max-width:96px;
}
@media(max-width:760px){
  .topbar-context-card,
  .topbar-season-context,
  .topbar-work-context .topbar-club-context{
    height:36px;
    min-height:36px;
  }
  .topbar-season-context,
  .topbar-work-context .topbar-club-context{
    min-width:160px;
  }
  .topbar-club-crest{
    width:24px;
    height:24px;
    flex-basis:24px;
  }
}

/* v0.72.1 · relación Club + Temporada */
.club-season-box{
  margin-top:10px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fafafd;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.club-season-box h4{
  margin:2px 0 3px;
  color:var(--navy);
}
.club-season-box p{
  margin:0;
}
.club-season-box.configured{
  background:#fbfffc;
}
.club-table-updated .status-pill{
  display:inline-flex;
  margin-bottom:2px;
}

/* v0.72.3 · indisponibilidad temporal de FNF */
.fnf-unavailable-modal{
  max-width:520px;
}
.fnf-unavailable-notice{
  padding:12px 14px;
  border:1px solid #ead8a4;
  border-radius:8px;
  background:#fffaf0;
}
.fnf-unavailable-notice strong{
  display:block;
  margin-bottom:4px;
  color:var(--navy);
}
.fnf-unavailable-notice p{
  margin:0;
}
.technical-details{
  margin-top:12px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fafafd;
  overflow:hidden;
}
.technical-details summary{
  cursor:pointer;
  padding:9px 11px;
  color:var(--muted);
  font-size:.72rem;
  font-weight:800;
}
.technical-details pre{
  margin:0;
  padding:10px 11px;
  border-top:1px solid var(--line);
  white-space:pre-wrap;
  word-break:break-word;
  font:600 .68rem/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;
  color:#3d3d4e;
  background:#fff;
}


/* v0.74.0 · 02 Equipos */
.team-season-list-card{margin-top:12px}
.team-season-table{display:grid}
.team-season-row{
  display:grid;
  grid-template-columns:minmax(180px,1.35fr) minmax(130px,.9fr) minmax(190px,1.35fr) minmax(90px,.55fr) minmax(130px,.8fr) minmax(150px,.8fr);
  gap:12px;
  align-items:center;
  padding:10px 2px;
  border-top:1px solid var(--line);
  min-width:0;
}
.team-season-row:first-child{border-top:0}
.team-season-row>div{min-width:0}
.team-season-row strong{display:block;color:var(--navy);font-size:.76rem}
.team-season-row small{display:block;margin-top:3px;color:var(--muted);font-size:.66rem;line-height:1.35}
.team-season-main strong{font-size:.82rem}
.team-season-future{display:flex;gap:7px;flex-wrap:wrap}
.team-season-future span{
  padding:4px 7px;border:1px solid var(--line);border-radius:999px;
  color:var(--muted);background:#fafafd;font-size:.64rem;font-weight:800
}
.team-row-action{text-align:right}
.team-fnf-preview{
  display:grid;gap:3px;margin-top:12px;padding:10px 12px;
  border:1px solid var(--line);border-radius:8px;background:#fafafd
}
.team-fnf-preview strong{color:var(--navy);font-size:.72rem}
.team-fnf-preview span{font-size:.76rem}
.team-fnf-preview small{color:var(--muted)}
@media(max-width:920px){
  .team-season-row{
    grid-template-columns:1fr 1fr;
    gap:8px 12px;
  }
  .team-row-action{text-align:left}
}
@media(max-width:560px){
  .team-season-row{grid-template-columns:1fr}
}

.team-row-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
@media(max-width:920px){.team-row-actions{justify-content:flex-start}}


/* v0.75.0 · ficha de equipo */
.team-name-button{
  border:0;background:transparent;padding:0;color:var(--navy);
  font:inherit;font-size:.82rem;font-weight:900;text-align:left;cursor:pointer
}
.team-name-button:hover{text-decoration:underline}
.team-detail-card{margin-top:12px}
.team-detail-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.team-tabs{
  display:flex;gap:4px;overflow-x:auto;margin:12px 0 14px;
  padding-bottom:1px;border-bottom:1px solid var(--line)
}
.team-tab{
  border:0;border-bottom:2px solid transparent;background:transparent;
  padding:8px 11px;color:var(--muted);font-size:.72rem;font-weight:900;cursor:pointer;white-space:nowrap
}
.team-tab.active{color:var(--navy);border-bottom-color:var(--red)}
.team-tab-panel{min-width:0}
.team-summary-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px
}
.team-summary-grid>div{
  min-width:0;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fafafd
}
.team-summary-grid span{display:block;color:var(--muted);font-size:.64rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.team-summary-grid strong{display:block;margin-top:4px;color:var(--navy);font-size:.78rem;overflow-wrap:anywhere}
.team-optional-details{margin-top:12px;border:1px solid var(--line);border-radius:8px;padding:0 10px}
.team-optional-details summary{cursor:pointer;padding:10px 0;font-size:.72rem;font-weight:900;color:var(--navy)}
.team-federation-summary{margin-bottom:14px}
.participation-list{display:grid}
.participation-row{
  display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(80px,.5fr) minmax(150px,.8fr);
  gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line)
}
.participation-row:first-child{border-top:0}
.participation-row strong{display:block;color:var(--navy);font-size:.76rem}
.participation-row small{display:block;color:var(--muted);font-size:.65rem;margin-top:2px}
@media(max-width:720px){
  .team-summary-grid{grid-template-columns:1fr 1fr}
  .participation-row{grid-template-columns:1fr}
}
@media(max-width:460px){
  .team-summary-grid{grid-template-columns:1fr}
}


/* v0.75.1 · estado persistente de sincronización FNF */
.fnf-last-sync{
  margin-top:10px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;
  display:grid;grid-template-columns:minmax(155px,.7fr) minmax(0,1.6fr);gap:10px;background:#fafafd
}
.fnf-last-sync>div{min-width:0}
.fnf-last-sync strong,.fnf-last-sync b{display:block;color:var(--navy);font-size:.68rem}
.fnf-last-sync span{display:block;margin-top:2px;color:var(--muted);font-size:.65rem;line-height:1.35;overflow-wrap:anywhere}
.fnf-last-sync.success{border-left:3px solid #34834a}
.fnf-last-sync.error{border-left:3px solid var(--red)}
.fnf-last-sync.blocked{border-left:3px solid #b87700}
.fnf-last-sync.empty{border-left:3px solid var(--line)}
.fnf-success-mark{
  width:42px;height:42px;margin:0 auto 12px;border-radius:50%;
  display:grid;place-items:center;background:#edf7ef;color:#28713b;font-size:1.35rem;font-weight:900
}
.fnf-sync-result-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px
}
.fnf-sync-result-grid>div{
  padding:9px;border:1px solid var(--line);border-radius:8px;background:#fafafd;min-width:0
}
.fnf-sync-result-grid span{display:block;color:var(--muted);font-size:.62rem;font-weight:800;text-transform:uppercase}
.fnf-sync-result-grid strong{display:block;margin-top:3px;color:var(--navy);font-size:.8rem}
@media(max-width:620px){
  .fnf-last-sync{grid-template-columns:1fr}
  .fnf-sync-result-grid{grid-template-columns:1fr 1fr}
}


/* v0.76.0 · personas y asignaciones deportivas */
.team-tab-toolbar{
  display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px
}
.team-tab-toolbar p{margin:0}
.people-assignment-list{display:grid}
.people-assignment-row{
  display:grid;grid-template-columns:minmax(180px,1.25fr) minmax(140px,.8fr) minmax(150px,.9fr) minmax(100px,.55fr);
  gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line)
}
.people-assignment-row:first-child{border-top:0}
.people-assignment-row.historical{opacity:.72}
.people-assignment-row strong{display:block;color:var(--navy);font-size:.75rem}
.people-assignment-row small{display:block;color:var(--muted);font-size:.64rem;margin-top:2px;line-height:1.3}
@media(max-width:760px){
  .team-tab-toolbar{flex-direction:column}
  .people-assignment-row{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .people-assignment-row{grid-template-columns:1fr}
}


/* v0.76.1 · respiración lateral en 02 Equipos */
#teamsView .team-season-list-card,
#teamsView .team-detail-card{
  padding-left:16px;
  padding-right:16px;
}

#teamsView .team-season-row,
#teamsView .people-assignment-row,
#teamsView .participation-row{
  padding-left:10px;
  padding-right:10px;
}

#teamsView .team-season-row .team-row-actions,
#teamsView .team-season-row .team-row-action,
#teamsView .people-assignment-row .team-row-action{
  padding-right:2px;
}

#teamsView .team-tab-panel{
  padding-left:4px;
  padding-right:4px;
}

@media(max-width:560px){
  #teamsView .team-season-list-card,
  #teamsView .team-detail-card{
    padding-left:12px;
    padding-right:12px;
  }

  #teamsView .team-season-row,
  #teamsView .people-assignment-row,
  #teamsView .participation-row{
    padding-left:6px;
    padding-right:6px;
  }
}


/* v0.76.2 · corrección visual de 02 Equipos
   El encabezado vuelve a ocupar el ancho completo de la tarjeta.
   La respiración lateral se aplica al contenido, no al contenedor .card. */
#teamsView .team-season-list-card,
#teamsView .team-detail-card{
  padding-left:0;
  padding-right:0;
}

/* Cabeceras grises a sangre dentro de la tarjeta */
#teamsView .team-season-list-card > header,
#teamsView .team-detail-card > header{
  width:100%;
  box-sizing:border-box;
}

/* Contenido con aire lateral uniforme */
#teamsView .team-season-table{
  padding-left:16px;
  padding-right:16px;
  box-sizing:border-box;
}

#teamsView .team-detail-card .team-tabs{
  margin-left:16px;
  margin-right:16px;
}

#teamsView .team-detail-card .team-tab-panel{
  padding-left:20px;
  padding-right:20px;
  padding-bottom:12px;
  box-sizing:border-box;
}

/* Rejilla flexible: evita que Editar/Eliminar se salgan de la tarjeta */
#teamsView .team-season-row{
  grid-template-columns:
    minmax(0,1.35fr)
    minmax(0,1fr)
    minmax(0,1.35fr)
    minmax(64px,.42fr)
    minmax(105px,.62fr)
    116px;
  column-gap:14px;
  padding-left:10px;
  padding-right:10px;
  box-sizing:border-box;
  width:100%;
}

#teamsView .team-season-row > div{
  min-width:0;
}

#teamsView .team-row-actions{
  width:116px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  justify-content:stretch;
  align-items:center;
}

#teamsView .team-row-actions .button{
  width:100%;
  min-width:0;
  padding-left:7px;
  padding-right:7px;
  white-space:nowrap;
}

/* Personal y participaciones siguen alineados con el resto de la ficha */
#teamsView .people-assignment-row,
#teamsView .participation-row{
  padding-left:8px;
  padding-right:8px;
  box-sizing:border-box;
}

@media(max-width:920px){
  #teamsView .team-season-row{
    grid-template-columns:1fr 1fr;
    gap:9px 14px;
  }

  #teamsView .team-row-actions{
    width:auto;
    max-width:220px;
    justify-content:start;
  }
}

@media(max-width:560px){
  #teamsView .team-season-table{
    padding-left:12px;
    padding-right:12px;
  }

  #teamsView .team-detail-card .team-tabs{
    margin-left:12px;
    margin-right:12px;
  }

  #teamsView .team-detail-card .team-tab-panel{
    padding-left:14px;
    padding-right:14px;
  }

  #teamsView .team-season-row{
    grid-template-columns:1fr;
    padding-left:6px;
    padding-right:6px;
  }

  #teamsView .team-row-actions{
    width:100%;
    max-width:220px;
  }
}


/* v0.76.3 · vínculo FNF opcional y tardío */
#teamSeasonDialog .field-help{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:.65rem;
  line-height:1.35;
}
#federationTeamSelect{
  width:100%;
}


/* v0.76.5 · agrupación visual de equipos */
#teamsView .team-group-heading{
  margin:10px -6px 0;
  padding:8px 10px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#f3f4f7;
}
#teamsView .team-group-heading:first-child{margin-top:0}
#teamsView .team-group-heading strong{
  color:var(--navy);
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}
#teamsView .team-gender-heading{
  padding:7px 10px 3px;
  color:var(--muted);
  font-size:.64rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}


/* v0.76.6 · sección y orden manual */
#teamsView .team-group-heading.female{
  margin-top:14px;
}


/* v0.76.9 · filas compactas en Equipos configurados */
#teamsView .team-season-row{
  min-height:0;
  padding-top:5px;
  padding-bottom:5px;
  row-gap:3px;
  align-items:center;
}

#teamsView .team-season-main{
  line-height:1.08;
}

#teamsView .team-season-main .team-name-button{
  font-size:.76rem;
  line-height:1.08;
}

#teamsView .team-season-row small{
  margin-top:1px;
  font-size:.60rem;
  line-height:1.15;
}

#teamsView .team-season-row .status-pill{
  padding:2px 6px;
  font-size:.58rem;
  line-height:1.05;
}

#teamsView .team-season-future{
  display:flex;
  align-items:center;
  white-space:nowrap;
  min-width:0;
  line-height:1;
}

#teamsView .team-season-future span{
  display:block;
  margin:0;
  color:var(--muted);
  font-size:.61rem;
  line-height:1.05;
  white-space:nowrap;
}

#teamsView .team-season-future b{
  font-weight:700;
  padding:0 2px;
}

#teamsView .team-row-actions{
  gap:4px;
}

#teamsView .team-row-actions .button{
  min-height:25px;
  padding-top:3px;
  padding-bottom:3px;
  font-size:.60rem;
  line-height:1;
}

#teamsView .team-group-heading{
  padding-top:6px;
  padding-bottom:6px;
  margin-top:7px;
}

#teamsView .team-group-heading strong{
  font-size:.68rem;
}

@media(max-width:920px){
  #teamsView .team-season-row{
    padding-top:7px;
    padding-bottom:7px;
  }

  #teamsView .team-season-future{
    white-space:normal;
  }

  #teamsView .team-season-future span{
    white-space:normal;
  }
}


/* v0.77.0 · redistribución horizontal de Equipos configurados */
#teamsView .team-season-row{
  grid-template-columns:
    minmax(0,1.30fr)
    minmax(0,.92fr)
    minmax(0,1.18fr)
    72px
    minmax(155px,.90fr)
    122px;
  column-gap:10px;
}

#teamsView .team-season-row > div:nth-child(4){
  justify-self:start;
}

#teamsView .team-season-future{
  justify-self:start;
  width:100%;
}

#teamsView .team-row-actions{
  width:122px;
  justify-self:end;
}

@media(max-width:1080px){
  #teamsView .team-season-row{
    grid-template-columns:
      minmax(0,1.25fr)
      minmax(0,.85fr)
      minmax(0,1.05fr)
      66px
      minmax(145px,.85fr)
      118px;
    column-gap:8px;
  }

  #teamsView .team-row-actions{
    width:118px;
  }
}

@media(max-width:920px){
  #teamsView .team-season-row{
    grid-template-columns:1fr 1fr;
    gap:7px 12px;
  }

  #teamsView .team-row-actions{
    width:auto;
    max-width:220px;
    justify-self:start;
  }
}


/* v0.77.1 · ficha inline tipo acordeón */
#teamsView .team-season-clickable{
  cursor:pointer;
  border-radius:7px;
  transition:background-color .12s ease, box-shadow .12s ease;
}

#teamsView .team-season-clickable:hover{
  background:#f7f8fc;
}

#teamsView .team-season-clickable.expanded{
  background:#eef2f9;
  box-shadow:inset 3px 0 0 var(--navy);
}

#teamsView .team-season-clickable.expanded .team-name-button{
  color:var(--red);
}

#teamsView .team-season-clickable .team-row-actions,
#teamsView .team-season-clickable .team-row-actions *{
  cursor:default;
}

#teamsView #teamDetailCard{
  margin:3px 8px 9px;
  width:calc(100% - 16px);
  box-sizing:border-box;
  border:1px solid #cfd6e5;
  border-left:3px solid var(--red);
  border-radius:8px;
  background:#fbfcff;
  box-shadow:0 4px 12px rgba(0,0,76,.06);
}

#teamsView #teamDetailCard > header{
  background:#f0f3f8;
  border-radius:6px 6px 0 0;
}

#teamsView #teamDetailCard .team-tabs{
  background:#fbfcff;
}

@media(max-width:560px){
  #teamsView #teamDetailCard{
    margin-left:3px;
    margin-right:3px;
    width:calc(100% - 6px);
  }
}


/* v0.78.0 · importación masiva de jugadores */
.goalkeeper-badge{
  display:inline-flex;
  align-items:center;
  padding:1px 5px;
  border-radius:999px;
  background:#fff1d6;
  color:#7a4c00;
  font-weight:900;
  font-size:.58rem;
  letter-spacing:.03em;
}
.player-import-modal{
  width:min(1180px,calc(100vw - 28px));
}
.player-import-modal textarea{
  width:100%;
  resize:vertical;
  font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
  font-size:.72rem;
}
.player-import-summary{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  margin-bottom:10px;
}
.player-import-table-wrap{
  max-height:56vh;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:8px;
}
.player-import-table{
  width:100%;
  border-collapse:collapse;
  font-size:.69rem;
}
.player-import-table th{
  position:sticky;
  top:0;
  z-index:1;
  background:#f1f3f7;
  color:var(--navy);
  text-align:left;
  padding:7px 8px;
  border-bottom:1px solid var(--line);
}
.player-import-table td{
  padding:5px 8px;
  border-bottom:1px solid #eceef3;
  vertical-align:middle;
}
.player-import-table tr.needs-review{
  background:#fff9ed;
}
.player-import-table select{
  width:100%;
  min-width:170px;
  padding:5px 6px;
}
.player-import-table .keeper-cell{
  text-align:center;
}
.compact-date-field{
  max-width:220px;
  margin-top:10px;
}
.page-heading-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

/* v0.78.1 · jugadores compactos */
#teamsView .player-compact-row{
  display:grid;
  grid-template-columns:28px minmax(0,1.5fr) minmax(120px,.72fr) minmax(0,.38fr) 136px;
  gap:8px;align-items:center;min-height:0;padding:4px 6px;
}
#teamsView .player-row-number{text-align:right;padding-right:4px;font-size:.62rem;font-weight:800;color:var(--muted)}
#teamsView .player-row-main{display:flex;align-items:center;gap:6px;min-width:0;line-height:1.05}
#teamsView .player-row-main strong{font-size:.70rem;line-height:1.05}
#teamsView .player-row-status{display:flex;align-items:center;gap:6px;min-width:0}
#teamsView .player-row-status small{margin:0;font-size:.58rem;line-height:1;white-space:nowrap}
#teamsView .player-row-actions{display:flex;justify-content:flex-end;gap:4px;white-space:nowrap}
#teamsView .player-row-actions .button{min-height:24px;padding:3px 7px;font-size:.58rem;line-height:1}
#teamsView .player-compact-row .goalkeeper-badge{flex:0 0 auto;padding:1px 5px;font-size:.55rem}
@media(max-width:760px){
  #teamsView .player-compact-row{grid-template-columns:24px minmax(0,1fr) auto}
  #teamsView .player-row-status{grid-column:2 / -1}
  #teamsView .player-row-spacer{display:none}
  #teamsView .player-row-actions{grid-column:2 / -1;justify-content:flex-start}
}


/* v0.78.2 · cambio / doble vinculación de equipo */
#teamsView .player-row-actions{
  min-width:310px;
  flex-wrap:wrap;
}

.choice-panel{
  margin:10px 0 0;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:8px;
}

.choice-panel legend{
  padding:0 5px;
  color:var(--navy);
  font-size:.68rem;
  font-weight:900;
}

.choice-panel .check-row{
  align-items:flex-start;
  margin:7px 0;
}

.choice-panel .check-row span{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.choice-panel .check-row small{
  color:var(--muted);
  font-size:.62rem;
  line-height:1.25;
}


/* v0.78.3 · acciones de jugadores dentro de la tarjeta */
#teamsView .player-compact-row{
  grid-template-columns:
    28px
    minmax(190px,1.35fr)
    minmax(125px,.72fr)
    minmax(230px,1fr);
  column-gap:8px;
}

#teamsView .player-row-actions{
  min-width:0;
  width:100%;
  display:flex;
  justify-content:flex-end;
  align-items:center;
  flex-wrap:wrap;
  gap:4px;
  overflow:visible;
}

#teamsView .player-row-actions .button{
  flex:0 0 auto;
  max-width:100%;
  white-space:nowrap;
}

#teamsView .player-row-actions [data-change-player-team]{
  padding-left:6px;
  padding-right:6px;
}

@media(max-width:1180px){
  #teamsView .player-compact-row{
    grid-template-columns:
      28px
      minmax(180px,1.25fr)
      minmax(115px,.65fr)
      minmax(210px,.95fr);
  }

  #teamsView .player-row-actions .button{
    font-size:.56rem;
    padding-left:5px;
    padding-right:5px;
  }
}

@media(max-width:900px){
  #teamsView .player-compact-row{
    grid-template-columns:28px minmax(0,1fr);
    gap:4px 8px;
  }

  #teamsView .player-row-identity{
    grid-column:2;
  }

  #teamsView .player-row-status{
    grid-column:2;
  }

  #teamsView .player-row-actions{
    grid-column:2;
    justify-content:flex-start;
  }
}


/* v0.78.4 · corrección real del grid de jugadores
   La fila tiene CINCO elementos: nº | jugador | estado | separador | acciones */
#teamsView .player-compact-row{
  grid-template-columns:
    28px
    minmax(210px,1.45fr)
    minmax(118px,.68fr)
    minmax(0,.18fr)
    268px;
  gap:6px 8px;
  padding-top:4px;
  padding-bottom:4px;
  align-items:center;
}

#teamsView .player-row-actions{
  grid-column:5;
  width:268px;
  min-width:268px;
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-end;
  gap:4px;
  white-space:nowrap;
}

#teamsView .player-row-actions .button{
  flex:0 0 auto;
  min-height:23px;
  padding:3px 6px;
  font-size:.55rem;
  line-height:1;
  white-space:nowrap;
}

#teamsView .player-row-spacer{
  display:block;
  min-width:0;
}

/* Anula el salto prematuro de v0.78.3. */
@media(max-width:1180px){
  #teamsView .player-compact-row{
    grid-template-columns:
      28px
      minmax(190px,1.35fr)
      minmax(110px,.62fr)
      minmax(0,.10fr)
      258px;
  }

  #teamsView .player-row-actions{
    grid-column:5;
    width:258px;
    min-width:258px;
    flex-wrap:nowrap;
  }

  #teamsView .player-row-actions .button{
    font-size:.53rem;
    padding-left:5px;
    padding-right:5px;
  }
}

/* Solo en móvil realmente estrecho las acciones pasan debajo. */
@media(max-width:700px){
  #teamsView .player-compact-row{
    grid-template-columns:24px minmax(0,1fr);
    gap:3px 8px;
  }

  #teamsView .player-row-main{
    grid-column:2;
  }

  #teamsView .player-row-status{
    grid-column:2;
  }

  #teamsView .player-row-spacer{
    display:none;
  }

  #teamsView .player-row-actions{
    grid-column:2;
    width:auto;
    min-width:0;
    justify-content:flex-start;
    flex-wrap:wrap;
  }
}


/* v0.78.6 · limpieza visual de cabeceras y contadores de equipos */

/* Elimina por completo la antigua píldora v0.74 de Entrenadores/Jugadores. */
#teamsView .team-season-future{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  width:100%;
  min-width:0;
  white-space:nowrap;
  line-height:1;
}

#teamsView .team-season-future span{
  display:flex;
  align-items:center;
  gap:3px;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--muted);
  font-size:.61rem;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
}

#teamsView .team-season-future strong{
  display:inline;
  margin:0;
  color:var(--navy);
  font-size:.68rem;
  font-weight:900;
  line-height:1;
}

#teamsView .team-season-future b{
  padding:0 4px;
  color:#b7bcc8;
  font-weight:700;
}

/* Las modalidades vuelven a funcionar visualmente como subtarjetas. */
#teamsView .team-group-heading{
  position:relative;
  display:flex;
  align-items:center;
  min-height:34px;
  margin:10px 6px 5px;
  padding:7px 12px 7px 16px;
  border:1px solid #d9dde8;
  border-radius:8px;
  background:#f7f8fc;
  box-shadow:0 2px 6px rgba(0,0,76,.045);
  overflow:hidden;
}

#teamsView .team-group-heading::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:var(--navy);
}

#teamsView .team-group-heading strong{
  color:var(--navy);
  font-size:.69rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.045em;
  line-height:1;
}

#teamsView .team-group-heading.female::before{
  background:var(--red);
}

/* Da un poco de respiración a la primera/última fila sin aumentar altura general. */
#teamsView .team-group-heading + .team-season-row{
  border-top:0;
}

#teamsView .team-season-row{
  margin-left:10px;
  margin-right:10px;
  padding-left:6px;
  padding-right:6px;
  border-radius:6px;
}

#teamsView .team-season-row + .team-season-row{
  border-top:1px solid #e1e4ec;
}

@media(max-width:920px){
  #teamsView .team-group-heading{
    margin-left:3px;
    margin-right:3px;
  }

  #teamsView .team-season-row{
    margin-left:4px;
    margin-right:4px;
  }

  #teamsView .team-season-future span{
    flex-wrap:wrap;
    white-space:normal;
  }
}

/* v0.79.0 · importación masiva entrenadores */
.staff-import-modal{width:min(1320px,calc(100vw - 24px));}
.staff-import-table{min-width:1160px;}
.staff-import-table input,.staff-import-table select{
  width:100%;box-sizing:border-box;min-width:105px;padding:5px 6px;
  border:1px solid #d7dbe5;border-radius:5px;background:#fff;font:inherit;
}
.staff-import-table td:nth-child(1){min-width:125px;}
.staff-import-table td:nth-child(2){min-width:135px;}
.staff-import-table td:nth-child(3),.staff-import-table td:nth-child(4){min-width:110px;}
.staff-import-table td:nth-child(5){min-width:185px;}
.staff-import-table td:nth-child(6){min-width:170px;}
.staff-import-table td:nth-child(7){min-width:135px;}


/* v0.79.1 · buscador de equipo en revisión de entrenadores */
.staff-import-table .team-typeahead-cell{
  position:relative;
  min-width:185px;
}

.staff-import-table [data-staff-team-search]{
  width:100%;
  min-width:185px;
  box-sizing:border-box;
  padding:5px 7px;
  border:1px solid #d7dbe5;
  border-radius:5px;
  background:#fff;
  font:inherit;
}

.staff-import-table [data-staff-team-search]:focus{
  outline:none;
  border-color:#989fb2;
  box-shadow:0 0 0 2px rgba(0,0,76,.06);
}

.staff-import-table tr.needs-review [data-staff-team-search]{
  background:#fffdf7;
}


/* v0.79.2 · acciones completas de personal */
#teamsView #teamStaffList .people-assignment-row{
  grid-template-columns:minmax(220px,1.35fr) minmax(150px,.75fr) minmax(300px,1fr);
  gap:8px;
  align-items:center;
}

#teamsView #teamStaffList .people-row-actions,
#teamsView #teamStaffList .player-row-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:4px;
  flex-wrap:wrap;
}

#teamsView #teamStaffList .button.compact{
  min-height:24px;
  padding:3px 7px;
  font-size:.57rem;
  white-space:nowrap;
}

@media(max-width:900px){
  #teamsView #teamStaffList .people-assignment-row{
    grid-template-columns:1fr;
  }

  #teamsView #teamStaffList .people-row-actions,
  #teamsView #teamStaffList .player-row-actions{
    justify-content:flex-start;
  }
}


/* v0.79.3 · personal compacto en una sola línea */
#teamsView #teamStaffList .people-assignment-row{
  grid-template-columns:
    minmax(190px,1.20fr)
    minmax(130px,.72fr)
    minmax(125px,.62fr)
    300px;
  gap:6px 8px;
  min-height:0;
  padding-top:4px;
  padding-bottom:4px;
  align-items:center;
}

#teamsView #teamStaffList .team-row-action{
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  justify-content:flex-end;
  align-items:center;
  gap:4px;
  min-width:0;
  width:300px;
  white-space:nowrap;
}

#teamsView #teamStaffList .team-row-action .button{
  flex:0 0 auto;
  min-height:23px;
  padding:3px 6px;
  font-size:.54rem;
  line-height:1;
  white-space:nowrap;
}

#teamsView #teamStaffList .people-assignment-row strong{
  font-size:.68rem;
  line-height:1.05;
}

#teamsView #teamStaffList .people-assignment-row small{
  margin-top:1px;
  font-size:.57rem;
  line-height:1.05;
}

#teamsView #teamStaffList .status-pill{
  padding:2px 5px;
  font-size:.55rem;
}

@media(max-width:1050px){
  #teamsView #teamStaffList .people-assignment-row{
    grid-template-columns:
      minmax(175px,1.10fr)
      minmax(120px,.66fr)
      minmax(110px,.58fr)
      278px;
  }

  #teamsView #teamStaffList .team-row-action{
    width:278px;
  }

  #teamsView #teamStaffList .team-row-action .button{
    padding-left:5px;
    padding-right:5px;
    font-size:.52rem;
  }
}

/* Solo baja las acciones en móvil/tablet estrecho. */
@media(max-width:760px){
  #teamsView #teamStaffList .people-assignment-row{
    grid-template-columns:1fr 1fr;
  }

  #teamsView #teamStaffList .team-row-action{
    grid-column:1 / -1;
    width:auto;
    justify-content:flex-start;
    flex-wrap:wrap;
  }
}

/* Filas omitidas en las importaciones */
.player-import-table .import-skip-cell{
  width:48px;
  min-width:48px;
  text-align:center;
}

.player-import-table .import-skip-cell input{
  width:auto;
  min-width:0;
  margin:0;
}

.player-import-table tr.import-row-skipped{
  opacity:.48;
  background:#f3f4f7;
}

.player-import-table tr.import-row-skipped td{
  text-decoration:none;
}

.player-import-table tr.import-row-skipped .status-pill{
  background:#eceef2;
  color:#6d7280;
}


/* v0.80.0 · revisión masiva más estrecha */
.player-import-modal,
.staff-import-modal{
  width:min(1180px,calc(100vw - 18px));
}

.player-import-table,
.staff-import-table{
  width:100%;
  min-width:0;
  table-layout:fixed;
  font-size:.61rem;
}

.player-import-table th,
.player-import-table td{
  padding:4px 5px;
}

.player-import-table input,
.player-import-table select,
.staff-import-table input,
.staff-import-table select,
.staff-import-table [data-staff-team-search]{
  min-width:0;
  width:100%;
  padding:4px 4px;
  font-size:.60rem;
}

.staff-import-table .team-typeahead-cell{
  min-width:0;
}

/* Entrenadores: Omitir | recibido | nombre | ap1 | ap2 | email | equipo | rol | estado */
.staff-import-table th:nth-child(1),.staff-import-table td:nth-child(1){width:4%;}
.staff-import-table th:nth-child(2),.staff-import-table td:nth-child(2){width:10%;}
.staff-import-table th:nth-child(3),.staff-import-table td:nth-child(3){width:11%;}
.staff-import-table th:nth-child(4),.staff-import-table td:nth-child(4){width:10%;}
.staff-import-table th:nth-child(5),.staff-import-table td:nth-child(5){width:10%;}
.staff-import-table th:nth-child(6),.staff-import-table td:nth-child(6){width:17%;}
.staff-import-table th:nth-child(7),.staff-import-table td:nth-child(7){width:15%;}
.staff-import-table th:nth-child(8),.staff-import-table td:nth-child(8){width:11%;}
.staff-import-table th:nth-child(9),.staff-import-table td:nth-child(9){width:12%;}

/* Anula mínimos antiguos de v0.79.0 */
.staff-import-table td:nth-child(n){
  min-width:0;
}

/* Jugadores: Omitir | recibido | jugador | equipo | portero | estado */
.player-import-table th:nth-child(1),.player-import-table td:nth-child(1){width:5%;}
.player-import-table th:nth-child(2),.player-import-table td:nth-child(2){width:17%;}
.player-import-table th:nth-child(3),.player-import-table td:nth-child(3){width:26%;}
.player-import-table th:nth-child(4),.player-import-table td:nth-child(4){width:28%;}
.player-import-table th:nth-child(5),.player-import-table td:nth-child(5){width:8%;}
.player-import-table th:nth-child(6),.player-import-table td:nth-child(6){width:16%;}

.player-import-table-wrap{
  overflow-x:hidden;
}

/* v0.80.0 · planificación habitual */
.team-training-summary-card{
  margin-bottom:10px;
  padding:10px 12px;
  border:1px solid #d9dde8;
  border-left:3px solid var(--red);
  border-radius:8px;
  background:#fafbfe;
}

.team-training-summary-heading{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-bottom:7px;
}

.team-training-summary-heading strong{
  display:block;
  color:var(--navy);
  font-size:.74rem;
}

.training-summary-list{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}

.training-summary-chip{
  display:inline-flex;
  align-items:center;
  padding:4px 7px;
  border-radius:6px;
  background:#eef1f7;
  color:var(--navy);
  font-size:.61rem;
  font-weight:750;
}

.muted-inline{
  color:var(--muted);
  font-size:.64rem;
}

.training-plan-card{
  padding:12px;
  border:1px solid #d9dde8;
  border-radius:8px;
  background:#fff;
}

.training-plan-toolbar{
  margin-bottom:8px;
}

.training-plan-form{
  display:grid;
  grid-template-columns:minmax(230px,1fr) 105px 105px minmax(150px,.7fr) auto;
  gap:8px;
  align-items:end;
  padding:8px;
  border-radius:7px;
  background:#f6f7fa;
}

.training-day-field{
  min-width:0;
}

.field-label{
  display:block;
  margin-bottom:4px;
  color:var(--muted);
  font-size:.60rem;
  font-weight:800;
  text-transform:uppercase;
}

.weekday-picker{
  display:flex;
  gap:4px;
}

.weekday-picker button{
  width:29px;
  height:29px;
  padding:0;
  border:1px solid #ccd1dc;
  border-radius:6px;
  background:#fff;
  color:var(--navy);
  font-size:.64rem;
  font-weight:900;
  cursor:pointer;
}

.weekday-picker button.active{
  border-color:var(--navy);
  background:var(--navy);
  color:#fff;
}

.weekday-picker button:disabled{
  cursor:default;
  opacity:.75;
}

.training-plan-form .field{
  margin:0;
}

.training-plan-form .field span{
  font-size:.60rem;
}

.training-plan-form input{
  min-height:30px;
  padding:5px 7px;
}

.training-plan-actions{
  display:flex;
  gap:5px;
  align-items:center;
  padding-bottom:1px;
}

.training-plan-list{
  margin-top:9px;
}

.training-plan-row{
  display:grid;
  grid-template-columns:115px 110px minmax(120px,1fr) 125px;
  gap:8px;
  align-items:center;
  min-height:34px;
  padding:4px 7px;
  border-top:1px solid #e5e7ed;
}

.training-plan-row:first-child{
  border-top:0;
}

.training-plan-day{
  color:var(--navy);
  font-size:.66rem;
  font-weight:850;
}

.training-plan-hours{
  font-size:.66rem;
}

.training-plan-location{
  min-width:0;
  color:var(--muted);
  font-size:.61rem;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.training-plan-row-actions{
  display:flex;
  justify-content:flex-end;
  gap:4px;
}

.training-future-card{
  margin-top:10px;
  padding:10px 12px;
  border:1px dashed #d7dbe5;
  border-radius:8px;
  background:#fafbfc;
}

.training-future-card p:last-child{
  margin:2px 0 0;
  color:var(--muted);
  font-size:.64rem;
}

.danger-lite{
  color:var(--red);
}

@media(max-width:900px){
  .staff-import-modal,.player-import-modal{
    width:calc(100vw - 10px);
  }

  .player-import-table-wrap{
    overflow-x:auto;
  }

  .staff-import-table{min-width:850px;}
  .player-import-table{min-width:650px;}

  .training-plan-form{
    grid-template-columns:1fr 1fr;
  }

  .training-day-field,
  .training-location-field{
    grid-column:1/-1;
  }
}

@media(max-width:560px){
  .training-plan-form{
    grid-template-columns:1fr 1fr;
  }

  .weekday-picker{
    flex-wrap:wrap;
  }

  .training-plan-row{
    grid-template-columns:1fr auto;
  }

  .training-plan-location{
    grid-column:1/2;
  }

  .training-plan-row-actions{
    grid-column:2;
    grid-row:1/3;
  }
}


/* v0.81.0 · módulo 03 Entrenamientos */
.training-module-tabs{
  display:flex;
  gap:3px;
  margin:0 0 10px;
  padding:4px;
  overflow-x:auto;
  border:1px solid #dde1ea;
  border-radius:9px;
  background:#f4f5f8;
}

.module-tab{
  flex:0 0 auto;
  min-height:31px;
  padding:6px 12px;
  border:0;
  border-radius:6px;
  background:transparent;
  color:#5b6170;
  font-size:.64rem;
  font-weight:850;
  cursor:pointer;
}

.module-tab.active{
  background:#fff;
  color:var(--navy);
  box-shadow:0 1px 4px rgba(0,0,0,.08);
}

.training-overview-card{
  padding:0;
  overflow:hidden;
}

.training-overview-header{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  padding:12px 14px 10px;
  border-bottom:1px solid #e3e6ed;
}

.training-overview-header h3{
  margin:1px 0 2px;
}

.training-overview-header p:last-child{
  margin:0;
  color:var(--muted);
  font-size:.63rem;
}

.training-view-toggle{
  display:flex;
  padding:3px;
  border:1px solid #d9dde6;
  border-radius:7px;
  background:#f3f4f7;
}

.training-view-toggle button{
  min-height:27px;
  padding:4px 9px;
  border:0;
  border-radius:5px;
  background:transparent;
  color:#626877;
  font-size:.60rem;
  font-weight:800;
  cursor:pointer;
}

.training-view-toggle button.active{
  background:#fff;
  color:var(--navy);
  box-shadow:0 1px 3px rgba(0,0,0,.08);
}

.training-filter-bar{
  display:flex;
  align-items:flex-end;
  gap:8px;
  padding:8px 14px;
  border-bottom:1px solid #e7e9ef;
  background:#fafbfc;
}

.training-filter-bar label{
  min-width:185px;
}

.training-filter-bar label span{
  display:block;
  margin-bottom:3px;
  color:var(--muted);
  font-size:.55rem;
  font-weight:850;
  text-transform:uppercase;
}

.training-filter-bar select{
  width:100%;
  min-height:29px;
  padding:4px 7px;
  border:1px solid #d7dbe4;
  border-radius:6px;
  background:#fff;
  font-size:.62rem;
}

.training-filter-summary{
  margin-left:auto;
  display:flex;
  align-items:baseline;
  gap:5px;
  padding-bottom:4px;
  color:var(--muted);
  font-size:.59rem;
}

.training-filter-summary strong{
  color:var(--navy);
  font-size:.85rem;
}

.training-calendar-shell{
  overflow-x:auto;
  padding:8px 10px 12px;
}

.training-week-grid{
  display:grid;
  grid-template-columns:52px repeat(7,minmax(120px,1fr));
  min-width:940px;
  border:1px solid #dfe3eb;
  border-radius:8px;
  overflow:hidden;
  background:#fff;
}

.training-day-header{
  height:31px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-bottom:1px solid #dfe3eb;
  background:#f6f7fa;
  color:var(--navy);
  font-size:.60rem;
  font-weight:900;
}

.training-time-column{
  border-right:1px solid #dfe3eb;
}

.training-time-body,
.training-day-body{
  position:relative;
  background-image:repeating-linear-gradient(
    to bottom,
    transparent 0,
    transparent 20.6px,
    #eef0f4 20.6px,
    #eef0f4 21.6px
  );
}

.training-time-body span{
  position:absolute;
  right:5px;
  transform:translateY(-50%);
  color:#8a909d;
  font-size:.49rem;
  font-weight:700;
}

.training-day-column{
  min-width:0;
  border-right:1px solid #e3e6ec;
}

.training-day-column:last-child{
  border-right:0;
}

.training-calendar-event{
  position:absolute;
  left:4px;
  right:4px;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:3px 5px;
  overflow:hidden;
  border:1px solid #ccd3df;
  border-left:4px solid var(--navy);
  border-radius:5px;
  background:#f6f8fc;
  box-shadow:0 1px 2px rgba(0,0,0,.05);
}

.training-calendar-event strong{
  overflow:hidden;
  color:var(--navy);
  font-size:.54rem;
  line-height:1.05;
  white-space:nowrap;
  text-overflow:ellipsis;
}

.training-calendar-event span{
  margin-top:2px;
  color:#656c79;
  font-size:.49rem;
  font-weight:700;
}

.training-calendar-event.group-female{
  border-left-color:var(--red);
  background:#fff7f8;
}

.training-calendar-event.group-football-7-male{
  border-left-color:#667085;
}

.training-calendar-event.group-football-8-male{
  border-left-color:#9b7b37;
}

.training-calendar-event.group-futsal-male{
  border-left-color:#5d6b85;
}

.training-team-overview{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  padding:10px 12px 14px;
}

.training-team-card{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:46px;
  padding:7px 9px;
  border:1px solid #e0e3ea;
  border-radius:7px;
  background:#fff;
}

.training-team-card-title{
  flex:0 0 180px;
  min-width:0;
}

.training-team-card-title strong{
  display:block;
  overflow:hidden;
  color:var(--navy);
  font-size:.64rem;
  white-space:nowrap;
  text-overflow:ellipsis;
}

.training-team-card-title small{
  display:block;
  margin-top:1px;
  color:var(--muted);
  font-size:.50rem;
}

.training-team-card-slots{
  display:flex;
  flex-wrap:wrap;
  gap:4px;
}

.training-team-card-slots span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:3px 5px;
  border-radius:5px;
  background:#f1f3f7;
  color:#555d6b;
  font-size:.53rem;
  font-weight:750;
}

.training-team-card-slots b{
  color:var(--navy);
}

.module-coming-card{
  min-height:170px;
  padding:18px;
}

.module-coming-card h3{
  margin:3px 0 5px;
  color:var(--navy);
}

.module-coming-card>p:last-of-type{
  max-width:760px;
  color:var(--muted);
  font-size:.67rem;
}

.coming-flow{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:18px;
}

.coming-flow span{
  padding:5px 8px;
  border-radius:6px;
  background:#f1f3f7;
  color:var(--navy);
  font-size:.57rem;
  font-weight:850;
}

.coming-flow i{
  color:#9aa0ac;
  font-style:normal;
}

@media(max-width:900px){
  .training-team-overview{
    grid-template-columns:1fr;
  }
  .training-filter-bar{
    flex-wrap:wrap;
  }
  .training-filter-summary{
    width:100%;
    margin-left:0;
  }
}

@media(max-width:620px){
  .training-overview-header{
    flex-direction:column;
  }
  .training-filter-bar label{
    min-width:0;
    width:100%;
  }
  .training-team-card{
    align-items:flex-start;
    flex-direction:column;
  }
  .training-team-card-title{
    flex-basis:auto;
  }
}


/* v0.81.1 · solapamientos y compactación de la parrilla */
.training-calendar-shell{
  padding-top:6px;
}

.training-calendar-legend{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  align-items:center;
  margin:0 0 6px;
  padding:0 2px;
}

.training-calendar-legend span{
  display:inline-flex;
  align-items:center;
  gap:4px;
  color:#626877;
  font-size:.50rem;
  font-weight:800;
}

.training-calendar-legend span::before{
  content:"";
  width:9px;
  height:9px;
  border-radius:2px;
  border-left:4px solid var(--navy);
  background:#f6f8fc;
}

.training-calendar-legend .legend-female::before{
  border-left-color:var(--red);
  background:#fff7f8;
}

.training-calendar-legend .legend-f7::before{
  border-left-color:#667085;
}

.training-calendar-legend .legend-f8::before{
  border-left-color:#9b7b37;
}

.training-calendar-legend .legend-futsal::before{
  border-left-color:#5d6b85;
}

.training-week-grid{
  min-width:820px;
}

.training-calendar-event{
  right:auto;
  box-sizing:border-box;
  padding:3px 4px;
}

.training-calendar-event strong{
  font-size:.50rem;
}

.training-calendar-event span{
  font-size:.46rem;
}

@media(max-width:760px){
  .training-week-grid{
    min-width:900px;
  }
}


/* v0.81.2 · agrupación inteligente de alta concurrencia */
.training-calendar-cluster{
  position:absolute;
  left:4px;
  right:4px;
  z-index:3;
  box-sizing:border-box;
  border:1px solid #cfd5e1;
  border-left:4px solid var(--navy);
  border-radius:6px;
  background:#eef2f8;
  box-shadow:0 1px 3px rgba(0,0,0,.06);
  overflow:visible;
}

.training-calendar-cluster summary{
  height:100%;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:2px;
  padding:4px 6px;
  list-style:none;
  cursor:pointer;
  color:var(--navy);
}

.training-calendar-cluster summary::-webkit-details-marker{
  display:none;
}

.training-calendar-cluster summary strong{
  font-size:.53rem;
  line-height:1.05;
}

.training-calendar-cluster summary span{
  color:#646b78;
  font-size:.47rem;
  font-weight:750;
}

.training-calendar-cluster[open]{
  z-index:30;
}

.training-cluster-popover{
  position:absolute;
  left:4px;
  top:calc(100% + 4px);
  z-index:40;
  min-width:180px;
  max-width:240px;
  padding:7px 8px;
  border:1px solid #ccd2dd;
  border-radius:7px;
  background:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.16);
}

.training-cluster-popover>strong{
  display:block;
  margin-bottom:4px;
  color:var(--navy);
  font-size:.58rem;
}

.training-cluster-popover ul{
  margin:0;
  padding-left:15px;
}

.training-cluster-popover li{
  margin:2px 0;
  color:#555d69;
  font-size:.54rem;
  line-height:1.2;
}

.training-day-body{
  overflow:visible;
}

.training-week-grid{
  overflow:visible;
}

.training-calendar-shell{
  overflow-x:auto;
  overflow-y:visible;
}

@media(max-width:760px){
  .training-cluster-popover{
    max-width:210px;
  }
}


/* v0.81.3 · filtro multiselección por bloques */
.training-block-filter{
  min-width:330px;
}

.training-filter-label{
  display:block;
  margin-bottom:3px;
  color:var(--muted);
  font-size:.55rem;
  font-weight:850;
  text-transform:uppercase;
}

.training-block-checks{
  display:flex;
  align-items:center;
  gap:4px;
  flex-wrap:wrap;
}

.training-block-checks label{
  min-width:0;
  width:auto;
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-height:29px;
  padding:3px 7px;
  border:1px solid #d7dbe4;
  border-radius:6px;
  background:#fff;
  cursor:pointer;
}

.training-block-checks input{
  width:13px;
  height:13px;
  margin:0;
  accent-color:var(--navy);
}

.training-block-checks label span{
  margin:0;
  color:#4f5665;
  font-size:.57rem;
  font-weight:800;
  text-transform:none;
}

.training-block-checks label:has(input:checked){
  border-color:#b9c0cf;
  background:#f5f7fb;
}

@media(max-width:900px){
  .training-block-filter{
    min-width:0;
    width:100%;
  }
}


/* v0.82.1 · acceso directo al equipo FNF pendiente */
.fnf-candidate-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}

.fnf-candidate-actions .button{
  white-space:nowrap;
}

@media(max-width:760px){
  .fnf-candidate-actions{
    justify-content:flex-start;
  }
}


/* v0.82.2 · fila de candidato FNF más legible */
.fnf-candidate-row{
  grid-template-columns:minmax(170px,.85fr) minmax(330px,2fr) auto;
  gap:18px;
}

.fnf-candidate-competition{
  min-width:0;
}

.fnf-candidate-competition .status-pill{
  display:inline-block;
  max-width:100%;
  white-space:normal;
  line-height:1.2;
}

.fnf-candidate-competition small{
  white-space:normal;
}

.fnf-candidate-actions{
  flex-wrap:nowrap;
  min-width:max-content;
}

@media(max-width:920px){
  .fnf-candidate-row{
    grid-template-columns:minmax(150px,.8fr) minmax(250px,1.6fr);
  }

  .fnf-candidate-actions{
    grid-column:1 / -1;
    justify-content:flex-start;
  }
}

@media(max-width:560px){
  .fnf-candidate-row{
    grid-template-columns:1fr;
  }

  .fnf-candidate-actions{
    grid-column:auto;
    flex-wrap:wrap;
  }
}


/* v0.82.3 · layout dedicado para candidatos FNF */
.team-season-row.fnf-candidate-row{
  display:grid;
  grid-template-columns:190px minmax(0,1fr) max-content;
  column-gap:24px;
  row-gap:6px;
  align-items:center;
  width:100%;
  box-sizing:border-box;
  padding:11px 12px;
}

.fnf-candidate-row .team-season-main{
  min-width:0;
}

.fnf-candidate-row .team-season-main strong{
  font-size:.79rem;
  line-height:1.15;
}

.fnf-candidate-row .team-season-main small{
  margin-top:2px;
}

.fnf-candidate-competition{
  min-width:0;
}

.fnf-candidate-kicker{
  display:block;
  margin-bottom:2px;
  color:var(--muted);
  font-size:.52rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.025em;
}

.fnf-candidate-competition strong{
  display:block;
  color:var(--navy);
  font-size:.72rem;
  line-height:1.25;
  white-space:normal;
  overflow-wrap:anywhere;
}

.fnf-candidate-competition small{
  margin-top:3px;
  font-size:.62rem;
  line-height:1.25;
}

.fnf-candidate-row .fnf-candidate-actions{
  display:flex;
  flex-wrap:nowrap;
  justify-content:flex-end;
  align-items:center;
  gap:7px;
  min-width:max-content;
}

.fnf-candidate-row .fnf-candidate-actions .button{
  margin:0;
  white-space:nowrap;
}

@media(max-width:820px){
  .team-season-row.fnf-candidate-row{
    grid-template-columns:minmax(145px,.7fr) minmax(0,1.3fr);
  }

  .fnf-candidate-row .fnf-candidate-actions{
    grid-column:1 / -1;
    justify-content:flex-start;
  }
}

@media(max-width:560px){
  .team-season-row.fnf-candidate-row{
    grid-template-columns:1fr;
    padding:10px 8px;
  }

  .fnf-candidate-row .fnf-candidate-actions{
    grid-column:auto;
    flex-wrap:wrap;
  }
}


/* v0.82.4 · cierre visual candidatos FNF */
.team-season-row.fnf-candidate-row{
  grid-template-columns:minmax(180px,20%) minmax(360px,1fr) max-content;
  column-gap:28px;
  padding-left:14px;
  padding-right:14px;
}

.fnf-candidate-competition strong{
  font-size:.74rem;
  line-height:1.22;
  max-width:620px;
}

.fnf-candidate-competition small{
  margin-top:2px;
}

.fnf-candidate-row .fnf-candidate-actions{
  justify-self:end;
  margin-left:auto;
}

.fnf-candidate-kicker{
  display:none !important;
}

@media(min-width:1000px){
  .fnf-candidate-competition strong{
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}

@media(max-width:999px){
  .fnf-candidate-competition strong{
    white-space:normal;
  }
}

@media(max-width:820px){
  .team-season-row.fnf-candidate-row{
    grid-template-columns:minmax(145px,.7fr) minmax(0,1.3fr);
    column-gap:18px;
  }

  .fnf-candidate-row .fnf-candidate-actions{
    justify-self:start;
    margin-left:0;
  }
}

@media(max-width:560px){
  .team-season-row.fnf-candidate-row{
    grid-template-columns:1fr;
  }
}


/* v0.82.5 · reparto final de columnas candidatos FNF */
.team-season-row.fnf-candidate-row{
  grid-template-columns:minmax(170px,18%) minmax(500px,1fr) max-content;
  column-gap:22px;
}

.fnf-candidate-competition{
  min-width:0;
  width:100%;
}

.fnf-candidate-competition strong{
  max-width:none;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
}

.fnf-candidate-row .fnf-candidate-actions{
  justify-self:end;
  align-self:center;
  margin-left:auto;
  padding-left:18px;
}

@media(min-width:1000px){
  .fnf-candidate-competition strong{
    white-space:nowrap;
  }
}

@media(max-width:920px){
  .team-season-row.fnf-candidate-row{
    grid-template-columns:minmax(150px,.55fr) minmax(0,1.45fr);
  }

  .fnf-candidate-row .fnf-candidate-actions{
    grid-column:1 / -1;
    justify-self:start;
    margin-left:0;
    padding-left:0;
  }
}

@media(max-width:560px){
  .team-season-row.fnf-candidate-row{
    grid-template-columns:1fr;
  }
}


/* v0.82.6 · acciones FNF reservadas a la derecha */
.team-season-row.fnf-candidate-row{
  display:grid;
  grid-template-columns:180px minmax(0,1fr) 230px;
  column-gap:22px;
  align-items:center;
}

.fnf-candidate-competition{
  min-width:0;
  overflow:hidden;
}

.fnf-candidate-competition strong{
  display:block;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.fnf-candidate-row .fnf-candidate-actions{
  width:230px;
  min-width:230px;
  display:flex;
  flex-wrap:nowrap;
  justify-content:flex-end;
  justify-self:end;
  gap:7px;
  margin:0;
  padding:0;
}

.fnf-candidate-row .fnf-candidate-actions .button{
  flex:0 0 auto;
}

@media(max-width:920px){
  .team-season-row.fnf-candidate-row{
    grid-template-columns:160px minmax(0,1fr);
  }

  .fnf-candidate-row .fnf-candidate-actions{
    grid-column:1 / -1;
    width:auto;
    min-width:0;
    justify-self:start;
    justify-content:flex-start;
    margin-top:4px;
  }

  .fnf-candidate-competition strong{
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
  }
}

@media(max-width:560px){
  .team-season-row.fnf-candidate-row{
    grid-template-columns:1fr;
  }

  .fnf-candidate-row .fnf-candidate-actions{
    grid-column:auto;
    flex-wrap:wrap;
  }
}


/* v0.82.7 · fila FNF aislada del grid general */
.fnf-pending-row{
  display:grid;
  grid-template-columns:180px minmax(0,1fr) auto;
  gap:24px;
  align-items:center;
  width:100%;
  box-sizing:border-box;
  padding:10px 14px;
  border-top:1px solid var(--line);
}

.fnf-pending-row:first-child{
  border-top:0;
}

.fnf-pending-team,
.fnf-pending-meta{
  min-width:0;
}

.fnf-pending-team strong,
.fnf-pending-meta strong{
  display:block;
  color:var(--navy);
}

.fnf-pending-team strong{
  font-size:.79rem;
}

.fnf-pending-team small,
.fnf-pending-meta small{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:.62rem;
  line-height:1.25;
}

.fnf-pending-meta strong{
  font-size:.73rem;
  line-height:1.22;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
}

.fnf-pending-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  margin-left:auto;
  white-space:nowrap;
}

.fnf-pending-actions .button{
  flex:0 0 auto;
  margin:0;
}

@media(min-width:1000px){
  .fnf-pending-meta strong{
    white-space:nowrap;
  }
}

@media(max-width:820px){
  .fnf-pending-row{
    grid-template-columns:150px minmax(0,1fr);
    gap:10px 16px;
  }

  .fnf-pending-actions{
    grid-column:1 / -1;
    justify-content:flex-start;
    margin-left:0;
  }

  .fnf-pending-meta strong{
    white-space:normal;
  }
}

@media(max-width:560px){
  .fnf-pending-row{
    grid-template-columns:1fr;
    gap:7px;
  }

  .fnf-pending-actions{
    grid-column:auto;
    flex-wrap:wrap;
  }
}


/* v0.83.0 · concurrencia real por intervalos */
.training-concurrency-note{
  margin:0 2px 6px;
  color:var(--muted);
  font-size:.52rem;
  line-height:1.25;
}

.training-calendar-event.concurrency-band{
  box-sizing:border-box;
  overflow:hidden;
}

.training-calendar-event.concurrency-band.compact-band{
  padding-top:2px;
  padding-bottom:2px;
}

.training-calendar-event.concurrency-band.compact-band strong{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.training-calendar-event.concurrency-band.compact-band span{
  display:none;
}

.training-calendar-cluster.concurrency{
  min-height:0;
  overflow:visible;
}

.training-calendar-cluster.concurrency summary{
  min-height:0;
  padding:2px 5px;
  overflow:hidden;
}

.training-calendar-cluster.concurrency summary strong{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.training-calendar-cluster.concurrency .training-cluster-popover li{
  display:flex;
  justify-content:space-between;
  gap:10px;
}

.training-calendar-cluster.concurrency .training-cluster-popover li strong{
  min-width:0;
  font-size:.54rem;
  overflow-wrap:anywhere;
}

.training-calendar-cluster.concurrency .training-cluster-popover li span{
  flex:0 0 auto;
  color:var(--muted);
  font-size:.51rem;
  white-space:nowrap;
}

/* v0.83.1 · edición rápida desde Por equipos */
.training-team-card-slots{display:flex;gap:5px;flex-wrap:wrap}
.training-team-slot-button{
  display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:4px 7px;
  border:1px solid var(--line);border-radius:999px;background:#fafafd;color:var(--muted);
  font:inherit;font-size:.58rem;font-weight:800;cursor:pointer
}
.training-team-slot-button b{color:var(--navy)}
.training-team-slot-button:hover{border-color:#aeb6c5;background:#f1f4f9}
.training-team-slot-button:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.quick-training-edit-modal{width:min(520px,calc(100% - 28px))}
.quick-training-edit-form{display:grid;gap:12px}
.quick-training-times{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:520px){
  .quick-training-times{grid-template-columns:1fr}
  .training-team-slot-button{min-height:36px;padding:6px 9px}
}

/* v0.84.0 · sesiones reales */
.training-sessions-tools{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:12px}
.training-session-generate-form{display:flex;gap:8px;align-items:end;flex-wrap:wrap}
.training-session-generate-form label{min-width:135px}
.training-session-list-header{display:flex;justify-content:space-between;align-items:center;gap:14px}
.training-session-date{margin-top:10px;padding:6px 8px;border-left:3px solid var(--navy);background:#f6f7fa;color:var(--navy);font-size:.63rem;font-weight:900}
.training-session-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:8px 6px;border-top:1px solid var(--line)}
.training-session-row strong{display:block;color:var(--navy);font-size:.72rem}
.training-session-row small{display:block;margin-top:2px;color:var(--muted);font-size:.62rem}
.training-session-row.cancelled{opacity:.58}
@media(max-width:720px){
  .training-sessions-tools{display:block}
  .training-session-generate-form{margin-top:10px}
  .training-session-row{grid-template-columns:1fr auto}
  .training-session-row .button{grid-column:1/-1;justify-self:start}
}


/* v0.84.1 · Sesiones alineadas con el sistema visual de Entrenamientos */
.training-sessions-card{
  padding:0;
  overflow:hidden;
  margin-bottom:12px;
}

.training-session-generate-bar{
  padding:8px 14px;
  border-top:0;
  background:#fafbfc;
}

.training-session-generate-form{
  display:flex;
  align-items:flex-end;
  gap:8px;
  flex-wrap:wrap;
}

.training-session-generate-form label{
  min-width:185px;
}

.training-session-generate-form label>span{
  display:block;
  margin-bottom:3px;
  color:var(--muted);
  font-size:.55rem;
  font-weight:850;
  text-transform:uppercase;
}

.training-session-generate-form input{
  width:100%;
  min-height:29px;
  box-sizing:border-box;
  padding:4px 7px;
  border:1px solid #d7dbe4;
  border-radius:6px;
  background:#fff;
  color:var(--navy);
  font:inherit;
  font-size:.62rem;
}

.training-session-generate-actions{
  display:flex;
  align-items:flex-end;
  padding-bottom:1px;
}

.training-session-generate-actions .button{
  min-height:29px;
  margin:0;
}

.training-session-list-card{
  overflow:hidden;
}

.training-session-list-card>header{
  padding:12px 14px 10px;
}

.training-session-list-card>header h3{
  margin:1px 0 2px;
}

.training-session-list{
  padding:0 14px 12px;
}

.training-session-date{
  margin:8px 0 0;
  padding:5px 7px;
  border-left:3px solid var(--navy);
  background:#f6f7fa;
  color:var(--navy);
  font-size:.60rem;
  font-weight:900;
}

.training-session-row{
  padding:7px 4px;
}

.training-session-row strong{
  font-size:.70rem;
}

.training-session-row small{
  font-size:.60rem;
}

@media(max-width:620px){
  .training-session-generate-form label{
    min-width:0;
    width:100%;
  }

  .training-session-generate-actions{
    width:100%;
  }

  .training-session-generate-actions .button{
    width:100%;
  }
}


/* v0.84.3 · modal de sesión coherente con ClubSync */
.training-session-edit-modal{
  width:min(520px,calc(100% - 28px));
  border-radius:10px;
  overflow:hidden;
}

.training-session-edit-modal .modal-header{
  padding:12px 14px 10px;
  border-bottom:1px solid var(--line);
  background:#fbfbfd;
}

.training-session-edit-modal .modal-header h3{
  margin:1px 0 2px;
  color:var(--navy);
  font-size:1.02rem;
  line-height:1.1;
}

.training-session-edit-modal .modal-header p:not(.card-kicker){
  margin:0;
  color:var(--muted);
  font-size:.60rem;
}

.training-session-edit-modal .modal-close{
  width:28px;
  height:28px;
  min-width:28px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--muted);
  font-size:1rem;
}

.training-session-edit-form{
  display:grid;
  gap:10px;
  padding:12px 14px 14px;
}

.training-session-edit-form .field{
  display:grid;
  gap:3px;
  margin:0;
}

.training-session-edit-form .field>span{
  color:var(--muted);
  font-size:.54rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.015em;
}

.training-session-edit-form input,
.training-session-edit-form select{
  width:100%;
  min-height:30px;
  box-sizing:border-box;
  padding:4px 7px;
  border:1px solid #d7dbe4;
  border-radius:6px;
  background:#fff;
  color:var(--navy);
  font:inherit;
  font-size:.64rem;
}

.training-session-edit-form input:focus,
.training-session-edit-form select:focus{
  outline:2px solid rgba(0,0,76,.10);
  border-color:#aeb6c5;
}

.training-session-edit-form .quick-training-times{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}

.training-session-edit-form .modal-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:7px;
  margin-top:2px;
  padding-top:10px;
  border-top:1px solid var(--line);
}

.training-session-edit-form .modal-actions .button{
  min-height:30px;
  margin:0;
}

@media(max-width:520px){
  .training-session-edit-form .quick-training-times{
    grid-template-columns:1fr;
  }

  .training-session-edit-form .modal-actions{
    justify-content:stretch;
  }

  .training-session-edit-form .modal-actions .button{
    flex:1;
  }
}

/* v0.85.0 · calendario de temporada */
.training-season-calendar{padding:8px 10px 12px}
.training-calendar-summary{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:8px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fafbfc}
.training-calendar-summary>div:first-child>strong{display:block;color:var(--navy);font-size:.72rem}
.training-calendar-summary small{display:block;margin-top:2px;color:var(--muted);font-size:.57rem}
.training-calendar-summary-stats{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.training-calendar-summary-stats span{padding:5px 7px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:.55rem;font-weight:750}
.training-calendar-summary-stats strong{color:var(--navy)}
.training-calendar-months{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.training-calendar-month{min-width:0;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}
.training-calendar-month>header{padding:6px 7px;border-bottom:1px solid var(--line);background:#f7f8fb;color:var(--navy);font-size:.61rem;font-weight:900;text-transform:capitalize}
.training-calendar-weekdays,.training-calendar-days{display:grid;grid-template-columns:repeat(7,1fr)}
.training-calendar-weekdays{padding:4px 4px 2px;color:var(--muted);font-size:.46rem;font-weight:850;text-align:center}
.training-calendar-days{gap:2px;padding:2px 4px 5px}
.calendar-day{min-width:0;aspect-ratio:1;display:grid;place-items:center;padding:0;border:1px solid transparent;border-radius:4px;background:#fff;color:#49505e;font:inherit;font-size:.50rem;cursor:pointer}
.calendar-day.weekend{background:#f7f8fa}
.calendar-day:hover{border-color:#aeb6c5}
.calendar-day.blocked{border-color:#efc3c8;background:#fff3f4;color:#9d1829;font-weight:900}
.calendar-day.type-special:not(.blocked){border-color:#d9c995;background:#fffaf0}
.calendar-day.type-holiday:not(.blocked){border-color:#efc3c8;background:#fff7f8}
.calendar-day.outside,.calendar-day.blank{background:transparent;cursor:default}
.training-team-period-button{display:inline-flex;margin-top:5px;padding:3px 6px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--navy);font:inherit;font-size:.52rem;font-weight:800;cursor:pointer}
.training-team-period-button:hover{background:#f3f5f9}
.training-calendar-day-modal{width:min(500px,calc(100% - 28px))}
.training-calendar-day-form{display:grid;gap:10px;padding:12px 14px 14px}
.training-calendar-day-form .field{display:grid;gap:3px}
.training-calendar-day-form .field>span{color:var(--muted);font-size:.54rem;font-weight:850;text-transform:uppercase}
.training-calendar-day-form input,.training-calendar-day-form select{width:100%;min-height:30px;box-sizing:border-box;padding:4px 7px;border:1px solid #d7dbe4;border-radius:6px;background:#fff;color:var(--navy);font:inherit;font-size:.64rem}
.training-calendar-trainable-check{display:flex;align-items:center;gap:7px;color:#4f5665;font-size:.62rem;font-weight:750}
.training-calendar-trainable-check input{width:14px;height:14px}
.team-training-period-note{margin:0;color:var(--muted);font-size:.57rem}
@media(max-width:1050px){.training-calendar-months{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:780px){.training-calendar-months{grid-template-columns:repeat(2,minmax(0,1fr))}.training-calendar-summary{align-items:flex-start;flex-direction:column}.training-calendar-summary-stats{justify-content:flex-start}}
@media(max-width:480px){.training-calendar-months{grid-template-columns:1fr}}

/* v0.86.0 · planificación masiva */
.training-team-overview{display:block}
.training-team-bulk-bar{display:flex;align-items:flex-end;gap:8px;margin-bottom:8px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fafbfc}
.training-team-select-all{display:flex;align-items:center;gap:5px;font-size:.58rem;font-weight:850;color:var(--navy)}
.training-team-select-all input{width:14px;height:14px}
#trainingSelectedTeamsCount{color:var(--muted);font-size:.55rem;margin-right:auto}
.training-team-bulk-fields{display:flex;align-items:flex-end;gap:6px;flex-wrap:wrap}
.training-team-bulk-fields label,.training-calendar-period-form label,.training-team-row-date{display:grid;gap:3px}
.training-team-bulk-fields span,.training-calendar-period-form span,.training-team-row-date>span{color:var(--muted);font-size:.50rem;font-weight:850;text-transform:uppercase}
.training-team-bulk-fields input,.training-calendar-period-form input,.training-team-row-date input{min-height:29px;box-sizing:border-box;padding:4px 6px;border:1px solid #d7dbe4;border-radius:6px;background:#fff;color:var(--navy);font:inherit;font-size:.58rem}
.training-team-rows{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}
.training-team-row{display:grid;grid-template-columns:26px minmax(170px,1.1fr) 128px 128px minmax(260px,2fr);gap:8px;align-items:center;min-height:44px;padding:5px 8px;border-top:1px solid var(--line)}
.training-team-row:first-child{border-top:0}
.training-team-row-select{display:grid;place-items:center}
.training-team-row-select input{width:14px;height:14px}
.training-team-row-name{min-width:0}
.training-team-row-name strong{display:block;color:var(--navy);font-size:.66rem;line-height:1.15}
.training-team-row-name small{display:block;margin-top:2px;color:var(--muted);font-size:.52rem}
.training-team-row-date input{width:100%}
.training-team-row-slots{display:flex;gap:4px;align-items:center;flex-wrap:wrap;min-width:0}
.training-calendar-period-tools{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(520px,2fr);gap:16px;align-items:end;margin-bottom:8px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:#fafbfc}
.training-calendar-period-tools>div>strong{display:block;color:var(--navy);font-size:.70rem}
.training-calendar-period-tools small{display:block;margin-top:2px;color:var(--muted);font-size:.55rem}
.training-calendar-period-form{display:grid;grid-template-columns:130px 130px minmax(200px,1fr) auto;gap:6px;align-items:end}
.training-calendar-period-list-wrap{margin-bottom:8px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}
.training-calendar-period-list-header{display:flex;justify-content:space-between;align-items:center;padding:7px 9px;background:#f7f8fb;border-bottom:1px solid var(--line)}
.training-calendar-period-list-header>strong{color:var(--navy);font-size:.61rem}
.training-calendar-period-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 9px;border-top:1px solid var(--line)}
.training-calendar-period-row:first-child{border-top:0}
.training-calendar-period-row strong{display:block;color:var(--navy);font-size:.63rem}
.training-calendar-period-row small{display:block;margin-top:2px;color:var(--muted);font-size:.54rem}
.calendar-day{cursor:default}
.calendar-day.period-blocked{background:#fff0f2;border-color:#e7aab3;color:#a1162a}
@media(max-width:1050px){
  .training-team-row{grid-template-columns:26px minmax(150px,1fr) 120px 120px minmax(210px,1.5fr)}
  .training-calendar-period-tools{grid-template-columns:1fr}
}
@media(max-width:820px){
  .training-team-bulk-bar{align-items:flex-start;flex-wrap:wrap}
  .training-team-bulk-fields{width:100%}
  .training-team-row{grid-template-columns:26px minmax(0,1fr) 120px 120px}
  .training-team-row-slots{grid-column:2/-1}
  .training-calendar-period-form{grid-template-columns:1fr 1fr}
  .training-calendar-period-form label:nth-child(3){grid-column:1/-1}
}
@media(max-width:560px){
  .training-team-row{grid-template-columns:24px 1fr}
  .training-team-row-date,.training-team-row-slots{grid-column:2}
  .training-calendar-period-form{grid-template-columns:1fr}
  .training-calendar-period-form label:nth-child(3){grid-column:auto}
}

/* v0.90.0 */
.topbar-season-controls{display:flex;align-items:center;gap:5px}.topbar-season-add{width:24px;height:24px;border:1px solid #d9dce5;border-radius:6px;background:#fff;color:var(--navy);font-weight:900;cursor:pointer}
.base-teams-card{margin-top:12px}.base-teams-header-actions{display:flex;align-items:center;gap:8px}.base-team-list{border-top:1px solid var(--line)}
.base-team-row{display:grid;grid-template-columns:42px minmax(180px,1.3fr) minmax(130px,.8fr) 80px auto;gap:10px;align-items:center;padding:8px 12px;border-top:1px solid var(--line)}.base-team-row:first-child{border-top:0}.base-team-row strong,.base-team-row span{display:block;color:var(--navy);font-size:.66rem}.base-team-row small{display:block;color:var(--muted);font-size:.52rem;margin-top:2px}.base-team-order{text-align:center;color:var(--muted);font-size:.58rem}.base-team-actions{display:flex;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.base-team-activate-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border-top:1px solid var(--line)}.base-team-activate-row:first-child{border-top:0}.base-team-activate-row strong{display:block;color:var(--navy);font-size:.66rem}.base-team-activate-row small{display:block;color:var(--muted);font-size:.52rem;margin-top:2px}
.base-training-form{display:grid;grid-template-columns:120px 105px 105px minmax(150px,1fr) auto;gap:7px;align-items:end;margin-bottom:10px}
@media(max-width:850px){.base-team-row{grid-template-columns:34px 1fr 120px}.base-team-row>div:nth-child(4){display:none}.base-team-actions{grid-column:2/-1;justify-content:flex-start}.base-training-form{grid-template-columns:1fr 1fr}}


/* v0.90.2 · editores base coherentes con ClubSync */
.clubsync-compact-editor{
  width:min(560px,calc(100% - 28px));
  border-radius:10px;
  overflow:hidden;
}

.clubsync-compact-editor .modal-header{
  padding:11px 13px 9px;
  border-bottom:1px solid var(--line);
  background:#fbfbfd;
}

.clubsync-compact-editor .modal-header h3{
  margin:1px 0 2px;
  color:var(--navy);
  font-size:1rem;
  line-height:1.1;
}

.clubsync-compact-editor .modal-header p:not(.card-kicker){
  margin:0;
  color:var(--muted);
  font-size:.58rem;
}

.clubsync-compact-editor .modal-close{
  width:28px;
  height:28px;
  min-width:28px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--muted);
  font-size:1rem;
  line-height:1;
}

.clubsync-compact-editor-form,
.clubsync-compact-editor-body{
  padding:11px 13px 13px;
}

.clubsync-compact-editor .field{
  gap:3px;
}

.clubsync-compact-editor .field>span,
.base-training-form .field>span{
  color:var(--muted);
  font-size:.52rem;
  font-weight:850;
  letter-spacing:.015em;
  text-transform:uppercase;
}

.clubsync-compact-editor input,
.clubsync-compact-editor select{
  width:100%;
  min-height:30px;
  box-sizing:border-box;
  padding:4px 7px;
  border:1px solid #d7dbe4;
  border-radius:6px;
  background:#fff;
  color:var(--navy);
  font:inherit;
  font-size:.62rem;
}

.clubsync-compact-editor input:focus,
.clubsync-compact-editor select:focus{
  outline:2px solid rgba(0,0,76,.09);
  border-color:#aeb6c5;
}

.base-training-editor-modal{
  width:min(620px,calc(100% - 28px));
}

.base-training-form{
  grid-template-columns:118px 96px 96px minmax(140px,1fr) auto;
  gap:6px;
  margin-bottom:9px;
}

.base-training-form .button{
  min-height:30px;
  white-space:nowrap;
}

.base-training-editor-modal .training-plan-list{
  border:1px solid var(--line);
  border-radius:7px;
  overflow:hidden;
}

.base-training-editor-modal .training-plan-row{
  min-height:34px;
  padding:5px 7px;
}

.base-training-editor-modal .training-plan-day{
  font-size:.58rem;
}

.base-training-editor-modal .training-plan-hours strong{
  font-size:.61rem;
}

.base-training-editor-modal .training-plan-location{
  font-size:.56rem;
}

.base-training-footer{
  display:flex;
  justify-content:flex-end;
  margin-top:9px;
  padding-top:9px;
  border-top:1px solid var(--line);
}

.base-training-footer .button{
  min-height:30px;
  margin:0;
}

.base-team-editor-modal .form-grid.two{
  gap:8px 10px;
}

.base-team-editor-modal .modal-actions{
  margin-top:3px;
  padding-top:9px;
  border-top:1px solid var(--line);
}

@media(max-width:640px){
  .base-training-form{
    grid-template-columns:1fr 1fr;
  }
  .base-training-form .field:nth-child(4){
    grid-column:1/-1;
  }
  .base-training-form .button{
    grid-column:1/-1;
  }
}

/* v0.91.0 · Federación dentro de 02 Equipos */
.federation-workspace-actions{
  display:flex;
  align-items:center;
  gap:8px;
}

.federation-workspace-actions>strong{
  min-width:22px;
  text-align:center;
}

.fnf-pending-row{
  grid-template-columns:minmax(180px,1.15fr) minmax(220px,1.45fr) minmax(120px,.8fr) auto;
}

.fnf-link-state{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:3px;
}

.fnf-link-state small{
  color:var(--muted);
  font-size:.53rem;
}

.fnf-linked-row{
  background:#fbfdfb;
}

.fnf-link-modal{
  width:min(540px,calc(100% - 28px));
}

.fnf-link-modal select{
  min-height:32px;
  font-size:.64rem;
}

.fnf-link-info{
  display:grid;
  gap:3px;
  margin-top:9px;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:7px;
  background:#f8f9fb;
}

.fnf-link-info strong{
  color:var(--navy);
  font-size:.66rem;
}

.fnf-link-info span,
.fnf-link-info small{
  color:var(--muted);
  font-size:.55rem;
}

@media(max-width:900px){
  .fnf-pending-row{
    grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);
  }
  .fnf-link-state,
  .fnf-pending-actions{
    grid-column:auto;
  }
}

@media(max-width:620px){
  .federation-workspace-card>header{
    align-items:flex-start;
  }
  .federation-workspace-actions{
    flex-direction:column;
    align-items:flex-end;
  }
  .fnf-pending-row{
    grid-template-columns:1fr;
  }
}


/* v0.91.2 · buscador de equipo en vínculo FNF */
.fnf-team-search-field{
  position:relative;
}

.fnf-team-search-field input[type="text"]{
  min-height:32px;
  padding:5px 8px;
  font-size:.64rem;
}

.fnf-team-search-field>small{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:.52rem;
}

.fnf-team-search-field input[type="text"]::placeholder{
  color:#9098a7;
}


/* v0.92.0 · 02 Equipos por áreas */
.teams-module-tabs{
  display:flex;
  gap:3px;
  margin:0 0 10px;
  padding:4px;
  overflow-x:auto;
  border:1px solid #dde1ea;
  border-radius:9px;
  background:#f4f5f8;
}
.teams-module-panel{display:grid;gap:12px}
.teams-module-panel.hidden{display:none}
.staff-season-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.staff-season-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);background:#fafbfc}
.staff-season-summary>div{display:flex;flex-direction:column;gap:2px}
.staff-season-summary span{color:var(--muted);font-size:.53rem;font-weight:800;text-transform:uppercase}
.staff-season-summary strong{color:var(--navy);font-size:.78rem}
.staff-season-list{display:grid}
.staff-season-row{display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(160px,1fr) auto;align-items:center;gap:10px;padding:8px 12px;border-top:1px solid var(--line)}
.staff-season-row:first-child{border-top:0}
.staff-season-person,.staff-season-team{display:flex;flex-direction:column;gap:2px;min-width:0}
.staff-season-person strong,.staff-season-team span{overflow:hidden;color:var(--navy);font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}
.staff-season-person small,.staff-season-team small{color:var(--muted);font-size:.53rem}
.season-staff-modal{width:min(590px,calc(100% - 28px))}
.season-staff-modal input,.season-staff-modal select{min-height:31px;font-size:.62rem}
.players-module-preview{min-height:130px}
@media(max-width:700px){
  .staff-season-card>header{align-items:flex-start}
  .staff-season-actions{width:100%;justify-content:flex-start}
  .staff-season-summary{grid-template-columns:1fr 1fr}
  .staff-season-summary>div:last-child{grid-column:1/-1}
  .staff-season-row{grid-template-columns:1fr auto}
  .staff-season-team{grid-column:1/-1;grid-row:2}
}


/* v0.93.0 · Jugadores globales de temporada */
.players-season-actions{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.season-player-modal{
  width:min(560px,calc(100% - 28px));
}
.season-player-modal input{
  min-height:31px;
  font-size:.62rem;
}
.player-goalkeeper-check{
  align-self:end;
  min-height:31px;
}
.player-season-row .staff-season-person small{
  display:block;
}
@media(max-width:700px){
  .players-season-card>header{align-items:flex-start}
  .players-season-actions{width:100%;justify-content:flex-start}
}


/* v0.94.0 · jugadores compartidos entre equipos */
.player-multi-team-note{
  margin:6px 0 0;
  padding:7px 9px;
  border:1px solid #dde1ea;
  border-radius:7px;
  background:#f8f9fb;
  color:var(--muted);
  font-size:.56rem;
  line-height:1.35;
}
.player-multi-team-note strong{
  color:var(--navy);
}


/* v0.95.0 · resolución explícita de identidad jugador/entrenador */
.identity-resolution{
  display:grid;
  gap:4px;
  margin-top:5px;
  min-width:205px;
}
.identity-resolution small{
  color:var(--muted);
  font-size:.49rem;
  line-height:1.25;
}
.identity-resolution select{
  min-height:28px;
  padding:3px 6px;
  border:1px solid #cdd3de;
  border-radius:6px;
  background:#fff;
  font-size:.54rem;
}
.status-pill.warning{
  border-color:#e4b556;
  background:#fff8e8;
  color:#825c0c;
}


/* v0.96.0 · identidad de entrenadores */
.staff-identity-resolution{
  min-width:210px;
}


/* v0.97.0 · gestión global de asignaciones */
.season-assignment-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  flex-wrap:wrap;
}
.season-assignment-actions .button{
  min-height:27px;
  padding:4px 7px;
  font-size:.5rem;
}
.assignment-action-modal{
  width:min(510px,calc(100% - 28px));
}
.assignment-mode-options{
  display:grid;
  gap:7px;
}
.assignment-mode-options label{
  display:flex;
  gap:8px;
  align-items:flex-start;
  padding:8px 9px;
  border:1px solid #dde1ea;
  border-radius:8px;
  background:#fafbfc;
  cursor:pointer;
}
.assignment-mode-options input{
  margin-top:2px;
}
.assignment-mode-options span{
  display:grid;
  gap:2px;
}
.assignment-mode-options strong{
  color:var(--navy);
  font-size:.59rem;
}
.assignment-mode-options small{
  color:var(--muted);
  font-size:.51rem;
  line-height:1.3;
}
.compact-notice{
  padding:8px 9px;
  margin:0;
  font-size:.55rem;
}
@media(max-width:760px){
  .staff-season-row{
    grid-template-columns:1fr;
    align-items:start;
  }
  .season-assignment-actions{
    justify-content:flex-start;
  }
}


/* v0.97.1 · filas compactas Jugadores / Entrenadores */
.staff-season-row{
  grid-template-columns:minmax(260px,1.35fr) minmax(210px,.95fr) auto auto;
  column-gap:14px;
  row-gap:4px;
  align-items:center;
}
.staff-season-person,
.staff-season-team{
  min-width:0;
}
.season-assignment-actions{
  justify-content:flex-end;
  flex-wrap:nowrap;
  white-space:nowrap;
}
.season-assignment-actions .button{
  min-height:28px;
  padding:4px 8px;
}
@media(max-width:900px){
  .staff-season-row{
    grid-template-columns:minmax(0,1fr) minmax(170px,.8fr) auto;
  }
  .season-assignment-actions{
    grid-column:1 / -1;
    justify-content:flex-start;
  }
}
@media(max-width:620px){
  .staff-season-row{
    grid-template-columns:1fr auto;
    gap:6px 10px;
  }
  .staff-season-team{
    grid-column:1 / -1;
  }
  .season-assignment-actions{
    grid-column:1 / -1;
  }
}


/* v0.98.0 · buscadores de jugadores y entrenadores */
.season-roster-search{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 12px;
  border-top:1px solid #e4e7ee;
  border-bottom:1px solid #e4e7ee;
  background:#fafbfc;
}
.season-roster-search-field{
  position:relative;
  display:flex;
  align-items:center;
  width:min(470px,100%);
}
.season-roster-search-field input{
  width:100%;
  min-height:34px;
  padding:6px 34px 6px 31px;
  border:1px solid #cfd5df;
  border-radius:8px;
  background:#fff;
  color:var(--navy);
  font-size:.59rem;
  outline:none;
}
.season-roster-search-field input:focus{
  border-color:#8e96aa;
  box-shadow:0 0 0 2px rgba(0,0,76,.06);
}
.season-roster-search-icon{
  position:absolute;
  left:10px;
  z-index:1;
  color:#697086;
  font-size:.78rem;
  line-height:1;
  pointer-events:none;
}
.season-roster-search-clear{
  position:absolute;
  right:7px;
  width:24px;
  height:24px;
  border:0;
  border-radius:50%;
  background:#eef0f4;
  color:#51586d;
  font-size:.78rem;
  line-height:1;
  cursor:pointer;
}
.season-roster-search-clear:hover{
  background:#e2e5eb;
}
.season-roster-search-count{
  margin-left:auto;
  white-space:nowrap;
  color:var(--muted);
  font-size:.53rem;
  font-weight:700;
}
#seasonStaffSearchEmpty,
#seasonPlayerSearchEmpty{
  margin:8px 12px;
}
@media(max-width:620px){
  .season-roster-search{
    align-items:stretch;
    flex-direction:column;
    gap:5px;
  }
  .season-roster-search-field{
    width:100%;
  }
  .season-roster-search-count{
    margin-left:0;
  }
}


/* v0.98.1 · corrección de filtrado + selector por equipo */
.staff-season-row.season-roster-filtered-out{
  display:none !important;
}
.season-roster-team-filter{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:245px;
  color:var(--muted);
  font-size:.52rem;
  font-weight:700;
}
.season-roster-team-filter select{
  flex:1;
  min-width:0;
  min-height:34px;
  padding:5px 28px 5px 8px;
  border:1px solid #cfd5df;
  border-radius:8px;
  background:#fff;
  color:var(--navy);
  font-size:.57rem;
}
@media(max-width:760px){
  .season-roster-team-filter{
    width:100%;
    min-width:0;
  }
}


/* v1.01.1 · diferenciación visual calendario */
.calendar-day.weekend.blocked:not(.period-blocked){
  border-color:#e0e3e9;
  background:#f1f3f6;
  color:#737b88;
  font-weight:700;
}
.calendar-day.period-blocked{
  border-color:#e3a4ac;
  background:#fdebed;
  color:#97172a;
  font-weight:900;
}
.calendar-day.period-blocked.weekend{
  border-color:#e3a4ac;
  background:#fdebed;
  color:#97172a;
}


/* v1.02.0 · previsualización de generación de sesiones */
.training-session-preview{
  margin:10px 0 0;
  padding:12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fafbfc;
}
.training-session-preview-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.training-session-preview-head small{
  display:block;
  margin-top:3px;
  color:var(--muted);
}
.training-session-preview-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(100px,1fr));
  gap:8px;
  margin-top:10px;
}
.training-session-preview-summary>div{
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
}
.training-session-preview-summary span{
  display:block;
  color:var(--muted);
  font-size:.5rem;
  font-weight:700;
}
.training-session-preview-summary strong{
  display:block;
  margin-top:2px;
  color:var(--navy);
  font-size:.78rem;
}
.training-session-preview-teams{
  margin-top:10px;
  border-top:1px solid var(--line);
}
.training-session-preview-team{
  display:grid;
  grid-template-columns:minmax(190px,1.4fr) auto auto auto;
  gap:10px;
  align-items:center;
  padding:7px 2px;
  border-bottom:1px solid var(--line);
  font-size:.54rem;
}
.training-session-preview-team small{
  color:var(--muted);
}
@media(max-width:760px){
  .training-session-preview-head{
    align-items:stretch;
    flex-direction:column;
  }
  .training-session-preview-summary{
    grid-template-columns:repeat(2,minmax(100px,1fr));
  }
  .training-session-preview-team{
    grid-template-columns:1fr auto;
  }
  .training-session-preview-team small{
    grid-column:1/-1;
  }
}


/* v1.03.0 · generación de temporada completa */
.training-session-generate-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
@media(max-width:620px){
  .training-session-generate-actions .button{
    flex:1 1 160px;
  }
}


/* v1.04.0 · parte de entrenamiento */
.training-session-row-actions{display:flex;align-items:center;gap:6px;justify-content:flex-end}
.training-report-modal{width:min(760px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto}
.training-report-body{padding-top:10px}
.training-report-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}
.training-report-summary>div{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fafbfc}
.training-report-summary span{display:block;color:var(--muted);font-size:.5rem;font-weight:700}
.training-report-summary strong{display:block;margin-top:2px;color:var(--navy);font-size:.82rem}
.training-report-help{margin:8px 0 10px;padding:8px 10px;border-radius:8px;background:#f5f6f8;color:#555d70;font-size:.53rem}
.training-report-participants{border-top:1px solid var(--line)}
.training-report-player{display:grid;grid-template-columns:minmax(220px,1fr) minmax(190px,260px);align-items:center;gap:12px;padding:7px 2px;border-bottom:1px solid var(--line)}
.training-report-player-name strong{display:block;color:var(--navy);font-size:.57rem}
.training-report-player-name small{display:block;margin-top:2px;color:var(--muted);font-size:.49rem}
.training-report-player select{width:100%;min-height:34px;padding:5px 8px;border:1px solid #cfd5df;border-radius:8px;background:#fff;color:var(--navy);font-size:.55rem}
.training-report-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:8px;padding:10px 0 2px;background:#fff}
@media(max-width:620px){
  .training-session-row-actions{grid-column:1/-1;width:100%}
  .training-session-row-actions .button{flex:1}
  .training-report-modal{width:calc(100vw - 12px);max-height:calc(100vh - 12px)}
  .training-report-player{grid-template-columns:1fr;gap:5px;padding:8px 0}
  .training-report-player select{min-height:40px;font-size:.62rem}
  .training-report-actions{display:grid;grid-template-columns:1fr 1fr}
  .training-report-actions [data-close-training-report]{display:none}
  #completeTrainingReportBtn{grid-column:1/-1}
}

.training-content-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.training-content-settings{display:flex;align-items:end;gap:14px;margin:12px 0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}
.training-content-settings .field{min-width:260px;margin:0}
.training-content-settings p{margin:0 0 6px;color:var(--muted);font-size:.52rem}
.training-content-area-list{border-top:1px solid var(--line)}
.training-content-area-row{display:grid;grid-template-columns:auto minmax(180px,1fr) auto auto;align-items:center;gap:12px;padding:8px 2px;border-bottom:1px solid var(--line)}
.training-content-area-row.inactive{opacity:.65}
.training-content-area-order{display:flex;gap:3px}
.training-content-area-main strong{display:block;color:var(--navy);font-size:.58rem}
.training-content-area-main small{display:block;margin-top:2px;color:var(--muted);font-size:.49rem}
.training-content-area-actions{display:flex;gap:6px}
.training-content-active-check{display:flex;align-items:center;gap:8px;margin:4px 0 12px;font-size:.56rem;font-weight:700;color:var(--navy)}
.training-content-modalities{display:flex;gap:12px;margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:8px}
.training-content-modalities legend{padding:0 4px;color:var(--muted);font-size:.5rem;font-weight:800}
.training-content-modalities label{display:flex;align-items:center;gap:6px;font-size:.54rem;color:var(--navy)}
@media(max-width:700px){
  .training-content-header{flex-direction:column}
  .training-content-settings{align-items:stretch;flex-direction:column}
  .training-content-settings .field{min-width:0}
  .training-content-area-row{grid-template-columns:auto 1fr auto}
  .training-content-area-actions{grid-column:2/-1;justify-content:flex-end}
  .training-content-modalities{flex-direction:column}
}


/* v1.05.1 · densidad visual coherente en Contenidos */
.training-content-settings select{
  min-height:30px;
  height:30px;
  padding:3px 28px 3px 8px;
  font-size:.54rem;
  line-height:1.15;
}


/* v1.05.2 · ajuste de escala y respiración visual en Contenidos */
.training-content-card{
  overflow:hidden;
}
.training-content-card > .training-content-header{
  padding:14px 16px 12px;
}
.training-content-settings{
  margin:12px 16px 14px;
  padding:12px 14px;
}
.training-content-settings select{
  min-height:34px;
  height:34px;
  padding:5px 30px 5px 9px;
  font-size:.58rem;
  line-height:1.2;
}
.training-content-area-list{
  margin:0 16px 14px;
  border:1px solid var(--line);
  border-radius:9px;
  overflow:hidden;
  background:#fff;
}
.training-content-area-row{
  padding:9px 10px;
}
.training-content-area-row:last-child{
  border-bottom:0;
}
.training-content-area-order{
  margin-right:2px;
}
.training-content-area-actions{
  padding-left:4px;
}
.training-content-area-actions .button{
  min-height:30px;
}
.training-content-area-order .icon-button{
  min-width:28px;
  min-height:28px;
}
#trainingContentAreasEmpty{
  margin:0 16px 14px;
}
@media(max-width:700px){
  .training-content-card > .training-content-header{
    padding:12px 12px 10px;
  }
  .training-content-settings{
    margin:10px 12px 12px;
    padding:10px 12px;
  }
  .training-content-area-list{
    margin:0 12px 12px;
  }
  #trainingContentAreasEmpty{
    margin:0 12px 12px;
  }
}


/* v1.06.0 · subcontenidos */
.training-content-area-block{
  border-bottom:1px solid var(--line);
}
.training-content-area-block:last-child{
  border-bottom:0;
}
.training-content-area-block > .training-content-area-row{
  border-bottom:0;
}
.training-content-subcontent-list{
  margin:0 10px 10px 48px;
  padding:6px 8px;
  border:1px solid #e5e8ee;
  border-radius:8px;
  background:#fafbfc;
}
.training-content-subcontent-row{
  display:grid;
  grid-template-columns:auto minmax(150px,1fr) auto auto;
  align-items:center;
  gap:10px;
  padding:7px 6px;
  border-bottom:1px solid #e8ebf0;
}
.training-content-subcontent-row:last-child{
  border-bottom:0;
}
.training-content-subcontent-row.inactive{
  opacity:.62;
}
.training-content-subcontent-order{
  display:flex;
  gap:3px;
}
.training-content-subcontent-name strong{
  color:var(--navy);
  font-size:.55rem;
}
.training-content-subcontent-actions{
  display:flex;
  gap:6px;
}
.training-content-subcontent-empty{
  margin:0;
  padding:5px 4px;
  color:var(--muted);
  font-size:.51rem;
}
.icon-button.tiny{
  min-width:26px;
  min-height:26px;
}
@media(max-width:700px){
  .training-content-subcontent-list{
    margin:0 8px 8px;
  }
  .training-content-subcontent-row{
    grid-template-columns:auto 1fr auto;
  }
  .training-content-subcontent-actions{
    grid-column:2/-1;
    justify-content:flex-end;
  }
}


/* v1.07.0 · taxonomía inicial y modalidad por subcontenido */
.training-content-subcontent-name small{
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:.48rem;
}
.training-content-modality-help{
  margin:6px 0 0;
  color:var(--muted);
  font-size:.5rem;
}

.training-content-modalities{flex-wrap:wrap}
.training-content-modalities label{min-width:108px}


/* v1.08.1 · edición rápida de aplicabilidad */
.training-content-subcontent-row{
  grid-template-columns:auto minmax(150px,1fr) auto auto;
}
.training-content-subcontent-quick{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  flex-wrap:wrap;
}
.training-content-subcontent-quick label{
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-height:28px;
  padding:3px 7px;
  border:1px solid #d7dce5;
  border-radius:7px;
  background:#fff;
  color:var(--navy);
  font-size:.5rem;
  font-weight:800;
  cursor:pointer;
  user-select:none;
}
.training-content-subcontent-quick label:has(input:checked){
  border-color:#b9dcca;
  background:#eef8f2;
}
.training-content-subcontent-quick input{
  width:13px;
  height:13px;
  margin:0;
}
.training-content-subcontent-active-toggle{
  margin-left:3px;
}
.training-content-subcontent-row.saving{
  opacity:.55;
  pointer-events:none;
}
@media(max-width:980px){
  .training-content-subcontent-row{
    grid-template-columns:auto minmax(140px,1fr) auto;
  }
  .training-content-subcontent-quick{
    grid-column:2/-1;
    justify-content:flex-start;
  }
  .training-content-subcontent-actions{
    grid-column:2/-1;
    justify-content:flex-end;
  }
}
@media(max-width:620px){
  .training-content-subcontent-row{
    grid-template-columns:auto 1fr;
  }
  .training-content-subcontent-quick{
    grid-column:1/-1;
    justify-content:flex-start;
  }
  .training-content-subcontent-quick label{
    min-height:34px;
    padding:5px 9px;
    font-size:.55rem;
  }
  .training-content-subcontent-actions{
    grid-column:1/-1;
  }
}


/* v1.09.0 · controles rápidos también en áreas */
.training-content-area-row{
  grid-template-columns:auto minmax(150px,1fr) auto auto;
}
.training-content-area-quick,
.training-content-subcontent-quick{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.training-content-applicability-group{
  display:flex;
  align-items:center;
  gap:5px;
  flex-wrap:wrap;
}
.training-content-active-group{
  display:flex;
  align-items:center;
  padding-left:10px;
  margin-left:2px;
  border-left:2px solid #d9dde6;
}
.training-content-area-quick label,
.training-content-subcontent-quick label{
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-height:28px;
  padding:3px 7px;
  border:1px solid #d7dce5;
  border-radius:7px;
  background:#fff;
  color:var(--navy);
  font-size:.5rem;
  font-weight:800;
  cursor:pointer;
  user-select:none;
}
.training-content-area-quick label:has(input:checked),
.training-content-subcontent-quick .training-content-applicability-group label:has(input:checked){
  border-color:#b9dcca;
  background:#eef8f2;
}
.training-content-master-toggle{
  border-color:#b5bad0 !important;
  background:#f2f3f8 !important;
}
.training-content-master-toggle:has(input:checked){
  border-color:#00004c !important;
  background:#00004c !important;
  color:#fff !important;
}
.training-content-area-quick input,
.training-content-subcontent-quick input{
  width:13px;
  height:13px;
  margin:0;
}
.training-content-area-row.saving,
.training-content-subcontent-row.saving{
  opacity:.55;
  pointer-events:none;
}
@media(max-width:1100px){
  .training-content-area-row{
    grid-template-columns:auto minmax(140px,1fr) auto;
  }
  .training-content-area-quick{
    grid-column:2/-1;
    justify-content:flex-start;
  }
  .training-content-area-actions{
    grid-column:2/-1;
    justify-content:flex-end;
  }
}
@media(max-width:620px){
  .training-content-area-row{
    grid-template-columns:auto 1fr;
  }
  .training-content-area-quick{
    grid-column:1/-1;
    justify-content:flex-start;
  }
  .training-content-area-actions{
    grid-column:1/-1;
  }
  .training-content-active-group{
    padding-left:8px;
  }
}


/* v1.09.1 · áreas inactivas plegadas */
.training-content-area-block.inactive{
  background:#f7f8fa;
}
.training-content-area-block.inactive > .training-content-area-row{
  background:#f1f3f6;
  opacity:.78;
}
.training-content-area-block.inactive .training-content-area-main strong{
  color:#7a8290;
}
.training-content-area-block.inactive .training-content-area-main small{
  color:#9aa1ad;
}
.training-content-area-block.inactive .training-content-applicability-group{
  opacity:.45;
}
.training-content-area-block.inactive .training-content-area-order,
.training-content-area-block.inactive [data-add-training-content-subcontent]{
  opacity:.45;
}
.training-content-area-block.inactive .training-content-master-toggle{
  opacity:1;
}
.training-content-area-block.collapsed .training-content-subcontent-list{
  display:none;
}
.training-content-area-block.inactive .training-content-area-actions .button:not([data-edit-training-content-area]):not([data-delete-training-content-area]){
  opacity:.45;
}
.training-content-area-block.inactive [data-training-area-toggle][data-field="is_active"]{
  pointer-events:auto;
}


/* v1.09.2 · selección múltiple fija: se retira la subtarjeta de selector */
.training-content-settings{
  display:none !important;
}


/* v1.10.0 · tipos de sesión y carga */
.training-catalog-card{
  margin-top:14px;
}
.training-catalog-list{
  margin:0 16px 14px;
  border:1px solid var(--line);
  border-radius:9px;
  overflow:hidden;
  background:#fff;
}
.training-catalog-row{
  display:grid;
  grid-template-columns:auto minmax(150px,1fr) auto auto;
  align-items:center;
  gap:10px;
  padding:9px 10px;
  border-bottom:1px solid var(--line);
}
.training-catalog-row:last-child{
  border-bottom:0;
}
.training-catalog-row.inactive{
  background:#f4f5f7;
  opacity:.72;
}
.training-catalog-name strong{
  color:var(--navy);
  font-size:.55rem;
}
@media(max-width:980px){
  .training-catalog-row{
    grid-template-columns:auto minmax(140px,1fr) auto;
  }
  .training-catalog-row .training-content-subcontent-quick{
    grid-column:2/-1;
    justify-content:flex-start;
  }
  .training-catalog-row .training-content-subcontent-actions{
    grid-column:2/-1;
  }
}


/* v1.11.0 · campos opcionales del parte */
#trainingOptionalFieldsList .training-catalog-row{
  grid-template-columns:minmax(180px,1fr) auto auto;
}
@media(max-width:980px){
  #trainingOptionalFieldsList .training-catalog-row{
    grid-template-columns:minmax(160px,1fr) auto;
  }
  #trainingOptionalFieldsList .training-content-subcontent-quick{
    grid-column:1/-1;
    justify-content:flex-start;
  }
}


/* v1.17.0 · Sesiones como calendario real por equipo */
.training-sessions-card{
  overflow:visible;
}
.training-sessions-card .training-overview-header{
  align-items:center;
  gap:16px;
}
.training-sessions-calendar-toolbar{
  display:grid;
  grid-template-columns:minmax(220px,1fr) auto auto;
  gap:12px;
  align-items:end;
  padding:14px 16px 10px;
  border-top:1px solid var(--line);
}
.training-sessions-calendar-toolbar label{
  display:grid;
  gap:5px;
}
.training-sessions-calendar-toolbar label>span{
  font-size:.67rem;
  font-weight:800;
  color:var(--muted);
}
.training-sessions-calendar-toolbar select{
  min-height:36px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  padding:6px 9px;
}
.training-sessions-month-nav{
  display:flex;
  align-items:center;
  gap:8px;
}
.training-sessions-month-nav strong{
  width:170px;
  text-align:center;
  color:var(--navy);
  font-size:.86rem;
}
.training-sessions-month-nav .button{
  width:34px;
  min-width:34px;
  padding:5px;
  font-size:1rem;
}
.training-sessions-calendar-legend{
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 16px 12px;
  color:var(--muted);
  font-size:.68rem;
}
.training-sessions-calendar-legend span{
  display:flex;
  align-items:center;
  gap:5px;
  white-space:nowrap;
}
.training-session-dot{
  width:9px;
  height:9px;
  border-radius:50%;
  display:inline-block;
}
.training-session-dot.scheduled{
  background:#f0a12b;
}
.training-sessions-month-calendar{
  padding:0 16px 16px;
}
.training-session-calendar-weekdays{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:4px;
  margin-bottom:4px;
}
.training-session-calendar-weekdays span{
  text-align:center;
  padding:5px;
  color:var(--muted);
  font-size:.62rem;
  font-weight:900;
}
.training-session-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:4px;
}
.training-session-calendar-day{
  position:relative;
  min-height:72px;
  padding:7px;
  border:1px solid #e4e7ec;
  border-radius:9px;
  background:#fff;
  color:var(--text);
  text-align:left;
}
button.training-session-calendar-day{
  cursor:pointer;
}
button.training-session-calendar-day:disabled{
  cursor:default;
}
.training-session-calendar-day.outside{
  background:#fafbfc;
  border-color:#f2f3f5;
}
.training-session-calendar-day.has-session{
  background:#fff7e8;
  border-color:#edb55f;
}
.training-session-calendar-day.has-session:hover{
  border-color:#d99121;
  box-shadow:0 0 0 2px #f7d89f55;
}
.training-session-calendar-day .day-number{
  font-weight:900;
  font-size:.72rem;
}
.training-session-calendar-day .session-marker{
  position:absolute;
  top:7px;
  right:7px;
  min-width:12px;
  height:12px;
  border-radius:999px;
  background:#f0a12b;
  color:#fff;
  display:grid;
  place-items:center;
  font-size:.48rem;
  font-weight:900;
}
.training-session-calendar-day small{
  display:block;
  margin-top:22px;
  font-size:.56rem;
  color:#7a5a24;
  font-weight:800;
}
.training-session-day-detail{
  margin:0 16px 16px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fafbfc;
  overflow:hidden;
}
.training-session-day-detail-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border-bottom:1px solid var(--line);
  background:#fff;
}
.training-session-day-detail-head strong{
  color:var(--navy);
}
.training-session-day-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:10px;
  align-items:center;
  padding:9px 12px;
  border-bottom:1px solid var(--line);
}
.training-session-day-row:last-child{
  border-bottom:0;
}
.training-session-day-row>div{
  display:grid;
  gap:2px;
}
.training-session-day-row small{
  color:var(--muted);
}
@media(max-width:760px){
  .training-sessions-calendar-toolbar{
    grid-template-columns:1fr;
    align-items:stretch;
  }
  .training-sessions-month-nav{
    justify-content:center;
  }
  .training-sessions-calendar-toolbar>.status-pill{
    justify-self:start;
  }
  .training-session-calendar-day{
    min-height:58px;
    padding:5px;
  }
  .training-session-calendar-day small{
    margin-top:14px;
    font-size:.5rem;
  }
  .training-session-day-row{
    grid-template-columns:1fr auto;
  }
  .training-session-day-row .button{
    grid-column:1/-1;
    justify-self:start;
  }
}


/* v1.17.1 · Calendario de sesiones integrado con el sistema visual ClubSync */
.training-sessions-card{
  border-radius:10px!important;
  overflow:hidden!important;
}
.training-sessions-header{
  min-height:auto!important;
  padding:12px 16px!important;
  border-bottom:1px solid var(--line)!important;
  background:#fff!important;
}
.training-sessions-header h3{
  margin:1px 0 2px!important;
  font-size:.96rem!important;
}
.training-sessions-header p:not(.card-kicker){
  margin:0!important;
  font-size:.66rem!important;
  color:var(--muted)!important;
}
.training-sessions-header .button{
  min-height:31px!important;
  padding:6px 11px!important;
  font-size:.62rem!important;
  border-radius:7px!important;
}

.training-sessions-calendar-toolbar{
  grid-template-columns:minmax(260px,1fr) auto auto!important;
  gap:10px!important;
  align-items:center!important;
  padding:10px 16px 6px!important;
  border-top:0!important;
  background:#fff!important;
}
.training-sessions-calendar-toolbar label{
  gap:3px!important;
}
.training-sessions-calendar-toolbar label>span{
  font-size:.58rem!important;
  text-transform:uppercase!important;
  letter-spacing:.03em!important;
  color:#6d7480!important;
}
.training-sessions-calendar-toolbar select{
  min-height:32px!important;
  height:32px!important;
  padding:4px 9px!important;
  border-radius:7px!important;
  font-size:.72rem!important;
}
.training-sessions-month-nav{
  gap:5px!important;
}
.training-sessions-month-nav strong{
  width:145px!important;
  font-size:.75rem!important;
}
.training-sessions-month-nav .button{
  width:31px!important;
  min-width:31px!important;
  min-height:31px!important;
  height:31px!important;
  padding:2px!important;
  border-radius:7px!important;
  font-size:.82rem!important;
}
#trainingSessionsCount{
  font-size:.56rem!important;
  padding:4px 7px!important;
}

.training-sessions-calendar-legend{
  padding:0 16px 7px!important;
  gap:6px!important;
  font-size:.57rem!important;
}
.training-session-dot{
  width:7px!important;
  height:7px!important;
}

.training-sessions-month-calendar{
  padding:0 16px 12px!important;
}
.training-session-calendar-weekdays{
  gap:3px!important;
  margin-bottom:3px!important;
}
.training-session-calendar-weekdays span{
  padding:3px 2px!important;
  font-size:.54rem!important;
  color:#59606c!important;
}
.training-session-calendar-grid{
  gap:3px!important;
}
.training-session-calendar-day{
  min-height:52px!important;
  padding:5px 6px!important;
  border-radius:7px!important;
  border-color:#e4e7ec!important;
  box-shadow:none!important;
}
.training-session-calendar-day.outside{
  background:#fafafa!important;
  border-color:#f0f1f3!important;
}
.training-session-calendar-day.has-session{
  background:#fff7e9!important;
  border-color:#efb55a!important;
}
.training-session-calendar-day.has-session:hover{
  border-color:#df971f!important;
  box-shadow:0 0 0 1px #f0bd6c!important;
}
.training-session-calendar-day .day-number{
  font-size:.63rem!important;
}
.training-session-calendar-day .session-marker{
  top:5px!important;
  right:5px!important;
  min-width:9px!important;
  width:9px!important;
  height:9px!important;
  font-size:.4rem!important;
}
.training-session-calendar-day small{
  margin-top:13px!important;
  font-size:.48rem!important;
  line-height:1!important;
}

.training-session-day-detail{
  margin:0 16px 12px!important;
  border-radius:8px!important;
  background:#fff!important;
}
.training-session-day-detail-head{
  min-height:auto!important;
  padding:8px 10px!important;
}
.training-session-day-detail-head .card-kicker{
  margin:0 0 1px!important;
  font-size:.52rem!important;
}
.training-session-day-detail-head strong{
  font-size:.74rem!important;
}
.training-session-day-detail-head .button{
  min-height:28px!important;
  padding:4px 8px!important;
  font-size:.56rem!important;
}
.training-session-day-row{
  grid-template-columns:minmax(0,1fr) auto auto!important;
  gap:8px!important;
  padding:7px 10px!important;
}
.training-session-day-row strong{
  font-size:.72rem!important;
}
.training-session-day-row small{
  font-size:.58rem!important;
}
.training-session-day-row .status-pill{
  font-size:.52rem!important;
  padding:3px 6px!important;
}
.training-session-day-row .button{
  min-height:28px!important;
  padding:4px 8px!important;
  font-size:.56rem!important;
}

@media(max-width:760px){
  .training-sessions-header{
    align-items:flex-start!important;
  }
  .training-sessions-calendar-toolbar{
    grid-template-columns:1fr!important;
    align-items:stretch!important;
    gap:7px!important;
  }
  .training-sessions-month-nav{
    justify-content:center!important;
  }
  .training-session-calendar-day{
    min-height:47px!important;
    padding:4px!important;
  }
  .training-session-calendar-day small{
    margin-top:10px!important;
    font-size:.44rem!important;
  }
  .training-session-day-row{
    grid-template-columns:1fr auto!important;
  }
}


/* v1.17.2 · Festivos y fines de semana en Sesiones */
.training-session-dot.holiday{
  background:#d94b5a!important;
}
.training-session-dot.weekend{
  background:#b9bec7!important;
}
.training-session-calendar-day.weekend{
  background:#f2f3f5!important;
  border-color:#e1e4e8!important;
}
.training-session-calendar-day.weekend .day-number{
  color:#6f7680!important;
}
.training-session-calendar-day.holiday{
  background:#fff0f1!important;
  border-color:#e3a0a8!important;
}
.training-session-calendar-day.holiday .day-number{
  color:#b51f32!important;
}
.training-session-calendar-day.holiday::after{
  content:"";
  position:absolute;
  left:5px;
  bottom:5px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#d94b5a;
}
/* Si excepcionalmente existe sesión en festivo, el festivo prevalece visualmente
   y la sesión sigue identificada por el punto naranja y la hora. */
.training-session-calendar-day.holiday.has-session{
  background:#fff0f1!important;
  border-color:#d97984!important;
}
.training-session-calendar-day.weekend.has-session:not(.holiday){
  background:#f5f1e8!important;
  border-color:#d8c69b!important;
}

/* v1.18.0 · Calendario de control de partes */
.training-reports-card{border-radius:10px;overflow:hidden}.training-reports-header{padding:12px 16px!important;border-bottom:1px solid var(--line)}
.training-reports-header h3{margin:1px 0 2px!important;font-size:.96rem!important}.training-reports-header p:not(.card-kicker){margin:0!important;font-size:.66rem!important;color:var(--muted)!important}
.training-reports-summary{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));gap:6px;padding:10px 16px 6px}
.report-summary{display:flex;align-items:baseline;gap:5px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:6px 8px}.report-summary b{font-size:.9rem;color:var(--navy)}.report-summary small{font-size:.54rem;color:var(--muted);font-weight:800}
.report-summary.sent{border-left:3px solid #2d9c59}.report-summary.draft{border-left:3px solid #f0b62d}.report-summary.pending{border-left:3px solid #d94b5a}.report-summary.future{border-left:3px solid #f0a12b}
.training-reports-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:10px;align-items:center;padding:6px 16px}.training-reports-toolbar label{display:grid;gap:3px}.training-reports-toolbar label>span{font-size:.58rem;text-transform:uppercase;letter-spacing:.03em;color:#6d7480;font-weight:800}
.training-reports-toolbar select{min-height:32px;height:32px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:4px 9px;font-size:.72rem}.training-reports-month-nav{display:flex;align-items:center;gap:5px}.training-reports-month-nav strong{width:145px;text-align:center;color:var(--navy);font-size:.75rem}.training-reports-month-nav .button{width:31px;min-width:31px;min-height:31px;height:31px;padding:2px;border-radius:7px;font-size:.82rem}
.training-reports-legend{display:flex;flex-wrap:wrap;gap:10px;padding:0 16px 7px;font-size:.56rem;color:var(--muted)}.training-reports-legend span{display:flex;align-items:center;gap:4px}
.report-state-dot{width:7px;height:7px;border-radius:50%;display:inline-block}.report-state-dot.future{background:#f0a12b}.report-state-dot.pending{background:#d94b5a}.report-state-dot.draft{background:#e2b82f}.report-state-dot.sent,.report-state-dot.noheld{background:#2d9c59}.report-state-dot.holiday{background:#d94b5a}.report-state-dot.weekend{background:#b9bec7}
.training-reports-month-calendar{padding:0 16px 12px}.training-report-calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:3px}.training-report-calendar-weekdays span{text-align:center;padding:3px 2px;font-size:.54rem;font-weight:900;color:#59606c}.training-report-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.training-report-calendar-day{position:relative;min-height:52px;padding:5px 6px;border:1px solid #e4e7ec;border-radius:7px;background:#fff;color:var(--text);text-align:left}.training-report-calendar-day.outside{background:#fafafa;border-color:#f0f1f3}.training-report-calendar-day.weekend{background:#f2f3f5}.training-report-calendar-day.holiday{background:#fff0f1;border-color:#e3a0a8}.training-report-calendar-day.state-future{background:#fff7e9;border-color:#efb55a}.training-report-calendar-day.state-pending{background:#fff0f1;border-color:#dc7580}.training-report-calendar-day.state-draft{background:#fff9df;border-color:#e6c65d}.training-report-calendar-day.state-sent,.training-report-calendar-day.state-noheld{background:#edf8f0;border-color:#75b98b}
.training-report-calendar-day .day-number{font-size:.63rem;font-weight:900}.training-report-calendar-day small{display:block;margin-top:13px;font-size:.48rem;line-height:1;color:#606775}.report-day-marker{position:absolute;top:5px;right:5px;width:9px;height:9px;border-radius:50%}.report-day-marker.future{background:#f0a12b}.report-day-marker.pending{background:#d94b5a}.report-day-marker.draft{background:#e2b82f}.report-day-marker.sent,.report-day-marker.noheld{background:#2d9c59}
.training-report-day-detail{margin:0 16px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}.training-report-day-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-bottom:1px solid var(--line)}.training-report-day-detail-head .card-kicker{margin:0 0 1px;font-size:.52rem}.training-report-day-detail-head strong{font-size:.74rem;color:var(--navy)}
.training-report-day-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:7px 10px;border-bottom:1px solid var(--line)}.training-report-day-row:last-child{border-bottom:0}.training-report-day-row>div{display:grid;gap:2px}.training-report-day-row strong{font-size:.72rem}.training-report-day-row small{font-size:.58rem;color:var(--muted)}
.status-pill.report-future{background:#fff1ce;color:#805a00}.status-pill.report-pending{background:#ffe1e4;color:#9c2030}.status-pill.report-draft{background:#fff4c4;color:#715800}.status-pill.report-sent,.status-pill.report-noheld{background:#dff2e5;color:#176439}
@media(max-width:760px){.training-reports-summary{grid-template-columns:repeat(2,1fr)}.training-reports-toolbar{grid-template-columns:1fr}.training-reports-month-nav{justify-content:center}.training-report-calendar-day{min-height:47px;padding:4px}.training-report-calendar-day small{margin-top:10px;font-size:.44rem}.training-report-day-row{grid-template-columns:1fr auto}.training-report-day-row .button{grid-column:1/-1;justify-self:start}}

/* v1.18.1 · buscadores de equipo */
.training-team-search-field input{
  width:100%;min-height:32px;height:32px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:4px 9px;font-size:.72rem
}
.training-team-search-field input:focus{outline:0;border-color:#8d95a3;box-shadow:0 0 0 2px #00004c10}
.training-sessions-calendar-toolbar{grid-template-columns:minmax(180px,.75fr) minmax(230px,1fr) auto auto!important}
.training-reports-toolbar{grid-template-columns:minmax(180px,.75fr) minmax(230px,1fr) auto!important}
@media(max-width:900px){
  .training-sessions-calendar-toolbar,.training-reports-toolbar{grid-template-columns:1fr 1fr!important}
}
@media(max-width:760px){
  .training-sessions-calendar-toolbar,.training-reports-toolbar{grid-template-columns:1fr!important}
}

/* v1.18.3 · selector de equipo con búsqueda integrada */
.training-team-combobox-field{
  min-width:0;
}
.training-team-combobox{
  position:relative;
  min-width:0;
}
.training-team-combobox>input[type="text"]{
  width:100%;
  min-height:32px;
  height:32px;
  border:1px solid var(--line);
  border-radius:7px;
  background:#fff;
  padding:4px 28px 4px 9px;
  font-size:.72rem;
}
.training-team-combobox::after{
  content:"⌄";
  position:absolute;
  right:9px;
  top:4px;
  color:#68707d;
  font-size:.82rem;
  pointer-events:none;
}
.training-team-combobox>input[type="text"]:focus{
  outline:0;
  border-color:#8d95a3;
  box-shadow:0 0 0 2px #00004c10;
}
.training-team-combobox-results{
  position:absolute;
  z-index:80;
  left:0;
  right:0;
  top:35px;
  max-height:230px;
  overflow:auto;
  border:1px solid #d9dde4;
  border-radius:7px;
  background:#fff;
  box-shadow:0 10px 24px #00000018;
  padding:4px;
}
.training-team-combobox-results button{
  display:block;
  width:100%;
  border:0;
  background:#fff;
  text-align:left;
  padding:6px 8px;
  border-radius:5px;
  font-size:.68rem;
  color:var(--text);
  cursor:pointer;
}
.training-team-combobox-results button:hover{
  background:#f1f3f7;
  color:var(--navy);
}
.training-team-combobox-empty{
  padding:7px 8px;
  font-size:.64rem;
  color:var(--muted);
}
.training-sessions-calendar-toolbar{
  grid-template-columns:minmax(280px,1fr) auto auto!important;
}
.training-reports-toolbar{
  grid-template-columns:minmax(280px,1fr) auto!important;
}
@media(max-width:760px){
  .training-sessions-calendar-toolbar,
  .training-reports-toolbar{
    grid-template-columns:1fr!important;
  }
}

/* v1.18.4 · estado cancelado y coherencia de Partes */
.training-reports-summary{
  grid-template-columns:repeat(6,minmax(86px,1fr));
}
.report-summary.cancelled{
  border-left:3px solid #9ba1aa;
}
.report-state-dot.cancelled{
  background:#9ba1aa;
}
.training-report-calendar-day.state-cancelled{
  background:#f1f2f4;
  border-color:#cdd1d7;
}
.report-day-marker.cancelled{
  background:#8f969f;
}
.status-pill.report-cancelled{
  background:#eceef1;
  color:#5f6670;
}
@media(max-width:760px){
  .training-reports-summary{
    grid-template-columns:repeat(2,1fr);
  }
}


/* v1.19.0 · acciones de gestión de partes */
.training-report-day-row .button.primary.compact{
  min-width:104px;
}

/* v1.20.0 · Seguimiento básico de partes */
.training-tracking-card{padding:18px}
.training-tracking-header{margin-bottom:12px}
.training-tracking-summary{
  display:grid;
  grid-template-columns:repeat(6,minmax(90px,1fr));
  gap:8px;
  margin-bottom:12px;
}
.tracking-summary-item{
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  padding:9px 10px;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.tracking-summary-item b{font-size:1.05rem;color:var(--navy)}
.tracking-summary-item small{font-size:.62rem;color:var(--muted)}
.tracking-summary-item.sent{border-left:3px solid #2f8f5b}
.tracking-summary-item.draft{border-left:3px solid #d6a000}
.tracking-summary-item.pending{border-left:3px solid #d70f27}
.tracking-summary-item.compliance{border-left:3px solid var(--navy)}
.training-tracking-toolbar{
  display:grid;
  grid-template-columns:minmax(280px,420px) 1fr;
  align-items:end;
  gap:12px;
  margin:8px 0 12px;
}
.training-tracking-toolbar small{color:var(--muted);font-size:.64rem;padding-bottom:7px}
.training-tracking-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px}
.training-tracking-table{width:100%;border-collapse:collapse;font-size:.68rem}
.training-tracking-table th,
.training-tracking-table td{padding:8px 9px;border-bottom:1px solid #eceef2;white-space:nowrap}
.training-tracking-table th{background:#f7f8fa;color:#5d6470;text-transform:uppercase;font-size:.56rem;letter-spacing:.03em}
.training-tracking-table .num{text-align:center}
.training-tracking-table tbody tr:hover{background:#fafbfc}
.tracking-team-link{border:0;background:none;padding:0;color:var(--navy);font-weight:700;cursor:pointer;text-align:left}
.tracking-team-link:hover{text-decoration:underline}
.tracking-sent{color:#227447;font-weight:700}
.tracking-draft{color:#8c6a00;font-weight:700}
.tracking-pending{color:#b20d20;font-weight:800}
.training-tracking-detail{
  margin-top:14px;
  border:1px solid var(--line);
  border-radius:9px;
  background:#fafbfc;
  padding:13px;
}
.training-tracking-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.training-tracking-detail-head h4{margin:2px 0 0;font-size:.9rem;color:var(--navy)}
.training-tracking-detail-meta{display:flex;gap:14px;flex-wrap:wrap;margin:9px 0;font-size:.64rem;color:var(--muted)}
.training-tracking-detail-meta b{color:var(--navy)}
.training-tracking-pending-list{display:grid;gap:6px}
.training-tracking-pending-row{
  display:grid;
  grid-template-columns:minmax(180px,1fr) auto auto;
  align-items:center;
  gap:10px;
  padding:8px 9px;
  border:1px solid #e4e6ea;
  border-radius:7px;
  background:#fff;
}
.training-tracking-pending-row>div{display:flex;flex-direction:column;gap:2px}
.training-tracking-pending-row strong{font-size:.68rem}
.training-tracking-pending-row small{font-size:.6rem;color:var(--muted)}
@media(max-width:900px){
  .training-tracking-summary{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){
  .training-tracking-summary{grid-template-columns:repeat(2,1fr)}
  .training-tracking-toolbar{grid-template-columns:1fr}
  .training-tracking-pending-row{grid-template-columns:1fr auto}
  .training-tracking-pending-row .button{grid-column:1/-1;width:100%}
}

/* v1.20.2 · detalle operativo de seguimiento */
.training-tracking-responsibles{
  margin:10px 0;
  padding:9px 10px;
  border:1px solid #e4e6ea;
  border-radius:8px;
  background:#fff;
}
.training-tracking-responsibles>small{
  display:block;
  margin-bottom:6px;
  color:var(--muted);
  font-size:.6rem;
  text-transform:uppercase;
  letter-spacing:.03em;
}
.tracking-coach-list{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.tracking-coach-chip{
  display:flex;
  flex-direction:column;
  gap:1px;
  padding:5px 8px;
  border:1px solid #dfe2e7;
  border-radius:7px;
  background:#f8f9fb;
}
.tracking-coach-chip b{
  font-size:.65rem;
  color:var(--navy);
}
.tracking-coach-chip small,
.tracking-coaches-loading{
  font-size:.58rem;
  color:var(--muted);
}
.training-tracking-kpis{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin:10px 0;
}
.training-tracking-kpis article{
  min-width:0;
  border:1px solid #e4e6ea;
  border-radius:8px;
  background:#fff;
  padding:9px 10px;
}
.training-tracking-kpis article>small{
  display:block;
  margin-bottom:4px;
  color:var(--muted);
  font-size:.57rem;
  text-transform:uppercase;
  letter-spacing:.02em;
}
.training-tracking-kpis article>strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--navy);
  font-size:.72rem;
}
.training-tracking-kpis article>span{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:.59rem;
}
@media(max-width:760px){
  .training-tracking-kpis{grid-template-columns:1fr}
}

/* v1.21.0 · Estadísticas de entrenamiento */
.training-stats-card{padding:18px}
.training-stats-header{margin-bottom:12px}
.training-stats-summary{
  display:grid;
  grid-template-columns:repeat(6,minmax(90px,1fr));
  gap:8px;
  margin-bottom:16px;
}
.stats-summary-item{
  display:flex;
  flex-direction:column;
  gap:2px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  padding:10px;
}
.stats-summary-item b{color:var(--navy);font-size:1.08rem}
.stats-summary-item small{color:var(--muted);font-size:.61rem}
.training-stats-section{
  margin-top:14px;
  border-top:1px solid #e6e8ec;
  padding-top:14px;
}
.training-stats-section>header{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:9px;
}
.training-stats-section h4{margin:2px 0 0;color:var(--navy);font-size:.88rem}
.training-stats-section>header>small{color:var(--muted);font-size:.61rem}
.training-stats-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px}
.training-stats-table{width:100%;border-collapse:collapse;font-size:.68rem}
.training-stats-table th,
.training-stats-table td{padding:8px 9px;border-bottom:1px solid #eceef2;white-space:nowrap}
.training-stats-table th{background:#f7f8fa;color:#5d6470;text-transform:uppercase;font-size:.55rem;letter-spacing:.03em}
.training-stats-table .num{text-align:center}
.training-stats-table tbody tr:hover{background:#fafbfc}
.training-stats-table tbody tr.selected{background:#f4f6fb}
.training-player-stats-header{align-items:end!important}
.training-player-stats-header .training-team-combobox-field{min-width:300px;margin:0}
.stats-player-name{font-weight:700;color:var(--navy)}
.stats-present,.stats-very-good{color:#227447;font-weight:700}
.stats-unexcused,.stats-low{color:#b20d20;font-weight:800}
@media(max-width:900px){
  .training-stats-summary{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){
  .training-stats-summary{grid-template-columns:repeat(2,1fr)}
  .training-stats-section>header{align-items:stretch;flex-direction:column}
  .training-player-stats-header .training-team-combobox-field{min-width:0;width:100%}
}

/* v1.21.1 · evolución del equipo */
.training-stats-team-detail{
  margin:0 0 14px;
  padding:12px;
  border:1px solid #e3e6ea;
  border-radius:9px;
  background:#fafbfc;
}
.training-stats-team-summary{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:7px;
  margin-bottom:10px;
}
.training-stats-team-summary>span{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:8px 9px;
  border:1px solid #e1e4e8;
  border-radius:7px;
  background:#fff;
}
.training-stats-team-summary small{font-size:.56rem;color:var(--muted);text-transform:uppercase}
.training-stats-team-summary b{font-size:.82rem;color:var(--navy)}
.training-stats-evolution-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.training-stats-evolution-card,
.training-stats-absence-card{
  border:1px solid #e1e4e8;
  border-radius:8px;
  background:#fff;
  padding:10px;
}
.training-stats-evolution-card>header,
.training-stats-absence-card>header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
}
.training-stats-evolution-card header small,
.training-stats-absence-card header small{
  color:var(--muted);
  font-size:.54rem;
  text-transform:uppercase;
}
.training-stats-evolution-card h5,
.training-stats-absence-card h5{
  margin:1px 0 0;
  color:var(--navy);
  font-size:.72rem;
}
.training-stats-month-list{display:grid;gap:5px}
.training-stats-month-row{
  display:grid;
  grid-template-columns:68px minmax(120px,1fr) 56px;
  align-items:center;
  gap:7px;
  min-height:24px;
}
.training-stats-month-row .month{font-size:.58rem;font-weight:700;color:#4e5560;text-transform:capitalize}
.training-stats-month-row>div:not(.stats-attitude-stack){display:flex;flex-direction:column;gap:2px}
.training-stats-month-row small{font-size:.5rem;color:var(--muted)}
.training-stats-month-row>strong{text-align:right;font-size:.61rem;color:var(--navy)}
.stats-mini-bar{
  display:block;
  width:100%;
  height:6px;
  border-radius:99px;
  background:#edf0f3;
  overflow:hidden;
}
.stats-mini-bar i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:var(--navy);
}
.training-stats-attitude-legend{
  display:flex;
  gap:9px;
  flex-wrap:wrap;
  margin:-2px 0 7px;
  color:var(--muted);
  font-size:.5rem;
}
.training-stats-attitude-legend b{color:var(--navy)}
.stats-attitude-stack{
  display:flex;
  height:7px;
  overflow:hidden;
  border-radius:99px;
  background:#edf0f3;
}
.stats-attitude-stack i{display:block;height:100%}
.stats-attitude-stack .mb{background:#238a57}
.stats-attitude-stack .good{background:#00004c}
.stats-attitude-stack .low{background:#d70f27}
.training-stats-absence-card{margin-top:8px}
.training-stats-absence-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}
.training-stats-absence-grid>span{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:2px 8px;
  padding:7px 8px;
  border:1px solid #eceef1;
  border-radius:7px;
}
.training-stats-absence-grid small{font-size:.57rem;color:var(--muted)}
.training-stats-absence-grid b{font-size:.8rem;color:var(--navy)}
.training-stats-absence-grid em{grid-column:1/-1;font-style:normal;font-size:.5rem;color:var(--muted)}
.training-stats-absence-grid>span.danger b{color:#b20d20}
@media(max-width:900px){
  .training-stats-team-summary{grid-template-columns:repeat(3,1fr)}
  .training-stats-evolution-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  .training-stats-team-summary{grid-template-columns:repeat(2,1fr)}
  .training-stats-absence-grid{grid-template-columns:1fr}
  .training-stats-month-row{grid-template-columns:62px 1fr 52px}
}

/* v1.21.2 · observaciones individuales */
.stats-player-open{
  border:0;
  background:none;
  padding:0;
  cursor:pointer;
  text-align:left;
}
.stats-player-open:hover{text-decoration:underline}
.training-stats-player-detail{
  margin-top:10px;
  padding:12px;
  border:1px solid #dfe3e8;
  border-radius:9px;
  background:#fafbfc;
}
.training-stats-player-detail>header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.training-stats-player-detail>header h4{
  margin:2px 0;
  color:var(--navy);
  font-size:.84rem;
}
.training-stats-player-detail>header p{
  margin:0;
  color:var(--muted);
  font-size:.61rem;
}
.training-stats-player-detail-summary{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:6px;
  margin-bottom:10px;
}
.training-stats-player-detail-summary>span{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:7px 8px;
  border:1px solid #e4e7eb;
  border-radius:7px;
  background:#fff;
}
.training-stats-player-detail-summary small{font-size:.51rem;color:var(--muted);text-transform:uppercase}
.training-stats-player-detail-summary b{font-size:.74rem;color:var(--navy)}
.training-stats-player-observations{
  border-top:1px solid #e1e4e8;
  padding-top:10px;
}
.training-stats-player-observations>header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:7px;
}
.training-stats-player-observations header small{
  color:var(--muted);
  font-size:.52rem;
  text-transform:uppercase;
}
.training-stats-player-observations h5{margin:1px 0 0;color:var(--navy);font-size:.72rem}
.training-stats-player-observations header>strong{
  min-width:25px;
  text-align:center;
  padding:3px 7px;
  border-radius:99px;
  background:#eef0f4;
  color:var(--navy);
  font-size:.62rem;
}
.training-stats-observation-list{display:grid;gap:6px}
.training-stats-observation-row{
  display:grid;
  grid-template-columns:185px 1fr;
  gap:10px;
  align-items:start;
  padding:8px 9px;
  border:1px solid #e4e7eb;
  border-radius:7px;
  background:#fff;
}
.training-stats-observation-meta{display:flex;flex-direction:column;gap:2px}
.training-stats-observation-meta strong{font-size:.6rem;color:var(--navy)}
.training-stats-observation-meta span{font-size:.54rem;color:var(--muted)}
.training-stats-observation-row p{margin:0;font-size:.62rem;line-height:1.4;color:#343941}
@media(max-width:900px){
  .training-stats-player-detail-summary{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:760px){
  .training-stats-player-detail-summary{grid-template-columns:repeat(2,1fr)}
  .training-stats-observation-row{grid-template-columns:1fr}
}

/* v1.21.3 · miniinforme visual inline de jugador */
.stats-player-row{cursor:pointer}
.stats-player-row:hover{background:#f5f7fb!important}
.stats-player-row.selected{background:#eef2f8!important}
.stats-player-inline-row>td{padding:0!important;background:#f7f8fb}
.stats-player-inline-row:hover{background:#f7f8fb!important}
.player-inline-report{
  margin:0;
  padding:14px 16px 16px;
  border-top:2px solid var(--navy);
  border-bottom:1px solid #dfe3e8;
}
.player-inline-report-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.player-inline-report-header h4{margin:2px 0;color:var(--navy);font-size:.84rem}
.player-inline-report-header p{margin:0;color:var(--muted);font-size:.59rem}
.player-report-kpis{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:6px;
  margin-bottom:8px;
}
.player-report-kpis>span{
  display:flex;flex-direction:column;gap:2px;
  border:1px solid #e2e5e9;border-radius:7px;background:#fff;padding:7px 8px;
}
.player-report-kpis small{font-size:.5rem;color:var(--muted);text-transform:uppercase}
.player-report-kpis b{font-size:.72rem;color:var(--navy)}
.player-report-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}
.player-report-card{
  border:1px solid #e1e4e8;border-radius:8px;background:#fff;padding:10px;margin-bottom:8px;
}
.player-report-card>header{
  display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;
}
.player-report-card header small{font-size:.5rem;color:var(--muted);text-transform:uppercase}
.player-report-card h5{margin:1px 0 0;font-size:.68rem;color:var(--navy)}
.player-report-card header>strong{font-size:.64rem;color:var(--navy)}
.player-stack{display:flex;width:100%;height:13px;border-radius:99px;overflow:hidden;background:#edf0f3}
.player-stack i{display:block;height:100%}
.player-stack .present{background:#238a57}
.player-stack .unavailable{background:#9b2c2c}
.player-stack .excused{background:#df9b28}
.player-stack .unexcused{background:#d70f27}
.player-stack .very-good{background:#238a57}
.player-stack .good-attitude{background:#00004c}
.player-stack .low{background:#d70f27}
.player-stack-legend{display:flex;gap:10px;flex-wrap:wrap;margin-top:7px;font-size:.51rem;color:var(--muted)}
.player-stack-legend b{color:var(--navy)}
.player-vs-team-legend{font-size:.5rem;color:var(--muted)}
.player-comparison-list{display:grid;gap:8px}
.player-compare-row{display:grid;grid-template-columns:180px 1fr;gap:10px;align-items:center}
.player-compare-label{display:flex;flex-direction:column;gap:1px}
.player-compare-label strong{font-size:.58rem;color:var(--navy)}
.player-compare-label small{font-size:.49rem;color:var(--muted)}
.player-compare-bars{display:grid;gap:3px}
.player-compare-bars>span{display:grid;grid-template-columns:1fr 52px;gap:7px;align-items:center;height:10px}
.player-compare-bars>span::before{
  content:"";grid-column:1;grid-row:1;height:6px;border-radius:99px;background:#edf0f3;
}
.player-compare-bars i{grid-column:1;grid-row:1;display:block;height:6px;border-radius:99px;z-index:1}
.player-compare-bars i.player{background:var(--navy)}
.player-compare-bars i.team{background:#8d96a3}
.player-compare-bars b{font-size:.52rem;text-align:right;color:#414852}
.player-month-list{display:grid;gap:5px}
.player-month-row{
  display:grid;grid-template-columns:70px minmax(160px,1fr) 52px 72px;
  align-items:center;gap:7px;min-height:24px
}
.player-month-row>span:first-child{font-size:.55rem;font-weight:700;color:#4d5560;text-transform:capitalize}
.player-month-bars{display:grid;gap:3px}
.player-month-bars>span{display:block;height:5px;border-radius:99px;background:#edf0f3;overflow:hidden}
.player-month-bars i{display:block;height:100%;border-radius:99px}
.player-month-bars .player-line i{background:var(--navy)}
.player-month-bars .team-line i{background:#8d96a3}
.player-month-row>strong{font-size:.55rem;text-align:right;color:var(--navy)}
.player-month-row>small{font-size:.49rem;color:var(--muted)}
.player-inline-observations{margin-top:4px}
@media(max-width:900px){
  .player-report-kpis{grid-template-columns:repeat(3,1fr)}
  .player-report-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
  .player-report-kpis{grid-template-columns:repeat(2,1fr)}
  .player-compare-row{grid-template-columns:1fr}
  .player-month-row{grid-template-columns:62px 1fr 48px}
  .player-month-row>small{grid-column:2/-1}
}

/* v1.21.4 · comparación e incidencias individuales */
.player-comparison-table{
  display:grid;
  border:1px solid #e4e7eb;
  border-radius:7px;
  overflow:hidden;
}
.player-comparison-table-head,
.player-comparison-table-row{
  display:grid;
  grid-template-columns:minmax(170px,1.25fr) 78px 78px 90px minmax(190px,1.5fr);
  align-items:center;
  gap:8px;
  min-height:34px;
  padding:5px 8px;
}
.player-comparison-table-head{
  background:#f4f5f7;
  color:#606773;
  text-transform:uppercase;
  font-size:.49rem;
  letter-spacing:.03em;
}
.player-comparison-table-row{
  border-top:1px solid #eceef1;
  background:#fff;
}
.player-comparison-table-row>strong{
  font-size:.57rem;
  color:var(--navy);
}
.player-comparison-table-row .value,
.player-comparison-table-row .difference{
  text-align:center;
  font-size:.55rem;
  font-weight:700;
}
.player-comparison-table-row.favorable .difference{color:#187348}
.player-comparison-table-row.attention .difference{color:#a36a00}
.player-comparison-graphic{display:grid;gap:3px}
.compare-track{
  display:block;
  height:6px;
  border-radius:99px;
  overflow:hidden;
  background:#edf0f3;
}
.compare-track i{display:block;height:100%;border-radius:inherit}
.compare-track i.player{background:var(--navy)}
.compare-track i.team{background:#8d96a3}
.player-comparison-note{
  margin:7px 0 0!important;
  color:var(--muted)!important;
  font-size:.49rem!important;
}
.player-report-incidents{
  margin-top:4px;
  border:1px solid #e1e4e8;
  border-radius:8px;
  background:#fff;
  padding:10px;
}
.player-report-incidents>header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:7px;
}
.player-report-incidents header small{
  display:block;
  color:var(--muted);
  font-size:.5rem;
  text-transform:uppercase;
}
.player-report-incidents h5{margin:1px 0 0;color:var(--navy);font-size:.68rem}
.player-report-incidents header>strong{
  min-width:25px;
  padding:3px 7px;
  border-radius:99px;
  background:#eef0f4;
  text-align:center;
  font-size:.58rem;
  color:var(--navy);
}
.player-incident-groups{display:grid;gap:5px}
.player-incident-group{
  border:1px solid #e7e9ed;
  border-radius:7px;
  background:#fafbfc;
  overflow:hidden;
}
.player-incident-group summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  cursor:pointer;
  list-style:none;
  padding:7px 9px;
  font-size:.57rem;
  font-weight:700;
  color:var(--navy);
}
.player-incident-group summary::-webkit-details-marker{display:none}
.player-incident-group summary::before{
  content:"›";
  margin-right:3px;
  font-size:.8rem;
  transition:transform .15s ease;
}
.player-incident-group[open] summary::before{transform:rotate(90deg)}
.player-incident-group summary span{flex:1}
.player-incident-group summary b{
  min-width:22px;
  border-radius:99px;
  background:#eceff3;
  padding:2px 6px;
  text-align:center;
  font-size:.52rem;
}
.player-incident-date-list{
  display:grid;
  border-top:1px solid #e7e9ed;
  background:#fff;
}
.player-incident-date-row{
  display:grid;
  grid-template-columns:92px 54px 1fr;
  gap:8px;
  align-items:start;
  padding:7px 9px;
  border-bottom:1px solid #f0f1f3;
}
.player-incident-date-row:last-child{border-bottom:0}
.player-incident-date-row strong{font-size:.55rem;color:var(--navy)}
.player-incident-date-row span{font-size:.54rem;color:#4e5560}
.player-incident-date-row small{font-size:.54rem;line-height:1.35;color:var(--muted)}
.player-incident-empty{padding:8px 9px;font-size:.54rem;color:var(--muted)}
@media(max-width:900px){
  .player-comparison-table-head,
  .player-comparison-table-row{
    grid-template-columns:minmax(150px,1.1fr) 66px 66px 80px minmax(150px,1.2fr);
  }
}
@media(max-width:760px){
  .player-comparison-table{overflow:auto}
  .player-comparison-table-head,
  .player-comparison-table-row{
    min-width:650px;
  }
  .player-incident-date-row{grid-template-columns:88px 48px 1fr}
}

/* v1.21.5 · refinamiento visual del informe individual */
@keyframes clubsync-alert-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(215,15,39,0);background:#fff1f3}
  50%{box-shadow:0 0 0 3px rgba(215,15,39,.14);background:#ffe5e9}
}
.player-comparison-table-row.worse .difference{
  color:#a80d20;
  background:#fff1f3;
  border:1px solid #f1bcc4;
  border-radius:6px;
  padding:4px 5px;
  animation:clubsync-alert-pulse 1.35s ease-in-out infinite;
}
.player-comparison-table-row.worse{
  background:#fffafb;
}
.player-comparison-table-row.favorable .difference{
  color:#187348;
  background:#edf8f2;
  border:1px solid #c7e8d6;
  border-radius:6px;
  padding:4px 5px;
}
.player-comparison-table-row.equal .difference{
  color:#5c6470;
}
.player-comparison-table-row.compare-attendance>strong{color:#00004c}
.player-comparison-table-row.compare-medical>strong{color:#9b2c2c}
.player-comparison-table-row.compare-excused>strong{color:#a36a00}
.player-comparison-table-row.compare-unexcused>strong{color:#d70f27}
.player-comparison-table-row.compare-attitude>strong{color:#b20d20}

.player-month-row{
  grid-template-columns:76px 1fr;
  gap:10px;
  padding:7px 8px;
  border:1px solid #eceef2;
  border-radius:7px;
  background:#fff;
}
.player-month-row .month-label{
  align-self:center;
  font-size:.58rem;
  font-weight:800;
  color:var(--navy);
  text-transform:capitalize;
}
.player-month-bars{
  display:grid;
  gap:5px;
}
.player-month-barline{
  display:grid;
  grid-template-columns:52px minmax(160px,1fr) 58px;
  align-items:center;
  gap:7px;
}
.player-month-barline>b{
  font-size:.5rem;
  color:#5a6270;
}
.player-month-barline>span{
  display:block;
  height:9px;
  border-radius:99px;
  background:#edf0f3;
  overflow:hidden;
}
.player-month-barline i{
  display:block;
  height:100%;
  border-radius:inherit;
}
.player-month-barline .player-line i{background:var(--navy)}
.player-month-barline .team-line i{background:#8d96a3}
.player-month-barline>strong{
  text-align:right;
  font-size:.54rem;
  color:#414852;
}
.player-month-row.worse{
  border-color:#efb3bc;
  background:#fff7f8;
}
.player-month-row.worse .player-month-barline:first-child>strong{
  color:#b20d20;
  background:#fff1f3;
  border-radius:5px;
  padding:2px 4px;
  animation:clubsync-alert-pulse 1.35s ease-in-out infinite;
}
.player-incident-group.observations summary{
  background:#f5f6fa;
}
.player-incident-group.observations summary span{
  color:var(--navy);
}
@media (prefers-reduced-motion:reduce){
  .player-comparison-table-row.worse .difference,
  .player-month-row.worse .player-month-barline:first-child>strong{
    animation:none!important;
  }
}
@media(max-width:760px){
  .player-month-row{grid-template-columns:68px 1fr}
  .player-month-barline{grid-template-columns:48px minmax(120px,1fr) 54px}
}

/* v1.22.0 · acción PDF en informe de jugador */
.player-inline-report-actions{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
@media(max-width:760px){
  .player-inline-report-actions{justify-content:flex-end}
}

/* v1.23.0 · estadísticas de contenidos y carga */
.training-stats-content-block{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid #e1e4e8;
}
.training-stats-content-block-head{
  margin-bottom:8px;
}
.training-stats-content-block-head h5{
  margin:2px 0 0;
  color:var(--navy);
  font-size:.78rem;
}
.training-stats-content-block-head p:last-child{
  margin:3px 0 0;
  color:var(--muted);
  font-size:.58rem;
}
.training-stats-content-grid{
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr;
  gap:8px;
}
.training-stats-content-card{
  border:1px solid #e1e4e8;
  border-radius:8px;
  background:#fff;
  padding:10px;
}
.training-stats-content-card>header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
}
.training-stats-content-card header small{
  display:block;
  color:var(--muted);
  font-size:.5rem;
  text-transform:uppercase;
}
.training-stats-content-card h6{
  margin:1px 0 0;
  color:var(--navy);
  font-size:.66rem;
}
.training-stats-content-bars{display:grid;gap:6px}
.training-stats-content-bar-row{
  display:grid;
  grid-template-columns:minmax(80px,1fr) minmax(90px,1.5fr) 28px 42px;
  gap:6px;
  align-items:center;
}
.training-stats-content-bar-row .label{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#4a515c;
  font-size:.54rem;
  font-weight:700;
}
.training-stats-content-bar-row .bar,
.training-stats-subcontent-row .bar{
  display:block;
  height:7px;
  border-radius:99px;
  overflow:hidden;
  background:#edf0f3;
}
.training-stats-content-bar-row .bar i,
.training-stats-subcontent-row .bar i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:var(--navy);
}
.training-stats-content-bar-row strong,
.training-stats-content-bar-row small{
  text-align:right;
  font-size:.52rem;
}
.training-stats-content-bar-row strong{color:var(--navy)}
.training-stats-content-bar-row small{color:var(--muted)}
.training-stats-content-evolution,
.training-stats-subcontent-card{
  margin-top:8px;
}
.training-stats-content-months{display:grid;gap:6px}
.training-stats-content-month-row{
  display:grid;
  grid-template-columns:78px 1fr;
  gap:8px;
  align-items:start;
  padding:7px 8px;
  border:1px solid #eceef1;
  border-radius:7px;
  background:#fafbfc;
}
.training-stats-content-month-row>strong{
  color:var(--navy);
  font-size:.56rem;
  text-transform:capitalize;
  padding-top:2px;
}
.training-stats-content-month-areas{
  display:grid;
  grid-template-columns:repeat(4,minmax(90px,1fr));
  gap:7px;
}
.training-stats-content-month-areas>span{
  display:grid;
  grid-template-columns:1fr 26px;
  gap:2px 5px;
  align-items:center;
}
.training-stats-content-month-areas small{
  grid-column:1/-1;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#626a75;
  font-size:.48rem;
}
.training-stats-content-month-areas i{
  height:6px;
  border-radius:99px;
  overflow:hidden;
  background:#e8ebef;
}
.training-stats-content-month-areas b{
  display:block;
  height:100%;
  border-radius:inherit;
  background:#00004c;
}
.training-stats-content-month-areas em{
  font-style:normal;
  text-align:right;
  color:var(--navy);
  font-size:.5rem;
  font-weight:700;
}
.training-stats-subcontent-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5px 10px;
}
.training-stats-subcontent-row{
  display:grid;
  grid-template-columns:minmax(130px,1.25fr) minmax(80px,1fr) 28px 40px;
  gap:6px;
  align-items:center;
  padding:5px 0;
  border-bottom:1px solid #f0f1f3;
}
.training-stats-subcontent-row>div{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:1px;
}
.training-stats-subcontent-row>div strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--navy);
  font-size:.53rem;
}
.training-stats-subcontent-row>div small{
  color:var(--muted);
  font-size:.47rem;
}
.training-stats-subcontent-row>b{
  text-align:right;
  color:var(--navy);
  font-size:.52rem;
}
.training-stats-subcontent-row>em{
  text-align:right;
  color:var(--muted);
  font-size:.49rem;
  font-style:normal;
}
@media(max-width:980px){
  .training-stats-content-grid{grid-template-columns:1fr 1fr}
  .training-stats-content-grid>.training-stats-content-card:first-child{grid-column:1/-1}
  .training-stats-content-month-areas{grid-template-columns:repeat(2,minmax(90px,1fr))}
}
@media(max-width:760px){
  .training-stats-content-grid{grid-template-columns:1fr}
  .training-stats-content-grid>.training-stats-content-card:first-child{grid-column:auto}
  .training-stats-subcontent-list{grid-template-columns:1fr}
  .training-stats-content-month-row{grid-template-columns:1fr}
}

/* v1.23.1 · colores por área en subcontenidos */
.training-stats-subcontent-row .training-area-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  margin-top:2px;
  padding:2px 5px;
  border-radius:99px;
  font-weight:700;
  line-height:1.1;
}
.training-stats-subcontent-row.area-physical .training-area-badge{
  color:#7a3d00;
  background:#fff0d9;
}
.training-stats-subcontent-row.area-technical .training-area-badge{
  color:#075f73;
  background:#e2f5f8;
}
.training-stats-subcontent-row.area-tactical .training-area-badge{
  color:#42348a;
  background:#eeeafb;
}
.training-stats-subcontent-row.area-specific .training-area-badge{
  color:#17663d;
  background:#e5f5ec;
}
.training-stats-subcontent-row.area-other .training-area-badge{
  color:#5f6670;
  background:#eef0f3;
}
.training-stats-subcontent-row.area-physical .bar i{background:#b86400}
.training-stats-subcontent-row.area-technical .bar i{background:#13849b}
.training-stats-subcontent-row.area-tactical .bar i{background:#6756b8}
.training-stats-subcontent-row.area-specific .bar i{background:#2d8b59}
.training-stats-subcontent-row.area-other .bar i{background:#7c8590}

/* v1.23.2 · estadísticas de equipo en modal */
.training-stats-open-toolbar{
  display:grid;
  grid-template-columns:minmax(280px,420px) 1fr;
  align-items:end;
  gap:14px;
  margin:0 0 12px;
  padding:10px 12px;
  border:1px solid #e5e7eb;
  border-radius:8px;
  background:#fafbfc;
}
.training-stats-open-toolbar p{
  margin:0 0 6px;
  color:var(--muted);
  font-size:.61rem;
}
#trainingStatsTeamRows tr[data-stats-team]{
  cursor:pointer;
}
#trainingStatsTeamRows tr[data-stats-team]:hover{
  background:#f5f7fb;
}
.training-stats-modal-backdrop{
  z-index:1200;
  align-items:center;
  justify-content:center;
  padding:14px;
}
.training-stats-team-modal{
  width:min(1500px,97vw);
  max-width:none;
  height:min(940px,94vh);
  max-height:94vh;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:12px;
}
.training-stats-team-modal-header{
  flex:0 0 auto;
  border-bottom:1px solid #e1e4e8;
}
.training-stats-team-modal-header h3{
  font-size:1.05rem;
}
.training-stats-team-modal-body{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding:14px 16px 18px;
  background:#f7f8fa;
}
.training-stats-team-modal-body .training-stats-team-detail{
  margin:0;
  background:#fff;
}
.training-stats-modal-players{
  margin-top:12px;
  padding:12px;
  border:1px solid #dfe3e8;
  border-radius:9px;
  background:#fff;
}
.training-stats-modal-players .training-player-stats-header{
  margin-bottom:8px;
}
.training-stats-modal-players .training-stats-table-wrap{
  max-height:none;
}
.training-stats-subcontent-list{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
.training-stats-subcontent-group{
  border:1px solid #e5e7eb;
  border-radius:8px;
  overflow:hidden;
  background:#fff;
}
.training-stats-subcontent-group>header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:7px 9px;
  background:#f7f8fa;
  border-bottom:1px solid #e8eaee;
}
.training-stats-subcontent-group>header small{
  color:var(--muted);
  font-size:.49rem;
}
.training-stats-subcontent-group>div{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 12px;
  padding:2px 9px 6px;
}
.training-stats-subcontent-group .training-stats-subcontent-row{
  grid-template-columns:minmax(130px,1.25fr) minmax(80px,1fr) 28px 40px;
  padding:6px 0;
}
.training-stats-subcontent-group .training-stats-subcontent-row>div small{
  display:none;
}
@media(max-width:980px){
  .training-stats-open-toolbar{grid-template-columns:1fr}
  .training-stats-subcontent-group>div{grid-template-columns:1fr}
}
@media(max-width:760px){
  .training-stats-modal-backdrop{padding:0}
  .training-stats-team-modal{
    width:100vw;
    height:100vh;
    max-height:100vh;
    border-radius:0;
  }
  .training-stats-team-modal-body{padding:10px}
}

/* v1.24.0 · acciones PDF y navegación interna */
.training-stats-team-modal-actions{
  display:flex;
  align-items:center;
  gap:9px;
}
.training-stats-team-pdf-btn{
  min-width:145px;
  height:36px;
  padding:0 16px;
  font-weight:800;
}
.player-inline-report-actions{gap:8px}
.player-report-action-btn{
  min-width:92px;
  height:34px;
  padding:0 14px;
  font-size:.58rem;
  font-weight:800;
}
.player-report-mail-btn{min-width:150px}
@media(max-width:760px){
  .training-stats-team-modal-actions{gap:5px}
  .training-stats-team-pdf-btn{min-width:112px;padding:0 10px}
  .player-inline-report-actions{width:100%;justify-content:flex-start}
  .player-report-action-btn{min-width:88px}
  .player-report-mail-btn{min-width:138px}
}

/* v1.25.0 · evolución y comparativa avanzada */
.training-stats-advanced-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:8px;
}
.training-stats-incident-legend,
.training-stats-load-legend{
  display:flex;
  gap:9px;
  align-items:center;
  color:var(--muted);
  font-size:.49rem;
}
.training-stats-incident-legend b{color:var(--navy)}
.training-stats-triplet{
  display:grid;
  gap:3px;
}
.training-stats-triplet>span{
  position:relative;
  display:flex;
  align-items:center;
  height:7px;
  border-radius:99px;
  overflow:visible;
  background:#edf0f3;
}
.training-stats-triplet>span i{
  display:block;
  height:100%;
  border-radius:99px;
}
.training-stats-triplet>span small{
  position:absolute;
  left:calc(100% + 5px);
  white-space:nowrap;
  color:var(--muted);
  font-size:.43rem;
}
.training-stats-triplet .injury{background:#c75f3a}
.training-stats-triplet .excused{background:#bf8a1d}
.training-stats-triplet .unexcused{background:#c13241}
.training-stats-load-stack{
  display:flex;
  height:9px;
  overflow:hidden;
  border-radius:99px;
  background:#edf0f3;
}
.training-stats-load-stack i{display:block;height:100%}
.training-stats-load-stack .low{background:#91b5a0}
.training-stats-load-stack .medium{background:#d7a943}
.training-stats-load-stack .high{background:#c45a4f}
.training-stats-player-comparison{
  margin:0 0 10px;
  padding:10px 12px;
  border:1px solid #dfe3e8;
  border-radius:9px;
  background:#fafbfc;
}
.training-stats-player-comparison>header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:8px;
}
.training-stats-player-comparison h5{
  margin:1px 0 0;
  color:var(--navy);
  font-size:.68rem;
}
.training-stats-player-comparison>header small{
  color:var(--muted);
  font-size:.49rem;
  text-transform:uppercase;
}
.training-stats-player-comparison-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:7px;
}
.training-stats-player-comparison-grid>span{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:8px 9px;
  border:1px solid #e6e8ec;
  border-radius:7px;
  background:#fff;
}
.training-stats-player-comparison-grid small{
  color:var(--muted);
  font-size:.48rem;
}
.training-stats-player-comparison-grid b{
  color:var(--navy);
  font-size:.82rem;
}
.training-stats-player-comparison-grid em{
  color:#616976;
  font-size:.47rem;
  font-style:normal;
}
@media(max-width:980px){
  .training-stats-advanced-grid{grid-template-columns:1fr}
  .training-stats-player-comparison-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .training-stats-player-comparison-grid{grid-template-columns:1fr}
}

/* v1.25.1 · modal de estadísticas organizado por pestañas */
.training-stats-team-tabs{
  flex:0 0 auto;
  display:flex;
  gap:4px;
  padding:8px 14px 0;
  border-bottom:1px solid #dfe3e8;
  background:#fff;
}
.training-stats-team-tabs button{
  appearance:none;
  border:0;
  border-bottom:3px solid transparent;
  background:transparent;
  padding:10px 17px 9px;
  color:#5e6672;
  font:inherit;
  font-size:.69rem;
  font-weight:800;
  cursor:pointer;
}
.training-stats-team-tabs button:hover{
  color:var(--navy);
  background:#f7f8fb;
}
.training-stats-team-tabs button.active{
  color:var(--navy);
  border-bottom-color:var(--red);
  background:#f9fafc;
}
.training-stats-tab-panel{
  display:block;
}
.training-stats-tab-panel[hidden]{
  display:none !important;
}
.training-stats-tab-intro{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
  padding:2px 2px 8px;
  border-bottom:1px solid #e4e7eb;
}
.training-stats-tab-intro small{
  color:var(--red);
  font-size:.53rem;
  font-weight:800;
  text-transform:uppercase;
}
.training-stats-tab-intro h4{
  margin:2px 0 3px;
  color:var(--navy);
  font-size:.9rem;
}
.training-stats-tab-intro p{
  margin:0;
  color:var(--muted);
  font-size:.62rem;
}
.training-stats-team-summary-large{
  grid-template-columns:repeat(5,1fr);
  gap:9px;
  margin-bottom:12px;
}
.training-stats-team-summary-large>span{
  min-height:74px;
  justify-content:center;
  padding:12px;
}
.training-stats-team-summary-large small{
  font-size:.55rem;
}
.training-stats-team-summary-large b{
  font-size:1.15rem;
}
.training-stats-summary-absence{
  margin-top:0;
}
.training-stats-wide-card{
  margin-bottom:10px;
  padding:12px 14px;
}
.training-stats-wide-card>header h5{
  font-size:.74rem;
}
.training-stats-month-list-large{
  gap:8px;
}
.training-stats-month-list-large .training-stats-month-row{
  min-height:34px;
  grid-template-columns:90px minmax(0,1fr) 72px;
  gap:12px;
  padding:5px 0;
}
.training-stats-month-list-large .training-stats-month-row .month{
  font-size:.59rem;
  font-weight:800;
}
.training-stats-month-list-large .training-stats-month-row strong{
  font-size:.58rem;
}
.training-stats-month-list-large .stats-mini-bar,
.training-stats-month-list-large .stats-attitude-stack,
.training-stats-month-list-large .training-stats-load-stack{
  min-height:11px;
}
.training-stats-month-list-large .training-stats-triplet>span{
  height:9px;
}
.training-stats-content-grid-readable{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.training-stats-content-grid-readable .training-stats-content-card{
  min-height:155px;
  padding:13px;
}
.training-stats-content-grid-readable .training-stats-content-card h6{
  font-size:.7rem;
}
.training-stats-content-grid-readable .training-stats-content-bar-row{
  grid-template-columns:minmax(105px,1.15fr) minmax(120px,1.5fr) 30px 44px;
  gap:7px;
}
.training-stats-content-grid-readable .training-stats-content-bar-row .label{
  font-size:.56rem;
}
.training-stats-content-grid-readable .training-stats-content-bar-row .bar{
  height:9px;
}
.training-stats-content-load-card{
  margin-top:10px;
}
.training-stats-content-evolution,
.training-stats-subcontent-card{
  margin-top:10px;
}
.training-stats-subcontent-group>div{
  grid-template-columns:1fr;
}
.training-stats-subcontent-group .training-stats-subcontent-row{
  grid-template-columns:minmax(180px,1.4fr) minmax(160px,1fr) 34px 46px;
  gap:9px;
}
.training-stats-subcontent-group .training-stats-subcontent-row>div strong{
  font-size:.57rem;
}
.training-stats-player-comparison-grid{
  gap:9px;
}
.training-stats-player-comparison-grid>span{
  min-height:74px;
  padding:10px 11px;
}
.training-stats-modal-players{
  margin:0;
  padding:0;
  border:0;
  background:transparent;
}
@media(max-width:1050px){
  .training-stats-team-summary-large{grid-template-columns:repeat(3,1fr)}
  .training-stats-content-grid-readable{grid-template-columns:1fr}
}
@media(max-width:760px){
  .training-stats-team-tabs{
    overflow-x:auto;
    padding-left:8px;
    padding-right:8px;
  }
  .training-stats-team-tabs button{
    flex:0 0 auto;
    padding-left:13px;
    padding-right:13px;
  }
  .training-stats-team-summary-large{grid-template-columns:1fr 1fr}
  .training-stats-month-list-large .training-stats-month-row{
    grid-template-columns:72px minmax(0,1fr) 58px;
    gap:7px;
  }
}

/* v1.30.0 · Partes integrado dentro de Seguimiento */
.training-tracking-hint{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:8px 0 12px;
  padding:8px 10px;
  border:1px solid #e5e7eb;
  border-radius:8px;
  background:#fafbfc;
}
.training-tracking-hint span{
  color:var(--navy);
  font-size:.67rem;
  font-weight:700;
}
.training-tracking-hint small{
  color:var(--muted);
  font-size:.6rem;
}
.training-tracking-table tbody tr{
  cursor:pointer;
}
.training-tracking-table tbody tr.selected{
  background:#f0f3fa;
  box-shadow:inset 3px 0 0 var(--navy);
}
.training-tracking-table tbody tr.selected:hover{
  background:#edf1f8;
}
.training-tracking-calendar-block{
  margin-top:14px;
  padding-top:13px;
  border-top:1px solid #dfe3e8;
}
.training-tracking-calendar-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:8px;
}
.training-tracking-calendar-head h5{
  margin:2px 0 0;
  color:var(--navy);
  font-size:.78rem;
}
.training-tracking-calendar-summary{
  margin:0 0 9px;
}
.training-tracking-calendar-legend{
  padding:0 0 8px;
}
.training-tracking-calendar-block .training-reports-month-calendar{
  padding:0;
}
.training-tracking-calendar-block .training-report-day-detail{
  margin:10px 0 0;
}
@media(max-width:760px){
  .training-tracking-hint{
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }
  .training-tracking-calendar-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .training-tracking-calendar-head .training-reports-month-nav{
    width:100%;
    justify-content:center;
  }
}

/* v1.30.1 · detalle de Seguimiento justo debajo del equipo */
.training-tracking-detail-row>td{
  padding:0!important;
  white-space:normal!important;
  background:#f7f9fc;
  border-bottom:1px solid #d8dde6!important;
}
.training-tracking-detail-row:hover{
  background:transparent!important;
}
.training-tracking-detail-row .training-tracking-detail{
  margin:0;
  padding:14px 16px 16px;
  border:0;
  border-radius:0;
  background:#f7f9fc;
  box-shadow:inset 0 1px 0 #e3e7ed;
}
.training-tracking-table tbody tr.selected{
  border-bottom:0;
}
.training-tracking-table tbody tr.selected td{
  border-bottom-color:#d8dde6;
}
@media(max-width:760px){
  .training-tracking-detail-row .training-tracking-detail{
    padding:11px 10px 13px;
  }
}

/* v1.30.2 · Seguimiento inicialmente plegado + cabecera visible al abrir */
.training-tracking-table tbody tr[data-training-tracking-team]{
  scroll-margin-top:116px;
}

/* v1.31.0 · Accesos de entrenadores */
.training-access-card{overflow:hidden}
.training-access-legend{display:flex;flex-wrap:wrap;gap:12px;padding:0 16px 10px;color:var(--muted);font-size:.58rem}
.training-access-legend span{display:flex;align-items:center;gap:5px}
.training-access-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.training-access-dot.active{background:#2d9c59}
.training-access-dot.pending{background:#d7a623}
.training-access-dot.disabled{background:#9aa2ad}
.training-access-team-list{border-top:1px solid var(--line)}
.training-access-team{border-bottom:1px solid var(--line)}
.training-access-team:last-child{border-bottom:0}
.training-access-team-head{width:100%;border:0;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;text-align:left;color:var(--text);cursor:pointer}
.training-access-team-head:hover{background:#fafbfc}
.training-access-team.open>.training-access-team-head{background:#f4f6fa}
.training-access-team-head>div:first-child{display:grid;gap:2px}
.training-access-team-head strong{font-size:.75rem;color:var(--navy)}
.training-access-team-head small{font-size:.57rem;color:var(--muted)}
.training-access-team-summary{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.access-mini{padding:3px 6px;border-radius:999px;font-size:.52rem;font-weight:800}
.access-mini.active{background:#e3f4e8;color:#176439}
.access-mini.pending{background:#fff4ca;color:#715800}
.access-mini.disabled{background:#eceef1;color:#626976}
.training-access-chevron{font-size:.85rem;color:#727987;transition:transform .15s}
.training-access-team.open .training-access-chevron{transform:rotate(180deg)}
.training-access-team-body{padding:8px 12px 12px;background:#f7f9fc;display:grid;gap:7px}
.training-access-coach{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(115px,.8fr) minmax(190px,1.2fr) minmax(130px,.85fr) 92px minmax(135px,.9fr);gap:9px;align-items:center;padding:9px 10px;border:1px solid #e0e4eb;border-radius:9px;background:#fff}
.training-access-person{display:grid;gap:2px;min-width:0}
.training-access-person strong{font-size:.69rem;color:var(--navy)}
.training-access-person span{font-size:.55rem;color:var(--muted)}
.training-access-status{display:grid;justify-items:start;gap:3px}
.status-pill.access-active{background:#dff2e5;color:#176439}
.status-pill.access-pending{background:#fff4c4;color:#715800}
.status-pill.access-disabled{background:#eceef1;color:#626976}
.training-access-warning{font-size:.49rem;color:#916400;font-weight:700}
.training-access-metric{display:grid;gap:2px;min-width:0}
.training-access-metric small{font-size:.49rem;text-transform:uppercase;letter-spacing:.03em;color:#7a8190;font-weight:800}
.training-access-metric strong{font-size:.61rem;color:#303744;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.training-access-metric>span{font-size:.5rem;color:#777e8a}
.training-access-email strong{font-size:.57rem}
@media(max-width:1050px){
  .training-access-coach{grid-template-columns:1.2fr .8fr 1.2fr .9fr}
  .training-access-coach .training-access-metric:nth-last-child(-n+2){grid-column:auto}
}
@media(max-width:760px){
  .training-access-team-head{align-items:flex-start;padding:9px 10px}
  .training-access-team-summary{max-width:55%}
  .training-access-coach{grid-template-columns:1fr 1fr;padding:9px}
  .training-access-person,.training-access-email{grid-column:1/-1}
  .training-access-status{grid-column:1/-1}
  .training-access-metric strong{white-space:normal}
}

/* v1.31.1 · correo de persona visible antes de crear el acceso */
.training-access-email-warning{
  color:#9b5f00!important;
  font-weight:750;
}

/* v1.31.4 · confirmación ClubSync para eliminar entrenador */
.cs-confirm-backdrop{
  position:fixed;
  inset:0;
  z-index:120;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(16,24,40,.52);
  backdrop-filter:blur(2px);
}
.cs-confirm-dialog{
  width:min(100%,520px);
  overflow:hidden;
  border:1px solid #dfe3ea;
  border-radius:14px;
  background:#fff;
  box-shadow:0 20px 55px rgba(15,23,42,.28);
}
.cs-confirm-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:15px 17px 13px;
  border-bottom:1px solid #e5e7eb;
}
.cs-confirm-header.danger{
  background:#fff1f2;
  border-bottom-color:#efcbd0;
}
.cs-confirm-kicker{
  display:block;
  margin-bottom:2px;
  color:#9d2735;
  font-size:.58rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.cs-confirm-header h3{
  margin:0;
  color:#00004c;
  font-size:.94rem;
}
.cs-confirm-close{
  width:30px;
  height:30px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#6b7280;
  font-size:1.2rem;
  line-height:1;
  cursor:pointer;
}
.cs-confirm-close:hover{background:#ffffffaa;color:#1f2937}
.cs-confirm-body{padding:16px 17px 13px}
.cs-confirm-lead{
  margin:0 0 12px;
  color:#232936;
  font-size:.78rem;
  font-weight:700;
  line-height:1.45;
}
.cs-confirm-warning{
  margin-bottom:11px;
  padding:10px 11px;
  border:1px solid #efcbd0;
  border-radius:9px;
  background:#fff7f8;
}
.cs-confirm-warning strong{
  color:#922435;
  font-size:.68rem;
}
.cs-confirm-warning p{
  margin:3px 0 0;
  color:#6c3b43;
  font-size:.64rem;
  line-height:1.45;
}
.cs-confirm-meta{
  margin:0 0 8px;
  color:#4b5563;
  font-size:.66rem;
}
.cs-confirm-note{
  margin:0;
  color:#6b7280;
  font-size:.62rem;
}
.cs-confirm-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding:12px 17px 15px;
  border-top:1px solid #eceef2;
  background:#fafbfc;
}
.cs-confirm-actions .button{min-width:120px}
@media(max-width:560px){
  .cs-confirm-backdrop{align-items:end;padding:10px}
  .cs-confirm-dialog{border-radius:14px 14px 10px 10px}
  .cs-confirm-actions{display:grid;grid-template-columns:1fr 1fr}
  .cs-confirm-actions .button{min-width:0}
}

/* v1.32.0 · activación de accesos de entrenador */
.training-access-coach{
  grid-template-columns:minmax(145px,1.1fr) minmax(110px,.72fr) minmax(180px,1.15fr) minmax(125px,.8fr) 88px minmax(130px,.9fr) auto;
}
.training-access-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
}
.training-access-actions .button{
  white-space:nowrap;
}
.coach-access-dialog .cs-confirm-header{
  background:#f4f6fb;
}
.coach-access-kicker{
  color:#00004c;
}
.coach-access-confirm-data,
.coach-access-credentials>div{
  display:grid;
  gap:3px;
  margin:10px 0;
  padding:9px 10px;
  border:1px solid #e2e6ed;
  border-radius:9px;
  background:#f8f9fb;
}
.coach-access-confirm-data span,
.coach-access-credentials span{
  color:#737b88;
  font-size:.54rem;
  font-weight:800;
  text-transform:uppercase;
}
.coach-access-confirm-data strong,
.coach-access-credentials strong{
  color:#00004c;
  font-size:.7rem;
}
.coach-access-credentials code{
  display:block;
  width:100%;
  overflow:auto;
  padding:7px 8px;
  border-radius:7px;
  background:#fff;
  color:#111827;
  font-size:.76rem;
  font-weight:800;
  user-select:all;
}
.coach-access-success{
  margin-bottom:10px;
  padding:9px 10px;
  border:1px solid #cbe5d3;
  border-radius:9px;
  background:#edf8f0;
  color:#176439;
  font-size:.68rem;
  font-weight:800;
}
@media(max-width:1050px){
  .training-access-coach{
    grid-template-columns:1.2fr .8fr 1.2fr .9fr;
  }
  .training-access-actions{
    grid-column:1/-1;
    justify-content:flex-end;
  }
}
@media(max-width:760px){
  .training-access-coach{
    grid-template-columns:1fr 1fr;
  }
  .training-access-actions{
    grid-column:1/-1;
  }
  .training-access-actions .button{
    width:100%;
  }
}


/* v1.34.2 · Accesos coherentes */
.access-mini.sports-off{
  background:#eef0f3;
  border-color:#c9ced6;
  color:#59616d;
}
.training-access-source-note{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:5px 9px;
  border:1px solid #d7dbe2;
  border-radius:7px;
  background:#f7f8fa;
  color:#626b77;
  font-size:12px;
  font-weight:700;
  line-height:1.15;
  white-space:nowrap;
}
@media(max-width:680px){
  .training-access-source-note{
    white-space:normal;
    text-align:center;
  }
}


/* v1.34.3 · Accesos más compactos */
.training-access-person-email{
  display:block;
  margin-top:2px;
  color:#616a76;
  font-size:12px;
  font-weight:600;
  line-height:1.2;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.training-access-coach{
  grid-template-columns:
    minmax(250px,2.2fr)
    minmax(145px,1fr)
    minmax(120px,.85fr)
    minmax(135px,.95fr)
    210px;
  column-gap:18px;
  align-items:center;
}
.training-access-actions{
  width:210px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  justify-self:end;
}
.access-action-btn{
  width:100%;
  min-width:0;
  justify-content:center;
  white-space:nowrap;
}
.training-access-source-note{
  grid-column:1 / -1;
  width:100%;
  justify-content:center;
}
@media(max-width:1100px){
  .training-access-coach{
    grid-template-columns:
      minmax(220px,1.9fr)
      minmax(135px,.9fr)
      minmax(110px,.8fr)
      minmax(125px,.9fr)
      190px;
    column-gap:14px;
  }
  .training-access-actions{
    width:190px;
  }
}
@media(max-width:820px){
  .training-access-coach{
    grid-template-columns:1fr 1fr;
    row-gap:10px;
  }
  .training-access-person{
    grid-column:1 / -1;
  }
  .training-access-actions{
    width:100%;
    grid-column:1 / -1;
    justify-self:stretch;
  }
}
@media(max-width:680px){
  .training-access-person-email{
    white-space:normal;
    overflow-wrap:anywhere;
  }
}


/* v1.34.4 · rejilla fija de accesos */
.training-access-status,
.training-access-metric{
  justify-self:start;
  min-width:0;
}
.training-access-actions .button:disabled{
  opacity:.55;
  cursor:not-allowed;
}

/* v1.34.7 · correo saliente alineado con el sistema visual de ClubSync */
.mail-config-card{margin-top:18px;overflow:hidden}
.mail-config-header{align-items:flex-start}
.mail-config-header>div{max-width:760px}
.mail-config-form{padding:0}
.mail-config-section{padding:14px 16px;border-top:1px solid var(--line)}
.mail-config-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:11px}
.mail-config-section-head>div{display:flex;align-items:center;gap:10px;min-width:0}
.mail-config-section-head strong{display:block;color:var(--navy);font-size:.72rem;line-height:1.2}
.mail-config-section-head small{display:block;margin-top:2px;color:var(--muted);font-size:.6rem;line-height:1.35}
.mail-config-step{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border:1px solid #dedee8;border-radius:7px;background:#f7f7fb;color:var(--navy);font-size:.58rem;font-weight:900;letter-spacing:.04em}
.mail-config-grid{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:10px 12px}
.mail-config-grid .mail-span-2{grid-column:1/-1}
.mail-config-grid .field{margin:0}
.mail-config-grid .field input{min-height:40px}
.mail-port-field{max-width:130px}
.mail-security-section{background:#fbfbfd}
.mail-config-flags{display:flex;gap:18px;flex-wrap:wrap;margin:1px 0 12px;font-size:.64rem}
.mail-config-flags label{display:flex;align-items:center;gap:7px;color:var(--navy);font-weight:750}
.mail-config-flags input{margin:0}
.mail-security-status{display:flex;align-items:flex-start;gap:9px;padding:9px 11px;border:1px solid #e3e3ea;border-radius:7px;background:#fff}
.mail-security-status strong{display:block;color:var(--navy);font-size:.64rem}
.mail-security-status small{display:block;margin-top:2px;color:var(--muted);font-size:.59rem;line-height:1.4}
.mail-state-dot{width:9px;height:9px;border-radius:50%;margin-top:4px;flex:0 0 auto;background:#b9bdc7}
.mail-state-dot.success{background:#24865c}
.mail-config-actions{display:flex;justify-content:flex-start;padding:12px 16px;border-top:1px solid var(--line);background:#fff}
.mail-config-actions .button{min-width:148px}
.mail-test-row{display:grid;grid-template-columns:minmax(240px,420px) auto;gap:10px;align-items:end}
.mail-test-row .field{margin:0}
.mail-test-row .button{min-width:132px}
.mail-test-feedback{margin:9px 0 0;padding:8px 10px;border-radius:6px;font-size:.61rem;font-weight:700;line-height:1.4}
.mail-test-feedback.success{background:#e9f6ee;color:#176144}
.mail-test-feedback.error{background:#fff0f0;color:#a01f2f}
.mail-test-feedback.pending{background:#eef3ff;color:#24376a}
.mail-config-footer{display:flex;align-items:flex-start;gap:8px;padding:9px 16px;border-top:1px solid var(--line);background:#fafafa}
.mail-config-footer p{margin:0;color:var(--muted);font-size:.57rem;line-height:1.45}
.mail-config-lock{font-size:.45rem;color:#8a8f9c;line-height:1.7}
@media(max-width:760px){
  .mail-config-grid{grid-template-columns:1fr}
  .mail-config-grid .mail-span-2{grid-column:auto}
  .mail-port-field{max-width:none}
  .mail-config-flags{flex-direction:column;gap:9px}
  .mail-test-row{grid-template-columns:1fr}
  .mail-test-row .button,.mail-config-actions .button{width:100%}
  .mail-config-section,.mail-config-actions,.mail-config-footer{padding-left:13px;padding-right:13px}
}

/* v1.34.8 · invitaciones de entrenadores */
.training-access-invite-note{display:block;margin-top:4px;color:var(--muted);font-size:.57rem;line-height:1.35}.training-access-invite-note.used{color:#347056}


/* v1.35.4 · acción única de invitación centrada */
.training-access-actions{
  grid-template-columns:1fr;
}
.training-access-actions .access-action-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.2;
  min-height:34px;
}


/* 04 · Señalamientos */
.fixtures-page-heading{margin-bottom:14px}
.fixtures-context-card{margin-bottom:14px}
.fixtures-week-card>header{align-items:flex-start}
.fixtures-week-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}
.fixtures-sync-summary{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line);border-bottom:1px solid var(--line)}
.fixtures-sync-summary>div{padding:10px 12px;background:#fff}
.fixtures-sync-summary span{display:block;color:var(--muted);font-size:.58rem}
.fixtures-sync-summary strong{display:block;margin-top:3px;color:var(--navy);font-size:.82rem}
.fixtures-team-list{display:grid}
.fixture-team-row{border-top:1px solid var(--line)}
.fixture-team-row:first-child{border-top:0}
.fixture-team-head{display:grid;grid-template-columns:42px minmax(220px,1fr) auto;gap:10px;align-items:center;padding:11px 15px;background:#fafafd}
.fixture-team-order{display:grid;place-items:center;width:32px;height:32px;border-radius:7px;background:var(--navy);color:#fff;font-size:.66rem;font-weight:850}
.fixture-team-name{display:grid;gap:2px}
.fixture-team-name strong{color:var(--navy);font-size:.77rem}
.fixture-team-name small{color:var(--muted);font-size:.61rem}
.fixture-status{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:.6rem;font-weight:820;white-space:nowrap}
.fixture-status.fixture{color:#176144;background:#e1f3e9}
.fixture-status.no-fixture{color:#755a17;background:#fff6d9}
.fixture-status.not-linked{color:#6f4651;background:#f7edf0}
.fixture-status.not-refreshed{color:#56576a;background:#ececf2}
.fixture-team-matches{padding:0 15px 11px 67px}
.fixture-match{display:grid;grid-template-columns:minmax(280px,1.6fr) 145px minmax(200px,.8fr);gap:14px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:#fff}
.fixture-match+.fixture-match{margin-top:7px}
.fixture-match-main,.fixture-match-when,.fixture-match-place{display:grid;gap:2px}
.fixture-match-main strong{font-size:.72rem;color:var(--ink)}
.fixture-match-main strong span{color:var(--muted)}
.fixture-match-main small,.fixture-match-when span,.fixture-match-place span{font-size:.59rem;color:var(--muted)}
.fixture-match-when strong,.fixture-match-place strong{font-size:.66rem;color:var(--navy)}
.fixture-empty-match{padding:9px 12px;border:1px dashed #d8d9e1;border-radius:7px;color:var(--muted);font-size:.63rem;background:#fff}
@media (max-width:900px){
  .fixtures-week-card>header{display:grid}
  .fixtures-week-actions{justify-content:flex-start}
  .fixtures-sync-summary{grid-template-columns:repeat(3,1fr)}
  .fixture-match{grid-template-columns:1fr 120px}
  .fixture-match-place{grid-column:1/-1}
}
@media (max-width:620px){
  .fixtures-week-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .fixtures-week-actions .primary-btn,.fixtures-week-actions .button.primary{grid-column:1/-1}
  .fixtures-sync-summary{grid-template-columns:repeat(2,1fr)}
  .fixture-team-head{grid-template-columns:36px minmax(0,1fr)}
  .fixture-status{grid-column:2}
  .fixture-team-matches{padding:0 11px 11px}
  .fixture-match{grid-template-columns:1fr}
  .fixture-match-when,.fixture-match-place{grid-column:auto}
}


.fixture-source{display:inline-flex;align-items:center;margin-right:7px;padding:2px 5px;border-radius:4px;font-size:.48rem;font-weight:900;vertical-align:1px}
.fixture-source.fnf{background:#e7e9ff;color:#10106f}
.fixture-source.manual{background:#fff0d8;color:#815000}
.fixture-quick-form{display:grid;grid-template-columns:105px minmax(180px,1.1fr) 135px 105px minmax(170px,1fr) 130px 90px;gap:6px;margin-top:7px;padding:8px;border:1px solid #e1e2e8;border-radius:7px;background:#f7f7fa}
.fixture-quick-form input,.fixture-quick-form select{min-width:0;height:31px;border:1px solid #cfd1da;border-radius:6px;background:#fff;padding:0 8px;color:var(--ink);font:inherit;font-size:.61rem}
.fixture-quick-form button{height:31px}
@media(max-width:1050px){
  .fixture-quick-form{grid-template-columns:100px 1fr 130px 100px 1fr}
  .fixture-quick-form select[name="match_kind"]{grid-column:auto}
}
@media(max-width:700px){
  .fixture-quick-form{grid-template-columns:1fr 1fr}
  .fixture-quick-form input[name="opponent_name"],.fixture-quick-form input[name="venue_name"]{grid-column:1/-1}
  .fixture-quick-form button{grid-column:1/-1}
}


.fixture-opponent-field{
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
}
.fixture-opponent-field input{
  width:100%;
}
.fixture-opponent-status{
  display:block;
  min-height:14px;
  font-size:11px;
  line-height:1.15;
  font-weight:600;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.fixture-opponent-status.neutral{
  color:var(--muted,#6b7280);
  font-weight:500;
}
.fixture-opponent-status.fnf{
  color:#166534;
}
.fixture-opponent-status.manual{
  color:#9a3412;
}


/* 04 Señalamientos · entrada semanal compacta */
.fixture-compact-header{
  display:grid;
  grid-template-columns:minmax(210px,1.35fr) 54px minmax(180px,1.25fr) 132px 105px minmax(150px,1fr) 112px 82px;
  gap:8px;
  align-items:center;
  padding:0 10px 6px;
  color:var(--muted,#6b7280);
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
}
.fixture-compact-row{
  border:1px solid var(--border,#e5e7eb);
  border-radius:10px;
  background:var(--surface,#fff);
  margin-bottom:7px;
  padding:8px 10px;
}
.fixture-compact-team{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  margin-bottom:6px;
}
.fixture-compact-team .fixture-team-order{
  flex:0 0 28px;
  width:28px;
  height:24px;
  display:grid;
  place-items:center;
  border-radius:6px;
  font-size:11px;
}
.fixture-compact-team-text{
  min-width:0;
  display:flex;
  align-items:baseline;
  gap:8px;
  flex:1;
}
.fixture-compact-team-text strong{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:14px;
}
.fixture-compact-team-text small{
  color:var(--muted,#6b7280);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:11px;
}
.fixture-compact-team .fixture-status{
  flex:0 0 auto;
  padding:3px 7px;
  font-size:10px;
}
.fixture-quick-form-compact{
  display:grid;
  grid-template-columns:54px minmax(180px,1.25fr) 132px 105px minmax(150px,1fr) 112px 82px;
  gap:8px;
  align-items:start;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
}
.fixture-quick-form-compact select,
.fixture-quick-form-compact input{
  min-height:34px;
  height:34px;
  padding:5px 8px;
  font-size:12px;
}
.fixture-quick-form-compact select[name="is_home"]{
  text-align:center;
  font-weight:700;
  padding-left:5px;
  padding-right:5px;
}
.fixture-quick-form-compact .fixture-opponent-field{
  gap:2px;
}
.fixture-quick-form-compact .fixture-opponent-status{
  min-height:12px;
  font-size:10px;
}
.fixture-save-compact{
  width:100%;
  min-height:34px;
  padding-left:7px!important;
  padding-right:7px!important;
}
.fixture-compact-hint{
  display:block;
  margin:0 0 5px 36px;
  color:var(--muted,#6b7280);
  font-size:10px;
}
.fixture-compact-existing{
  margin:0 0 6px 36px;
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}
.fixture-existing-chip{
  display:flex;
  align-items:center;
  gap:7px;
  border:1px solid var(--border,#e5e7eb);
  border-radius:7px;
  padding:4px 7px;
  background:var(--surface-soft,#f8fafc);
  font-size:11px;
}
.fixture-existing-chip strong{
  font-size:11px;
}
.fixture-existing-chip .fixture-source{
  margin-right:0;
}

@media (max-width:1100px){
  .fixture-compact-header{
    display:none;
  }
  .fixture-quick-form-compact{
    grid-template-columns:52px minmax(180px,1fr) 125px 100px;
  }
  .fixture-quick-form-compact input[name="venue_name"]{
    grid-column:2 / span 2;
  }
  .fixture-quick-form-compact select[name="match_kind"]{
    grid-column:4;
  }
  .fixture-save-compact{
    grid-column:4;
  }
}
@media (max-width:700px){
  .fixture-compact-row{
    padding:8px;
  }
  .fixture-compact-team{
    align-items:flex-start;
  }
  .fixture-compact-team-text{
    display:block;
  }
  .fixture-compact-team-text small{
    display:block;
    margin-top:2px;
  }
  .fixture-quick-form-compact{
    grid-template-columns:52px minmax(0,1fr) 96px;
    gap:6px;
  }
  .fixture-quick-form-compact .fixture-opponent-field{
    grid-column:2 / 4;
    grid-row:1;
  }
  .fixture-quick-form-compact select[name="is_home"]{
    grid-column:1;
    grid-row:1;
  }
  .fixture-quick-form-compact input[name="date"]{
    grid-column:1 / 3;
  }
  .fixture-quick-form-compact input[name="time"]{
    grid-column:3;
  }
  .fixture-quick-form-compact input[name="venue_name"]{
    grid-column:1 / 3;
  }
  .fixture-quick-form-compact select[name="match_kind"]{
    grid-column:3;
  }
  .fixture-save-compact{
    grid-column:1 / 4;
  }
  .fixture-compact-existing,
  .fixture-compact-hint{
    margin-left:0;
  }
  .fixture-existing-chip{
    width:100%;
    flex-wrap:wrap;
  }
}
