/* Final YUNA palette: the bird logo is the only yellow element. */
.hidden{display:none!important}

/* Collapsible navigation: full-width content on desktop and an off-canvas drawer on mobile. */
.app-shell{transition:grid-template-columns .22s ease}.sidebar{transition:transform .22s ease,opacity .18s ease,box-shadow .22s ease}.menu-button{display:grid;place-items:center;width:42px;height:42px;flex:0 0 auto;margin-right:12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#183c55;cursor:pointer;font-size:23px;line-height:1}.sidebar-brand{position:relative}.sidebar-toggle-inside{display:grid;place-items:center;width:34px;height:34px;margin-left:auto;border:1px solid rgba(255,255,255,.22);border-radius:9px;background:rgba(255,255,255,.08);color:#fff;cursor:pointer;font-size:20px}.sidebar-toggle-inside:hover{background:rgba(255,255,255,.16)}.app-shell.menu-collapsed{grid-template-columns:0 minmax(0,1fr)}.app-shell.menu-collapsed .sidebar{transform:translateX(-110%);opacity:0;pointer-events:none}.app-shell.menu-collapsed main{width:100%}
@media(max-width:850px){.app-shell,.app-shell.menu-collapsed{grid-template-columns:1fr}.app-shell.menu-collapsed .sidebar{transform:none;opacity:1;pointer-events:auto}.sidebar-toggle-inside{display:grid}.menu-button{margin-right:8px}}

/* Student-manager support inbox */
.manager-chat-heading{margin-bottom:16px}.manager-chat-layout{display:block;padding:0;overflow:hidden}.manager-chat-layout.manager-side{display:grid;grid-template-columns:330px minmax(0,1fr);min-height:620px}.manager-inbox{min-width:0;border-right:1px solid var(--line);background:#f8fbfc}.manager-inbox>label{display:grid;gap:7px;padding:18px;border-bottom:1px solid var(--line);color:#315369;font-size:14px;font-weight:800}.manager-inbox input{width:100%;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit}.manager-conversation-list{max-height:550px;overflow:auto}.manager-conversation{position:relative;width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:14px 16px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.manager-conversation:hover,.manager-conversation.active{background:#eaf4f8}.manager-conversation.unread{background:#edf7fb}.manager-conversation>span:nth-child(2){display:grid;min-width:0;gap:3px}.manager-conversation b{font-size:15px}.manager-conversation small,.manager-conversation em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px;font-style:normal}.manager-conversation time{align-self:start;color:var(--muted);font-size:12px}.manager-conversation>i{position:absolute;right:14px;bottom:12px;display:grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:12px;background:#4f8eae;color:#fff;font-size:12px;font-style:normal;font-weight:800}.manager-chat-thread.chat{width:100%;max-width:none;margin:0;border:0;border-radius:0}.manager-chat-thread .messages{height:470px;min-height:370px;overflow:auto}.message{display:grid;gap:5px}.message time{justify-self:end;color:inherit;font-size:11px;opacity:.7}.chat-empty-state{min-height:180px;display:grid;place-items:center;align-content:center;gap:7px;padding:30px;color:var(--muted);text-align:center}.chat-empty-state b{color:var(--ink);font-size:17px}.chat-empty-state span{max-width:400px;font-size:14px;line-height:1.5}.nav-unread-badge{display:grid!important;place-items:center!important;width:auto!important;min-width:18px;height:18px;margin-left:auto;padding:0 5px;border-radius:12px;background:#78a9bf;color:#fff;font-size:12px!important;font-style:normal;font-weight:800}.nav-unread-badge.hidden{display:none!important}

@media(max-width:900px){.manager-chat-layout.manager-side{grid-template-columns:280px minmax(0,1fr)}}
@media(max-width:700px){.manager-chat-layout.manager-side{display:block}.manager-inbox{border-right:0;border-bottom:1px solid var(--line)}.manager-conversation-list{max-height:230px}.manager-chat-thread .messages{height:360px}.manager-chat-heading{align-items:flex-end}.manager-chat-heading .secondary-action{padding:10px}.manager-chat-layout{margin-left:-8px;margin-right:-8px}.chat form{align-items:stretch}.chat form input{min-width:0}.chat form button{padding:10px}}
.manager-request-overview{display:grid;gap:12px}.manager-request-overview article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#f8fbfc}.manager-request-overview article>span{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#e7f2f7;color:#39748f;font-weight:900}.manager-request-overview b{font-size:16px}.manager-request-overview p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.55}@media(max-width:650px){.manager-request-overview article{grid-template-columns:auto minmax(0,1fr)}.manager-request-overview article button{grid-column:1/-1;width:100%}}
.bell i,.dot{background:#6f9fb8}
.payment-status.paid{background:#e5f1f6;color:#376f8a}
.payment-status.pending{background:#edf5f8;color:#527c91}
.calendar-type-tabs button.active{background:#28536c;border-color:#28536c}
.verbs{background:linear-gradient(135deg,#285f7d,#6da6c0)}
.progress i{background:#639db9}
.messages{background:#f3f8fa}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(93,153,184,.25);outline-offset:2px}

/* White logo area over the blue navigation. */
.sidebar-brand{margin:-28px -18px 22px;padding:18px 26px 17px;background:#fff;color:#183c55;min-height:92px;box-shadow:0 1px 0 #d9e7ed}
.sidebar-brand .brand-logo{width:45px;height:56px}.login-brand{background:#fff}

/* Neutral social-profile silhouette when no photo is present. */
.avatar{background-color:#e4f0f5;background-position:center;background-size:cover;background-repeat:no-repeat}
.default-avatar{position:relative;color:transparent;overflow:hidden}
.default-avatar::before{content:"";position:absolute;width:28%;height:28%;border-radius:50%;background:#6d91a4;left:36%;top:20%}
.default-avatar::after{content:"";position:absolute;width:58%;height:34%;border-radius:50% 50% 28% 28%;background:#6d91a4;left:21%;bottom:16%}
.profile-mini{cursor:pointer}.profile-mini:hover{background:rgba(255,255,255,.05);border-radius:10px}.profile-avatar-button{border:0;cursor:pointer}.small-avatar{display:block;width:36px;height:36px;border-radius:50%;flex:0 0 auto}

/* Profile settings. */
.profile-settings-grid{display:grid;grid-template-columns:280px minmax(0,620px);gap:18px}.profile-picture-panel{text-align:center}.profile-preview{width:112px;height:112px;border-radius:50%;margin:0 auto 18px}.profile-picture-panel h3{font-size:23px;margin:0 0 10px}.profile-picture-panel .subtext{margin-top:18px}.profile-form{display:grid;gap:16px}.profile-form label{display:grid;gap:7px;font-size:16px;font-weight:700}.profile-form input{width:100%;padding:12px;border:1px solid var(--line);border-radius:9px;font:inherit}.profile-form input:disabled{background:#f1f6f8;color:var(--muted)}.profile-form button{justify-self:start}.profile-settings-grid hr{border:0;border-top:1px solid var(--line);margin:28px 0}.form-message{min-height:18px;font-size:15px;color:var(--muted)}.form-message.success{color:#39738e}.form-message.error{color:#a94d43}
.profile-form input[readonly]{background:#f1f6f8;color:#546f7f;cursor:not-allowed}.identity-lock-note{margin:0;padding:12px 14px;border:1px solid #c9deea;border-radius:12px;background:#eef7fb;color:#536f7e;font-size:15px;line-height:1.55}.identity-history-section{margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:14px;background:#f8fbfc}.identity-history-section .eyebrow{display:block;margin-bottom:10px}.identity-history-row{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-top:1px solid var(--line)}.identity-history-row:first-child{border-top:0}.identity-history-row>div{display:grid;gap:3px}.identity-history-row>div:last-child{text-align:right}.identity-history-row small,.identity-history-row span,.identity-history-row time{font-size:14px;color:var(--muted)}
@media(max-width:600px){.identity-history-row{align-items:flex-start;flex-direction:column}.identity-history-row>div:last-child{text-align:left}}

/* Course/group history in people directories. */
.directory-filters{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px;align-items:end;margin-bottom:22px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.directory-filters label{display:grid;gap:7px;min-width:0;color:#315369;font-size:15px;font-weight:800}
.directory-filters input,.directory-filters select{width:100%;height:42px;min-width:0;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:16px}
.directory-filters input::placeholder{color:#8ba0ad}
.directory-filters .wide-filter{grid-column:span 2}
.clear-directory-filters{height:42px;justify-content:center}
.admin-filters{flex-wrap:wrap}.admin-filters .role-search{min-width:220px}.admin-filters select{min-width:170px;flex:1}.person-history-row{padding:18px 0;border-bottom:1px solid var(--line)}.person-history-row:last-child{border-bottom:0}.person-summary{display:flex;align-items:center;gap:12px}.person-summary>div{display:grid;gap:3px;flex:1}.person-summary small{color:var(--muted);font-size:14px}.learning-history{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 0 48px}.history-chip{display:grid;gap:3px;padding:8px 11px;border-radius:9px;background:#edf6fa;color:#356d88;font-size:14px}.history-chip.completed{background:#f0f3f5;color:#6e7e87}.history-chip small{font-size:12px;color:inherit}.history-empty{font-size:14px;color:var(--muted)}
.contact-details{display:flex;gap:6px 12px;flex-wrap:wrap;margin-top:3px;color:#57788a;font-size:14px;font-weight:600}.contact-details span+span::before{content:"·";margin-right:12px;color:#a5b5bd}
.open-user-card{margin-left:4px;padding:8px 11px;font-size:14px;white-space:nowrap}
.settings-action-row{display:flex!important;grid-template-columns:none!important;align-items:center;justify-content:space-between;gap:18px}.settings-action-row>span{display:grid;gap:5px}
.user-modal-backdrop{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:20px;background:rgba(14,42,59,.58);backdrop-filter:blur(3px)}.user-modal-backdrop.hidden,.user-modal-card .hidden{display:none}.user-modal-card{position:relative;width:min(100%,560px);max-height:calc(100vh - 40px);overflow:auto;padding:32px;background:#fff;border-radius:18px;box-shadow:0 28px 80px rgba(8,36,52,.28)}.user-modal-card h2{margin:7px 0 8px;font-size:31px}.modal-close{position:absolute;top:15px;right:15px;width:36px;height:36px;border:0;border-radius:50%;background:#edf5f8;color:#244f67;font-size:27px;line-height:1;cursor:pointer}.create-user-form{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:24px}.create-user-form label{display:grid;gap:7px;font-size:15px;font-weight:800}.create-user-form label:first-child,.create-user-form label:nth-child(2){grid-column:1/-1}.create-user-form input,.create-user-form select{width:100%;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit}.create-user-form .form-message,.create-user-form .modal-actions{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.modal-actions button{justify-content:center}.created-user-result{text-align:center}.success-mark{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 15px;border-radius:50%;background:#e6f3f7;color:#36738f;font-size:31px;font-weight:900}.created-user-result>p{color:var(--muted);line-height:1.55}.created-user-result dl{display:grid;gap:0;margin:24px 0;text-align:left;border:1px solid var(--line);border-radius:12px;overflow:hidden}.created-user-result dl>div{display:grid;grid-template-columns:150px 1fr;gap:15px;padding:13px 15px;border-bottom:1px solid var(--line)}.created-user-result dl>div:last-child{border-bottom:0}.created-user-result dt{color:var(--muted);font-size:15px}.created-user-result dd{margin:0;font-weight:800;overflow-wrap:anywhere}.created-user-result code{padding:4px 7px;border-radius:6px;background:#edf5f8;color:#244f67;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.created-user-result .form-message{text-align:right}
.user-card-modal{width:min(100%,880px)}.user-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.user-card-heading h2{margin-bottom:10px}.user-card-meta{display:flex;align-items:center;gap:9px}.profile-state{padding:5px 9px;border-radius:18px;font-size:13px;font-weight:800}.profile-state.active{background:#e7f3f7;color:#39738e}.profile-state.blocked{background:#f8e9e7;color:#a24f48}.user-details-form{grid-template-columns:1.2fr 1fr 1fr;padding-bottom:26px;border-bottom:1px solid var(--line)}.user-details-form label:first-child,.user-details-form label:nth-child(2){grid-column:auto}.danger-action{padding:11px 16px;border:1px solid #eccbc7;border-radius:8px;background:#fff2f0;color:#a44840;font-weight:800;cursor:pointer}.temporary-password-box{display:flex;align-items:center;gap:12px;margin:20px 0;padding:15px;border:1px solid #bad7e3;border-radius:11px;background:#edf6fa}.temporary-password-box p{margin:0;color:#466c7f;font-size:15px}.temporary-password-box code{padding:6px 9px;border-radius:7px;background:#fff;color:#244f67;font-size:17px;font-weight:800}.temporary-password-box button{margin-left:auto}.user-card-section{padding:24px 0;border-bottom:1px solid var(--line)}.user-card-section:last-child{border-bottom:0;padding-bottom:0}.user-card-section h3{margin:5px 0 15px;font-size:23px}.course-assignment-form{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:12px;align-items:end}.course-assignment-form label{display:grid;gap:7px;font-size:15px;font-weight:800}.course-assignment-form input,.course-assignment-form select{width:100%;height:42px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit}.user-card-history{display:grid;gap:9px}.user-history-item{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px;border:1px solid var(--line);border-radius:11px;background:#fff}.user-history-item.completed{background:#f5f7f8}.user-history-item h4{margin:7px 0 4px;font-size:17px}.user-history-item p{margin:0;color:var(--muted);font-size:14px}.user-history-item>small{color:var(--muted);font-size:13px;white-space:nowrap}
.history-chip.course{border-left:3px solid #4d91b0}.history-chip.group{border-left:3px solid #7aa8ba}.history-chip.individual{border-left:3px solid #9ab8c5}
.lesson-assignment-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.lesson-assignment-card{display:grid;align-content:start;gap:13px;padding:18px;border:1px solid var(--line);border-radius:13px;background:#f8fbfc}.lesson-assignment-card h4{margin:9px 0 5px;font-size:19px}.lesson-assignment-card p{margin:0;color:var(--muted);font-size:15px;line-height:1.5}.lesson-assignment-card label{display:grid;gap:7px;font-size:15px;font-weight:800}.lesson-assignment-card input,.lesson-assignment-card select{width:100%;height:42px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit}.lesson-assignment-card .primary-action{justify-self:start}.lesson-time-fields{display:grid;grid-template-columns:1.4fr 1fr;gap:10px}.lesson-assignment-card .form-message{grid-column:1/-1}
.calendar-create-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.schedule-modal-card{width:min(100%,760px);overflow-x:hidden}.group-schedule-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px}.group-schedule-form>*{min-width:0}.group-schedule-form>label{display:grid;gap:7px;color:#315369;font-size:15px;font-weight:800}.group-schedule-form input,.group-schedule-form select{width:100%;height:43px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit}.group-schedule-form .full-field{grid-column:1/-1}.individual-create-form{grid-template-columns:repeat(3,minmax(0,1fr))}.weekday-picker{display:flex;gap:8px;flex-wrap:wrap;margin:0;padding:0;border:0}.weekday-picker legend{margin-bottom:9px;color:#315369;font-size:15px;font-weight:800}.weekday-picker label{cursor:pointer}.weekday-picker input{position:absolute;opacity:0;pointer-events:none}.weekday-picker span{display:grid;place-items:center;width:45px;height:38px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#527386;font-size:15px;font-weight:800}.weekday-picker input:checked+span{border-color:#5f98b4;background:#e3f0f5;color:#255d78}.schedule-preview{padding:14px;border:1px solid #c8dce5;border-radius:11px;background:#f3f8fa;color:#416779;font-size:15px;line-height:1.6;overflow-wrap:anywhere}.schedule-preview b{display:block;margin-bottom:3px;color:#214d65}.schedule-preview.empty{border-style:dashed;color:#7b919d}.timezone-note{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.group-course-block{position:relative;padding:22px;border:1px solid #cbdfe8;border-radius:14px;background:linear-gradient(135deg,#fff,#f5fafc);cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}.group-course-block:hover{border-color:#86b4c8;box-shadow:0 10px 26px rgba(33,80,104,.09);transform:translateY(-1px)}.group-course-block:focus-visible{outline:3px solid rgba(93,153,184,.25);outline-offset:2px}.group-course-block+.group-course-block{margin-top:14px}.group-course-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.group-course-head h3{margin:9px 0 0;font-size:21px}.course-schedule-state{padding:6px 10px;border-radius:18px;background:#e5f1f6;color:#3d728b;font-size:13px;font-weight:800;white-space:nowrap}.group-course-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin:18px 0;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--line)}.group-course-stats span{display:grid;gap:3px;padding:12px;background:#fff;color:var(--muted);font-size:13px}.group-course-stats b{color:var(--ink);font-size:16px}.group-course-block>p{margin:0;padding-right:120px;color:var(--muted);font-size:15px}.selected-course-date{margin-top:13px;padding:10px 12px;border-radius:9px;background:#e8f3f7;color:#326d89;font-size:15px;font-weight:800}.open-course-hint{position:absolute;right:22px;bottom:20px;color:#397691;font-size:14px;font-weight:800}
.group-course-modal-card{width:min(100%,1080px)}.group-course-summary{display:grid;grid-template-columns:1.15fr 1.35fr 1fr .9fr 1.4fr;gap:1px;margin:24px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--line)}.group-course-summary>div{display:grid;gap:6px;padding:15px;background:#f8fbfc}.group-course-summary span{color:var(--muted);font-size:13px;font-weight:700}.group-course-summary b{font-size:16px}.course-person-link{display:inline;padding:0;border:0;background:transparent;color:#246a8a;font:inherit;font-weight:800;text-align:left;text-decoration:underline;text-decoration-color:#9fc2d2;text-underline-offset:3px;cursor:pointer}.course-person-link:hover{color:#164e69;text-decoration-color:currentColor}.group-course-detail-section{padding:24px 0;border-top:1px solid var(--line)}.group-course-detail-section .section-head{margin-bottom:14px}.group-course-detail-section h3{margin:4px 0 0;font-size:23px}.group-student-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.group-student-row{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f9fbfc}.group-student-row>div{display:grid;gap:3px}.group-student-row b{font-size:15px}.group-student-row small{color:var(--muted);font-size:13px}.attendance-setup-note{margin:0 0 14px;padding:12px 14px;border:1px solid #b9d8e5;border-radius:9px;background:#edf6fa;color:#346c87;font-size:15px;font-weight:700}.group-lessons-list{display:grid;gap:10px}.group-lesson-card{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}.group-lesson-card[open]{border-color:#aecfdd;box-shadow:0 7px 20px rgba(34,83,107,.06)}.group-lesson-card summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;cursor:pointer;list-style:none}.group-lesson-card summary::-webkit-details-marker{display:none}.lesson-number{display:grid;place-items:center;width:35px;height:35px;border-radius:9px;background:#e8f3f7;color:#326e8a;font-size:15px;font-weight:800}.group-lesson-card summary>span:nth-child(2){display:grid;gap:4px}.group-lesson-card summary b{font-size:16px}.group-lesson-card summary small{color:var(--muted);font-size:13px}.lesson-state-stack{display:flex;align-items:flex-end;flex-direction:column;gap:5px}.lesson-status-pill,.attendance-summary{padding:6px 9px;border-radius:16px;font-size:13px;font-weight:800;white-space:nowrap}.lesson-status-pill.planned{background:#edf3f6;color:#64808e}.lesson-status-pill.live{background:#dceef5;color:#226481}.lesson-status-pill.finished{background:#e7f2f0;color:#3f7168}.attendance-summary{background:#f1f4f5;color:#738791}.attendance-summary.marked{background:#e5f2f6;color:#37718b}.attendance-form{padding:0 14px 14px;border-top:1px solid var(--line)}.attendance-student-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px 0}.attendance-student-row{position:relative;display:flex;align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:9px;background:#fafcfd;cursor:pointer}.attendance-student-row input{position:absolute;opacity:0}.attendance-student-row input:disabled~*{cursor:default}.attendance-check{display:grid;place-items:center;width:24px;height:24px;flex:0 0 auto;border:1px solid #b8cbd4;border-radius:7px;background:#fff;color:transparent;font-size:16px;font-weight:900}.attendance-student-row input:checked+.attendance-check{border-color:#4e8ba7;background:#4e8ba7;color:#fff}.attendance-student-row>span:last-child{display:grid;gap:2px}.attendance-student-row b{font-size:15px}.attendance-student-row small{color:var(--muted);font-size:12px}.attendance-student-row.absent{background:#f7f8f9}.attendance-actions{display:flex;align-items:center;justify-content:flex-end;gap:15px;padding-top:4px}.attendance-actions .form-message{margin-right:auto}.attendance-readonly-note{margin:2px 0 0;padding:10px 12px;border-radius:8px;background:#f3f6f7;color:var(--muted);font-size:13px}.attendance-page-intro{margin:0 0 18px;color:var(--muted);font-size:15px}
.avatar-upload-button{display:inline-block;margin-top:18px;padding:10px 14px;border:1px solid var(--line);border-radius:9px;background:#edf6fa;color:#356d88;font-size:15px;font-weight:800;cursor:pointer}.avatar-upload-button input{display:none}
.manager-permission-note,.manager-readonly-note{align-items:flex-start;gap:10px;border:1px solid #c9deea;background:#eef7fb;border-radius:14px;padding:13px 15px;margin-bottom:18px;color:var(--navy)}
.manager-permission-note{display:flex;flex-direction:column;gap:3px}.manager-permission-note span,.manager-readonly-note{font-size:16px;line-height:1.55;color:var(--muted)}
.manager-readonly-note{display:flex;margin-top:17px}
.user-details-form input[readonly]{background:#f3f7f9;color:#456779;cursor:default}
@media(max-width:1100px){.directory-filters{grid-template-columns:repeat(2,minmax(160px,1fr))}}
@media(max-width:900px){.user-details-form,.course-assignment-form{grid-template-columns:1fr 1fr}.user-details-form label:first-child,.user-details-form label:nth-child(2){grid-column:auto}.course-assignment-form button{height:42px}.lesson-assignment-grid{grid-template-columns:1fr}}
@media(max-width:900px){.group-course-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.profile-settings-grid{grid-template-columns:1fr}.sidebar-brand{margin-top:-28px}.learning-history{margin-left:0}.admin-filters select{min-width:100%}.directory-filters{grid-template-columns:1fr;gap:11px}.directory-filters .wide-filter{grid-column:span 1}.clear-directory-filters{width:100%}.person-summary{align-items:flex-start;flex-wrap:wrap}.person-summary .role-pill{margin-left:auto}.open-user-card{width:100%;margin:5px 0 0 48px}.settings-action-row{align-items:flex-start;flex-direction:column}.create-user-form,.user-details-form,.course-assignment-form{grid-template-columns:1fr}.create-user-form label,.user-details-form label{grid-column:1/-1}.user-modal-card{padding:26px 20px}.created-user-result dl>div{grid-template-columns:1fr;gap:4px}.modal-actions{display:grid;grid-template-columns:1fr}.modal-actions button{width:100%}.temporary-password-box{align-items:stretch;flex-direction:column}.user-history-item{align-items:flex-start;flex-direction:column}.user-history-item>small{white-space:normal}.lesson-time-fields{grid-template-columns:1fr}.lesson-assignment-card .primary-action{width:100%}.calendar-section-head{align-items:stretch;flex-direction:column;gap:12px}.calendar-create-actions{display:grid!important;grid-template-columns:1fr;width:100%}.calendar-create-actions button{width:100%;justify-content:center}.calendar-create-actions[style*="none"]{display:none!important}.group-schedule-form{grid-template-columns:1fr}.group-schedule-form .full-field{grid-column:1}.weekday-picker{display:flex}.weekday-picker span{width:41px}}
@media(max-width:1000px){.group-course-summary{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:700px){.group-student-list,.attendance-student-list{grid-template-columns:1fr}.group-lesson-card summary{grid-template-columns:auto minmax(0,1fr)}.attendance-summary{grid-column:2}.attendance-actions{align-items:stretch;flex-direction:column}.attendance-actions .primary-action{width:100%;justify-content:center}}
@media(max-width:600px){.group-course-head{display:grid}.course-schedule-state{justify-self:start}.group-course-stats,.group-course-summary{grid-template-columns:1fr 1fr}.group-course-block>p{padding-right:0}.open-course-hint{position:static;display:block;margin-top:13px}.group-course-modal-card{padding-left:16px;padding-right:16px}.group-lesson-card summary{padding:12px}.lesson-number{width:31px;height:31px}.lesson-state-stack{grid-column:2;align-items:flex-start}}

/* Clickable individual lessons and their full detail card. */
.clickable-event-row{align-items:center;margin:0 -10px;padding:18px 10px;border-radius:11px;cursor:pointer;transition:background .18s,box-shadow .18s}.clickable-event-row:hover{background:#f3f8fa;box-shadow:inset 3px 0 #78a9bf}.clickable-event-row:focus-visible{outline:3px solid rgba(93,153,184,.25);outline-offset:2px}.event-row-state{display:grid;justify-items:end;gap:8px;flex:0 0 auto}.event-row-state small{color:#397691;font-size:13px;font-weight:800}.individual-lesson-modal-card{width:min(100%,960px)}.individual-lesson-summary{display:grid;grid-template-columns:1.05fr 1.05fr 1.45fr .75fr .85fr;gap:1px;margin:24px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--line)}.individual-lesson-summary>div{display:grid;align-content:start;gap:6px;padding:15px;background:#f8fbfc}.individual-lesson-summary>div>span{color:var(--muted);font-size:13px;font-weight:700}.individual-lesson-summary b{font-size:15px;line-height:1.45}.individual-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.individual-detail-section{padding:20px 0;border-top:1px solid var(--line)}.individual-detail-grid .individual-detail-section{padding:18px;border:1px solid var(--line);border-radius:12px;background:#f8fbfc}.student-request-box{margin-top:11px;padding:15px;border-radius:10px;background:#edf6fa;color:#315f75;line-height:1.6}.student-request-box p{margin:0}.individual-info-stack{display:grid;align-content:start;justify-items:start;gap:10px;margin-top:12px}.individual-info-stack small{color:var(--muted);line-height:1.5}.payment-status.unrecorded{background:#edf2f4;color:#647b87}.payment-status.refunded{background:#edf2f4;color:#5f7480}.inline-action-link{color:#246a8a;font-size:15px;font-weight:800}.meeting-action{display:inline-flex;text-decoration:none}.attendance-current{margin:12px 0;padding:11px 13px;border-radius:9px;background:#f1f5f6;color:#637b88;font-size:15px;font-weight:800}.attendance-current.present{background:#e5f2f6;color:#37718b}.attendance-current.absent{background:#edf1f3;color:#657985}.individual-attendance-options{display:flex;gap:10px;margin:12px 0}.individual-attendance-options label{cursor:pointer}.individual-attendance-options input{position:absolute;opacity:0}.individual-attendance-options span{display:inline-flex;padding:10px 13px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#527386;font-size:15px;font-weight:800}.individual-attendance-options input:checked+span{border-color:#5f98b4;background:#e3f0f5;color:#255d78}.individual-attendance-form .attendance-actions{margin-top:12px}

/* Month view for all teacher-led lessons. */
.school-calendar-panel{padding:0;overflow-x:auto}.school-calendar-toolbar{position:sticky;left:0;display:grid;grid-template-columns:42px minmax(200px,1fr) 42px;align-items:center;gap:10px;min-width:900px;padding:18px 20px;border-bottom:1px solid var(--line)}.school-calendar-toolbar h3{margin:0;text-align:center;text-transform:capitalize}.school-calendar-toolbar button{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#28536c;font-size:28px;cursor:pointer}.school-calendar-week,.school-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(125px,1fr));min-width:900px}.school-calendar-week{background:#f3f8fa;border-bottom:1px solid var(--line)}.school-calendar-week b{padding:10px 12px;color:#6d8795;font-size:13px;text-align:right;text-transform:uppercase}.school-calendar-day{min-height:132px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.school-calendar-day:nth-child(7n){border-right:0}.school-calendar-day.outside{background:#f8fafb}.school-calendar-day.outside .school-calendar-date{color:#b5c2c8}.school-calendar-day.today{box-shadow:inset 0 0 0 2px #74a8bf}.school-calendar-date{display:block;margin-bottom:7px;color:#506f80;font-size:14px;font-weight:800;text-align:right}.school-calendar-events{display:grid;gap:5px}.school-calendar-event{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:5px;padding:7px 8px;border-radius:7px;color:#244f67;font-size:12px;line-height:1.25;cursor:pointer}.school-calendar-event.group{background:#dcecf3}.school-calendar-event.individual{background:#edf5f8}.school-calendar-event:hover{box-shadow:0 4px 11px rgba(32,78,101,.12)}.school-calendar-event:focus-visible{outline:2px solid #5f98b4;outline-offset:1px}.school-calendar-event-time{font-weight:800}.school-calendar-event b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-meeting-link{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#fff;color:#276985;font-size:14px;font-weight:900;text-decoration:none}.school-calendar-legend{position:sticky;left:0;display:flex;gap:18px;min-width:900px;padding:13px 20px;color:var(--muted);font-size:13px}.school-calendar-legend span{display:flex;align-items:center;gap:6px}.school-calendar-legend i{display:block;width:9px;height:9px;border-radius:50%}.group-dot{background:#8eb8c9}.individual-dot{background:#c6dce5}
.school-calendar-view-controls{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:14px}.school-calendar-mode-switch{display:flex;gap:5px;padding:4px;border:1px solid var(--line);border-radius:11px;background:#fff}.school-calendar-mode-switch button{min-height:36px;padding:7px 16px;border:0;border-radius:8px;background:transparent;color:#607a88;font:inherit;font-size:13px;font-weight:800;cursor:pointer}.school-calendar-mode-switch button.active{background:#1a455f;color:#fff}.school-calendar-view-controls label{display:grid;gap:5px;color:#315369;font-size:13px;font-weight:800}.school-calendar-view-controls input{height:42px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit}.school-calendar-day{cursor:pointer;transition:background .16s ease,box-shadow .16s ease}.school-calendar-day:hover{background:#f8fbfc;box-shadow:inset 0 0 0 1px #9bc0d0}.school-calendar-day:focus-visible{outline:2px solid #5f98b4;outline-offset:-3px}.school-calendar-more{display:block;padding:6px 7px;border-radius:7px;background:#f1f6f8;color:#477185;font-size:12px;font-weight:800;text-align:center}.school-calendar-panel.mode-week .school-calendar-day{min-height:260px}.school-calendar-panel.mode-day .school-calendar-toolbar,.school-calendar-panel.mode-day .school-calendar-grid,.school-calendar-panel.mode-day .school-calendar-legend{min-width:0}.school-calendar-panel.mode-day .school-calendar-grid{display:block}.school-day-agenda{padding:20px}.school-day-agenda header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.school-day-agenda header h3{margin:5px 0 0;text-transform:capitalize}.school-day-agenda header>b{padding:8px 11px;border-radius:20px;background:#e8f3f7;color:#34728d;font-size:13px}.school-day-agenda-list{display:grid;gap:8px}.school-day-agenda-event{display:grid;grid-template-columns:110px 110px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}.school-day-agenda-event:hover{border-color:#91bbcd;background:#f6fafb}.school-day-agenda-event time{color:#315f75;font-size:14px;font-weight:800}.school-day-agenda-event button{padding:0;border:0;background:transparent;color:#143c56;font:inherit;font-size:15px;font-weight:800;text-align:left;cursor:pointer}.school-day-agenda-event.cancelled{background:#f3f5f6;opacity:.75}.school-day-agenda-event.cancelled button{text-decoration:line-through}

@media(max-width:1000px){.individual-lesson-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.clickable-event-row{align-items:flex-start;flex-direction:column}.event-row-state{justify-items:start}.individual-lesson-summary{grid-template-columns:1fr 1fr}.individual-detail-grid{grid-template-columns:1fr}.individual-attendance-options{display:grid}.individual-attendance-options span{display:flex}.school-calendar-panel{margin-left:-4px;margin-right:-4px}.school-calendar-day{min-height:112px}}
@media(max-width:700px){.school-calendar-view-controls{align-items:stretch;flex-direction:column}.school-calendar-mode-switch{display:grid;grid-template-columns:repeat(3,1fr)}.school-calendar-mode-switch button{padding:7px 8px}.school-calendar-view-controls input{width:100%}.school-day-agenda{padding:13px}.school-day-agenda-event{grid-template-columns:85px minmax(0,1fr)}.school-day-agenda-event .tag,.school-day-agenda-event .lesson-status-pill{justify-self:start}.school-day-agenda-event button{grid-column:2}.school-calendar-panel.mode-day{overflow-x:hidden}}

/* Mobile navigation: keep the drawer above its backdrop and make long menus scrollable. */
@media(max-width:850px){
  .sidebar{z-index:45;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;box-shadow:14px 0 34px rgba(11,40,57,.2)}
  .overlay{z-index:35}
  .notification-drawer{z-index:50}
  .nav-item,.manager-link,.profile-mini,.menu-button{touch-action:manipulation}
  .menu-button{position:relative;z-index:2;display:grid;place-items:center;width:42px;height:42px;margin-right:8px;border-radius:10px;background:#fff;color:#183c55}
  .sidebar nav{flex:0 0 auto}
  .sidebar-brand{flex:0 0 auto}
}

/* Login convenience: persist the session and let the browser manage saved passwords safely. */
.login-card .remember-login{display:flex;align-items:center;gap:9px;cursor:pointer;font-size:14px;font-weight:600;color:#48687a}
.login-card .remember-login input{width:18px;height:18px;flex:0 0 auto;margin:0;padding:0;accent-color:#39738e}
.login-storage-note{margin:-7px 0 0;color:var(--muted);font-size:13px;line-height:1.45}
.account-security-summary{display:grid;grid-template-columns:1.35fr 1.35fr 1fr;gap:1px;margin:18px 0 4px;border:1px solid var(--line);border-radius:11px;overflow:hidden;background:var(--line)}
.account-security-summary>div{display:grid;align-content:start;gap:5px;padding:13px;background:#f4f9fb}.account-security-summary span,.account-security-summary small{color:var(--muted);font-size:12px}.account-security-summary b{overflow-wrap:anywhere;font-size:14px}.account-security-summary p{grid-column:1/-1;margin:0;padding:11px 13px;background:#fff;color:#5f7785;font-size:13px;line-height:1.5}.account-security-summary.error{border-color:#e2c9c6}.account-security-summary.error p{color:#9c5149;background:#fcf6f5}
@media(max-width:700px){.account-security-summary{grid-template-columns:1fr}.account-security-summary p{grid-column:auto}}

/* Clear bell icon and actionable notification destinations. */
.bell{display:grid;place-items:center;color:#234f68;cursor:pointer}.bell svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.bell:hover{background:#edf6fa}.bell i.hidden{display:none}
.notification-list{display:grid;margin-top:7px}.notification-item{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:11px;width:100%;padding:16px 5px;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:background .16s ease}.notification-item:hover{background:#f2f8fa}.notification-item:focus-visible{outline:3px solid rgba(93,153,184,.25);outline-offset:-3px}.notification-item>span:nth-child(2){display:grid;gap:5px}.notification-item b{font-size:15px}.notification-item small{color:var(--muted);font-size:13px;line-height:1.5}.notification-item .dot{margin-top:4px;opacity:0}.notification-item.unread .dot{opacity:1}.notification-arrow{align-self:center;color:#4b829c;font-size:21px;font-weight:700}.notification-item:not(.unread){opacity:.72}.notification-target{animation:notificationTargetPulse 2.4s ease}
@keyframes notificationTargetPulse{0%,100%{box-shadow:inherit}18%,68%{box-shadow:0 0 0 4px rgba(94,159,189,.28),0 12px 28px rgba(34,83,107,.13)}}

/* Expanded navigation: center the YUNA lockup and place the dark arrow on white. */
.sidebar.navigation-expanded .sidebar-brand{justify-content:center;padding-left:48px;padding-right:48px}
.sidebar.navigation-expanded .sidebar-brand-lockup{justify-content:center;width:auto}
.sidebar.navigation-expanded .sidebar-menu-control{position:absolute;top:8px;right:9px;z-index:2;justify-content:center;width:44px;min-height:44px;padding:0;background:transparent;border:0}
.sidebar.navigation-expanded .sidebar-toggle-inside{width:44px;height:44px;margin:0;color:#183c55}
.sidebar.navigation-expanded .sidebar-toggle-inside:hover{background:#eaf3f7}
@media(max-width:850px){
  .sidebar.navigation-expanded .sidebar-brand{justify-content:center;min-height:150px;padding-left:58px;padding-right:58px}
  .sidebar.navigation-expanded .sidebar-brand-lockup{justify-content:center;width:auto}
  .sidebar.navigation-expanded .sidebar-menu-control{position:absolute;top:8px;right:10px;width:44px;min-height:44px;padding:0;background:transparent}
}

/* Safe administration of group membership, teachers and cancellations. */
.group-management-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.management-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding:15px;border:1px solid var(--line);border-radius:11px;background:#f8fbfc}.management-form label{display:grid;gap:7px;min-width:0;color:#315369;font-size:14px;font-weight:800}.management-form input,.management-form select{width:100%;height:42px;min-width:0;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:15px}.management-form button{min-height:42px}.extra-lesson-form{grid-column:1/-1;grid-template-columns:repeat(4,minmax(120px,1fr)) auto}.management-note{margin:12px 0 5px;color:var(--muted);font-size:13px;line-height:1.5}.admin-course-controls>.form-message{margin-top:8px}.group-student-row{grid-template-columns:auto minmax(0,1fr) auto}.group-student-row.former-member{background:#f3f5f6;opacity:.78}.remove-student-button,.danger-link-button{padding:7px 9px;border:1px solid #d8c7c5;border-radius:8px;background:#fff;color:#975149;font:inherit;font-size:12px;font-weight:800;cursor:pointer}.remove-student-button:hover,.danger-link-button:hover{background:#f8efee}.lesson-admin-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;padding:10px 14px;border-top:1px solid var(--line);background:#f8fbfc}.lesson-edit-panel>summary{cursor:pointer;color:#174b6a;font-size:13px;font-weight:800;list-style:none}.lesson-edit-panel>summary::-webkit-details-marker{display:none}.lesson-edit-panel>summary::after{content:' ▾'}.lesson-edit-panel[open]>summary::after{content:' ▴'}.lesson-edit-form{display:grid;grid-template-columns:repeat(4,minmax(105px,1fr)) auto;align-items:end;gap:9px;margin-top:10px}.lesson-edit-form label{display:grid;gap:5px;color:#315369;font-size:12px;font-weight:800}.lesson-edit-form input,.lesson-edit-form select{width:100%;height:38px;min-width:0;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:13px}.lesson-edit-form button{min-height:38px;padding:8px 11px}.lesson-edit-form .form-message{grid-column:1/-1}.lesson-student-form{grid-column:1/-1;display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:9px;padding-top:10px;border-top:1px dashed var(--line)}.lesson-student-form label{display:grid;gap:5px;color:#315369;font-size:12px;font-weight:800}.lesson-student-form input{width:100%;height:38px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:13px}.lesson-student-form button{min-height:38px}.lesson-student-form .form-message{grid-column:1/-1}.lesson-student-note{grid-column:1/-1;margin:0;padding-top:8px;border-top:1px dashed var(--line);color:var(--muted);font-size:12px}.lesson-status-pill.cancelled{background:#edf0f2;color:#687a84}.group-lesson-card.cancelled-lesson{background:#f5f7f8}.group-lesson-card.cancelled-lesson summary b,.group-lesson-card.cancelled-lesson summary small{text-decoration:line-through;text-decoration-color:#a8b4ba}.school-calendar-event.cancelled{background:#edf0f2;color:#73858e;text-decoration:line-through}.individual-schedule-form{grid-template-columns:repeat(3,minmax(120px,1fr)) auto;margin-top:12px}.individual-schedule-form .form-message{grid-column:1/-1}.individual-management-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin-top:12px}.individual-management-row .management-form{padding:0;border:0;background:transparent}.individual-management-row>.danger-action{height:42px}.danger-action:disabled,.secondary-action:disabled,.remove-student-button:disabled,.danger-link-button:disabled{cursor:not-allowed;opacity:.48}
@media(max-width:1100px){.extra-lesson-form,.lesson-edit-form{grid-template-columns:repeat(2,minmax(0,1fr))}.extra-lesson-form button,.lesson-edit-form button{grid-column:1/-1}}
@media(max-width:850px){.group-management-grid{grid-template-columns:1fr}.management-form,.extra-lesson-form,.lesson-edit-form,.lesson-student-form,.individual-schedule-form{grid-template-columns:1fr}.management-form button,.extra-lesson-form button,.lesson-edit-form button,.lesson-student-form button,.individual-schedule-form button{grid-column:auto;width:100%;justify-content:center}.group-student-row{grid-template-columns:auto minmax(0,1fr)}.remove-student-button{grid-column:1/-1;width:100%}.lesson-admin-actions{grid-template-columns:1fr}.lesson-admin-actions>.danger-link-button{width:100%}.individual-management-row{grid-template-columns:1fr}.individual-management-row>.danger-action{width:100%}}

/* Soft removal keeps lesson history visible while revoking participation. */
.attendance-participant-line{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px}.attendance-participant-line>.attendance-student-row{width:100%}.remove-lesson-student-button{display:grid;place-items:center;width:30px;height:30px;border:1px solid #d8c7c5;border-radius:8px;background:#fff;color:#975149;font:inherit;font-size:19px;font-weight:700;cursor:pointer}.remove-lesson-student-button:hover{background:#f8efee}.removed-participant{cursor:default;background:#f2f4f5;color:#7d8a90}.removed-participant b{text-decoration:line-through;text-decoration-thickness:1px}.removed-participant .attendance-check{border-color:#c9d1d5;background:#e5eaec;color:#84939a}.removed-participant small{font-weight:700}.remove-lesson-student-button:disabled{cursor:not-allowed;opacity:.48}
@media(max-width:700px){.attendance-participant-line{grid-template-columns:minmax(0,1fr) auto}.remove-lesson-student-button{width:34px;height:34px}}

/* Manager requests that require an administrator decision. */
.approval-request-create,.approval-request-journal{padding:20px;border:1px solid var(--line);border-radius:13px;background:#fff}.approval-request-create>div>p{max-width:680px;color:var(--muted);font-size:14px;line-height:1.55}.approval-request-create form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:17px}.approval-request-create label,.approval-request-toolbar label,.approval-review-form label{display:grid;gap:6px;color:#315369;font-size:13px;font-weight:800}.approval-request-create input,.approval-request-create select,.approval-request-create textarea,.approval-request-toolbar input,.approval-request-toolbar select,.approval-review-form textarea{width:100%;min-width:0;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:14px}.approval-request-create input,.approval-request-create select,.approval-request-toolbar input,.approval-request-toolbar select{height:42px}.approval-request-create textarea,.approval-review-form textarea{resize:vertical}.approval-request-create [required]:user-invalid{border-color:#c8756c;box-shadow:0 0 0 3px rgba(200,117,108,.1)}.approval-request-create .full-field{grid-column:1/-1}.approval-request-create button.full-field{justify-self:end;width:auto}.approval-request-create button:disabled{cursor:not-allowed;opacity:.48}.request-event-picker{grid-column:1/-1;display:grid;gap:12px;padding:14px;border:1px solid #cfe0e8;border-radius:11px;background:#f7fbfc}.request-event-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.request-event-choice{display:grid;gap:6px}.request-event-choice small{color:var(--muted);font-size:12px;font-weight:600;line-height:1.45}.approval-request-journal{margin-top:18px}.approval-request-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px}.approval-request-heading h3,.approval-request-create h3{margin:4px 0 0}.approval-request-list{display:grid;gap:12px}.approval-request-card{display:grid;gap:12px;padding:17px;border:1px solid var(--line);border-left:4px solid #7ca9bc;border-radius:11px;background:#fff}.approval-request-card.approved{border-left-color:#70a08d}.approval-request-card.rejected{border-left-color:#a98d88;background:#fbf9f8}.approval-request-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.approval-request-card header>div{display:grid;gap:5px}.approval-request-card h3{margin:0;font-size:17px}.approval-request-card header small{color:var(--muted);font-size:12px}.approval-status{display:inline-flex;flex:0 0 auto;padding:6px 9px;border-radius:18px;background:#e7f1f5;color:#3c738d;font-size:12px;font-weight:800}.approval-status.approved{background:#e7f2ed;color:#4e806d}.approval-status.rejected{background:#f3eae8;color:#8e5e57}.approval-request-details{margin:0;padding:9px 11px;border-radius:8px;background:#edf6fa;color:#315f75;font-size:13px;font-weight:700}.approval-request-description{margin:0;color:#405f70;font-size:14px;line-height:1.6}.approval-admin-comment,.approval-manual-note{padding:11px 13px;border-radius:9px;background:#f3f7f9}.approval-admin-comment b{font-size:13px}.approval-admin-comment p,.approval-manual-note{margin:4px 0 0;color:#607987;font-size:13px;line-height:1.5}.approval-manual-note{margin:0;background:#f6f2ee;color:#806d5d}.approval-review-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:11px;padding-top:12px;border-top:1px solid var(--line)}.approval-review-form>div{display:flex;gap:8px}.approval-review-form .form-message{grid-column:1/-1}.approval-request-toolbar{display:grid;grid-template-columns:2fr 1fr 1fr auto;align-items:end;gap:10px;margin-bottom:16px;padding:15px;border:1px solid var(--line);border-radius:11px;background:#f8fbfc}.approval-request-toolbar button{min-height:42px}
@media(max-width:850px){.approval-request-create form{grid-template-columns:1fr 1fr}.request-event-filters{grid-template-columns:1fr 1fr}.approval-request-toolbar{grid-template-columns:1fr 1fr}.approval-request-toolbar button{width:100%}.approval-review-form{grid-template-columns:1fr}.approval-review-form>div{display:grid;grid-template-columns:1fr 1fr}.approval-review-form button{width:100%}}
@media(max-width:600px){.approval-request-create form,.request-event-filters,.approval-request-toolbar{grid-template-columns:1fr}.approval-request-create button.full-field{justify-self:stretch;width:100%}.approval-request-heading,.approval-request-card header{align-items:flex-start;flex-direction:column}.approval-review-form>div{grid-template-columns:1fr}}

/* Compact student directory; learning history lives inside the student card. */
.student-directory-filters{grid-template-columns:2fr repeat(4,minmax(135px,1fr))}.student-directory-filters .wide-filter{grid-column:auto}.student-directory-row{padding:15px 0}.student-directory-row .person-summary{min-height:48px}.user-history-filters{display:grid;grid-template-columns:1fr 1.35fr 1fr auto;align-items:end;gap:10px;margin:0 0 14px;padding:14px;border:1px solid var(--line);border-radius:11px;background:#f8fbfc}.user-history-filters label{display:grid;gap:6px;color:#315369;font-size:13px;font-weight:800}.user-history-filters input,.user-history-filters select{width:100%;height:39px;min-width:0;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:14px}.user-history-filters button{min-height:39px}.user-history-tags{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.history-state{padding:5px 8px;border-radius:18px;font-size:12px;font-weight:800}.history-state.active{background:#e5f2f6;color:#39728b}.history-state.completed{background:#e9edef;color:#6b7c85}
.compact-directory-row{padding:15px 0}.compact-directory-row+.compact-directory-row{border-top:1px solid var(--line)}.compact-directory-row .person-summary{min-height:48px}.compact-directory-row .learning-history{display:none}
@media(max-width:1100px){.student-directory-filters{grid-template-columns:repeat(2,minmax(160px,1fr))}.student-directory-filters .wide-filter{grid-column:span 2}.user-history-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.user-history-filters button{width:100%}}
@media(max-width:700px){.student-directory-filters,.user-history-filters{grid-template-columns:1fr}.student-directory-filters .wide-filter{grid-column:auto}.user-history-filters button{width:100%}}

/* Finance journal, statistics and teacher compensation. */
.expanded-sales-filters{grid-template-columns:repeat(4,minmax(150px,1fr))}.expanded-sales-filters button{min-height:42px}.detailed-sales-table{min-width:1080px}.payment-row{cursor:pointer}.payment-row:hover{background:#f5f9fb}.payment-row td:nth-child(3) small{display:block;margin-top:4px;color:var(--muted);font-size:13px}.payment-status.failed{background:#f8e9e7;color:#a24f48}.payment-status.partially_refunded{background:#e9eef1;color:#58717f}.payment-status-dot{display:block;width:10px;height:10px;border-radius:50%;background:#9aacb5;box-shadow:0 0 0 4px #f1f5f7}.payment-status-dot.paid{background:#5f9c86;box-shadow:0 0 0 4px #e8f3ef}.payment-status-dot.failed{background:#c76d63;box-shadow:0 0 0 4px #f8e9e7}.payment-status-dot.pending{background:#789cac;box-shadow:0 0 0 4px #e9f1f5}.payment-status-dot.refunded,.payment-status-dot.partially_refunded{background:#738791;box-shadow:0 0 0 4px #edf1f3}.payment-details-card{width:min(100%,860px)}.payment-detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:4px 0 20px}.payment-detail-heading h2{margin-bottom:7px}.payment-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--line)}.payment-detail-grid>div{display:grid;gap:6px;padding:14px;background:#f8fbfc}.payment-detail-grid span{color:var(--muted);font-size:13px;font-weight:700}.payment-detail-grid b{overflow-wrap:anywhere;font-size:15px}.payment-receipt-box{display:flex;align-items:center;justify-content:space-between;margin:16px 0;padding:14px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--muted);font-size:14px}.refund-panel{margin-top:20px;padding:18px;border:1px solid #dfcfcc;border-radius:12px;background:#fcf8f7}.refund-panel>p{color:#725e5a;font-size:14px;line-height:1.55}.refund-panel form{display:grid;grid-template-columns:180px minmax(0,1fr) auto;align-items:end;gap:12px}.refund-panel label{display:grid;gap:6px;color:#4d626d;font-size:14px;font-weight:800}.refund-panel input,.refund-panel textarea{width:100%;padding:10px;border:1px solid #d7c8c5;border-radius:8px;background:#fff;color:var(--ink);font:inherit}.refund-panel .form-message{grid-column:1/-1}.teacher-rates-form{display:grid;grid-template-columns:repeat(5,minmax(125px,1fr));gap:10px;align-items:end}.teacher-rates-form label{display:grid;gap:6px;color:#315369;font-size:13px;font-weight:800}.teacher-rates-form input{width:100%;height:42px;padding:0 10px;border:1px solid var(--line);border-radius:8px;color:var(--ink);font:inherit}.teacher-rates-form label span{color:var(--muted);font-size:12px;font-weight:600}.teacher-rates-form button{min-height:42px}.teacher-rates-form .form-message{grid-column:1/-1}
.statistics-filter-panel{margin-bottom:18px}.statistics-filters{display:grid;grid-template-columns:repeat(5,minmax(145px,1fr)) auto;align-items:end;gap:10px}.statistics-filters label{display:grid;gap:6px;color:#315369;font-size:14px;font-weight:800}.statistics-filters input,.statistics-filters select{width:100%;height:42px;min-width:0;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:14px}.statistics-filters button{min-height:42px}.statistics-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.statistics-kpis button{display:grid;gap:7px;padding:20px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:transform .16s,box-shadow .16s}.statistics-kpis button:hover{transform:translateY(-2px);box-shadow:0 9px 22px rgba(42,88,109,.08)}.statistics-kpis span,.statistics-kpis small{color:var(--muted);font-size:13px}.statistics-kpis b{font-size:28px}.statistics-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.statistics-card{min-width:0}.statistics-wide{grid-column:1/-1}.statistics-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:17px}.statistics-card-head h3{margin:5px 0 0;font-size:21px}.statistics-card-head>small{max-width:340px;color:var(--muted);font-size:12px;text-align:right}.metric-bars{display:grid;gap:15px}.metric-bars>div{display:grid;gap:7px}.metric-bars span{display:flex;justify-content:space-between;gap:14px}.metric-bars b{font-size:14px}.metric-bars small{color:var(--muted);font-size:13px}.metric-bars i,.group-occupancy-list i{display:block;height:8px;border-radius:10px;background:#e7eef2;overflow:hidden}.metric-bars em,.group-occupancy-list em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7aacc2,#4e849e)}.finance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}.finance-summary span{display:grid;gap:4px;color:var(--muted);font-size:12px}.finance-summary b{color:var(--ink);font-size:15px}.school-structure{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}.school-structure>div{display:grid;gap:6px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#f8fbfc}.school-structure span,.school-structure small{color:var(--muted);font-size:12px}.school-structure b{font-size:25px}.attendance-statistics{display:flex;align-items:center;gap:28px}.attendance-ring{position:relative;display:grid;place-items:center;width:132px;height:132px;flex:0 0 auto;border-radius:50%;background:conic-gradient(#5c94ad calc(var(--attendance)*1%),#e5edf1 0)}.attendance-ring:before{content:'';position:absolute;width:94px;height:94px;border-radius:50%;background:#fff}.attendance-ring span{position:relative;z-index:1;display:grid;text-align:center}.attendance-ring b{font-size:25px}.attendance-ring small{color:var(--muted);font-size:12px}.attendance-legend{display:grid;gap:12px;flex:1}.attendance-legend span{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;color:#537080;font-size:14px}.attendance-legend i{width:9px;height:9px;border-radius:50%}.attendance-legend i.present{background:#5f9c86}.attendance-legend i.absent{background:#c77a70}.attendance-legend i.unmarked{background:#9cabb3}.group-occupancy-list{display:grid;gap:9px}.group-occupancy-list button{display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,.8fr) auto;align-items:center;gap:12px;width:100%;padding:11px;border:1px solid var(--line);border-radius:9px;background:#f9fbfc;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.group-occupancy-list button:hover{border-color:#a8cbd9;background:#f3f8fa}.group-occupancy-list span{display:grid;gap:3px}.group-occupancy-list b{font-size:14px}.group-occupancy-list small{color:var(--muted);font-size:12px}.group-occupancy-list strong{color:#3e7188;font-size:14px}
@media(max-width:1200px){.expanded-sales-filters,.statistics-filters{grid-template-columns:repeat(3,minmax(150px,1fr))}.teacher-rates-form{grid-template-columns:repeat(3,minmax(140px,1fr))}}
@media(max-width:900px){.statistics-kpis{grid-template-columns:1fr 1fr}.statistics-grid{grid-template-columns:1fr}.statistics-wide{grid-column:auto}.refund-panel form{grid-template-columns:1fr 1fr}.refund-panel button{grid-column:1/-1}.teacher-rates-form{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.expanded-sales-filters,.statistics-filters,.statistics-kpis,.teacher-rates-form,.payment-detail-grid,.finance-summary{grid-template-columns:1fr}.statistics-grid{gap:12px}.statistics-card-head{display:grid}.statistics-card-head>small{text-align:left}.school-structure{grid-template-columns:1fr}.attendance-statistics{align-items:flex-start;flex-direction:column}.group-occupancy-list button{grid-template-columns:1fr}.refund-panel form{grid-template-columns:1fr}.payment-detail-heading{display:grid}.payment-detail-heading .payment-status{justify-self:start}}

/* Persistent YUNA brand: the logo stays white, while the navigation control lives on blue. */
.app-shell{grid-template-columns:245px minmax(0,1fr)}
.sidebar{padding:0;background:#163c55;overflow:hidden;transform:none;opacity:1;pointer-events:auto}
.sidebar-brand{position:relative;display:flex;align-items:center;width:100%;min-height:104px;margin:0;padding:14px 24px;background:#fff;color:#183c55;box-shadow:0 1px 0 #d9e7ed}
.sidebar-brand-lockup{display:flex;align-items:center;gap:12px;width:100%}
.sidebar-brand-lockup span{font-size:24px;font-weight:800;letter-spacing:2px}
.sidebar-brand .brand-logo{width:45px;height:56px}
.sidebar-menu-control{display:flex;justify-content:flex-end;min-height:56px;padding:4px 18px;background:#163c55;border-bottom:1px solid rgba(255,255,255,.1)}
.sidebar-toggle-inside{display:flex;align-items:center;justify-content:center;width:52px;height:48px;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:#fff;cursor:pointer;font:inherit;font-size:33px;font-weight:500;line-height:1}
.sidebar-toggle-inside:hover{background:rgba(255,255,255,.08)}
.menu-toggle-arrow{display:block;transition:transform .18s ease}
.sidebar-toggle-inside[aria-expanded="false"] .menu-toggle-arrow{transform:rotate(180deg)}
.sidebar-toggle-inside[aria-expanded="true"]{margin-left:auto}
.sidebar:not(.navigation-expanded) .sidebar-menu-control{background:#f4f8fa;border-bottom:0}
.sidebar:not(.navigation-expanded) .sidebar-toggle-inside{color:#183c55}
.sidebar:not(.navigation-expanded) .sidebar-toggle-inside:hover{background:#e6f0f5}
.sidebar-menu-panel{display:flex;flex:1;min-height:0;flex-direction:column;padding:14px 18px 28px;background:#163c55;color:#fff;overflow-y:auto;overscroll-behavior:contain}
.sidebar-menu-panel nav{flex:0 0 auto}.sidebar-menu-panel .manager-link{margin-top:auto}
.app-shell.menu-collapsed{grid-template-columns:104px minmax(0,1fr)}
.app-shell.menu-collapsed .sidebar{height:max-content;background:transparent;transform:none;opacity:1;pointer-events:auto}
.app-shell.menu-collapsed .sidebar-brand{min-height:136px;padding:12px 8px}
.app-shell.menu-collapsed .sidebar-brand-lockup{flex-direction:column;gap:5px}
.app-shell.menu-collapsed .sidebar-brand-lockup span{font-size:16px}
.app-shell.menu-collapsed .sidebar-brand .brand-logo{width:40px;height:50px}
.app-shell.menu-collapsed .sidebar-menu-control{justify-content:center;min-height:64px;padding:6px;background:#f4f8fa;border-bottom:0}
.app-shell.menu-collapsed .sidebar-menu-panel{display:none}

@media(max-width:850px){
  .app-shell,.app-shell.menu-collapsed{display:block;padding-top:150px}
  .sidebar,.app-shell.menu-collapsed .sidebar{position:fixed;inset:0 0 auto 0;z-index:45;width:100%;height:150px;background:#fff;overflow:visible;box-shadow:0 1px 14px rgba(11,40,57,.08);transform:none;opacity:1;pointer-events:auto}
  .sidebar-brand,.app-shell.menu-collapsed .sidebar-brand{width:100%;min-height:94px;margin:0;padding:10px 18px}
  .sidebar-brand-lockup,.app-shell.menu-collapsed .sidebar-brand-lockup{flex-direction:row;gap:12px;width:auto}
  .sidebar-brand-lockup span,.app-shell.menu-collapsed .sidebar-brand-lockup span{font-size:22px}
  .sidebar-brand .brand-logo,.app-shell.menu-collapsed .sidebar-brand .brand-logo{width:40px;height:50px}
  .sidebar-menu-control,.app-shell.menu-collapsed .sidebar-menu-control{justify-content:flex-start;width:100%;min-height:56px;padding:9px 18px;background:#163c55}
  .sidebar-toggle-inside[aria-expanded="true"]{margin-left:auto}
  .sidebar-menu-panel,.app-shell.menu-collapsed .sidebar-menu-panel{position:fixed;top:150px;bottom:0;left:0;display:flex;width:min(285px,86vw);height:calc(100vh - 150px);padding:14px 18px 24px;background:#163c55;box-shadow:14px 16px 34px rgba(11,40,57,.2);overflow-y:auto;transform:translateX(-110%);opacity:0;pointer-events:none;transition:transform .22s ease,opacity .18s ease}
  .sidebar.open .sidebar-menu-panel{transform:translateX(0);opacity:1;pointer-events:auto}
}

.approval-auto-note{margin:0;padding:11px 13px;border-radius:9px;background:#e7f2ed;color:#4e806d;font-size:13px;font-weight:700;line-height:1.5}

/* Batch manager requests: several lessons and students in one approval. */
.request-batch-panel{display:grid;gap:14px;padding:15px;border:1px solid #bfd8e3;border-radius:12px;background:#f5fafc}
.request-batch-empty{margin:0;padding:14px;border:1px dashed #bfd3dc;border-radius:9px;color:var(--muted);font-size:14px;text-align:center}
.request-batch-section{display:grid;gap:11px;padding:15px;border:1px solid var(--line);border-radius:11px;background:#fff}
.request-batch-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.request-batch-heading h4,.request-reschedule-fields h4{margin:4px 0 0;font-size:18px}
.request-batch-heading>div:last-child{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.secondary-action.compact{min-height:34px;padding:7px 10px;font-size:13px}
.request-batch-lessons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:320px;overflow:auto}
.request-batch-lesson{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:9px;background:#f8fbfc;cursor:pointer}
.request-batch-lesson:has(input:checked){border-color:#82b1c5;background:#eaf5f9}
.request-batch-lesson input,.request-batch-student>label:first-child input{width:18px!important;height:18px!important;margin:0;accent-color:#397993}
.request-batch-lesson span,.request-batch-student>label:first-child span{display:grid;gap:3px;min-width:0}
.request-batch-lesson b,.request-batch-student b{font-size:14px}
.request-batch-lesson small,.request-batch-student small{overflow-wrap:anywhere;color:var(--muted);font-size:12px;font-weight:600}
.request-batch-section>p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.request-batch-students{display:grid;gap:8px;max-height:420px;overflow:auto}
.request-batch-student{display:grid;grid-template-columns:minmax(220px,1.5fr);align-items:end;gap:9px;padding:11px;border:1px solid var(--line);border-radius:9px;background:#f8fbfc}
.request-batch-student.with-refund{grid-template-columns:minmax(220px,1.5fr) minmax(150px,1fr) 130px}
.request-batch-student>label:first-child{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;min-height:42px;cursor:pointer}
.request-batch-student input:disabled{background:#edf2f4;color:#8c9ca4}
.request-batch-summary{margin:0;padding:11px 13px;border-radius:9px;background:#e7f2f7;color:#326b85;font-size:14px;font-weight:800}
.request-reschedule-fields{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(140px,1fr));align-items:end;gap:11px}
.request-reschedule-fields>div>p{margin:5px 0 0;color:var(--muted);font-size:13px}
@media(max-width:900px){.request-batch-student.with-refund,.request-reschedule-fields{grid-template-columns:1fr 1fr}.request-batch-student.with-refund>label:first-child,.request-reschedule-fields>div{grid-column:1/-1}}
@media(max-width:650px){.request-batch-heading{display:grid}.request-batch-heading>div:last-child{justify-content:flex-start}.request-batch-lessons,.request-batch-student.with-refund,.request-reschedule-fields{grid-template-columns:1fr}.request-batch-student.with-refund>label:first-child,.request-reschedule-fields>div{grid-column:auto}.request-batch-section{padding:11px}.request-batch-panel{padding:10px}}

/* Unified communication, course links and live student schedule. */
.new-conversation-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line);background:#f2f8fa}
.new-conversation-form label{display:grid;gap:6px;color:#315369;font-size:13px;font-weight:800}
.new-conversation-form input{height:40px}
.new-conversation-form button{min-height:40px;padding:8px 11px}
.chat-role-filters{display:flex;gap:5px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line)}
.chat-role-filters button{padding:6px 8px;border:1px solid #cbdde5;border-radius:18px;background:#fff;color:#527386;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.chat-role-filters button.active{border-color:#5e95ae;background:#e5f1f6;color:#285f79}
.manager-conversation .course-person-link{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.manager-chat-layout.teacher-support-mode{display:block;max-width:920px;margin-right:auto}.manager-chat-layout.teacher-support-mode .manager-chat-thread .messages{height:520px}.manager-chat-layout.teacher-support-mode .chat-head{padding:18px 22px}.manager-chat-layout.teacher-support-mode #managerChatStatus{font-weight:700}
.course-links-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.course-link-card{display:grid;align-content:center;justify-items:start;gap:8px;min-height:86px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#f8fbfc}
.course-link-card small,.lesson-link-row small{color:var(--muted);font-size:12px;line-height:1.45}
.group-link-form{margin-top:10px}
.lesson-link-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-top:1px solid var(--line);background:#f6fafb;color:#5c7481;font-size:13px}
.lesson-edit-form{grid-template-columns:repeat(5,minmax(105px,1fr)) auto}
.individual-schedule-form{grid-template-columns:repeat(4,minmax(120px,1fr)) auto}
.student-event-card .payment-status,.student-learning-card .payment-status,.group-student-row .payment-status,.user-history-tags .payment-status{justify-self:start;margin-top:5px}
.student-join-button{display:grid;place-items:center;border-color:#1d5b78;background:#1d5b78;color:#fff;text-decoration:none;box-shadow:0 5px 13px rgba(29,91,120,.18)}
.student-link-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 14px;border-radius:9px;background:#1d5b78;color:#fff;font-size:14px;font-weight:800;text-decoration:none;box-shadow:0 5px 13px rgba(29,91,120,.15)}
.student-link-button:hover,.student-link-button:focus-visible{background:#123f58;color:#fff}.student-link-pending{color:#7b919d}
body[data-user-role="student"] .notice-join-link,
body[data-user-role="student"] .student-learning-card>a.secondary-action{border-color:#1d5b78;background:#1d5b78;color:#fff;text-decoration:none;box-shadow:0 5px 13px rgba(29,91,120,.15)}
.student-chat-close{display:none}
.disabled-round{display:grid;place-items:center;color:#91a3ac;background:#f3f6f7}
.notice-join-link{margin-left:auto;padding:11px 18px;border-radius:8px;background:#fff;color:var(--ink);font-weight:800;text-decoration:none}
.notice-link-pending{margin-left:auto;color:#bed0d9;font-size:13px}
.student-calendar-list,.student-learning-list{display:grid;gap:10px}
.student-calendar-row,.student-learning-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:15px;padding:14px;border:1px solid var(--line);border-radius:11px;background:#fff}
.student-calendar-row time{min-width:110px;color:#315f75;font-size:14px;font-weight:800}
.student-calendar-row>span,.student-learning-card>div{display:grid;gap:4px}
.student-calendar-row b,.student-learning-card h3{margin:0;font-size:16px}
.student-calendar-row small,.student-learning-card p,.student-learning-card>small{margin:0;color:var(--muted);font-size:13px}
.student-learning-card{cursor:pointer}
.student-learning-card:hover{border-color:#9fc6d6;background:#f8fbfc}
.compact-empty{grid-column:1/-1;padding:22px}
.payment-status.unrecorded{background:#edf2f4;color:#647b87}
.payment-status.refunded{background:#edf2f4;color:#5f7480}
@media(max-width:1100px){.lesson-edit-form,.individual-schedule-form{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-edit-form button,.individual-schedule-form button{grid-column:1/-1}}
@media(max-width:700px){.new-conversation-form,.course-links-overview,.student-calendar-row,.student-learning-card,.lesson-edit-form,.individual-schedule-form{grid-template-columns:1fr}.new-conversation-form button,.lesson-edit-form button,.individual-schedule-form button{grid-column:auto;width:100%}.student-calendar-row time{min-width:0}.notice{align-items:flex-start;flex-wrap:wrap}.notice-join-link,.notice-link-pending{width:100%;margin-left:0;text-align:center}.lesson-link-row{align-items:flex-start;flex-direction:column}}

/* Teacher-only overview: no platform-wide users or administrative statistics. */
.teacher-overview{display:grid;gap:20px}
.teacher-overview.hidden{display:none}
.teacher-dashboard-grid{display:grid;grid-template-columns:minmax(300px,.82fr) minmax(420px,1.18fr);gap:20px}
.teacher-next-panel{min-height:100%}
.teacher-next-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;padding:20px;border-radius:13px;background:#173d56;color:#fff}
.teacher-next-card h3{margin:10px 0 6px;font-size:22px}
.teacher-next-card p,.teacher-next-card small{display:block;margin:0;color:#d5e4eb;font-size:14px;line-height:1.55}
.teacher-next-card .tag{background:#e6f3f8;color:#2b708f}
.teacher-next-card .primary-action{background:#fff;color:#173d56;text-decoration:none}
.teacher-upcoming-list,.teacher-group-list{display:grid;gap:9px}
.teacher-upcoming-card{display:grid;grid-template-columns:105px minmax(0,1fr) auto;align-items:center;gap:13px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fbfc;cursor:pointer}
.teacher-upcoming-card:hover,.teacher-group-card:hover{border-color:#91bbcd;background:#f1f8fa}
.teacher-upcoming-card time{display:grid;gap:3px;color:#617b89;font-size:12px;font-weight:700}
.teacher-upcoming-card time b{color:#173d56;font-size:18px}
.teacher-upcoming-card h3,.teacher-group-card h3{margin:5px 0 3px;font-size:15px}
.teacher-upcoming-card p,.teacher-group-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}
.teacher-upcoming-card .tag{font-size:11px}
.teacher-link-pending{color:var(--muted);font-size:12px;text-align:right}
.teacher-groups-panel{overflow:hidden}
.teacher-group-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.teacher-group-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:15px;border:1px solid var(--line);border-radius:11px;background:#fff;cursor:pointer}
.teacher-group-card>span{color:#2d6f8c;font-size:13px;font-weight:800}
@media(max-width:1100px){.teacher-dashboard-grid{grid-template-columns:1fr}.teacher-group-list{grid-template-columns:1fr}}
@media(max-width:650px){.teacher-upcoming-card,.teacher-next-card,.teacher-group-card{grid-template-columns:1fr}.teacher-upcoming-card .secondary-action,.teacher-next-card .primary-action{width:100%;text-align:center}.teacher-link-pending{text-align:left}.teacher-stats{grid-template-columns:1fr 1fr}}

/* Teacher availability: weekly windows for future individual bookings. */
.availability-heading{align-items:flex-end}.availability-heading .subtext{max-width:760px;line-height:1.6}
.availability-rules{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.availability-rules span{padding:8px 11px;border-radius:18px;background:#e7f2f7;color:#3f7187;font-size:12px;font-weight:800}
.availability-panel{padding:0;overflow:hidden}.availability-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border-bottom:1px solid var(--line);background:#f8fbfc}.availability-toolbar>div:last-child{display:grid;gap:4px;text-align:right}.availability-toolbar>div:last-child span{color:var(--ink);font-size:15px;font-weight:800}.availability-toolbar>div:last-child small{color:var(--muted);font-size:12px}.availability-toolbar>div:last-child small.confirmed{color:#4f8773;font-weight:800}
.availability-week-tabs{display:flex;gap:7px}.availability-week-tabs button{min-height:38px;padding:8px 13px;border:1px solid #c7dce5;border-radius:9px;background:#fff;color:#476c7e;font:inherit;font-size:13px;font-weight:800;cursor:pointer}.availability-week-tabs button.active{border-color:#4f8aa4;background:#2e6b86;color:#fff}
.availability-week-grid{display:grid;grid-template-columns:repeat(7,minmax(185px,1fr));gap:10px;padding:16px;overflow-x:auto;overscroll-behavior-inline:contain}.availability-week-grid>.empty-filter-result{grid-column:1/-1}
.availability-day{display:flex;min-height:310px;flex-direction:column;padding:13px;border:1px solid var(--line);border-radius:11px;background:#fff}.availability-day>header{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 8px;padding-bottom:10px;border-bottom:1px solid #e6eef2}.availability-day>header span{text-transform:capitalize;color:#547181;font-size:13px;font-weight:800}.availability-day>header b{color:#173d56;font-size:14px}.availability-day>header em{grid-column:1/-1;color:#4f8ca5;font-size:11px;font-style:normal;font-weight:800}
.availability-day.locked{background:#f3f6f7;color:#8798a0}.availability-day.locked>header b,.availability-day.locked>header span{color:#8798a0}.availability-windows{display:grid;gap:7px;margin:12px 0}.availability-empty{margin:5px 0;color:#879ba5;font-size:12px;line-height:1.45}
.availability-window{display:grid;grid-template-columns:minmax(64px,1fr) auto minmax(64px,1fr) auto;align-items:center;gap:5px;padding:7px;border:1px solid #c9dfe8;border-radius:8px;background:#edf7fa}.availability-window select{min-width:0;height:34px;padding:0 5px;border:1px solid #bdd5df;border-radius:6px;background:#fff;color:#214b61;font:inherit;font-size:12px;font-weight:700}.availability-window>span{color:#77929f;font-size:12px}.availability-window button{width:28px;height:28px;padding:0;border:0;border-radius:50%;background:#fff;color:#a6605b;font:inherit;font-size:20px;cursor:pointer}.availability-window.booked{grid-template-columns:minmax(64px,1fr) auto minmax(64px,1fr);background:#eef1f3;border-color:#d8e0e4}.availability-window.booked small{grid-column:1/-1;color:#687f8a;font-size:11px;font-weight:800}
.availability-add{width:100%;min-height:36px;margin-top:auto;border:1px dashed #88b6c8;border-radius:8px;background:#f5fafc;color:#2e718e;font:inherit;font-size:12px;font-weight:800;cursor:pointer}.availability-add:hover{background:#e9f5f8}.availability-locked-note{margin:auto 0 0;padding:9px;border-radius:7px;background:#e9edef;color:#819099;font-size:11px;text-align:center}
.availability-busy{display:grid;gap:5px;margin-top:11px;padding-top:10px;border-top:1px solid #e1eaee}.availability-busy b{color:#718995;font-size:11px;text-transform:uppercase;letter-spacing:.7px}.availability-busy span,.availability-busy small{color:#5e7987;font-size:11px;line-height:1.4}.availability-panel>.form-message{display:block;margin:0;padding:0 18px 16px}
@media(max-width:900px){.availability-heading,.availability-toolbar{align-items:stretch;display:grid}.availability-toolbar>div:last-child{text-align:left}.availability-week-grid{grid-template-columns:repeat(7,minmax(210px,1fr))}}
@media(max-width:650px){.availability-heading .primary-action{width:100%}.availability-week-tabs{display:grid;grid-template-columns:1fr 1fr}.availability-week-tabs button{padding-inline:8px}.availability-week-grid{display:grid;grid-template-columns:1fr;overflow:visible}.availability-day{min-height:0}.availability-panel{overflow:visible}.availability-window{grid-template-columns:minmax(72px,1fr) auto minmax(72px,1fr) auto}}

/* Student booking: real teacher availability, intake form and staff workflow. */
.real-booking-layout{align-items:start}.student-booking-picker{display:grid;gap:15px}.booking-step-heading{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:start;gap:11px;margin-top:4px}.booking-step-heading>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#dceef5;color:#276985;font-size:14px;font-weight:900}.booking-step-heading h3{margin:1px 0 4px;font-size:16px}.booking-step-heading p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.booking-duration-switch{display:flex;gap:8px;margin-left:43px}.booking-duration-switch button{min-height:40px;padding:9px 17px;border:1px solid #c5dce6;border-radius:9px;background:#fff;color:#426b7e;font:inherit;font-size:13px;font-weight:800;cursor:pointer}.booking-duration-switch button.selected{border-color:#3d7c98;background:#2d6f8d;color:#fff}.real-date-pills{margin:0 0 4px 43px;overflow-x:auto}.real-date-pills button{min-width:105px}.real-booking-slots{margin-left:43px}.real-booking-slots button{display:grid;justify-items:start;min-width:115px}.real-booking-slots button b{font-size:16px}.real-booking-slots button small{margin-top:4px}.booking-empty{grid-column:1/-1;padding:18px;border:1px dashed #bed5df;border-radius:10px;background:#f8fbfc}.booking-empty b{font-size:15px}.booking-empty p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.real-booking-summary{position:sticky;top:24px}.real-booking-summary>b{display:block;margin:16px 0;color:#2f6d87;font-size:15px}.individual-booking-form{display:grid;gap:18px;margin-top:20px}.booking-form-heading,.booking-submit-row{display:flex;align-items:center;justify-content:space-between;gap:18px}.booking-form-heading h2{margin:5px 0 0;font-size:23px}.booking-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.booking-form-grid label,.booking-review-panel label{display:grid;gap:7px;color:#234b61;font-size:13px;font-weight:800}.booking-form-grid select,.booking-form-grid textarea,.booking-review-panel textarea{width:100%;border:1px solid #c8dce5;border-radius:9px;background:#fff;color:#173d56;font:inherit;font-size:14px}.booking-form-grid select{height:46px;padding:0 12px}.booking-form-grid textarea,.booking-review-panel textarea{padding:12px;resize:vertical}.booking-wide-field{grid-column:1/-1}.booking-submit-row{padding-top:15px;border-top:1px solid var(--line)}.booking-submit-row p{margin:0;color:#315f75;font-size:14px;font-weight:800}.student-booking-journal{display:grid;gap:9px;margin-bottom:20px}.compact-section-head{margin-bottom:0}.compact-section-head h3{margin:5px 0 0;font-size:19px}.student-booking-request{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:15px;padding:14px;border:1px solid #cfe0e7;border-left:4px solid #6da5bb;border-radius:10px;background:#fff}.student-booking-request h3{margin:8px 0 4px;font-size:16px;text-transform:capitalize}.student-booking-request p,.student-booking-request>small{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.booking-request-status{display:inline-flex;padding:6px 9px;border-radius:17px;background:#e7f2f7;color:#35718b;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.45px}.booking-request-status.awaiting_payment{background:#eef1e7;color:#6b7950}.booking-request-status.confirmed{background:#e6f2ed;color:#4e816c}.booking-request-status.rejected,.booking-request-status.expired,.booking-request-status.cancelled{background:#f0eded;color:#8b6662}.individual-booking-staff-section{display:grid;gap:12px;margin-bottom:24px}.individual-booking-staff-list{display:grid;gap:11px}.individual-booking-staff-card{display:grid;gap:13px;padding:16px;border:1px solid var(--line);border-left:4px solid #72a8bc;border-radius:11px;background:#fff}.individual-booking-staff-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.individual-booking-staff-card h3{margin:8px 0 5px;font-size:18px;text-transform:capitalize}.individual-booking-staff-card header p{margin:0;color:var(--muted);font-size:13px}.individual-booking-details{display:grid;grid-template-columns:130px 180px minmax(240px,1fr);gap:9px}.individual-booking-details span{display:grid;gap:4px;padding:10px;border-radius:8px;background:#f1f7f9;color:#385f72;font-size:13px;line-height:1.45}.individual-booking-details span b{color:#78919e;font-size:11px;text-transform:uppercase;letter-spacing:.5px}.individual-booking-details .wide{grid-column:auto}.booking-reservation-note,.booking-manager-comment{margin:0;padding:10px 12px;border-radius:8px;background:#f4f7f8;color:#637d89;font-size:12px}.booking-review-panel{display:grid;grid-template-columns:minmax(260px,1fr) auto;align-items:end;gap:12px;padding-top:12px;border-top:1px solid var(--line)}.booking-review-panel>div{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.booking-review-panel>.form-message{grid-column:1/-1;margin:0}.test-payment-action{background:#2f728e}.individual-booking-staff-card.confirmed{border-left-color:#70a991}.individual-booking-staff-card.rejected,.individual-booking-staff-card.expired{border-left-color:#b9a5a2;opacity:.82}
.booking-date-control{display:grid;gap:7px;margin-left:43px;color:#234b61;font-size:13px;font-weight:800}.booking-date-control input{width:min(100%,320px);height:46px;padding:0 12px;border:1px solid #c8dce5;border-radius:10px;background:#fff;color:#173d56;font:inherit;font-size:15px}.booking-date-control small{max-width:650px;color:#698492;font-size:12px;font-weight:500;line-height:1.45}.booking-time-options{display:flex;flex-wrap:wrap;gap:8px;margin-left:43px}.booking-time-options button{min-width:74px;height:42px;padding:0 13px;border:1px solid #c5dce6;border-radius:10px;background:#fff;color:#27566e;font:800 12px Manrope,sans-serif}.booking-time-options button.selected{border-color:#2d6f8d;background:#2d6f8d;color:#fff}.booking-teacher-options{display:grid;gap:10px;margin-left:43px}.booking-teacher-card{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px;border:1px solid #cfe1e9;border-radius:13px;background:#fff}.booking-teacher-card.selected{border-color:#4d94b2;box-shadow:0 0 0 2px #d8edf5}.booking-teacher-avatar{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#dceef5;color:#245c76;font-weight:900;overflow:hidden}.booking-teacher-avatar img{width:100%;height:100%;object-fit:cover}.booking-teacher-card span{color:#78919e;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.booking-teacher-card h4{margin:3px 0 2px;color:#173f58;font-size:16px}.booking-teacher-card p{margin:0;color:#65808f;font-size:12px}.booking-teacher-card button{min-width:90px;padding:10px 14px;border:0;border-radius:9px;background:#194b67;color:#fff;font:800 10px Manrope,sans-serif}.student-booking-checkout{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,1fr);gap:14px}.student-booking-checkout:empty{display:none}.booking-topic-field small{padding:10px 12px;border-radius:9px;background:#edf6f9;color:#527386;font-size:12px;font-weight:500;line-height:1.55}.booking-topic-field>span{justify-self:end;color:#a25d57;font-size:12px}.booking-topic-field>span.ready{color:#3e7d68}.booking-topic-field textarea:invalid{border-color:#d7a9a5}.booking-topic-field textarea:focus{border-color:#5d9fbb;outline:2px solid #d9edf5}.student-booking-checkout .student-booking-price,.student-booking-checkout .student-promo-field{margin:0}
.compact-booking-empty{min-height:110px}.individual-booking-history{border-top:1px solid var(--line);padding-top:12px}.individual-booking-history>summary{padding:8px 2px;color:#477083;font-size:13px;font-weight:800;cursor:pointer}.individual-booking-history>div{display:grid;gap:10px;margin-top:10px}
@media(max-width:1000px){.individual-booking-details{grid-template-columns:1fr 1fr}.individual-booking-details .wide{grid-column:1/-1}.booking-review-panel{grid-template-columns:1fr}.booking-review-panel>div{justify-content:flex-start}}
@media(max-width:700px){.real-booking-layout{grid-template-columns:1fr}.real-booking-summary{position:static}.booking-duration-switch,.real-date-pills,.real-booking-slots,.booking-date-control,.booking-time-options,.booking-teacher-options{margin-left:0}.booking-duration-switch{display:grid;grid-template-columns:1fr 1fr}.real-date-pills{display:flex}.real-booking-slots{display:grid;grid-template-columns:1fr 1fr}.real-booking-slots button{width:100%;min-width:0}.booking-form-heading,.booking-submit-row,.individual-booking-staff-card>header{align-items:stretch;flex-direction:column}.booking-form-grid,.individual-booking-details,.student-booking-checkout{grid-template-columns:1fr}.booking-wide-field,.individual-booking-details .wide{grid-column:auto}.booking-submit-row .primary-action,.booking-form-heading .secondary-action,.booking-review-panel button{width:100%}.student-booking-request{grid-template-columns:1fr}.booking-review-panel>div{display:grid}.individual-booking-staff-card{padding:12px}.booking-date-control input{width:100%;font-size:19px}.booking-time-options{display:grid;grid-template-columns:repeat(3,1fr)}.booking-time-options button{width:100%;min-width:0;font-size:17px}.booking-teacher-card{grid-template-columns:42px minmax(0,1fr);padding:12px}.booking-teacher-avatar{width:42px;height:42px}.booking-teacher-card button{grid-column:1/-1;width:100%;font-size:16px}.booking-teacher-card h4{font-size:18px}.booking-teacher-card p{font-size:14px;line-height:1.45}.booking-topic-field small,.booking-topic-field>span{font-size:14px}.booking-step-heading h3{font-size:18px}.booking-step-heading p{font-size:14px}.booking-duration-switch button{font-size:17px}.student-booking-checkout .student-booking-price{order:1}.student-booking-checkout .student-promo-field{order:2}}

/* Commercial platform: pricing, discounts, earnings and planning */
.student-individual-tabs{display:flex;gap:8px;margin:0 0 24px;padding:5px;width:max-content;max-width:100%;border:1px solid #cfe0e9;border-radius:16px;background:#fff;overflow:auto}.student-individual-tabs button{border:0;border-radius:11px;background:transparent;color:#315d76;font:700 14px Manrope,sans-serif;padding:12px 18px;white-space:nowrap}.student-individual-tabs button.active{background:#194b67;color:#fff}.tab-count{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:4px;border-radius:999px;background:#deedf4;color:#17445f;font-size:14px}.student-individual-tabs button.active .tab-count{background:#fff;color:#17445f}.student-individual-tab{display:none}.student-individual-tab.active{display:block}.student-availability-calendar{padding:18px;overflow:auto}.student-availability-days{display:grid;grid-template-columns:repeat(7,minmax(170px,1fr));gap:10px;min-width:900px}.student-availability-days section{border:1px solid #d8e6ed;border-radius:14px;background:#f9fcfd;overflow:hidden}.student-availability-days header{display:grid;gap:3px;padding:12px;background:#eaf4f8}.student-availability-days header b{text-transform:capitalize;color:#143f59}.student-availability-days header small{color:#668193}.student-availability-days section>div{display:grid;gap:7px;padding:9px}.student-availability-days button{display:grid;gap:2px;padding:9px;border:1px solid #c8dfe9;border-radius:10px;background:#fff;color:#17445f;text-align:left}.student-availability-days button:hover{border-color:#5ca7c8;background:#eff8fb}.student-availability-days button span{font-size:14px;color:#617d8d}.student-request-cards{display:grid;gap:12px}.request-price-state{display:grid;justify-items:end;gap:5px}.request-price-state b{font-size:23px;color:#143f59}.request-price-state del{color:#bd5a53}.student-promo-field{display:grid;gap:6px;margin-top:12px}.student-promo-field>div{display:grid;grid-template-columns:1fr auto;gap:7px}.student-promo-field input{min-width:0}.student-promo-field small{color:#5d7a8a}.student-booking-price{display:grid;gap:4px;margin:14px 0;padding:13px;border-radius:12px;background:#eaf4f8}.student-booking-price>div{display:flex;align-items:center;gap:10px}.student-booking-price strong{font-size:27px;color:#c24e48}.student-booking-price del{color:#b85a55}.discount-badge{display:inline-flex;width:max-content;border-radius:999px;background:#e7f3ed;color:#2f7259;font-size:14px;font-weight:800;padding:6px 9px;text-transform:uppercase;letter-spacing:.04em}.public-commercial-price{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0}.public-commercial-price b{font-size:25px;color:#153f58}.public-commercial-price del{color:#ad625c}.public-commercial-price small{width:100%;color:#64808f}
.commercial-status-note{display:flex;gap:14px;align-items:center;margin-bottom:18px;padding:14px 16px;border:1px solid #dfc9a9;border-radius:13px;background:#fbf7f1;color:#6f5637}.commercial-status-note span{font-size:16px}.commercial-split-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:18px;margin-bottom:18px}.inline-filter{display:flex;align-items:center;gap:8px;font-size:15px}.inline-filter select{min-width:130px}.discount-campaign-list,.service-price-list{display:grid;gap:10px}.discount-card,.service-price-list article{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px;border:1px solid #d5e4eb;border-radius:13px;background:#fff}.discount-card>div,.service-price-list article>div{display:grid;gap:5px}.discount-card>div:last-child,.service-price-list article>div:last-child{justify-items:end}.discount-card h4,.service-price-list h4{margin:0;color:#113d57}.discount-card p{margin:0;color:#587484;font-size:16px}.discount-card small,.service-price-list small{color:#708b99}.discount-status,.payroll-status{width:max-content;padding:5px 9px;border-radius:999px;background:#eaf1f4;color:#55717f;font-size:13px;font-weight:800;text-transform:uppercase}.discount-status.active,.payroll-status.paid{background:#e2f1e9;color:#307057}.discount-status.draft,.payroll-status.accrued{background:#eaf2f7;color:#3d708b}.discount-status.paused{background:#f5ece4;color:#925d42}.commercial-history-panel{margin-top:18px}.commercial-history-list{display:grid;gap:0}.commercial-history-list article{display:grid;grid-template-columns:150px 1fr;gap:15px;padding:12px 0;border-bottom:1px solid #e0eaef}.commercial-history-list article:last-child{border-bottom:0}.commercial-history-list article div{display:grid;gap:3px}.commercial-history-list time,.commercial-history-list small{color:#718a98;font-size:14px}.commercial-history-list span{color:#4b6a7a}.commercial-history-list strong{color:#164861}.commercial-editor-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.commercial-editor-form label{display:grid;gap:6px;color:#173f58;font-size:16px;font-weight:700}.commercial-editor-form input,.commercial-editor-form select,.commercial-editor-form textarea{width:100%}.commercial-editor-form .wide-field{grid-column:1/-1}.checkbox-field{display:flex!important;align-items:center!important;grid-auto-flow:column;justify-content:start}.checkbox-field input{width:auto}.discount-targets{display:flex;flex-wrap:wrap;gap:8px;border:1px solid #d5e4eb;border-radius:12px;padding:12px}.discount-targets label{display:flex;align-items:center;gap:6px;padding:8px 10px;border-radius:9px;background:#eef6f9}.discount-targets input{width:auto}.commercial-modal-card{width:min(760px,calc(100vw - 32px));max-height:92vh;overflow:auto}
.planning-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr);gap:18px;margin-bottom:18px}.planning-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.planning-fields label{display:grid;gap:6px;color:#173f58;font-size:15px;font-weight:700}.planning-fields .wide-field{grid-column:1/-1}.planning-actions{display:flex;gap:10px;margin-top:18px}.planning-results{align-self:start;position:sticky;top:20px}.planning-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.planning-result-grid>div,.commercial-statistics-summary>div{display:grid;gap:4px;padding:12px;border-radius:11px;background:#edf5f8}.planning-result-grid span,.commercial-statistics-summary span{font-size:14px;color:#6d8795}.planning-result-grid b,.commercial-statistics-summary b{color:#153f58}.planning-result-grid .primary-result,.commercial-statistics-summary .primary-result{background:#194b67;color:#fff}.planning-result-grid .primary-result span,.planning-result-grid .primary-result b,.planning-result-grid .primary-result small,.commercial-statistics-summary .primary-result span,.commercial-statistics-summary .primary-result b,.commercial-statistics-summary .primary-result small{color:#fff}.planning-result-grid .primary-result b{font-size:28px}.planning-scenario-list{display:grid;gap:9px}.planning-scenario-list article{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border:1px solid #d8e6ed;border-radius:12px}.planning-scenario-list article>div{display:flex;align-items:center;gap:8px}.planning-scenario-list article>div:first-child{display:grid}.planning-scenario-list small{color:#718b99}.danger-text{border:0;background:transparent;color:#ad4f49;font-weight:700}.earnings-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.earnings-kpis article{display:grid;gap:5px;padding:18px;border:1px solid #d7e5eb;border-radius:15px;background:#fff}.earnings-kpis span,.earnings-kpis small{color:#6c8795}.earnings-kpis b{font-size:31px;color:#153f58}.teacher-own-rate,.teacher-payroll-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid #e0e9ed}.teacher-own-rate:last-child,.teacher-payroll-row:last-child{border-bottom:0}.teacher-payroll-row{grid-template-columns:125px 1fr auto auto}.teacher-payroll-row time{font-size:14px;color:#728a98}.commercial-teacher-rate-tools{margin-top:22px;border-top:1px solid #d8e4ea;padding-top:18px}.commercial-rate-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.commercial-rate-form label{display:grid;gap:5px}.commercial-rate-form .wide-field{grid-column:1/-1}.rate-card-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0}.rate-card-list article{display:flex;justify-content:space-between;gap:10px;padding:10px;border-radius:10px;background:#edf5f8}.rate-history summary{cursor:pointer;font-weight:700;color:#17445f}.rate-history p{display:grid;grid-template-columns:150px 1fr;gap:5px 12px;padding:9px 0;border-bottom:1px solid #e2ebef}.rate-history small{grid-column:2;color:#718a98}.commercial-statistics-filters{margin-top:12px;padding-top:12px;border-top:1px solid #d9e5eb}.commercial-statistics-filters>small{align-self:end;color:#6d8795}.commercial-statistics-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.commercial-statistics-summary .primary-result{grid-column:span 2}.commercial-payroll-filters{display:grid;grid-template-columns:repeat(2,minmax(180px,260px));gap:12px;margin:0 0 14px}.commercial-payroll-filters label{display:grid;gap:6px;color:#315d76;font-size:15px;font-weight:800}.commercial-payroll-list{display:grid;gap:8px}.commercial-payroll-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto minmax(210px,auto);align-items:center;gap:12px;padding:13px;border:1px solid #d8e6ed;border-radius:12px;background:#fff}.commercial-payroll-row>div:first-child{display:grid;gap:4px}.commercial-payroll-row small{color:#708896}.commercial-payroll-row>strong{font-size:20px;color:#153f58}.payroll-status.approved{background:#edf0df;color:#6a743d}.payroll-status.void{background:#f3e9e7;color:#94574f}.payroll-row-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.payroll-row-actions button{white-space:nowrap}
@media(max-width:1100px){.commercial-split-layout,.planning-layout{grid-template-columns:1fr}.planning-results{position:static}.planning-fields{grid-template-columns:1fr 1fr}.commercial-statistics-summary{grid-template-columns:1fr 1fr}.commercial-payroll-row{grid-template-columns:minmax(200px,1fr) auto auto}.payroll-row-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:700px){.student-individual-tabs{width:100%}.student-individual-tabs button{flex:1;padding:10px 12px}.student-availability-calendar{padding:10px;overflow:visible}.student-availability-days{display:grid;grid-template-columns:1fr;min-width:0}.student-booking-request{align-items:start}.request-price-state{justify-items:start}.commercial-split-layout{display:grid}.discount-card,.service-price-list article,.planning-scenario-list article{align-items:stretch;flex-direction:column}.discount-card>div:last-child,.service-price-list article>div:last-child{justify-items:start}.commercial-editor-form,.planning-fields,.planning-result-grid,.earnings-kpis,.commercial-rate-form,.rate-card-list,.commercial-statistics-summary,.commercial-payroll-filters{grid-template-columns:1fr}.commercial-editor-form .wide-field,.planning-fields .wide-field,.commercial-rate-form .wide-field,.commercial-statistics-summary .primary-result{grid-column:auto}.planning-actions{display:grid}.planning-actions button{width:100%}.planning-scenario-list article>div:last-child{display:grid;grid-template-columns:1fr 1fr}.planning-scenario-list .danger-text{grid-column:1/-1}.teacher-payroll-row{grid-template-columns:1fr auto}.teacher-payroll-row time,.teacher-payroll-row span{grid-column:1/-1}.commercial-history-list article,.rate-history p{grid-template-columns:1fr}.rate-history small{grid-column:auto}.student-promo-field>div{grid-template-columns:1fr}.student-promo-field button{width:100%}.commercial-modal-card{width:calc(100vw - 16px);padding:18px}.commercial-statistics-filters{grid-template-columns:1fr}.commercial-statistics-filters>small{grid-column:auto}.commercial-payroll-row{grid-template-columns:1fr auto}.commercial-payroll-row .payroll-status{justify-self:end}.payroll-row-actions{display:grid;grid-template-columns:1fr;grid-column:1/-1}.payroll-row-actions button{width:100%}.statistics-card-head{align-items:flex-start;flex-direction:column}.statistics-card-head button{width:100%}}
.scenario-metrics{display:flex;gap:6px;flex-wrap:wrap}.scenario-metrics small{padding:5px 8px;border-radius:999px;background:#edf5f8;color:#476b7d}
.statistics-card-actions{display:flex;gap:8px;flex-wrap:wrap}.commercial-payout-list{margin-top:18px;padding-top:14px;border-top:1px solid #dce7ec}.commercial-payout-list summary{cursor:pointer;color:#17445f;font-weight:800}.commercial-payout-list details>div{display:grid;gap:8px;margin-top:12px}.commercial-payout-list article{display:flex;justify-content:space-between;gap:14px;padding:12px;border-radius:11px;background:#edf5f8}.commercial-payout-list article>div{display:grid;gap:3px}.commercial-payout-list article>div:last-child{text-align:right}.commercial-payout-list small,.commercial-form-note{color:#6e8795;font-size:14px}
.individual-teacher-pricing-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.pricing-column{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px;border:1px solid #d5e4eb;border-radius:13px;background:#f7fbfc}.pricing-column-private{background:#eef5f8}.pricing-column-label{grid-column:1/-1;color:#17445f;font-size:15px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.pricing-column label,.pricing-reason{display:grid;gap:6px;color:#173f58;font-size:15px;font-weight:700}.pricing-column input,.pricing-reason input{width:100%}.pricing-reason{grid-column:1/-1}.pricing-message{align-self:center}.pricing-save{justify-self:end}.commercial-teacher-rate-tools>.section-head .subtext{max-width:620px;margin-top:5px}
@media(max-width:700px){.statistics-card-actions{display:grid;width:100%}.statistics-card-actions button{width:100%}.commercial-payout-list article{align-items:flex-start;flex-direction:column}.commercial-payout-list article>div:last-child{text-align:left}}
@media(max-width:700px){.individual-teacher-pricing-form,.pricing-column{grid-template-columns:1fr}.pricing-column-label,.pricing-reason{grid-column:auto}.pricing-save{width:100%;justify-self:stretch}}

/* Compact mobile shell: preserve readable type without letting desktop spacing overflow. */
@media(max-width:850px){
  html,body{width:100%;max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}
  body{font-size:18px}
  .app-shell,.app-shell.menu-collapsed{width:100%;min-width:0;padding-top:78px}
  .sidebar,.app-shell.menu-collapsed .sidebar{inset:0 0 auto 0;width:100%;height:78px;min-height:78px;overflow:visible;background:#fff;box-shadow:0 1px 12px rgba(11,40,57,.08)}
  .sidebar-brand,.app-shell.menu-collapsed .sidebar-brand,.sidebar.navigation-expanded .sidebar-brand{justify-content:center;width:100%;height:78px;min-height:78px;margin:0;padding:8px 52px 8px 14px}
  .sidebar-brand-lockup,.app-shell.menu-collapsed .sidebar-brand-lockup,.sidebar.navigation-expanded .sidebar-brand-lockup{flex-direction:row;justify-content:center;gap:10px;width:auto}
  .sidebar-brand-lockup span,.app-shell.menu-collapsed .sidebar-brand-lockup span{font-size:23px;line-height:1;letter-spacing:2px}
  .sidebar-brand .brand-logo,.app-shell.menu-collapsed .sidebar-brand .brand-logo{width:40px;height:50px}
  .sidebar-menu-control,.app-shell.menu-collapsed .sidebar-menu-control,.sidebar.navigation-expanded .sidebar-menu-control{position:absolute;top:17px;right:8px;z-index:3;display:flex;justify-content:center;width:44px;min-height:44px;padding:0;border:0;background:transparent}
  .sidebar:not(.navigation-expanded) .sidebar-menu-control{background:transparent}
  .sidebar-toggle-inside,.sidebar.navigation-expanded .sidebar-toggle-inside{width:44px;height:44px;margin:0;border:0;background:transparent;color:#183c55;font-size:30px}
  .sidebar-toggle-inside:hover,.sidebar.navigation-expanded .sidebar-toggle-inside:hover{background:#eaf3f7}
  .sidebar-menu-panel,.app-shell.menu-collapsed .sidebar-menu-panel{top:78px;width:min(300px,82vw);height:calc(100dvh - 78px);padding:10px 12px 18px}
  .sidebar-menu-panel nav{gap:3px}
  .nav-item,.manager-link{min-height:46px;padding:10px 12px;border-radius:9px;font-size:18px;line-height:1.25}
  .nav-item span{width:20px;font-size:20px}
  .manager-link{margin-top:auto}
  .profile-mini{margin-top:12px;padding:13px 4px 0}
  main{width:100%;min-width:0;padding:0 14px 72px;overflow-x:hidden}
  .topbar{height:76px;min-width:0}
  .topbar>div:first-child{min-width:0}
  .topbar h1{overflow-wrap:anywhere;font-size:26px;line-height:1.2}
  .header-actions{gap:8px}
  .bell{width:39px;height:39px}
  .view,.view>*{min-width:0;max-width:100%}
  .notice{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:11px;width:100%;padding:15px;border-radius:14px;overflow:hidden}
  .notice>span{font-size:26px;line-height:1.2}
  .notice p{display:grid;width:auto;min-width:0;gap:4px}
  .notice b,.notice small{display:block;max-width:100%;overflow-wrap:anywhere;word-break:normal}
  .notice b{font-size:19px;line-height:1.4}
  .notice small{font-size:16px;line-height:1.45}
  .notice-join-link,.notice-link-pending,.notice button{grid-column:1/-1;width:100%;margin:0;padding:10px 12px;font-size:17px;line-height:1.35;text-align:center;white-space:normal;overflow-wrap:anywhere}
  .section-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px 12px;margin:26px 0 12px}
  .section-head>div{min-width:0}
  .section-head .eyebrow{display:block;line-height:1.5;overflow-wrap:anywhere}
  .section-head h2{font-size:24px;line-height:1.25}
  .section-head .text-button{align-self:end;padding:4px 0;font-size:16px;line-height:1.3;white-space:nowrap}
  .schedule-grid,.course-grid,.offer-grid{gap:12px}
  .date-card{grid-template-columns:auto minmax(0,1fr) auto;gap:12px;padding:13px}
  .date{width:44px;height:50px}
  .date b{font-size:22px}
  .date-card h3{margin:7px 0 5px;font-size:18px;line-height:1.35;overflow-wrap:anywhere}
  .date-card p{font-size:15px;overflow-wrap:anywhere}
  .round{width:30px;height:30px}
  .panel,.offer{padding:18px}
  .card-body{padding:16px}
  .course-art{height:94px;padding:18px;font-size:31px}
}

@media(max-width:480px){
  main{padding-right:12px;padding-left:12px}
  .topbar{height:72px}
  .topbar h1{font-size:25px}
  .section-head{grid-template-columns:1fr;gap:5px;margin-top:24px}
  .section-head .text-button{justify-self:start;font-size:15px}
  .notice{padding:14px 13px}
  .notice b{font-size:18px}
  .notice small{font-size:15px}
  .date-card{grid-template-columns:auto minmax(0,1fr)}
  .date-card .round{grid-column:1/-1;width:100%;height:36px;border-radius:8px}
  .sidebar-menu-panel,.app-shell.menu-collapsed .sidebar-menu-panel{width:min(280px,84vw)}
}

/* Student mobile app navigation. Staff keep the full operational drawer. */
.student-mobile-nav,.student-manager-fab,.student-mobile-lesson-tabs,.student-mobile-course-tabs{display:none}
.student-course-tab{display:block}
@media(max-width:850px){
  body[data-user-role="student"] .app-shell,
  body[data-user-role="student"] .app-shell.menu-collapsed{padding-top:64px}
  body[data-user-role="student"] .sidebar,
  body[data-user-role="student"] .app-shell.menu-collapsed .sidebar{height:64px;min-height:64px}
  body[data-user-role="student"] .sidebar-brand,
  body[data-user-role="student"] .app-shell.menu-collapsed .sidebar-brand,
  body[data-user-role="student"] .sidebar.navigation-expanded .sidebar-brand{height:64px;min-height:64px;padding:6px 14px}
  body[data-user-role="student"] .sidebar-brand-lockup,
  body[data-user-role="student"] .app-shell.menu-collapsed .sidebar-brand-lockup{gap:9px}
  body[data-user-role="student"] .sidebar-brand-lockup span,
  body[data-user-role="student"] .app-shell.menu-collapsed .sidebar-brand-lockup span{font-size:21px}
  body[data-user-role="student"] .sidebar-brand .brand-logo,
  body[data-user-role="student"] .app-shell.menu-collapsed .sidebar-brand .brand-logo{width:34px;height:43px}
  body[data-user-role="student"] .sidebar-menu-control,
  body[data-user-role="student"] .sidebar-menu-panel{display:none!important}
  body[data-user-role="student"] main{padding-bottom:104px}
  body[data-user-role="student"] .topbar{height:68px}
  body[data-user-role="student"] .topbar h1{font-size:25px}
  body[data-user-role="student"] .header-actions .avatar{display:grid;width:39px;height:39px}
  body[data-user-role="student"] .student-mobile-nav{position:fixed;right:10px;bottom:max(8px,env(safe-area-inset-bottom));left:10px;z-index:60;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));height:66px;padding:5px;border:1px solid #d7e5eb;border-radius:19px;background:rgba(255,255,255,.96);box-shadow:0 12px 32px rgba(14,52,73,.18);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
  body[data-user-role="student"] .student-mobile-nav button{display:grid;place-items:center;align-content:center;gap:3px;min-width:0;padding:5px 3px;border:0;border-radius:14px;background:transparent;color:#6b8492;font:inherit;font-size:13px;font-weight:700;line-height:1.1;cursor:pointer;touch-action:manipulation}
  body[data-user-role="student"] .student-mobile-nav button.active{background:#e7f2f7;color:#174963}
  body[data-user-role="student"] .student-mobile-nav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  body[data-user-role="student"] .student-manager-fab{position:fixed;right:16px;bottom:calc(max(8px,env(safe-area-inset-bottom)) + 76px);z-index:58;display:grid;place-items:center;width:50px;height:50px;padding:0;border:0;border-radius:50%;background:#194b67;color:#fff;box-shadow:0 9px 24px rgba(18,63,87,.25);cursor:pointer;touch-action:manipulation}
  body[data-user-role="student"] .student-manager-fab svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  body[data-user-role="student"] .student-mobile-lesson-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0 0 16px;padding:4px;border:1px solid #cfe0e8;border-radius:13px;background:#fff}
  body[data-user-role="student"] .student-mobile-lesson-tabs button{min-height:42px;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:#527181;font:inherit;font-size:16px;font-weight:800;cursor:pointer}
  body[data-user-role="student"] .student-mobile-lesson-tabs button.active{background:#194b67;color:#fff}
  body[data-user-role="student"] .student-mobile-course-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:10px 0 16px;padding:4px;border:1px solid #cfe0e8;border-radius:13px;background:#fff}
  body[data-user-role="student"] .student-mobile-course-tabs button{min-height:42px;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:#527181;font:inherit;font-size:16px;font-weight:800;cursor:pointer}
  body[data-user-role="student"] .student-mobile-course-tabs button.active{background:#194b67;color:#fff}
  body[data-user-role="student"] #courses .student-course-tab{display:none}
  body[data-user-role="student"] #courses .student-course-tab.active{display:block}
  body[data-user-role="student"] #courses .section-head{margin-top:16px}
  body[data-user-role="student"] #courses .course-grid,
  body[data-user-role="student"] #courses .offer-grid{grid-template-columns:1fr;gap:12px}
  body[data-user-role="student"] #courses .offer{width:100%;padding:17px}
  body[data-user-role="student"] #courses .offer b{margin:14px 0 10px}
  body[data-user-role="student"] #courses .offer button{width:100%}
  body[data-user-role="student"] main,
  body[data-user-role="student"] .view,
  body[data-user-role="student"] #calendar,
  body[data-user-role="student"] #studentCalendarPanel,
  body[data-user-role="student"] .student-calendar-list{width:100%;max-width:none;min-width:0}
  body[data-user-role="student"] #studentCalendarPanel{margin:0;padding:15px 11px}
  body[data-user-role="student"] #studentCalendarPanel .calendar-toolbar{margin-bottom:14px;padding:0 2px}
  body[data-user-role="student"] #studentCalendarPanel .calendar-toolbar h2{margin:0;font-size:24px}
  body[data-user-role="student"] .student-calendar-row{width:100%;max-width:none;margin:0;padding:14px 12px}
  body[data-user-role="student"] #manager.student-chat-modal-open{position:fixed;inset:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));z-index:130;display:flex!important;flex-direction:column;width:auto;max-width:none;min-height:0;margin:0;padding:0;border:1px solid #cfe0e8;border-radius:20px;background:#fff;box-shadow:0 0 0 100vmax rgba(8,32,47,.52),0 24px 70px rgba(8,36,52,.3);overflow:hidden}
  body[data-user-role="student"].student-chat-open{overflow:hidden}
  body[data-user-role="student"] #manager.student-chat-modal-open .manager-chat-heading{display:none}
  body[data-user-role="student"] #manager.student-chat-modal-open .student-chat-close{position:absolute;top:10px;right:10px;z-index:4;display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:50%;background:#eaf3f7;color:#174963;font:inherit;font-size:29px;line-height:1;cursor:pointer}
  body[data-user-role="student"] #manager.student-chat-modal-open .manager-chat-layout{display:block;flex:1;min-height:0;margin:0;padding-top:48px;border:0;border-radius:0;background:#fff;overflow:hidden}
  body[data-user-role="student"] #manager.student-chat-modal-open .manager-inbox{display:none!important}
  body[data-user-role="student"] #manager.student-chat-modal-open .manager-chat-thread{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:100%;min-height:0}
  body[data-user-role="student"] #manager.student-chat-modal-open .chat-head{min-height:65px;padding:12px 58px 12px 16px;background:#fff}
  body[data-user-role="student"] #manager.student-chat-modal-open .chat-head h2{font-size:19px}
  body[data-user-role="student"] #manager.student-chat-modal-open .manager-chat-thread .messages{height:auto;min-height:0;padding:16px 13px;overflow-y:auto}
  body[data-user-role="student"] #manager.student-chat-modal-open .message{max-width:86%;font-size:16px}
  body[data-user-role="student"] #manager.student-chat-modal-open #chatForm{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 11px calc(10px + env(safe-area-inset-bottom));background:#fff}
  body[data-user-role="student"] #manager.student-chat-modal-open #chatForm input{width:100%;min-width:0;font-size:19px}
  body[data-user-role="student"] #manager.student-chat-modal-open #chatForm button{padding:10px 13px}
  body[data-user-role="student"] #manager.student-chat-modal-open #managerChatMessage{position:absolute;right:55px;top:16px;z-index:3;max-width:55%;min-height:0;font-size:13px;text-align:right}
}

@media(max-width:380px){
  body[data-user-role="student"] .student-mobile-nav{right:6px;left:6px}
  body[data-user-role="student"] .student-mobile-nav button{font-size:12px}
  body[data-user-role="student"] .student-mobile-nav svg{width:20px;height:20px}
  body[data-user-role="student"] #manager.student-chat-modal-open{right:7px;left:7px}
  body[data-user-role="student"] #manager.student-chat-modal-open #chatForm button{padding:9px 10px;font-size:14px}
}

/* Student individual booking: confirmed choice and compact mobile flow. */
.booking-confirmed-choice{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border:1px solid #bcd9e6;border-radius:13px;background:#eaf4f8}.booking-confirmed-choice>div:nth-child(2){min-width:0}.booking-confirmed-choice span{color:#6b8796;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.booking-confirmed-choice h3{margin:3px 0;color:#153f58;font-size:18px}.booking-confirmed-choice p{margin:0;color:#527181;font-size:13px}.booking-confirmed-choice>b{padding:7px 10px;border-radius:999px;background:#dceee6;color:#39745d;font-size:12px;white-space:nowrap}

@media(max-width:700px){
  body[data-user-role="student"] #individual .student-booking-picker{gap:11px;padding:14px;background:#edf6fa}
  body[data-user-role="student"] #individual .real-booking-summary{display:none}
  body[data-user-role="student"] #individual .booking-step-heading{grid-template-columns:27px minmax(0,1fr);gap:8px}
  body[data-user-role="student"] #individual .booking-step-heading>span{width:27px;height:27px}
  body[data-user-role="student"] #individual .booking-step-heading h3{font-size:18px}
  body[data-user-role="student"] #individual .booking-step-heading p{font-size:14px}
  body[data-user-role="student"] #individual .booking-duration-switch button{font-size:17px}
  body[data-user-role="student"] #individual .individual-booking-form{gap:14px;padding:15px}
  body[data-user-role="student"] #individual .booking-form-grid select,
  body[data-user-role="student"] #individual .booking-form-grid textarea{font-size:19px}
  body[data-user-role="student"] #individual .booking-confirmed-choice{grid-template-columns:42px minmax(0,1fr);padding:12px}
  body[data-user-role="student"] #individual .booking-confirmed-choice>b{grid-column:1/-1;width:max-content}
  body[data-user-role="student"] #individual .booking-confirmed-choice h3{font-size:18px}
  body[data-user-role="student"] #individual .booking-confirmed-choice p{font-size:14px;line-height:1.45}
}
.booking-timezone-control,.availability-timezone-control{display:grid;gap:8px;margin:16px 0;padding:14px;border:2px solid #72b5d2;border-radius:16px;background:#e7f4fa;color:#123f5c;font-weight:800;box-shadow:0 5px 16px rgba(27,91,122,.1)}.booking-timezone-control>span,.availability-timezone-control>span{font-size:17px;letter-spacing:.04em;text-transform:uppercase}.booking-timezone-control select,.availability-timezone-control select{min-height:50px;border:2px solid #2f7f9f;border-radius:13px;background:#fff;color:#123f5c;padding:0 42px 0 14px;font:inherit;font-weight:800;cursor:pointer}.booking-timezone-control select:focus,.availability-timezone-control select:focus{outline:3px solid rgba(65,157,196,.22);outline-offset:2px}.booking-timezone-control small{color:#557789;font-weight:600;line-height:1.4}.availability-timezone-control{margin:0;min-width:250px}.availability-timezone-control span{font-size:15px}
@media(max-width:700px){.booking-timezone-control{margin:12px 0}.booking-timezone-control select{min-height:46px}.availability-timezone-control{width:100%;min-width:0}.availability-timezone-control select{width:100%}}

/* Student calendar: month, week and chronological list. */
.student-calendar-heading{margin-bottom:14px}.student-calendar-controls{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:14px}.student-calendar-modes{display:flex;padding:4px;border:1px solid #c6dce6;border-radius:13px;background:#eaf4f8}.student-calendar-modes button{min-height:40px;padding:8px 18px;border:0;border-radius:9px;background:transparent;color:#537386;font:inherit;font-size:14px;font-weight:800;cursor:pointer}.student-calendar-modes button.active{background:#1d5b78;color:#fff;box-shadow:0 4px 10px rgba(29,91,120,.18)}.student-calendar-controls label{display:grid;gap:5px;color:#315f75;font-size:12px;font-weight:800}.student-calendar-controls select{height:44px;padding:0 38px 0 12px;border:1px solid #9fc7d8;border-radius:11px;background:#fff;color:#173f59;font:inherit;font-size:13px;font-weight:800}.student-calendar-panel{padding:0;overflow:hidden}.student-calendar-toolbar{display:grid;grid-template-columns:42px minmax(0,1fr) 42px auto;align-items:center;gap:9px;padding:14px 16px;border-bottom:1px solid var(--line);background:#f8fbfc}.student-calendar-toolbar h3{margin:0;text-align:center;text-transform:capitalize}.student-calendar-toolbar>button:not(.secondary-action){display:grid;place-items:center;width:40px;height:40px;border:1px solid #c7dce5;border-radius:10px;background:#fff;color:#174b68;font-size:27px;cursor:pointer}.student-month-weekdays,.student-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.student-month-weekdays{border-bottom:1px solid var(--line);background:#edf6fa}.student-month-weekdays b{padding:10px 5px;text-align:center;color:#527387;font-size:12px;text-transform:uppercase}.student-month-day{min-height:118px;padding:7px;border-right:1px solid #d7e5eb;border-bottom:1px solid #d7e5eb;background:#fff}.student-month-day:nth-child(7n){border-right:0}.student-month-day.outside{background:#f7f9fa;color:#9aabb3}.student-month-day.today{box-shadow:inset 0 0 0 2px #58a1c0;background:#f1f9fc}.student-month-day header{display:flex;justify-content:flex-end;margin-bottom:5px}.student-month-day header span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;font-size:13px;font-weight:800}.student-month-day.today header span{background:#1d5b78;color:#fff}.student-month-day>div{display:grid;gap:4px}.student-calendar-event{display:grid;grid-template-columns:55px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;padding:10px;border:1px solid #cfe0e7;border-left:4px solid #78abc0;border-radius:9px;background:#fff;color:#173f59;text-align:left;font:inherit;cursor:pointer}.student-calendar-event.group{border-left-color:#4388a6;background:#eef7fb}.student-calendar-event.individual{border-left-color:#7da796;background:#f1f7f4}.student-calendar-event time{font-size:13px;font-weight:900}.student-calendar-event span{overflow:hidden;font-size:14px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.student-calendar-event small{color:#688391;font-size:11px;font-weight:800}.student-calendar-event.compact{grid-template-columns:auto minmax(0,1fr);gap:4px;padding:5px 6px;border-left-width:3px;border-radius:6px}.student-calendar-event.compact time{font-size:11px}.student-calendar-event.compact span{font-size:11px}.student-calendar-event.compact small{display:none}.student-calendar-more{padding:4px;border:0;background:transparent;color:#276985;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.student-week-list{display:grid}.student-week-day{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;padding:15px 18px;border-bottom:1px solid var(--line)}.student-week-day:last-child{border-bottom:0}.student-week-day>header{display:grid;align-content:start;gap:4px;text-transform:capitalize}.student-week-day>header b{font-size:15px}.student-week-day>header span{color:var(--muted);font-size:12px}.student-week-day>div{display:grid;gap:8px}.student-week-day>div>p,.student-calendar-empty{margin:8px 0;color:#8195a0;font-size:13px}.student-calendar-sections{display:grid;gap:22px;padding:18px}.student-calendar-sections section{display:grid;gap:9px}.student-calendar-sections h3{margin:0 0 4px;font-size:18px}.student-calendar-event-modal-card{max-width:560px}.student-calendar-event-detail{display:grid;gap:12px;margin-top:18px}.student-calendar-event-detail p{display:grid;gap:5px;margin:0;padding:13px;border-radius:10px;background:#f1f7fa}.student-calendar-event-detail b{font-size:12px;text-transform:uppercase;letter-spacing:.06em}.student-calendar-event-detail span{font-size:15px}.student-calendar-event-detail small{color:var(--muted);font-size:12px}
@media(max-width:700px){.student-calendar-controls{display:grid;grid-template-columns:1fr}.student-calendar-modes{display:grid;grid-template-columns:repeat(3,1fr)}.student-calendar-modes button{padding:8px 5px;font-size:13px}.student-calendar-controls select{width:100%;font-size:14px}.student-calendar-toolbar{grid-template-columns:36px minmax(0,1fr) 36px;padding:10px}.student-calendar-toolbar>button:not(.secondary-action){width:34px;height:34px}.student-calendar-toolbar .secondary-action{grid-column:1/-1;width:100%;min-height:38px}.student-calendar-toolbar h3{font-size:17px}.student-month-day{min-height:68px;padding:3px}.student-month-weekdays b{padding:8px 2px;font-size:11px}.student-month-day header{margin:0}.student-month-day header span{width:22px;height:22px;font-size:12px}.student-calendar-event.compact{display:flex;align-items:center;min-height:21px;padding:3px 4px;border-left-width:3px}.student-calendar-event.compact time{font-size:11px}.student-calendar-event.compact span{display:none}.student-calendar-more{font-size:10px}.student-week-day{grid-template-columns:1fr;gap:9px;padding:14px}.student-week-day>header{display:flex;align-items:baseline;justify-content:space-between}.student-calendar-event{grid-template-columns:48px minmax(0,1fr);padding:10px}.student-calendar-event small{grid-column:2}.student-calendar-sections{padding:14px}.student-calendar-event-modal-card{width:calc(100% - 24px)}}
