:root{--wine:#8f122d;--wine-dark:#661022;--navy:#17243e;--ink:#1d2635;--muted:#6f7785;--line:#e6e8ed;--bg:#f4f5f7;--white:#fff;--green:#13865a;--gold:#c99535;--shadow:0 10px 30px rgba(26,34,51,.08)}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--bg);color:var(--ink);font-family:"DM Sans",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:#111a2c;color:#fff;padding:24px 16px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 28px}.brand-mark{width:45px;height:52px;background:linear-gradient(145deg,#b41d3e,var(--wine));clip-path:polygon(50% 0,95% 17%,86% 75%,50% 100%,14% 75%,5% 17%);display:grid;place-items:center;border:2px solid rgba(255,255,255,.55)}.brand-mark span{font-family:Manrope;font-weight:800}.brand strong,.sidebar-footer strong{display:block;font-size:.95rem}.brand small,.sidebar-footer small{display:block;color:#9ba5b7;font-size:.75rem;margin-top:3px}.sidebar nav{display:grid;gap:6px}.nav-item{width:100%;border:0;background:transparent;color:#aeb7c7;padding:12px 14px;border-radius:10px;text-align:left;font-weight:600;display:flex;gap:13px;align-items:center}.nav-item span{width:20px;text-align:center;font-size:1.1rem}.nav-item:hover,.nav-item.active{color:#fff;background:rgba(255,255,255,.09)}.nav-item.active{box-shadow:inset 3px 0 #cf3151}.nav-item.ai-link{margin-top:12px;color:#eeb7c2}.sidebar-footer{margin-top:auto;padding:18px 8px 0;border-top:1px solid rgba(255,255,255,.1);display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px}.avatar{width:36px;height:36px;border-radius:50%;background:#fff;color:var(--wine);display:grid;place-items:center;font-weight:800}.sidebar-footer button{border:0;background:none;color:#9ba5b7}.main{grid-column:2;min-width:0;padding:0 32px 48px}.topbar{height:108px;display:flex;align-items:center;justify-content:space-between}.topbar h1{font:800 1.6rem/1.2 Manrope;margin:4px 0 0}.topbar p{margin:0;color:var(--muted);font-size:.82rem}.top-actions{display:flex;align-items:center;gap:12px}.icon-button{width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:10px;position:relative;font-size:1.2rem}.notification-dot{position:absolute;width:7px;height:7px;background:#c62040;border-radius:50%;top:8px;right:8px}.primary-button,.secondary-button,.light-button{border:0;border-radius:9px;padding:11px 17px;font-weight:700}.primary-button{background:var(--wine);color:#fff;box-shadow:0 6px 15px rgba(143,18,45,.2)}.primary-button:hover{background:var(--wine-dark)}.secondary-button{background:#fff;border:1px solid var(--line);color:var(--ink)}.menu-button{display:none;border:0;background:transparent;font-size:1.3rem}.view{display:none}.view.active{display:block;animation:fade .22s ease}@keyframes fade{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.metric-card,.panel{background:#fff;border:1px solid rgba(31,42,62,.07);border-radius:14px;box-shadow:var(--shadow)}.metric-card{padding:18px;position:relative;min-height:155px}.metric-card>span{display:block;color:var(--muted);font-size:.83rem;margin-bottom:12px}.metric-card>strong{font:800 2rem Manrope;display:block}.metric-card>small{display:block;color:var(--muted);font-size:.76rem;margin-top:9px}.metric-card small b{color:var(--green)}.metric-card .warning{color:#ad6e13}.metric-icon{position:absolute;right:17px;top:17px;width:34px;height:34px;border-radius:9px;background:#f4edf0;color:var(--wine);display:grid;place-items:center;font-weight:800}.metric-card.wine{background:linear-gradient(145deg,var(--wine),#a91939);color:#fff}.metric-card.wine>span,.metric-card.wine>small{color:#f1cad2}.metric-card.wine .metric-icon{background:rgba(255,255,255,.15);color:#fff}.progress{height:5px;border-radius:9px;background:#e9e9ed;margin-top:12px;overflow:hidden}.progress i{display:block;height:100%;background:var(--wine);border-radius:inherit}.dashboard-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:18px;margin-top:18px}.panel{padding:22px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:17px}.panel h2,.section-toolbar h2,.assistant-intro h2,.modal h2{font:700 1.12rem Manrope;margin:4px 0}.kicker{font-size:.68rem;letter-spacing:.13em;font-weight:800;color:var(--wine)}.kicker.light{color:#efbcc6}.text-button{border:0;background:none;color:var(--wine);font-size:.78rem;font-weight:700}.session-list{display:grid}.session-row{display:grid;grid-template-columns:48px 42px minmax(150px,1fr) 44px 78px;align-items:center;gap:11px;padding:13px 0;border:0;border-bottom:1px solid var(--line);background:none;text-align:left}.session-row:last-child{border:0}.session-row:hover .row-action{color:var(--wine)}.time{font-weight:700;font-size:.82rem}.category-badge{height:36px;border-radius:9px;display:grid;place-items:center;color:#fff;font-weight:800;font-size:.72rem}.category-badge.red{background:#a9213d}.category-badge.navy{background:#34486a}.category-badge.gold{background:#c08d30}.session-info strong,.payment-row strong{display:block;font-size:.84rem}.session-info small,.payment-row small{display:block;color:var(--muted);font-size:.72rem;margin-top:3px}.session-count{font-size:.75rem;color:var(--muted)}.session-count b{color:var(--ink);font-size:.9rem}.row-action{font-size:.72rem;text-align:right;font-weight:700;color:var(--muted)}.ai-card{background:radial-gradient(circle at 85% 15%,rgba(255,255,255,.14),transparent 25%),linear-gradient(145deg,#82142c,#4f1020);color:#fff;position:relative;overflow:hidden}.ai-card h2{font-size:1.35rem;max-width:310px;margin-top:11px}.ai-card p{color:#e9cbd1;line-height:1.55;font-size:.84rem;max-width:390px}.ai-orb{width:43px;height:43px;border-radius:13px;background:linear-gradient(145deg,#fff,#e6c5cd);color:var(--wine);display:grid;place-items:center;box-shadow:0 5px 18px rgba(0,0,0,.15);position:absolute;right:20px;top:20px}.ai-example{font-size:.8rem;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.09);padding:11px 12px;border-radius:9px;margin:17px 0}.light-button{background:#fff;color:var(--wine);width:100%;display:flex;justify-content:space-between}.payment-list{display:grid}.payment-row{display:grid;grid-template-columns:38px minmax(150px,1fr) auto auto;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.payment-row:last-child{border:0}.initials{width:34px;height:34px;border-radius:50%;background:#f4dce2;color:var(--wine);display:grid;place-items:center;font-size:.7rem;font-weight:800}.initials.blue{background:#dde7f4;color:#35547b}.initials.gold-bg{background:#f4ead7;color:#9a6c1d}.payment-row>b{font-size:.82rem}.payment-row em,.status{font-style:normal;font-size:.68rem;font-weight:700;color:var(--green);background:#e4f4ed;padding:5px 8px;border-radius:12px}.next-actions>button{width:100%;display:grid;grid-template-columns:38px 1fr auto;gap:11px;align-items:center;text-align:left;border:0;background:none;padding:12px 0;border-bottom:1px solid var(--line)}.next-actions>button:last-child{border:0}.task-icon{width:34px;height:34px;border-radius:9px;background:#f5eef0;display:grid;place-items:center;color:var(--wine);font-weight:800}.next-actions strong{display:block;font-size:.82rem}.next-actions small{display:block;font-size:.71rem;color:var(--muted);margin-top:3px}.next-actions i{font-style:normal;color:var(--muted)}.section-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:18px;min-height:47px}.section-toolbar>div:first-child{margin-right:auto}.search-box{background:#fff;border:1px solid var(--line);border-radius:9px;padding:9px 12px;min-width:280px}.search-box input{border:0;outline:0;margin-left:6px;width:230px}.section-toolbar select{border:1px solid var(--line);background:#fff;padding:10px;border-radius:9px;color:var(--ink)}.table-panel{padding:0;overflow:hidden}.table-panel .panel-head{padding:20px 22px 0}.count-pill{font-size:.72rem;background:#f1f2f5;color:var(--muted);padding:6px 9px;border-radius:20px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);background:#f8f8fa;padding:11px 20px}td{padding:14px 20px;border-top:1px solid var(--line);font-size:.82rem;white-space:nowrap}td strong{display:block}td small{color:var(--muted)}.status.pending{color:#a46d13;background:#fbf0db}.status.overdue{color:#b4233a;background:#fae4e8}.link-action{border:0;background:none;color:var(--wine);font-weight:700;font-size:.75rem}.attendance-summary{display:flex;gap:50px;padding:0 0 20px;border-bottom:1px solid var(--line)}.attendance-summary strong{display:block;font:800 1.6rem Manrope}.attendance-summary small{color:var(--muted)}.check-list{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}.check-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.check-row .initials{flex:none}.check-row label{flex:1}.check-row label strong{display:block;font-size:.85rem}.check-row label small{color:var(--muted);font-size:.72rem}.toggle{appearance:none;width:44px;height:25px;border-radius:20px;background:#d9dde3;position:relative;transition:.2s}.toggle:after{content:"";position:absolute;width:19px;height:19px;border-radius:50%;background:#fff;top:3px;left:3px;box-shadow:0 1px 4px #999;transition:.2s}.toggle:checked{background:var(--green)}.toggle:checked:after{left:22px}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.mini-stats>div{background:#fff;border-radius:12px;padding:16px 19px;border:1px solid var(--line)}.mini-stats small{display:block;color:var(--muted)}.mini-stats strong{font:800 1.3rem Manrope;display:block;margin-top:6px}.danger{color:#ba2743}.evaluation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.evaluation-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:var(--shadow)}.evaluation-card .student-head{display:flex;gap:11px;align-items:center}.evaluation-card h3{font-size:.9rem;margin:0}.evaluation-card small{color:var(--muted)}.score-ring{margin-left:auto;width:48px;height:48px;border:5px solid #eadfe2;border-top-color:var(--wine);border-right-color:var(--wine);border-radius:50%;display:grid;place-items:center;font-weight:800;color:var(--wine)}.skill-bar{margin-top:15px}.skill-bar span{display:flex;justify-content:space-between;font-size:.72rem}.skill-bar .progress{margin-top:6px}.notice-layout{display:grid;grid-template-columns:1.5fr .75fr;gap:18px}.notice-item{padding:16px 0;border-bottom:1px solid var(--line)}.notice-item:first-child{padding-top:0}.notice-item:last-child{border:0}.notice-item h3{font-size:.9rem;margin:7px 0}.notice-item p{font-size:.8rem;color:var(--muted);line-height:1.5;margin:0}.notice-meta{display:flex;justify-content:space-between;font-size:.7rem;color:var(--muted)}.notice-tag{background:#f4ebee;color:var(--wine);padding:4px 7px;border-radius:10px;font-weight:700}.channel-card>div{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);font-size:.82rem}.channel-card b{color:var(--green)}.channel-card b.muted{color:var(--muted)}.channel-card p{font-size:.78rem;line-height:1.55;color:var(--muted)}.assistant-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:28px;align-items:center;max-width:1020px;margin:20px auto}.assistant-intro{padding:30px;position:relative}.assistant-intro .ai-orb{position:static}.assistant-intro h2{font-size:1.8rem;margin-top:14px}.assistant-intro p{color:var(--muted);line-height:1.6}.suggestions{display:grid;gap:8px;margin-top:22px}.suggestions button{text-align:left;border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 12px;color:var(--wine)}.chat-card{background:#fff;border-radius:18px;box-shadow:0 18px 50px rgba(28,38,57,.14);overflow:hidden;height:590px;display:flex;flex-direction:column}.chat-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:11px}.ai-orb.small{position:static;width:36px;height:36px;border-radius:10px;background:var(--wine);color:#fff}.chat-head strong,.chat-head small{display:block}.chat-head small{color:var(--muted);font-size:.68rem;margin-top:2px}.chat-head small i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:4px}.chat-head button{margin-left:auto;border:0;background:none;color:var(--muted);font-size:.75rem}.chat-messages{flex:1;padding:20px;overflow:auto;background:#f8f9fa;display:flex;flex-direction:column;gap:12px}.message{max-width:78%;padding:11px 13px;border-radius:13px;font-size:.82rem;line-height:1.5}.message.bot{background:#fff;border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:4px}.message.user{background:var(--wine);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.chat-input{display:flex;gap:8px;padding:14px;border-top:1px solid var(--line)}.chat-input input{flex:1;border:1px solid var(--line);border-radius:10px;padding:11px;outline:0}.chat-input input:focus{border-color:var(--wine)}.chat-input button{width:42px;border:0;border-radius:10px;background:var(--wine);color:#fff;font-size:1.2rem}.modal-backdrop{position:fixed;inset:0;background:rgba(10,16,28,.62);z-index:50;display:grid;place-items:center;padding:20px}.modal-backdrop[hidden]{display:none}.modal{background:#fff;width:min(520px,100%);border-radius:17px;padding:26px;position:relative;box-shadow:0 25px 70px rgba(0,0,0,.25)}.modal-close{position:absolute;right:17px;top:14px;border:0;background:none;font-size:1.6rem;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:20px}.form-field{display:grid;gap:5px}.form-field.full{grid-column:1/-1}.form-field label{font-size:.73rem;font-weight:700;color:var(--muted)}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--line);border-radius:8px;padding:10px;outline:0}.form-field textarea{min-height:85px;resize:vertical}.modal-submit{grid-column:1/-1;margin-top:7px}.toast{position:fixed;right:25px;bottom:25px;background:#17243e;color:#fff;border-radius:10px;padding:13px 18px;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);pointer-events:none;transition:.25s;z-index:80;font-size:.82rem}.toast.show{opacity:1;transform:none}.mobile-nav{display:none}
@media(max-width:1100px){.summary-grid{grid-template-columns:repeat(2,1fr)}.evaluation-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){body{padding-bottom:70px}.app-shell{display:block}.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.main{padding:0 16px 28px}.topbar{height:90px}.menu-button{display:block}.topbar>div:nth-child(2){margin-right:auto;margin-left:10px}.topbar h1{font-size:1.12rem}.topbar p{display:none}.top-actions .icon-button{display:none}.top-actions .primary-button{padding:9px 11px;font-size:.75rem}.dashboard-grid,.notice-layout,.assistant-layout{grid-template-columns:1fr}.summary-grid{gap:10px}.metric-card{min-height:135px;padding:15px}.metric-card>strong{font-size:1.7rem}.session-row{grid-template-columns:43px 38px 1fr 42px}.row-action{display:none}.payment-row{grid-template-columns:36px 1fr auto}.payment-row em{display:none}.section-toolbar{align-items:stretch;flex-wrap:wrap}.search-box{min-width:100%;width:100%}.search-box input{width:calc(100% - 30px)}.check-list{grid-template-columns:1fr}.evaluation-grid{grid-template-columns:1fr}.attendance-summary{justify-content:space-between;gap:10px}.assistant-intro{padding:8px 2px}.assistant-intro h2{font-size:1.4rem}.chat-card{height:560px}.mobile-nav{position:fixed;display:flex;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);z-index:30;justify-content:space-around;padding:8px 5px max(8px,env(safe-area-inset-bottom))}.mobile-nav button{border:0;background:none;color:var(--muted);display:grid;gap:2px;place-items:center;font-weight:700}.mobile-nav button.active{color:var(--wine)}.mobile-nav small{font-size:.62rem}.mini-stats{grid-template-columns:1fr}.table-panel{margin:0 -16px;border-radius:0}.toast{left:16px;right:16px;bottom:82px;text-align:center}}
@media(max-width:500px){.summary-grid{grid-template-columns:1fr 1fr}.metric-card>span{padding-right:28px}.metric-card>small{font-size:.68rem}.panel{padding:17px}.session-info small{max-width:120px}.section-toolbar .primary-button{width:100%}.form-grid{grid-template-columns:1fr}.form-field.full,.modal-submit{grid-column:1}.modal{padding:22px}.top-actions .primary-button{font-size:0;width:38px;height:38px;padding:0}.top-actions .primary-button::after{content:"+";font-size:1.4rem}.payment-row>b{display:none}}

