:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#172c43;background:#f3f7fb;font-size:14px;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #70d1e5;outline-offset:2px} [hidden]{display:none!important}
:root{--navy:#08233b;--navy2:#0c3453;--cyan:#0aadd0;--teal:#008e9f;--green:#1f987c;--muted:#7a8b9d;--border:#e1eaf1;--shadow:0 10px 28px rgba(30,57,87,.045)}
.shell{display:flex;min-height:100vh}.sidebar{flex:0 0 262px;width:262px;background:linear-gradient(160deg,#08243e 0%,#061c34 85%);display:flex;flex-direction:column;justify-content:space-between;color:#aebfd0;min-height:100vh;position:sticky;top:0;max-height:100vh;z-index:15}.side-top{padding:21px 13px}.brand-lockup{padding:0 14px 12px;text-align:center}.brand-lockup img{height:119px;width:215px;max-width:100%;object-fit:contain;display:block;margin:auto}.brand-sub{font-size:9px;letter-spacing:2.3px;color:#72bbd1;font-weight:800;margin-top:-6px}.side-section-label{font-size:10px;letter-spacing:1.85px;font-weight:800;color:#62809b;padding:29px 17px 13px}.second-label{padding-top:27px}.nav{display:grid;gap:4px}.nav-link{border:1px solid transparent;background:none;display:flex;align-items:center;gap:13px;border-radius:11px;padding:12px 13px;text-align:left;color:#a9c0cf;font-weight:620;transition:.2s;width:100%}.nav-link:hover{background:#ffffff10;color:#fff}.nav-link.active{color:#fff;border-color:#ffffff18;background:linear-gradient(95deg,#087ba0,#0d4a66);box-shadow:0 5px 15px #02162955}.nav-icon{display:inline-flex;justify-content:center;align-items:center;width:24px;font-size:20px;color:#8fc2d4}.nav-link.active .nav-icon{color:#fff}.side-bottom{padding:13px}.side-help{border-radius:13px;background:linear-gradient(150deg,#103a55,#0c3049);border:1px solid #294a5d;padding:18px;margin-bottom:17px}.side-help strong{color:white;font-size:13px}.side-help p{font-size:11px;line-height:1.55;margin:6px 0 0}.help-spark{font-size:23px;color:#43d7cf;margin-bottom:7px}.profile{background:none;border:none;border-top:1px solid #1c3b51;padding:18px 8px 8px;display:flex;text-align:left;width:100%;align-items:center;gap:10px;color:#fff}.avatar,.top-avatar{display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#12b5b9,#0b6789);border-radius:11px;color:#fff;font-weight:800}.avatar{width:36px;height:36px}.profile-text{flex:1;display:grid;gap:3px}.profile-text b{font-size:12px}.profile-text small{color:#91aabd;font-size:11px}.profile-arrow{font-size:17px;color:#9cbbcc}
.main-shell{min-width:0;flex:1;min-height:100vh;display:flex;flex-direction:column}.topbar{height:71px;flex:0 0 71px;background:white;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 40px}.top-breadcrumb{font-weight:750;font-size:11px;letter-spacing:1.1px;color:#8b9caf}.top-breadcrumb span{padding:0 12px;color:#c2d0d7}.top-breadcrumb strong{color:#18364f;letter-spacing:0;font-size:13px}.top-tools{display:flex;align-items:center;gap:12px;color:#7a8b99;font-size:12px}.connection-dot{width:8px;height:8px;background:#23c393;border-radius:50%;box-shadow:0 0 0 4px #e7fbf4}.vertical-divider{height:18px;width:1px;background:#dee8f0;margin:0 7px}.top-avatar{width:32px;height:32px;font-size:10px;margin-left:7px}.page-body{padding:32px 38px 28px;width:100%;max-width:1540px;margin:0 auto;flex:1}.footer{color:#9aabb8;padding:8px 38px 22px;font-size:11px}.footer span{padding:0 6px}.mobile-menu,.sidebar-dim{display:none}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.overline,.eyebrow{letter-spacing:2px;font-weight:800;font-size:10px;color:#0e91ae}.page-heading h1{font-size:28px;letter-spacing:-.85px;font-weight:830;margin:8px 0 6px;color:#112e49}.muted,.page-heading p{color:#7c8fa1;margin:0;line-height:1.55}.heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:10px;padding:11px 16px;font-weight:760;font-size:12px;line-height:1.25;transition:transform .18s,box-shadow .18s,background .18s;white-space:nowrap}.btn:not(:disabled):hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(105deg,#099fb6,#0586a5);box-shadow:0 5px 14px #1388aa23;color:white}.btn-primary:hover{box-shadow:0 8px 18px #1388aa40}.btn-dark{background:#0c314f;color:#fff}.btn-outline{color:#193e56;border-color:#dce8ef;background:#fff}.btn-outline:hover{background:#f4fafc}.btn-danger{color:#b33b48;border-color:#f1d5d8;background:#fff}.btn-sm{padding:8px 11px;font-size:11px;border-radius:8px}.btn-full{width:100%;justify-content:space-between}.btn-icon{font-size:15px;line-height:1}
.hero{border-radius:19px;min-height:198px;background:#082e49;overflow:hidden;position:relative;display:flex;align-items:center;margin:0 0 23px;box-shadow:0 12px 30px #0c456019}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#093756 0%,#075578 48%,#0b648355 74%,#072f4370 100%);z-index:1}.hero-photo{position:absolute;right:0;top:0;width:48%;height:100%;object-fit:cover;object-position:center 45%;opacity:.76}.hero:after{content:"";width:260px;height:260px;border:45px solid #6ce2e512;position:absolute;left:37%;top:-110px;border-radius:100%;z-index:1}.hero-copy{position:relative;z-index:2;color:#fff;padding:29px 33px;max-width:680px}.hero-tag{display:inline-block;letter-spacing:1.6px;font-size:10px;color:#92f0e8;font-weight:800;margin-bottom:8px}.hero h2{font-size:25px;letter-spacing:-.55px;line-height:1.17;margin:0 0 9px}.hero p{font-size:12px;color:#c4e5ed;margin:0 0 18px;max-width:430px;line-height:1.5}.hero .btn{background:#fff;color:#0a4763}.hero img.tiny-leaf{display:none}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat-card,.panel{background:#fff;border:1px solid #e5edf3;border-radius:15px;box-shadow:var(--shadow)}.stat-card{padding:18px 20px 16px;min-width:0}.stat-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.stat-label{font-size:12px;font-weight:650;color:#7e91a2}.stat-icon{height:36px;width:36px;border-radius:10px;background:#e7f8fb;color:#099ab4;display:grid;place-items:center;font-size:20px}.stat-icon.green{background:#e8f8ef;color:#21a56b}.stat-icon.amber{background:#fff5dd;color:#d7a22e}.stat-icon.purple{background:#f0edfc;color:#8a69c6}.stat-number{font-size:27px;font-weight:830;letter-spacing:-.9px;color:#142e47;margin-top:11px;white-space:nowrap}.stat-foot{color:#92a1af;font-size:11px;margin-top:7px}.stat-foot b{color:#2da888}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.9fr);gap:18px}.panel{padding:23px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px}.panel-head h3{font-size:15px;margin:0;color:#143650;font-weight:800;letter-spacing:-.2px}.panel-head p{font-size:11px;color:#8a9ba7;margin:5px 0 0}.text-link{border:0;background:none;color:#0794af;font-weight:800;font-size:11px;padding:5px}.chart{display:flex;gap:9px;align-items:flex-end;height:185px;border-bottom:1px solid #e7eef4;padding:12px 6px 0}.chart-col{display:flex;align-items:center;flex-direction:column;flex:1;height:100%;min-width:0;justify-content:flex-end}.chart-col strong{font-size:10px;color:#577589;margin-bottom:7px;white-space:nowrap}.chart-bar{border-radius:7px 7px 0 0;width:60%;max-width:45px;min-height:4px;background:linear-gradient(0deg,#0499b6,#64d9db);transition:.3s}.chart-col:last-child .chart-bar{background:linear-gradient(0deg,#006e8f,#0eabc7)}.chart-col span{position:absolute;transform:translateY(23px);font-size:10px;color:#8699a8;font-weight:650}.chart-label-foot{font-size:10px;color:#94a3b2;margin-top:34px}.activity-list{display:grid;gap:15px}.activity{display:flex;align-items:center;gap:11px;min-width:0}.activity-icon{width:37px;height:37px;border-radius:11px;background:#eaf8fa;color:#0b9ab8;display:grid;place-items:center;font-size:17px;flex:0 0 37px}.activity-icon.green{background:#eaf8f0;color:#279e71}.activity-body{min-width:0;flex:1}.activity-body strong{font-size:12px;color:#193449;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-body small{display:block;color:#9aabba;margin-top:3px;font-size:10px}.activity-price{font-weight:800;font-size:12px;color:#173a4f}.empty-state{text-align:center;padding:32px 10px;color:#9baabb}.empty-state strong{display:block;font-size:14px;color:#446073;margin-top:12px}.empty-state p{margin:7px auto;max-width:280px;line-height:1.5;font-size:12px}.empty-emoji{font-size:35px}
.toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:18px}.field{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#344d62;font-weight:700;min-width:0}.field input,.field select,.field textarea,.search-input{background:#fff;color:#173449;border:1px solid #dbe7ef;border-radius:9px;min-height:39px;outline:none;padding:9px 11px;font-weight:500;width:100%;transition:border-color .2s}.field input:focus,.field select:focus,.field textarea:focus,.search-input:focus{border-color:#08a3bf;box-shadow:0 0 0 3px #12b4ce15}.field textarea{resize:vertical;min-height:72px}.field input[readonly]{background:#f4f8fa}.filter-field{min-width:150px}.search-wrap{flex:1;min-width:180px}.search-wrap .field{width:100%}.table-panel{padding:0;overflow:hidden}.table-head{display:flex;align-items:center;justify-content:space-between;padding:18px 21px;border-bottom:1px solid #e6eff4;gap:12px}.table-head strong{color:#183950;font-size:14px}.table-head span{color:#8ea0ae;font-size:11px}.table-scroll{overflow-x:auto;width:100%}.data-table{border-collapse:collapse;text-align:left;width:100%;min-width:740px}.data-table thead{background:#f8fbfd}.data-table th{padding:13px 17px;color:#8296a5;font-size:10px;text-transform:uppercase;letter-spacing:.7px;white-space:nowrap}.data-table td{padding:15px 17px;border-top:1px solid #eef3f7;font-size:12px;color:#51697b;white-space:nowrap}.data-table td strong{color:#244159;font-weight:750}.data-table tbody tr:hover{background:#fbfdff}.table-action{background:none;border:none;color:#058ca8;font-weight:780;font-size:11px;white-space:nowrap;padding:5px}.badge-pill{display:inline-block;border-radius:30px;padding:5px 9px;font-size:10px;font-weight:800;letter-spacing:.2px;background:#e6f8ef;color:#1c9570}.badge-pill.gray{background:#eef2f6;color:#8799a9}.badge-pill.warn{background:#fff2db;color:#b78022}.badge-pill.info{background:#e7f6ff;color:#1d8db4}.badge-pill.red{background:#fdebed;color:#b94d59}.table-empty{padding:35px 0}.subnote{font-size:11px;color:#8fa0ad;margin:4px 0}
.tabs{display:flex;gap:8px;flex-wrap:wrap}.tab{padding:9px 14px;border-radius:9px;background:#fff;color:#637d8f;border:1px solid #e2eaf1;font-weight:720;font-size:12px}.tab.active{background:#093a57;color:#fff;border-color:#093a57}.info-strip{background:linear-gradient(90deg,#e7f8fa,#f1fbfc);border:1px solid #d5eff3;border-radius:12px;padding:14px 18px;display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:20px}.info-strip strong{color:#11647b;font-size:13px}.info-strip small{color:#5b8995;font-size:11px;display:block;margin-top:3px}
.modal{padding:0;border:none;border-radius:18px;box-shadow:0 28px 110px #061f3e55;max-width:min(92vw,670px);width:100%;max-height:90vh;color:#1d3c51;overflow:auto}.modal::backdrop{background:#05192a9c;backdrop-filter:blur(3px)}.modal-head{padding:23px 28px 19px;display:flex;justify-content:space-between;gap:12px;align-items:start;border-bottom:1px solid #e8eef3}.modal-head h2{font-size:19px;letter-spacing:-.45px;margin:5px 0 0}.modal-head p{font-size:11px;color:#899aaa;margin-top:6px;margin-bottom:0}.modal-close{font-size:23px;background:#f1f5f7;border:none;border-radius:10px;width:32px;height:32px;color:#738a9b}.modal-body{padding:24px 28px}.modal-footer{padding:16px 28px 23px;display:flex;gap:9px;justify-content:flex-end;border-top:1px solid #e8eef3}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid .span2{grid-column:span 2}.form-section{display:flex;justify-content:space-between;align-items:center;margin:17px 0 13px;color:#1a3b52;font-size:13px;font-weight:850}.form-section:first-child{margin-top:0}.pill{display:inline-block;color:#0989a4;background:#e9f9fb;border-radius:7px;padding:5px 9px;font-size:10px;font-weight:800}.summary-line{display:flex;justify-content:space-between;align-items:center;padding:11px 0;gap:10px;border-bottom:1px dashed #d9e7ed;font-size:12px;color:#678193}.summary-line:last-child{border:0}.summary-line strong{color:#16374c;font-size:14px}.payment-preview,.soft-panel{border-radius:12px;background:#f3f9fb;border:1px solid #e1f0f4;padding:15px 17px;margin-top:19px}.payment-preview .total{font-size:25px;color:#057e9d;letter-spacing:-.5px}.inline-choice{display:flex;align-items:center;gap:9px;font-size:12px;color:#516b7b;font-weight:600}.inline-choice input{accent-color:#069db4}.student-card{border:1px solid #dbe7ee;border-radius:13px;padding:17px;margin:0 0 12px;background:#fdfefe}.student-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.student-card-head strong{font-size:13px;color:#173f58}.remove-student{color:#bb5b62;border:0;background:none;font-size:11px;font-weight:750}.price-block{display:flex;gap:11px;align-items:center;background:#eaf8fa;border-radius:11px;padding:14px 15px;margin-bottom:15px}.price-block b{color:#0b7290}.price-block small{color:#67939e}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.info-item{background:#f6fafc;border-radius:9px;padding:10px 12px}.info-item small{display:block;color:#8b9fac;font-size:10px;margin-bottom:5px}.info-item strong{font-size:12px;color:#29485a;line-height:1.4}.payment-item{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #e7eef3;padding:12px 0}.payment-item small{display:block;color:#859dab;font-size:10px;margin-top:4px}.payment-item b{color:#0d7f9c}.modal-quiet{font-size:11px;color:#879ba9}.form-error{border:1px solid #f1bcc0;background:#fff0f1;padding:9px 12px;border-radius:8px;color:#a72f44;font-size:12px}
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.settings-section{margin:20px 0 12px;font-size:13px;font-weight:820;color:#153e58}.setting-explain{font-size:11px;line-height:1.6;color:#7f94a4;margin:4px 0 18px}.settings-panel{padding:23px}.settings-panel h3{font-size:16px;color:#1a4058;margin:0 0 5px}.settings-panel p{margin:0 0 18px;color:#8296a3;font-size:12px;line-height:1.6}.radio-panel{display:flex;gap:10px;padding:14px;border:1px solid #e0e9ef;border-radius:11px;margin:10px 0;align-items:center;cursor:pointer;color:#1c455c}.radio-panel input{accent-color:#0b9fba}.radio-panel span{font-size:12px}.radio-panel b{display:block;margin-bottom:3px}.card-note{padding:14px;border-radius:10px;border:1px solid #dbeff4;background:#f3fbfc;font-size:11px;line-height:1.7;color:#477889}.day-prices{margin-bottom:13px;padding:16px;background:#f9fbfd;border:1px solid #e4eef3;border-radius:10px}.day-prices h4{margin:0 0 13px;font-size:12px;color:#2b5065}.settings-footer{margin-top:18px;display:flex;justify-content:flex-end}.attendance-item{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 18px;border-bottom:1px solid #edf2f6}.attendance-item:last-child{border:0}.attendance-name{font-size:13px;font-weight:750;color:#2a4b5e}.attendance-sub{color:#94a4b1;font-size:11px;margin-top:5px}.attendance-buttons{display:flex;gap:8px}.attendance-buttons .btn{font-size:11px}.attendance-buttons .chosen{box-shadow:inset 0 0 0 1px #047b89;background:#078f9f;color:#fff}
.auth-screen{display:grid;grid-template-columns:50% 50%;min-height:100vh;background:white}.auth-side{background:#05273f url('/assets/piscina.webp') center/cover no-repeat;color:#fff;position:relative;display:flex;align-items:flex-start;justify-content:space-between;flex-direction:column;padding:38px 65px}.auth-side:before{content:"";position:absolute;inset:0;background:linear-gradient(155deg,#041e35db,#086080b8 65%,#053045ef)}.auth-side>*{position:relative}.auth-logo{width:255px;max-width:100%}.auth-message h1{font-size:44px;line-height:1.18;letter-spacing:-1.6px;max-width:550px;margin:18px 0}.auth-message em{color:#8be9e1;font-style:normal}.auth-message p{font-size:15px;color:#c8e2ea;line-height:1.65}.eyebrow.light{color:#78e1e5}.auth-side-foot{font-size:11px;color:#aad4dd}.auth-main{display:flex;align-items:center;justify-content:center;padding:32px}.auth-form{max-width:380px;width:100%}.mini-brand{font-size:10px;letter-spacing:1.5px;color:#116b84;font-weight:850}.sun-symbol{font-size:16px;color:#e5aa3a}.mini-divider{margin:0 5px;color:#9cafb9}.mini-divider:before{content:"/"}.auth-badge{display:inline-block;margin:46px 0 12px;border-radius:100px;background:#eaf8f9;padding:8px 11px;color:#05869f;font-size:10px;letter-spacing:1.1px;font-weight:800}.auth-form h2{font-size:30px;letter-spacing:-1px;color:#17344d;margin:6px 0}.auth-form .muted{font-size:13px;margin-bottom:29px}.auth-form .field{margin-bottom:18px;font-size:12px}.auth-form input{height:49px;font-size:13px}.auth-form .btn{margin-top:8px;height:48px;font-size:13px}.auth-tip{color:#8da1af;line-height:1.6;font-size:11px;margin-top:21px}
.toast{position:fixed;bottom:24px;right:28px;background:#123e51;color:#fff;box-shadow:0 18px 45px #11304442;border-radius:11px;padding:13px 18px;max-width:360px;z-index:100;font-size:12px;font-weight:650;opacity:0;transform:translateY(20px);pointer-events:none;transition:.24s}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:#ac4555}
@media(max-width:1160px){.sidebar{flex-basis:235px;width:235px}.page-body{padding:25px}.topbar{padding:0 26px}.stats-grid{gap:10px}.stat-card{padding:15px 14px}.stat-number{font-size:23px}.brand-lockup img{width:195px}}
@media(max-width:940px){.sidebar{position:fixed;left:0;top:0;bottom:0;transform:translateX(-100%);transition:transform .25s;width:260px;max-height:none}.sidebar.open{transform:translateX(0)}.sidebar-dim.show{display:block;position:fixed;inset:0;background:#051b2c85;z-index:14}.mobile-menu{display:block;border:0;background:#eef6f9;border-radius:9px;padding:9px 12px;color:#1e6e87;font-size:16px}.top-breadcrumb{margin-right:auto;margin-left:14px}.dashboard-grid{grid-template-columns:1fr 1fr}.page-body{padding:25px 22px}}
@media(max-width:700px){.topbar{padding:0 17px;height:62px;flex-basis:62px}.top-tools .system-status,.top-tools .vertical-divider,.top-tools #top-date{display:none}.page-body{padding:21px 16px}.page-heading{align-items:start;flex-direction:column;gap:14px}.page-heading h1{font-size:24px}.hero{min-height:190px}.hero-photo{width:70%;opacity:.45}.hero-copy{padding:23px}.hero h2{font-size:21px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-grid,.settings-grid{grid-template-columns:1fr}.footer{padding:10px 16px 20px}.auth-screen{display:block}.auth-side{min-height:240px;padding:20px}.auth-logo{width:180px}.auth-message h1{font-size:25px;margin:8px 0}.auth-message p{font-size:12px}.auth-side-foot{display:none}.auth-main{padding:30px 20px}.auth-badge{margin:10px 0}.modal-body{padding:18px}.modal-head{padding:18px}.modal-footer{padding:16px 18px}.form-grid{gap:11px}.form-grid .span2{grid-column:span 2}.toolbar{gap:9px}.filter-field{flex:1}.search-wrap{flex-basis:100%}.info-strip{align-items:start;flex-direction:column}.heading-actions{width:100%}.heading-actions .btn{flex:1}.stat-number{font-size:23px}.activity-list{gap:13px}}
@media(max-width:420px){.modal{max-width:97vw}.form-grid{grid-template-columns:1fr}.form-grid .span2{grid-column:span 1}.btn{padding:10px 11px}.stat-icon{width:30px;height:30px}.stat-card{padding:14px 12px}.stat-label{font-size:11px}.stat-number{font-size:20px}}
@media print{.sidebar,.topbar,.footer,.modal-close,.modal-footer,.toast,.page-body{display:none!important}.modal{display:block!important;position:static!important;max-height:none!important;width:100%!important;box-shadow:none!important;border:none!important}.modal::backdrop{display:none}.modal-head,.modal-body{padding:15px!important}#modal-content{color:black}body{background:white}}

.stats-three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:700px){.stats-three{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-three .stat-card:last-child:nth-child(odd){grid-column:span 2}}

.schedule-label{font-size:11px;font-weight:800;color:#568394;margin-top:3px}.schedule-fields{background:#f3f9fb;border:1px solid #e2edf2;border-radius:9px;padding:12px}


/* Versión 2 · Caja y matrículas de registro táctil, escritorio y teléfono */
.touch-page{max-width:1120px;margin:auto;padding-bottom:10px}
.touch-title-row{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:22px}
.touch-title-row h1{color:#11334c;font-size:clamp(24px,3vw,35px);line-height:1.15;letter-spacing:-.9px;margin:8px 0}
.touch-title-row p{color:#7490a1;margin:0;font-size:13px;line-height:1.45}
.touch-rate-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 20px;border-radius:15px;background:linear-gradient(110deg,#e6f6fa,#f4fbfd);border:1px solid #d5ecf2;margin:0 0 20px}
.touch-rate-bar span{display:block;color:#087d98;font-size:12px;letter-spacing:1px;font-weight:900}
.touch-rate-bar small{display:block;color:#698a9c;font-size:12px;margin-top:5px}
.ticket-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.ticket-counter{min-width:0;text-align:center;background:white;border:1px solid #e2ecf2;border-radius:24px;padding:26px 20px 31px;box-shadow:0 12px 32px rgba(27,75,99,.055)}
.counter-symbol{background:#e6f4fb;width:72px;height:72px;border-radius:25px;display:grid;place-items:center;font-size:38px;margin:0 auto 12px}
.child-counter .counter-symbol{background:#f0faf0}
.ticket-counter h2{font-size:22px;letter-spacing:-.4px;margin:0;color:#173c54}
.ticket-counter p{font-size:13px;color:#7c96a6;margin:5px 0 12px}
.counter-price{color:#078ba9;font-size:19px;display:block;margin-bottom:24px}
.counter-price small{font-weight:500;font-size:12px;color:#91a2ae}
.counter-controls{display:flex;align-items:center;justify-content:center;gap:12px;max-width:360px;margin:auto}
.counter-step{border:2px solid #cbdfe8;color:#176784;background:#f3fafd;width:68px;height:68px;flex:0 0 68px;border-radius:20px;font-weight:650;font-size:40px;line-height:1;touch-action:manipulation;user-select:none}
.counter-step.plus{background:#0a9eb6;color:white;border-color:#0a9eb6;box-shadow:0 8px 16px #0598a52b}
.counter-step:active,.touch-save-btn:active{transform:scale(.96)}
.counter-value{font-size:43px;font-weight:900;letter-spacing:-1.5px;border-radius:16px;background:#f7fafc;min-width:68px;flex:1;padding:9px 5px;color:#1e3c4d;font-variant-numeric:tabular-nums}
.touch-payment-panel,.touch-panel{background:white;border:1px solid #e2ebf1;box-shadow:var(--shadow);padding:22px;border-radius:18px;margin-top:18px}
.touch-section-header{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:14px}
.touch-section-header h3{font-size:17px;color:#12364e;margin:0}
.touch-section-header span{font-size:12px;color:#79909e}
.touch-payment-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.touch-payment{border:2px solid #e1ebf1;background:#fafdff;border-radius:13px;min-height:56px;white-space:normal;font-weight:800;color:#415d72;font-size:13px;padding:8px 4px;touch-action:manipulation}
.touch-payment.selected{border-color:#089aaf;color:#066c82;background:#eaf8fb;box-shadow:0 0 0 2px #1695b51a}
.touch-checkout-bar{margin-top:18px;padding:20px 22px 15px;background:#fff;border:1px solid #dfeaf1;border-radius:20px;box-shadow:0 14px 35px #1747630d}
.touch-total{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:16px}
.touch-total span{color:#667f90;font-size:16px}
.touch-total strong{font-size:clamp(28px,4vw,40px);letter-spacing:-1px;color:#11394e;white-space:nowrap}
.touch-save-btn{width:100%;min-height:66px;background:#18a666;color:white;border:0;border-radius:14px;font-size:19px;font-weight:900;letter-spacing:.2px;box-shadow:0 10px 20px #08a06b25;touch-action:manipulation}
.touch-save-btn:disabled{background:#91b7ab;box-shadow:none;opacity:.65}
.touch-under-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}
.touch-under-actions button{border:0;background:transparent;color:#578394;padding:9px 0;font-size:12px;font-weight:700}
.touch-explain,.touch-hint{font-size:12px;color:#8198a6;line-height:1.6;margin:13px 4px}
.quick-sale-feedback,.quick-enroll-done{margin-top:16px;padding:14px 17px;background:#e9f9ee;border:1px solid #c7ebd1;color:#1c774a;border-radius:13px;display:flex;align-items:center;gap:10px}
.quick-sale-feedback .success-check{font-size:25px}
.quick-sale-feedback div{flex:1;display:grid;gap:3px}
.quick-sale-feedback small{font-size:11px}
.quick-enroll-done{justify-content:space-between;flex-wrap:wrap;margin-bottom:14px}
.quick-enroll-done strong{font-size:14px}
.quick-enroll-done span{font-size:12px}
.group-select-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.group-select{display:grid;justify-items:start;text-align:left;gap:7px;border:2px solid #e0ebf0;background:#fafcff;border-radius:17px;padding:17px;min-height:122px;color:#244f63}
.group-select.selected{background:#e8f9fb;border-color:#0ba5b8}
.group-select>span{font-size:27px}
.group-select strong{font-size:16px}
.group-select small{font-size:12px;line-height:1.4;color:#6d899a}
.touch-student{box-shadow:none;padding:19px;border-radius:16px}
.student-icon{font-size:17px;margin-right:6px}
.quick-student-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.quick-student-grid .touch-span-all{grid-column:1 / -1}
.touch-enrollment .field input,.touch-enrollment .field select{min-height:48px;font-size:16px}
.touch-enrollment .field{font-size:12px}
.touch-schedule{margin-top:15px;border:1px solid #dceaf0;background:#f4fafc;border-radius:12px;padding:12px}
.touch-schedule summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none}
.touch-schedule summary::-webkit-details-marker,.advanced-enroll summary::-webkit-details-marker{display:none}
.touch-schedule summary span{font-size:12px;font-weight:800;color:#245469}
.touch-schedule summary small{display:block;margin:5px 0 0;color:#6c8f9e;font-size:11px;line-height:1.45;font-weight:500}
.touch-schedule summary b{font-size:11px;color:#0a91ab;white-space:nowrap}
.quick-slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding-top:13px}
.quick-slot-grid .field{min-width:0}.quick-slot-grid select{font-size:12px!important;padding:7px}
.touch-add-student{border:2px dashed #0c9caf;color:#087b94;background:#ecfbfd;border-radius:14px;min-height:52px;width:100%;font-weight:800;font-size:15px}
.touch-add-student small{font-weight:550;font-size:12px}
.pay-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px}
.pay-type{border:2px solid #dfeaf0;border-radius:13px;padding:16px 12px;display:flex;gap:10px;align-items:center;cursor:pointer}
.pay-type:has(input:checked){background:#e7f9fa;border-color:#05a1b3}
.pay-type input{accent-color:#079cb2;width:20px;height:20px}
.pay-type span{display:grid;gap:4px}.pay-type b{font-size:14px;color:#204a60}.pay-type small{font-size:11px;color:#8498a5}
.method-title{margin:4px 0 12px;font-size:13px;color:#3a5a6a}
.advanced-enroll{margin-top:13px;border-top:1px solid #e0eaf0;padding-top:12px}
.advanced-enroll summary{cursor:pointer;color:#668797;font-size:12px;font-weight:700}
.touch-enroll-bottom{display:flex;gap:16px;align-items:center;background:#fff;border:1px solid #dce9ed;border-radius:17px;padding:20px 24px;box-shadow:0 12px 30px #1b496110;margin:18px 0}
.touch-enroll-bottom>div{display:grid;gap:3px;flex:1}
.touch-enroll-bottom>div span{font-size:12px;color:#678a9a}
.touch-enroll-bottom>div strong{font-size:31px;color:#107b95;letter-spacing:-.6px}
.touch-enroll-bottom>div small{font-size:11px;color:#8a9fac}
.touch-enroll-bottom .touch-save-btn{width:auto;min-width:270px;padding:0 22px}
.mobile-shortcuts{display:none}
@media(max-width:940px){.mobile-shortcuts{display:grid;grid-template-columns:repeat(4,1fr);align-items:stretch;position:fixed;bottom:0;left:0;right:0;z-index:12;min-height:65px;padding-bottom:env(safe-area-inset-bottom,0px);background:#fff;border-top:1px solid #dbe7ee;box-shadow:0 -6px 25px #082b3917}.mobile-shortcut{display:grid;justify-items:center;align-content:center;gap:4px;color:#778d9d;background:transparent;border:0;font-size:11px;font-weight:750;padding:9px 2px}.mobile-shortcut span{font-size:22px}.mobile-shortcut.active{color:#078da9}.main-shell{padding-bottom:72px}.touch-page{padding-bottom:10px}}
@media(max-width:700px){.touch-title-row{align-items:start;margin-bottom:16px}.touch-title-row h1{font-size:25px}.touch-title-row p{font-size:12px}.touch-title-row .btn{font-size:11px}.touch-rate-bar{padding:12px 14px}.touch-rate-bar small{font-size:11px}.ticket-grid{gap:10px}.ticket-counter{border-radius:17px;padding:20px 9px 21px}.counter-symbol{width:53px;height:53px;border-radius:16px;font-size:29px}.ticket-counter h2{font-size:18px}.ticket-counter p{font-size:11px}.counter-price{font-size:17px;margin-bottom:17px}.counter-price small{display:block;font-size:10px}.counter-controls{gap:6px}.counter-step{width:50px;height:58px;flex-basis:50px;border-radius:14px;font-size:32px}.counter-value{font-size:31px;min-width:32px;padding:11px 2px}.touch-payment-panel,.touch-panel{padding:15px;margin-top:12px;border-radius:16px}.touch-payment-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.touch-payment{min-height:49px}.touch-total strong{font-size:31px}.touch-checkout-bar{padding:15px;margin-top:12px}.touch-total span{font-size:13px}.touch-save-btn{font-size:17px;min-height:61px}.touch-section-header h3{font-size:15px}.quick-slot-grid{grid-template-columns:1fr}.touch-enroll-bottom{flex-wrap:wrap;padding:16px}.touch-enroll-bottom .touch-save-btn{width:100%;min-width:0}.quick-sale-feedback{flex-wrap:wrap}.quick-sale-feedback .text-link{margin-left:auto}.group-select{padding:13px;min-height:118px}.group-select strong{font-size:14px}.pay-type{padding:11px 9px}.pay-type b{font-size:12px}}
@media(max-width:385px){.counter-step{width:42px;flex-basis:42px;height:53px;font-size:27px}.counter-value{font-size:28px}.touch-under-actions{flex-direction:column;align-items:stretch}.group-select small{font-size:11px}.touch-title-row .btn{padding:8px}.quick-student-grid{grid-template-columns:1fr}.quick-student-grid .touch-span-all{grid-column:auto}}
@media print{.mobile-shortcuts{display:none!important}}

/* Botón de cobro siempre al alcance del pulgar en móvil */
@media(max-width:700px){
  .touch-checkout{padding-bottom:200px}
  .touch-checkout-bar{position:fixed;z-index:11;bottom:calc(66px + env(safe-area-inset-bottom,0px));left:0;right:0;margin:0;border-radius:15px 15px 0 0;padding:11px 16px 12px;box-shadow:0 -8px 28px #0a40502b}
  .touch-checkout-bar .touch-total{margin-bottom:7px}
  .touch-checkout-bar .touch-total strong{font-size:27px}
  .touch-checkout-bar .touch-save-btn{min-height:50px;font-size:16px}
  .touch-under-actions{margin-top:17px}
}

/* Usuarios, permisos y auditoría: accesible en laptop y celular */
.nav-link[hidden],.mobile-shortcut[hidden]{display:none!important}
.user-grid {align-items:end;grid-template-columns:repeat(3,minmax(160px,1fr)) auto}
.user-create-btn{min-height:48px;white-space:nowrap}
.user-row-actions{display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:960px){.user-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.user-grid{grid-template-columns:1fr}.user-create-btn{width:100%}}

/* V4.2 · Transiciones inmediatas en todas las secciones. */
.loading-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:28px}
.loading-block{min-height:155px;border:1px solid #e0ebf1;border-radius:17px;background:linear-gradient(100deg,#edf4f7 5%,#fff 40%,#edf4f7 75%);background-size:220% 100%;animation:poncianas-loading 1.4s ease-in-out infinite}
.loading-block.loading-wide{grid-column:1/-1;min-height:190px}
@keyframes poncianas-loading{from{background-position:100% 0}to{background-position:-100% 0}}
@media(max-width:700px){.loading-panels{grid-template-columns:1fr;gap:12px}.loading-block{min-height:100px}.loading-block.loading-wide{min-height:140px}}
@media(prefers-reduced-motion:reduce){.loading-block{animation:none}}
