body.student-active{background:#f5f7fa}body.student-active .pilot-notice{display:none}.student-shell{height:100dvh;display:grid;grid-template-columns:220px minmax(0,1fr);color:#17263d;background:#f6f8fa}.student-rail{display:flex;flex-direction:column;min-height:0;padding:28px 14px 22px;background:#142238;color:#fff}.student-brand{display:flex;align-items:center;gap:10px;padding:0 15px;font-size:17px;font-weight:850;letter-spacing:.13em}.student-brand img,.student-mobile-brand img{width:31px;height:31px;object-fit:contain;background:#fff;border-radius:9px;padding:4px}.student-rail-label{font-size:10px;font-weight:800;letter-spacing:.17em;color:#8195af;margin:43px 15px 12px}.student-nav{display:grid;gap:5px}.student-nav button{display:flex;align-items:center;gap:13px;width:100%;padding:12px 14px;border:0;border-radius:12px;text-align:left;background:transparent;color:#b9c7d9;font-size:14px;font-weight:700}.student-nav button:hover{background:#ffffff12;color:#fff}.student-nav button[aria-current=page]{background:#ffffff16;color:#fff}.student-nav-icon{width:22px;height:22px;display:grid;place-items:center;font-size:22px;font-weight:400;line-height:1}.student-rail-foot{margin:auto 15px 0;padding-top:20px;color:#72869f;font-size:12px}.student-stage{display:flex;flex-direction:column;min-width:0;min-height:0}.student-topbar{height:67px;flex:none;display:flex;align-items:center;justify-content:flex-end;gap:16px;padding:0 34px;border-bottom:1px solid #e6ebf1;background:#fff;color:#8491a1;font-size:12px;font-weight:700}.student-mobile-brand{display:none}.student-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#e8edf6;color:#263d5b;font-size:13px;font-weight:900}.student-content{width:100%;max-width:1240px;min-height:0;margin:0 auto;padding:38px clamp(24px,4vw,58px) 48px;overflow:auto}.student-heading{margin:0 0 26px}.student-heading h1{font-size:clamp(29px,3vw,39px);letter-spacing:-.045em;line-height:1.06;margin:10px 0 7px}.student-heading p{color:#687a8f;line-height:1.45;margin:0;font-size:14px}.student-kicker{font-size:10px;font-weight:900;letter-spacing:.14em;color:#b8344e}.student-home-hero{min-height:265px;display:flex;justify-content:space-between;align-items:center;overflow:hidden;border-radius:24px;background:linear-gradient(125deg,#15253e,#233d5d);box-shadow:0 17px 44px #142b4b1b;color:#fff}.student-home-hero-copy{padding:clamp(26px,5vw,57px);position:relative;z-index:1}.student-hero-kicker{color:#f1acbb;font-size:11px;font-weight:900;letter-spacing:.15em}.student-home-hero h2{font-size:clamp(26px,3.3vw,43px);letter-spacing:-.045em;line-height:1.1;margin:15px 0 11px;max-width:500px}.student-home-hero p{color:#c9d4e2;line-height:1.5;font-size:14px;max-width:460px}.student-hero-decoration{align-self:stretch;display:grid;place-items:center;width:34%;min-width:180px;color:#fff1;font-size:260px;line-height:1;transform:rotate(-12deg)}.student-primary{margin-top:13px;background:#d83d5a;color:#fff;border:0;border-radius:11px;padding:12px 17px;font-size:13px;font-weight:850}.student-primary:hover{background:#ed4c68}.student-home-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.student-panel,.student-profile-card,.student-empty{background:#fff;border:1px solid #e4e9ef;border-radius:18px;box-shadow:0 7px 22px #1b37500a}.student-panel{padding:26px;min-height:180px}.student-panel h2{font-size:21px;letter-spacing:-.035em;margin:10px 0 18px}.student-muted{font-size:13px;line-height:1.55;color:#718097}.student-person-row{display:flex;align-items:center;gap:12px}.student-person-row strong,.student-contact strong{display:block;font-size:14px}.student-person-row small,.student-contact small{display:block;margin-top:4px;color:#8190a1;font-size:11px}.student-person-avatar{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:13px;background:#edf1f7;color:#324b69;font-size:14px;font-weight:900}.student-text-button{padding:0;border:0;background:transparent;color:#b92d49;font-size:13px;font-weight:900}.student-week-switch{display:inline-flex;gap:3px;padding:4px;background:#e9eef4;border-radius:13px;margin:0 0 19px}.student-week-switch button{border:0;background:transparent;padding:10px 16px;border-radius:10px;color:#708198;font-weight:800;font-size:13px}.student-week-switch button[aria-pressed=true]{background:#fff;color:#17263d;box-shadow:0 2px 8px #1a2c4118}.student-week-days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:0 0 19px}.student-week-day{display:grid;gap:5px;place-items:center;min-height:61px;border:1px solid #e5ebf1;border-radius:13px;background:#fff}.student-week-day small{color:#8491a0;text-transform:capitalize;font-size:11px}.student-week-day strong{font-size:15px}.student-empty{min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}.student-empty-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#f0f3f8;color:#416080;font-size:26px}.student-empty h2{font-size:19px;letter-spacing:-.025em;margin:16px 0 5px}.student-empty p{color:#7a8999;line-height:1.5;font-size:13px;max-width:360px;margin:0}.student-class-list,.student-study-list{display:grid;gap:12px}.student-class-card,.student-study-card{padding:20px;border:1px solid #e5eaf0;border-radius:16px;background:#fff}.student-class-card h2,.student-study-card h2{margin:6px 0;font-size:18px}.student-class-card p,.student-study-card p{margin:0;color:#7a8b9d;font-size:13px}.student-class-date{color:#b8314b;font-size:12px;font-weight:800;text-transform:capitalize}.student-profile-card{padding:27px;max-width:580px}.student-profile-person{display:flex;align-items:center;gap:16px;padding-bottom:25px;border-bottom:1px solid #e8edf2}.student-profile-avatar{display:grid;place-items:center;width:63px;height:63px;border-radius:18px;background:#e6edf6;color:#243e61;font-size:25px;font-weight:850}.student-profile-person h2{font-size:21px;letter-spacing:-.03em;margin:0 0 5px}.student-profile-person p{color:#8995a3;font-size:12px;margin:0}.student-profile-field{display:grid;gap:6px;padding:22px 0}.student-profile-field span{color:#8190a0;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.student-profile-field strong{font-size:14px;overflow-wrap:anywhere}.student-signout{border:1px solid #d9e1e9;background:#fff;border-radius:10px;padding:10px 13px;color:#405672;font-size:12px;font-weight:800}.student-error{padding:12px 16px;background:#fff0f2;color:#a7223d;border:1px solid #f0c7cf;border-radius:10px;font-size:13px}.student-loading{color:#60748a;font-size:14px}.student-chat{display:grid;grid-template-columns:minmax(240px,330px) minmax(0,1fr);height:min(650px,calc(100dvh - 210px));min-height:360px;overflow:hidden;background:#fff;border:1px solid #e1e7ef;border-radius:18px;box-shadow:0 7px 22px #1b37500a}.student-chat-list{border-right:1px solid #e6ebf0;overflow:auto}.student-chat-list h2{font-size:15px;margin:0;padding:21px 19px;border-bottom:1px solid #edf0f3}.student-contact{display:flex;align-items:center;gap:12px;width:calc(100% - 16px);margin:8px;padding:12px;border:0;border-radius:12px;background:transparent;text-align:left;color:#253b54}.student-contact:hover,.student-contact[aria-current=true]{background:#f2f5f9}.student-contact-copy{min-width:0;flex:1}.student-contact-arrow{color:#9dabb9;font-size:24px}.student-chat-pane{display:flex;flex-direction:column;min-width:0;min-height:0;background:#f8fafc}.student-chat-empty{margin:auto;text-align:center;padding:20px;max-width:330px}.student-chat-empty>span{color:#c9d4e1;font-size:45px}.student-chat-empty h2{font-size:19px;margin:9px 0}.student-chat-empty p{font-size:13px;line-height:1.5;color:#8290a0}.student-chat-top{display:flex;align-items:center;gap:11px;min-height:65px;padding:9px 18px;background:#fff;border-bottom:1px solid #e8edf2}.student-chat-top strong{display:block;font-size:14px}.student-chat-top small{color:#8a98a8;font-size:11px}.student-chat-back{display:none;border:0;background:transparent;color:#344f6c;font-size:24px}.student-chat-timeline{flex:1;min-height:0;overflow:auto;padding:18px 24px;display:flex;flex-direction:column;gap:10px}.student-message{max-width:min(75%,490px);align-self:flex-start;padding:10px 14px;background:#fff;border:1px solid #e4eaf0;border-radius:14px 14px 14px 4px}.student-message.mine{align-self:flex-end;background:#e4f0ed;border-color:#d0e5de;border-radius:14px 14px 4px 14px}.student-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 6px;line-height:1.5;font-size:13px}.student-message time{display:block;text-align:right;color:#91a0ae;font-size:10px}.student-chat-compose{display:flex;gap:9px;align-items:end;padding:13px;background:#fff;border-top:1px solid #e8edf2}.student-chat-compose textarea{min-height:43px;flex:1;resize:none;padding:11px 12px;border:1px solid #dce4ec;border-radius:12px;background:#f7f9fb;font:inherit;font-size:13px}.student-chat-compose button{height:43px;border:0;border-radius:11px;background:#ca344f;color:#fff;font-weight:800;padding:0 15px}.student-chat-compose button:disabled{opacity:.5}
@media(max-width:760px){.student-shell{display:flex;flex-direction:column}.student-rail{order:2;display:block;flex:none;height:72px;padding:0;background:#fff;border-top:1px solid #e2e8ef;color:#8794a5;box-shadow:0 -5px 20px #10243b09}.student-brand,.student-rail-label,.student-rail-foot{display:none}.student-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));height:100%;gap:0}.student-nav button{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:3px 0;border-radius:0;color:#8290a0;font-size:10px;font-weight:750;text-align:center;white-space:nowrap}.student-nav button[aria-current=page]{background:#fff;color:#bf314d}.student-nav-icon{font-size:22px;width:auto;height:25px}.student-stage{order:1;flex:1;min-height:0}.student-topbar{height:60px;justify-content:space-between;padding:0 17px;gap:10px}.student-mobile-brand{display:flex;align-items:center;gap:8px;color:#1c304a;letter-spacing:.12em;font-size:12px}.student-mobile-brand img{width:27px;height:27px}.student-topbar>span{display:none}.student-avatar{width:32px;height:32px}.student-content{padding:24px 16px 30px}.student-heading{margin-bottom:21px}.student-heading h1{font-size:30px}.student-heading p{font-size:13px}.student-home-hero{min-height:262px;border-radius:19px}.student-home-hero-copy{padding:29px 24px}.student-home-hero h2{font-size:30px}.student-home-hero p{font-size:13px}.student-hero-decoration{display:none}.student-home-grid{grid-template-columns:1fr;gap:12px;margin-top:12px}.student-panel{padding:22px;min-height:145px}.student-week-switch{width:100%;display:grid;grid-template-columns:1fr 1fr}.student-week-switch button{padding:11px 5px}.student-week-days{gap:4px}.student-week-day{min-height:54px;border-radius:10px}.student-week-day small{font-size:9px}.student-week-day strong{font-size:13px}.student-empty{min-height:220px}.student-chat{display:block;height:calc(100dvh - 210px);min-height:300px;border-radius:15px}.student-chat-list,.student-chat-pane{height:100%;width:100%}.student-chat-pane{display:none}.student-chat.is-open .student-chat-list{display:none}.student-chat.is-open .student-chat-pane{display:flex}.student-chat-back{display:block}.student-chat-timeline{padding:14px 12px}.student-message{max-width:88%}.student-chat-compose{padding:9px}.student-messages-open .student-content{padding-bottom:0}.student-messages-open .student-chat{height:calc(100dvh - 181px)}}
@media(max-width:760px){body.student-messages-open .student-content{padding:0;max-width:none}body.student-messages-open .student-heading{display:none}body.student-messages-open .student-chat{height:calc(100dvh - 132px);min-height:0;border:0;border-radius:0}}
/* Una conversación ocupa el viewport móvil completo; el teclado no provoca zoom en iOS. */
.student-message-meta{display:flex;align-items:center;justify-content:flex-end;gap:5px;color:#8497a5;font-size:10px}
.student-message-meta time{display:inline;text-align:initial;font-size:10px}
.student-message-receipt{letter-spacing:-.18em;padding-right:3px;font-size:13px;color:#748c91;font-weight:800}
.student-message-receipt.is-read{color:#167c9d}
.student-chat-compose textarea{font-size:16px}
.student-sound{border:1px solid #dce5ec;border-radius:999px;background:#fff;color:#536982;padding:7px 10px;font-size:11px;font-weight:750;white-space:nowrap}.student-sound[aria-pressed=false]{color:#8d9aa9}.student-unread{display:grid;place-items:center;min-width:19px;height:19px;margin-left:auto;padding:0 4px;border-radius:50%;background:#c93653;color:#fff;font-size:10px;font-weight:900}.student-chat-typing{margin:0;padding:6px 24px;min-height:27px;color:#657b91;font-size:11px;font-weight:750}
.student-contact-copy small{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-contact-unread{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:50%;background:#c93653;color:#fff;font-size:10px;font-weight:900}
@media(max-width:760px){.student-sound{font-size:10px;padding:6px 8px}.student-unread{position:absolute;top:5px;right:calc(50% - 19px);min-width:15px;height:15px;font-size:9px}.student-nav button[data-student-tab=messages]{position:relative}.student-chat-typing{padding:6px 12px}}
@media(max-width:760px){
  body.student-messages-open .student-shell{height:100dvh;overflow:hidden}
  body.student-messages-open .student-rail,body.student-messages-open .student-topbar{display:none}
  body.student-messages-open .student-stage{height:100dvh;flex:1}
  body.student-messages-open .student-content{height:100dvh;overflow:hidden}
  body.student-messages-open .student-chat{height:100dvh;width:100%;overflow:hidden;background:#f7f9fb}
  body.student-messages-open .student-chat-pane{height:100dvh;min-height:0}
  body.student-messages-open .student-chat-top{min-height:calc(60px + env(safe-area-inset-top));padding-top:calc(9px + env(safe-area-inset-top))}
  body.student-messages-open .student-chat-timeline{min-height:0;overscroll-behavior:contain}
  body.student-messages-open .student-chat-compose{flex:none;padding:9px 12px calc(9px + env(safe-area-inset-bottom))}
  body.student-messages-open .student-chat-compose textarea{font-size:16px;line-height:1.3}
}

/* Mensajería EOACS: la conversación ocupa el espacio, con controles discretos. */
.student-chat{border-color:#dce5e8;border-radius:22px;box-shadow:0 20px 55px #142b4114}
.student-chat-list{background:#fff}
.student-chat-list h2{padding:24px 21px 18px;font-size:17px;letter-spacing:-.03em}
.student-contact{width:calc(100% - 20px);margin:5px 10px;padding:13px 12px;border-radius:15px;transition:background .18s ease,transform .18s ease}
.student-contact:hover{background:#f0f5f4;transform:translateX(2px)}
.student-contact[aria-current=true]{background:#edf4f1}
.student-contact .student-person-avatar{border-radius:50%;background:#e6efe9;color:#275a49}
.student-chat-pane{background-color:#edf3f1;background-image:radial-gradient(#c9d9d330 1px,transparent 1px);background-size:20px 20px}
.student-chat-top{min-height:70px;padding:10px 20px;border-bottom:1px solid #dce7e3;box-shadow:0 3px 14px #183f3108;z-index:1}
.student-chat-top .student-person-avatar{border-radius:50%;background:#e8f1ec;color:#22523f}
.student-chat-top>div{flex:1;min-width:0}.student-chat-top strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.student-chat-top small{font-size:11px;color:#6d837c}
.student-chat-sound{flex:none;border:1px solid #d9e5df;border-radius:999px;padding:8px 11px;background:#fff;color:#385c51;font-size:11px;font-weight:800;white-space:nowrap}
.student-chat-timeline{gap:8px;padding:22px clamp(18px,5vw,64px)}
.student-message{max-width:min(73%,560px);padding:10px 13px 8px;border-color:#dfe9e4;border-radius:16px 16px 16px 5px;background:#fff;box-shadow:0 3px 8px #173e2d0b}
.student-message.mine{border-color:#c8e1d5;border-radius:16px 16px 5px 16px;background:#dff0e6}
.student-message p{margin:0 0 4px;font-size:14px;line-height:1.45;color:#1a3540}
.student-message-meta{color:#728b86}
.student-chat-compose{align-items:center;gap:10px;padding:12px clamp(18px,5vw,64px);border-top:1px solid #dce7e3;box-shadow:0 -7px 22px #143b2a08}
.student-chat-compose textarea{min-height:46px;max-height:115px;padding:12px 17px;border-radius:24px;border-color:#d9e4df;background:#f7faf8;line-height:1.35}
.student-chat-compose textarea:focus{outline:2px solid #b8d6c6;outline-offset:1px;background:#fff}
.student-chat-compose button{width:46px;height:46px;flex:none;padding:0;border-radius:50%;background:#b72e4c;font-size:0}
.student-chat-compose button::after{content:'➤';font-size:19px;display:block;transform:translateX(1px)}
.student-chat-typing{background:#edf3f1;color:#4e786c}
@media(max-width:760px){
  body.student-messages-open .student-chat{border-radius:0;background:#edf3f1}
  body.student-messages-open .student-chat-top{padding-left:13px;padding-right:12px;gap:9px}
  body.student-messages-open .student-chat-top strong{font-size:13px}
  .student-chat-top .student-person-avatar{width:38px;height:38px}
  .student-chat-sound{display:grid;place-items:center;width:36px;height:36px;padding:0;font-size:0}
  .student-chat-sound::after{content:'♪';font-size:18px}
  .student-chat-sound[aria-pressed=true]::after{content:'♫'}
  .student-chat-timeline{padding:16px 12px 20px}
  .student-message{max-width:86%}
  body.student-messages-open .student-chat-compose{padding:9px 12px calc(9px + env(safe-area-inset-bottom))}
}
.student-avatar{flex:none;width:40px;height:40px;border:0;cursor:pointer;font-family:inherit;transition:background .18s ease,box-shadow .18s ease,transform .18s ease}
.student-avatar:hover,.student-avatar[aria-pressed=true]{background:#d9e5f2;box-shadow:0 0 0 3px #dce7f3}
.student-avatar:active{transform:scale(.96)}
.student-avatar:focus-visible{outline:3px solid #bf314d;outline-offset:3px}
.student-profile-back{display:inline-flex;align-items:center;gap:7px;margin:0 0 18px;padding:8px 11px;border:0;border-radius:9px;background:transparent;color:#52677d;font:inherit;font-size:13px;font-weight:800;cursor:pointer}
.student-profile-back:hover{background:#e9eef4;color:#192d47}
@media(max-width:760px){.student-nav{grid-template-columns:repeat(4,minmax(0,1fr))}.student-avatar{width:44px;height:44px;min-width:44px}}
.student-profile-setting{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #e6ebf1;padding:20px 0}.student-profile-setting>div{min-width:0}.student-profile-setting strong{display:block;color:#243751;font-size:14px}.student-profile-setting p{max-width:370px;margin:6px 0 0;color:#718198;font-size:12px;line-height:1.5}.student-profile-setting .student-sound{flex:none;min-height:38px;padding:9px 13px;color:#334f6b;font-size:12px}
@media(max-width:520px){.student-profile-setting{align-items:flex-start;flex-direction:column;gap:12px}.student-profile-setting .student-sound{align-self:flex-start}}

/* Agenda personal: la semana es la vista amplia; en móvil se consulta día a día. */
.student-week-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:470px;width:100%}
.student-week-switch button{white-space:nowrap;padding:10px 9px;font-size:11px}
.student-agenda-view{display:none}
.student-week-days{display:none}
.student-class-list{max-width:760px}
.student-class-card{padding:19px 21px;border-radius:17px;box-shadow:0 6px 20px #20364c0a;border-left:4px solid #dfa737}
.student-class-card.is-confirmada,.student-class-card.is-impartida{border-left-color:#319767}
.student-class-card.is-cancelada,.student-class-card.is-no_impartida{border-left-color:#c34c57}
.student-class-card.is-reagendada{border-left-color:#4c7eb7}
.student-class-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:9px}
.student-class-date{color:#52677e;font-size:11px}
.student-class-status{display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;background:#fff3d9;color:#8d6415;font-size:10px;font-weight:900;white-space:nowrap}
.student-class-status.is-confirmada,.student-class-status.is-impartida{background:#e3f4eb;color:#23754d}
.student-class-status.is-cancelada,.student-class-status.is-no_impartida{background:#fae8eb;color:#a73549}
.student-class-status.is-reagendada{background:#e7eefb;color:#315f9c}
.student-class-card h2{margin:12px 0 4px;color:#243a52;font-size:17px}
.student-class-teacher{color:#6b7c8f!important}
.student-class-schedule{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:17px;padding-top:15px;border-top:1px solid #edf0f3}
.student-class-schedule>div{display:grid;gap:4px}
.student-class-schedule small{color:#8998a7;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.student-class-schedule strong{color:#304760;font-size:12px;text-transform:capitalize}
.student-agenda-no-class{color:#8796a6;font-size:13px}
.student-home-status{display:inline-flex;margin-top:3px;padding:6px 10px;border-radius:999px;background:#fff3d9;color:#765310;font-size:11px;font-weight:850}
.student-home-status.is-confirmada,.student-home-status.is-impartida{background:#daf0e4;color:#216844}
.student-home-status.is-reagendada{background:#e3ecfb;color:#2c5d9b}
.student-calendar-week{display:grid;grid-template-columns:repeat(7,minmax(128px,1fr));gap:0;max-width:none;min-width:896px;min-height:max(420px,calc(100dvh - 290px));border:1px solid #e0e8ef;border-radius:17px;overflow:hidden;background:#fff}
.student-calendar-column{min-height:310px;padding:9px 8px;border-right:1px solid #e8edf2}
.student-calendar-column:last-child{border-right:0}.student-calendar-column h2{margin:0 0 9px;padding:8px 5px 11px;border-bottom:1px solid #edf1f5;color:#39536d;font-size:11px;text-transform:capitalize;text-align:center}
.student-calendar-column .student-class-card{padding:10px;border-radius:9px;box-shadow:none;margin-bottom:8px}
.student-calendar-column .student-class-card h2{margin:6px 0 3px;font-size:12px;text-align:left;border:0;padding:0}
.student-calendar-column .student-class-date{font-size:10px}.student-calendar-column .student-class-head{gap:5px}
.student-calendar-column .student-class-status{font-size:9px;padding:4px 6px;white-space:normal}
.student-calendar-column .student-class-schedule{grid-template-columns:1fr;gap:8px;margin-top:10px;padding-top:9px}
.student-calendar-column .student-class-actions{display:grid;grid-template-columns:1fr;margin-top:10px;gap:5px}
.student-calendar-column .student-class-action{padding:7px 4px;font-size:9px;white-space:normal}
.student-calendar-column .student-agenda-no-class{padding:7px;text-align:center;font-size:11px}
.student-content:has(.student-calendar-week){overflow-x:auto}
.student-class-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}
.student-class-action{border:1px solid #dce5ec;border-radius:10px;background:#f7f9fb;color:#304b64;padding:9px 12px;font:inherit;font-size:11px;font-weight:850;cursor:pointer}
.student-class-action:hover{background:#eaf1f5}.student-class-action.is-danger{background:#fff;color:#ad3e51;border-color:#eccbd2}
.student-class-action.is-danger:hover{background:#fff0f2}
.student-class-action.is-payment{background:#e8f3ee;border-color:#cbe5d6;color:#1c6845}
.student-purchase-dialog{width:min(530px,calc(100vw - 28px))}
.student-purchase-quantity{display:grid;gap:9px;margin:16px 0 20px;color:#344e68;font-size:12px;font-weight:850}
.student-purchase-quantity select{width:100%;min-height:47px;padding:0 13px;border:1px solid #d6e2e9;border-radius:11px;background:#fff;color:#243b52;font:inherit;font-size:16px}
.student-purchase-dates{display:grid;gap:7px;margin:0;padding:0;list-style:none}
.student-purchase-date{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #e1e9ed;border-radius:12px;background:#f8fafb;color:#253c53;font-size:12px;font-weight:760;text-transform:capitalize}
.student-purchase-date>span:nth-child(2){flex:1}
.student-purchase-check{display:grid;place-items:center;flex:none;width:23px;height:23px;border-radius:50%;background:#dff1e8;color:#23805a;font-weight:900}
.student-purchase-omit,.student-purchase-restore{border:0;background:transparent;color:#61788a;font:inherit;font-size:11px;font-weight:800;cursor:pointer}
.student-purchase-omit:hover,.student-purchase-restore:hover{color:#b22f4b}
.student-purchase-skipped{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:13px}
.student-purchase-skipped small{color:#77899a;font-size:11px}
.student-purchase-restore{padding:6px 8px;border-radius:999px;background:#eef2f5}
.student-purchase-total{display:flex;align-items:center;justify-content:space-between;margin-top:17px;padding:16px 2px;border-top:1px solid #e4ebf0;color:#65798c;font-size:13px}
.student-purchase-total strong{color:#17374e;font-size:24px;letter-spacing:-.04em}
.student-class-dialog{width:min(480px,calc(100vw - 28px));max-height:min(90dvh,720px);padding:0;border:1px solid #dce4ed;border-radius:20px;box-shadow:0 30px 90px #10243b40;color:#243950;background:#fff}
.student-class-dialog::backdrop{background:#10243b93;backdrop-filter:blur(3px)}
.student-class-dialog form{position:relative;padding:30px;overflow:auto;max-height:min(90dvh,720px)}
.student-class-dialog h2{margin:9px 0;font-size:24px;letter-spacing:-.04em}.student-class-dialog-date{font-size:13px;font-weight:800;color:#526a83;text-transform:capitalize}
.student-class-dialog-help{margin:16px 0 20px;padding:13px 15px;border-radius:11px;background:#f2f6f9;color:#52677e;font-size:13px;line-height:1.5}
.student-class-dialog-label{display:grid;gap:9px;color:#344e68;font-size:12px;font-weight:850}
.student-class-dialog textarea{width:100%;min-height:108px;padding:12px;border:1px solid #d5e0ea;border-radius:11px;font:inherit;font-size:16px;resize:vertical;color:#213951}
.student-class-dialog textarea:focus{outline:2px solid #a9c5dc;outline-offset:2px}
.student-class-dialog-close{position:absolute;top:17px;right:18px;width:33px;height:33px;border:0;border-radius:50%;background:#f2f5f8;color:#526b84;font-size:24px;line-height:1;cursor:pointer}
.student-class-dialog-footer{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}
.student-class-dialog-footer button{border-radius:10px;padding:11px 14px;font:inherit;font-size:12px;font-weight:850;cursor:pointer}
.student-class-dialog-secondary{border:1px solid #dce5ec;background:#fff;color:#466078}
.student-class-dialog-submit{border:0;background:#233f5d;color:#fff}.student-class-dialog-submit.is-danger{background:#b73d54}
.student-class-dialog-submit:disabled{opacity:.55;cursor:wait}
.student-class-dialog-error,.student-class-result{padding:11px 13px;border-radius:10px;font-size:12px;line-height:1.45}
.student-class-dialog-error{background:#fff0f2;color:#a53248}.student-class-result{max-width:760px;margin:0 0 14px;background:#e5f3eb;color:#246748}
@media(max-width:760px){
  .student-calendar-week{display:grid;grid-template-columns:1fr;min-width:0;min-height:0;border:0;background:transparent;gap:9px}
  .student-calendar-column{min-height:0;border:1px solid #e4eaf0;border-radius:13px;background:#fff;padding:10px}
  .student-calendar-column:last-child{border-right:1px solid #e4eaf0}
  .student-calendar-column .student-class-schedule{grid-template-columns:1fr 1fr}
  .student-calendar-column .student-class-actions{grid-template-columns:1fr 1fr}
  .student-week-switch{max-width:none;gap:2px;margin-bottom:10px}
  .student-week-switch button{font-size:10px;padding:10px 4px}
  .student-agenda-view{display:grid;grid-template-columns:repeat(2,1fr);gap:3px;max-width:220px;padding:3px;margin:0 auto 17px;background:#e9eef4;border-radius:12px}
  .student-agenda-view button{border:0;border-radius:9px;background:transparent;color:#718198;padding:9px;font-size:11px;font-weight:850}
  .student-agenda-view button[aria-pressed=true]{background:#fff;color:#1d334f;box-shadow:0 2px 8px #1a2c4118}
  .student-week-days{display:grid;gap:4px}
  .student-week-day{font:inherit;color:#50677e;cursor:pointer}
  .student-week-day[aria-pressed=true]{background:#253e5a;border-color:#253e5a;color:#fff}
  .student-week-day[aria-pressed=true] small{color:#d9e4f0}
  .student-agenda-day h2{margin:0 0 15px;font-size:15px;text-transform:capitalize;color:#263e57}
  .student-class-card{padding:16px}
  .student-class-schedule{grid-template-columns:1fr 1fr;gap:9px}
  .student-class-schedule strong{font-size:11px}
  .student-class-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0;border-radius:0}
  .student-class-dialog form{display:flex;flex-direction:column;min-height:100dvh;max-height:100dvh;padding:calc(30px + env(safe-area-inset-top)) 22px calc(20px + env(safe-area-inset-bottom))}
  .student-class-dialog-footer{margin-top:auto;padding-top:22px}.student-class-dialog-close{top:calc(15px + env(safe-area-inset-top))}
  .student-class-actions{display:grid;grid-template-columns:1fr 1fr}.student-class-action{padding:10px 5px;font-size:10px}
}
.student-payment-notice{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 20px;padding:13px 16px;border:1px solid #d7e1ec;border-radius:13px;background:#f2f6fa;color:#304963;font-size:13px;font-weight:700;line-height:1.45}
.student-payment-notice.is-success{background:#e9f6ef;border-color:#bde1ca;color:#226446}
.student-payment-notice.is-warning{background:#fff6e8;border-color:#ead5a9;color:#785618}
.student-payment-notice-close{flex:none;border:0;background:transparent;color:inherit;font-size:21px;line-height:1;cursor:pointer}
