@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.\!table{display:table!important}.hidden{display:none}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}}:root{--brand-cyan:#45b9c8;--brand-cyan-dark:#2096ab;--brand-blue:#055196;--brand-navy:#183756;--surface:#fff;--surface-soft:#f4f8fa;--border:#dce6eb;--text:#263b4a;--muted:#728693;--shadow:0 18px 46px #1837561a}textarea{field-sizing:content;resize:none;max-height:180px;overflow-y:auto}.explanations-page{padding-top:30px}.explanations-shell{gap:20px;display:grid}.explanations-heading{border:1px solid var(--border);background:#fff;border-radius:20px;justify-content:space-between;align-items:flex-end;gap:28px;padding:28px 30px;display:flex;box-shadow:0 12px 32px #18375612}.explanations-heading>div:first-child>span{color:var(--brand-cyan-dark);letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:800}.explanations-heading h1{color:var(--brand-navy);letter-spacing:-.04em;margin:6px 0 4px;font-size:clamp(30px,3.5vw,46px);font-weight:680}.explanations-heading p,.explanation-section-toolbar span{color:var(--muted);margin:0;font-size:13px}.explanations-summary{gap:10px;display:flex}.explanations-summary span{border:1px solid var(--border);min-width:130px;color:var(--muted);border-radius:13px;gap:2px;padding:13px 16px;font-size:12px;display:grid}.explanations-summary strong{color:var(--brand-navy);font-size:23px;line-height:1}.explanations-layout{grid-template-columns:minmax(0,1.9fr) minmax(300px,.8fr);align-items:start;gap:20px;display:grid}.explanation-list-card,.reason-directory-card{border:1px solid var(--border);background:#fff;border-radius:18px;box-shadow:0 12px 30px #1837560e}.explanation-list-card{padding:24px}.reason-directory-card{padding:22px;position:sticky;top:20px}.explanation-section-toolbar{justify-content:space-between;align-items:center;gap:18px;display:flex}.explanation-section-toolbar h2{color:var(--brand-navy);margin:0 0 3px;font-size:21px}.explanation-section-title,.explanation-section-actions{align-items:center;display:flex}.explanation-section-title{justify-content:space-between;gap:12px}.explanation-section-actions{gap:7px}.reason-toolbar .explanation-section-title{width:100%}.explanation-collapse-button{box-sizing:border-box;border:1px solid var(--border);width:36px;min-width:36px;max-width:36px;height:36px;min-height:36px;max-height:36px;color:var(--brand-navy);cursor:pointer;background:#fff;border-radius:10px;flex:0 0 36px;place-items:center;padding:0;transition:background .16s,transform .22s;display:grid}.explanation-collapse-button:hover{background:var(--surface-soft)}.explanation-collapse-button svg{width:20px;height:20px;transition:transform .22s}.is-collapsed .explanation-collapse-button svg{transform:rotate(180deg)}.explanation-list-card.is-collapsed .explanation-search,.explanation-list-card.is-collapsed .explanation-entry-group,.reason-directory-card.is-collapsed>.reason-search,.reason-directory-card.is-collapsed>.reason-editor,.reason-directory-card.is-collapsed>.reason-directory-list{display:none}.explanation-search{border:1px solid var(--border);background:var(--surface-soft);width:min(360px,100%);height:42px;color:var(--muted);border-radius:11px;align-items:center;gap:9px;padding:0 13px;transition:border-color .16s,background .16s,box-shadow .16s;display:flex}.explanation-list-card .explanation-search{margin-left:auto}.explanation-search:focus-within{background:#fff;border-color:#05519673;box-shadow:0 0 0 3px #05519614}.explanation-search input{width:100%;color:var(--text);background:0 0;border:0;outline:0;font-size:13px}.explanation-entry-group{gap:9px;margin-top:24px;display:grid}.explanation-entry-group>h3{color:var(--brand-navy);align-items:center;gap:8px;margin:0 0 2px;font-size:14px;display:flex}.explanation-entry-group>h3 span{min-width:24px;height:24px;color:var(--brand-navy);background:#18375617;border-radius:8px;place-items:center;padding:0 6px;font-size:11px;display:grid}.explanation-entry-group.completed{border-top:1px solid var(--border);padding-top:18px}.explanation-entry{border:1px solid var(--border);border-radius:14px;transition:border-color .16s,box-shadow .16s;overflow:hidden}.explanation-entry:hover,.explanation-entry.is-editing{border-color:#0551964d;box-shadow:0 8px 22px #18375612}.explanation-entry-main{grid-template-columns:42px minmax(0,1fr) 36px;align-items:start;gap:13px;padding:15px;display:grid}.explanation-status-mark{border-radius:10px;place-items:center;width:42px;min-height:38px;font-size:12px;font-weight:800;display:grid}.explanation-entry-copy{min-width:0}.explanation-entry-title{flex-wrap:wrap;align-items:baseline;gap:5px 10px;display:flex}.explanation-entry-title strong,.explanation-entry-title a{color:var(--brand-navy);font-size:14px;font-weight:700}.explanation-entry-title a:hover{color:var(--brand-blue)}.explanation-entry-title span,.explanation-entry-context span{color:var(--muted);font-size:11px}.explanation-entry-context{flex-wrap:wrap;gap:5px 12px;margin-top:6px;display:flex}.explanation-entry-context span:not(:last-child):after{color:#c4d0d6;content:"·";margin-left:12px}.explanation-current-value{background:var(--surface-soft);border-radius:10px;gap:3px;margin-top:10px;padding:10px 12px;display:grid}.explanation-current-value strong{color:var(--brand-blue);font-size:13px}.explanation-current-value span,.explanation-current-value small{color:var(--muted);font-size:11px}.icon-action,.reason-directory-actions button,.reason-editor button{border:1px solid var(--border);width:36px;height:36px;color:var(--brand-blue);cursor:pointer;background:#fff;border-radius:10px;place-items:center;transition:background .15s,border-color .15s,color .15s;display:grid}.icon-action:hover,.reason-directory-actions button:hover,.reason-editor button:hover{background:#05519614;border-color:#0551964d}.explanation-entry-editor{border-top:1px solid var(--border);background:#fbfdfe;gap:11px;padding:14px 15px 15px 70px;display:grid}.explanation-entry-editor textarea,.explanation-entry-editor input,.reason-editor textarea,.reason-editor input{border:1px solid var(--border);width:100%;color:var(--text);font:inherit;background:#fff;border-radius:10px;outline:0}.explanation-entry-editor textarea,.reason-editor textarea{resize:none;min-height:72px;padding:11px 12px}.reason-editor input{height:40px;padding:0 11px}.explanation-entry-editor textarea:focus,.explanation-entry-editor input:focus,.reason-editor textarea:focus,.reason-editor input:focus{border-color:#05519673;box-shadow:0 0 0 3px #05519614}.explanation-editor-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.inline-form-error{color:#a62f3c;background:#fff4f5;border:1px solid #d0455333;border-radius:9px;align-items:center;min-height:30px;margin-right:auto;padding:6px 10px;font-size:12px;font-weight:700;display:inline-flex}.explanation-text-fields{gap:9px;display:grid}.explanation-text-fields input{height:42px;padding:0 12px}.explanation-reason-picker{gap:8px;display:grid}.explanation-reason-picker-search{width:100%}.explanation-entry-editor .explanation-reason-picker-search input{height:auto;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.explanation-reason-picker-list{border:1px solid var(--border);scrollbar-color:#18375638 transparent;scrollbar-width:thin;background:#fff;border-radius:12px;gap:4px;max-height:250px;padding:5px;display:grid;overflow-y:auto}.explanation-reason-picker-list button{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:9px;gap:2px;padding:10px 11px;transition:background .15s,color .15s;display:grid}.explanation-reason-picker-list button:hover{background:#05519612}.explanation-reason-picker-list button.selected{color:var(--brand-blue);background:#05519621}.explanation-reason-picker-list strong{font-size:13px}.explanation-reason-picker-list button span{color:var(--muted);font-size:11px}.button-primary,.button-muted{cursor:pointer;border-radius:9px;min-height:36px;padding:0 14px;font-size:12px;font-weight:700}.button-primary{border:1px solid var(--brand-navy);background:var(--brand-navy);color:#fff}.button-muted{border:1px solid var(--border);color:var(--muted);background:#fff}.button-primary:disabled,.button-muted:disabled{cursor:default;opacity:.55}.explanation-reason-menu{width:min(360px,100%)}.explanation-reason-menu .selection-trigger{border:1px solid var(--border);min-height:42px;color:var(--brand-navy);background:#fff;border-radius:10px;justify-content:flex-start;padding:0 13px;font-size:13px;font-weight:700}.explanation-reason-option{color:var(--brand-navy);background:#18375617}.explanation-no-reasons,.explanation-empty{background:var(--surface-soft);color:var(--muted);text-align:center;border-radius:12px;padding:18px;font-size:12px}.reason-toolbar{align-items:flex-start}.reason-add-button{border-color:var(--brand-navy);background:var(--brand-navy);color:#fff}.reason-add-button:hover{color:#fff;background:#102e49}.reason-search{width:100%;margin:16px 0 12px}.reason-directory-list{scrollbar-color:#18375638 transparent;scrollbar-width:thin;gap:8px;max-height:610px;padding-right:3px;display:grid;overflow-y:auto}.reason-directory-item{border:1px solid var(--border);border-radius:12px;justify-content:space-between;align-items:flex-start;gap:10px;padding:12px;display:flex}.reason-directory-item.is-archived{opacity:.72;background:#f7f9fa}.reason-directory-copy{gap:3px;min-width:0;display:grid}.reason-directory-copy strong{color:var(--brand-navy);overflow-wrap:anywhere;font-size:13px}.reason-directory-copy span,.reason-directory-copy small{color:var(--muted);overflow-wrap:anywhere;font-size:11px}.reason-directory-actions{flex:none;gap:5px;display:flex}.reason-directory-actions button,.reason-editor button{border-radius:8px;width:30px;height:30px}.reason-editor{background:#fbfdfe;border:1px solid #05519640;border-radius:12px;gap:8px;width:100%;padding:11px;display:grid}.reason-editor textarea{min-height:64px}.reason-editor>div{justify-content:flex-end;align-items:center;gap:6px;display:flex}.student-mark-stack{place-items:center;gap:7px;min-width:0;display:grid}.student-explanation,.student-explanation-text{width:100%;max-width:118px;color:var(--brand-navy);overflow-wrap:anywhere;text-align:center;background:#18375612;border-radius:7px;padding:5px 7px;font-size:9px;font-weight:700;line-height:1.25;display:block}.student-explanation summary{cursor:pointer;list-style:none}.student-explanation summary::-webkit-details-marker{display:none}.student-explanation p{color:var(--muted);margin:5px 0 0;font-size:9px;font-weight:500}@media (max-width:980px){.explanations-layout{grid-template-columns:1fr}.reason-directory-card{position:static}}@media (max-width:700px){.explanations-heading,.explanation-section-toolbar{flex-direction:column;align-items:stretch}.explanations-summary{width:100%}.explanations-summary span{flex:1;min-width:0}.explanation-search{width:100%}.explanations-layout .reason-directory-card{order:1}.explanations-layout .explanation-list-card{order:2}.explanation-section-title{width:100%}.explanation-collapse-button{border:1px solid var(--border);width:36px;height:36px;color:var(--brand-navy);background:#fff;border-radius:10px;flex:0 0 36px;place-items:center;transition:background .16s,transform .22s;display:grid}.explanation-collapse-button:hover{background:var(--surface-soft)}.is-collapsed .explanation-collapse-button svg{transform:rotate(180deg)}.explanation-collapse-button svg{transition:transform .22s}.explanation-list-card.is-collapsed .explanation-search,.explanation-list-card.is-collapsed .explanation-entry-group,.reason-directory-card.is-collapsed>.reason-search,.reason-directory-card.is-collapsed>.reason-editor,.reason-directory-card.is-collapsed>.reason-directory-list{display:none}.explanation-entry-main{grid-template-columns:38px minmax(0,1fr) 34px;gap:9px}.explanation-status-mark{width:38px}.explanation-entry-editor{padding-left:15px}.explanation-editor-actions{flex-wrap:wrap}.inline-form-error{width:100%}.explanation-entry-context span:after{display:none}}.admin-page{width:min(1500px,100% - 48px);margin:0 auto;padding:42px 0 70px}.admin-shell{gap:20px;display:grid}.admin-heading{border:1px solid var(--border);background:#fff;border-radius:20px;justify-content:space-between;align-items:center;gap:32px;padding:30px 32px;display:flex;box-shadow:0 12px 32px #18375612}.admin-heading>div:first-child>span{color:var(--brand-cyan-dark);letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:800}.admin-heading h1{color:var(--brand-navy);letter-spacing:-.04em;margin:7px 0 5px;font-size:clamp(30px,3.4vw,46px);font-weight:650}.admin-parser-state{border:1px solid var(--border);min-width:250px;color:var(--muted);border-radius:12px;align-items:center;gap:10px;padding:11px 14px;display:flex}.admin-parser-state>span{background:#9aa8b1;border-radius:50%;flex:0 0 9px;width:9px;height:9px}.admin-parser-state.state-success>span{background:#4cac74}.admin-parser-state.state-running>span{background:#37b5c3}.admin-parser-state.state-error>span{background:#e25858}.admin-parser-state strong,.admin-parser-state small{display:block}.admin-parser-state strong{color:var(--brand-navy);font-size:12px}.admin-parser-state small{margin-top:2px;font-size:10px}.admin-summary{gap:10px;display:flex}.admin-summary span{border:1px solid var(--border);min-width:105px;color:var(--muted);text-align:center;background:#ffffffd9;border-radius:12px;padding:13px 15px;font-size:11px}.admin-summary strong{color:var(--brand-navy);margin-bottom:2px;font-size:22px;display:block}.admin-tabs{border:1px solid var(--border);background:#fff;border-radius:14px;grid-template-columns:repeat(5,minmax(112px,1fr));gap:5px;padding:6px;display:grid;position:relative;overflow-x:auto}.admin-tabs button{z-index:1;min-height:42px;color:var(--muted);cursor:pointer;font:inherit;white-space:nowrap;background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;gap:9px;padding:0 17px;font-size:13px;font-weight:700;transition:background .18s,color .24s;display:flex;position:relative}.admin-tab-indicator{z-index:0;background:var(--brand-navy);border-radius:10px;width:calc(20% - 6.4px);transition:transform .32s cubic-bezier(.22,.75,.24,1);position:absolute;top:6px;bottom:6px;left:6px;box-shadow:0 5px 14px #1837562e}.admin-tabs button.active{color:#fff}.admin-tabs button:not(.active):hover,.student-view-tabs a:not(.active):hover{color:var(--brand-navy);background:#18375614}.admin-tabs.section-groups .admin-tab-indicator{transform:translate(calc(100% + 5px))}.admin-tabs.section-courses .admin-tab-indicator{transform:translate(calc(200% + 10px))}.admin-tabs.section-accounts .admin-tab-indicator{transform:translate(calc(300% + 15px))}.admin-tabs.section-history .admin-tab-indicator{transform:translate(calc(400% + 20px))}.student-view-tabs{border:1px solid var(--border);background:#fff;border-radius:14px;gap:5px;width:min(620px,100%);margin:0 0 18px;padding:6px;display:grid;position:relative}.student-view-tabs a{z-index:1;min-height:42px;color:var(--muted);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;padding:0 17px;font-size:13px;font-weight:700;text-decoration:none;transition:background .18s,color .24s;display:flex;position:relative}.student-view-tabs a.active{color:#fff}.student-view-indicator{z-index:0;background:var(--brand-navy);border-radius:10px;transition:transform .32s cubic-bezier(.22,.75,.24,1);position:absolute;top:6px;bottom:6px;left:6px;box-shadow:0 5px 14px #1837562e}.admin-workspace{border:1px solid var(--border);background:#fff;border-radius:18px;padding:28px;box-shadow:0 10px 28px #1837560d}.admin-section-title{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.admin-section-title h2{color:var(--brand-navy);margin:0 0 5px;font-size:24px}.admin-section-tools,.admin-live-search{align-items:center;display:flex}.admin-section-tools{gap:10px;min-width:0}.admin-live-search{border:1px solid var(--border);width:min(430px,44vw);min-height:42px;color:var(--muted);background:#f5f9fb;border-radius:11px;gap:9px;padding:0 13px}.admin-live-search:focus-within{border-color:#10508f73;box-shadow:0 0 0 3px #10508f14}.admin-live-search input{width:100%;min-width:0;color:var(--brand-navy);font:inherit;background:0 0;border:0;outline:0;font-size:13px}.admin-history-empty{color:var(--muted);text-align:center;padding:42px 16px}.admin-history-entity{flex-direction:column;align-items:flex-start;gap:4px;min-width:0;display:flex}.admin-history-entity strong,.admin-history-entity small{display:block}.admin-history-entity small{color:var(--muted);line-height:1.35}.admin-history-status-mark{flex:0 0 32px;width:32px;height:32px;margin:0}.admin-history-change{white-space:nowrap;align-items:center;gap:7px;display:flex}.admin-history-row{cursor:pointer}.admin-history-note{color:var(--muted);margin:14px 2px 0;font-size:11px}.admin-history-modal{width:min(920px,100%)}.admin-history-modal .admin-table-wrap{max-height:min(58vh,560px);overflow:auto}.admin-primary-button{background:var(--brand-navy);color:#fff;cursor:pointer;min-height:40px;font:inherit;border:0;border-radius:10px;align-items:center;gap:9px;padding:0 18px;font-size:13px;font-weight:750;transition:background .16s,transform .16s;display:inline-flex}.admin-primary-button:hover{background:var(--brand-blue);transform:translateY(-1px)}.admin-add-button{border:1px solid var(--brand-navy);background:var(--brand-navy);color:#fff;cursor:pointer;border-radius:10px;place-items:center;width:40px;height:40px;padding:0;transition:background .15s,border-color .15s,transform .15s;display:grid}.admin-add-button:hover{border-color:var(--brand-blue);background:var(--brand-blue);transform:translateY(-1px)}.admin-primary-button:disabled{cursor:wait;opacity:.65}.admin-error{color:#a62f3c;background:#fff4f5;border:1px solid #d045533d;border-radius:10px;margin-bottom:16px;padding:12px 14px;font-size:13px}.attendance-request-error{color:#a62f3c;text-align:center;background:#fff4f5;border-bottom:1px solid #d045533d;padding:11px 24px;font-size:12px}.admin-editor{grid-template-columns:repeat(3,minmax(180px,1fr));gap:15px;margin:0;padding:0;display:grid}.admin-modal-backdrop{z-index:200;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#11263c6b;place-items:center;padding:28px;animation:.16s both admin-backdrop-in;display:grid;position:fixed;inset:0}.admin-modal{background:#f7fcfd;border:1px solid #45b9c840;border-radius:18px;width:min(820px,100%);max-height:calc(100vh - 56px);padding:24px;animation:.19s both admin-modal-in;overflow-y:auto;box-shadow:0 24px 70px #102b4447}.admin-modal-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;display:flex}.admin-modal-heading h3{color:var(--brand-navy);margin:0;font-size:21px}.admin-modal-heading button{border:1px solid var(--border);width:34px;height:34px;color:var(--muted);cursor:pointer;background:#fff;border-radius:9px;place-items:center;padding:0;font-size:23px;line-height:1;display:grid}.admin-modal-heading button:hover{color:var(--brand-navy);border-color:#10508f4d}.admin-confirm-modal{background:#fff;width:min(480px,100%)}.admin-confirm-text{color:var(--brand-navy);margin:0 0 24px;font-size:15px;line-height:1.55}.admin-confirm-modal .admin-editor-actions>button:first-child{transition:background .16s,border-color .16s,color .16s,transform .16s}.admin-confirm-modal .admin-editor-actions>button:first-child:hover:not(:disabled){color:var(--brand-navy);background:#eef4f8;border-color:#10508f3d;transform:translateY(-1px)}.admin-danger-button{color:#fff;cursor:pointer;min-height:40px;font:inherit;background:#b73a47;border:0;border-radius:10px;padding:0 18px;font-size:13px;font-weight:750;transition:background .16s,transform .16s}.admin-danger-button:hover:not(:disabled){background:#9e2633;transform:translateY(-1px)}.admin-danger-button:disabled{cursor:wait;opacity:.65}@keyframes admin-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes admin-modal-in{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}.admin-editor label{color:var(--brand-navy);gap:7px;font-size:11px;font-weight:750;display:grid}.admin-editor input,.admin-editor select{border:1px solid var(--border);width:100%;min-height:42px;color:var(--brand-navy);font:inherit;background:#fff;border-radius:9px;outline:none;padding:0 12px;font-size:13px}.admin-editor input:focus,.admin-editor select:focus{border-color:var(--brand-cyan);box-shadow:0 0 0 3px #45b9c81f}.admin-selection-menu,.admin-selection-menu .selection-trigger{width:100%}.admin-selection-menu .selection-trigger{border:1px solid var(--border);min-height:42px;color:var(--brand-navy);cursor:pointer;text-align:left;background:#fff;border-radius:9px;outline:none;justify-content:space-between;align-items:center;gap:12px;padding:0 12px;font-size:13px;display:flex}.admin-selection-menu.open .selection-trigger,.admin-selection-menu .selection-trigger:focus-visible{border-color:var(--brand-cyan);box-shadow:0 0 0 3px #45b9c81f}.admin-select-chevron{border-right:2px solid var(--brand-cyan-dark);border-bottom:2px solid var(--brand-cyan-dark);flex:none;width:10px;height:10px;margin:-4px 3px 0 0;transition:margin .16s,transform .16s;transform:rotate(45deg)}.admin-selection-menu.open .admin-select-chevron{margin-top:4px;transform:rotate(225deg)}.admin-editor .admin-checkbox{border:1px solid var(--border);background:#fff;border-radius:9px;align-self:end;align-items:center;gap:9px;min-height:42px;padding:0 12px;display:flex}.admin-checkbox input{width:16px;min-height:16px;accent-color:var(--brand-blue)}.admin-editor-actions{grid-column:1/-1;justify-content:flex-end;gap:9px;display:flex}.admin-editor-actions>button:first-child{border:1px solid var(--border);min-height:40px;color:var(--muted);cursor:pointer;font:inherit;background:#fff;border-radius:10px;padding:0 16px;font-size:13px;font-weight:700}.admin-table-wrap{border:1px solid var(--border);border-radius:13px;overflow:auto}.admin-table{border-collapse:collapse;width:100%;min-width:820px;color:var(--brand-navy);font-size:13px}.admin-table th{border-bottom:1px solid var(--border);color:var(--muted);letter-spacing:.06em;text-align:left;text-transform:uppercase;background:#f5f8fa;padding:12px 15px;font-size:10px;font-weight:800}.admin-table td{vertical-align:middle;border-bottom:1px solid #edf1f4;padding:13px 15px}.admin-table td:first-child{white-space:normal;overflow-wrap:anywhere}.admin-table tbody tr:last-child td{border-bottom:0}.admin-table tbody tr:hover{background:#eaf7f9}.admin-entity-link{color:var(--brand-navy);text-underline-offset:3px;font-weight:700;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:color .15s,text-decoration-color .15s}.admin-entity-link:hover{color:var(--brand-blue);-webkit-text-decoration-color:var(--brand-cyan);-webkit-text-decoration-color:var(--brand-cyan);-webkit-text-decoration-color:var(--brand-cyan);text-decoration-color:var(--brand-cyan)}.admin-state{cursor:pointer;border:0;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:750;transition:filter .15s,transform .15s;display:inline-flex}.admin-state:hover:not(:disabled){filter:saturate(1.25)brightness(.96);transform:translateY(-1px)}.admin-state:disabled{cursor:not-allowed;opacity:.72}.admin-state.visible{color:#24754a;background:#e8f8ef}.admin-state.hidden{color:#717781;background:#f2f3f5}.admin-state.blocked{color:#ad2d3b;background:#ffeaed}.admin-state.account-state{justify-content:center;min-width:96px}.admin-row-actions{justify-content:flex-end;gap:7px;display:flex}.admin-row-actions button{border:1px solid var(--border);width:34px;height:34px;color:var(--brand-blue);cursor:pointer;background:#fff;border-radius:8px;place-items:center;padding:0;transition:border-color .15s,background .15s,color .15s,transform .15s;display:grid}.admin-row-actions button:hover{color:var(--brand-navy);background:#eaf3fb;border-color:#10508f59;transform:translateY(-1px)}.admin-row-actions button.danger{color:#b73a47}.admin-row-actions button.danger:hover{color:#9e2633;background:#fff0f2;border-color:#b73a474d}.admin-row-actions button.visibility-off{color:#7d8b94}.admin-row-actions button.visibility-off:hover{color:#53636d;background:#f1f4f6;border-color:#cbd6dc}@media (max-width:900px){.admin-heading{flex-direction:column;align-items:flex-start}.admin-editor{grid-template-columns:1fr 1fr}}@media (max-width:640px){.admin-page{width:min(100% - 24px,1500px);padding-top:24px}.admin-heading,.admin-workspace{padding:20px}.admin-summary{width:100%;overflow-x:auto}.admin-section-title{flex-direction:column;align-items:flex-start}.admin-editor{grid-template-columns:1fr}.admin-modal-backdrop{padding:12px}.admin-modal{max-height:calc(100vh - 24px);padding:20px}}.analytics-dashboard{gap:22px;padding:40px 0 60px;transition:opacity .16s;display:grid}.analytics-dashboard.is-loading{opacity:.7}.analytics-heading,.analytics-card-heading,.analytics-filter-title,.analytics-filter-actions,.analytics-chart-controls{align-items:center;display:flex}.analytics-heading{justify-content:space-between;align-items:center;gap:20px;padding:30px 32px}.analytics-heading h1{color:var(--brand-navy);letter-spacing:-.04em;margin:0 0 6px;font-size:clamp(30px,3.4vw,46px);font-weight:650}.analytics-heading p,.analytics-card-heading h2{margin:0}.analytics-heading p,.analytics-card-heading>small,.analytics-discipline-list small,.analytics-table small{color:var(--muted)}.analytics-apply-button,.analytics-reset-button{cursor:pointer;min-height:42px;font:inherit;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:12px;font-weight:700;display:inline-flex}.analytics-apply-button{border:1px solid var(--brand-blue);background:var(--brand-blue);color:#fff;border-color:var(--brand-navy);background:var(--brand-navy)}.analytics-apply-button:hover{background:#102e49}.analytics-filter-card,.analytics-card,.analytics-kpi-grid article{background:#fff;border:1px solid #dce7ec;border-radius:18px;box-shadow:0 10px 30px #1032480f}.analytics-filter-card{padding:20px}.analytics-filter-title{color:var(--brand-navy);gap:8px;margin-bottom:16px}.analytics-filter-grid{grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;display:grid}.analytics-filter-grid label,.analytics-chart-controls label{color:var(--muted);letter-spacing:.055em;text-transform:uppercase;gap:6px;font-size:10px;font-weight:750;display:grid}.analytics-filter-grid input,.analytics-selection-menu .selection-trigger{min-width:0;height:46px;color:var(--brand-navy);font:inherit;background-color:#fff;border:1px solid #cedde4;border-radius:12px;outline:none;padding:0 14px;font-size:13px;font-weight:650}.analytics-filter-grid input{width:100%;padding-right:12px;font-weight:650}.analytics-date-input{min-width:0;display:block;position:relative}.analytics-date-input input{color:var(--brand-navy);padding-right:44px;font-size:13px;font-weight:650}.analytics-date-input input::placeholder{color:var(--muted);font:inherit;opacity:1}.analytics-date-button{width:42px;height:46px;color:var(--brand-blue);cursor:pointer;background:0 0;border:0;place-items:center;display:grid;position:absolute;top:0;right:0}.analytics-date-button:disabled{color:var(--muted);cursor:default;opacity:.55}.analytics-calendar{z-index:80;width:min(300px,100vw - 44px);color:var(--brand-navy);letter-spacing:0;text-transform:none;background:#fff;border:1px solid #cedde4;border-radius:14px;padding:12px;font-size:12px;font-weight:650;position:absolute;top:calc(100% + 7px);right:0;box-shadow:0 16px 38px #1837562e}.analytics-calendar-heading{grid-template-columns:36px 1fr 36px;align-items:center;gap:6px;min-height:38px;display:grid}.analytics-calendar-heading strong{text-align:center;text-transform:capitalize}.analytics-calendar-heading button{width:34px;height:34px;color:var(--brand-blue);cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;display:grid}.analytics-calendar-heading button:hover{background:var(--surface-soft)}.analytics-calendar-weekdays,.analytics-calendar-days{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.analytics-calendar-weekdays{color:var(--muted);text-align:center;margin:7px 0 5px;font-size:10px}.analytics-calendar-weekdays span,.analytics-calendar-days button,.analytics-calendar-days>span{aspect-ratio:1;place-items:center;display:grid}.analytics-calendar-days button{min-width:0;color:var(--brand-navy);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:9px}.analytics-calendar-days button:hover,.analytics-calendar-days button.today{background:var(--surface-soft)}.analytics-calendar-days button.selected{background:var(--brand-navy);color:#fff}.analytics-date-input.open input,.analytics-filter-grid input:focus,.analytics-selection-menu.open .selection-trigger,.analytics-selection-menu .selection-trigger:focus-visible{border-color:var(--brand-blue);box-shadow:0 0 0 3px #0551961c}.analytics-selection-menu{width:100%}.analytics-selection-menu .selection-trigger{cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:12px;width:100%;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.analytics-selection-menu .selection-trigger:hover{background:#fbfdfe;border-color:#abc4d0}.analytics-selection-menu .admin-select-chevron{border-color:var(--brand-blue);width:9px;height:9px;margin:-4px 2px 0 0;transition:margin .16s,transform .16s;transform:rotate(45deg)}.analytics-selection-menu.open .admin-select-chevron{margin-top:4px;transform:rotate(225deg)}.analytics-options-menu{scrollbar-color:#18375640 transparent;scrollbar-width:thin;border-color:#cedde4;border-radius:14px;max-height:min(330px,100vh - 32px);padding:7px;overflow-y:auto;box-shadow:0 16px 38px #1837562e}.analytics-options-menu .selection-option{min-height:40px;color:var(--brand-navy);white-space:normal;border-radius:9px;padding:8px 11px;font-size:13px}.analytics-options-menu .selection-option:hover{background:#05519612}.analytics-options-menu .selection-option.selected,.analytics-options-menu .selection-option.selected:hover{color:var(--brand-blue);background:#05519624}.analytics-filter-actions{justify-content:flex-end;gap:10px;margin-top:16px}.analytics-reset-button{color:var(--muted);background:#fff;border:1px solid #ccdce4}.analytics-reset-button:hover{color:var(--brand-navy);background:#f1f6f8}.analytics-kpi-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.analytics-kpi-grid article{align-content:start;gap:6px;min-height:116px;padding:14px 20px 20px;display:grid}.analytics-kpi-grid span,.analytics-card-heading>span,.analytics-card-heading>div:first-child>span,.analytics-status-title,.analytics-students-title,.analytics-subjects-title,.analytics-heatmap-title{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;font-size:10px;font-weight:750}.analytics-kpi-grid strong{color:var(--brand-navy);font-size:30px}.analytics-kpi-grid small{color:var(--muted);align-items:center;gap:4px;font-size:11px;display:flex}.analytics-kpi-grid small.positive{color:#32845a}.analytics-kpi-grid small.negative{color:#c54f49}.analytics-main-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.analytics-chart-builder{grid-column:span 2}.analytics-main-grid>.analytics-card{padding:5px 20px 12px}.analytics-main-grid>.analytics-status-card,.analytics-main-grid>.analytics-chart-builder{padding-top:14px}.analytics-main-grid .analytics-card-heading{align-items:flex-start;min-height:0}.analytics-card{padding:10px 22px 26px;overflow:hidden}.analytics-card-heading{justify-content:space-between;gap:18px;min-height:46px;margin-top:4px;margin-bottom:14px}.analytics-card-heading h2{color:var(--brand-navy);margin-top:4px;font-size:19px}.analytics-chart-controls{flex-wrap:nowrap;justify-content:flex-end;align-items:flex-start;gap:8px}.analytics-chart-heading{align-items:flex-start;margin-top:0}.analytics-chart-controls .analytics-selection-menu{flex:0 0 230px;width:230px;min-width:230px;height:46px}.analytics-chart-controls .analytics-selection-menu .selection-trigger{height:46px}.analytics-bar-scroll{width:100%;overflow-x:auto}.analytics-bar-chart{align-items:flex-end;gap:12px;width:max-content;min-width:100%;min-height:280px;padding:26px 10px 0;display:flex}.analytics-bar-item{text-align:center;flex:1 0 72px;grid-template-rows:20px 210px 38px;gap:5px;width:72px;min-width:72px;height:100%;display:grid}.analytics-bar-track{background:#edf3f6;border-radius:9px 9px 5px 5px;align-items:flex-end;display:flex;overflow:hidden}.analytics-bar-track i{border-radius:inherit;background:linear-gradient(180deg, var(--brand-cyan), var(--brand-blue));width:100%;min-height:3px;display:block}.analytics-bar-value{color:var(--brand-navy);font-size:11px;font-weight:750}.analytics-bar-label,.analytics-line-labels span{color:var(--muted);text-overflow:ellipsis;font-size:10px;line-height:1.2;overflow:hidden}.analytics-line-chart svg{width:100%;height:270px}.analytics-grid-line{stroke:#e6eef2;stroke-width:1px}.analytics-line-path{fill:none;stroke:var(--brand-blue);stroke-linecap:round;stroke-linejoin:round;stroke-width:4px}.analytics-line-point{fill:#fff;stroke:var(--brand-cyan);stroke-width:3px}.analytics-line-labels{justify-content:space-between;gap:8px;display:flex}.analytics-line-labels span{text-align:center;flex:1;max-width:100px}.analytics-donut-layout{justify-content:center;align-items:center;gap:34px;min-height:300px;display:flex}.analytics-donut,.analytics-status-donut{border-radius:50%;place-items:center;width:190px;height:190px;display:grid}.analytics-donut>span,.analytics-status-donut>span{background:#fff;border-radius:50%;place-items:center;width:112px;height:112px;display:grid}.analytics-donut>span{color:var(--brand-navy);text-align:center;align-content:center}.analytics-donut>span strong,.analytics-donut>span small{display:block}.analytics-donut>span strong{font-size:20px}.analytics-donut>span small{color:var(--muted);font-size:9px}.analytics-donut-legend{gap:9px;display:grid}.analytics-donut-legend div,.analytics-status-list div{align-items:center;gap:8px;display:flex}.analytics-donut-legend i,.analytics-status-list i{border-radius:3px;width:10px;height:10px;display:block}.analytics-donut-legend span,.analytics-status-list span{color:var(--muted);font-size:11px}.analytics-status-card{align-content:start;display:grid}.analytics-status-title{display:block}.analytics-status-donut{margin:20px auto 22px}.analytics-status-donut>span{text-align:center;align-content:center}.analytics-status-donut strong{color:var(--brand-navy);font-size:24px}.analytics-status-donut small{color:var(--muted);font-size:10px}.analytics-status-list{grid-template-columns:1fr;gap:10px;margin-top:8px;display:grid}.analytics-status-list strong{color:var(--brand-navy);margin-left:auto;font-size:12px}.analytics-table-scroll,.analytics-heatmap-days-scroll{overflow-x:auto}.analytics-heatmap-scroll{grid-template-columns:130px minmax(0,1fr);gap:7px;min-width:0;display:grid;overflow:hidden}.analytics-heatmap{min-width:513px}.analytics-heatmap-card{gap:14px;padding-top:14px;display:grid}.analytics-heatmap-row{grid-template-columns:repeat(7,1fr);gap:7px;margin-bottom:7px;display:grid}.analytics-heatmap-row>strong,.analytics-heatmap-row>i{border-radius:8px;justify-content:center;align-items:center;min-height:40px;font-size:10px;font-style:normal;font-weight:700;display:flex}.analytics-heatmap-weeks{background:#fff;flex-direction:column;min-width:0;display:flex}.analytics-heatmap-weeks>span{min-height:40px;color:var(--muted);align-items:center;margin-bottom:7px;font-size:10px;font-weight:700;display:flex}.analytics-heatmap-weeks>.analytics-heatmap-week-header{min-height:24px}.analytics-heatmap-header>strong{min-height:24px;color:var(--brand-navy)}.analytics-table{border-collapse:collapse;white-space:nowrap;width:100%}.analytics-table th,.analytics-table td{text-align:left;border-bottom:1px solid #e8eef1;padding:12px 10px;font-size:11px}.analytics-table th{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:9px}.analytics-table tbody tr:hover{background:#f1f7fa}.analytics-table a{color:var(--brand-blue);gap:2px;font-weight:700;text-decoration:none;display:grid}.analytics-table small{font-size:9px;font-weight:500;display:block}.analytics-rate,.analytics-status{border-radius:8px;justify-content:center;align-items:center;min-height:28px;padding:0 9px;font-size:10px;font-weight:750;display:inline-flex}.analytics-rate.good{color:#28744c;background:#e4f5eb}.analytics-rate.medium{color:#9b6b18;background:#fff3d9}.analytics-rate.bad{color:#b4433e;background:#fee9e7}.analytics-rate.unmarked{color:#7d919d;background:#f0f3f5}.analytics-status.status-late{color:#9b6712;background:#fff1d7}.analytics-status.status-critical_late{color:#b9502b;background:#fbe7db}.analytics-status.status-ill{color:#326ca3;background:#e4effa}.analytics-status.status-reason{color:#6358b2;background:#eeeafd}.analytics-status.status-absent{color:#b13e39;background:#fde7e5}.analytics-discipline-list{gap:15px;display:grid}.analytics-discipline-list>div,.analytics-discipline-list>div>div{align-items:center;gap:12px;display:flex}.analytics-discipline-list>div{justify-content:space-between}.analytics-discipline-list>div>span{gap:3px;min-width:0;display:grid}.analytics-discipline-list>div>span strong{color:var(--brand-navy);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.analytics-discipline-list>div>div>i{background:#edf2f4;border-radius:10px;width:100px;height:7px;display:block;overflow:hidden}.analytics-discipline-list b{border-radius:inherit;background:var(--brand-cyan);height:100%;display:block}.analytics-discipline-list>div>div>strong{width:35px;color:var(--brand-navy);text-align:right;font-size:11px}.analytics-empty{min-height:160px;color:var(--muted);text-align:center;place-items:center;font-size:12px;display:grid}.analytics-primary-filters{grid-template-columns:repeat(5,minmax(145px,1fr))}.analytics-period-presets{color:var(--muted);flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:14px;display:flex}.analytics-period-presets button{border:1px solid var(--border);min-height:32px;color:var(--muted);cursor:pointer;background:#fff;border-radius:9px;padding:0 11px;font-size:11px;font-weight:700;transition:background .15s,border-color .15s,color .15s}.analytics-period-presets button:hover{color:var(--brand-blue);background:#0551960f;border-color:#0551964d}.analytics-period-presets button.active,.analytics-period-presets button.active:hover{border-color:var(--brand-navy);background:var(--brand-navy);color:#fff}.analytics-filter-grid input:disabled{color:#71838d;cursor:default;opacity:1;background:#f3f6f7;border-color:#dce5e9}.analytics-extra-filters{border-top:1px solid var(--border);margin-top:14px}.analytics-extra-filters summary{width:fit-content;color:var(--brand-blue);cursor:pointer;padding:13px 0;font-size:11px;font-weight:700}.analytics-filter-footer{justify-content:space-between;align-items:center;gap:14px;margin-top:16px;display:flex}.analytics-filter-footer .analytics-filter-actions{margin-top:0}.analytics-engagement-toggle{cursor:pointer;align-items:center;display:inline-flex}.analytics-engagement-toggle input{opacity:0;width:1px;height:1px;position:absolute}.analytics-engagement-toggle span{border:1px solid var(--border);min-height:38px;color:var(--muted);border-radius:10px;align-items:center;gap:8px;padding:0 12px;font-size:11px;font-weight:700;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.analytics-engagement-toggle:hover span{color:var(--brand-navy);background:#f1f6f8}.analytics-engagement-toggle input:checked+span,.analytics-engagement-toggle:hover input:checked+span{border-color:var(--brand-navy);background:var(--brand-navy);color:#fff}.analytics-student-picker{text-transform:none;min-width:0;position:relative}.analytics-student-trigger{width:100%;height:46px;color:var(--brand-navy);cursor:pointer;font:inherit;text-align:left;background:#fff;border:1px solid #cedde4;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:0 14px;font-size:13px;font-weight:650;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.analytics-student-picker.open .analytics-student-trigger{border-color:var(--brand-blue);box-shadow:0 0 0 3px #0551961c}.analytics-student-trigger:hover{background:#fbfdfe;border-color:#abc4d0}.analytics-student-trigger .admin-select-chevron{border-color:var(--brand-blue);flex:none}.analytics-student-picker.open .analytics-student-trigger .admin-select-chevron{margin-top:4px;transform:rotate(225deg)}.analytics-student-panel{z-index:80;letter-spacing:normal;text-transform:none;background:#fff;border:1px solid #cedde4;border-radius:14px;gap:8px;width:min(390px,100vw - 48px);padding:10px;display:grid;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 16px 38px #1837562e}.analytics-results{gap:22px;display:grid}.analytics-no-data{min-height:260px;color:var(--muted);text-align:center;align-content:center;place-items:center;gap:8px;padding:42px;display:grid}.analytics-no-data svg{color:var(--brand-blue);margin-bottom:4px}.analytics-no-data h2,.analytics-no-data p{margin:0}.analytics-no-data h2{color:var(--brand-navy);font-size:24px}.analytics-no-data p{font-size:13px}.analytics-student-search{border:1px solid var(--border);background:var(--surface-soft);border-radius:10px;align-items:center;height:40px;padding:0 11px;color:var(--muted)!important;grid-template-columns:none!important;gap:8px!important;display:flex!important}.analytics-student-search input{height:auto;box-shadow:none;background:0 0;border:0;padding:0}.analytics-student-selection-summary{min-height:28px;color:var(--muted);justify-content:flex-end;align-items:center;padding:0 4px;font-size:10px;display:flex}.analytics-student-selection-summary button{color:var(--brand-blue);cursor:pointer;background:0 0;border:0;font-size:10px;font-weight:700}.analytics-student-options{gap:3px;max-height:310px;display:grid;overflow-y:auto}.analytics-student-options>button{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:9px;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:9px;padding:9px;display:grid}.analytics-student-options>button:hover{background:#0551960f}.analytics-student-options>button.selected{background:#0551961c}.analytics-student-check{color:#fff;border:1px solid #cbd9df;border-radius:7px;place-items:center;width:22px;height:22px;display:grid}.analytics-student-options>button.selected .analytics-student-check{border-color:var(--brand-blue);background:var(--brand-blue)}.analytics-student-options>button>span:last-child{gap:2px;min-width:0;display:grid}.analytics-student-options strong{color:var(--brand-navy);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.analytics-student-options small{color:var(--muted);font-size:9px}.analytics-picker-empty{color:var(--muted);text-align:center;padding:24px;font-size:11px}.analytics-students-section{gap:14px;padding-top:14px;display:grid}.analytics-students-heading,.analytics-student-sort{align-items:center;display:flex}.analytics-students-heading{justify-content:space-between;align-items:flex-start;gap:18px;min-height:46px}.analytics-student-sort{gap:8px}.analytics-student-sort .analytics-selection-menu{width:220px}.analytics-student-sort button{width:46px;height:46px;color:var(--brand-blue);cursor:pointer;background:#fff;border:1px solid #cedde4;border-radius:12px;place-items:center;padding:0;transition:border-color .15s,background .15s,color .15s;display:grid}.analytics-student-sort button:hover{color:var(--brand-navy);background:#f5f9fb;border-color:#abc4d0}.analytics-student-legends{border-top:1px solid var(--border);gap:9px;padding:10px 0 2px;display:grid}.analytics-student-legend{flex-wrap:wrap;align-items:center;gap:7px 14px;display:flex}.analytics-student-legend>strong{min-width:100px;color:var(--brand-navy);font-size:10px}.analytics-student-legend>span{color:var(--muted);align-items:center;gap:6px;font-size:9px;display:inline-flex}.analytics-student-legend>span>i{border-radius:6px;width:16px;height:7px}.analytics-student-grid{grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px;display:grid}.analytics-subjects-section{gap:14px;padding-top:14px;display:grid}.analytics-subject-card-grid{grid-template-columns:repeat(3,minmax(220px,1fr));gap:12px;display:grid}.analytics-student-card,.analytics-subject-card{border:1px solid var(--border);background:#fbfdfe;border-radius:14px;flex-direction:column;gap:9px;width:100%;height:118px;padding:16px;display:flex}.analytics-student-card.has-engagement{height:166px}.analytics-student-card-head,.analytics-subject-card-head{justify-content:space-between;align-items:flex-start;gap:10px;min-width:0;height:36px;min-height:36px;display:flex}.analytics-subject-card-head>strong,.analytics-student-card-head a{min-width:0;height:36px;color:var(--brand-navy);overflow-wrap:anywhere;scrollbar-color:#18375638 transparent;scrollbar-width:thin;flex:1;font-size:13px;font-weight:750;line-height:18px;display:block;overflow:hidden auto}.analytics-subject-card-head,.analytics-subject-card-head>strong{height:54px;min-height:54px}.analytics-student-card>small{color:var(--muted);font-size:9px}.analytics-student-progress{background:#e8eef1;border-radius:10px;flex-shrink:0;height:9px;min-height:9px;margin-top:auto;display:flex;overflow:hidden}.analytics-student-progress i{flex:none;height:100%;display:block}.analytics-student-engagement{border-top:1px solid var(--border);color:var(--brand-navy);gap:7px;padding-top:8px;font-size:10px;display:grid}.analytics-student-engagement .analytics-student-progress{margin-top:0}.analytics-student-engagement>div:first-child{justify-content:space-between;align-items:center;display:flex}.analytics-student-engagement strong:not(.analytics-rate){color:var(--brand-navy);margin-left:auto}.analytics-student-engagement .analytics-rate{margin-left:auto}@media (max-width:1180px){.analytics-filter-grid,.analytics-primary-filters{grid-template-columns:repeat(3,1fr)}.analytics-main-grid{grid-template-columns:1fr}.analytics-chart-builder{grid-column:auto;min-height:0}.analytics-student-grid,.analytics-subject-card-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}}@media (max-width:760px){.analytics-heading{flex-direction:column;align-items:flex-start}.analytics-filter-grid,.analytics-primary-filters,.analytics-kpi-grid{grid-template-columns:repeat(2,1fr)}.analytics-card-heading{flex-direction:column;align-items:flex-start}.analytics-chart-controls{flex-wrap:wrap;justify-content:flex-start}.analytics-filter-footer{flex-direction:column;align-items:stretch}.analytics-filter-footer .analytics-filter-actions{justify-content:flex-end}.analytics-student-grid,.analytics-subject-card-grid{grid-template-columns:1fr}.analytics-students-heading{flex-direction:column;align-items:flex-start}}@media (max-width:520px){.analytics-filter-grid,.analytics-primary-filters,.analytics-kpi-grid{grid-template-columns:1fr}.analytics-filter-actions{flex-direction:column;align-items:stretch}.analytics-filter-actions button{width:100%}.analytics-card{padding:16px}.analytics-chart-controls .analytics-selection-menu{flex-basis:auto;width:100%;min-width:0}.analytics-donut-layout{flex-direction:column}.analytics-student-panel{left:auto;right:0}.analytics-student-sort,.analytics-student-sort .analytics-selection-menu{width:100%}.analytics-student-sort .analytics-selection-menu{min-width:0}}*{box-sizing:border-box;scrollbar-color:#d7e1e6 #fff}html{background:var(--surface-soft);scrollbar-gutter:stable;min-width:320px}::-webkit-scrollbar{background:#fff;width:12px;height:12px}::-webkit-scrollbar-track{background:#fff}::-webkit-scrollbar-corner{background:#fff}::-webkit-scrollbar-thumb{background:#d7e1e6;border:3px solid #fff;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#bdcbd2}body{min-height:100vh;color:var(--text);background:linear-gradient(#fff 0,#f6f9fb 22rem,#f4f8fa 100%);margin:0;font-family:Inter,Segoe UI,Arial,sans-serif}main{transition:opacity .28s,transform .28s cubic-bezier(.22,.75,.24,1)}html.section-transitioning main{opacity:0;pointer-events:none;transform:translateY(8px)}a{color:inherit;text-decoration:none}button,select{font:inherit}.site-header{z-index:20;background:0 0;padding:14px 0 0;position:relative}.header-inner{background:#fff;border-radius:16px;justify-content:space-between;align-items:center;gap:28px;width:min(1440px,100% - 48px);min-height:104px;margin:0 auto;padding:16px 24px;display:flex;box-shadow:0 -7px 20px #1837561c,0 9px 26px #1837561a}.header-logo{object-fit:contain;object-position:left center;width:auto;max-width:100%;height:72px;display:block}.header-logo-link{flex:none;width:auto;max-width:min(335px,56vw);height:72px;line-height:0;display:inline-flex}.header-logo-link .header-logo{pointer-events:none}.login-link{width:42px;height:42px;color:var(--brand-cyan-dark);border-radius:50%;justify-content:center;align-items:center;transition:all .16s;display:inline-flex}.login-link svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:25px;height:25px}.login-link:hover{color:var(--brand-blue);background:#eefafb}.account-controls{align-items:center;gap:14px;display:flex}.account-summary{flex-direction:column;align-items:flex-end;line-height:1.25;display:flex}.account-summary>span{color:var(--brand-navy);font-size:13px;font-weight:680}.account-name-mobile{display:none}.account-summary small{color:var(--brand-cyan-dark);letter-spacing:.08em;text-transform:uppercase;margin-top:3px;font-size:10px;font-weight:750}.account-controls button{border:1px solid var(--border);min-height:38px;color:var(--muted);cursor:pointer;background:#fff;border-radius:9px;padding:0 14px;font-size:12px;font-weight:650}.account-controls button:hover{color:var(--brand-blue);border-color:#45b9c88c}.role-navigation{z-index:21;background:0 0;position:relative}.role-navigation-inner{justify-content:center;align-items:center;width:min(1440px,100% - 48px);min-height:58px;margin:0 auto;padding:9px 0;display:flex;overflow:visible}.role-navigation-tabs{background:#fff;border:0;border-radius:12px;gap:4px;padding:4px;display:grid;position:relative;box-shadow:0 8px 24px #18375617}.role-navigation-tabs.count-2{grid-template-columns:repeat(2,minmax(0,1fr));width:min(360px,100%)}.role-navigation-tabs.count-3{grid-template-columns:repeat(3,minmax(0,1fr));width:min(540px,100%)}.role-navigation-tabs.count-4{grid-template-columns:repeat(4,minmax(0,1fr));width:min(720px,100%)}.role-navigation-tabs.count-5{grid-template-columns:repeat(5,minmax(0,1fr));width:min(900px,100%)}.role-navigation-tabs.count-6{grid-template-columns:repeat(6,minmax(0,1fr));width:min(1080px,100%)}.role-navigation-indicator{z-index:0;background:var(--brand-navy);border-radius:9px;transition:transform .32s cubic-bezier(.22,.75,.24,1);position:absolute;top:4px;bottom:4px;left:4px}.role-navigation-tabs.count-2 .role-navigation-indicator{width:calc(50% - 6px)}.role-navigation-tabs.count-3 .role-navigation-indicator{width:calc(33.3333% - 5.33333px)}.role-navigation-tabs.count-4 .role-navigation-indicator{width:calc(25% - 5px)}.role-navigation-tabs.count-5 .role-navigation-indicator{width:calc(20% - 4.8px)}.role-navigation-tabs.count-6 .role-navigation-indicator{width:calc(16.6667% - 4.66667px)}.role-navigation-link{z-index:1;color:#617887;text-align:center;white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:38px;padding:0 16px;font-size:12px;font-weight:700;transition:background .18s,border-color .18s,color .18s,box-shadow .18s;display:inline-flex;position:relative}.role-navigation-link:hover{color:var(--brand-navy);background:#18375614;border-color:#0000}@media (prefers-reduced-motion:reduce){main,.role-navigation-indicator{transition:none}}.role-navigation-link.active,.role-navigation-link.active:hover{color:#fff;background:0 0;border-color:#0000}.account-role-plus{margin-left:3px;font-size:1.15em;font-weight:900;line-height:1}.page-shell{width:min(1440px,100% - 48px);margin:0 auto;padding:48px 0 64px}.analytics-placeholder{border:1px solid var(--border);max-width:760px;box-shadow:var(--shadow);text-align:center;background:linear-gradient(135deg,#fff 0%,#f0fafc 100%);border-radius:20px;margin:36px auto 0;padding:54px 48px}.analytics-placeholder>span{color:var(--brand-cyan-dark);letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:800}.analytics-placeholder h1{color:var(--brand-navy);letter-spacing:-.035em;margin:10px 0 12px;font-size:38px;font-weight:650}.analytics-placeholder p{color:var(--muted);margin:0;font-size:14px}.courses-hero{max-width:1280px;box-shadow:var(--shadow);border-radius:22px;margin:0 auto;overflow:hidden}.courses-hero img{object-fit:cover;width:100%;height:clamp(270px,24vw,340px);display:block}.section-heading{justify-content:space-between;align-items:end;gap:24px;margin:42px 0 22px;display:flex}.section-heading h2{color:var(--brand-navy);margin:0;font-size:26px;font-weight:650}.student-search-section{border:1px solid var(--border);background:#fffffff0;border-radius:18px;grid-template-columns:minmax(300px,1fr) minmax(420px,.85fr);align-items:center;gap:42px;max-width:1280px;margin:28px auto 0;padding:25px 28px;display:grid;box-shadow:0 10px 28px #18375612}.student-search-copy>span,.student-page-heading>div>span,.student-not-found>span{color:var(--brand-cyan-dark);letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:750}.student-search-copy h2{color:var(--brand-navy);margin:7px 0 6px;font-size:22px;font-weight:650}.student-search-copy p{color:var(--muted);margin:0;font-size:13px;line-height:1.5}.student-search-form label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:7px;font-size:11px;font-weight:700;display:block}.student-search-controls{gap:10px;display:flex}.student-search-controls input{width:100%;min-width:0;height:44px;color:var(--text);font:inherit;background:#fff;border:1px solid #cddce3;border-radius:10px;outline:none;padding:0 14px}.student-search-controls input:focus{border-color:var(--brand-cyan);box-shadow:0 0 0 3px #45b9c824}.student-search-input-wrap{flex:1;min-width:0;position:relative}.student-search-input-wrap>input{width:100%}.student-search-suggestions{z-index:30;background:#fff;border:1px solid #cadbe3;border-radius:11px;padding:5px;position:absolute;top:calc(100% + 7px);left:0;right:0;overflow:hidden;box-shadow:0 12px 28px #0f314924}.student-search-suggestions-scroll{scrollbar-color:#b9cbd4 transparent;scrollbar-width:thin;border-radius:7px;max-height:360px;overflow:hidden auto}.student-search-suggestions-scroll::-webkit-scrollbar{width:8px}.student-search-suggestions-scroll::-webkit-scrollbar-track{background:0 0;margin:7px 0}.student-search-suggestions-scroll::-webkit-scrollbar-thumb{background:#b9cbd4;border:2px solid #fff;border-radius:999px}.student-search-suggestion{width:100%;min-width:0;min-height:58px;color:var(--text);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px 9px 12px;transition:background .12s;display:flex;position:relative}.student-search-suggestion+.student-search-suggestion{border-top:0}.student-search-suggestion+.student-search-suggestion:before{content:"";background:#edf2f4;height:1px;position:absolute;top:0;left:12px;right:12px}.student-search-suggestion:hover,.student-search-suggestion:focus-visible{background:#eef6fa;outline:none}.student-search-suggestion-main{gap:5px;min-width:0;display:grid}.student-search-suggestion-title{color:var(--brand-navy);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.35;overflow:hidden}.student-search-suggestion-title strong{font-weight:700}.student-search-suggestion-title>span{color:#597082;font-weight:550}.student-search-suggestion small,.student-search-suggestion-state{color:var(--muted);font-size:10px}.control-page{padding-bottom:60px}.control-heading{text-align:center;max-width:850px;margin:0 auto}.control-heading h1{color:var(--brand-navy);margin:0;font-size:clamp(30px,4vw,44px)}.student-search-suggestion-arrow{color:#8ca2b0;font-size:22px;font-weight:400;line-height:1}.student-search-suggestion:hover .student-search-suggestion-arrow{color:var(--brand-blue)}.student-search-suggestion-state{padding:13px 12px;display:block}.search-dialog-backdrop{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0323474d;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.search-dialog{border:1px solid var(--border);text-align:center;background:#fff;border-radius:16px;width:min(100%,390px);padding:30px;box-shadow:0 22px 60px #03234733}.search-dialog h2{color:var(--brand-navy);margin:0 0 22px;font-size:25px}.search-dialog button{background:var(--brand-blue);color:#fff;cursor:pointer;min-height:42px;font:inherit;border:0;border-radius:9px;padding:0 22px;font-size:13px;font-weight:650}.course-grid{flex-wrap:wrap;justify-content:center;gap:20px;display:flex}.section-heading.courses-section-heading{text-align:center;justify-content:center;align-items:center}.course-card{border:1px solid var(--border);background:#fffffff0;border-radius:16px;flex:0 0 calc(33.3333% - 13.3333px);justify-content:space-between;align-items:flex-end;gap:18px;width:calc(33.3333% - 13.3333px);min-height:172px;padding:28px 30px;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 30px #18375612}.course-card:before{background:var(--brand-cyan);content:"";width:100%;height:5px;position:absolute;top:0;left:0}.course-card:hover{border-color:#45b9c8a6;transform:translateY(-3px);box-shadow:0 18px 38px #18375621}.course-number{color:var(--brand-navy);letter-spacing:-.055em;font-size:52px;font-weight:700;line-height:.9;display:block}.course-label{color:var(--muted);margin-top:12px;font-size:14px;display:block}.course-arrow{width:46px;height:46px;color:var(--brand-navy);background:#1837561a;border-radius:50%;flex:none;place-items:center;font-size:22px;transition:all .18s;display:grid}.course-card:hover .course-arrow{background:var(--brand-navy);color:#fff;transform:translate(3px)}.empty-state{color:var(--muted);text-align:center;background:#ffffffb8;border:1px dashed #b9cbd3;border-radius:16px;padding:52px 30px}.attendance-title-row{justify-content:space-between;align-items:end;gap:24px;margin-bottom:24px;display:flex}.attendance-title-row h1{color:var(--brand-navy);letter-spacing:-.035em;margin:0;font-size:clamp(28px,3.2vw,42px);font-weight:650}.attendance-card{border:1px solid var(--border);width:100%;min-width:0;max-width:100%;box-shadow:var(--shadow);background:#fffffffa;border-radius:18px;position:relative;overflow:hidden}.attendance-toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;min-width:0;min-height:96px;padding:20px 24px;display:flex}.group-control{flex:260px;min-width:220px}.control-label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:7px;font-size:11px;font-weight:700;display:block}.selection-menu{position:relative}.selection-trigger:disabled,.week-button:disabled,.today-button:disabled{cursor:default;opacity:.58}.attendance-card.is-loading .selection-trigger:disabled,.attendance-card.is-loading .today-button:disabled,.student-attendance-card.is-loading .today-button:disabled{cursor:wait}.week-button:disabled:hover{background:#fff;border-color:#cddce3}.selection-trigger,.selection-option{font:inherit}.group-menu{width:100%;max-width:310px}.group-menu .selection-trigger{width:100%;height:42px;color:var(--text);cursor:pointer;text-align:left;background:#fff;border:1px solid #cddce3;border-radius:10px;outline:none;justify-content:space-between;align-items:center;gap:14px;padding:0 13px;display:flex}.group-menu.open .selection-trigger,.group-menu .selection-trigger:focus-visible{border-color:var(--brand-cyan);box-shadow:0 0 0 3px #45b9c824}.selection-chevron{border-right:2px solid var(--brand-cyan-dark);border-bottom:2px solid var(--brand-cyan-dark);flex:none;width:9px;height:9px;margin:-4px 3px 0 0;transition:margin .15s,transform .15s;transform:rotate(45deg)}.selection-menu.open .selection-chevron{margin-top:4px;transform:rotate(225deg)}.selection-options{z-index:300;background:#fff;border:1px solid #d8e4e9;border-radius:12px;padding:6px;position:fixed;box-shadow:0 14px 34px #18375629}.selection-option{width:100%;min-height:36px;color:var(--text);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:0;border-radius:8px;align-items:center;gap:9px;padding:7px 9px;font-size:13px;display:flex}.selection-option:hover{background:#eef8fa}.selection-option.selected{color:var(--brand-navy);background:#d6edf1;font-weight:650}.selection-option.selected:hover{background:#cae7ec}.week-control{flex:0 auto;justify-content:center;align-items:center;gap:14px;display:flex}.week-button{width:40px;height:40px;color:var(--brand-blue);cursor:pointer;background:#fff;border:1px solid #cddce3;border-radius:8px;place-items:center;padding:0;font-size:22px;transition:all .15s;display:grid}.week-button:hover{border-color:var(--brand-cyan);background:#eefafb}.week-caption{min-width:240px;color:var(--brand-navy);text-align:center}.week-caption strong{font-size:16px;font-weight:650;display:block}.week-caption span{color:var(--muted);margin-top:4px;font-size:12px;display:block}.today-wrap{flex:180px;justify-content:flex-end;min-width:160px;display:flex}.today-button{border:1px solid var(--brand-cyan);min-height:40px;color:var(--brand-blue);cursor:pointer;background:#effafb;border-radius:8px;padding:0 18px;font-size:13px;font-weight:650}.legend{border-bottom:1px solid var(--border);color:var(--muted);background:#fbfdfe;align-items:center;gap:18px;padding:14px 24px;font-size:12px;display:flex;overflow-x:auto}.legend-item{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.control-mismatch-summary{border-right:1px solid var(--border);color:var(--brand-navy);padding-right:18px;font-weight:650}.control-mismatch-summary strong{color:#b4423d;text-align:center;min-width:20px;font-size:13px}.control-mismatch-example{background:#fff7f7;border:2px solid #e25858;border-radius:7px;width:25px;height:25px}.legend-mark,.status-mark{border-radius:6px;place-items:center;font-weight:750;display:inline-grid}.status-mark.control-status-mismatch{outline-offset:2px;outline:2px solid #e25858}.legend-mark{width:25px;height:25px;font-size:11px}.table-scroll{contain:inline-size;width:100%;max-width:100%;min-height:360px;max-height:calc(100vh - 320px);overflow:auto}.attendance-table{--student-column-width:178px;border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content}.attendance-table th,.attendance-table td{border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.attendance-table .student-column{width:178px}.attendance-table .lesson-column{width:84px}.attendance-table.named-students .student-column{width:250px}.attendance-table.named-students{--student-column-width:250px}.attendance-table thead{z-index:8;position:sticky;top:0}.attendance-table thead th{z-index:8;background:#f7fafc;position:relative}.attendance-table thead tr:first-child th,.attendance-table thead tr:nth-child(2) th{top:auto}.student-heading{box-sizing:border-box;width:178px;min-width:178px;max-width:178px;color:var(--brand-navy);text-align:center;vertical-align:middle;padding:0 18px;left:0;z-index:12!important;position:sticky!important}.day-heading{border-top:3px solid var(--brand-cyan);height:55px;color:var(--brand-navy);text-align:center;padding:10px 14px}.day-heading.today{border-top-color:var(--brand-blue);background:#eef8fb}.day-heading strong{letter-spacing:.08em;font-size:12px;display:block}.day-heading span{color:var(--muted);margin-top:3px;font-size:11px;font-weight:500;display:block}.lesson-heading{text-align:center;vertical-align:top;width:84px;min-width:84px;height:74px;padding:8px 6px}.lesson-number{min-width:24px;height:24px;color:var(--brand-blue);background:#e8f7f9;border-radius:5px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:750;display:inline-flex}.lesson-title{overflow-wrap:anywhere;color:#546b79;word-break:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:7px;font-size:10px;font-weight:550;line-height:1.25;display:-webkit-box;overflow:hidden}.student-cell{z-index:5;box-sizing:border-box;width:178px;min-width:178px;max-width:178px;height:54px;color:var(--brand-navy);text-align:left;white-space:nowrap;background:#fff;padding:0 18px;font-size:13px;font-weight:650;position:sticky;left:0}.student-cell a{border-bottom:1px solid #0000;align-items:center;transition:border-color .15s,color .15s;display:inline-flex}.student-cell .student-link-with-name{text-align:left;white-space:normal;flex-direction:column;align-items:flex-start;width:100%}.student-link-with-name span{overflow-wrap:anywhere;white-space:normal;max-width:100%;line-height:1.25}.student-name-mobile{display:none}.student-link-with-name small{color:var(--muted);font-size:10px;font-weight:600}.attendance-table.named-students .student-heading,.attendance-table.named-students .student-cell{width:250px;min-width:250px;max-width:250px}.attendance-card.is-loading .table-scroll,.student-attendance-card.is-loading .student-table-scroll{opacity:.72;pointer-events:none}.attendance-card .table-scroll,.student-attendance-card .student-table-scroll{transition:opacity .14s}.student-cell a:hover{border-color:var(--brand-cyan);color:var(--brand-blue)}.attendance-table tbody tr:nth-child(2n) .student-cell,.attendance-table tbody tr:nth-child(2n) td{background-color:#fbfdfe}.status-cell{text-align:center;background:#fff;width:84px;min-width:84px;height:54px;padding:7px}.status-mark{width:32px;height:32px;margin:0 auto;font-size:12px}.status-present{color:#24744f;background:#e3f5ec}.status-late{color:#a5650a;background:#fff1d8}.status-critical-late{color:#b9502b;background:#fbe7db}.engagement-engaged{color:#24744f;background:#e3f5ec}.engagement-red{color:#b4423d;background:#fee9e8}.engagement-sleeping{color:#6358b2;background:#eeeafd}.engagement-texting{color:#b45b22;background:#ffeadc}.engagement-distracted{color:#9a7214;background:#fff4cf}.engagement-other{color:#2c68a3;background:#e8f1fb}.engagement-trying{color:#237d71;background:#dff5f1}.status-ill{color:#2c68a3;background:#e8f1fb}.status-absent{color:#b4423d;background:#fee9e8}.status-reason{color:#7351a5;background:#f0eafb}.status-empty{color:#95a4ad;background:#f0f3f5}.status-mark.status-empty,.legend-mark.status-empty{font-size:10px;font-weight:600}.no-lessons{color:#a9b6bd}.status-menu{width:32px;height:32px;margin:0 auto}.status-menu .selection-trigger{cursor:pointer;background:0 0;border:0;border-radius:7px;outline:none;width:100%;height:100%;padding:0;display:block}.status-menu .selection-trigger:hover .status-mark,.status-menu .selection-trigger:focus-visible .status-mark{outline-offset:2px;outline:2px solid #45b9c859}.status-options-menu{min-width:178px}.status-options-menu .selection-option{white-space:normal;align-items:center}.status-options-menu .selection-option>span:last-child{overflow-wrap:anywhere;min-width:0;line-height:1.25}.selection-option-mark{border-radius:6px;flex:none;place-items:center;width:25px;height:25px;font-size:10px;font-weight:750;display:inline-grid}.student-page-heading{justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:24px;display:flex}.student-page-heading h1{color:var(--brand-navy);letter-spacing:-.035em;margin:7px 0 0;font-size:clamp(28px,3.2vw,42px);font-weight:650}.student-identity{text-align:left;flex-direction:column;align-items:flex-start;display:flex}.student-registry-caption{color:var(--text-muted);margin-top:.35rem;font-size:.9rem;font-weight:600;display:block}.student-context{align-items:center;gap:8px;display:flex}.student-context a,.student-context span{border:1px solid var(--border);color:var(--muted);background:#fff;border-radius:9px;padding:8px 12px;font-size:12px;font-weight:650}.student-context a{color:var(--brand-blue)}.student-attendance-card{border:1px solid var(--border);box-shadow:var(--shadow);background:#fffffffa;border-radius:18px;position:relative;overflow:hidden}.student-week-toolbar{border-bottom:1px solid var(--border);grid-template-columns:1fr auto 1fr;align-items:center;gap:34px;min-height:82px;padding:18px 24px;display:grid}.student-toolbar-spacer,.student-week-toolbar .today-wrap{min-width:0}.student-table-scroll{width:100%;min-height:380px;max-height:calc(100vh - 300px);overflow:auto}.student-attendance-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content;min-width:100%}.student-attendance-table th,.student-attendance-table td{border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.student-attendance-table thead{z-index:8;position:sticky;top:0}.student-attendance-table thead th{z-index:8;background:#f7fafc;position:relative}.student-attendance-table thead tr:first-child th,.student-attendance-table thead tr:nth-child(2) th{top:auto}.pair-heading{width:86px;min-width:86px;color:var(--brand-navy);text-align:center;vertical-align:middle;left:0;z-index:12!important;position:sticky!important}.student-day-heading{border-top:3px solid var(--brand-cyan);height:58px;color:var(--brand-navy);text-align:center;padding:10px 14px}.student-day-heading.today{border-top-color:var(--brand-blue);background:#e9f5f8}.student-day-heading strong,.student-day-heading span{display:block}.student-day-heading strong{letter-spacing:.08em;font-size:12px}.student-day-heading span{color:var(--muted);margin-top:4px;font-size:11px;font-weight:500}.subject-subheading{width:170px;min-width:170px;height:38px;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:10px;font-weight:700}.mark-subheading{width:66px;min-width:66px;color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:700}.pair-number-cell{z-index:5;width:86px;min-width:86px;height:72px;color:var(--brand-blue);text-align:center;background:#fff;font-size:14px;font-weight:750;position:sticky;left:0}.student-subject-cell{vertical-align:middle;background:#fff;width:170px;min-width:170px;height:72px;padding:10px 12px}.student-subject-cell strong,.student-subject-cell span{display:block}.student-subject-cell strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:650;line-height:1.3;overflow:hidden}.student-subject-cell span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:5px;font-size:9px;line-height:1.25;overflow:hidden}.student-mark-cell{text-align:center;background:#fff;width:66px;min-width:66px;padding:8px}.student-empty-lesson{color:#a9b6bd;text-align:center;background:#fbfdfe;height:72px;font-size:12px}.student-empty-pair-cell,.student-attendance-table tbody tr:nth-child(2n) .pair-number-cell,.student-attendance-table tbody tr:nth-child(2n) .student-subject-cell,.student-attendance-table tbody tr:nth-child(2n) .student-mark-cell{background:#fbfdfe}.student-not-found{border:1px solid var(--border);max-width:680px;box-shadow:var(--shadow);text-align:center;background:#fff;border-radius:18px;margin:50px auto;padding:48px}.student-not-found h1{color:var(--brand-navy);margin:0 0 10px;font-size:clamp(34px,5vw,48px)}.student-not-found .not-found-number{color:var(--brand-cyan-dark);letter-spacing:0;text-transform:none;margin-bottom:16px;font-size:18px;font-weight:700;display:block}.student-not-found p{color:var(--muted);margin:0 0 24px}.student-not-found a{background:var(--brand-blue);color:#fff;border-radius:9px;align-items:center;min-height:42px;padding:0 18px;font-size:13px;font-weight:650;display:inline-flex}.not-found-page{place-items:center;min-height:calc(100vh - 108px);padding:48px 24px;display:grid;overflow:hidden}.not-found-card{isolation:isolate;text-align:center;background:radial-gradient(circle at 82% 16%,#45b9c833,#0000 16rem),linear-gradient(145deg,#fffffffa,#f1f9fbf5);border:1px solid #45b9c847;border-radius:28px;width:min(100%,720px);padding:64px 36px;position:relative;overflow:hidden;box-shadow:0 28px 70px #18375621}.not-found-code{background:linear-gradient(110deg, var(--brand-blue), var(--brand-cyan));color:#0000;-webkit-text-fill-color:transparent;letter-spacing:-.09em;-webkit-background-clip:text;background-clip:text;font-size:clamp(92px,19vw,168px);font-weight:800;line-height:.82;display:block}.not-found-card h1{color:var(--brand-navy);letter-spacing:-.035em;margin:32px 0 10px;font-size:clamp(28px,5vw,42px);font-weight:680}.not-found-card p{color:var(--muted);margin:0 auto 28px;font-size:14px;line-height:1.6}.not-found-card a{background:var(--brand-blue);color:#fff;border-radius:10px;align-items:center;min-height:46px;padding:0 22px;font-size:13px;font-weight:680;transition:transform .15s,background .15s;display:inline-flex;box-shadow:0 10px 24px #0551962e}.not-found-card a:hover{background:#06467f;transform:translateY(-2px)}.not-found-orbit{z-index:-1;border:1px solid #45b9c84d;border-radius:50%;width:310px;height:310px;position:absolute;top:-118px;right:-86px}.not-found-orbit:before{border-radius:inherit;content:"";border:1px solid #0551962e;position:absolute;inset:38px}.not-found-orbit span{background:var(--brand-cyan);border-radius:50%;width:18px;height:18px;position:absolute;bottom:35px;right:53px;box-shadow:0 0 0 8px #45b9c81f}.login-page{place-items:center;min-height:calc(100vh - 108px);padding:48px 24px;display:grid}.login-card{border:1px solid var(--border);border-top:4px solid var(--brand-cyan);width:min(100%,440px);box-shadow:var(--shadow);background:#fffffffa;border-radius:20px;padding:38px}.login-card>span{color:var(--brand-cyan-dark);letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:750}.login-card h1{color:var(--brand-navy);margin:8px 0 6px;font-size:34px;font-weight:680}.login-card>p{color:var(--muted);margin:0 0 28px;font-size:13px;line-height:1.5}.login-form label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:15px 0 7px;font-size:11px;font-weight:700;display:block}.login-form input{width:100%;height:46px;color:var(--text);font:inherit;background:#fff;border:1px solid #cddce3;border-radius:10px;outline:none;padding:0 14px}.login-form input:focus{border-color:var(--brand-cyan);box-shadow:0 0 0 3px #45b9c824}.login-form>button{background:var(--brand-blue);color:#fff;cursor:pointer;border:0;border-radius:10px;width:100%;min-height:46px;margin-top:22px;font-size:13px;font-weight:680}.login-form>button:disabled{cursor:wait;opacity:.65}.login-error{color:#a73732;background:#fee9e8;border-radius:8px;margin-top:14px;padding:10px 12px;font-size:12px}@media (max-width:900px){.course-card{flex-basis:calc(50% - 10px);width:calc(50% - 10px)}.attendance-toolbar{flex-direction:column;align-items:stretch;gap:14px;min-height:0;padding:16px}.attendance-toolbar .group-control,.attendance-toolbar .group-menu,.attendance-toolbar .week-control,.attendance-toolbar .today-wrap{width:100%;min-width:0;max-width:none}.attendance-toolbar .group-control,.attendance-toolbar .week-control,.attendance-toolbar .today-wrap{flex:none}.attendance-toolbar .today-wrap{justify-content:stretch;min-height:44px}.attendance-toolbar .today-button{width:100%;height:44px;min-height:44px}.table-scroll{max-height:none}}@media (max-width:640px){.header-inner,.page-shell{width:min(100% - 28px,1440px)}.header-inner{min-height:76px}.header-logo{height:56px}.header-logo-link{max-width:min(255px,64vw);height:56px}.login-link{min-height:38px;padding:0 14px}.account-summary>span{display:none}.page-shell{padding-top:28px}.section-heading,.attendance-title-row{flex-direction:column;align-items:flex-start}.course-grid{display:flex}.course-card{flex-basis:100%;width:100%}.week-control{gap:8px}.week-caption{min-width:180px}.legend{padding-inline:16px}.student-heading,.student-cell{width:142px;min-width:142px;padding-inline:12px}.attendance-table .student-column{width:142px}.attendance-table:not(.named-students){--student-column-width:142px}.attendance-table .lesson-column{width:72px}.lesson-heading,.status-cell{width:72px;min-width:72px}}@media (max-width:1180px){.header-inner,.role-navigation-inner,.page-shell{width:min(100% - 32px,1440px)}.admin-page{width:min(100% - 32px,1500px)}.student-search-section{grid-template-columns:minmax(260px,.9fr) minmax(360px,1fr);gap:26px}.table-scroll,.student-table-scroll{max-height:calc(100dvh - 280px)}}@media (max-width:900px){.site-header{padding-top:10px}.header-inner{gap:16px;min-height:88px;padding:12px 18px}.header-logo,.header-logo-link{height:62px}.account-summary>span{text-overflow:ellipsis;white-space:nowrap;max-width:250px;overflow:hidden}.role-navigation-inner{min-height:54px;padding:7px 0}.role-navigation-link{gap:5px;min-height:36px;padding-inline:7px;font-size:10px}.role-navigation-link svg{flex:none;width:16px;height:16px}.page-shell{padding:36px 0 52px}.courses-hero img{height:clamp(220px,34vw,300px)}.student-search-section{grid-template-columns:1fr;gap:20px;padding:22px 24px}.student-search-form,.student-search-controls,.student-search-input-wrap{width:100%}.student-page-heading{flex-direction:column;align-items:flex-start;gap:16px}.student-context{flex-wrap:wrap}.admin-summary{grid-template-columns:repeat(4,minmax(105px,1fr));width:100%;display:grid}.admin-workspace{padding:22px}.explanations-page{padding-top:24px}.analytics-dashboard{padding-top:28px}.analytics-heading,.analytics-filter-card{padding:22px 24px}.analytics-main-grid>.analytics-card{min-width:0}.not-found-page,.login-page{min-height:calc(100dvh - 92px)}}@media (max-width:640px){::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{border-width:2px}.site-header{padding-top:8px}.header-inner,.role-navigation-inner,.page-shell{width:min(100% - 20px,1440px)}.header-inner{border-radius:13px;gap:8px;min-height:68px;padding:10px 12px}.header-logo,.header-logo-link{height:48px}.header-logo-link{width:auto;max-width:min(210px,48vw)}.header-inner.authenticated .header-logo-link{max-width:min(180px,38vw)}.account-controls{gap:6px;min-width:0}.account-summary{min-width:0}.account-summary>span.account-name{text-align:right;text-overflow:ellipsis;white-space:nowrap;max-width:112px;font-size:11px;display:block;overflow:hidden}.account-name-desktop{display:none}.account-name-mobile{display:inline}.account-summary small{letter-spacing:.04em;text-align:right;text-overflow:ellipsis;white-space:nowrap;max-width:110px;font-size:8px;overflow:hidden}.account-controls button{min-height:38px;padding:0 10px;font-size:11px}.login-link{width:42px;height:42px;padding:0}.role-navigation-inner{min-height:52px;padding:6px 0}.role-navigation-tabs.count-2,.role-navigation-tabs.count-3,.role-navigation-tabs.count-4,.role-navigation-tabs.count-5,.role-navigation-tabs.count-6{width:100%}.role-navigation-link{min-height:40px;padding:0}.role-navigation-link span{display:none}.role-navigation-tabs.count-2 .role-navigation-link span,.role-navigation-tabs.count-3 .role-navigation-link span{text-overflow:ellipsis;font-size:9px;display:inline;overflow:hidden}.role-navigation-link svg{width:19px;height:19px}.page-shell{padding:24px 0 40px}.courses-hero{border-radius:15px}.courses-hero img{width:100%;height:auto;min-height:0}.student-search-section{border-radius:15px;gap:16px;margin-top:18px;padding:18px}.student-search-copy h2{margin-top:5px;font-size:20px}.student-search-copy p{font-size:12px}.student-search-controls input{height:46px;font-size:16px}.student-search-suggestions{left:-4px;right:-4px}.student-search-suggestion{min-height:62px}.section-heading{margin:28px 0 16px}.section-heading h2{font-size:23px}.course-grid{gap:14px}.course-card{border-radius:14px;min-height:138px;padding:22px}.course-number{font-size:44px}.course-label{margin-top:9px;font-size:13px}.course-arrow{width:42px;height:42px}.attendance-title-row,.student-page-heading{margin-bottom:18px}.attendance-title-row h1,.student-page-heading h1{overflow-wrap:anywhere;font-size:29px;line-height:1.12}.attendance-card,.student-attendance-card{border-radius:14px}.attendance-toolbar{gap:16px;min-height:0;padding:16px}.group-control,.group-menu,.attendance-toolbar .week-control,.attendance-toolbar .today-wrap{width:100%;min-width:0;max-width:none}.group-control{flex-basis:auto}.group-menu .selection-trigger{height:46px}.week-control{gap:8px}.week-caption{flex:1;min-width:0}.week-button{flex:0 0 44px;width:44px;height:44px}.attendance-toolbar .today-wrap,.student-week-toolbar .today-wrap{flex:none;justify-content:stretch;min-height:44px}.today-button{width:100%;height:44px;min-height:44px}.attendance-table.named-students{--student-column-width:142px}.student-name-desktop{display:none}.student-name-mobile{gap:1px;width:100%;font-size:12px;line-height:1.12;display:grid}.student-cell,.status-cell{height:78px}.student-cell{padding-block:7px}.legend{scroll-snap-type:x proximity;gap:14px;padding:11px 14px;font-size:11px}.legend-item{scroll-snap-align:start}.table-scroll,.student-table-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:390px;max-height:calc(100dvh - 150px)}.student-page-heading{gap:13px}.student-registry-caption{font-size:13px}.student-context{gap:7px;width:100%}.student-context a,.student-context span{align-items:center;min-height:40px;padding:0 11px;display:inline-flex}.student-view-tabs{border-radius:12px;width:100%;margin-bottom:14px;overflow:hidden}.student-view-tabs.count-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}.student-view-tabs.count-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}.student-view-tabs a{text-overflow:ellipsis;min-width:0;min-height:40px;padding:0 6px;font-size:12px;overflow:hidden}.student-week-toolbar{flex-direction:column;align-items:stretch;gap:14px;min-height:0;padding:16px;display:flex}.student-toolbar-spacer{display:none}.student-week-toolbar .week-control{width:100%}.pair-heading,.pair-number-cell{width:68px;min-width:68px}.subject-subheading,.student-subject-cell{width:150px;min-width:150px}.mark-subheading,.student-mark-cell{width:62px;min-width:62px}.student-subject-cell{padding-inline:10px}.student-subject-cell strong,.student-subject-cell span{white-space:normal;overflow-wrap:anywhere}.student-subject-cell strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.admin-page{width:min(100% - 20px,1500px);padding:24px 0 42px}.admin-shell{gap:14px;min-width:0;max-width:100%}.admin-heading,.admin-workspace{border-radius:15px;min-width:0;max-width:100%;padding:18px}.admin-heading{gap:18px}.admin-heading h1,.analytics-heading h1,.explanations-heading h1{font-size:30px}.admin-summary,.explanations-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;display:grid;overflow:visible}.admin-summary span,.explanations-summary span{min-width:0;padding:11px 9px}.admin-tabs{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;padding:4px;overflow:hidden}.admin-tabs button{min-width:0;min-height:40px;padding:0 5px;font-size:10px}.admin-tab-indicator{width:calc(20% - 4px);top:4px;bottom:4px;left:4px}.admin-tabs.section-groups .admin-tab-indicator{transform:translate(calc(100% + 3px))}.admin-tabs.section-courses .admin-tab-indicator{transform:translate(calc(200% + 6px))}.admin-tabs.section-accounts .admin-tab-indicator{transform:translate(calc(300% + 9px))}.admin-tabs.section-history .admin-tab-indicator{transform:translate(calc(400% + 12px))}.admin-parser-state{width:100%}.admin-section-tools{flex:1;justify-content:flex-end}.admin-live-search{width:min(100%,390px)}.admin-section-title{flex-direction:row;align-items:center;margin-bottom:16px}.admin-section-title h2{font-size:22px}.admin-table{table-layout:auto;width:100%;min-width:720px;font-size:12px}.admin-table th,.admin-table td{padding-inline:11px}.admin-table th{font-size:9px}.admin-table-wrap{contain:inline-size;width:100%;max-width:100%;overflow-x:auto}.admin-row-actions{gap:7px}.admin-row-actions button{flex:0 0 34px;width:34px;height:34px}.admin-modal-backdrop{padding:8px}.admin-modal{border-radius:15px;max-height:calc(100dvh - 16px);padding:16px}.admin-modal-heading{margin-bottom:16px}.admin-editor{grid-template-columns:1fr;gap:12px}.admin-editor input,.admin-editor select,.admin-selection-menu .selection-trigger{min-height:46px;font-size:16px}.admin-editor-actions{width:100%}.admin-editor-actions>button{flex:1;min-height:44px}.explanations-page{padding-top:20px}.explanations-shell,.explanations-layout{gap:14px}.explanations-heading,.explanation-list-card,.reason-directory-card{border-radius:15px;padding:18px}.explanations-summary{grid-template-columns:1fr}.explanation-entry-main{grid-template-columns:38px minmax(0,1fr) 36px;gap:9px;padding:12px}.explanation-entry-title{flex-direction:column;align-items:flex-start;gap:3px}.explanation-entry-context{gap:4px;display:grid}.explanation-entry-editor{padding:12px}.explanation-entry-editor textarea,.explanation-entry-editor input,.reason-editor textarea,.reason-editor input,.explanation-search input{font-size:16px}.explanation-editor-actions{justify-content:stretch}.explanation-editor-actions .button-primary,.explanation-editor-actions .button-muted{flex:auto;min-height:42px}.reason-directory-list{max-height:none}.analytics-dashboard{gap:14px;padding:20px 0 40px}.analytics-heading,.analytics-filter-card,.analytics-card{border-radius:15px;padding:18px}.analytics-filter-title{margin-bottom:13px}.analytics-period-presets{gap:6px}.analytics-period-presets button{min-height:38px}.analytics-filter-grid input,.analytics-selection-menu .selection-trigger,.analytics-student-trigger{height:46px;font-size:16px}.analytics-filter-footer,.analytics-filter-actions{width:100%}.analytics-engagement-toggle span,.analytics-apply-button,.analytics-reset-button{min-height:44px}.analytics-student-panel{width:min(390px,100vw - 28px);max-height:calc(100dvh - 110px);left:auto;right:0}.analytics-student-options{max-height:min(310px,100dvh - 230px)}.analytics-kpi-grid{gap:10px}.analytics-kpi-grid article{min-height:102px;padding:13px 15px 16px}.analytics-kpi-grid strong{font-size:27px}.analytics-card-heading{gap:12px}.analytics-chart-controls{width:100%}.analytics-chart-controls .analytics-selection-menu{flex:1 1 0;width:100%;min-width:0}.analytics-bar-chart{min-height:250px;padding-inline:0}.analytics-bar-item{grid-template-rows:20px 180px 38px}.analytics-status-donut{width:170px;height:170px}.analytics-status-donut>span{width:100px;height:100px}.analytics-students-heading,.analytics-student-sort,.analytics-student-sort .analytics-selection-menu{width:100%}.analytics-student-sort .analytics-selection-menu{min-width:0}.analytics-student-sort button{flex:0 0 46px}.analytics-student-legend{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;display:grid}.analytics-student-legend>strong{grid-column:1/-1}.analytics-student-card,.analytics-subject-card{padding:14px}.analytics-heatmap-card{padding-top:14px}.analytics-heatmap-scroll{grid-template-columns:84px minmax(0,1fr)}.analytics-heatmap{min-width:490px}.analytics-heatmap-row{grid-template-columns:repeat(7,minmax(64px,1fr))}.analytics-heatmap-days-scroll,.analytics-bar-scroll,.admin-table-wrap{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.search-dialog-backdrop{padding:12px}.search-dialog{padding:24px 18px}.login-page,.not-found-page{min-height:calc(100dvh - 76px);padding:24px 10px}.login-card{border-radius:16px;padding:26px 20px}.login-card h1{font-size:30px}.login-form input{height:48px;font-size:16px}.student-not-found{margin:28px auto;padding:32px 18px}.not-found-card{border-radius:20px;padding:48px 18px}.not-found-card h1{margin-top:24px}}@media (max-width:520px){.analytics-filter-grid,.analytics-primary-filters,.analytics-kpi-grid{grid-template-columns:1fr}.analytics-filter-actions{flex-direction:row;align-items:stretch}.analytics-filter-actions button{flex:1;width:auto}}@media (max-width:420px){.header-logo-link{max-width:46vw}.account-summary small{max-width:82px}.week-caption strong{font-size:14px}.week-caption span{font-size:10px}.student-view-tabs a{font-size:11px}.analytics-period-presets{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.analytics-period-presets>svg{grid-column:1/-1}.analytics-period-presets button{width:100%}.analytics-chart-controls{flex-direction:column}.analytics-chart-controls .analytics-selection-menu{flex-basis:auto}.analytics-student-legend{grid-template-columns:1fr}.analytics-student-legend>strong{grid-column:1}.explanation-entry-main{grid-template-columns:34px minmax(0,1fr) 34px;gap:7px}.explanation-status-mark{width:34px}.reason-directory-item{padding:10px}}@media (max-width:900px) and (max-height:500px) and (orientation:landscape){.site-header{padding-top:5px}.header-inner{min-height:58px;padding-block:7px}.header-logo,.header-logo-link{height:44px}.role-navigation-inner{min-height:46px;padding-block:4px}.role-navigation-link{min-height:34px}.attendance-toolbar{flex-flow:row;align-items:flex-end;gap:12px;min-height:0;padding:10px 14px}.attendance-toolbar .group-control{flex:220px;width:auto;min-width:180px;max-width:none}.attendance-toolbar .group-menu{width:100%}.attendance-toolbar .group-menu .selection-trigger{height:40px}.attendance-toolbar .week-control{flex:0 330px;gap:8px;width:auto;min-width:280px;max-width:none}.attendance-toolbar .week-caption{flex:1;min-width:180px}.attendance-toolbar .week-button{flex:0 0 40px;width:40px;height:40px}.attendance-toolbar .today-wrap{flex:none;justify-content:flex-end;align-items:flex-end;width:auto;min-width:100px;max-width:none;min-height:40px}.attendance-toolbar .today-button{width:auto;height:40px;min-height:40px}.explanations-heading{flex-direction:row;align-items:center;gap:20px;padding:16px 20px}.explanations-heading h1{margin:0;font-size:28px}.analytics-heading,.analytics-heading>div{text-align:left;justify-content:flex-start;align-items:flex-start;width:100%}.admin-heading{text-align:left;flex-direction:row;justify-content:space-between;align-items:center;gap:20px;width:100%;min-width:0;max-width:100%;padding:12px 16px}.admin-heading>div:first-child{text-align:left;flex:none;width:auto}.admin-heading h1{margin:0;font-size:26px}.admin-heading .admin-summary{grid-template-columns:repeat(4,minmax(76px,1fr));gap:6px;width:auto;margin-left:auto;display:grid;overflow:visible}.admin-heading .admin-summary span{min-width:76px;padding:6px 8px}.admin-heading .admin-summary strong{margin-bottom:0;font-size:17px}.admin-page{width:min(100% - 20px,1500px);padding-top:12px}.admin-shell{gap:10px;min-width:0;max-width:100%}.admin-tabs{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;padding:4px;overflow:hidden}.admin-tabs button{min-width:0;min-height:36px;padding:0 6px;font-size:11px}.admin-tab-indicator{width:calc(20% - 4px);top:4px;bottom:4px;left:4px}.admin-tabs.section-groups .admin-tab-indicator{transform:translate(calc(100% + 3px))}.admin-tabs.section-courses .admin-tab-indicator{transform:translate(calc(200% + 6px))}.admin-tabs.section-accounts .admin-tab-indicator{transform:translate(calc(300% + 9px))}.admin-tabs.section-history .admin-tab-indicator{transform:translate(calc(400% + 12px))}.admin-workspace{border-radius:15px;min-width:0;max-width:100%;padding:14px}.admin-table-wrap{contain:inline-size;width:100%;max-width:100%;overflow-x:auto}.admin-table{table-layout:auto;width:100%;min-width:720px;font-size:12px}.admin-table th,.admin-table td{padding-inline:11px}.admin-table th{font-size:9px}.admin-section-title{text-align:left;flex-direction:row;align-items:center;width:100%;min-height:40px;padding-right:48px;position:relative}.admin-section-title h2{text-align:left;margin-right:auto}.admin-section-title .admin-add-button{position:absolute;top:0;right:0}.explanations-summary{width:auto;margin-left:auto;display:flex}.explanations-summary span{min-width:120px;padding:10px 14px}.explanations-layout .reason-directory-card{order:1}.explanations-layout .explanation-list-card{order:2}.explanation-section-title{width:100%}.explanation-list-card .explanation-section-toolbar{padding-right:48px;position:relative}.explanation-list-card .explanation-section-title{flex:none;width:auto}.explanation-list-card .explanation-search{margin-left:auto}.explanation-list-card .explanation-collapse-button{position:absolute;top:0;right:0}.explanation-collapse-button{border:1px solid var(--border);width:36px;height:36px;color:var(--brand-navy);background:#fff;border-radius:10px;flex:0 0 36px;place-items:center;display:grid}.is-collapsed .explanation-collapse-button svg{transform:rotate(180deg)}.explanation-collapse-button svg{transition:transform .22s}.explanation-list-card.is-collapsed .explanation-search,.explanation-list-card.is-collapsed .explanation-entry-group,.reason-directory-card.is-collapsed>.reason-search,.reason-directory-card.is-collapsed>.reason-editor,.reason-directory-card.is-collapsed>.reason-directory-list{display:none}.page-shell,.admin-page{padding-top:20px}.admin-modal{max-height:calc(100dvh - 12px)}.login-page,.not-found-page{min-height:auto}}@media (hover:none) and (pointer:coarse){a,button,.selection-trigger{touch-action:manipulation}.course-card:hover,.not-found-card a:hover,.admin-primary-button:hover,.admin-add-button:hover,.admin-row-actions button:hover{transform:none}.selection-option,.student-search-suggestion,.analytics-student-options>button{min-height:44px}}@media (min-width:641px) and (max-width:1180px) and (min-height:501px) and (orientation:landscape){.table-scroll{height:88dvh;min-height:0;max-height:88dvh}}@media (max-width:900px) and (orientation:portrait){.explanations-heading{flex-direction:row;align-items:center;gap:12px}.explanations-heading>div:first-child{min-width:0}.explanations-heading h1{margin:0;font-size:clamp(24px,6vw,30px)}.explanations-heading .explanations-summary{flex:none;align-self:center;width:auto;margin-left:auto;display:flex}.explanations-heading .explanations-summary span{flex:none;min-width:110px;padding:10px 12px}.analytics-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.analytics-kpi-grid article:nth-child(3):last-child{grid-column:1/-1;justify-self:center;width:calc(50% - 6px)}.explanations-layout{grid-template-columns:1fr}.explanations-layout .reason-directory-card{order:1;position:static}.explanations-layout .explanation-list-card{order:2}.admin-page{width:min(100% - 20px,1500px);padding:24px 0 42px}.admin-shell{gap:14px;min-width:0;max-width:100%}.admin-heading,.admin-workspace{border-radius:15px;min-width:0;max-width:100%;padding:18px}.admin-heading{flex-direction:column;align-items:flex-start;gap:18px}.admin-heading h1{font-size:30px}.admin-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;display:grid;overflow:visible}.admin-summary span{min-width:0;padding:11px 9px}.admin-tabs{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;padding:4px;overflow:hidden}.admin-tabs button{min-width:0;min-height:40px;padding:0 5px;font-size:10px}.admin-tab-indicator{width:calc(20% - 4px);top:4px;bottom:4px;left:4px}.admin-tabs.section-groups .admin-tab-indicator{transform:translate(calc(100% + 3px))}.admin-tabs.section-courses .admin-tab-indicator{transform:translate(calc(200% + 6px))}.admin-tabs.section-accounts .admin-tab-indicator{transform:translate(calc(300% + 9px))}.admin-tabs.section-history .admin-tab-indicator{transform:translate(calc(400% + 12px))}.admin-section-title{flex-direction:row;align-items:center;margin-bottom:16px}.admin-section-title h2{font-size:22px}.admin-table-wrap{overscroll-behavior-x:contain;contain:inline-size;-webkit-overflow-scrolling:touch;width:100%;max-width:100%;overflow-x:auto}.admin-table{table-layout:auto;width:100%;min-width:720px;font-size:12px}.admin-table th,.admin-table td{padding-inline:11px}.admin-table th{font-size:9px}.admin-row-actions{gap:7px}.admin-row-actions button{flex:0 0 34px;width:34px;height:34px}.admin-heading.explanations-heading{flex-direction:row;align-items:center;gap:12px}.admin-heading.explanations-heading h1{margin:0;font-size:clamp(24px,6vw,30px)}.admin-heading.explanations-heading .explanations-summary{flex:none;align-self:center;width:auto;margin-left:auto;display:flex;transform:none}}.student-table-scroll{overscroll-behavior-x:contain;overscroll-behavior-y:auto;touch-action:pan-x pan-y;min-height:0;max-height:none;overflow:auto clip}@media print{html{scrollbar-gutter:auto;background:#fff;min-width:0}body{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;min-height:auto}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
