:root{--font-display: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;--font-display-weight: 700;--paper: #F2F2F7;--surface: #FFFFFF;--surface-sunken: #F2F2F7;--border: #E5E5EA;--border-strong: #C7C7CC;--ink: #1C1C1E;--ink-raised: #0B1828;--ink-border: #C7C7CC;--on-ink: #FFFFFF;--on-ink-muted: rgba(255,255,255,.6);--text: #1C1C1E;--text-muted: #6E6E73;--text-faint: #6E6E73;--ball-blue: #8FB9D9;--enfut-navy: #0B1828;--enfut-sky: #5B9BCB;--enfut-ice: #E3EEF7;--brand: var(--enfut-navy);--brand-strong: var(--brand);--brand-tint: var(--enfut-ice);--on-brand: #FFFFFF;--success: #2E7D32;--success-tint: color-mix(in srgb, #34C759 12%, white);--warning: #B45000;--warning-tint: color-mix(in srgb, #FF9500 12%, white);--error: #C62828;--error-tint: color-mix(in srgb, #FF3B30 12%, white);--alert: var(--warning);--alert-tint: var(--warning-tint);--state-pendiente: var(--warning);--state-pendiente-tint: var(--warning-tint);--state-recibido: var(--warning);--state-recibido-tint: var(--warning-tint);--state-identificado: var(--brand);--state-identificado-tint: var(--brand-tint);--state-verificado: var(--success);--state-verificado-tint: var(--success-tint);--state-conciliado: var(--success);--state-conciliado-tint: var(--success-tint);--state-revision: var(--error);--state-revision-tint: var(--error-tint);--radius-sm: 8px;--radius-md: 10px;--radius-lg: 18px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--fs-1: 2.75rem;--fs-2: 2rem;--fs-3: 1.375rem;--fs-4: 1rem;--fs-5: .8125rem;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-drawer: cubic-bezier(.32, .72, 0, 1);--dur-press: .1s;--dur-short: .12s;--dur-med: .22s;--dur-long: .28s;--press-scale: .97;--motion-properties: transform, opacity;--glass-ink: rgba(255, 255, 255, .88);--glass-light: rgba(255, 255, 255, .82);--blur: 16px;font-family:var(--font-body);font-size:16px;line-height:1.5;color-scheme:light;color:var(--text);background:var(--paper);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;font-optical-sizing:auto}@media(prefers-reduced-motion:reduce){:root{--dur-press: 0ms;--dur-short: 0ms;--dur-med: 0ms;--dur-long: 0ms;--press-scale: 1}}*{box-sizing:border-box}body{margin:0;font-size:var(--fs-4);line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary,label{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 18px;border:1px solid transparent;border-radius:var(--radius-md);background:var(--brand);color:var(--on-brand);font-weight:700;font-size:var(--fs-4);line-height:1.25;cursor:pointer;text-decoration:none}button:disabled{opacity:.55;cursor:default}button[aria-busy=true]{cursor:wait}.secondary{background:var(--surface);border-color:var(--border-strong);color:var(--ink)}.quiet{background:transparent;color:var(--ink);padding-inline:12px}a{color:var(--brand-strong)}:focus-visible{outline:3px solid var(--enfut-sky);outline-offset:3px}h1,h2,h3,.hero,.time{font-family:var(--font-display);font-weight:var(--font-display-weight);font-optical-sizing:auto;margin:0;text-wrap:balance}.hero{font-size:var(--fs-1);line-height:1;letter-spacing:-.01em}h1{font-size:var(--fs-2);line-height:1.05;letter-spacing:-.01em;margin-bottom:var(--space-4)}h2{font-size:var(--fs-3);line-height:1.15;letter-spacing:0;margin:var(--space-5) 0 var(--space-3)}h3{font-size:var(--fs-3);line-height:1.15}p{margin:var(--space-2) 0;text-wrap:pretty}small,.muted{color:var(--text-muted)}small{display:block;font-size:var(--fs-5);line-height:1.45;letter-spacing:.005em}.hero{margin-bottom:var(--space-5)}.login{min-height:100dvh;max-width:420px;margin:0 auto;padding:max(32px,6vh) 24px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-6)}.login h1,.login p{margin:0}.login-top,.login-bottom{display:flex;flex-direction:column;gap:var(--space-4)}.login-identity{display:flex;flex-direction:column;gap:var(--space-3)}.login-identity>.brand-mark{align-self:center}.login-identity .hero{margin:var(--space-2) 0 0}.auth-choices{display:flex;flex-direction:column;gap:var(--space-3)}.auth-choices form>button{width:100%}.login-divider{display:flex;align-items:center;gap:var(--space-3);color:var(--text-muted);font-size:var(--fs-5)}.login-divider:before,.login-divider:after{content:"";height:1px;flex:1;background:var(--border)}.login-confirmation{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--enfut-ice);color:var(--enfut-navy);border-radius:var(--radius-sm)}.login-confirmation p{display:flex;flex-direction:column;gap:var(--space-1);margin:0}.login-confirmation span{color:var(--text-muted)}.brand-mark{--size:40px;display:inline-block;flex:none;width:var(--size);height:var(--size);border-radius:50%;overflow:hidden;background:var(--surface)}.brand-mark picture{display:contents}.brand-mark img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.015)}.login .brand-mark{--size:72px}.google-button{min-height:48px;display:flex;justify-content:center;align-items:center;gap:12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);text-decoration:none;font-weight:600;padding:12px}.demo-banner{display:flex;gap:10px;align-items:baseline;padding:12px 14px;border:1px solid var(--warning);background:var(--warning-tint);color:var(--text);border-radius:var(--radius-md);font-size:var(--fs-5)}.demo-banner strong{color:var(--warning)}.demo-banner span{color:var(--text-muted)}.demo-login{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border)}.demo-login p{margin:0}.demo-banner-shell{border-radius:0;border-width:0 0 1px;padding-inline:20px}@media(min-width:641px){.login{justify-content:center}}.login-auth{position:relative;max-width:none;padding:0;gap:0;isolation:isolate;overflow:hidden;color:var(--enfut-navy)}.login-auth:before{content:"";position:absolute;z-index:0;top:16px;right:12px;bottom:16px;left:12px;border:1px solid color-mix(in srgb,var(--ball-blue) 38%,transparent);border-radius:24px;pointer-events:none}.login-auth>.login-top,.login-auth>.login-pitch,.login-auth>.login-bottom{position:relative;z-index:1}.login-auth .login-top{width:100%;max-width:468px;margin:0 auto;padding:max(32px,6vh) 24px var(--space-7)}.login-auth .login-identity{text-align:center;align-items:center}.login-auth .hero{color:var(--enfut-navy);letter-spacing:-.02em}.login-auth .login-identity>p:not(.muted){font-size:1.0625rem;line-height:1.45;color:color-mix(in srgb,var(--enfut-navy) 82%,white)}.login-pitch{position:relative;isolation:isolate;width:100%;height:112px;flex:0 0 112px;overflow:hidden;background:color-mix(in srgb,var(--enfut-ice) 18%,transparent)}.login-pitch:before{content:"";position:absolute;top:50%;left:clamp(12px,3.5vw,48px);right:clamp(12px,3.5vw,48px);height:1px;background:color-mix(in srgb,var(--ball-blue) 70%,transparent);transform:translateY(-50%)}.login-pitch span{position:absolute;top:50%;left:50%;width:88px;height:88px;border:1px solid color-mix(in srgb,var(--ball-blue) 64%,transparent);border-radius:50%;transform:translate(-50%,-50%)}.login-pitch span:before{content:"";position:absolute;top:50%;left:50%;width:7px;height:7px;border-radius:50%;background:var(--enfut-navy);transform:translate(-50%,-50%)}.login-auth .login-bottom{align-self:center;width:min(100%,420px);max-width:420px;margin-inline:auto;padding:0 24px calc(var(--space-5) + env(safe-area-inset-bottom));background:transparent;animation:login-panel .26s var(--ease-drawer)}.login-auth .auth-choices,.login-auth .demo-login{position:relative;width:100%}.login-auth .google-button,.login-auth form{width:100%}.login-auth :focus-visible{outline-color:var(--enfut-sky)}.login-auth .error a{color:inherit;font-weight:600}@media(max-height:760px){.login-pitch{height:76px;flex-basis:76px}.login-pitch span{width:58px;height:58px}.login-pitch span:before{width:5px;height:5px}}.login-auth input{min-height:48px;border-color:color-mix(in srgb,var(--enfut-navy) 22%,white)}.login-auth input:focus{border-color:var(--enfut-navy)}.login-auth .field{margin:0 0 var(--space-3);color:var(--enfut-navy)}.login-auth .auth-choices form>button:not(.secondary){min-height:48px;border-radius:var(--radius-sm);background:var(--enfut-navy);color:var(--surface)}.login-auth .google-button{color:var(--enfut-navy);border-color:color-mix(in srgb,var(--enfut-navy) 22%,white);transition:transform var(--dur-press) var(--ease-out)}.login-auth .google-button:active{transform:scale(var(--press-scale));background:var(--surface-sunken)}.login-auth .login-confirmation .secondary{border-color:color-mix(in srgb,var(--enfut-navy) 22%,white);color:var(--enfut-navy);border-radius:var(--radius-sm)}.login-auth .login-confirmation,.login-auth .error{animation:login-state .22s var(--ease-out)}@keyframes login-panel{0%{opacity:0;transform:translateY(16px)}}@keyframes login-state{0%{opacity:0;transform:translateY(6px);filter:blur(2px)}}@media(hover:hover)and (pointer:fine){.login-auth .google-button:hover{background:var(--surface-sunken);color:var(--enfut-navy)}}@media(prefers-reduced-motion:reduce){.login-auth .login-bottom,.login-auth .login-confirmation,.login-auth .error{animation:fade-in .15s ease}}@media(min-width:641px){.login-auth{justify-content:center;padding:var(--space-7) 24px}.login-auth:before{top:32px;right:48px;bottom:32px;left:48px;border-radius:28px}.login-auth .login-top{max-width:420px;padding:0 0 var(--space-7)}}.landing{width:min(100%,560px);min-height:100dvh;margin:0 auto;padding:max(40px,8vh) 24px 40px;display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-6)}.landing-brand .brand-mark{--size:72px}.landing-brand p{margin:var(--space-4) 0 var(--space-1);color:var(--text-muted);font-size:var(--fs-5);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.landing-brand h1{margin:0;font-size:clamp(4.5rem,24vw,8rem);line-height:.82;letter-spacing:-.025em}.landing-schedule{border-top:2px solid var(--ink)}.landing-schedule h2{margin:var(--space-4) 0 var(--space-2);font-size:var(--fs-4);font-family:var(--font-body);letter-spacing:0}.landing-schedule article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:var(--space-4);padding:var(--space-4) 0;border-top:1px solid var(--border)}.landing-schedule h3,.landing-schedule p{margin:0}.landing-schedule p{text-align:right;color:var(--text-muted);font-size:var(--fs-5)}.landing-schedule strong{color:var(--text);font-weight:700}.topbar{position:sticky;top:0;z-index:6;display:flex;align-items:center;gap:var(--space-3);min-height:56px;padding:calc(6px + env(safe-area-inset-top)) 20px 6px;background:var(--surface);color:var(--ink)}.topbar>a{display:inline-flex;align-items:center;min-height:44px}.topbar>span{flex:1;min-width:0;font-size:var(--fs-5);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .quiet{color:var(--ink)}.notification-bell{position:relative;display:grid!important;place-items:center;width:44px;min-height:44px!important;color:var(--ink)}.notification-bell svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.notification-bell span{position:absolute;top:8px;right:7px;width:8px;height:8px;border:2px solid var(--surface);border-radius:50%;background:var(--ball-blue)}.content{max-width:1000px;margin:0 auto;padding:var(--space-5) 20px calc(88px + env(safe-area-inset-bottom))}.shell:not(.admin-shell) .content{max-width:560px}.shell nav{position:fixed;z-index:5;inset:auto 0 0;display:flex;padding:0 6px env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border)}.shell nav a{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;padding:6px 2px;color:var(--text-muted);font-size:var(--fs-5);font-weight:600;line-height:1.2;text-decoration:none}.shell nav svg{width:24px;height:24px;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.shell nav a.active{color:var(--brand);font-weight:700}.shell:not(.admin-shell) nav{width:min(100%,520px);margin-inline:auto;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.topbar :focus-visible,.shell nav :focus-visible{outline-color:var(--ball-blue)}.shell nav :focus-visible{outline-color:var(--enfut-sky);outline-offset:-3px}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.topbar{background:var(--glass-ink)}.shell nav{background:var(--glass-light)}.topbar,.shell nav{-webkit-backdrop-filter:blur(var(--blur)) saturate(160%);backdrop-filter:blur(var(--blur)) saturate(160%)}}@media(prefers-reduced-transparency:reduce){.topbar{background:var(--surface)}.shell nav{background:var(--surface)}.topbar,.shell nav{-webkit-backdrop-filter:none;backdrop-filter:none}}.state-line{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.state-line h1{margin:0}.glyph{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--brand-tint);color:var(--brand-strong)}.glyph[data-tone=success]{background:var(--success-tint);color:var(--success)}.glyph[data-tone=warning]{background:var(--warning-tint);color:var(--warning)}.glyph[data-tone=error]{background:var(--error-tint);color:var(--error)}.glyph svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.badge{display:inline-flex;align-items:center;background:var(--brand-tint);color:var(--brand-strong);font-size:var(--fs-5);font-weight:700;line-height:1.2;padding:4px 10px;border-radius:var(--radius-sm);text-align:center;white-space:nowrap}.badge.neutral{background:var(--surface-sunken);color:var(--text)}.badge[data-status=pendiente]{background:var(--warning-tint);color:var(--warning)}.badge[data-status=confirmado]{background:var(--success-tint);color:var(--success)}.badge[data-status=rechazado]{background:var(--error-tint);color:var(--error)}.next{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-5);background:var(--surface);border-radius:var(--radius-lg)}.next-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:28px}.next-top small{font-weight:600}.time{font-size:var(--fs-1);line-height:1;letter-spacing:-.005em;margin-top:var(--space-2)}.time span{font-family:var(--font-body);font-size:var(--fs-5);font-weight:600;letter-spacing:0;color:var(--text-muted)}.next h3{margin-top:var(--space-2)}.next .muted{margin:0}.stack-actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-2);margin-top:var(--space-4)}.credits{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-5) 0 var(--space-2);font-size:var(--fs-5);line-height:1.45;color:var(--text-muted)}.credits .count{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:var(--radius-md);background:var(--brand-tint);color:var(--brand-strong);font-family:var(--font-display);font-size:var(--fs-3);line-height:1}.text-link{display:inline-flex;min-height:44px;align-items:center;font-weight:700}.day h2{margin:var(--space-5) 0 var(--space-2)}.panel{list-style:none;margin:0;padding:0;background:var(--surface);border-radius:var(--radius-lg);overflow:hidden}.slot{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4)}.slot+.slot{border-top:1px solid var(--border)}.slot-main{flex:1 1 0;min-width:0}.slot-main p{margin:2px 0 0;font-size:var(--fs-5);color:var(--text-muted)}.slot .time{font-size:var(--fs-3);margin:0;color:var(--text)}.slot-actions .button,.slot-actions button{padding:8px 12px}.slot-actions{display:flex;flex-direction:column;align-items:stretch;gap:6px;flex:none;width:9rem}.slot-actions .badge{align-self:flex-end}.list-row{display:flex;justify-content:space-between;gap:var(--space-4);align-items:center;padding:14px 0;border-bottom:1px solid var(--border)}.list-row p{font-size:var(--fs-5);margin:2px 0}.list-row strong{font-size:var(--fs-4)}.page-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-4)}.page-head h1{margin:0}.page-head small{margin-top:2px}.session-date-picker{margin:0;min-width:190px}.week-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin:0 -16px var(--space-1);padding:0 16px;color:var(--text-muted);font-size:var(--fs-5)}.week-nav strong{color:var(--text);font-size:var(--fs-5);font-weight:700}.week-nav .quiet{padding:6px 0}.session-card header .secondary{white-space:nowrap}.session-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.session-title{display:block;padding:0;border:0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}.session-title:hover h2{text-decoration:underline;text-underline-offset:3px}.payment-breakdown{margin:var(--space-4) 0 0;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.payment-breakdown h3{margin:0 0 var(--space-2);font-size:var(--fs-4)}.payment-breakdown ul{list-style:none;margin:0;padding:0}.payment-breakdown li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:9px 0;border-top:1px solid var(--border)}.payment-breakdown li:first-child{border-top:0}.payment-breakdown .person-name small{display:block;margin-top:2px;color:var(--text-muted);font-size:var(--fs-5)}.payment-person-meta{display:flex;align-items:center;gap:6px;flex-shrink:0}.receipt-thumb{width:34px;height:34px;border-radius:4px;object-fit:cover;border:1px solid var(--border)}.person-name{display:block;padding:0;border:0;background:transparent;color:inherit;text-align:left;font:inherit}.person-name:hover{text-decoration:underline;text-underline-offset:3px}.manual-student-list{display:flex;flex-direction:column;gap:8px;max-height:45vh;overflow-y:auto}.manual-student-list .student-row{width:100%;text-align:left}.section-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap}.section-header h2{margin:0 0 var(--space-1)}.section-header p{margin:0;font-size:var(--fs-5)}.section-header>span{font-size:var(--fs-5);color:var(--text-muted)}.venue-section{margin:0 0 var(--space-6)}.actions{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center}.empty{padding:var(--space-5) 0;color:var(--text-muted)}.error{background:var(--state-revision-tint);color:var(--error);padding:12px 14px;border-radius:var(--radius-sm);overflow-wrap:anywhere}.notice{background:var(--brand-tint);color:var(--brand-strong);padding:12px 14px;border-radius:var(--radius-sm)}.package-summary{margin:0 0 var(--space-5);padding:var(--space-4);background:var(--surface);border-radius:var(--radius-lg)}.package-summary>p:first-child{margin-top:0}.package-progress{height:8px;margin:var(--space-2) 0;background:var(--surface-sunken);border-radius:var(--radius-sm);overflow:hidden}.package-progress span{display:block;height:100%;background:var(--enfut-sky)}.package-alert{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.package-alert p{margin:0;color:var(--warning);font-size:var(--fs-5);font-weight:600}.package-alert button{flex:none}.checkin-package{font-size:var(--fs-3)}.field{display:flex;flex-direction:column;gap:6px;margin:var(--space-3) 0;font-size:var(--fs-5);font-weight:600}input,select,textarea{width:100%;min-height:46px;padding:10px 12px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);font-size:var(--fs-4)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6.5 9.5 12 15l5.5-5.5' stroke='%236E6E73' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:19px}input[type=file]{min-height:auto;padding:0;background:none;border:0}input[type=file]::file-selector-button,input[type=file]::-webkit-file-upload-button{min-height:44px;margin-right:10px;padding:10px 18px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);color:var(--ink);font:inherit;font-weight:700;line-height:1.25;cursor:pointer;transition:transform .16s ease-out}input[type=file]::file-selector-button:active,input[type=file]::-webkit-file-upload-button:active{transform:scale(.97)}textarea{min-height:80px;resize:vertical}.choices{border:0;margin:0 0 var(--space-4);padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.choice{display:flex;align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer}.choice input{width:20px;min-height:0;height:20px;flex:none;margin:0;padding:0;accent-color:var(--brand)}.choice:has(input:checked){border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.choice span{display:block;line-height:1.35}.choice small{margin-top:2px}.settings-form{max-width:540px}.filters{display:flex;gap:var(--space-3);align-items:end;flex-wrap:wrap;margin-bottom:var(--space-4)}.filters .field{flex:1;min-width:140px;margin:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:var(--fs-5)}th,td{padding:10px;border-bottom:1px solid var(--border)}th{background:var(--surface-sunken)}summary{cursor:pointer;min-height:44px;padding:12px 0}.other-sessions>summary{display:flex;align-items:center;gap:10px;list-style:none}.other-sessions>summary::-webkit-details-marker{display:none}.other-sessions>summary:before{content:"";width:8px;height:8px;flex:none;border-right:1.75px solid currentColor;border-bottom:1.75px solid currentColor;transform:rotate(-45deg);transition:transform .18s ease-out}.other-sessions[open]>summary:before{transform:rotate(45deg)}form{min-width:0}.sheet{position:fixed;inset:auto 0 0;margin:0 auto;width:min(100%,560px);max-width:none;max-height:90dvh;overflow:auto;overscroll-behavior:contain;border:0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:0;background:var(--paper);color:var(--text)}.sheet::backdrop{background:color-mix(in srgb,var(--ink) 50%,transparent);opacity:1;animation:fade-in var(--dur-med) var(--ease-out);transition:opacity var(--dur-short) var(--ease-out)}.sheet[data-closing=true]::backdrop{opacity:0}.sheet-head{padding:8px 24px 0;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.sheet-head:active{cursor:grabbing}.sheet-grip{display:block;width:36px;height:4px;margin:0 auto 12px;border-radius:2px;background:var(--border-strong);opacity:.5}.sheet-content{padding:0 24px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.sheet h2{margin:0 0 var(--space-2)}.sheet form>button{width:100%}button.student-row{width:100%;background:transparent;color:var(--text);border:0;border-bottom:1px solid var(--border);border-radius:0;display:flex;justify-content:space-between;text-align:left;padding:12px 0;gap:var(--space-4)}.student-row span:last-child{text-align:right;font-size:var(--fs-5)}.student-row small{font-weight:400;overflow-wrap:anywhere}.student-detail-tabs{margin:var(--space-4) 0}.student-detail-section{max-width:680px}.student-detail-section>h2{margin-top:var(--space-5)}.checkin-info{margin:0 0 var(--space-4);color:var(--text-muted)}.admin-shell .content{padding-top:var(--space-4)}.admin-shell .list-row{padding:10px 0}.admin-shell .venue-section{margin-bottom:var(--space-5)}.admin-shell h2{margin:var(--space-4) 0 var(--space-2)}.admin-shell .section-header h2{margin:0 0 2px}@media(min-width:900px){.admin-shell{padding-left:208px}.admin-shell .topbar{margin-left:-208px;padding-left:24px}.admin-shell nav{top:calc(56px + env(safe-area-inset-top));right:auto;width:208px;flex-direction:column;justify-content:flex-start;gap:2px;padding:20px 12px;border-top:0;border-right:1px solid var(--border)}.admin-shell nav a{flex:none;flex-direction:row;justify-content:flex-start;gap:12px;min-height:44px;padding:8px 12px;border-radius:var(--radius-md);font-size:var(--fs-4)}.admin-shell nav a.active:after{content:"";margin-left:auto;width:6px;height:6px;border-radius:50%;background:var(--enfut-sky)}.admin-shell .content{padding-bottom:48px}.content{padding-top:var(--space-6)}}@media(max-width:480px){.topbar,.content{padding-inline:16px}.next{padding:var(--space-4) var(--space-4) var(--space-5)}.list-row{flex-wrap:wrap}.package-alert{align-items:stretch;flex-direction:column}.payments-counters .counter strong{min-width:0;max-width:100%;font-size:clamp(1.15rem,7vw,var(--fs-2));white-space:normal;overflow-wrap:anywhere}}.segmented{display:flex;border:1px solid var(--border-strong);border-radius:var(--radius-md);overflow-x:auto}.segmented button{flex:1;border-radius:0;background:var(--surface);color:var(--text);padding:8px;white-space:nowrap}.segmented button[aria-pressed=true]{background:var(--brand);color:var(--on-brand)}.comprobante{display:block;max-width:100%;max-height:60dvh;object-fit:contain}@media(prefers-reduced-motion:reduce){.segmented button:active{transform:none}}.summary-title p,.section-head p{margin:2px 0 0;color:var(--text-muted)}.summary-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-3)}.summary-group{display:flex;justify-content:space-between;align-items:end;gap:var(--space-4);padding:var(--space-5);background:var(--ink-raised);color:var(--on-ink);border-radius:var(--radius-lg)}.summary-group h3,.summary-group p{margin:0}.summary-group>div>strong{display:block;font-family:var(--font-display);font-size:var(--fs-1);line-height:1}.summary-group small{display:block;color:var(--on-ink-muted)}.summary-group p{text-align:right}.summary-totals,.offer-stats{display:flex;gap:var(--space-5);flex-wrap:wrap;padding:var(--space-4) 0;border-bottom:1px solid var(--border)}.summary-totals span,.offer-stats span{display:flex;gap:6px;align-items:baseline;color:var(--text-muted)}.summary-totals strong,.offer-stats strong{color:var(--text);font-size:var(--fs-3)}.trends{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-4)}.trend{padding:var(--space-4);background:var(--surface);border-radius:var(--radius-lg)}.trend h3{margin:0 0 var(--space-5)}.trend-bars{height:190px;display:flex;align-items:stretch;gap:var(--space-2);border-bottom:1px solid var(--border-strong)}.trend-point{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:0}.trend-point span,.trend-point small{font-size:.68rem;white-space:nowrap}.trend-point i{display:block;width:min(28px,75%);min-height:3px;background:var(--enfut-sky);border-radius:3px 3px 0 0}.trend-point small{margin-top:5px;color:var(--text-muted)}.tabs{display:flex;gap:var(--space-1);overflow-x:auto;padding-bottom:var(--space-2)}.tabs button{flex:none;background:transparent;color:var(--text-muted);border:1px solid var(--border);padding:8px 10px}.tabs button.active{background:var(--ink-raised);border-color:var(--ink-raised);color:var(--on-ink)}.recover-list{background:var(--surface);border-radius:var(--radius-lg);overflow:hidden}.recover-row{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-4)}.recover-row+.recover-row{border-top:1px solid var(--border)}.recover-row h3,.recover-row p{margin:0}.recover-row p,.recover-row small{color:var(--text-muted);font-size:var(--fs-5)}.row-actions{display:flex;align-items:center;gap:var(--space-2);flex:none}.row-actions .button,.row-actions button{padding:8px 10px;white-space:nowrap}.payment-split{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.payment-split div{display:flex;flex-direction:column;padding:var(--space-5);background:var(--surface)}.payment-split strong{font-family:var(--font-display);font-size:var(--fs-1);line-height:1}.payment-split small{color:var(--text-muted)}.analytics-note{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border);color:var(--text-muted);font-size:var(--fs-5)}.input-suffix{display:flex;align-items:center}.input-suffix input{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.input-suffix span{align-self:stretch;display:grid;place-items:center;padding:0 14px;background:var(--surface-sunken);border:1px solid var(--border-strong);border-left:0;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.dev-accounts{display:grid;gap:var(--space-2)}@media(max-width:640px){.summary-group{flex-direction:column;align-items:flex-start;padding:var(--space-4)}.summary-group>div,.summary-group p{width:100%}.summary-group p{text-align:left}.summary-totals{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.summary-totals>span:last-child:nth-child(odd){grid-column:1/-1}.recover-row{flex-direction:column}.row-actions{display:grid;grid-template-columns:1fr 1fr}.row-actions>*{width:100%}.payment-split{grid-template-columns:1fr}.trend{margin-inline:-16px;border-radius:0}.trend-bars{gap:4px}.trend-point span{font-size:.6rem}.offer-stats{display:grid;grid-template-columns:1fr 1fr}}.next h2{margin:var(--space-2) 0 0}.progress-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:var(--space-2);margin:var(--space-4) 0}.progress-chip{display:flex;min-width:0;flex-direction:column;padding:10px 12px;background:var(--surface);border-radius:var(--radius-md)}.progress-chip strong{font-family:var(--font-display);font-size:var(--fs-3);line-height:1;color:var(--text)}.progress-chip small{margin-top:3px;color:var(--text-muted);font-weight:600}.other-sessions{margin-top:var(--space-4)}.other-sessions>summary{color:var(--text-muted);font-weight:700}.package-count{margin:0;font-family:var(--font-display);font-weight:var(--font-display-weight);font-size:var(--fs-1);line-height:1;letter-spacing:-.01em}.package-summary>button{width:100%;margin-top:var(--space-4)}.package-picker{display:flex;flex-direction:column;gap:var(--space-2)}.package-option{width:100%;min-height:64px;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface);border-color:var(--border);color:var(--text);text-align:left}.package-option small{font-weight:500}.package-price{flex:none;font-family:var(--font-display);font-weight:var(--font-display-weight);font-size:var(--fs-3);line-height:1;white-space:nowrap}.renewal-choice{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border-radius:var(--radius-lg)}.renewal-choice>div{flex:1;min-width:0}.payment-datum{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:10px 0;border-bottom:1px solid var(--border)}.payment-datum>div{min-width:0}.payment-datum strong{display:block;overflow-wrap:anywhere}.copy{flex:none;min-width:84px}.payment-method{display:flex;flex-direction:column;gap:var(--space-3)}.payment-method p{margin:0}.sheet h3{margin:0 0 var(--space-1);font-family:var(--font-body);font-size:var(--fs-4);font-weight:700;letter-spacing:0}.profile-id{margin:0 0 var(--space-3)}.profile-form button,.logout-profile{width:100%}.profile-history{margin:var(--space-4) 0 var(--space-2);border-top:1px solid var(--border)}.profile-history>summary{font-weight:700}.history h3{margin:var(--space-4) 0 var(--space-1);font-family:var(--font-body);font-size:var(--fs-4);font-weight:700;letter-spacing:0}.logout-profile{margin-top:var(--space-5)}.progress-row:empty{display:none}@media(max-width:400px){.slot{align-items:stretch;flex-direction:column;gap:var(--space-3)}.slot-actions{width:100%}.slot-actions .badge{align-self:flex-start}}.fecha-cargando{opacity:.6}.date-strip{display:flex;justify-content:center;gap:6px;margin:0 -16px var(--space-5);padding:3px 16px 10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.date-strip::-webkit-scrollbar{display:none}.date-strip button{position:relative;flex:0 0 52px;min-height:68px;padding:7px 4px 13px;scroll-snap-align:start;flex-direction:column;gap:0;background:transparent;border-color:transparent;color:var(--text)}.date-strip button span{font-size:.68rem;color:var(--text-muted)}.date-strip button strong{font-family:var(--font-display);font-size:var(--fs-3);line-height:1.05}.date-strip button i{position:absolute;bottom:7px;width:5px;height:5px;border-radius:50%;background:transparent}.date-strip button i[data-session=true]{background:var(--enfut-sky)}.date-strip button small{position:absolute;top:-3px;color:var(--brand-strong);font-size:.58rem;font-weight:800}.date-strip button[aria-pressed=true]{background:var(--ink-raised);color:var(--on-ink)}.date-strip button[aria-pressed=true] span,.date-strip button[aria-pressed=true] small{color:var(--on-ink-muted)}.date-strip button[aria-pressed=true] i[data-session=true]{background:var(--ball-blue)}.date-strip .date-muted{opacity:.55}.date-strip .date-muted[aria-pressed=true]{opacity:1}.no-session{padding:var(--space-4) 0 var(--space-6);border-top:1px solid var(--border)}.no-session p{color:var(--text-muted)}.no-session .text-link{padding:0;border:0;background:transparent;color:var(--brand-strong);text-align:left}@media(max-width:640px){.date-strip{justify-content:flex-start}}.session-card{margin:0 0 var(--space-6);padding:var(--space-4);background:var(--surface);border-radius:var(--radius-lg)}.session-card>header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.session-card>header h2,.session-card>header p{margin:0}.session-card>header p{color:var(--text-muted);font-size:var(--fs-5)}.counters{display:grid;grid-template-columns:repeat(var(--counter-cols,4),1fr);gap:1px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--border)}.counters[data-n="3"]{--counter-cols:3}.counter{display:flex;min-width:0;min-height:66px;flex-direction:column;align-items:flex-start;justify-content:center;padding:8px;background:var(--surface);color:var(--text);border:0;border-radius:0;text-align:left}.counter strong{font-family:var(--font-display);font-size:var(--fs-2);line-height:1}.counter span{font-size:.7rem;line-height:1.2;color:var(--text-muted);white-space:nowrap}.counter[aria-pressed=true]{background:var(--ink-raised);color:var(--on-ink)}.counter[aria-pressed=true] span{color:var(--on-ink-muted)}.list-tools{margin:var(--space-3) 0 0}.list-tools button{width:100%}.people{list-style:none;margin:var(--space-2) 0 0;padding:0}.person{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:52px;padding:9px 0;border-bottom:1px solid var(--border)}.person>div{min-width:0}.person p{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin:2px 0 0;font-size:var(--fs-5);color:var(--text-muted)}.empty-line{margin:var(--space-3) 0 0;color:var(--text-muted);font-size:var(--fs-5)}.icon-btn{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--text)}.icon-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.searchbox{margin-bottom:var(--space-2)}.chips{display:flex;gap:6px;margin-bottom:var(--space-4);overflow-x:auto}.chips button{flex:none;padding:8px 12px;background:transparent;color:var(--text-muted);border:1px solid var(--border)}.chips button[aria-pressed=true]{background:var(--ink-raised);border-color:var(--ink-raised);color:var(--on-ink)}.approve-card{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-4);background:var(--surface);border-radius:var(--radius-lg)}.approve-card p{margin:2px 0;font-size:var(--fs-5)}.approve-actions{display:flex;align-items:center;gap:6px;flex:none}.approve-actions .button{font-size:0;width:44px;padding:0}.approve-actions .button svg{width:22px;height:22px}.student-main{min-width:0}.student-main small{display:flex;align-items:center;gap:6px;white-space:nowrap}.student-row>.badge{flex:none;white-space:nowrap}.page-links{display:flex;gap:var(--space-3)}.page-links button{min-height:36px;padding:0}.payment-review{display:grid;grid-template-columns:minmax(0,1fr) 48px auto;align-items:center;gap:var(--space-3);padding:12px 0;border-bottom:1px solid var(--border)}.payment-review-main{display:flex;min-width:0;flex-direction:column}.payment-review-main>strong{font-family:var(--font-display);font-size:var(--fs-2);line-height:1}.payment-review-main span,.payment-review-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.payment-review img{width:48px;height:48px;border-radius:var(--radius-sm);object-fit:cover}.payment-review>small{width:100%;aspect-ratio:1;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-sunken);font-size:0;overflow:hidden}.payment-review button{padding:8px 10px}.file-picker{display:flex;align-items:center;gap:var(--space-3);min-height:64px}.file-picker img{width:64px;height:64px;border-radius:var(--radius-sm);object-fit:cover}.file-picker>div{display:flex;min-width:0;flex:1;align-items:center;justify-content:space-between;gap:var(--space-2)}.file-picker strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.package-option>span:first-child{display:flex;min-width:0;flex-direction:column}.package-option strong{white-space:nowrap}.demographics{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.demo-chart{padding:var(--space-4);background:var(--surface);border-radius:var(--radius-lg)}.demo-chart h3{margin-bottom:var(--space-4)}.demo-row+.demo-row{margin-top:var(--space-3)}.demo-row>div{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--fs-5)}.demo-row strong{font-size:var(--fs-5);white-space:nowrap}.demo-row i{display:block;height:6px;margin-top:5px;background:var(--surface-sunken);border-radius:3px;overflow:hidden}.demo-row i span{display:block;height:100%;background:var(--enfut-sky)}@media(max-width:480px){.session-card{margin-inline:-4px;padding-inline:12px}.counter{padding-inline:6px}.counter span{font-size:.64rem}.approve-card{align-items:flex-start;flex-direction:column}.approve-actions{width:100%;justify-content:space-between}.approve-actions>button:first-child{flex:1}.student-main small{white-space:normal}.payment-review{grid-template-columns:minmax(0,1fr) 44px auto}.page-head>.page-links{width:100%}}@media(max-width:640px){.demographics{grid-template-columns:1fr}.demo-chart{margin-inline:-4px}}button,.button,summary,.text-link,.shell nav a{transition:transform var(--dur-press) var(--ease-out),opacity var(--dur-press) var(--ease-out)}.morph-button{display:grid}.morph-button span{grid-area:1/1;opacity:1;transition:opacity var(--dur-short) var(--ease-out)}.morph-button .hidden-state{opacity:0}.route{animation:fade-in var(--dur-short) var(--ease-out)}@keyframes fade-in{0%{opacity:0}}.state-line.pop .glyph{animation:pop var(--dur-med) var(--ease-out)}@keyframes pop{0%{opacity:0;transform:scale(.9)}}@media(hover:hover)and (pointer:fine){button:hover:not(:disabled),.button:hover{filter:brightness(.96)}a:hover{color:var(--brand)}a.button:hover{color:var(--on-brand)}a.button.secondary:hover{color:var(--text)}.topbar a:hover{color:var(--ink)}.quiet:hover:not(:disabled){background:var(--surface-sunken)}.topbar .quiet:hover:not(:disabled){background:color-mix(in srgb,var(--ink) 8%,transparent)}.shell nav a:hover{color:var(--text)}.shell nav a.active:hover{color:var(--brand)}.admin-shell nav a:hover{background:var(--surface-sunken)}button.student-row:hover:not(:disabled){background:var(--surface);filter:none}}button:active:not(:disabled),.button:active,summary:active,.text-link:active{transform:scale(var(--press-scale))}button:active:not(:disabled),.button:active{filter:brightness(.92)}.quiet:active:not(:disabled){background:var(--surface-sunken);filter:none}.topbar .quiet:active:not(:disabled){background:color-mix(in srgb,var(--ink) 14%,transparent)}.shell nav a:active{transform:scale(.94);color:var(--brand)}label.choice:active{background:var(--surface-sunken)}button.student-row:active:not(:disabled){background:var(--surface-sunken);filter:none;transform:none}html[data-keyboard=true] *,html[data-keyboard=true] *:before,html[data-keyboard=true] *:after{transition:none!important;animation:none!important}@media(prefers-reduced-motion:reduce){.route,.sheet::backdrop{animation-duration:1ms}.state-line.pop .glyph{animation-name:fade-in}.shell nav a:active{transform:none}}
