@import "https://fonts.googleapis.com/css2?family=Geist:wght@400;450;500;550;600;650;700&display=swap";.fa-icon.svelte-cielkw{flex:none;justify-content:center;align-items:center;line-height:1;display:inline-flex}.fa-icon.svelte-cielkw svg{width:1em;height:1em;display:block}.fa-icon.progress_activity.svelte-cielkw svg,.fa-icon.spinner.svelte-cielkw svg{animation:1s linear infinite svelte-cielkw-fa-spin}@keyframes svelte-cielkw-fa-spin{to{transform:rotate(360deg)}}.attendance-view.svelte-udlhm6{min-width:0;color:var(--on-surface)}.attendance-view.svelte-udlhm6 .attendance-spinner{animation:.9s linear infinite svelte-udlhm6-attendance-spin;display:inline-block}@keyframes svelte-udlhm6-attendance-spin{to{transform:rotate(360deg)}}.attendance-view-title.svelte-udlhm6{justify-content:space-between;align-items:center;gap:20px;min-width:0;margin-bottom:16px;display:flex}.attendance-view-title.svelte-udlhm6 h2:where(.svelte-udlhm6){letter-spacing:-.025em;margin:0;font-size:21px;font-weight:620;line-height:1.3}.attendance-view-title.svelte-udlhm6 p:where(.svelte-udlhm6){color:var(--on-surface-variant);margin:4px 0 0;font-size:13px}.attendance-view-actions.svelte-udlhm6{justify-content:flex-end;align-items:center;gap:10px;min-width:0;max-width:100%;display:flex}.attendance-session-switch.svelte-udlhm6{align-items:center;gap:4px;min-width:0;display:flex}.attendance-icon-button.svelte-udlhm6{width:36px;height:36px;color:var(--on-surface-variant);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;display:grid}.attendance-icon-button.svelte-udlhm6:hover:not(:disabled){background:var(--surface-container);color:var(--on-surface)}.attendance-icon-button.svelte-udlhm6:focus-visible,.attendance-status.svelte-udlhm6:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.attendance-icon-button.svelte-udlhm6:disabled{opacity:.38;cursor:not-allowed}.attendance-icon-button.svelte-udlhm6 .fa-icon{font-size:21px}.attendance-session-date.svelte-udlhm6{border:1px solid var(--outline-variant);background:var(--surface);border-radius:8px;align-items:center;gap:9px;min-width:0;min-height:44px;padding:5px 11px;display:flex}.attendance-session-date.svelte-udlhm6>span:where(.svelte-udlhm6):last-child{overflow-wrap:anywhere;min-width:0}.attendance-session-date.svelte-udlhm6>.fa-icon{color:var(--on-surface-variant);font-size:18px}.attendance-session-date.svelte-udlhm6 strong:where(.svelte-udlhm6),.attendance-session-date.svelte-udlhm6 small:where(.svelte-udlhm6){display:block}.attendance-session-date.svelte-udlhm6 strong:where(.svelte-udlhm6){text-transform:capitalize;font-size:13px;font-weight:600}.attendance-session-date.svelte-udlhm6 small:where(.svelte-udlhm6){color:var(--on-surface-variant);margin-top:1px;font-size:11px}.attendance-list.svelte-udlhm6,.attendance-pending-list.svelte-udlhm6{border:1px solid var(--outline-variant);background:var(--surface-container-lowest);border-radius:9px;overflow:hidden}.attendance-row.svelte-udlhm6{border-bottom:1px solid var(--outline-variant);align-items:center;gap:16px;min-height:62px;padding:10px 15px;display:flex}.attendance-row.svelte-udlhm6:last-of-type{border-bottom:0}.attendance-student.svelte-udlhm6{flex:1;align-items:center;gap:10px;min-width:180px;font-size:13px;font-weight:550;display:flex}.attendance-guest-label.svelte-udlhm6{color:var(--on-surface-variant);margin-left:7px;font-size:11px;font-weight:400;display:inline-block}.attendance-avatar.svelte-udlhm6{background:var(--surface-container);width:30px;height:30px;color:var(--on-surface-variant);text-transform:uppercase;border-radius:50%;flex:none;place-items:center;font-size:10px;font-weight:650;display:grid}.attendance-statuses.svelte-udlhm6{align-items:center;gap:5px;display:flex}.attendance-status.svelte-udlhm6{min-height:36px;color:var(--on-surface-variant);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:7px;padding:0 10px;font-size:12px}.attendance-status.svelte-udlhm6:hover:not(:disabled){background:var(--surface-container-low)}.attendance-status.svelte-udlhm6:disabled{cursor:wait}.attendance-status.is-selected[data-status=present].svelte-udlhm6{border-color:var(--attendance-present-fg);background:var(--attendance-present-bg);color:var(--attendance-present-fg)}.attendance-status.is-selected[data-status=late].svelte-udlhm6{border-color:var(--warning);background:var(--attendance-late-bg);color:var(--attendance-late-fg)}.attendance-status.is-selected[data-status=absent].svelte-udlhm6{border-color:var(--attendance-absent-fg);background:var(--attendance-absent-bg);color:var(--attendance-absent-fg)}.attendance-status.is-selected[data-status=excused].svelte-udlhm6{border-color:var(--attendance-excused-fg);background:var(--attendance-excused-bg);color:var(--attendance-excused-fg)}.attendance-list-footer.svelte-udlhm6{border-top:1px solid var(--outline-variant);background:var(--surface-container-low);justify-content:space-between;align-items:center;gap:16px;min-height:63px;padding:11px 15px;display:flex}.attendance-save-state.svelte-udlhm6{color:var(--on-surface-variant);align-items:center;gap:6px;font-size:12px;display:flex}.attendance-save-state.svelte-udlhm6 .fa-icon{font-size:16px}.attendance-notice.svelte-udlhm6{border:1px solid var(--outline-variant);background:var(--surface-container-low);border-radius:8px;align-items:center;gap:11px;margin-bottom:12px;padding:12px 14px;display:flex}.attendance-notice.svelte-udlhm6>.fa-icon{color:var(--primary)}.attendance-notice.svelte-udlhm6 strong:where(.svelte-udlhm6),.attendance-notice.svelte-udlhm6 small:where(.svelte-udlhm6),.attendance-pending-row.svelte-udlhm6 strong:where(.svelte-udlhm6),.attendance-pending-row.svelte-udlhm6 small:where(.svelte-udlhm6){display:block}.attendance-notice.svelte-udlhm6 strong:where(.svelte-udlhm6),.attendance-pending-row.svelte-udlhm6 strong:where(.svelte-udlhm6){font-size:13px;font-weight:600}.attendance-notice.svelte-udlhm6 small:where(.svelte-udlhm6),.attendance-pending-row.svelte-udlhm6 small:where(.svelte-udlhm6){color:var(--on-surface-variant);margin-top:2px;font-size:12px}.attendance-pending-row.svelte-udlhm6{border-bottom:1px solid var(--outline-variant);justify-content:space-between;align-items:center;gap:12px;padding:12px 15px;display:flex}.attendance-pending-row.svelte-udlhm6:last-child{border-bottom:0}.attendance-empty.svelte-udlhm6{color:var(--on-surface-variant);text-align:center;flex-direction:column;align-items:center;gap:7px;padding:48px 20px;display:flex}.attendance-empty.svelte-udlhm6 strong:where(.svelte-udlhm6){color:var(--on-surface);font-size:15px}.attendance-empty.svelte-udlhm6 .fa-icon{font-size:20px}.attendance-error.svelte-udlhm6 strong:where(.svelte-udlhm6){color:var(--error)}.attendance-error.svelte-udlhm6 .btn-outlined:where(.svelte-udlhm6){margin-top:8px}@media (width<=760px){.attendance-view-title.svelte-udlhm6{flex-direction:column;align-items:flex-start;gap:12px}.attendance-view-actions.svelte-udlhm6{justify-content:space-between;width:100%}.attendance-session-date.svelte-udlhm6{min-width:0}.attendance-row.svelte-udlhm6{flex-direction:column;align-items:stretch;gap:8px;padding:12px}.attendance-student.svelte-udlhm6{min-width:0}.attendance-statuses.svelte-udlhm6{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;display:grid}.attendance-status.svelte-udlhm6{min-width:0;padding:0 4px;font-size:11px}}@media (width>=761px) and (width<=1040px){.attendance-view-title.svelte-udlhm6{flex-direction:column;align-items:flex-start}.attendance-view-actions.svelte-udlhm6{justify-content:space-between;width:100%}}@media (width<=420px){.attendance-view-actions.svelte-udlhm6{flex-direction:column;align-items:stretch}.attendance-session-switch.svelte-udlhm6{justify-content:space-between}.attendance-session-date.svelte-udlhm6{flex:1}.attendance-list-footer.svelte-udlhm6{flex-direction:column;align-items:stretch}.attendance-list-footer.svelte-udlhm6 .btn-primary:where(.svelte-udlhm6){width:100%}.attendance-pending-row.svelte-udlhm6{flex-direction:column;align-items:flex-start}}.ai-task-backdrop.svelte-6l8mzd{z-index:1100}.ai-task-modal.svelte-6l8mzd{width:min(560px,100vw - 28px);max-height:min(88dvh,740px);margin:auto;overflow:auto}.ai-task-modal.svelte-6l8mzd .modal-head:where(.svelte-6l8mzd){justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.ai-task-modal.svelte-6l8mzd .modal-head:where(.svelte-6l8mzd) p:where(.svelte-6l8mzd){color:var(--on-surface-variant);margin:4px 0 0;font-size:13px}.ai-task-field.svelte-6l8mzd{color:var(--on-surface);gap:6px;margin:0 0 14px;font-size:13px;font-weight:550;display:grid}.ai-task-field.svelte-6l8mzd input:where(.svelte-6l8mzd),.ai-task-field.svelte-6l8mzd textarea:where(.svelte-6l8mzd){box-sizing:border-box;border:1px solid var(--outline-variant);background:var(--surface);width:100%;min-height:42px;color:var(--on-surface);font:inherit;border-radius:8px;padding:10px 11px;font-weight:400}.ai-task-field.svelte-6l8mzd textarea:where(.svelte-6l8mzd){resize:vertical}.ai-task-field.svelte-6l8mzd :where(.svelte-6l8mzd):focus-visible{outline:2px solid var(--primary);outline-offset:2px}.ai-task-hint.svelte-6l8mzd{color:var(--on-surface-variant);margin:0 0 14px;font-size:12px;line-height:1.5}.ai-task-error.svelte-6l8mzd{background:var(--error-container);color:var(--on-error-container);border-radius:8px;margin:12px 0 0;padding:10px 12px;font-size:13px}@media (width<=560px){.ai-task-modal.svelte-6l8mzd .modal-foot:where(.svelte-6l8mzd){flex-wrap:wrap}}.drive-space.svelte-1ga8z6r{min-width:0}.drive-toolbar.svelte-1ga8z6r{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;display:flex}.drive-breadcrumbs.svelte-1ga8z6r{min-width:180px;color:var(--ink-faint);white-space:nowrap;flex:260px;align-items:center;gap:8px;display:flex;overflow:auto}.drive-breadcrumbs.svelte-1ga8z6r button:where(.svelte-1ga8z6r){color:var(--ink-soft);cursor:pointer;background:0 0;border:0;padding:5px 2px}.drive-breadcrumbs.svelte-1ga8z6r button.current:where(.svelte-1ga8z6r){color:var(--ink);font-weight:600}.drive-search.svelte-1ga8z6r{border:1px solid var(--line);background:var(--surface);width:min(100%,320px);min-height:38px;color:var(--ink-soft);border-radius:8px;align-items:center;gap:8px;padding:0 10px;display:flex}.drive-search.svelte-1ga8z6r>.fa-icon{font-size:15px}.drive-search.svelte-1ga8z6r input:where(.svelte-1ga8z6r){width:100%;min-width:0;font:inherit;background:0 0;border:0;outline:0}.drive-search.svelte-1ga8z6r button:where(.svelte-1ga8z6r){cursor:pointer;background:0 0;border:0}.drive-actions.svelte-1ga8z6r{align-items:center;gap:8px;display:flex}.drive-tag-filter.svelte-1ga8z6r{color:var(--ink-soft);white-space:nowrap;align-items:center;gap:7px;font-size:12px;display:flex}.drive-tag-filter.svelte-1ga8z6r select:where(.svelte-1ga8z6r){border:1px solid var(--line);background:var(--surface);min-height:36px;color:var(--ink);font:inherit;border-radius:7px;padding:5px 26px 5px 9px}.drive-load-more.svelte-1ga8z6r{justify-content:center;padding:12px;display:flex}.drive-open-link.svelte-1ga8z6r{color:var(--accent);white-space:nowrap;font-size:12px;text-decoration:none}.drive-table-wrap.svelte-1ga8z6r{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);overflow-x:auto}.drive-table.svelte-1ga8z6r{border-collapse:collapse;text-align:left;width:100%}.drive-table.svelte-1ga8z6r th:where(.svelte-1ga8z6r){border-bottom:1px solid var(--line);background:var(--surface-soft);color:var(--ink-soft);padding:10px 12px;font-size:11px;font-weight:600}.drive-table.svelte-1ga8z6r td:where(.svelte-1ga8z6r){border-bottom:1px solid var(--line);min-height:48px;color:var(--ink-soft);white-space:nowrap;padding:9px 12px;font-size:12px}.drive-table.svelte-1ga8z6r tbody:where(.svelte-1ga8z6r) tr:where(.svelte-1ga8z6r):last-child td:where(.svelte-1ga8z6r){border-bottom:0}.drive-table.svelte-1ga8z6r tbody:where(.svelte-1ga8z6r) tr:where(.svelte-1ga8z6r):hover td:where(.svelte-1ga8z6r){background:#fafbfd}.drive-file-name.svelte-1ga8z6r{align-items:center;gap:9px;min-width:260px;display:flex}.drive-file-icon.svelte-1ga8z6r{color:var(--ink-soft);font-size:16px}.drive-file-icon.drive-folder.svelte-1ga8z6r{color:var(--accent)}.drive-file-open.svelte-1ga8z6r{max-width:420px;color:var(--ink);font:inherit;text-overflow:ellipsis;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:none;overflow:hidden}.drive-file-open.svelte-1ga8z6r:hover{color:var(--accent);text-decoration:underline}.drive-tag.svelte-1ga8z6r{background:color-mix(in srgb, var(--tag-color) 12%, white);color:var(--tag-color);border-radius:999px;padding:2px 8px;font-weight:550;display:inline-block}.drive-row-actions.svelte-1ga8z6r{justify-content:flex-end;gap:5px;display:flex}.drive-row-actions.svelte-1ga8z6r button:where(.svelte-1ga8z6r){border:1px solid var(--line);min-height:29px;color:var(--ink-soft);cursor:pointer;background:#fff;border-radius:6px;padding:0 7px;font-size:11px}.drive-row-actions.svelte-1ga8z6r button:where(.svelte-1ga8z6r):hover{color:var(--ink);border-color:var(--line-strong)}.drive-row-actions.svelte-1ga8z6r .drive-danger:where(.svelte-1ga8z6r){color:var(--danger)}.drive-empty.svelte-1ga8z6r,.drive-connect.svelte-1ga8z6r{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink-soft);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:54px 22px;display:flex}.drive-empty.svelte-1ga8z6r strong:where(.svelte-1ga8z6r),.drive-connect.svelte-1ga8z6r h2:where(.svelte-1ga8z6r){color:var(--ink);font-size:15px}.drive-empty.svelte-1ga8z6r .button:where(.svelte-1ga8z6r){margin-top:6px}.drive-empty-actions.svelte-1ga8z6r{gap:8px;margin-top:6px;display:flex}.drive-connect.svelte-1ga8z6r{justify-content:center;min-height:320px;padding:36px}.drive-connect.svelte-1ga8z6r h2:where(.svelte-1ga8z6r){margin:6px 0 0;font-size:19px}.drive-connect.svelte-1ga8z6r>p:where(.svelte-1ga8z6r){max-width:520px;margin:0 0 10px}.drive-connect-icon.svelte-1ga8z6r{background:var(--accent-soft);width:54px;height:54px;color:var(--accent);border-radius:15px;place-items:center;display:grid}.drive-connect-icon.svelte-1ga8z6r .fa-icon{font-size:24px}.drive-link-entry.svelte-1ga8z6r{text-align:left;width:min(100%,430px);margin-top:7px}.drive-link-entry.svelte-1ga8z6r summary:where(.svelte-1ga8z6r){color:var(--accent);cursor:pointer;font-size:12px}.drive-link-entry.svelte-1ga8z6r form:where(.svelte-1ga8z6r){gap:8px;margin-top:10px;display:grid}.drive-link-entry.svelte-1ga8z6r label:where(.svelte-1ga8z6r){gap:5px;font-size:12px;display:grid}.drive-link-entry.svelte-1ga8z6r input:where(.svelte-1ga8z6r){border:1px solid var(--line-strong);min-height:38px;font:inherit;border-radius:7px;padding:7px 9px}.drive-permission-hint.svelte-1ga8z6r{margin:0;font-size:12px}.drive-message.svelte-1ga8z6r{color:#704b27;background:#fff8f0;border:1px solid #e7c5a6;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:11px 13px;font-size:12px;display:flex}.space-note-preview.svelte-1ga8z6r{max-width:min(42vw,480px);color:var(--ink-faint);text-overflow:ellipsis;vertical-align:bottom;display:inline-block;overflow:hidden}.space-item-dialog.svelte-1ga8z6r{border:1px solid var(--line);background:var(--surface);width:min(540px,100vw - 32px);color:var(--ink);border-radius:14px;padding:0;box-shadow:0 18px 60px #17203330}.space-item-dialog.svelte-1ga8z6r::backdrop{background:#10182770}.space-item-dialog.svelte-1ga8z6r form:where(.svelte-1ga8z6r){gap:15px;padding:22px;display:grid}.space-dialog-heading.svelte-1ga8z6r{justify-content:space-between;align-items:flex-start;display:flex}.space-dialog-heading.svelte-1ga8z6r h2:where(.svelte-1ga8z6r){margin:3px 0 0;font-size:20px}.space-dialog-heading.svelte-1ga8z6r .eyebrow:where(.svelte-1ga8z6r){color:var(--ink-faint);letter-spacing:.08em;margin:0;font-size:10px}.space-item-dialog.svelte-1ga8z6r label:where(.svelte-1ga8z6r){color:var(--ink-soft);gap:6px;font-size:12px;display:grid}.space-item-dialog.svelte-1ga8z6r input:where(.svelte-1ga8z6r):not([type=color]),.space-item-dialog.svelte-1ga8z6r textarea:where(.svelte-1ga8z6r){border:1px solid var(--line-strong);background:var(--surface);width:100%;min-height:40px;color:var(--ink);font:inherit;border-radius:7px;padding:9px 10px}.space-item-dialog.svelte-1ga8z6r textarea:where(.svelte-1ga8z6r){resize:vertical}.space-tag-fields.svelte-1ga8z6r{grid-template-columns:1fr 70px;align-items:end;gap:12px;display:grid}.space-tag-fields.svelte-1ga8z6r input[type=color]:where(.svelte-1ga8z6r){border:1px solid var(--line-strong);background:var(--surface);border-radius:7px;width:48px;height:40px;padding:3px}.space-dialog-actions.svelte-1ga8z6r{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}@media (width<=760px){.drive-toolbar.svelte-1ga8z6r{flex-direction:column;align-items:stretch}.drive-search.svelte-1ga8z6r{width:100%}.drive-actions.svelte-1ga8z6r{flex-wrap:wrap}.drive-message.svelte-1ga8z6r{flex-direction:column;align-items:flex-start}}.hours-panel.svelte-1n46o8q{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px 24px;margin-bottom:18px;padding:22px 24px;display:grid}.hours-panel.svelte-1n46o8q h2:where(.svelte-1n46o8q){margin:0 0 3px;font-size:17px}.hours-panel.svelte-1n46o8q .muted:where(.svelte-1n46o8q){margin:0;font-size:12px}.hours-total.svelte-1n46o8q{grid-template-columns:auto auto;align-items:baseline;column-gap:7px;display:grid}.hours-total.svelte-1n46o8q strong:where(.svelte-1n46o8q){font-variant-numeric:tabular-nums;letter-spacing:-.04em;font-size:30px;font-weight:600}.hours-total.svelte-1n46o8q small:where(.svelte-1n46o8q){color:var(--ink-soft);text-align:right;grid-column:1/-1}.hours-month.svelte-1n46o8q{justify-content:flex-end;align-items:center;gap:8px;min-width:180px;display:flex}.hours-month.svelte-1n46o8q strong:where(.svelte-1n46o8q){text-align:center;text-transform:capitalize;min-width:112px;font-weight:550}.hours-breakdown-toggle.svelte-1n46o8q{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;grid-column:1/-1;justify-self:start;padding:5px 0;font-size:12px;font-weight:550}.hours-breakdown.svelte-1n46o8q{border-top:1px solid var(--line);grid-column:1/-1;min-width:0;padding-top:3px}.hours-breakdown.svelte-1n46o8q ul:where(.svelte-1n46o8q){gap:0;margin:0;padding:0;list-style:none;display:grid}.hours-breakdown.svelte-1n46o8q li:where(.svelte-1n46o8q){border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding:9px 0;display:flex}.hours-breakdown.svelte-1n46o8q li:where(.svelte-1n46o8q) span:where(.svelte-1n46o8q){overflow-wrap:anywhere;min-width:0}.hours-breakdown.svelte-1n46o8q li:where(.svelte-1n46o8q) strong:where(.svelte-1n46o8q),.hours-breakdown.svelte-1n46o8q>p:where(.svelte-1n46o8q) strong:where(.svelte-1n46o8q){white-space:nowrap}.hours-breakdown.svelte-1n46o8q>p:where(.svelte-1n46o8q){justify-content:space-between;gap:16px;margin:10px 0 0;display:flex}.group-settings-layout.svelte-1n46o8q{grid-template-columns:190px minmax(0,1fr);align-items:start;gap:18px;display:grid}.group-settings-nav.svelte-1n46o8q{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);gap:4px;padding:6px;display:grid;position:sticky;top:16px}.group-settings-nav.svelte-1n46o8q button:where(.svelte-1n46o8q){width:100%;min-height:39px;color:var(--ink-soft);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:space-between;align-items:center;gap:9px;padding:9px 11px;font-size:13px;font-weight:500;display:flex}.group-settings-nav.svelte-1n46o8q button:where(.svelte-1n46o8q):hover{background:var(--surface-soft);color:var(--ink)}.group-settings-nav.svelte-1n46o8q button.active:where(.svelte-1n46o8q){background:var(--accent-soft);color:var(--accent);font-weight:600}.group-settings-nav.svelte-1n46o8q button:where(.svelte-1n46o8q) span:where(.svelte-1n46o8q){background:var(--surface-soft);text-align:center;border-radius:999px;min-width:20px;padding:1px 6px;font-size:11px}.group-settings-content.svelte-1n46o8q{min-width:0}.account-settings-layout.svelte-1n46o8q{grid-template-columns:190px minmax(0,1fr);align-items:start;gap:18px;display:grid}.account-settings-tabs.svelte-1n46o8q{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);gap:4px;padding:6px;display:grid}.account-settings-tabs.svelte-1n46o8q button:where(.svelte-1n46o8q){width:100%;color:var(--ink-soft);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:9px 11px;font-weight:500}.account-settings-tabs.svelte-1n46o8q button:where(.svelte-1n46o8q):hover{background:var(--surface-soft);color:var(--ink)}.account-settings-tabs.svelte-1n46o8q .account-settings-active:where(.svelte-1n46o8q){background:var(--accent-soft);color:var(--accent);font-weight:600}.account-settings-content.svelte-1n46o8q{min-width:0}.profile-form.svelte-1n46o8q{grid-template-columns:1fr 1fr;gap:14px;margin-top:18px;display:grid}.profile-form.svelte-1n46o8q label:where(.svelte-1n46o8q){color:var(--ink-soft);gap:5px;font-size:12px;display:grid}.profile-form.svelte-1n46o8q input:where(.svelte-1n46o8q),.admin-users-panel.svelte-1n46o8q select:where(.svelte-1n46o8q){border:1px solid var(--line-strong);background:var(--surface);min-height:38px;color:var(--ink);font:inherit;border-radius:7px;padding:7px 9px}.profile-form.svelte-1n46o8q input[readonly]:where(.svelte-1n46o8q){background:var(--surface-soft)}.profile-wide.svelte-1n46o8q{grid-column:1/-1}.student-heading.svelte-1n46o8q{align-items:center}.student-heading.svelte-1n46o8q>div:where(.svelte-1n46o8q):first-child{min-width:0}.student-actions.svelte-1n46o8q{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.manual-student-add.svelte-1n46o8q{border:1px solid var(--line);background:var(--surface-container-low);border-radius:8px;margin:0 0 10px;padding:9px 11px}.manual-student-add.svelte-1n46o8q summary:where(.svelte-1n46o8q){color:var(--accent);cursor:pointer;font-size:13px;font-weight:550}.manual-student-add[open].svelte-1n46o8q summary:where(.svelte-1n46o8q){margin-bottom:12px}.manual-student-add.svelte-1n46o8q .student-form:where(.svelte-1n46o8q){margin:0}.session-date-badge.svelte-1n46o8q{background:var(--surface-container-low);min-width:48px;height:42px;color:var(--on-surface-variant);border-radius:8px;flex:none;place-items:center;padding:0 6px;font-size:11px;font-weight:600;display:grid}.session-edit-button.svelte-1n46o8q{min-height:32px;padding:0 9px;font-size:12px}.import-dialog.svelte-1n46o8q{border:1px solid var(--line);background:var(--surface);width:min(900px,100vw - 28px);max-width:none;max-height:calc(100dvh - 32px);color:var(--ink);box-shadow:var(--shadow-popover);border-radius:14px;padding:0;overflow:auto}.import-dialog.svelte-1n46o8q::backdrop{background:#141d287a}.import-dialog-card.svelte-1n46o8q{min-width:0}.import-dialog-card.svelte-1n46o8q .dialog-header:where(.svelte-1n46o8q) .muted:where(.svelte-1n46o8q){margin:5px 0 0}.import-generate.svelte-1n46o8q{justify-self:start}.import-hint.svelte-1n46o8q{color:var(--ink-soft);margin:0;font-size:12px}.import-preview.svelte-1n46o8q{border:1px solid var(--line);border-radius:8px;max-height:42vh;overflow:auto}.import-preview.svelte-1n46o8q table:where(.svelte-1n46o8q){border-collapse:collapse;width:100%;font-size:12px}.import-preview.svelte-1n46o8q th:where(.svelte-1n46o8q),.import-preview.svelte-1n46o8q td:where(.svelte-1n46o8q){border-bottom:1px solid var(--line);text-align:left;padding:6px}.import-preview.svelte-1n46o8q th:where(.svelte-1n46o8q){background:var(--surface-container-low);color:var(--ink-soft);font-weight:600;position:sticky;top:0}.import-preview.svelte-1n46o8q tr:where(.svelte-1n46o8q):last-child td:where(.svelte-1n46o8q){border-bottom:0}.import-preview.svelte-1n46o8q input:where(.svelte-1n46o8q){border:1px solid var(--line);background:var(--surface);width:100%;min-width:80px;min-height:32px;color:var(--ink);font:inherit;border-radius:5px;padding:5px 7px}.import-preview.svelte-1n46o8q td:where(.svelte-1n46o8q):last-child{min-width:120px;color:var(--success,#2f7453);white-space:nowrap}.import-preview.svelte-1n46o8q .invalid-row:where(.svelte-1n46o8q) td:where(.svelte-1n46o8q):last-child{color:var(--danger)}.session-import-table.svelte-1n46o8q{min-width:720px}.ai-profile.svelte-1n46o8q{border-top:1px solid var(--line);padding-top:12px}.google-account-status.svelte-1n46o8q{border:1px solid var(--line);border-radius:var(--radius-md);gap:10px;max-width:560px;padding:16px;display:grid}.google-account-status.svelte-1n46o8q>div:where(.svelte-1n46o8q):first-child{align-items:center;gap:8px;display:flex}.google-account-status.svelte-1n46o8q p:where(.svelte-1n46o8q){margin:0}.google-account-status.svelte-1n46o8q .drive-scope-note:where(.svelte-1n46o8q){border-top:1px solid var(--line);color:var(--ink-faint);padding-top:10px;font-size:12px}.status-dot.svelte-1n46o8q{border-radius:50%;width:9px;height:9px}.status-connected.svelte-1n46o8q{background:#338260;box-shadow:0 0 0 3px #3382601c}.ai-usage-row.svelte-1n46o8q{color:var(--ink-soft);justify-content:space-between;gap:12px;margin-top:16px;font-size:12px;display:flex}.ai-usage-row.svelte-1n46o8q strong:where(.svelte-1n46o8q){color:var(--ink)}.ai-meter.svelte-1n46o8q{background:var(--surface-soft);border-radius:999px;height:7px;margin-top:7px;overflow:hidden}.ai-meter.svelte-1n46o8q span:where(.svelte-1n46o8q){border-radius:inherit;background:var(--accent);height:100%;display:block}.admin-users-panel.svelte-1n46o8q{padding:0;overflow:hidden}.admin-users-panel.svelte-1n46o8q .table-wrap:where(.svelte-1n46o8q){border-radius:inherit;border:0}.admin-users-panel.svelte-1n46o8q td:where(.svelte-1n46o8q){vertical-align:middle}.dashboard-widgets.svelte-1n46o8q{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px;display:grid}.dashboard-widget.svelte-1n46o8q{min-width:0;padding:18px}.dashboard-widget.svelte-1n46o8q .panel-heading:where(.svelte-1n46o8q){margin-bottom:14px}.dashboard-widget.svelte-1n46o8q h2:where(.svelte-1n46o8q){margin:0;font-size:16px}.dashboard-widget.svelte-1n46o8q .muted:where(.svelte-1n46o8q){margin:3px 0 0;font-size:12px}.dashboard-upcoming.svelte-1n46o8q{margin-top:16px;padding:18px}.dashboard-upcoming.svelte-1n46o8q h2:where(.svelte-1n46o8q){margin:0;font-size:16px}.dashboard-upcoming.svelte-1n46o8q .muted:where(.svelte-1n46o8q){margin:3px 0 0;font-size:12px}.dashboard-upcoming.svelte-1n46o8q ul:where(.svelte-1n46o8q){gap:3px;margin:0;padding:0;list-style:none;display:grid}.dashboard-upcoming.svelte-1n46o8q li:where(.svelte-1n46o8q) button:where(.svelte-1n46o8q){width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:14px;padding:10px 8px;display:flex}.dashboard-upcoming.svelte-1n46o8q li:where(.svelte-1n46o8q) button:where(.svelte-1n46o8q):hover{background:var(--surface-soft)}.dashboard-upcoming.svelte-1n46o8q time:where(.svelte-1n46o8q){width:124px;color:var(--ink-soft);text-transform:capitalize;flex:none;font-size:12px}.dashboard-upcoming.svelte-1n46o8q li:where(.svelte-1n46o8q) button:where(.svelte-1n46o8q)>span:where(.svelte-1n46o8q):nth-child(2){gap:3px;min-width:0;display:grid}.dashboard-upcoming.svelte-1n46o8q li:where(.svelte-1n46o8q) strong:where(.svelte-1n46o8q){color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.dashboard-upcoming.svelte-1n46o8q li:where(.svelte-1n46o8q) small:where(.svelte-1n46o8q){color:var(--ink-faint);font-size:11px}.dashboard-upcoming.svelte-1n46o8q .quick-arrow:where(.svelte-1n46o8q){color:var(--ink-faint);margin-left:auto;font-size:20px}.dashboard-reminder-form.svelte-1n46o8q{gap:8px;display:flex}.dashboard-reminder-form.svelte-1n46o8q input:where(.svelte-1n46o8q){border:1px solid var(--line-strong);background:var(--surface);min-width:0;min-height:38px;color:var(--ink);font:inherit;border-radius:7px;flex:1;padding:7px 10px}.dashboard-reminder-list.svelte-1n46o8q{gap:6px;margin:12px 0 0;padding:0;list-style:none;display:grid}.dashboard-reminder-list.svelte-1n46o8q li:where(.svelte-1n46o8q){align-items:center;gap:8px;min-width:0;display:flex}.dashboard-reminder-list.svelte-1n46o8q label:where(.svelte-1n46o8q){flex:1;align-items:center;gap:8px;min-width:0;display:flex}.dashboard-reminder-list.svelte-1n46o8q label:where(.svelte-1n46o8q) span:where(.svelte-1n46o8q){overflow-wrap:anywhere}.dashboard-reminder-list.svelte-1n46o8q .completed:where(.svelte-1n46o8q) span:where(.svelte-1n46o8q){color:var(--ink-faint);text-decoration:line-through}.dashboard-sticky-grid.svelte-1n46o8q{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.dashboard-sticky.svelte-1n46o8q{border:1px solid color-mix(in srgb, var(--note-color) 60%, #777);background:color-mix(in srgb, var(--note-color) 35%, white);border-radius:9px;min-height:150px;padding:9px}.dashboard-sticky.svelte-1n46o8q>div:where(.svelte-1n46o8q){justify-content:space-between;align-items:center;display:flex}.dashboard-sticky.svelte-1n46o8q input[type=color]:where(.svelte-1n46o8q){background:0 0;border:1px solid #0002;border-radius:50%;width:25px;height:25px;padding:2px}.dashboard-sticky.svelte-1n46o8q textarea:where(.svelte-1n46o8q){resize:vertical;width:100%;min-height:100px;color:var(--ink);font:inherit;background:0 0;border:0;outline:0;padding:6px 2px;font-size:13px}.duplicate-options.svelte-1n46o8q{border:1px solid var(--line);border-radius:var(--radius-md);gap:10px;margin:0;padding:14px;display:grid}.duplicate-options.svelte-1n46o8q legend:where(.svelte-1n46o8q){padding:0 5px;font-weight:600}.duplicate-options.svelte-1n46o8q label:where(.svelte-1n46o8q){align-items:center;gap:9px;display:flex}.duplicate-options.svelte-1n46o8q input:where(.svelte-1n46o8q){width:16px;height:16px;accent-color:var(--accent)}.duplicate-options.svelte-1n46o8q p:where(.svelte-1n46o8q){margin:2px 0 0;font-size:12px}@media (width<=760px){.dashboard-widgets.svelte-1n46o8q{grid-template-columns:1fr}}@media (width<=640px){.hours-panel.svelte-1n46o8q{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px}.hours-month.svelte-1n46o8q{grid-column:1/-1;justify-content:space-between}.hours-breakdown-toggle.svelte-1n46o8q,.hours-breakdown.svelte-1n46o8q{grid-column:1/-1}.account-settings-layout.svelte-1n46o8q,.group-settings-layout.svelte-1n46o8q{grid-template-columns:1fr}.account-settings-tabs.svelte-1n46o8q,.group-settings-nav.svelte-1n46o8q{display:flex;position:static;overflow:auto}.account-settings-tabs.svelte-1n46o8q button:where(.svelte-1n46o8q),.group-settings-nav.svelte-1n46o8q button:where(.svelte-1n46o8q){flex:none;width:auto}.profile-form.svelte-1n46o8q{grid-template-columns:1fr}.profile-wide.svelte-1n46o8q{grid-column:auto}.dashboard-upcoming.svelte-1n46o8q time:where(.svelte-1n46o8q){width:92px;font-size:11px}.student-heading.svelte-1n46o8q{flex-direction:column;align-items:flex-start}.student-actions.svelte-1n46o8q{justify-content:flex-start}.session-management-list.svelte-1n46o8q li:where(.svelte-1n46o8q){flex-wrap:wrap}.import-dialog-card.svelte-1n46o8q{padding:18px}}:root{color:#222a35;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--canvas:#f5f7fa;--surface:#fff;--surface-soft:#edf1f6;--ink:#222a35;--ink-soft:#5d6877;--ink-faint:#788493;--line:#dfe5ec;--line-strong:#cbd4df;--accent:#315f9f;--accent-hover:#254d84;--accent-soft:#e8eff9;--positive:#356b52;--positive-soft:#eaf3ed;--danger:#a1433f;--danger-soft:#f8eae9;--favorite:#b67d25;--shadow-card:0 1px 2px #1825360a;--shadow-popover:0 14px 38px #18253626;--radius-sm:8px;--radius-md:13px;--radius-lg:18px;--content:1180px;background:#f5f7fa;font-family:Geist,Helvetica Neue,sans-serif}*{box-sizing:border-box}html{background:var(--canvas);min-width:320px;min-height:100%}body{background:var(--canvas);min-width:320px;min-height:100vh;color:var(--ink);margin:0;font-size:14px;line-height:1.5}button,input,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline-offset:2px;outline:2px solid #4e7fca}button:disabled{opacity:.55;cursor:not-allowed}a{color:inherit}h1,h2,p{margin-top:0}h1{letter-spacing:-.035em;margin-bottom:6px;font-size:clamp(27px,3vw,34px);font-weight:600;line-height:1.2}h2{letter-spacing:-.02em;margin-bottom:0;font-size:17px;font-weight:600;line-height:1.35}.muted{color:var(--ink-soft)}.eyebrow{color:var(--ink-faint);letter-spacing:.09em;margin:0 0 7px;font-size:10px;font-weight:650}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{width:100%;min-width:0;min-height:100vh;overflow-x:clip}.topbar{z-index:20;min-width:0;min-height:68px;padding:0 max(28px, calc((100% - var(--content)) / 2));background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:28px;display:flex;position:sticky;top:0}.brand-lockup{color:var(--ink);letter-spacing:-.03em;white-space:nowrap;flex:none;align-items:center;gap:10px;font-size:16px;font-weight:650;text-decoration:none;display:inline-flex}.brand-mark{background:var(--accent-soft);width:31px;height:31px;color:var(--accent);border-radius:9px;place-items:center;font-size:19px;font-weight:700;display:grid}.main-nav{align-items:center;gap:4px;height:68px;display:flex}.main-nav a{border-radius:var(--radius-sm);height:40px;color:var(--ink-soft);align-items:center;padding:0 13px;font-weight:500;text-decoration:none;display:inline-flex}.main-nav a:hover{color:var(--ink);background:#f7f9fb}.main-nav a[aria-current=page]{color:var(--accent);background:var(--accent-soft);font-weight:600}.topbar-spacer{flex:1}.profile-wrap{position:relative}.profile-button{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:9px;min-height:40px;padding:4px 8px 4px 5px;display:inline-flex}.profile-button:hover,.profile-button[aria-expanded=true]{border-color:var(--line);background:#fafbfd}.avatar,.person-avatar{color:#344458;background:#e8edf3;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:12px;font-weight:650;display:grid}.profile-name{text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-weight:500;overflow:hidden}.chevron{font-size:14px}.profile-menu{z-index:30;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);width:250px;box-shadow:var(--shadow-popover);padding:8px;position:absolute;top:calc(100% + 8px);right:0}.profile-menu-identity{gap:2px;padding:10px;display:grid}.profile-menu-identity strong{font-weight:600}.profile-menu-identity span{color:var(--ink-soft);overflow-wrap:anywhere;font-size:12px}.menu-divider{background:var(--line);height:1px;margin:5px 0}.profile-menu button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;width:100%;padding:9px 10px}.profile-menu button:hover{background:#f7f9fb}.main-content{width:min(var(--content), 100%);min-width:0;min-height:calc(100vh - 68px);margin:0 auto;padding:38px 28px 72px}.page-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:27px;display:flex}.page-heading>div>.muted{margin:0}.button{cursor:pointer;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 15px;font-weight:550;transition:background .15s,border-color .15s,transform .15s;display:inline-flex}.button:active{transform:translateY(1px)}.button-primary{color:#fff;background:var(--accent)}.button-primary:hover{background:var(--accent-hover)}.button-secondary{border-color:var(--line-strong);background:var(--surface)}.button-secondary:hover{background:#f8fafc;border-color:#aebbc9}.button span{font-size:19px;line-height:1}.global-alert{justify-content:space-between;align-items:center;gap:14px;margin:0 0 22px;display:flex}.alert{background:var(--danger-soft);color:#873a36;border:1px solid #edcecc;border-radius:9px;padding:11px 13px;font-size:13px}.alert button{color:inherit;cursor:pointer;background:0 0;border:0;flex:none;font-size:20px;line-height:1}.group-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;padding-bottom:15px;display:flex}.filter-tabs{background:#eaf0f6;border-radius:10px;align-items:center;gap:3px;padding:3px;display:inline-flex}.filter-tabs button{min-height:34px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:0 12px;font-size:13px;font-weight:500}.filter-tabs button:hover{color:var(--ink)}.filter-tabs button.active{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:0 1px 3px #121f2e1f}.toolbar-actions{align-items:center;gap:10px;display:flex}.search-box{align-items:center;width:min(280px,27vw);display:flex;position:relative}.search-box>.fa-icon{color:var(--ink-faint);pointer-events:none;font-size:16px;position:absolute;left:12px}.search-box input{border:1px solid var(--line);background:var(--surface);width:100%;height:38px;color:var(--ink);border-radius:8px;padding:0 12px 0 38px}.search-box input::placeholder{color:var(--ink-faint)}.view-switch{border:1px solid var(--line);background:var(--surface);border-radius:9px;gap:2px;padding:3px;display:inline-flex}.view-switch button{width:31px;height:30px;color:var(--ink-faint);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.view-switch button:hover,.view-switch button.pressed{background:var(--accent-soft);color:var(--accent)}.view-switch .fa-icon{font-size:15px}.grid-layout{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;display:grid}.list-layout{grid-template-columns:minmax(0,1fr);gap:7px;display:grid}.group-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);min-width:0;box-shadow:var(--shadow-card);align-items:stretch;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;position:relative}.group-card:hover{border-color:#c3d0dd;transform:translateY(-1px);box-shadow:0 5px 16px #18253612}:is(.group-card:has(.group-actions[open]),.group-card:has(.favorite-confirm)){z-index:20}.group-card.archived{background:#fbfcfd}.group-card-main{border-radius:var(--radius-md);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:12px;min-width:0;padding:16px 8px 16px 16px;display:flex}.group-monogram{width:39px;height:39px;color:var(--accent);background:#e8eff9;border-radius:11px;flex:none;place-items:center;font-weight:650;display:grid}.group-monogram.large{border-radius:13px;width:49px;height:49px;font-size:18px}.group-copy{gap:3px;min-width:0;display:grid}.group-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.group-copy>span{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.group-copy>.group-instructor,.group-instructor{color:var(--ink-soft);font-size:12px}.card-arrow{color:#a1acb9;margin-left:auto;font-size:14px}.status-pill{color:#66717e;background:#f3f5f7;border:1px solid #dce2e8;border-radius:999px;flex:none;align-items:center;min-height:23px;padding:0 8px;font-size:11px;font-weight:550;display:inline-flex}.favorite-control{align-items:center;padding:0 10px 0 2px;display:flex}.star-button,.icon-button{color:#9aa7b5;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;width:34px;height:34px;display:grid}.star-button:hover,.icon-button:hover{color:var(--favorite);background:#f5f7fa}.star-button .fa-icon,.icon-button .fa-icon{font-size:18px}.star-button.starred{color:var(--favorite)}.star-button.starred .fa-icon,.icon-button .fa-icon.filled{color:currentColor}.favorite-confirm{z-index:4;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-popover);white-space:nowrap;border-radius:9px;align-items:center;gap:7px;padding:8px 9px;font-size:12px;display:flex;position:absolute;top:calc(100% - 2px);right:8px}.favorite-confirm span{color:var(--ink-soft)}.favorite-confirm button{color:var(--accent);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:4px 6px;font-weight:600}.favorite-confirm button:hover{background:var(--accent-soft)}.favorite-confirm button:first-of-type{color:var(--danger)}.group-actions{flex:none;place-items:center;padding-right:7px;display:grid;position:relative}.group-actions summary{width:34px;height:34px;color:var(--ink-faint);cursor:pointer;border-radius:8px;place-items:center;list-style:none;display:grid}.group-actions summary::-webkit-details-marker{display:none}.group-actions summary:hover,.group-actions[open] summary{background:var(--surface-soft);color:var(--ink)}.group-actions-menu{z-index:10;border:1px solid var(--line);background:var(--surface);min-width:190px;box-shadow:var(--shadow-popover);border-radius:10px;padding:5px;display:grid;position:absolute;top:calc(100% + 4px);right:7px}.group-actions-menu button{min-height:36px;color:var(--ink);text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 10px;font-size:13px}.group-actions-menu button:hover{background:var(--surface-soft)}.group-actions-menu button.danger-action{color:var(--danger)}.group-actions summary:focus-visible,.group-actions-menu button:focus-visible{outline-offset:2px;outline:2px solid #4e7fca}.list-layout .group-card-main{min-height:67px}.empty-state{text-align:center;justify-items:center;max-width:440px;margin:78px auto 0;display:grid}.empty-icon{border:1px solid var(--line);background:var(--surface);width:56px;height:56px;color:var(--accent);border-radius:16px;place-items:center;margin-bottom:16px;display:grid}.empty-icon .fa-icon{font-size:24px}.empty-state h2{margin:0 0 7px;font-size:18px}.empty-state p{color:var(--ink-soft);margin:0 0 20px}.back-link{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;margin:0 0 20px;padding:4px 0;font-size:13px;display:inline-flex}.back-link:hover{color:var(--accent)}.back-link .fa-icon{font-size:14px}.group-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.group-title-wrap{align-items:center;gap:14px;min-width:0;display:flex}.group-title-wrap h1{overflow-wrap:anywhere;margin:0}.group-title-wrap p{margin:4px 0 0}.title-line{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.group-tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:22px;padding-bottom:0;display:flex}.group-tabs button{min-height:43px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:7px 7px 0 0;align-items:center;gap:8px;padding:0 13px;font-weight:500;display:inline-flex;position:relative}.group-tabs button:hover{color:var(--ink);background:#edf1f6}.group-tabs button.active{color:var(--accent);font-weight:600}.group-tabs button.active:after{background:var(--accent);content:"";border-radius:2px;height:2px;position:absolute;bottom:-1px;left:8px;right:8px}.tab-icon{flex:0 0 18px;width:18px;height:18px;display:block}.panel{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);min-width:0;box-shadow:var(--shadow-card);padding:20px}.panel-wide{grid-column:1/-1}.panel-heading{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:17px;display:flex}.panel-heading p{margin:4px 0 0;font-size:12px}.count{min-width:22px;height:22px;color:var(--ink-soft);vertical-align:1px;background:#edf1f6;border-radius:999px;place-items:center;margin-left:4px;font-size:11px;display:inline-grid}.detail-list{gap:0;margin:0;display:grid}.detail-list>div{border-top:1px solid #edf0f3;grid-template-columns:125px minmax(0,1fr);gap:16px;padding:11px 0;display:grid}.detail-list dt{color:var(--ink-faint);font-size:12px}.detail-list dd{overflow-wrap:anywhere;margin:0;font-weight:500}.panel-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:13px;padding-top:15px;display:flex}.panel-footer .muted{font-size:12px}.student-form{grid-template-columns:.8fr 1fr 1fr auto;align-items:end;gap:8px;margin:0 0 15px;display:grid}.panel label,.dialog-card label{color:var(--ink-soft);gap:5px;font-size:12px;font-weight:500;display:grid}.panel input,.dialog-card input,.dialog-card textarea{border:1px solid var(--line-strong);background:var(--surface);width:100%;min-height:38px;color:var(--ink);border-radius:7px;padding:8px 10px;font-size:13px;font-weight:400}.panel input:focus,.dialog-card input:focus,.dialog-card textarea:focus{border-color:var(--accent);outline:2px solid #315f9f24}.people-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.people-list li{border-top:1px solid #edf0f3;align-items:center;gap:10px;min-width:0;padding:10px 2px;display:flex}.person-avatar{width:31px;height:31px;font-size:10px}.person-name{gap:1px;min-width:0;display:grid}.person-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:550;overflow:hidden}.person-name small{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.people-list li>.text-danger{margin-left:auto}.text-danger{color:var(--danger);cursor:pointer;background:0 0;border:0;border-radius:6px;font-size:12px}.text-danger:hover{background:var(--danger-soft)}.inline-empty{color:var(--ink-faint);margin:0;padding:12px 0 3px;font-size:13px}.access-form{align-items:end;gap:10px;margin-bottom:14px;display:flex}.access-form label{width:min(360px,100%)}.access-form select{border:1px solid var(--line-strong);background:var(--surface);min-height:38px;color:var(--ink);font:inherit;border-radius:7px;padding:7px 32px 7px 10px}.module-empty{text-align:center;align-content:center;justify-items:center;max-width:560px;min-height:340px;margin:28px auto;padding:32px;display:grid}.module-symbol{border:1px solid var(--line);background:var(--surface);width:58px;height:58px;color:var(--accent);border-radius:17px;place-items:center;margin-bottom:16px;font-size:25px;display:grid}.module-empty h2{margin:0 0 8px;font-size:20px}.module-empty p{max-width:470px;color:var(--ink-soft);margin-bottom:15px}.module-status{color:#805a2f;background:#f7f0e5;border:1px solid #ecd9b9;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:550}.dashboard-groups{margin-top:10px}.quick-groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.quick-group{border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:11px;min-width:0;padding:11px;display:flex}.quick-group:hover{background:#fbfcfe;border-color:#bac9d8}.quick-group>span:nth-child(2){gap:2px;min-width:0;display:grid}.quick-group strong,.quick-group small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.quick-group strong{font-size:13px;font-weight:550}.quick-group small{color:var(--ink-soft);font-size:11px}.quick-arrow{color:var(--ink-faint);margin-left:auto;font-size:20px}.login-shell,.loading-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);width:min(100%,410px);padding:34px;box-shadow:0 12px 38px #18253612}.login-card .brand-lockup{margin-bottom:32px}.login-card h1{margin-bottom:7px}.login-card>.muted{margin-bottom:22px}.login-button{width:100%;min-height:46px}.login-button svg{width:18px;height:18px}.login-footnote{color:var(--ink-faint);margin:18px 0 0;font-size:11px;line-height:1.55}.loading-shell{min-height:55vh;color:var(--ink-soft);justify-content:center;align-items:center;gap:11px;display:flex}.spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:17px;height:17px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}dialog{border:1px solid var(--line);background:var(--surface);width:min(100% - 32px,510px);max-width:510px;max-height:min(90vh,720px);color:var(--ink);border-radius:16px;padding:0;overflow:auto;box-shadow:0 24px 80px #0f1b293d}dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#19222e6b}.dialog-card{gap:16px;padding:25px;display:grid}.dialog-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:4px;display:flex}.dialog-header h2{font-size:22px}.dialog-close{width:32px;height:32px;color:var(--ink-faint);cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:22px}.dialog-close:hover{color:var(--ink);background:#f2f5f8}.dialog-card label{font-size:12px}.dialog-card input,.dialog-card textarea{min-height:42px;font-size:14px}.dialog-card textarea{resize:vertical}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.optional{color:var(--ink-faint);font-weight:400}.dialog-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;margin-top:5px;padding-top:16px;display:flex}@media (width<=900px){.topbar{gap:16px;padding:0 20px}.main-content{padding:30px 20px 56px}.grid-layout,.student-form{grid-template-columns:repeat(2,minmax(0,1fr))}.student-form button{grid-column:2;justify-self:end}}@media (width<=640px){.topbar{gap:10px;min-height:60px;padding:0 14px}.brand-lockup{gap:7px;font-size:14px}.brand-mark{width:28px;height:28px}.main-nav{gap:0;height:60px}.main-nav a{height:36px;padding:0 8px;font-size:12px}.profile-name,.chevron{display:none}.profile-button{padding:3px}.main-content{padding:25px 15px 48px}.page-heading{align-items:flex-start;gap:12px;margin-bottom:21px}.page-heading>.button{white-space:nowrap;min-height:36px;padding:0 10px;font-size:12px}.page-heading .muted{max-width:250px;font-size:12px}.group-toolbar{gap:12px;display:grid}.filter-tabs{width:100%;overflow-x:auto}.filter-tabs button{flex:1 0 auto;padding:0 10px}.toolbar-actions{width:100%}.search-box{flex:1;width:auto}.grid-layout{grid-template-columns:1fr;gap:8px}.group-card-main{min-height:66px}.group-heading{align-items:flex-start;margin-bottom:18px}.group-title-wrap{gap:10px}.group-monogram.large{width:40px;height:40px;font-size:15px}.group-title-wrap h1{font-size:22px}.group-title-wrap p{font-size:12px}.group-tabs{gap:0;margin-left:-15px;margin-right:-15px;padding:0 11px;overflow-x:auto}.group-tabs button{flex:none;gap:6px;min-height:42px;padding:0 10px;font-size:12px}.tab-icon{display:none}.panel{padding:16px}.detail-list>div{grid-template-columns:96px minmax(0,1fr);gap:10px}.student-form{grid-template-columns:1fr 1fr}.student-form button{grid-column:2}.access-form{flex-direction:column;align-items:stretch}.access-form label{width:100%}.access-form .button{align-self:flex-start}.quick-groups{grid-template-columns:1fr}.module-empty{min-height:300px;padding:22px 8px}.login-card{padding:25px 21px}.dialog-card{padding:19px}.form-row{grid-template-columns:1fr}}:root{--surface:#fff;--surface-container-low:#f7f9fb;--surface-container-high:#eef2f6;--surface-container:#f1f4f7;--outline-variant:var(--line);--on-surface:var(--ink);--on-surface-variant:var(--ink-soft);--primary:var(--accent);--primary-container:var(--accent-soft);--on-primary-container:var(--accent);--success:var(--positive);--warning:#9a6817;--error:var(--danger)}.attendance-view,.grades-view{min-width:0}.attendance-view-actions,.page-head,.head-actions{align-items:center;gap:10px;display:flex}.attendance-session-switch,.attendance-session-date{align-items:center;gap:8px;display:flex}.attendance-session-date>span:last-child{display:grid}.attendance-session-date small{color:var(--ink-soft)}.attendance-icon-button,.icon-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;place-items:center;min-width:34px;min-height:34px;display:inline-grid}.attendance-statuses{flex-wrap:wrap;gap:6px;display:flex}.attendance-status{border:1px solid var(--line-strong);background:var(--surface);min-height:34px;color:var(--ink-soft);cursor:pointer;border-radius:7px;padding:0 10px}.attendance-status.is-selected[data-status=present]{color:#285a3b;background:#eaf3ed;border-color:#6e9c7b}.attendance-status.is-selected[data-status=absent]{color:#8e3530;background:#f8eae9;border-color:#c9827d}.attendance-status.is-selected[data-status=late]{color:#76500e;background:#fbf3e3;border-color:#d2aa63}.attendance-status.is-selected[data-status=excused]{color:#315f9f;background:#eaf1fa;border-color:#84a6ce}.attendance-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:58px;padding:8px 12px;display:flex}.attendance-student{align-items:center;gap:10px;min-width:220px;display:flex}.attendance-avatar{background:var(--surface-soft);border-radius:50%;place-items:center;width:32px;height:32px;font-size:11px;font-weight:650;display:grid}.attendance-list{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.attendance-list-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.attendance-save-state{color:var(--ink-soft);font-size:12px}.attendance-notice{color:var(--ink)}.attendance-pending-list{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.attendance-pending-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 15px;display:flex}.btn-primary,.btn-secondary,.btn-outlined{min-height:38px;font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-size:13px;font-weight:550;display:inline-flex}.btn-primary{border:1px solid var(--accent);background:var(--accent);color:#fff}.btn-secondary,.btn-outlined{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink)}.btn-text{color:var(--accent);cursor:pointer;background:0 0;border:0}.has-icon{align-items:center;gap:6px;display:inline-flex}.page-head{justify-content:space-between;margin:0 0 14px}.page-title{margin:0;font-size:19px;font-weight:600}.grade-view-tabs{border-bottom:1px solid var(--line);gap:6px;margin:10px 0 14px;display:flex}.grade-view-tabs button{min-height:40px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 12px}.grade-view-tabs button.active{border-color:var(--accent);color:var(--accent);font-weight:600}.grade-task-list,.table-wrap,.att-table-wrap{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);overflow-x:auto}.grade-task-row{border-bottom:1px solid var(--line);align-items:center;gap:4px;display:flex}.grade-task-open{text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:10px;min-width:0;min-height:58px;padding:8px 12px;display:flex}.grade-task-open:hover{background:var(--surface-soft)}.grade-task-open-name{flex:1;min-width:0;display:grid}.grade-task-open-name small{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.grade-task-meta,.grade-task-open-count{color:var(--ink-soft);white-space:nowrap;font-size:12px}.grade-selected-task-head{align-items:center;gap:10px;margin:10px 0;display:flex}.grade-selected-task-head strong{flex:1}.grade-final-intro{color:var(--ink-soft);margin:0 0 10px}.grade-final-wrap select,.grade-task-editor input,.grade-task-editor textarea,.tbl select{border:1px solid var(--line-strong);background:var(--surface);min-height:36px;color:var(--ink);font:inherit;border-radius:7px;padding:5px 9px}.grade-task-editor{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);gap:12px;margin:12px 0;padding:16px;display:grid}.grade-task-editor label{color:var(--ink-soft);gap:5px;font-size:12px;display:grid}.grade-task-editor .form-actions{gap:8px;display:flex}.tbl{border-collapse:collapse;width:100%}.tbl th{background:var(--surface-soft);color:var(--ink-soft);text-align:left;padding:10px 12px;font-size:11px;font-weight:600}.tbl td{border-top:1px solid var(--line);padding:8px 12px}.td-empty{color:var(--ink-soft);text-align:center;padding:28px 12px!important}.att-td-name{min-width:180px;font-weight:550}.att-th-name{min-width:180px}.grade-cell{min-width:160px}.grade-cell select{width:100%}.att-nb,.td-num{font-variant-numeric:tabular-nums}.icon-btn{color:var(--ink-soft);padding:0 8px}.grade-task-del{color:var(--ink-soft);cursor:pointer;background:0 0;border:0}.backdrop{z-index:60;background:#18223061;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{border-radius:var(--radius-lg);background:var(--surface);width:min(100%,540px);box-shadow:var(--shadow-popover);padding:20px}.modal-head,.modal-foot{justify-content:space-between;align-items:center;gap:10px;display:flex}.modal-body{gap:12px;display:grid}.modal-body input,.modal-body textarea{border:1px solid var(--line-strong);background:var(--surface);width:100%;min-height:38px;color:var(--ink);font:inherit;border-radius:7px;padding:8px 10px}.grade-final-wrap select{min-width:110px}@media (width<=640px){.attendance-row{flex-direction:column;align-items:stretch;gap:8px}.attendance-student{min-width:0}.attendance-statuses{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.attendance-status{padding:0 4px;font-size:11px}.attendance-view-title,.attendance-view-actions{flex-direction:column;align-items:stretch}.grade-task-meta{display:none}}
