:root{font-family:Segoe UI,Manrope,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:#0b1221;background-color:#0b1221;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 12% 20%,rgba(254,91,26,.2),transparent 30%),radial-gradient(circle at 80% 0%,rgba(48,196,242,.22),transparent 30%),linear-gradient(180deg,#0b1221,#0a0f1f 35%,#0b1221);color:#0b1221}a{color:inherit;text-decoration:none}#root{min-height:100vh}.inter-layout{display:grid;grid-template-columns:minmax(300px,400px) minmax(0,1fr);gap:24px;align-items:start}.inter-form-col,.inter-list-col{min-width:0}.inter-form{width:100%;max-width:100%;display:grid;gap:12px}.inter-form h2{margin:0;font-size:22px}.inter-form-actions{display:flex;justify-content:flex-end}.inter-form .primary{min-width:130px}.inter-section-title{margin:0 0 12px;font-size:18px;color:#67e8f9}.inter-accordion{display:flex;flex-direction:column;gap:12px}.inter-accordion-item{background:#0f172a9e;border-radius:12px;border:1px solid rgba(226,232,240,.12);overflow:hidden}.inter-accordion-item:hover{border-color:#67e8f959}.inter-accordion-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:#0f172acc}.inter-accordion-toggle{background:none;border:none;color:inherit;font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px;cursor:pointer;text-align:left;min-width:0;flex:1;padding:4px 0}.inter-accordion-title{color:#7dd3fc;font-size:15px;font-weight:600;word-break:break-word}.inter-accordion-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.inter-accordion-actions button{background:#334155e6;color:#bae6fd;border:1px solid rgba(125,211,252,.3);border-radius:8px;padding:6px 10px;cursor:pointer;font-size:13px;font-weight:600}.inter-accordion-actions button:last-child{background:#ef444429;color:#fecaca;border-color:#f8717173}.inter-accordion-body{padding:12px;background:#0f172a8c;color:#e3e6f1;border-top:1px solid rgba(148,163,184,.15);display:flex;flex-direction:column;gap:8px;font-size:14px}.inter-accordion-body strong{color:#7dd3fc}.inter-link-icon{margin-left:8px;text-decoration:none;font-size:20px;line-height:1;vertical-align:middle;display:inline-flex;align-items:center}.inter-link-icon.map{color:#60a5fa}.inter-link-icon.whatsapp{color:#22c55e}.inter-link-icon.instagram{color:#f472b6}@media(max-width:960px){.inter-layout{grid-template-columns:1fr;gap:18px}.inter-form-col{order:1}.inter-list-col{order:2}.inter-form-actions{justify-content:stretch}.inter-form .primary{width:100%}}@media(max-width:700px){.inter-accordion-head{flex-direction:column;align-items:stretch}.inter-accordion-actions{width:100%;justify-content:stretch}.inter-accordion-actions button{flex:1;text-align:center}.inter-accordion-body{font-size:13px}.inter-section-title{font-size:16px}}.app-shell{position:relative;min-height:100vh;color:#e2e8f0}.app-bg{position:absolute;inset:0;background:linear-gradient(135deg,#fe5b1a24,#30c4f21f);filter:blur(70px);z-index:0}.app-main{position:relative;z-index:1;max-width:1120px;margin:0 auto;padding:24px 20px 48px}.nav{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f172aa6;border-bottom:1px solid rgba(226,232,240,.08)}.nav-toggle{display:none;padding:8px 12px;border-radius:10px;background:#e2e8f014;color:#e2e8f0;border:1px solid rgba(226,232,240,.12);font-size:13px;font-weight:600;width:40px;height:40px;gap:5px;align-items:center;justify-content:center;flex-direction:column}.nav-overlay{position:fixed;inset:0;background:#0f172a99;border:none;padding:0;margin:0;z-index:1}.nav-brand{display:inline-flex;align-items:center;gap:10px;font-weight:600;color:#e2e8f0;letter-spacing:.2em;text-transform:uppercase;font-size:12px}.brand-logo{height:20px;width:auto;display:block;filter:drop-shadow(0 0 10px rgba(34,211,238,.6))}.brand-dot{width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,#22d3ee,#16a34a);box-shadow:0 0 12px #22d3ee99}.nav-links{display:flex;gap:14px;align-items:center}.nav-links.coach-links{gap:8px;flex-wrap:wrap;justify-content:center}.nav-links.coach-links .nav-link{padding:7px 10px;font-size:13px}.nav-links.athlete-links{gap:10px}.nav-links.athlete-links .nav-link{padding:8px 11px;font-size:13px}.nav-link{padding:8px 12px;color:#cbd5e1;border-radius:10px;transition:all .2s ease;font-weight:500}.nav-link:hover{background:#94a3b81a;color:#f8fafc}.nav-link.active{background:#30c4f22e;color:#30c4f2;border:1px solid rgba(48,196,242,.45)}.nav-dropdown{position:relative}.dropdown-toggle{background:transparent;border:none;padding:8px 18px;font-size:15px;color:#fff;margin:0 8px;cursor:pointer;transition:color .2s}.dropdown-menu{display:flex;flex-direction:column;position:absolute;background:#1e1e1efa;border-radius:12px;margin-top:4px;z-index:10;min-width:180px;box-shadow:0 2px 8px #3c3c3c1f}.dropdown-link{color:#fff;padding:10px 18px;text-align:left;background:none;border:none;font-size:15px;text-decoration:none;width:100%;cursor:pointer}.nav-user{display:flex;align-items:center;gap:10px}.user-pill{display:grid;gap:4px;padding:8px 12px;background:#e2e8f00f;border-radius:12px;border:1px solid rgba(226,232,240,.08);justify-items:center;text-align:center}.user-avatar-btn{width:44px;height:44px;border-radius:999px;border:1px solid rgba(48,196,242,.42);background:linear-gradient(135deg,#30c4f22e,#22c55e1f);padding:0;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.user-avatar-btn:hover{transform:translateY(-1px);border-color:#30c4f2a6;box-shadow:0 0 0 2px #30c4f238}.user-avatar-btn:disabled{opacity:.72;cursor:wait}.user-avatar{width:100%;height:100%;object-fit:cover;display:block}.user-avatar-fallback{color:#f8fafc;font-weight:700;font-size:14px}.user-photo-error{font-size:11px;color:#fca5a5;max-width:180px}.user-role{font-size:12px;color:#94a3b8}.user-name{font-weight:600;color:#f8fafc;line-height:1.2}.page{display:flex;flex-direction:column;gap:28px}.loading-state{display:grid;justify-items:center;gap:10px;padding:14px 10px}.loading-icons{display:inline-flex;align-items:center;gap:12px}.loading-icon{width:36px;height:36px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:22px;border:1px solid rgba(226,232,240,.2);background:#0f172a8c;color:#e2e8f0}.loading-icon.run{color:#22d3ee;animation:loadingHop .9s ease-in-out infinite}.loading-icon.bike{color:#86efac;animation:loadingHop .9s ease-in-out .25s infinite}.loading-message{margin:0;color:#cbd5e1;font-size:14px}@keyframes loadingHop{0%,to{transform:translateY(0);box-shadow:0 0 #22d3ee00}50%{transform:translateY(-4px);box-shadow:0 0 0 2px #22d3ee2e}}.tabs-nav{display:flex;gap:8px;border-bottom:2px solid rgba(226,232,240,.08)}.tab-btn{background:transparent;border:none;color:#cbd5e1;padding:12px 20px;cursor:pointer;font-weight:600;font-size:14px;position:relative;transition:all .2s ease;border-bottom:3px solid transparent}.tab-btn:hover{color:#f1f5f9;background:#e2e8f00d}.tab-btn.active{color:#30c4f2;border-bottom-color:#30c4f2;background:#30c4f21f}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.page-header h1{margin:6px 0;font-size:32px;color:#f8fafc}.page-subtitle{margin:0;color:#cbd5e1;max-width:680px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:#8b9ebf;margin:0}.cta-row{display:flex;gap:10px}button{border:none;cursor:pointer;font-family:inherit;font-weight:600;border-radius:12px;padding:10px 14px;transition:all .2s ease}.primary{background:linear-gradient(135deg,#fe5b1a,#30c4f2);color:#0b1221;box-shadow:0 12px 32px #0000008c}.danger{background:#ef444433;color:#fecaca;border:1px solid rgba(239,68,68,.4);box-shadow:none}.primary.sent{background:#22c55e2e;color:#86efac;border:1px solid rgba(34,197,94,.45);box-shadow:none}.primary:hover{transform:translateY(-1px)}.ghost{background:#e2e8f014;color:#e2e8f0;border:1px solid rgba(226,232,240,.12)}.section-head{display:flex;align-items:center;gap:10px}.section-head h2{margin:0;color:#f8fafc}.muted{color:#94a3b8;font-size:14px}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.race-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.race-search-panel{margin:6px 0 18px;padding:10px 12px;border:1px solid rgba(226,232,240,.08);border-radius:12px;background:#0f172a40}.race-results-panel{margin-top:8px}.race-card{background:#0f172abf;border:1px solid rgba(226,232,240,.08);border-radius:16px;overflow:hidden;display:grid;gap:0;box-shadow:0 10px 28px #0000002e}.race-image{width:100%;height:140px;object-fit:cover;display:block}.race-body{padding:12px;display:grid;gap:6px}.race-body h4{margin:0;color:#f8fafc}.race-join{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:10px;background:#22c55e29;color:#86efac;border:1px solid rgba(34,197,94,.35);font-weight:600}.race-actions{display:flex;gap:8px;align-items:center}.race-alert{background:#fbbf241f;border:1px solid rgba(251,191,36,.3);color:#fde68a;border-radius:12px;padding:12px;display:grid;gap:6px;margin-bottom:12px}.race-actions-bar{width:100%;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}.session-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.stat-card{background:#0f172ab3;border:1px solid rgba(226,232,240,.08);border-radius:16px;padding:16px;box-shadow:0 10px 30px #0000001f}.stat-card.blue{border-color:#3b82f64d}.stat-card.orange{border-color:#f973164d}.stat-card.green{border-color:#10b98159}.stat-card.outline{background:#0f172a73}.stat-label{margin:0;color:#94a3b8;font-size:13px}.stat-value{margin:4px 0;color:#f8fafc;font-size:26px;font-weight:700}.stat-hint{margin:0;color:#cbd5e1}.plan-card{background:#0f172abf;border:1px solid rgba(226,232,240,.08);border-radius:18px;padding:18px;display:grid;gap:10px;box-shadow:0 10px 32px #0000002e}.plan-head{display:flex;justify-content:space-between;gap:10px}.plan-head h3{margin:4px 0;font-size:24px;color:#f8fafc}.plan-focus{margin:0;color:#cbd5e1}.coach-note{margin:4px 0 0;color:#94a3b8}.session-list{display:grid;gap:10px}.session-card{background:#ffffff05;border:1px solid rgba(226,232,240,.06);padding:12px;border-radius:12px}.session-meta{display:flex;align-items:center;justify-content:space-between;color:#cbd5e1;margin-bottom:4px}.session-title{margin:4px 0;color:#f8fafc;font-weight:700}.session-detail{margin:0;color:#cbd5e1}.session-intensity{margin:6px 0 0;color:#94a3b8;font-size:13px}.session-tag{display:inline-flex;align-items:center;gap:6px;text-transform:capitalize;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.01em}.session-tag.cuestas{background:#22c55e29;color:#4ade80}.session-tag.pasadas{background:#3b82f62e;color:#93c5fd}.session-tag.fondo{background:#f973162e;color:#fdba74}.session-tag.fuerza{background:#ec48992e;color:#f9a8d4}.session-tag.recuperacion{background:#94a3b826;color:#e2e8f0}.session-group{background:#0f172ab3;border:1px solid rgba(226,232,240,.08);border-radius:14px;padding:14px;box-shadow:0 16px 38px #02061742;overflow:hidden}.session-group-head{display:flex;justify-content:space-between;align-items:center}.session-stack{display:grid;gap:12px}.session-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:18px}.session-stat-title{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.session-athlete-toggle{width:100%;justify-content:space-between;align-items:center;gap:14px;padding:6px 2px}.session-athlete-progress{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 12px;border-radius:999px;background:#22c55e24;border:1px solid rgba(34,197,94,.26);color:#bbf7d0;font-size:13px}.session-athlete-rate{display:inline-flex;align-items:center;justify-content:center;min-width:56px;padding:7px 10px;border-radius:10px;background:#3b82f624;border:1px solid rgba(59,130,246,.24);color:#bfdbfe;font-weight:700;font-size:13px}.session-detail-table{margin-top:12px}.session-detail-mobile,.progress-summary-mobile,.assignment-mobile-cards{display:none}.session-mobile-card.done{border-color:#22c55e3d}.session-mobile-card.pending{border-color:#f973163d}.session-pill,.session-status-badge,.session-borg-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700}.session-pill{background:#94a3b81f;border:1px solid rgba(148,163,184,.2);color:#e2e8f0}.session-pill.running{background:#f9731629;border-color:#f9731647;color:#fdba74}.session-pill.ciclismo{background:#22d3ee29;border-color:#22d3ee47;color:#67e8f9}.session-pill.natacion{background:#22c55e29;border-color:#22c55e47;color:#86efac}.session-status-badge.done{background:#22c55e29;border:1px solid rgba(34,197,94,.3);color:#86efac}.session-status-badge.pending{background:#f8717124;border:1px solid rgba(248,113,113,.26);color:#fda4af}.session-status-badge.not-done{background:#f9731624;border:1px solid rgba(249,115,22,.26);color:#fdba74}.session-status-badge.open{background:#94a3b824;border:1px solid rgba(148,163,184,.26);color:#cbd5e1}.session-borg-badge.low{background:#22c55e24;border:1px solid rgba(34,197,94,.24);color:#86efac}.session-borg-badge.mid{background:#facc1524;border:1px solid rgba(250,204,21,.24);color:#fde68a}.session-borg-badge.high{background:#f8717124;border:1px solid rgba(248,113,113,.26);color:#fda4af}.session-borg-badge.neutral{background:#94a3b824;border:1px solid rgba(148,163,184,.26);color:#cbd5e1}.session-comment-cell{max-width:320px;white-space:pre-wrap;color:#cbd5e1}.session-comment-highlight{display:inline-flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:10px;background:#facc151f;border:1px solid rgba(250,204,21,.24);color:#fde68a}.session-comment-plain{display:inline-flex;align-items:flex-start;gap:8px;color:#cbd5e1}.session-comment-alert{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#facc151f;border:1px solid rgba(250,204,21,.24);color:#fde68a;font-size:12px;font-weight:700}.session-comment-mobile{white-space:pre-wrap}.session-comment-mobile.has-comment{color:#fde68a}.session-row-with-comment{background:#facc150a}.session-row-completed td:first-child,.session-row-pending td:first-child{position:relative;padding-left:18px}.session-row-completed td:first-child:before,.session-row-pending td:first-child:before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:3px;border-radius:999px}.session-row-completed td:first-child:before{background:#22c55e}.session-row-pending td:first-child:before{background:#f97316}.session-item{background:#ffffff05;border:1px solid rgba(226,232,240,.08);border-radius:12px;padding:12px}.session-item-head{display:flex;justify-content:space-between;align-items:center}.session-mobile-head-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pill{padding:6px 12px;border-radius:999px;background:#e2e8f01f;color:#e2e8f0;font-size:13px}.pill.alt{background:#30c4f22e;color:#7ad9f6;border:1px solid rgba(48,196,242,.4)}.pill.warn{background:#f871711f;color:#fca5a5;border:1px solid rgba(248,113,113,.3)}.pill.active{background:#22c55e29;color:#86efac;border:1px solid rgba(34,197,94,.35)}.page h2{margin:0}.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.athlete-page{gap:22px}.athlete-hero{position:relative;display:grid;gap:10px;padding:22px;border-radius:20px;border:1px solid rgba(34,211,238,.32);background:linear-gradient(135deg,#22d3ee29,#10b9811a);overflow:hidden;box-shadow:0 18px 40px #02061759,0 0 28px #22d3ee2e}.athlete-hero-glow{position:absolute;inset:-40% 20% auto -20%;height:160px;background:radial-gradient(circle,rgba(34,211,238,.35),transparent 70%);opacity:.8;filter:blur(10px)}.athlete-hero-content{position:relative;z-index:1;display:grid;gap:8px}.athlete-title{margin:0;font-size:30px;color:#f8fafc;letter-spacing:.3px}.quote-panel{box-shadow:0 18px 45px #02061759;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.quote-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:#0f172a99;color:#67e8f9;font-size:12px;font-weight:600;border:1px solid rgba(34,211,238,.35);width:fit-content;text-transform:uppercase;letter-spacing:.08em}.quote-emoji{font-size:14px}.quote-text{margin:0;font-size:17px;color:#e2e8f0;max-width:760px;line-height:1.6}.athlete-panel{display:grid;gap:10px}.athlete-meta{display:grid;gap:4px}.summary-table{padding:16px;border:1px solid rgba(34,211,238,.18);background:#0f172a99;box-shadow:0 14px 36px #02061747}.summary-grid{display:grid;gap:6px}.summary-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 12px;border-radius:10px;background:#e2e8f00d;border:1px solid rgba(226,232,240,.08)}.summary-label{color:#94a3b8;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.summary-value{color:#e2e8f0;font-weight:600;text-align:right}.discipline-tabs{display:inline-flex;flex-wrap:wrap;gap:10px;padding:6px;border-radius:14px;background:#0f172a8c;border:1px solid rgba(226,232,240,.1);width:fit-content}.discipline-tab-btn{display:inline-flex;align-items:center;gap:8px;background:#e2e8f00d;color:#cbd5e1;border:1px solid rgba(226,232,240,.12);padding:8px 14px;border-radius:10px;text-transform:capitalize;font-size:13px}.discipline-tab-btn:hover{background:#e2e8f01a;color:#f8fafc}.discipline-tab-btn.active{color:#0b1221;border-color:transparent;box-shadow:0 0 0 1px #e2e8f02e inset}.discipline-tab-icon{width:18px;height:18px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;line-height:1;background:#e2e8f029;color:#f8fafc;border:1px solid rgba(226,232,240,.2)}.discipline-tab-icon-svg{width:13px;height:13px;display:block}.discipline-tab-btn.active .discipline-tab-icon{background:#0b122138;color:#0b1221;border-color:#0b122129}.discipline-tab-btn.active[data-discipline=running]{background:linear-gradient(135deg,#fe5b1a,#fb923c)}.discipline-tab-btn.active[data-discipline=ciclismo]{background:linear-gradient(135deg,#30c4f2,#22d3ee)}.discipline-tab-btn.active[data-discipline=natacion]{background:linear-gradient(135deg,#10b981,#22c55e)}.panel{background:#0f172ab3;border:1px solid rgba(226,232,240,.08);border-radius:14px;padding:14px;box-shadow:0 18px 45px #02061759,0 0 22px #22d3ee29;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.birthday-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.birthday-headline,.birthday-left{display:inline-flex;align-items:center;gap:10px}.birthday-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:#fbbf2426;color:#fbbf24;border:1px solid rgba(251,191,36,.3)}.birthday-icon.gift{background:#22d3ee1f;color:#22d3ee;border-color:#22d3ee59}.birthday-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;background:#e2e8f00a;border:1px solid rgba(226,232,240,.08)}.birthday-name{font-weight:600;color:#f8fafc}.birthday-date{font-weight:600;color:#22d3ee;display:inline-flex;align-items:center;gap:8px}.panel-actions{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.progress{width:100%;height:10px;border-radius:999px;background:#e2e8f014;overflow:hidden}.progress-bar{height:100%;background:linear-gradient(135deg,#22d3ee,#16a34a)}.chip-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.chip{padding:6px 10px;border-radius:10px;background:#e2e8f014;color:#e2e8f0;border:1px solid rgba(226,232,240,.12)}.chip-list.warning .chip{background:#f9731629;color:#fdba74;border-color:#f973164d}.link-btn{background:transparent;color:#67e8f9;border:none;padding:0;font-weight:600;cursor:pointer}.auth-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;align-items:center;width:min(940px,100%);padding:0 20px 24px}.auth-grid.single{grid-template-columns:minmax(320px,520px);justify-content:center;width:100%}.auth-page{gap:20px;min-height:100vh;position:relative;border-radius:0;padding:24px 20px 48px;margin:-24px -20px -48px;overflow:hidden;align-items:center;justify-content:center}.auth-page:before{content:"";position:fixed;inset:0;background-image:linear-gradient(180deg,#0b1221b3,#0b1221e0),url(/assets/portada-DQIC91rC.png);background-size:cover;background-position:center;background-repeat:no-repeat;z-index:0;opacity:.75}.auth-page>*{position:relative;z-index:1}.auth-card{position:relative;background:#0f172ab3;border:1px solid rgba(34,211,238,.32);border-radius:18px;padding:20px;box-shadow:0 22px 55px #02061766,0 0 34px #22d3ee47;display:grid;gap:14px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.auth-card:before{content:"";position:absolute;inset:0;border-radius:18px;padding:1px;background:linear-gradient(135deg,#22d3ee59,#10b98140);-webkit-mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.auth-card>*{position:relative;z-index:1}.form-head h2{margin:4px 0;color:#f8fafc}.field{display:grid;gap:6px;color:#cbd5e1}.field input{background:#e2e8f00f;border:1px solid rgba(226,232,240,.18);border-radius:12px;padding:12px;color:#f8fafc;font-size:15px}.field textarea{background:#e2e8f00f;border:1px solid rgba(226,232,240,.18);border-radius:12px;padding:12px;color:#f8fafc;font-size:15px;font-family:inherit;resize:vertical;min-height:80px}.field select{background:#e2e8f00f;border:1px solid rgba(226,232,240,.18);border-radius:12px;padding:12px;color:#f8fafc;font-size:15px}.field select option{background:#0f172a;color:#f8fafc}.field input:focus{outline:2px solid rgba(34,211,238,.4);border-color:#22d3ee80}.field textarea:focus{outline:2px solid rgba(34,211,238,.4);border-color:#22d3ee80}.field select:focus{outline:2px solid rgba(34,211,238,.4);border-color:#22d3ee80}.alert{background:#f871711f;border:1px solid rgba(248,113,113,.3);color:#fecdd3;border-radius:10px;padding:10px 12px}.full{width:100%;justify-content:center;text-align:center}.tiny{font-size:12px}button:disabled{opacity:.5;cursor:not-allowed}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.cuotas-form-grid{row-gap:18px;column-gap:20px}.full-row{grid-column:1 / -1}.chip-row{display:flex;gap:8px;flex-wrap:wrap}.chip.active{border-color:#22d3ee66;background:#22d3ee1f}.chip input{margin-right:6px}.pill-row{display:flex;flex-wrap:wrap;gap:8px}.pill input{display:none}.pill-active{background:#22d3ee1f;color:#67e8f9;border:1px solid rgba(34,211,238,.32)}.form-actions{display:flex;gap:10px;justify-content:flex-end;grid-column:1 / -1}.draft-list{margin-top:12px;display:grid;gap:10px}.plan-builder{display:grid;gap:16px}.plan-week{background:#0f172ab3;border:1px solid rgba(226,232,240,.08);border-radius:14px;padding:14px;display:grid;gap:12px}.plan-week-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.plan-week-select{min-width:160px}.plan-actions{display:flex;justify-content:flex-end;gap:10px}.plan-week-list{display:grid;gap:12px}.plan-week-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;align-items:start}.plan-week-grid.compact{grid-template-columns:1fr}.plan-week-card{background:linear-gradient(180deg,#0e1829f5,#0a121feb);border:1px solid rgba(125,211,252,.14);border-radius:18px;padding:14px;display:grid;gap:12px;box-shadow:0 18px 36px #0206173d}.plan-week-card.is-active{border-color:#38bdf84d;box-shadow:0 18px 36px #0206173d,0 0 0 1px #38bdf81f}.plan-week-summary{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0;border:none;background:transparent;color:inherit;text-align:left;cursor:pointer}.plan-week-summary-main{display:grid;gap:4px}.plan-week-meta{display:inline-flex;align-items:center;gap:10px;color:#cbd5e1}.plan-week-title{font-weight:600;color:#e0f2fe;font-size:14px;line-height:1.35}.plan-week-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:10px;border-bottom:1px solid rgba(148,163,184,.12)}.week-toggle{display:inline-flex;align-items:center;justify-content:center;padding:6px 11px;border-radius:999px;border:1px solid rgba(125,211,252,.18);background:#1e293bd1;color:#dbeafe;font-size:13px;font-weight:600;min-width:34px;min-height:34px;transition:background .2s ease,border-color .2s ease,transform .2s ease}.week-toggle:hover{background:#0ea5e929;border-color:#38bdf86b;transform:translateY(-1px)}.plan-week-sessions{display:grid;gap:12px}.plan-week-session{background:linear-gradient(180deg,#0f172ac7,#0c1423e6);border:1px solid rgba(148,163,184,.12);border-radius:16px;padding:14px;display:grid;grid-template-columns:1fr;gap:12px;align-items:start;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.plan-week-session.compact{padding:12px 14px}.plan-week-session.pending{border-color:#94a3b833;box-shadow:inset 0 0 0 1px #94a3b814}.plan-week-session.completed{border-color:#10b9818c;background:linear-gradient(180deg,#084034db,#0c1c23f2);box-shadow:inset 0 0 0 1px #34d39938,0 0 0 2px #10b98114}.plan-week-session.not-completed{border-color:#fb923c80;background:linear-gradient(180deg,#4e230eeb,#191419f2);box-shadow:inset 0 0 0 1px #fb923c29}.plan-session-block{background:#080f1cb8;border:1px solid rgba(148,163,184,.12);border-radius:12px;padding:9px 11px;display:grid;gap:4px;min-height:100%}.plan-session-label{text-transform:uppercase;letter-spacing:.08em;font-size:10px;color:#93c5fd}.plan-week-session-head{display:flex;justify-content:space-between;align-items:center}@media(max-width:780px){.panel-head{flex-direction:column;align-items:flex-start;gap:10px}.plan-week-head{flex-direction:column;align-items:flex-start}.plan-week-head h3{margin:0}.plan-week-select{min-width:0;width:100%}.plan-week-select .field,.plan-week-select select{width:100%}.plan-actions{flex-direction:column;align-items:stretch}.plan-actions button{width:100%}.plan-master-head{flex-direction:column;align-items:flex-start}.plan-week-session-head{flex-direction:column;align-items:flex-start;gap:6px}}@media(max-width:520px){.plan-builder .form-grid,.plan-week .form-grid{grid-template-columns:1fr}.plan-builder .field span,.plan-week .field span{font-size:12px}.plan-builder input,.plan-builder select,.plan-builder textarea,.plan-week input,.plan-week select,.plan-week textarea{font-size:13px}.plan-week-title{font-size:14px}.plan-week-session{padding:10px}.plan-week-session p{font-size:13px}}.plan-master-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.plan-master-card{background:#0f172abf;border:1px solid rgba(226,232,240,.08);border-radius:16px;padding:16px;display:grid;gap:8px;text-align:left;transition:all .2s ease;box-shadow:0 18px 40px #02061752,0 0 18px #22d3ee24;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.plan-check{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#cbd5e1;width:fit-content}.plan-check input{width:16px;height:16px;accent-color:#22d3ee}.plan-master-button{background:transparent;border:none;padding:0;text-align:left;color:inherit;display:grid;gap:6px;cursor:pointer}.plan-master-card.selected{border-color:#30c4f28c;box-shadow:0 0 0 2px #30c4f240}.plan-master-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.plan-panel{display:grid;gap:14px}.plan-panel h3,.plan-panel p,.plan-panel strong,.plan-panel .muted,.plan-panel .plan-session-label,.plan-panel .plan-week-title,.plan-panel .plan-stat span{color:#fff}.plan-progress{display:grid;gap:8px;padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,#082f497a,#064e3b57);border:1px solid rgba(56,189,248,.16)}.plan-structure{display:grid;gap:18px}.plan-focus-block,.plan-history-block{display:grid;gap:14px}.plan-focus-head,.plan-history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.plan-week-eyebrow{display:inline-flex;align-items:center;gap:6px;margin-bottom:6px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#7dd3fc}.plan-week-card.history{background:#94a3b80f;border-color:#94a3b838}.session-check{display:grid;gap:10px;padding:12px;border-radius:14px;background:linear-gradient(180deg,#101827f0,#09101cf5);border:1px solid rgba(148,163,184,.12);box-shadow:inset 0 1px #ffffff05}.session-summary-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.session-summary-main{display:inline-flex;align-items:center;gap:10px;min-width:0}.session-summary-text{display:grid;gap:3px;min-width:0}.session-summary-text strong{color:#f8fafc}.session-summary-actions{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;margin-left:auto}.session-status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:98px;padding:6px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.18);background:#1e293bb8;color:#e2e8f0;font-size:12px;font-weight:700}.session-status-badge.completed{background:#10b9812e;border-color:#10b98161;color:#bbf7d0}.session-status-badge.not_completed{background:#f9731629;border-color:#f9731657;color:#fdba74}.session-status-badge.pending{color:#dbeafe}.session-detail-toggle{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border-radius:999px;border:1px solid rgba(125,211,252,.18);background:#0f172ae6;color:#dbeafe;font-size:12px;font-weight:700}.plan-week-session-body{display:grid;gap:12px}.plan-session-blocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.session-check-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.plan-panel .session-day-pill{font-weight:700}.plan-panel .session-day-pill.orange{background:#fe5b1a33;border:1px solid rgba(254,91,26,.55);color:#ffcfb8}.plan-panel .session-day-pill.cyan{background:#22d3ee33;border:1px solid rgba(34,211,238,.55);color:#b9f3fd}.plan-week-session.completed .session-day-pill.orange{background:#fe5b1a47;border-color:#fe5b1abf}.plan-week-session.completed .session-day-pill.cyan{background:#22d3ee47;border-color:#22d3eebf}.plan-week-session.pending .session-day-pill.orange{background:#fe5b1a24}.plan-week-session.pending .session-day-pill.cyan{background:#22d3ee24}.plan-week-session.not-completed .session-day-pill.orange{background:#fe5b1a38;border-color:#fe5b1a9e}.plan-week-session.not-completed .session-day-pill.cyan{background:#22d3ee33;border-color:#22d3ee85}.plan-week-session .session-day-pill{font-weight:700}.session-complete{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border-radius:10px;background:#e2e8f00f;border:1px solid rgba(226,232,240,.12);color:#e2e8f0;font-size:13px;width:fit-content}.session-complete.inline{padding:5px 10px;border-radius:999px;font-weight:600}.session-complete.done{background:#10b98133;border-color:#10b98173;color:#bbf7d0}.session-complete.not-done{background:#f973162e;border-color:#f9731673;color:#fdba74}.session-complete input{width:20px;height:20px;accent-color:#22d3ee}.session-status-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mood-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.session-comment-field{display:grid;gap:6px;margin-top:2px}.session-comment-input{width:100%;min-height:74px;resize:vertical;border-radius:12px;border:1px solid rgba(148,163,184,.22);background:#0f172aeb;color:#e2e8f0;padding:10px 12px;font:inherit}.session-comment-input:focus{outline:none;border-color:#22c55e80;box-shadow:0 0 0 3px #22c55e1f}.mood-btn{display:inline-flex;align-items:center;gap:3px;padding:6px 7px;border-radius:10px;background:#e2e8f00a;border:1px solid rgba(226,232,240,.1);color:#e2e8f0;font-size:14px;min-width:0;transition:background .15s,border .15s}.mood-text{font-size:11px;line-height:1.2;color:#cbd5e1;margin-left:3px;white-space:nowrap}@media(max-width:780px){.mood-btn{align-items:flex-start;gap:4px}.mood-text{white-space:normal;max-width:72px}}.mood-btn.active{background:#30c4f229;border-color:#30c4f273;box-shadow:0 0 0 1px #30c4f259}.mood-emoji{font-size:16px}.mood-label{display:none}.mood-key{font-weight:500;font-size:13px;margin-left:2px}.mood-clear{padding:8px 12px}.plan-hero-stats{display:flex;gap:12px;flex-wrap:wrap}.plan-head-actions{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;justify-content:flex-end}.plan-toggle{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:999px;background:#0f172ae6;color:#e2e8f0;border:1px solid rgba(125,211,252,.18);font-size:12px;font-weight:600;transition:background .2s ease,border-color .2s ease,transform .2s ease}.plan-toggle svg,.week-toggle svg{font-size:12px}.nav-toggle-bar{width:18px;height:2px;background:#e2e8f0;border-radius:999px;transition:transform .2s ease,opacity .2s ease}.nav-toggle.open .nav-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle.open .nav-toggle-bar:nth-child(2){opacity:0}.nav-toggle.open .nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.plan-toggle:hover{background:#0ea5e924;border-color:#38bdf85c;transform:translateY(-1px)}.plan-stat{display:grid;gap:2px;padding:8px 12px;border-radius:12px;background:linear-gradient(135deg,#082f49b3,#0e749066);border:1px solid rgba(56,189,248,.28);color:#e2e8f0;min-width:90px}.plan-observation{padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,#27272a9e,#0c1423d6);border:1px solid rgba(148,163,184,.14)}.plan-week-card>.muted{padding:4px 2px 0;color:#94a3b8}.table-wrap{width:100%;overflow-x:auto;border-radius:14px;border:1px solid rgba(226,232,240,.08);background:#0f172ab3}.data-table{width:100%;border-collapse:collapse;transition:transform .2s ease,border-color .2s ease}.plan-week-card:hover{transform:translateY(-2px);border-color:#22d3ee40}.data-table th,.data-table td{padding:12px 14px;text-align:left;border-bottom:1px solid rgba(226,232,240,.08);color:#e2e8f0;vertical-align:top}.data-table th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;background:#0f172abf;position:sticky;top:0}.data-table tbody tr:hover{background:#94a3b814}.table-actions{display:flex;gap:8px}.progress-discipline-grid{display:grid;gap:14px}.progress-discipline-title{display:inline-flex;align-items:center;gap:8px}.progress-discipline-icon{color:#22d3ee;font-size:20px}.athlete-accordion{display:grid;gap:10px}.athlete-search-bar{margin-bottom:18px;display:flex;justify-content:flex-end}.athlete-accordion-item{background:#0f172a99;border:1px solid rgba(226,232,240,.08);border-radius:14px;overflow:hidden;box-shadow:0 18px 40px #02061752,0 0 18px #22d3ee1f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.athlete-accordion-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 12px}.athlete-accordion-toggle{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1.2fr) auto;align-items:center;gap:12px;width:100%;background:transparent;color:inherit;border:none;padding:0;cursor:pointer;text-align:left}.athlete-accordion-main{display:grid;gap:4px;min-width:0}.athlete-name{font-weight:700;color:#f8fafc;overflow-wrap:anywhere}.athlete-discipline{color:#cbd5e1;font-size:13px}.athlete-accordion-statuses{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px}.athlete-chevron{display:inline-flex;align-items:center;justify-content:center;color:#94a3b8}.athlete-accordion-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap}.athlete-accordion-body{padding:0 12px 12px}.athlete-accordion-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.athlete-accordion-field{background:#e2e8f00a;border:1px solid rgba(226,232,240,.08);border-radius:10px;padding:8px 10px;display:grid;gap:4px}.athlete-accordion-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8}.athlete-accordion-value{color:#e2e8f0;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}@media(max-width:780px){.athlete-search-bar{justify-content:stretch}.athlete-search-bar input{width:100%}.athlete-accordion-head{align-items:flex-start}.athlete-accordion-toggle{grid-template-columns:1fr;gap:6px}.athlete-accordion-statuses{gap:6px}.athlete-accordion-actions{width:100%;justify-content:flex-end}.athlete-accordion-value{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}}.athlete-card-list{display:grid;gap:14px}.athlete-card-list.assignment-mobile-cards{display:none}.athlete-card{background:#0f172a99;border:1px solid rgba(226,232,240,.08);border-radius:14px;padding:14px;display:grid;gap:12px;box-shadow:0 18px 40px #02061752,0 0 18px #22d3ee1f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.athlete-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.athlete-card-head h3{margin:0;color:#f8fafc;font-size:18px}.athlete-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.athlete-card-field{background:#e2e8f00a;border:1px solid rgba(226,232,240,.08);border-radius:10px;padding:8px 10px;display:grid;gap:4px}.athlete-card-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8}.athlete-card-value{color:#e2e8f0;font-size:13px}.athlete-card-actions{display:flex;gap:8px;justify-content:flex-end}.modal-backdrop{position:fixed;inset:0;background:#0f172ab8;display:flex;align-items:center;justify-content:center;padding:20px;z-index:5}.modal{width:min(900px,100%);max-height:85vh;overflow-y:auto;background:#0f172ae6;border:1px solid rgba(226,232,240,.12);border-radius:18px;padding:18px;box-shadow:0 20px 60px #00000059;display:grid;gap:16px}.confirm-modal{width:min(520px,100%)}.register-payment-backdrop{z-index:1000;background:#1e283c40;align-items:center;box-sizing:border-box;overflow-y:auto;padding:16px 12px;padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom))}.register-payment-modal{width:min(400px,calc(100vw - 24px));max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);margin:auto;border-radius:18px;box-shadow:0 8px 32px #3c3c3c2e;background:#fff;padding:0;overflow-x:hidden;overflow-y:auto;border:1.5px solid #1976d2;-webkit-overflow-scrolling:touch}.register-payment-head{display:flex;align-items:center;justify-content:space-between;padding:18px 24px 10px;border-bottom:1px solid #e3e8f0;background:#f5faff}.register-payment-eyebrow{color:#1976d2;font-weight:600;margin-bottom:2px}.register-payment-title{font-size:22px;margin:0;color:#0f172a}.register-payment-athlete{margin:0;font-size:15px}.register-payment-close{font-size:22px;background:none;border:none;color:#1976d2;cursor:pointer;padding:0;line-height:1}.register-payment-body{padding:24px 24px 18px}.register-payment-fields{display:grid;grid-template-columns:auto 1fr auto 92px;gap:12px;align-items:center;margin-bottom:22px}.register-payment-label{font-weight:500;font-size:15px;color:#334155}.register-payment-input{min-width:0;width:100%;padding:7px 12px;border-radius:8px;border:1.5px solid #bdbdbd;font-size:15px;background:#fafdff}.register-payment-year{width:92px}.register-payment-actions{display:flex;justify-content:flex-end;gap:10px}.register-payment-cancel{padding:7px 18px;border-radius:8px;font-size:15px;border:1.5px solid #1976d2;color:#1976d2;background:#f5faff}.register-payment-save{padding:7px 18px;border-radius:8px;font-size:15px;border:none;color:#fff;background:#1976d2;box-shadow:0 2px 8px #1976d214}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.modal-body{display:grid;gap:12px}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.panel-head-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.athlete-create-modal{width:min(1040px,100%)}.athlete-create-modal-body{gap:0}.plan-view-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.plan-view-overlay{position:absolute;inset:0;background:#0009;cursor:pointer}.plan-view-container{position:relative;background:linear-gradient(135deg,#0f172af2,#1e293be6);border:1px solid rgba(148,163,184,.12);border-radius:20px;padding:24px;max-width:1200px;max-height:85vh;overflow-y:auto;box-shadow:0 25px 50px -12px #00000080;animation:slideUp .3s ease;width:90vw}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.plan-view-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;border-bottom:1px solid rgba(226,232,240,.1);padding-bottom:16px}.plan-view-header h2{margin:0;font-size:24px;color:#f1f5f9}.plan-view-header .eyebrow{margin-bottom:4px}.close-btn{background:#e2e8f01a;border:1px solid rgba(226,232,240,.2);color:#cbd5e1;width:36px;height:36px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:all .2s ease;padding:0}.close-btn:hover{background:#e2e8f033;color:#f1f5f9}.plan-view-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:20px}.stat-box{background:#e2e8f00d;border:1px solid rgba(226,232,240,.1);border-radius:12px;padding:12px;text-align:center;display:grid;gap:6px}.stat-label{text-transform:uppercase;letter-spacing:.08em;font-size:10px;color:#8b9ebf}.stat-value{font-size:20px;font-weight:700;color:#22d3ee}.plan-observation-box{background:#22d3ee0d;border-left:3px solid #22d3ee;border-radius:8px;padding:12px;margin-bottom:20px;color:#cbd5e1}.plan-observation-box strong{color:#22d3ee}.plan-observation-box p{margin:4px 0 0;font-size:13px}.plan-view-weeks{display:grid;gap:16px;margin-bottom:20px}.view-week-card{background:#e2e8f005;border:1px solid rgba(226,232,240,.1);border-radius:14px;padding:14px;display:grid;gap:12px}.view-week-header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid rgba(226,232,240,.1)}.view-week-header h3{margin:0;color:#22d3ee;font-size:14px}.location-badge{display:inline-block;background:#22d3ee1a;color:#22d3ee;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600}.view-sessions{display:grid;gap:10px}.view-session{background:#0f172a66;border:1px solid rgba(226,232,240,.08);border-radius:10px;padding:10px;display:grid;gap:8px}.view-session-day{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.day-name{font-weight:600;color:#f1f5f9;min-width:80px}.method-badge{display:inline-block;background:#94a3b826;color:#cbd5e1;padding:3px 6px;border-radius:4px;font-size:10px;font-weight:500}.view-session-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.detail-item{display:grid;gap:2px}.detail-label{text-transform:uppercase;letter-spacing:.08em;font-size:9px;color:#8b9ebf;font-weight:600}.detail-value{color:#cbd5e1;font-size:12px}.plan-view-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:16px;border-top:1px solid rgba(226,232,240,.1)}.plan-master-actions{display:flex;gap:6px;justify-content:flex-start;padding-top:8px;border-top:1px solid rgba(226,232,240,.08)}.icon-btn{background:transparent;border:1px solid rgba(226,232,240,.15);color:#cbd5e1;width:32px;height:32px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s ease;padding:0}.icon-btn:hover{background:#e2e8f01a;border-color:#e2e8f04d;color:#f1f5f9}.icon-btn.view:hover,.icon-btn.edit:hover{border-color:#22d3ee80}.icon-btn.delete:hover,.icon-btn.disable:hover{border-color:#ef444480;color:#fca5a5}.icon-btn.enable:hover{border-color:#22c55e99;color:#86efac}.row-disabled{opacity:.6}.plan-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.filter-btn{background:#e2e8f00d;border:1px solid rgba(226,232,240,.15);color:#cbd5e1;padding:8px 12px;border-radius:20px;cursor:pointer;font-size:12px;font-weight:600;transition:all .2s ease}.filter-btn:hover{background:#e2e8f01a;border-color:#e2e8f04d;color:#f1f5f9}.filter-btn.active{background:#22d3ee33;border-color:#22d3ee80;color:#22d3ee}.payment-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.payment-status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:92px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.02em;border:1px solid transparent;box-shadow:none}.payment-status-badge.paid{background:#22c55e29;color:#86efac;border-color:#22c55e59}.payment-status-badge.pending{background:#f9731629;color:#fdba74;border-color:#f9731652}.payment-status-badge.partial{background:#3b82f629;color:#93c5fd;border-color:#3b82f652}.payment-status-badge.team{background:#22d3ee29;color:#67e8f9;border-color:#22d3ee52}.payment-status-badge.free{background:#facc1529;color:#fde68a;border-color:#facc1552}.payment-status-badge:hover{transform:none;filter:brightness(1.08)}.payment-whatsapp-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;text-decoration:none;background:#22c55e29;color:#86efac;border:1px solid rgba(34,197,94,.35)}.cuotas-mobile-cards{display:none}.cuotas-toolbar-grid{margin-bottom:18px}.cuota-mobile-card{gap:12px}.cuota-mobile-head{align-items:flex-start}.cuota-mobile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cuota-mobile-actions{justify-content:space-between;align-items:center}.cuota-mobile-phone{text-align:right}.progress-mobile-card,.assignment-mobile-card{gap:12px}.disabled-link{opacity:.5;pointer-events:none}.register-payment-fields-two{grid-template-columns:auto 1fr auto 1fr}.register-payment-fields-one{grid-template-columns:auto 1fr}.plan-master-button{background:transparent;border:none;color:inherit;padding:0;text-align:left;cursor:pointer;width:100%}.plan-editor{display:grid;gap:16px}.edit-form{background:#e2e8f005;border:1px solid rgba(226,232,240,.1);border-radius:14px;padding:16px;margin:16px 0;display:grid;gap:16px}.edit-form .form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.edit-form h3{margin:0;color:#22d3ee;font-size:16px}.plan-week-card{background:#e2e8f005;border:1px solid rgba(226,232,240,.1);border-radius:12px;padding:14px;margin-bottom:12px}.plan-week-title{font-weight:600;color:#22d3ee;margin-bottom:8px;font-size:14px}.plan-week-sessions{display:grid;gap:10px}.plan-week-session{background:#0f172a66;border:1px solid rgba(226,232,240,.08);border-radius:8px;padding:10px}.plan-week-session-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.plan-week-session-head strong{color:#22d3ee;font-weight:600}.session-actions{display:flex;gap:8px}.link-btn{background:transparent;border:1px solid rgba(226,232,240,.2);color:#22d3ee;padding:4px 10px;border-radius:6px;cursor:pointer;font-size:11px;font-weight:600;transition:all .2s ease}.link-btn:hover{background:#22d3ee1a;border-color:#22d3ee80}.link-btn.delete{color:#fca5a5;border-color:#ef444433}.link-btn.delete:hover{background:#ef44441a;border-color:#ef444480}.plan-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding-top:12px}@media(max-width:780px){.page-header{flex-direction:column}.nav{position:sticky}.nav-toggle{display:inline-flex;align-items:center;justify-content:center}.nav-links{position:absolute;top:100%;left:16px;right:16px;display:none;flex-direction:column;gap:8px;padding:12px;border-radius:14px;background:#0f172af2;border:1px solid rgba(226,232,240,.12);z-index:3}.nav-links.open{display:flex}.nav-links.coach-links .nav-link,.nav-links.athlete-links .nav-link{width:100%;text-align:left;padding:10px 12px;font-size:14px}.nav-dropdown{width:100%}.dropdown-toggle{width:100%;text-align:left;margin:0;padding:10px 12px}.dropdown-menu{position:static;width:100%;margin-top:6px;border:1px solid rgba(226,232,240,.12)}.nav-user{gap:8px}.tabs-nav{flex-wrap:wrap}.tab-btn{flex:1 1 140px;text-align:center}.panel-head,.plan-week-head{flex-direction:column;align-items:flex-start}.plan-focus-head,.plan-history-head{flex-direction:column;align-items:stretch}.plan-week-select,.plan-week-select select{width:100%}.athlete-hero{padding:16px}.athlete-title{font-size:24px}.quote-text{font-size:14px}.summary-row{flex-direction:column;align-items:flex-start}.summary-value{text-align:left}.plan-head-actions{justify-content:flex-start;width:100%}.plan-hero-stats{flex-wrap:wrap}.plan-week-grid{grid-template-columns:1fr}.session-check-head{flex-direction:column;align-items:flex-start}.session-summary-row,.plan-week-summary{align-items:flex-start}.session-summary-actions{margin-left:0}.plan-session-blocks{grid-template-columns:1fr}.plan-view-container{max-width:95vw;max-height:90vh;padding:16px}.register-payment-head,.register-payment-body{padding:16px}.register-payment-fields{grid-template-columns:1fr;gap:8px}.register-payment-year{width:100%}.register-payment-actions{flex-direction:column}.register-payment-actions button{width:100%}.plan-view-header{flex-direction:column}.view-session-details{grid-template-columns:1fr}.session-athlete-toggle{grid-template-columns:1fr;align-items:flex-start}.session-athlete-progress,.session-athlete-rate{justify-content:flex-start}.session-detail-desktop,.progress-summary-desktop,.assignment-desktop-table{display:none}.session-detail-mobile,.progress-summary-mobile,.assignment-mobile-cards,.athlete-card-list.assignment-mobile-cards{display:grid}.cuotas-desktop-table{display:none}.cuotas-mobile-cards{display:grid}.cuota-mobile-grid{grid-template-columns:1fr}.cuota-mobile-actions{justify-content:space-between;gap:10px}.cuota-mobile-phone{text-align:left;max-width:100%;overflow-wrap:anywhere}.payment-filters .filter-btn{flex:1 1 140px;text-align:center}.payment-status-badge{min-width:88px}}
