.ui-focus:focus-visible,.ui-btn:focus-visible,.ui-input:focus-visible,.ui-select:focus-visible,.ui-textarea:focus-visible,.ui-tab:focus-visible,.ui-choice__control:focus-visible+.ui-choice__box,.ui-dialog__close:focus-visible{outline:var(--border-strong) solid var(--ring-color);outline-offset:var(--border-strong)}.ui-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.ui-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border:var(--border-hairline) solid transparent;border-radius:var(--radius-pill);font-family:var(--font-ui);font-weight:var(--weight-semibold);text-align:center;text-decoration:none;cursor:pointer}.ui-btn:hover,.ui-btn:focus,.ui-btn:visited{text-decoration:none}@media(prefers-reduced-motion:no-preference){.ui-btn{transition:background-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease)}.ui-btn:active:not([data-loading=true]):not(:disabled){transform:translateY(var(--border-hairline))}}.ui-btn[data-size=sm]{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);line-height:var(--leading-sm)}.ui-btn[data-size=md]{padding:var(--space-3) var(--space-5);font-size:var(--text-base);line-height:var(--leading-base)}.ui-btn[data-size=lg]{padding:var(--space-4) var(--space-8);font-size:var(--text-lg);line-height:var(--leading-lg)}.ui-btn[data-size=icon]{padding:var(--space-2);min-width:var(--space-11);min-height:var(--space-11);font-size:var(--text-base);line-height:var(--leading-base)}.ui-btn[data-variant=primary]{background:var(--primary);color:var(--primary-foreground)}.ui-btn[data-variant=primary]:hover:not(:disabled){background:var(--foreground)}.ui-btn[data-variant=secondary]{background:var(--secondary);color:var(--secondary-foreground)}.ui-btn[data-variant=secondary]:hover:not(:disabled){background:var(--surface-muted)}.ui-btn[data-variant=ghost]{background:transparent;color:var(--foreground);border-color:var(--border)}.ui-btn[data-variant=ghost]:hover:not(:disabled){background:var(--surface-muted);border-color:var(--muted-foreground)}.ui-btn[data-variant=destructive]{background:var(--destructive);color:var(--destructive-foreground)}.ui-btn[data-variant=destructive]:hover:not(:disabled){background:var(--foreground)}.ui-btn[data-variant=link]{background:transparent;color:var(--primary);padding-left:0;padding-right:0;border-radius:var(--radius-sm)}.ui-btn[data-variant=link]:hover:not(:disabled){color:var(--foreground);text-decoration:underline}.ui-btn:disabled,.ui-btn[aria-disabled=true]{background:var(--disabled-surface);color:var(--disabled-foreground);border-color:var(--border);cursor:not-allowed}.ui-btn[data-variant=link]:disabled{background:transparent;text-decoration:none}.ui-btn[data-loading=true]{cursor:progress}.ui-btn[data-loading=true] .ui-btn__label,.ui-btn[data-loading=true] .ui-btn__icon{visibility:hidden}.ui-btn__spinner{position:absolute;inset:0;display:grid;place-items:center}.ui-spinner{width:var(--space-4);height:var(--space-4);border:var(--border-strong) solid currentColor;border-top-color:transparent;border-radius:var(--radius-pill)}@media(prefers-reduced-motion:no-preference){.ui-spinner{animation:ui-spin var(--duration-spin) linear infinite}}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-btn__icon{display:inline-grid;place-items:center;flex:none}.ui-btn__icon[data-side=leading]{margin-left:calc(var(--space-1) * -1)}.ui-btn__icon[data-side=trailing]{margin-right:calc(var(--space-1) * -1)}.ui-btn[data-size=icon] .ui-btn__icon{margin:0}.ui-field{display:flex;flex-direction:column;gap:var(--space-2)}.ui-field__label{font-family:var(--font-ui);font-size:var(--text-sm);line-height:var(--leading-sm);font-weight:var(--weight-semibold);color:var(--foreground)}.ui-field__required{color:var(--destructive);margin-left:var(--space-1)}.ui-field__help{font-family:var(--font-ui);font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--muted-foreground);margin:0}.ui-field__error{display:flex;align-items:flex-start;gap:var(--space-2);font-family:var(--font-ui);font-size:var(--text-xs);line-height:var(--leading-xs);color:var(--destructive);margin:0}.ui-field__error svg{flex:none;margin-top:var(--space-1)}.ui-input,.ui-textarea,.ui-select{width:100%;padding:var(--space-3) var(--space-4);border:var(--border-hairline) solid var(--input);border-radius:var(--radius-sm);background:var(--card);color:var(--foreground);font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--leading-base)}@media(prefers-reduced-motion:no-preference){.ui-input,.ui-textarea,.ui-select{transition:border-color var(--duration-fast) var(--ease)}}.ui-input::placeholder,.ui-textarea::placeholder{color:var(--muted-foreground)}.ui-input:hover:not(:disabled):not(:focus),.ui-textarea:hover:not(:disabled):not(:focus),.ui-select:hover:not(:disabled):not(:focus){border-color:var(--muted-foreground)}.ui-input[aria-invalid=true],.ui-textarea[aria-invalid=true],.ui-select[aria-invalid=true]{border-color:var(--destructive)}.ui-input:disabled,.ui-textarea:disabled,.ui-select:disabled{background:var(--disabled-surface);color:var(--disabled-foreground);cursor:not-allowed}.ui-textarea{resize:vertical;min-height:var(--space-12)}.ui-select{appearance:none;padding-right:var(--space-10)}.ui-select-wrap{position:relative;display:block}.ui-select-wrap svg{position:absolute;right:var(--space-4);top:50%;transform:translateY(-50%);pointer-events:none;color:var(--muted-foreground)}.ui-input-wrap{position:relative;display:block}.ui-input-wrap .ui-input{padding-right:var(--space-11)}.ui-input-wrap .ui-input-action{position:absolute;right:var(--space-2);top:50%;transform:translateY(-50%);display:grid;place-items:center;width:var(--space-9);height:var(--space-9);border:0;border-radius:var(--radius-pill);background:none;color:var(--muted-foreground);cursor:pointer}.ui-input-wrap .ui-input-action:hover{background:var(--surface-muted);color:var(--foreground)}.ui-input-wrap .ui-input-action:focus-visible{outline:var(--border-strong) solid var(--ring-color);outline-offset:var(--border-hairline)}.ui-choice{display:flex;align-items:flex-start;gap:var(--space-3);cursor:pointer}.ui-choice[data-disabled=true]{cursor:not-allowed;color:var(--disabled-foreground)}.ui-choice__control{position:absolute;opacity:0;width:0;height:0}.ui-choice__box{flex:none;display:grid;place-items:center;width:var(--space-5);height:var(--space-5);border:var(--border-strong) solid var(--input);background:var(--card);color:transparent}.ui-choice[data-kind=checkbox] .ui-choice__box{border-radius:var(--radius-sm)}.ui-choice[data-kind=radio] .ui-choice__box{border-radius:var(--radius-pill)}.ui-choice__control:checked+.ui-choice__box{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.ui-choice__control:disabled+.ui-choice__box{background:var(--disabled-surface);border-color:var(--border);color:var(--disabled-foreground)}.ui-choice__label{font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--leading-base);color:inherit}.ui-choice[data-kind=switch] .ui-choice__box{width:var(--space-10);height:var(--space-6);border-radius:var(--radius-pill);padding:var(--space-1);place-items:center start;background:var(--surface-muted);border-color:var(--border)}.ui-choice[data-kind=switch] .ui-choice__thumb{width:var(--space-4);height:var(--space-4);border-radius:var(--radius-pill);background:var(--card);box-shadow:var(--shadow-sm)}.ui-choice[data-kind=switch] .ui-choice__control:checked+.ui-choice__box{place-items:center end}@media(prefers-reduced-motion:no-preference){.ui-choice__box,.ui-choice__thumb{transition:background-color var(--duration-fast) var(--ease),border-color var(--duration-fast) var(--ease)}}.ui-text{margin:0;color:var(--foreground);font-family:var(--font-ui)}.ui-text[data-role=display]{font-family:var(--font-heading);font-size:var(--display-md);line-height:var(--leading-display-md);font-weight:var(--weight-semibold);letter-spacing:-.03em}.ui-text[data-role=heading-1]{font-family:var(--font-heading);font-size:var(--text-3xl);line-height:var(--leading-3xl);font-weight:var(--weight-semibold);letter-spacing:-.03em}.ui-text[data-role=heading-2]{font-family:var(--font-heading);font-size:var(--text-2xl);line-height:var(--leading-2xl);font-weight:var(--weight-semibold);letter-spacing:-.02em}.ui-text[data-role=heading-3]{font-family:var(--font-heading);font-size:var(--text-xl);line-height:var(--leading-xl);font-weight:var(--weight-semibold)}.ui-text[data-role=body]{font-size:var(--text-base);line-height:var(--leading-base);font-weight:var(--weight-regular)}.ui-text[data-role=body-reading]{font-family:var(--font-reading);font-size:var(--text-lg);line-height:var(--leading-base);font-weight:var(--weight-regular);max-width:var(--measure-prose)}.ui-text[data-role=label]{font-size:var(--text-sm);line-height:var(--leading-sm);font-weight:var(--weight-semibold)}.ui-text[data-role=caption]{font-size:var(--text-xs);line-height:var(--leading-xs);font-weight:var(--weight-regular);color:var(--muted-foreground)}.ui-text[data-role=data]{font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-sm);font-variant-numeric:tabular-nums}.ui-text[data-tone=muted]{color:var(--muted-foreground)}.ui-text[data-tone=destructive]{color:var(--destructive)}.ui-text[data-tone=accent]{color:var(--accent)}.ui-text[data-align=center]{text-align:center}.ui-stack{display:flex;flex-direction:column}.ui-stack[data-gap="2"]{gap:var(--space-2)}.ui-stack[data-gap="3"]{gap:var(--space-3)}.ui-stack[data-gap="4"]{gap:var(--space-4)}.ui-stack[data-gap="6"]{gap:var(--space-6)}.ui-stack[data-gap="8"]{gap:var(--space-8)}.ui-badge{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-family:var(--font-ui);font-size:var(--text-2xs);line-height:var(--leading-2xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;background:var(--surface-muted);color:var(--muted-foreground)}.ui-badge[data-role=student]{color:var(--role-student);background:var(--status-graded-bg)}.ui-badge[data-role=mentor]{color:var(--role-mentor);background:var(--status-not-started-bg)}.ui-badge[data-role=admin]{color:var(--role-admin);background:var(--status-overdue-bg)}.ui-status{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-family:var(--font-ui);font-size:var(--text-xs);line-height:var(--leading-xs);font-weight:var(--weight-semibold)}.ui-status svg{flex:none}.ui-status[data-status=not-started]{color:var(--status-not-started);background:var(--status-not-started-bg)}.ui-status[data-status=in-progress]{color:var(--status-in-progress);background:var(--status-in-progress-bg)}.ui-status[data-status=submitted]{color:var(--status-submitted);background:var(--status-submitted-bg)}.ui-status[data-status=graded]{color:var(--status-graded);background:var(--status-graded-bg)}.ui-status[data-status=overdue]{color:var(--status-overdue);background:var(--status-overdue-bg)}.ui-status__dot{width:var(--space-2);height:var(--space-2);flex:none;border-radius:var(--radius-pill);border:var(--border-strong) solid currentColor}.ui-card{background:var(--card);color:var(--card-foreground);border:var(--border-hairline) solid var(--border);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-sm)}.ui-card[data-padding=none]{padding:0}.ui-card[data-elevation=md]{box-shadow:var(--shadow-md)}.ui-card__header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.ui-table-wrap{width:100%;overflow-x:auto}.ui-table{width:100%;border-collapse:collapse;font-family:var(--font-ui);font-size:var(--text-sm);line-height:var(--leading-sm)}.ui-table th,.ui-table td{text-align:left;border-bottom:var(--border-hairline) solid var(--border)}.ui-table thead th{position:sticky;top:0;z-index:1;background:var(--card);color:var(--muted-foreground);font-size:var(--text-2xs);line-height:var(--leading-2xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase;border-bottom:var(--border-strong) solid var(--border)}.ui-table[data-density=compact] th,.ui-table[data-density=compact] td{padding:var(--space-2) var(--space-3)}.ui-table[data-density=normal] th,.ui-table[data-density=normal] td{padding:var(--space-3) var(--space-4)}.ui-table[data-density=relaxed] th,.ui-table[data-density=relaxed] td{padding:var(--space-5) var(--space-4)}.ui-table [data-numeric=true]{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.ui-table__slot{padding:var(--space-8) var(--space-4)}.ui-tabs{display:flex;gap:var(--space-5);border-bottom:var(--border-hairline) solid var(--border)}.ui-tab{position:relative;padding:var(--space-3) 0;border:0;background:none;cursor:pointer;font-family:var(--font-ui);font-size:var(--text-base);line-height:var(--leading-base);font-weight:var(--weight-medium);color:var(--muted-foreground)}.ui-tab[aria-selected=true]{color:var(--foreground);font-weight:var(--weight-semibold)}.ui-tab:after{content:"";position:absolute;left:0;right:0;bottom:calc(var(--border-hairline) * -1);height:var(--border-strong);background:var(--primary);transform:scaleX(0);transform-origin:left}.ui-tab[aria-selected=true]:after{transform:scaleX(1)}@media(prefers-reduced-motion:no-preference){.ui-tab:after{transition:transform var(--duration-base) var(--ease)}}.ui-dialog__overlay{position:fixed;inset:0;z-index:200;background:var(--overlay);display:grid;place-items:center;padding:var(--space-5)}.ui-dialog{width:100%;max-width:var(--measure-prose);background:var(--popover);color:var(--popover-foreground);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-6)}.ui-dialog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.ui-dialog__close{flex:none;display:grid;place-items:center;width:var(--space-11);height:var(--space-11);border:0;border-radius:var(--radius-pill);background:none;color:var(--muted-foreground);cursor:pointer}.ui-dialog__close:hover{background:var(--surface-muted);color:var(--foreground)}.ui-dialog__footer{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6)}@media(prefers-reduced-motion:no-preference){.ui-dialog{animation:ui-rise var(--duration-base) var(--ease)}}@keyframes ui-rise{0%{opacity:0;transform:translateY(var(--space-2))}to{opacity:1;transform:none}}.ui-tooltip-wrap{position:relative;display:inline-flex}.ui-tooltip{position:absolute;bottom:calc(100% + var(--space-2));left:50%;transform:translate(-50%);z-index:150;white-space:nowrap;pointer-events:none;background:var(--surface-inverted);color:var(--surface-inverted-foreground);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--text-xs);line-height:var(--leading-xs);box-shadow:var(--shadow-md)}.ui-alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border:var(--border-hairline) solid transparent;border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--text-sm);line-height:var(--leading-sm)}.ui-alert svg{flex:none;margin-top:var(--space-1)}.ui-alert[data-tone=info]{background:var(--status-not-started-bg);color:var(--status-not-started)}.ui-alert[data-tone=success]{background:var(--status-graded-bg);color:var(--status-graded)}.ui-alert[data-tone=warning]{background:var(--status-in-progress-bg);color:var(--status-in-progress)}.ui-alert[data-tone=error]{background:var(--status-overdue-bg);color:var(--destructive)}.ui-progress{display:flex;align-items:center;gap:var(--space-3)}.ui-progress__track{flex:1;height:var(--space-2);border-radius:var(--radius-pill);background:var(--surface-muted);overflow:hidden}.ui-progress__fill{height:100%;border-radius:var(--radius-pill);background:var(--accent)}.ui-progress__value{font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-xs);font-variant-numeric:tabular-nums;color:var(--muted-foreground)}@media(prefers-reduced-motion:no-preference){.ui-progress__fill{transition:width var(--duration-base) var(--ease)}}.ui-avatar{display:grid;place-items:center;flex:none;border-radius:var(--radius-pill);background:var(--avatar-bg);color:var(--primary-foreground);font-family:var(--font-ui);font-weight:var(--weight-semibold);overflow:hidden}.ui-avatar[data-size=sm]{width:var(--space-6);height:var(--space-6);font-size:var(--text-2xs)}.ui-avatar[data-size=md]{width:var(--space-9);height:var(--space-9);font-size:var(--text-sm)}.ui-avatar[data-size=lg]{width:var(--space-12);height:var(--space-12);font-size:var(--text-lg)}.ui-avatar img{width:100%;height:100%;object-fit:cover}.ui-skeleton{background:var(--surface-muted);border-radius:var(--radius-sm);height:var(--space-5)}@media(prefers-reduced-motion:no-preference){.ui-skeleton{background:linear-gradient(90deg,var(--surface-muted) 25%,var(--shimmer) 37%,var(--surface-muted) 63%);background-size:400% 100%;animation:ui-shimmer var(--duration-shimmer) ease infinite}}@keyframes ui-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.ui-skeleton-stack{display:flex;flex-direction:column;gap:var(--space-3)}:root{--background: #f7f6f3;--foreground: #26215c;--card: #ffffff;--card-foreground: #26215c;--popover: #ffffff;--popover-foreground: #26215c;--primary: #534ab7;--primary-foreground: #ffffff;--secondary: #efedfb;--secondary-foreground: #534ab7;--accent: #1d9e75;--accent-foreground: #ffffff;--destructive: #c0362c;--destructive-foreground: #ffffff;--surface-muted: #f1eff7;--muted-foreground: #6b6690;--border: #e7e4f0;--input: #e7e4f0;--ring-color: #534ab7;--status-not-started: #1a4bb8;--status-not-started-bg: #e7effd;--status-in-progress: #8c4a00;--status-in-progress-bg: #fdf1e1;--status-submitted: #0f6f66;--status-submitted-bg: #e4f6f4;--status-graded: #107253;--status-graded-bg: #e3f5ef;--status-overdue: #a01345;--status-overdue-bg: #fce9ef;--role-student: #107253;--role-mentor: #1a4bb8;--role-admin: #a01345;--font-ui: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-heading: "DM Sans", "Inter", system-ui, sans-serif;--font-reading: Georgia, "Iowan Old Style", "Times New Roman", Times, serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-2xs: .579rem;--leading-2xs: 1.4;--text-xs: .694rem;--leading-xs: 1.45;--text-sm: .833rem;--leading-sm: 1.5;--text-base: 1rem;--leading-base: 1.5;--text-lg: 1.2rem;--leading-lg: 1.3;--text-xl: 1.44rem;--leading-xl: 1.2;--text-2xl: 1.728rem;--leading-2xl: 1.15;--text-3xl: 2.074rem;--leading-3xl: 1.1;--display-sm: 2.375rem;--leading-display-sm: 1.08;--display-md: 2.75rem;--leading-display-md: 1.04;--display-lg: 3.25rem;--leading-display-lg: 1;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--measure-prose: 68ch;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-9: 36px;--space-10: 40px;--space-11: 44px;--space-12: 48px;--radius-sm: 12px;--radius-md: 18px;--radius-lg: 26px;--radius-pill: 999px;--border-hairline: 1px;--border-strong: 2px;--shadow-sm: 0 1px 2px rgba(38, 33, 92, .04);--shadow-md: 0 1px 2px rgba(38, 33, 92, .04), 0 8px 24px rgba(38, 33, 92, .06);--shadow-lg: 0 2px 4px rgba(38, 33, 92, .05), 0 20px 48px rgba(38, 33, 92, .12);--overlay: rgba(26, 22, 64, .42);--surface-inverted: #1a1640;--surface-inverted-foreground: #f1efe8;--disabled-surface: #f1eff7;--disabled-foreground: #6b6690;--shimmer: #eae7f3;--avatar-bg: #7c8aa5;--duration-fast: .12s;--duration-base: .2s;--duration-spin: .6s;--duration-shimmer: 1.4s;--ease: cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--background: #1a1640;--foreground: #f1efe8;--card: #241f52;--card-foreground: #f1efe8;--popover: #241f52;--popover-foreground: #f1efe8;--primary: #afa9ec;--primary-foreground: #1a1640;--secondary: #37316b;--secondary-foreground: #f1efe8;--accent: #4ade80;--accent-foreground: #1a1640;--surface-muted: #241f52;--muted-foreground: #afa9ec;--border: #37316b;--input: #37316b;--ring-color: #afa9ec}:root{--indigo: #26215C;--violet: #534AB7;--violet-dark: #453b9e;--violet-soft: #efedfb;--violet-line: #ded9f6;--green: #1D9E75;--green-soft: #e3f5ef;--parchment: #F1EFE8;--lavender: #AFA9EC;--brand: var(--violet);--brand-dark: var(--violet-dark);--brand-soft: var(--violet-soft);--ink: #26215C;--ink-2: #4a4472;--muted: #6b6690;--line: #e7e4f0;--line-soft: #f1eff7;--bg: #f7f6f3;--card: #ffffff;--stage: #1a1640;--stage-2: #241f52;--stage-line: #37316b;--a1: #534AB7;--a1-soft: #efedfb;--a1-ink: #413a92;--a2: #0d9488;--a2-soft: #e4f6f4;--a2-ink: #0f6f66;--a3: #c2680a;--a3-soft: #fdf1e1;--a3-ink: #8c4a00;--a4: #d81b60;--a4-soft: #fce9ef;--a4-ink: #a01345;--a5: #2563eb;--a5-soft: #e7effd;--a5-ink: #1a4bb8;--a6: #1D9E75;--a6-soft: #e3f5ef;--a6-ink: #107253;--sunken: #faf9f7;--sunken-line: #edebe6;--line-strong: #d5d1e6;--faint: #a5a1bd;--stage-ok: #4ade80;--stage-ok-soft: #6ee7b7;--avatar: #7c8aa5;--ok: var(--green);--ok-soft: var(--green-soft);--ok-line: #bfe8d9;--ok-ink: #107253;--warn: var(--a3);--warn-soft: var(--a3-soft);--warn-line: #f3d9b4;--warn-ink: var(--a3-ink);--danger: #c0362c;--danger-soft: #fdecec;--danger-line: #f5c6c6;--danger-ink: #8a2424;--info: var(--a5);--info-soft: var(--a5-soft);--info-line: #cfdefb;--info-ink: var(--a5-ink);--ring-danger: 0 0 0 3px rgba(192,54,44,.18);--radius-sm: 12px;--radius: 18px;--radius-lg: 26px;--pill: 999px;--shadow: 0 1px 2px rgba(38,33,92,.04), 0 8px 24px rgba(38,33,92,.06);--shadow-lg: 0 2px 4px rgba(38,33,92,.05), 0 20px 48px rgba(38,33,92,.12);--ring: 0 0 0 3px rgba(83,74,183,.18);--font: "Inter", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--display: "DM Sans", "Inter", system-ui, sans-serif;--serif: "DM Serif Display", Georgia, serif}*{box-sizing:border-box}html,body{overflow-x:hidden}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}a{color:var(--violet)}h1,h2,h3{font-family:var(--display);color:var(--ink);letter-spacing:-.03em}h1{font-size:38px;font-weight:700;margin:0 0 8px;line-height:1.08}h2{font-size:22px;font-weight:700;margin:0;line-height:1.25}h3{font-size:15.5px;font-weight:700;margin:0 0 12px}.display{font-family:var(--display);font-size:44px;font-weight:700;letter-spacing:-.035em;line-height:1.04;margin:0}.serif{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em}.serif-lead{font-family:var(--serif);font-style:italic;font-size:27px;line-height:1.35;color:var(--ink-2);letter-spacing:-.015em}.greet{font-family:var(--serif);font-style:italic;font-weight:400;font-size:42px;letter-spacing:-.022em;line-height:1.08;margin:0 0 10px;color:var(--ink)}@media(max-width:900px){.greet{font-size:29px}}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--violet);margin-bottom:9px}.muted{color:var(--muted)}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.error{color:var(--danger);font-size:13.5px}.auth-error{margin-bottom:12px}.center{min-height:100vh;display:grid;place-items:center}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.h-flush{margin:0}.stack{display:flex;flex-direction:column;gap:18px;max-width:680px}.ruled{position:relative}.ruled:after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;border-radius:2px;background:var(--violet);transform:scaleX(0);transform-origin:left;transition:transform .22s cubic-bezier(.4,0,.2,1)}.ruled.on:after,.ruled:hover:after{transform:scaleX(1)}.ruled-head{display:inline-block;position:relative;padding-bottom:10px;margin-bottom:20px}.ruled-head:after{content:"";position:absolute;left:0;bottom:0;width:46px;height:2px;border-radius:2px;background:var(--violet)}.dot{width:11px;height:11px;border-radius:50%;flex:none;border:2px solid var(--line);background:var(--card);box-sizing:border-box;transition:all .2s}.dot.done{background:var(--green);border-color:var(--green)}.dot.now{border-color:var(--violet);background:var(--card);box-shadow:0 0 0 4px #534ab729}.dot.ahead{border-color:var(--violet-line);background:transparent}.dot.late{background:var(--a4);border-color:var(--a4)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--violet);box-shadow:var(--ring)}a:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--ring);border-radius:6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:0;border-radius:var(--pill);background:var(--violet);color:#fff;font-family:var(--font);font-weight:600;font-size:14.5px;line-height:1.25;text-align:center;text-decoration:none;cursor:pointer;transition:background .16s,transform .05s,box-shadow .16s}.btn:hover,.btn:focus,.btn:visited{text-decoration:none}.btn:hover{background:var(--violet-dark)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:none;box-shadow:var(--ring)}.btn.sm{padding:8px 15px;font-size:13px}.btn.ghost{background:var(--violet-soft);color:var(--violet)}.btn.ghost:hover{background:var(--violet-line)}.btn.quiet{background:transparent;color:var(--ink-2);border:1px solid var(--line)}.btn.quiet:hover{background:var(--line-soft);color:var(--ink)}.btn.on-stage{background:var(--parchment);color:var(--indigo)}.btn.on-stage:hover{background:#fff}.btn.danger{background:var(--danger);color:#fff}.btn.danger:hover{background:var(--danger-ink)}.btn.danger:focus-visible{box-shadow:var(--ring-danger)}.btn.ghost-danger{background:var(--danger-soft);color:var(--danger)}.btn.ghost-danger:hover{background:var(--danger-line);color:var(--danger-ink)}.btn.ghost-danger:focus-visible{box-shadow:var(--ring-danger)}.btn.lg{padding:15px 30px;font-size:15.5px}.btn.block{width:100%;justify-content:center}.btn.is-busy{position:relative;cursor:progress}.btn.is-busy:before{content:"";width:13px;height:13px;flex:none;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;opacity:.8;animation:spin .6s linear infinite}.btn:disabled.is-busy{opacity:.75}.auth{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh}.auth-hero{position:relative;overflow:hidden;padding:48px;color:var(--parchment);display:flex;flex-direction:column;justify-content:space-between;background:var(--stage)}.auth-hero:after{content:"";position:absolute;left:48px;bottom:168px;width:84px;height:3px;border-radius:3px;background:var(--lavender)}.auth-brand{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.auth-hero-copy{position:relative;z-index:1;max-width:520px}.auth-hero-copy h2 span{display:block}.auth-hero-copy h2{font-family:var(--serif);font-style:italic;font-size:38px;line-height:1.22;font-weight:400;color:var(--parchment);letter-spacing:-.02em;margin-bottom:18px}.auth-hero-copy p{color:var(--lavender);font-size:16px;line-height:1.6}.auth-form-wrap{display:flex;align-items:center;justify-content:center;padding:40px;background:var(--bg)}.auth-form{width:100%;max-width:380px}.auth-back{color:var(--muted);font-size:14px;text-decoration:none;display:inline-block;margin-bottom:28px}.auth-form h1{font-size:32px}.auth-form .sub{color:var(--muted);margin:0 0 26px}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:600;color:var(--ink-2);margin-bottom:7px}.field input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font-size:15px;font-family:var(--font);background:#fff}.field input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.auth-form .btn{width:100%;justify-content:center;padding:13px;font-size:15px}.auth-alt{margin-top:20px;font-size:14px;color:var(--muted)}.demo-box{margin-top:26px;border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:#fff;font-size:13px}.demo-box .eyebrow{margin-bottom:10px}.demo-box code{color:var(--ink-2)}.demo-row{display:flex;justify-content:space-between;padding:3px 0}.app{min-height:100vh}.brand{display:flex;align-items:center}.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:16px;padding:14px 30px;background:#f7f6f3d1;-webkit-backdrop-filter:blur(14px) saturate(1.6);backdrop-filter:blur(14px) saturate(1.6);border-bottom:1px solid transparent;transition:border-color .2s,background .2s}.topbar.stuck{border-bottom-color:var(--line)}.dock{position:fixed;left:50%;transform:translate(-50%);bottom:max(20px,env(safe-area-inset-bottom,0px));z-index:60;display:flex;align-items:stretch;gap:2px;padding:6px;background:#1a1640ed;-webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);border:1px solid rgba(255,255,255,.08);border-radius:22px;box-shadow:0 10px 44px #1a16405c,0 2px 8px #1a164033;max-width:calc(100vw - 20px);overflow-x:auto;scrollbar-width:none}.dock::-webkit-scrollbar{display:none}.dock-item{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:72px;padding:9px 10px 8px;border-radius:16px;color:#f1efe894;text-decoration:none;transition:background .18s,color .18s}.dock-item svg{flex:none}.dock-item:hover{color:var(--parchment);background:#ffffff17}.dock-item.on{background:var(--parchment);color:var(--indigo)}.dock-label{font-size:11.5px;font-weight:600;white-space:nowrap;letter-spacing:-.005em}.dock-item.on .dock-label{font-weight:700}.icon-btn{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:50%;background:none;color:var(--muted);cursor:pointer;transition:background .16s,color .16s}.icon-btn:hover{background:var(--line-soft);color:var(--ink)}.search-trigger{display:flex;align-items:center;gap:10px;min-width:260px;padding:8px 10px 8px 13px;border:1px solid var(--line);border-radius:var(--pill);background:#ffffffb3;color:var(--muted);font-family:var(--font);font-size:13.5px;cursor:pointer;transition:border-color .16s,background .16s,box-shadow .16s,color .16s}.search-trigger:hover{border-color:var(--violet-line);background:#fff;color:var(--ink-2);box-shadow:var(--shadow)}.search-trigger:focus-visible{outline:none;border-color:var(--violet);box-shadow:var(--ring)}.search-trigger-text{flex:1;text-align:left}.kbd{font-family:var(--font);font-size:10.5px;font-weight:700;letter-spacing:.04em;color:var(--muted);background:var(--line-soft);border:1px solid var(--line);border-radius:6px;padding:3px 7px;white-space:nowrap}.who{position:relative}.who-btn{display:flex;align-items:center;gap:10px;padding:5px 10px 5px 5px;border:1px solid transparent;border-radius:var(--pill);background:none;font-family:var(--font);cursor:pointer;color:var(--ink);transition:background .16s,border-color .16s}.who-btn:hover,.who-btn.on{background:#fffc;border-color:var(--line)}.who-btn:focus-visible{outline:none;box-shadow:var(--ring)}.who-caret{color:var(--muted);transition:transform .2s;flex:none}.who-caret.up{transform:rotate(180deg)}.who-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:80;width:268px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:7px;animation:menu-in .16s cubic-bezier(.3,1.1,.5,1);transform-origin:top right}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:none}}.who-menu-head{display:flex;align-items:center;gap:12px;padding:12px 12px 14px}.avatar-lg{width:42px;height:42px;font-size:17px;flex:none}.who-menu-id{min-width:0}.who-menu-name{font-weight:650;font-size:14.5px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.who-menu-mail{font-size:12px;color:var(--muted);margin:2px 0 7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.who-menu-sep{height:1px;background:var(--line-soft);margin:3px 6px}.who-menu-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:10px 12px;border:0;border-radius:var(--radius-sm);background:none;font-family:var(--font);font-size:14px;color:var(--ink-2);cursor:pointer;transition:background .14s,color .14s}.who-menu-item svg{color:var(--muted);flex:none;transition:color .14s}.who-menu-item:hover{background:var(--violet-soft);color:var(--violet)}.who-menu-item:hover svg{color:var(--violet)}.who-menu-item.danger:hover{background:var(--danger-soft);color:var(--danger)}.who-menu-item.danger:hover svg{color:var(--danger)}.menler-wm{display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1}.menler-wm__word{font-family:DM Sans,sans-serif;font-weight:900;font-size:1em;letter-spacing:-.025em;line-height:1;position:relative;display:inline-block;color:inherit;padding-bottom:.2em}.menler-wm__ruled{position:relative}.menler-wm__ruled:after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:.0625em;min-height:2px;border-radius:3px;background:var(--menler-rule, #534AB7)}.menler-wm__dot{position:absolute;top:.06em;right:-.1em;width:.175em;height:.175em;border-radius:50%}.menler-wm__tagline{font-family:"DM Serif Display",serif;font-style:italic;font-weight:400;font-size:.22em;margin-top:.5em}.cmd-overlay{position:fixed;inset:0;z-index:100;background:#1a16406b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;justify-content:center;padding:12vh 20px 20px;animation:cmd-in .14s ease-out}@keyframes cmd-in{0%{opacity:0}to{opacity:1}}.cmd{width:100%;max-width:580px;max-height:62vh;background:var(--card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:cmd-pop .18s cubic-bezier(.3,1.2,.5,1)}@keyframes cmd-pop{0%{transform:translateY(-8px) scale(.985)}to{transform:none}}.cmd-input-wrap{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line-soft);color:var(--muted)}.cmd-input{flex:1;border:0;outline:none;font-family:var(--font);font-size:17px;color:var(--ink);background:none}.cmd-input::placeholder{color:var(--faint)}.cmd-clear{border:0;background:var(--line-soft);color:var(--muted);width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:11px;line-height:1;flex:none}.cmd-clear:hover{background:var(--line);color:var(--ink)}.cmd-spin{width:19px;height:19px;flex:none;border-radius:50%;border:2px solid var(--line);border-top-color:var(--violet);animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.cmd-list{overflow-y:auto;padding:8px}.cmd-group{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:12px 14px 6px}.cmd-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:10px 14px;border:0;border-radius:var(--radius-sm);background:none;font-family:var(--font);font-size:14.5px;color:var(--ink-2);cursor:pointer}.cmd-item svg{color:var(--muted);flex:none}.cmd-item .cmd-sub{color:var(--muted);font-size:12.5px;margin-left:auto}.cmd-item.sel{background:var(--violet-soft);color:var(--violet)}.cmd-item.sel svg,.cmd-item.sel .cmd-sub{color:var(--violet)}.cmd-text{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.cmd-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmd-sub-line{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmd-detail{font-size:12px;color:#8d88a8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:italic}.cmd-item.sel .cmd-sub-line,.cmd-item.sel .cmd-detail{color:#6f66c4}.cmd-mark{background:#534ab729;color:inherit;border-radius:3px;padding:0 1px;font-weight:700}.cmd-enter{flex:none;font-size:12px;color:var(--violet);opacity:.75}.cmd-empty{padding:34px 20px;text-align:center;color:var(--muted);font-size:14px}.cmd-empty-sub{font-size:12.5px;color:var(--faint);margin-top:7px}.cmd-foot{display:flex;gap:16px;padding:11px 20px;border-top:1px solid var(--line-soft);font-size:11.5px;color:var(--muted)}.cmd-foot-count{margin-left:auto;color:var(--violet);font-weight:600}.spacer{flex:1}.bell{color:var(--muted);cursor:pointer}.notif{position:relative}.notif-btn{position:relative;background:none;border:0;cursor:pointer;padding:6px;line-height:0;border-radius:9px;color:var(--ink-2);display:grid;place-items:center}.notif-btn:hover{background:var(--line-soft);color:var(--brand)}.notif-ic{display:block}.notif-badge{position:absolute;top:-2px;right:-4px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:grid;place-items:center;padding:0 3px}.notif-menu{position:absolute;top:42px;right:0;width:320px;max-height:420px;overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);z-index:50}.notif-head{padding:12px 16px;font-weight:700;border-bottom:1px solid var(--line);font-size:14px}.notif-empty{padding:24px 16px;color:var(--muted);text-align:center;font-size:14px}.notif-item{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line-soft);padding:11px 16px;cursor:pointer;font-family:var(--font)}.notif-item:hover{background:var(--line-soft)}.notif-item.unread{background:var(--violet-soft)}.notif-text{font-size:13.5px;color:var(--ink)}.notif-time{font-size:11px;color:var(--muted);margin-top:3px}.who-name{font-size:14px;font-weight:500}.avatar{width:34px;height:34px;border-radius:50%;background:var(--indigo);color:var(--parchment);display:grid;place-items:center;font-weight:700;font-family:var(--display);font-size:14px}.main{--main-pad-b: 132px;padding:34px 34px var(--main-pad-b);max-width:1440px;margin:0 auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:28px}.page-head p{color:var(--muted);margin:0;font-size:15px}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;box-shadow:var(--shadow)}.panel label{display:block;font-size:13px;color:var(--ink-2);font-weight:500;margin:12px 0 0}.panel input,.panel select,.panel textarea{width:100%;padding:11px 13px;margin-top:5px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:14px;font-family:var(--font);background:var(--card);color:var(--ink)}.panel input:focus,.panel select:focus,.panel textarea:focus{outline:none;border-color:var(--violet);box-shadow:var(--ring)}.panel input:disabled{background:var(--line-soft);color:var(--faint)}.profile-page,.profile-sections{display:flex;flex-direction:column;gap:20px}.profile-page{max-width:1080px}.profile-page>.page-head{margin-bottom:0}.profile-hero{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.profile-hero-id{flex:1;min-width:240px;display:flex;align-items:center;gap:16px}.avatar-xl{width:58px;height:58px;font-size:22px;flex:none}.profile-hero-name{font-family:var(--display);font-weight:700;font-size:22px;letter-spacing:-.03em;line-height:1.15;word-break:break-word}.profile-hero-mail{color:var(--muted);font-size:13.5px;margin:3px 0 8px;word-break:break-word}.profile-meter{width:250px;flex:none}.profile-meter-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}.profile-meter-top span{font-size:12.5px;color:var(--muted)}.profile-meter-pct{font-family:var(--display);font-weight:700;font-size:15px;color:var(--ink)}.profile-meter .progress-bar-wrap{max-width:none;height:8px}@media(max-width:860px){.profile-meter{width:100%}}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px 18px}.field-grid>label{margin:0;min-width:0}.file-picker{display:flex;align-items:center;gap:12px;margin-top:5px}.file-picker-name{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px;box-shadow:var(--shadow);position:relative;overflow:hidden}.stat:before{content:"";position:absolute;left:24px;top:0;width:26px;height:2px;background:var(--violet);border-radius:0 0 2px 2px}.stat-label{font-size:10.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.stat-value{font-family:var(--display);font-size:40px;font-weight:700;margin-top:8px;letter-spacing:-.035em;line-height:1;color:var(--ink)}.chart{display:flex;align-items:flex-end;gap:18px;height:240px;padding:10px 6px 0;border-bottom:1px solid var(--line);position:relative}.chart-grid{position:absolute;inset:0;pointer-events:none}.chart-grid span{position:absolute;left:0;right:0;border-top:1px dashed var(--line-soft);font-size:11px;color:var(--faint);padding-left:2px}.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;justify-content:flex-end;z-index:1}.bar{width:100%;max-width:84px;background:var(--violet);border-radius:7px 7px 0 0;min-height:4px;transition:height .35s cubic-bezier(.4,0,.2,1)}.bar-val{font-size:12px;font-weight:700;color:var(--ink)}.bar-name{font-size:12px;color:var(--muted);text-align:center}.badge{display:inline-block;padding:3px 10px;border-radius:var(--pill);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:var(--violet-soft);color:var(--violet)}.badge-student{background:var(--a6-soft);color:var(--a6-ink)}.badge-mentor{background:var(--a5-soft);color:var(--a5-ink)}.badge-admin{background:var(--a4-soft);color:var(--a4-ink)}.badge-submitted{background:var(--a3-soft);color:var(--a3-ink)}.badge-muted{background:var(--line-soft);color:var(--muted)}.status{display:inline-flex;align-items:center;gap:7px;padding:5px 12px 5px 10px;border-radius:var(--pill);font-size:12px;font-weight:600;background:var(--line-soft);color:var(--ink-2)}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.status-done{background:var(--a6-soft);color:var(--a6-ink)}.status-progress{background:var(--a3-soft);color:var(--a3-ink)}.status-todo{background:var(--a5-soft);color:var(--a5-ink)}.status-late{background:var(--a4-soft);color:var(--a4-ink)}.list{display:flex;flex-direction:column;gap:12px;margin-top:16px}.list-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.list-row>:first-child{flex:1 1 auto;min-width:0}.list-row>.row{flex:0 1 auto;justify-content:flex-end}.list-row>:first-child .muted{overflow-wrap:anywhere}.list-row>.btn{flex:none}.path-wrap{margin:0 0 44px}.path-hero{position:relative;overflow:hidden;background:var(--stage);color:var(--parchment);border-radius:var(--radius-lg);padding:44px 48px 58px;box-shadow:var(--shadow-lg)}.path-hero:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:38px 38px;-webkit-mask-image:radial-gradient(72% 74% at 78% 18%,#000,transparent);mask-image:radial-gradient(72% 74% at 78% 18%,#000,transparent)}.path-hero:after{content:"";position:absolute;top:-160px;right:-120px;width:460px;height:460px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,#534ab78c,#534ab700 68%)}.path-hero>*{position:relative;z-index:1}.path-lead{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;flex-wrap:wrap;margin-bottom:20px}.path-where{font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--lavender);margin-bottom:14px}.path-title{font-family:var(--display);font-size:52px;font-weight:700;letter-spacing:-.04em;line-height:1.01;margin:0;max-width:14ch;color:var(--parchment)}.path-figure{text-align:right;line-height:1}.path-figure-num{font-family:var(--display);font-weight:700;font-size:78px;letter-spacing:-.05em;color:var(--parchment);display:block}.path-figure-num span{font-size:30px;color:var(--lavender);margin-left:2px;letter-spacing:0}.path-figure-sub{font-size:12.5px;color:var(--lavender);margin-top:8px;letter-spacing:.02em}.path{position:relative;display:flex;align-items:flex-start;gap:0;padding:30px 0 0;overflow-x:auto;scrollbar-width:none}.path::-webkit-scrollbar{display:none}.path-station{position:relative;flex:1 1 0;min-width:150px;max-width:260px;display:flex;flex-direction:column;align-items:center;gap:9px;background:none;border:0;padding:0 10px;font-family:var(--font);cursor:pointer}.path-station:before{content:"";position:absolute;top:6px;right:50%;width:100%;height:2px;background:#ffffff21}.path-station:first-child:before{display:none}.path-station.done:before{background:var(--green)}.path-station.now:before{background:linear-gradient(90deg,var(--green),var(--lavender))}.path-dot{position:relative;z-index:1;width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.24);background:var(--stage);box-sizing:border-box;transition:all .22s}.path-station.done .path-dot{background:var(--green);border-color:var(--green);box-shadow:0 0 0 4px #1d9e7538}.path-station.now .path-dot{border-color:var(--parchment);background:var(--parchment);transform:scale(1.2);box-shadow:0 0 0 6px #afa9ec42,0 0 24px #afa9ec99}.path-code{font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:.1em;color:#ffffff4d;margin-top:6px;transition:color .2s}.path-station.done .path-code{color:var(--stage-ok)}.path-station.now .path-code{color:var(--lavender)}.path-label{font-size:13.5px;font-weight:600;color:#f1efe885;text-align:center;line-height:1.35;max-width:100%;transition:color .2s;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.path-station.done .path-label{color:#f1efe8c7}.path-station.now .path-label,.path-station:hover .path-label{color:var(--parchment)}.path-state{font-size:10.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:#afa9ec73}.path-station.done .path-state{color:var(--stage-ok)}.path-station.now .path-state{color:var(--lavender)}.path-next{position:relative;z-index:2;margin:-34px 40px 0;background:var(--card);border-radius:var(--radius-lg);padding:30px 36px;box-shadow:var(--shadow-lg);display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}.path-next-eyebrow{font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--violet);margin-bottom:10px}.path-next-title{font-family:var(--display);font-size:30px;font-weight:700;letter-spacing:-.03em;line-height:1.12;margin:0 0 10px}.path-next-meta{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--muted);flex-wrap:wrap}.path-next .btn{padding:15px 30px;font-size:15.5px}.path-live{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 40px 0;padding:15px 22px;border-radius:var(--radius);background:var(--green);color:#fff}.path-live .path-live-time{color:#ffffffd9}.path-live .btn.on-stage{background:#fff;color:var(--a6-ink)}.path-live-pulse{width:8px;height:8px;border-radius:50%;background:var(--stage-ok);flex:none;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 #4ade8080}50%{opacity:.85;box-shadow:0 0 0 6px #4ade8000}}.path-live-title{font-weight:600;font-size:15px}.path-live-time{font-size:13.5px;color:var(--lavender)}.path-live .btn{margin-left:auto}.live-cta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 18px;padding:18px 24px;border-radius:var(--radius-lg)}.live-cta.is-live{background:var(--green);color:#fff;box-shadow:var(--shadow-lg)}.live-cta.is-replay{background:var(--card);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow)}.live-cta-mark{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;flex:none}.live-cta.is-live .live-cta-mark{background:#ffffff2e}.live-cta.is-replay .live-cta-mark{background:var(--violet-soft);color:var(--violet)}.live-cta-copy{min-width:0;flex:1}.live-cta-eyebrow{font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;margin-bottom:6px}.live-cta.is-live .live-cta-eyebrow{color:#ffffffd1}.live-cta.is-replay .live-cta-eyebrow{color:var(--violet)}.live-cta-title{font-weight:600;font-size:16px;line-height:1.3}.live-cta-time{font-size:13.5px;margin-top:3px}.live-cta.is-live .live-cta-time{color:#ffffffd9}.live-cta.is-replay .live-cta-time{color:var(--muted)}.live-cta .btn{margin-left:auto;padding:14px 26px;font-size:15px}.live-cta.is-live .btn{background:#fff;color:var(--a6-ink)}.live-cta.is-live .btn:hover{background:var(--parchment)}.home-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:44px}.home-wide{grid-column:1 / -1}.home-grid>section{min-width:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px}.home-grid .ruled-head{margin-bottom:14px;font-size:13px}.qlist{display:flex;flex-direction:column}.qrow{display:flex;align-items:center;gap:13px;padding:13px 0;border-top:1px solid var(--line-soft);min-width:0}.qrow>.status,.qrow>.btn,.qrow>.figure,.qrow>.dot{flex:none}.qrow:first-child{border-top:0}.qrow-title{font-size:14.5px;font-weight:500;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qrow-sub{font-size:12.5px;color:var(--muted);margin-top:2px}.figure{font-family:var(--display);font-size:22px;font-weight:700;letter-spacing:-.025em;color:var(--ink)}.skeleton{background:linear-gradient(90deg,var(--line-soft) 25%,#eae7f3 37%,var(--line-soft) 63%);background-size:400% 100%;animation:sk 1.4s ease infinite;border-radius:var(--radius-sm)}@keyframes sk{0%{background-position:100% 50%}to{background-position:0 50%}}.sk-title{height:46px;width:min(420px,70%);margin-bottom:32px}.sk-path{height:92px;width:100%}@media(max-width:1200px){.home-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}@media(max-width:700px){.home-grid{grid-template-columns:minmax(0,1fr);gap:18px}}.cta-banner{background:linear-gradient(90deg,var(--violet),var(--lavender));color:#fff;padding:18px 22px;border-radius:var(--radius);margin-bottom:22px;font-weight:600;box-shadow:var(--shadow)}.session-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.sb-label{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.85}.sb-title{font-family:var(--display);font-size:22px;font-weight:700;margin-top:4px}.sb-time{font-size:14px;opacity:.9;margin-top:3px;font-weight:500}.sb-join{background:#fff;color:var(--brand);padding:11px 20px;border-radius:10px;font-weight:700;text-decoration:none;white-space:nowrap}.sb-join:hover{background:var(--violet-soft)}.sb-join-off{background:#ffffff40;color:#fff;cursor:default}.journey{display:flex;padding:4px 0 0}.journey-step{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;gap:9px;min-width:0}.journey-step:before{content:"";position:absolute;top:12px;left:-50%;width:100%;height:3px;background:var(--line);z-index:0}.journey-step:first-child:before{display:none}.journey-step.done:before{background:var(--brand)}.journey-dot{position:relative;z-index:1;width:26px;height:26px;border-radius:50%;background:#fff;border:2px solid var(--line-strong);display:grid;place-items:center;font-size:13px;font-weight:700;color:#fff}.journey-step.done .journey-dot{background:var(--brand);border-color:var(--brand)}.journey-label{font-size:11px;color:var(--muted);text-align:center;font-weight:600;line-height:1.2;max-width:76px}.journey-step.done .journey-label{color:var(--ink)}@media(max-width:820px){.journey{overflow-x:auto}.journey-step{min-width:72px}}.progress-head{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}.progress-bar-wrap{flex:1;height:10px;background:var(--line);border-radius:6px;overflow:hidden;max-width:420px}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--violet),var(--lavender));border-radius:6px;transition:width .3s}.progress-pct{font-size:13px;font-weight:600;color:var(--ink-2);white-space:nowrap}.tree-topic.done{color:var(--ink)}.topic-check{color:var(--ok);font-weight:700;margin-right:4px}.cert-overlay{position:fixed;inset:0;background:#1a164099;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:100;padding:20px}.cert{background:var(--parchment);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);max-width:660px;width:100%}.cert-inner{border:1px solid var(--violet-line);margin:16px;padding:52px 44px;text-align:center;border-radius:var(--radius);position:relative}.cert-inner:before{content:"";position:absolute;left:50%;top:0;transform:translate(-50%);width:54px;height:2px;background:var(--violet);border-radius:0 0 2px 2px}.cert-brand{font-family:var(--display);font-weight:900;font-size:19px;color:var(--indigo);letter-spacing:-.025em}.cert-kicker{text-transform:uppercase;letter-spacing:.24em;font-size:11px;color:var(--muted);margin-top:26px;font-weight:700}.cert-name{font-family:var(--serif);font-style:italic;font-size:46px;font-weight:400;margin:14px 0 6px;color:var(--indigo);letter-spacing:-.02em;line-height:1.1}.cert-body{color:var(--muted);margin:0;font-size:14.5px}.cert-program{font-family:var(--display);font-size:21px;font-weight:700;color:var(--violet);margin-top:10px;letter-spacing:-.02em}.cert-meta{display:flex;justify-content:space-between;margin-top:40px;padding-top:18px;border-top:1px solid var(--violet-line);font-size:11.5px;color:var(--muted)}.cert-actions{display:flex;gap:10px;justify-content:flex-end;padding:0 18px 20px}@media print{body *{visibility:hidden}.cert,.cert *{visibility:visible}.cert{position:absolute;inset:0;box-shadow:none}.cert-actions{display:none}}.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.tile-value{font-family:var(--display);font-size:26px;font-weight:700}.tile-label{color:var(--muted);font-size:13px;margin-top:4px}.home-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.home-row-2{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.mini-row{padding:7px 0;border-bottom:1px solid var(--line-soft);font-size:14px}.phase-note{margin-top:22px;color:var(--violet);font-size:13px}.phase-inline{color:var(--violet)}.tabs{display:flex;gap:28px;margin-bottom:26px;border-bottom:1px solid var(--line)}.tab{position:relative;background:none;border:0;padding:10px 0 14px;cursor:pointer;font-size:15px;font-family:var(--font);font-weight:500;color:var(--muted);transition:color .16s}.tab:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:var(--violet);transform:scaleX(0);transform-origin:left;transition:transform .22s cubic-bezier(.4,0,.2,1)}.tab:hover{color:var(--ink-2)}.tab.active{color:var(--ink);font-weight:600}.tab.active:after{transform:scaleX(1)}.empty-state{display:grid;place-items:center;min-height:220px;text-align:center}.learn-select{display:flex;flex-direction:column;gap:5px;margin-bottom:20px}.learn-select select{padding:11px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:15px;font-family:var(--display);font-weight:600;color:var(--ink);background:var(--card);min-width:240px}.learn-select select:focus{outline:none;border-color:var(--violet);box-shadow:var(--ring)}.learn-select label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600}.page-head .learn-select{margin-bottom:0;flex:none}.learn-page-head{display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;margin:-12px 0 12px}.learn-page-head h1{margin:0;font-size:30px}.learn-page-head p.muted{margin:0;font-size:14px;max-width:60ch}.learn-tabs{margin-bottom:0;border-bottom:0;gap:2px;padding:4px;background:var(--line-soft);border-radius:var(--pill)}.learn-tabs .tab{padding:7px 14px;border-radius:var(--pill);font-size:13.5px;transition:color .16s,background .16s,box-shadow .16s}.learn-tabs .tab:after{content:none}.learn-tabs .tab:hover{color:var(--ink)}.learn-tabs .tab.active{background:var(--card);box-shadow:0 1px 2px #26215c14,0 2px 8px #26215c0f}.cls-state{min-height:320px}.cls-ws{--cls-bottom: 96px;display:grid;grid-template-columns:320px minmax(0,1fr);gap:20px;height:calc(100vh - var(--cls-top, 100px) - var(--cls-bottom));height:calc(100dvh - var(--cls-top, 100px) - var(--cls-bottom));min-height:380px;margin-bottom:calc(var(--cls-bottom) - var(--main-pad-b, 132px))}.cls.rail-min .cls-ws{grid-template-columns:68px minmax(0,1fr)}.cls-backdrop{display:none}.reader{grid-column:2;grid-row:1;display:flex;flex-direction:column;min-height:0;background:var(--stage);border-radius:var(--radius-lg);overflow:hidden;color:var(--parchment);box-shadow:var(--shadow-lg)}.reader-head{flex:none;padding:18px 36px 0}.reader-top{display:flex;align-items:center;gap:14px}.reader-crumb{flex:1;min-width:0;font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:var(--lavender);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-crumb-chap{color:#8b84c9;font-weight:600}.reader-pos{flex:none;font-family:var(--display);font-weight:700;font-size:16px;color:var(--parchment);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.reader-pos span{color:var(--lavender);opacity:.7;font-weight:600;font-size:13px}.reader-syl{display:none}.reader-title{font-size:30px;margin:8px 0 0;line-height:1.15;color:var(--parchment);letter-spacing:-.03em;max-width:32ch}.reader-tools{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 14px}.rchip{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:var(--pill);border:1px solid rgba(241,239,232,.14);background:#f1efe812;color:var(--parchment);font-family:var(--font);font-size:12.5px;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .14s,border-color .14s,color .14s}.rchip svg{color:var(--lavender)}.rchip:hover:not(:disabled){background:#f1efe824;border-color:#f1efe842}.rchip:focus-visible{outline:none;box-shadow:0 0 0 3px #afa9ec59}.rchip:disabled{color:#7d77b3;background:transparent;border-style:dashed;border-color:#f1efe824;cursor:not-allowed}.rchip:disabled svg{color:#7d77b3}.rchip.is-done{background:#1d9e7529;border-color:#1d9e7559;color:var(--stage-ok-soft);cursor:default}.rchip.is-done svg{color:var(--stage-ok-soft)}.reader-read{height:2px;background:var(--stage-line)}.reader-read span{display:block;height:100%;background:var(--lavender);transform-origin:left;transition:transform .1s linear}.reader-body{flex:1;min-height:0;overflow-y:auto;padding:24px 36px 36px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--stage-line) transparent}.reader-inner{max-width:74ch}.lesson-video{width:100%;border-radius:var(--radius-sm);margin-bottom:18px;display:block}.reader .md{color:#d8d5e8;font-size:17px;line-height:1.78}.reader .md-h{color:var(--parchment)}.reader .md code{background:var(--stage-2);color:#f9a8d4}.reader .md-pre{background:#12103080;border:1px solid var(--stage-line)}.reader .md-quote{border-left-color:var(--lavender);background:var(--stage-2);color:#d8d5e8}.reader .md a{color:var(--lavender)}.reader .md-hr{border-top-color:var(--stage-line)}.reader-foot{flex:none;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:12px 24px;border-top:1px solid var(--stage-line)}.reader-foot .rnav{background:var(--stage-2);color:var(--lavender);justify-self:start;min-width:0;max-width:100%}.reader-foot .rnav:hover:not(:disabled){background:#2e2860;color:var(--parchment)}.reader-foot .rnav:disabled{background:transparent;color:#4a4480;opacity:1}.reader-foot .rnext{justify-self:end;grid-column:3}.reader-foot .rnav.on-stage{background:var(--parchment);color:var(--indigo)}.rnext-label{font-weight:700}.rnext-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px;font-weight:500;opacity:.8}.rnext.on-stage .rnext-title{opacity:1}.rmark{grid-column:2}.rmark.is-done{background:var(--stage-2);color:var(--stage-ok-soft)}.rmark.is-done:hover{background:#2e2860}.rail{grid-column:1;grid-row:1;display:flex;flex-direction:column;min-height:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.rail-head{flex:none;display:flex;align-items:center;gap:12px;padding:14px 10px 14px 14px;border-bottom:1px solid var(--line-soft)}.ring{position:relative;flex:none;width:44px;height:44px;display:grid;place-items:center}.ring svg{position:absolute;inset:0;transform:rotate(-90deg)}.ring-track{fill:none;stroke:var(--line-soft);stroke-width:3.5}.ring-fill{fill:none;stroke:var(--violet);stroke-width:3.5;stroke-linecap:round;transition:stroke-dashoffset .6s cubic-bezier(.4,0,.2,1)}.ring-full .ring-fill{stroke:var(--green)}.ring-num{font-family:var(--display);font-weight:700;font-size:12px;color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}.ring-num small{font-size:8.5px;font-weight:600;color:var(--muted)}.ring-idle{color:var(--violet);background:var(--violet-soft);border-radius:50%}.ring-low .ring-fill{stroke:var(--warn)}.work{margin-top:2px}.work-bar{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;margin-bottom:4px}.work-filters{display:inline-flex;gap:2px;padding:4px;background:var(--line-soft);border-radius:var(--pill)}.work-filter{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border:0;border-radius:var(--pill);background:transparent;color:var(--muted);font-family:var(--font);font-size:13.5px;font-weight:500;cursor:pointer;transition:color .16s,background .16s,box-shadow .16s}.work-filter b{font-weight:700;font-size:11.5px;padding:1px 7px;border-radius:var(--pill);background:#26215c12;color:var(--ink-2);font-variant-numeric:tabular-nums}.work-filter:hover{color:var(--ink)}.work-filter.on{background:var(--card);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #26215c14,0 2px 8px #26215c0f}.work-filter.has-overdue b{background:var(--danger-soft);color:var(--danger-ink)}.work-next{font-size:13.5px;color:var(--ink-2)}.work-next.is-overdue{color:var(--danger-ink);font-weight:600}.work-stats{display:flex;gap:26px;flex-wrap:wrap}.work-stat{display:flex;align-items:baseline;gap:7px}.work-stat b{font-family:var(--display);font-size:24px;font-weight:700;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}.work-stat span{font-size:13px;color:var(--muted)}.work-list{margin-top:14px}.assign-card.ac{padding:0;margin-bottom:0;overflow:hidden;border-left:3px solid var(--line);transition:border-color .16s,box-shadow .16s}.ac-todo{border-left-color:var(--violet)}.ac-fixes,.ac-overdue{border-left-color:var(--danger)}.ac-review{border-left-color:var(--warn)}.ac-graded{border-left-color:var(--ok)}.ac-upcoming{border-left-color:var(--line-strong)}.ac-head{display:flex;align-items:center;gap:14px;width:100%;padding:16px 20px 16px 18px;background:none;border:0;text-align:left;cursor:pointer;font-family:var(--font);color:var(--ink);transition:background .14s}.ac-head:hover{background:var(--sunken)}.ac-kind{flex:none;width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:var(--violet-soft);color:var(--violet)}.ac-fixes .ac-kind,.ac-overdue .ac-kind{background:var(--danger-soft);color:var(--danger)}.ac-review .ac-kind{background:var(--warn-soft);color:var(--warn-ink)}.ac-graded .ac-kind{background:var(--ok-soft);color:var(--ok-ink)}.ac-upcoming .ac-kind{background:var(--line-soft);color:var(--muted)}.ac-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.ac-title{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:-.015em;line-height:1.25}.ac-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}.ac-type{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--violet);background:var(--violet-soft);padding:2px 8px;border-radius:var(--pill)}.ac-type.is-exam{color:var(--danger);background:var(--danger-soft)}.ac-when b{color:var(--ink-2);font-weight:600}.ac-when.is-overdue{color:var(--danger);font-weight:600}.ac-status{flex:none;font-size:12px;font-weight:700;padding:5px 11px;border-radius:var(--pill);white-space:nowrap;letter-spacing:.01em}.st-todo{background:var(--violet-soft);color:var(--violet)}.st-overdue,.st-fixes{background:var(--danger-soft);color:var(--danger-ink)}.st-review{background:var(--warn-soft);color:var(--warn-ink)}.st-graded{background:var(--ok-soft);color:var(--ok-ink);font-family:var(--display);font-size:13px;font-variant-numeric:tabular-nums}.st-graded b{font-size:16px;font-weight:700}.st-upcoming{background:var(--line-soft);color:var(--muted)}.ac-caret{flex:none;color:var(--muted);font-size:15px;transition:transform .2s}.ac.is-open .ac-caret{transform:rotate(180deg)}.ac.is-open .ac-head{border-bottom:1px solid var(--line-soft)}.ac-body{padding:4px 20px 20px}.ac-body>.assign-desc:first-child{margin-top:12px}.ac-body>.sub-check,.ac-body>.graded,.ac-body>.assign-note,.ac-body>.sub-form,.ac-body>.sub-check-error,.ac-body>.inline-form{margin-top:14px}.quiz-card.qc{padding:16px 20px 16px 18px;border-left:3px solid var(--line)}.qc-todo{border-left-color:var(--violet)}.qc-live{border-left-color:var(--warn)}.qc-done{border-left-color:var(--ok)}.qc-head{display:flex;align-items:center;gap:14px}.qc-idle{width:48px;height:48px}.qc-idle.is-exam{color:var(--danger);background:var(--danger-soft)}.qc-copy{flex:1;min-width:0}.qc-title{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:-.015em;line-height:1.25}.qc-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:4px;font-size:12.5px;color:var(--muted)}.qc-actions{flex:none}.qc-live-tag{font-size:12px;font-weight:700;padding:5px 11px;border-radius:var(--pill);background:var(--warn-soft);color:var(--warn-ink)}.qc .quiz-take,.qc .quiz-review{margin-top:16px;padding-top:16px;border-top:1px solid var(--line-soft)}.rail-head-copy{flex:1;min-width:0}.rail-title{font-family:var(--display);font-weight:700;font-size:15px;color:var(--ink);letter-spacing:-.015em;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-pick{width:100%;padding:5px 8px;border:1px solid var(--line);border-radius:8px;font-family:var(--display);font-weight:700;font-size:14px;color:var(--ink);background:var(--card)}.rail-pick:focus{outline:none;border-color:var(--violet);box-shadow:var(--ring)}.rail-sub{font-size:12px;color:var(--muted);margin-top:3px;font-variant-numeric:tabular-nums}.rail-toggle{flex:none;display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;transition:background .14s,color .14s}.rail-toggle:hover{background:var(--violet-soft);color:var(--violet)}.rail-cert{margin:10px 12px 0;justify-content:center}.rail-mods{flex:1;min-height:0;display:flex;flex-direction:column;padding:6px 8px 8px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.rmod{flex:none;display:flex;flex-direction:column;min-height:0;border-radius:var(--radius-sm)}.rmod+.rmod{margin-top:2px}.rmod.open{flex:0 1 auto;min-height:220px;background:var(--line-soft)}.rmod-head{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;padding:9px 8px;cursor:pointer;text-align:left;font-family:var(--font);border-radius:var(--radius-sm)}.rmod-head:hover{background:var(--line-soft)}.rmod-idx{flex:none;width:30px;height:30px;display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:11.5px;color:var(--violet);background:var(--violet-soft);border-radius:9px;font-variant-numeric:tabular-nums;transition:background .16s,color .16s}.rmod.here .rmod-idx{background:var(--violet);color:#fff}.rmod.complete .rmod-idx{background:var(--green);color:#fff}.rmod-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.rmod-title{font-weight:600;font-size:13px;color:var(--ink);line-height:1.25;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.rmod-bar{height:3px;border-radius:3px;background:var(--line);overflow:hidden}.rmod-bar span{display:block;height:100%;background:var(--violet);border-radius:3px;transition:width .5s cubic-bezier(.4,0,.2,1)}.rmod.complete .rmod-bar span{background:var(--green)}.rmod-count{flex:none;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}.rmod-caret{flex:none;color:var(--muted);font-size:14px;transition:transform .2s}.rmod-caret.up{transform:rotate(180deg)}.rmod-body{flex:1;min-height:0;overflow-y:auto;padding:2px 4px 8px;overscroll-behavior:contain;scrollbar-width:thin;scroll-padding-top:8px}.rchap-title{font-size:11.5px;font-weight:600;color:var(--ink-2);line-height:1.35;padding:8px 8px 3px 10px}.rlesson{position:relative;display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;padding:7px 8px 7px 10px;cursor:pointer;text-align:left;font-family:var(--font);font-size:13px;color:var(--ink-2);border-radius:9px}.rlesson:hover{background:#ffffffb3}.rlesson.active{background:var(--card);color:var(--violet);font-weight:600;box-shadow:var(--shadow)}.rtick{flex:none;width:11px;height:11px;border-radius:50%;border:2px solid var(--line-strong);background:var(--card);box-sizing:border-box;display:block}.rlesson.done .rtick{background:var(--green);border-color:var(--green)}.rlesson.active .rtick{border-color:var(--violet);box-shadow:0 0 0 3px #534ab729}.rlesson.active.done .rtick{background:var(--green);border-color:var(--green)}.rlesson-title{flex:1;line-height:1.35}.cls.rail-min .rail-head{flex-direction:column;padding:12px 0;gap:6px}.cls.rail-min .rail-head-copy,.cls.rail-min .rail-cert,.cls.rail-min .rmod-copy,.cls.rail-min .rmod-count,.cls.rail-min .rmod-caret,.cls.rail-min .rmod-body{display:none}.cls.rail-min .ring{width:40px;height:40px}.cls.rail-min .rail-mods{padding:6px;align-items:center}.cls.rail-min .rmod{background:none;width:auto}.cls.rail-min .rmod-head{padding:5px;justify-content:center;width:auto}.cls.rail-min .rmod-idx{width:38px;height:38px;font-size:12.5px;border-radius:11px}@media(max-height:800px){.learn-page-head{margin:-16px 0 10px}.learn-page-head h1{font-size:26px}.cls-ws{--cls-bottom: 92px}.rmod.open{min-height:170px}.rail-head{padding:10px 10px 10px 12px}.reader-head{padding-top:12px}.reader-title{font-size:23px;margin-top:5px}.reader-tools{margin:9px 0 10px}.rchip{padding:5px 11px;font-size:12px}.reader-body{padding:18px 36px 24px}.reader-foot{padding:8px 20px}}@media(max-height:680px){.rail-head{padding:8px 8px 8px 10px}.ring{width:36px;height:36px}.rmod-head{padding:6px 8px}.rmod.open{min-height:140px}.reader-crumb{display:none}.reader-top{justify-content:flex-end}.reader-title{margin-top:0}}.fv-overlay{position:fixed;inset:0;z-index:130;display:grid;place-items:center;padding:3vh 3vw;background:#1a16406b;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);overscroll-behavior:contain;animation:fv-in .16s ease-out}@keyframes fv-in{0%{opacity:0}to{opacity:1}}.fv{background:var(--card);border-radius:var(--radius);width:100%;max-width:1100px;height:94vh;box-shadow:0 30px 80px #10142473;display:flex;flex-direction:column;overflow:hidden}.fv-head{display:flex;align-items:center;gap:12px;padding:14px 16px 13px 24px;border-bottom:1px solid var(--line)}.fv-head-copy{flex:1;min-width:0}.fv-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:var(--violet);font-weight:700}.fv-title{font-family:var(--display);font-weight:700;font-size:18px;letter-spacing:-.01em;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fv-escape{font-size:12.5px;color:var(--muted);text-decoration:underline;text-underline-offset:3px;flex:none}.fv-escape:hover{color:var(--violet)}.fv-close{border:0;background:var(--line-soft);color:var(--muted);width:34px;height:34px;border-radius:9px;cursor:pointer;font-size:15px;flex:none}.fv-close:hover{background:var(--violet-soft);color:var(--violet)}.fv-frame{flex:1;width:100%;border:0;background:var(--line-soft)}.fv-note{padding:10px 24px;font-size:12.5px;color:var(--a3-ink);background:var(--a3-soft);border-top:1px solid var(--line)}@media(max-width:720px){.fv-overlay{padding:0}.fv{height:100vh;max-width:100%;border-radius:0}}.pdfr-stage{flex:1;overflow-y:auto;overflow-x:auto;background:#e9e7f1;display:flex;flex-direction:column;align-items:center;gap:18px;padding:22px 22px 40px;scroll-behavior:smooth}.pdfr-stage:focus-visible{outline:none}.pdfr-page{position:relative;flex:none;background:#fff;border-radius:3px;box-shadow:0 1px 2px #26215c1a,0 10px 30px #26215c21;scroll-margin-top:22px}.pdfr-canvas{display:block;border-radius:3px}.pdfr-folio{position:absolute;right:10px;bottom:8px;z-index:3;pointer-events:none;font-size:10.5px;font-weight:700;color:var(--muted);background:#ffffffd1;border-radius:999px;padding:2px 8px;letter-spacing:.04em;font-variant-numeric:tabular-nums}.pdfr-state{flex:1;display:grid;place-items:center;padding:40px;color:var(--muted);font-size:14px;text-align:center}.textLayer{position:absolute;inset:0;text-align:initial;overflow:clip;opacity:1;line-height:1;letter-spacing:normal;word-spacing:normal;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:0;color-scheme:only light;--min-font-size: 1;--text-scale-factor: calc(var(--total-scale-factor) * var(--min-font-size));--min-font-size-inv: calc(1 / var(--min-font-size))}.textLayer span,.textLayer br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%;-webkit-user-select:text;user-select:text}.textLayer>:not(.markedContent),.textLayer .markedContent span:not(.markedContent){z-index:1;--font-height: 0;font-size:calc(var(--text-scale-factor) * var(--font-height));--scale-x: 1;--rotate: 0deg;transform:rotate(var(--rotate)) scaleX(var(--scale-x)) scale(var(--min-font-size-inv))}.textLayer .markedContent{display:contents}.textLayer ::selection{background:#534ab759}.textLayer .pdfr-hit{background:#f0b41473;color:transparent;border-radius:2px}.pdfr-linklayer{position:absolute;inset:0;z-index:2}.pdfr-link{position:absolute;display:block;padding:0;border:0;background:transparent;cursor:pointer;border-radius:2px}.pdfr-link:hover{background:#534ab729;outline:1px solid var(--violet)}.pdfr-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 16px;border-bottom:1px solid var(--line);background:var(--card);flex-wrap:wrap;flex:none}.pdfr-group{display:flex;align-items:center;gap:6px}.pdfr-find{flex:1;justify-content:center;min-width:200px}.pdfr-input{flex:1;max-width:260px;padding:7px 12px;border:1px solid var(--line);border-radius:var(--pill);font-family:var(--font);font-size:13px;color:var(--ink);background:var(--line-soft)}.pdfr-input::placeholder{color:var(--muted)}.pdfr-input:focus-visible{outline:none;border-color:var(--violet-line);background:var(--card);box-shadow:var(--ring)}.pdfr-pagebox{width:46px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--line-soft);font-family:var(--font);font-size:13px;font-weight:600;color:var(--ink);text-align:center;font-variant-numeric:tabular-nums}.pdfr-pagebox:focus-visible{outline:none;border-color:var(--violet-line);background:var(--card);box-shadow:var(--ring)}.pdfr-btn{width:30px;height:30px;border:1px solid transparent;background:transparent;color:var(--ink-2);border-radius:8px;cursor:pointer;font-size:16px;line-height:1;display:grid;place-items:center;flex:none;transition:background .12s,color .12s}.pdfr-btn:hover:not(:disabled){background:var(--violet-soft);color:var(--violet)}.pdfr-btn:disabled{opacity:.3;cursor:not-allowed}.pdfr-fit{font-size:14px}.pdfr-count{font-size:12.5px;color:var(--muted);text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}.pdfr-zoom{min-width:44px}@media(max-width:720px){.pdfr-bar{gap:8px;padding:8px 10px}.pdfr-find{order:3;flex-basis:100%}.pdfr-stage{padding:12px 10px 28px}}.md{color:var(--ink-2);line-height:1.7;font-size:15px}.md-h{font-family:var(--display);color:var(--ink);margin:22px 0 10px;line-height:1.3}h1.md-h{font-size:22px}h2.md-h{font-size:19px}h3.md-h{font-size:16px}h4.md-h{font-size:15px}.md-p{margin:0 0 14px}.md-list{margin:0 0 14px;padding-left:22px}.md-list li{margin-bottom:6px}.md code{background:var(--line-soft);padding:1.5px 6px;border-radius:5px;font-size:13px;font-family:ui-monospace,SF Mono,Menlo,monospace;color:var(--danger)}.md-pre{background:#1a1d2b;color:#e6e8f0;padding:16px 18px;border-radius:10px;overflow-x:auto;margin:0 0 16px}.md-pre code{background:none;color:inherit;padding:0;font-size:13px}.md-quote{border-left:3px solid var(--brand);background:var(--brand-soft);padding:10px 16px;border-radius:0 8px 8px 0;margin:0 0 16px;color:var(--ink-2)}.md-hr{border:0;border-top:1px solid var(--line);margin:22px 0}.md a{color:var(--brand)}.pub-on{color:var(--ok);font-weight:600}.pub-off{color:var(--muted)}.ce-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}.ce-bar-title{font-size:15px}.ce-pub{display:flex;align-items:center;gap:7px;font-size:13.5px;color:var(--ink-2);cursor:pointer}.ce-msg{margin-left:auto}.ce-import{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--brand-soft);border:1px dashed var(--violet-line);border-radius:14px;padding:16px 20px;margin-bottom:18px;flex-wrap:wrap}.ce-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:18px;align-items:start}.ce-tree{min-width:0;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px;box-shadow:var(--shadow)}.ce-mod{border:1px solid var(--line-soft);border-radius:11px;padding:8px;margin-bottom:10px}.ce-mod-head{display:flex;align-items:center;gap:5px}.ce-mod-input{flex:1;min-width:0;font-weight:600;font-size:13.5px;border:1px solid transparent;border-radius:7px;padding:6px 8px;font-family:var(--font)}.ce-mod-input:hover,.ce-mod-input:focus{border-color:var(--line);background:var(--sunken);outline:none}.ce-chap{margin:6px 0 6px 8px;padding-left:8px;border-left:2px solid var(--line-soft)}.ce-chap-head{display:flex;align-items:center;gap:5px}.ce-chap-input{flex:1;min-width:0;font-size:12.5px;font-weight:600;color:var(--muted);border:1px solid transparent;border-radius:6px;padding:4px 7px;font-family:var(--font);text-transform:uppercase;letter-spacing:.04em}.ce-chap-input:hover,.ce-chap-input:focus{border-color:var(--line);background:var(--sunken);outline:none}.ce-topic{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;cursor:pointer;font-size:13px}.ce-topic:hover{background:var(--line-soft)}.ce-topic.active{background:var(--brand-soft);color:var(--brand);font-weight:600}.ce-topic-type{display:flex;align-items:center;color:var(--muted)}.ce-topic.active .ce-topic-type{color:var(--brand)}.ce-topic-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ce-mini{border:1px solid transparent;background:none;cursor:pointer;color:var(--muted);font-size:12px;width:24px;height:24px;display:inline-grid;place-items:center;border-radius:7px;line-height:1;transition:background .14s,color .14s,border-color .14s}.ce-mini:hover{background:var(--line-soft);border-color:var(--line);color:var(--ink)}.ce-mini.danger:hover{background:var(--danger-soft);border-color:var(--danger-line);color:var(--danger)}.ce-add{border:1.5px dashed var(--line);background:none;color:var(--brand);cursor:pointer;font-size:12px;font-weight:600;padding:6px 12px;font-family:var(--font);border-radius:8px;transition:background .15s,border-color .15s}.ce-add:hover{background:var(--brand-soft);border-color:var(--brand)}.ce-addmod{width:100%;margin-top:4px}.ce-editor{min-height:420px;min-width:0}.ce-backdrop,.ce-sheet-head{display:none}.ce-label{display:block;font-size:12px;font-weight:600;color:var(--ink-2);margin:16px 0 6px}.ce-label:first-child{margin-top:0}.ce-field{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:9px;font-size:14px;font-family:var(--font);box-sizing:border-box}.ce-types{display:flex;gap:8px}.ce-type{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);border-radius:9px;padding:8px 14px;cursor:pointer;font-size:13px;font-family:var(--font);color:var(--ink-2)}.ce-type.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand);font-weight:600}.ce-body{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font-size:13.5px;font-family:ui-monospace,SF Mono,Menlo,monospace;line-height:1.6;box-sizing:border-box;resize:vertical}@media(max-width:820px){.ce-grid{grid-template-columns:minmax(0,1fr)}}.ph-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:6px}.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}.inline-form input,.inline-form select{padding:9px 11px;border:1px solid var(--line);border-radius:9px;font-size:13.5px;font-family:var(--font)}.inline-form input{min-width:200px}.ann-body{padding:9px 11px;border:1px solid var(--line);border-radius:9px;font-size:13.5px;font-family:var(--font);box-sizing:border-box}.table-wrap{overflow-x:auto;margin-top:8px;-webkit-overflow-scrolling:touch}.grade-table .sub-cell{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.grade-table{border-collapse:collapse;width:100%;font-size:13.5px}.grade-table th,.grade-table td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line-soft);white-space:nowrap}.grade-table th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:600}.grade-table th.gb-rowhead{font-size:13.5px;text-transform:none;letter-spacing:0;color:var(--ink);font-weight:600}.grade-table tbody tr:hover{background:var(--sunken)}.gt-kind{font-size:11.5px;padding:2px 8px;border-radius:999px;background:var(--violet-soft);color:var(--brand);font-weight:600}.gt-kind.gt-exam{background:var(--danger-soft);color:var(--danger)}.gt-kind.gt-quiz{background:var(--ok-soft);color:var(--ok-ink)}.gt-status{font-size:11.5px;text-transform:capitalize;color:var(--muted)}.gt-status.gt-graded{color:var(--ok-ink);font-weight:600}.gt-status.gt-submitted{color:var(--warn-ink)}.gb-cell{text-align:center;font-variant-numeric:tabular-nums}.gb-cell.gb-pending{color:var(--faint)}.gb-cell.gb-submitted{color:var(--warn-ink);font-weight:700}.gb-cell.gb-graded{color:var(--ok-ink);font-weight:600}.batch-ws{max-width:1040px;gap:22px}.batch-ws .panel{padding:26px 28px}.batch-ws section h3{font-size:15px;margin:0 0 18px}.ws-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:2px}.ws-tags{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.ws-flash{font-size:13px;color:var(--ok);background:var(--ok-soft);border-radius:20px;padding:6px 14px;white-space:nowrap}.ws-h3{font-size:15px;margin:0 0 18px}.roster{display:grid;grid-template-columns:1fr 1fr;gap:28px}.roster-col-head{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:8px}.roster-n{background:var(--brand-soft);color:var(--brand);border-radius:20px;padding:1px 9px;font-size:12px;letter-spacing:0}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:5px 12px 5px 5px;font-size:13.5px;box-shadow:0 1px 2px #1014240a}.chip-av{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff;background:var(--avatar)}.chip-av-m{background:var(--brand)}.chip-x{border:0;background:none;color:var(--faint);cursor:pointer;font-size:16px;line-height:1;padding:0 2px;margin-left:2px}.chip-x:hover{color:var(--danger)}.roster-empty{margin:0}.roster-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:26px;padding-top:22px;border-top:1px solid var(--line-soft)}.rc-card{display:flex;flex-direction:column;background:var(--sunken);border:1px solid var(--line-soft);border-radius:12px;padding:16px}.rc-card label{font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:10px}.rc-card .rc-select,.rc-card .rc-input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:9px;font-size:13.5px;font-family:var(--font);background:var(--card);box-sizing:border-box}.rc-form{display:contents}.rc-btn{width:100%;margin-top:10px;padding:9px}@media(max-width:820px){.roster-controls{grid-template-columns:1fr}.roster{grid-template-columns:1fr;gap:20px}}.session-list{display:flex;flex-direction:column;gap:10px;margin-top:18px}.session-row{display:flex;align-items:center;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.session-row:hover{border-color:var(--line-strong)}.session-date{flex:none;width:52px;height:52px;border-radius:10px;background:var(--brand-soft);display:flex;flex-direction:column;align-items:center;justify-content:center}.session-date-d{font-family:var(--display);font-weight:700;font-size:19px;color:var(--brand);line-height:1}.session-date-m{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--brand);font-weight:600;margin-top:2px}.session-info{flex:1;min-width:0}.session-info strong{display:block;font-size:14.5px}.session-sub{display:flex;align-items:center;gap:10px;margin-top:4px;font-size:13px;flex-wrap:wrap}.att-overlay{position:fixed;inset:0;background:#0f142480;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:120;padding:20px;overscroll-behavior:contain}.att-modal{background:var(--card);border-radius:18px;width:100%;max-width:460px;box-shadow:0 24px 70px #10142459;display:flex;flex-direction:column;max-height:86vh;overflow:hidden}.att-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 24px 16px}.att-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--brand);font-weight:700}.att-title{font-family:var(--display);font-weight:700;font-size:19px;margin-top:4px;letter-spacing:-.01em}.att-when{font-size:13px;margin-top:3px}.att-close{border:0;background:var(--line-soft);color:var(--muted);width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:14px;flex:none}.att-close:hover{background:var(--line);color:var(--ink)}.att-toolbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--sunken);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}.att-count{font-size:15px}.att-count strong{font-family:var(--display);color:var(--ok);font-size:17px}.att-quick{display:flex;align-items:center;gap:8px}.att-link{border:1px solid var(--line);background:var(--card);color:var(--brand);font-size:12.5px;font-weight:600;cursor:pointer;font-family:var(--font);padding:5px 12px;border-radius:var(--pill);transition:background .15s,border-color .15s,color .15s}.att-link:hover{background:var(--violet-soft);border-color:var(--violet)}.att-link:focus-visible{outline:none;box-shadow:var(--ring)}.att-dot{color:var(--line-strong)}.att-list{overflow-y:auto;overscroll-behavior:contain;padding:8px 12px}.att-item{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:11px}.att-item.is-present{background:var(--ok-soft)}.att-av{flex:none;width:34px;height:34px;border-radius:50%;background:var(--avatar);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700}.att-item.is-present .att-av{background:var(--ok)}.att-name{flex:1;font-size:14px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.att-seg{display:inline-flex;background:var(--line-soft);border-radius:9px;padding:2px;flex:none}.att-segbtn{border:0;background:none;padding:6px 13px;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer;border-radius:7px;font-family:var(--font)}.att-segbtn.on-p{background:var(--ok);color:#fff}.att-segbtn.on-a{background:#fff;color:var(--ink-2);box-shadow:0 1px 2px #10142414}.att-empty{padding:24px 12px;text-align:center}.att-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--line-soft)}@media(max-width:560px){.att-item{flex-wrap:wrap}}.assignment{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.assignment-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.assignment-due{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--muted)}.assignment-desc{margin-top:8px;font-size:13.5px}.assignment-desc .md{font-size:13.5px;line-height:1.6}.assignment-desc .md-p:last-child{margin-bottom:0}.subs{margin-top:8px}.af{border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--sunken);margin-bottom:6px}.af-top{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.af-title{flex:1;min-width:220px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;font-size:15px;font-family:var(--font);font-weight:600;background:var(--card)}.af-seg{display:inline-flex;background:var(--line-soft);border-radius:10px;padding:3px;flex:none}.af-seg button{border:0;background:none;padding:8px 15px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;border-radius:8px;font-family:var(--font)}.af-seg button.on{background:var(--card);color:var(--brand);box-shadow:0 1px 2px #1014241a}.af-label{display:block;font-size:12px;font-weight:600;color:var(--ink-2);margin:16px 0 7px}.af-desc{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font-size:14px;font-family:var(--font);line-height:1.6;box-sizing:border-box;resize:vertical;background:var(--card)}.af-desc::placeholder{color:var(--faint)}.af-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-top:16px;flex-wrap:wrap}.af-due{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--ink-2)}.af-due input{padding:9px 11px;border:1px solid var(--line);border-radius:9px;font-family:var(--font);font-size:13px;background:var(--card)}.af-actions{display:flex;gap:10px}.assign-card{margin-bottom:14px}.assign-card>.assign-desc,.assign-card>.sub-check,.assign-card>.graded,.assign-card>.assign-note,.assign-card>.sub-form,.assign-card>.sub-check-error,.assign-card>.inline-form{margin-top:14px}.drive-link{display:inline-flex;align-items:center;gap:6px;color:var(--violet-dark);font-size:13px;font-weight:600;text-decoration:none;border-bottom:1px solid transparent;padding-bottom:1px;transition:border-color .15s ease,color .15s ease}.drive-link:hover{color:var(--violet);border-bottom-color:var(--violet)}.drive-link svg{flex:none;opacity:.8}.assign-note{margin:0;font-size:13.5px;color:var(--muted);line-height:1.5}.assign-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.assign-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.assign-title strong{font-size:16px}.assign-due{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--muted);margin-top:6px}.assign-due.overdue{color:var(--danger);font-weight:600}.assign-desc{margin-top:12px;padding:14px 16px;background:var(--sunken);border:1px solid var(--line-soft);border-radius:11px}.assign-desc .md{font-size:14px}.assign-desc .md-p:last-child,.assign-desc .md-list:last-child{margin-bottom:0}.assign-submit{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.assign-submit input{flex:1;min-width:220px;padding:10px 13px;border:1px solid var(--line);border-radius:10px;font-size:14px;font-family:var(--font)}.grade-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--sunken);padding:11px 13px;border-radius:9px;margin-top:8px;flex-wrap:wrap}.grade-row .inline-form{margin-top:0}.grade-score{min-width:96px}.tempbox{background:var(--ok-soft);border:1px solid var(--ok-line);border-radius:10px;padding:13px 15px;margin:14px 0;font-size:14px}.tempbox code{background:var(--ok-line);padding:2px 8px;border-radius:6px}.graded{display:flex;align-items:stretch;gap:18px;margin-top:8px;background:var(--ok-soft);border:1px solid var(--ok-line);border-radius:var(--radius-sm);padding:16px 18px}.graded-score{display:flex;align-items:baseline;gap:1px;flex:none}.graded-score-num{font-family:var(--display);font-size:34px;font-weight:700;letter-spacing:-.04em;color:var(--ok-ink);line-height:1}.graded-score-of{font-family:var(--display);font-size:17px;font-weight:600;color:var(--ok-ink);opacity:.6}.graded-body{min-width:0;border-left:1px solid var(--ok-line);padding-left:18px;display:flex;flex-direction:column;justify-content:center;gap:5px}.graded-label{font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--ok-ink)}.graded-feedback{margin:0;font-family:var(--serif);font-style:italic;font-size:19px;line-height:1.4;color:var(--ink);letter-spacing:-.01em}.graded-none{margin:0;font-size:13.5px;color:var(--muted)}.sub-check{margin-top:12px;background:var(--sunken);border:1px solid var(--sunken-line);border-radius:var(--radius-sm);padding:12px 14px}.sub-check.is-failed{background:var(--danger-soft);border-color:var(--danger-line)}.sub-check-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.sub-check-verdict{display:inline-flex;align-items:center;gap:9px;min-width:0}.sub-check-lock{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}.sub-check-lock:before{content:"";width:3px;height:3px;border-radius:50%;background:var(--faint);flex:none}.sub-check-actions{display:inline-flex;align-items:center;gap:9px;flex-wrap:wrap}.sub-check-error{margin:10px 0 0;padding:10px 12px;background:var(--card);border:1px solid var(--danger-line);border-radius:9px;color:var(--danger-ink);font-size:13.5px}.assign-card>.sub-check-error{background:var(--danger-soft)}.sub-files{list-style:none;margin:12px 0 0;padding:0;background:var(--card);border:1px solid var(--line-soft);border-radius:10px;overflow:hidden}.sub-files li+li{border-top:1px solid var(--line-soft)}.file-row{display:flex;align-items:center;gap:10px;padding:10px 13px;text-decoration:none;color:var(--ink-2);font-size:13.5px;transition:background .15s ease,color .15s ease}.file-row:hover{background:var(--violet-soft);color:var(--violet-dark)}.file-row svg{flex:none;color:var(--faint)}.file-row:hover svg{color:var(--violet)}.file-row-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.file-row-type{flex:none;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}.sub-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sub-detail-row>td{background:var(--sunken);padding:12px 14px}.sub-detail-row .sub-check{margin-top:0}.grade-row-stack .sub-check,.sub-detail-row .sub-check{background:var(--card);border-color:var(--line-soft)}.grade-row-stack .sub-check.is-failed,.sub-detail-row .sub-check.is-failed{background:var(--danger-soft);border-color:var(--danger-line)}.grade-row-stack .sub-files,.sub-detail-row .sub-files{background:var(--sunken);border-color:var(--sunken-line)}.grade-row-stack{background:var(--sunken);padding:12px 14px;border-radius:9px;margin-top:8px}.grade-row-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.sub-form{margin-top:14px}.sub-form-alert{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;padding:11px 13px;background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:10px;margin-bottom:14px}.sub-form-alert p{margin:0;font-size:13.5px;color:var(--warn-ink)}.sub-form-grid{display:flex;gap:22px;flex-wrap:wrap;margin-bottom:14px}.sub-field{display:flex;flex-direction:column;gap:3px}.sub-field-label{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.sub-field-value{font-size:14px;font-weight:500}.sub-field-value.is-overdue{color:var(--danger)}.sub-form .assign-submit{margin-top:6px}.sub-form-hint{font-size:12.5px;margin-top:8px}.dtp{position:relative;display:inline-block}.dtp-field{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;min-width:210px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-size:13.5px;cursor:pointer;text-align:left}.dtp-field:hover{border-color:var(--lavender)}.dtp-field.is-empty .dtp-label{color:var(--muted)}.dtp-field svg{color:var(--brand);flex:none}.dtp-label{flex:1}.dtp-clear{color:var(--muted);font-size:16px;line-height:1;padding:0 2px;border-radius:5px}.dtp-clear:hover{color:var(--a4);background:var(--a4-soft)}.dtp-pop{position:absolute;z-index:60;top:calc(100% + 6px);left:0;width:288px;padding:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg)}.dtp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dtp-month{font-weight:650;font-size:14px;color:var(--ink)}.dtp-nav{width:28px;height:28px;border:0;border-radius:8px;background:transparent;color:var(--ink-2);font-size:18px;line-height:1;cursor:pointer}.dtp-nav:hover{background:var(--brand-soft);color:var(--brand)}.dtp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dtp-dow{margin-bottom:4px}.dtp-dow span{text-align:center;font-size:11px;font-weight:600;color:var(--muted);padding:4px 0}.dtp-day{aspect-ratio:1;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;font-size:13px;cursor:pointer}.dtp-day:hover{background:var(--brand-soft)}.dtp-day.out{color:var(--faint)}.dtp-day.today{box-shadow:inset 0 -2px 0 var(--lavender);font-weight:650}.dtp-day.on{background:var(--brand);color:#fff;font-weight:650;box-shadow:none}.dtp-time{display:flex;align-items:center;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft)}.dtp-time-label{flex:1;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.dtp-time select{padding:6px 8px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:13px;background:#fff;color:var(--ink)}.dtp-colon{color:var(--muted)}.dtp-foot{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.dtp-foot-right{display:flex;align-items:center;gap:10px}.dtp-link{border:0;background:transparent;color:var(--brand);font:inherit;font-size:13px;font-weight:600;cursor:pointer;padding:4px}.dtp-link:hover{text-decoration:underline}@media(max-width:560px){.dtp,.dtp-field{width:100%}.dtp-pop{left:auto;right:0}}.af-hint{font-size:12.5px;color:var(--muted);margin:2px 0 8px}.af-reqs{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;margin-bottom:4px}.af-req{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer;font-size:13.5px;background:#fff}.af-req:hover{border-color:var(--line-strong)}.af-req.on{border-color:var(--brand);background:var(--violet-soft)}.af-req input{margin-top:2px}.assignment-reqs{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:8px;font-size:12.5px}@media(max-width:640px){.sub-form-grid{flex-direction:column;gap:12px}.af-reqs{grid-template-columns:1fr}}.zoom-link{display:inline-flex;align-items:center;gap:5px;color:var(--brand);font-weight:600;text-decoration:none;vertical-align:middle}.zoom-link:hover{text-decoration:underline}.h3-ic{display:inline-flex;align-items:center;gap:8px}.mentor-batches{margin-top:14px;padding-top:14px;border-top:1px solid var(--line-soft);display:flex;align-items:center;gap:12px;flex-wrap:wrap}.mentor-batches-label{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}.mentor-batches .chips{flex:1;min-width:160px}.mentor-assign{padding:8px 11px;border:1px solid var(--line);border-radius:9px;font-size:13px;font-family:var(--font);background:var(--card);color:var(--brand);font-weight:600;cursor:pointer}.tempbox-line{display:flex;align-items:flex-start;gap:8px}.tempbox-ic{color:var(--ok);margin-top:1px}.quiz-builder{background:var(--sunken);border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:8px}.quiz-q{background:#fff;border:1px solid var(--line);border-radius:9px;padding:12px;margin:10px 0}.quiz-q>input{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:8px;margin-bottom:6px}.quiz-opt{display:flex;align-items:center;gap:8px;margin:5px 0;font-size:14px}.quiz-opt input[type=text]{flex:1;padding:7px 9px;border:1px solid var(--line);border-radius:6px}.quiz-why-input{width:100%;margin-top:8px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-family:var(--font);font-size:13px;resize:vertical}.quiz-why-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.quiz-stepper{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 16px}.quiz-step{width:34px;height:34px;flex:none;border-radius:50%;border:1.5px solid var(--line);background:var(--card);color:var(--ink-2);font-family:var(--display);font-weight:700;font-size:13px;display:grid;place-items:center;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .1s ease}.quiz-step:hover{border-color:var(--violet-line);background:var(--violet-soft);color:var(--violet)}.quiz-step:active{transform:scale(.94)}.quiz-step.answered{background:var(--violet-soft);border-color:var(--violet-line);color:var(--violet-dark)}.quiz-step.correct{background:var(--green-soft);border-color:var(--ok-line);color:var(--ok-ink)}.quiz-step.incorrect{background:var(--danger-soft);border-color:var(--danger-line);color:var(--danger-ink)}.quiz-step.current{color:#fff;box-shadow:0 0 0 4px #534ab729}.quiz-step.unanswered.current,.quiz-step.answered.current{background:var(--violet);border-color:var(--violet)}.quiz-step.correct.current{background:var(--ok);border-color:var(--ok);box-shadow:0 0 0 4px #1d9e7529}.quiz-step.incorrect.current{background:var(--danger);border-color:var(--danger);box-shadow:0 0 0 4px #c0362c29}.quiz-take-q-solo{background:var(--sunken);border:1px solid var(--line-soft);border-radius:12px;padding:18px 20px}.quiz-take-q-count{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.quiz-take-q-text{margin:0 0 14px;font-size:15.5px}.quiz-take-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}.quiz-take-hint{margin:8px 0 0;font-size:12.5px;text-align:right}.quiz-review-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft)}.qr-score{display:flex;align-items:baseline;gap:9px}.qr-score-pct{font-family:var(--display);font-size:24px;font-weight:700}.quiz-review{margin-top:14px;display:flex;flex-direction:column;gap:12px}.qr-q{border:1px solid var(--line);border-left-width:3px;border-radius:10px;padding:13px 15px;background:#fff}.qr-q.ok{border-left-color:var(--ok)}.qr-q.bad{border-left-color:var(--danger)}.qr-q-head{display:flex;align-items:flex-start;gap:9px;font-size:14.5px;line-height:1.5}.qr-mark{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff;margin-top:1px}.qr-mark.ok{background:var(--ok)}.qr-mark.bad{background:var(--danger)}.qr-q-count{margin-bottom:3px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.qr-opts{margin:10px 0 0 29px;display:flex;flex-direction:column;gap:6px}.qr-opt{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 11px;border:1px solid var(--line);border-radius:8px;font-size:14px;color:var(--ink-2);background:var(--sunken)}.qr-opt.correct{background:var(--ok-soft);border-color:var(--ok-line);color:var(--ok-ink);font-weight:600}.qr-opt.wrong{background:var(--danger-soft);border-color:var(--danger-line);color:var(--danger-ink)}.qr-tag{flex:none;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 8px;border-radius:999px}.qr-tag.tag-correct{background:var(--ok-soft);color:var(--ok-ink)}.qr-tag.tag-wrong{background:var(--danger-soft);color:var(--danger-ink)}.qr-blank{margin:9px 0 0 29px;font-size:13px;font-style:italic}.qr-why{margin:11px 0 0 29px;background:var(--brand-soft);border-radius:9px;padding:11px 13px;font-size:14px;line-height:1.6}.qr-why-label{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);margin-bottom:4px}.qr-why p{margin:0}.qr-why p+p{margin-top:7px}.risk-count-high{color:var(--danger)}.risk-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}.risk-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border:1px solid var(--line);border-left-width:3px;border-radius:10px;background:var(--sunken)}.risk-row.high{border-left-color:var(--danger);background:var(--danger-soft)}.risk-row.medium{border-left-color:var(--warn)}.risk-main{min-width:0;flex:1}.risk-who{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:14.5px}.risk-dot{width:8px;height:8px;border-radius:50%;flex:none}.risk-dot.high{background:var(--danger)}.risk-dot.medium{background:var(--warn)}.risk-batch{font-size:12.5px}.risk-reasons{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.risk-chip{font-size:12px;padding:4px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--muted)}.risk-chip b{color:var(--ink-2);font-weight:600}.chat-window{display:flex;flex-direction:column;gap:10px;height:52vh;overflow-y:auto;padding:4px 4px 10px}.chat-msg{max-width:70%;align-self:flex-start}.chat-msg.mine{align-self:flex-end}.chat-author{font-size:12px;color:var(--muted);margin:0 0 3px 4px}.chat-bubble{background:var(--line-soft);padding:9px 13px;border-radius:14px 14px 14px 4px;font-size:14px;line-height:1.4}.chat-msg.mine .chat-bubble{background:var(--brand);color:#fff;border-radius:14px 14px 4px}.chat-input{display:flex;gap:8px;margin-top:12px}.chat-input input{flex:1;padding:11px 13px;border:1px solid var(--line);border-radius:10px;font-size:14px;font-family:var(--font)}.chat-input input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:18px}.lib-card{display:flex;flex-direction:column;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);text-decoration:none;color:var(--ink);transition:border-color .15s,transform .05s}.lib-card:hover{border-color:var(--brand);transform:translateY(-1px)}.lib-card .badge{align-self:flex-start}.lib-card strong{font-size:15px}.lib-card .muted{font-size:13px}.lib-open{color:var(--brand);font-weight:600;font-size:13px;margin-top:auto}.ask-box{margin-bottom:18px}.ask-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.ask-input{flex:1;min-width:220px;padding:11px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:14.5px;font-family:var(--font);color:var(--ink);background:var(--card)}.ask-input::placeholder{color:var(--faint)}.doubt-list{display:flex;flex-direction:column;gap:14px}.doubt{padding-bottom:0}.doubt-head{display:flex;align-items:center;gap:11px}.doubt-avatar{width:36px;height:36px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--violet-soft);color:var(--violet-dark);border:1px solid var(--violet-line);font-family:var(--display);font-weight:700;font-size:14px}.doubt-avatar.sm{width:27px;height:27px;font-size:11.5px}.doubt-byline{min-width:0;display:flex;flex-direction:column;gap:3px}.doubt-who{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.doubt-who strong{font-size:14.5px}.doubt-when{font-size:12px;color:var(--faint)}.doubt-text{margin:13px 0 0;font-size:15px;line-height:1.55;color:var(--ink-2)}.doubt-foot{display:flex;align-items:center;gap:4px;margin-top:15px;border-top:1px solid var(--line-soft);padding-top:4px}.doubt-act{display:inline-flex;align-items:center;gap:7px;background:none;border:0;cursor:pointer;padding:11px 12px;border-radius:9px;font-family:var(--font);font-size:13px;font-weight:600;color:var(--muted);transition:color .15s ease,background .15s ease}.doubt-act:hover{color:var(--violet);background:var(--violet-soft)}.doubt-act.liked,.doubt-act.on{color:var(--violet)}.doubt-act svg{flex:none}.comments{margin-top:4px;border-top:1px solid var(--line-soft);padding:14px 0 18px;display:flex;flex-direction:column;gap:13px}.comment{display:flex;align-items:flex-start;gap:10px}.comment-body{min-width:0}.comment-text{margin:3px 0 0;font-size:14px;line-height:1.5;color:var(--ink-2)}.comment-form{margin-top:3px}@media(max-width:900px){.auth{grid-template-columns:1fr}.auth-hero{display:none}.auth-form-wrap{padding:32px 22px}}@media(max-width:1024px){.main{--main-pad-b: 120px;padding:26px 22px var(--main-pad-b)}.home-row,.home-row-2{grid-template-columns:1fr}.tiles{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.topbar{padding:10px 14px;gap:8px}.who-name{display:none}.who-btn>.badge{display:none}.who-caret{display:none}.who-btn{padding:4px;gap:0}.who-menu{width:250px}.search-trigger{min-width:0;padding:8px;border-radius:50%}.search-trigger-text,.search-trigger .kbd{display:none}.dock{left:10px;right:10px;transform:none;max-width:none;justify-content:flex-start;gap:0;padding:5px;border-radius:20px}.dock-item{flex:1 1 0;min-width:44px;padding:8px 2px 7px;gap:3px;border-radius:13px}.dock-label{font-size:9.5px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.main{--main-pad-b: 116px;padding:20px 16px var(--main-pad-b)}.page-head{flex-direction:column;align-items:flex-start;gap:10px}h1{font-size:27px}.display,.path-title{font-size:30px}.serif-lead{font-size:20px}.path{flex-direction:column;align-items:stretch;gap:0;overflow-x:visible;padding-left:4px}.path-station{flex-direction:row;align-items:center;justify-content:flex-start;gap:13px;min-width:0;max-width:none;padding:14px 0;text-align:left}.path-station:before{inset:auto auto 50% 9px;width:2px;height:100%}.path-code{margin-top:0;flex:none}.path-label{text-align:left;flex:1;-webkit-line-clamp:2}.path-state{flex:none;font-size:10px}.path-hero{padding:26px 20px 34px;border-radius:var(--radius)}.path-lead{margin-bottom:12px;gap:14px}.path-figure{text-align:left}.path-figure-num{font-size:52px}.path-figure-num span{font-size:22px}.path-next{margin:-20px 12px 0;padding:22px}.path-next-title{font-size:23px}.path-live{margin:14px 12px 0}.live-cta{padding:16px;border-radius:var(--radius);gap:13px}.path-next .btn,.path-live .btn,.live-cta .btn{width:100%;justify-content:center;margin-left:0}.roster,.roster-controls,.ce-grid,.home-row,.home-row-2{grid-template-columns:minmax(0,1fr)}.ce-editor{display:none}.ce-backdrop{display:block;position:fixed;inset:0;z-index:119;background:#1a16406b;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .22s}.ce.ce-sheet-open .ce-backdrop{opacity:1;pointer-events:auto}.ce.ce-sheet-open .ce-editor{display:block;position:fixed;left:0;right:0;bottom:0;z-index:120;height:min(88vh,760px);height:min(88dvh,760px);overflow-y:auto;overscroll-behavior:contain;border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:0;min-height:0;box-shadow:0 -20px 60px #1a164047;padding:0 18px calc(18px + env(safe-area-inset-bottom,0px));animation:sheet-up .28s cubic-bezier(.3,1,.4,1)}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}.ce-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:0;z-index:1;margin:0 -18px 4px;padding:14px 12px 12px 18px;background:var(--card);border-bottom:1px solid var(--line-soft);font-family:var(--display);font-size:15px}.ce-sheet-head .rail-toggle{width:34px;height:34px;background:var(--line-soft)}.ce-editor .ce-label:first-of-type{margin-top:12px}.ce-types{flex-wrap:wrap}.tiles,.stats{grid-template-columns:repeat(2,1fr)}.panel{padding:18px}.batch-ws{max-width:100%}.batch-ws .panel{padding:18px 16px}.learn-page-head{margin:-4px 0 12px;gap:10px}.learn-page-head h1{font-size:24px}.ac-head{padding:14px 14px 14px 12px;gap:11px;flex-wrap:wrap}.ac-copy{flex:1 1 60%}.ac-status{order:4;margin-left:49px}.ac-caret{order:3}.ac-body{padding:4px 14px 16px}.work-filters{width:100%}.work-filter{flex:1;justify-content:center;padding:7px 4px;font-size:12.5px;gap:5px;white-space:nowrap}.qc-head{flex-wrap:wrap}.qc-actions{width:100%}.qc-actions .btn{width:100%;justify-content:center}.learn-tabs{width:100%}.learn-tabs .tab{flex:1;padding:7px 6px;font-size:13px;white-space:nowrap}.cls-ws{grid-template-columns:minmax(0,1fr);gap:0;--cls-bottom: 92px;min-height:480px}.cls.rail-min .cls-ws{grid-template-columns:minmax(0,1fr)}.reader{grid-column:1}.rmod.open{min-height:0}.cls-backdrop{display:block;position:fixed;inset:0;z-index:119;background:#1a16406b;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .22s}.cls.sheet-open .cls-backdrop{opacity:1;pointer-events:auto}.rail{position:fixed;left:0;right:0;bottom:0;z-index:120;height:min(80vh,680px);height:min(80dvh,680px);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:0;box-shadow:0 -20px 60px #1a164047;transform:translateY(104%);transition:transform .28s cubic-bezier(.3,1,.4,1);padding-bottom:env(safe-area-inset-bottom,0px)}.cls.sheet-open .rail{transform:none}.rail-head{padding:14px 12px 12px 16px}.rail-toggle{width:34px;height:34px;background:var(--line-soft)}.rail-mods{display:block;overflow-y:auto;overscroll-behavior:contain}.rmod-body{overflow:visible}.reader-head{padding:14px 16px 0}.reader-pos{display:none}.reader-syl{display:inline-flex;align-items:center;gap:6px;flex:none;padding:6px 11px;border-radius:var(--pill);border:1px solid var(--stage-line);background:var(--stage-2);color:var(--parchment);font-family:var(--display);font-size:13px;font-weight:700;cursor:pointer;font-variant-numeric:tabular-nums}.reader-syl-of{color:var(--lavender);font-weight:600;opacity:.8}.reader-title{font-size:21px;margin-top:6px}.reader-tools{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:12px -16px;padding:0 16px}.reader-tools::-webkit-scrollbar{display:none}.rchip{flex:none}.reader-body{padding:18px 16px 24px}.reader-foot{display:flex;padding:10px 12px;gap:8px}.reader-foot .rmark{flex:1;justify-content:center}.rnext-title{display:none}.graded{flex-direction:column;gap:12px}.graded-body{border-left:0;border-top:1px solid var(--ok-line);padding-left:0;padding-top:12px}.sub-check-head{align-items:flex-start}.notif-menu{position:fixed;top:62px;left:12px;right:12px;width:auto;max-width:none;max-height:70vh;max-height:70dvh}}@media(max-width:640px){.cmd-overlay{padding:0;align-items:flex-end}.cmd{max-width:100%;max-height:82vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;animation:sheet-up .24s cubic-bezier(.3,1,.4,1)}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}.cmd-input-wrap{padding:16px 18px}.cmd-foot{display:none}}@media(max-width:560px){.tiles,.stats{grid-template-columns:1fr}.att-item{flex-wrap:wrap}.att-modal,.cert{max-width:100%}.list-row{flex-wrap:wrap}.list-row>.row{flex:1 1 100%;justify-content:flex-start}.prog-batch{flex-wrap:wrap;row-gap:6px}.prog-batch-name{flex:1 1 100%}.prog-batch .btn{margin-left:auto}.prog-batch-add{flex-wrap:wrap}.prog-batch-add input:not([type=date]){flex:1 1 100%}.prog-batch-add input[type=date]{flex:1 1 auto;width:auto;min-width:0}.prog-batch-add .btn{flex:0 0 auto}.panel>.table-wrap{margin-left:-18px;margin-right:-18px;padding:0 18px}.att-toolbar{flex-wrap:wrap;gap:8px}.af-top,.assign-title{flex-direction:column;align-items:stretch}.af-seg{width:100%}.af-seg button{flex:1}.af-foot{flex-direction:column;align-items:stretch}.af-actions{justify-content:flex-end}.session-row{flex-wrap:wrap}.session-info{flex-basis:60%}.grade-row,.grade-row .inline-form{flex-direction:column;align-items:stretch}.grade-row .inline-form input,.grade-score{width:100%}.cur-mod-title{font-size:13px}.quiz-review-bar{flex-direction:column;align-items:stretch}.quiz-review-bar .btn{justify-content:center}.qr-opts,.qr-why,.qr-blank{margin-left:0}.qr-opt{flex-direction:column;align-items:flex-start;gap:6px}.risk-row{flex-direction:column;align-items:stretch}.risk-row .btn{justify-content:center}}.page-enter{animation:page-in .3s cubic-bezier(.2,.7,.3,1) backwards}@keyframes page-in{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}.home-grid>section{animation:page-in .42s cubic-bezier(.2,.7,.3,1) both}.home-grid>section:nth-child(1){animation-delay:.04s}.home-grid>section:nth-child(2){animation-delay:.09s}.home-grid>section:nth-child(3){animation-delay:.14s}.home-grid>section:nth-child(4){animation-delay:.19s}.home-grid>section:nth-child(5){animation-delay:.24s}.home-grid>section:nth-child(6){animation-delay:.28s}.stat,.tile,.home-grid>section,.lib-card,.session-row,.panel{transition:transform .2s cubic-bezier(.2,.7,.3,1),box-shadow .2s,border-color .2s}.stat:hover,.tile:hover,.home-grid>section:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--violet-line)}.lib-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.session-row:hover{border-color:var(--violet-line);box-shadow:var(--shadow)}.stat:before{transition:width .28s cubic-bezier(.2,.7,.3,1)}.stat:hover:before{width:56px}.qrow{border-radius:10px;margin:0 -10px;padding-left:10px;padding-right:10px;transition:background .15s}.qrow:hover{background:var(--line-soft)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--ring);border-radius:8px}.dock-item:focus-visible{box-shadow:0 0 0 3px #f1efe880}.dock-item{position:relative}.dock-item.on{box-shadow:0 3px 10px #0000002e}.dock-item svg{transition:transform .2s cubic-bezier(.3,1.4,.5,1)}.dock-item:hover svg{transform:translateY(-1px) scale(1.06)}.dock-item.on svg{transform:none}.ico-draw{stroke-dasharray:1;stroke-dashoffset:0}.dock-item:hover .ico-draw,.dock-item.on .ico-draw,.who-menu-item:hover .ico-draw{animation:ico-draw .6s cubic-bezier(.4,0,.2,1)}.dock-item:hover .ico-draw+.ico-draw,.dock-item.on .ico-draw+.ico-draw,.who-menu-item:hover .ico-draw+.ico-draw{animation-delay:.1s}.dock-item:hover .ico-draw+.ico-draw+.ico-draw,.dock-item.on .ico-draw+.ico-draw+.ico-draw,.who-menu-item:hover .ico-draw+.ico-draw+.ico-draw{animation-delay:.2s}@keyframes ico-draw{0%{stroke-dashoffset:1;opacity:0}33%{opacity:1}to{stroke-dashoffset:0;opacity:1}}.btn{position:relative;will-change:transform}.btn:hover{box-shadow:0 4px 14px #534ab742}.btn.ghost:hover,.btn.quiet:hover,.btn.on-stage:hover{box-shadow:none}.btn:active{transform:translateY(1px) scale(.99)}input,select,textarea{transition:border-color .16s,box-shadow .16s,background .16s}input:hover:not(:disabled):not(:focus),select:hover:not(:disabled):not(:focus),textarea:hover:not(:focus){border-color:var(--violet-line)}::placeholder{color:#a9a5bf}.empty-state{padding:40px 24px}.empty-state p{max-width:42ch;line-height:1.6;margin:0}.grade-table tbody tr{transition:background .14s}.grade-table thead th{position:sticky;top:0;background:var(--card);z-index:1}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:6px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#bdb7d8;background-clip:content-box}::selection{background:#534ab733;color:var(--indigo)}.reader ::selection,.auth-hero ::selection,.path-hero ::selection{background:#afa9ec52;color:var(--parchment)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.page-enter,.home-grid>section{animation:none;opacity:1;transform:none}}.field-with-action{position:relative}.field-with-action input{padding-right:44px}.field-action{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:8px;background:none;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}.field-action:hover{background:var(--line-soft);color:var(--ink-2)}.demo-row-btn{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;border:0;background:none;font-family:var(--font);font-size:13px;color:var(--ink-2);padding:7px 9px;margin:0 -9px;border-radius:9px;cursor:pointer;text-align:left;transition:background .14s,color .14s}.demo-row-btn:hover{background:var(--violet-soft);color:var(--violet)}.demo-row-btn:hover code{color:var(--violet)}.demo-row-btn code{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge-blocked{background:var(--danger-soft);color:var(--danger)}.blockbox{background:var(--danger-soft);border:1px solid var(--danger-line);border-radius:10px;padding:12px 15px;margin:12px 0;font-size:14px;color:var(--danger-ink)}.crumb{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--ink-2);text-decoration:none;background:var(--card);border:1px solid var(--line);border-radius:var(--pill);padding:6px 14px;transition:background .15s,color .15s,border-color .15s}.crumb:hover{color:var(--violet);background:var(--violet-soft);border-color:var(--violet)}.crumb:focus-visible{outline:none;box-shadow:var(--ring)}.linklike{border:0;background:none;color:var(--brand);font:inherit;font-weight:600;cursor:pointer;padding:3px 8px;border-radius:7px;transition:background .15s}.linklike:hover{background:var(--violet-soft)}.linklike:focus-visible{outline:none;box-shadow:var(--ring)}.detail-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.detail-row:last-child{border-bottom:0}.detail-row.is-blocked{opacity:.65}.row-blocked td{opacity:.6}.detail-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-top:6px}.chart-card{display:flex;flex-direction:column;gap:12px}.donut{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.donut-center{font-family:var(--display);font-size:22px;font-weight:700;fill:var(--ink)}.donut-center-sub{font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;fill:var(--muted)}.donut-legend{display:flex;flex-direction:column;gap:6px;min-width:120px;flex:1}.donut-leg-row{display:flex;align-items:center;gap:8px;font-size:13px}.donut-swatch{width:10px;height:10px;border-radius:3px;flex:none}.donut-leg-label{color:var(--ink-2);flex:1}.donut-leg-val{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}.miniline{width:100%;height:auto;display:block}.miniline-tick{font-size:10px;fill:var(--muted)}.miniline-val{font-size:11px;font-weight:700;fill:var(--ink)}.meter{display:flex;align-items:center;gap:10px;flex:1;min-width:140px}.meter-track{flex:1;height:8px;border-radius:999px;overflow:hidden}.meter-fill{height:100%;border-radius:999px;transition:width .35s cubic-bezier(.4,0,.2,1)}.meter-val{font-size:13px;font-weight:700;color:var(--ink);min-width:38px;text-align:right;font-variant-numeric:tabular-nums}.perf-stats{display:flex;flex-direction:column;gap:14px}.perf-num{font-family:var(--display);font-size:30px;font-weight:700;color:var(--ink);line-height:1.1}.perf-sub{font-size:14px;color:var(--muted);font-weight:500;margin-left:2px}.prog-row{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}.prog-row:last-child{border-bottom:0}.prog-name{min-width:180px;font-weight:600;font-size:14px}@media(max-width:640px){.prog-row{flex-wrap:wrap}.prog-name{min-width:100%}}.chip-link{color:inherit;text-decoration:none}.chip-link:hover{color:var(--violet);text-decoration:underline}.chip-blocked{background:var(--danger-soft);border-color:var(--danger-line)}.blocked-panel{max-width:420px;text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center}.blocked-icon{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 6px;border-radius:50%;background:var(--danger-soft);color:var(--danger)}.member-list{display:flex;flex-direction:column;gap:8px}.member-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card);transition:border-color .16s,box-shadow .16s}.member-row:hover{border-color:var(--violet);box-shadow:0 2px 10px #534ab714}.member-row.is-blocked{background:var(--danger-soft);border-color:var(--danger-line)}.member-av{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;color:#fff;background:var(--avatar);flex:none}.member-av-m{background:var(--brand)}.member-id{flex:1;min-width:0}.member-name{font-weight:600;font-size:14px;color:var(--ink);text-decoration:none;display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-name:hover{color:var(--violet);text-decoration:underline}.member-tags{display:flex;gap:6px;margin-top:3px;flex-wrap:wrap}.member-actions{display:flex;gap:8px;flex:none;flex-wrap:wrap;justify-content:flex-end}@media(max-width:900px){.roster{grid-template-columns:1fr}.member-row{flex-wrap:wrap}.member-actions{width:100%;justify-content:flex-start;padding-left:46px}}.skeleton-stack{display:flex;flex-direction:column;gap:12px;margin-top:10px}.skeleton-row{height:68px;border-radius:var(--radius);background:linear-gradient(90deg,#f1f0f7 25%,#faf9fd,#f1f0f7 75%);background-size:200% 100%;animation:shimmer 1.4s infinite linear}.skeleton-row.tall{height:150px}@keyframes shimmer{to{background-position:-200% 0}}.row-click{cursor:pointer}.row-click:hover{border-color:var(--violet)}.row-click strong{transition:color .14s}.row-click:hover strong{color:var(--violet)}.route-loading{padding-top:4px}.air{margin-top:14px;padding:16px 18px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm)}.air-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.air-title{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--violet)}.air-model{font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums}.air-blocked{font-size:12.5px;color:var(--muted)}.air-wait{margin:12px 0 0;font-size:13px;color:var(--muted);line-height:1.5}.air-note{margin:8px 0 0;font-size:12.5px;color:var(--muted)}.air-stamp{margin:14px 0 0;font-size:11.5px;color:var(--faint)}.tone-ok{--air-tone: var(--ok);--air-tone-soft: var(--ok-soft);--air-tone-line: var(--ok-line);--air-tone-ink: var(--ok-ink)}.tone-warn{--air-tone: var(--warn);--air-tone-soft: var(--warn-soft);--air-tone-line: var(--warn-line);--air-tone-ink: var(--warn-ink)}.tone-danger{--air-tone: var(--danger);--air-tone-soft: var(--danger-soft);--air-tone-line: var(--danger-line);--air-tone-ink: var(--danger-ink)}.air-verdict{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:14px;padding:16px 18px;border-radius:var(--radius-sm);background:var(--air-tone-soft);border:1px solid var(--air-tone-line)}.air-figure{display:flex;align-items:baseline;gap:1px;color:var(--air-tone-ink);line-height:1}.air-figure-num{font-family:var(--display);font-size:40px;font-weight:700;letter-spacing:-.035em}.air-figure-den{font-size:15px;font-weight:600;opacity:.6}.air-verdict-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.air-band{font-family:var(--display);font-size:16px;font-weight:700;letter-spacing:-.02em;color:var(--air-tone-ink)}.air-suggest{font-size:12.5px;color:var(--air-tone-ink);opacity:.8}.air-verdict .btn{margin-left:auto}.air-meters{display:flex;flex-direction:column;gap:12px;margin-top:16px}.air-meter-top{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}.air-meter-label{font-size:13px;font-weight:600;color:var(--ink)}.air-meter-weight{font-size:11.5px;color:var(--faint)}.air-meter-val{margin-left:auto;font-size:13px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}.air-meter-raw{color:var(--muted);font-weight:500;margin-right:8px}.air-bar{height:7px;border-radius:4px;background:var(--line-soft);overflow:hidden}.air-bar-fill{height:100%;border-radius:4px;background:var(--air-tone);transition:width .4s cubic-bezier(.4,0,.2,1)}.air-flags{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.air-flags li{padding:11px 13px;border-radius:10px;background:var(--danger-soft);border:1px solid var(--danger-line)}.air-flag-name{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--danger-ink);text-transform:capitalize}.air-flag-ev{display:block;margin-top:5px;font-size:12.5px;line-height:1.55;color:var(--danger-ink);opacity:.85}.air-stage{margin-top:10px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.air-stage-head{display:flex;align-items:center;gap:10px;width:100%;padding:11px 13px;border:0;background:var(--sunken);font-family:var(--font);font-size:13.5px;cursor:pointer;text-align:left;color:var(--ink);transition:background .14s}.air-stage-head:hover{background:var(--line-soft)}.air-stage.is-open{border-color:var(--violet-line)}.air-stage-head:focus-visible{outline:none;box-shadow:inset var(--ring)}.air-caret{color:var(--muted);font-size:16px;line-height:1;transition:transform .2s;flex:none}.air-caret.up{transform:rotate(90deg)}.air-stage-title{flex:1;font-weight:600}.air-stage-score{font-weight:700;color:var(--air-tone-ink);font-variant-numeric:tabular-nums}.air-stage-body{padding:14px 15px;border-top:1px solid var(--line)}.air-summary{margin:0 0 12px;font-size:13.5px;line-height:1.6;color:var(--ink-2)}.air-criteria,.air-check{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px}.air-criteria>li{padding-top:13px;border-top:1px solid var(--line-soft)}.air-criteria>li:first-child{padding-top:0;border-top:0}.air-criterion-top{display:flex;align-items:center;gap:12px}.air-criterion{flex:1;font-size:13.5px;font-weight:600;color:var(--ink)}.air-criterion-fb{margin:5px 0 0;font-size:12.5px;line-height:1.55;color:var(--muted)}.air-steps{display:inline-flex;gap:3px;flex:none}.air-step{width:16px;height:5px;border-radius:3px;background:var(--line)}.air-step.on{background:var(--air-tone)}.air-check>li{display:flex;align-items:flex-start;gap:10px}.air-check-mark{flex:none;display:grid;place-items:center;width:18px;height:18px;margin-top:1px;border-radius:50%;font-size:10px;font-weight:700;background:var(--danger-soft);color:var(--danger)}.air-check>li.is-met .air-check-mark{background:var(--ok-soft);color:var(--ok-ink)}.air-check-item{font-size:13.5px;font-weight:600;color:var(--ink)}.air-prose{margin-top:16px;padding-left:13px;border-left:2px solid var(--violet-line)}.air-prose-top{display:flex;align-items:center;gap:10px;margin-bottom:5px}.air-kicker{font-size:10.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}.air-copy{margin-left:auto;font-size:12.5px}.air-prose p{margin:0;font-size:13.5px;line-height:1.65;color:var(--ink-2)}.air-prose-note{margin-top:6px!important;font-size:12px!important;color:var(--faint)!important}.air-caveats{list-style:none;margin:14px 0 0;padding:10px 13px;background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:10px;font-size:12.5px;line-height:1.6;color:var(--warn-ink)}.air-caveats li+li{margin-top:4px}@media(max-width:620px){.air{padding:14px}.air-verdict{gap:14px}.air-verdict .btn{margin-left:0;width:100%;justify-content:center}}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:38px 24px;gap:2px}.empty-mark{display:grid;place-items:center;width:40px;height:40px;margin-bottom:12px;border-radius:50%;background:var(--violet-soft);color:var(--violet)}.empty-dot{width:9px;height:9px;border-radius:50%;background:currentColor;opacity:.55}.empty-title{margin:0;font-size:14.5px;font-weight:600;color:var(--ink-2)}.empty-hint{margin:0;font-size:13px;line-height:1.55;color:var(--muted);max-width:42ch}.empty-action{margin-top:14px}.empty.is-inline{flex-direction:row;align-items:center;text-align:left;padding:16px 2px;gap:12px}.empty.is-inline .empty-mark{width:30px;height:30px;margin-bottom:0;flex:none}.empty.is-inline .empty-mark svg{width:15px;height:15px}.empty.is-inline .empty-title{font-size:13.5px}.empty.is-inline .empty-hint{font-size:12.5px}.empty.is-inline>p{margin:0}.empty.is-inline .empty-action{margin:0 0 0 auto}@media(max-width:560px){.empty.is-inline{flex-wrap:wrap}.empty.is-inline .empty-action{margin-left:0}}.loading-rows{display:flex;flex-direction:column;gap:9px;padding:8px 0}.loading-row{height:15px;border-radius:7px}.loading-rows.is-inline .loading-row{height:12px}.sub-reqs{margin-bottom:14px;padding:13px 15px;background:var(--sunken);border:1px solid var(--sunken-line);border-radius:11px}.sub-reqs-lead{margin:0 0 8px;font-size:10.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--muted)}.sub-reqs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.sub-reqs-list li{display:flex;align-items:flex-start;gap:9px;font-size:13px;line-height:1.55;color:var(--ink-2)}.sub-reqs-list strong{color:var(--ink);font-weight:600}.sub-req-tick{flex:none;width:11px;height:11px;margin-top:5px;border-radius:50%;border:2px solid var(--violet-line);box-sizing:border-box}.sub-actions{display:flex;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}.sub-actions-note{font-size:12.5px;color:var(--muted)}@media(max-width:560px){.sub-actions .btn{width:100%;justify-content:center}}.ce-import-title{display:inline-flex;align-items:center;gap:8px}.tempbox>.tempbox-ic{display:inline-block;vertical-align:-2px;margin-right:5px}.notif-empty .empty.is-inline{padding:4px 0}.lv-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:9px}.lv-batch{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.lv-batch .muted{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prog-batches{display:grid;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft)}.prog-batch{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;background:var(--line-soft)}.prog-batch-name{font-weight:600;flex:1;min-width:0}.prog-batch .btn{margin-left:auto}.prog-batch-none{margin:0;font-size:13px}.prog-batch-add{display:flex;gap:8px;align-items:center;margin-top:6px}.prog-batch-add input{width:auto;margin-top:0;padding:8px 10px;border:1px dashed var(--line);border-radius:8px;font-size:13px;font-family:var(--font);background:transparent}.prog-batch-add input:not([type=date]){flex:1 1 auto;min-width:0}.prog-batch-add input[type=date]{flex:0 0 auto;width:150px;color:var(--muted)}.prog-batch-add .btn{flex:0 0 auto;white-space:nowrap}.vdo-picker{width:min(560px,100%);max-height:80vh;display:flex;flex-direction:column}.vdo-picker-list{margin-top:12px;overflow-y:auto;display:grid;gap:6px}.vdo-picker-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;text-align:left;background:none;border:1px solid var(--line);border-radius:9px;font:inherit;color:inherit;cursor:pointer}.vdo-picker-row:hover:not(:disabled){border-color:var(--violet);background:var(--line-soft)}.vdo-picker-row:disabled{opacity:.55;cursor:not-allowed}.vdo-picker-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-row{justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-soft)}.device-row:last-of-type{border-bottom:0}.device-row .muted{font-size:12.5px;margin-top:2px}.device-tag{margin-left:8px;padding:2px 8px;border-radius:var(--pill);border:1px solid var(--line);background:var(--line-soft);font-size:11.5px;font-weight:600;color:var(--muted);white-space:nowrap}
