:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:var(--text);background:var(--background);font-synthesis:none;--background: #F7F6F2;--surface: #FFFFFF;--surface-muted: #EEF1ED;--primary: #3F5F52;--primary-hover: #344E44;--primary-soft: #E4EBE6;--text: #1F2925;--text-muted: #637069;--border: #DDE2DD;--focus: #527562;--success: #2F6B4F;--warning: #8A5A00;--error: #B42318;--info: #2F5F8F;--radius-sm: 6px;--radius: 8px;--radius-lg: 12px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--motion-fast: .12s;--motion-normal: .18s;--shadow-overlay: 0 8px 24px rgb(31 41 37 / 12%)}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.shared-brand{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--primary)}.shared-brand__logo-slot{display:inline-flex;align-items:center;justify-content:center;min-width:0}.shared-brand__name{font-size:18px;font-weight:700;letter-spacing:-.02em}.shared-brand__descriptor{color:var(--text-muted);font-size:13px}.shared-button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:var(--space-2);border:1px solid transparent;border-radius:var(--radius);padding:8px 16px;cursor:pointer;font-size:14px;font-weight:600;transition:background-color var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast)}.shared-button--primary{color:var(--surface);background:var(--primary)}.shared-button--primary:hover{background:var(--primary-hover)}.shared-button--secondary{color:var(--text);background:var(--surface);border-color:var(--border)}.shared-button--secondary:hover{background:var(--surface-muted)}.shared-button--ghost{color:var(--primary);background:transparent}.shared-button:disabled{cursor:not-allowed;opacity:.55}.shared-input{width:100%;min-height:40px;border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;color:var(--text);background:var(--surface)}.shared-input::placeholder{color:var(--text-muted)}.shared-input[aria-invalid=true]{border-color:var(--error)}.shared-label{display:inline-block;color:var(--text);font-size:14px;font-weight:600}.shared-checkbox{width:18px;height:18px;accent-color:var(--primary)}.shared-separator{border:0;border-top:1px solid var(--border)}.shared-feedback{border-radius:var(--radius);padding:12px 16px;font-size:14px}.shared-feedback--info{color:var(--info);background:#eaf1f7}.shared-feedback--success{color:var(--success);background:#e8f1eb}.shared-feedback--warning{color:var(--warning);background:#fff4d6}.shared-feedback--error{color:var(--error);background:#fdeae8}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@tailwind base;@tailwind components;@tailwind utilities;html,body,#root{height:100%;overflow:hidden}.backoffice-layout{display:flex;height:100dvh;min-height:0;overflow:hidden;background:var(--background)}.backoffice-desktop-sidebar{flex:0 0 256px}.backoffice-sidebar{height:100vh;position:sticky;top:0;display:flex;flex-direction:column;gap:32px;padding:24px 16px;background:var(--surface);border-right:1px solid var(--border)}.backoffice-sidebar__brand{padding:0 8px 8px}.backoffice-sidebar__label{display:block;color:var(--text-muted);font-size:13px;font-weight:600;margin:0 12px 8px}.sidebar-link{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 12px;color:var(--text-muted);text-decoration:none;border-radius:var(--radius);font-weight:600;position:relative}.sidebar-link:hover{background:var(--surface-muted);color:var(--text)}.sidebar-link--active{background:var(--primary-soft);color:var(--primary)}.sidebar-link--active:before{content:"";width:3px;height:24px;border-radius:3px;background:var(--primary);position:absolute;left:0}.backoffice-content{min-width:0;flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.backoffice-header{flex:0 0 64px;height:64px;display:flex;align-items:center;gap:16px;padding:0 32px;background:var(--surface);border-bottom:1px solid var(--border)}.breadcrumb{color:var(--text-muted);font-size:14px}.breadcrumb span{margin:0 8px}.breadcrumb strong{color:var(--text)}.header-user{margin-left:auto;font-size:14px;font-weight:600}.backoffice-main{flex:1 1 auto;min-height:0;overflow-y:auto;padding:32px}.backoffice-main__content{max-width:1440px;margin:0 auto}.mobile-menu-button{display:none}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.page-header h1{margin:0;font-size:30px;line-height:36px}.page-header p,.card p,.state-card p{color:var(--text-muted);margin:8px 0 0;line-height:1.5}.page-actions,.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.card{padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.card h2{margin:0;font-size:20px}.state-card{min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-align:center}.state-card h2{margin:0;font-size:18px}.search-input{display:grid;gap:6px}.search-input__control{display:flex;align-items:center;gap:8px}.search-input__control svg{margin-right:-34px;z-index:1}.search-input__control input{padding-left:40px}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;font-size:13px;font-weight:600}.status-badge>span{width:7px;height:7px;border-radius:50%;background:currentColor}.status-badge--active{color:var(--success);background:#e8f1eb}.status-badge--inactive{color:var(--error);background:#fdeae8}.status-badge--warning{color:var(--warning);background:#fff4d6}.status-badge--info{color:var(--info);background:#eaf1f7}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;background:#1f292559}.sheet{width:min(320px,88vw);height:100%;padding:20px 16px;background:var(--surface);box-shadow:var(--shadow-overlay)}.sheet__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.sheet__header h2,.dialog h2{margin:0;font-size:20px}.dialog{width:min(440px,calc(100vw - 32px));margin:auto;padding:24px;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay)}.dialog p{color:var(--text-muted);line-height:1.5}.dialog .form-actions{justify-content:flex-end;margin-top:24px}.admin-grid{width:100%;height:520px;min-width:0;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}@media(max-width:1023px){.backoffice-desktop-sidebar{display:none}.mobile-menu-button{display:inline-flex}.backoffice-header{padding:0 16px}.backoffice-main{padding:24px 16px}}@media(max-width:600px){.page-header{flex-direction:column}.page-header h1{font-size:28px;line-height:34px}.header-user{display:none}}.app-shell{display:grid;min-height:100vh;place-content:center;gap:var(--space-4);padding:var(--space-8)}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--background)}.auth-card{width:min(100%,440px);display:grid;gap:16px;padding:32px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay)}.auth-card h1{margin:8px 0 0;font-size:30px}.auth-intro{margin:-8px 0 8px;color:var(--text-muted);line-height:1.5}.auth-card form{display:grid;gap:16px}.auth-field{display:grid;gap:6px}.auth-error{color:var(--error);font-size:13px}.auth-link{color:var(--primary);font-weight:600}.auth-loading{min-height:100vh;display:grid;place-items:center;color:var(--text-muted)}.header-account{display:flex;align-items:center;gap:12px;margin-left:auto}.sample-card{display:grid;gap:var(--space-4);max-width:560px;border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-8);background:var(--surface);box-shadow:var(--shadow-overlay)}.sample-card h1,.sample-card p{margin:0}.sample-card p{color:var(--text-muted);line-height:1.5}.sample-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:16px;padding:16px;margin-bottom:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.toolbar .search-input{min-width:min(360px,100%);flex:1}.filter-field,.form-field{display:grid;gap:6px}.filter-field select,.filter-field input[type=date]{min-height:40px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit}.filter-field input[type=date]{min-width:148px}.grid-actions{display:flex;gap:2px;align-items:center}.grid-actions .shared-button{padding:4px 6px;font-size:12px}.user-form{display:grid;gap:18px}.user-form small,.muted{color:var(--text-muted)}.form-error{color:var(--error);font-size:13px}.form-alert{display:grid;gap:4px;margin:0 28px -2px;padding:12px 14px;color:#8a2d26;background:#fdeae8;border:1px solid #E9B7B2;border-radius:var(--radius);line-height:1.4}.form-alert strong{font-size:14px}.form-warning{color:var(--warning);background:#fff4d6;padding:10px 12px;border-radius:var(--radius)}.feedback-success{color:var(--success);margin:0 0 16px}.role-selector{display:grid;gap:10px;border:1px solid var(--border);border-radius:var(--radius);padding:12px}.role-selector legend{padding:0 4px;font-weight:600}.role-option{display:flex;gap:8px;align-items:center}.sheet{width:min(520px,92vw);overflow:auto}.user-detail-back{display:inline-flex;align-items:center;gap:6px;min-height:32px;margin:0 0 12px;padding:0;color:var(--text-muted);background:transparent;border:0;border-radius:var(--radius);font:inherit;font-size:14px;font-weight:600;cursor:pointer}.user-detail-back:hover{color:var(--primary)}.user-detail-back:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.user-detail-header{max-width:1040px}.user-detail-page{max-width:1040px;padding:0;overflow:hidden}.user-detail-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:28px 28px 24px;background:var(--surface-muted);border-bottom:1px solid var(--border)}.user-detail-eyebrow{margin:0;color:var(--text-muted);font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.user-detail-summary h2{margin:6px 0 0;font-size:22px;overflow-wrap:anywhere}.user-detail-identifier{margin:8px 0 0;color:var(--text-muted)}.user-detail-sections{display:grid}.user-detail-section{padding:24px 28px}.user-detail-section+.user-detail-section{border-top:1px solid var(--border)}.user-detail-section h3{margin:0 0 16px;font-size:15px}.user-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 32px;margin:0}.user-detail-grid--single{grid-template-columns:minmax(0,1fr)}.user-detail-field{min-width:0}.user-detail-field dt{margin-bottom:6px;color:var(--text-muted);font-size:13px;font-weight:600}.user-detail-field dd{margin:0;color:var(--text);font-weight:600}.user-detail-roles{display:flex;flex-wrap:wrap;gap:8px}.user-role-chip{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;color:var(--primary);background:var(--primary-soft);border-radius:999px;font-size:13px;font-weight:700}.user-detail-empty{color:var(--text-muted);font-weight:400}.course-detail-students{overflow-x:auto;margin-top:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.course-detail-students table{width:100%;border-collapse:collapse;text-align:left}.course-detail-students th,.course-detail-students td{padding:12px 16px;border-bottom:1px solid var(--border);vertical-align:middle}.course-detail-students thead th{color:var(--text-muted);background:var(--surface-muted);font-size:13px;font-weight:600}.course-detail-students tbody tr:last-child th,.course-detail-students tbody tr:last-child td{border-bottom:0}.course-detail-students tbody th{color:var(--text);font-weight:600}.course-detail-students tbody td{color:var(--text-muted)}.section-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.unit-inline-form{display:grid;grid-template-columns:minmax(0,1fr) 120px auto;align-items:end;gap:12px;margin:20px 0;padding:16px;background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius)}.unit-inline-form__heading{display:grid;grid-column:1 / -1;gap:4px}.unit-inline-form__heading span{color:var(--text-muted);font-size:13px}.unit-list,.class-history-list,.attendance-list{display:grid;gap:10px;margin-top:20px}.unit-list-item,.class-history-item,.attendance-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.unit-list-item h3,.unit-list-item h4,.class-history-item h3{margin:3px 0 8px;font-size:16px}.unit-list-item__order{margin:0;color:var(--text-muted);font-size:13px;font-weight:700}.study-materials-intro,.study-material-form__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.study-materials-intro p,.study-material-form__heading span,.study-material-item__unit,.study-materials-notice{margin:6px 0 0;color:var(--text-muted);line-height:1.5}.study-materials-list{display:grid;gap:10px}.study-material-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.study-material-item h3{margin:0;font-size:16px}.study-material-item p:not(.study-material-item__unit){margin:8px 0 0}.study-material-item__unit{font-size:13px}.study-material-form{display:grid;gap:16px;padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.study-material-form__heading{display:grid;gap:2px}.study-materials-empty,.study-materials-notice{padding:12px 0}@media(max-width:700px){.study-materials-intro,.study-material-item{align-items:flex-start;flex-direction:column}.study-material-item .grid-actions{flex-wrap:wrap}}.class-history-item__summary{display:flex;align-items:center;gap:12px;color:var(--text-muted);font-size:13px;white-space:nowrap}.attendance-row>div{display:grid;gap:4px}.attendance-row select{min-width:145px;min-height:40px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.class-history-card{max-width:1040px}@media(max-width:700px){.course-units-intro{align-items:flex-start;flex-direction:column}.unit-inline-form{grid-template-columns:minmax(0,1fr)}.unit-list-item,.class-history-item,.attendance-row{align-items:flex-start;flex-direction:column}.unit-list-item .grid-actions,.class-history-item__summary{flex-wrap:wrap;white-space:normal}.attendance-row{flex-direction:row;align-items:center}.attendance-row select{min-width:125px}}@media(max-width:600px){.user-detail-summary{flex-direction:column;gap:16px;padding:24px 20px}.user-detail-section{padding:20px}.user-detail-grid{grid-template-columns:minmax(0,1fr);gap:18px}.course-detail-students{overflow:visible;margin-top:16px;border:0;background:transparent}.course-detail-students table,.course-detail-students tbody,.course-detail-students tr,.course-detail-students th,.course-detail-students td{display:block}.course-detail-students thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.course-detail-students tbody tr{margin-top:12px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.course-detail-students tbody tr:first-child{margin-top:0}.course-detail-students tbody th,.course-detail-students tbody td{padding:0;border:0}.course-detail-students tbody td{margin-top:8px}.course-detail-students tbody td:before{margin-right:4px;color:var(--text-muted);content:attr(data-label) ":";font-size:13px;font-weight:600}}.responsive-table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.roles-table{width:100%;border-collapse:collapse;min-width:680px}.roles-table th,.roles-table td{padding:16px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}.roles-table thead th{color:var(--text-muted);font-size:13px;font-weight:600}.roles-table tbody tr:last-child th,.roles-table tbody tr:last-child td{border-bottom:0}.table-actions{display:flex;flex-wrap:wrap;gap:4px}.role-editor-layout{max-width:960px;padding-bottom:88px}.role-editor-card{display:grid;gap:24px}.field-label{font-size:14px;font-weight:600}.section-title{margin:0;font-size:20px}.permission-groups{display:grid;gap:16px;margin-top:16px}.permission-group{display:grid;gap:12px;margin:0;padding:16px;border:1px solid var(--border);border-radius:var(--radius)}.permission-group legend{padding:0 4px;font-weight:600}.permission-select-all,.permission-item{display:flex;align-items:flex-start;gap:10px;min-height:44px;padding:8px;border-radius:var(--radius)}.permission-select-all{background:var(--surface-muted)}.permission-select-all span,.permission-item span{display:grid;gap:2px}.permission-select-all small,.permission-item small{color:var(--text-muted);line-height:1.4}.permission-items{display:grid;gap:4px}.permission-item:hover,.permission-select-all:hover{background:var(--surface-muted)}.permission-item input,.permission-select-all input{margin-top:3px}.change-summary{display:grid;gap:4px;padding:12px;border-left:3px solid var(--primary);background:var(--primary-soft);border-radius:var(--radius)}.sticky-form-actions{position:fixed;z-index:5;right:0;bottom:0;left:256px;display:flex;justify-content:flex-end;padding:16px 32px;background:#fffffff2;border-top:1px solid var(--border)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1023px){.sticky-form-actions{left:0;padding:12px 16px}}.admin-grid{height:480px;box-shadow:0 1px 2px #1f29250a;--ag-background-color: var(--surface);--ag-foreground-color: var(--text);--ag-border-color: var(--border);--ag-header-background-color: #F8F9F7;--ag-header-foreground-color: var(--text);--ag-row-border-color: var(--border);--ag-row-hover-color: #F4F7F4;--ag-odd-row-background-color: #FCFDFC;--ag-font-family: Inter, ui-sans-serif, system-ui, sans-serif;--ag-font-size: 14px;--ag-header-font-size: 13px;--ag-header-height: 48px;--ag-row-height: 52px;--ag-header-column-separator-display: none;--ag-borders: none}.admin-grid .ag-header{border-bottom:1px solid var(--border)}.admin-grid .ag-header-cell{font-weight:700}.admin-grid .ag-header-cell-label{gap:6px}.admin-grid .ag-cell{display:flex;align-items:center}.admin-grid .grid-cell--schedule{align-items:flex-start;padding-top:8px;padding-bottom:8px}.grid-schedule-list{display:grid;gap:2px;line-height:1.35;white-space:normal}.admin-grid .ag-paging-panel{min-height:48px;color:var(--text-muted);font-size:13px}.grid-cell--center{display:flex;align-items:center;justify-content:center;text-align:center}.grid-header--center .ag-header-cell-label{justify-content:center}.status-badge{justify-content:center;min-width:82px;min-height:28px;padding:4px 10px;line-height:1;white-space:nowrap}.status-badge>span{width:6px;height:6px}.grid-actions{display:flex;align-items:center;gap:4px;height:100%}.grid-actions .shared-button{min-height:32px;padding:4px 8px;font-size:13px}.grid-actions .shared-button:hover{background:var(--primary-soft)}.grid-actions--icon{gap:6px}.grid-actions--icon .shared-button{width:32px;min-width:32px;justify-content:center;padding:4px}.toolbar{box-shadow:0 1px 2px #1f292508}.filter-field select{padding-right:32px;color:var(--text)}.filter-field select:hover,.filter-field input[type=date]:hover{border-color:#b8c4ba}.filter-field select:focus,.filter-field input[type=date]:focus{border-color:var(--focus);outline:2px solid rgb(82 117 98 / 18%);outline-offset:0}.user-editor-page{padding:0;overflow:hidden}.user-editor-layout{max-width:960px}.user-editor-actions{display:flex;justify-content:flex-end;gap:16px;margin-top:16px;padding:16px 4px 0;border-top:1px solid var(--border)}.course-unsaved-indicator{align-self:center;margin-right:auto;color:var(--text-muted);font-size:13px;font-weight:600}.user-form{display:grid;gap:0}.user-form-section{display:grid;gap:20px;padding:28px}.user-form-section+.user-form-section{border-top:1px solid var(--border)}.user-form-section__heading h2{margin:0;font-size:20px}.user-form-section__heading p{margin:6px 0 0;color:var(--text-muted);line-height:1.5}.course-form-accordion{scroll-margin-top:24px;gap:0;padding:0}.course-form-accordion__trigger{display:flex;width:100%;align-items:center;justify-content:space-between;gap:20px;padding:22px 28px;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.course-form-accordion__trigger:hover{background:var(--surface-muted)}.course-form-accordion__heading{display:grid;gap:5px}.course-form-accordion__title{margin:0;font-size:20px;font-weight:700}.course-form-accordion__description{color:var(--text-muted);line-height:1.45}.course-form-accordion__meta{display:flex;flex:0 0 auto;align-items:center;gap:8px;color:var(--text-muted);font-size:13px;font-weight:600}.course-form-accordion__status{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:999px;font-size:12px;white-space:nowrap}.course-form-accordion__status>span{width:6px;height:6px;border-radius:50%;background:currentColor}.course-form-accordion__status--complete{color:var(--success);background:#e8f1eb}.course-form-accordion__status--pending,.course-form-accordion__status--error{color:var(--error);background:#fdeae8}.course-form-accordion__status--optional{color:var(--info);background:#eaf1f7}.course-form-accordion__trigger svg{transition:transform .16s ease}.course-form-accordion.is-open .course-form-accordion__trigger svg{transform:rotate(180deg)}.course-form-accordion__content{display:grid;gap:20px;padding:0 28px 28px}.course-form-accordion__content .user-form-section__heading{display:none}.course-form-error-summary{display:grid;gap:8px;margin:20px 28px 0;padding:12px 14px;border:1px solid var(--error);border-radius:var(--radius);color:var(--error);background:#fdeae8}.course-form-error-summary>div{display:flex;flex-wrap:wrap;gap:8px}.course-form-error-summary button{padding:0;border:0;color:inherit;background:transparent;font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}.course-form-progress{display:grid;gap:8px;margin:20px 28px 0;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.course-form-submit-feedback{display:grid;gap:4px;margin:20px 28px 0;border:1px solid #E9B7B2}.course-form-submit-feedback strong{font-size:14px}.course-form-progress__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.course-form-progress__header span,.course-form-progress p{color:var(--text-muted);font-size:13px}.course-form-progress p{margin:0}.course-form-progress__bar{height:7px;overflow:hidden;border-radius:999px;background:var(--border)}.course-form-progress__bar>span{display:block;height:100%;border-radius:inherit;background:var(--primary);transition:width .18s ease}.course-units-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.course-units-intro>div{display:grid;gap:4px}.course-units-intro p,.course-units-intro small{margin:0;color:var(--text-muted);line-height:1.45}.user-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.form-field{align-content:start}.user-form-grid__full{grid-column:1 / -1}.autosize-textarea{width:100%;min-height:88px;resize:vertical;border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;color:var(--text);background:var(--surface);font:inherit;line-height:1.5}.autosize-textarea::placeholder{color:var(--text-muted)}.autosize-textarea:focus,.searchable-select__control--is-focused{border-color:var(--focus);outline:2px solid rgb(82 117 98 / 18%);outline-offset:0}.searchable-select__control{display:flex;min-height:40px;align-items:center;border:1px solid var(--border);border-radius:var(--radius);padding:0 8px 0 12px;color:var(--text);background:var(--surface);cursor:text}.searchable-select{position:relative}.searchable-select__value-container{display:flex;min-width:0;flex:1;flex-wrap:wrap;align-items:center;gap:4px;padding:6px 0}.searchable-select__input-container{display:grid;min-width:40px;flex:1;color:var(--text)}.searchable-select__input{font:inherit}.searchable-select__placeholder{color:var(--text-muted)}.searchable-select__single-value{overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.searchable-select__indicators{display:flex;align-items:center}.searchable-select__indicator,.searchable-select__clear-indicator{display:flex;padding:6px;color:var(--text-muted);cursor:pointer}.searchable-select__indicator:hover,.searchable-select__clear-indicator:hover{color:var(--primary)}.searchable-select__menu{position:absolute;z-index:5;width:100%;margin-top:4px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-overlay)}.searchable-select__menu-portal{z-index:1000}.searchable-select__menu-list{max-height:240px;overflow-y:auto;padding:4px}.searchable-select__option{padding:9px 10px;border-radius:var(--radius-sm);cursor:pointer}.searchable-select__option--is-focused{background:var(--surface-muted)}.searchable-select__option--is-selected{color:var(--primary);background:var(--primary-soft);font-weight:600}.searchable-select__multi-value{display:flex;align-items:center;overflow:hidden;border-radius:var(--radius-sm);color:var(--primary);background:var(--primary-soft)}.searchable-select__multi-value__label{padding:3px 2px 3px 8px;font-size:13px}.searchable-select__multi-value__remove{padding:3px 7px;cursor:pointer}.searchable-select__multi-value__remove:hover{background:#3f5f5229}.searchable-select__no-options-message,.searchable-select__loading-message{padding:10px;color:var(--text-muted);text-align:center}.searchable-select.is-invalid .searchable-select__control{border-color:var(--error)}.course-schedule-picker{display:grid;gap:16px}.course-schedule-picker__days{display:flex;flex-wrap:wrap;gap:8px}.course-schedule-day{display:grid;width:42px;height:42px;place-items:center;border:1px solid var(--border);border-radius:50%;color:var(--text-muted);background:var(--surface);font:inherit;font-size:14px;font-weight:700;cursor:pointer}.course-schedule-day:hover{border-color:var(--focus);color:var(--primary);background:var(--primary-soft)}.course-schedule-day.is-selected{border-color:var(--primary);color:var(--surface);background:var(--primary)}.course-schedule-picker__empty{margin:0;padding:14px 16px;border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted)}.course-schedule-picker__ranges{display:grid;gap:12px}.course-schedule-day-card{display:grid;gap:14px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.course-schedule-day-card__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.course-schedule-day-card__header h3,.course-schedule-day-card__header p{margin:0}.course-schedule-day-card__header h3{font-size:16px}.course-schedule-day-card__header p{margin-top:2px;color:var(--text-muted);font-size:13px}.course-schedule-add-range{min-height:32px;padding:6px 8px}.course-schedule-day-card__ranges{display:grid;gap:10px}.course-schedule-range{display:grid;grid-template-columns:minmax(120px,180px) 20px minmax(120px,180px) 40px;align-items:end;gap:10px}.course-schedule-range__separator{display:grid;min-height:40px;place-items:center;color:var(--text-muted)}.course-schedule-remove-range{min-width:40px;min-height:40px;padding:8px;color:var(--text-muted)}.course-schedule-remove-range:hover{color:var(--error);background:#fdeae8}.course-schedule-range__error{grid-column:1 / -1;margin:0}.course-form-saving{margin:-4px 28px 24px;color:var(--text-muted)}.course-student-list{overflow:hidden;margin-top:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.course-student-list__header,.course-student-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,180px) 90px 100px;gap:16px;align-items:center;padding:10px 14px}.course-student-list__header{color:var(--text-muted);background:var(--surface-muted);font-size:13px;font-weight:600}.course-student-row{min-height:58px;border-top:1px solid var(--border)}.course-student-row__student{min-width:0}.course-student-row__student strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-student-row__date{min-width:0}.course-student-row__date input{width:100%}.course-student-row__mobile-label{display:none}.course-student-row__status{justify-self:start}.course-student-row__action{justify-self:end}.course-student-row__action .shared-button{min-height:36px;padding:6px 8px;color:var(--primary)}.course-student-row__action .shared-button:hover{color:var(--error);background:#fdeae8}.course-student-list__empty{margin:20px 0 0;padding:14px 16px;border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted)}.course-student-withdrawal-confirmation{display:grid;gap:12px}.course-student-withdrawal-confirmation h2,.course-student-withdrawal-confirmation p{margin:0}.course-student-withdrawal-confirmation .form-actions{justify-content:flex-end}@media(max-width:600px){.user-editor-layout{width:100%}.user-editor-actions{align-items:stretch;flex-wrap:wrap;padding:16px 0 0}.course-unsaved-indicator{flex-basis:100%;margin-right:0}.course-form-accordion{padding:0}.course-form-accordion__trigger{align-items:flex-start;padding:18px 20px}.course-form-accordion__meta{gap:4px;font-size:12px}.course-form-accordion__meta>span:first-child{display:none}.course-form-accordion__content{padding:0 20px 20px}.course-form-progress{margin:16px 20px 0}.course-student-list{overflow:visible;border:0;background:transparent}.course-student-list__header{display:none}.course-student-row{grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;margin-top:12px;padding:14px;border:1px solid var(--border);border-radius:var(--radius)}.course-student-row__student{grid-column:1;grid-row:1}.course-student-row__status{grid-column:2;grid-row:1;justify-self:end}.course-student-row__date{grid-column:1;grid-row:2}.course-student-row__date:before{display:block;margin-bottom:6px;color:var(--text-muted);content:"Fecha de ingreso";font-size:13px}.course-student-row__action{grid-column:2;grid-row:2;align-self:end}.course-schedule-day-card__header{align-items:flex-start;flex-direction:column}.course-schedule-range{grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr) 40px;gap:6px}}.form-checkbox-row{display:inline-flex;align-items:center;gap:8px;min-height:24px;width:fit-content;cursor:pointer}.form-checkbox-row .shared-checkbox{flex:0 0 auto;margin:0}.student-guardian-card{display:grid;gap:16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius)}.student-guardian-card summary{cursor:pointer;font-weight:700}.student-guardian-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px}.student-guardian-relationship{width:100%;min-height:40px;padding:8px 12px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.student-guardian-remove{margin-left:auto;color:var(--error)}.student-guardian-remove:hover{color:var(--error);background:#fdeae8}.student-guardian-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.student-guardian-list li{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;padding:12px;background:var(--surface-muted);border-radius:var(--radius)}.student-guardian-associated-card{display:grid;gap:16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.student-guardian-associated-summary{display:grid;gap:4px}.student-guardian-associated-summary span{color:var(--text-muted);font-size:14px}.student-guardian-associated-controls{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));align-items:end;gap:20px}.student-guardian-associated-controls .form-checkbox-row{min-height:40px}.student-guardian-associated-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px}.student-detail-guardians{display:grid;gap:12px}.student-detail-guardian{display:grid;gap:12px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}.student-detail-guardian h4,.student-detail-guardian p{margin:0}.student-detail-guardian h4{font-size:16px}.student-detail-guardian-data{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}.student-detail-guardian-data div{display:grid;gap:4px}.student-detail-guardian-data dt{color:var(--text-muted);font-size:12px;font-weight:600}.student-detail-guardian-data dd{margin:0;font-size:14px}.user-password-control{position:relative}.user-password-control .shared-input{width:100%;padding-right:48px}.user-password-toggle{position:absolute;top:50%;right:4px;min-width:36px;min-height:36px;padding:8px;transform:translateY(-50%)}.role-selector{display:grid;gap:12px;margin:0;padding:0;border:0}.role-selector[aria-invalid=true]{padding:12px;border:1px solid var(--error);border-radius:var(--radius)}.role-selector legend{padding:0;font-size:20px;font-weight:700}.role-selector>.muted{margin:-6px 0 0;line-height:1.5}.role-selector__options{display:grid;gap:8px}.role-option{display:flex;align-items:flex-start;gap:12px;min-height:64px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}.role-option:hover{background:var(--surface-muted);border-color:#b8c4ba}.role-option:has(input:checked){background:var(--primary-soft);border-color:var(--primary)}.role-option input{flex:0 0 auto;margin-top:3px}.role-option span{display:grid;gap:3px}.role-option small{color:var(--text-muted);line-height:1.4}.user-form .form-warning{margin:0}@media(max-width:600px){.user-form-section{padding:20px}.course-form-accordion{padding:0}.user-form-grid{grid-template-columns:minmax(0,1fr);gap:16px}.user-form-grid__full{grid-column:auto}.student-guardian-remove{margin-left:0}.student-guardian-associated-controls,.student-detail-guardian-data{grid-template-columns:minmax(0,1fr)}}@media(max-height:760px)and (min-width:1024px){.backoffice-sidebar{gap:16px;padding:16px;overflow-y:auto}.backoffice-sidebar__brand{padding-bottom:0}.backoffice-sidebar__label{margin-bottom:4px}.sidebar-link{min-height:40px;padding-block:8px}.backoffice-header{flex-basis:56px;height:56px}.backoffice-main{padding-block:20px}.page-header{margin-bottom:16px}.admin-grid{height:480px}}.sheet .backoffice-sidebar{position:static;height:auto;gap:16px;padding:0;border:0}.classes-toolbar{flex-wrap:nowrap}.classes-toolbar .search-input{min-width:0}.classes-toolbar .search-input{flex:1 1 280px}@media(max-width:1180px){.classes-toolbar{flex-wrap:wrap}}@media(max-width:767px){.backoffice-header{gap:8px}.header-user{display:none}.toolbar .search-input{flex-basis:100%;min-width:0}.filter-field{flex:1 1 200px}.user-form-grid{grid-template-columns:minmax(0,1fr);gap:16px}.user-form-grid__full{grid-column:auto}}.sidebar-group{display:grid;gap:4px}.sidebar-group__trigger{width:100%;border:0;background:transparent;font:inherit;cursor:pointer;text-align:left}.sidebar-group__chevron{margin-left:auto}.sidebar-group__items{display:grid;gap:2px;padding-left:16px}.sidebar-group__items .sidebar-link{min-height:40px;padding-block:8px;font-size:14px}.backoffice-toast{position:fixed;top:80px;right:32px;z-index:20;display:flex;align-items:center;gap:10px;width:min(420px,calc(100vw - 64px));box-shadow:var(--shadow-overlay)}.backoffice-toast__dismiss{min-width:28px;min-height:28px;margin-left:auto;padding:4px}@media(max-width:600px){.backoffice-toast{top:72px;right:16px;width:calc(100vw - 32px)}}.header-account{position:relative;display:flex;align-items:center;margin-left:auto}.header-account__trigger{min-height:40px;padding:8px 10px;color:var(--text)}.header-account__trigger:hover{color:var(--text);background:var(--surface-muted)}.header-account__name{white-space:nowrap}.header-account__chevron{transition:transform var(--motion-fast)}.header-account__chevron--open{transform:rotate(180deg)}.header-account__menu{position:absolute;z-index:20;top:calc(100% + 8px);right:0;display:grid;min-width:208px;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-overlay)}.header-account__menu-item{display:flex;align-items:center;gap:10px;min-height:40px;padding:8px 10px;color:var(--text);background:transparent;border:0;border-radius:calc(var(--radius) - 2px);cursor:pointer;font:inherit;font-size:14px;font-weight:600;text-align:left;text-decoration:none}.header-account__menu-item:hover{background:var(--surface-muted)}@media(max-width:600px){.header-account__name{display:none}}
