.academic-page{color:#12203a;gap:24px;display:grid}.academic-page>.master-heading{color:#111d32;min-height:0;box-shadow:none;background:0 0;border:0;border-bottom:1px solid #e1e9f3;border-radius:0;justify-content:space-between;align-items:center;gap:24px;margin:0;padding:8px 0 30px;display:flex}.academic-page>.master-heading>div{max-width:680px}.academic-page>.master-heading .kicker{color:#008b80;letter-spacing:.035em;background:#f0fcf9;border:1px solid #a2e8de;border-radius:24px;padding:7px 12px;font-size:10px;display:inline-block}.academic-page>.master-heading h1{color:#111d32;letter-spacing:-1.5px;margin:18px 0 8px;font-size:clamp(30px,3vw,44px);line-height:1.2}.academic-page>.master-heading h1 em{color:#00998a;font-style:normal}.academic-page>.master-heading p{color:#637998;margin:0;font-size:14px;line-height:1.8}.academic-page>.master-heading>button{color:#fff;background:#0fb5a5;border:1px solid #0fb5a5;border-radius:12px;flex-shrink:0;min-height:48px;padding:15px 20px;font-size:13px;box-shadow:0 7px 20px #00b5a41a}.academic-page>.summary-grid{gap:16px;margin:0}.academic-page>.summary-grid .summary-card{min-height:150px;box-shadow:none;background:#fff;border:1px solid #e1eaf5;border-radius:18px;padding:24px}.academic-page>.summary-grid .summary-card:after{opacity:.3}.academic-page .summary-card-label{letter-spacing:.055em;color:#536b8a;font-size:10px}.academic-page .summary-card strong{color:#0f192d;margin:15px 0 7px;font-size:34px}.academic-page .summary-card small{color:#68809e;font-size:11px;line-height:1.5}.academic-tabs{border-bottom:1px solid #e0e9f4;gap:26px;display:flex;overflow-x:auto}.academic-tabs button{white-space:nowrap;color:#566d8e;background:0 0;border:0;border-bottom:2px solid #0000;padding:12px 0 14px;font-size:13px}.academic-tabs button[aria-current=page]{color:#008c80;border-bottom-color:#00a591;font-weight:700}.academic-page>.master-panel,.academic-page>.report-table-wrap{box-shadow:none;background:#fff;border:1px solid #e0e9f4;border-radius:18px;overflow:hidden}.academic-page .master-toolbar,.academic-report-toolbar{background:#fff;border-bottom:1px solid #e9eff6;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.academic-report-toolbar{border:1px solid #e0e9f4;border-radius:16px}.academic-page .master-toolbar .kicker{color:#526b8a;font-size:11px}.academic-page .toolbar-right{flex:1;justify-content:flex-end;align-items:center;gap:12px;display:flex}.academic-page .table-search{background:#f8fafd;border:1px solid #dce7f2;border-radius:10px;width:min(100%,400px);min-height:40px}.academic-page .table-search input{color:#243c5b;min-width:0;padding:10px 0;font-size:12px}.academic-page .table-search>span{color:#7892b2}.academic-page .toolbar-right select,.academic-report-toolbar select{color:#3b5474;background:#fff;border:1px solid #dce7f2;border-radius:10px;flex:none;width:190px;max-width:100%;min-height:40px;padding:10px 12px;font-size:12px}.academic-page .toolbar-right .table-search{flex:1;min-width:160px}.academic-page .data-table{border-collapse:collapse;width:100%;min-width:700px}.academic-page .data-table th{text-align:left;color:#526b8b;letter-spacing:.06em;white-space:normal;background:#f8fafd;border-bottom:1px solid #e7eef7;padding:18px 20px;font-size:10px;font-weight:600}.academic-page .data-table td{color:#314763;vertical-align:middle;border-bottom:1px solid #edf2f8;padding:22px 20px;font-size:12px}.academic-page .data-table td strong{color:#11203a;font-size:12px;font-weight:600;line-height:1.6}.academic-page .data-table td small{color:#738aa7;margin-top:4px;font-size:10px;line-height:1.5}.academic-page .data-table tr:hover td{background:#fbfdff}.academic-page .person-cell{gap:12px}.academic-page .person-cell>span{color:#008e80;background:#e2faf4;border:1px solid #a6ebe0;border-radius:11px;flex:0 0 36px;width:36px;height:36px;font-size:11px;font-weight:500}.academic-page tr:nth-child(3n+2) .person-cell>span{color:#5551bd;background:#efeeff;border-color:#d6d5ff}.academic-page tr:nth-child(3n) .person-cell>span{color:#a94577;background:#fff1f8;border-color:#f4cee3}.academic-page .table-badge{color:#546a87;white-space:nowrap;background:#f2f5fa;border:1px solid #e0e8f3;border-radius:20px;padding:5px 9px;font-size:10px;font-style:normal}.academic-page .table-badge.active,.academic-page .attendance-badge.attendance-present{color:#008e6c;background:#edfcf5;border-color:#bdeedc}.academic-page .attendance-badge.attendance-sick{color:#9b620e;background:#fff6dc;border-color:#f0d28c}.academic-page .attendance-badge.attendance-permit{color:#315fa8;background:#eef4ff;border-color:#c9d9f8}.academic-page .attendance-badge.attendance-absent{color:#c4384a;background:#fff0f2;border-color:#f4c5cd}.academic-page .row-actions,.academic-page .student-actions,.academic-page .status-actions{white-space:nowrap;justify-content:flex-start;gap:7px;padding-left:0}.academic-page .row-actions button,.academic-page .table-action button,.academic-page .manage-members-button,.academic-page .verify-actions button,.academic-page .report-delete{color:#294461;white-space:nowrap;background:#fff;border:1px solid #dce6f1;border-radius:8px;padding:8px 10px;font-size:11px;font-weight:500}.academic-page .row-actions .danger-action,.academic-page .report-delete{color:#ce3651;background:#fff3f5;border-color:#ffd3db}.academic-page .manage-members-button{color:#00877c;background:#edfcf8;border-color:#c7eee6}.academic-page .verify-actions{gap:7px;display:flex}.academic-page .verify-actions button:first-child{color:#00856e;background:#edfbf6;border-color:#bee9db}.academic-page .verify-actions button:disabled{cursor:wait;opacity:.55}.academic-page .courses-table{table-layout:auto}.academic-page .courses-table th{width:auto}.academic-page .courses-table .course-actions-cell{white-space:nowrap;width:auto;display:table-cell}.academic-page .course-actions-cell>.row-actions{margin-left:7px;display:inline-flex}.academic-page .class-members-cell .status-actions{gap:7px}.academic-page .number-column{width:60px}.academic-page .number-cell{color:#7385a0}.academic-pagination{color:#697e9d;background:#fbfcff;border-top:1px solid #e7eef7;justify-content:space-between;align-items:center;gap:18px;padding:18px 22px;font-size:11px;display:flex}.academic-pagination strong{color:#344b6c}.academic-pagination nav{align-items:center;gap:10px;display:flex}.academic-pagination button{color:#344d70;background:#fff;border:1px solid #dce6f2;border-radius:8px;padding:8px 10px;font-size:11px}.academic-pagination button:disabled{color:#9aa9bb;cursor:not-allowed;background:#f8fafc}.academic-pagination nav>span{color:#fff;background:#04978b;border-radius:8px;padding:8px 10px}.academic-note{color:#4c6f76;background:#f0fbf8;border:1px solid #aeece2;border-radius:15px;padding:18px 20px;font-size:12px;line-height:1.7}.academic-page>.report-table-wrap{overflow-x:auto}.academic-page .academic-pagination{min-width:0}.academic-page .data-modal{color:#18263a}@media (width<=900px){.academic-page>.master-heading,.academic-page .toolbar-right{flex-wrap:wrap}.academic-page>.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.academic-page{gap:18px}.academic-page>.master-heading{align-items:stretch;padding:8px 0 24px}.academic-page>.master-heading h1{font-size:29px}.academic-page>.master-heading>button{width:100%}.academic-page>.summary-grid .summary-card{min-height:138px;padding:18px}.academic-page .summary-card strong{font-size:28px}.academic-tabs{gap:22px}.academic-page .master-toolbar,.academic-report-toolbar{flex-direction:column;align-items:stretch;padding:16px}.academic-page .toolbar-right{flex-direction:column;align-items:stretch}.academic-page .table-search{width:100%}.academic-pagination{flex-direction:column;align-items:flex-start;padding:16px}.academic-page .academic-pagination nav{flex-wrap:wrap}.academic-page .summary-card-label{font-size:9px;line-height:1.5}.academic-note{font-size:11px}}.reset-pin-modal{box-sizing:border-box;color:#15253d;text-align:center;background:#fff;border:1px solid #e0e9f1;border-radius:24px;width:min(480px,100vw - 32px);max-height:90dvh;margin:auto;padding:32px;overflow:auto;box-shadow:0 24px 90px #091c3440}.reset-pin-modal::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a16288c}.reset-pin-icon{color:#008f7c;background:#e5f8f3;border-radius:20px;place-items:center;width:64px;height:64px;margin:0 auto 20px;font-size:32px;display:grid}.reset-pin-modal h2{margin:12px 0 20px;font-size:25px;line-height:1.3}.reset-pin-student{background:#f5f8fc;border:1px solid #e5edf5;border-radius:14px;gap:6px;padding:16px;display:grid}.reset-pin-student strong{overflow-wrap:anywhere;font-size:16px}.reset-pin-student span{color:#75869e;font-size:13px}.reset-pin-modal p{color:#667992;margin:20px 0;font-size:14px;line-height:1.7}.reset-pin-modal footer{gap:12px;margin-top:24px;display:flex}.reset-pin-modal footer button{border-radius:12px;flex:1;padding:14px 12px;font-size:16px}.reset-pin-modal button:disabled{opacity:.55;cursor:wait}.reset-pin-result{background:#ecfaf6;border:1px dashed #77cdb9;border-radius:14px;gap:10px;padding:20px;display:grid}.reset-pin-result span{color:#318777;letter-spacing:1.5px;font-size:11px}.reset-pin-result strong{letter-spacing:8px;font-variant-numeric:tabular-nums;color:#006d61;font-size:32px}.academic-page .table-badge.verification-green{color:#006f67;background:#d5faf2;border-color:#a7ede0}.academic-reports>.panel>.panel-header{padding:20px 24px 14px}.meeting-management .master-toolbar{border-bottom:1px solid #e9eff6}.meeting-management .data-table th,.meeting-management .data-table td{white-space:nowrap}.academic-reports .report-table-wrap,.academic-reports .meeting-management .report-table-wrap{min-height:0}.academic-reports .empty-table,.academic-reports .meeting-management>.report-table-wrap{min-height:180px}.academic-reports .meeting-management .toolbar-right{flex:1;justify-content:flex-end}.academic-reports .meeting-management .toolbar-right .table-search,.academic-reports .academic-report-toolbar .table-search{flex:0 400px;width:min(400px,100%);min-height:40px;margin:0}.academic-reports .meeting-management .toolbar-right .table-search input,.academic-reports .academic-report-toolbar .table-search input{height:39px;font-size:12px}@media (width<=700px){.academic-reports .meeting-management .toolbar-right .table-search,.academic-reports .academic-report-toolbar .table-search{flex-basis:100%;width:100%}}.academic-reports>.panel>.panel-header h2{margin:0;font-size:22px;line-height:1.25}.academic-reports>.panel>.panel-header p{color:#637998;margin:7px 0 0;font-size:12px;line-height:1.5}.academic-reports>.panel .table-search{width:min(100%,420px);margin:0 24px 16px;display:block}.academic-reports>.panel .table-search input{width:100%;min-height:42px;padding:0 14px;font-size:13px}.academic-reports>.panel .data-table{min-width:0}.academic-reports>.panel .data-table th{padding:13px 16px}.academic-reports>.panel .data-table td{padding:14px 16px}.academic-page .table-action .detail-action,.academic-page .row-actions .edit-action{color:#294461;background:#fff;border-color:#dce6f1}.academic-page .table-action .detail-action{color:#007b72}.academic-page .table-action .warning-action{color:#9b620e;background:#fff4d6;border-color:#f0d28c}.academic-page .row-actions .danger-action{color:#fff;background:#cf3b42;border-color:#cf3b42}.academic-page .row-actions .danger-action:hover{background:#b92e36;border-color:#b92e36}.student-detail-modal{width:min(460px,100vw - 32px)}.student-detail-content{justify-items:center;gap:16px;padding:4px 0 2px;display:grid}.student-detail-photo{color:#008e80;background:#e2faf4;border:1px solid #a6ebe0;border-radius:30px;place-items:center;width:104px;height:104px;font-size:28px;font-weight:700;display:grid;overflow:hidden}.student-detail-photo img{object-fit:cover;width:100%;height:100%}.student-detail-name{text-align:center;gap:4px;display:grid}.student-detail-name strong{color:#15253d;font-size:18px}.student-detail-name span{color:#7185a1;font-size:12px}.student-detail-content dl{border:1px solid #e4ecf5;border-radius:14px;width:100%;margin:4px 0 0;overflow:hidden}.student-detail-content dl>div{border-bottom:1px solid #e9eff6;grid-template-columns:108px 1fr;gap:12px;padding:13px 15px;display:grid}.student-detail-content dl>div:last-child{border-bottom:0}.student-detail-content dt{color:#7185a1;font-size:11px}.student-detail-content dd{color:#1b2b43;overflow-wrap:anywhere;margin:0;font-size:13px}.student-detail-content dd strong{color:#176c64;font-size:13px;display:block}.student-detail-content dd small{color:#7185a1;margin-top:4px;font-size:10px;line-height:1.45;display:block}.student-detail-reset{color:#ad6b0d;background:#fff9e9;border:1px solid #f3deaf;border-radius:9px;width:100%;padding:11px 14px;font-size:12px;font-weight:600}.report-student-cell{align-items:center;gap:10px;display:flex}.report-student-cell>span:last-child{display:block}.student-person-cell>strong,.report-student-cell>span:last-child>strong{text-transform:uppercase}.report-student-initials{color:#008e80;background:#e2faf4;border-radius:11px;flex:0 0 36px;place-items:center;width:36px;height:36px;font-size:11px;font-weight:600;display:grid}.academic-reports .closed-session-history{border:1px solid #dce6f2;border-radius:20px;overflow:hidden}.closed-session-history>header{border-bottom:1px solid #e7eef6;justify-content:space-between;align-items:center;padding:22px 26px;display:flex}.closed-session-history h2{color:#17263d;margin:5px 0 0;font-size:20px}.closed-session-history .kicker{color:#68859c;font-size:10px}.closed-session-history .active-count{color:#167d78;background:#eef7f7;border-radius:20px;padding:7px 12px;font-size:11px}.closed-session-history .active-session-list{display:grid}.closed-session-row{text-align:left;color:#182840;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #edf2f7;grid-template-columns:180px 1fr auto auto;align-items:center;gap:24px;width:100%;padding:20px 26px;display:grid}.closed-session-row:hover,.closed-session-row.selected{background:#f0fbf8}.closed-session-row.selected{box-shadow:inset 3px 0 #00a591}.closed-session-row .active-session-time,.closed-session-row .active-session-info,.closed-session-row .active-session-total{gap:4px;display:grid}.closed-session-row strong{font-size:13px}.closed-session-row small,.closed-session-row span{color:#7085a1;font-size:11px}.closed-session-row .active-session-total{text-align:center}.closed-session-row .active-session-total strong{font-size:20px}.closed-session-filter{background:#edfcf8;border:1px solid #c7eee6;border-radius:8px;padding:8px 10px;font-weight:600;color:#00877c!important}.academic-report-toolbar .meeting-filter-chip{color:#006f67;background:#d5faf2;border:1px solid #a7ede0;border-radius:9px;margin-right:auto;padding:8px 11px;font-size:11px;font-weight:600}@media (width<=700px){.closed-session-row{grid-template-columns:1fr auto;gap:12px;padding:17px}.closed-session-row .active-session-info{grid-column:1/-1}.closed-session-row .active-session-total{text-align:left}.academic-report-toolbar .meeting-filter-chip{width:100%;margin:0}}.closed-session-actions{align-items:center;gap:8px;display:flex}.report-student-initials{cursor:pointer;border:0}.report-student-initials:disabled{cursor:default;opacity:1}.profile-preview-modal{text-align:center;width:min(360px,100vw - 32px)}.profile-preview-modal>img{object-fit:cover;object-position:center;border-radius:18px;width:180px;height:180px;margin:4px auto 14px;display:block}.profile-preview-modal>strong,.profile-preview-modal>small{display:block}.member-add .sync-members-button{white-space:nowrap;color:#007e73;background:#eefbf8;border-color:#9cddd3}@media (width<=700px){.member-add .sync-members-button{width:100%}}.grade-letter-select{color:#425a78;background:#fbfdff;border:1px solid #d7e4f0;border-radius:8px;min-width:108px;min-height:35px;padding:0 8px;font-size:11px;font-weight:700}.grade-letter-select.grade-a{color:#007e70;background:#dff9f1;border-color:#a9eadc}.grade-letter-select.grade-b{color:#3567a9;background:#e8f2ff;border-color:#c7ddfa}.grade-letter-select.grade-c{color:#946109;background:#fff5d6;border-color:#f1db96}.grade-letter-select.grade-d{color:#b96510;background:#fff0e1;border-color:#f2cb9d}.grade-letter-select.grade-e{color:#bf3449;background:#fff0f2;border-color:#f1c4cc}.progress-grades-page{gap:20px}.progress-selector{align-items:end;gap:22px;padding:22px 24px;display:flex}.progress-selector label{color:#405774;gap:8px;min-width:min(100%,380px);font-size:12px;font-weight:700;display:grid}.progress-selector select{color:#1b2b43;background:#f8fafd;border:1px solid #dce7f2;border-radius:10px;min-height:45px;padding:0 13px;font-size:14px}.progress-class-info{gap:5px;padding-bottom:5px;display:grid}.progress-class-info strong{color:#13233d;font-size:15px}.progress-class-info span{color:#7185a1;font-size:12px}.progress-weight-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.progress-weight-grid article{background:#fff;border:1px solid #e0eaf4;border-radius:16px;gap:7px;padding:18px 20px;display:grid}.progress-weight-grid span{color:#617b99;text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:700}.progress-weight-grid strong{color:#008e80;font-size:28px;line-height:1}.progress-weight-grid small{color:#8091a9;font-size:11px}.progress-table-wrap{overflow:hidden}.progress-table-scroll{overflow:auto}.progress-table{min-width:1100px}.progress-table th,.progress-table td{white-space:nowrap}.progress-table th small{color:#8aa0bb;margin-top:3px;font-size:9px;display:block}.progress-table .person-cell{align-items:center;gap:10px;min-width:205px;display:flex}.progress-table .person-cell>span{color:#008e80;background:#e2faf4;border:1px solid #a6ebe0;border-radius:10px;flex:0 0 34px;place-items:center;width:34px;height:34px;font-size:10px;font-weight:700;display:grid}.progress-table .person-cell>div{gap:1px;display:grid}.progress-table .person-cell strong{text-transform:uppercase}.attendance-recap{align-items:center;gap:5px;min-width:150px;display:flex}.attendance-recap b{border-radius:7px;padding:4px 6px;font-size:10px}.attendance-recap .present{color:#008e6c;background:#edfcf5}.attendance-recap .sick{color:#9b620e;background:#fff6dc}.attendance-recap .permit{color:#315fa8;background:#eef4ff}.attendance-recap .absent{color:#c4384a;background:#fff0f2}.attendance-recap small{color:#7185a1;margin-left:2px;font-size:10px}.attendance-score,.final-score{color:#0e766d}.progress-score-input{color:#142642;background:#fbfdff;border:1px solid #d7e4f0;border-radius:8px;width:74px;min-height:36px;padding:0 9px;font-size:12px}.progress-score-input:focus{border-color:#04978b;outline:2px solid #9fe7de}.grade-letter{border-radius:9px;place-items:center;width:31px;height:31px;font-size:14px;font-weight:800;display:grid}.grade-a{color:#007e70;background:#dff9f1}.grade-b{color:#3567a9;background:#e8f2ff}.grade-c{color:#946109;background:#fff5d6}.grade-d{color:#b96510;background:#fff0e1}.grade-e{color:#bf3449;background:#fff0f2}.grade-pending{color:#8393a9;font-size:10px}.progress-footer{color:#667e9c;background:#fbfcff;border-top:1px solid #e9eff6;padding:16px 20px;font-size:11px;line-height:1.65}.progress-table-wrap .master-toolbar .primary-button{min-height:40px;padding:10px 15px;font-size:12px}.progress-table-wrap .master-toolbar .primary-button:disabled{opacity:.6;cursor:wait}@media (width<=900px){.progress-weight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-selector{flex-direction:column;align-items:stretch}}@media (width<=700px){.progress-selector{padding:18px}.progress-selector label{min-width:0}.progress-weight-grid{gap:10px}.progress-weight-grid article{padding:15px}.progress-weight-grid strong{font-size:24px}}.session-builder.form-layout{color:#14233b;grid-template-columns:minmax(240px,.85fr) minmax(0,1.8fr);align-items:start;gap:28px;display:grid}.builder-heading{border-bottom:1px solid #e1e9f3;grid-column:1/-1;justify-content:space-between;align-items:center;gap:24px;padding:8px 0 30px;display:flex}.builder-heading>div:first-child{max-width:680px}.builder-heading .kicker{color:#008b80;letter-spacing:.035em;background:#f0fcf9;border:1px solid #a2e8de;border-radius:24px;padding:7px 12px;font-size:10px;display:inline-block}.builder-heading h1{color:#111d32;letter-spacing:-1.5px;margin:18px 0 8px;font-size:clamp(30px,3vw,44px);line-height:1.2}.builder-heading h1 em{color:#00998a;font-style:normal}.builder-heading p{color:#637998;margin:0;font-size:14px;line-height:1.8}.builder-step{text-align:right;background:#fff;border:1px solid #e0e9f3;border-radius:14px;flex-shrink:0;gap:6px;padding:14px 18px;display:grid}.builder-step small{color:#7b90a9;font-size:10px}.builder-step strong{color:#007c74;font-size:11px}.builder-summary{gap:18px;min-width:0;display:grid}.builder-summary>h2{letter-spacing:.05em;color:#768da9;margin:0;font-size:11px}.builder-summary article{background:#fff;border:1px solid #dee8f2;border-radius:20px;padding:25px 22px;position:relative;overflow:hidden;box-shadow:0 2px 4px #19344b04}.builder-summary article:after{content:"";pointer-events:none;background:#eefbf7;border-radius:50%;width:100px;height:100px;position:absolute;bottom:-30px;right:-36px}.builder-summary article>span{color:#7b90a9;letter-spacing:.05em;font-size:10px;font-weight:700}.builder-summary h3{color:#12223b;margin:22px 0 9px;font-size:24px;line-height:1.25}.builder-summary p{color:#526883;overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.6}.builder-summary footer{z-index:1;color:#7890a9;overflow-wrap:anywhere;border-top:1px solid #edf2f7;margin-top:20px;padding-top:14px;font-size:11px;line-height:1.6;position:relative}.builder-summary .builder-duration h3{color:#c3790a}.builder-duration:after{background:#fff9e9!important}.builder-help{color:#21665f;background:#eef9f7;border:1px solid #ade8de;border-radius:17px;padding:20px}.builder-help strong{font-size:12px}.builder-help p{color:#4b7a74;margin-top:9px;font-size:12px}.session-builder>.session-form{min-width:0;box-shadow:none;background:#fff;border:1px solid #dce6f2;border-radius:24px;padding:0;overflow:hidden}.session-builder .step-heading{background:#fbfcff;border-bottom:1px solid #e2eaf4;align-items:center;gap:16px;margin:0;padding:26px 28px;display:flex}.session-builder .step-heading>span{color:#fff;background:#03978c;border-radius:13px;flex:0 0 42px;width:42px;height:44px;font-size:16px;box-shadow:0 3px 6px #008c8022}.session-builder .step-heading h2{color:#11223b;letter-spacing:-.4px;margin:0 0 6px;font-size:19px}.session-builder .step-heading p{color:#6f83a0;margin:0;font-size:12px;line-height:1.6}.session-builder .field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 20px;padding:28px}.session-builder .field-grid>label{gap:10px;min-width:0}.session-builder .field-grid>label>span,.builder-modes legend{text-transform:uppercase;letter-spacing:.055em;color:#294466;font-size:11px;font-weight:600}.session-builder .field-grid input,.session-builder .field-grid select,.session-builder .field-grid textarea{color:#172740;background:#f8fafd;border:1px solid #dce6f2;border-radius:12px;width:100%;min-width:0;padding:14px 13px;font-size:14px;line-height:1.4;box-shadow:0 2px 3px #0a233b04}.session-builder .field-grid textarea{resize:vertical}.session-builder .field-grid .topic-material-preview{overflow-wrap:anywhere;background:#effaf7;border:1px solid #c5e8df;border-radius:12px;padding:15px}.session-builder .topic-material-preview strong{font-size:13px}.builder-modes{border:0;min-width:0;margin:0;padding:0}.builder-modes legend{margin-bottom:10px}.builder-modes>div{flex-wrap:wrap;gap:8px;display:flex}.builder-modes label{cursor:pointer;background:#f8fafd;border:1px solid #dce6f2;border-radius:13px;flex:1;align-items:center;gap:7px;min-width:80px;padding:14px 10px;display:flex}.builder-modes label.selected{color:#00756a;background:#effcf8;border-color:#039c8d}.session-builder .builder-modes input{width:14px;height:14px;box-shadow:none;accent-color:#00988c;flex:none;padding:0}.builder-modes span{font-size:12px;line-height:1.5}.session-builder .form-footer{background:#fbfcff;border-top:1px solid #e6eef5;gap:16px;margin:0;padding:22px 28px}.session-builder .form-footer p{color:#6c809b;font-size:11px;line-height:1.6}.session-builder .form-footer .primary-button{color:#fff;white-space:nowrap;background:#009e8e;border-radius:12px;padding:15px 18px;font-size:13px;box-shadow:0 4px 12px #008b8020}.session-builder>.session-form>.form-error,.session-builder>.session-form>.success-message{margin:18px 28px 0}.session-builder>.active-sessions{box-shadow:none;border:1px solid #dce6f2;border-radius:20px;grid-column:1/-1}.session-builder .active-sessions>header{padding:22px 26px}.session-builder .active-sessions h2{color:#17263d;font-size:20px}.session-builder .active-sessions .kicker{color:#68859c;font-size:10px}.session-builder .active-empty{padding:32px}.session-builder .active-empty p{font-size:13px}.session-builder .closed-sessions{display:none}@media (width<=1150px){.builder-heading{flex-wrap:wrap}.builder-step{text-align:left}.session-builder.form-layout{grid-template-columns:minmax(200px,.75fr) minmax(0,1.5fr);gap:20px}.session-builder .form-footer{flex-direction:column;align-items:stretch}.builder-modes{grid-column:1/-1}}@media (width<=760px){.session-builder.form-layout{grid-template-columns:1fr;gap:20px}.builder-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.builder-summary>h2,.builder-help{grid-column:1/-1}.builder-summary article{padding:19px 16px}.builder-summary .builder-duration{grid-column:1/-1}.builder-summary h3{margin-top:16px;font-size:22px}.builder-heading{padding-bottom:22px}.builder-heading h1{font-size:34px}.builder-heading p{font-size:13px}.session-builder .step-heading{padding:22px 20px}.session-builder .field-grid{grid-template-columns:1fr;gap:22px;padding:22px 20px}.session-builder .form-footer{padding:20px}.builder-modes{grid-column:auto}.session-builder .step-heading h2{font-size:17px}.session-builder .active-sessions>header{padding:20px}}.session-builder .active-session-actions>button{white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;min-width:112px;min-height:44px;padding:0 16px;font-size:13px;font-weight:700;line-height:1.2;display:inline-flex}@media (width<=760px){.session-builder .active-session-actions{flex-wrap:wrap;align-items:stretch;display:flex}.session-builder .active-session-actions>button{flex:112px;width:auto}}.manual-attendance{max-width:1200px;margin:0 auto}.manual-attendance .builder-heading{margin-bottom:24px}.manual-fields{border:0;gap:24px;min-width:0;margin:0;padding:0;display:grid}.manual-attendance .session-form,.manual-roster{padding:28px}.manual-attendance .session-form .field-grid{padding:28px 0 0}.meeting-number-hint{color:#8190a3;margin-top:8px;font-size:11px;font-weight:400;line-height:1.5;display:block}.manual-toolbar{justify-content:space-between;align-items:end;gap:20px;margin:22px 0 16px;display:flex}.manual-toolbar label{flex:1;gap:8px;max-width:420px;display:grid}.manual-toolbar input{border:1px solid #d5dfdd;border-radius:10px;min-width:0;padding:12px}.manual-toolbar strong{color:#34776b;padding-bottom:12px;font-size:14px}.manual-counts{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.manual-counts>span{background:#f0f5f3;border-radius:8px;padding:8px 12px;font-size:13px}.manual-table-scroll{overflow-x:auto}.manual-student-table{min-width:760px}.manual-student-table th:first-child,.manual-student-table td:first-child{width:64px}.manual-student-table th:nth-child(2){width:42%}.manual-student-table th:nth-child(3){width:22%}.manual-student-table td{padding-block:20px}.manual-number-cell{color:#314763;font-size:14px;font-weight:700}.manual-person-cell{align-items:center;gap:14px;display:flex}.manual-person-cell>span{color:#008e80;background:#e2faf4;border:1px solid #a6ebe0;border-radius:12px;flex:0 0 42px;place-items:center;width:42px;height:42px;font-size:12px;font-weight:600;display:grid}.manual-student-table tr:nth-child(3n+2) .manual-person-cell>span{color:#5551bd;background:#efeeff;border-color:#d6d5ff}.manual-student-table tr:nth-child(3n) .manual-person-cell>span{color:#a94577;background:#fff1f8;border-color:#f4cee3}.manual-person-cell>strong,.manual-student-number{color:#172740;font-size:15px;font-weight:700;line-height:1.5}.manual-statuses{gap:8px;display:flex}.manual-statuses label{cursor:pointer;position:relative}.manual-statuses input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute}.manual-statuses span{color:#52655c;background:#fff;border:1px solid #cad8d3;border-radius:9px;place-items:center;width:42px;height:40px;font-weight:700;display:grid}.manual-statuses .selected span{color:#fff;background:#176951;border-color:#176951}.manual-statuses .selected.manual-status-sick span{background:#a66014;border-color:#a66014}.manual-statuses .selected.manual-status-permit span{background:#356c9c;border-color:#356c9c}.manual-statuses .selected.manual-status-absent span{background:#a33e40;border-color:#a33e40}.manual-statuses input:focus-visible+span{outline-offset:3px;outline:3px solid #43a997}.manual-fields:disabled .manual-statuses label{cursor:default}.manual-attendance .form-footer{margin-top:20px}.manual-attendance .form-error,.manual-attendance .success-message{margin-bottom:20px}@media (width<=600px){.manual-attendance .session-form,.manual-roster{padding:16px}.manual-toolbar{flex-direction:column;align-items:stretch;gap:10px}.manual-toolbar label{max-width:none}.manual-statuses{gap:4px}.manual-statuses span{width:36px;height:40px}}.projector-stage{z-index:1000;color:#101b30;background-color:#f7fafc;background-image:linear-gradient(#e7edf5 1px,#0000 1px),linear-gradient(90deg,#e7edf5 1px,#0000 1px);background-size:40px 40px;position:fixed;inset:0;overflow:auto}.projector-header{background:#fff;border-bottom:1px solid #dfe7f0;align-items:center;gap:24px;padding:20px 30px;display:flex}.projector-header strong{font-size:25px}.projector-header strong span{color:#009b8c}.projector-header small{color:#7489a6;margin-top:5px;font-size:12px;display:block}.projector-course{border-left:1px solid #dfe7f0;flex:1;padding-left:24px}.projector-status{color:#007d57;background:#effcf5;border:1px solid #a0edc9;border-radius:30px;padding:10px 16px;font-size:12px}.projector-header button,.projector-link button{color:#314a69;cursor:pointer;background:#fff;border:1px solid #dce6f1;border-radius:10px;padding:10px 14px}.projector-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:70px;max-width:1360px;margin:auto;padding:70px 50px;display:grid}.projector-body h2{letter-spacing:-2px;color:#0b1324;margin:10px 0 22px;font-size:clamp(30px,3.5vw,55px)}.projector-qr{background:#fff;border:1px solid #dce6ef;border-radius:28px;padding:20px;box-shadow:0 15px 25px #172c4414}.projector-qr img{border-radius:15px;width:100%;height:auto;display:block}.projector-link{background:#fff;border:1px solid #dce6ef;border-radius:14px;align-items:center;gap:12px;margin-top:20px;padding:10px 14px;display:flex}.projector-link a{text-overflow:ellipsis;white-space:nowrap;color:#2b4866;flex:1;font-size:12px;overflow:hidden}.projector-panels{gap:24px;display:grid}.projector-panels article{background:linear-gradient(135deg,#fff 75%,#eefbf8);border:1px solid #dce6ef;border-radius:28px;padding:32px}.projector-clock{letter-spacing:-5px;font-variant-numeric:tabular-nums;font-size:clamp(64px,8vw,120px);font-weight:800;line-height:1.4}.projector-panels progress{accent-color:#09b6a3;width:100%;height:8px}.projector-panels p{color:#5b718e;margin:20px 0 0;font-size:15px;line-height:1.8}.projector-total{color:#607895;margin-top:16px;font-size:20px}.projector-total strong{color:#101b30;font-size:40px}.projector-panels small{color:#008c78;border-top:1px solid #e8eef5;margin-top:20px;padding-top:18px;display:block}.projector-panels>.danger-button{color:#fff;background:#e81849;border:0;border-radius:16px;padding:20px;font-size:18px}.projector-panels button:disabled{opacity:.5}@media (width<=850px){.projector-header{flex-wrap:wrap;gap:12px;padding:16px}.projector-status{text-align:center;order:4;width:100%}.projector-course{padding-left:12px}.projector-body{grid-template-columns:1fr;gap:28px;max-width:620px;padding:30px 20px}.projector-panels article{padding:24px}.projector-body h2{letter-spacing:-1px}.projector-clock{font-size:80px}}.student-portal.presence-portal{color:#172942;background:#f7f9fc;flex-direction:column;gap:20px;width:min(100%,580px);min-height:100dvh;margin:0 auto;padding:28px 20px 40px;display:flex}.presence-portal>.presence-brand{justify-content:space-between;align-items:center;gap:12px;margin:0;display:flex}.presence-brand>div{min-width:0}.presence-brand .student-brand{gap:8px;width:auto;font-size:24px}.presence-brand .brand-mark{flex-shrink:0}.presence-brand small{color:#7890aa;letter-spacing:.05em;margin:5px 0 0;font-size:9px;display:block}.presence-class-chip{color:#00887d;white-space:nowrap;background:#effcf9;border:1px solid #c3eee5;border-radius:9px;padding:7px 10px;font-size:11px}.presence-portal>nav{background:#e9eef4;border:1px solid #e0e7ee;border-radius:18px;gap:4px;margin:0;padding:5px;display:flex}.presence-portal>nav button{color:#607793;box-shadow:none;background:0 0;border:0;border-radius:13px;flex:1;padding:11px 8px;font-size:13px;font-weight:600}.presence-portal>nav button.active{color:#007f75;background:#fff;box-shadow:0 2px 5px #16344906}.presence-course{color:#fff;background:radial-gradient(at 100% 100%,#0d303a,#0000 70%),linear-gradient(120deg,#111a2e,#10203a);border:1px solid #0b1930;border-radius:25px;padding:25px;position:relative;overflow:hidden;box-shadow:0 14px 22px -18px #112e48}.presence-course:after{content:"";pointer-events:none;border:1px solid #1b657138;border-radius:50%;width:140px;height:140px;position:absolute;top:-30px;right:-35px}.presence-state{color:#6de8c9;background:#0c4648;border:1px solid #147d72;border-radius:25px;margin-bottom:22px;padding:7px 11px;font-size:11px;font-weight:700;display:inline-block}.presence-course>small{color:#37d3c6;letter-spacing:.05em;font-size:10px;font-weight:700;display:block}.presence-course h1{color:#fff;letter-spacing:-.7px;overflow-wrap:anywhere;margin:10px 0 9px;font-size:26px;line-height:1.25}.presence-course p{color:#cfdeec;margin:0;font-size:13px;line-height:1.6}.presence-course p strong{color:#fff}.presence-course footer{color:#b6d5df;overflow-wrap:anywhere;border-top:1px solid #ffffff20;flex-wrap:wrap;gap:12px;margin-top:18px;padding-top:16px;font-size:12px;line-height:1.6;display:flex}.presence-identity{background:#fff;border:1px solid #dfe8f2;border-radius:18px;align-items:center;gap:12px;padding:16px;display:flex;box-shadow:0 2px 4px #19304d04}.presence-initials{color:#006f67;background:#d5faf2;border:1px solid #a7ede0;border-radius:16px;flex:0 0 46px;place-items:center;height:46px;font-size:14px;font-weight:700;display:grid}.presence-identity>div{flex:1;min-width:0}.presence-identity strong{color:#172840;font-size:14px;line-height:1.5;display:block}.presence-identity small{color:#6c829e;margin-top:4px;font-size:12px;display:block}.presence-portal>.success-message,.presence-portal>.form-error{z-index:100;text-align:center;border-radius:20px;width:min(360px,100vw - 40px);margin:0;padding:26px 24px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 24px 70px #10213c45}.presence-portal>.success-message{color:#08735f;background:#edfcf5;border:1px solid #a7ede0}.presence-portal>.form-error{color:#aa2840;background:#fff5f5;border:1px solid #ffc9cf}.presence-portal>.success-message:before,.presence-portal>.form-error:before{border-radius:50%;width:46px;height:46px;margin:0 auto 13px;font-size:23px;line-height:46px;display:block}.presence-portal>.success-message:before{content:"✓";background:#d5f6e9}.presence-portal>.form-error:before{content:"!";background:#ffe1e5}.presence-portal>.success-message:after,.presence-portal>.form-error:after{content:"Ketuk di mana saja untuk melanjutkan";opacity:.7;margin-top:10px;font-size:11px;display:block}.presence-portal>.success-message,.presence-portal>.form-error{z-index:1000;color:#1d123d;text-align:left;cursor:pointer;background:#fff;border:0;border-radius:22px;width:min(440px,100vw - 48px);padding:36px 34px 32px;font-size:14px;font-weight:400;line-height:1.55;animation:.2s ease-out mobile-dialog-in;box-shadow:0 24px 70px #10102455,0 0 0 100vmax #120e286b}.presence-portal>.success-message:before,.presence-portal>.form-error:before{text-align:left;letter-spacing:.12em;background:0 0;border-radius:0;width:auto;height:auto;margin:0 0 10px;font-size:11px;font-weight:800;line-height:1.2;display:block}.presence-portal>.success-message:before{content:"BERHASIL";color:#087962}.presence-portal>.form-error:before{content:"TERJADI KESALAHAN";color:#c73d49}.presence-portal>.success-message:after,.presence-portal>.form-error:after{content:"Tutup";color:#fff;text-align:center;letter-spacing:0;opacity:1;background:#0a8d83;border-radius:10px;margin-top:24px;padding:13px 16px;font-size:14px;font-weight:700;display:block}.presence-portal>.form-error:after{background:#ce3d48}.presence-portal>.success-message,.presence-portal>.form-error{color:#1d123d}@keyframes mobile-dialog-in{0%{opacity:0;transform:translate(-50%,-46%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.presence-portal>.success-message,.presence-portal>.form-error{padding:28px 30px 26px}.presence-portal>.success-message:before,.presence-portal>.form-error:before{letter-spacing:.1em;margin-bottom:12px;font-size:18px}.presence-portal>.success-message:after,.presence-portal>.form-error:after{color:#1d123d;background:#fff;border:1px solid #d7e2ec;margin-top:20px;padding:12px 16px}.presence-portal>.success-message:after{color:#087962}.presence-portal>.form-error:after{color:#bd3443}.presence-portal>.portal-card{background:#fff;border:1px solid #dfe8f2;border-radius:22px;margin:0;padding:22px;box-shadow:0 2px 5px #20385505}.presence-section-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.presence-section-heading h2,.presence-section-heading label{color:#1a2d46;margin:0;font-size:14px;font-weight:600}.presence-section-heading>span{color:#748ba7;text-align:right;font-size:10px}.presence-form{gap:20px;display:grid}.presence-form .attendance-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0;display:grid}.presence-form .attendance-options button{color:#536c89;background:#f8fafd;border:1px solid #e0e8f2;border-radius:13px;justify-content:center;align-items:center;gap:7px;padding:13px 8px;font-size:13px;display:flex}.presence-form .attendance-options button.selected{color:#007f73;background:#edfdf7;border-color:#059e8d}.presence-form .attendance-options i{background:0 0;width:auto;height:auto;margin:0;font-size:15px;font-style:normal}.presence-form .attendance-options span{font-size:13px}.presence-signature{background:#f8fbfd;border:1px solid #d5e7ee;border-radius:18px;min-width:0;padding:18px}.presence-signature .presence-section-heading{margin-bottom:6px}.presence-signature>p{color:#7488a0;margin:0 0 14px;font-size:12px;line-height:1.6}.presence-signature .signature-pad{aspect-ratio:auto;touch-action:none;background:#fff;border:1px dashed #72cabc;border-radius:13px;width:100%;height:320px;margin:0;display:block}.presence-signature .text-button{color:#28766e;background:#fff;border:1px solid #d8e6ee;border-radius:9px;margin:12px 0 0 auto;padding:8px 12px;font-size:12px;display:block}.presence-form>label{color:#24425d;gap:9px;font-size:13px;display:grid}.presence-form textarea,.presence-portal .leader-report textarea,.presence-portal .leader-report select{color:#1a2d47;background:#f8fafd;border:1px solid #dbe6f2;border-radius:12px;width:100%;padding:14px;font-size:14px}.presence-form .upload-box{background:#f7fafc;border:1px dashed #c5dce3;border-radius:15px;flex-direction:column;align-items:stretch;gap:10px;padding:16px;display:flex}.presence-form .upload-box strong{font-size:12px}.presence-form input[type=file]{width:100%;font-size:12px}.presence-portal .primary-button{color:#fff;background:linear-gradient(110deg,#07968b,#10b5a4);border:0;border-radius:14px;justify-content:center;align-items:center;gap:16px;margin:0;padding:17px;font-size:15px;font-weight:700;display:flex;box-shadow:0 8px 16px #009b8522}.presence-portal button:disabled{opacity:.55;cursor:not-allowed}.presence-portal .attendance-saved{background:#edfaf4;border-radius:17px;padding:24px 18px}.presence-portal .attendance-saved strong{font-size:18px}.presence-portal .attendance-saved p{font-size:14px}.presence-portal .leader-report{gap:16px;margin-top:24px;display:grid}.presence-portal .leader-report h2{margin:0;font-size:19px}.presence-portal .leader-report p{color:#68809b;margin:0;font-size:13px}.presence-portal .portal-card>h2{font-size:22px}.presence-portal .history-item strong{font-size:13px}.presence-portal .history-item span,.presence-portal .history-item b{font-size:12px}.presence-info{background:#eff5fa;border:1px solid #dce7f2;border-radius:18px;gap:12px;padding:18px;display:flex}.presence-info>span{color:#008f80;font-size:20px}.presence-info p{color:#627993;margin:0;font-size:12px;line-height:1.7}.presence-info strong{color:#2d435e}.presence-support{color:#7186a0;text-align:center;margin:0;font-size:12px;line-height:1.6}.presence-portal .material-link{overflow-wrap:anywhere;font-size:12px}@media (width<=380px){.student-portal.presence-portal{gap:16px;padding:22px 14px 32px}.presence-portal>.portal-card{padding:18px}.presence-course{padding:22px}.presence-course h1{font-size:23px}.presence-identity{gap:9px;padding:13px}.presence-identity .presence-class-chip{display:none}.presence-brand .student-brand{font-size:21px}.presence-section-heading{flex-wrap:wrap}.presence-signature{padding:12px}.presence-signature .signature-pad{height:270px}}.student-portal.presence-portal>.presence-brand{width:100%;max-width:none}.student-portal.presence-portal .presence-brand .brand-mark{grid-template-columns:repeat(3,1fr);gap:2px;width:32px;height:32px;margin:0;padding:5px;display:grid}.student-portal.presence-portal .presence-brand .brand-word{white-space:nowrap;color:#111d32;margin:0;font-size:24px;line-height:1.2;display:inline}.student-portal.presence-portal .presence-brand .brand-question{color:#00998a;font-size:inherit;margin:0;display:inline}.student-portal.presence-portal .presence-brand>div{text-align:left}.student-portal.presence-portal>nav{background:#e9eef4;width:100%;max-width:none;margin:0;display:flex}.student-portal.presence-portal>.presence-course{color:#111d32;box-shadow:none;background:0 0;border:0;border-bottom:1px solid #e1e9f3;border-radius:0;padding:8px 0 24px}.student-portal.presence-portal>.presence-course:after{display:none}.presence-portal .presence-state{color:#008b80;background:#f0fcf9;border-color:#a2e8de;margin-bottom:18px}.presence-portal .presence-course>small{color:#008b80}.presence-portal .presence-course h1{color:#00998a;margin:12px 0;font-size:30px;line-height:1.2}.presence-portal .presence-course p,.presence-portal .presence-course footer{color:#637998}.presence-portal .presence-course p strong{color:#111d32}.presence-portal .presence-course footer{border-color:#e1e9f3}.student-portal.presence-portal .attendance-options button{justify-content:center;align-items:center;gap:8px;min-width:0;min-height:68px;padding:14px 8px;display:flex}.student-portal.presence-portal .attendance-options .attendance-status-icon{aspect-ratio:1;flex:0 0 24px;width:24px;min-width:24px;height:24px;display:block;transform:none}.scan-login{color:#152841;background:#f7f9fc;min-height:100dvh;padding:38px 20px 50px}.scan-login-shell{gap:24px;max-width:580px;margin:auto;display:grid}.scan-login-brand{justify-content:space-between;align-items:center;gap:16px;display:flex}.scan-login-brand .brand{font-size:27px}.scan-login-brand p{color:#647b98;letter-spacing:.06em;margin:5px 0 0;font-size:10px}.scan-login-brand>span{white-space:nowrap;color:#34677a;background:#eaf0f7;border:1px solid #dbe5f0;border-radius:30px;padding:9px 12px;font-size:11px}.scan-course{color:#fff;background:radial-gradient(at 100% 100%,#102d37,#0000 70%),linear-gradient(120deg,#10182c,#111d38);border:1px solid #0d182f;border-radius:24px;padding:26px;box-shadow:0 14px 26px -17px #122a45}.scan-course-status{justify-content:space-between;align-items:center;gap:12px;margin-bottom:25px;display:flex}.scan-course-status>span{color:#ffe0a8;background:#51422c;border-radius:25px;padding:7px 12px;font-size:11px;font-weight:700}.scan-course-status>span.is-open{color:#69e8c5;background:#0c4445;border:1px solid #106f67}.scan-course-status>strong{font-variant-numeric:tabular-nums;white-space:nowrap;background:#ffffff0b;border:1px solid #ffffff24;border-radius:8px;padding:7px 10px;font-size:12px}.scan-course>small{color:#39d3c5;letter-spacing:.04em;font-size:11px;font-weight:600}.scan-course h1{color:#fff;letter-spacing:-1px;overflow-wrap:anywhere;margin:9px 0;font-size:32px;line-height:1.2}.scan-course>p{color:#d1dce9;margin:0;font-size:15px;line-height:1.6}.scan-course i{color:#24caba;margin:0 7px;font-size:8px;font-style:normal}.scan-course footer{color:#abc5d5;border-top:1px solid #fff2;flex-wrap:wrap;gap:10px;margin-top:22px;padding-top:18px;font-size:12px;line-height:1.6;display:flex}.scan-login-form{background:#fff;border:1px solid #e1e8f2;border-radius:24px;padding:30px;box-shadow:0 14px 35px -24px #12325340}.scan-login-form form{display:block}.scan-login-form label>span,.scan-pin-heading>label{color:#233c59;letter-spacing:.035em;font-size:12px;font-weight:600}.scan-login-form select{color:#142740;background:#f8fafd;border:1px solid #dce6f2;border-radius:14px;width:100%;min-width:0;margin-top:11px;padding:16px 13px;font-size:15px}.scan-pin-heading{justify-content:space-between;align-items:center;gap:10px;margin-top:28px;display:flex}.scan-pin-heading button,.scan-support button{color:#008f83;background:0 0;border:0;padding:0;font-size:12px}.scan-pin-input{background:#f8fafd;border:1px solid #dce6f2;border-radius:14px;margin-top:12px;display:flex;position:relative;overflow:hidden}.scan-pin-input input{letter-spacing:9px;color:#14233c;width:0;min-width:0;box-shadow:none;background:0 0;border:0;border-radius:14px;flex:1;padding:20px;font-size:20px}.scan-pin-input button{color:#527b8b;background:0 0;border:0;padding:12px;font-size:11px}.scan-pin-hint{color:#7288a4;margin:10px 0 0;font-size:12px;line-height:1.7}.scan-verify{color:#fff;background:#059b8e;border:0;border-radius:15px;justify-content:center;align-items:center;gap:18px;width:100%;margin-top:28px;padding:19px 16px;font-size:17px;font-weight:700;display:flex;box-shadow:0 9px 19px #008e8024}.scan-verify:disabled{opacity:.6;cursor:wait}.scan-verify span{font-size:24px}.scan-login-error{color:#b52e40;background:#fff3f4;border:1px solid #ffcbd2;border-radius:16px;gap:14px;margin-bottom:24px;padding:18px;display:flex}.scan-login-error>div{flex:1}.scan-login-error strong{font-size:14px}.scan-login-error p{margin:7px 0 0;font-size:13px;line-height:1.6}.scan-login-error button{color:#c94a60;background:0 0;border:0;align-self:flex-start;font-size:22px}.scan-security{background:#edf3f8;border:1px solid #dce6f1;border-radius:17px;align-items:flex-start;gap:14px;padding:20px;display:flex}.scan-security>span{color:#009789;font-size:20px}.scan-security p{color:#61778f;margin:0;font-size:12px;line-height:1.7}.scan-security strong{color:#29425d;font-weight:600}.scan-support{text-align:center;color:#6c829d;margin:0;font-size:12px}.scan-support button{text-decoration:underline}.scan-help{color:#347469;background:#effaf6;border-radius:12px;margin-top:14px;padding:14px;font-size:12px;line-height:1.6}.scan-closed{text-align:center;color:#5b728d;padding:15px 0;line-height:1.6}.scan-closed strong{color:#263f5c}@media (width<=420px){.scan-login{padding:24px 16px 35px}.scan-login-shell{gap:18px}.scan-login-brand .brand{font-size:23px}.scan-login-brand>span{padding:7px 9px;font-size:9px}.scan-login-brand p{font-size:8px}.scan-course{padding:22px 19px}.scan-course h1{font-size:28px}.scan-login-form{padding:24px 20px}.scan-course-status{gap:8px}.scan-course-status>span{padding:7px 9px;font-size:10px}.scan-course-status>strong,.scan-pin-heading>label{font-size:11px}}.dashboard-shell{color:#101c30;background:#f7f9fc}.dashboard-shell .sidebar{background:#0c1424}.dashboard-shell .sidebar:after{display:none}.dashboard-shell .sidebar nav button.active{color:#fff;background:linear-gradient(100deg,#099c91,#11736e)}.dashboard-shell .sidebar nav button.active span{color:#fff}.dashboard-shell .sidebar .nav-submenu button{padding:10px 12px;font-size:14px;line-height:1.5}.dashboard-shell .sidebar .nav-submenu button.active{color:#8ce7dc;box-shadow:none;background:#099c9129}.dashboard-shell .sidebar-bottom{background:#111c2e;border:1px solid #253044;border-radius:14px;padding:15px 8px}.dashboard-shell .topbar{background:#fff;border-color:#e5edf4}.dashboard-shell .main-content{max-width:1500px;padding:30px 32px 60px}.dashboard-redesign{--dash-teal:#008c80;color:#0d1729;gap:22px;display:grid}.dash-hero{color:#fff;background:radial-gradient(at 100%,#0b5049,#0000 65%),linear-gradient(115deg,#0e1628,#192c46);border:1px solid #102d38;border-radius:24px;justify-content:space-between;align-items:center;gap:24px;min-height:252px;padding:36px;display:flex;box-shadow:0 12px 22px -17px #12273f}.dash-hero>div:first-child{max-width:540px}.dash-eyebrow{color:#7eefe1;letter-spacing:.06em;background:#143944;border:1px solid #27626a;border-radius:30px;padding:6px 12px;font-size:10px;font-weight:700;display:inline-block}.dash-hero h1{color:#fff;letter-spacing:-1.5px;margin:18px 0 12px;font-size:clamp(28px,2.8vw,42px);line-height:1.15}.dash-hero h1 em{color:#53dfc5;font-style:normal}.dash-hero>div:first-child>p{color:#d1dce7;margin:0;font-size:14px;line-height:1.65}.dash-hero .data-modal{color:#18263a}.dash-hero-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;min-width:180px;display:flex}.dash-hero-actions>.secondary-button,.dash-primary{white-space:nowrap;border-radius:12px;min-height:46px;padding:12px 18px;font-size:13px;font-weight:700}.dash-hero-actions>.secondary-button{color:#fff;box-shadow:none;background:#ffffff14;border:1px solid #ffffff30}.dash-primary{color:#fff;background:#14c4ac;border:1px solid #14c4ac;box-shadow:0 6px 20px #00bca329}.dash-refresh{color:#667990;justify-content:space-between;margin-top:-10px;font-size:11px;display:flex}.dash-refresh button,.dash-text,.dash-panel footer button{color:#007e75;background:0 0;border:0;font-size:12px;font-weight:600}.dash-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;display:grid}.dash-stats article{background:#fff;border:1px solid #e2eaf3;border-radius:18px;min-height:184px;padding:24px 20px;position:relative}.dash-stats h2{color:#61758e;letter-spacing:.05em;margin:4px 30px 15px 0;font-size:10px;line-height:1.5}.dash-stats strong{letter-spacing:-.8px;font-size:32px;line-height:1.2;display:block}.dash-stats strong small{color:#637b96;letter-spacing:0;font-size:12px;font-weight:400}.dash-stats p{color:#667b92;margin:14px 0 8px;font-size:11px;line-height:1.5}.dash-stat-icon{color:#008e83;background:#effbf8;border-radius:11px;place-items:center;width:32px;height:34px;font-size:20px;display:grid;position:absolute;top:20px;right:16px}.dash-stat-icon.green{color:#008c5d;background:#edfdf5}.dash-stat-icon.amber{color:#b86b00;background:#fff8e7}.dash-stat-icon.blue{color:#5053bd;background:#f0f2ff}.dash-stat-warning>strong{color:#c37005}.dash-stats progress{accent-color:#0eb7a5;background:#f0f4f8;border:0;border-radius:10px;width:100%;height:7px;overflow:hidden}.dash-stats progress::-webkit-progress-bar{background:#f0f4f8}.dash-stats progress::-webkit-progress-value{background:#0eb7a5;border-radius:10px}.dash-tag{color:#007d62;background:#edfbf5;border-radius:5px;padding:4px 6px;font-size:10px;line-height:1.3;display:inline-block}.dash-tag.neutral{color:#526783;background:#f2f5fa}.dash-tag.sick{color:#b6243d;background:#fff0f1}.dash-tag.permit{color:#345aba;background:#eef3ff}.dash-columns{grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);align-items:start;gap:24px;display:grid}.dash-main-column,.dash-side-column{gap:24px;min-width:0;display:grid}.dash-panel,.dashboard-redesign .attendance-chart{box-shadow:none;background:#fff;border:1px solid #e2eaf3;border-radius:18px;overflow:hidden}.dash-panel>header{border-bottom:1px solid #eff3f8;justify-content:space-between;align-items:center;gap:14px;padding:24px 22px;display:flex}.dash-kicker{color:#008b7d;letter-spacing:.05em;font-size:10px;font-weight:700}.amber-text{color:#b86806}.dash-panel h2,.dashboard-redesign .attendance-chart h2{color:#111c2d;letter-spacing:-.3px;margin:7px 0 0;font-size:16px;line-height:1.4}.dash-panel header p{color:#6b7c91;margin:6px 0 0;font-size:11px}.dash-tabs{background:#f1f5fa;border-radius:10px;gap:2px;padding:4px;display:flex}.dash-tabs button{color:#586980;background:0 0;border:0;border-radius:7px;padding:7px 9px;font-size:11px}.dash-tabs button[aria-pressed=true]{color:#101c30;background:#fff;box-shadow:0 1px 5px #16304b0b}.dash-meeting{border-bottom:1px solid #eff3f8;align-items:center;gap:16px;padding:24px 22px;display:flex}.dash-meeting:last-child{border:0}.dash-meeting:nth-child(2n){background:#fcfdff}.dash-date{color:#00877b;background:#f1fcf9;border:1px solid #cceee8;border-radius:12px;flex:0 0 56px;place-items:center;gap:6px;padding:12px 4px;font-size:10px;display:grid}.dash-date strong{font-size:14px}.dash-meeting-info{flex:1;min-width:0}.dash-meeting h3{color:#0d1729;margin:0 0 8px;font-size:15px;line-height:1.45}.dash-meeting p{color:#667990;margin:8px 0 0;font-size:11px}.dash-status{color:#596d82;background:#f0f3f8;border-radius:20px;padding:4px 8px;font-size:10px;display:inline-block}.dash-status.active{color:#007a6b;background:#dff8f1}.dash-status.completed{color:#455972;background:#edf3f8}.dash-status.cancelled{color:#aa2841;background:#fff0f1}.dash-meeting-action{color:#526985;flex-shrink:0;justify-items:end;gap:10px;font-size:11px;display:grid}.dash-meeting-action button{color:#175968;background:#fff;border:1px solid #d8e4ec;border-radius:8px;padding:8px 10px;font-size:11px}.dash-panel footer{text-align:center;background:#fbfcfe;border-top:1px solid #edf2f7;padding:18px}.dash-count{color:#955300;background:#fff3ce;border-radius:50%;padding:7px 9px;font-size:11px}.dash-request{border-bottom:1px solid #edf2f7;padding:20px}.dash-request-head{align-items:center;gap:9px;display:flex}.dash-request-head>div{flex:1;min-width:0}.dash-person{color:#335ab0;background:#e9f2ff;border-radius:50%;flex:0 0 32px;place-items:center;height:32px;font-size:11px;display:grid}.dash-request h3{color:#18263a;margin:0;font-size:12px;line-height:1.5}.dash-request-head p{color:#637c99;overflow-wrap:anywhere;margin:3px 0;font-size:10px}.dash-request-note{overflow-wrap:anywhere;background:#f7f9fc;border:1px solid #edf2f8;border-radius:12px;margin:14px 0;padding:12px}.dash-request-note p{color:#53657b;margin:0 0 8px;font-size:12px;font-style:italic;line-height:1.55}.dash-request-note small{color:#007e76;font-size:10px}.dash-request-actions{justify-content:flex-end;gap:12px;display:flex}.dash-request-actions button{color:#c2314a;background:0 0;border:0;border-radius:7px;padding:7px 12px;font-size:12px}.dash-request-actions button:last-child{color:#fff;background:#008f82}.dash-request-actions button:disabled{opacity:.5;cursor:wait}.dash-empty{text-align:center;color:#62758d;justify-items:center;gap:15px;padding:38px 20px;font-size:13px;line-height:1.6;display:grid}.dash-check{color:#008a68;background:#e9f9f2;border-radius:50%;padding:10px 17px;font-size:24px}.dash-distribution>div{color:#526680;justify-content:space-between;padding:12px 22px;font-size:12px;display:flex}.dash-distribution>div:first-of-type{padding-top:22px}.dash-distribution>p{color:#6b7d90;margin:12px 22px 22px;font-size:11px;line-height:1.7}.dash-dot{background:#0ba48f;border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.dash-dot.sick{background:#eba438}.dash-dot.permit{background:#7378d7}.dashboard-redesign .attendance-chart{padding:22px}.dashboard-redesign .attendance-chart .panel-header{gap:12px;padding:0 0 14px}.dashboard-redesign .attendance-chart .panel-header p{font-size:11px}.dashboard-redesign .attendance-chart .panel-header>b{color:#007f76;white-space:nowrap;font-size:12px}.dashboard-redesign .attendance-chart .kicker{color:#69829e;font-size:10px}.dashboard-redesign .chart-scroll{min-width:0}.dashboard-redesign .chart-scroll svg{width:100%;min-width:0}@media (width>=1600px){.dash-hero-actions{flex-wrap:nowrap}}@media (width<=1150px){.dash-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-columns{grid-template-columns:minmax(0,1fr)}.dash-side-column{grid-template-columns:1.3fr 1fr;align-items:start}.dash-hero{padding:28px}.dash-panel>header{flex-wrap:wrap}}@media (width<=700px){.dashboard-shell .main-content{padding:18px 16px 125px}.dash-hero{border-radius:20px;flex-direction:column;align-items:stretch;gap:24px;padding:26px 22px}.dash-hero h1{font-size:32px}.dash-hero-actions{justify-content:stretch}.dash-hero-actions>button{flex:1}.dash-stats{gap:10px}.dash-stats article{padding:18px 14px}.dash-stats h2{margin-top:38px;margin-right:0;font-size:9px}.dash-stat-icon{top:14px;left:14px}.dash-stats strong{font-size:28px}.dash-stats strong small{font-size:10px}.dash-stats p{min-height:32px}.dash-stats .dash-tag{font-size:9px}.dash-columns,.dash-side-column{grid-template-columns:1fr}.dash-meeting{flex-wrap:wrap;gap:12px;padding:20px 16px}.dash-meeting-action{justify-content:space-between;align-items:center;width:100%;padding-left:68px;display:flex}.dash-panel>header,.dash-request{padding:20px 16px}.dash-eyebrow{font-size:8px}.dash-refresh{font-size:10px}.dashboard-redesign .attendance-chart{padding:18px 12px}}@media (prefers-reduced-motion:reduce){.dashboard-shell *{scroll-behavior:auto;transition:none}}:root{color:#1d1e20;font-synthesis:none;--teal:#2a8e9e;--teal-dark:#176d7a;--mist:#e9f3f4;--ink:#180d39;--charcoal:#1d1e20;--muted:#6e7280;--line:#dce6e8;--surface:#fff;--green:#16865a;--amber:#c47a16;--red:#c53b3b;font-feature-settings:"tnum" 1;background:#f7fafb;font-family:Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{background:#f7fafb;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,.upload-box:focus-visible{outline-offset:2px;outline:3px solid #2a8e9e40}.app-shell{grid-template-columns:252px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--ink);color:#fff;flex-direction:column;height:100vh;padding:32px 20px 22px;display:flex;position:sticky;top:0;overflow:hidden}.sidebar:after{content:"";border:44px solid #ffffff08;border-radius:50%;width:250px;height:250px;position:absolute;bottom:80px;right:-160px}.brand{z-index:1;color:inherit;letter-spacing:-.04em;align-items:center;gap:11px;font-size:23px;font-weight:700;display:flex;position:relative}.brand-logo.dark{color:var(--charcoal)}.brand-logo.light{color:#fff}.brand-word{white-space:nowrap}.brand-question{color:#58bdc8}.brand-mark{background:var(--teal);border-radius:9px;grid-template-columns:repeat(3,1fr);gap:2px;width:31px;height:31px;padding:5px;display:grid;position:relative;transform:rotate(-4deg)}.brand-mark i{background:#fff;border-radius:2px;align-self:end;display:block;transform:skewY(-22deg)}.brand-mark i:first-child{height:45%}.brand-mark i:nth-child(2){height:70%}.brand-mark i:nth-child(3){height:100%}.sidebar nav{z-index:1;gap:7px;margin-top:56px;display:grid;position:relative}.sidebar nav button{color:#fff9;text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:13px;width:100%;padding:13px 14px;transition:all .2s;display:flex}.sidebar nav button span{color:#7cbec7;text-align:center;width:24px;font-size:20px}.sidebar nav button:hover{color:#fff;background:#ffffff0f}.sidebar nav button.active{color:#fff;box-shadow:none;background:#2a8e9e2e;font-weight:700}.sidebar nav button.active span{color:#69c8d2}.nav-group{gap:4px;display:grid}.sidebar .nav-group>button.active{color:#fff;box-shadow:none;background:#2a8e9e2e}.sidebar .nav-group>button.active span{color:#69c8d2}.master-nav-chevron{color:#7cbec7;margin-left:auto;font-size:16px;line-height:1;transition:transform .2s}.nav-group.collapsed .master-nav-chevron{transform:rotate(-90deg)}.nav-submenu{border-left:1px solid #7cbec747;gap:2px;margin:2px 0 5px;padding-left:28px;display:grid}.sidebar .nav-submenu button{color:#ffffff7a;border-radius:8px;padding:8px 10px;font-size:11px;position:relative}.sidebar .nav-submenu button i{background:#7cbec773;border-radius:50%;flex:none;width:5px;height:5px}.sidebar .nav-submenu button:hover{color:#fff}.sidebar .nav-submenu button.active{color:#fff;box-shadow:none;background:#2a8e9e2e}.sidebar .nav-submenu button.active i{background:#69c8d2;box-shadow:0 0 0 3px #69c8d21f}.sidebar-bottom{z-index:1;border-top:1px solid #ffffff1a;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;margin-top:auto;padding-top:22px;display:grid;position:relative}.avatar,.mini-avatar{color:var(--ink);background:#dcecee;border-radius:50%;place-items:center;font-weight:800;display:grid}.avatar{width:42px;height:42px}.mini-avatar{width:38px;height:38px;font-size:12px}.sidebar-bottom strong,.sidebar-bottom span{display:block}.sidebar-bottom strong{font-size:12px}.sidebar-bottom span{color:#ffffff7a;margin-top:3px;font-size:11px}.sidebar-bottom button{color:#fff;background:0 0;border:0}.main-shell{min-width:0}.topbar{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;border-bottom:1px solid #e9eff0;justify-content:space-between;align-items:center;height:82px;padding:0 42px;display:flex;position:relative}.mobile-brand{color:var(--ink);background:0 0;border:0;display:none}.search{color:#9a9da6;background:#fff;border:1px solid #e2e9ea;border-radius:12px;align-items:center;gap:10px;width:min(520px,55vw);padding:0 13px;font-size:13px;display:flex;position:relative}.search>span{flex:none}.search input{height:44px;box-shadow:none;background:0 0;border:0;flex:1;padding:0;font-size:13px}.search input:focus{box-shadow:none;border:0}.search kbd{color:#8b8f98;background:#f7f9f9;border:1px solid #dfe5e6;border-radius:6px;padding:4px 7px;font:11px inherit}.search-results{background:#fff;border:1px solid #dfe7e8;border-radius:14px;padding:7px;position:absolute;top:calc(100% + 9px);left:0;right:0;overflow:hidden;box-shadow:0 18px 45px #180d3929}.search-results button{text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:auto 1fr;align-items:center;gap:11px;width:100%;padding:10px;display:grid}.search-results button:hover{background:#f2f8f8}.search-result-icon{background:var(--mist);width:34px;height:34px;color:var(--teal-dark);border-radius:9px;place-items:center;font-size:10px;font-weight:800;display:grid}.search-results strong,.search-results small{display:block}.search-results strong{color:var(--ink);font-size:11px}.search-results small{color:#8c929a;margin-top:3px;font-size:9px}.search-state{color:#8c929a;text-align:center;padding:18px;font-size:11px}.top-actions{align-items:center;display:flex}.account-control{position:relative}.account-trigger{color:var(--ink);text-align:left;background:0 0;border:1px solid #0000;border-radius:13px;align-items:center;gap:10px;padding:5px 8px 5px 5px;display:flex}.account-trigger:hover,.account-trigger[aria-expanded=true]{background:#f7fafa;border-color:#dfe8e9}.account-trigger-copy strong,.account-trigger-copy small{display:block}.account-trigger-copy strong{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:14px;overflow:hidden}.account-trigger-copy small{color:#8b9199;margin-top:3px;font-size:11px}.account-chevron{color:#858b93;font-size:15px}.account-menu{background:#fff;border:1px solid #dfe7e8;border-radius:16px;width:300px;padding:14px;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 20px 55px #180d392e}.account-menu-head{border-bottom:1px solid #e8eeee;align-items:center;gap:12px;padding:4px 4px 14px;display:flex}.account-menu-head strong,.account-menu-head small{display:block}.account-menu-head strong{color:var(--ink);font-size:15px}.account-menu-head small{color:#858b93;overflow-wrap:anywhere;margin-top:4px;font-size:12px}.account-role{color:#858b93;justify-content:space-between;align-items:center;padding:14px 4px;font-size:13px;display:flex}.account-role strong{color:var(--teal-dark);font-size:13px}.account-logout{width:100%;min-height:48px;color:var(--red);background:#fff1f0;border:0;border-radius:10px;font-size:13px;font-weight:800}.main-content{width:min(1420px,100%);margin:0 auto;padding:38px 42px 70px}.hero-panel{background:var(--mist);border-radius:26px;justify-content:space-between;align-items:flex-end;gap:30px;min-height:288px;padding:52px;display:flex;position:relative;overflow:hidden}.hero-panel>*{z-index:1;position:relative}.hero-panel h1,.page-intro h1{color:var(--ink);letter-spacing:-.055em;margin:12px 0 13px;font-size:clamp(43px,5vw,68px);line-height:.95}.hero-panel p,.page-intro p{color:var(--muted);margin:0;font-size:16px;line-height:1.6}.kicker{color:var(--teal-dark);letter-spacing:.14em;font-size:11px;font-weight:800}.hero-orbit{z-index:0;border:48px solid #2a8e9e0f;border-radius:50%;position:absolute}.orbit-one{width:320px;height:320px;top:-190px;right:90px}.orbit-two{width:190px;height:190px;bottom:-96px;right:-78px}.primary-button,.secondary-button{border-radius:12px;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:0 20px;font-weight:700;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.primary-button{border:1px solid var(--teal);background:var(--teal);color:#fff;box-shadow:0 10px 22px #2a8e9e30}.primary-button:hover{background:var(--teal-dark);transform:translateY(-1px);box-shadow:0 14px 26px #2a8e9e40}.secondary-button{color:var(--ink);background:#fff;border:1px solid #cfdcde}.secondary-button:hover{border-color:var(--teal);color:var(--teal-dark)}.metric-grid{grid-template-columns:repeat(3,1fr);gap:18px;margin:20px 0;display:grid}.metric-card{background:#fff;border:1px solid #e4ebec;border-radius:18px;align-items:center;gap:20px;min-height:142px;padding:25px;display:flex}.metric-card.featured{color:var(--ink);background:#e9f6f7;border-color:#c9e4e7}.metric-icon{width:48px;height:48px;color:var(--teal-dark);background:#d2ecef;border-radius:14px;flex:none;place-items:center;font-size:22px;display:grid}.metric-icon.soft-green{color:var(--green);background:#e7f5ee}.metric-icon.soft-amber{color:var(--amber);background:#fff3df}.metric-card small,.metric-card strong,.metric-card>div>span{display:block}.metric-card small{color:#8c929b;letter-spacing:.12em;margin-bottom:6px;font-size:9px;font-weight:800}.metric-card.featured small{color:#687d81}.metric-card strong{color:var(--ink);font-size:34px;line-height:1}.metric-card.featured strong{color:var(--ink)}.metric-card strong em,.metric-card strong span{color:#8c929b;font-size:17px;font-style:normal;font-weight:500}.trend,.muted-note{margin-top:8px;font-size:11px}.trend{color:var(--teal-dark)}.muted-note{color:#858a93}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.summary-card{background:#fff;border:1px solid #dfe9ea;border-radius:17px;flex-direction:column;justify-content:center;min-height:126px;padding:22px 24px;display:flex;position:relative;overflow:hidden}.summary-card:after{content:"";border:18px solid #2a8e9e14;border-radius:50%;width:90px;height:90px;position:absolute;top:-42px;right:-42px}.summary-card-label,.summary-card small,.summary-card strong{z-index:1;display:block;position:relative}.summary-card-label{color:#77818b;letter-spacing:.12em;font-size:9px;font-weight:800}.summary-card strong{color:var(--ink);letter-spacing:-.04em;margin:8px 0 5px;font-size:30px;line-height:1}.summary-card small{color:#8b929a;font-size:10px;line-height:1.4}.summary-card.green{background:#fbfefd;border-color:#d8ece1}.summary-card.green strong{color:var(--green)}.summary-card.green:after{border-color:#16865a14}.summary-card.amber{background:#fffdfa;border-color:#f0e4cf}.summary-card.amber strong{color:var(--amber)}.summary-card.amber:after{border-color:#c47a1617}.session-intro{align-self:start;gap:24px;min-width:0;display:grid;position:static}.session-intro .page-intro{padding:28px 6px 0;position:static}.session-intro .page-intro p{max-width:520px}.session-summary{grid-template-columns:1fr}.session-summary .summary-card{min-height:92px;padding:17px 20px}.session-summary .summary-card strong{margin:5px 0 3px;font-size:23px}.student-summary{gap:8px;width:min(620px,100%);margin:0 auto 14px}.student-summary .summary-card{border-radius:13px;min-height:90px;padding:14px}.student-summary .summary-card-label{font-size:7px}.student-summary .summary-card strong{margin:5px 0 2px;font-size:18px}.student-summary .summary-card small{font-size:8px}.content-grid{grid-template-columns:minmax(0,1.6fr) minmax(320px,.8fr);gap:20px;display:grid}.panel{background:#fff;border:1px solid #e3eaeb;border-radius:20px}.schedule-panel,.progress-panel{padding:28px}.panel-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.panel-header h2{color:var(--ink);letter-spacing:-.035em;margin:5px 0 0;font-size:25px}.text-button,.more-button{color:var(--teal-dark);background:0 0;border:0;font-weight:700}.more-button{color:#8a8e96;letter-spacing:.1em}.class-row{border-top:1px solid #edf1f2;grid-template-columns:66px 1fr auto;align-items:center;gap:17px;padding:17px;display:grid}.class-row.active-class{background:#fbfdfd;border:1px solid #d9e8ea;border-radius:16px}.date-tile{background:var(--teal);color:#fff;text-align:center;border-radius:14px;place-content:center;width:64px;height:64px;display:grid}.date-tile strong{font-size:15px}.date-tile span{letter-spacing:.1em;margin-top:3px;font-size:8px;font-weight:700}.muted-tile{background:var(--mist);color:var(--teal-dark)}.class-info h3{color:var(--ink);margin:4px 0;font-size:15px}.class-info p{color:#858a93;margin:0;font-size:11px}.live-pill{color:var(--amber);letter-spacing:.12em;font-size:8px;font-weight:800}.round-action{background:var(--ink);color:#fff;border:0;border-radius:50%;width:39px;height:39px}.status-label{color:#858a93;background:#f3f5f6;border-radius:999px;padding:7px 10px;font-size:10px}.progress-panel{flex-direction:column;display:flex}.donut{background:conic-gradient(var(--teal) 0 91%, #eaf0f1 91% 100%);border-radius:50%;place-items:center;width:174px;height:174px;margin:2px auto 24px;display:grid}.donut:before{content:"";background:#fff;border-radius:50%;width:125px;height:125px;position:absolute}.donut div{z-index:1;text-align:center;position:relative}.donut strong,.donut span{display:block}.donut strong{color:var(--ink);letter-spacing:-.05em;font-size:37px}.donut span{color:#8b9098;font-size:10px}.legend{border-top:1px solid #edf1f2;grid-template-columns:repeat(3,1fr);gap:8px;padding-top:18px;display:grid}.legend>span{color:#888d95;grid-template-columns:auto 1fr;gap:6px;font-size:9px;display:grid}.legend strong{color:var(--ink);grid-column:2;font-size:14px}.dot{border-radius:50%;width:7px;height:7px;margin-top:2px}.present{background:var(--teal)}.sick{background:var(--red)}.permit{background:var(--amber)}.form-layout{grid-template-columns:minmax(250px,.55fr) minmax(600px,1.2fr);align-items:start;gap:54px;display:grid}.page-intro{padding:28px 6px;position:sticky;top:120px}.page-intro h1{font-size:clamp(48px,6vw,74px)}.session-form{padding:34px}.step-heading{align-items:flex-start;gap:15px;margin-bottom:30px;display:flex}.step-heading>span{background:var(--mist);width:38px;height:38px;color:var(--teal-dark);border-radius:50%;place-items:center;font-size:12px;font-weight:800;display:grid}.step-heading h2{color:var(--ink);margin:0 0 5px;font-size:22px}.step-heading p{color:#858a93;margin:0;font-size:12px}.field-grid{grid-template-columns:1fr 1fr;gap:20px 18px;display:grid}.field-wide{grid-column:1/-1}label>span{color:#565b64;margin-bottom:8px;font-size:11px;font-weight:700;display:block}input,select{width:100%;height:49px;color:var(--ink);background:#fff;border:1px solid #dce4e5;border-radius:11px;outline:0;padding:0 14px}input:focus,select:focus{border-color:var(--teal);box-shadow:0 0 0 4px #2a8e9e14}.upload-box{background:#f9fbfb;border:1px dashed #b8cccf;border-radius:14px;align-items:center;gap:15px;margin-top:24px;padding:18px;display:flex}.upload-box>div{flex:1}.upload-box strong{color:var(--ink);font-size:13px}.upload-box p{color:#92969d;margin:4px 0 0;font-size:10px}.upload-icon{background:var(--mist);width:40px;height:40px;color:var(--teal-dark);border-radius:11px;place-items:center;font-size:19px;display:grid}.form-footer{border-top:1px solid #edf1f2;justify-content:space-between;align-items:center;gap:20px;margin-top:28px;padding-top:24px;display:flex}.form-footer p{color:#7e838c;margin:0;font-size:10px}.info-dot{background:var(--mist);width:18px;height:18px;color:var(--teal-dark);border-radius:50%;place-items:center;margin-right:6px;font-weight:800;display:inline-grid}.active-sessions{z-index:1;grid-column:1/-1;margin-top:10px;position:relative;overflow:hidden}.closed-sessions{margin-top:16px}.active-sessions>header{border-bottom:1px solid #e7edef;justify-content:space-between;align-items:center;gap:20px;padding:24px 28px;display:flex}.active-sessions h2{color:var(--ink);margin:6px 0 0;font-size:25px}.active-count{background:var(--mist);color:var(--teal-dark);border-radius:999px;padding:8px 12px;font-size:11px;font-weight:800}.active-session-list article{border-bottom:1px solid #e7edef;grid-template-columns:180px minmax(260px,1fr) 80px auto;align-items:center;gap:22px;padding:19px 28px;display:grid}.active-session-list article:last-child{border-bottom:0}.active-session-time strong,.active-session-time small,.active-session-info strong,.active-session-info span,.active-session-total strong,.active-session-total span{display:block}.active-session-time strong{color:var(--teal-dark);font-size:12px}.closed-sessions .active-session-time strong{color:#717982}.active-session-time small,.active-session-info span,.active-session-total span{color:#8a9098;margin-top:5px;font-size:10px}.active-session-info strong{color:var(--ink);font-size:14px}.active-session-total{text-align:center}.active-session-total strong{color:var(--ink);font-size:22px}.active-session-list .danger-button{min-width:124px;font-size:13px}.active-empty{color:#858b93;text-align:center;place-items:center;padding:35px;display:grid}.active-empty span{width:38px;height:38px;color:var(--green);background:#e7f5ee;border-radius:50%;place-items:center;font-weight:800;display:grid}.active-empty p{margin:10px 0 0;font-size:12px}.student-stage{background:var(--mist);border-radius:28px;grid-template-columns:minmax(320px,420px) minmax(300px,500px);justify-content:center;align-items:center;gap:clamp(55px,8vw,120px);min-height:calc(100vh - 190px);padding:25px;display:grid;overflow:hidden}.phone-frame{border:8px solid var(--ink);background:#fff;border-radius:40px;width:min(100%,390px);min-height:690px;padding:27px 24px;box-shadow:0 35px 60px #180d392e}.phone-top{border-bottom:1px solid #edf1f2;justify-content:space-between;align-items:center;padding-bottom:20px;display:flex}.phone-top .brand{color:var(--ink);font-size:18px}.phone-top .brand-mark{border-radius:7px;width:25px;height:25px}.secure-pill{color:var(--green);background:#e8f6ef;border-radius:999px;padding:6px 8px;font-size:8px;font-weight:800}.student-heading{padding:48px 0 30px}.student-heading h1{color:var(--ink);letter-spacing:-.05em;margin:13px 0 10px;font-size:39px;line-height:1}.student-heading p{color:#767b84;margin:0;font-size:13px;line-height:1.5}.class-chip{color:var(--teal-dark);letter-spacing:.1em;font-size:9px;font-weight:800}.mobile-form{gap:18px;display:grid}.full-button{width:100%}.privacy-note{color:#969aa1;text-align:center;max-width:260px;margin:-5px auto 0;font-size:9px;line-height:1.5}.compact-heading{padding:34px 0 18px}.compact-heading h1{font-size:32px}.countdown{background:var(--mist);color:var(--teal-dark);border-radius:12px;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.countdown span{font-size:10px;font-weight:700}.countdown strong{color:var(--ink);font-size:20px}.attendance-options{grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0;display:grid}.attendance-options button{color:#757a83;background:#fff;border:1px solid #dfe7e8;border-radius:13px;place-items:center;gap:5px;min-height:90px;display:grid;position:relative}.attendance-options button i{background:#f2f5f5;border-radius:50%;place-items:center;width:30px;height:30px;font-style:normal;display:grid}.attendance-options button span{font-size:10px;font-weight:700}.attendance-options button b{border:1px solid #cfd8d9;border-radius:50%;width:11px;height:11px;position:absolute;top:8px;right:8px}.attendance-options button.selected{border-color:var(--teal);color:var(--teal-dark);background:#f6fbfb}.attendance-options button.selected i{background:var(--teal);color:#fff}.attendance-options button.selected b{background:var(--teal);box-shadow:0 0 0 1px var(--teal);border:3px solid #fff}.material-link{color:var(--teal-dark);background:0 0;border:0;margin:17px auto 0;font-size:11px;font-weight:700;display:block}.prototype-note h2{color:var(--ink);letter-spacing:-.055em;margin:13px 0;font-size:clamp(38px,5vw,62px);line-height:1}.prototype-note p{color:#70757e;max-width:420px;margin:0 0 24px;line-height:1.6}.system-page{grid-template-columns:.65fr 1.35fr;gap:55px;display:grid}.system-page .page-intro{align-self:start;position:sticky;top:110px}.system-grid{gap:20px;display:grid}.system-card{padding:28px}.swatches{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:23px;display:grid}.swatch{border-radius:12px;align-items:flex-end;height:150px;padding:14px;display:flex}.swatch span{color:#171820;background:#ffffffd9;border-radius:7px;padding:6px 8px;font-size:9px;font-weight:800}.swatch.teal{background:#2a8e9e}.swatch.mist{background:#e9f3f4}.swatch.ink{background:#180d39}.swatch.charcoal{background:#1d1e20}.type-card h2{color:var(--ink);letter-spacing:-.055em;margin:20px 0 5px;font-size:52px}.type-samples{grid-template-columns:auto 1fr;align-items:center;gap:10px 22px;display:grid}.type-samples strong{color:var(--teal);letter-spacing:-.07em;grid-row:span 2;font-size:72px}.type-samples span{color:#797e87;align-self:end;font-size:12px}.type-samples p{color:var(--ink);align-self:start;margin:0;font-size:18px}.component-row{flex-wrap:wrap;align-items:center;gap:12px;margin:23px 0;display:flex}.success-badge{color:var(--green);background:#e8f6ef;border-radius:999px;padding:9px 12px;font-size:10px;font-weight:800}.mobile-nav,.mobile-master-nav{display:none}.session-loader{background:var(--mist);min-height:100vh;color:var(--ink);place-content:center;justify-items:center;gap:20px;display:grid}.session-loader .brand{font-size:30px}.session-loader span:last-child{color:var(--muted);font-size:12px}.login-page{background:#f9fbfb;grid-template-columns:minmax(420px,1.08fr) minmax(440px,.92fr);min-height:100vh;display:grid}.login-story{background:var(--mist);flex-direction:column;justify-content:space-between;min-height:100vh;padding:clamp(38px,6vw,82px);display:flex;position:relative;overflow:hidden}.login-story:after{content:"";border:78px solid #2a8e9e14;border-radius:50%;width:520px;height:520px;position:absolute;bottom:-250px;right:-290px}.login-brand{z-index:1;color:var(--ink);letter-spacing:-.05em;align-items:center;gap:12px;font-size:26px;font-weight:800;display:flex;position:relative}.login-brand>span:last-child>span{color:var(--teal)}.login-mark{background:var(--teal);border-radius:10px;grid-template-columns:repeat(3,1fr);align-items:end;gap:2px;width:35px;height:35px;padding:6px;display:grid;transform:rotate(-4deg)}.login-mark i{background:#fff;border-radius:2px;display:block;transform:skewY(-22deg)}.login-mark i:first-child{height:45%}.login-mark i:nth-child(2){height:70%}.login-mark i:nth-child(3){height:100%}.login-story>div:nth-child(2){z-index:1;max-width:680px;position:relative}.login-story h1{color:var(--ink);letter-spacing:-.07em;margin:16px 0 22px;font-size:clamp(60px,7vw,104px);line-height:.91}.login-story p{color:#686e78;max-width:530px;font-size:17px;line-height:1.65}.login-proof{z-index:1;align-items:center;gap:14px;display:flex;position:relative}.login-proof>span{background:var(--teal);color:#fff;border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.login-proof strong{color:var(--ink);font-size:12px}.login-proof p{margin:3px 0 0;font-size:10px}.login-form-wrap{place-items:center;padding:32px;display:grid}.login-card{width:min(430px,100%)}.login-card h2{color:var(--ink);letter-spacing:-.05em;margin:13px 0 10px;font-size:42px}.login-card>p{color:var(--muted);margin:0 0 34px;font-size:14px}.login-card label{margin-bottom:18px;display:block}.login-card input{height:54px}.login-card .primary-button{margin-top:8px}.login-card small{color:#9599a1;text-align:center;margin-top:18px;font-size:10px;display:block}.form-error,.inline-message{color:#9e3029;background:#fff3f2;border:1px solid #f1c9c5;border-radius:10px;padding:12px 14px;font-size:11px;line-height:1.5}.form-error{margin-bottom:15px}.master-page{gap:26px;display:grid}.master-heading{justify-content:space-between;align-items:flex-end;gap:30px;padding:18px 0 6px;display:flex}.master-heading h1{color:var(--ink);letter-spacing:-.055em;margin:10px 0 8px;font-size:clamp(43px,5vw,68px);line-height:1}.master-heading p{color:var(--muted);margin:0;font-size:14px}.master-panel{overflow:hidden}.master-toolbar{border-bottom:1px solid #e9eff0;justify-content:space-between;align-items:center;gap:20px;min-height:78px;padding:15px 20px;display:flex}.segment-control{background:#f1f5f5;border-radius:11px;gap:4px;padding:4px;display:flex}.segment-control button{color:#7c818a;background:0 0;border:0;border-radius:8px;padding:9px 13px;font-size:11px;font-weight:700}.segment-control button.active{color:var(--ink);background:#fff;box-shadow:0 3px 10px #180d3914}.table-search{border:1px solid #dfe7e8;border-radius:10px;align-items:center;gap:8px;width:min(280px,100%);padding:0 12px;display:flex}.table-search>span{color:#92969e;margin:0;font-size:18px}.table-search input{height:39px;box-shadow:none;border:0;padding:0;font-size:11px}.inline-message{margin:16px 20px 0}.data-table-wrap{min-height:340px;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%}.data-table th{color:#8a8f98;letter-spacing:.08em;text-transform:uppercase;background:#fbfcfc;border-bottom:1px solid #edf1f2;padding:14px 20px;font-size:9px}.data-table td{color:#626772;border-bottom:1px solid #edf1f2;padding:16px 20px;font-size:11px}.data-table tr:last-child td{border-bottom:0}.data-table td strong{color:var(--ink)}.data-table td small{color:#969aa1;margin-top:4px;display:block}.person-cell{align-items:center;gap:11px;display:flex}.person-cell>span{background:var(--mist);width:34px;height:34px;color:var(--teal-dark);border-radius:10px;place-items:center;font-size:9px;font-weight:800;display:grid}.table-badge{color:#8a8f97;background:#f2f4f4;border-radius:999px;padding:6px 9px;font-size:9px;font-style:normal;font-weight:800;display:inline-block}.table-badge.active{color:var(--green);background:#e8f6ef}.table-action{text-align:right}.table-action button{color:var(--teal-dark);background:0 0;border:0;font-size:10px;font-weight:800}.table-loading,.empty-table{color:#8c9199;place-content:center;justify-items:center;min-height:340px;font-size:12px;display:grid}.empty-table span{color:#a9c9cd;font-size:35px}.empty-table strong{color:var(--ink);margin-top:10px}.empty-table p{color:#989ca3;margin:5px 0;font-size:10px}.master-data-page .master-heading p{font-size:16px}.master-data-page .summary-card-label{font-size:11px}.master-data-page .summary-card strong{font-size:36px}.master-data-page .summary-card small{font-size:12px}.master-data-page .master-toolbar .kicker{font-size:13px}.master-data-page .table-search input{font-size:14px}.master-data-page .import-button{font-size:12px}.master-data-page .data-table th{padding:17px 22px;font-size:11px}.master-data-page .data-table td{padding:20px 22px;font-size:14px}.master-data-page .data-table td small{margin-top:6px;font-size:11px}.master-data-page .person-cell>span{width:42px;height:42px;font-size:11px}.master-data-page .table-badge{padding:7px 11px;font-size:11px}.master-data-page .table-action button,.master-data-page .row-actions button,.master-data-page .manage-members-button{font-size:11px}.master-data-page .empty-table,.master-data-page .table-loading{font-size:14px}.master-data-page .empty-table p{font-size:12px}.master-data-page .two-card-master-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.master-data-page .table-search{box-shadow:none;background:0 0;border:0}.master-data-page .table-search input:focus,.master-data-page .table-search input:focus-visible{box-shadow:none;border:0;outline:0}.master-data-page .number-column{text-align:center;width:72px}.master-data-page .number-cell{color:#9298a0;text-align:center;font-variant-numeric:tabular-nums;width:72px;font-weight:800}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#180d397a;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.data-modal{background:#fff;border-radius:20px;width:min(520px,100%);max-height:calc(100vh - 40px);overflow-y:auto;box-shadow:0 28px 90px #180d3947}.data-modal>header{border-bottom:1px solid #edf1f2;justify-content:space-between;align-items:flex-start;padding:27px 28px 20px;display:flex}.data-modal h2{color:var(--ink);letter-spacing:-.04em;margin:6px 0 0;font-size:27px}.data-modal header button{color:#727780;background:#f1f4f4;border:0;border-radius:50%;width:34px;height:34px;font-size:21px}.modal-form{gap:17px;padding:24px 28px 28px;display:grid}.two-fields{grid-template-columns:1fr 1fr;gap:13px;display:grid}.modal-form footer{border-top:1px solid #edf1f2;justify-content:flex-end;gap:10px;margin-top:5px;padding-top:20px;display:flex}.credential-result{text-align:center;padding:36px 28px 28px}.credential-result>span{width:52px;height:52px;color:var(--green);background:#e8f6ef;border-radius:50%;place-items:center;margin:0 auto 15px;font-size:22px;display:grid}.credential-result h3{color:var(--ink);margin:0 0 20px}.credential-result strong{background:var(--mist);color:var(--ink);border:1px dashed #a8c8cc;border-radius:12px;padding:18px;font-size:20px;display:block}.credential-result p{color:#848991;max-width:310px;margin:13px auto 22px;font-size:10px;line-height:1.5}.coming-soon{background:var(--mist);color:var(--teal-dark);border-radius:12px;padding:18px;font-size:12px;line-height:1.5}@media (width<=1050px){.app-shell{grid-template-columns:88px 1fr}.sidebar{align-items:center;padding-inline:14px}.sidebar .brand>span:last-child,.sidebar nav button:not(.active):after,.sidebar nav button{font-size:0}.sidebar .brand-mark{width:38px;height:38px}.sidebar nav button{justify-content:center;padding:13px}.sidebar nav button span{font-size:20px}.nav-submenu,.sidebar-bottom>div:not(.avatar),.sidebar-bottom>button{display:none}.content-grid{grid-template-columns:1fr}.progress-panel{min-height:370px}.form-layout,.system-page{grid-template-columns:1fr}.page-intro,.session-intro{position:static}.student-stage{grid-template-columns:1fr}.prototype-note{text-align:center;order:-1}.prototype-note p{margin-inline:auto}}@media (width<=720px){.app-shell{display:block}.sidebar{display:none}.topbar{height:68px;padding:0 18px}.mobile-brand{display:block}.mobile-brand .brand{font-size:18px}.mobile-brand .brand-mark{width:26px;height:26px}.search,.top-actions .icon-button:first-child{display:none}.main-content{padding:18px 16px 145px}.hero-panel{flex-direction:column;align-items:flex-start;min-height:340px;padding:32px 26px}.hero-panel .primary-button{width:100%;margin-top:auto}.metric-grid{grid-template-columns:1fr}.metric-card{min-height:118px}.content-grid{grid-template-columns:1fr}.schedule-panel,.progress-panel{padding:20px}.class-row{grid-template-columns:56px 1fr;padding-inline:7px}.date-tile{width:54px;height:54px}.class-row>:last-child{display:none}.field-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.session-form{padding:23px 18px}.upload-box,.form-footer{flex-direction:column;align-items:stretch}.form-footer .primary-button{width:100%}.student-stage{border-radius:22px;min-height:auto;padding:28px 8px}.phone-frame{border-width:5px;border-radius:32px;min-height:660px;padding-inline:20px}.prototype-note{padding:15px 18px}.prototype-note h2{font-size:38px}.system-page .page-intro h1{font-size:52px}.swatches{grid-template-columns:1fr 1fr}.swatch{height:110px}.component-row{flex-direction:column;align-items:stretch}.mobile-nav{z-index:10;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#fffffff0;border:1px solid #dfe7e8;border-radius:17px;grid-template-columns:repeat(4,1fr);padding:7px;display:grid;position:fixed;bottom:12px;left:12px;right:12px;box-shadow:0 15px 35px #180d392e}.mobile-nav button{color:#8a8e96;background:0 0;border:0;border-radius:11px;place-items:center;gap:3px;padding:7px 2px;font-size:7px;display:grid}.mobile-nav button span{font-size:17px}.mobile-nav button.active{background:var(--mist);color:var(--teal-dark);font-weight:800}.mobile-master-nav{z-index:9;background:#fff;border-radius:12px;gap:5px;padding:6px;display:flex;position:fixed;bottom:86px;left:18px;right:18px;overflow-x:auto;box-shadow:0 8px 24px #180d391f}.mobile-master-nav button{color:#7a8088;background:0 0;border:0;border-radius:8px;flex:1;min-width:max-content;padding:8px;font-size:8px;font-weight:800}.mobile-master-nav button.active{background:var(--mist);color:var(--teal-dark)}.login-page{grid-template-columns:1fr}.login-story{min-height:310px;padding:30px 25px}.login-story h1{margin-block:20px 12px;font-size:55px}.login-story p{font-size:13px}.login-proof{display:none}.login-form-wrap{padding:42px 24px}.master-heading{flex-direction:column;align-items:stretch}.master-heading .primary-button{width:100%}.master-toolbar{flex-direction:column;align-items:stretch}.segment-control{overflow-x:auto}.segment-control button{white-space:nowrap;flex:1}.table-search{width:100%}.data-table{min-width:700px}.two-fields{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.toolbar-right{align-items:center;gap:9px;display:flex}.import-button{height:41px;color:var(--teal-dark);cursor:pointer;white-space:nowrap;border:1px solid #dce5e6;border-radius:10px;align-items:center;margin:0;padding:0 12px;font-size:9px;font-weight:800;display:inline-flex}.import-button input{display:none}@media (width<=720px){.toolbar-right{flex-direction:column;align-items:stretch}.import-button{justify-content:center}}.hidden-file{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.success-message{color:var(--green);background:#edf9f3;border:1px solid #bfe2d1;border-radius:10px;margin-bottom:18px;padding:12px 14px;font-size:11px;line-height:1.5}.upload-box{cursor:pointer}.student-actions,.status-actions,.row-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.row-actions{padding-left:8px}.row-actions button,.student-actions>button{color:var(--teal-dark);background:#eef6f7;border:0;border-radius:7px;padding:6px 8px;font-size:9px;font-weight:800}.student-actions>button.warning-action{color:#a8640d;background:#fff3df;border:0}.row-actions .danger-action{color:var(--red);background:#fff1f0}.status-actions>span{white-space:nowrap}.delete-modal{text-align:center;width:min(440px,100%);padding:34px}.delete-symbol{width:54px;height:54px;color:var(--red);background:#fff0ee;border-radius:50%;place-items:center;margin:0 auto 18px;font-size:25px;font-weight:800;display:grid}.delete-modal h2{margin:9px 0 12px}.delete-modal>p{color:#737881;max-width:340px;margin:0 auto 22px;font-size:12px;line-height:1.6}.delete-modal footer{grid-template-columns:1fr 1fr;gap:10px;margin-top:22px;display:grid}.delete-modal footer .secondary-button,.danger-button{min-height:48px;padding:0 18px;font-size:14px}.danger-button{background:var(--red);color:#fff;border:0;border-radius:10px;font-weight:800}.danger-button:disabled{cursor:wait;opacity:.65}.inline-message{align-items:center;gap:10px;display:flex}.inline-message>span{border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-weight:800;display:inline-grid}.inline-message.success{color:#15794f;background:#edf9f3;border-color:#b9e1cc}.inline-message.success>span{color:#15794f;background:#d5f0e2}.inline-message.error{color:#9e3029;background:#fff3f2;border-color:#f1c9c5}.inline-message.error>span{color:#9e3029;background:#f9deda}.data-table tbody tr td{border-bottom:1px solid #dfe8e9}.courses-table{table-layout:fixed}.courses-table th:first-child,.courses-table td:first-child{width:72px}.courses-table th:nth-child(2){width:34%}.courses-table th:nth-child(3){width:14%}.courses-table th:nth-child(4){width:12%}.courses-table th:nth-child(5){width:14%}.courses-table .course-meetings-cell{white-space:nowrap}.courses-table .course-actions-column,.courses-table .course-actions-cell{width:260px}.course-actions-cell{white-space:nowrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.course-actions-cell .row-actions{padding-left:0}.topic-material-preview{color:var(--teal-dark);background:#f4fbfb;border:1px solid #c8e4e7;border-radius:12px;gap:5px;padding:14px 16px;display:grid}.topic-material-preview>span{color:#66858a;letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:800}.topic-material-preview strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.topic-material-preview small{color:#73858a;font-size:10px}.attendance-closed{color:#8d611c;background:#fffaf4;border:1px solid #f0dfc6;border-radius:13px;padding:18px}.attendance-closed strong{font-size:13px;display:block}.attendance-closed p{color:#8a7b69;margin:7px 0 0;font-size:11px;line-height:1.55}.qr-stage{z-index:60;background:#f4f9f9;padding:35px clamp(25px,6vw,90px);position:fixed;inset:0;overflow-y:auto}.qr-stage>header{justify-content:space-between;align-items:flex-start;max-width:1180px;margin:0 auto 24px;display:flex}.qr-stage h2{color:var(--ink);letter-spacing:-.055em;margin:8px 0 0;font-size:clamp(38px,5vw,68px)}.qr-stage header button{width:45px;height:45px;color:var(--ink);background:#fff;border:0;border-radius:50%;font-size:25px;box-shadow:0 8px 25px #180d391a}.qr-content{grid-template-columns:minmax(380px,620px) minmax(280px,1fr);align-items:center;gap:clamp(35px,6vw,85px);max-width:1180px;margin:auto;display:grid}.qr-frame{aspect-ratio:1;background:#fff;border-radius:30px;place-items:center;padding:28px;display:grid;box-shadow:0 25px 70px #180d391f}.qr-frame img{object-fit:contain;width:100%;height:100%}.qr-info>span{color:var(--teal-dark);letter-spacing:.12em;font-size:11px;font-weight:800}.qr-info>strong{color:var(--ink);letter-spacing:-.07em;margin:10px 0 20px;font-size:clamp(65px,9vw,118px);line-height:.9;display:block}.qr-info p{color:#707680;line-height:1.65}.qr-info small{overflow-wrap:anywhere;color:var(--teal-dark);background:#e6f1f2;border-radius:10px;margin:22px 0;padding:12px;display:block}.qr-info .danger-button{border-radius:15px;min-width:300px;min-height:64px;padding:0 30px;font-size:15px;box-shadow:0 12px 26px #c53b3b38}.scan-page{background:var(--mist);place-items:center;min-height:100vh;padding:22px;display:grid}.scan-card{background:#fff;border-radius:25px;width:min(480px,100%);padding:clamp(27px,6vw,48px);box-shadow:0 25px 70px #180d3924}.scan-card>.brand{margin-bottom:42px}.scan-card h1{color:var(--ink);letter-spacing:-.05em;margin:14px 0 8px;font-size:39px;line-height:1}.scan-card>p{color:#747a83;margin:0 0 24px}.scan-status{color:#9b5c12;letter-spacing:.1em;font-size:9px;font-weight:800}.scan-status.open{color:var(--green)}.scan-topic{background:#f4f8f8;border-radius:12px;gap:6px;margin-bottom:22px;padding:15px;display:grid}.scan-topic small{color:#8a9098;letter-spacing:.1em;font-size:8px}.scan-topic strong{color:var(--ink);font-size:12px}.phase-note{color:#92969d;text-align:center;margin-top:14px;font-size:9px;line-height:1.5;display:block}@media (width<=760px){.qr-stage{padding:24px 18px}.qr-content{grid-template-columns:1fr}.qr-frame{width:min(100%,520px);margin:auto}.qr-info{text-align:center}.qr-info .danger-button{width:100%}.active-sessions>header{padding:20px}.active-session-list article{grid-template-columns:1fr auto;gap:14px;padding:18px 20px}.active-session-time,.active-session-info{grid-column:1}.active-session-total{text-align:right;grid-area:1/2}.active-session-list .danger-button{grid-area:2/2;width:100%}}.manage-members-button{color:var(--teal-dark);white-space:nowrap;background:#e9f5f6;border:0;border-radius:7px;padding:7px 10px;font-size:9px;font-weight:800}.classes-table .class-members-cell .status-actions{justify-content:flex-start;gap:12px}.classes-table .class-members-cell .row-actions{gap:8px;padding-left:0}.members-modal{width:min(760px,100%)}.members-modal header p{color:#858a93;margin:6px 0 0;font-size:11px}.members-content{padding:24px 28px 30px}.member-add{grid-template-columns:1fr auto;gap:10px;display:grid}.member-add .primary-button{white-space:nowrap}.members-content>.inline-message{margin:15px 0 0}.member-list-header{border-bottom:1px solid #dfe8e9;justify-content:space-between;margin-top:24px;padding:15px 0 11px;display:flex}.member-list-header strong{color:var(--ink);font-size:12px}.member-list-header span{color:#92969e;font-size:10px}.member-list{max-height:390px;overflow-y:auto}.member-item{border-bottom:1px solid #dfe8e9;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:14px 2px;display:grid}.member-avatar{background:var(--mist);width:36px;height:36px;color:var(--teal-dark);border-radius:10px;place-items:center;font-size:9px;font-weight:800;display:grid}.member-item strong,.member-item small{display:block}.member-item strong{color:var(--ink);font-size:11px}.member-item small{color:#92969d;margin-top:4px;font-size:9px}.member-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.leader-action,.leader-badge{white-space:nowrap;border:0;border-radius:7px;padding:7px 10px;font-size:9px;font-weight:800}.leader-action{color:var(--teal-dark);background:#e9f5f6}.leader-action:disabled{cursor:wait;opacity:.65}.leader-badge{color:var(--green);background:#e7f5ee}.member-item .danger-action{color:var(--red);background:#fff1f0;border:0;border-radius:7px;padding:7px 9px;font-size:9px;font-weight:800}@media (width<=620px){.member-add{grid-template-columns:1fr}.member-add .primary-button{width:100%}.member-item{grid-template-columns:auto 1fr}.member-actions{flex-wrap:wrap;grid-column:2;justify-content:flex-start}.status-actions{flex-wrap:wrap}}.student-portal{background:var(--mist);min-height:100vh;padding:20px}.student-portal>header{justify-content:space-between;align-items:center;max-width:620px;margin:0 auto 18px;display:flex}.student-brand{flex:none;gap:8px;font-size:18px;line-height:1}.student-brand .brand-mark{border-radius:9px;width:29px;height:29px;padding:5px}.student-portal>header>div:last-child{text-align:right}.student-portal>header strong,.student-portal>header span{display:block}.student-portal>header strong{color:var(--ink);font-size:12px}.student-portal>header span{color:#858a93;margin-top:3px;font-size:9px}.student-portal>nav{background:#c7dde0;border-radius:13px;grid-template-columns:repeat(3,1fr);gap:5px;max-width:620px;margin:0 auto 14px;padding:5px;display:grid}.student-portal>nav button{color:#43545d;background:0 0;border:0;border-radius:9px;padding:11px;font-size:10px;font-weight:800}.student-portal>nav button.active{color:var(--teal-dark);background:#fff;box-shadow:0 4px 13px #180d3914}.student-portal>.success-message,.student-portal>.form-error,.portal-card{max-width:620px;margin-left:auto;margin-right:auto}.portal-card{background:#fff;border-radius:20px;padding:28px;box-shadow:0 18px 45px #180d3914}.portal-card h1{color:var(--ink);letter-spacing:-.05em;margin:10px 0 20px;font-size:34px}.portal-card h2{color:var(--ink)}.signature-pad{touch-action:none;background:#fbfdfd;border:1px dashed #9fbec2;border-radius:13px;width:100%;height:180px;display:block}.portal-card textarea{resize:vertical;width:100%;min-height:110px;font:inherit;border:1px solid #dce4e5;border-radius:11px;padding:13px}.portal-card .full-button{margin-top:18px}.attendance-saved{text-align:center;background:#edf9f3;border-radius:15px;justify-items:center;padding:35px;display:grid}.attendance-saved>span{width:46px;height:46px;color:var(--green);background:#d5f0e2;border-radius:50%;place-items:center;font-size:20px;display:grid}.attendance-saved strong{color:var(--ink);margin-top:12px}.attendance-saved p{color:#6f777e}.leader-report{border-top:1px solid #e7eeee;gap:16px;margin-top:28px;padding-top:26px;display:grid}.leader-report h2{color:var(--ink);margin:0}.leader-report>p{color:#6f777e;margin:-6px 0 4px;font-size:11px;line-height:1.55}.leader-report .upload-box{margin-top:4px}.leader-report .full-button{margin-top:2px}.history-item{border-bottom:1px solid #dfe8e9;justify-content:space-between;align-items:center;padding:15px 0;display:flex}.history-item strong,.history-item span{display:block}.history-item strong{color:var(--ink);font-size:11px}.history-item span{color:#92969d;margin-top:4px;font-size:9px}.history-item b{background:var(--mist);color:var(--teal-dark);text-transform:capitalize;border-radius:999px;padding:6px 9px;font-size:9px}.profile-card{text-align:center}.profile-photo{width:120px;height:120px;color:var(--teal-dark);background:#dceced;border-radius:50%;place-items:center;margin:0 auto;font-size:38px;display:grid;overflow:hidden}.profile-photo img{object-fit:cover;width:100%;height:100%}.profile-card .primary-button{cursor:pointer;margin-top:15px;display:inline-flex}.topics-modal{width:min(820px,100%)}.topics-modal header p{color:#858a93;margin:6px 0 0;font-size:11px}.topics-content{padding:24px 28px 30px}.topic-form{background:#f5f9f9;border-radius:15px;gap:15px;padding:20px;display:grid}.topic-form textarea{resize:vertical;width:100%;min-height:80px;font:inherit;border:1px solid #dce4e5;border-radius:11px;padding:12px}.topic-form .upload-box{margin-top:0}.topic-upload{min-height:82px}.topic-upload>div{min-width:0}.topic-upload strong,.topic-upload p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topic-upload.has-file{background:#f1fafb;border-color:#83bdc5}.topic-form-actions{justify-content:flex-end;gap:10px;display:flex}.topics-content>.inline-message{margin:16px 0}.topic-list{max-height:330px;margin-top:20px;overflow-y:auto}.topic-item{border-bottom:1px solid #dfe8e9;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px 2px;display:grid}.topic-item>span{background:var(--mist);width:38px;height:38px;color:var(--teal-dark);border-radius:11px;place-items:center;font-size:11px;font-weight:800;display:grid}.topic-item strong{color:var(--ink);font-size:11px}.topic-item p{color:#90959d;margin:4px 0 0;font-size:9px}.topic-item>div:last-child{gap:7px;display:flex}.topic-item button{color:var(--teal-dark);background:#e9f5f6;border:0;border-radius:7px;padding:7px 9px;font-size:9px;font-weight:800}.topic-item button.danger-action{color:var(--red);background:#fff1f0}@media (width<=620px){.topics-content{padding:18px}.topic-item{grid-template-columns:auto 1fr}.topic-item>div:last-child{grid-column:2}.topic-form-actions{flex-direction:column}.topic-form-actions button{width:100%}}@media (width<=760px){.summary-grid{grid-template-columns:1fr}.summary-card{min-height:104px}.session-summary{grid-template-columns:1fr}.student-summary{grid-template-columns:repeat(3,1fr)}.student-summary .summary-card{min-height:78px;padding:12px}.student-summary .summary-card small{display:none}}@media (width<=430px){.student-summary{grid-template-columns:1fr}.student-summary .summary-card small{display:block}}.live-recent{padding:28px}.recent-row{border-bottom:1px solid #dfe8e9;grid-template-columns:1fr auto auto auto;align-items:center;gap:18px;padding:17px 0;display:grid}.recent-row strong,.recent-row span{display:block}.recent-row strong{color:var(--ink);font-size:12px}.recent-row span{color:#8a9098;margin-top:5px;font-size:9px}.recent-row b{color:var(--teal-dark);font-size:10px}.recent-row i{background:var(--mist);color:var(--teal-dark);text-transform:capitalize;border-radius:999px;padding:6px 9px;font-size:8px;font-style:normal}.recent-delete{min-height:40px;color:var(--red);background:#fff1f0;border:0;border-radius:8px;padding:9px 14px;font-size:13px;font-weight:800}.recent-delete:disabled{cursor:not-allowed;opacity:.4}.report-filter{width:210px}.report-table-wrap{overflow-x:auto}.report-table{min-width:900px}.verify-actions{gap:7px;display:flex}.verify-actions button{color:var(--green);background:#e6f5ed;border:0;border-radius:7px;padding:7px 9px;font-size:9px;font-weight:800}.verify-actions button:last-child,.report-delete{color:var(--red);background:#fff1f0}.report-delete{border:0;border-radius:7px;min-height:36px;padding:7px 11px;font-size:12px;font-weight:800}.attendance-delete-modal{text-align:left}.attendance-delete-modal>.kicker,.attendance-delete-modal>h2{text-align:center;display:block}.attendance-delete-modal>p{max-width:none}.attendance-delete-modal label{text-align:left;display:block}.attendance-delete-modal textarea{resize:vertical;width:100%;min-height:88px;font:inherit;border:1px solid #dce4e5;border-radius:11px;padding:12px}.attendance-chart{margin:20px 0;padding:28px}.attendance-chart .panel-header{margin-bottom:10px}.attendance-chart h2{margin-bottom:6px}.attendance-chart p{color:#858b94;margin:0;font-size:11px}.attendance-chart header>b{background:var(--mist);color:var(--teal-dark);border-radius:999px;padding:9px 12px;font-size:11px}.chart-scroll{overflow-x:auto}.attendance-chart svg{width:100%;min-width:580px;height:auto;display:block}.chart-grid{stroke:#e6eff0;stroke-width:1px}.chart-axis,.chart-label{fill:#88909a;font-size:10px;font-weight:700}.chart-line{fill:none;stroke:#2a8e9e;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.chart-area{fill:url(#attendance-area)}.chart-dot{fill:#fff;stroke:#2a8e9e;stroke-width:3px}.chart-empty{color:#8b9199;text-align:center;place-items:center;min-height:190px;font-size:12px;display:grid}@media (width<=720px){.recent-row{grid-template-columns:1fr auto}.recent-row>div{grid-column:1/-1}.recent-delete{grid-column:1/-1;width:100%}}.recent-row{grid-template-columns:1fr auto auto}.active-session-actions{align-items:center;gap:9px;display:flex}.active-session-list .recent-delete,.active-session-list .danger-button{min-width:112px}@media (width<=760px){.active-session-actions{grid-column:1/-1;grid-template-columns:1fr 1fr;display:grid}.active-session-list .recent-delete,.active-session-list .danger-button{width:100%}}.topbar,.master-toolbar,.account-menu-head,.data-table th,.data-table td,.class-row,.legend,.form-footer,.active-sessions>header,.active-session-list article,.phone-top,.recent-row,.member-list-header,.member-item,.history-item,.topic-item{border-color:#f0f4f5}.brand-logo .brand-image{aspect-ratio:1;object-fit:contain;flex:0 0 32px;width:32px;height:32px;display:block}.manual-attendance .manual-person-cell>strong{text-transform:uppercase;letter-spacing:.015em;font-size:13px}.manual-attendance .manual-student-number{font-size:13px}
