.routine-modal{max-height:calc(100vh - 28px);overflow-y:auto;padding-bottom:24px}.routine-modal form{padding-bottom:4px}.routine-modal form>.full{position:sticky;bottom:0;z-index:2;margin-top:18px;box-shadow:0 -12px 18px rgba(255,255,255,.95)}
.auth-gate .app-shell{display:none}
.auth-gate #auth-modal{display:grid}
.auth-gate #auth-modal .modal{animation:auth-modal-in .2s ease-out}
@keyframes auth-modal-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:800px){.fitness-hero{min-height:245px;padding:28px 24px}.fitness-hero-copy h2{font-size:27px}.fitness-hero-badge{width:78px;height:78px;font-size:9px}.fitness-hero-badge strong{font-size:15px}}
.remember-row{display:flex!important;align-items:center;gap:8px;color:var(--muted);font-size:12px!important;font-weight:600!important;margin:0 0 14px!important}.remember-row input{width:16px!important;height:16px;margin:0!important;accent-color:var(--green)}.booking-link-box a{display:block;color:var(--green-dark);font-weight:800;font-size:13px;text-decoration:none;word-break:break-all;margin:7px 0}.booking-link-box a:hover{text-decoration:underline}
.public-booking .app-shell{display:none}.public-booking #public-booking-modal{display:grid}.public-booking #public-booking-modal .modal-close{display:none}
.app-dialog{z-index:20}.app-dialog-modal{max-width:460px}.app-dialog-input{display:block;width:100%;margin:14px 0;padding:12px;border:1px solid #b9d9ef;border-radius:10px;font:14px 'DM Sans';box-sizing:border-box}.app-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.app-dialog-actions button{width:auto!important;margin:0}
.routine-modal{width:min(460px,100%);max-height:calc(100vh - 36px);padding:32px 30px 29px;border-radius:20px;background:#fff}.routine-modal .eyebrow{margin-bottom:8px}.routine-modal h2{font-size:25px;margin-bottom:23px}.routine-modal form>.form-row{grid-template-columns:1fr 1fr;gap:14px}.routine-modal label{margin-bottom:16px}.routine-modal input,.routine-modal select{height:42px}.exercise-header{display:flex;align-items:center;gap:8px;margin:3px 0 9px}.exercise-header b{font:700 16px Manrope}.exercise-header .outline-button{padding:4px 9px!important;font-size:12px!important}.exercise-grid{display:flex!important;flex-direction:column;gap:7px;margin-bottom:6px}.exercise-grid input{height:41px}.exercise-grid .remove-exercise{align-self:flex-start;border:1px solid #aab6b0;background:#fff;color:#26342f;border-radius:3px;padding:3px 8px;cursor:pointer}.routine-modal form>.full{position:static;margin-top:18px;height:41px;box-shadow:none;border-radius:10px}
.auth-gate #auth-modal .modal{color:#14202d;background:linear-gradient(145deg,#f8fcff,#e7f5ff)}.auth-gate #auth-modal .modal h2,.auth-gate #auth-modal .modal label{color:#14202d}.auth-gate #auth-modal .modal .eyebrow{color:#1475b7}.auth-gate #auth-modal .modal .muted{color:#5e7180}.auth-gate #auth-modal .modal input{color:#14202d;background:#fff}.auth-gate #auth-modal .modal .password-toggle{color:#0066d6!important}.auth-logo{filter:drop-shadow(0 8px 12px rgba(0,90,170,.18))}
.booking-request-row{grid-template-columns:1.5fr .9fr .7fr .8fr 1.4fr}.booking-actions{display:flex;align-items:center;gap:7px}.booking-actions button{font-size:11px!important;padding:6px 9px!important}.booking-reject{color:#b24f68!important}.status.cancelled{color:#a24a61;background:#fdebf0}@media(max-width:800px){.booking-request-row{grid-template-columns:1.3fr .8fr .7fr}.booking-request-row span:nth-child(5){grid-column:1/-1}.booking-actions{justify-content:flex-start}}
.admin-actions{display:flex;gap:10px;align-items:center}.admin-actions button{width:auto!important}@media(max-width:800px){.admin-actions{width:100%;flex-direction:column;align-items:stretch}.admin-actions button{width:100%!important}}
.brand{cursor:pointer;user-select:none}.brand:hover .brand-accent{color:#6bd7ff}
.coach-payment-card{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:22px 24px;margin-bottom:24px;border:1px solid rgba(0,140,220,.2);border-radius:18px;background:linear-gradient(110deg,#f8fcff,#e7f5ff);box-shadow:0 14px 30px rgba(0,85,160,.09)}.coach-payment-card h2{margin:0 0 5px;font:700 19px Manrope;color:#122234}.payment-due{display:flex;flex-direction:column;align-items:center;min-width:130px;padding:10px 16px;border-left:1px solid #c5e2f5;border-right:1px solid #c5e2f5}.payment-due strong{font:800 30px Manrope;color:#006fd4}.payment-due span{font-size:11px;color:#58758b}.payment-due small{margin-top:5px;color:#6b8190;font-size:10px;text-align:center}.whatsapp-payment{display:flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;width:auto!important;padding:12px 16px!important;background:linear-gradient(135deg,#16b866,#07964f)!important;color:#fff!important}@media(max-width:800px){.coach-payment-card{align-items:stretch;flex-direction:column}.payment-due{border:0;border-top:1px solid #c5e2f5;border-bottom:1px solid #c5e2f5;padding:13px}.whatsapp-payment{width:100%!important;white-space:normal}}
.brand-mark{overflow:hidden;padding:3px}.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}.auth-logo{display:block;width:76px;height:76px;object-fit:contain;margin:0 auto 12px;border-radius:20px}.auth-gate #auth-modal .modal{text-align:left}.auth-gate #auth-modal .auth-logo{background:rgba(255,255,255,.94);padding:5px}
.brand-mark{background:transparent!important;box-shadow:none!important;padding:0!important}.brand-mark img{object-fit:contain}.auth-gate #auth-modal .auth-logo{background:transparent;padding:0}
/* Modern workspace polish */
:root{--radius-lg:22px;--radius-md:14px;--focus:rgba(11,157,242,.2)}
*{scrollbar-width:thin;scrollbar-color:#bfd5e3 transparent}
body{font-size:15px;-webkit-font-smoothing:antialiased}
.sidebar{width:258px;padding:30px 18px 22px;position:relative;z-index:5}
.brand{font-size:20px;padding-left:10px;margin-bottom:14px}
.nav-item{min-height:48px;border-radius:14px;font-size:22px!important;gap:15px;padding:12px 15px}
.nav-item span{font-size:14px!important;font-weight:700}
.nav-item.active{box-shadow:inset 3px 0 var(--green),0 8px 18px rgba(0,0,0,.12)}
.topbar{position:sticky;top:0;z-index:4;box-shadow:0 4px 18px rgba(24,42,28,.05)}
.view{padding:42px 5.5% 58px;max-width:1500px}
.page-heading{margin-bottom:28px;gap:24px}.page-heading h1{font-size:34px;line-height:1.1}.page-heading .muted{font-size:14px}
.primary-button,.outline-button,.text-button,.quick-action,.nav-item,.profile-button,.menu-button{transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}
.primary-button:hover{transform:translateY(-1px)}
.primary-button:focus-visible,.outline-button:focus-visible,.text-button:focus-visible,.nav-item:focus-visible,.quick-action:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.stats-grid{gap:18px;margin-bottom:30px}.stat-card{min-height:104px;border-radius:18px;padding:20px;box-shadow:0 12px 30px rgba(24,42,28,.07)}
.stat-card:hover{transform:translateY(-3px);box-shadow:0 18px 34px rgba(24,42,28,.12)}.stat-icon{width:44px;height:44px;border-radius:14px;font-size:21px}.stat-card strong{font-size:27px}
.panel{border-radius:20px;padding:26px;box-shadow:0 14px 32px rgba(24,42,28,.07)}.panel-heading{margin-bottom:22px}.panel h2{font-size:19px}
.schedule-item{border-radius:14px;padding:14px 16px;background:rgba(255,255,255,.7)}.schedule-item:hover{transform:translateY(-2px)}
.quick-action{border-radius:12px;padding:16px 12px;margin:2px 0}.quick-action:hover{background:rgba(182,239,59,.1);padding-left:16px}
.client-table{overflow-x:auto}.client-row{min-width:760px;min-height:62px;padding:13px 12px;font-size:13px}.client-row.table-head{min-height:40px;font-size:11px}.client-row:not(.table-head):hover{background:rgba(182,239,59,.1)}
.client-name{font-size:14px}.status{font-size:12px;padding:6px 10px}.search-box{height:44px;display:flex;align-items:center}.search-box input{font-size:14px}
.modal{width:min(500px,100%);padding:32px;border-radius:22px}.modal h2{font-size:26px}.modal label{font-size:13px}.modal input,.modal select,.modal textarea{min-height:44px;font-size:14px}
.admin-actions{gap:12px}.admin-actions .primary-button{white-space:nowrap}.empty-state{padding:28px 18px;border:1px dashed #c9d8cb;border-radius:14px;color:var(--muted);text-align:center;font-size:14px;background:rgba(255,255,255,.45)}
@media(max-width:800px){.sidebar{width:280px;padding-top:22px}.view{padding:30px 16px 44px}.page-heading h1{font-size:29px}.page-heading{margin-bottom:22px}.stats-grid{gap:12px}.stat-card{min-height:92px;padding:15px}.stat-card strong{font-size:23px}.panel{padding:18px;border-radius:17px}.client-row{min-width:720px}.client-table{margin:0 -4px}.modal{padding:26px 20px}.admin-actions{gap:8px}.admin-actions button{min-height:44px}}
.calendar-panel>.calendar-toolbar,.calendar-panel>.week-grid{display:none}
.weekly-nav{gap:12px;justify-content:flex-start;flex-wrap:wrap}.weekly-nav h3{flex:1;text-align:center;text-transform:capitalize;font-size:16px;min-width:260px}.weekly-nav .calendar-today{margin-left:auto;width:auto!important;padding:0 14px}
.weekly-calendar{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));border:1px solid var(--line);border-radius:16px;overflow:hidden;background:rgba(255,255,255,.45)}.weekly-day{min-height:330px;border-right:1px solid var(--line);background:rgba(255,255,255,.34)}.weekly-day:last-child{border-right:0}.weekly-day.is-today{background:rgba(182,239,59,.1)}.weekly-day header{display:flex;align-items:center;justify-content:center;gap:7px;padding:13px 7px;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px;text-transform:capitalize}.weekly-day header b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:var(--ink);font-size:13px}.weekly-day.is-today header b{background:var(--green);color:#162013}.weekly-day-events{padding:9px 7px}.weekly-event{grid-template-columns:1fr;gap:3px;margin-bottom:8px;background:#e6f8bd;border:0;border-radius:9px;font-size:11px}.weekly-event b{color:var(--green-dark);font-size:12px}.weekly-event span{color:var(--ink);font-weight:700}.weekly-event small{color:var(--muted);font-size:10px}.weekly-empty{text-align:center;color:#9aa69c;font-size:12px;padding:28px 4px}@media(max-width:900px){.weekly-calendar{overflow-x:auto;grid-template-columns:repeat(7,130px)}.weekly-nav h3{order:2;flex-basis:100%;min-width:0}.weekly-nav .calendar-prev{order:1}.weekly-nav .calendar-next{order:1}.weekly-nav .calendar-today{order:1;margin-left:auto}}
.nav-item{font-size:21px!important;gap:16px;padding:14px 15px;letter-spacing:.01em}.nav-item span{font-size:13px!important;letter-spacing:.02em}.nav-item:first-letter{font-size:25px!important}.sidebar{padding-top:30px}.brand{margin-bottom:4px}.topbar{box-shadow:0 1px 0 rgba(25,40,20,.04)}.page-heading{max-width:1180px}.panel,.stat-card{backdrop-filter:blur(10px)}.panel-heading h2{letter-spacing:-.2px}.client-row{transition:background .18s ease}.client-row:hover{background:rgba(182,239,59,.06)}
.logo-palette{color:#0b8dff}
:root{--green:#079df2;--green-dark:#0066d6;--mint:#e5f6ff;--ink:#101722;--line:#dce7f2;--shadow:0 18px 45px rgba(0,70,140,.1)}body{background:#eef5fb}body:before{background-image:linear-gradient(135deg,rgba(0,167,255,.18),transparent 40%),repeating-linear-gradient(135deg,transparent 0 42px,rgba(12,40,70,.025) 43px 44px)}.sidebar{background:linear-gradient(160deg,#050b16 0%,#071d3b 60%,#030711 100%);box-shadow:8px 0 32px rgba(0,21,55,.25)}.brand-accent{color:#0db8ff}.nav-item.active{background:rgba(11,157,242,.18);border-color:rgba(11,157,242,.35);box-shadow:inset 3px 0 #13bfff}.nav-item:hover{background:rgba(11,157,242,.11)}.primary-button{background:linear-gradient(135deg,#08b8ff,#0067e9);color:#fff;box-shadow:0 9px 20px rgba(0,110,220,.25)}.primary-button:hover{background:linear-gradient(135deg,#20c5ff,#0876f6);box-shadow:0 12px 24px rgba(0,110,220,.32)}.eyebrow{color:#057bd2}.stat-card,.panel{border-color:rgba(62,130,190,.18);background:rgba(252,254,255,.9)}.stat-icon.green{background:#dff5ff;color:#007cd7}.search-box{background:#f8fcff;border-color:#d7e7f4}.search-box:focus-within{border-color:#54bafa;box-shadow:0 0 0 3px #e4f5ff}.outline-button{border-color:#abd9f5!important;color:#0066d6!important;background:#fbfeff!important}.status.active{color:#0072c9;background:#e3f5ff}.auth-gate #auth-modal .modal{background:linear-gradient(145deg,#f8fcff,#e8f5ff)}.client-row:hover{background:rgba(0,157,242,.06)}
.fitness-hero-copy .eyebrow{color:#6bd7ff}.fitness-hero-copy h2 em{color:#18c4ff}.fitness-hero-badge{border-color:rgba(24,196,255,.8);color:#5fdcff}.fitness-hero:after{background:linear-gradient(115deg,transparent 58%,rgba(0,157,242,.28))}

/* Final interface polish */
:root{--focus:rgba(11,157,242,.2)}
body{font-size:15px;-webkit-font-smoothing:antialiased}
.sidebar{width:258px;padding:30px 18px 22px;position:relative;z-index:5}
.brand{font-size:20px;padding-left:10px;margin-bottom:14px}
.nav-item{min-height:48px;border-radius:14px;font-size:22px!important;gap:15px;padding:12px 15px;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.nav-item span{font-size:14px!important;font-weight:700}.nav-item.active{box-shadow:inset 3px 0 var(--green),0 8px 18px rgba(0,0,0,.12)}
.topbar{position:sticky;top:0;z-index:4;box-shadow:0 4px 18px rgba(24,42,28,.05)}
.view{padding:42px 5.5% 58px;max-width:1500px}.page-heading{margin-bottom:28px;gap:24px}.page-heading h1{font-size:34px;line-height:1.1}.page-heading .muted{font-size:14px}
.primary-button,.outline-button,.text-button,.quick-action,.profile-button,.menu-button{transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}.primary-button:hover{transform:translateY(-1px)}
.primary-button:focus-visible,.outline-button:focus-visible,.text-button:focus-visible,.nav-item:focus-visible,.quick-action:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.stats-grid{gap:18px;margin-bottom:30px}.stat-card{min-height:104px;border-radius:18px;padding:20px;box-shadow:0 12px 30px rgba(24,42,28,.07)}.stat-card:hover{transform:translateY(-3px);box-shadow:0 18px 34px rgba(24,42,28,.12)}.stat-icon{width:44px;height:44px;border-radius:14px;font-size:21px}.stat-card strong{font-size:27px}
.panel{border-radius:20px;padding:26px;box-shadow:0 14px 32px rgba(24,42,28,.07)}.panel-heading{margin-bottom:22px}.panel h2{font-size:19px}.schedule-item{border-radius:14px;padding:14px 16px;background:rgba(255,255,255,.7)}.schedule-item:hover{transform:translateY(-2px)}
.quick-action{border-radius:12px;padding:16px 12px;margin:2px 0}.quick-action:hover{background:rgba(182,239,59,.1);padding-left:16px}
.client-table{overflow-x:auto}.client-row{min-width:760px;min-height:62px;padding:13px 12px;font-size:13px}.client-row.table-head{min-height:40px;font-size:11px}.client-row:not(.table-head):hover{background:rgba(182,239,59,.1)}.client-name{font-size:14px}.status{font-size:12px;padding:6px 10px}
.search-box{height:44px;display:flex;align-items:center}.search-box input{font-size:14px}.modal{width:min(500px,100%);padding:32px;border-radius:22px}.modal h2{font-size:26px}.modal label{font-size:13px}.modal input,.modal select,.modal textarea{min-height:44px;font-size:14px}
.admin-actions{gap:12px}.admin-actions .primary-button{white-space:nowrap}.empty-state{padding:28px 18px;border:1px dashed #c9d8cb;border-radius:14px;color:var(--muted);text-align:center;font-size:14px;background:rgba(255,255,255,.45)}
@media(max-width:800px){.sidebar{width:280px;padding-top:22px}.view{padding:30px 16px 44px}.page-heading h1{font-size:29px}.page-heading{margin-bottom:22px}.stats-grid{gap:12px}.stat-card{min-height:92px;padding:15px}.stat-card strong{font-size:23px}.panel{padding:18px;border-radius:17px}.client-row{min-width:720px}.client-table{margin:0 -4px}.modal{padding:26px 20px}.admin-actions{gap:8px}.admin-actions button{min-height:44px}}
/* Access screen: branded, informative and conversion-ready */
#auth-modal{isolation:isolate;overflow:hidden;background:rgba(9,18,27,.7)}
#auth-modal::before{content:"";position:absolute;inset:-24px;background:linear-gradient(115deg,rgba(4,12,20,.72),rgba(5,26,42,.32)),url('assets/gym-access-background.avif') center/cover;filter:blur(3px);transform:scale(1.06);z-index:-1}
#auth-modal .auth-modal{width:min(500px,100%);padding:0;overflow:hidden;background:rgba(8,18,29,.82);border:1px solid rgba(128,219,255,.28);box-shadow:0 30px 90px rgba(0,0,0,.45);color:#f5fbff}
#auth-modal .auth-modal-content{padding:34px 34px 30px;position:relative}
#auth-modal .auth-modal .modal-close{color:rgba(255,255,255,.72);z-index:2}
#auth-modal .auth-logo{width:116px;height:116px;margin:0 auto 18px;display:block;filter:drop-shadow(0 9px 16px rgba(0,157,242,.32))}
#auth-modal .auth-modal .eyebrow{color:#75d8ff;margin-bottom:8px}#auth-modal .auth-modal h2{color:#fff;margin-bottom:10px}
#auth-modal .auth-description{color:#c2d3df;font-size:14px;line-height:1.55;margin:0 0 24px;max-width:390px}
#auth-modal .auth-modal label{color:#eaf5fb}#auth-modal .auth-modal input{background:rgba(255,255,255,.96);color:#182532;border-color:rgba(140,207,234,.7);min-height:46px}
#auth-modal .auth-modal .primary-button{margin-top:5px;background:linear-gradient(135deg,#16c4ff,#0874ef);box-shadow:0 12px 26px rgba(0,120,235,.3)}
.auth-contract-button{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px;min-height:44px;border:1px solid rgba(116,242,172,.7);border-radius:11px;color:#fff;text-decoration:none;font-weight:700;font-size:14px;background:linear-gradient(135deg,#25d366,#159b4e);box-shadow:0 10px 22px rgba(19,161,82,.28);transition:background .18s ease,transform .18s ease}
.auth-contract-button:hover{background:linear-gradient(135deg,#34e276,#19ad59);transform:translateY(-1px);box-shadow:0 13px 26px rgba(19,161,82,.38)}.auth-contract-button span{font-size:18px}
#auth-modal #auth-message{color:#c7dae5;min-height:18px;margin-top:10px}
@media(max-width:560px){#auth-modal .auth-modal-content{padding:28px 22px 24px}.auth-description{font-size:13px!important}.auth-logo{width:96px!important;height:96px!important}}

.auth-gate #auth-modal .auth-modal h2,.auth-gate #auth-modal .auth-modal label{color:#fff!important}.auth-gate #auth-modal .auth-modal .eyebrow{color:#75d8ff!important}

.auth-check-row{display:flex!important;align-items:center;gap:9px;margin:0 0 10px!important;color:#d7e8f1!important;font-size:13px!important;font-weight:600!important;cursor:pointer}.auth-check-row input{width:17px!important;height:17px!important;margin:0!important;accent-color:#16baf5}.auth-check-row span{display:block}
/* Two-column access layout */
#auth-modal .auth-modal{width:min(860px,100%)}
#auth-modal .auth-modal-content{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(310px,.95fr);gap:38px;align-items:center;padding:42px 44px 40px}
#auth-modal .auth-info{padding-right:22px}
#auth-modal .auth-info .auth-logo{margin:0 0 22px;width:132px;height:132px}
#auth-modal .auth-info .eyebrow{font-size:13px;letter-spacing:1.8px}
#auth-modal .auth-info h2{font-size:34px;line-height:1.08;margin-bottom:18px}
#auth-modal .auth-description{font-size:19px;line-height:1.55;color:#bfe8f5;max-width:440px}
#auth-modal .auth-form-side{padding-left:34px;border-left:1px solid rgba(126,211,241,.28)}
#auth-modal .auth-form-side form{margin:0}
@media(max-width:700px){#auth-modal .auth-modal-content{grid-template-columns:1fr;gap:20px;padding:30px 24px 26px}#auth-modal .auth-info{padding-right:0;text-align:center}#auth-modal .auth-info .auth-logo{margin:0 auto 16px;width:104px;height:104px}#auth-modal .auth-info h2{font-size:28px}#auth-modal .auth-description{font-size:16px;margin:0 auto 4px}#auth-modal .auth-form-side{padding:22px 0 0;border-left:0;border-top:1px solid rgba(126,211,241,.28)}}

#auth-modal .auth-info .auth-contract-button{max-width:300px;margin-top:24px}
@media(max-width:700px){#auth-modal .auth-info .auth-contract-button{margin:20px auto 0;max-width:330px}}

/* Panel de acceso con contraste oscuro */
#auth-modal .auth-form-side{
  background:linear-gradient(145deg,#102b3d,#0b1d2b);
  border:1px solid rgba(117,216,255,.25);
  border-radius:18px;
  padding:28px 26px;
  box-shadow:0 16px 34px rgba(4,18,30,.28);
}
#auth-modal .auth-form-side label{color:#f4fbff!important}
#auth-modal .auth-form-side .auth-check-row{color:#cfe7f2!important}
#auth-modal .auth-form-side .auth-check-row span{color:#cfe7f2!important}
#auth-modal .auth-form-side input:not([type="checkbox"]){background:#f7fbfd;color:#142533;border-color:rgba(133,210,239,.65)}
@media(max-width:700px){#auth-modal .auth-form-side{padding:24px 20px}}

/* Distribución de escritorio: información a la izquierda y acceso a la derecha */
@media(min-width:701px){
  #auth-modal .auth-modal{width:min(980px,calc(100vw - 64px));border-radius:24px}
  #auth-modal .auth-modal-content{grid-template-columns:minmax(0,1fr) 390px;gap:56px;padding:58px 62px 56px;align-items:center}
  #auth-modal .auth-info{padding-right:0;align-self:center}
  #auth-modal .auth-info h2{font-size:40px;max-width:460px}
  #auth-modal .auth-description{max-width:470px}
  #auth-modal .auth-form-side{align-self:center;width:100%;box-sizing:border-box}
}

/* Evitar el recuadro de foco en los campos del acceso */
#auth-modal .auth-form-side input:not([type="checkbox"]):focus,
#auth-modal .auth-form-side input:not([type="checkbox"]):focus-visible{
  outline:none!important;
  box-shadow:none!important;
  border-color:rgba(133,210,239,.9)!important;
}

/* El contenido informativo queda libre sobre el fondo; solo el formulario conserva recuadro */
#auth-modal .auth-modal{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  overflow:visible!important;
}
#auth-modal .auth-modal-content{background:transparent!important}
#auth-modal .auth-modal::before{display:none!important;content:none!important}
/* Quitar el rectángulo de enfoque de las casillas del acceso */
#auth-modal .auth-check-row input[type="checkbox"]:focus,
#auth-modal .auth-check-row input[type="checkbox"]:focus-visible{
  outline:none!important;
  box-shadow:none!important;
}
/* La pantalla de acceso no muestra la X de cierre */
#auth-modal #close-auth{display:none!important}
#auth-modal #auth-message.auth-error{color:#ff6b7a!important;font-weight:700}
.plan-days{font-weight:700;color:#087bd0;font-size:12px;white-space:nowrap}

/* Modo lectura cuando vence la suscripción */
body.subscription-expired #add-client,
body.subscription-expired #add-payment,
body.subscription-expired #add-plan,
body.subscription-expired [data-open-modal],
body.subscription-expired .delete-client,
body.subscription-expired .delete-plan,
body.subscription-expired .edit-plan,
body.subscription-expired .client-routine,
body.subscription-expired .assign-plan,
body.subscription-expired .delete-payment{opacity:.42;pointer-events:none;filter:grayscale(.75)}
.subscription-expired-modal h2{color:#14202d}
.subscription-expired-modal .muted{line-height:1.55;margin:0 0 18px}
.subscription-expired-modal .subscription-renew-link{background:linear-gradient(135deg,#25d366,#159b4e);text-align:center;text-decoration:none}
.subscription-expired-modal .subscription-readonly{margin-top:10px}

/* Experiencia móvil: navegación, tarjetas, tablas y modales */
@media(max-width:800px){
  html,body{overflow-x:hidden}
  .sidebar{left:-300px;width:280px;height:100dvh;padding:22px 14px 18px;box-shadow:12px 0 30px rgba(0,18,40,.28)}
  .sidebar.open{left:0}
  .main-content{width:100%;min-width:0}
  .topbar{height:64px;padding:0 14px;gap:10px}
  .topbar-date{display:none}
  .menu-button{display:grid;place-items:center;width:42px;height:42px;font-size:22px;box-shadow:0 4px 12px rgba(0,60,120,.1)}
  .profile-button{margin-left:auto;min-height:40px}
  .view{padding:24px 12px 38px;max-width:100%;overflow:hidden}
  .page-heading{align-items:stretch;gap:15px;margin-bottom:20px}
  .page-heading h1{font-size:27px;line-height:1.12}
  .page-heading .muted{font-size:13px;line-height:1.45}
  .page-heading>.primary-button,.page-heading>.outline-button{width:100%!important;min-height:46px}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px}
  .stat-card{min-width:0;min-height:88px;padding:13px 11px;border-radius:15px;gap:9px}
  .stat-icon{width:36px;height:36px;border-radius:11px;font-size:18px;flex:0 0 auto}
  .stat-card span:not(.stat-icon){font-size:11px;line-height:1.2}
  .stat-card strong{font-size:21px;margin-top:4px}
  .content-grid{grid-template-columns:1fr;gap:14px}
  .panel{padding:16px 13px;border-radius:16px;min-width:0}
  .panel-heading{gap:10px;margin-bottom:15px}
  .panel h2{font-size:17px}
  .fitness-hero{min-height:230px;border-radius:17px;padding:24px 19px}
  .fitness-hero-copy h2{font-size:26px}
  .fitness-hero-badge{width:70px;height:70px;flex:0 0 auto}
  .schedule-item{grid-template-columns:50px minmax(0,1fr);padding:12px 11px;gap:9px}
  .schedule-actions{grid-column:2;display:flex;justify-content:flex-end}
  .schedule-actions button{min-height:36px}
  .client-toolbar{width:100%}
  .search-box{width:100%;box-sizing:border-box}
  .client-table{width:100%;overflow-x:auto;overscroll-behavior-x:contain;border-radius:10px}
  .client-row{min-width:700px}
  .calendar-panel{padding:13px 10px;overflow:hidden}
  .calendar-nav{flex-wrap:wrap;gap:8px}
  .calendar-nav h3{font-size:15px;flex:1;min-width:150px}
  .weekly-calendar{width:100%;overflow-x:auto;grid-template-columns:repeat(7,118px);-webkit-overflow-scrolling:touch}
  .weekly-day{min-height:280px}
  .calendar-grid{min-width:620px}
  .form-row{grid-template-columns:1fr;gap:0}
  .modal-backdrop{padding:10px}
  .modal{width:min(100%,520px);max-height:calc(100dvh - 20px);overflow-y:auto;padding:22px 16px;border-radius:18px}
  .modal h2{font-size:23px;line-height:1.2}
  .app-client-form,.routine-modal{max-height:calc(100dvh - 20px);overflow-y:auto}
  .day-time-row{grid-template-columns:minmax(0,1fr) 105px}
  .app-dialog-modal{padding:22px 17px}
  .app-dialog-actions{flex-direction:column-reverse;gap:8px}
  .app-dialog-actions button{width:100%;min-height:44px}
  .coach-payment-card{padding:18px 15px;border-radius:16px}
  .payment-due{min-width:0}
}
.client-table .client-routine,.client-table .delete-client{display:inline-flex!important;align-items:center;justify-content:center;min-width:104px;height:38px;padding:0 12px!important;border:0!important;border-radius:9px!important;background:linear-gradient(135deg,#08b8ff,#0067e9)!important;color:#fff!important;font:700 12px 'DM Sans'!important;text-decoration:none;box-shadow:0 7px 16px rgba(0,110,220,.18);cursor:pointer;white-space:nowrap}.client-table .client-routine:hover,.client-table .delete-client:hover{background:linear-gradient(135deg,#20c5ff,#0876f6)!important;transform:translateY(-1px)}
@media(max-width:700px){.client-table .client-routine,.client-table .delete-client{min-width:0;width:100%;padding:0 7px!important}.client-table .client-row>span:last-child{display:flex;flex-wrap:wrap;gap:7px;align-items:center}}
.routine-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.routine-action-btn{display:inline-flex!important;align-items:center;justify-content:center;min-width:104px;height:38px;padding:0 12px!important;border:0!important;border-radius:9px!important;background:linear-gradient(135deg,#08b8ff,#0067e9)!important;color:#fff!important;font:700 12px 'DM Sans'!important;text-decoration:none;box-shadow:0 7px 16px rgba(0,110,220,.18);cursor:pointer;white-space:nowrap}.routine-action-btn:hover{background:linear-gradient(135deg,#20c5ff,#0876f6)!important;transform:translateY(-1px)}
@media(max-width:700px){.routine-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:7px}.routine-action-btn{min-width:0;width:100%;padding:0 6px!important}}

/* Elegant visual system: final cohesive layer */
:root{
  --green:#176b67;
  --green-dark:#0e4d4a;
  --mint:#e8f4f2;
  --ink:#172332;
  --muted:#697886;
  --line:#d9e4e9;
  --background:#f4f7f9;
  --surface:#ffffff;
  --shadow:0 14px 35px rgba(26,55,76,.08);
}
body{background:linear-gradient(145deg,#f4f8fa 0%,#edf3f6 100%);color:var(--ink)}
body:before{opacity:.16;background-image:linear-gradient(135deg,rgba(45,143,157,.1),transparent 42%),repeating-linear-gradient(135deg,transparent 0 52px,rgba(26,55,76,.018) 53px 54px)}
.sidebar{background:linear-gradient(165deg,#142b3b 0%,#0f3441 58%,#10242f 100%);box-shadow:8px 0 28px rgba(13,35,48,.18)}
.brand{font-size:19px;letter-spacing:-.35px}.brand-accent{color:#51c2d0}.brand-mark{background:#dff2f3;color:#176b67;box-shadow:0 5px 15px rgba(21,115,125,.16)}
.nav-item{font-size:14px!important;min-height:44px;padding:11px 13px;gap:12px;border-radius:12px;color:#c6d6da}.nav-item span{font-size:13px!important;font-weight:650}.nav-item:first-letter{font-size:20px!important}.nav-item.active{background:rgba(82,194,208,.14);border-color:rgba(82,194,208,.28);box-shadow:inset 3px 0 #55c5d0,0 6px 16px rgba(5,24,33,.15)}.nav-item:hover{background:rgba(82,194,208,.1)}
.topbar{height:74px;background:rgba(255,255,255,.86);border-bottom-color:rgba(116,143,157,.18);box-shadow:0 3px 18px rgba(26,55,76,.04)}
.view{padding-top:38px}.page-heading h1{color:#172332;letter-spacing:-1px}.eyebrow{color:#257e83}.muted{color:#71818c}
.primary-button{background:linear-gradient(135deg,#1aa4b0,#1477a0);border-radius:11px;box-shadow:0 9px 20px rgba(22,123,145,.2)}.primary-button:hover{background:linear-gradient(135deg,#25b3bd,#176e98);box-shadow:0 12px 24px rgba(22,123,145,.25)}
.outline-button{border-color:#9ec7cf!important;color:#166b78!important;background:#f8fcfd!important;border-radius:9px!important}.outline-button:hover{background:#e9f5f6!important}
.stat-card,.panel{border-color:rgba(143,168,181,.22);background:rgba(255,255,255,.9);box-shadow:var(--shadow)}.stat-card{border-radius:17px}.panel{border-radius:19px}.stat-card:hover{box-shadow:0 18px 34px rgba(26,55,76,.12)}
.stat-icon.green{background:#e1f1ee;color:#22766f}.stat-icon.blue{background:#e4f0f7;color:#287a9d}.stat-icon.orange{background:#fbf0e1;color:#b87935}.stat-icon.purple{background:#eee9f6;color:#8167a2}
.schedule-item{border-color:#dbe6eb;background:rgba(255,255,255,.78);border-radius:13px}.schedule-item:hover{border-color:#9ecbd0;box-shadow:0 8px 18px rgba(29,101,119,.1)}.schedule-time{color:#206d70}.schedule-dot{background:#46a8a3}.schedule-status{color:#216e70;background:#e4f3f0}
.quick-action{border-color:#e1e9ed}.quick-action:hover{background:#edf7f7}.quick-action>span{background:#e3f2f1;color:#176b67}
.search-box{background:#fbfdfe;border-color:#d6e3e8}.search-box:focus-within{border-color:#75b7c0;box-shadow:0 0 0 3px #e4f4f5}
.modal{border:1px solid rgba(127,168,180,.28);box-shadow:0 30px 80px rgba(18,52,68,.25)}.modal input,.modal select,.modal textarea{border-color:#d5e2e7;background:#fcfeff}.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:#68afba;box-shadow:0 0 0 3px #e4f4f5}
.status.active{color:#22766f;background:#e4f3f0}.status.pending{color:#a36c2d;background:#fff3df}
.calendar-date:hover,.calendar-date.selected{border-color:#55aab0;background:#e7f4f3}.weekly-day.is-today{background:rgba(78,176,174,.09)}.weekly-day.is-today header b{background:#1d7778;color:#fff}
@media(max-width:800px){.view{padding-top:24px}.sidebar{width:268px}.panel{border-radius:16px}.page-heading h1{font-size:28px}.stat-card{border-radius:15px}}

.change-password-button{border:1px solid #b9d6dc;background:#f5fbfc;color:#176b78;border-radius:9px;padding:9px 12px;font:600 12px 'DM Sans';cursor:pointer;transition:background .18s ease,transform .18s ease}.change-password-button:hover{background:#e4f3f4;transform:translateY(-1px)}.change-password-button[hidden]{display:none!important}.change-password-modal{width:min(450px,100%)}.change-password-modal h2{margin-bottom:8px}.change-password-intro{line-height:1.5;margin-bottom:20px}.change-password-modal label{margin-bottom:15px}.change-password-modal .muted{min-height:18px;margin-top:10px;color:#b1495b}.change-password-modal .primary-button{margin-top:5px}
@media(max-width:600px){.change-password-button{padding:8px 9px;font-size:11px}.topbar{gap:8px}.topbar-date{max-width:145px}.change-password-modal{padding:22px 18px}}
.change-password-location{margin-top:14px;min-height:42px;padding:0 15px!important}.admin-actions .change-password-location{margin-top:0}.change-password-location[hidden]{display:none!important}

/* Mobile-first navigation and touch ergonomics */
.mobile-bottom-nav{display:none}
@media(max-width:800px){
  .main-content{padding-bottom:72px}
  .mobile-bottom-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);left:0;right:0;bottom:0;z-index:18;padding:7px 8px max(7px,env(safe-area-inset-bottom));border-top:1px solid rgba(125,157,170,.25);background:rgba(255,255,255,.94);backdrop-filter:blur(16px);box-shadow:0 -8px 24px rgba(24,55,72,.1)}
  .mobile-bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;border:0;border-radius:11px;background:transparent;color:#71818c;font:600 10px 'DM Sans';cursor:pointer;touch-action:manipulation}
  .mobile-bottom-nav button img{width:23px;height:23px;object-fit:contain;filter:brightness(.72) saturate(.7)}
  .mobile-bottom-nav button.active{background:#e5f3f3;color:#176b67}
  .mobile-bottom-nav button.active img{filter:none}
  .mobile-more-icon{height:23px;line-height:16px;font-size:17px;letter-spacing:1px;color:#6d818a}
  .mobile-bottom-nav button.active .mobile-more-icon{color:#176b67}
  .topbar{padding-left:10px;padding-right:10px}
  .page-heading>.primary-button{width:100%;min-height:48px}
  button,.primary-button,.outline-button,.text-button{touch-action:manipulation}
  input,select,textarea{font-size:16px!important}
}

/* Routine builder: clearer library-first workflow */
.routine-modal{width:min(1080px,100%)}.routine-modal .exercise-header{align-items:center;justify-content:space-between;margin:20px 0 12px;padding-top:16px;border-top:1px solid #e2ebee}.routine-modal .exercise-header>div{display:flex;flex-direction:column;gap:4px}.routine-modal .exercise-header b{font-size:18px;color:#18343d}.routine-modal .exercise-header small{font-size:11px;color:#74858d}.routine-modal .exercise-header .primary-button{padding:10px 13px;font-size:12px}
.exercise-library-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin:0 0 16px;padding:15px;border:1px solid #cfe2e6;border-radius:15px;background:linear-gradient(145deg,#f5fbfc,#edf7f8)}.library-search-heading{grid-column:1/-1;display:flex;flex-direction:column;gap:3px}.library-search-heading strong{font-size:14px;color:#1a5861}.library-search-heading span{font-size:11px;color:#71838a}.library-search-input{margin:0!important}.library-search-input>span{display:block;font-size:11px;font-weight:700;color:#5a737b;margin-bottom:5px}.exercise-library-search input{height:42px;margin:0!important;border-color:#bfd9de!important;background:#fff}.exercise-library-search>.primary-button{height:42px;align-self:end;padding:0 17px}.exercise-quick-picks{grid-column:1/-1;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.exercise-quick-picks>span{font-size:10px;color:#71838a;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-right:3px}.exercise-quick-picks button{border:1px solid #b9d9de;border-radius:999px;background:#fff;color:#236a73;padding:6px 9px;font:600 11px 'DM Sans';cursor:pointer}.exercise-quick-picks button:hover{background:#e2f3f4;border-color:#70b5bd}.exercise-library-results{grid-column:1/-1;max-height:190px;padding-top:2px}.exercise-result{display:flex;align-items:center;justify-content:space-between;border-radius:10px;padding:10px 12px;background:#fff}.exercise-result:after{content:'＋ Añadir';color:#147b83;font-size:11px;font-weight:700}.exercise-result:hover{background:#e8f5f5;border-color:#68b4bc}
.exercise-row{margin-bottom:10px;padding:12px;border:1px solid #dce8eb;border-radius:13px;background:#fff;box-shadow:0 4px 12px rgba(32,74,84,.04)}.exercise-grid{display:grid!important;grid-template-columns:90px minmax(170px,1.8fr) 75px 95px 90px minmax(110px,1fr);gap:9px!important;align-items:end;margin:0!important}.exercise-field{display:block!important;margin:0!important}.exercise-field span{display:block;margin-bottom:5px;color:#71838a;font-size:10px;font-weight:700}.exercise-field input,.exercise-field select{height:38px!important;margin:0!important;padding:7px 8px!important;border:1px solid #d2e0e4!important;border-radius:8px!important;font-size:12px!important;min-width:0}.exercise-name-field{grid-column:2}.exercise-video-field{grid-column:1 / span 2}.exercise-grid .remove-exercise{grid-column:6;align-self:end;min-height:38px;border:1px solid #e0b9be;background:#fff8f8;color:#a24f5d;border-radius:8px;padding:0 9px;font:600 11px 'DM Sans';cursor:pointer}.exercise-grid .remove-exercise:hover{background:#fdecee}
@media(max-width:700px){.routine-modal{width:min(100%,560px)}.exercise-library-search{grid-template-columns:1fr}.exercise-library-search>.primary-button{width:100%!important}.exercise-row{padding:10px}.exercise-grid{grid-template-columns:1fr 1fr!important}.exercise-name-field,.exercise-video-field,.exercise-grid .remove-exercise{grid-column:1/-1}.exercise-day-field{grid-column:1}.exercise-quick-picks{gap:5px}.exercise-quick-picks>span{width:100%}}

.routine-day-tabs{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:7px;margin:4px 0 16px;padding:5px;border:1px solid #d8e7ea;border-radius:14px;background:#f4fafb}.routine-day-tab{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;min-height:76px;padding:10px 9px;border:0;border-radius:10px;background:transparent;color:#61777e;text-align:left;font:700 12px 'DM Sans';cursor:pointer}.routine-day-tab span{font-size:12px}.routine-day-tab b{display:block;color:#39727b;font-size:10px;font-weight:700}.routine-day-tab small{font-size:10px;color:#87989e;font-weight:500}.routine-day-tab:hover{background:#e6f3f4;color:#176b78}.routine-day-tab.active{background:#176b67;color:#fff;box-shadow:0 5px 12px rgba(23,107,103,.18)}.routine-day-tab.active b,.routine-day-tab.active small{color:#d0f1ef}.exercise-row[hidden]{display:none!important}
@media(max-width:720px){.routine-day-tabs{display:flex;overflow-x:auto;grid-template-columns:none;gap:6px}.routine-day-tab{flex:0 0 125px}.routine-modal{width:min(100%,620px)}}
@media(max-width:420px){
  .view{padding-left:10px;padding-right:10px}
  .page-heading h1{font-size:25px}
  .stats-grid{gap:8px}
  .stat-card{padding:11px 9px}
  .stat-card strong{font-size:19px}
  .fitness-hero-copy h2{font-size:23px}
  .weekly-calendar{grid-template-columns:repeat(7,108px)}
}

.exercise-library-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin:4px 0 16px;padding:12px;border:1px solid rgba(133,210,239,.35);border-radius:12px;background:rgba(232,247,253,.5)}
.exercise-library-search label{margin:0!important}.exercise-library-search input{margin-top:6px!important}.exercise-library-results{grid-column:1/-1;display:grid;gap:6px;max-height:180px;overflow:auto}.exercise-result{text-align:left;border:1px solid #c8e0e9;border-radius:8px;background:#fff;color:#19374a;padding:9px 10px;cursor:pointer;font:600 12px 'DM Sans'}.exercise-result:hover{border-color:#0da9ed;background:#effaff}
@media(max-width:600px){.exercise-library-search{grid-template-columns:1fr}.exercise-library-search .outline-button{width:100%!important;min-height:42px}.exercise-library-results{max-height:150px}}

.nutrition-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}.nutrition-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}.nutrition-form-grid label{margin:0}.nutrition-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.nutrition-result-card{padding:14px;border:1px solid #d4e6e1;border-radius:14px;background:linear-gradient(145deg,#fff,#f5fbfa);display:flex;flex-direction:column;gap:4px;min-height:92px}.nutrition-result-card span{font-size:12px;color:#60736f;font-weight:600}.nutrition-result-card strong{font-size:25px;line-height:1.1;color:#17362f}.nutrition-result-card small{font-size:11px;color:#7a8c88}.nutrition-result-card.highlight{background:linear-gradient(135deg,#e7f8d8,#c8efb4);border-color:#a9d889}.nutrition-result-card.highlight strong{color:#39761b}.nutrition-disclaimer{margin:16px 0 0;font-size:12px;color:#748681;line-height:1.45}.nutrition-tips-panel{margin-top:18px}.nutrition-tips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.nutrition-tips article{display:flex;gap:10px;padding:14px;border:1px solid #dbe8e5;border-radius:14px;background:#fbfefd}.nutrition-tips article>span{font-size:22px}.nutrition-tips strong{display:block;color:#1b3831;font-size:14px;margin-bottom:4px}.nutrition-tips p{margin:0;color:#70817d;font-size:12px;line-height:1.45}@media(max-width:900px){.nutrition-grid{grid-template-columns:1fr}.nutrition-tips{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.nutrition-form-grid{grid-template-columns:1fr}.nutrition-results{grid-template-columns:repeat(2,minmax(0,1fr))}.nutrition-tips{grid-template-columns:1fr}.nutrition-result-card strong{font-size:21px}}@media(max-width:380px){.nutrition-results{grid-template-columns:1fr}}

.nutrition-weekly-panel{margin-top:18px}.nutrition-week-days{display:flex;gap:8px;overflow-x:auto;padding:2px 0 14px;border-bottom:1px solid #dbe8e5}.nutrition-day-tab{border:1px solid #c9dfda;background:#f8fcfb;color:#43645c;border-radius:999px;padding:9px 14px;white-space:nowrap;cursor:pointer;font:600 12px 'DM Sans'}.nutrition-day-tab.active{background:#143d35;color:#fff;border-color:#143d35}.weekly-diet-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 0 10px}.weekly-diet-heading>div{display:flex;flex-direction:column;gap:3px}.weekly-diet-heading strong{font-size:18px;color:#17362f}.weekly-diet-total{font-size:13px;font-weight:700;color:#4a7f2c}.nutrition-meals{display:grid;gap:8px}.nutrition-meal-row{display:grid;grid-template-columns:125px minmax(150px,1.5fr) minmax(120px,1fr) 90px auto;gap:8px;align-items:center}.nutrition-meal-row input,.nutrition-meal-row select{margin:0;min-width:0}.nutrition-meal-row .remove-diet-meal{white-space:nowrap;padding:8px}.nutrition-empty-day{padding:22px;border:1px dashed #cbded9;border-radius:12px;text-align:center;color:#758984;font-size:13px}.nutrition-diet-note{margin:14px 0 0;font-size:12px;color:#748681;line-height:1.45}@media(max-width:800px){.nutrition-meal-row{grid-template-columns:1fr 1fr}.nutrition-meal-row .diet-meal-type{grid-column:1}.nutrition-meal-row .diet-food{grid-column:2}.nutrition-meal-row .diet-quantity{grid-column:1}.nutrition-meal-row .diet-calories{grid-column:2}.nutrition-meal-row .remove-diet-meal{grid-column:1/-1;justify-self:start}.weekly-diet-heading{align-items:flex-start;flex-direction:column}.weekly-diet-heading .outline-button{width:100%}}@media(max-width:420px){.nutrition-meal-row{grid-template-columns:1fr}.nutrition-meal-row .diet-meal-type,.nutrition-meal-row .diet-food,.nutrition-meal-row .diet-quantity,.nutrition-meal-row .diet-calories,.nutrition-meal-row .remove-diet-meal{grid-column:1}}

.nutrition-header-actions{display:flex;align-items:center;gap:10px}.client-pdf-actions{display:flex;gap:10px;margin-top:16px}.client-pdf-actions .full{margin:0}@media(max-width:600px){.nutrition-header-actions{align-items:flex-end;flex-direction:column}.nutrition-header-actions .outline-button{width:100%}.client-pdf-actions{flex-direction:column}.client-pdf-actions button{width:100%}}

.progress-toolbar{display:flex;gap:14px;align-items:end;margin-bottom:18px}.progress-toolbar label{flex:1;margin:0}.progress-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr);gap:18px}.progress-chart-panel{min-width:0}.progress-chart{min-height:280px;border:1px solid #dce9e5;border-radius:14px;background:linear-gradient(180deg,#fbfefd,#f3f9f7);padding:10px;display:flex;align-items:center;justify-content:center;overflow:hidden}.progress-chart svg{width:100%;height:auto;display:block}.chart-axis{stroke:#78908a;stroke-width:1}.chart-gridline{stroke:#d7e6e1;stroke-width:1;stroke-dasharray:4 4}.chart-label{fill:#71827e;font:11px 'DM Sans',sans-serif}.progress-empty{color:#71827e;font-size:13px;text-align:center;padding:30px}.progress-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;color:#61736e;font-size:12px}.progress-legend span{display:inline-flex;align-items:center;gap:5px}.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.legend-dot.weight{background:#1686d8}.legend-dot.muscle{background:#63a92f}.legend-dot.waist{background:#d48724}@media(max-width:800px){.progress-grid{grid-template-columns:1fr}.progress-toolbar{flex-direction:column;align-items:stretch}.progress-toolbar label{width:100%}}@media(max-width:480px){.progress-chart{min-height:230px;padding:4px}.progress-legend{gap:10px}.client-table .client-progress{margin-top:5px}}

.progress-comparison{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.progress-comparison article{padding:10px;border:1px solid #dbe8e5;border-radius:11px;background:#fff;display:flex;flex-direction:column;gap:3px}.progress-comparison span{font-size:11px;color:#71827e}.progress-comparison strong{font-size:19px}.progress-comparison strong.up{color:#bd6e20}.progress-comparison strong.down{color:#3d8b32}.progress-comparison strong.same{color:#71827e}.progress-comparison small{font-size:10px;color:#81918d}@media(max-width:480px){.progress-comparison{grid-template-columns:1fr}}

.menu-icon{width:28px;height:28px;object-fit:contain;flex:0 0 28px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.18))}.nav-item.active .menu-icon{filter:drop-shadow(0 2px 5px rgba(38,173,255,.28))}.nav-item span{line-height:1.2}@media(max-width:600px){.menu-icon{width:30px;height:30px;flex-basis:30px}.nav-item{gap:12px}}

.sidebar nav{flex:1;min-height:0;overflow-y:auto;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:8px}.client-table{width:100%;overflow-x:auto}.client-table .client-row{min-width:760px}.client-table .client-row>span:last-child{white-space:normal}@media(max-width:800px){.sidebar{overflow-y:auto}.sidebar nav{overflow-y:auto;max-height:calc(100vh - 130px)}.client-table{overflow-x:auto}.client-table .client-row{min-width:760px}}
.progress-client-cards{margin-bottom:18px}.progress-client-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.progress-client-card{appearance:none;border:1px solid #dbe8e5;border-radius:14px;background:#fff;padding:14px;text-align:left;color:#20352f;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.progress-client-card:hover,.progress-client-card.selected{transform:translateY(-2px);border-color:#0da9ed;box-shadow:0 8px 20px rgba(22,134,216,.13)}.progress-card-name{display:block;font-size:16px;font-weight:700;margin-bottom:4px}.progress-card-meta{display:block;color:#71827e;font-size:11px;margin-bottom:12px}.progress-card-metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px}.progress-card-metrics span{display:flex;flex-direction:column;gap:2px}.progress-card-metrics small{color:#71827e;font-size:10px}.progress-card-metrics b{font-size:14px;color:#1f6658}.legend-dot.fat{background:#9b59b6}
@media(max-width:800px){
  html,body{width:100%;min-height:100%;min-height:100dvh}
  .app-shell,.main-content{width:100%;min-height:100dvh}
  .main-content{overflow-x:hidden}
  .topbar{position:sticky;top:0;z-index:2;width:100%;box-shadow:0 2px 12px rgba(10,55,95,.06)}
  .view{width:100%;min-height:calc(100dvh - 64px);margin:0;padding-top:22px;padding-bottom:34px}
  .sidebar{z-index:20}
  .sidebar nav{display:flex;flex-direction:column;flex:1;min-height:0}
  .nav-item{min-height:46px;flex:0 0 auto}
  .page-heading>.primary-button{align-self:stretch}
  .content-grid,.nutrition-grid,.progress-grid{width:100%;min-width:0}
  .panel,.stat-card,.fitness-hero{max-width:100%}
}
@media(max-width:420px){
  .view{padding-left:9px;padding-right:9px}
  .topbar{padding-left:10px;padding-right:10px}
  .page-heading>.primary-button{font-size:14px}
}
@media(max-width:800px){
  .client-table{max-width:100%;display:block;overflow-x:auto;padding-bottom:4px}
  .client-row{grid-template-columns:1.7fr .9fr 1fr .9fr 1.5fr auto;min-width:760px}
  .client-row.table-head{position:sticky;top:0;background:#fff;z-index:1}
  .calendar-panel{max-width:100%;overflow:visible}
  .weekly-calendar{max-width:100%;overflow-x:auto}
}
@media(max-width:800px){
  .sidebar{position:fixed!important;top:0;bottom:0;left:-300px;width:min(280px,86vw);height:100dvh;margin:0;}
  .sidebar.open{left:0}
  .main-content{margin-left:0!important;width:100%!important;max-width:100vw}
}
.nutrition-plan-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.nutrition-plan-meta label{margin:0}.nutrition-saved-panel{margin-top:18px}.nutrition-saved-plans{display:grid;gap:10px}.nutrition-saved-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border:1px solid #dbe8e5;border-radius:12px;background:#fbfefd}.nutrition-saved-card strong,.nutrition-saved-card span{display:block}.nutrition-saved-card strong{color:#17362f;font-size:14px}.nutrition-saved-card>div:first-child span{color:#71827e;font-size:11px;margin-top:4px}.nutrition-saved-metrics{display:flex;flex-wrap:wrap;gap:8px}.nutrition-saved-metrics span{padding:6px 8px;border-radius:8px;background:#eaf6f1;color:#367568;font-size:11px;font-weight:700}@media(max-width:600px){.nutrition-plan-meta{grid-template-columns:1fr}.nutrition-saved-card{align-items:flex-start;flex-direction:column}.nutrition-saved-metrics{width:100%}}
.timer-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:18px}.timer-main-panel{text-align:center}.timer-phase{font-size:14px;font-weight:700;color:#057bd2;text-transform:uppercase;letter-spacing:1px}.timer-display{font:800 clamp(64px,10vw,108px)/1.05 Manrope;color:#132b42;letter-spacing:2px;margin:22px 0 6px}.timer-round{color:#71827e;font-size:13px;margin-bottom:22px}.timer-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.timer-actions button{min-height:44px}.timer-sound-toggle{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:18px;color:#60736f;font-size:12px}.timer-sound-toggle input{accent-color:#087fe9}.timer-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.timer-settings-grid label{margin:0}.timer-presets{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.timer-presets button{min-height:38px}.stopwatch-panel{margin-top:18px;text-align:center}.stopwatch-display{font:700 clamp(42px,8vw,72px)/1.1 Manrope;letter-spacing:2px;color:#17362f;margin:12px 0 18px}.menu-emoji-icon{width:30px;display:inline-grid;place-items:center;font-size:24px;line-height:1}@media(max-width:800px){.timer-layout{grid-template-columns:1fr}.timer-display{font-size:72px}.timer-settings-grid{grid-template-columns:1fr 1fr}.timer-presets button{flex:1;min-width:82px}}@media(max-width:420px){.timer-display{font-size:58px}.timer-settings-grid{grid-template-columns:1fr}.timer-actions button{flex:1}.menu-emoji-icon{font-size:22px}}
@media(max-width:800px){
  #nutrition-form .full{min-height:52px;font-size:15px;padding:14px 18px}
  #nutrition-form input,#nutrition-form select{min-height:48px;font-size:15px;padding:12px 13px}
  #nutrition-form label{font-size:13px;margin-bottom:14px}
  .nutrition-plan-meta{gap:14px}
  .nutrition-day-tab{min-height:44px;padding:10px 16px;font-size:13px}
  #add-diet-meal,.nutrition-header-actions .outline-button{min-height:48px;font-size:14px}
}
#progress-form .nutrition-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}#progress-form label{display:flex;flex-direction:column;gap:6px;line-height:1.25}#progress-form input,#progress-form textarea{width:100%;min-height:46px;font-size:15px;padding:11px 12px}#progress-form textarea{min-height:96px;resize:vertical}#progress-form .full{min-height:50px;font-size:15px;margin-top:8px}@media(max-width:600px){#progress-form .nutrition-form-grid{grid-template-columns:1fr}#progress-form label{font-size:14px}#progress-form textarea{min-height:110px}}
@media(max-width:900px){
  #nutrition-form .nutrition-form-grid{grid-template-columns:1fr;gap:14px}
  #nutrition-form .nutrition-plan-meta{grid-template-columns:1fr;gap:14px}
  #nutrition-form .nutrition-form-grid label,#nutrition-form .nutrition-plan-meta label{display:flex;flex-direction:column;gap:6px;line-height:1.25;font-size:14px}
  #nutrition-form input,#nutrition-form select{width:100%;min-height:48px;font-size:15px;padding:11px 12px}
  #nutrition-form .full{min-height:52px;margin-top:8px}
}
#nutrition-form{width:100%}#nutrition-form label{display:block!important;width:100%;margin:0 0 14px!important;line-height:1.25}#nutrition-form label>input,#nutrition-form label>select{display:block!important;width:100%!important;max-width:none;min-height:48px;margin:7px 0 0!important;padding:11px 12px;font-size:15px}
@media(max-width:1100px){#nutrition-form .nutrition-form-grid,#nutrition-form .nutrition-plan-meta{grid-template-columns:1fr!important;display:grid;gap:14px}#nutrition-form .nutrition-form-grid label,#nutrition-form .nutrition-plan-meta label{margin:0!important}}
.timer-settings-grid label{display:block;width:100%;margin:0}.timer-settings-grid input{display:block;width:100%;min-height:48px;margin-top:7px;padding:11px 12px;font-size:15px}
@media(max-width:1100px){.timer-settings-grid{grid-template-columns:1fr!important;gap:14px}.timer-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.timer-presets button{min-height:46px;padding:10px 8px}}
@media(max-width:420px){.timer-presets{grid-template-columns:1fr}.timer-presets button{width:100%}}
#nutrition-form #save-nutrition-plan{display:block!important;width:100%!important;min-height:52px;margin-top:10px!important;border:0!important;border-radius:9px;background:linear-gradient(135deg,#08b8ff,#0067e9)!important;color:#fff!important;font-weight:700;font-size:15px;box-shadow:0 9px 20px rgba(0,110,220,.25);cursor:pointer}#nutrition-form #save-nutrition-plan:hover{background:linear-gradient(135deg,#20c5ff,#0876f6)!important}
.timer-actions button{min-width:108px;min-height:46px;border:0!important;border-radius:9px;background:linear-gradient(135deg,#08b8ff,#0067e9)!important;color:#fff!important;font-weight:700;box-shadow:0 9px 20px rgba(0,110,220,.2)}.timer-actions button:hover{background:linear-gradient(135deg,#20c5ff,#0876f6)!important}.timer-actions button:disabled{opacity:.55;cursor:not-allowed}
#timer-start,#timer-pause,#timer-reset,#stopwatch-start,#stopwatch-reset{width:108px!important;min-width:108px!important;height:46px!important;min-height:46px!important;padding:0 14px!important;border:0!important;border-radius:9px!important;background:linear-gradient(135deg,#08b8ff,#0067e9)!important;color:#fff!important;font-weight:700!important;box-shadow:0 9px 20px rgba(0,110,220,.2)!important}#timer-start:hover,#timer-pause:hover,#timer-reset:hover,#stopwatch-start:hover,#stopwatch-reset:hover{background:linear-gradient(135deg,#20c5ff,#0876f6)!important}
#download-diet-pdf,#share-diet-pdf,#add-diet-meal{display:inline-flex!important;align-items:center;justify-content:center;width:auto!important;min-width:138px!important;min-height:46px!important;padding:0 14px!important;border:0!important;border-radius:9px!important;background:linear-gradient(135deg,#08b8ff,#0067e9)!important;color:#fff!important;font-weight:700!important;box-shadow:0 9px 20px rgba(0,110,220,.2)!important;text-decoration:none;cursor:pointer}#download-diet-pdf:hover,#share-diet-pdf:hover,#add-diet-meal:hover{background:linear-gradient(135deg,#20c5ff,#0876f6)!important}@media(max-width:600px){#download-diet-pdf,#share-diet-pdf,#add-diet-meal{width:100%!important}}
#dashboard .stats-grid{grid-template-columns:repeat(5,minmax(0,1fr))}#dashboard .subscription-home-card small{display:block;color:#71827e;font-size:10px;margin-top:3px}@media(max-width:900px){#dashboard .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.nutrition-saved-card{appearance:none;width:100%;font:inherit;text-align:left;cursor:pointer}.nutrition-saved-card:hover{border-color:#0da9ed;box-shadow:0 7px 18px rgba(0,110,220,.12);transform:translateY(-1px)}.nutrition-detail-modal{max-width:620px;max-height:calc(100dvh - 28px);overflow-y:auto}.nutrition-detail-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:18px 0}.nutrition-detail-metrics span{display:flex;flex-direction:column;gap:3px;padding:10px;border-radius:10px;background:#eaf6f1}.nutrition-detail-metrics small{font-size:10px;color:#71827e}.nutrition-detail-metrics b{font-size:14px;color:#1f6658}.nutrition-detail-modal h3{margin:18px 0 10px;color:#17362f}.nutrition-detail-days{display:grid;grid-template-columns:1fr 1fr;gap:8px}.nutrition-detail-day{padding:10px;border:1px solid #dbe8e5;border-radius:10px}.nutrition-detail-day strong{color:#1f6658;font-size:13px}.nutrition-detail-day p{margin:6px 0 0;color:#71827e;font-size:11px;line-height:1.35}@media(max-width:600px){.nutrition-detail-metrics{grid-template-columns:1fr 1fr}.nutrition-detail-days{grid-template-columns:1fr}}
.progress-client-card{display:block}.progress-delete-button{margin-top:12px;color:#c34e4e!important;font-size:11px}.progress-delete-button:disabled{opacity:.45;cursor:not-allowed}
.progress-card-actions{display:flex;align-items:center;gap:10px;margin-top:12px}.progress-add-button{min-height:38px;padding:9px 12px;font-size:12px}.progress-delete-button{margin-top:0!important}@media(max-width:480px){.progress-card-actions{align-items:stretch;flex-direction:column}.progress-card-actions button{width:100%!important}}
.admin-coach-row{grid-template-columns:1.6fr 1fr 2fr;min-width:0}.admin-coach-row>span:last-child{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.admin-coach-row button{min-height:34px}@media(max-width:700px){.admin-coach-row{grid-template-columns:1.2fr .9fr 1.8fr;min-width:560px}.admin-coach-row>span:last-child{justify-content:flex-start}}
.admin-coach-row .coach-password,.admin-coach-row .coach-status,.admin-coach-row .coach-delete,.admin-coach-row .coach-renew{display:inline-flex!important;align-items:center;justify-content:center;min-width:100px;min-height:38px;padding:0 13px!important;border:0!important;border-radius:9px!important;background:linear-gradient(135deg,#08b8ff,#0067e9)!important;color:#fff!important;font-weight:700!important;text-decoration:none;box-shadow:0 7px 16px rgba(0,110,220,.18);cursor:pointer}.admin-coach-row .coach-password:hover,.admin-coach-row .coach-status:hover,.admin-coach-row .coach-delete:hover,.admin-coach-row .coach-renew:hover{background:linear-gradient(135deg,#20c5ff,#0876f6)!important}.admin-coach-row .coach-delete{font-size:12px}
.admin-coach-row{grid-template-columns:minmax(190px,1.4fr) minmax(110px,.8fr) minmax(100px,.8fr) minmax(320px,2fr)}.admin-coach-row .admin-days{font-weight:700;color:#0876d9}.admin-coach-row .status{justify-self:start}@media(max-width:700px){.admin-coach-row{grid-template-columns:1.4fr .9fr .9fr 2fr;min-width:760px}}
/* Tabla administrativa restaurada con todas sus columnas */
.admin-coach-row{grid-template-columns:1.7fr .9fr 1fr .9fr 1.5fr auto;min-width:760px}.admin-coach-row>span:last-child{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.admin-coach-row button{min-height:34px}
/* Administración: resumen compacto de cada cuenta */
.admin-coach-row{grid-template-columns:1.5fr 1fr 1fr;min-width:620px}.admin-coach-row .admin-days{font-weight:700;color:#0876d9}.admin-coach-row .status{justify-self:start}@media(max-width:700px){.admin-coach-row{grid-template-columns:1.35fr 1fr 1fr;min-width:560px}}
.calendar-month-picker{display:inline-flex;align-items:center;gap:6px;margin-left:auto;color:var(--muted);font-size:11px;font-weight:700}.calendar-month-picker span{white-space:nowrap}.calendar-month-select{min-height:36px;border:1px solid #abd9f5;border-radius:9px;padding:0 28px 0 10px;background:#fff;color:#0066d6;font:700 12px 'DM Sans',sans-serif;text-transform:capitalize;cursor:pointer}.calendar-month-select:focus{outline:0;border-color:#08aef5;box-shadow:0 0 0 3px rgba(8,174,245,.14)}@media(max-width:900px){.calendar-month-picker{order:3;margin-left:0;width:100%;justify-content:center}.calendar-month-select{flex:1;max-width:260px}.weekly-nav .calendar-today{order:1}}
/* Acciones de administración por cuenta */
.admin-coach-row{grid-template-columns:1.35fr .85fr .95fr 2.1fr;min-width:760px}.admin-actions-cell{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.admin-actions-cell .coach-status,.admin-actions-cell .coach-renew,.admin-actions-cell .coach-delete{display:inline-flex!important;align-items:center;justify-content:center;min-height:36px;padding:0 12px!important;border:0!important;border-radius:9px!important;background:linear-gradient(135deg,#08b8ff,#0067e9)!important;color:#fff!important;font-weight:700!important;box-shadow:0 7px 16px rgba(0,110,220,.18);cursor:pointer}.admin-actions-cell .coach-status:hover,.admin-actions-cell .coach-renew:hover,.admin-actions-cell .coach-delete:hover{background:linear-gradient(135deg,#20c5ff,#0876f6)!important}@media(max-width:700px){.admin-coach-row{grid-template-columns:1.25fr .85fr .95fr 2.1fr;min-width:730px}.admin-actions-cell{justify-content:flex-start}}
.nutrition-saved-card-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.nutrition-saved-card-actions .outline-button{min-height:34px;padding:0 11px}.nutrition-saved-card-actions .text-button{color:#c0392b!important;font-weight:700}@media(max-width:600px){.nutrition-saved-card-actions{width:100%;margin-left:0}.nutrition-saved-card-actions button{flex:1}}
.admin-actions-cell button{width:120px!important;height:38px!important;min-height:38px!important;white-space:nowrap!important;padding:0 8px!important;font-size:12px!important;line-height:1!important}
.calendar-date-picker{min-height:36px;border:1px solid #abd9f5;border-radius:9px;padding:0 9px;background:#fff;color:#0066d6;font:700 12px 'DM Sans',sans-serif;cursor:pointer}.calendar-date-picker:focus{outline:0;border-color:#08aef5;box-shadow:0 0 0 3px rgba(8,174,245,.14)}
@supports(padding:max(0px)){.topbar{padding-top:max(0px,env(safe-area-inset-top));padding-right:max(18px,env(safe-area-inset-right));padding-left:max(18px,env(safe-area-inset-left))}.sidebar{padding-left:max(17px,env(safe-area-inset-left));padding-right:max(17px,env(safe-area-inset-right))}.main-content{padding-bottom:max(0px,env(safe-area-inset-bottom))}}
.install-guide-panel{margin-top:18px}.install-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.install-guide-card{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid #dbe8e5;border-radius:14px;background:#fbfefd}.install-guide-icon{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:11px;background:#e5f6ff;font-size:20px}.install-guide-card h3{margin:0 0 7px;font:700 15px Manrope;color:#17362f}.install-guide-card ol{margin:0;padding-left:18px;color:#667873;font-size:12px;line-height:1.55}.install-guide-card strong{color:#1f5b4d}@media(max-width:700px){.install-guide-grid{grid-template-columns:1fr}.install-guide-card{padding:14px}}
.install-guide-icon img{width:25px;height:25px;object-fit:contain}.menu-icon[src*="timer-icon"]{object-fit:contain;padding:1px}
/* Ajustes finales para modo aplicación en teléfonos */
@media(max-width:800px){
  html,body{overflow-x:hidden;-webkit-text-size-adjust:100%}
  .topbar{height:64px;padding:8px 12px;gap:10px}
  .topbar-date{display:none}
  .menu-button{width:44px;height:44px;flex:0 0 44px;font-size:22px;border:1px solid #dce9f5}
  .profile-button{width:42px;height:42px;flex:0 0 42px}
  .view{padding:20px 12px 34px;min-height:calc(100dvh - 64px)}
  .page-heading{gap:14px;margin-bottom:18px}
  .page-heading h1{font-size:26px;line-height:1.1}
  .page-heading .muted{font-size:14px;line-height:1.45}
  .panel{padding:16px;border-radius:16px}
  .panel-heading{margin-bottom:14px;gap:10px}
  .panel h2{font-size:17px}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:18px}
  .stat-card{min-height:88px;padding:12px 10px;gap:9px}
  .stat-card strong{font-size:20px}
  .stat-card span:not(.stat-icon){font-size:11px;line-height:1.25}
  .stat-icon{width:34px;height:34px;font-size:17px;flex:0 0 34px}
  .primary-button,.outline-button,.text-button{min-height:44px;font-size:14px}
  .quick-action{min-height:60px;padding:13px 0}
  .fitness-hero{min-height:210px;padding:24px 18px;margin-bottom:16px}
  .fitness-hero-copy h2{font-size:25px}
  .sidebar{width:min(290px,88vw)!important;padding:22px 14px 18px!important}
  .brand{padding-bottom:24px}
  .nav-item{min-height:50px;font-size:15px;padding:12px 14px}
  .nav-item span{font-size:14px!important}
  .calendar-nav{padding:0 0 12px}
  .weekly-nav h3{font-size:14px;line-height:1.35}
  .calendar-month-picker{font-size:12px}
  .calendar-date-picker{min-height:42px;font-size:14px}
  .timer-display{font-size:clamp(54px,18vw,76px);letter-spacing:1px}
  .timer-actions{gap:8px}
  .timer-actions button{min-height:48px;padding:0 14px}
}
@media(max-width:420px){
  .view{padding-left:10px;padding-right:10px}
  .stats-grid{gap:8px}
  .stat-card{padding:11px 8px}
  .stat-icon{width:30px;height:30px;flex-basis:30px;font-size:15px}
  .stat-card strong{font-size:18px}
  .stat-card span:not(.stat-icon){font-size:10px}
  .panel{padding:14px;border-radius:14px}
  .page-heading h1{font-size:24px}
  .timer-actions button{flex:1;min-width:0;padding:0 8px}
}
.install-guide-icon{width:32px;height:32px;border-radius:9px}.install-guide-icon img{width:20px;height:20px}
.install-video{display:grid;grid-template-columns:minmax(0,.8fr) minmax(300px,1.2fr);gap:18px;align-items:center;margin-top:16px;padding:16px;border:1px solid #d7e6ea;border-radius:16px;background:linear-gradient(145deg,#f7fbfc,#edf6f7)}.install-video>div{display:flex;flex-direction:column;gap:6px}.install-video strong{font:700 15px Manrope;color:#1a5861}.install-video span{font-size:12px;line-height:1.5;color:#71838a}.install-video video{display:block;width:100%;max-height:260px;border-radius:12px;background:#142b3b;box-shadow:0 8px 20px rgba(25,65,76,.12)}
@media(max-width:700px){.install-video{grid-template-columns:1fr;gap:12px;padding:13px}.install-video video{max-height:none}}

@media(max-width:800px){#dashboard .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%;overflow:visible}#dashboard .stat-card{min-width:0}#dashboard .stat-card>div{min-width:0}#dashboard .stat-card span:not(.stat-icon){overflow-wrap:anywhere}}
@media(max-width:600px){
  #dashboard .view,.view{padding-top:16px;padding-bottom:26px}
  #dashboard .page-heading{margin-bottom:14px;gap:10px}
  #dashboard .page-heading h1{font-size:22px}
  #dashboard .page-heading .muted{font-size:12px}
  #dashboard .stats-grid{gap:7px;margin-bottom:14px}
  #dashboard .stat-card{min-height:72px;padding:9px 8px;gap:7px;border-radius:12px}
  #dashboard .stat-icon{width:27px;height:27px;flex-basis:27px;font-size:13px;border-radius:8px}
  #dashboard .stat-card strong{font-size:17px;margin-top:3px}
  #dashboard .stat-card span:not(.stat-icon){font-size:9px}
  #dashboard .stat-card small{font-size:8px}
  #dashboard .fitness-hero{min-height:180px;padding:20px 16px;border-radius:15px}
  #dashboard .fitness-hero-copy h2{font-size:22px}
  #dashboard .fitness-hero-copy p{font-size:12px}
}
@media(max-width:800px){
  #dashboard .stats-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;overflow:visible!important}
  #dashboard .content-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important}
  #dashboard .schedule-panel,#dashboard .quick-panel{width:100%;min-width:0;overflow:hidden}
  #dashboard .schedule-list{width:100%;min-width:0}
  #dashboard .schedule-item{width:100%;min-width:0;grid-template-columns:48px minmax(0,1fr) auto!important;gap:8px;padding:12px 10px}
  #dashboard .schedule-client{min-width:0;overflow:hidden}
  #dashboard .schedule-client>div{min-width:0;overflow-wrap:anywhere;word-break:break-word}
  #dashboard .schedule-client strong,#dashboard .schedule-client small{overflow-wrap:anywhere;word-break:break-word}
  #dashboard .schedule-item .schedule-status{display:inline-flex!important;white-space:nowrap;font-size:10px;padding:5px 7px}
  #dashboard .schedule-item .text-button{width:34px!important;min-width:34px!important;padding:0!important;min-height:34px!important}
  .client-toolbar,.panel-heading{min-width:0}
  .panel-heading>div{min-width:0}
  .panel-heading .muted{line-height:1.4}
  .client-table{width:100%;max-width:100%;overflow-x:auto}
  .content-grid .panel,.nutrition-grid .panel,.progress-grid .panel{min-width:0}
}
@media(max-width:420px){
  #dashboard .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #dashboard .stat-card{min-width:0}
  #dashboard .schedule-item{grid-template-columns:44px minmax(0,1fr) auto!important;padding-left:8px;padding-right:8px}
  #dashboard .schedule-time{font-size:12px}
}
/* Compatibilidad con navegadores móviles que reportan un ancho visual amplio */
@media(max-width:1100px), (pointer:coarse) and (max-width:1200px){
  #dashboard .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;overflow:visible!important}
  #dashboard .content-grid{grid-template-columns:minmax(0,1fr)!important}
  #dashboard .schedule-panel,#dashboard .quick-panel{min-width:0;width:100%;overflow:hidden}
  #dashboard .schedule-item{min-width:0!important;width:100%;grid-template-columns:48px minmax(0,1fr) auto!important}
  .main-content{overflow-x:hidden!important}
}
.routine-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.routine-actions button{min-height:36px;padding:0 10px!important;white-space:nowrap}.routine-actions .routine-pdf-download,.routine-actions .routine-pdf-share{background:linear-gradient(135deg,#08b8ff,#0067e9)!important;color:#fff!important;border:0!important;border-radius:9px!important;font-weight:700}@media(max-width:800px){.routine-actions{grid-column:1/-1;justify-content:flex-start;padding-top:6px}.routine-actions button{min-height:42px;flex:1}.plans-list .client-row{min-width:760px}}
.report-problem-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;background:linear-gradient(135deg,#fff8ed,#fff)}.report-problem-copy{display:flex;align-items:center;gap:12px}.report-problem-copy h2{margin-bottom:4px}.report-problem-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#fff0d8;font-size:21px}.report-problem-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap}@media(max-width:700px){.report-problem-panel{align-items:stretch;flex-direction:column}.report-problem-button{width:100%;white-space:normal;text-align:center;min-height:48px}.report-problem-copy{align-items:flex-start}.report-problem-icon{width:36px;height:36px;flex-basis:36px;font-size:18px}}
.admin-actions-cell .coach-trial{background:linear-gradient(135deg,#8c63e6,#6240b8)!important;color:#fff!important;border:0!important}

.trial-banner{margin:0 0 18px;padding:12px 16px;border:1px solid #f0c46b;border-radius:12px;background:linear-gradient(135deg,#fff8e7,#fff1c8);color:#865b12;font-size:13px;font-weight:700}.trial-banner strong{color:#6f4700}.trial-banner[hidden]{display:none}@media(max-width:800px){.trial-banner{margin-bottom:14px;padding:11px 13px;font-size:12px}}

.demo-access-panel{margin-top:14px;padding:0;text-align:left}.demo-access-panel strong{display:block;color:#fff;font-size:14px;margin-bottom:5px}.demo-access-panel p{margin:0 0 10px;color:#cfe7f2;font-size:12px;line-height:1.45}.demo-access-panel .outline-button{width:100% !important;min-height:44px;border:1px solid rgba(126,211,241,.7) !important;border-radius:11px;color:#fff !important;background:linear-gradient(135deg,#16c4ff,#0874ef) !important;box-shadow:0 10px 22px rgba(8,121,232,.28);font-weight:700}.demo-access-panel .outline-button:hover{transform:translateY(-1px);box-shadow:0 13px 26px rgba(8,121,232,.38)}.demo-mode .trial-banner{display:none}@media(max-width:700px){.demo-access-panel{text-align:center;max-width:330px;margin:14px auto 0}}

.subscription-monthly{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid rgba(126,211,241,.28);font-size:13px;color:#557080}.subscription-monthly strong{color:#0874ef;font-size:18px}.payment-due{min-width:170px}

/* Final elegant polish */
:root{--green:#176b67;--green-dark:#0e4d4a;--mint:#e8f4f2;--ink:#172332;--muted:#697886;--line:#d9e4e9;--background:#f4f7f9;--surface:#fff;--shadow:0 14px 35px rgba(26,55,76,.08)}
body{background:linear-gradient(145deg,#f4f8fa 0%,#edf3f6 100%);color:var(--ink)}
body:before{opacity:.16;background-image:linear-gradient(135deg,rgba(45,143,157,.1),transparent 42%),repeating-linear-gradient(135deg,transparent 0 52px,rgba(26,55,76,.018) 53px 54px)}
.sidebar{background:linear-gradient(165deg,#142b3b 0%,#0f3441 58%,#10242f 100%);box-shadow:8px 0 28px rgba(13,35,48,.18)}
.brand{font-size:19px;letter-spacing:-.35px}.brand-accent{color:#51c2d0}.brand-mark{background:#dff2f3;color:#176b67;box-shadow:0 5px 15px rgba(21,115,125,.16)}
.nav-item{font-size:14px!important;min-height:44px;padding:11px 13px;gap:12px;border-radius:12px;color:#c6d6da}.nav-item span{font-size:13px!important;font-weight:650}.nav-item:first-letter{font-size:20px!important}.nav-item.active{background:rgba(82,194,208,.14);border-color:rgba(82,194,208,.28);box-shadow:inset 3px 0 #55c5d0,0 6px 16px rgba(5,24,33,.15)}.nav-item:hover{background:rgba(82,194,208,.1)}
.topbar{height:74px;background:rgba(255,255,255,.86);border-bottom-color:rgba(116,143,157,.18);box-shadow:0 3px 18px rgba(26,55,76,.04)}
.view{padding-top:38px}.page-heading h1{color:#172332;letter-spacing:-1px}.eyebrow{color:#257e83}.muted{color:#71818c}
.primary-button{background:linear-gradient(135deg,#1aa4b0,#1477a0);border-radius:11px;box-shadow:0 9px 20px rgba(22,123,145,.2)}.primary-button:hover{background:linear-gradient(135deg,#25b3bd,#176e98);box-shadow:0 12px 24px rgba(22,123,145,.25)}
.outline-button{border-color:#9ec7cf!important;color:#166b78!important;background:#f8fcfd!important;border-radius:9px!important}.outline-button:hover{background:#e9f5f6!important}
.stat-card,.panel{border-color:rgba(143,168,181,.22);background:rgba(255,255,255,.9);box-shadow:var(--shadow)}.stat-card{border-radius:17px}.panel{border-radius:19px}.stat-card:hover{box-shadow:0 18px 34px rgba(26,55,76,.12)}
.stat-icon.green{background:#e1f1ee;color:#22766f}.stat-icon.blue{background:#e4f0f7;color:#287a9d}.stat-icon.orange{background:#fbf0e1;color:#b87935}.stat-icon.purple{background:#eee9f6;color:#8167a2}
.schedule-item{border-color:#dbe6eb;background:rgba(255,255,255,.78);border-radius:13px}.schedule-item:hover{border-color:#9ecbd0;box-shadow:0 8px 18px rgba(29,101,119,.1)}.schedule-time{color:#206d70}.schedule-dot{background:#46a8a3}.schedule-status{color:#216e70;background:#e4f3f0}
.quick-action{border-color:#e1e9ed}.quick-action:hover{background:#edf7f7}.quick-action>span{background:#e3f2f1;color:#176b67}
.search-box{background:#fbfdfe;border-color:#d6e3e8}.search-box:focus-within{border-color:#75b7c0;box-shadow:0 0 0 3px #e4f4f5}
.modal{border:1px solid rgba(127,168,180,.28);box-shadow:0 30px 80px rgba(18,52,68,.25)}.modal input,.modal select,.modal textarea{border-color:#d5e2e7;background:#fcfeff}.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:#68afba;box-shadow:0 0 0 3px #e4f4f5}
.status.active{color:#22766f;background:#e4f3f0}.status.pending{color:#a36c2d;background:#fff3df}
.calendar-date:hover,.calendar-date.selected{border-color:#55aab0;background:#e7f4f3}.weekly-day.is-today{background:rgba(78,176,174,.09)}.weekly-day.is-today header b{background:#1d7778;color:#fff}
@media(max-width:800px){.view{padding-top:24px}.sidebar{width:268px}.panel{border-radius:16px}.page-heading h1{font-size:28px}.stat-card{border-radius:15px}}

.admin-usage-card{margin-bottom:18px}
.admin-usage-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.admin-usage-heading h2{margin:0 0 5px;font:700 19px Manrope;color:#18343d}
.admin-usage-used{color:#176b78;font:700 15px 'DM Sans';white-space:nowrap}
.admin-usage-meter{height:13px;margin:16px 0 9px;border-radius:999px;background:#e6eff2;overflow:hidden}
.admin-usage-meter-fill{display:block;width:.5%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1aa4b0,#1477a0);transition:width .35s ease}
.admin-usage-meta{display:flex;justify-content:space-between;gap:12px;color:#70838b;font-size:11px}
.admin-usage-note{margin:10px 0 0;color:#87979d;font-size:11px;line-height:1.45}
.admin-usage-card.is-warning .admin-usage-meter-fill{background:linear-gradient(90deg,#f2b84b,#d98727)}
.admin-usage-card.is-danger .admin-usage-meter-fill{background:linear-gradient(90deg,#df6b72,#b34351)}
@media(max-width:700px){.admin-usage-heading{flex-direction:column;gap:8px}.admin-usage-used{font-size:14px}.admin-usage-meta{flex-direction:column;gap:4px}}

/* Rutinas en móvil: el modal ocupa el alto disponible y conserva el desplazamiento táctil. */
.routine-modal{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-gutter:stable;min-height:0}
.routine-modal form{min-height:0}
@media(max-width:700px){
  .modal-backdrop{align-items:flex-start;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:10px 8px}
  .routine-modal{width:100%;max-height:calc(100dvh - 20px);padding:20px 14px 16px;overflow-y:auto;overflow-x:hidden}
  .routine-modal form>.full{position:sticky;bottom:0;z-index:3;margin-top:16px;min-height:46px;background:linear-gradient(135deg,#08b8ff,#0067e9);box-shadow:0 -10px 18px rgba(255,255,255,.94)}
  .routine-day-tabs{padding-bottom:4px;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.exercise-library-results{max-height:150px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .exercise-grid{gap:9px}
  .exercise-grid input,.exercise-grid select{min-height:44px}
  .remove-exercise{min-height:40px}
}

/* Base móvil: el contenido de cada vista debe poder crecer y desplazarse. */
@media(max-width:800px){
  html,body{overflow-x:hidden;overflow-y:auto;min-width:0}
  .main-content{width:100%;min-width:0;overflow-x:hidden;padding-bottom:calc(78px + env(safe-area-inset-bottom))!important}
  .view{overflow:visible!important;max-width:100%;min-width:0}
  .panel,.stat-card,.schedule-item,.fitness-hero,.content-grid,.nutrition-grid,.progress-grid{min-width:0;max-width:100%}
  img,video,svg,canvas{max-width:100%;height:auto}
  input,select,textarea,button{max-width:100%}
  .mobile-bottom-nav{padding-bottom:max(7px,env(safe-area-inset-bottom));}
  .modal-backdrop{z-index:60}
  .app-client-form{max-height:calc(100dvh - 20px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .timer-actions{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .timer-actions button,#timer-start,#timer-pause,#timer-reset,#stopwatch-start,#stopwatch-reset{width:100%!important;min-width:0!important;padding:0 8px!important}
}
@media(max-width:420px){
  .timer-actions{grid-template-columns:1fr}
  .timer-actions button,#timer-start,#timer-pause,#timer-reset,#stopwatch-start,#stopwatch-reset{min-height:46px!important}
}

/* En teléfonos, la rutina se edita en una sola columna y solo con scroll vertical. */
@media(max-width:700px){
  .modal-backdrop:has(.routine-modal){align-items:flex-start;justify-content:center;overflow:hidden;touch-action:none;z-index:100!important;padding-bottom:calc(10px + env(safe-area-inset-bottom))}
  .routine-modal{width:100%;max-width:100%;overflow-x:hidden;touch-action:pan-y}
  .routine-modal .modal-close{z-index:50;pointer-events:auto;touch-action:manipulation;min-width:44px;min-height:44px;padding:4px}
  .routine-modal .exercise-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important;width:100%}
  .routine-modal .exercise-field,.routine-modal .exercise-name-field,.routine-modal .exercise-video-field,.routine-modal .exercise-day-field,.routine-modal .exercise-grid .remove-exercise{grid-column:1!important;width:100%;min-width:0}
  .routine-modal .exercise-grid input,.routine-modal .exercise-grid select{width:100%;max-width:100%;font-size:16px!important}
  .routine-modal .routine-day-tabs{display:grid;grid-template-columns:1fr;overflow-x:hidden;gap:6px;width:100%}
  .routine-modal .routine-day-tab{width:100%;min-height:52px}
  .routine-modal form{display:flex;flex-direction:column;padding-bottom:10px}
  .routine-modal form>.full{display:flex;position:sticky;bottom:0;z-index:30;flex:0 0 auto;align-items:center;justify-content:center;min-height:48px;margin:18px 0 0;pointer-events:auto;transform:translateZ(0)}
}

.force-dashboard #routine-modal{display:none!important}.force-dashboard #dashboard{display:block!important}.force-dashboard .view:not(#dashboard){display:none!important}


/* El modal solo aparece tras una acción explícita del usuario. */
body:not(.routine-interaction) #routine-modal{display:none!important}
body.routine-interaction #routine-modal.open{display:grid!important}

/* Acceso móvil: primero aparecen las credenciales y todo el panel se desplaza verticalmente. */
@media(max-width:700px){
  #auth-modal{align-items:flex-start;overflow-y:auto;overflow-x:hidden;padding:10px 8px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  #auth-modal .auth-modal{width:100%;max-width:520px;max-height:none;margin:0 auto;overflow:visible}
  #auth-modal .auth-modal-content{display:flex;flex-direction:column;gap:18px;padding:16px 12px 26px}
  #auth-modal .auth-form-side{order:-1;width:100%;padding:20px 16px;border:1px solid rgba(117,216,255,.25);border-radius:16px}
  #auth-modal .auth-info{order:2;width:100%;padding:0;text-align:center}
  #auth-modal .auth-info .auth-logo{width:76px;height:76px;margin:0 auto 10px}
  #auth-modal .auth-info h2{font-size:24px;margin-bottom:10px}
  #auth-modal .auth-description{font-size:14px;line-height:1.45;margin:0 auto 12px}
  #auth-modal .auth-info .auth-contract-button{margin:14px auto 0;max-width:100%}
  #auth-modal .auth-modal input:not([type="checkbox"]){min-height:48px;font-size:16px!important}
  #auth-modal .auth-form-side .primary-button{min-height:50px;font-size:15px}
}


/* En móvil, el acceso a la demo queda visible junto al formulario. */
.mobile-demo-access{display:none}
@media(max-width:700px){
  #auth-modal .mobile-demo-access{display:block;min-height:46px;margin:0 0 14px;background:linear-gradient(135deg,#16c4ff,#0874ef)!important;color:#fff!important;border-color:rgba(126,211,241,.7)!important}
}

/* En móvil: información arriba y formulario debajo con desplazamiento vertical. */
@media(max-width:700px){
  #auth-modal .auth-modal-content{display:flex;flex-direction:column;gap:18px;overflow:visible}
  #auth-modal .auth-info{order:1}
  #auth-modal .auth-form-side{order:2}
  #auth-modal .mobile-demo-access{display:none!important}
}

/* Safari/iPhone: el acceso ocupa la pantalla y permite deslizar todo el contenido. */
@media(max-width:700px){
  #auth-modal{height:100dvh;min-height:100dvh;overflow-y:scroll!important;overflow-x:hidden;touch-action:pan-y;-webkit-overflow-scrolling:touch;padding:10px 8px 40px}
  #auth-modal .auth-modal{margin:0 auto;max-height:none;overflow:visible}
  #auth-modal .auth-modal-content{min-height:0;padding-bottom:34px}
}

/* Acceso compacto en teléfonos: los campos quedan visibles sin depender del primer gesto. */
@media(max-width:700px){
  #auth-modal .auth-modal-content{gap:10px;padding-top:12px}
  #auth-modal .auth-info .auth-logo{width:62px;height:62px;margin-bottom:6px}
  #auth-modal .auth-info .eyebrow{font-size:11px;margin-bottom:4px}
  #auth-modal .auth-info h2{font-size:23px;margin-bottom:7px}
  #auth-modal .auth-description{font-size:12px;line-height:1.32;margin-bottom:7px}
  #auth-modal .auth-info .auth-contract-button{min-height:40px;margin-top:8px}
  #auth-modal .demo-access-panel{margin-top:8px}
  #auth-modal .demo-access-panel p{margin-bottom:6px}
  #auth-modal .auth-form-side{padding:16px 16px}
}

@media(max-width:700px){
  #auth-modal .go-auth-form{display:block;margin:10px auto 0;min-height:44px;color:#fff!important;background:rgba(255,255,255,.12)!important;border-color:rgba(126,211,241,.8)!important}
}

@media(max-width:700px){#auth-modal .go-auth-form{display:none!important}}

/* Visibility follows state; mobile layout must never force a closed overlay open. */
#auth-modal{display:none}
body.auth-gate #auth-modal,#auth-modal.open{display:grid}
@media(max-width:700px){body.auth-gate #auth-modal,#auth-modal.open{display:block}}

/* Weekly routine overview: one column per day, editable exercise cards. */
#routine-modal .routine-modal{width:min(1180px,100%)}
#routine-modal .routine-day-tabs{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:8px;overflow-x:auto;padding:8px 0 14px;align-items:start}
.routine-day-column{padding:10px;border:1px solid #d4e4ec;border-radius:12px;background:#f5f9fc;min-width:0}
.routine-day-column.active{border-color:#149cb5;background:#edf9fc}
#routine-modal .routine-day-tab{width:100%;min-height:40px;padding:8px;border:0;background:transparent;color:#174554;font-weight:700}
.routine-day-column>small{display:block;text-align:center;color:#617a85;margin:4px 0 10px}
.routine-slot{display:flex;flex-direction:column;gap:5px;width:100%;padding:10px;margin-bottom:8px;background:white;border:1px solid #d6e4ee;border-left:3px solid #139ed1;border-radius:8px;text-align:left;cursor:pointer;overflow-wrap:anywhere}
.routine-slot span{font-size:11px;color:#617a85}.routine-slot strong{font-size:13px}
.routine-day-add{width:100%;min-height:40px;background:#087fe3;border:0;border-radius:8px;color:white;font-weight:700;cursor:pointer}
.routine-day-empty{font-size:12px;color:#72858e;text-align:center;min-height:38px}
#routine-editor-day{font-size:18px;margin:20px 0 12px;color:#184653}
#exercise-rows .exercise-row[hidden]{display:none!important}
@media(max-width:700px){#routine-modal .routine-day-tabs{grid-template-columns:repeat(7,150px);touch-action:pan-x pan-y}#routine-modal .routine-modal{width:100%}#routine-modal .exercise-row{scroll-margin-top:12px}}
#routine-modal{z-index:100!important}

.routine-slot.is-editing{border-color:#0787cf;box-shadow:0 0 0 2px #d5effc}
#routine-modal .next-day-exercise{min-height:48px;margin-top:16px;white-space:normal}
/* Reservas online: acciones principales con una jerarquía visual consistente. */
#copy-booking-link,
#copy-booking-link-2 {
  background: linear-gradient(135deg, #0ea5e9, #147de5);
  border: 1px solid #147de5;
  color: #fff;
  border-radius: 10px;
  font-weight: 700;
  padding: 0.7rem 1rem;
  box-shadow: 0 8px 18px rgba(20, 125, 229, 0.2);
}

#copy-booking-link:hover,
#copy-booking-link-2:hover {
  filter: brightness(1.06);
}

.booking-link-box {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
}

.availability-days {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 0.55rem;
  margin: 0.75rem 0 1rem;
}

.availability-days label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid #d6e3ec;
  border-radius: 9px;
  background: #f8fbfd;
}

.school-schedule {
  display: grid;
  grid-template-columns: repeat(7, minmax(145px, 1fr));
  gap: 0.75rem;
  margin: 1rem 0;
  overflow-x: auto;
  padding-bottom: 0.35rem;
}

.availability-day-card {
  border: 1px solid #d6e3ec;
  border-radius: 12px;
  background: #f8fbfd;
  padding: 0.8rem;
}

.availability-day-card h3 { margin: 0 0 0.65rem; }
.availability-slots { display: grid; gap: 0.45rem; }
.availability-slots label { display: grid; gap: 0.2rem; font-size: 0.78rem; color: #6b7c8c; }
.availability-slots input { width: 100%; }
.add-availability-slot { margin-top: 0.65rem; width: 100%; }

@media (max-width: 760px) {
  .school-schedule { grid-template-columns: repeat(7, minmax(132px, 1fr)); }
}
.remove-availability-slot{width:26px;height:26px;border:0;border-radius:50%;background:#dc3545;color:#fff;font-size:20px;line-height:24px;font-weight:700;cursor:pointer;padding:0;align-self:end}.remove-availability-slot:hover{background:#b42332}
.booking-request-row{grid-template-columns:1.25fr 1.6fr .9fr .65fr .8fr 1.15fr;align-items:center;gap:14px;padding:16px 14px;border:1px solid #e1eaee;border-radius:12px;margin:8px 0;background:#fff;box-shadow:0 4px 12px rgba(26,55,76,.04)}
.booking-contact{display:flex;flex-direction:column;color:#66808a;font-size:12px;overflow-wrap:anywhere}.booking-contact small{margin-top:3px;color:#8a9ba2}.booking-actions{display:flex;align-items:center;gap:8px}.booking-actions .booking-accept{min-height:34px;padding:7px 13px!important;font-size:12px!important}.booking-actions .booking-reject{font-size:12px!important;padding:7px 4px!important;color:#b44358!important}
.booking-request-row .status{justify-self:start;white-space:nowrap}
.plans-list .show-routine,.plans-list .edit-plan,.plans-list .delete-plan{display:inline-flex!important;align-items:center;justify-content:center;min-width:104px;min-height:36px;padding:0 12px!important;border:0!important;border-radius:9px!important;background:linear-gradient(135deg,#08b8ff,#0067e9)!important;color:#fff!important;font:700 12px 'DM Sans'!important;box-shadow:0 7px 16px rgba(0,110,220,.18);cursor:pointer}.plans-list .show-routine:hover,.plans-list .edit-plan:hover,.plans-list .delete-plan:hover{background:linear-gradient(135deg,#20c5ff,#0876f6)!important;transform:translateY(-1px)}
.plans-list .show-routine,.plans-list .edit-plan,.plans-list .delete-plan{min-width:88px;min-height:30px;padding:0 9px!important;border-radius:8px!important;font-size:11px!important;box-shadow:0 5px 12px rgba(0,110,220,.15)}
@media(max-width:900px){.booking-request-row{grid-template-columns:1fr 1fr 1fr;gap:8px}.booking-request-row .booking-contact{grid-column:2/4}.booking-request-row .booking-actions{grid-column:1/-1;padding-top:5px}.booking-request-row .booking-actions button{flex:1;min-height:40px}.booking-request-row .status{justify-self:end}}

/* Disponibilidad: tarjetas compactas y controles alineados */
.booking-availability-panel{overflow:hidden}
.booking-availability-panel .panel-heading h2{font-size:22px;margin-bottom:4px}
.school-schedule{gap:12px;margin-top:18px;padding:4px 2px 12px}
.availability-day-card{padding:14px 12px;border:1px solid #d4e4ea;border-radius:16px;background:linear-gradient(180deg,#fbfeff,#f2f8fa);box-shadow:0 6px 16px rgba(27,79,96,.06)}
.availability-day-card h3{font-size:15px;color:#173340;margin:0 0 10px;letter-spacing:-.15px}.availability-date{display:block;margin-top:2px;color:#6b8791;font-size:12px;font-weight:600}
.availability-capacity-toggle{display:flex;align-items:center;gap:7px;margin:0 0 10px;color:#46616c;font-size:12px;font-weight:700}.availability-capacity-toggle input{accent-color:#168db0;width:15px;height:15px}
.availability-slots{gap:8px}.availability-slots label{position:relative;display:grid;gap:4px;padding:10px 34px 10px 9px;border:1px solid #dce9ee;border-radius:11px;background:#fff;box-shadow:0 2px 7px rgba(26,72,88,.04)}
.availability-slots label span{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#78909a}.availability-slots input{min-height:31px;border:1px solid #c8dce4;border-radius:7px;padding:4px 7px;background:#fbfdfe;color:#1d3440}
.availability-slots .remove-availability-slot{position:absolute;right:7px;top:8px;width:24px;height:24px;font-size:17px;line-height:22px;box-shadow:0 2px 5px rgba(180,35,50,.2)}
.add-availability-slot{min-height:38px;border-radius:9px!important;font-size:12px!important;font-weight:700}
@media(max-width:760px){.school-schedule{padding-left:0}.availability-day-card{padding:12px 10px}}
