:root{--ink:#12232e;--muted:#587083;--brand:#075e9a;--brand-strong:#08366f;--accent:#075e9a;--surface:#fff;--line:#dce7ee;--page-bg:#f5f7fa;--panel-shadow:0 8px 24px #12232e0f}.presente-skeleton-page{flex-direction:column;gap:1.25rem;width:100%;padding:.25rem;display:flex}.presente-skeleton-page.compact{padding:0}.presente-skeleton-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.presente-skeleton-heading>div{flex-direction:column;gap:.75rem;min-width:0;display:flex}.presente-skeleton-filters{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;display:grid}.presente-skeleton-kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;display:grid}.presente-skeleton-kpi,.presente-skeleton-table,.presente-skeleton-student{background:#fff;border:1px solid #d8e5f0;box-shadow:0 10px 26px #0f3b6f12}.presente-skeleton-kpi{border-radius:8px;flex-direction:column;justify-content:space-between;min-height:8rem;padding:1.15rem;display:flex}.presente-skeleton-table{border-radius:8px;overflow:hidden}.presente-skeleton-table-head,.presente-skeleton-table-row{grid-template-columns:repeat(var(--presente-skeleton-columns,5), minmax(0, 1fr));align-items:center;gap:1rem;padding:1rem 1.15rem;display:grid}.presente-skeleton-table-head{background:#f3f8fc}.presente-skeleton-table-row+.presente-skeleton-table-row{border-top:1px solid #edf2f7}.presente-skeleton-student-list{flex-direction:column;gap:.85rem;display:flex}.presente-skeleton-student{border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.95rem;display:grid}.presente-skeleton-student>div{flex-direction:column;gap:.55rem;min-width:0;display:flex}.presente-skeleton-page .p-skeleton,.presente-skeleton-table .p-skeleton,.presente-skeleton-student-list .p-skeleton{background-color:#e8f1f8}.presente-skeleton-page .p-skeleton:after,.presente-skeleton-table .p-skeleton:after,.presente-skeleton-student-list .p-skeleton:after{background:linear-gradient(90deg,#fff0,#1b92cd24,#fff0)}@media (max-width:900px){.presente-skeleton-heading{flex-direction:column;align-items:flex-start}.presente-skeleton-filters,.presente-skeleton-kpis{grid-template-columns:1fr}.presente-skeleton-table-head,.presente-skeleton-table-row{grid-template-columns:1.25fr 1fr}.presente-skeleton-table-head .p-skeleton:nth-child(n+3),.presente-skeleton-table-row .p-skeleton:nth-child(n+3){display:none}.presente-skeleton-student{grid-template-columns:auto minmax(0,1fr)}.presente-skeleton-student>.p-skeleton:last-child{grid-column:1/-1;width:100%!important}}.attendance-workspace{flex-direction:column;gap:1rem;display:flex}.attendance-mode-panel{background:#f8fbff;border:1px solid #dbeafe;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;display:flex}.attendance-mode-panel div{gap:.2rem;display:grid}.attendance-mode-panel strong{color:#0f172a}.attendance-mode-panel span{color:#53657d}.required-inline{color:#dc2626;font-weight:700}.optional-inline{color:#64748b;font-weight:600}.attendance-today-workspace{gap:1.25rem;display:grid}.attendance-view-tabs{border-bottom:1px solid #e2e8f0;flex-wrap:wrap;gap:.75rem;padding-bottom:1rem;display:flex}.today-attendance-dashboard{gap:1.1rem;display:grid}.today-dashboard-heading{justify-content:space-between;align-items:start;gap:1rem;display:flex}.today-dashboard-heading h2{color:#0f172a;margin:.1rem 0 .35rem;font-size:1.45rem}.today-dashboard-heading p{color:#64748b;margin:0}.today-dashboard-filters{grid-template-columns:minmax(12rem,.9fr) minmax(14rem,1.1fr) minmax(11rem,.9fr);gap:.75rem;width:min(100%,49rem);display:grid}.today-dashboard-filter{gap:.35rem;min-width:0;display:grid}.today-dashboard-filter label{color:#334155;font-size:.86rem;font-weight:800}.today-dashboard-filter .p-multiselect,.today-dashboard-filter .p-dropdown{width:100%}.today-date-control{align-items:center;gap:.35rem;display:flex}.today-date-control .p-calendar{width:100%}.today-kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:.85rem;display:grid}.today-kpi-grid article{background:#fff;border:1px solid #e2e8f0;border-radius:8px;gap:.25rem;min-height:7rem;padding:1rem;display:grid}.today-kpi-grid span,.today-kpi-grid small{color:#64748b;font-weight:700}.today-kpi-grid strong{color:#0f172a;font-size:2rem;line-height:1}.today-kpi-grid .present{background:#f0fdf4;border-color:#bbf7d0}.today-kpi-grid .coverage{background:#eff6ff;border-color:#bfdbfe}.today-kpi-grid .pending{background:#fffbeb;border-color:#fde68a}.today-kpi-grid .absent{background:#fef2f2;border-color:#fecaca}.today-kpi-grid .late{background:#fff7ed;border-color:#fed7aa}.today-kpi-grid .partial{background:#eff6ff;border-color:#bfdbfe}.today-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.today-alert-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;display:grid}.today-alert{background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:flex-start;gap:.75rem;min-height:5.2rem;padding:.9rem;display:flex}.today-alert .pi{border-radius:999px;flex:none;place-items:center;width:2rem;height:2rem;font-size:.9rem;display:grid}.today-alert div{gap:.25rem;display:grid}.today-alert strong{color:#0f172a;line-height:1.25}.today-alert small{color:#64748b;line-height:1.35}.today-alert.ok{background:#f0fdf4;border-color:#bbf7d0}.today-alert.ok .pi{color:#15803d;background:#dcfce7}.today-alert.info{background:#eff6ff;border-color:#bfdbfe}.today-alert.info .pi{color:#2563eb;background:#dbeafe}.today-alert.warning{background:#fffbeb;border-color:#fde68a}.today-alert.warning .pi{color:#d97706;background:#fef3c7}.today-alert.danger{background:#fef2f2;border-color:#fecaca}.today-alert.danger .pi{color:#dc2626;background:#fee2e2}.today-distribution-panel,.today-list-panel{background:#fff;border:1px solid #e2e8f0;border-radius:8px;gap:1rem;padding:1rem;display:grid}.today-distribution-panel h3,.today-list-panel h3{color:#0f172a;margin:0;font-size:1rem}.today-distribution-panel p,.today-list-panel p{color:#64748b;margin:0}.today-donut-wrap{align-items:center;gap:1.25rem;display:flex}.today-donut{border-radius:50%;flex:none;place-items:center;width:9rem;height:9rem;display:grid;position:relative}.today-donut:after{content:"";background:#fff;border-radius:50%;position:absolute;inset:1.1rem}.today-donut span{z-index:1;color:#0f172a;font-size:1.35rem;font-weight:800;position:relative}.today-progress-block{gap:.65rem;display:grid}.today-progress-block strong{color:#0f172a;font-size:2.1rem}.today-progress-block small{color:#64748b;font-weight:700}.today-secondary-progress{border-top:1px solid #e2e8f0;gap:.45rem;margin-top:.4rem;padding-top:.9rem;display:grid}.today-secondary-progress>span{color:#475569;font-weight:800}.today-secondary-progress>strong{color:#0f172a;font-size:1.35rem;line-height:1}.today-coverage-stack{background:#e2e8f0;border-radius:999px;width:100%;height:.55rem;display:flex;overflow:hidden}.today-coverage-stack span{height:100%}.today-coverage-stack .covered{background:#2563eb}.today-coverage-stack .pending{background:#fbbf24}.today-ranked-row,.today-session-row{border-bottom:1px solid #e2e8f0;gap:.65rem;padding:.8rem 0;display:grid}.today-ranked-row{padding:.9rem 0}.today-ranked-row:last-child,.today-session-row:last-child{border-bottom:0}.today-ranked-row strong,.today-session-row strong{color:#0f172a;display:block}.today-ranked-row span,.today-session-row span,.today-session-row small{color:#64748b;font-weight:700}.today-ranked-row-heading{grid-template-columns:2rem minmax(0,1fr) auto;align-items:center;gap:.7rem;display:grid}.today-ranked-row-heading>div{min-width:0}.today-ranked-row-heading strong,.today-ranked-row-heading span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.today-rank-badge{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;place-items:center;width:2rem;height:2rem;font-size:.86rem;font-weight:900;display:inline-grid;color:#1d4ed8!important}.today-novelty-pill{background:#fff7ed;border:1px solid #fed7aa;border-radius:999px;padding:.35rem .55rem;font-size:.78rem;font-weight:900;color:#c2410c!important}.today-session-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.today-session-row.detailed{grid-template-columns:minmax(0,1fr) auto}.today-session-row.detailed .today-status-stack{margin-top:.55rem}.today-session-row>div:last-child{grid-template-columns:5.25rem 2.75rem;justify-content:start;align-items:center;gap:.5rem;display:grid}.today-session-row>div:last-child small{justify-self:end}.attendance-session-tag{color:#fff;justify-content:center;width:5.25rem;font-weight:800}.attendance-session-tag .p-tag-value{color:#fff}.attendance-session-tag.corrected{background:#ea580c;border-color:#ea580c}.attendance-session-tag.saved{background:#16a34a;border-color:#16a34a}.today-panel-heading-inline{justify-content:space-between;align-items:center;gap:1rem;display:flex}.today-panel-heading-inline div{gap:.25rem;display:grid}.today-loading-inline{color:#64748b;align-items:center;gap:.75rem;font-weight:700;display:flex}.today-novelty-follow-up{overflow:hidden}.today-novelty-table .p-datatable-thead>tr>th{color:#334155;font-size:.82rem}.today-novelty-table .p-datatable-tbody>tr>td{color:#475569;font-size:.88rem}.today-table-header-stack{white-space:normal;min-width:4.75rem;line-height:1.12;display:inline-block}.today-reasons-button{color:#2563eb;min-width:2.35rem}.today-reasons-button .p-button-label{font-size:.78rem;font-weight:900}.today-detail-button{color:#2563eb;text-align:left;justify-content:flex-start;padding:0;font-weight:800}.today-detail-button .p-button-label{white-space:normal;line-height:1.25}.today-absence-count-button{color:#2563eb;min-width:2rem;padding:.15rem .35rem;font-weight:900}.today-absence-count-button.p-disabled{color:#64748b;opacity:1}.today-reasons-dialog{width:min(92vw,420px)}.today-reasons-list{gap:.75rem;display:grid}.today-reasons-list article{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;gap:.45rem;padding:.75rem;display:grid}.today-reasons-list article>div{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.today-reasons-list strong{color:#0f172a}.today-reasons-list p{color:#475569;margin:0;line-height:1.45}.today-reasons-list small{color:#64748b;font-weight:700}.today-absence-day-record{border-top:1px solid #e2e8f0;gap:.15rem;padding-top:.45rem;display:grid}.today-absence-day-record:first-of-type{border-top:0;padding-top:0}.today-status-stack{background:#e2e8f0;border-radius:999px;width:100%;height:.72rem;display:flex;overflow:hidden;box-shadow:inset 0 0 0 1px #0f172a0a}.today-status-stack span{height:100%}.today-status-stack .present{background:#16a34a}.today-status-stack .late{background:#f59e0b}.today-status-stack .absent{background:#dc2626}.today-bar-legend,.today-session-chips{flex-wrap:wrap;gap:.45rem;display:flex}.today-session-chips{margin-top:.45rem}.today-bar-legend span,.today-session-chips span{border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .45rem;font-size:.76rem;line-height:1;display:inline-flex}.today-bar-legend span:before,.today-session-chips span:before{content:"";border-radius:999px;width:.48rem;height:.48rem}.today-bar-legend .present,.today-session-chips .present{color:#15803d;background:#f0fdf4}.today-bar-legend .present:before,.today-session-chips .present:before{background:#16a34a}.today-bar-legend .late,.today-session-chips .late{color:#b45309;background:#fffbeb}.today-bar-legend .late:before,.today-session-chips .late:before{background:#f59e0b}.today-bar-legend .absent,.today-session-chips .absent{color:#b91c1c;background:#fef2f2}.today-bar-legend .absent:before,.today-session-chips .absent:before{background:#dc2626}.today-heatmap-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.today-heatmap-cell{background:#eff6ff;border:1px solid #dbeafe;border-radius:8px;align-content:end;gap:.25rem;min-height:6.2rem;padding:.85rem;display:grid}.today-heatmap-cell span{color:#1d4ed8;font-size:1.45rem;font-weight:900;line-height:1}.today-heatmap-cell strong{color:#0f172a;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.today-heatmap-cell small{color:#475569;text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.today-heatmap-cell.medium{background:#fff7ed;border-color:#fed7aa}.today-heatmap-cell.medium span{color:#c2410c}.today-heatmap-cell.high{background:#fef2f2;border-color:#fecaca}.today-heatmap-cell.high span{color:#b91c1c}.attendance-mini-bar.warning span{background:#f97316}.teacher-auth-shell{background:#e9eef5;justify-content:center;align-items:center;min-height:100vh;padding:1.5rem 1rem;display:flex}.teacher-auth-phone{background:#f8fafc;border:1px solid #d8e1ee;border-radius:24px;width:min(100%,430px);min-height:auto;overflow:hidden;box-shadow:0 22px 52px #0f172a24}.teacher-mobile-shell{background:#f8fafc;width:100%;max-width:390px;min-height:100vh;margin:0 auto;padding:1rem}.teacher-mobile-topbar,.teacher-taking-header{justify-content:space-between;align-items:center;gap:.85rem;padding:.6rem 0 1rem;display:flex}.teacher-mobile-topbar span,.teacher-taking-header span{color:#64748b;font-size:.82rem;font-weight:700}.teacher-mobile-topbar h1,.teacher-taking-header h1{color:#0f172a;margin:.15rem 0 0;font-size:1.35rem;line-height:1.15}.teacher-mobile-summary{background:#eff6ff;border:1px solid #dbeafe;border-radius:8px;gap:.25rem;margin-bottom:1rem;padding:1rem;display:grid}.teacher-mobile-summary strong{color:#0f172a;font-size:1.1rem}.teacher-mobile-summary span{color:#475569}.teacher-class-list,.teacher-student-list{gap:.75rem;display:grid}.teacher-class-card{color:#0f172a;cursor:pointer;text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:3rem minmax(0,1fr) 1.4rem;align-items:center;gap:.1rem .8rem;width:100%;padding:.8rem .9rem;display:grid;position:relative;box-shadow:0 8px 22px #0f172a0d}.teacher-class-card span{color:#0f766e;font-size:.82rem;font-weight:800}.teacher-class-card strong{grid-column:2;font-size:1.05rem}.teacher-class-card small{color:#64748b;grid-column:2}.teacher-class-card>.pi{color:#94a3b8;grid-area:1/3/span 3;justify-self:end}.teacher-class-status-tag{grid-column:2;justify-content:center;justify-self:start;width:fit-content;min-width:5.8rem}.teacher-class-card-icon{background:#102a4c;border-radius:.85rem;grid-area:1/1/span 3;place-items:center;width:3rem;height:3rem;display:grid;color:#fff!important}.teacher-class-card-icon .pi{color:inherit;font-size:1.2rem}.teacher-mobile-empty{align-content:center;gap:1rem;min-height:100vh;display:grid}.teacher-mobile-taking{padding-bottom:4.75rem}.teacher-taking-header{z-index:3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f8fafcf5;border-bottom:1px solid #e2e8f0;margin:-1rem -1rem 0;padding:.85rem 1rem;position:sticky;top:0}.teacher-taking-header>div{min-width:0}.teacher-attendance-counters{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;margin:1rem 0;display:grid}.teacher-attendance-counters span{color:#64748b;text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-content:center;gap:.1rem;min-height:4.2rem;font-size:.72rem;display:grid}.teacher-attendance-counters strong{color:#0f172a;font-size:1.35rem}.teacher-quick-actions{grid-template-columns:1fr 1fr;gap:.65rem;margin:.85rem 0;display:grid}.teacher-quick-actions .p-button{justify-content:center;min-height:2.85rem}.teacher-general-note{color:#334155;gap:.4rem;margin-bottom:.85rem;font-size:.88rem;font-weight:700;display:grid}.teacher-student-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.65rem;padding:.8rem;display:grid}.teacher-student-name{gap:.15rem;min-width:0;display:grid}.teacher-student-name strong{color:#0f172a;line-height:1.2}.teacher-student-name span{color:#64748b;font-size:.8rem}.teacher-student-name small{color:#94a3b8;font-size:.72rem;line-height:1.1}.teacher-status-buttons{grid-template-columns:repeat(3,2.25rem);gap:.25rem;display:grid}.teacher-status-buttons button{color:#475569;cursor:pointer;width:2.25rem;height:2.25rem;font:inherit;background:#f8fafc;border:1px solid #dbe4ee;border-radius:8px;font-size:.78rem;font-weight:800}.teacher-status-buttons button.active{color:#fff;background:#0f766e;border-color:#0f766e}.teacher-mobile-loading{color:#64748b;place-items:center;min-height:8rem;display:grid}.teacher-note-dialog,.p-dialog.teacher-note-dialog{width:min(90vw,387px)!important;max-width:90vw!important}.teacher-note-dialog .p-dialog-header{background:#f8fbff;border-bottom:1px solid #e2e8f0}.teacher-note-dialog .p-dialog-title{color:#102a4c}.teacher-note-student-header{align-items:center;gap:.75rem;min-width:0;display:flex}.teacher-note-student-header button,.teacher-note-student-header span{background:#f8fafc;border:1px solid #dbe4ee;border-radius:999px;flex:none;width:2.45rem;height:2.45rem;display:block}.teacher-note-student-header button{cursor:pointer;padding:0;overflow:hidden}.teacher-note-student-header button:hover,.teacher-note-student-header button:focus-visible{border-color:#93c5fd;outline:none;box-shadow:0 0 0 3px #2563eb1a}.teacher-note-student-header img{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.teacher-note-student-header strong{color:#102a4c;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:1rem;line-height:1.15;overflow:hidden}.teacher-note-dialog .p-dialog-content{background:#fbfdff;padding-top:1.25rem}.teacher-status-dialog,.p-dialog.teacher-status-dialog{width:min(90vw,387px)!important;max-width:90vw!important}.teacher-status-dialog-content{gap:.7rem;display:grid}.teacher-status-choice{color:#0f172a;cursor:pointer;width:100%;font:inherit;text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:.85rem;grid-template-columns:2.3rem minmax(0,1fr);align-items:center;gap:.75rem;padding:.85rem;font-weight:740;display:grid}.teacher-status-choice .pi{background:#f1f5f9;border-radius:999px;place-items:center;width:2.3rem;height:2.3rem;display:grid}.teacher-status-choice.present.active,.teacher-status-choice.present:hover{color:#15803d;background:#f0fdf4;border-color:#bbf7d0}.teacher-status-choice.absent.active,.teacher-status-choice.absent:hover{color:#dc2626;background:#fef2f2;border-color:#fecaca}.teacher-status-choice.late.active,.teacher-status-choice.late:hover{color:#ca8a04;background:#fffbeb;border-color:#fde68a}.teacher-note-dialog-content{gap:1rem;display:grid}.teacher-reason-list{flex-wrap:wrap;gap:.5rem;display:flex}.teacher-reason-list button{color:#1d4ed8;cursor:pointer;background:#eff6ff;border:1px solid #bfdbfe;border-radius:.72rem;padding:.55rem .8rem;font-weight:600}.teacher-reason-list button.reason-tone-1{color:#15803d;background:#f0fdf4;border-color:#bbf7d0}.teacher-reason-list button.reason-tone-2{color:#c2410c;background:#fff7ed;border-color:#fed7aa}.teacher-reason-list button.reason-tone-3{color:#6d28d9;background:#f5f3ff;border-color:#ddd6fe}.teacher-reason-list button.reason-tone-4{color:#dc2626;background:#fef2f2;border-color:#fecaca}.teacher-reason-list button.active{color:#fff;background:#102a4c;border-color:#102a4c;box-shadow:0 8px 18px #102a4c2e}.teacher-note-dialog-content .p-button{background:#102a4c;border-color:#102a4c;justify-content:center}.teacher-premium-attendance{color:#111827;background:#f8fafc;max-width:390px;padding:0;box-shadow:0 0 0 1px #e5e7eb}.teacher-app-header{z-index:5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fbfdfff0;border-bottom:1px solid #e5e7eb;grid-template-columns:2.75rem 1fr 2.75rem;align-items:center;min-height:4.9rem;padding:.85rem 1rem;display:grid;position:sticky;top:0}.teacher-app-header h1{color:#111827;text-align:center;margin:0;font-size:1.25rem;font-weight:850}.teacher-app-header .p-button{color:#1f2937}.teacher-home-header{grid-template-columns:2.75rem 1fr 2.75rem}.teacher-home-hero{background:#eff6ff;border:1px solid #bfdbfe;border-radius:1rem;grid-template-columns:4.25rem minmax(0,1fr);align-items:center;gap:.9rem;margin:1rem;padding:1rem;display:grid;box-shadow:0 14px 34px #0f172a14}.teacher-home-hero h2{color:#111827;margin:.16rem 0 .18rem;font-size:1.2rem;font-weight:760;line-height:1.15}.teacher-home-hero span,.teacher-home-hero p{color:#475569;margin:0;font-size:.82rem;line-height:1.3;display:block}.teacher-home-photo{background:#f8fafc;border:3px solid #fffffff2;border-radius:999px;place-items:center;width:4.25rem;height:4.25rem;display:grid;overflow:hidden;box-shadow:0 14px 26px #102a4c2e}.teacher-home-photo img{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.teacher-home-summary{border-color:#d6e4ff;grid-template-columns:repeat(4,minmax(0,1fr))}.teacher-home-summary div:nth-child(2) .pi{color:#ea580c;background:#fff7ed}.teacher-home-summary div:nth-child(3) .pi{color:#16a34a;background:#ecfdf5}.teacher-home-summary div:nth-child(4) .pi{color:#d97706;background:#fffbeb}.teacher-home-class-list .teacher-class-card{border-color:#e5e7eb;border-radius:.9rem;box-shadow:0 10px 24px #1118270a}.teacher-home-class-list .teacher-class-card.saved{background:#fbfffd;border-color:#bbf7d0}.teacher-home-class-list .teacher-class-card.pending{border-color:#fde68a}.teacher-home-class-list .teacher-class-card.disabled{cursor:not-allowed;opacity:.62}.teacher-home-class-list .teacher-class-card:nth-child(4n+1) .teacher-class-card-icon{background:#102a4c}.teacher-home-class-list .teacher-class-card:nth-child(4n+2) .teacher-class-card-icon{background:#00796b}.teacher-home-class-list .teacher-class-card:nth-child(4n+3) .teacher-class-card-icon{background:#b45309}.teacher-home-class-list .teacher-class-card:nth-child(4n+4) .teacher-class-card-icon{background:#2563eb}.teacher-home-class-list .teacher-class-card span:not(.teacher-class-card-icon){color:#00796b;font-size:.78rem;font-weight:760}.teacher-home-class-list .teacher-class-card strong{color:#111827;font-size:.96rem;font-weight:720;line-height:1.14}.teacher-home-class-list .teacher-class-card small{color:#6b7280;font-size:.75rem}.teacher-home-screen{background:#f7fbff url(/brand/login-mountains.webp) 76% bottom/cover no-repeat fixed;max-width:390px;padding:1.35rem 1rem 7.5rem;position:relative}.teacher-home-hero.teacher-home-hero-premium,.teacher-home-day-card,.teacher-home-class-list .teacher-class-card,.teacher-schedule-card,.teacher-report-grid article,.teacher-report-class-card,.teacher-home-bottom-nav{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background-color:#ffffffeb}.teacher-home-class-list .teacher-class-card.saved{background-color:#ffffffeb}.teacher-home-topbar{grid-template-columns:2.8rem minmax(0,1fr) 2.8rem;align-items:center;margin-bottom:.75rem;display:grid}.teacher-home-brand{object-fit:contain;justify-self:center;width:min(9rem,100%);height:auto;display:block}.teacher-home-topbar .p-button{color:#10203e;width:2.8rem;height:2.8rem}.teacher-home-title{color:#111c35;letter-spacing:0;margin:0 0 1.05rem;font-size:2.25rem;font-weight:900;line-height:.95}.teacher-home-hero.teacher-home-hero-premium{background:linear-gradient(105deg,#fff9e185,#eff7fff5);border-color:#d9e7fb;border-radius:1.7rem;grid-template-columns:4.85rem minmax(0,1fr);gap:.9rem;margin:0 0 1.1rem;padding:1rem;box-shadow:0 18px 42px #4c678d24}.teacher-home-hero.teacher-home-hero-premium .teacher-home-photo{border-width:4px;width:4.65rem;height:4.65rem;box-shadow:0 14px 30px #1f437829}.teacher-home-hero.teacher-home-hero-premium h2{color:#111c35;letter-spacing:0;margin:0 0 .25rem;font-size:1.32rem;font-weight:900;line-height:1.08}.teacher-home-hero.teacher-home-hero-premium h2 span{color:inherit;font-size:1em;display:inline}.teacher-home-hero.teacher-home-hero-premium>div:last-child>span{color:#314158;font-size:.95rem;font-weight:650}.teacher-home-hero.teacher-home-hero-premium p{color:#245dd8;margin-top:.4rem;font-size:.92rem;font-weight:900}.teacher-home-day-card{background:#ffffffeb;border-radius:1.65rem;grid-template-columns:1fr;gap:1rem;margin-bottom:1.15rem;padding:1rem;display:grid;box-shadow:0 18px 44px #586e8b24}.teacher-home-day-info{border-right:0;gap:.8rem;padding-right:0;display:grid}.teacher-home-date-line,.teacher-home-counts,.teacher-home-counts span{align-items:center;display:flex}.teacher-home-date-line{gap:.75rem}.teacher-home-date-line .pi,.teacher-home-counts .pi{color:#2f66e8;background:#eef4ff;border-radius:.9rem;place-items:center;width:2.35rem;height:2.35rem;font-size:1rem;display:grid}.teacher-home-date-line strong{color:#111c35;font-size:1.12rem;font-weight:900}.teacher-home-counts{flex-wrap:wrap;gap:1rem}.teacher-home-counts span{color:#314158;white-space:nowrap;gap:.55rem;font-size:1rem;font-weight:800}.teacher-home-counts .saved .pi{color:#18a96d;background:#dcf8e7;border-radius:999px}.teacher-home-counts .pending .pi{color:#d88a08;background:#fff2cf;border-radius:999px}.teacher-home-progress{align-content:center;gap:.65rem;display:grid}.teacher-home-progress>span{color:#6b778d;font-size:1rem;font-weight:700}.teacher-home-progress-bars{gap:.28rem;display:flex}.teacher-home-progress-bars span{background:#e8edf5;border-radius:999px;flex:1;height:.55rem}.teacher-home-progress-bars span.done{background:linear-gradient(90deg,#17b878,#21c89a)}.teacher-home-progress strong{color:#64748b;text-align:center;font-size:1rem;font-weight:850}.teacher-home-progress strong span{color:#18b87d}.teacher-home-section-title{color:#111c35;letter-spacing:0;margin:0 0 .8rem;font-size:1.28rem;font-weight:900}.teacher-home-class-list{gap:.78rem;margin:0 0 1.2rem}.teacher-home-class-list .teacher-class-card{background:#fff;border:0;border-radius:1.55rem;grid-template-columns:3.75rem minmax(0,1fr) 1.35rem;gap:.12rem .82rem;min-height:6.35rem;padding:.95rem .85rem .95rem 1.05rem;overflow:hidden;box-shadow:0 16px 38px #586e8b21}.teacher-home-class-list .teacher-class-card:before{content:"";background:#2f66e8;width:.48rem;position:absolute;inset:0 auto 0 0}.teacher-home-class-list .teacher-class-card:nth-of-type(4n+2):before{background:#24bb7d}.teacher-home-class-list .teacher-class-card:nth-of-type(4n+3):before{background:#7b55df}.teacher-home-class-list .teacher-class-card:nth-of-type(4n+4):before{background:#0ea5b7}.teacher-home-class-list .teacher-class-card.saved{background:#fff;border:0}.teacher-home-class-list .teacher-class-card.pending{border:0}.teacher-home-class-list .teacher-class-card-icon{background:#eef4ff;border-radius:1rem;width:3.55rem;height:3.55rem;color:#2f66e8!important}.teacher-home-class-list .teacher-class-card:nth-of-type(4n+2) .teacher-class-card-icon{background:#eafaf2;color:#24bb7d!important}.teacher-home-class-list .teacher-class-card:nth-of-type(4n+3) .teacher-class-card-icon{background:#f2edff;color:#7b55df!important}.teacher-home-class-list .teacher-class-card:nth-of-type(4n+4) .teacher-class-card-icon{background:#e8fbfd;color:#0ea5b7!important}.teacher-home-class-list .teacher-class-card-icon .pi{font-size:1.55rem}.teacher-home-class-list .teacher-class-card .teacher-class-time{color:#2f66e8;font-size:.82rem;font-weight:900}.teacher-home-class-list .teacher-class-card:nth-of-type(4n+2) .teacher-class-time{color:#15aa70}.teacher-home-class-list .teacher-class-card:nth-of-type(4n+3) .teacher-class-time{color:#7b55df}.teacher-home-class-list .teacher-class-card strong{color:#111c35;letter-spacing:0;font-size:1.02rem;font-weight:900;line-height:1.08}.teacher-home-class-list .teacher-class-card small{color:#69758a;font-size:.84rem;font-weight:650}.teacher-home-class-list .teacher-class-status-tag{color:#875a05;background:#fff1cf;border-radius:999px;margin-top:.45rem;font-size:.88rem;font-weight:900}.teacher-home-class-list .teacher-class-card.saved .teacher-class-status-tag{color:#11764d;background:#dcf8e7}.teacher-home-class-list .teacher-class-card>.pi{color:#111c35;font-size:1.18rem}.teacher-home-tip{color:#174b9d;background:#eaf3ff;border-radius:1.1rem;align-items:center;gap:.8rem;margin-bottom:2.25rem;padding:.95rem 1.1rem;font-size:1rem;font-weight:800;display:flex}.teacher-home-tip span{flex:1}.teacher-home-tip .pi-lightbulb{color:#2f66e8;font-size:1.45rem}.teacher-home-tip .pi-times{color:#5a7dbb}.teacher-home-bottom-nav{z-index:7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border-radius:1.5rem;justify-content:space-around;align-items:center;min-height:4.55rem;display:flex;position:fixed;bottom:.7rem;left:calc(50% - min(195px,50vw) + 1rem);right:calc(50% - min(195px,50vw) + 1rem);box-shadow:0 14px 34px #586e8b29}.teacher-home-bottom-nav span,.teacher-home-bottom-nav button{color:#66748a;cursor:pointer;background:0 0;border:0;justify-items:center;gap:.25rem;min-width:5.2rem;font-size:.82rem;font-weight:800;display:grid}.teacher-home-bottom-nav span .pi,.teacher-home-bottom-nav button .pi{font-size:1.35rem}.teacher-home-bottom-nav span.active,.teacher-home-bottom-nav button.active{color:#2f66e8}.teacher-home-bottom-nav span.active:after,.teacher-home-bottom-nav button.active:after{content:"";background:#2f66e8;border-radius:999px;width:3.2rem;height:.18rem}.teacher-schedule-list{gap:.9rem;margin-bottom:1.4rem;display:grid}.teacher-schedule-day{gap:.58rem;display:grid}.teacher-schedule-day h3{color:#475569;margin:0;font-size:.92rem;font-weight:900}.teacher-schedule-card{background:#fff;border:1px solid #e6edf7;border-radius:1.1rem;grid-template-columns:5.9rem minmax(0,1fr);align-items:center;gap:.62rem;padding:.72rem .82rem;display:grid;box-shadow:0 12px 28px #586e8b1a}.teacher-schedule-card time{color:#2f66e8;text-align:center;white-space:nowrap;background:#eef4ff;border-radius:.75rem;justify-content:center;place-items:center;min-height:2.25rem;font-size:.72rem;font-weight:900;line-height:1;display:flex}.teacher-schedule-card div{gap:.16rem;min-width:0;display:grid}.teacher-schedule-card strong{color:#111c35;font-size:.98rem;font-weight:900;line-height:1.12}.teacher-schedule-card span,.teacher-schedule-card small{color:#64748b;font-size:.82rem;font-weight:650;line-height:1.2}.teacher-report-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.72rem;margin-bottom:1.1rem;display:grid}.teacher-report-grid article{background:#fff;border:1px solid #e6edf7;border-radius:1rem;gap:.24rem;min-height:5.45rem;padding:.86rem;display:grid;box-shadow:0 12px 28px #586e8b1a}.teacher-report-grid .teacher-report-main-card{color:#fff;background:linear-gradient(135deg,#17345f 0%,#2f66e8 100%);grid-column:1/-1;min-height:6.2rem}.teacher-report-grid span{color:#64748b;font-size:.76rem;font-weight:850;line-height:1.15}.teacher-report-grid strong{color:#111c35;font-size:1.75rem;font-weight:950;line-height:1}.teacher-report-grid small{color:#7b8797;font-size:.72rem;font-weight:750;line-height:1.18}.teacher-report-main-card span,.teacher-report-main-card strong,.teacher-report-main-card small{color:#fff}.teacher-report-main-card strong{font-size:2.25rem}.teacher-report-class-list{gap:.7rem;margin-bottom:1.35rem;display:grid}.teacher-report-class-list h3{color:#475569;margin:0;font-size:.92rem;font-weight:900}.teacher-report-class-card{background:#fff;border:1px solid #e6edf7;border-radius:1rem;gap:.62rem;padding:.82rem;display:grid;box-shadow:0 12px 28px #586e8b1a}.teacher-report-class-card>div:first-child{gap:.12rem;display:grid}.teacher-report-class-card strong{color:#111c35;font-size:.98rem;font-weight:900;line-height:1.12}.teacher-report-class-card span{color:#64748b;font-size:.8rem;font-weight:700}.teacher-report-class-card dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin:0;display:grid}.teacher-report-class-card dl div{text-align:center;background:#f5f8fc;border-radius:.72rem;gap:.1rem;padding:.5rem .42rem;display:grid}.teacher-report-class-card dt{color:#64748b;font-size:.66rem;font-weight:850}.teacher-report-class-card dd{color:#111c35;margin:0;font-size:1.05rem;font-weight:950}.teacher-menu-module{gap:.9rem;display:grid}.teacher-menu-action{color:#111c35;text-align:left;cursor:pointer;background:#f5f8fc;border:0;border-radius:1rem;grid-template-columns:2.75rem minmax(0,1fr) 1.1rem;align-items:center;gap:.75rem;width:100%;padding:.82rem;display:grid}.teacher-menu-action>.pi:first-child{color:#2f66e8;background:#e8f0ff;border-radius:.85rem;place-items:center;width:2.75rem;height:2.75rem;font-size:1.18rem;display:grid}.teacher-menu-action>.pi:last-child{color:#64748b;justify-self:end;font-size:.95rem}.teacher-menu-action div{gap:.1rem;min-width:0;display:grid}.teacher-menu-action strong{color:#111c35;font-size:1rem;font-weight:950}.teacher-menu-action span{color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:750;overflow:hidden}.teacher-menu-toggle{grid-template-columns:2.75rem minmax(0,1fr) 2.55rem}.teacher-menu-switch{background:#cbd5e1;border-radius:999px;justify-self:end;width:2.55rem;height:1.45rem;display:block;position:relative}.teacher-menu-switch span{background:#fff;border-radius:999px;width:1.08rem;height:1.08rem;transition:transform .18s;position:absolute;top:.18rem;left:.18rem;box-shadow:0 2px 6px #0f172a38}.teacher-menu-switch.active{background:#2f66e8}.teacher-menu-switch.active span{transform:translate(1.1rem)}.teacher-side-menu-overlay{z-index:20;border-radius:inherit;background:#0f172a6b;align-items:stretch;display:flex;position:absolute;inset:0;overflow:hidden}.teacher-side-menu{background:#f8fafc;width:min(82%,318px);max-width:318px;height:100%;padding:1rem;position:relative;overflow-y:auto;box-shadow:18px 0 38px #0f172a38}.teacher-side-menu-close{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;width:2.2rem;height:2.2rem;display:grid;position:absolute;top:.95rem;right:.82rem}.teacher-side-menu-close .pi{font-size:1rem}.teacher-side-menu-header{border-bottom:1px solid #e6edf7;grid-template-columns:2.8rem minmax(0,1fr);align-items:center;gap:.75rem;padding:.2rem 0 1rem;display:grid}.teacher-side-menu-mark{color:#fff;background:#17345f;border-radius:.9rem;place-items:center;width:2.8rem;height:2.8rem;font-size:1.25rem;font-weight:950;display:grid}.teacher-side-menu-header div{gap:.1rem;min-width:0;display:grid}.teacher-side-menu-header strong{color:#111c35;font-size:1.08rem;font-weight:950}.teacher-side-menu-header span:not(.teacher-side-menu-mark){color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:750;overflow:hidden}.teacher-side-menu-content{gap:.9rem;padding-top:1rem;display:grid}.teacher-dark-mode{color:#e5edf7;background:linear-gradient(#111827 0%,#172033 42%,#0f172a 100%),#0f172a}.teacher-dark-mode .teacher-home-title,.teacher-dark-mode .teacher-home-hero h2,.teacher-dark-mode .teacher-home-section-title,.teacher-dark-mode .teacher-report-grid strong,.teacher-dark-mode .teacher-report-class-card strong,.teacher-dark-mode .teacher-schedule-card strong,.teacher-dark-mode .teacher-side-menu-header strong,.teacher-dark-mode .teacher-menu-action strong,.teacher-dark-mode .teacher-class-hero h2,.teacher-dark-mode .teacher-student-main strong{color:#f8fafc}.teacher-dark-mode .teacher-home-hero,.teacher-dark-mode .teacher-home-day-card,.teacher-dark-mode .teacher-home-class-list .teacher-class-card,.teacher-dark-mode .teacher-schedule-card,.teacher-dark-mode .teacher-report-grid article,.teacher-dark-mode .teacher-report-class-card,.teacher-dark-mode .teacher-side-menu,.teacher-dark-mode .teacher-class-hero,.teacher-dark-mode .teacher-session-grid div,.teacher-dark-mode .teacher-student-card,.teacher-dark-mode .teacher-search-card{background:#1e293b;border-color:#94a3b833;box-shadow:0 16px 34px #0000003d}.teacher-dark-mode .teacher-side-menu{background:#111827}.teacher-dark-mode .teacher-side-menu-overlay{background:#0206178c}.teacher-dark-mode .teacher-menu-action,.teacher-dark-mode .teacher-menu-module-heading,.teacher-dark-mode .teacher-report-class-card dl div,.teacher-dark-mode .teacher-schedule-card time,.teacher-dark-mode .teacher-home-bottom-nav{background:#263449}.teacher-dark-mode .teacher-home-hero span,.teacher-dark-mode .teacher-home-hero p,.teacher-dark-mode .teacher-home-counts span,.teacher-dark-mode .teacher-home-progress span,.teacher-dark-mode .teacher-home-progress strong,.teacher-dark-mode .teacher-schedule-card span,.teacher-dark-mode .teacher-schedule-card small,.teacher-dark-mode .teacher-report-grid span,.teacher-dark-mode .teacher-report-grid small,.teacher-dark-mode .teacher-report-class-card span,.teacher-dark-mode .teacher-report-class-card dt,.teacher-dark-mode .teacher-side-menu-header span:not(.teacher-side-menu-mark),.teacher-dark-mode .teacher-menu-action span,.teacher-dark-mode .teacher-student-main small,.teacher-dark-mode .teacher-session-grid span{color:#b7c3d4}.teacher-dark-mode .teacher-home-progress-bars span{background:#334155}.teacher-dark-mode .teacher-home-bottom-nav{box-shadow:0 14px 34px #00000047}.teacher-dark-mode .teacher-home-bottom-nav button{color:#b7c3d4}.teacher-dark-mode .teacher-home-bottom-nav button.active,.teacher-dark-mode .teacher-schedule-card time,.teacher-dark-mode .teacher-menu-action>.pi:first-child{color:#8fb4ff}.teacher-dark-mode .teacher-menu-action>.pi:first-child{background:#1d3a68}.teacher-dark-mode .teacher-report-grid .teacher-report-main-card{background:linear-gradient(135deg,#123566 0%,#345bd8 100%)}.teacher-dark-mode .p-inputtext,.teacher-dark-mode .p-inputtextarea{color:#f8fafc;background:#0f172a;border-color:#334155}.teacher-menu-module-heading{background:#f5f8fc;border-radius:1rem;grid-template-columns:2.75rem minmax(0,1fr);align-items:center;gap:.75rem;padding:.82rem;display:grid}.teacher-menu-module-heading>.pi{color:#2f66e8;background:#e8f0ff;border-radius:.85rem;place-items:center;width:2.75rem;height:2.75rem;font-size:1.18rem;display:grid}.teacher-menu-module-heading div{gap:.1rem;min-width:0;display:grid}.teacher-menu-module-heading strong{color:#111c35;font-size:1rem;font-weight:950}.teacher-menu-module-heading span{color:#64748b;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:750;overflow:hidden}.teacher-dark-mode .teacher-home-topbar .p-button,.teacher-dark-mode .teacher-app-header .p-button{color:#f8fafc;background:#94a3b81f}.teacher-dark-mode .teacher-home-topbar .p-button:hover,.teacher-dark-mode .teacher-app-header .p-button:hover,.teacher-dark-mode .teacher-side-menu-close:hover{background:#94a3b833}.teacher-dark-mode .teacher-home-topbar .p-button .p-button-icon,.teacher-dark-mode .teacher-app-header .p-button .p-button-icon,.teacher-dark-mode .teacher-side-menu-close,.teacher-dark-mode .teacher-side-menu-close .pi,.teacher-dark-mode .teacher-menu-action>.pi:last-child{color:#f8fafc}.teacher-dark-mode .teacher-side-menu-header{border-bottom-color:#94a3b842}.teacher-dark-mode .teacher-menu-action,.teacher-dark-mode .teacher-menu-module-heading{background:#1f2d42;border:1px solid #94a3b82e}.teacher-dark-mode .teacher-menu-module-heading>.pi,.teacher-dark-mode .teacher-menu-action>.pi:first-child{color:#c9ddff;background:#244a7f}.teacher-dark-mode .teacher-menu-module-heading strong,.teacher-dark-mode .teacher-menu-action strong,.teacher-dark-mode .teacher-side-menu-header strong{color:#fff}.teacher-dark-mode .teacher-menu-module-heading span,.teacher-dark-mode .teacher-menu-action span,.teacher-dark-mode .teacher-side-menu-header span:not(.teacher-side-menu-mark){color:#d6e1f0}.teacher-dark-mode .teacher-home-date-line strong,.teacher-dark-mode .teacher-home-counts span,.teacher-dark-mode .teacher-report-class-card dd,.teacher-dark-mode .teacher-session-grid strong{color:#f8fafc}.teacher-dark-mode .teacher-home-date-line .pi,.teacher-dark-mode .teacher-home-counts .pi,.teacher-dark-mode .teacher-session-grid .pi{color:#bcd4ff;background:#263b5b}.teacher-dark-mode .teacher-home-counts .saved .pi{color:#60e6a5;background:#123f32}.teacher-dark-mode .teacher-home-counts .pending .pi{color:#ffd36b;background:#4a3510}.teacher-dark-mode .teacher-home-class-list .teacher-class-card{color:#f8fafc;background:#1e293b}.teacher-dark-mode .teacher-home-class-list .teacher-class-card.saved{background:#1e293b}.teacher-dark-mode .teacher-home-class-list .teacher-class-card strong{color:#fff}.teacher-dark-mode .teacher-home-class-list .teacher-class-card small{color:#cbd5e1}.teacher-dark-mode .teacher-home-class-list .teacher-class-card .teacher-class-time,.teacher-dark-mode .teacher-home-class-list .teacher-class-card:nth-of-type(4n+2) .teacher-class-time,.teacher-dark-mode .teacher-home-class-list .teacher-class-card:nth-of-type(4n+3) .teacher-class-time{color:#bcd4ff}.teacher-dark-mode .teacher-home-class-list .teacher-class-card>.pi{color:#f8fafc}.teacher-dark-mode .teacher-home-class-list .teacher-class-status-tag{color:#ffe3a3;background:#4a3510}.teacher-dark-mode .teacher-home-class-list .teacher-class-card.saved .teacher-class-status-tag{color:#9af2c4;background:#123f32}.teacher-dark-mode .teacher-home-class-list .teacher-class-card-icon{background:#263b5b;color:#bcd4ff!important}.teacher-dark-mode .teacher-home-class-list .teacher-class-card:nth-of-type(4n+2) .teacher-class-card-icon{background:#123f32;color:#9af2c4!important}.teacher-dark-mode .teacher-home-class-list .teacher-class-card:nth-of-type(4n+3) .teacher-class-card-icon{background:#36295e;color:#d9ccff!important}.teacher-dark-mode .teacher-home-class-list .teacher-class-card:nth-of-type(4n+4) .teacher-class-card-icon{background:#164456;color:#b7eff8!important}.teacher-class-hero{grid-template-columns:4.4rem 1fr;align-items:center;gap:1rem;padding:1.4rem 1.35rem 1.05rem;display:grid}.teacher-class-icon{color:#fff;background:#102a4c;border-radius:1rem;place-items:center;width:4.4rem;height:4.4rem;display:grid;box-shadow:0 14px 28px #102a4c38}.teacher-class-icon .pi{font-size:1.75rem}.teacher-class-hero h2{color:#111827;margin:0 0 .25rem;font-size:1.22rem;line-height:1.12}.teacher-class-hero p,.teacher-class-hero span{color:#6b7280;margin:0;font-size:.86rem;line-height:1.35;display:block}.teacher-session-grid{background:#fff;border:1px solid #e5e7eb;border-radius:.9rem;grid-template-columns:minmax(0,1.18fr) minmax(0,.94fr) minmax(0,.94fr);margin:0 1rem 1.15rem;display:grid;overflow:hidden;box-shadow:0 12px 28px #1118270f}.teacher-session-grid div{border-right:1px solid #edf0f4;grid-template-columns:2rem minmax(0,1fr);align-content:center;align-items:center;gap:.05rem .55rem;min-height:4.4rem;padding:.75rem;display:grid}.teacher-session-grid div:last-child{border-right:0}.teacher-session-grid .pi{color:#2563eb;background:#eff6ff;border-radius:999px;grid-row:1/span 2;place-items:center;width:2rem;height:2rem;font-size:.92rem;display:grid}.teacher-session-grid div:nth-child(3) .pi{color:#16a34a;background:#ecfdf5}.teacher-session-grid strong{color:#111827;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;line-height:1.1;overflow:hidden}.teacher-session-grid span{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.teacher-attendance-counters.premium{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin:0 1rem 1.15rem;display:grid}.teacher-attendance-counters.premium span{text-align:center;border-radius:.8rem;align-content:center;gap:.05rem;min-height:3.35rem;font-size:.72rem;font-weight:680;display:grid}.teacher-attendance-counters.premium strong{color:inherit;font-size:1.28rem;font-weight:680;line-height:1}.teacher-attendance-counters.premium .present{color:#159447;background:#eefaf3;border:1px solid #c8ead6}.teacher-attendance-counters.premium .absent{color:#d49300;background:#fff8e8;border:1px solid #f7e2b8}.teacher-attendance-counters.premium .late{color:#d32f2f;background:#fff1f1;border:1px solid #f5caca}.teacher-attendance-counters.premium .authorized{color:#4f46e5;background:#f1f5ff;border:1px solid #cbd5f5}.teacher-attendance-counters.premium .total{color:#334155;background:#f8fafc;border:1px solid #e3e8ef}.teacher-search-row{grid-template-columns:1fr auto;gap:.75rem;margin:0 1rem .8rem;display:grid}.teacher-student-search .p-inputtext{color:#111827;background:#fff;border-color:#e5e7eb;border-radius:.8rem;width:100%;min-height:3.15rem;box-shadow:0 10px 24px #1118270a}.teacher-search-row .p-button{color:#6b7280;background:#fff;border-color:#e5e7eb;border-radius:.8rem;min-width:6.3rem;min-height:3.15rem}.teacher-premium-attendance .teacher-student-list{border-top:1px solid #e5e7eb;gap:0;margin:0 1rem}.teacher-premium-attendance .teacher-student-card{background:0 0;border:0;border-bottom:1px solid #e5e7eb;border-radius:0;grid-template-columns:2.85rem minmax(0,1fr) auto 1.6rem;gap:.62rem;min-height:4.65rem;padding:.5rem 0}.teacher-student-avatar{color:#102a4c;background:#f8fafc;border:1px solid #dbe4ee;border-radius:999px;place-items:center;width:2.65rem;height:2.65rem;font-size:.82rem;font-weight:760;display:grid;overflow:hidden}button.teacher-student-avatar{cursor:pointer;padding:0}button.teacher-student-avatar:hover{border-color:#93c5fd;box-shadow:0 0 0 3px #2563eb1a}.teacher-student-avatar img{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.teacher-premium-attendance .teacher-student-name{gap:.1rem}.teacher-premium-attendance .teacher-student-name strong{color:#111827;font-size:.88rem;font-weight:680}.teacher-premium-attendance .teacher-student-name span{color:#111827;font-size:.86rem}.teacher-premium-attendance .teacher-student-name small{color:#6b7280;font-size:.82rem}.teacher-status-pill{cursor:pointer;min-width:7rem;min-height:2.55rem;font:inherit;white-space:nowrap;border:1px solid #0000;border-radius:.72rem;justify-content:center;align-items:center;gap:.42rem;font-size:.9rem;font-weight:720;display:inline-flex}.teacher-status-pill.present{color:#15803d;background:#f0fdf4;border-color:#bbf7d0}.teacher-status-pill.absent{color:#dc2626;background:#fef2f2;border-color:#fecaca}.teacher-status-pill.late{color:#ca8a04;background:#fffbeb;border-color:#fde68a}.teacher-row-chevron,.teacher-row-note{color:#9ca3af;cursor:pointer;background:0 0;border:0;place-items:center;width:1.6rem;height:2.6rem;display:grid}.teacher-row-note{color:#64748b;width:2rem;font-size:.92rem}.teacher-row-note.has-note{color:#0f766e}.teacher-bottom-actions{z-index:6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fbfdfff2;border-top:1px solid #e5e7eb;justify-content:center;margin-top:.75rem;padding:.65rem 1rem;display:flex;position:sticky;bottom:0;box-shadow:0 -12px 32px #11182714}.teacher-bottom-actions .p-button{white-space:nowrap;border-radius:.8rem;justify-content:center;width:min(100%,15rem);min-height:2.85rem;font-weight:850}.teacher-bottom-actions .p-button:last-child{background:#102a4c;border-color:#102a4c}@media (max-width:420px){.teacher-home-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-session-grid div{grid-template-columns:1.75rem minmax(0,1fr);column-gap:.42rem;padding:.62rem}.teacher-session-grid .pi{width:1.75rem;height:1.75rem;font-size:.82rem}.teacher-session-grid strong,.teacher-session-grid span{font-size:.7rem}.teacher-attendance-counters.premium{gap:.5rem}.teacher-attendance-counters.premium span{min-height:3rem;font-size:.66rem}.teacher-attendance-counters.premium strong{font-size:1.12rem}.teacher-status-pill{min-width:5.8rem;font-size:.78rem}.teacher-status-pill .pi{display:none}}.teacher-dark-mode.teacher-premium-attendance,.teacher-dark-mode.teacher-mobile-taking{color:#e5edf7;background:#0f172a}.teacher-dark-mode .teacher-app-header{background:#0f172af0;border-bottom-color:#94a3b83d}.teacher-dark-mode .teacher-app-header h1,.teacher-dark-mode .teacher-mobile-topbar h1,.teacher-dark-mode .teacher-taking-header h1,.teacher-dark-mode .teacher-student-name strong,.teacher-dark-mode .teacher-premium-attendance .teacher-student-name strong,.teacher-dark-mode .teacher-premium-attendance .teacher-student-name span,.teacher-dark-mode .teacher-general-note,.teacher-dark-mode .teacher-attendance-counters strong,.teacher-dark-mode .teacher-attendance-counters.premium strong{color:#f8fafc}.teacher-dark-mode .teacher-student-name span,.teacher-dark-mode .teacher-student-name small,.teacher-dark-mode .teacher-premium-attendance .teacher-student-name small,.teacher-dark-mode .teacher-mobile-topbar span,.teacher-dark-mode .teacher-taking-header span,.teacher-dark-mode .teacher-general-note span,.teacher-dark-mode .teacher-attendance-counters span,.teacher-dark-mode .teacher-attendance-counters.premium span{color:#cbd5e1}.teacher-dark-mode .teacher-premium-attendance .teacher-student-list{border-top-color:#94a3b838}.teacher-dark-mode .teacher-student-card,.teacher-dark-mode.teacher-premium-attendance .teacher-student-card,.teacher-dark-mode .teacher-premium-attendance .teacher-student-card{background:0 0;border-color:#94a3b838}.teacher-dark-mode .teacher-student-avatar{color:#dbeafe;background:#1e293b;border-color:#94a3b847}.teacher-dark-mode .teacher-search-row .p-inputtext,.teacher-dark-mode .teacher-student-search .p-inputtext{color:#f8fafc;background:#1e293b;border-color:#94a3b83d}.teacher-dark-mode .teacher-student-search .pi{color:#cbd5e1}.teacher-dark-mode .teacher-search-row .p-button{color:#e5edf7;background:#1e293b;border-color:#94a3b83d}.teacher-dark-mode .teacher-attendance-counters.premium .present{color:#9af2c4;background:#123f32;border-color:#166534}.teacher-dark-mode .teacher-attendance-counters.premium .absent{color:#ffd36b;background:#4a3510;border-color:#854d0e}.teacher-dark-mode .teacher-attendance-counters.premium .late{color:#fecaca;background:#451a1a;border-color:#7f1d1d}.teacher-dark-mode .teacher-attendance-counters.premium .authorized{color:#c7d2fe;background:#252451;border-color:#3730a3}.teacher-dark-mode .teacher-attendance-counters.premium .total{color:#dbeafe;background:#1e293b;border-color:#94a3b83d}.teacher-dark-mode .teacher-status-pill.present{color:#9af2c4;background:#123f32;border-color:#166534}.teacher-dark-mode .teacher-status-pill.absent{color:#fecaca;background:#451a1a;border-color:#7f1d1d}.teacher-dark-mode .teacher-status-pill.late{color:#ffd36b;background:#4a3510;border-color:#854d0e}.teacher-dark-mode .teacher-row-note{color:#cbd5e1}.teacher-dark-mode .teacher-row-note.has-note{color:#9af2c4}.teacher-home-screen:not(.teacher-dark-mode) .teacher-home-hero.teacher-home-hero-premium{-webkit-backdrop-filter:blur(12px);background:linear-gradient(105deg,#fff9e185,#eff7ffb3)}.teacher-home-screen:not(.teacher-dark-mode) .teacher-home-day-card,.teacher-home-screen:not(.teacher-dark-mode) .teacher-home-class-list .teacher-class-card,.teacher-home-screen:not(.teacher-dark-mode) .teacher-home-class-list .teacher-class-card.saved,.teacher-home-screen:not(.teacher-dark-mode) .teacher-schedule-card,.teacher-home-screen:not(.teacher-dark-mode) .teacher-report-grid article:not(.teacher-report-main-card),.teacher-home-screen:not(.teacher-dark-mode) .teacher-report-class-card,.teacher-home-screen:not(.teacher-dark-mode) .teacher-home-bottom-nav{-webkit-backdrop-filter:blur(12px);background:#fff9}.teacher-dark-mode .teacher-bottom-actions{background:#0f172af5;border-top-color:#94a3b838}.teacher-password-shell{background:#e9eef5}.teacher-password-screen{background:#f7fbff url(/brand/login-mountains.webp) bottom/cover no-repeat;min-height:100vh;padding:0 0 1.2rem}.teacher-password-back{color:#1f2937;cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;width:2.75rem;height:2.75rem;display:grid}.teacher-password-hero{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffe6;border:1px solid #dbe7f5;border-radius:1.2rem;grid-template-columns:3rem minmax(0,1fr);align-items:center;gap:.8rem;margin:1rem;padding:1rem;display:grid;box-shadow:0 14px 34px #072c4e1f}.teacher-password-hero div{gap:.1rem;min-width:0;display:grid}.teacher-password-hero strong{color:#111c35;font-size:1rem;font-weight:950;line-height:1.15}.teacher-password-hero span:not(.teacher-side-menu-mark){color:#64748b;font-size:.82rem;font-weight:750}.teacher-password-form{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffeb;border:1px solid #dbe7f5;border-radius:1.2rem;gap:.9rem;margin:0 1rem;padding:1rem;display:grid;box-shadow:0 18px 44px #072c4e29}.teacher-password-form h2{color:#111c35;margin:0;font-size:1.35rem;font-weight:950}.teacher-password-form label{color:#475569;gap:.42rem;font-size:.88rem;font-weight:800;display:grid}.teacher-password-form input{color:#111827;background:#f8fbfd;border:1px solid #d3e0ea;border-radius:.85rem;width:100%;min-height:3.15rem;padding:0 1rem;font-size:1rem}.teacher-password-form input:focus{border-color:#2f66e8;outline:none;box-shadow:0 0 0 3px #2f66e824}.teacher-dark-mode :is(.teacher-student-name,.teacher-student-name *,.teacher-general-note,.teacher-general-note *,.teacher-mobile-summary,.teacher-mobile-summary *,.teacher-taking-header,.teacher-taking-header *){color:inherit}.teacher-dark-mode .teacher-student-name strong,.teacher-dark-mode .teacher-general-note strong,.teacher-dark-mode .teacher-taking-header h1{color:#f8fafc}.teacher-dark-mode .teacher-student-name small,.teacher-dark-mode .teacher-student-name span,.teacher-dark-mode .teacher-taking-header span{color:#cbd5e1}.demo-documents-manager{gap:1rem;max-width:980px;display:grid}.demo-san-miguel-panel{background:#fff;border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem;padding:1rem;display:grid}.demo-san-miguel-panel h2{color:#0f172a;margin:.2rem 0 .35rem}.demo-san-miguel-panel p:not(.eyebrow){color:#64748b;margin:0}.demo-institution-form{grid-template-columns:minmax(14rem,1fr) minmax(10rem,.75fr) auto;align-items:end;gap:.75rem;min-width:min(100%,42rem);display:grid}.demo-institution-mode{background:#f8fafc;border:1px solid #dbe4ee;border-radius:8px;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;padding:.3rem;display:grid}.demo-institution-mode button{color:#475569;cursor:pointer;background:0 0;border:0;border-radius:6px;min-height:2.45rem;font-weight:800}.demo-institution-mode button.active{color:#fff;background:#6366f1;box-shadow:0 8px 18px #6366f12e}.demo-institution-form label{color:#334155;gap:.45rem;font-weight:700;display:grid}.demo-institution-existing{grid-column:1/3}.demo-institution-form .p-dropdown,.demo-institution-form .p-inputtext{width:100%}.demo-institution-form .p-button{white-space:nowrap;justify-content:center}.demo-safe-note{color:#b45309;grid-column:1/-1;font-size:.82rem;font-weight:700}.demo-san-miguel-result{background:#f8fbff;border:1px solid #bfdbfe;border-radius:10px;gap:1rem;padding:1rem;display:grid}.demo-result-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.demo-result-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.demo-result-link{color:#4f46e5;background:#fff;border:1px solid #6366f1;border-radius:7px;justify-content:center;align-items:center;gap:.45rem;min-width:9rem;min-height:2.55rem;padding:.65rem 1rem;font-weight:800;line-height:1;text-decoration:none;display:inline-flex}.demo-result-link-primary{color:#fff;background:#6366f1;box-shadow:0 8px 18px #6366f133}.demo-result-link:hover,.demo-result-link:focus-visible{color:#fff;background:#4f46e5}.demo-result-summary{background:#fff;border:1px solid #dbeafe;border-radius:8px;grid-template-columns:minmax(14rem,.7fr) minmax(18rem,1fr);align-items:center;gap:1rem;padding:1rem;display:grid}.demo-result-summary h3{color:#0f172a;margin:.15rem 0 .25rem;font-size:1.35rem}.demo-result-summary span,.demo-result-summary p{color:#53657d;margin:0}.demo-result-summary p{line-height:1.55}.demo-san-miguel-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:.75rem;display:grid}.demo-san-miguel-grid article{background:#eff6ff;border:1px solid #dbeafe;border-radius:8px;gap:.25rem;padding:.85rem;display:grid}.demo-san-miguel-grid span{color:#64748b;font-weight:700}.demo-san-miguel-grid strong{color:#0f172a;font-size:1.35rem}.attendance-toolbar{grid-template-columns:minmax(9rem,.8fr) minmax(14rem,1.3fr) minmax(12rem,1fr) minmax(12rem,1fr);align-items:start;gap:1rem;display:grid}.attendance-toolbar.institutional{grid-template-columns:minmax(9rem,.75fr) minmax(14rem,1.3fr) minmax(12rem,1fr)}.attendance-toolbar .field{gap:.4rem;display:grid}.attendance-toolbar .field>.p-calendar,.attendance-toolbar .field>.p-dropdown{align-self:start}.attendance-toolbar label{color:#475569;font-size:.85rem;font-weight:700}.attendance-toolbar .field.field-missing label:first-child{color:#b91c1c}.attendance-toolbar .field.field-missing small{color:#b91c1c;font-size:.78rem;font-weight:800}.attendance-toolbar .required-control.p-dropdown,.attendance-toolbar .required-control .p-inputtext{background:#fff7f7;border-color:#dc2626}.attendance-toolbar .required-control.p-dropdown:not(.p-disabled):hover,.attendance-toolbar .required-control .p-inputtext:hover{border-color:#b91c1c}.attendance-toolbar .required-control.p-dropdown.p-focus,.attendance-toolbar .required-control .p-inputtext:focus{border-color:#dc2626;box-shadow:0 0 0 1px #dc262633}.attendance-toolbar label.attendance-institutional-check{color:#334155;cursor:pointer;align-items:center;gap:.45rem;width:fit-content;margin-top:.1rem;font-weight:700;display:inline-flex}.attendance-summary-strip,.attendance-actions{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.attendance-actions{justify-content:flex-end}.attendance-actions-bottom{border-top:1px solid #e2e8f0;padding-top:.85rem}.attendance-loading{color:#64748b;justify-content:center;align-items:center;gap:.75rem;min-height:12rem;display:flex}.attendance-list{flex-direction:column;gap:.75rem;display:flex}.attendance-student-row{border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:minmax(13rem,1.1fr) minmax(24rem,1.6fr) minmax(12rem,1fr);align-items:center;gap:.85rem;padding:.85rem;display:grid}.attendance-student-row.present{background:#fbfffd;border-color:#bbf7d0}.attendance-student-row.absent{background:snow;border-color:#fecaca}.attendance-student-row.late{background:#fffdf6;border-color:#fde68a}.attendance-student-row.read-only{background:#f8fafc}.attendance-student-main{flex-direction:column;gap:.2rem;min-width:0;display:flex}.attendance-student-main strong{color:#0f172a;line-height:1.2}.attendance-student-main span{color:#64748b;font-size:.85rem}.attendance-student-main small{color:#94a3b8;font-size:.78rem;line-height:1.15}.attendance-status-control{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:repeat(3,minmax(7.5rem,9.25rem));justify-self:start;gap:.25rem;max-width:100%;padding:.25rem;display:inline-grid}.attendance-status-control button{color:#475569;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:6px;min-height:2.35rem;padding:.4rem .45rem;font-size:.86rem;font-weight:700}.attendance-status-control button.active{color:#fff;box-shadow:0 1px 3px #0f172a29}.attendance-status-control button.present{color:#15803d}.attendance-status-control button.absent{color:#dc2626}.attendance-status-control button.late{color:#b45309}.attendance-status-control button.active.present{color:#fff;background:#16a34a}.attendance-status-control button.active.absent{color:#fff;background:#dc2626}.attendance-status-control button.active.late{color:#fff;background:#d97706}.attendance-status-control button:disabled{cursor:default;opacity:.72}.attendance-row-detail{gap:.45rem;display:grid}.attendance-row-reason,.attendance-row-note{width:100%}.attendance-row-reason.required{background:#fff7f7;border-color:#dc2626}.attendance-row-reason.required .p-dropdown-label{color:#991b1b}.attendance-row-note.required{background:#fff7f7;border-color:#dc2626}.attendance-row-note.required:focus{border-color:#dc2626;box-shadow:0 0 0 1px #dc262633}.attendance-summary-dashboard{gap:1rem;display:grid}.attendance-summary-filters{grid-template-columns:repeat(5,minmax(9rem,1fr)) auto;align-items:end;gap:.85rem;display:grid}.attendance-summary-filters label{color:#475569;gap:.4rem;font-size:.85rem;font-weight:700;display:grid}.attendance-summary-filters .p-dropdown,.attendance-summary-filters .p-inputtext{width:100%}.attendance-summary-loading{color:#64748b;justify-content:center;align-items:center;gap:.75rem;min-height:10rem;display:flex}.attendance-summary-metrics{grid-template-columns:repeat(5,minmax(0,1fr));gap:.85rem;display:grid}.attendance-summary-metrics article{background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-content:center;gap:.25rem;min-height:7.25rem;padding:1rem;display:grid}.attendance-summary-metrics span,.attendance-summary-metrics small{color:#64748b;font-size:.86rem}.attendance-summary-metrics strong{color:#0f172a;font-size:2rem;line-height:1}.attendance-summary-metrics .present{background:#f0fdf4;border-color:#bbf7d0}.attendance-summary-metrics .coverage{background:#eff6ff;border-color:#bfdbfe}.attendance-summary-metrics .groups{background:#eef2ff;border-color:#c7d2fe}.attendance-summary-metrics .absent{background:#fef2f2;border-color:#fecaca}.attendance-summary-metrics .late{background:#fffbeb;border-color:#fde68a}.attendance-novelties-dashboard{gap:1rem;display:grid}.attendance-novelties-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;display:grid}.attendance-novelties-metrics article{background:#fff;border:1px solid #e2e8f0;border-radius:8px;gap:.2rem;padding:1rem;display:grid}.attendance-novelties-metrics article.absent{color:#dc2626;background:snow;border-color:#fecaca}.attendance-novelties-metrics article.late{color:#ca8a04;background:#fffdf6;border-color:#fde68a}.attendance-novelties-metrics span{color:#64748b;font-size:.86rem;font-weight:700}.attendance-novelties-metrics strong{color:inherit;font-size:1.8rem;line-height:1}.novelty-student-cell{grid-template-columns:2.6rem minmax(0,1fr);align-items:center;gap:.7rem;min-width:13rem;display:grid}.novelty-student-cell strong,.novelty-student-cell small{display:block}.novelty-student-cell strong{color:#0f172a;line-height:1.15}.novelty-student-cell small{color:#64748b;margin-top:.12rem}.novelty-student-avatar{background:#f8fafc;border:1px solid #dbe4ee;border-radius:999px;place-items:center;width:2.6rem;height:2.6rem;display:grid;overflow:hidden}button.novelty-student-avatar{cursor:pointer;padding:0}button.novelty-student-avatar:hover,button.novelty-student-avatar:focus-visible{border-color:#93c5fd;outline:none;box-shadow:0 0 0 3px #2563eb1a}.novelty-student-avatar img{border-radius:inherit;object-fit:cover;width:100%;height:100%;display:block}.attendance-summary-bars,.attendance-breakdown-panel{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:1rem}.attendance-summary-bar-heading{justify-content:space-between;gap:1rem;margin-bottom:.85rem;display:flex}.attendance-summary-bar-heading strong{color:#0f172a}.attendance-summary-bar-heading span{color:#64748b;font-size:.86rem}.attendance-stacked-bar{background:#e2e8f0;border-radius:999px;height:.9rem;display:flex;overflow:hidden}.attendance-stacked-bar .present{background:#16a34a}.attendance-stacked-bar .late{background:#d97706}.attendance-stacked-bar .authorized{background:#2563eb}.attendance-stacked-bar .absent{background:#dc2626}.attendance-summary-legend{flex-wrap:wrap;gap:.65rem;margin-top:.85rem;display:flex}.attendance-summary-legend span{color:#475569;align-items:center;gap:.35rem;font-size:.84rem;display:inline-flex}.attendance-summary-legend span:before{content:"";background:#94a3b8;border-radius:999px;width:.6rem;height:.6rem}.attendance-summary-legend .present:before{background:#16a34a}.attendance-summary-legend .late:before{background:#d97706}.attendance-summary-legend .partial:before,.attendance-summary-legend .authorized:before{background:#2563eb}.attendance-summary-legend .absent:before{background:#dc2626}.attendance-breakdown-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.attendance-insights-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.attendance-insights-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.attendance-chart-panel{background:#fff;border:1px solid #e2e8f0;border-radius:8px;gap:1rem;min-height:22rem;padding:1rem;display:grid}.attendance-chart-panel.pie{grid-column:1/-1;justify-items:center}.attendance-chart-panel h3,.attendance-chart-header h3{color:#0f172a;margin:0;font-size:1rem}.attendance-chart-panel p{color:#64748b;margin:0}.attendance-chart-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.attendance-chart-legend{color:#475569;flex-wrap:wrap;gap:1rem;font-size:.85rem;font-weight:700;display:flex}.attendance-chart-legend.vertical{gap:.65rem;display:grid}.attendance-chart-legend span{align-items:center;gap:.35rem;display:inline-flex}.attendance-chart-legend i{border-radius:999px;width:.85rem;height:.85rem;display:inline-block}.attendance-chart-legend .primary,.attendance-chart-legend i.primary{background:#4f46e5}.attendance-chart-legend .secondary,.attendance-chart-legend i.secondary{background:#10b981}.attendance-line-chart{min-height:17rem}.attendance-line-chart svg{width:100%;height:17rem;overflow:visible}.attendance-line-chart .grid-line{stroke:#e2e8f0;stroke-width:.35px}.attendance-line-chart path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4px}.attendance-line-chart .line-primary{stroke:#334155}.attendance-line-chart .line-secondary{stroke:#10b981}.attendance-line-chart .dot-primary{fill:#334155}.attendance-line-chart .dot-secondary{fill:#10b981}.attendance-line-chart text{fill:#64748b;font-size:2.8px}.attendance-bar-chart{background-image:linear-gradient(#e2e8f0 1px,#0000 1px);background-size:100% 20%;border-bottom:1px solid #cbd5e1;grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;min-height:17rem;padding:1rem .5rem 0;display:grid}.attendance-bar-group{place-items:end center;gap:.65rem;height:100%;display:grid}.attendance-bars{justify-content:center;align-items:end;gap:.45rem;width:100%;height:14rem;display:flex}.attendance-bars span{border-radius:999px 999px 0 0;width:clamp(.75rem,2vw,1.1rem)}.attendance-bars .primary{background:#6366f1}.attendance-bars .secondary{background:#c4b5fd}.attendance-bar-group strong{color:#64748b;font-size:.8rem}.attendance-pie-wrap{justify-content:center;align-items:center;gap:2rem;width:100%;display:flex}.attendance-pie{aspect-ratio:1;border-radius:50%;width:min(18rem,42vw)}.attendance-breakdown-panel{gap:.75rem;display:grid}.attendance-breakdown-panel h3{color:#0f172a;margin:0;font-size:1rem}.attendance-breakdown-panel p{color:#64748b;margin:0}.attendance-breakdown-panel article{grid-template-columns:minmax(0,1fr) 8rem;align-items:center;gap:.8rem;display:grid}.attendance-breakdown-panel strong,.attendance-breakdown-panel span{display:block}.attendance-breakdown-panel strong{color:#0f172a}.attendance-breakdown-panel span{color:#64748b;font-size:.82rem}.attendance-insight-panel{gap:.75rem;display:grid}.attendance-insight-panel h3{color:#0f172a;margin:0;font-size:1rem}.attendance-insight-panel p{color:#64748b;margin:0}.attendance-insight-row{background:#fff;border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.75rem;padding:.8rem;display:grid}.attendance-insight-rank{color:#4f46e5;background:#eef2ff;border-radius:999px;place-items:center;width:1.8rem;height:1.8rem;font-weight:800;display:grid}.attendance-insight-row strong,.attendance-insight-row small{display:block}.attendance-insight-row strong{color:#0f172a}.attendance-insight-row small{color:#64748b;margin:.15rem 0 .55rem;font-weight:700}.attendance-insight-detail{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.attendance-insight-detail>span{color:#64748b;flex:none;font-size:.78rem;font-weight:700}.attendance-insight-row.red .attendance-mini-bar span{background:#dc2626}.attendance-insight-row.amber .attendance-mini-bar span{background:#f59e0b}.attendance-insight-row.blue .attendance-mini-bar span{background:#2563eb}.attendance-mini-bar{background:#e2e8f0;border-radius:999px;height:.5rem;overflow:hidden}.attendance-mini-bar span{border-radius:inherit;background:#16a34a;height:100%;display:block}@media (max-width:1180px){.attendance-toolbar,.attendance-student-row,.attendance-summary-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-row-detail{grid-column:1/-1}.attendance-summary-metrics,.attendance-novelties-metrics,.today-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.today-alert-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.attendance-toolbar,.attendance-student-row,.attendance-summary-filters,.attendance-summary-metrics,.attendance-novelties-metrics,.attendance-breakdown-grid,.attendance-insights-grid,.attendance-insights-grid.two-columns,.attendance-chart-grid,.today-kpi-grid,.today-alert-grid,.today-heatmap-grid,.today-dashboard-grid{grid-template-columns:1fr}.today-dashboard-heading,.today-donut-wrap,.today-session-row,.today-session-row.detailed{flex-direction:column;grid-template-columns:1fr;align-items:stretch}.today-dashboard-filters{grid-template-columns:1fr;width:100%}.today-panel-heading-inline{flex-direction:column;align-items:stretch}.today-ranked-row-heading{grid-template-columns:2rem minmax(0,1fr)}.today-novelty-pill{grid-column:2;justify-self:start}.today-donut{width:7.5rem;height:7.5rem}.attendance-chart-header,.attendance-pie-wrap{flex-direction:column;align-items:stretch}.attendance-chart-panel.pie{justify-items:stretch}.attendance-pie{justify-self:center;width:min(14rem,72vw)}.attendance-actions{justify-content:stretch}.attendance-actions .p-button{flex:100%}.attendance-status-control{grid-template-columns:repeat(2,minmax(0,1fr))}.demo-san-miguel-panel,.demo-institution-form,.demo-result-summary,.demo-san-miguel-grid{grid-template-columns:1fr}.demo-result-actions{width:100%}.demo-result-link{flex:100%;justify-content:center}}@media (max-width:520px){.teacher-auth-shell{background:#f8fafc;padding:0}.teacher-auth-phone{width:100%;min-height:100vh;box-shadow:none;border:0;border-radius:0}}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--ink);background:#fff;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}.landing-shell{min-height:100vh}.hero{border-bottom:1px solid var(--line);background:#fff;min-height:76vh;padding:24px clamp(18px,4vw,64px) 72px}.topbar{justify-content:space-between;align-items:center;gap:24px;display:flex}.brand-logo{object-fit:contain;width:190px;height:auto}.topbar-actions{color:var(--muted);align-items:center;gap:20px;font-size:.95rem;display:flex}.login-link{border:1px solid var(--line);min-height:42px;color:var(--brand-strong);background:var(--surface);border-radius:6px;align-items:center;padding:0 16px;font-weight:700;display:inline-flex}.hero-content{max-width:760px;padding-top:clamp(72px,12vw,140px)}.eyebrow{color:var(--brand);text-transform:uppercase;margin:0 0 16px;font-weight:700}h1{max-width:720px;margin:0;font-size:clamp(2.3rem,6vw,4.8rem);line-height:1.03}.hero-copy{max-width:620px;color:var(--muted);margin:24px 0 0;font-size:1.2rem;line-height:1.6}.hero-actions{flex-wrap:wrap;gap:14px;margin-top:34px;display:flex}.primary-action,.secondary-action{border-radius:6px;justify-content:center;align-items:center;min-height:48px;padding:0 22px;font-weight:700;display:inline-flex}.primary-action{color:#fff;background:var(--brand)}.secondary-action{color:var(--brand-strong);border:1px solid var(--line);background:#fff}.summary-band{background:var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid}.summary-item{background:#fff;align-items:center;gap:14px;min-height:112px;padding:26px;display:flex}.summary-item span{color:var(--accent);font-size:1.35rem}.summary-item p{color:var(--ink);margin:0;font-weight:700}.auth-shell{background:#f7fbff url(/brand/login-mountains.webp) 50%/cover no-repeat;place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-shell{position:relative;overflow:hidden}.password-shell{align-content:center;justify-items:center;gap:clamp(1.4rem,3vh,2.2rem);padding-block:clamp(1.25rem,5vh,3rem)}.password-shell .auth-brand-panel,.password-shell .auth-form-panel{width:min(100%,680px)}.password-shell .auth-brand-panel{justify-content:center;display:flex}.auth-message{text-align:center;width:100%}.auth-message .eyebrow,.form-kicker{color:#0064a8;letter-spacing:0;text-transform:uppercase;margin:0 0 .65rem;font-size:.72rem;font-weight:800}.auth-message h1{color:#07152c;letter-spacing:0;margin:0;font-size:clamp(2rem,3vw,2.8rem);line-height:1.08}.auth-message p:not(.eyebrow){color:#475569;max-width:680px;margin:.85rem auto 0;font-size:.98rem;line-height:1.55}.auth-form-panel{z-index:1;justify-content:center;align-items:center;width:100%;display:flex;position:relative}.auth-form{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffeb;border:1px solid #ffffffbd;border-radius:8px;gap:1rem;width:min(100%,390px);padding:clamp(1.4rem,4vw,2.1rem);display:grid;box-shadow:0 24px 70px #072c4e2e}.password-shell .auth-form{gap:.85rem;width:min(100%,360px);padding:clamp(1.35rem,3vw,1.8rem)}.password-shell .auth-form input{padding-inline:1rem}.auth-form-heading{text-align:center;justify-items:center;gap:1.9rem;margin-bottom:.35rem;display:grid}.auth-card-logo{object-fit:contain;width:80%;max-width:300px;height:auto}.auth-form h2{color:#334155;margin:0;font-size:1.25rem;font-weight:800}.form-help,.auth-note{color:var(--muted);margin:8px 0 0;line-height:1.5}.login-profile-picker{border:1px solid var(--surface-border);background:#f8fafc;border-radius:8px;gap:.75rem;max-height:min(52vh,420px);padding:.85rem;display:grid;overflow-y:auto}.login-profile-picker>div{gap:.2rem;display:grid}.login-profile-picker span,.login-profile-option small{color:var(--muted)}.login-profile-option{width:100%;color:var(--text-color);cursor:pointer;text-align:left;background:#fff;border:1px solid #dbeafe;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.85rem;display:grid}.login-profile-option span{gap:.25rem;min-width:0;display:grid}.login-profile-option strong,.login-profile-option small{overflow-wrap:anywhere}.login-profile-option:hover{border-color:#635bff}.auth-form label{color:var(--ink);gap:.5rem;font-weight:700;display:grid}.auth-field{position:relative}.auth-field>.pi{color:#7a94a8;pointer-events:none;position:absolute;bottom:.95rem;left:.9rem}.auth-form input{min-height:3.15rem;color:var(--ink);background:#f8fbfd;border:1px solid #d3e0ea;border-radius:8px;padding:0 1rem 0 2.65rem;font-size:1rem}.auth-form input:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #075e9a24}.auth-login-options{justify-content:space-between;align-items:center;gap:1rem;margin-top:-.3rem;display:flex}.auth-forgot-link{color:#075e9a;font-size:.88rem;font-weight:800;line-height:1.25;text-decoration:none}.auth-forgot-link:hover{text-decoration:underline}.auth-remember-control{cursor:pointer;flex:none;align-items:center;font-size:.9rem;color:#475569!important;gap:.5rem!important;display:inline-flex!important}.auth-remember-control input{width:1rem;height:1rem;min-height:0;accent-color:var(--brand);cursor:pointer}.auth-submit{width:100%}.app-shell{background:#fff;grid-template-columns:280px minmax(0,1fr);min-height:100vh;display:grid}.layout-wrapper,.institution-shell{background:var(--page-bg);grid-template-columns:280px minmax(0,1fr);min-height:100vh;display:grid}.layout-sidebar{min-height:100vh;max-height:100vh;color:var(--ink);border-right:1px solid var(--line);background:#fff;align-self:start;padding:22px;position:sticky;top:0;overflow-y:auto;box-shadow:4px 0 18px #12232e0a}.layout-menu{gap:8px;margin-top:34px;display:grid}.layout-menu a{min-height:44px;color:var(--muted);border-radius:6px;align-items:center;gap:12px;padding:0 12px;font-weight:700;display:flex}.layout-menu a.active,.layout-menu a:hover{color:var(--brand-strong);background:#f6f9fb}.institution-sidebar-brand{gap:12px;margin-bottom:28px;display:grid}.institution-sidebar-brand img{object-fit:contain;max-width:180px;max-height:100px}.institution-sidebar-brand strong{color:var(--ink);line-height:1.35}.layout-main-container{padding:clamp(22px,4vw,44px)}.layout-topbar{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px;display:flex}.layout-topbar h1{margin:0;font-size:clamp(2rem,4vw,3.2rem)}.layout-topbar p:not(.eyebrow){max-width:640px;color:var(--muted);margin:12px 0 0;font-size:1.05rem}.sakai-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.institution-transition-notice{box-shadow:var(--panel-shadow);background:linear-gradient(135deg,#eff6ff 0%,#fff 100%);border:1px solid #bfdbfe;border-radius:18px;justify-content:space-between;align-items:center;gap:20px;margin-top:18px;padding:20px 22px;display:flex}.institution-transition-notice h2{color:var(--ink);margin:4px 0 8px;font-size:1.25rem}.institution-transition-notice p:not(.eyebrow){max-width:820px;color:var(--muted);margin:0}.sakai-metric-card .p-card-body{min-height:142px}.sakai-metric-card,.sakai-table-card,.sakai-form-stack .p-card,.detail-panel,.institution-logo-card{border:1px solid var(--line);box-shadow:var(--panel-shadow)}.sakai-metric-card .p-card-content{gap:8px;padding:0;display:grid}.metric-label,.metric-detail{color:var(--muted)}.metric-label{font-weight:700}.sakai-metric-card strong{color:var(--ink);font-size:2.4rem;line-height:1}.sakai-table-card{margin-top:22px}.institution-secondary-grid+.sakai-table-card,.institution-secondary-grid+.institution-logo-card{margin-top:0}.sakai-table-card .p-card-content{padding:0}.institution-action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:22px;display:grid}.institution-action-grid .p-card{border:1px solid var(--line);box-shadow:var(--panel-shadow)}.institution-action-card{align-items:start;gap:16px;display:grid}.institution-dashboard-hero{box-shadow:var(--panel-shadow);background:linear-gradient(135deg,#075e9a14,#6366f10f),#fff;border:1px solid #cfe0f2;border-radius:8px;justify-content:space-between;align-items:stretch;gap:18px;margin-bottom:18px;padding:22px;display:flex}.institution-dashboard-hero-copy{gap:6px;display:grid}.institution-dashboard-hero-copy h2,.institution-dashboard-card-heading h2{color:var(--ink);margin:0}.institution-dashboard-hero-copy p:not(.eyebrow){max-width:820px;color:var(--muted);margin:0}.institution-dashboard-next-step{background:#fff;border:1px solid #075e9a2e;border-radius:8px;min-width:240px;padding:16px 18px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid}a.institution-dashboard-next-step:hover,a.institution-pending-item:hover{border-color:#6366f173;transform:translateY(-1px);box-shadow:0 12px 24px #0f172a14}.institution-dashboard-next-step span,.institution-dashboard-next-step small,.institution-kpi-card span,.institution-kpi-card small,.institution-card-note{color:var(--muted)}.institution-dashboard-next-step strong{color:var(--brand);font-size:1.15rem}.institution-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.institution-kpi-card{border:1px solid var(--line);min-height:122px;box-shadow:var(--panel-shadow);background:#fff;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;padding:18px;display:grid}.institution-kpi-card div{gap:4px;min-width:0;display:grid}.institution-kpi-card strong{color:var(--ink);font-size:clamp(1.45rem,2.3vw,2.15rem);line-height:1.05}.institution-kpi-icon,.institution-soft-icon{border-radius:999px;place-items:center;width:46px;height:46px;font-size:1.25rem;display:inline-grid}.institution-kpi-icon-blue,.institution-soft-icon{color:#075e9a;background:#e8f2ff}.institution-kpi-icon-indigo{color:#4f46e5;background:#eef2ff}.institution-kpi-icon-sky{color:#0284c7;background:#e0f2fe}.institution-kpi-icon-amber{color:#b45309;background:#fff7ed}.institution-dashboard-grid{grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);align-items:start;gap:18px;display:grid}.institution-dashboard-side{gap:18px;display:grid}.institution-dashboard-card{border:1px solid var(--line);box-shadow:var(--panel-shadow);background:#fff;border-radius:8px;padding:18px}.institution-dashboard-card-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.institution-dashboard-card-heading.compact{align-items:center}.institution-dashboard-card-heading .p-button.p-button-text{white-space:nowrap}.institution-pending-list{gap:10px;display:grid}.institution-pending-item{background:#f8fbff;border:1px solid #dbe5ef;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid}.institution-pending-item strong,.institution-pending-item small{display:block}.institution-pending-item strong{color:var(--ink)}.institution-pending-item small{color:var(--muted);margin-top:3px}.institution-pending-icon,.institution-pending-done,.institution-pending-count{border-radius:999px;place-items:center;width:38px;height:38px;font-weight:800;text-decoration:none;display:inline-grid}.institution-pending-blue .institution-pending-icon,.institution-pending-blue .institution-pending-count,.institution-pending-done{color:#075e9a;background:#e8f2ff}.institution-pending-amber .institution-pending-icon,.institution-pending-amber .institution-pending-count{color:#b45309;background:#fff7ed}.institution-pending-red .institution-pending-icon,.institution-pending-red .institution-pending-count{color:#dc2626;background:#fee2e2}.institution-context-list{gap:12px;margin:0;display:grid}.institution-context-list div{border-bottom:1px solid #edf2f7;gap:4px;padding-bottom:12px;display:grid}.institution-context-list div:last-child{border-bottom:0;padding-bottom:0}.institution-context-list dt{color:var(--muted);align-items:center;gap:8px;font-weight:700;display:flex}.institution-context-list dd{color:var(--ink);margin:0;font-size:1.05rem;font-weight:800}.institution-progress{background:#e9eef5;border-radius:999px;height:8px;overflow:hidden}.institution-progress span{border-radius:inherit;background:linear-gradient(90deg,#075e9a,#6366f1);height:100%;display:block}.institution-card-note{margin:12px 0 0}.institution-secondary-dashboard{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px;display:grid}.institution-mini-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.institution-mini-stats span{color:var(--muted);background:#f8fafc;border-radius:8px;gap:4px;padding:14px;display:grid}.institution-mini-stats strong{color:var(--ink);font-size:1.55rem;line-height:1}.institution-staff-dashboard-card{grid-column:span 3}.institution-staff-dashboard-card .staff-functions-panel{background:#fff;margin:0}.catalog-layout{grid-template-columns:minmax(280px,.55fr) minmax(0,1fr);gap:18px;margin-bottom:18px;display:grid}.catalog-layout.single{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-layout.full,.catalog-layout.single-form{grid-template-columns:1fr}.catalog-layout.single-form{width:100%}.catalog-layout .p-card{border:1px solid var(--line);box-shadow:var(--panel-shadow)}.catalog-form{gap:16px;display:grid}.catalog-form .field{gap:8px;display:grid}.catalog-form label{color:var(--ink);font-weight:700}.catalog-form .p-inputtext,.catalog-form .p-inputnumber,.catalog-form .p-inputnumber-input,.catalog-form .p-dropdown{width:100%}.catalog-form-actions{justify-content:flex-end;gap:10px;display:flex}.catalog-inline-panel{border:1px solid var(--line);background:#f8fafc;border-radius:8px;margin-bottom:18px;padding:16px}.catalog-inline-panel .catalog-form{grid-template-columns:minmax(240px,1fr) auto;align-items:end;gap:14px;display:grid}.catalog-inline-panel .catalog-form-actions{align-items:center}.global-config-section{margin-bottom:22px}.table-card-header.soft{margin-top:0}.sakai-form-stack{gap:18px;display:grid}.sakai-form-stack .p-card-content{padding-top:0}.sakai-form-stack .field label{color:var(--ink);margin-bottom:8px;font-weight:700;display:inline-block}.sakai-map-placeholder{margin:0}.sakai-module-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.sakai-check-row{border:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border-radius:6px;align-items:center;gap:12px;min-height:52px;padding:0 14px;font-weight:700;display:flex}.sakai-check-row .p-checkbox{flex:none}.p-checkbox{flex:0 0 22px;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex;position:relative}.p-checkbox .p-checkbox-input,.p-checkbox input[type=checkbox]{opacity:0;z-index:2;cursor:pointer;appearance:none;width:22px;height:22px;margin:0;position:absolute;inset:0}.p-checkbox .p-checkbox-box{z-index:1;justify-content:center;align-items:center;width:22px;height:22px;line-height:1;display:inline-flex;position:relative}.p-checkbox .p-checkbox-input:checked+.p-checkbox-box,.p-checkbox input[type=checkbox]:checked+.p-checkbox-box,.p-checkbox .p-checkbox-box.p-highlight,.p-checkbox.p-highlight .p-checkbox-box,.p-checkbox[data-p-highlight=true] .p-checkbox-box{border-color:var(--primary-color);background:var(--primary-color);color:#fff}.p-checkbox .p-checkbox-box .p-checkbox-icon,.p-checkbox .p-checkbox-box .pi,.p-checkbox .p-checkbox-box svg{color:#fff;fill:#fff;stroke:#fff;width:.82rem;height:.82rem;line-height:1;display:block}.p-checkbox .p-checkbox-input:focus-visible+.p-checkbox-box,.p-checkbox input[type=checkbox]:focus-visible+.p-checkbox-box{box-shadow:0 0 0 3px #6366f138}.sakai-check-control{flex:none;display:inline-flex}.module-check-box{color:#fff;background:#fff;border:2px solid #cbd5e1;border-radius:6px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;transition:background-color .12s,border-color .12s,box-shadow .12s;display:inline-flex}.module-check-box.checked{border-color:var(--primary-color);background:var(--primary-color)}.module-check-box .pi{font-size:.8rem;font-weight:700}.sakai-check-row:hover .module-check-box{border-color:var(--primary-color)}.sakai-check-row:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.sakai-check-row .p-hidden-accessible{clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.sakai-check-row .p-hidden-accessible input{opacity:0;pointer-events:none;width:1px;height:1px;margin:-1px;padding:0;position:absolute}.sakai-check-row input[type=checkbox]{opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important}.sakai-check-row.compact{white-space:nowrap;width:max-content;min-height:44px}.sakai-save-bar .p-message{margin:0}.plan-history{border-top:1px solid var(--line);margin-top:1.25rem;padding-top:1rem}.plan-history h3{margin:0 0 .75rem;font-size:1rem}.plan-history-list{gap:.5rem;display:grid}.plan-history-row{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:minmax(120px,.8fr) minmax(120px,.8fr) minmax(180px,1.2fr) auto;align-items:center;gap:.75rem;padding:.75rem;display:grid}.plan-history-row.active{background:#f8fff9;border-color:#86efac}.plan-history-row span{color:var(--muted)}.plan-history-muted{justify-self:end;font-weight:700}.plan-history-empty{border:1px dashed var(--line);color:var(--muted);background:#fff;border-radius:8px;padding:.9rem 1rem}.institution-logo-card{margin-bottom:0}.institution-logo-content{gap:16px;display:grid}.institution-logo-preview{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:center;align-items:center;width:100%;min-height:120px;padding:16px;display:flex}.institution-logo-preview img{object-fit:contain;max-width:100%;max-height:110px}.logo-empty-state{color:var(--muted);justify-items:center;gap:8px;font-weight:700;display:grid}.logo-empty-state span{font-size:1.8rem}.logo-empty-state p{margin:0}.institution-logo-actions{flex-direction:column;align-items:stretch;gap:16px;display:flex}.institution-logo-actions .p-message{margin:0}.institution-form-logo{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:10px;min-height:47px;padding:6px;display:flex}.institution-form-logo-preview{border:1px solid var(--line);background:#f6f9fb;border-radius:8px;flex:none;justify-content:center;align-items:center;width:46px;height:46px;display:flex;overflow:hidden}.institution-form-logo .p-button{flex:auto;justify-content:center}.institution-form-logo .logo-empty-state{gap:0}.institution-form-logo .logo-empty-state span{font-size:1.25rem}.institution-form-logo .logo-empty-state p{display:none}.institution-form-logo-preview img{object-fit:contain;max-width:100%;max-height:100%;display:block}.hidden-file-input{display:none}.institution-overview-grid{grid-template-columns:minmax(240px,.85fr) minmax(0,1.1fr) minmax(0,1fr);gap:18px;margin-bottom:18px;display:grid}.institution-secondary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:18px;display:grid}.site-form{border-top:1px solid var(--line);gap:16px;margin-top:24px;padding-top:20px;display:grid}.site-form .field label{color:var(--ink);margin-bottom:8px;font-weight:700;display:inline-block}.site-form .field label.sakai-check-row,.sakai-form-stack .field label.sakai-check-row{align-items:center;margin-bottom:0;display:inline-flex}.site-dialog{width:min(94vw,760px)}.site-dialog .site-form{border-top:0;margin-top:0;padding-top:0}.academic-year-form{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px;padding:18px;display:grid}.academic-year-transition-panel{border:1px solid var(--line);background:#f8fafc;border-radius:8px;margin:18px 0 24px;padding:18px}.academic-year-deletion-panel{background:#fffbeb;border:1px solid #facc15;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:14px 16px;display:flex;box-shadow:0 12px 24px #eab3081f}.academic-year-deletion-panel>div:first-child{gap:4px;display:grid}.academic-year-deletion-panel strong{color:var(--ink)}.academic-year-deletion-panel span{color:var(--muted)}.academic-year-deletion-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.academic-year-transition-panel .academic-year-form{background:0 0;border:0;margin-bottom:0;padding:0}.academic-year-transition-form{grid-template-columns:repeat(2,minmax(220px,1fr));align-items:start;gap:18px 16px;display:grid}.academic-year-transition-form .field{align-content:start;gap:8px;display:grid}.transition-field-warning{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;padding:10px 12px;font-size:.9rem;font-weight:700;line-height:1.35}.table-card-header.compact{margin-bottom:14px}.transition-checkbox{min-height:45px;color:var(--ink);cursor:pointer;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:10px;font-weight:700;line-height:1.25;display:grid}.transition-checkbox input{opacity:0;pointer-events:none;position:absolute}.transition-checkbox-box{color:#fff;background:#fff;border:2px solid #cbd5e1;border-radius:6px;justify-content:center;align-items:center;width:22px;height:22px;transition:background-color .15s,border-color .15s,box-shadow .15s;display:inline-flex}.transition-checkbox-box .pi{font-size:.78rem;font-weight:700}.transition-checkbox input:checked+.transition-checkbox-box{border-color:var(--primary-color);background:var(--primary-color)}.transition-checkbox input:focus-visible+.transition-checkbox-box{box-shadow:0 0 0 3px #6366f138}.p-checkbox .p-checkbox-box,.module-check-box,.transition-checkbox-box{justify-content:center;align-items:center;line-height:1;display:inline-flex}.p-checkbox .p-checkbox-box .p-checkbox-icon,.p-checkbox .p-checkbox-box .pi,.p-checkbox .p-checkbox-box svg,.module-check-box .pi,.transition-checkbox-box .pi{color:#fff;fill:#fff;stroke:#fff;width:.82rem;height:.82rem;line-height:1;display:block}.transition-checkbox-label{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.transition-enroll-option{background:linear-gradient(135deg,#f8faff 0%,#eef2ff 100%);border:1px solid #c7d2fe;border-radius:14px;grid-column:1/-1;gap:8px;padding:14px 16px;display:grid;box-shadow:0 10px 24px #6366f114}.transition-enroll-option .transition-checkbox{min-height:auto}.transition-enroll-option p{color:var(--muted);margin:0 0 0 32px;line-height:1.45}.transition-recommended-badge{color:#047857;background:#ecfdf5;border-radius:999px;align-items:center;min-height:22px;padding:3px 9px;font-size:.78rem;font-weight:800;display:inline-flex}.transition-actions{grid-column:1/-1;align-items:center;gap:12px;padding-top:10px;padding-bottom:12px;display:flex}.transition-actions .p-button{white-space:nowrap;justify-content:center;min-width:148px;min-height:44px}.transition-actions .p-button:last-child{min-width:190px}.people-form{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:1fr;gap:18px;margin-bottom:22px;padding:18px;display:grid}.people-form-content{grid-template-columns:minmax(0,1fr) 132px;align-items:start;gap:18px;display:grid}.people-form-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.people-form-fields .field.wide{grid-column:1/-1}.people-form-subtitle{color:var(--muted);grid-column:1/-1;margin:2px 0 -4px;font-size:.9rem;font-weight:700}.group-student-add-form{border:1px solid var(--surface-border);background:var(--surface-ground);border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.75rem;margin:1rem 0;padding:1rem;display:grid}.group-student-add-form .form-field{gap:.4rem;min-width:0;display:grid}.group-student-add-form .p-dropdown{width:100%}.subject-detail-dialog-shell .p-dialog-content{max-height:min(74vh,720px);overflow:hidden}.subject-detail-dialog{gap:12px;max-height:calc(min(74vh,720px) - 1rem);display:grid;overflow:hidden}.subject-detail-intro{color:var(--muted);margin:0;line-height:1.45}.subject-assignment-form{border:1px solid var(--line);background:#f8fafc;border-radius:8px;grid-template-columns:minmax(240px,1fr) minmax(220px,.8fr) auto;align-items:end;gap:12px;padding:12px;display:grid}.subject-assignment-form .form-field{gap:6px;min-width:0;display:grid}.subject-assignment-form .p-dropdown{width:100%}.subject-assignment-table-scroll{border-bottom:1px solid var(--surface-border);max-height:min(42vh,420px);overflow:auto}.staff-role-selector{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:.35rem;display:grid}.staff-role-option{border:1px solid var(--surface-border);background:var(--surface-card);min-height:44px;color:var(--text-color);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:12px;justify-content:flex-start;align-items:center;gap:.7rem;padding:.65rem .9rem;font-weight:600;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.staff-role-option:has(input:checked){border-color:var(--primary-color);background:#6366f114;box-shadow:0 0 0 1px #6366f11a}.staff-role-check{flex:0 0 22px;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex;position:relative}.staff-role-check input{opacity:0;cursor:pointer;width:22px;height:22px;margin:0;position:absolute;inset:0}.staff-role-check-box{color:#0000;background:#fff;border:2px solid #cbd5e1;border-radius:6px;justify-content:center;align-items:center;width:22px;height:22px;line-height:1;display:inline-flex}.staff-role-check input:checked+.staff-role-check-box{border-color:var(--primary-color);background:var(--primary-color);color:#fff}.staff-role-check input:focus-visible+.staff-role-check-box{box-shadow:0 0 0 3px #6366f138}.staff-role-check-box .pi{font-size:.78rem;line-height:1;display:block}.staff-role-option>span:last-child{white-space:nowrap;align-items:center;min-height:22px;line-height:22px;display:flex}@media (max-width:640px){.staff-role-selector{grid-template-columns:1fr}.group-student-add-form{grid-template-columns:1fr;align-items:stretch}.subject-assignment-form{grid-template-columns:1fr}}.people-form-photo{align-content:start;justify-items:center;gap:10px;display:grid}.people-form .field label,.people-form-photo>label{color:var(--ink);margin-bottom:8px;font-weight:700;display:inline-block}.people-form-photo>label:first-child{text-align:center;width:100%}.people-form .inline-actions{align-items:end}.people-form-actions{border-top:1px solid var(--line);justify-content:flex-end;padding-top:14px;display:flex}.people-form .p-inputtext,.people-form .p-calendar,.people-form .p-dropdown{width:100%}.bulk-import-panel{border:1px solid var(--line);background:#fbfcfd;border-radius:8px;gap:14px;margin-bottom:18px;padding:16px;display:grid}.bulk-import-main{justify-content:space-between;align-items:center;gap:16px;display:flex}.bulk-import-main h3,.bulk-import-main p{margin:0}.bulk-import-main h3{font-size:1rem}.bulk-import-main p{color:var(--muted);margin-top:4px;font-size:.92rem}.bulk-import-actions,.bulk-import-summary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bulk-import-summary .p-button{margin-left:auto}.promotion-actions{grid-template-columns:minmax(0,1fr) minmax(170px,auto);align-items:start;gap:16px;width:min(100%,860px);display:grid}.promotion-target-dropdown{width:100%;min-width:0}.promotion-student-count-cell{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.promotion-student-count-cell small{color:var(--muted);font-size:.78rem;font-weight:700}.terminal-grade-switch-cell{align-items:center;gap:10px;min-height:38px;display:inline-flex}.terminal-grade-checkbox{flex:none}.terminal-grade-checkbox .p-checkbox-box{border-radius:6px}.terminal-grade-checkbox.p-disabled{opacity:.68}.promotion-control-grid{grid-template-columns:repeat(2,minmax(220px,1fr));align-items:start;gap:12px;min-width:0;display:grid}.promotion-control-field{gap:6px;min-width:0;display:grid}.promotion-control-field label{color:var(--ink);font-size:.84rem;font-weight:800}.promotion-control-help{color:var(--muted);font-size:.82rem;line-height:1.25}.promotion-actions>.p-button{white-space:nowrap;justify-content:center;min-height:44px;margin-top:22px}.bulk-import-result{gap:12px;display:grid}.student-list-toolbar{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:space-between;align-items:end;gap:16px;margin:20px 0 14px;padding:14px 16px;display:flex}.staff-overview-grid{margin-bottom:24px}.staff-functions-panel{border:1px solid var(--line);background:#f8fafc;border-radius:8px;gap:16px;margin:22px 0 26px;padding:18px;display:grid}.staff-function-form{grid-template-columns:minmax(240px,1fr) auto;align-items:end;gap:14px;display:grid}.staff-functions-dialog{width:min(94vw,920px)}.staff-functions-dialog-content{gap:16px;display:grid}.staff-functions-dialog-toolbar{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.staff-functions-dialog-toolbar p{color:var(--ink);margin:0 0 6px}.staff-functions-dialog-toolbar small{color:var(--muted)}.staff-section{border-top:1px solid var(--line);margin-top:28px;padding-top:22px}.student-list-filter{gap:8px;min-width:min(100%,260px);display:grid}.student-list-filter label{color:var(--ink);font-weight:700}.student-list-filter .p-dropdown{width:100%}.people-search-filter{min-width:min(100%,320px)}.people-search-filter .p-input-icon-left,.people-search-filter .p-inputtext{width:100%}.people-search-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:20px;display:flex}.people-page-message{align-items:center;gap:6px;max-width:100%;display:inline-flex}.people-page-message .p-message{margin:0}.people-page-message .p-button{flex:none}.student-list-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.academic-year-transition-panel .bulk-import-result{border-top:1px solid var(--line);margin-top:28px;padding-top:14px}.academic-year-transition-panel .bulk-import-result>strong{margin-bottom:10px;display:block}.academic-year-transition-panel .bulk-import-summary{gap:10px 16px;line-height:1.5}.transition-preview-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.transition-preview-stat{background:#f8fbff;border:1px solid #dbeafe;border-radius:14px;gap:4px;min-height:70px;padding:12px 14px;display:grid}.transition-preview-stat strong{color:#1d4ed8;font-size:1.35rem;line-height:1}.transition-preview-stat small{color:var(--muted);font-size:.84rem;font-weight:700;line-height:1.25}.transition-preview-stat.warning{background:#fff7ed;border-color:#fed7aa}.transition-preview-stat.warning strong{color:#c2410c}.transition-preview-actions{justify-content:flex-end;margin-top:16px;display:flex}.transition-preview-actions .p-button{justify-content:center;min-width:240px;min-height:44px}.promotion-status-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.promotion-status-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:16px}.promotion-status-card span{color:var(--muted);margin-bottom:8px;font-size:.86rem;display:block}.promotion-status-card strong{color:var(--ink);font-size:1.1rem;line-height:1.25;display:block}.promotion-status-card small{color:var(--muted);margin-top:8px;display:block}.history-toolbar{grid-template-columns:minmax(0,1fr) minmax(260px,360px);align-items:end;gap:18px;margin-bottom:18px;display:grid}.history-toolbar h2,.history-card h3{color:var(--ink);margin:0 0 8px}.history-toolbar p,.history-card p{color:var(--muted);margin:0}.history-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:16px;margin-bottom:16px;display:grid}.history-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:16px}.history-card-spaced{margin-top:18px}.history-card .p-datatable{margin-top:12px}.history-group-filter{min-width:260px}.promotion-workflow-panel .p-datatable{margin-top:16px}.promotion-workbench-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.promotion-workbench-summary>div{background:#f8fbff;border:1px solid #dbeafe;border-radius:14px;padding:14px 16px}.promotion-workbench-summary span{color:var(--muted);margin-bottom:6px;font-size:.86rem;font-weight:700;display:block}.promotion-workbench-summary strong{color:var(--ink);font-size:1.05rem;line-height:1.25;display:block}.promotion-workbench-summary small{color:var(--muted);margin-top:6px;display:block}.destination-structure-header{background:#f8fbff;border:1px solid #dbeafe;border-radius:14px;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;padding:16px;display:flex}.destination-structure-header h3,.destination-structure-header p{margin:0}.destination-structure-header p{color:var(--muted);margin-top:6px}.destination-structure-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:16px;display:grid}.destination-structure-grid>div{min-width:0}.destination-structure-grid h3{color:var(--ink);margin:0 0 10px}.transition-confirm-actions{justify-content:flex-end;padding-top:4px;display:flex}.transition-confirm-actions .p-button{justify-content:center;min-width:190px;min-height:44px}.transition-confirm-dialog{gap:16px;display:grid}.transition-confirm-dialog p{color:var(--muted);margin:0;line-height:1.5}.reverse-graduation-dialog{gap:18px}.reverse-graduation-dialog .field{gap:8px;display:grid}.reverse-graduation-dialog .field label{color:var(--ink);font-weight:700}.reverse-graduation-dialog .p-dropdown,.reverse-graduation-dialog .p-inputtext{width:100%}.dialog-inline-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;line-height:1.35;display:flex}.dialog-inline-error .pi{margin-top:2px}.identity-correction-content{gap:18px}.identity-correction-current{background:#eff6ff;border:1px solid #dbeafe;border-radius:8px;gap:4px;padding:12px;display:grid}.identity-correction-current span,.identity-correction-current small{color:var(--muted)}.identity-correction-current strong{color:var(--ink);font-size:1.05rem}.identity-document-upload{background:#f8fbff;border:1px dashed #bfdbfe;border-radius:8px;gap:8px;padding:12px;display:grid}.identity-document-upload span{color:var(--ink);font-weight:700}.identity-document-upload input{width:100%}.identity-document-upload small{color:var(--muted)}.identity-correction-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.identity-correction-grid .field{gap:8px;display:grid}.identity-correction-grid .field.wide{grid-column:1/-1}.identity-correction-grid label{color:var(--ink);font-weight:700}.identity-correction-grid .p-inputtext{width:100%}.identity-correction-reason{resize:vertical;min-height:110px}.identity-conflict-panel{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;margin-top:14px;padding:12px 14px;display:flex}.identity-conflict-panel>div{gap:4px;display:grid}.identity-conflict-panel strong{color:#9a3412}.identity-conflict-panel span{color:#475569;line-height:1.35}.audit-attachment-link{color:var(--primary);align-items:center;gap:6px;font-weight:700;text-decoration:none;display:inline-flex}.audit-attachment-link:hover{text-decoration:underline}.role-add-option{background:#f8fbff;border:1px dashed #bfdbfe;border-radius:8px;align-items:flex-start;gap:12px;padding:12px;display:flex}.role-add-option label{color:var(--ink);cursor:pointer;gap:4px;font-weight:700;line-height:1.3;display:grid}.role-add-option label span{color:var(--muted);font-size:.88rem;font-weight:400}.role-section-divider{border-top:1px solid var(--line);grid-column:1/-1;margin:8px 0 2px}.audit-card .p-card-content{gap:16px;display:grid}.audit-toolbar{grid-template-columns:minmax(220px,1.2fr) minmax(150px,.7fr) minmax(190px,.9fr) minmax(260px,1.3fr) auto;align-items:center;gap:12px;display:grid}.audit-toolbar .p-dropdown,.audit-toolbar .p-inputtext,.audit-search{width:100%}.audit-detail-dialog{width:min(94vw,860px)}.audit-detail{gap:16px;display:grid}.audit-detail p{color:var(--ink);margin:0;font-weight:700}.audit-detail dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;display:grid}.audit-detail dt{color:var(--muted);font-size:.82rem;font-weight:700}.audit-detail dd{color:var(--ink);margin:3px 0 0}.audit-json-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.audit-json-grid section{gap:8px;display:grid}.audit-json-grid h3{color:var(--ink);margin:0;font-size:.95rem}.audit-json-grid pre{border:1px solid var(--line);color:#334155;white-space:pre-wrap;background:#f8fafc;border-radius:8px;max-height:280px;margin:0;padding:12px;font-size:.8rem;overflow:auto}.identity-correction-card{margin-bottom:18px}.audit-review-content{gap:16px;display:grid}.audit-review-content p{color:var(--muted);margin:0;line-height:1.45}.audit-review-content dl{background:#f8fbff;border:1px solid #dbeafe;border-radius:8px;gap:10px;margin:0;padding:12px;display:grid}.audit-review-content dl div{grid-template-columns:150px minmax(0,1fr);gap:12px;display:grid}.audit-review-content dt{color:var(--muted);font-weight:700}.audit-review-content dd{color:var(--ink);margin:0;font-weight:700}.audit-review-note{color:var(--ink);gap:8px;font-weight:700;display:grid}.audit-review-note textarea{resize:vertical;width:100%;min-height:108px}.status-dialog{width:min(94vw,560px)}.status-dialog .p-dialog-content{max-height:min(78vh,660px);overflow:hidden auto}.status-dialog-content{gap:16px}.edit-director-picker-field{position:relative}.director-picker-trigger{width:100%;min-height:56px;color:var(--ink);cursor:pointer;text-align:left;background:#fff;border:1px solid #cbd5e1;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.director-picker-trigger.open,.director-picker-trigger:focus-visible{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #6366f11f}.director-picker-trigger .person-name-cell{min-width:0}.director-picker-panel{background:#fff;border:1px solid #dbe4ee;border-radius:8px;gap:10px;margin-top:8px;padding:12px;display:grid;box-shadow:0 12px 26px #0f172a1f}.director-picker-search{width:100%}.director-picker-search .p-inputtext{width:100%;padding-right:38px}.director-picker-list{gap:4px;max-height:190px;padding-right:4px;display:grid;overflow-y:auto}.director-picker-option{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;padding:8px}.director-picker-option:hover,.director-picker-option.selected{color:var(--brand);background:#eef2ff}.director-picker-empty{color:var(--muted);padding:12px}.promotion-summary-dialog .p-dialog-content{overflow-x:hidden}.promotion-summary-dialog .transition-confirm-dialog{gap:14px}.promotion-summary-dialog .promotion-confirm-table{width:100%}.promotion-summary-dialog .promotion-confirm-table .p-datatable-table{width:100%;min-width:0}.promotion-summary-dialog .promotion-confirm-table th,.promotion-summary-dialog .promotion-confirm-table td{white-space:normal}.promotion-summary-dialog .dialog-actions{flex-wrap:wrap}.transition-confirm-summary{border:1px solid var(--line);color:var(--ink);background:#f8fafc;border-radius:8px;gap:8px;padding:12px;display:grid}.photo-select-button{justify-content:center;width:120px}.photo-select-button.wide{width:154px}.photo-picker-preview{border:1px solid var(--line);background:#f6f9fb;border-radius:8px;justify-content:center;align-items:center;width:82px;height:82px;display:flex;overflow:hidden}.photo-picker-preview.create{width:120px;height:120px}.photo-picker-preview img{object-fit:cover;width:100%;height:100%;display:block}.photo-picker-empty{width:100%;height:100%;color:var(--muted);justify-content:center;align-items:center;font-size:1.5rem;display:flex}.no-photo-placeholder{color:#0000!important;box-shadow:none!important;background:#f8fafc!important;border-color:#dbe4ee!important}.person-name-cell{align-items:center;gap:10px;min-width:220px;display:flex}.person-photo-thumb,.person-photo-placeholder{border:1px solid var(--line);background:#f6f9fb;border-radius:50%;flex:none;width:38px;height:38px;overflow:hidden}.person-photo-thumb{cursor:pointer;padding:0}.person-photo-thumb img{object-fit:cover;width:100%;height:100%;display:block}.person-photo-placeholder{color:var(--muted);justify-content:center;align-items:center;display:inline-flex}.person-photo-dialog{width:min(92vw,520px)}.person-photo-dialog img{object-fit:contain;border-radius:8px;width:100%;max-height:70vh;display:block}.teacher-photo-dialog{width:min(90vw,387px);max-width:min(90vw,387px);box-shadow:none}.teacher-photo-dialog .p-dialog-content{box-shadow:none;background:0 0;border-radius:.9rem;padding:0;overflow:visible}.teacher-photo-viewer{width:100%;position:relative}.teacher-photo-viewer img{object-fit:contain;border-radius:.9rem;width:100%;max-width:100%;max-height:82vh;display:block;box-shadow:0 18px 42px #0f172a47}.teacher-photo-close{z-index:2;color:#fff;cursor:pointer;background:#102a4ce6;border:1px solid #ffffff9e;border-radius:999px;place-items:center;width:2.1rem;height:2.1rem;display:grid;position:absolute;top:.55rem;right:.55rem;box-shadow:0 8px 18px #0f172a38}.teacher-photo-close .pi{font-size:.82rem}.person-detail-dialog,.person-edit-dialog{width:min(94vw,780px)}.person-edit-dialog .p-dialog-content{padding-top:.75rem;padding-bottom:.75rem}.promotion-graduation-dialog{width:min(94vw,920px)}.graduation-grade-summary{color:#334155;background:#f8fbff;border:1px solid #dbeafe;border-radius:14px;gap:4px;margin-bottom:16px;padding:14px 16px;display:grid}.graduation-grade-summary__label{color:#64748b;font-size:.82rem;font-weight:700}.graduation-grade-summary strong{color:#172554;font-size:1.05rem}.graduation-case-panel .promotion-step-actions{align-items:center;gap:28px}.graduation-case-panel .promotion-step-actions>div:first-child{max-width:560px}.graduation-case-panel .promotion-actions{justify-content:flex-end;width:auto;min-width:220px;display:flex}.scheduled-graduation-panel{border-top:1px solid var(--line);gap:12px;margin-top:18px;padding-top:16px;display:grid}.scheduled-graduation-panel h4,.scheduled-graduation-panel p{margin:0}.scheduled-graduation-panel h4{color:var(--ink);font-size:1rem}.scheduled-graduation-panel p{color:var(--muted);margin-top:4px;line-height:1.45}.person-edit-confirm-dialog{width:min(92vw,560px)}.edit-confirm-content{gap:16px;display:grid}.edit-confirm-content p{color:var(--muted);margin:0}.edit-confirm-summary{border:1px solid var(--line);background:#f8fafc;border-radius:8px;margin:0;display:grid;overflow:hidden}.edit-confirm-summary-header,.edit-confirm-summary-row{grid-template-columns:140px minmax(0,1fr) minmax(0,1fr);gap:12px;padding:12px 14px;display:grid}.edit-confirm-summary-header{color:var(--muted);background:#eef2ff;font-weight:700}.edit-confirm-summary-row+.edit-confirm-summary-row{border-top:1px solid var(--line)}.edit-confirm-summary-row strong{color:var(--ink)}.edit-confirm-summary-row span{color:var(--muted)}.edit-confirm-summary.two-column .edit-confirm-summary-header,.edit-confirm-summary-row.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.person-detail{grid-template-columns:130px minmax(0,1fr);align-items:start;gap:22px;display:grid}.person-detail-photo{border:1px solid var(--line);width:120px;height:120px;color:var(--muted);background:#f6f9fb;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:1.4rem;font-weight:700;display:inline-flex;overflow:hidden}.person-detail-photo img{object-fit:cover;width:100%;height:100%;display:block}.person-detail dl{gap:12px;margin:0;display:grid}.person-detail dl div{grid-template-columns:210px minmax(0,1fr);align-items:baseline;gap:14px;display:grid}.person-detail dt{color:#000;text-align:right;white-space:nowrap;font-weight:700}.person-detail dt:after{content:":"}.person-detail dd{min-width:0;margin:0}.dialog-form{border:0;grid-template-columns:1fr;gap:12px;margin-bottom:0;padding:0;display:grid}.person-edit-layout{grid-template-columns:168px minmax(0,1fr);align-items:start;gap:14px;display:grid}.person-edit-photo-panel{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.person-edit-photo-panel>label,.person-edit-fields .field label{color:var(--ink);font-weight:700}.person-edit-photo-panel>label{width:100%}.person-edit-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;display:grid}.person-edit-fields .field.wide{grid-column:1/-1}.person-edit-fields .p-inputtext,.person-edit-fields .p-calendar,.person-edit-fields .p-dropdown{width:100%}.person-edit-fields .p-inputtext,.person-edit-fields .p-dropdown,.person-edit-fields .p-multiselect{min-height:2.7rem}.person-edit-fields .field label{margin-bottom:6px}.photo-picker-preview.large{width:136px;height:136px}.person-edit-photo-panel .photo-select-button.wide{width:136px;min-height:2.45rem}.person-edit-dialog .role-add-option{padding:10px}.person-edit-dialog .dialog-actions{padding-top:10px}button.photo-picker-preview{cursor:pointer;padding:0}button.photo-picker-preview.clickable:hover{border-color:var(--brand);box-shadow:0 0 0 3px #075e9a1a}.dialog-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:12px;padding-top:16px;display:flex}.confirmation-dialog-content{color:var(--text-color-secondary);line-height:1.55}.confirmation-dialog-content p{margin:0 0 12px}.confirmation-dialog-content strong{color:var(--text-color)}.academic-year-form .field label,.academic-year-transition-form .field label{color:var(--ink);margin-bottom:8px;font-weight:700;display:inline-block}.academic-year-form .inline-actions{align-items:end}.academic-year-form .p-inputtext,.academic-year-form .p-calendar,.academic-year-form .p-dropdown,.academic-year-form .p-inputnumber,.academic-year-form .p-inputnumber-input,.academic-year-transition-form .p-dropdown{width:100%}.sites-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-top:18px;display:flex}.sites-toolbar .p-message{margin:0}.inline-save-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.inline-save-row .p-message{margin:0}.inline-actions{justify-content:flex-end;display:flex}.row-actions{align-items:center;gap:6px;display:flex}.table-toolbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.table-toolbar-actions .p-dropdown{min-width:170px}.table-card-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.table-card-header h2,.table-card-header p{margin:0}.table-card-header p{color:var(--muted);margin-top:6px}.table-card-header-spaced{border-top:1px solid var(--line);margin-top:32px;padding-top:24px}.collapsible-academic-section{border:1px solid var(--line);background:#fff;border-radius:14px;margin-top:18px;overflow:hidden}.collapsible-section-trigger{width:100%;color:inherit;text-align:left;cursor:pointer;background:#fff;border:0;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.collapsible-section-trigger:hover{background:#f8fafc}.collapsible-section-trigger.is-locked{background:#fffaf0}.collapsible-section-trigger.is-locked:hover{background:#fff7ed}.collapsible-section-trigger.is-locked h3,.collapsible-section-trigger.is-locked .eyebrow{color:#9a3412}.academic-year-static-header{cursor:default}.academic-year-static-header:hover{background:#fff}.collapsible-section-trigger h2,.collapsible-section-trigger h3,.collapsible-section-trigger p{margin:0}.collapsible-section-trigger p:not(.eyebrow){color:var(--muted);margin-top:6px}.collapsible-section-summary{flex-shrink:0;align-items:center;gap:12px;display:flex}.collapsible-section-summary .pi{color:var(--muted);font-size:.95rem}.collapsible-section-content{padding:0 20px 20px}.collapsible-toolbar{margin-bottom:16px}.promotion-step-section{margin-top:18px}.promotion-step-actions{margin-bottom:16px}.bulk-import-main.promotion-step-actions{align-items:flex-start}.promotion-table-footer{background:#f8fbff;border:1px solid #dbeafe;border-radius:14px;justify-content:space-between;align-items:center;gap:18px;margin-top:16px;padding:16px;display:flex}.promotion-table-footer>div{gap:4px;display:grid}.promotion-table-footer strong{color:var(--ink)}.promotion-table-footer span{color:var(--muted);font-size:.92rem}.promotion-table-footer .p-button{white-space:nowrap}.promotion-table-footer .promotion-table-footer-action:not(:disabled){border-color:var(--primary-color);background:var(--primary-color);color:var(--primary-color-text)}.promotion-table-footer .promotion-table-footer-action:not(:disabled) .p-button-label,.promotion-table-footer .promotion-table-footer-action:not(:disabled) .p-button-icon{color:var(--primary-color-text)}.promotion-table-footer .promotion-table-footer-action:disabled{color:#64748b;opacity:1;background:#f1f5f9;border-color:#cbd5e1}.promotion-table-footer .promotion-table-footer-action:disabled .p-button-label,.promotion-table-footer .promotion-table-footer-action:disabled .p-button-icon{color:#64748b}.sidebar{min-height:100vh;max-height:100vh;color:var(--ink);border-right:1px solid var(--line);background:#fff;align-self:start;padding:22px;position:sticky;top:0;overflow-y:auto}.sidebar-logo{object-fit:contain;border-radius:6px;width:170px;height:auto}.sidebar-nav{gap:8px;margin-top:34px;display:grid}.sidebar-nav a{min-height:44px;color:var(--muted);border-radius:6px;align-items:center;gap:12px;padding:0 12px;font-weight:700;display:flex}.sidebar-nav a.active,.sidebar-nav a:hover{color:var(--brand-strong);background:#f6f9fb}.workspace{padding:clamp(22px,4vw,44px)}.workspace-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:26px;display:flex}.workspace-header h1{font-size:clamp(2rem,4vw,3.2rem)}.workspace-header p:not(.eyebrow){max-width:640px;color:var(--muted);margin:12px 0 0;font-size:1.05rem}.header-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;display:flex}.header-actions button{cursor:pointer;border:0}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.metric-card{border:1px solid var(--line);background:#fff;border-radius:8px;gap:8px;min-height:142px;padding:20px;display:grid}.metric-card p,.metric-card span{color:var(--muted);margin:0}.metric-card strong{color:var(--ink);font-size:2.4rem;line-height:1}.data-section{border:1px solid var(--line);background:#fff;border-radius:8px;margin-top:22px;overflow:hidden}.section-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:22px;display:flex}.section-heading h2,.section-heading p{margin:0}.section-heading p{color:var(--muted);margin-top:6px}.icon-button{border:1px solid var(--line);width:42px;height:42px;color:var(--brand-strong);cursor:pointer;background:#fff;border-radius:6px}.institution-table{width:100%;overflow-x:auto}.table-row{border-bottom:1px solid #edf3f6;grid-template-columns:2fr 1fr 1fr 1fr 1fr .8fr;align-items:center;gap:16px;min-width:820px;padding:16px 22px;display:grid}.table-row:last-child{border-bottom:0}.table-head{color:var(--muted);text-transform:uppercase;font-size:.83rem;font-weight:700}.status-pill{width:fit-content;color:var(--brand-strong);border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 10px;font-size:.9rem;font-weight:700}.table-action{border:1px solid var(--line);width:fit-content;color:var(--brand-strong);background:#fff;border-radius:6px;padding:8px 10px;font-weight:700}.empty-state{color:var(--muted);padding:24px 22px;font-weight:700}.management-form{gap:18px;display:grid}.form-section{border:1px solid var(--line);background:#fff;border-radius:8px;overflow:hidden}.section-heading.compact{padding:18px 22px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:22px;display:grid}.form-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label{color:var(--ink);gap:8px;font-weight:700;display:grid}.form-grid .wide{grid-column:1/-1}.form-grid input,.form-grid select{border:1px solid var(--line);width:100%;min-height:46px;color:var(--ink);background:#fff;border-radius:6px;padding:0 12px;font-size:1rem}.form-grid input:focus,.form-grid select:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #075e9a24}.map-placeholder{background:#fff;border:1px dashed #a8bdc8;border-radius:8px;align-items:center;gap:18px;min-height:180px;margin:22px 22px 0;padding:24px;display:flex}.map-placeholder>span{color:var(--brand);font-size:2rem}.map-placeholder strong,.map-placeholder p{margin:0}.map-placeholder p{color:var(--muted);margin-top:6px}.module-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:22px;display:grid}.toggle-row{border:1px solid var(--line);background:#fff;border-radius:6px;align-items:center;gap:12px;min-height:52px;padding:0 14px;font-weight:700;display:flex}.toggle-row input{width:18px;height:18px;accent-color:var(--brand)}.sticky-save-bar{z-index:5;border:1px solid var(--line);background:#fffffff5;border-radius:8px;justify-content:space-between;align-items:center;gap:18px;padding:14px;display:flex;position:sticky;bottom:16px;box-shadow:0 12px 32px #12232e1f}.sticky-save-bar button{cursor:pointer;border:0}.sticky-save-bar button:disabled{cursor:wait;opacity:.7}.save-message{color:var(--muted);font-weight:700}.save-message.success{color:var(--brand-strong)}.save-message.error{color:#b42318}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.detail-panel{border:1px solid var(--line);background:#fff;border-radius:8px;padding:22px}.detail-panel h2{margin:0 0 18px}.detail-panel dl{gap:14px;margin:0;display:grid}.detail-panel dl div{grid-template-columns:minmax(140px,.8fr) minmax(0,1.2fr);align-items:center;gap:16px;display:grid}.detail-panel dt{color:var(--muted);font-weight:700}.detail-panel dd{color:var(--ink);margin:0;font-weight:700}.mini-map-placeholder{min-height:110px;color:var(--muted);background:#fff;border:1px dashed #a8bdc8;border-radius:8px;align-items:center;gap:12px;margin-top:18px;padding:18px;display:flex}.mini-map-placeholder span{color:var(--brand);font-size:1.6rem}.mini-map-placeholder p{margin:0;font-weight:700}.module-list{flex-wrap:wrap;gap:10px;padding:22px;display:flex}.module-list.compact{padding:0}.module-list.compact .p-tag{white-space:normal;text-align:left}.module-chip{color:var(--brand-strong);background:#fff;border:1px solid #cfe4ef;border-radius:999px;padding:8px 12px;font-weight:700}@media (max-width:760px){.topbar{flex-direction:column;align-items:flex-start}.topbar-actions{width:100%;padding-bottom:4px;overflow-x:auto}.summary-band,.auth-shell,.app-shell,.layout-wrapper,.institution-shell{grid-template-columns:1fr}.auth-shell{place-items:center;padding:1rem}.auth-form-panel{border-left:0}.sidebar,.layout-sidebar{min-height:auto;max-height:none;position:static}.sidebar-nav,.layout-menu{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-header,.layout-topbar{flex-direction:column}.header-actions,.topbar-actions{justify-content:flex-start;width:100%}.institution-transition-notice,.institution-dashboard-hero,.institution-dashboard-card-heading,.institution-dashboard-card-heading.compact{flex-direction:column;align-items:flex-start}.institution-dashboard-next-step{width:100%}.metric-grid,.sakai-metric-grid,.institution-kpi-grid,.institution-dashboard-grid,.institution-secondary-dashboard,.form-grid,.form-grid.two-columns,.module-grid,.sakai-module-grid,.plan-history-row,.institution-overview-grid,.institution-secondary-grid,.detail-grid,.institution-action-grid,.institution-mini-stats{grid-template-columns:1fr}.institution-staff-dashboard-card{grid-column:auto}.catalog-layout,.catalog-layout.single,.catalog-inline-panel .catalog-form{grid-template-columns:1fr}.detail-panel dl div{grid-template-columns:1fr;gap:4px}.sticky-save-bar,.inline-save-row,.sites-toolbar{flex-direction:column;align-items:stretch}.inline-actions{justify-content:stretch}.table-toolbar-actions{flex-direction:column;align-items:stretch;width:100%}.table-toolbar-actions .p-dropdown,.table-toolbar-actions .p-button{width:100%}.academic-year-form,.promotion-status-grid,.promotion-workbench-summary,.history-toolbar,.history-grid,.destination-structure-grid{grid-template-columns:1fr}.history-group-filter{min-width:0}.destination-structure-header{flex-direction:column;align-items:stretch}.academic-year-transition-form{grid-template-columns:1fr}.transition-enroll-option{grid-column:1/-1}.transition-actions{flex-direction:column;align-items:stretch}.transition-actions .p-button{width:100%}.transition-preview-actions{justify-content:stretch}.transition-preview-actions .p-button{width:100%}.transition-confirm-actions{justify-content:stretch}.transition-confirm-actions .p-button{width:100%}.people-form,.people-form-content,.people-form-fields{grid-template-columns:1fr}.people-form-photo{max-width:180px}.people-form-actions,.student-list-toolbar{flex-direction:column;align-items:stretch}.staff-functions-dialog-toolbar{flex-direction:column}.staff-functions-dialog-toolbar .p-button{width:100%}.staff-function-form{grid-template-columns:1fr}.student-list-actions{justify-content:stretch}.student-list-actions .p-button{width:100%}.promotion-step-actions,.promotion-table-footer{flex-direction:column;align-items:stretch}.promotion-table-footer .p-button{width:100%}.promotion-actions,.promotion-control-grid{grid-template-columns:1fr;width:100%}.academic-year-deletion-panel{flex-direction:column;align-items:stretch}.academic-year-deletion-actions{justify-content:stretch}.academic-year-deletion-actions .p-button,.promotion-actions .p-button{width:100%}.person-detail{grid-template-columns:1fr}.person-detail dl div{grid-template-columns:1fr;gap:4px}.edit-confirm-summary-header{display:none}.edit-confirm-summary-row{grid-template-columns:1fr;gap:4px}.person-edit-layout,.person-edit-fields{grid-template-columns:1fr}.person-edit-photo-panel,.institution-form-logo{flex-direction:column;align-items:stretch}.institution-form-logo-preview{width:100%;height:84px}.photo-picker-preview.large{width:120px;height:120px}.dialog-actions{flex-direction:column-reverse;align-items:stretch}.sticky-save-bar .primary-action{width:100%}}.admin-submit-field{flex-direction:column;display:flex}.admin-submit-field .p-button{width:100%}.admin-submit-spacer{visibility:hidden}@media (min-width:761px) and (max-width:1120px){.metric-grid,.sakai-metric-grid,.institution-kpi-grid,.institution-secondary-dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}.institution-dashboard-grid{grid-template-columns:1fr}.institution-staff-dashboard-card{grid-column:span 2}.institution-action-grid,.institution-overview-grid,.institution-secondary-grid,.module-grid,.sakai-module-grid,.academic-year-form,.promotion-status-grid,.promotion-workbench-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.destination-structure-grid{grid-template-columns:1fr}.academic-year-transition-form{grid-template-columns:repeat(2,minmax(0,1fr))}.transition-enroll-option{grid-column:1/-1}.people-form{grid-template-columns:repeat(2,minmax(0,1fr))}}.email-conflict-dialog{gap:1rem;display:grid}.email-conflict-summary{border:1px solid var(--surface-border);background:var(--surface-50);border-radius:8px;gap:.25rem;padding:.85rem 1rem;display:grid}.email-conflict-summary strong{color:var(--text-color);font-size:1rem}.email-conflict-summary span{color:var(--text-color-secondary)}.schedule-builder{gap:1.35rem;display:grid}.schedule-slot-form{background:#f8fafc;border:1px solid #dbe5ef;border-radius:8px;grid-template-columns:repeat(2,minmax(15rem,1fr)) minmax(14rem,1fr);align-items:end;gap:.75rem;padding:1rem;display:grid}.schedule-time-block{gap:.45rem;display:grid}.schedule-slot-form .field,.schedule-time-block{align-self:stretch}.schedule-slot-form .field{gap:.45rem;display:grid}.schedule-slot-form .field>label,.schedule-time-block>label{color:#26364a;font-weight:700}.schedule-slot-form .field .p-inputtext{box-sizing:border-box;height:2.875rem;min-height:2.875rem}.schedule-time-field{box-sizing:border-box;background:#fff;border:1px solid #dbe5ef;border-radius:8px;grid-template-columns:minmax(5.5rem,1fr) auto minmax(5.5rem,1fr);align-items:center;gap:.5rem;height:2.875rem;min-height:2.875rem;padding:0 .35rem;display:grid}.schedule-slot-actions{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-end;align-self:end;align-items:center;gap:.6rem;display:flex}.schedule-slot-actions .p-button{white-space:nowrap;min-height:2.875rem}.schedule-time-field>span{color:#64748b;font-weight:700}.schedule-time-field .p-dropdown{width:100%;box-shadow:none;border:0;height:2.25rem;min-height:2.25rem}.schedule-time-field .p-dropdown:not(.p-disabled):hover{border:0}.schedule-time-field .p-dropdown-label{padding:0 .25rem 0 .5rem;font-weight:700;line-height:2.25rem}.schedule-time-field .p-dropdown-trigger{width:2rem}.schedule-days-panel{background:#fff;border:1px solid #dbe5ef;border-radius:8px;gap:.75rem;padding:1rem;display:grid}.schedule-days-panel h3{color:#26364a;margin:0;font-size:1rem}.schedule-days-options{flex-wrap:wrap;gap:.7rem 1rem;display:flex}.schedule-weekly-template-panel{background:#fff;border:1px solid #dbe5ef;border-radius:8px;gap:.85rem;padding:1rem;display:grid}.schedule-weekly-template-panel h3{color:#26364a;margin:0;font-size:1rem}.schedule-weekly-template-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.65rem;display:grid}.schedule-weekly-template-grid label{color:#26364a;gap:.45rem;min-width:0;font-weight:700;display:grid}.schedule-weekly-template-grid .p-dropdown{width:100%;min-width:0}.schedule-day-option{color:#26364a;align-items:center;gap:.45rem;font-weight:600;display:inline-flex}.schedule-group-row{justify-content:space-between;align-items:end;gap:1rem;display:flex}.schedule-group-row .field{gap:.45rem;min-width:min(420px,100%);display:grid}.schedule-group-row .field>label{font-weight:700}.schedule-workspace{grid-template-columns:minmax(220px,280px) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.schedule-assignment-palette{background:#fff;border:1px solid #dbe5ef;border-radius:8px;padding:1rem}.schedule-assignment-palette h3{color:#26364a;margin:0 0 .75rem;font-size:1rem}.schedule-assignment-list{gap:.6rem;display:grid}.schedule-assignment-card{color:#26364a;text-align:left;cursor:grab;background:#f8fafc;border:1px solid #dbe5ef;border-radius:8px;gap:.25rem;width:100%;padding:.75rem;display:grid}.schedule-assignment-card.selected{background:#f3f1ff;border-color:#635bff;box-shadow:0 0 0 2px #635bff1f}.schedule-assignment-card strong{color:#111827}.schedule-assignment-card span{color:#64748b;font-size:.9rem}.schedule-table-wrap{min-width:0;overflow-x:auto}.schedule-grid-table{border-collapse:collapse;table-layout:fixed;background:#fff;border:1px solid #dbe5ef;border-radius:8px;width:100%;min-width:860px;overflow:hidden}.schedule-grid-table th,.schedule-grid-table td{vertical-align:top;border-bottom:1px solid #e5edf5;border-right:1px solid #e5edf5;padding:.65rem}.schedule-grid-table thead th{color:#26364a;text-align:left;background:#f8fafc;font-weight:700}.schedule-grid-table thead th span,.schedule-grid-table thead th small{display:block}.schedule-grid-table thead th small{color:#64748b;margin-top:.15rem;font-size:.78rem;font-weight:600}.schedule-grid-table tbody th{color:#26364a;text-align:left;background:#fbfdff;width:140px}.schedule-grid-table tbody th span,.schedule-grid-table tbody th small{display:block}.schedule-grid-table tbody th small{color:#64748b;margin-top:.2rem;font-weight:500}.schedule-slot-heading{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.schedule-cell{color:#94a3b8;cursor:pointer;min-height:92px}.schedule-cell:hover{background:#f8fafc}.schedule-cell.filled{color:#26364a;cursor:default}.schedule-cell.unavailable{color:#94a3b8;cursor:default;background:#f8fafc}.schedule-entry-card{cursor:grab;-webkit-user-select:none;user-select:none;background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px;grid-template-columns:minmax(0,1fr) 1.75rem;align-items:flex-start;gap:.5rem;min-height:72px;padding:.65rem;display:grid}.schedule-entry-card:active{cursor:grabbing}.schedule-entry-card div{gap:.2rem;min-width:0;display:grid}.schedule-entry-card strong{color:#111827;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;line-height:1.2}.schedule-entry-card span{color:#475569;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;font-size:.9rem;line-height:1.25}.schedule-entry-card .schedule-entry-remove-button{color:#64748b;width:1.75rem;min-width:1.75rem;height:1.75rem}.schedule-entry-card .schedule-entry-remove-button .p-button-icon{font-size:.8rem;line-height:1}.schedule-entry-card .schedule-entry-remove-button:hover{color:#ef4444;background:#fee2e2}.schedule-template-dialog{width:min(980px,100vw - 2rem)}.schedule-template-manager,.schedule-template-detail{gap:1.2rem;display:grid}.schedule-template-create-form{background:#f8fafc;border:1px solid #dbe5ef;border-radius:8px;grid-template-columns:minmax(14rem,1fr) minmax(16rem,1fr) auto;align-items:end;gap:.9rem;padding:1rem;display:grid}.schedule-template-create-form h3,.schedule-template-list-heading h3{color:#111827;margin:0;font-size:1rem}.schedule-template-create-form p{color:#64748b;margin:.25rem 0 0;line-height:1.4}.schedule-template-create-form label{color:#26364a;gap:.45rem;font-weight:700;display:grid}.schedule-template-form{grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:.75rem;display:grid}.schedule-template-list-panel{gap:.85rem;padding:.75rem 0 .65rem;display:grid}.schedule-template-selector-row{grid-template-columns:minmax(18rem,28rem) auto;justify-content:space-between;align-items:end;gap:1rem;display:grid}.schedule-template-selector-fields{gap:.9rem;display:grid}.schedule-template-list-panel .field{color:#26364a;gap:.55rem;width:100%;font-weight:700;display:grid}.schedule-template-list-panel .p-dropdown{width:100%}.schedule-template-list-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.schedule-template-list-heading span{color:#64748b;font-weight:700}.schedule-template-list{gap:.55rem;display:grid}.schedule-template-list article{background:#fff;border:1px solid #dbe5ef;border-radius:8px;grid-template-columns:minmax(0,1fr);align-items:center;gap:.65rem;min-height:4.65rem;padding:.75rem .85rem;display:grid}.schedule-template-list article.selected{background:#f5f7ff;border-color:#6366f1;box-shadow:0 0 0 2px #6366f11a}.schedule-template-select{color:#111827;cursor:pointer;text-align:left;background:0 0;border:0;gap:.2rem;min-width:0;padding:0;display:grid}.schedule-template-select strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.schedule-template-select span{color:#64748b;font-weight:700}.schedule-template-title{background:#fff;border:1px solid #dbe5ef;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem;display:flex}.schedule-template-title>div{gap:.2rem;display:grid}.schedule-template-title span{color:#005dab;text-transform:uppercase;font-size:.8rem;font-weight:800}.schedule-template-title h3{color:#26364a;margin:0}.schedule-template-title p{color:#64748b;margin:0;font-weight:700}.schedule-template-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.85rem;display:flex}.schedule-template-actions>.p-button:not(.p-button-outlined) .p-button-label,.schedule-template-actions>.p-button:not(.p-button-outlined) .p-button-icon{color:#fff}.schedule-template-visibility{color:#26364a;cursor:pointer;align-items:center;gap:.55rem;font-weight:700;display:inline-flex}.schedule-template-title .schedule-template-visibility span,.schedule-template-list-panel .schedule-template-visibility span{color:#26364a;text-transform:none;font-size:.9rem;font-weight:700}.schedule-slot-list{gap:.6rem;display:grid}.schedule-slot-table{background:#fff;border:1px solid #dbe5ef;border-radius:8px;margin-top:.15rem;overflow:hidden}.schedule-slot-table-header,.schedule-slot-row{grid-template-columns:minmax(12rem,1.4fr) minmax(7rem,.8fr) minmax(7rem,.8fr) minmax(7rem,auto);align-items:center;gap:1rem;padding:.75rem;display:grid}.schedule-slot-table-header{color:#26364a;background:#f8fafc;font-size:.85rem;font-weight:800}.schedule-slot-row{border-top:1px solid #e5edf5}.schedule-slot-row .row-actions{justify-content:flex-end}.schedule-slot-row strong{color:#111827}.schedule-slot-row span{color:#64748b}@media (max-width:920px){.schedule-slot-form,.schedule-workspace,.schedule-template-create-form,.schedule-template-form{grid-template-columns:1fr}.schedule-time-field{max-width:none}.schedule-slot-actions{justify-content:stretch}.schedule-slot-actions .p-button{flex:12rem}.schedule-template-title,.schedule-template-actions,.schedule-template-selector-row{flex-direction:column;grid-template-columns:1fr;align-items:stretch}.schedule-slot-table-header{display:none}.schedule-slot-row{grid-template-columns:1fr;gap:.45rem}.schedule-slot-row .row-actions{justify-content:flex-start}.schedule-group-row{flex-direction:column;align-items:stretch}.schedule-weekly-template-grid{grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr))}}.system-health-page{gap:1.5rem;display:grid}.system-health-summary{border:1px solid;border-radius:16px;align-items:center;gap:1rem;padding:1.35rem 1.5rem;display:flex}.system-health-summary.ok{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.system-health-summary.error{color:#991b1b;background:#fef2f2;border-color:#fecaca}.system-health-summary-icon{background:#fff;border-radius:50%;place-items:center;width:3rem;height:3rem;font-size:1.5rem;display:grid}.system-health-summary p,.system-health-summary strong{margin:0;display:block}.system-health-summary p{margin-bottom:.25rem;font-size:1.15rem;font-weight:700}.system-health-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.system-health-card{border:1px solid var(--surface-border);background:var(--surface-card);border-left:5px solid #ef4444;border-radius:14px;padding:1.25rem;box-shadow:0 8px 24px #0f172a0f}.system-health-card.ok{border-left-color:#22c55e}.system-health-card.not_configured{border-left-color:#f59e0b}.system-health-card-heading{align-items:center;gap:.85rem;display:flex}.system-health-card-heading>span{width:2.6rem;height:2.6rem;color:var(--primary-color);background:var(--primary-50);border-radius:10px;place-items:center;font-size:1.2rem;display:grid}.system-health-card-heading>div{flex:1}.system-health-card-heading h2{margin:0;font-size:1rem}.system-health-card-heading small{color:var(--text-color-secondary)}.system-health-card-heading>.pi{font-size:1.25rem}.system-health-card.ok .system-health-card-heading>.pi{color:#16a34a}.system-health-card.error .system-health-card-heading>.pi{color:#dc2626}.system-health-card.not_configured .system-health-card-heading>.pi{color:#d97706}.system-health-card>p{color:var(--text-color-secondary);margin:1rem 0 .35rem}.system-health-details{border:1px solid var(--surface-border);background:var(--surface-card);border-radius:14px;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;overflow:hidden}.system-health-details div{border-right:1px solid var(--surface-border);gap:.4rem;padding:1.1rem 1.25rem;display:grid}.system-health-details div:last-child{border-right:0}.system-health-details span{color:var(--text-color-secondary);font-size:.8rem}@media (max-width:900px){.system-health-details{grid-template-columns:repeat(2,minmax(0,1fr))}.system-health-details div:nth-child(2){border-right:0}}@media (max-width:600px){.system-health-grid,.system-health-details{grid-template-columns:1fr}.system-health-details div{border-right:0;border-bottom:1px solid var(--surface-border)}.system-health-details div:last-child{border-bottom:0}}.password-input{display:grid;position:relative}.password-input .password-input-field{width:100%;padding-right:2.9rem}.password-input .password-input-toggle{width:2.25rem;height:2.25rem;min-height:0;box-shadow:none;color:#7a94a8;cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;padding:0;display:inline-grid;position:absolute;top:50%;right:.35rem;transform:translateY(-50%)}.password-input .password-input-toggle:hover{color:#075e9a;background:#075e9a14}.password-input .password-input-toggle:focus-visible{outline-offset:1px;outline:2px solid #075e9a}