/* Calendario mensual de asistencia */
.attendance-toolbar select{min-width:170px}.attendance-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.attendance-kpis article{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px 17px;display:flex;align-items:center;gap:12px}.attendance-kpis small{display:block;color:var(--muted);font-size:.7rem}.attendance-kpis strong{display:block;font:800 1.28rem Manrope;margin-top:3px}.kpi-dot{width:11px;height:11px;border-radius:50%;box-shadow:0 0 0 6px #edf0f3}.kpi-dot.complete{background:var(--green)}.kpi-dot.justified{background:#4976a8}.kpi-dot.pending{background:var(--gold)}.kpi-icon{width:28px;height:28px;border-radius:8px;background:#f4ebee;color:var(--wine);font-weight:800;display:grid;place-items:center;font-size:.75rem}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px;align-items:start}.calendar-card{padding:0;overflow:hidden}.calendar-head{display:flex;align-items:center;justify-content:space-between;padding:19px 20px}.calendar-head h2{font-size:1.2rem}.calendar-arrows{display:flex;gap:7px}.calendar-arrows button{width:35px;height:35px;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:1.3rem}.calendar-arrows button:hover{border-color:var(--wine);color:var(--wine)}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{background:#f7f7f9;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-weekdays span{text-align:center;color:var(--muted);font-size:.67rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:9px 3px}.calendar-day{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;min-height:104px;padding:9px;text-align:left;overflow:hidden;transition:.16s}.calendar-day:nth-child(7n){border-right:0}.calendar-day:hover{background:#faf6f7}.calendar-day.outside{background:#fafafa;color:#adb2ba}.calendar-day.selected{background:#fbf4f6;box-shadow:inset 0 0 0 2px var(--wine)}.day-number{font-weight:700;font-size:.75rem;display:flex;align-items:center;justify-content:space-between}.day-number i{font-style:normal;background:var(--navy);color:#fff;border-radius:10px;padding:2px 5px;font-size:.52rem}.calendar-day.today:not(.selected) .day-number{color:var(--wine)}.day-events{display:grid;gap:4px;margin-top:7px}.calendar-event{display:block;padding:5px 6px;border-radius:5px;font-size:.58rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event.complete{background:#e9f5ef;color:#176c4d;border-left:2px solid var(--green)}.calendar-event.pending{background:#fbf0db;color:#956217;border-left:2px solid var(--gold)}.day-events em{font-style:normal;color:var(--muted);font-size:.58rem}.calendar-legend{display:flex;gap:19px;align-items:center;padding:13px 20px;color:var(--muted);font-size:.65rem}.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-legend i{display:block;width:8px;height:8px;border-radius:2px}.calendar-legend i.complete{background:var(--green)}.calendar-legend i.pending{background:var(--gold)}.calendar-legend i.selected-legend{border:2px solid var(--wine);background:#fff}.day-detail{min-height:435px}.day-detail>h2{font-size:1.15rem;margin-bottom:18px}.day-sessions{display:grid;gap:12px}.day-sessions article{border:1px solid var(--line);border-radius:11px;padding:14px}.day-session-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.day-session-top .category-badge{width:48px}.session-state{font-size:.6rem;font-weight:800;border-radius:10px;padding:4px 7px}.session-state.complete{background:#e4f4ed;color:var(--green)}.session-state.pending{background:#fbf0db;color:#956217}.day-sessions article>strong{display:block;font-size:.84rem}.day-sessions article>small{display:block;color:var(--muted);font-size:.68rem;margin-top:3px}.day-session-rate{display:flex;align-items:baseline;gap:7px;margin:13px 0}.day-session-rate b{font:800 1.25rem Manrope}.day-session-rate span{font-size:.65rem;color:var(--muted)}.day-sessions button{width:100%;padding:9px;font-size:.7rem}.empty-calendar{text-align:center;color:var(--muted);padding:68px 10px}.empty-calendar span{width:46px;height:46px;margin:auto;display:grid;place-items:center;border-radius:50%;background:#eef1f4;color:#929aa6}.empty-calendar p{font-size:.75rem;line-height:1.5}.attendance-sheet{margin-top:18px;scroll-margin-top:18px}.attendance-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}
@media(max-width:1100px){.attendance-kpis{grid-template-columns:repeat(2,1fr)}.calendar-layout{grid-template-columns:1fr}.day-detail{min-height:auto}.day-sessions{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.attendance-toolbar select{min-width:calc(50% - 6px);flex:1}.attendance-kpis{gap:9px}.attendance-kpis article{padding:13px}.calendar-card{margin:0 -16px;border-radius:0}.calendar-head{padding:16px}.calendar-day{min-height:78px;padding:6px}.calendar-event{font-size:.52rem;padding:4px}.calendar-event b{display:none}.calendar-legend{padding:11px 16px}.day-sessions{grid-template-columns:1fr}}
@media(max-width:500px){.attendance-toolbar select{min-width:100%;width:100%}.attendance-toolbar .secondary-button{width:100%}.attendance-kpis{grid-template-columns:1fr 1fr}.attendance-kpis article{align-items:flex-start}.calendar-weekdays span{font-size:.58rem}.calendar-day{min-height:63px}.day-events{margin-top:4px}.calendar-event{font-size:0;height:6px;padding:0;border:0;border-radius:3px}.calendar-event.complete{background:var(--green)}.calendar-event.pending{background:var(--gold)}.day-events em{display:none}.day-number{font-size:.68rem}.day-number i{display:none}.calendar-legend{gap:10px;flex-wrap:wrap}.attendance-sheet{margin-left:-16px;margin-right:-16px;border-radius:0}.attendance-sheet-head{align-items:center}.attendance-sheet-head .primary-button{width:auto}}

/* Equipos base, importación y selectivos */
.team-summary-panel{margin-bottom:18px}.team-summary-panel .panel-head{align-items:center}.team-summary-panel .panel-head>small{color:var(--muted);font-size:.72rem;text-align:right}.team-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.team-summary button{border:1px solid var(--line);background:#fafafb;border-radius:10px;padding:10px 8px;text-align:left;color:var(--ink);transition:.15s}.team-summary button:hover{border-color:var(--wine);background:#fff7f9}.team-summary button span{display:block;font-size:.72rem;font-weight:800;color:var(--wine)}.team-summary button b{display:inline-block;font:800 1.15rem Manrope;margin-top:4px}.team-summary button small{margin-left:4px;color:var(--muted);font-size:.62rem}.bulk-toolbar{display:flex;align-items:center;gap:10px;padding:12px 20px;background:#f8eef1;border-top:1px solid #ead9de}.bulk-toolbar[hidden]{display:none}.bulk-toolbar strong{margin-right:auto;font-size:.78rem;color:var(--wine)}.bulk-toolbar label{font-size:.72rem;font-weight:700;color:var(--muted)}.bulk-toolbar select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px}.bulk-toolbar .primary-button{padding:9px 13px}.base-team-tag{display:inline-block;background:#edf1f7;color:#34486a;border-radius:12px;padding:5px 8px;font-size:.69rem;font-weight:700}.selective-count{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#f4ebee;color:var(--wine);font-weight:800}.section-note{margin:-8px 0 18px;color:var(--muted);font-size:.82rem}.selective-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.selective-card{padding:0;overflow:hidden}.selective-card-head{display:flex;align-items:center;gap:12px;padding:18px 20px;background:linear-gradient(145deg,#fff,#faf5f7);border-bottom:1px solid var(--line)}.selective-card-head h2{margin:3px 0 0}.selective-card-head>b{margin-left:auto;font:800 1.55rem Manrope;color:var(--wine)}.selective-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:11px;background:var(--wine);color:#fff}.selective-roster{padding:6px 20px 14px}.selective-roster>div:not(.empty-roster){display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.selective-roster>div:last-child{border-bottom:0}.selective-roster>div>span:nth-child(2){min-width:0;flex:1}.selective-roster strong,.selective-roster small{display:block}.selective-roster strong{font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selective-roster small{font-size:.67rem;color:var(--muted);margin-top:2px}.selective-roster button{border:0;background:none;color:var(--muted);font-size:1.25rem}.empty-roster{text-align:center;padding:34px 8px;color:var(--muted)}.empty-roster span{font-size:1.5rem;color:#c9adb5}.empty-roster p{font-size:.75rem}.form-help{margin:0;color:var(--muted);font-size:.72rem;line-height:1.45}.full{grid-column:1/-1}
@media(max-width:1100px){.team-summary{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:800px){.team-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.selective-grid{grid-template-columns:1fr}.bulk-toolbar{flex-wrap:wrap}.bulk-toolbar strong{width:100%}.bulk-toolbar label{margin-right:auto}}
@media(max-width:500px){.team-summary-panel{margin-left:-16px;margin-right:-16px;border-radius:0}.team-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.team-summary-panel .panel-head>small{display:none}.bulk-toolbar select,.bulk-toolbar .primary-button{width:100%}.section-note{font-size:.75rem}.selective-card{margin-left:-16px;margin-right:-16px;border-radius:0}}

/* Perfiles y permisos */
.brand-mark{width:52px;height:62px;clip-path:none;background:#fff;border:0;border-radius:12px;padding:3px;overflow:hidden;flex:none}.brand-mark img{width:100%;height:100%;display:block;object-fit:contain}
.profile-photo,.profile-avatar.director{overflow:hidden;background:#fff;padding:0}.profile-photo img,.profile-avatar.director img{width:100%;height:100%;display:block;object-fit:cover}
[hidden]{display:none!important}.profile-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.profile-summary article{background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px 19px;display:flex;gap:13px;align-items:center}.profile-summary article>span{width:38px;height:38px;border-radius:11px;background:#f4ebee;color:var(--wine);display:grid;place-items:center;font-weight:800}.profile-summary small,.profile-summary strong{display:block}.profile-summary small{color:var(--muted);font-size:.7rem}.profile-summary strong{font:800 1.15rem Manrope;margin-top:4px}.permission-note{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px;background:linear-gradient(135deg,#17243e,#243654);color:#fff}.permission-lock{width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.12);display:grid;place-items:center;flex:none}.permission-note strong{font-size:.9rem}.permission-note p{margin:5px 0 0;color:#cbd3df;font-size:.78rem;line-height:1.5}.profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.profile-card{display:flex;flex-direction:column;gap:16px}.profile-card.inactive{opacity:.65}.profile-card-head{display:flex;align-items:center;gap:11px}.profile-card-head h3{margin:0 0 5px;font-size:.92rem}.profile-avatar{width:43px;height:43px;border-radius:12px;background:#e7ebf1;color:var(--navy);display:grid;place-items:center;font-weight:800;flex:none}.profile-avatar.director{background:var(--wine);color:#fff}.role-pill{font-size:.62rem;font-weight:800;border-radius:10px;padding:4px 7px;background:#edf1f7;color:#3d5578}.role-pill.director{background:#f4ebee;color:var(--wine)}.profile-status{margin-left:auto;color:var(--green);font-size:.66rem;font-weight:800}.profile-card.inactive .profile-status{color:var(--muted)}.profile-contact small,.profile-teams>small{display:block;color:var(--muted);font-size:.68rem;margin-bottom:6px}.profile-contact strong{font-size:.78rem}.profile-teams{min-height:82px}.profile-teams p{font-size:.75rem;color:var(--muted);margin:8px 0}.team-access-tag{display:block;background:#f6f7f9;border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:.7rem;font-weight:700;margin-top:6px}.team-access-tag.full-access{background:#f8eef1;color:var(--wine);border-color:#ead9de}.profile-edit{width:100%;margin-top:auto}.team-permission-list{display:grid;gap:8px}.team-permission-list>label,.profile-active-toggle{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:11px 12px;cursor:pointer;background:#fafafb}.team-permission-list input,.profile-active-toggle input{margin-top:3px;accent-color:var(--wine)}.team-permission-list span,.profile-active-toggle span{display:block}.team-permission-list strong,.team-permission-list small,.profile-active-toggle strong,.profile-active-toggle small{display:block}.team-permission-list strong,.profile-active-toggle strong{font-size:.78rem}.team-permission-list small,.profile-active-toggle small{font-size:.68rem;color:var(--muted);margin-top:3px}.profile-switch-list{display:grid;gap:9px;margin:18px 0}.profile-switch-list button{display:grid;grid-template-columns:43px 1fr auto;align-items:center;gap:11px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:11px;padding:11px}.profile-switch-list button.selected{border-color:var(--wine);background:#fff8fa}.profile-switch-list button>span:nth-child(2) strong,.profile-switch-list button>span:nth-child(2) small{display:block}.profile-switch-list button>span:nth-child(2) strong{font-size:.8rem}.profile-switch-list button>span:nth-child(2) small{color:var(--muted);font-size:.67rem;margin-top:3px}.profile-switch-list i{font-style:normal;color:var(--wine);font-size:.68rem;font-weight:800}
@media(max-width:1100px){.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.profile-summary{grid-template-columns:1fr}.profile-grid{grid-template-columns:1fr}.permission-note{margin-left:-16px;margin-right:-16px;border-radius:0}}

/* Navegación de evaluaciones por equipo y jugador */
.evaluation-intro,.roster-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px}.evaluation-intro h3,.roster-heading h3{font:800 1.35rem Manrope;margin:5px 0}.evaluation-intro p,.roster-heading p{margin:0;color:var(--muted);font-size:.8rem}.evaluation-period{background:#f4ebee;color:var(--wine);border-radius:20px;padding:8px 12px;font-size:.72rem;font-weight:800}.evaluation-team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.evaluation-team-card{display:grid;grid-template-columns:54px 1fr auto;gap:13px;align-items:center;background:#fff;border:1px solid rgba(31,42,62,.08);border-radius:14px;padding:16px;text-align:left;box-shadow:var(--shadow);transition:.18s}.evaluation-team-card:hover{transform:translateY(-2px);border-color:#d5a5b0}.evaluation-team-card>b{color:var(--wine)}.evaluation-team-icon{width:54px;height:54px;border-radius:13px;background:var(--wine);color:#fff;display:grid;place-items:center;font:800 .76rem Manrope;text-align:center}.evaluation-team-icon.navy{background:var(--navy)}.evaluation-team-icon.gold{background:#b98224}.evaluation-team-copy,.evaluation-team-copy strong,.evaluation-team-copy small{display:block;min-width:0}.evaluation-team-copy strong{font-size:.84rem}.evaluation-team-copy small{color:var(--muted);font-size:.68rem;margin-top:4px}.team-evaluation-progress{height:4px;background:#eceef2;border-radius:5px;margin-top:10px;overflow:hidden}.team-evaluation-progress i{display:block;height:100%;background:var(--wine);border-radius:inherit}.evaluation-breadcrumb{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.72rem;margin-bottom:18px}.evaluation-breadcrumb button{border:0;background:none;padding:0;color:var(--wine);font-weight:800}.evaluation-breadcrumb strong{color:var(--ink)}.roster-progress{width:72px;height:72px;border:6px solid #eadfe2;border-top-color:var(--wine);border-right-color:var(--wine);border-radius:50%;display:grid;place-items:center;align-content:center}.roster-progress b,.roster-progress small{display:block;text-align:center}.roster-progress b{font:800 1rem Manrope}.roster-progress small{font-size:.56rem;color:var(--muted)}.evaluation-roster .player-cell{display:flex;align-items:center;gap:10px}.evaluation-roster .initials{flex:none}.evaluation-score-mini{width:34px;height:34px;border-radius:50%;background:#f4ebee;color:var(--wine);display:grid;place-items:center;font-weight:800}.evaluation-empty{padding:28px}.player-profile-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);border:1px solid rgba(31,42,62,.07)}.player-profile-hero{background:linear-gradient(135deg,#17243e,#2c4165);color:#fff;padding:25px 28px;display:flex;align-items:center;gap:16px}.player-profile-avatar{width:66px;height:66px;border-radius:18px;background:var(--wine);display:grid;place-items:center;font:800 1.15rem Manrope}.player-profile-hero h3{font:800 1.4rem Manrope;margin:5px 0}.player-profile-hero p{margin:0;color:#cbd3df;font-size:.78rem}.profile-overall{margin-left:auto;text-align:center}.profile-overall strong{display:block;font:800 2.15rem Manrope}.profile-overall small{display:block;color:#cbd3df;font-size:.65rem}.profile-pending{margin-left:auto;background:rgba(255,255,255,.12);border-radius:18px;padding:8px 11px;font-size:.7rem;font-weight:800}.player-profile-body{padding:25px 28px}.profile-metrics{display:grid;grid-template-columns:1.2fr .8fr;gap:34px}.profile-metrics h4,.empty-player-evaluation h4{font:800 1rem Manrope;margin:6px 0 15px}.profile-metrics aside{background:#f7f8fa;border-radius:13px;padding:19px}.profile-metrics aside p{font-size:.8rem;line-height:1.55;color:var(--muted)}.profile-metrics aside>small{font-size:.66rem;color:var(--muted)}.player-evaluate-button{margin-top:22px}.empty-player-evaluation{text-align:center;padding:36px}.empty-player-evaluation>span{width:48px;height:48px;border-radius:50%;background:#f4ebee;color:var(--wine);display:grid;place-items:center;margin:auto;font-size:1.3rem}.empty-player-evaluation p{color:var(--muted);font-size:.8rem}
@media(max-width:1100px){.evaluation-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.evaluation-team-grid{grid-template-columns:1fr}.profile-metrics{grid-template-columns:1fr}.player-profile-hero{padding:20px}.player-profile-body{padding:20px}.profile-overall{margin-left:0}.player-profile-hero{flex-wrap:wrap}.evaluation-roster{margin:0 -16px;border-radius:0}.evaluation-intro{align-items:flex-start;flex-direction:column}.evaluation-period{align-self:flex-start}}
.evaluation-team-icon{font-size:.68rem;line-height:1.15;overflow-wrap:anywhere;padding:4px}

/* Equipos de asistencia duplicados por sede */
#calendarTeam{min-width:300px}.attendance-permission-groups{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-height:360px;overflow:auto;padding:2px}.attendance-permission-groups fieldset{border:1px solid var(--line);border-radius:11px;padding:10px;margin:0;min-width:0}.attendance-permission-groups legend{font-size:.7rem;font-weight:800;color:var(--wine);padding:0 5px}.attendance-permission-groups label{display:flex;align-items:flex-start;gap:8px;padding:8px 6px;border-bottom:1px solid var(--line);cursor:pointer}.attendance-permission-groups label:last-child{border-bottom:0}.attendance-permission-groups input{margin-top:3px;accent-color:var(--wine)}.attendance-permission-groups strong,.attendance-permission-groups small{display:block}.attendance-permission-groups strong{font-size:.72rem}.attendance-permission-groups small{font-size:.62rem;color:var(--muted);margin-top:2px}.modal{max-height:92vh;overflow:auto}
@media(max-width:800px){#calendarTeam{min-width:100%;width:100%}.attendance-permission-groups{grid-template-columns:1fr}}

.match-list{display:grid}.match-row{width:100%;display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;padding:11px 0;color:var(--ink)}.match-row:last-child{border-bottom:0}.match-row>span:nth-child(2) strong,.match-row>span:nth-child(2) small{display:block}.match-row>span:nth-child(2) strong{font-size:.8rem}.match-row>span:nth-child(2) small{font-size:.69rem;color:var(--muted);margin-top:3px}.match-row>i{font-style:normal;color:var(--wine)}.match-date{width:44px;height:44px;border-radius:10px;background:#f5eef0;color:var(--wine);display:grid;place-items:center;align-content:center}.match-date b{font:800 1rem Manrope;line-height:1}.match-date small{text-transform:uppercase;font-size:.58rem;font-weight:800;margin-top:2px}.empty-match{text-align:center;padding:18px 8px;color:var(--muted)}.empty-match>span{font-size:1.8rem}.empty-match p{font-size:.78rem;margin:7px 0}.calendar-event.match-event{border-left-color:#c58a23;background:#fff8e9}.day-sessions article.match-session{border-color:#ead5a9}.category-badge.gold{min-width:auto;padding:5px 8px;border-radius:8px;background:#f4ead7;color:#8a611b;font-size:.58rem}.form-field[hidden]{display:none}
@media(max-width:800px){#view-partidos .mini-stats{grid-template-columns:repeat(3,1fr)}#view-partidos .mini-stats>div{padding:13px 11px}#view-partidos .mini-stats strong{font-size:1.05rem}}
@media(max-width:500px){#view-partidos .mini-stats{grid-template-columns:1fr}.match-row{grid-template-columns:44px 1fr auto}}
.match-report-range{display:grid;grid-template-columns:repeat(2,minmax(145px,1fr));gap:9px}.match-report-date{display:grid;gap:4px;color:var(--muted);font-size:.68rem;font-weight:800}.match-report-date input{width:100%;min-height:40px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);padding:8px 10px}.match-actions{display:flex;align-items:flex-start;gap:5px;flex-direction:column}.match-actions .link-action{white-space:nowrap}.match-actions .whatsapp-copy{color:#087957}.match-actions .whatsapp-copy:hover{text-decoration:underline}
@media(max-width:800px){.match-report-range{width:100%;grid-template-columns:1fr 1fr}.match-report-date{width:100%}#generateMatchesPdf{align-self:flex-end}}@media(max-width:500px){.match-report-range{grid-template-columns:1fr;width:100%}#generateMatchesPdf{width:100%}}

/* Equipos base agrupados por sede */
.team-summary{display:block}.venue-team-group+.venue-team-group{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.venue-team-group>header,.evaluation-venue-group>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.venue-team-group>header>div,.evaluation-venue-group>header>div{display:flex;align-items:center;gap:8px}.venue-team-group>header strong,.evaluation-venue-group>header strong{font-size:.82rem}.venue-team-group>header small,.evaluation-venue-group>header small{font-size:.68rem;color:var(--muted)}.venue-dot{width:9px;height:9px;border-radius:50%;background:var(--wine)}.venue-dot.or{background:var(--navy)}.venue-team-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.venue-team-grid button{border:1px solid var(--line);background:#fafafb;border-radius:10px;padding:10px 8px;text-align:left;color:var(--ink);transition:.15s}.venue-team-grid button:hover{border-color:var(--wine);background:#fff7f9}.venue-team-grid button span{display:block;font-size:.72rem;font-weight:800;color:var(--wine);overflow-wrap:anywhere}.venue-team-grid button b{display:inline-block;font:800 1.15rem Manrope;margin-top:4px}.venue-team-grid button small{margin-left:4px;color:var(--muted);font-size:.62rem}.evaluation-venue-list{display:grid;gap:24px}.evaluation-venue-group{background:#fff;border:1px solid rgba(31,42,62,.07);border-radius:15px;padding:18px;box-shadow:var(--shadow)}
.venue-team-grid button em{display:block;margin-top:7px;color:var(--muted);font-style:normal;font-size:.6rem;line-height:1.3}
@media(max-width:1100px){.venue-team-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:800px){.venue-team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.evaluation-venue-group{margin-left:-16px;margin-right:-16px;border-radius:0}}
@media(max-width:500px){.venue-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Filtros dependientes del calendario de asistencia */
.attendance-filter{display:grid;gap:4px}.attendance-filter>span{font-size:.66rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.attendance-toolbar select:disabled{background:#f2f3f5;color:#9299a4;cursor:not-allowed}
@media(max-width:800px){.attendance-filter{flex:1;min-width:calc(50% - 6px)}.attendance-filter select{width:100%}}
@media(max-width:500px){.attendance-filter{min-width:100%;width:100%}}

/* Expediente integral del jugador */
.student-row-actions{display:flex;gap:10px}.student-inactive{opacity:.58}.student-inactive td{background:#fafafa}.attendance-status{min-width:112px;border:1px solid var(--line);border-radius:9px;padding:8px 10px;font-weight:700;font-size:.72rem;background:#fff}.attendance-status.present{color:var(--green);border-color:#b9dfd0;background:#f2faf6}.attendance-status.absent{color:#bd263f;border-color:#efc7ce;background:#fff7f8}.attendance-status.justified{color:#9a6716;border-color:#ecd7ac;background:#fffbf2}
.player-file{max-width:980px;margin:0 auto}.player-file .player-profile-hero{display:block;padding:30px}.player-identity{display:flex;align-items:center;gap:17px}.player-identity .player-profile-avatar{width:78px;height:78px;border-radius:50%;border:3px solid rgba(255,255,255,.82);font-size:1.35rem;flex:none}.player-identity h3{font-size:1.65rem}.player-status-active{color:#8fe0bd;font-weight:800}.player-status-inactive{color:#ffb4bf;font-weight:800}.player-profile-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:24px}.player-profile-actions button{border:1px solid rgba(255,255,255,.26);border-radius:11px;padding:12px;background:#fff;color:var(--navy);font-weight:800;display:flex;align-items:center;justify-content:center;gap:8px}.player-profile-actions button span{font-size:1.1rem}.player-profile-actions .danger-action{color:#bd1834;border-color:#e8b9c2}.player-file .player-profile-body{padding:28px}.player-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.player-facts>div{background:#f7f8fa;border:1px solid #eef0f3;border-radius:13px;padding:15px 16px;text-align:center;min-width:0}.player-facts small,.player-facts strong{display:block}.player-facts small{text-transform:uppercase;letter-spacing:.09em;color:#8994a5;font-weight:800;font-size:.62rem}.player-facts strong{margin-top:7px;font-size:.86rem;overflow-wrap:anywhere}.guardian-section{margin-top:25px}.guardian-section h4,.profile-section-head h4{font:800 1rem Manrope;margin:0}.guardian-section h4 span,.profile-section-head h4 span{color:var(--wine);margin-right:7px}.guardian-card{margin-top:11px;background:#f7f8fa;border:1px solid #eceef2;border-radius:12px;padding:15px 17px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px}.guardian-card strong{font-size:.86rem}.guardian-card a{color:var(--wine);font-weight:700;font-size:.76rem;text-decoration:none}.guardian-card small{color:var(--muted)}
.profile-competition-stats{margin-top:25px;border:1px solid var(--line);border-radius:15px;padding:20px;background:linear-gradient(180deg,#fff,#fbfcfe)}.competition-stat-totals{display:flex;gap:8px}.competition-stat-totals>span{min-width:88px;border-radius:10px;padding:8px 12px;background:#f4f6f9;text-align:center}.competition-stat-totals b,.competition-stat-totals small{display:block}.competition-stat-totals b{color:var(--navy);font:800 1rem Manrope}.competition-stat-totals small{margin-top:2px;color:var(--muted);font-size:.62rem;font-weight:800;text-transform:uppercase}.competition-team-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:16px}.competition-team-stats article{border:1px solid #e4e8ef;border-radius:13px;background:#fff;padding:14px;min-width:0}.competition-team-stats article>header{display:flex;align-items:center;justify-content:space-between;gap:8px}.competition-team-stats article>header small{color:var(--muted);font-size:.62rem}.competition-type{display:inline-block;border-radius:12px;padding:5px 8px;font-size:.62rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.competition-type.league{background:#e8edf7;color:#294b7a}.competition-type.selective{background:#fff1db;color:#936111}.competition-team-stats h5{margin:11px 0 13px;font:800 .92rem Manrope;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.competition-team-stats article>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.competition-team-stats article>div>span{border-radius:9px;background:#f7f8fa;padding:9px 11px}.competition-team-stats article>div b,.competition-team-stats article>div small{display:block}.competition-team-stats article>div b{font:800 1.15rem Manrope;color:var(--wine)}.competition-team-stats article>div small{margin-top:2px;color:var(--muted);font-size:.65rem}.competition-stats-empty{display:flex;align-items:center;gap:10px;margin-top:15px;border-radius:11px;background:#f7f8fa;padding:14px;color:var(--muted)}.competition-stats-empty>span{width:34px;height:34px;border-radius:9px;background:#e8edf7;color:var(--navy);display:grid;place-items:center}.competition-stats-empty p{margin:0;font-size:.78rem}
.profile-attendance,.profile-evaluation-section{margin-top:25px;border:1px solid var(--line);border-radius:15px;padding:20px}.profile-section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:15px;border-bottom:1px solid var(--line)}.profile-month-controls{display:grid;grid-template-columns:34px minmax(150px,1fr) 34px;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden}.profile-month-controls button{height:35px;border:0;background:#f7f8fa;color:var(--wine);font-size:1.15rem}.profile-month-controls strong{text-align:center;font-size:.75rem}.profile-attendance-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:16px 0}.profile-attendance-summary>div{border:1px solid var(--line);border-radius:10px;padding:11px;text-align:center}.profile-attendance-summary small,.profile-attendance-summary strong{display:block}.profile-attendance-summary small{text-transform:uppercase;font-size:.6rem;font-weight:800}.profile-attendance-summary strong{font:800 1.15rem Manrope;margin-top:5px}.profile-attendance-summary .present{color:var(--green);border-color:#c5e6d9}.profile-attendance-summary .absent{color:#bd263f;border-color:#f0ccd2}.profile-attendance-summary .justified{color:#9a6716;border-color:#ecdab5}.profile-attendance-summary .rate{color:#2861b5;border-color:#cad8ef}.profile-calendar-weekdays,.profile-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.profile-calendar-weekdays{margin-bottom:7px}.profile-calendar-weekdays span{text-align:center;color:#8994a5;font-size:.66rem;font-weight:800}.profile-calendar-day{min-height:47px;border-radius:9px;display:flex;align-items:center;justify-content:center;gap:4px;color:#738094;font-size:.75rem;border:1px solid transparent}.profile-calendar-day i{font-style:normal;font-size:.64rem;font-weight:900}.profile-calendar-day.present{background:#e8f7f1;color:#087957;border-color:#a9ddca}.profile-calendar-day.absent{background:#fff0f2;color:#b8213a;border-color:#efbdc6}.profile-calendar-day.justified{background:#fff8e9;color:#956217;border-color:#ead2a1}.profile-calendar-day.scheduled{background:#edf4ff;color:#2861b5;border-color:#c2d5f2}.profile-calendar-day.empty{visibility:hidden}.profile-calendar-legend{display:flex;flex-wrap:wrap;gap:13px;margin-top:14px;color:var(--muted);font-size:.65rem}.profile-calendar-legend span{display:flex;align-items:center;gap:5px}.profile-calendar-legend i{width:8px;height:8px;border-radius:2px}.profile-calendar-legend i.present{background:var(--green)}.profile-calendar-legend i.absent{background:#bd263f}.profile-calendar-legend i.justified{background:#c58a27}.profile-calendar-legend i.scheduled{background:#4e83ce}.profile-evaluation-section .profile-metrics{margin-top:18px}.profile-overall.inline,.profile-pending.inline{margin-left:auto}.profile-overall.inline{display:flex;align-items:center;gap:7px;color:var(--wine)}.profile-overall.inline strong{font-size:1.6rem}.profile-overall.inline small{color:var(--muted)}.profile-pending.inline{color:var(--wine);background:#f4ebee}.deactivate-confirm{display:grid;gap:15px;text-align:center;margin-top:18px}.deactivate-confirm>span{width:48px;height:48px;border-radius:50%;background:#fff0f2;color:#bd1834;display:grid;place-items:center;margin:auto;font-weight:900}.deactivate-confirm p{color:var(--muted);line-height:1.55;margin:0}.danger-button{background:#bd1834}.danger-button:hover{background:#971129}
@media(max-width:800px){.player-file{margin:0 -16px;border-radius:0}.player-file .player-profile-hero,.player-file .player-profile-body{padding:20px}.player-facts{grid-template-columns:1fr 1fr}.guardian-card{grid-template-columns:1fr}.player-profile-actions{grid-template-columns:1fr}.profile-section-head{align-items:flex-start;flex-direction:column}.profile-month-controls{width:100%}.profile-attendance,.profile-evaluation-section{padding:16px}.profile-calendar-day{min-height:39px}.student-row-actions{display:grid;gap:5px}}
@media(max-width:650px){.competition-team-stats{grid-template-columns:1fr}.competition-stat-totals{width:100%}.competition-stat-totals>span{flex:1}.profile-competition-stats{padding:16px}}
@media(max-width:500px){.player-identity{align-items:flex-start}.player-identity .player-profile-avatar{width:62px;height:62px}.player-identity h3{font-size:1.25rem}.player-facts{grid-template-columns:1fr 1fr}.profile-attendance-summary{grid-template-columns:1fr 1fr}.profile-calendar-weekdays,.profile-calendar-grid{gap:4px}.profile-calendar-day{min-height:34px;font-size:.68rem}.profile-calendar-day i{display:none}.competition-team-stats article>header{align-items:flex-start;flex-direction:column}.competition-team-stats h5{white-space:normal}}
.selective-player-link{border:0!important;background:none!important;padding:0!important;color:var(--ink)!important;font-size:.8rem!important;font-weight:800!important;text-align:left}.selective-player-link:hover{color:var(--wine)!important}

/* Evaluación cualitativa */
.evaluation-progress-count{background:#f4ebee;color:var(--wine);border-radius:12px;padding:11px 14px;text-align:center}.evaluation-progress-count strong,.evaluation-progress-count small{display:block}.evaluation-progress-count strong{font-size:.86rem}.evaluation-progress-count small{font-size:.62rem;color:var(--muted);margin-top:3px}.status.qualitative-complete{color:#176c4d;background:#e4f4ed}.qualitative-note{background:#edf1f7;color:#405a7d;border-radius:16px;padding:7px 10px;font-size:.68rem;font-weight:800}.qualitative-groups{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:18px}.qualitative-group{border:1px solid var(--line);border-radius:13px;overflow:hidden}.qualitative-group:first-child{grid-column:1/-1}.qualitative-group h5{margin:0;padding:12px 14px;background:#f6f7f9;color:var(--navy);font:800 .82rem Manrope}.qualitative-group>div{display:grid}.qualitative-group:first-child>div{grid-template-columns:1fr 1fr}.qualitative-group p{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:10px 13px;border-top:1px solid var(--line);font-size:.76rem;min-width:0}.qualitative-group:first-child p:nth-child(even){border-left:1px solid var(--line)}.qualitative-group p span{font-weight:700}.qualitative-group p strong{white-space:nowrap;border-radius:13px;padding:5px 8px;font-size:.65rem}.level-process{color:#a03b4d;background:#fae8eb}.level-regular{color:#996414;background:#fbf0db}.level-good{color:#2861a8;background:#e8f0fb}.level-outstanding{color:#087957;background:#e4f4ed}.qualitative-observations{margin-top:15px;background:#f7f8fa;border-radius:13px;padding:17px}.qualitative-observations p{color:var(--muted);font-size:.8rem;line-height:1.55}.qualitative-observations small{color:var(--muted);font-size:.67rem}
.modal:has(.qualitative-evaluation-form){width:min(820px,100%)}.qualitative-evaluation-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.qualitative-evaluation-form>.form-help,.qualitative-evaluation-form>.evaluation-notes-field,.qualitative-evaluation-form>.modal-submit{grid-column:1/-1}.qualitative-evaluation-form fieldset{border:1px solid var(--line);border-radius:13px;padding:12px;margin:0}.qualitative-evaluation-form fieldset:first-of-type{grid-column:1/-1}.qualitative-evaluation-form legend{padding:0 7px;color:var(--wine);font-size:.74rem;font-weight:800}.qualitative-evaluation-form fieldset>div{display:grid;gap:8px}.qualitative-evaluation-form fieldset:first-of-type>div{grid-template-columns:1fr 1fr}.qualitative-evaluation-form fieldset label{display:grid;grid-template-columns:minmax(110px,1fr) minmax(135px,auto);align-items:center;gap:9px}.qualitative-evaluation-form fieldset label span,.evaluation-notes-field>span{font-size:.72rem;font-weight:700;color:var(--ink)}.qualitative-evaluation-form select,.qualitative-evaluation-form textarea{border:1px solid var(--line);border-radius:8px;padding:9px;background:#fff;color:var(--ink)}.evaluation-notes-field{display:grid;gap:6px}.evaluation-notes-field textarea{min-height:85px;resize:vertical}
.evaluation-achievements{grid-column:1/-1;border:1px solid #dce3ee;border-radius:14px;background:linear-gradient(135deg,#f8faff,#fff);padding:15px}.evaluation-achievements>header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:12px;border-bottom:1px solid #e4e8ef}.evaluation-achievements>header strong,.evaluation-achievements>header span{display:block}.evaluation-achievements>header strong{margin-top:4px;color:var(--navy);font-size:.82rem}.evaluation-achievements>header>div:last-child{display:flex;gap:8px}.evaluation-achievements>header>div:last-child span{border-radius:9px;background:#fff;padding:8px 11px;color:var(--muted);font-size:.75rem}.evaluation-achievements>header>div:last-child b{color:var(--wine);font-size:.95rem}.evaluation-achievements>div{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.evaluation-achievements article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid #e4e8ef;border-radius:10px;background:#fff;padding:10px}.evaluation-achievements article strong{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.evaluation-achievements article small{color:var(--muted);font-size:.68rem;white-space:nowrap}.evaluation-achievements>p{margin:12px 0 0;color:var(--muted);font-size:.78rem}
@media(max-width:800px){.qualitative-groups,.qualitative-evaluation-form{grid-template-columns:1fr}.qualitative-group:first-child,.qualitative-evaluation-form fieldset:first-of-type{grid-column:1}.qualitative-group:first-child>div,.qualitative-evaluation-form fieldset:first-of-type>div,.evaluation-achievements>div{grid-template-columns:1fr}.qualitative-group:first-child p:nth-child(even){border-left:0}.evaluation-progress-count{align-self:flex-start}.qualitative-evaluation-form>.form-help,.qualitative-evaluation-form>.evaluation-notes-field,.qualitative-evaluation-form>.modal-submit,.evaluation-achievements{grid-column:1}.evaluation-achievements>header{align-items:flex-start;flex-direction:column}.evaluation-achievements>header>div:last-child{width:100%}.evaluation-achievements>header>div:last-child span{flex:1;text-align:center}}
@media(max-width:500px){.qualitative-group p{align-items:flex-start;flex-direction:column}.qualitative-evaluation-form fieldset label{grid-template-columns:1fr}.qualitative-evaluation-form select{width:100%}}
.profile-report-cta{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding:15px 16px;border:1px solid #eadfe2;border-radius:13px;background:#fff9fa}.profile-report-cta strong,.profile-report-cta small{display:block}.profile-report-cta strong{font-size:.82rem}.profile-report-cta small{margin-top:4px;color:var(--muted);font-size:.68rem}.profile-report-cta button{white-space:nowrap}.evaluation-report-panel{display:grid;grid-template-columns:58px 1fr;gap:15px;align-items:start;margin-top:18px}.report-ready-icon{width:58px;height:58px;border-radius:14px;background:var(--wine);color:#fff;display:grid;place-items:center;font:800 .78rem Manrope}.evaluation-report-panel h3{font:800 1rem Manrope;margin:5px 0}.evaluation-report-panel p{color:var(--muted);font-size:.78rem;line-height:1.5;margin:0}.evaluation-report-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:5px}.evaluation-report-actions button{border:0;border-radius:10px;padding:12px;font-weight:800}.report-channel.email{background:#e9f0fb;color:#285f9e}.report-channel.whatsapp{background:#e2f5eb;color:#087957}.evaluation-report-panel>small{grid-column:1/-1;background:#f6f7f9;border-radius:10px;padding:11px;color:var(--muted);font-size:.66rem;line-height:1.5}
.evaluation-report-actions.match-report-actions{grid-template-columns:repeat(2,1fr)}
@media(max-width:650px){.profile-report-cta{align-items:stretch;flex-direction:column}.profile-report-cta button{width:100%}.evaluation-report-actions{grid-template-columns:1fr}}
.evaluation-period-control{min-width:285px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:11px 13px;box-shadow:var(--shadow)}.evaluation-period-control label{display:block;color:var(--muted);font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.evaluation-period-control select{width:100%;margin:5px 0 6px;border:0;background:#f6f7f9;border-radius:8px;padding:9px 10px;color:var(--navy);font-weight:800}.evaluation-period-control small{display:block;color:var(--muted);font-size:.66rem}.evaluation-period-control small b{border-radius:10px;padding:3px 7px}.period-open{color:#087957;background:#e4f4ed}.period-closed{color:#5f6878;background:#eceff3}.period-upcoming{color:#2861a8;background:#e8f0fb}.profile-evaluation-period{display:block;margin-top:5px;color:var(--muted);font-size:.68rem}.player-evaluation-history{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:15px;padding:11px 13px;background:#f7f8fa;border-radius:11px}.player-evaluation-history>span{font-size:.68rem;font-weight:800;color:var(--muted)}.player-evaluation-history>div{display:flex;flex-wrap:wrap;gap:7px}.player-evaluation-history button{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:14px;padding:6px 9px;font-size:.66rem;font-weight:800}.player-evaluation-history button.active{background:var(--navy);border-color:var(--navy);color:#fff}.player-profile-actions button:disabled{opacity:.58;cursor:not-allowed}
@media(max-width:800px){.evaluation-period-control{width:100%;min-width:0}.player-evaluation-history{align-items:flex-start;flex-direction:column}}

/* Equipos de competencia Liga INNDE */
.league-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.league-flow article{display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:13px;background:#fff;padding:13px 14px}.league-flow article>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#eef0f4;color:var(--navy);font:800 .78rem Manrope;flex:none}.league-flow article.active{border-color:#dfbdc6;background:#fff8fa}.league-flow article.active>span{background:var(--wine);color:#fff}.league-flow strong,.league-flow small{display:block}.league-flow strong{font-size:.78rem}.league-flow small{margin-top:3px;color:var(--muted);font-size:.64rem;line-height:1.35}.league-team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:18px}.league-team-card{padding:19px}.league-team-card>header{display:grid;grid-template-columns:43px 1fr auto;gap:12px;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--line)}.league-team-card>header h2{font-size:1rem}.league-team-card>header>b{width:36px;height:36px;border-radius:11px;background:#f4ebee;color:var(--wine);display:grid;place-items:center}.league-team-icon{width:43px;height:43px;border-radius:12px;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:1.1rem}.league-team-sources{display:flex;gap:18px;padding:12px 0;color:var(--muted);font-size:.68rem}.league-team-sources span{display:flex;align-items:center;gap:6px}.league-team-sources b{color:var(--ink)}.league-team-sources .venue-dot{display:inline-block}.league-roster-preview{display:grid;gap:4px;min-height:88px}.league-roster-preview>button{display:grid;grid-template-columns:31px 1fr;gap:9px;align-items:center;border:0;background:none;text-align:left;padding:5px;border-radius:8px;color:var(--ink)}.league-roster-preview>button:hover{background:#f7f8fa}.league-roster-preview .initials{width:31px;height:31px;font-size:.6rem}.league-roster-preview strong,.league-roster-preview small{display:block}.league-roster-preview strong{font-size:.72rem}.league-roster-preview small{margin-top:2px;color:var(--muted);font-size:.6rem}.league-more{padding:7px 5px;color:var(--wine);font-weight:800}.league-manage{width:100%;margin-top:14px}.league-empty{grid-column:1/-1;text-align:center;padding:45px 20px}.league-empty>span{width:58px;height:58px;border-radius:17px;background:#f4ebee;color:var(--wine);display:grid;place-items:center;margin:0 auto 13px;font-size:1.4rem}.league-empty h3{font:800 1rem Manrope}.league-empty p{color:var(--muted);font-size:.78rem;margin:7px 0 17px}.league-roster-editor{display:grid;gap:14px;margin-top:16px}.league-roster-filters{display:grid;grid-template-columns:1.4fr 1fr 1.2fr;gap:8px}.league-roster-filters .search-box{width:auto}.league-roster-filters select{min-width:0}.league-roster-count{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f7f8fa;border-radius:10px;padding:10px 12px}.league-roster-count strong{color:var(--wine);font-size:.78rem}.league-roster-count small{color:var(--muted);font-size:.66rem}.league-player-picker{max-height:390px;overflow:auto;border:1px solid var(--line);border-radius:12px}.league-player-picker>label{display:grid;grid-template-columns:20px 34px 1fr;align-items:center;gap:9px;padding:9px 11px;border-bottom:1px solid var(--line);cursor:pointer}.league-player-picker>label:last-child{border-bottom:0}.league-player-picker>label:hover{background:#faf7f8}.league-player-picker input{accent-color:var(--wine)}.league-player-picker .initials{width:34px;height:34px;font-size:.62rem}.league-player-picker strong,.league-player-picker small{display:block}.league-player-picker strong{font-size:.75rem}.league-player-picker small{color:var(--muted);font-size:.62rem;margin-top:2px}.modal:has(.league-roster-editor){width:min(850px,100%)}
@media(max-width:800px){.league-flow,.league-team-grid{grid-template-columns:1fr}.league-roster-filters{grid-template-columns:1fr 1fr}.league-roster-filters .search-box{grid-column:1/-1}}
@media(max-width:500px){.league-flow article:not(.active){display:none}.league-roster-filters{grid-template-columns:1fr}.league-roster-filters .search-box{grid-column:1}.league-roster-count{align-items:flex-start;flex-direction:column}.league-player-picker{max-height:340px}}
.attendance-permission-groups.league-permissions{grid-template-columns:1fr}.permission-empty{border:1px dashed #d7c6cb;border-radius:11px;background:#fff9fa;padding:16px}.permission-empty strong,.permission-empty small{display:block}.permission-empty strong{font-size:.78rem;color:var(--wine)}.permission-empty small{margin-top:5px;color:var(--muted);font-size:.68rem}

/* Operación diaria: asistencia, historial, convocatorias y archivo */
.modal{max-height:calc(100vh - 40px);overflow:auto}.attendance-sheet-actions{display:flex;gap:9px;align-items:center}.attendance-sheet-head>div:first-child>small{display:block;margin-top:6px;color:var(--muted);font-size:.7rem}.attendance-status.late{color:#2861a8;border-color:#c4d6ef;background:#f2f7ff}.attendance-alerts:empty{display:none}.attendance-alerts{display:grid;grid-template-columns:270px 1fr;gap:12px;margin-bottom:18px;padding:14px 16px;border:1px solid #efccd2;border-radius:13px;background:#fff7f8}.attendance-alert-head{display:flex;align-items:center;gap:11px}.attendance-alert-head>span{width:34px;height:34px;border-radius:10px;background:#bd263f;color:#fff;display:grid;place-items:center;font-weight:900}.attendance-alert-head strong,.attendance-alert-head small{display:block}.attendance-alert-head strong{font-size:.8rem;color:#971129}.attendance-alert-head small{margin-top:3px;color:var(--muted);font-size:.67rem}.attendance-alert-list{display:flex;gap:8px;overflow:auto}.attendance-alert-list button{min-width:190px;border:1px solid #efd6db;border-radius:10px;background:#fff;padding:9px 11px;text-align:left}.attendance-alert-list strong,.attendance-alert-list small{display:block}.attendance-alert-list strong{font-size:.72rem}.attendance-alert-list small{margin-top:3px;color:var(--muted);font-size:.61rem}.attendance-alert-list b{display:block;margin-top:6px;color:#bd263f;font-size:.66rem}.attendance-history-panel{margin-top:18px;padding:0;overflow:hidden}.attendance-history-panel .panel-head{padding:20px 22px 0}.attendance-history-filters{display:grid;grid-template-columns:1.2fr 1.2fr 1fr .9fr .9fr;gap:9px;padding:0 22px 18px}.attendance-history-filters select,.attendance-history-filters input{min-width:0;border:1px solid var(--line);border-radius:9px;background:#fff;padding:9px;color:var(--ink)}.history-correction{display:block;max-width:230px;white-space:normal;color:#9a6716}.profile-attendance-summary{grid-template-columns:repeat(5,1fr)}.profile-attendance-summary .late{color:#2861b5;border-color:#cad8ef}.profile-attendance-summary .rate{color:var(--wine);border-color:#e5c8cf}.profile-calendar-day.late{background:#edf4ff;color:#2861b5;border-color:#c2d5f2}.profile-calendar-legend i.late{background:#4e83ce}.league-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.league-card-actions .league-manage{margin-top:0}.league-team-card.archived{opacity:.72;background:#f7f8fa}.league-team-card.archived .league-team-icon{background:#778196}.league-card-actions .restore-team{grid-column:1/-1}.convocation-editor{display:grid;gap:14px;margin-top:18px}.convocation-list{max-height:440px;overflow:auto;border:1px solid var(--line);border-radius:12px}.convocation-list>label{display:grid;grid-template-columns:34px 1fr minmax(145px,auto);gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}.convocation-list>label:last-child{border-bottom:0}.convocation-list strong,.convocation-list small{display:block}.convocation-list strong{font-size:.76rem}.convocation-list small{margin-top:2px;color:var(--muted);font-size:.62rem}.convocation-list select{border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff}.convocation-editor>.primary-button{width:100%}.modal:has(.convocation-editor){width:min(720px,100%)}.match-actions{display:flex;flex-wrap:wrap;gap:5px 10px;min-width:205px}.match-actions .danger{color:#bd263f}.match-actions button:disabled{opacity:.4;cursor:not-allowed}.match-cancelled{opacity:.6}.matches-table td small,#matchesTable td small{display:block;margin-top:3px;color:var(--muted);white-space:normal;max-width:190px}
@media(max-width:900px){.attendance-history-filters{grid-template-columns:1fr 1fr}.attendance-history-filters select:first-child{grid-column:1/-1}.attendance-alerts{grid-template-columns:1fr}.profile-attendance-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.attendance-sheet-head{align-items:stretch;flex-direction:column}.attendance-sheet-actions{display:grid;grid-template-columns:1fr 1fr}.attendance-history-filters{grid-template-columns:1fr}.attendance-history-filters select:first-child{grid-column:1}.league-card-actions{grid-template-columns:1fr}.convocation-list>label{grid-template-columns:34px 1fr}.convocation-list select{grid-column:1/-1;width:100%}.profile-attendance-summary{grid-template-columns:1fr 1fr}}

/* Configuración de temporada */
.match-actions .task-complete{color:#087957;background:#e7f5ef;border-radius:8px;padding:5px 7px;text-decoration:none;font-weight:900}.match-actions .task-complete:hover{background:#d8eee4;text-decoration:none}.match-actions .whatsapp-copy.post-game{font-weight:900}.penalty-toggle{border:1px solid #d9e1ec;border-radius:12px;padding:12px;background:#f7f9fc}.penalty-toggle span strong,.penalty-toggle span small{display:block}.penalty-toggle span small{margin-top:3px;color:var(--muted);font-size:.68rem}.penalty-score-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;border:1px solid #dce5ef;border-radius:12px;background:#f7fafc}.penalty-score-fields[hidden],.penalty-toggle[hidden]{display:none}
.match-actions .delete-match{margin-top:3px}.match-delete-confirm>label{display:flex;align-items:flex-start;gap:9px;width:100%;max-width:470px;border:1px solid #efccd2;border-radius:10px;background:#fff7f8;padding:11px 12px;color:#8f122d;font-size:.78rem;font-weight:800;text-align:left}.match-delete-confirm>label input{margin-top:2px;accent-color:var(--wine)}
.configuration-welcome{margin-top:16px;padding:20px 22px;border-radius:16px;background:linear-gradient(135deg,#17243e,#293f68);color:#fff;box-shadow:0 12px 30px rgba(17,29,52,.15)}.configuration-welcome>div:first-child{display:flex;gap:14px;align-items:center}.configuration-welcome-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:var(--wine);font-size:1.1rem;flex:none}.configuration-welcome h3{margin:0;font:800 1rem Manrope}.configuration-welcome p{margin:5px 0 0;max-width:760px;color:#d6deeb;font-size:.875rem;line-height:1.5}.configuration-summary{display:grid;grid-template-columns:1.1fr 1fr .7fr;gap:8px;margin-top:17px}.configuration-summary>span{padding:10px 12px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.07)}.configuration-summary small,.configuration-summary strong{display:block}.configuration-summary small{color:#bac6d8;font-size:.75rem}.configuration-summary strong{margin-top:4px;font-size:.875rem}.configuration-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:14px}.configuration-steps button{min-width:0;display:flex;align-items:center;gap:9px;padding:11px;border:1px solid var(--line);border-radius:11px;background:#fff;text-align:left;color:var(--navy);transition:.18s ease}.configuration-steps button:hover{border-color:#c999a4;transform:translateY(-1px)}.configuration-steps button.active{border-color:var(--wine);background:#f8eef1;color:var(--wine);box-shadow:0 7px 17px rgba(139,25,50,.09)}.configuration-steps b{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;background:#f0f2f5;font:800 .75rem Manrope;flex:none}.configuration-steps button.active b{background:var(--wine);color:#fff}.configuration-steps span,.configuration-steps strong,.configuration-steps small{display:block;min-width:0}.configuration-steps strong{font-size:.875rem}.configuration-steps small{margin-top:2px;color:var(--muted);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.configuration-grid{max-width:1040px;margin:16px auto 0}.config-card{display:grid;align-content:start;gap:17px;padding:23px}.config-card[hidden]{display:none}.config-card-head{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line)}.config-card-head>span{width:38px;height:38px;border-radius:11px;background:#f4ebee;color:var(--wine);display:grid;place-items:center;font:800 .75rem Manrope;flex:none}.config-card-head h3{margin:0;font:800 1rem Manrope}.config-card-head small{display:block;margin-top:4px;color:var(--muted);font-size:.8125rem}.config-card>label,.config-two label,.schedule-config-row label,.evaluation-period-config-row label{display:grid;gap:7px;color:var(--navy);font-size:.875rem;font-weight:800}.config-card label>small{color:var(--muted);font-size:.78rem;font-weight:600}.config-card input,.config-card select,.config-card textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:11px;font-size:.875rem}.config-card input:focus,.config-card select:focus,.config-card textarea:focus{outline:2px solid rgba(139,25,50,.15);border-color:var(--wine)}.config-card textarea{resize:vertical;line-height:1.5}.config-card>.primary-button{justify-self:start}.config-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.config-explanation{display:flex;gap:8px;align-items:flex-start;padding:11px 13px;border-radius:10px;background:#fff7e8;color:#845b16;font-size:.8125rem}.config-explanation strong{white-space:nowrap}.schedule-config-list{display:grid;gap:16px}.schedule-config-venue{border:1px solid var(--line);border-radius:12px;overflow:hidden}.schedule-config-venue>header{display:flex;align-items:center;gap:8px;background:#f7f8fa;padding:12px 14px}.schedule-config-venue>header strong{font-size:.875rem}.schedule-config-row{display:grid;grid-template-columns:minmax(170px,1.3fr) minmax(165px,1fr) 110px 110px minmax(150px,1fr);gap:10px;align-items:end;padding:12px 14px;border-top:1px solid var(--line)}.schedule-config-row>div strong,.schedule-config-row>div small{display:block}.schedule-config-row>div strong{font-size:.875rem}.schedule-config-row>div small{margin-top:3px;color:var(--muted);font-size:.75rem}.evaluation-period-config-list{display:grid;gap:8px}.evaluation-period-config-row{display:grid;grid-template-columns:minmax(190px,1.3fr) repeat(3,minmax(145px,1fr));gap:10px;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fafbfc}.dashboard-empty{min-height:150px;display:grid;place-items:center;align-content:center;gap:7px}.dashboard-empty span{width:34px;height:34px;border-radius:50%;background:#e7f5ef;color:var(--green);display:grid;place-items:center}.dashboard-empty p{margin:0;color:var(--muted);font-size:.75rem;text-align:center}
.configuration-current-head{position:relative}.configuration-current-head>div{min-width:0}.configuration-current-head>div>small{display:block;margin-bottom:5px;color:#b9c6da;font-size:.75rem;font-weight:800;letter-spacing:.09em}.current-season-badge{margin-left:auto;padding:6px 10px;border-radius:16px;background:#dff5eb;color:#087957;font-size:.78rem;font-weight:800}.current-season-badge.upcoming{background:#e7eefb;color:#315b97}.current-season-badge.ended{background:#fff0d8;color:#926117}.current-season-badge.none{background:#f1f2f5;color:#667085}.current-season-actions{display:flex;gap:9px;margin-top:13px}.current-season-actions[hidden]{display:none}.current-season-actions button{border:1px solid rgba(255,255,255,.22);border-radius:9px;background:rgba(255,255,255,.08);color:#fff;padding:10px 13px;font-weight:800}.current-season-actions button:hover{background:rgba(255,255,255,.14)}.current-season-actions button.danger{color:#ffd9df;border-color:rgba(255,188,201,.28)}.season-lock-message,.season-delete-message{display:grid;gap:14px;margin-top:20px}.season-lock-message>span,.season-delete-message>span{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#f5e9ec;color:var(--wine);font-size:1.25rem;font-weight:900}.season-lock-message p,.season-delete-message p{margin:0;color:var(--ink);line-height:1.55}.season-lock-message small,.season-delete-message small{color:var(--muted);font-size:.82rem;line-height:1.5}.season-lock-message button{justify-self:start}.season-delete-message label{display:flex;align-items:flex-start;gap:9px;padding:12px;border-radius:10px;background:#fff4f6;color:#8f122d;font-size:.86rem;font-weight:700}.season-delete-message input{margin-top:3px}.danger-button{background:#b4233a}.danger-button:hover{background:#8f122d}
@media(max-width:1100px){.configuration-steps{grid-template-columns:repeat(3,1fr)}.schedule-config-row{grid-template-columns:minmax(160px,1fr) repeat(2,minmax(110px,1fr))}.schedule-config-row>label:first-of-type{grid-column:span 2}.schedule-config-row>label:last-child{grid-column:span 2}.evaluation-period-config-row{grid-template-columns:1fr 1fr}}
@media(max-width:750px){.configuration-summary{grid-template-columns:1fr}.configuration-steps{display:flex;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x mandatory}.configuration-steps button{min-width:165px;scroll-snap-align:start}.schedule-config-row,.evaluation-period-config-row{grid-template-columns:1fr 1fr}.schedule-config-row>div,.schedule-config-row>label:first-of-type,.schedule-config-row>label:last-child{grid-column:1/-1}.config-card{padding:18px}}
@media(max-width:480px){.configuration-welcome{padding:17px}.configuration-welcome>div:first-child{align-items:flex-start}.configuration-current-head{display:grid!important;grid-template-columns:44px 1fr}.current-season-badge{grid-column:2;margin:8px 0 0;justify-self:start}.current-season-actions{display:grid}.current-season-actions button{width:100%}.config-two,.schedule-config-row,.evaluation-period-config-row{grid-template-columns:1fr}.schedule-config-row>div,.schedule-config-row>label:first-of-type,.schedule-config-row>label:last-child{grid-column:1}.config-card>.primary-button{width:100%}.config-explanation{display:grid}.season-lock-message button{width:100%}}

/* Portal para familias */
.profile-toolbar-actions{display:flex;gap:9px}.family-batch{display:grid;gap:16px;margin-top:14px}.family-batch-intro{margin:0;color:var(--muted);font-size:.84rem;line-height:1.55}.family-batch-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.family-batch-summary article{border:1px solid var(--line);border-radius:12px;padding:13px;text-align:center;background:#f8f9fb}.family-batch-summary b,.family-batch-summary span{display:block}.family-batch-summary b{font:800 1.55rem Manrope;color:var(--navy)}.family-batch-summary span{margin-top:4px;color:var(--muted);font-size:.7rem}.family-batch-summary .ready{background:#edf8f3;border-color:#c9e7da}.family-batch-summary .ready b{color:#087957}.family-batch-summary .warning{background:#fff7e8;border-color:#ead6ac}.family-batch-summary .warning b{color:#986315}.family-batch-issues{border:1px solid var(--line);border-radius:12px;overflow:hidden}.family-batch-issues header,.family-batch-issues>div{display:flex;justify-content:space-between;gap:12px;padding:10px 12px}.family-batch-issues header{background:#f6f7f9}.family-batch-issues header strong{font-size:.78rem}.family-batch-issues header span{font-size:.72rem;font-weight:800;color:var(--wine)}.family-batch-issues>div{display:grid;border-top:1px solid var(--line)}.family-batch-issues b{font-size:.76rem}.family-batch-issues small{color:var(--muted);font-size:.69rem}.family-batch-issues p{margin:0;padding:9px 12px;border-top:1px solid var(--line);color:var(--muted);font-size:.7rem}.profile-avatar.familia{background:#e7f5ef;color:#087957}.role-pill.familia{background:#e7f5ef;color:#087957}.team-access-tag.family-access{background:#edf6f2;color:#087957;border-color:#cce6da}.family-portal{display:grid;gap:18px;max-width:1240px;margin:auto}.family-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 25px;border-radius:17px;background:linear-gradient(135deg,#111d34,#243a61);color:#fff;box-shadow:0 14px 34px rgba(17,29,52,.18)}.family-player{display:flex;align-items:center;gap:15px}.family-player>span{width:58px;height:58px;border-radius:17px;display:grid;place-items:center;background:var(--wine);font:800 1.05rem Manrope}.family-player small{display:block;color:#bcc7d8;font-size:.8rem}.family-player h2{margin:4px 0;font:800 1.45rem Manrope}.family-player p{margin:0;color:#d9e0ea;font-size:.88rem}.family-privacy{display:grid;gap:4px;text-align:right;padding:10px 13px;border:1px solid rgba(255,255,255,.14);border-radius:11px;background:rgba(255,255,255,.07)}.family-privacy b{font-size:.82rem}.family-privacy span{color:#c6d0df;font-size:.76rem}.family-overview,.family-main-grid,.family-bottom-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.family-next-card{min-height:210px;border-radius:15px;padding:22px;color:#fff;background:linear-gradient(145deg,var(--wine),#671024);display:grid;grid-template-columns:auto 1fr;align-content:center;gap:15px 18px;box-shadow:var(--shadow)}.family-next-card.match{background:linear-gradient(145deg,#17243e,#304b77)}.family-card-kicker{grid-column:1/-1;font-size:.75rem;letter-spacing:.12em;font-weight:800;color:#f2cbd3}.family-next-date{width:66px;height:72px;border-radius:13px;background:#fff;color:var(--navy);display:grid;place-items:center;align-content:center}.family-next-date b{font:800 1.65rem/1 Manrope}.family-next-date span{text-transform:uppercase;font-size:.75rem;font-weight:800;color:var(--wine)}.family-next-card h3{margin:2px 0 6px;font:800 1.08rem Manrope}.family-next-card p{margin:0 0 7px;color:#f0dce1;font-size:.86rem;text-transform:capitalize}.family-next-card small{font-size:.8rem}.family-no-activity{grid-column:1/-1}.family-attendance-card{display:grid;align-content:start}.family-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.family-section-head h3{margin:4px 0 0;font:800 1rem Manrope}.family-month-controls{display:flex;gap:5px}.family-month-controls button{width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--navy);font-size:1.15rem}.family-rate{display:flex;align-items:baseline;gap:10px;padding-bottom:14px;border-bottom:1px solid var(--line)}.family-rate strong{font:800 2.2rem Manrope;color:var(--wine)}.family-rate span{color:var(--muted);font-size:.82rem}.family-mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.family-mini-stats span{padding:9px;border-radius:9px;background:#f7f8fa;color:var(--muted);font-size:.76rem}.family-mini-stats b{color:var(--navy);margin-right:3px}.family-main-grid{grid-template-columns:1.2fr .8fr}.family-agenda,.family-notices,.family-record,.family-evaluation{padding:20px}.family-event-list{display:grid}.family-event{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.family-event:first-child{border-top:0}.family-event-icon{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:#f3e8eb;color:var(--wine)}.family-event-icon.match{background:#e8edf5;color:var(--navy)}.family-event strong{font-size:.86rem}.family-event p{margin:4px 0 6px;color:var(--muted);font-size:.78rem;text-transform:capitalize}.family-call-status{display:inline-block;border-radius:12px;padding:4px 8px;font-size:.72rem;font-weight:800;background:#fff2db;color:#986315}.family-call-status.confirmed,.family-call-status.attended{background:#e4f4ed;color:#087957}.family-call-status.unavailable{background:#fae8eb;color:#a3263c}.family-response{display:flex;gap:6px}.family-response button{border:1px solid var(--line);border-radius:9px;background:#fff;padding:8px 10px;color:var(--navy);font-size:.75rem;font-weight:800}.family-response button.selected{border-color:var(--wine);background:#f8eef1;color:var(--wine)}.family-ready,.family-pending,.family-doc-count{border-radius:13px;padding:5px 8px;font-size:.72rem;font-weight:800}.family-ready{background:#e4f4ed;color:#087957}.family-pending,.family-doc-count.pending{background:#fff2db;color:#986315}.family-levels{display:grid;gap:9px}.family-levels>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px;border:1px solid var(--line);border-radius:10px}.family-levels span{font-size:.8rem;font-weight:700}.family-levels strong{border-radius:12px;padding:5px 8px;font-size:.72rem}.family-evaluation blockquote{margin:14px 0;padding:12px 14px;border-left:3px solid var(--wine);background:#faf7f8;color:var(--muted);font-size:.82rem;line-height:1.5}.family-report-button{width:100%}.family-evaluation-empty{text-align:center;padding:25px 12px;color:var(--muted)}.family-evaluation-empty>span,.family-empty>span{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;margin:auto;background:#f4ebee;color:var(--wine);font-size:1.2rem}.family-evaluation-empty p{font-size:.82rem}.family-bottom-grid{align-items:start}.family-notices>article{position:relative;padding:14px 0;border-top:1px solid var(--line)}.family-notices>article:first-of-type{border-top:0}.family-notices>article>span{display:inline-block;border-radius:11px;padding:4px 7px;background:#f4ebee;color:var(--wine);font-size:.7rem;font-weight:800}.family-notices>article>small{float:right;color:var(--muted);font-size:.72rem}.family-notices h4{margin:9px 0 5px;font-size:.88rem}.family-notices p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.5}.family-contact-data{display:grid;grid-template-columns:1fr 1fr;gap:8px}.family-contact-data>div{padding:10px;border-radius:9px;background:#f7f8fa;min-width:0}.family-contact-data small,.family-contact-data strong{display:block}.family-contact-data small{color:var(--muted);font-size:.72rem}.family-contact-data strong{margin-top:4px;font-size:.79rem;overflow-wrap:anywhere}.family-document-list{display:grid;gap:7px;margin-top:14px}.family-document-list>div{display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:9px}.family-document-list>div>span{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;font-weight:900}.family-document-list .done>span{background:#e4f4ed;color:#087957}.family-document-list .pending>span{background:#fff2db;color:#986315}.family-document-list strong{font-size:.8rem}.family-document-list small{font-size:.72rem;color:var(--muted)}.family-empty{text-align:center;padding:55px 20px}.family-empty h2{font:800 1.15rem Manrope}.family-empty p,.family-empty-inline{color:var(--muted);font-size:.82rem}.family-empty-inline{text-align:center;padding:28px}
.family-overview{grid-template-columns:.82fr 1.38fr}.family-attendance-help{margin:-7px 0 14px;color:var(--muted);font-size:.875rem}.family-attendance-types{display:grid;grid-template-columns:1fr 1fr;gap:10px}.family-attendance-type{min-width:0;padding:14px;border:1px solid #eadde1;border-radius:12px;background:#fffafb}.family-attendance-type.matches{border-color:#d8e1ef;background:#f8faff}.family-attendance-type>header{display:flex;align-items:center;gap:9px;margin-bottom:13px}.family-attendance-type>header>span{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#f4e7eb;color:var(--wine);font-size:1rem}.family-attendance-type.matches>header>span{background:#e7edf7;color:#294b7a}.family-attendance-type header strong,.family-attendance-type header small{display:block}.family-attendance-type header strong{font-size:.875rem}.family-attendance-type header small{margin-top:2px;color:var(--muted);font-size:.75rem}.family-attendance-type .family-rate{gap:7px;padding-bottom:11px}.family-attendance-type .family-rate strong{font-size:1.75rem}.family-attendance-type.matches .family-rate strong{color:#294b7a}.family-attendance-type .family-rate span{font-size:.78rem}.family-attendance-type .family-mini-stats{gap:6px;margin-top:11px}.family-attendance-type .family-mini-stats span{padding:8px;font-size:.75rem}
@media(max-width:960px){.family-overview,.family-main-grid,.family-bottom-grid{grid-template-columns:1fr}.family-event{grid-template-columns:42px 1fr}.family-response{grid-column:2;flex-wrap:wrap}}
@media(max-width:650px){.profile-toolbar-actions{width:100%;display:grid;grid-template-columns:1fr}.family-batch-summary{grid-template-columns:1fr}.family-hero{align-items:flex-start;flex-direction:column;padding:19px}.family-privacy{text-align:left;width:100%}.family-player{align-items:flex-start}.family-player>span{width:50px;height:50px}.family-player h2{font-size:1.2rem}.family-next-card{min-height:185px;padding:18px}.family-attendance-types{grid-template-columns:1fr}.family-event{grid-template-columns:38px 1fr}.family-event-icon{width:38px;height:38px}.family-response{grid-column:1/-1}.family-response button{flex:1}.family-contact-data{grid-template-columns:1fr}.family-document-list>div{grid-template-columns:28px 1fr}.family-document-list small{grid-column:2}.family-mini-stats{grid-template-columns:1fr 1fr}}

/* Organización y eliminación de usuarios */
.profile-owner{margin-bottom:18px}.profile-owner:empty{display:none}.profile-owner-label,.profile-list-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:10px}.profile-owner-label small{color:var(--muted);font-size:.72rem}.profile-director-card{display:grid;grid-template-columns:minmax(230px,1.2fr) minmax(220px,.9fr) minmax(220px,1fr);align-items:center}.profile-director-card .profile-teams{min-height:0}.profile-subnav{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0 18px;padding:6px;border:1px solid var(--line);border-radius:15px;background:#eef1f5}.profile-subnav button{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;border:0;border-radius:11px;padding:11px 13px;background:transparent;color:var(--muted);text-align:left;font:inherit;cursor:pointer}.profile-subnav button>span{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:rgba(255,255,255,.7)}.profile-subnav button strong{font-size:.84rem}.profile-subnav button small{min-width:25px;border-radius:12px;padding:4px 7px;background:#dfe4eb;color:var(--navy);font-size:.68rem;font-weight:800;text-align:center}.profile-subnav button.active{background:#fff;color:var(--navy);box-shadow:0 3px 10px rgba(23,36,62,.08)}.profile-subnav button.active>span{background:#f4e9ec;color:var(--wine)}.profile-list-heading{align-items:center}.profile-list-heading h3{margin:3px 0 0;font:800 1.05rem Manrope}.profile-card-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:auto}.profile-card-actions .profile-edit{margin-top:0}.profile-delete{border:0;background:transparent;color:#a5223d;padding:8px;font:800 .74rem DM Sans,sans-serif;cursor:pointer}.profile-delete:hover{background:#fff0f2;border-radius:8px}.profile-empty{grid-column:1/-1;display:grid;justify-items:center;text-align:center;padding:38px 20px}.profile-empty>span,.delete-profile-confirm>span{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#fff0f2;color:#a5223d;font-size:1.25rem;font-weight:900}.profile-empty strong{margin-top:12px}.profile-empty p{margin:5px 0 0;color:var(--muted);font-size:.78rem}.delete-profile-confirm{display:grid;justify-items:center;text-align:center;gap:12px;padding-top:12px}.delete-profile-confirm p{max-width:470px;margin:0;line-height:1.55}.delete-profile-confirm small{max-width:470px;color:var(--muted);line-height:1.5}.delete-profile-confirm>div{display:grid;grid-template-columns:1fr 1fr;gap:9px;width:100%;margin-top:7px}.danger-button{border:1px solid #a5223d;border-radius:10px;background:#a5223d;color:#fff;padding:11px 15px;font:800 .78rem DM Sans,sans-serif}.danger-button:disabled{opacity:.65}
@media(max-width:800px){.profile-director-card{display:flex}.profile-subnav{grid-template-columns:1fr}.profile-list-heading{align-items:flex-end}.delete-profile-confirm>div{grid-template-columns:1fr}}

/* Selección y contraseña del acceso familiar */
.modal:has(.family-player-picker){width:min(780px,100%)}.family-player-picker{display:grid;gap:10px}.family-picker-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px}.family-picker-filters label{display:grid;gap:6px;color:var(--muted);font-size:.75rem;font-weight:800}.family-picker-filters select,.family-picker-filters input{width:100%;min-width:0;border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px;color:var(--ink)}.family-player-results{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:11px}.family-player-results>button{width:100%;display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left}.family-player-results>button:last-child{border-bottom:0}.family-player-results>button:hover,.family-player-results>button.selected{background:#fff8fa}.family-player-results .initials,.family-selected-player .initials{width:36px;height:36px;font-size:.68rem}.family-player-results strong,.family-player-results small,.family-selected-player strong,.family-selected-player small,.family-selected-player em{display:block}.family-player-results strong,.family-selected-player strong{font-size:.82rem}.family-player-results small,.family-selected-player small,.family-selected-player em{margin-top:2px;color:var(--muted);font-size:.72rem;font-style:normal}.family-player-results i{font-style:normal;color:var(--wine);font-size:.72rem;font-weight:800}.family-player-results>p{margin:0;padding:24px;text-align:center;color:var(--muted);font-size:.8rem}.family-selected-player{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid #b8ddcd;border-radius:11px;background:#eef8f3}.family-selected-player>b{color:#087957}.family-password-status{display:block;margin-top:7px;border-radius:8px;padding:7px 9px;font-size:.72rem;font-weight:800}.family-password-status.ready{background:#e4f4ed;color:#087957}.family-password-status.pending{background:#fff2db;color:#986315}.family-password-notice{border:1px solid #ecd7a8;border-radius:10px;background:#fff8e9;color:#8b5e18;padding:11px 12px;font-size:.78rem}.reset-password{border-color:#ecd7a8!important;background:#fffaf0!important}.family-login{display:flex;align-items:center;gap:11px;margin:18px 0;padding:13px;border-radius:11px;background:#f7f8fa}.family-login strong,.family-login small{display:block}.family-login strong{font-size:.88rem}.family-login small{margin-top:3px;color:var(--muted);font-size:.75rem}.family-session-menu{display:grid;gap:14px;margin-top:18px}.family-session-menu p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.5}.family-session-menu button{width:100%}
@media(max-width:600px){.family-picker-filters{grid-template-columns:1fr}.family-player-results{max-height:300px}.family-player-results>button{grid-template-columns:34px 1fr}.family-player-results i{grid-column:2}.family-selected-player{grid-template-columns:34px 1fr}}

/* Herramientas del entrenador */
.coach-tools-toolbar{align-items:center}.coach-tools-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:18px}.coach-tools-summary article{display:flex;align-items:center;gap:11px;padding:15px 17px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:var(--shadow)}.coach-tools-summary article>span{width:39px;height:39px;border-radius:10px;display:grid;place-items:center;background:#f4e9ec;color:var(--wine);font-weight:900}.coach-tools-summary article:nth-child(2)>span{background:#e9eef6;color:#294b7a}.coach-tools-summary article:nth-child(3)>span{background:#e7f5ef;color:#087957}.coach-tools-summary small,.coach-tools-summary strong{display:block}.coach-tools-summary small{color:var(--muted);font-size:.76rem}.coach-tools-summary strong{margin-top:2px;font:800 1.25rem Manrope}.coach-tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.coach-tools-grid>.panel{padding:20px}.coach-tools-grid .panel-head>small{color:var(--muted);font-size:.75rem;text-align:right}.coach-plan-list,.coach-match-note-list{display:grid}.coach-plan-card{display:grid;grid-template-columns:47px 1fr auto;gap:11px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.coach-plan-card:first-child,.coach-match-card:first-child{border-top:0}.coach-date{width:47px;height:51px;border-radius:10px;background:#f4e9ec;color:var(--wine);display:grid;place-items:center;align-content:center}.coach-date b{font:800 1.15rem/1 Manrope}.coach-date small{text-transform:uppercase;font-size:.66rem;font-weight:800}.coach-plan-card>div{min-width:0}.coach-plan-card>div>strong{font-size:.72rem;color:var(--wine)}.coach-plan-card h3{margin:3px 0;font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.coach-plan-card>div>small{color:var(--muted);font-size:.72rem}.coach-plan-actions,.coach-match-card>div:last-child{display:flex;gap:5px;flex-wrap:wrap}.coach-plan-actions button,.coach-match-card button{border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--wine);padding:7px 9px;font-size:.72rem;font-weight:800}.coach-plan-actions button.pdf,.coach-match-card button.pdf{background:var(--navy);border-color:var(--navy);color:#fff}.coach-plan-actions button.whatsapp{background:#e6f5ed;border-color:#b9ddca;color:#087957}.coach-match-card{display:grid;grid-template-columns:40px 1fr auto;gap:11px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.coach-match-icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:#e9eef6}.coach-match-card>div:nth-child(2){min-width:0}.coach-match-card strong,.coach-match-card small,.coach-match-card em{display:block}.coach-match-card strong{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.coach-match-card small{margin-top:3px;color:var(--muted);font-size:.71rem}.coach-match-card em{margin-top:5px;color:#986315;font-size:.7rem;font-style:normal;font-weight:800}.coach-match-card.complete em{color:#087957}.coach-empty{display:grid;justify-items:center;text-align:center;padding:34px 16px}.coach-empty>span{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#f4e9ec;color:var(--wine);font-size:1.1rem}.coach-empty strong{margin-top:11px;font-size:.88rem}.coach-empty p{max-width:310px;margin:5px 0 0;color:var(--muted);font-size:.76rem;line-height:1.5}.modal:has(.coach-session-form),.modal:has(.coach-match-form){width:min(760px,100%);max-height:92vh;overflow:auto}.coach-session-form textarea,.coach-match-form textarea{min-height:76px}.coach-match-context{display:flex;justify-content:space-between;gap:12px;margin:17px 0 0;padding:11px 13px;border-radius:10px;background:#eef2f8;color:var(--navy);font-size:.78rem}.coach-match-context b{text-align:right}.coach-no-team{display:grid;gap:12px;margin-top:18px}.coach-no-team>span{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:#fff0d8;color:#926117;font-weight:900}.coach-no-team p{margin:0;line-height:1.5}.coach-no-team small{color:var(--muted);font-size:.8rem}.coach-no-team button{justify-self:start}
@media(max-width:960px){.coach-tools-grid{grid-template-columns:1fr}}
@media(max-width:650px){.coach-tools-toolbar{align-items:stretch}.coach-tools-toolbar .primary-button{width:100%}.coach-tools-summary{grid-template-columns:1fr}.coach-tools-grid>.panel{padding:17px}.coach-plan-card{grid-template-columns:42px 1fr}.coach-plan-actions{grid-column:2;justify-self:start}.coach-match-card{grid-template-columns:38px 1fr}.coach-match-card>div:last-child{grid-column:2;flex-wrap:wrap}.coach-match-context{display:grid}.coach-match-context b{text-align:left}.coach-session-form,.coach-match-form{grid-template-columns:1fr}.coach-session-form .form-field,.coach-match-form .form-field{grid-column:1}}

/* Acceso real y sincronización central */
.cloud-auth-pending .app-shell,.cloud-auth-pending .mobile-nav,.cloud-auth-locked .app-shell,.cloud-auth-locked .mobile-nav{display:none!important}
.auth-gate{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 75% 10%,rgba(150,18,48,.15),transparent 32%),linear-gradient(145deg,#f7f8fb,#e9edf4)}
.auth-gate[hidden]{display:none}
.auth-card{width:min(100%,470px);background:#fff;border:1px solid #e4e7ed;border-radius:30px;padding:38px;box-shadow:0 28px 75px rgba(15,31,58,.16)}
.auth-brand{display:flex;align-items:center;gap:14px;padding-bottom:28px;margin-bottom:30px;border-bottom:1px solid #e7e9ee}.auth-brand img{width:58px;height:58px;object-fit:contain}.auth-brand strong,.auth-brand small{display:block}.auth-brand strong{font:800 21px Manrope,sans-serif;color:#17243a}.auth-brand small{color:#737b89;margin-top:3px}
.auth-card h1{font:800 30px Manrope,sans-serif;color:#18253a;margin:9px 0}.auth-card>div>p{color:#697180;line-height:1.55}.auth-form{display:grid;gap:17px;margin-top:25px}.auth-form label{display:grid;gap:8px;color:#263247;font-weight:700}.auth-form input{width:100%;height:52px;border:1px solid #d8dce5;border-radius:14px;padding:0 15px;font:inherit;color:#17243a;background:#fff}.auth-form input:focus{outline:3px solid rgba(143,18,45,.12);border-color:#8f122d}.auth-form .primary-button{height:52px;margin-top:3px}.auth-form button[disabled]{opacity:.65;cursor:wait}
.auth-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.auth-actions button{min-height:52px;border:0;border-radius:11px;background:var(--wine);color:#fff;padding:10px 13px;font:800 14px DM Sans,sans-serif;box-shadow:0 6px 15px rgba(143,18,45,.2)}.auth-actions button:hover{background:var(--wine-dark)}.auth-options{display:flex;justify-content:center;gap:16px;margin-top:15px}.auth-options button{border:0;background:none;color:#8f122d;font:700 13px DM Sans,sans-serif;cursor:pointer;padding:4px 0}.auth-footnote{font-size:12px!important;margin-top:24px!important;padding-top:18px;border-top:1px solid #eceef2}.auth-message{border-radius:12px;padding:11px 13px;margin:15px 0 0!important;font-size:13px}.auth-message.error{background:#fff0f2;color:#941832}.auth-message.success{background:#edf8f2;color:#176741}
.auth-loading{text-align:center;padding:24px 0}.auth-loading span{display:block;width:38px;height:38px;margin:0 auto 18px;border:4px solid #e4e7ee;border-top-color:#8f122d;border-radius:50%;animation:auth-spin .8s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}
.auth-blocked{text-align:center}.auth-blocked>span{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 18px;border-radius:18px;background:#fff0f2;color:#9d1432;font-size:28px;font-weight:800}.auth-blocked .secondary-button{margin-top:16px}
.cloud-status{display:flex;align-items:center;gap:8px;margin:0 0 18px;padding:11px 14px;border:1px solid #dfe5ec;border-radius:14px;background:#f8fafc;color:#596273;font-size:13px}.cloud-status i{width:9px;height:9px;border-radius:50%;background:#24a26a;box-shadow:0 0 0 4px rgba(36,162,106,.12)}.cloud-status strong{color:#1e2c43}.cloud-status button{margin-left:auto;border:0;background:none;color:#8f122d;font-weight:800;cursor:pointer}
.cloud-migration{position:fixed;z-index:9990;right:24px;bottom:24px;width:min(390px,calc(100vw - 48px));padding:20px;border-radius:20px;background:#152747;color:#fff;box-shadow:0 20px 45px rgba(11,28,55,.3)}.cloud-migration h3{margin:0 0 7px}.cloud-migration p{margin:0 0 15px;color:#d9e0ec;line-height:1.45;font-size:14px}.cloud-migration div{display:flex;gap:10px}.cloud-migration button{flex:1}.cloud-migration .secondary-button{color:#fff;border-color:#71809a;background:transparent}
@media(max-width:600px){.auth-gate{padding:12px}.auth-card{padding:27px 22px;border-radius:24px}.auth-actions{grid-template-columns:1fr}.auth-options{align-items:center}.cloud-migration{right:12px;bottom:82px;width:calc(100vw - 24px)}}

/* Eliminaciones permanentes y administración de selectivos */
.selective-toolbar-actions{display:flex;gap:9px}.selective-card-head{flex-wrap:wrap}.selective-card-head>div:nth-child(2){min-width:0;flex:1}.selective-coach-label{display:block;margin-top:5px;color:var(--muted);font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selective-card-actions{order:4;width:100%;display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-left:51px}.selective-add-player,.selective-assign-coach{border:1px solid #caa1ab;border-radius:9px;background:#fff;color:var(--wine);padding:8px 12px;font:800 .72rem DM Sans,sans-serif;cursor:pointer}.selective-assign-coach{border-color:#aebbd0;color:var(--navy)}.selective-add-player:hover{border-color:var(--wine);background:#fff7f9}.selective-assign-coach:hover{border-color:var(--navy);background:#f5f7fb}.selective-delete-team{border:0;background:transparent;color:#a5223d;padding:8px;font:800 .7rem DM Sans,sans-serif;cursor:pointer}.selective-player-editor .modal-submit:disabled{opacity:.48;cursor:not-allowed}.selective-coach-picker{max-height:390px;overflow:auto}.team-access-tag.selective-access{background:#fff7e8;border-color:#ead5a4;color:#8b6113}.permission-group-empty{padding:12px 6px;color:var(--muted);font-size:.72rem}.selective-empty{grid-column:1/-1;display:grid;justify-items:center;text-align:center;padding:46px 20px}.selective-empty>span{font-size:2rem;color:#c7a5ae}.selective-empty h3{margin:10px 0 4px}.selective-empty p{margin:0 0 15px;color:var(--muted);font-size:.8rem}.player-profile-actions .permanent-danger-action{grid-column:1/-1;border-color:#7d1428;background:#7d1428;color:#fff}.permanent-delete-confirm{display:grid;justify-items:center;text-align:center;gap:12px;padding-top:10px}.permanent-delete-confirm>span{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:#fff0f2;color:#a5223d;font-size:1.35rem;font-weight:900}.permanent-delete-confirm p{max-width:500px;margin:0;line-height:1.55}.permanent-delete-confirm small{max-width:500px;color:var(--muted);line-height:1.5}.permanent-delete-confirm>label{display:flex;align-items:flex-start;gap:9px;width:100%;padding:12px;border:1px solid #efc8d0;border-radius:10px;background:#fff7f8;color:#7d1428;text-align:left;font-size:.78rem;font-weight:800}.permanent-delete-confirm>label input{margin-top:2px;accent-color:#a5223d}.permanent-delete-confirm>div{display:grid;grid-template-columns:1fr 1fr;gap:9px;width:100%;margin-top:4px}
@media(max-width:650px){.selective-toolbar-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.selective-toolbar-actions button{width:100%}.selective-card-actions{margin-left:0}.selective-add-player,.selective-assign-coach{flex:1}.permanent-delete-confirm>div{grid-template-columns:1fr}.player-profile-actions .permanent-danger-action{grid-column:1/-1}}

/* Eliminación masiva de matrícula */
.student-toolbar{flex-wrap:wrap}
.file-upload-button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.accessible-file-input{position:fixed!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important}
.delete-all-students-button{border:1px solid #d8aeb7;border-radius:9px;background:#fff7f8;color:#a5223d;padding:10px 14px;font-weight:800}.delete-all-students-button:hover{border-color:#a5223d;background:#fff0f2}.bulk-delete-confirm .bulk-delete-phrase{display:grid;grid-template-columns:1fr;gap:6px;text-align:left}.bulk-delete-phrase label{color:var(--muted);font-size:.75rem}.bulk-delete-phrase input{width:100%;border:1px solid #d8aeb7;border-radius:9px;padding:11px;color:var(--ink);text-transform:uppercase}.bulk-delete-phrase input:focus{outline:3px solid rgba(165,34,61,.1);border-color:#a5223d}
@media(max-width:800px){.delete-all-students-button{flex:1}.section-toolbar #importStudentsButton,.section-toolbar #exportStudentUpdateButton,.section-toolbar #updateStudentsButton{flex:1}}

/* Resultado detallado de importación */
.import-result{display:grid;gap:15px;margin-top:18px}.import-result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.import-result-stats>span{display:grid;justify-items:center;gap:3px;border-radius:11px;background:#f4f7f9;padding:12px;color:var(--muted);font-size:.72rem;font-weight:800}.import-result-stats strong{color:var(--navy);font:800 1.45rem Manrope}.import-result-stats .warning{background:#fff4e5;color:#986315}.import-result p{margin:0;color:var(--muted);font-size:.8rem;text-align:center}.import-rejections{max-height:250px;overflow:auto;border:1px solid #eadde1;border-radius:11px}.import-rejections>strong{display:block;padding:11px 13px;background:#fff7f8;color:#8f122d;font-size:.78rem}.import-rejections>div{display:grid;grid-template-columns:60px 1fr;gap:3px 8px;padding:10px 13px;border-top:1px solid var(--line)}.import-rejections b{grid-row:1/3;color:var(--wine);font-size:.72rem}.import-rejections span{font-size:.78rem;font-weight:800}.import-rejections small{color:var(--muted);font-size:.7rem}.import-rejections.update-ready-list{border-color:#c9e7da}.import-rejections.update-ready-list>strong{background:#edf8f3;color:#087957}.import-diagnostic-actions{display:grid;grid-template-columns:1fr 1.5fr;gap:9px}.import-success{border-radius:10px;background:#e9f7f0;color:#087957;padding:13px;text-align:center;font-size:.8rem;font-weight:800}.import-result>.primary-button{width:100%}
@media(max-width:500px){.import-result-stats{grid-template-columns:1fr}.import-result-stats>span{grid-template-columns:auto 1fr;justify-items:start;align-items:center}.import-rejections>div{grid-template-columns:52px 1fr}.import-diagnostic-actions{grid-template-columns:1fr}}

/* Eliminación de sesiones de entrenamiento */
.coach-plan-actions button.delete{background:#fff7f8;border-color:#efc8d0;color:#a5223d}.coach-plan-actions button.delete:hover{background:#fff0f2;border-color:#dca5b1}.coach-plan-delete-confirm{max-width:560px;margin-inline:auto}

/* Goleadores y MVP del partido */
.modal:has(.match-result-form){width:min(790px,100%);max-height:92vh;overflow:auto}.match-awards-editor{border:1px solid var(--line);border-radius:14px;background:#f8fafc;padding:15px}.match-awards-editor>header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}.match-awards-editor>header strong,.match-awards-editor>header small{display:block}.match-awards-editor>header strong{font-size:.88rem;color:var(--navy)}.match-awards-editor>header small{margin-top:3px;color:var(--muted);font-size:.72rem}.match-awards-editor>header>b{flex:0 0 auto;border-radius:16px;background:#fff0f2;color:#a5223d;padding:6px 10px;font-size:.7rem}.match-awards-editor>header>b.complete{background:#e7f5ef;color:#087957}.match-scorer-list,.match-mvp-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:260px;overflow:auto}.match-scorer-list>label,.match-mvp-list>label{display:grid;grid-template-columns:34px minmax(0,1fr) 58px;align-items:center;gap:9px;border:1px solid #e2e6ed;border-radius:10px;background:#fff;padding:9px;cursor:pointer}.match-mvp-list>label{grid-template-columns:auto 34px minmax(0,1fr)}.match-scorer-list .initials,.match-mvp-list .initials{width:34px;height:34px;border-radius:9px;background:#f4e9ec;color:var(--wine);display:grid;place-items:center;font-size:.68rem;font-weight:900}.match-scorer-list label>span:nth-child(2),.match-mvp-list label>span:last-child{min-width:0}.match-scorer-list strong,.match-scorer-list small,.match-mvp-list strong,.match-mvp-list small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.match-scorer-list strong,.match-mvp-list strong{font-size:.76rem}.match-scorer-list small,.match-mvp-list small{margin-top:2px;color:var(--muted);font-size:.65rem}.goal-count-input{width:58px;border:1px solid #ccd4df;border-radius:8px;padding:8px;text-align:center;font:800 .85rem Manrope;color:var(--navy)}.match-mvp-list input{accent-color:var(--wine);width:17px;height:17px}.match-mvp-list label:has(input:checked){border-color:#d4a6b0;background:#fff7f8}
@media(max-width:650px){.match-scorer-list,.match-mvp-list{grid-template-columns:1fr}.match-awards-editor>header{align-items:flex-start}.match-awards-editor>header>b{margin-top:1px}}

/* Planteles plegables en Selectivos y Liga INNDE */
.selective-roster[hidden],.league-roster-preview[hidden]{display:none}.team-roster-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #cbd4e1;border-radius:9px;background:#f7f9fc;color:var(--navy);padding:8px 12px;font:800 .72rem DM Sans,sans-serif;cursor:pointer}.team-roster-toggle::after{content:"⌄";font-size:1rem;line-height:.7;transition:transform .18s}.team-roster-toggle[aria-expanded="true"]::after{transform:rotate(180deg)}.team-roster-toggle:hover{border-color:var(--navy);background:#eef2f8}.league-roster-toggle{width:100%;margin:1px 0 11px}.selective-card-actions .team-roster-toggle{border-color:#cbd4e1;color:var(--navy)}
@media(max-width:650px){.selective-card-actions .team-roster-toggle{flex:1 0 100%}.league-roster-toggle{min-height:42px}}

/* Menú lateral desplazable, especialmente en pantallas móviles */
.sidebar{height:100vh;height:100dvh;overflow:hidden}.sidebar .brand{flex:0 0 auto}.sidebar nav{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding-bottom:12px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.sidebar nav::-webkit-scrollbar{width:5px}.sidebar nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border-radius:999px}.sidebar-footer{flex:0 0 auto;margin-top:0;padding-bottom:max(0px,env(safe-area-inset-bottom))}
@media(max-width:800px){.sidebar{padding-bottom:max(12px,env(safe-area-inset-bottom))}.sidebar nav{padding-bottom:24px}}

/* Prospectos y clases muestra */
.prospect-toolbar .search-box{min-width:245px}.prospect-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:18px}.prospect-kpis article{display:flex;align-items:center;gap:11px;padding:15px 17px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:var(--shadow)}.prospect-kpis article>span{width:39px;height:39px;border-radius:10px;display:grid;place-items:center;background:#f4e9ec;color:var(--wine);font-weight:900}.prospect-kpis article:nth-child(2)>span{background:#fff3df;color:#986315}.prospect-kpis article:nth-child(3)>span{background:#e7f5ef;color:#087957}.prospect-kpis article:nth-child(4)>span{background:#eef1f5;color:#647087}.prospect-kpis small,.prospect-kpis strong{display:block}.prospect-kpis small{color:var(--muted);font-size:.72rem}.prospect-kpis strong{margin-top:2px;font:800 1.3rem Manrope}.prospect-board{padding:0;overflow:hidden}.prospect-board>.panel-head{padding:20px 22px 0}.prospect-list{display:grid}.prospect-card{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px 18px;padding:18px 22px;border-top:1px solid var(--line)}.prospect-person{display:flex;align-items:center;gap:10px;min-width:0}.prospect-person .initials{flex:none}.prospect-person strong,.prospect-person small{display:block}.prospect-person strong{font-size:.88rem}.prospect-person small{margin-top:3px;color:var(--muted);font-size:.72rem}.prospect-status{align-self:center;border-radius:16px;padding:6px 9px;font-size:.68rem;font-weight:800}.prospect-status.prospect,.prospect-status.scheduled{background:#fff2db;color:#986315}.prospect-status.attended{background:#e9eef8;color:#294b7a}.prospect-status.no-show{background:#fff0f2;color:#9a2940}.prospect-status.converted{background:#e4f4ed;color:#087957}.prospect-status.closed{background:#eef1f5;color:#647087}.prospect-details{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px 22px;padding:11px 13px;border-radius:10px;background:#f8fafc;color:var(--muted);font-size:.73rem}.prospect-details span{min-width:180px}.prospect-details b{display:block;margin-bottom:3px;color:var(--navy);font-size:.67rem;text-transform:uppercase;letter-spacing:.04em}.prospect-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px}.prospect-actions button{border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy);padding:8px 10px;font-size:.7rem;font-weight:800}.prospect-actions button.whatsapp{border-color:#b9ddca;background:#e9f7f0;color:#087957}.prospect-actions button.success{border-color:#b7d8ca;color:#087957}.prospect-actions button.primary{border-color:var(--wine);background:var(--wine);color:#fff}.prospect-actions button.danger-link{border-color:#efc8d0;color:#a5223d}.prospect-card.converted,.prospect-card.closed{background:#fbfcfd}.prospect-empty{display:grid;justify-items:center;text-align:center;padding:50px 20px}.prospect-empty>span{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;background:#f4e9ec;color:var(--wine);font-size:1.25rem}.prospect-empty strong{margin-top:12px}.prospect-empty p{margin:5px 0 0;color:var(--muted);font-size:.78rem}.modal:has(.prospect-form){width:min(720px,100%);max-height:92vh;overflow:auto}
@media(max-width:1000px){.prospect-kpis{grid-template-columns:1fr 1fr}.prospect-toolbar .search-box{min-width:100%}}
@media(max-width:600px){.prospect-kpis{grid-template-columns:1fr}.prospect-card{grid-template-columns:1fr;padding:16px}.prospect-status{justify-self:start}.prospect-actions button{flex:1 1 46%}.prospect-details{display:grid}.prospect-toolbar>select,.prospect-toolbar>.primary-button{flex:1;min-width:145px}}

/* Horarios rápidos de equipos base */
.base-team-schedule-card{display:grid;min-width:0;border:1px solid var(--line);border-radius:11px;background:#fafafb;overflow:hidden}.venue-team-grid .base-team-schedule-card>button{width:100%;border:0;border-radius:0;background:transparent}.base-team-schedule-card>label{display:grid;gap:5px;padding:0 8px 9px;color:var(--muted);font-size:.75rem;font-weight:800}.base-team-schedule-card select{width:100%;min-width:0;border:1px solid #d9dee7;border-radius:7px;background:#fff;padding:8px 6px;color:var(--navy);font-size:.75rem;font-weight:700}.base-team-schedule-card:focus-within{border-color:var(--wine);box-shadow:0 0 0 3px rgba(143,18,45,.08)}

/* Equipos y estadísticas en Portal de familias */
.family-sports-summary{display:grid;grid-template-columns:1.35fr .65fr;gap:18px;padding:20px}.family-team-memberships{display:flex;flex-wrap:wrap;gap:8px}.family-team-chip{display:grid;gap:3px;min-width:165px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.family-team-chip b{color:var(--navy);font-size:.82rem}.family-team-chip small{color:var(--muted);font-size:.75rem}.family-team-chip.base{border-color:#ead7dc;background:#fffafb}.family-team-chip.selective{border-color:#ead5a4;background:#fffaf0}.family-team-chip.league{border-color:#cfd9e8;background:#f7f9fd}.family-competition-totals{display:grid;grid-template-columns:1fr 1fr;gap:9px;align-content:start}.family-competition-totals>span{display:grid;justify-items:center;padding:17px 10px;border-radius:12px;background:#f4e9ec;color:var(--wine)}.family-competition-totals>span:last-child{background:#fff4df;color:#956516}.family-competition-totals b{font:800 1.55rem Manrope}.family-competition-totals small{margin-top:4px;font-size:.75rem;font-weight:800}.family-team-stats{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.family-team-stat{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.family-team-stat strong,.family-team-stat small{display:block}.family-team-stat strong{font-size:.8rem}.family-team-stat small{margin-top:2px;color:var(--muted);font-size:.75rem}.family-team-stat>span{white-space:nowrap;color:var(--navy);font-size:.78rem;font-weight:800}
@media(max-width:960px){.family-sports-summary{grid-template-columns:1fr}.family-team-stats{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.family-sports-summary{padding:17px}.family-team-chip{min-width:100%}.family-team-stats{grid-template-columns:1fr}}
.family-profile-finder{margin:0 0 18px;padding:17px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(135deg,#fff,#f7f9fc)}
.profile-grid.family-focused{grid-template-columns:minmax(0,720px)}
.family-temp-password{border:1px solid #a5223d;border-radius:9px;background:#fff5f7;color:#941832;padding:10px 12px;font:800 .74rem DM Sans,sans-serif}.family-temp-password:hover{background:#941832;color:#fff}.family-temp-password:disabled{opacity:.65;cursor:wait}.temporary-access-panel{display:grid;gap:12px;margin-top:18px}.temporary-access-icon{width:48px;height:48px;border-radius:14px;background:#e4f4ed;color:#087957;display:grid;place-items:center;font-size:1.25rem;font-weight:900}.temporary-access-panel>p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.5}.temporary-access-panel>div{display:grid;gap:5px;border:1px solid var(--line);border-radius:11px;background:#f8fafc;padding:12px 14px}.temporary-access-panel small{color:var(--muted);font-size:.7rem}.temporary-access-panel strong{font-size:.86rem}.temporary-access-panel code{color:var(--navy);font:800 1.2rem Manrope;letter-spacing:.08em;overflow-wrap:anywhere}.temporary-access-panel .temporary-access-warning{border-radius:10px;background:#fff8e9;color:#8b5e18;padding:11px 12px}.temporary-access-panel button{width:100%}
.family-profile-finder>label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:9px}.family-profile-finder>label span{font-size:.84rem;font-weight:800;color:var(--navy)}.family-profile-finder>label small{color:var(--muted);font-size:.72rem}
.family-profile-search{display:grid;grid-template-columns:24px 1fr 32px;align-items:center;gap:7px;min-height:49px;padding:0 9px 0 13px;border:1px solid #cfd6e1;border-radius:12px;background:#fff;box-shadow:0 5px 16px rgba(23,36,62,.05)}.family-profile-search:focus-within{border-color:var(--wine);box-shadow:0 0 0 3px rgba(130,22,48,.1)}.family-profile-search>span{color:var(--wine);font-size:1.2rem;font-weight:800}.family-profile-search input{width:100%;border:0;outline:0;background:transparent;color:var(--navy);font:600 .88rem DM Sans,sans-serif}.family-profile-search button{width:32px;height:32px;border:0;border-radius:9px;background:#f1f3f6;color:var(--muted);font-size:1.2rem}
.family-profile-results{margin-top:10px}.family-search-prompt,.family-search-empty,.family-selected-note{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:11px;background:#f3f5f8}.family-search-prompt>span,.family-search-empty>span,.family-selected-note>span{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#fff;color:var(--wine);font-weight:900}.family-search-prompt strong,.family-search-prompt small,.family-search-empty strong,.family-search-empty small,.family-selected-note strong,.family-selected-note small{display:block}.family-search-prompt strong,.family-search-empty strong,.family-selected-note strong{font-size:.78rem}.family-search-prompt small,.family-search-empty small,.family-selected-note small{margin-top:3px;color:var(--muted);font-size:.7rem}.family-selected-note button{margin-left:auto;border:1px solid var(--line);border-radius:9px;padding:7px 10px;background:#fff;color:var(--wine);font-size:.72rem;font-weight:800}
.family-search-options{display:grid;gap:7px}.family-search-options>button{display:grid;grid-template-columns:43px 1fr auto;align-items:center;gap:11px;width:100%;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fff;text-align:left}.family-search-options>button:hover{border-color:#d2aebb;background:#fff9fa}.family-search-options strong,.family-search-options small{display:block}.family-search-options strong{font-size:.8rem}.family-search-options small{margin-top:3px;color:var(--muted);font-size:.7rem}.family-search-options i{color:var(--wine);font-size:.7rem;font-style:normal;font-weight:800}
@media(max-width:650px){.family-profile-finder{padding:14px}.family-profile-finder>label{align-items:flex-start;flex-direction:column;gap:3px}.family-search-options>button{grid-template-columns:40px 1fr}.family-search-options i{grid-column:2}.family-selected-note{align-items:flex-start;flex-wrap:wrap}.family-selected-note button{margin-left:45px}}
.student-record-search{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f7f9fc}.student-record-search .search-box{flex:1;max-width:620px;background:#fff}.student-record-search small{color:var(--muted);font-size:.72rem}
.base-team-transfer{display:grid;gap:16px;padding-top:6px}.base-team-transfer-current{display:grid;gap:4px;padding:14px 16px;border-radius:12px;background:linear-gradient(135deg,#17243e,#263c63);color:#fff}.base-team-transfer-current small{color:#c8d2e1;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.base-team-transfer-current strong{font:800 1rem Manrope}.base-team-transfer-current span{color:#dbe2ec;font-size:.78rem}.base-team-transfer>label{display:grid;gap:7px}.base-team-transfer>label>span{font-size:.78rem;font-weight:800}.base-team-transfer select{width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;padding:11px;color:var(--navy)}.base-team-transfer-protection{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid #c9e7da;border-radius:11px;background:#edf8f3}.base-team-transfer-protection>span{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:#fff;color:#087957;font-weight:900;flex:none}.base-team-transfer-protection p{margin:0}.base-team-transfer-protection strong,.base-team-transfer-protection small{display:block}.base-team-transfer-protection strong{font-size:.78rem;color:#087957}.base-team-transfer-protection small{margin-top:4px;color:#547267;font-size:.7rem;line-height:1.45}
@media(max-width:650px){.student-record-search{align-items:stretch;flex-direction:column}.student-record-search .search-box{max-width:none;width:100%}.student-row-actions{min-width:125px}}
.family-player-switcher{min-width:230px;display:grid;gap:7px;padding:10px 12px;border:1px solid rgba(255,255,255,.14);border-radius:11px;background:rgba(255,255,255,.07)}
.family-player-switcher>small{color:#c6d0df;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.family-player-switcher>div{display:flex;gap:6px;flex-wrap:wrap}
.family-player-switcher button{border:1px solid rgba(255,255,255,.2);border-radius:9px;padding:7px 9px;background:rgba(255,255,255,.08);color:#fff;font-size:.72rem;font-weight:800}
.family-player-switcher button.active{background:#fff;color:var(--navy);border-color:#fff}
@media(max-width:650px){.family-player-switcher{width:100%;min-width:0}}

.notice-content{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start}
.notice-actions{display:flex;gap:7px;margin-top:7px}
.notice-actions button{border:1px solid var(--line);background:#fff;color:var(--wine);border-radius:8px;padding:7px 10px;font-size:.72rem;font-weight:700;white-space:nowrap}
.notice-actions button:hover{background:#f8f1f3;border-color:#e6c9d0}
.notice-actions .delete{color:#b4233a}
.notice-empty{text-align:center;padding:34px 15px;color:var(--muted)}
.notice-empty>span{width:38px;height:38px;border-radius:50%;background:#e4f4ed;color:var(--green);display:grid;place-items:center;margin:0 auto 10px}
.notice-empty strong{display:block;color:var(--ink);font-size:.9rem}
.notice-empty p{margin:6px 0 0}
.notice-delete-confirm{display:grid;gap:13px;text-align:center;margin-top:18px}
.notice-delete-confirm>span{font-size:2rem}
.notice-delete-confirm p{margin:0}
.notice-delete-confirm small{color:var(--muted);line-height:1.5}
.notice-delete-confirm>div{display:flex;justify-content:center;gap:10px;margin-top:7px}
.danger-button{border:0;border-radius:9px;padding:11px 17px;font-weight:700;background:#b4233a;color:#fff}
@media(max-width:650px){.notice-content{grid-template-columns:1fr}.notice-actions{flex-wrap:wrap}.notice-actions button{flex:1}}
.profile-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.family-created-summary em{display:block;margin-top:3px;color:var(--muted);font-size:.66rem;font-style:normal}
@media(max-width:1050px){.profile-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.profile-summary{grid-template-columns:1fr}}
.birthday-panel{grid-column:1/-1;grid-row:2;overflow:hidden;background:linear-gradient(135deg,#fff 0%,#fff 72%,#fff3f6 100%)}
.birthday-source{padding:6px 9px;border-radius:20px;background:#f6e9ed;color:var(--wine);font-size:.7rem;font-weight:800}
.birthday-filters{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:10px;margin-bottom:14px}.birthday-filters label{display:grid;gap:5px}.birthday-filters label>span{font-size:.68rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.birthday-filters select{width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px;color:var(--ink)}
.birthday-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:13px}.birthday-summary>span{display:flex;align-items:baseline;gap:7px;padding:10px 12px;border-radius:10px;background:#f5f6f8;color:var(--muted)}.birthday-summary>span.today{background:#f9e8ed;color:var(--wine)}.birthday-summary b{font:800 1.15rem Manrope;color:var(--navy)}.birthday-summary .today b{color:var(--wine)}.birthday-summary small{font-size:.7rem;font-weight:700}
.birthday-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.birthday-item{display:grid;grid-template-columns:46px 36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fff}.birthday-item.is-today{border-color:#dca6b4;box-shadow:0 5px 16px rgba(143,18,45,.08)}.birthday-day{width:46px;height:46px;border-radius:10px;display:grid;place-content:center;text-align:center;background:var(--navy);color:#fff}.birthday-day b{font:800 1rem Manrope}.birthday-day small{font-size:.58rem;text-transform:uppercase}.birthday-item>div strong,.birthday-item>div small{display:block}.birthday-item>div strong{font-size:.8rem}.birthday-item>div small{margin-top:3px;color:var(--muted);font-size:.67rem}.birthday-item em{font-style:normal;font-size:.66rem;font-weight:800;color:var(--wine);background:#fae8ed;border-radius:20px;padding:5px 7px}.birthday-actions{grid-column:4;display:grid;gap:5px}.birthday-actions button{border:0;border-radius:8px;padding:7px 9px;background:var(--wine);color:#fff;font-size:.66rem;font-weight:800;white-space:nowrap}.birthday-actions button.secondary{background:#f3edf0;color:var(--wine)}.birthday-empty{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:9px;padding:22px;border:1px dashed #d5d9e1;border-radius:11px;color:var(--muted)}.birthday-empty p{margin:0;font-size:.78rem}.birthday-missing{display:block;margin-top:10px;color:var(--muted);font-size:.67rem}
.prospect-flow{display:flex;align-items:center;gap:10px;margin:-3px 0 15px;padding:10px 13px;border:1px solid #dfe5ee;border-radius:11px;background:#f8fafc;color:var(--navy);font-size:.72rem;font-weight:700}.prospect-flow span{display:flex;align-items:center;gap:6px}.prospect-flow b{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--wine);color:#fff;font-size:.66rem}.prospect-flow i{color:#9aa4b4;font-style:normal}
.form-field small{display:block;margin-top:5px;color:var(--muted);font-size:.68rem;line-height:1.35}
@media(max-width:900px){.birthday-list{grid-template-columns:1fr}}
@media(max-width:650px){.birthday-panel{grid-column:auto;grid-row:auto}.birthday-filters{grid-template-columns:1fr}.birthday-summary{grid-template-columns:1fr}.birthday-item{grid-template-columns:42px 34px minmax(0,1fr)}.birthday-item em{display:none}.birthday-actions{grid-column:2/4;width:100%;grid-template-columns:1fr 1fr}.birthday-source{display:none}}
@media(max-width:600px){.prospect-flow{align-items:flex-start;flex-direction:column}.prospect-flow i{display:none}}
