:root{--c-primary: #3B5B74;--c-primary-hover: #2F4D64;--c-primary-press: #27425A;--c-primary-tint: #EAF0F5;--c-primary-tint-2: #D5E1EA;--c-on-primary: #ffffff;--c-bg: #f0f2f5;--c-surface: #ffffff;--c-surface-2: #f8fafc;--c-text: #1e293b;--c-text-2: #475569;--c-muted: #5f6f84;--c-border: #e2e8f0;--c-border-strong: #cbd5e1;--c-ctl-border: #6B7F94;--c-ctl-border-hover: #556A80;--c-row-hover: #f8fafc;--c-quiet-hover: #f1f5f9;--c-disabled-bg: #f1f5f9;--c-disabled-text: #556274;--c-disabled-border: #e2e8f0;--c-focus: #1D4ED8;--c-link: #3B5B74;--c-link-hover: #27425A;--c-scrim: rgba(15, 23, 42, .5);--c-inverse-bg: #1e293b;--c-inverse-text: #f8fafc;--c-accent: #f59e0b;--c-accent-2: #fbbf24;--c-accent-3: #fcd34d;--c-accent-text: #92400e;--c-cream: #fffbf0;--c-brand-navy: #1e3a5f;--c-brand-navy-deep: #0f172a;--c-danger: #b91c1c;--c-danger-border: #dc2626;--c-danger-bg: #fef2f2;--c-danger-fill: #fee2e2;--c-danger-fill-hover: #fecaca;--c-danger-fill-text: #991b1b;--c-danger-fill-border: #b91c1c;--s-ok-bg: #f0fdf4;--s-ok-text: #166534;--s-ok-border: #bbf7d0;--s-ok-icon: #15803d;--s-warn-bg: #fffbeb;--s-warn-text: #92400e;--s-warn-border: #fde68a;--s-warn-icon: #b45309;--s-bad-bg: #fef2f2;--s-bad-text: #b91c1c;--s-bad-border: #fecaca;--s-bad-icon: #b91c1c;--s-neu-bg: #f1f5f9;--s-neu-text: #475569;--s-neu-border: #e2e8f0;--s-neu-icon: #475569;--s-info-bg: #EAF0F5;--s-info-text: #2F4D64;--s-info-border: #D5E1EA;--s-info-icon: #3B5B74;--s-ok-strong: #15803d;--s-warn-strong: #b45309;--s-bad-strong: #b91c1c;--font: "Rubik", "Segoe UI", Arial, sans-serif;--fw-regular: 400;--fw-medium: 500;--fs-xs: 12px;--fs-sm: 14px;--fs-md: 16px;--fs-lg: 18px;--fs-xl: 20px;--fs-2xl: 24px;--fs-3xl: 28px;--fs-4xl: 32px;--fs-num: 40px;--lh: 1.6;--lh-tight: 1.3;--sp-0: 0;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-12: 48px;--r-sm: 8px;--r-ctl: 12px;--r-card: 16px;--r-pill: 999px;--ctl-h: 44px;--icon: 20px;--icon-lg: 24px;--shadow-none: none;--shadow-float: 0 8px 30px rgba(15, 23, 42, .12);--focus-ring: 0 0 0 3px #1D4ED8;--dur-fast: .15s;--dur: .2s;--dur-pop: .16s;--dur-spin: .9s;--ease: cubic-bezier(.2, 0, 0, 1);--z-sticky: 100;--z-nav: 900;--z-menu: 100050;--z-dialog: 100000;--z-toast: 100100}@media(max-width:480px){:root{--fs-num: 32px}}:root{--chart-1: #1e3a5f;--chart-2: #d97706;--chart-3: #334e73;--chart-4: #f59e0b;--chart-5: #64748b;--chart-6: #1e293b;--chart-ok: #15803d;--chart-warn: #b45309;--chart-bad: #b91c1c;--chart-grid: #e2e8f0;--chart-text: #475569}:root{--ad-primary: var(--p-amber-500);--ad-primary-hover: var(--p-amber-600);--ad-primary-light: var(--p-cream);--ad-primary-ring: var(--p-amber-500-a25);--ad-primary-text: var(--p-amber-800);--ad-primary-hover-text: var(--p-amber-900);--ad-bg: var(--p-page-bg);--ad-card: var(--p-white);--ad-text: var(--p-slate-800);--ad-text-secondary: var(--p-slate-600);--ad-text-muted: var(--p-slate-500);--ad-border: var(--p-slate-200);--ad-radius-card: 20px;--ad-radius-input: 12px;--ad-radius-btn: var(--r-ctl);--ad-shadow: 0 2px 12px var(--p-black-a6);--ad-shadow-lg: 0 8px 30px var(--p-black-a10);--ad-success: var(--p-green-500);--ad-warning: var(--p-amber-500);--ad-danger: var(--p-red-500);--ad-danger-text: var(--p-red-700);--ad-info: var(--p-blue-500);--ad-info-text: var(--p-blue-700);--sd-primary: #0d64f4;--sd-primary-hover: var(--c-primary-hover);--sd-on-primary: var(--c-on-primary);--sd-primary-light: var(--p-blue-50);--sd-primary-ring: var(--p-blue-500-a25);--sd-primary-text: var(--p-blue-700);--sd-bg: var(--p-page-bg);--sd-card: var(--p-white);--sd-text: var(--p-slate-800);--sd-text-secondary: var(--p-slate-600);--sd-text-muted: #606f85;--sd-border: var(--p-slate-200);--sd-ctl-border: var(--c-ctl-border);--sd-radius-card: 20px;--sd-radius-input: 12px;--sd-radius-btn: var(--r-ctl);--sd-shadow: 0 2px 12px var(--p-black-a6);--sd-shadow-lg: 0 8px 30px var(--p-black-a10);--sd-grade-excellent: #117f3a;--sd-grade-excellent-bg: var(--p-green-100);--sd-grade-good: #147739;--sd-grade-good-bg: var(--p-green-200);--sd-grade-warning: #a55a05;--sd-grade-warning-bg: var(--p-amber-100);--sd-grade-fail: #cc2121;--sd-grade-fail-bg: var(--p-red-100);--sd-grade-missing: #686e7c;--sd-grade-missing-bg: var(--p-gray-100);--sd-success: var(--p-green-500);--sd-warning: var(--p-amber-500);--sd-warning-text: #b25209;--sd-danger: var(--p-red-500);--sd-danger-text: var(--p-red-700);--sd-info: #0d64f4;--sd-focus: var(--c-focus);--pd-danger-text: var(--p-red-700);--primary-text: var(--p-violet-700);--danger-text: var(--p-red-700);--warning-text: var(--p-amber-700);--bb-navy: var(--p-navy-700);--bb-navy-deep: var(--p-slate-900);--bb-orange: var(--p-amber-500);--bb-orange-text: var(--p-amber-800);--bb-cream: var(--p-cream);--bb-bg: var(--p-page-bg);--bb-surface: var(--p-white);--bb-text: var(--p-slate-800);--bb-text-2: var(--p-slate-600);--bb-text-3: var(--p-slate-500);--bb-border: var(--p-slate-200);--bb-border-strong: var(--c-ctl-border);--bb-focus: var(--c-focus);--bb-danger: var(--p-red-700);--bb-success: var(--p-green-800);--bb-font: var(--font);--bb-fs-body: var(--fs-md);--bb-fs-small: var(--fs-sm);--bb-fs-h2: var(--fs-lg);--bb-fs-h1: var(--fs-3xl);--bb-fs-num: var(--fs-num);--bb-r-card: 16px;--bb-r-ctl: 12px;--bb-shadow-float: 0 8px 30px var(--p-slate-900-a12);--bb-ctl-h: var(--ctl-h);--splash-ink: var(--p-blue-88);--splash-ink-soft: var(--p-slate-68);--splash-gold: var(--p-amber-53-2);--splash-gold-soft: var(--p-amber-19-2);--splash-dots: var(--p-blue-74-2)}@media(max-width:480px){:root{--bb-fs-h1: var(--fs-2xl)}}.admin-home{--ah-navy: var(--p-navy-700);--ah-navy-deep: var(--p-slate-900)}.parent-dashboard{--pd-primary: var(--p-emerald-500);--pd-primary-hover: var(--p-emerald-600);--pd-primary-light: var(--p-green-50);--pd-primary-ring: var(--p-emerald-500-a25);--pd-bg: var(--p-page-bg);--pd-card: var(--p-white);--pd-text: var(--p-slate-800);--pd-text-secondary: var(--p-slate-600);--pd-text-muted: var(--p-slate-500);--pd-border: var(--p-slate-200);--pd-radius-card: 20px;--pd-radius-input: 12px;--pd-radius-btn: var(--r-ctl);--pd-shadow: 0 2px 12px var(--p-black-a6);--pd-shadow-lg: 0 8px 30px var(--p-black-a10);--pd-success: var(--p-green-500);--pd-warning: var(--p-amber-500);--pd-danger: var(--p-red-500)}.teacher-panel{--primary: var(--p-violet-500);--primary-dark: var(--p-violet-600);--primary-light: var(--p-violet-50);--primary-ring: var(--p-violet-500-a10);--bg: var(--p-page-bg);--card: var(--p-white);--text: var(--p-gray-800);--text-secondary: var(--p-gray-600);--text-muted: var(--p-gray-500);--border: var(--p-gray-200);--border-light: var(--p-gray-100);--radius-card: 20px;--radius-btn: var(--r-ctl);--radius-input: 12px;--shadow: 0 2px 12px var(--p-black-a6);--danger: var(--p-red-500);--danger-light: var(--p-red-50);--success: var(--p-emerald-500);--success-light: var(--p-emerald-50);--warning: var(--p-amber-500);--warning-light: var(--p-amber-50);--info: var(--p-blue-500);--info-light: var(--p-blue-50);--cyan: var(--p-cyan-500);--cyan-light: var(--p-cyan-50)}.settings-tab{--set-acc: var(--p-indigo-44);--set-acc-hover: var(--p-indigo-52);--set-acc-light: var(--p-indigo-50);--set-acc-ring: var(--p-indigo-44-a25);--hue-neutral-light: var(--p-slate-100);--hue-info-light: var(--p-blue-50);--hue-success-light: var(--p-green-50);--hue-warning-light: var(--p-cream);--hue-danger-light: var(--p-red-50);--set-turq: var(--p-cyan-65);--set-turq-light: var(--p-teal-09-2)}.report-card{--rc-color: var(--p-slate-500);--rc-bg: var(--p-slate-500-a12)}.report-card-red{--rc-color: var(--rc-red)}.report-card-blue{--rc-color: var(--rc-blue)}.report-card-orange{--rc-color: var(--rc-orange)}.report-card-green{--rc-color: var(--rc-green)}.report-card-violet{--rc-color: var(--rc-violet)}.report-card-amber{--rc-color: var(--rc-amber)}.report-card-teal{--rc-color: var(--rc-teal)}.report-card-indigo{--rc-color: var(--rc-indigo)}.report-card-purple{--rc-color: var(--rc-purple)}.sar-item-subject,.sar-item-exam,.sar-item-smart{--sar-bg: var(--p-blue-50);--sar-border: var(--p-blue-10-2);--sar-ink: var(--p-blue-59-3)}.dt-table tbody tr{--dt-row-bg: var(--p-white)}.dt-striped tbody tr:nth-child(2n){--dt-row-bg: var(--p-slate-50)}.dt-table tbody tr:hover{--dt-row-bg: var(--p-blue-05-2)}.ma-report{--dt-th-bg: var(--p-gray-100)}.sps{--sps-band: var(--sd-primary-light, var(--p-blue-50));--sps-green: var(--sd-grade-excellent-bg, var(--p-green-100));--sps-red: var(--sd-grade-fail-bg, var(--p-red-100));--sps-blue: var(--p-blue-100);--sps-gray: var(--sd-grade-missing-bg, var(--p-gray-100));--sps-subject: var(--p-slate-100);--sps-row-alt: var(--p-slate-50)}.student-panel.sd-theme-ocean{--sd-primary: #006fa9;--sd-primary-hover: #075985;--sd-on-primary: #ffffff;--sd-primary-text: var(--sd-primary);--sd-primary-light: var(--p-ocean-100);--sd-primary-ring: var(--p-ocean-600-a25);--sd-bg: var(--p-blue-05-3);--sd-card: var(--p-white);--sd-border: var(--p-sky-15);--sd-ctl-border: #4f7f9c;--sd-text: var(--p-ocean-900);--sd-text-secondary: #00779e;--sd-text-muted: #606f85;--sd-info: #006fa9;--sd-grade-excellent: #117f3a;--sd-grade-good: #147739;--sd-grade-warning: #a55a05;--sd-grade-fail: #cc2121;--sd-grade-missing: #686e7c;--sd-warning-text: #b25209}.student-panel.sd-theme-blossom{--sd-primary: var(--p-pink-700);--sd-primary-hover: #831843;--sd-on-primary: #ffffff;--sd-primary-text: var(--sd-primary);--sd-primary-light: var(--p-pink-100);--sd-primary-ring: var(--p-pink-700-a25);--sd-bg: var(--p-pink-50);--sd-card: var(--p-white);--sd-border: var(--p-pink-300);--sd-ctl-border: #a3577a;--sd-text: var(--p-rose-83);--sd-text-secondary: var(--p-pink-700);--sd-text-muted: #617087;--sd-info: var(--p-pink-700);--sd-grade-excellent: #11813b;--sd-grade-warning: #a75c05;--sd-grade-fail: #cb2121;--sd-grade-missing: #69707d;--sd-grade-good: #147739}.student-panel.sd-theme-night{--sd-primary: #65a8fa;--sd-primary-hover: #bfdbfe;--sd-on-primary: #0f172a;--sd-primary-text: var(--sd-primary);--sd-primary-light: var(--p-blue-400-a15);--sd-primary-ring: var(--p-blue-400-a25);--sd-bg: var(--p-slate-900);--sd-card: var(--p-slate-800);--sd-border: var(--p-slate-700);--sd-ctl-border: #7c8ea6;--sd-text: var(--p-slate-200);--sd-text-secondary: var(--p-slate-400);--sd-text-muted: #8290a5;--sd-info: var(--p-blue-400);--sd-focus: #93c5fd;--sd-grade-excellent: #1ccb5c;--sd-grade-excellent-bg: var(--p-green-600-a20);--sd-grade-good: #22c85f;--sd-grade-good-bg: var(--p-green-700-a20);--sd-grade-warning: #f99521;--sd-grade-warning-bg: var(--p-amber-600-a20);--sd-grade-fail: #ee9696;--sd-grade-fail-bg: var(--p-red-600-a20);--sd-grade-missing: #acb1b9;--sd-grade-missing-bg: var(--p-gray-500-a20);--sd-warning-text: #e76b0c;--sd-danger-text: #e86565;--sd-danger: #f15e5e;--sd-success: var(--p-green-500);--sd-warning: var(--p-amber-500);--c-primary: #93c5fd;--c-primary-hover: #bfdbfe;--c-primary-press: #dbeafe;--c-primary-tint: #1e3a5f;--c-primary-tint-2: #27486f;--c-on-primary: #0f172a;--c-surface: #1e293b;--c-surface-2: #273449;--c-bg: #0f172a;--c-text: #e2e8f0;--c-text-2: #cbd5e1;--c-muted: #a3b1c4;--c-border: #334155;--c-ctl-border: #7c8ea6;--c-ctl-border-hover: #a3b1c4;--c-row-hover: #273449;--c-quiet-hover: #273449;--c-disabled-bg: #273449;--c-disabled-text: #a3b1c4;--c-focus: #93c5fd;--c-link: #93c5fd;--c-link-hover: #bfdbfe;--c-danger: #fca5a5;--c-danger-border: #f87171;--c-danger-bg: #450a0a;--s-ok-bg: #14532d;--s-ok-text: #bbf7d0;--s-ok-border: #166534;--s-ok-icon: #86efac;--s-warn-bg: #422006;--s-warn-text: #fde68a;--s-warn-border: #854d0e;--s-warn-icon: #fcd34d;--s-bad-bg: #450a0a;--s-bad-text: #fecaca;--s-bad-border: #991b1b;--s-bad-icon: #fca5a5;--s-neu-bg: #334155;--s-neu-text: #e2e8f0;--s-neu-border: #475569;--s-neu-icon: #cbd5e1;--s-info-bg: #1e3a5f;--s-info-text: #dbeafe;--s-info-border: #27486f;--s-info-icon: #93c5fd;--s-ok-strong: #86efac;--s-warn-strong: #fcd34d;--s-bad-strong: #fca5a5;--sd-night-stat-1: rgba(59, 130, 246, .15);--sd-night-stat-2: rgba(34, 197, 94, .15);--sd-night-stat-3: rgba(239, 68, 68, .15);--sd-night-stat-4: rgba(139, 92, 246, .15);--sd-night-stat-5: rgba(245, 158, 11, .15);--sd-night-notif: rgba(96, 165, 250, .1)}:root{--p-amber-05: #fef5e7;--p-amber-06: #fff3e0;--p-amber-15: #ffe0b2;--p-amber-19: #f5d9a8;--p-amber-19-2: #e8d9b6;--p-amber-25: #ffcc80;--p-amber-35: #ffb74d;--p-amber-48: #e67e22;--p-amber-50: #fffbeb;--p-amber-52: #f57c00;--p-amber-53: #ef6c00;--p-amber-53-2: #b8893a;--p-amber-79: #6d4c00;--p-amber-100: #fef3c7;--p-amber-200: #fde68a;--p-amber-300: #fcd34d;--p-amber-400: #fbbf24;--p-amber-500: #f59e0b;--p-amber-500-a25: rgba(245, 158, 11, .25);--p-amber-600: #d97706;--p-amber-600-a20: rgba(217, 119, 6, .2);--p-amber-700: #b45309;--p-amber-800: #92400e;--p-amber-900: #78350f;--p-black-a5: rgba(0, 0, 0, .05);--p-black-a6: rgba(0, 0, 0, .06);--p-black-a8: rgba(0, 0, 0, .08);--p-black-a9: rgba(0, 0, 0, .09);--p-black-a10: rgba(0, 0, 0, .1);--p-black-a12: rgba(0, 0, 0, .12);--p-black-a14: rgba(0, 0, 0, .14);--p-black-a15: rgba(0, 0, 0, .15);--p-black-a18: rgba(0, 0, 0, .18);--p-black-a20: rgba(0, 0, 0, .2);--p-black-a25: rgba(0, 0, 0, .25);--p-black-a30: rgba(0, 0, 0, .3);--p-black-a35: rgba(0, 0, 0, .35);--p-black-a40: rgba(0, 0, 0, .4);--p-black-a50: rgba(0, 0, 0, .5);--p-black-a70: rgba(0, 0, 0, .7);--p-black-a80: rgba(0, 0, 0, .8);--p-blue-05: #e7f3ff;--p-blue-05-2: #eaf1f8;--p-blue-05-3: #e8f4fd;--p-blue-07: #e2edf6;--p-blue-09: #cfe2ff;--p-blue-10: #cce5ff;--p-blue-10-2: #d8e3f3;--p-blue-11: #cfe3f7;--p-blue-13: #c5dff5;--p-blue-14: #bbdefb;--p-blue-14-2: #b8daff;--p-blue-15: #b3d9ff;--p-blue-23: #90caf9;--p-blue-39: #42a5f5;--p-blue-39-2: #4285f4;--p-blue-43: #4a90d9;--p-blue-43-a10: rgba(74, 144, 217, .1);--p-blue-49: #1e88e5;--p-blue-49-2: #1a73e8;--p-blue-50: #eff6ff;--p-blue-54: #1976d2;--p-blue-54-a25: rgba(25, 118, 210, .25);--p-blue-58: #1565c0;--p-blue-59: #1a56b5;--p-blue-59-2: #1a6fb5;--p-blue-59-3: #43648f;--p-blue-59-a6: rgba(26, 111, 181, .06);--p-blue-66: #0d47a1;--p-blue-67: #334e73;--p-blue-69: #084298;--p-blue-74: #004085;--p-blue-74-2: #1a3a6b;--p-blue-79: #0d3a5e;--p-blue-84: #0a2a4a;--p-blue-88: #0f1b2d;--p-blue-88-a18: rgba(15, 27, 45, .18);--p-blue-100: #dbeafe;--p-blue-200: #bfdbfe;--p-blue-300: #93c5fd;--p-blue-400: #60a5fa;--p-blue-400-a15: rgba(96, 165, 250, .15);--p-blue-400-a25: rgba(96, 165, 250, .25);--p-blue-500: #3b82f6;--p-blue-500-a25: rgba(59, 130, 246, .25);--p-blue-700: #1d4ed8;--p-blue-800: #1e40af;--p-blue-900: #1e3a8a;--p-bs-cyan: #17a2b8;--p-bs-gray: #6c757d;--p-bs-green: #28a745;--p-bs-green-bg: #d4edda;--p-bs-red: #dc3545;--p-bs-red-bg: #f8d7da;--p-bs-yellow: #ffc107;--p-bs-yellow-bg: #fff3cd;--p-cream: #fffbf0;--p-cyan-12: #d1ecf1;--p-cyan-50: #ecfeff;--p-cyan-65: #0ea5a5;--p-cyan-69: #117a8b;--p-cyan-75: #0e6574;--p-cyan-79: #0c5460;--p-cyan-500: #06b6d4;--p-emerald-06: #eaf7ee;--p-emerald-07: #e6f4ea;--p-emerald-18: #bfe3c9;--p-emerald-50: #ecfdf5;--p-emerald-58: #27ae60;--p-emerald-500: #10b981;--p-emerald-500-a25: rgba(16, 185, 129, .25);--p-emerald-600: #059669;--p-emerald-800: #065f46;--p-fuchsia-07: #f3e5f5;--p-fuchsia-29: #ce93d8;--p-fuchsia-62: #7b1fa2;--p-fuchsia-62-a4: rgba(123, 31, 162, .035);--p-gray-07: #eeeeee;--p-gray-09: #e8e8e8;--p-gray-12: #e0e0e0;--p-gray-13: #dddddd;--p-gray-15: #d9d9d9;--p-gray-18: #d0d0d0;--p-gray-20: #cccccc;--p-gray-25: #c0c0c0;--p-gray-26: #bdbdbd;--p-gray-27: #bbbbbb;--p-gray-33: #aaaaaa;--p-gray-37: #a0a0a0;--p-gray-40: #999999;--p-gray-47: #888888;--p-gray-50: #f9fafb;--p-gray-50-a5: rgba(249, 250, 251, .05);--p-gray-50-a8: rgba(249, 250, 251, .08);--p-gray-50-a10: rgba(249, 250, 251, .1);--p-gray-50-a12: rgba(249, 250, 251, .12);--p-gray-50-a15: rgba(249, 250, 251, .15);--p-gray-50-a20: rgba(249, 250, 251, .2);--p-gray-50-a28: rgba(249, 250, 251, .28);--p-gray-50-a30: rgba(249, 250, 251, .3);--p-gray-50-a50: rgba(249, 250, 251, .5);--p-gray-50-a60: rgba(249, 250, 251, .6);--p-gray-50-a70: rgba(249, 250, 251, .7);--p-gray-50-a90: rgba(249, 250, 251, .9);--p-gray-50-a94: rgba(249, 250, 251, .94);--p-gray-50-a97: rgba(249, 250, 251, .97);--p-gray-53: #777777;--p-gray-56: #6f6f6f;--p-gray-60: #666666;--p-gray-67: #555555;--p-gray-73: #444444;--p-gray-80: #333333;--p-gray-87: #212121;--p-gray-90: #1a1a1a;--p-gray-100: #f3f4f6;--p-gray-200: #e5e7eb;--p-gray-300: #d1d5db;--p-gray-400: #9ca3af;--p-gray-500: #6b7280;--p-gray-500-a20: rgba(107, 114, 128, .2);--p-gray-600: #4b5563;--p-gray-700: #374151;--p-gray-800: #1f2937;--p-gray-800-a50: rgba(31, 41, 55, .5);--p-gray-900: #111827;--p-gray-900-a14: rgba(17, 24, 39, .14);--p-gray-900-a30: rgba(17, 24, 39, .3);--p-green-06: #f1f8e9;--p-green-06-2: #e8f5e9;--p-green-08: #e6efe6;--p-green-16: #c8e6c9;--p-green-17: #c3e6cb;--p-green-26: #a5d6a7;--p-green-43: #66bb6a;--p-green-50: #f0fdf4;--p-green-55: #43a047;--p-green-61: #388e3c;--p-green-66: #2e7d32;--p-green-66-a25: rgba(46, 125, 50, .25);--p-green-69: #1e7e34;--p-green-76: #1b5e20;--p-green-79: #155724;--p-green-100: #dcfce7;--p-green-200: #bbf7d0;--p-green-300: #86efac;--p-green-500: #22c55e;--p-green-600: #16a34a;--p-green-600-a20: rgba(22, 163, 74, .2);--p-green-700: #15803d;--p-green-700-a20: rgba(21, 128, 61, .2);--p-green-800: #166534;--p-indigo-01: #f8f9ff;--p-indigo-06: #e8eaf6;--p-indigo-09: #d0d7ff;--p-indigo-16: #c5cae9;--p-indigo-36: #7986cb;--p-indigo-44: #5c6bc0;--p-indigo-44-a15: rgba(92, 107, 192, .15);--p-indigo-44-a20: rgba(92, 107, 192, .2);--p-indigo-44-a25: rgba(92, 107, 192, .25);--p-indigo-44-a30: rgba(92, 107, 192, .3);--p-indigo-44-a40: rgba(92, 107, 192, .4);--p-indigo-50: #eef2ff;--p-indigo-52: #3f51b5;--p-indigo-55: #3949ab;--p-indigo-55-a40: rgba(57, 73, 171, .4);--p-indigo-55-a55: rgba(57, 73, 171, .55);--p-indigo-63: #283593;--p-indigo-83: #1e1e3a;--p-indigo-87-a10: rgba(20, 24, 46, .1);--p-indigo-87-a16: rgba(20, 24, 46, .16);--p-indigo-92-a85: rgba(10, 10, 30, .85);--p-indigo-100: #e0e7ff;--p-indigo-200: #c7d2fe;--p-indigo-400: #818cf8;--p-indigo-500: #6366f1;--p-indigo-500-a8: rgba(99, 102, 241, .08);--p-indigo-600: #4f46e5;--p-indigo-700: #4338ca;--p-indigo-800: #3730a3;--p-lime-500: #84cc16;--p-md-green: #4caf50;--p-md-orange: #ff9800;--p-md-purple: #9c27b0;--p-md-red: #f44336;--p-navy-700: #1e3a5f;--p-ocean-100: #caf0f8;--p-ocean-500: #0096c7;--p-ocean-600: #0077b6;--p-ocean-600-a25: rgba(0, 119, 182, .25);--p-ocean-900: #03045e;--p-orange-43: #ff5722;--p-orange-50: #fff7ed;--p-orange-55: #e65100;--p-orange-200: #fed7aa;--p-orange-300: #fdba74;--p-orange-400: #fb923c;--p-orange-600: #ea580c;--p-orange-700: #c2410c;--p-orange-800: #9a3412;--p-page-bg: #f0f2f5;--p-pink-50: #fdf2f8;--p-pink-100: #fce7f3;--p-pink-300: #f9a8d4;--p-pink-500: #ec4899;--p-pink-700: #be185d;--p-pink-700-a25: rgba(190, 24, 93, .25);--p-purple-06: #ede7f6;--p-purple-06-2: #efe8f7;--p-purple-07: #ece3f5;--p-purple-07-2: #eee6f4;--p-purple-07-3: #f0e5f7;--p-purple-09: #e7e3ec;--p-purple-13: #e0d3ea;--p-purple-14: #d9d1e6;--p-purple-16: #d9c6e6;--p-purple-44: #8b7aa3;--p-purple-50: #faf5ff;--p-purple-55: #7a4a9e;--p-purple-56: #6a4c93;--p-purple-65: #6a1b9a;--p-purple-69: #4a148c;--p-purple-100: #f3e8ff;--p-purple-200: #e9d5ff;--p-purple-600: #9333ea;--p-red-05: #fce8e6;--p-red-13: #f4c7cc;--p-red-13-2: #f5c6cb;--p-red-14: #f5c2c7;--p-red-23: #ef9a9a;--p-red-37: #ef5350;--p-red-50: #fef2f2;--p-red-53: #c62828;--p-red-68: #842029;--p-red-72: #721c24;--p-red-100: #fee2e2;--p-red-200: #fecaca;--p-red-300: #fca5a5;--p-red-500: #ef4444;--p-red-600: #dc2626;--p-red-600-a20: rgba(220, 38, 38, .2);--p-red-700: #b91c1c;--p-red-800: #991b1b;--p-red-900: #7f1d1d;--p-rose-04: #ffebee;--p-rose-06: #fce4ec;--p-rose-50: #fff1f2;--p-rose-83: #500724;--p-rose-200: #fecdd3;--p-sky-06: #e8f4f8;--p-sky-09: #d4edfc;--p-sky-15: #bae0f5;--p-sky-50: #f0f9ff;--p-sky-100: #e0f2fe;--p-slate-03: #f7f5fb;--p-slate-03-2: #f4fbf6;--p-slate-11: #dee2e6;--p-slate-16: #cfd8dc;--p-slate-20: #c8ccd0;--p-slate-25: #b8bcc4;--p-slate-29: #adb5bd;--p-slate-43: #8a8f98;--p-slate-47: #7f8c8d;--p-slate-50: #f8fafc;--p-slate-54: #607d8b;--p-slate-54-2: #667085;--p-slate-63: #666655;--p-slate-68: #3e4c63;--p-slate-69: #495057;--p-slate-76: #2c3e50;--p-slate-77: #2a2a4a;--p-slate-85: #212529;--p-slate-100: #f1f5f9;--p-slate-200: #e2e8f0;--p-slate-300: #cbd5e1;--p-slate-400: #94a3b8;--p-slate-500: #64748b;--p-slate-500-a12: rgba(100, 116, 139, .12);--p-slate-600: #475569;--p-slate-700: #334155;--p-slate-800: #1e293b;--p-slate-900: #0f172a;--p-slate-900-a12: rgba(15, 23, 42, .12);--p-slate-900-a35: rgba(15, 23, 42, .35);--p-slate-900-a55: rgba(15, 23, 42, .55);--p-teal-09: #e0f2f1;--p-teal-09-2: #dbf3f2;--p-teal-60: #26a69a;--p-teal-73: #00897b;--p-teal-79: #00695c;--p-teal-500: #14b8a6;--p-violet-16: #d1c4e9;--p-violet-26: #b39ddb;--p-violet-29: #b0a4c8;--p-violet-49: #6f42c1;--p-violet-50: #f5f3ff;--p-violet-100: #ede9fe;--p-violet-300: #c4b5fd;--p-violet-500: #8b5cf6;--p-violet-500-a10: rgba(139, 92, 246, .1);--p-violet-600: #7c3aed;--p-violet-700: #6d28d9;--p-yellow-06: #fff8e1;--p-yellow-15: #f0e6c0;--p-yellow-19: #ffe69c;--p-yellow-25: #ffe082;--p-yellow-35: #e0c36a;--p-yellow-50: #fefce8;--p-yellow-62: #b8860b;--p-yellow-73: #856404;--p-yellow-700: #a16207;--p-navy-logo: #1e2a44;--p-white: #ffffff;--p-gray-00-a25: rgba(255, 255, 255, .25);--p-violet-58: #5a32a3;--p-green-51-a20: rgba(76, 175, 80, .2);--p-yellow-14: #ffeeba;--p-blue-49-2-t: #166bda;--p-gray-47-t: #6b6b6b;--p-md-green-t: #367b38;--p-gray-40-t: #6b6b6b;--p-amber-500-t: #996206;--p-gray-33-t: #6b6b6b;--p-bs-gray-t: #666f76;--p-green-500-t: #167f3d;--p-blue-47: #2563eb;--p-blue-05-4: #e8f0fe;--p-blue-06: #e3f2fd;--p-yellow-17: #ffeaa7;--p-amber-29: #fdcb6e;--p-amber-49: #f39c12;--p-amber-59: #d35400;--p-blue-46: #2196f3;--p-purple-10: #e7d5f7;--p-purple-49: #6610f2;--p-blue-07-2: #e9ecef;--p-red-10: #ffcdd2;--p-black-a4: rgba(0, 0, 0, .04);--p-slate-06: #f0f4f8}:root{--tab-bar-bg: var(--p-white);--tab-bar-shadow: 0 2px 12px var(--p-black-a6);--tab-text: var(--p-slate-600);--tab-hover-bg: var(--p-cream);--tab-cream-bg: var(--p-cream);--tab-cream-text: var(--p-orange-800);--tab-cream-line: var(--p-amber-500);--tab-fill-orange: #a56a07;--tab-fill-blue: #1e6ff5;--tab-fill-blue-deep: #1565c0;--tab-fill-green: #3a863d;--tab-fill-red: #e81c0d;--tab-fill-parent: #0c855d;--tab-line-teal: #008476;--tab-line-teal-text: #00695c;--tab-line-purple: #9c27b0;--tab-line-blue: #1565c0;--tab-raised-indigo: #3f51b5;--ge-title: var(--p-fuchsia-62);--ge-th-item: var(--p-blue-06);--ge-th-catavg: var(--p-yellow-06);--ge-th-catbonus: var(--p-rose-06);--ge-th-attendance: var(--p-amber-06);--ge-th-bonus: #fbe9e7;--ge-th-comment: #eceff1;--ge-th-calc: var(--p-green-06-2);--ge-th-final: var(--p-green-16);--ge-pass: var(--p-md-green-t);--ge-pass-line: var(--tab-fill-green);--ge-fail: #d32f2f;--ge-none: var(--p-blue-54);--ge-calc-bg: #f3eef8;--ge-calc-line: #e0d3ec;--ge-calc-ink: #7a5a99;--ap-total-bg: #e8eef4;--ap-student-line: #3498db;--tool-blue-bg: #eff6ff;--tool-blue: #2563eb;--tool-orange-bg: #fff7ed;--tool-orange: #c2410c;--tool-amber-bg: #fffbeb;--tool-amber: #b45309;--tool-green-bg: #f0fdf4;--tool-green: #15803d;--tool-red-bg: #fef2f2;--tool-red: #dc2626;--tool-purple-bg: #f5f3ff;--tool-purple: #7c3aed;--tool-teal-bg: #f0fdfa;--tool-teal: #0f766e;--tool-indigo-bg: #eef2ff;--tool-indigo: #4f46e5;--tool-pink-bg: #fdf2f8;--tool-pink: #db2777;--tool-navy-bg: #eef2f7;--tool-navy: #1e2a44;--tool-gray-bg: #f1f5f9;--tool-gray: #475569;--heat-5-bg: #dcfce7;--heat-5-text: #166534;--heat-4-bg: #d1fae5;--heat-4-text: #047857;--heat-3-bg: #fef9c3;--heat-3-text: #854d0e;--heat-2-bg: #fed7aa;--heat-2-text: #ac3a0b;--heat-1-bg: #fecaca;--heat-1-text: #b71d1d;--select-on-bg: var(--p-cream);--select-on-border: #d97706;--select-on-text: #78350f;--install-bg-1: #1e3a5f;--install-bg-2: #2d5a8e;--install-text-2: #dbe4ee;--install-quiet-hover: rgba(255, 255, 255, .14);--badge-inter-bg: #e7d5f7;--badge-inter-text: #6610f2;--badge-cycle-bg: #d1ecf1;--badge-cycle-text: #0c5460;--badge-default-bg: #d4edda;--badge-default-text: #155724;--badge-warn-bg: #fff3cd;--badge-warn-text: #856404;--badge-warn-border: #ffc107;--badge-moedb-bg: #e8f5e9;--badge-moedb-text: #2e7d32;--badge-moedb-border: #66bb6a;--disc-title: #c62828;--disc-warn-bg: #fff3cd;--disc-warn-border: #ffc107;--disc-warn-text: #856404;--disc-ok-bg: #d4edda;--disc-ok-border: #28a745;--disc-ok-text: #155724;--disc-bad-bg: #f8d7da;--disc-bad-border: #dc3545;--disc-bad-text: #721c24;--disc-highlight: #a52834;--kpi-orange-1: #a56a07;--kpi-orange-2: #b16105;--kpi-green-1: #0c855d;--kpi-green-2: #05875f;--kpi-red-1: #eb1515;--kpi-red-2: #dc2626;--kpi-purple-1: #8655f6;--kpi-purple-2: #7c3aed;--kpi-gray-1: #6b7280;--kpi-gray-2: #4b5563;--sad-total-1: #9c27b0;--sad-total-2: #673ab7;--sad-active-1: #3a863d;--sad-active-2: #59812b;--sad-trial-1: #ff9800;--sad-trial-2: #ffc107;--sad-trial-ink: #3b2400;--main-admin-ink: #3b2400;--sad-blocked-1: #e81c0d;--sad-blocked-2: #e6175d;--sad-basic-1: #008192;--sad-basic-2: #027db5;--sad-standard-1: #3f51b5;--sad-standard-2: #5c6bc0;--sad-premium-1: #673ab7;--sad-premium-2: #9c27b0;--sad-students-1: #1e6ff5;--sad-students-2: #1d4ed8;--sad-admins-1: #c908e0;--sad-admins-2: #ec0e2c;--sad-logins-1: #0175dc;--sad-logins-2: #008289;--sad-actions-1: #108838;--sad-actions-2: #04856e;--am-red-1: #e81c0d;--am-orange-1: #ab6600;--am-orange-2: #c15700;--am-blue-1: #1e6ff5;--sad-sub-bad-stripe: #ff6b6b;--upl-missing: #3b82f6;--upl-temporary: #f59e0b;--upl-newstudents: #22c55e;--upl-delete: #ef4444;--upl-attendance: #14b8a6;--upl-ingest: #6366f1;--card-orange-title: #ae5800;--card-pw-title: #b44800;--badge-count-bad: #ea1a16;--badge-pair-bg: #c2410c;--badge-part-bg: #e0f2fe;--badge-part-text: #0c4a6e;--badge-part-border: #7dd3fc;--rc-red: #e74c3c;--rc-blue: #3b82f6;--rc-orange: #f39c12;--rc-green: #28a745;--rc-violet: #6c5ce7;--rc-amber: #ff9800;--rc-teal: #26a69a;--rc-indigo: #5c6bc0;--rc-purple: #7b1fa2;--c-heading: var(--p-navy-logo);--topbtn-logout-bg: var(--p-red-50);--topbtn-logout-border: var(--p-red-200);--topbtn-logout-ink: var(--p-red-600);--topbtn-logout-bg-hover: var(--p-red-200);--topbtn-refresh-bg: var(--p-blue-50);--topbtn-refresh-border: var(--p-blue-200);--topbtn-refresh-ink: var(--p-blue-700);--topbtn-refresh-bg-hover: var(--p-blue-100);--topbtn-bell-bg: var(--p-cream);--topbtn-bell-border: var(--p-amber-200);--topbtn-bell-ink: var(--p-amber-700);--topbtn-bell-bg-hover: var(--p-amber-100);--topbtn-lock-bg: var(--p-slate-50);--topbtn-lock-border: var(--p-slate-200);--topbtn-lock-ink: var(--p-slate-600);--topbtn-lock-bg-hover: var(--p-slate-200)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{min-height:100vh;width:100%;font-family:Rubik,sans-serif}body{background:var(--c-bg);color:var(--c-text);font-size:var(--fs-md);font-weight:var(--fw-regular);line-height:var(--lh)}h1,h2,h3,h4,h5,h6,th,strong,b{font-weight:700}h1,h2,h3,h4{color:var(--c-heading)}button{font-weight:var(--fw-medium)}:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}@media(prefers-reduced-motion:reduce){.ai-typing-dot,.timeout-timer,.sd-appeal-status.awaiting,.sg-particle{animation:none!important}}button,input,select,textarea,optgroup{font-family:inherit}input.no-spinner::-webkit-outer-spin-button,input.no-spinner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input.no-spinner{-moz-appearance:textfield;appearance:textfield}.header-logos-wrap{display:flex;align-items:center;gap:10px;flex-shrink:0}.header-logo-sep{width:1px;height:28px;background:var(--p-gray-20);flex-shrink:0}.header-org-logo{max-height:32px;max-width:60px;width:auto;height:auto;object-fit:contain;border-radius:6px;flex-shrink:0}@media(max-width:480px){.header-org-logo{max-height:24px!important;max-width:48px!important}.header-logo-sep{height:24px!important}}.app-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;column-gap:12px;row-gap:0;padding:4px 16px;margin-top:auto;font-size:var(--fs-sm);line-height:1.4;color:var(--p-gray-600);background:none;border:0}.app-footer-row{display:inline-flex;align-items:center;gap:4px}.app-footer-item{position:relative;display:inline-flex;align-items:center}.app-footer-item:not(:last-child):after{content:"·";position:absolute;inset-inline-end:-12px;width:12px;top:50%;transform:translateY(-50%);text-align:center;line-height:1;color:var(--p-gray-500);pointer-events:none}.app-footer-item[data-eol]:after{visibility:hidden}.app-footer-logo{height:14px;width:14px;object-fit:contain}.app-footer-text{font-size:var(--fs-sm);color:var(--p-gray-600)}.app-footer-brand{font-size:var(--fs-sm);color:var(--p-indigo-52);font-weight:600}.app-footer-org-logo{height:16px;object-fit:contain;border-radius:3px}.app-footer-org-name{font-size:var(--fs-sm);color:var(--p-gray-600);font-weight:500}.login-container>.app-footer{margin-top:4px;width:100%}@media(max-width:768px){.has-bottom-nav .app-footer{padding-bottom:calc(120px + env(safe-area-inset-bottom,0px))}}.bottom-nav-footer{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px var(--sp-2) 0;background:var(--p-gray-50);border-bottom:1px solid var(--p-gray-07);line-height:1.4}.bnf-logo{height:14px;width:14px}.bnf-text{color:var(--p-indigo-52);font-weight:600;font-size:var(--fs-sm)}.bnf-divider{color:var(--p-gray-20);font-size:var(--fs-sm)}.bnf-org-logo{height:14px;object-fit:contain}.bnf-org-name{color:var(--p-gray-60);font-size:var(--fs-sm)}.attended-tag{display:inline-block;font-size:var(--fs-sm);font-weight:700;line-height:1.6;color:var(--p-amber-53);background:var(--p-amber-06);border:1px solid var(--p-amber-25);border-radius:3px;padding:0 var(--sp-2);margin-inline-start:4px;vertical-align:middle;white-space:nowrap}@media print{.attended-tag{color:var(--s-warn-text)!important;background:var(--s-warn-bg)!important;border-color:var(--s-warn-border)!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.privacy-print-notice{display:none}@media print{.privacy-print-notice{display:block;position:fixed;bottom:0;left:0;right:0;text-align:center;font-size:8pt;color:var(--c-text-2);background:var(--c-surface);border-top:1px solid var(--c-border-strong);padding:1mm 0}}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-footer-a11y{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;font-size:var(--fs-sm);color:var(--p-indigo-52);text-decoration:underline;text-underline-offset:3px}.app-footer-a11y:hover{color:var(--p-indigo-63)}.app-footer-a11y:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.app-footer-link-btn{background:none;border:0;padding:0 4px;font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-regular);cursor:pointer}.ui-icon{flex:none;display:inline-block;vertical-align:middle}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--ctl-h);padding:0 var(--sp-5);border-radius:var(--r-ctl);border:1px solid transparent;font-family:var(--font);font-size:var(--fs-md);font-weight:var(--fw-medium);line-height:1.2;cursor:pointer;white-space:nowrap;text-decoration:none;text-align:center;background:var(--c-surface);color:var(--c-text);transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease);box-shadow:none;transform:none}.btn:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.btn:hover,.btn:active{transform:none;box-shadow:none}.btn .ui-icon{width:var(--icon);height:var(--icon)}.btn-block{display:flex;width:100%}.btn-primary{background:var(--c-primary);color:var(--c-on-primary);border-color:var(--c-primary)}.btn-primary:hover{background:var(--c-primary-hover);border-color:var(--c-primary-hover);color:var(--c-on-primary)}.btn-primary:active{background:var(--c-primary-press);border-color:var(--c-primary-press)}.btn-secondary{background:var(--c-surface);color:var(--c-text);border-color:var(--c-ctl-border)}.btn-secondary:hover{background:var(--c-row-hover);border-color:var(--c-ctl-border-hover);color:var(--c-text)}.btn-secondary:active{background:var(--c-quiet-hover)}.btn-quiet{background:transparent;color:var(--c-primary);border-color:transparent;padding:0 var(--sp-3)}.btn-quiet:hover{background:var(--c-quiet-hover);color:var(--c-primary-hover)}.btn-quiet:active{background:var(--c-primary-tint)}.btn-danger{background:var(--c-surface);color:var(--c-danger);border-color:var(--c-danger-border)}.btn-danger:hover{background:var(--c-danger-bg);color:var(--c-danger);border-color:var(--c-danger-border)}.btn-danger:active{background:var(--c-danger-fill)}.btn-danger-fill{background:var(--c-danger-fill);color:var(--c-danger-fill-text);border-color:var(--c-danger-fill-border)}.btn-danger-fill:hover{background:var(--c-danger-fill-hover);color:var(--c-danger-fill-text)}.btn-danger-fill:active{background:var(--c-danger-fill-hover)}.btn:disabled,.btn[aria-disabled=true]{background:var(--c-disabled-bg);color:var(--c-disabled-text);border-color:var(--c-disabled-border);cursor:not-allowed}.btn-quiet:disabled{background:transparent;border-color:transparent}.btn.is-loading{cursor:progress}.icon-btn{width:var(--ctl-h);height:var(--ctl-h);min-width:var(--ctl-h);padding:0;display:inline-grid;place-items:center;border:0;background:transparent;color:var(--c-text-2);border-radius:50%;cursor:pointer;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.icon-btn:hover{background:var(--c-quiet-hover);color:var(--c-text)}.icon-btn[aria-pressed=true],.icon-btn[aria-expanded=true]{background:var(--c-primary-tint);color:var(--c-primary)}.icon-btn:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.icon-btn-tone{border:1px solid var(--tb-border);background:var(--tb-bg);color:var(--tb-ink);border-radius:12px}.icon-btn-tone:hover{background:var(--tb-bg-hover);border-color:var(--tb-border-hover);color:var(--tb-ink)}.icon-btn-logout{--tb-bg: var(--topbtn-logout-bg);--tb-border: var(--topbtn-logout-border);--tb-ink: var(--topbtn-logout-ink);--tb-bg-hover: var(--topbtn-logout-bg-hover);--tb-border-hover: var(--topbtn-logout-ink)}.icon-btn-refresh{--tb-bg: var(--topbtn-refresh-bg);--tb-border: var(--topbtn-refresh-border);--tb-ink: var(--topbtn-refresh-ink);--tb-bg-hover: var(--topbtn-refresh-bg-hover);--tb-border-hover: var(--topbtn-refresh-ink)}.icon-btn-bell{--tb-bg: var(--topbtn-bell-bg);--tb-border: var(--topbtn-bell-border);--tb-ink: var(--topbtn-bell-ink);--tb-bg-hover: var(--topbtn-bell-bg-hover);--tb-border-hover: var(--topbtn-bell-ink)}.icon-btn-lock{--tb-bg: var(--topbtn-lock-bg);--tb-border: var(--topbtn-lock-border);--tb-ink: var(--topbtn-lock-ink);--tb-bg-hover: var(--topbtn-lock-bg-hover);--tb-border-hover: var(--topbtn-lock-ink)}.icon-btn:disabled{color:var(--c-disabled-text);cursor:not-allowed;background:transparent}.btn-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.card{display:block;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-card);padding:var(--sp-6);box-shadow:none;color:var(--c-text);text-align:start;font:inherit}.card-sm{padding:var(--sp-4)}.card-flush{padding:0;overflow:hidden}.card-title{font-size:var(--fs-lg);font-weight:var(--fw-medium);margin:0 0 var(--sp-2);color:var(--c-text);line-height:var(--lh-tight)}.card-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-6)}.card-interactive{width:100%;cursor:pointer;transition:border-color var(--dur-fast) var(--ease)}.card-interactive:hover{border-color:var(--c-ctl-border)}.card-interactive:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}@media(max-width:640px){.card{padding:var(--sp-4)}}.tag{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:26px;padding:0 10px 0 12px;border-radius:var(--r-pill);border:1px solid;font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:1.2;white-space:nowrap;vertical-align:middle}.tag-ok{background:var(--s-ok-bg);color:var(--s-ok-text);border-color:var(--s-ok-border)}.tag-warn{background:var(--s-warn-bg);color:var(--s-warn-text);border-color:var(--s-warn-border)}.tag-bad{background:var(--s-bad-bg);color:var(--s-bad-text);border-color:var(--s-bad-border)}.tag-neutral{background:var(--s-neu-bg);color:var(--s-neu-text);border-color:var(--s-neu-border)}.tag-info{background:var(--s-info-bg);color:var(--s-info-text);border-color:var(--s-info-border)}.sd-temp-badge{background:var(--p-orange-50);color:var(--p-orange-600);font-weight:500;border-radius:10px;padding:1px 8px}.inline-alert{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-ctl);border:1px solid;font-size:var(--fs-md);line-height:var(--lh)}.inline-alert-icon{display:inline-flex;padding-top:2px}.inline-alert-body{flex:1;min-width:0}.inline-alert-title{font-weight:var(--fw-medium)}.inline-alert-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap;align-self:center}.inline-alert-ok{background:var(--s-ok-bg);color:var(--s-ok-text);border-color:var(--s-ok-border)}.inline-alert-warn{background:var(--s-warn-bg);color:var(--s-warn-text);border-color:var(--s-warn-border)}.inline-alert-bad{background:var(--s-bad-bg);color:var(--s-bad-text);border-color:var(--s-bad-border)}.inline-alert-neutral{background:var(--s-neu-bg);color:var(--s-neu-text);border-color:var(--s-neu-border)}.inline-alert-info{background:var(--s-info-bg);color:var(--s-info-text);border-color:var(--s-info-border)}.inline-alert-ok .inline-alert-icon{color:var(--s-ok-icon)}.inline-alert-warn .inline-alert-icon{color:var(--s-warn-icon)}.inline-alert-bad .inline-alert-icon{color:var(--s-bad-icon)}.inline-alert-info .inline-alert-icon{color:var(--s-info-icon)}.tbl-wrap{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-card);overflow-x:auto;max-width:100%;min-width:0;position:relative}.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-sm);color:var(--c-text)}.tbl caption{text-align:start;padding:var(--sp-4) var(--sp-6) var(--sp-3);font-size:var(--fs-md);color:var(--c-text-2);caption-side:top}.tbl th,.tbl td{padding:0 var(--sp-4);height:48px;text-align:start;border-top:1px solid var(--c-border);vertical-align:middle}.tbl thead th{background:var(--c-surface-2);color:var(--c-text-2);font-weight:var(--fw-medium);white-space:nowrap}.tbl thead tr:first-child th{border-top:0}.tbl caption+thead tr:first-child th{border-top:1px solid var(--c-border)}.tbl th:first-child,.tbl td:first-child{padding-inline-start:var(--sp-6)}.tbl tbody tr:hover{background:var(--c-row-hover)}.tbl .num{text-align:center;font-variant-numeric:tabular-nums}.tbl .act{text-align:end;width:1%;white-space:nowrap}.tbl td .btn-quiet{min-height:var(--ctl-h);font-size:var(--fs-sm)}.tbl-dense th,.tbl-dense td{height:40px;padding:0 var(--sp-3)}.tbl-sticky thead th{position:sticky;top:0;z-index:1}@media(max-width:640px){.tbl th:first-child,.tbl td:first-child{padding-inline-start:var(--sp-4)}.tbl caption{padding:var(--sp-4) var(--sp-4) var(--sp-3)}.tbl th,.tbl td{padding:var(--sp-2)}}html.ui-scroll-locked,html.ui-scroll-locked body{overflow:hidden}.dialog-scrim{position:fixed;inset:0;z-index:var(--z-dialog);background:var(--c-scrim);display:grid;place-items:center;padding:var(--sp-4);overflow-y:auto;animation:ui-fade var(--dur) var(--ease)}.dialog{position:relative;width:100%;max-height:calc(100vh - 32px);overflow-y:auto;background:var(--c-surface);color:var(--c-text);border-radius:var(--r-card);box-shadow:var(--shadow-float);padding:var(--sp-6);text-align:start;direction:rtl;animation:ui-pop var(--dur-pop) var(--ease)}.dialog:focus{outline:none}.dialog-sm{max-width:440px}.dialog-md{max-width:640px}.dialog-lg{max-width:960px}.dialog-xl{max-width:1200px}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3)}.dialog-title{font-size:var(--fs-lg);font-weight:var(--fw-medium);margin:var(--sp-2) 0 0;line-height:var(--lh-tight);color:var(--c-text)}.dialog-head .dialog-close{margin:-6px 0 0 -10px}.dialog-desc{color:var(--c-text-2);margin:var(--sp-3) 0 0}.dialog-body{margin-top:var(--sp-3)}.dialog-message{color:var(--c-text-2);white-space:pre-line;overflow-wrap:anywhere}.dialog-details{margin-top:var(--sp-3);color:var(--c-text-2);font-size:var(--fs-sm);white-space:pre-line}.dialog-tone{display:flex;gap:var(--sp-3);align-items:flex-start}.dialog-tone .ui-icon{margin-top:2px}.dialog-tone-ok .ui-icon{color:var(--s-ok-icon)}.dialog-tone-warn .ui-icon{color:var(--s-warn-icon)}.dialog-tone-error .ui-icon{color:var(--s-bad-icon)}.dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--sp-2);margin-top:var(--sp-6)}.dialog-form{margin-top:var(--sp-4);display:grid;gap:var(--sp-2)}@keyframes ui-fade{0%{opacity:0}to{opacity:1}}@keyframes ui-pop{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}@media(max-width:640px){.dialog-scrim{padding:var(--sp-4);align-items:center}.dialog{padding:var(--sp-4);max-height:calc(100vh - 32px)}.dialog-actions{justify-content:stretch}.dialog-actions .btn{flex:1 1 auto}}.field-label{display:block;font-size:var(--fs-md);color:var(--c-text);margin-bottom:var(--sp-1)}.field-input{width:100%;min-height:var(--ctl-h);padding:0 var(--sp-3);border:1px solid var(--c-ctl-border);border-radius:var(--r-ctl);background:var(--c-surface);color:var(--c-text);font:inherit;font-size:var(--fs-md)}.field-input:focus-visible{outline:3px solid var(--c-focus);outline-offset:1px;border-color:var(--c-primary)}.field-input[aria-invalid=true]{border-color:var(--c-danger)}.field-error{color:var(--c-danger);font-size:var(--fs-sm)}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),select,textarea):disabled{background:var(--c-disabled-bg)!important;color:var(--c-disabled-text)!important;-webkit-text-fill-color:var(--c-disabled-text);border-color:var(--c-ctl-border)!important;border-style:dashed!important;cursor:not-allowed;opacity:1}.toast-region{position:fixed;z-index:var(--z-toast);top:var(--sp-6);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);width:min(400px,calc(100vw - 32px));pointer-events:none}.toast-stack{display:contents}.toast{pointer-events:auto;display:flex;align-items:center;gap:var(--sp-3);width:100%;background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border);border-radius:var(--r-ctl);box-shadow:var(--shadow-float);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4);padding-inline-start:var(--sp-3);font-size:var(--fs-md);line-height:1.45;direction:rtl;text-align:start;animation:slideDown .3s ease}.toast-badge{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex:none}.toast-ok .toast-badge{background:var(--s-ok-bg);color:var(--s-ok-icon)}.toast-info .toast-badge{background:var(--s-info-bg);color:var(--s-info-icon)}.toast-warn .toast-badge{background:var(--s-warn-bg);color:var(--s-warn-icon)}.toast-bad .toast-badge{background:var(--s-bad-bg);color:var(--s-bad-icon)}.toast-text{flex:1;min-width:0;white-space:pre-line;overflow-wrap:anywhere}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.toast-region{top:auto;bottom:calc(96px + env(safe-area-inset-bottom,0px));flex-direction:column-reverse}}.more-btn{padding:0 var(--sp-3)}.menu{position:fixed;z-index:var(--z-menu);min-width:232px;max-width:calc(100vw - 16px);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-ctl);box-shadow:var(--shadow-float);padding:6px;margin:0;list-style:none;direction:rtl;animation:ui-fade var(--dur-fast) var(--ease)}.menu-item{width:100%;display:flex;align-items:center;gap:var(--sp-3);min-height:var(--ctl-h);padding:0 var(--sp-3);border:0;background:transparent;border-radius:var(--r-sm);color:var(--c-text);font-family:var(--font);font-size:var(--fs-md);font-weight:var(--fw-regular);line-height:1.2;text-align:start;cursor:pointer}.menu-item .ui-icon{color:var(--c-text-2)}.menu-item:hover{background:var(--c-quiet-hover)}.menu-item:focus-visible{outline:3px solid var(--c-focus);outline-offset:-3px}.menu-item:disabled{color:var(--c-disabled-text);cursor:not-allowed}.menu-sep{height:1px;background:var(--c-border);margin:6px 4px}.menu-item-danger,.menu-item-danger .ui-icon{color:var(--c-danger)}.menu-item-mobile{display:none}@media(max-width:640px){.menu-item-mobile,li.menu-sep.menu-item-mobile{display:block}}.row-actions{display:flex;align-items:center;gap:var(--sp-1);flex:none;flex-wrap:wrap}.row-actions>.btn-primary{margin-inline-end:var(--sp-2)}@media(max-width:640px){.row-actions{width:100%;gap:var(--sp-2);flex-wrap:nowrap}.row-actions>.btn-primary{flex:1 1 auto;min-width:0;margin:0;padding:0 var(--sp-3)}.row-actions .row-desktop-only{display:none}.row-actions .more-btn{border:1px solid var(--c-ctl-border);width:var(--ctl-h);min-width:var(--ctl-h);padding:0;flex:none}.row-actions .more-btn .more-btn-text{display:none}}:root{--bottom-nav-h: 104px;--bottom-nav-gap: var(--sp-3)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:var(--z-nav);background:var(--c-surface);border-top:1px solid var(--c-border);direction:rtl;padding-bottom:env(safe-area-inset-bottom,0px)}.bottom-nav-brand{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px var(--sp-2) 0;color:var(--c-muted);font-size:var(--fs-sm);line-height:1.4}.bottom-nav-brand img{width:14px;height:14px}.bottom-nav-tabs{display:flex;padding:var(--sp-1) var(--sp-1) var(--sp-2)}.bottom-nav-item{flex:1 1 0;min-width:0;min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:0;border-radius:var(--r-ctl);padding:var(--sp-1) 0;cursor:pointer;color:var(--c-text-2);font-family:var(--font)}.bottom-nav-icon{display:grid;place-items:center}.bottom-nav-icon .ui-icon-tile{border-radius:10px}.bottom-nav-label{font-size:var(--fs-sm);line-height:1.3;white-space:nowrap;font-weight:var(--fw-regular)}.bottom-nav-item[aria-current=page]{color:var(--c-primary)}.bottom-nav-item[aria-current=page] .bottom-nav-icon .ui-icon-tile{box-shadow:0 0 0 2px currentColor}.bottom-nav-item[aria-current=page] .bottom-nav-label{font-weight:var(--fw-medium)}.bottom-nav-item:focus-visible{outline:3px solid var(--c-focus);outline-offset:-3px}.ui-tabs{display:flex;gap:var(--sp-1);overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;background:var(--tab-bar-bg);border-radius:20px;box-shadow:var(--tab-bar-shadow);padding:6px;margin-bottom:var(--sp-4)}.ui-tabs::-webkit-scrollbar{display:none}.ui-tab{flex:1 0 auto;min-height:var(--ctl-h);padding:0 var(--sp-4);border:0;border-radius:14px;background:transparent;cursor:pointer;color:var(--tab-text);font-family:var(--font);font-size:var(--fs-md);font-weight:500;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.ui-tab:hover{background:var(--tab-hover-bg);color:var(--tab-cream-text)}.ui-tab[aria-selected=true],.ui-tab.is-active{background:var(--tab-cream-bg);color:var(--tab-cream-text);font-weight:600;box-shadow:inset 0 -3px 0 var(--tab-cream-line)}.ui-tab:focus-visible{outline:3px solid var(--c-focus);outline-offset:-3px}.ui-tabs[data-tone^=fill] .ui-tab[aria-selected=true],.ui-tabs[data-tone^=fill] .ui-tab.is-active{color:var(--p-white);box-shadow:none;background:var(--tab-fill)}.ui-tabs[data-tone=fill-orange]{--tab-fill: var(--tab-fill-orange)}.ui-tabs[data-tone=fill-blue]{--tab-fill: var(--tab-fill-blue)}.ui-tabs[data-tone=fill-blue-deep]{--tab-fill: var(--tab-fill-blue-deep)}.ui-tabs[data-tone=fill-green]{--tab-fill: var(--tab-fill-green)}.ui-tabs[data-tone=fill-red]{--tab-fill: var(--tab-fill-red)}.ui-tabs[data-tone=fill-parent]{--tab-fill: var(--tab-fill-parent)}.ui-tabs[data-tone^=line] .ui-tab[aria-selected=true],.ui-tabs[data-tone^=line] .ui-tab.is-active{background:var(--p-white);color:var(--tab-line-text, var(--tab-line));box-shadow:inset 0 -3px 0 var(--tab-line)}.ui-tabs[data-tone^=line] .ui-tab:hover{background:var(--p-slate-50);color:var(--tab-line-text, var(--tab-line))}.ui-tabs[data-tone=line-teal]{--tab-line: var(--tab-line-teal);--tab-line-text: var(--tab-line-teal-text)}.ui-tabs[data-tone=line-purple]{--tab-line: var(--tab-line-purple)}.ui-tabs[data-tone=line-blue]{--tab-line: var(--tab-line-blue)}.ui-tabs[data-tone=raised]{background:var(--p-slate-100);box-shadow:none}.ui-tabs[data-tone=raised] .ui-tab[aria-selected=true],.ui-tabs[data-tone=raised] .ui-tab.is-active{background:var(--p-white);color:var(--tab-raised-indigo);box-shadow:0 2px 8px var(--p-black-a8)}.ui-tabs[data-tone=raised] .ui-tab:hover{background:var(--p-white);color:var(--tab-raised-indigo)}@media(max-width:640px){.ui-tab{flex:0 0 auto;padding:0 var(--sp-3)}}.ui-icon-tile{width:48px;height:48px;border-radius:12px;display:inline-grid;place-items:center;flex:none;background:var(--tile-bg);color:var(--tile-ink)}.ui-icon-tile.tone-blue{--tile-bg: var(--tool-blue-bg);--tile-ink: var(--tool-blue)}.ui-icon-tile.tone-orange{--tile-bg: var(--tool-orange-bg);--tile-ink: var(--tool-orange)}.ui-icon-tile.tone-amber{--tile-bg: var(--tool-amber-bg);--tile-ink: var(--tool-amber)}.ui-icon-tile.tone-green{--tile-bg: var(--tool-green-bg);--tile-ink: var(--tool-green)}.ui-icon-tile.tone-red{--tile-bg: var(--tool-red-bg);--tile-ink: var(--tool-red)}.ui-icon-tile.tone-purple{--tile-bg: var(--tool-purple-bg);--tile-ink: var(--tool-purple)}.ui-icon-tile.tone-teal{--tile-bg: var(--tool-teal-bg);--tile-ink: var(--tool-teal)}.ui-icon-tile.tone-indigo{--tile-bg: var(--tool-indigo-bg);--tile-ink: var(--tool-indigo)}.ui-icon-tile.tone-pink{--tile-bg: var(--tool-pink-bg);--tile-ink: var(--tool-pink)}.ui-icon-tile.tone-navy{--tile-bg: var(--tool-navy-bg);--tile-ink: var(--tool-navy)}.ui-icon-tile.tone-gray{--tile-bg: var(--tool-gray-bg);--tile-ink: var(--tool-gray)}.ui-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--sp-2);padding:var(--sp-8) var(--sp-4);color:var(--c-text-2)}.ui-empty .ui-icon{color:var(--c-muted);width:32px;height:32px}.ui-empty-title{font-size:var(--fs-lg);font-weight:var(--fw-medium);color:var(--c-text)}.ui-h1-line{width:40px;height:3px;border-radius:2px;background:var(--c-accent)}.grade-mark{display:flex;flex-direction:column;align-items:center;gap:2px;white-space:nowrap}.grade-mark-num{font-size:var(--fs-md);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}@media print{.tag,.inline-alert{border-color:currentColor;print-color-adjust:exact;-webkit-print-color-adjust:exact}}.school-logo-initial{width:32px;height:32px;border-radius:8px;display:inline-grid;place-items:center;flex:none;background:var(--tool-navy-bg);color:var(--c-heading);font-weight:700;font-size:var(--fs-md);line-height:1}.ui-tabs[data-tone=fill-blue]{background:var(--p-slate-100);box-shadow:none}.ui-tab .ui-icon-duo{margin-inline-end:6px;vertical-align:-3px}.ui-tabs[data-tone^=fill] .ui-tab[aria-selected=true] .ui-icon-duo{color:var(--p-white)}.ui-tabs[data-tone^=line] .ui-tab{border-radius:10px 10px 0 0}.ui-empty .ui-icon-duo{color:var(--tool-navy);width:40px;height:40px}h1 .ui-icon-duo,h2 .ui-icon-duo,h3 .ui-icon-duo,h4 .ui-icon-duo,h5 .ui-icon-duo,h6 .ui-icon-duo{color:var(--tool-navy);vertical-align:-4px;margin-inline-end:6px}html input[type=radio],html input[type=checkbox]{width:auto;min-width:18px;height:18px;min-height:0;padding:0;border:revert;border-radius:revert;background:revert;flex:none;margin-inline:0 8px;vertical-align:middle;accent-color:var(--c-primary)}.dialog.dlg-purple-title .dialog-title{flex:1;text-align:center;color:var(--tool-purple);font-weight:700;padding-inline-start:34px}.appeal-stat{border-top:3px solid var(--ap-line);background:var(--ap-bg)}.appeal-stat .appeal-stat-num{color:var(--ap-ink)}.appeal-stat-total{--ap-line: var(--p-navy-700);--ap-bg: var(--ap-total-bg);--ap-ink: var(--p-navy-700)}.appeal-stat-teacher{--ap-line: var(--p-md-orange);--ap-bg: var(--p-amber-06);--ap-ink: var(--p-orange-800)}.appeal-stat-student{--ap-line: var(--ap-student-line);--ap-bg: var(--p-blue-06);--ap-ink: var(--p-blue-54)}.appeal-stat-done{--ap-line: var(--p-md-green);--ap-bg: var(--p-green-06-2);--ap-ink: var(--p-md-green-t)}.tag.tag-main-admin{background:var(--p-md-orange);color:var(--main-admin-ink);border-color:var(--p-md-orange);font-weight:700}.btn.btn-primary,.btn.btn-danger-fill{transition:none}.ui-spinner{--spn: 28px;--spn-w: 3px;--spn-track: var(--c-primary-tint-2);--spn-top: var(--c-primary);position:relative;display:inline-block;flex:none;box-sizing:border-box;width:var(--spn);height:var(--spn);border-radius:50%;border:var(--spn-w) solid var(--spn-track);border-top-color:var(--spn-top);animation:ui-spin var(--dur-spin) linear infinite}.ui-spinner--sm{--spn: 16px;--spn-w: 2px}.ui-spinner--lg{--spn: 44px;--spn-w: 4px}.ui-spinner--current{--spn-track: rgba(128, 128, 128, .35);--spn-top: currentColor}.ui-spinner--on-primary{--spn-track: var(--p-white-a30);--spn-top: var(--p-white)}.ui-spinner--danger{--spn-track: var(--p-red-10);--spn-top: var(--p-md-red)}@supports (color: color-mix(in srgb,red 50%,blue)){.ui-spinner--current{--spn-track: color-mix(in srgb, currentColor 28%, transparent)}}@keyframes ui-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.ui-spinner{animation-name:ui-spin!important;animation-duration:calc(var(--dur-spin) * 2)!important;animation-iteration-count:infinite!important;animation-play-state:running!important}}.ui-alert-icon{flex-shrink:0;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--p-slate-300);background:var(--p-slate-50);color:var(--p-navy-700);font:inherit;box-sizing:border-box}.ui-alert-icon--md{width:var(--ctl-h);height:var(--ctl-h)}.ui-alert-icon--sm{width:24px;height:24px;vertical-align:middle}button.ui-alert-icon{cursor:pointer}button.ui-alert-icon:hover{background:var(--p-slate-100);border-color:var(--p-slate-400)}button.ui-alert-icon:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.year-name{white-space:nowrap}.year-name-range{font-size:.8em;font-weight:400;color:var(--c-text-2, #475569);direction:ltr;unicode-bidi:isolate;margin-inline-start:.35em}.default-track-form .year-input.year-select,.advanced-track-form .year-input.year-select,.year-input.year-select{width:auto;min-width:88px;max-width:100%;text-align:start}.default-track-form,.advanced-track-form{flex-wrap:wrap}.linked-role-notice{position:fixed;bottom:var(--sp-5);left:50%;transform:translate(-50%);z-index:var(--z-menu);direction:rtl;display:flex;align-items:center;gap:var(--sp-3) var(--sp-4);flex-wrap:wrap;justify-content:center;width:max-content;max-width:min(720px,calc(100vw - 32px));padding:var(--sp-3) var(--sp-4);background:var(--p-white);border:1px solid var(--p-blue-11);border-radius:12px;box-shadow:0 8px 24px var(--p-black-a14);font-family:var(--font);font-size:var(--fs-md);color:var(--p-gray-800);border-right:5px solid var(--p-blue-49)}.linked-role-notice-text strong{font-weight:var(--fw-medium);color:var(--p-blue-58)}.linked-role-notice-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}@media(max-width:640px){.linked-role-notice{bottom:calc(96px + env(safe-area-inset-bottom,0px));width:calc(100vw - 32px)}.linked-role-notice-actions{width:100%}.linked-role-notice-actions .btn{flex:1 1 auto}}html,body,#root{margin:0;padding:0;min-height:100vh;background:var(--p-page-bg)}.login-container{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--sp-4);min-height:100vh;min-height:100dvh;width:100%;padding:var(--sp-8) var(--sp-4);box-sizing:border-box;background:var(--bb-bg);color:var(--bb-text);direction:rtl;font-family:var(--bb-font);font-size:var(--fs-md);line-height:var(--lh)}.login-container *,.login-container *:before,.login-container *:after{box-sizing:border-box}.login-shell{width:100%;max-width:440px;display:flex;flex-direction:column;gap:var(--sp-6);animation:loginEnter .4s ease-out both}.login-shell--wide{max-width:560px}.login-brand{text-align:center}.login-brand-row{display:inline-flex;align-items:center;gap:var(--sp-3)}.login-brand-logo{width:40px;height:40px;flex-shrink:0}.login-brand-name{font-size:var(--fs-xl);font-weight:500;line-height:var(--lh-tight);color:var(--bb-navy)}.login-brand-sub{margin:var(--sp-1) 0 0;font-size:var(--fs-md);color:var(--bb-text-2)}.login-card,.new-login-card{width:100%;background:var(--bb-surface);border:1px solid var(--bb-border);border-radius:var(--bb-r-card);padding:var(--sp-6);box-shadow:none;direction:rtl;text-align:right;font-family:var(--bb-font)}.login-title{margin:0;font-size:var(--fs-3xl);font-weight:700;line-height:var(--lh-tight);color:var(--bb-navy)}.login-title:after{content:"";display:block;width:40px;height:3px;margin-top:10px;border-radius:2px;background:var(--bb-orange)}.login-lead{margin:var(--sp-2) 0 0;font-size:var(--fs-md);font-weight:400;color:var(--bb-text-2)}.login-title+form,.login-lead+form{margin-top:var(--sp-6)}.login-title--switched{border-radius:8px;animation:loginTitleSwitched 1.6s ease-out}.login-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);margin-top:var(--sp-6)}button.login-type-card{font:inherit;color:inherit;width:100%;margin:0}.login-type-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-1);min-height:var(--ctl-h);padding:var(--sp-5) var(--sp-3);background:var(--bb-surface);border:1px solid var(--bb-border);border-radius:var(--bb-r-card);text-align:center;cursor:pointer;transition:border-color .15s ease,transform .15s ease}.login-type-card:hover{border-color:var(--bb-border-strong);background:var(--c-row-hover);transform:translateY(-2px)}.login-type-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-bottom:var(--sp-1);border-radius:50%;background:var(--bb-bg);color:var(--bb-navy)}.login-type-name{font-size:var(--fs-lg);font-weight:400;line-height:1.4;color:var(--bb-text)}.login-type-desc{font-size:var(--fs-sm);font-weight:400;line-height:1.4;color:var(--bb-text-2)}.login-register-link{display:flex;flex-direction:column;align-items:center;margin-top:var(--sp-6)}.login-check-link{display:inline-flex;align-items:center;min-height:var(--ctl-h);padding:0 var(--sp-1);border-radius:var(--r-sm);color:var(--c-link);text-decoration:underline;text-underline-offset:3px}.login-check-link:hover{color:var(--c-link-hover)}.new-login-back{margin:calc(-1 * var(--sp-2)) calc(-1 * var(--sp-3)) var(--sp-2);background:none;border:none;border-radius:var(--bb-r-ctl);font-weight:400;color:var(--bb-text-2)}.new-login-header{margin-bottom:var(--sp-6)}.new-login-tabs{margin:var(--sp-6) 0;background:var(--bb-bg);border:1px solid var(--bb-border);border-radius:var(--bb-r-ctl);padding:4px}.new-login-tab{flex:1;background:transparent;border:1px solid transparent;border-radius:8px;font-weight:400;color:var(--bb-text-2)}.new-login-form-group{margin-bottom:var(--sp-4)}.new-login-form-group label{display:block;margin-bottom:var(--sp-2);font-size:var(--fs-md);font-weight:400;line-height:1.5;color:var(--bb-text)}.new-login-form-group input:not([type=checkbox]),.new-login-form-group select,.new-login-form-group textarea{display:block;width:100%;min-height:var(--ctl-h);padding:0 var(--sp-4);background:var(--bb-surface);border:1px solid var(--bb-border-strong);border-radius:var(--bb-r-ctl);font-family:var(--bb-font);font-size:var(--fs-md);color:var(--bb-text);transition:border-color .15s ease}.new-login-form-group textarea{padding:var(--sp-3) var(--sp-4);min-height:96px;resize:vertical;line-height:1.5}.new-login-form-group input::placeholder,.new-login-form-group textarea::placeholder{color:var(--bb-text-3)}.new-login-form-group input:focus-visible,.new-login-form-group select:focus-visible,.new-login-form-group textarea:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px;border-color:var(--c-primary)}.new-login-form-group .password-field input{padding-left:48px}.new-login-form-group input[aria-invalid=true],.new-login-form-group select[aria-invalid=true],.new-login-form-group textarea[aria-invalid=true]{border-color:var(--bb-danger)}.field-error{margin-top:var(--sp-2);font-size:var(--fs-sm);color:var(--bb-danger)}.required-mark{color:var(--bb-danger);margin-inline-start:2px}.school-preview{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3);margin-top:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bb-surface);border:1px solid var(--bb-border);border-radius:var(--bb-r-ctl);font-size:var(--fs-md);color:var(--bb-success);animation:loginFadeIn .3s ease}.school-preview.loading,.school-preview.error{display:block;padding:0;border:none;background:none}.school-preview.loading{color:var(--bb-text-2)}.school-preview.error{color:var(--bb-danger)}.school-preview img{width:32px;height:32px;border-radius:8px;object-fit:contain}.school-preview .school-preview-org-logo{width:auto;height:20px;border-radius:0}.school-preview-name{color:var(--bb-success);font-weight:var(--fw-medium)}.school-preview-sep{display:inline-block;width:1px;height:16px;background:var(--bb-border-strong)}.school-preview-org{color:var(--bb-text-2)}.school-retry-btn{padding:0 var(--sp-2)}.two-factor-input{text-align:center!important;font-size:var(--fs-xl)!important;letter-spacing:6px!important;font-weight:500}.two-factor-hint{margin:var(--sp-2) 0 0;font-size:var(--fs-md);color:var(--bb-text-2)}.new-login-remember{display:flex;align-items:center;gap:var(--sp-3);margin:0 0 var(--sp-4)}.new-login-remember input[type=checkbox]{width:22px;height:22px;flex-shrink:0;margin:0;accent-color:var(--bb-navy);cursor:pointer}.new-login-remember input[type=checkbox]:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.new-login-remember label{display:inline-flex;align-items:center;flex:1;min-height:var(--ctl-h);font-size:var(--fs-md);color:var(--bb-text);cursor:pointer}.login-note{margin:0 0 var(--sp-4);background:var(--bb-surface);border:1px solid var(--bb-border-strong);border-radius:var(--bb-r-ctl);color:var(--bb-text);padding:12px 16px}.login-note--row{margin:var(--sp-2) 0 0}.login-error-block{margin:0 0 var(--sp-4)}.error-message{margin:0;font-size:var(--fs-md);font-weight:400;color:var(--bb-danger)}.login-error-hint{margin:var(--sp-1) 0 0;font-size:var(--fs-md);color:var(--bb-text-2)}.new-login-google-desc{margin:0 0 var(--sp-4);font-size:var(--fs-md);color:var(--bb-text-2)}.new-login-google-btn img{width:24px;height:24px;padding:2px;border-radius:50%;background:var(--c-surface)}.new-login-google-hint{margin:var(--sp-2) 0 0;font-size:var(--fs-md);color:var(--bb-text-2)}.login-google-pane .login-error-block,.login-google-pane .login-note{margin:var(--sp-4) 0 0}.login-loading-overlay{display:flex;position:fixed;inset:0;background:var(--p-white-a94);z-index:var(--z-toast);justify-content:center;align-items:center;flex-direction:column;gap:var(--sp-4);font-family:var(--bb-font);direction:rtl}.login-loading-text{font-size:var(--fs-md);font-weight:400;color:var(--bb-text);animation:loginStepFade .3s ease}.login-loading-progress{width:200px;height:3px;background:var(--bb-border);border-radius:4px;overflow:hidden}.login-loading-progress-bar{height:100%;background:var(--bb-navy);border-radius:4px;transition:width .5s ease}.login-loading-progress-bar.step-verifying{width:30%}.login-loading-progress-bar.step-connecting{width:65%}.login-loading-progress-bar.step-loading{width:90%}.login-card{position:relative}.login-busy{position:absolute;inset:0;z-index:2;display:grid;place-items:center;padding:var(--sp-4);border-radius:inherit;background:color-mix(in srgb,var(--bb-surface) 82%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.login-busy-inner{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);max-width:100%;text-align:center}.login-busy .login-loading-progress{width:min(200px,100%)}@media(prefers-reduced-motion:reduce){.login-busy .login-loading-text{animation:none}.login-busy .login-loading-progress-bar{transition:none}}.reg-section+.reg-section{margin-top:var(--sp-8)}.reg-section{margin-top:0}.reg-section-title{margin:0 0 var(--sp-4);font-size:var(--fs-lg);font-weight:500;line-height:1.4;color:var(--bb-text)}.reg-section-lead{margin:0 0 var(--sp-3);font-size:var(--fs-md);color:var(--c-text-2)}.pw-reqs{margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--bb-border);border-radius:var(--bb-r-ctl);font-size:var(--fs-md)}.pw-reqs-title{margin:0 0 var(--sp-1);color:var(--bb-text)}.pw-reqs ul{list-style:none;margin:0;padding:0}.pw-reqs li{color:var(--bb-text-2);line-height:var(--lh)}.pw-reqs li.ok,.pw-reqs-match.ok{color:var(--bb-success)}.pw-reqs-match{margin:var(--sp-2) 0 0}.pw-reqs-match.bad{color:var(--bb-danger)}.login-card .error-msg,.new-login-card .error-msg{margin:var(--sp-4) 0 0;padding:0;background:none;border:none;border-radius:0;text-align:right;font-size:var(--fs-md);color:var(--c-danger)}.login-card .reg-message{margin-top:var(--sp-4)}.reg-buttons{display:flex;gap:var(--sp-3);margin-top:var(--sp-6)}.reg-buttons>.btn-primary{flex:1}.registered-parents-list{list-style:none;margin:var(--sp-4) 0;padding:0;border-top:1px solid var(--bb-border)}.registered-parent-item{padding:var(--sp-3) 0;border-bottom:1px solid var(--bb-border);font-size:var(--fs-md)}.stub-note{color:var(--bb-orange-text)}.role-selector{margin:0 0 var(--sp-6)}.role-selector-label{display:block;margin-bottom:var(--sp-2);font-size:var(--fs-md);color:var(--bb-text)}.role-buttons{display:flex;gap:var(--sp-3)}.role-btn{flex:1;min-height:var(--ctl-h);padding:0 var(--sp-4);border:1px solid var(--c-ctl-border);border-radius:var(--r-pill);background:var(--c-surface);color:var(--c-text);cursor:pointer;font-family:var(--font);font-size:var(--fs-md);font-weight:var(--fw-regular);transition:all .2s}.role-btn:hover{border-color:var(--c-ctl-border-hover)}.role-btn.active{border-color:var(--c-primary);background:var(--c-primary-tint);color:var(--c-primary);font-weight:var(--fw-medium)}.role-btn:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.parent-fieldset{margin:0 0 var(--sp-6);padding:0;border:none;min-width:0}.parent-fieldset legend{margin-bottom:var(--sp-3);padding:0;font-size:var(--fs-lg);font-weight:500;color:var(--bb-text)}.required-tag,.optional-tag{font-size:var(--fs-md);font-weight:var(--fw-regular);color:var(--c-text-2)}.error-msg{color:var(--p-red-600);margin:var(--sp-3) 0;padding:var(--sp-3) var(--sp-4);background:var(--p-red-50);border:1px solid var(--p-red-200);border-radius:12px;text-align:center;font-size:var(--fs-md)}@media(max-width:480px){.login-container{padding:var(--sp-4);gap:var(--sp-3)}.login-shell{gap:var(--sp-4)}.login-brand-logo{width:32px;height:32px}.login-brand-sub{margin-top:0}.login-title{font-size:var(--fs-2xl)}.login-card,.new-login-card{padding:var(--sp-4)}.new-login-back{margin-top:calc(-1 * var(--sp-1));margin-bottom:var(--sp-1)}.new-login-tabs{margin:var(--sp-4) 0}.login-type-grid{gap:var(--sp-2);margin-top:var(--sp-4)}.login-type-card{padding:var(--sp-4) var(--sp-2)}.login-register-link{margin-top:var(--sp-3)}}.login-container a{color:var(--c-link);text-decoration:underline;text-underline-offset:3px}.login-container a:hover{color:var(--c-link-hover)}.login-container a.btn{text-decoration:none}.new-login-back:hover{background:var(--bb-bg);color:var(--bb-text)}.new-login-header h2{font-weight:700;color:var(--bb-navy)}.new-login-header p{color:var(--bb-text-2)}.new-login-tab:hover{color:var(--bb-text)}.new-login-tab.active{background:var(--bb-surface);border-color:var(--bb-border-strong);color:var(--bb-text)}.login-card .error-msg{background:none;border:none;border-radius:0;color:var(--bb-danger)}.required-tag{font-weight:400;color:var(--bb-danger)}.optional-tag{font-weight:400;color:var(--bb-text-2)}.login-type-card--student .login-type-icon{background:var(--p-blue-100);color:var(--p-blue-700)}.login-type-card--teacher .login-type-icon{background:var(--p-violet-100);color:var(--p-violet-700)}.login-type-card--admin .login-type-icon{background:var(--p-amber-100);color:var(--p-amber-700)}.login-type-card--parent .login-type-icon{background:var(--p-green-100);color:var(--p-green-700)}@keyframes loginEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes loginTitleSwitched{0%{background-color:var(--bb-border);box-shadow:0 0 0 6px var(--bb-border)}to{background-color:transparent;box-shadow:0 0 0 6px transparent}}@keyframes loginFadeIn{0%{opacity:0}to{opacity:1}}@keyframes loginStepFade{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.legal-page{min-height:100vh;background:var(--p-page-bg);padding:var(--sp-6) var(--sp-4) var(--sp-2);font-family:Rubik,Heebo,Arial,sans-serif;color:var(--p-slate-800);display:flex;flex-direction:column}.legal-brand{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);font-size:var(--fs-xl);font-weight:500;color:var(--p-navy-700);margin-bottom:var(--sp-4)}.legal-card{width:100%;max-width:820px;margin:0 auto;background:var(--p-white);border:1px solid var(--p-slate-200);border-radius:16px;padding:var(--sp-6);box-shadow:none}.legal-title{font-size:var(--fs-3xl);font-weight:700;line-height:var(--lh-tight);color:var(--p-navy-700);margin:0 0 var(--sp-2)}.legal-title:after{content:"";display:block;width:40px;height:3px;border-radius:2px;background:var(--p-amber-500);margin-top:var(--sp-2)}.legal-title:focus{outline:none}.legal-title:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.legal-meta{font-size:var(--fs-sm);color:var(--p-slate-600);margin:0 0 var(--sp-4)}.legal-body{font-size:var(--fs-md);line-height:var(--lh);max-width:75ch}.legal-body .legal-h{font-size:var(--fs-lg);font-weight:500;color:var(--p-slate-800);margin:var(--sp-6) 0 var(--sp-2)}.legal-body .legal-p,.legal-body>p{margin:0 0 var(--sp-3)}.legal-body .legal-ul{margin:0 0 var(--sp-3);padding-inline-start:var(--sp-6)}.legal-body .legal-ul li{margin-bottom:var(--sp-1)}.legal-table-wrap{overflow-x:auto;overflow-y:hidden;margin:0 0 var(--sp-4);border:1px solid var(--p-slate-200);border-radius:12px;background:var(--c-surface)}.legal-table-wrap:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.legal-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.legal-table th,.legal-table td{text-align:right;padding:var(--sp-3);border-bottom:1px solid var(--p-slate-200);vertical-align:top}.legal-table thead th{background:var(--p-slate-50);color:var(--c-text-2);font-weight:500}.legal-table tbody th{font-weight:500}.legal-table tr:last-child th,.legal-table tr:last-child td{border-bottom:0}.legal-nav{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-6);margin-top:var(--sp-8);padding-top:var(--sp-4);border-top:1px solid var(--p-slate-200)}.legal-nav a,.legal-link{color:var(--p-navy-700);text-decoration:underline;text-underline-offset:3px;min-height:var(--ctl-h);display:inline-flex;align-items:center}.legal-nav a:hover,.legal-link:hover{color:var(--p-slate-900)}.legal-nav a:focus-visible,.legal-link:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px;border-radius:var(--r-sm)}.legal-page>.app-footer{margin-top:var(--sp-4)}.dialog.legal-dialog{font-family:var(--font)}.dialog.legal-dialog .legal-dialog-intro{margin:var(--sp-2) 0 0;color:var(--c-text-2)}.dialog.legal-dialog .legal-dialog-scroll,.legal-dialog-scroll{height:50vh;min-height:50vh;max-height:none;flex:none;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;margin-top:var(--sp-4);padding:var(--sp-2) var(--sp-4) var(--sp-4);border:1px solid var(--c-border);border-radius:var(--r-ctl)}.legal-dialog-scroll:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.legal-doc-title{font-size:var(--fs-lg);font-weight:500;color:var(--p-navy-700);margin:var(--sp-6) 0 var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--p-slate-200)}.legal-doc-title:first-child{border-top:0;margin-top:var(--sp-2)}.legal-dialog .legal-body .legal-h{font-size:var(--fs-md)}.legal-dialog-foot{display:flex;flex-direction:column;gap:var(--sp-4);margin-top:var(--sp-6);border-top:1px solid var(--p-slate-200)}.legal-heading{font-size:var(--fs-lg);font-weight:var(--fw-medium);line-height:var(--lh-tight);color:var(--c-text);margin:var(--sp-2) 0 0}.legal-heading:focus{outline:none}.legal-check{display:flex;align-items:flex-start;gap:var(--sp-3);font-size:var(--fs-md);line-height:1.5;cursor:pointer;min-height:var(--ctl-h)}.legal-check input{width:22px;height:22px;margin-top:2px;flex-shrink:0;accent-color:var(--p-navy-700)}.legal-check input:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.legal-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);justify-content:flex-end}.legal-error{color:var(--p-red-700);font-size:var(--fs-md);margin:0}.legal-notice-body p{margin:0 0 var(--sp-3)}.legal-notice-body p:last-child{margin-bottom:0}.legal-links{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-1)}.legal-btn:not(.btn){display:inline-flex;align-items:center;justify-content:center;min-height:var(--ctl-h);padding:0 var(--sp-5);border-radius:var(--r-ctl);font:inherit;font-size:var(--fs-md);font-weight:var(--fw-medium);cursor:pointer;border:1px solid var(--c-primary);background:var(--c-primary);color:var(--c-on-primary);transition:background-color var(--dur-fast) var(--ease)}.legal-btn:not(.btn):hover{background:var(--c-primary-hover);border-color:var(--c-primary-hover)}.legal-btn:not(.btn):disabled{background:var(--c-disabled-bg);color:var(--c-disabled-text);border-color:var(--c-disabled-border);cursor:not-allowed}.legal-btn.secondary:not(.btn){background:var(--c-surface);color:var(--c-text);border-color:var(--c-ctl-border)}.legal-btn.secondary:not(.btn):hover{background:var(--c-row-hover)}.legal-btn:not(.btn):focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.legal-overlay{position:fixed;inset:0;background:var(--p-slate-900-a55);display:flex;align-items:center;justify-content:center;padding:var(--sp-4);z-index:var(--z-dialog)}.legal-overlay>.legal-dialog{background:var(--c-surface);border-radius:var(--r-card);width:min(560px,100%);max-height:calc(100vh - 32px);overflow-y:auto;box-shadow:var(--shadow-float);font-family:var(--font);color:var(--c-text);padding:var(--sp-6)}.legal-overlay .legal-dialog-head h2{font-size:var(--fs-lg);font-weight:var(--fw-medium);color:var(--c-text);margin:0}.legal-overlay .legal-dialog-head h2:focus{outline:none}.legal-overlay .legal-notice-body{margin-top:var(--sp-3);color:var(--c-text-2)}.legal-form{display:grid;gap:var(--sp-4)}.legal-field label,.legal-field-label{display:block;font-size:var(--fs-md);margin-bottom:var(--sp-1)}.legal-field input{width:100%;box-sizing:border-box;min-height:var(--ctl-h);border:1px solid var(--c-ctl-border);border-radius:12px;padding:0 var(--sp-3);font:inherit;font-size:var(--fs-md);color:var(--p-slate-800);background:var(--p-white)}.legal-field input:focus-visible{outline:3px solid var(--c-focus);outline-offset:1px;border-color:var(--c-primary)}.legal-field input[aria-invalid=true]{border-color:var(--p-red-700)}.legal-field .legal-static{min-height:var(--ctl-h);display:flex;align-items:center;padding:0 var(--sp-3);border-radius:12px;background:var(--p-slate-50);border:1px solid var(--p-slate-200)}.legal-field-err{color:var(--p-red-700);font-size:var(--fs-sm);margin-top:var(--sp-1)}.legal-field-note{margin:0;font-size:var(--fs-sm);color:var(--c-text-2)}.legal-blocked{min-height:100vh;background:var(--p-page-bg);display:flex;align-items:center;justify-content:center;padding:var(--sp-4);font-family:Rubik,Heebo,Arial,sans-serif}.legal-blocked .legal-card{max-width:560px;text-align:center}.legal-blocked .legal-title:after{margin-inline:auto}.legal-blocked .legal-actions{justify-content:center;margin-top:var(--sp-6)}@media(max-width:640px){.legal-title{font-size:var(--fs-2xl)}.legal-card{padding:var(--sp-4)}.legal-overlay>.legal-dialog{padding:var(--sp-4)}.legal-actions .btn,.legal-btn:not(.btn){flex:1 1 auto}}.legal-signed-meta{display:grid;grid-template-columns:max-content 1fr;gap:6px var(--sp-4);margin:var(--sp-3) 0 var(--sp-4);font-size:var(--fs-md)}.legal-signed-meta dt{font-weight:600;color:var(--p-navy-700)}.legal-signed-meta dd{margin:0}.legal-signed-doc{border-top:1px solid var(--p-slate-200);padding-top:var(--sp-3);margin-top:var(--sp-3)}.legal-stamp{font-size:var(--fs-md);margin:var(--sp-1) 0 var(--sp-2);display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}.legal-stamp code{background:var(--p-slate-100);padding:1px 6px;border-radius:4px}.legal-ok{color:var(--p-green-800);font-weight:600}.legal-bad{color:var(--p-red-700);font-weight:600}.legal-reg-docs{height:50vh;min-height:50vh;max-height:none;flex:none;overflow-y:auto;overflow-x:hidden;border:1px solid var(--p-slate-200);border-radius:12px;padding:var(--sp-2) var(--sp-4);background:var(--p-white)}.legal-reg-docs:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.legal-dialog{background:var(--p-white);border-radius:16px;box-shadow:0 8px 30px var(--p-slate-900-a12);font-family:Rubik,Heebo,Arial,sans-serif;color:var(--p-slate-800)}.legal-stamp code,.legal-signed-meta dd{overflow-wrap:anywhere;word-break:break-word}.urgent-bell-wrap{position:relative;display:inline-flex;vertical-align:middle;margin-inline-start:var(--sp-1)}.urgent-bell{display:inline-flex;align-items:center;justify-content:center;width:var(--ctl-h);height:var(--ctl-h);margin:-10px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--p-red-700);font-size:var(--fs-lg);line-height:1;cursor:pointer;transition:background-color var(--dur-fast) var(--ease)}.urgent-bell:hover{background:var(--p-red-100)}.urgent-bell:focus-visible{outline:3px solid var(--c-focus);outline-offset:-3px}.urgent-bell-tip{position:absolute;inset-inline-start:0;top:calc(100% + 6px);z-index:var(--z-menu);width:max-content;max-width:min(240px,70vw);padding:6px 10px;border-radius:6px;background:var(--p-slate-800);color:var(--p-white);font-size:var(--fs-sm);font-weight:500;line-height:1.4;white-space:normal;box-shadow:0 4px 12px var(--p-black-a18)}.sd-tri-overlay{position:fixed;inset:0;z-index:3000;background:var(--p-gray-800-a50);display:flex;align-items:center;justify-content:center;padding:24px;animation:sdTriFade .15s ease}.sd-tri-modal{position:relative;width:100%;max-width:320px;background:var(--p-white);border-radius:22px;box-shadow:0 20px 50px var(--p-black-a25);padding:var(--sp-6) var(--sp-6) var(--sp-3);direction:rtl;animation:sdTriPop .18s cubic-bezier(.2,.8,.3,1)}.sd-tri-modal-close{position:absolute;top:var(--sp-2);left:var(--sp-2);border-radius:50%;border:none;background:var(--p-page-bg);color:var(--p-gray-600)}.sd-tri-modal-head{text-align:center;padding-bottom:14px;margin-bottom:4px;border-bottom:1px solid var(--p-gray-200)}.sd-tri-modal-title{font-size:var(--fs-lg);font-weight:700;color:var(--p-gray-800);margin:0;padding:0 var(--sp-8)}.sd-tri-modal-sub{font-size:var(--fs-sm);color:var(--p-gray-500);margin-top:3px}.sd-tri-modal-row{display:flex;justify-content:space-between;align-items:center;padding:13px 2px;border-bottom:1px solid var(--p-gray-200)}.sd-tri-modal-row--final{border-bottom:none}.sd-tri-modal-label{font-size:var(--fs-md);color:var(--p-gray-600)}.sd-tri-modal-val{font-size:var(--fs-md);font-weight:700;color:var(--p-gray-700)}.sd-tri-empty{color:var(--p-slate-25);font-weight:500}.sd-tri-final{font-size:var(--fs-3xl);font-weight:800;color:var(--p-green-66);line-height:1;font-variant-numeric:tabular-nums}.sd-tri-final--awaiting{font-size:var(--fs-md);font-weight:700;color:var(--p-orange-700)}.sd-prev-row{justify-content:center}.sd-prev-grades-note{font-size:var(--fs-md);color:var(--p-gray-500);text-align:center;padding:12px 4px 10px;line-height:1.5}.sd-prev-row--restore{justify-content:space-between;gap:8px}.sd-prev-row--restore .sd-tri-modal-val{min-width:34px;text-align:center}.sd-prev-meta{flex:1;font-size:var(--fs-md);color:var(--p-gray-600);line-height:1.4;overflow-wrap:anywhere}.sd-prev-file{color:var(--p-gray-500)}.sd-prev-flag{color:var(--p-orange-700);font-weight:600}.sd-prev-active{white-space:nowrap;font-weight:700;color:var(--p-green-66);background:var(--p-green-06-2);border-radius:999px;padding:3px 9px}.sd-prev-restore-btn{white-space:nowrap;flex-shrink:0}.sd-prev-restored{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:var(--fs-md);color:var(--p-gray-700);background:var(--p-orange-50);border-radius:10px;padding:8px 10px;margin:10px 0 2px}.sd-prev-section{margin-top:6px;border-top:1px solid var(--p-gray-200)}.sd-prev-section-title{font-size:var(--fs-md);font-weight:700;color:var(--p-gray-600);padding:10px 2px 0}.sd-tri-modal-close:hover{background:var(--p-purple-09);color:var(--p-gray-700)}@keyframes sdTriFade{0%{opacity:0}to{opacity:1}}@keyframes sdTriPop{0%{transform:scale(.94);opacity:.6}to{transform:scale(1);opacity:1}}.student-panel{direction:rtl;font-family:Rubik,sans-serif;color:var(--sd-text);background:var(--sd-bg);padding:24px}.student-panel:not(.sd-portal){padding:var(--sp-6);min-height:100vh;background:var(--sd-bg)}.student-panel :focus-visible{outline-color:var(--sd-focus)}.sd-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);min-height:100vh;background:var(--sd-bg);font-family:Rubik,sans-serif;direction:rtl;text-align:center}.sd-loading-title{color:var(--sd-text);font-size:var(--fs-2xl);font-weight:700}.sd-loading-subtitle{color:var(--sd-text-muted);font-size:var(--fs-md);margin-bottom:var(--sp-4)}.sd-header{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-6);background:var(--sd-card);border:1px solid var(--sd-border);border-radius:var(--sd-radius-card);margin-bottom:var(--sp-5);box-shadow:var(--sd-shadow);border-top:3px solid var(--sd-primary)}.sd-logos-wrap{flex-shrink:0}.sd-school-logo{width:40px;height:40px;object-fit:contain;border-radius:8px}.sd-logo-sep{height:28px}.sd-org-logo{max-height:32px;max-width:60px;width:auto;height:auto;object-fit:contain;border-radius:6px}.sd-header-info{flex:1;min-width:0}.sd-header-name{font-size:var(--fs-xl);font-weight:700;color:var(--sd-text);margin:0;line-height:var(--lh-tight)}.sd-header-meta{font-size:var(--fs-md);color:var(--sd-text-secondary);margin-top:2px}.sd-header-actions{display:flex;gap:var(--sp-1);align-items:center}.student-panel .icon-btn{color:var(--sd-text-secondary)}.student-panel .icon-btn:hover{background:var(--sd-primary-light);color:var(--sd-primary-text)}.sd-bell-btn{position:relative}.sd-badge{position:absolute;top:4px;inset-inline-end:4px;min-width:20px;height:20px;padding:0 var(--sp-1);border-radius:50%;background:var(--sd-danger);color:var(--p-white);font-size:var(--fs-sm);font-weight:600;line-height:20px;text-align:center}.sd-mobile-menu{display:none;align-items:center;gap:var(--sp-1)}.sd-admin-nav{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);background:var(--sd-card);border:1px solid var(--sd-border);border-radius:var(--sd-radius-card);margin-bottom:var(--sp-4);box-shadow:var(--sd-shadow)}.sd-nav-counter{font-weight:600;font-size:var(--fs-md);color:var(--sd-text-secondary);min-width:80px;text-align:center;font-variant-numeric:tabular-nums}.sd-search-container{position:relative;margin-bottom:var(--sp-4)}.sd-search-input{width:100%;min-height:var(--ctl-h);padding:0 var(--sp-4);border:1px solid var(--c-ctl-border);border-radius:var(--sd-radius-input);font-size:var(--fs-md);font-family:Rubik,sans-serif;background:var(--sd-card);color:var(--sd-text);box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.sd-search-input:focus-visible{outline:3px solid var(--sd-focus);outline-offset:1px;border-color:var(--sd-primary)}.sd-search-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--sd-card);border:1px solid var(--c-ctl-border);border-radius:var(--sd-radius-input);box-shadow:var(--sd-shadow-lg);z-index:var(--z-menu);max-height:300px;overflow-y:auto;padding:6px}.sd-search-item{width:100%;min-height:var(--ctl-h);padding:0 var(--sp-3);border:0;border-radius:var(--r-sm);background:transparent;color:var(--sd-text);font-family:var(--font);font-size:var(--fs-md);text-align:start;cursor:pointer;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--c-ctl-border)}.sd-search-item:hover{background:var(--sd-primary-light)}.sd-search-item:focus-visible{outline:3px solid var(--sd-focus);outline-offset:-3px}.sd-search-item-class{color:var(--sd-text-secondary)}.sd-notification-center{display:none;position:fixed;top:70px;right:var(--sp-6);width:360px;max-height:420px;background:var(--sd-card);border:1px solid var(--sd-border);border-radius:var(--sd-radius-card);box-shadow:var(--sd-shadow-lg);z-index:var(--z-menu);overflow:hidden}.sd-notification-center.show{display:block}.sd-notification-header{padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4);padding-inline-start:var(--sp-5);border-bottom:1px solid var(--sd-border);display:flex;justify-content:space-between;align-items:center;font-weight:600}.sd-notification-title{margin:0;font-size:var(--fs-lg);font-weight:var(--fw-medium);color:var(--sd-text)}.sd-notification-list{padding:var(--sp-3);overflow-y:auto;max-height:350px}.sd-notification-item{padding:var(--sp-3) var(--sp-4);border:1px solid var(--sd-border);border-radius:var(--sd-radius-input);margin-bottom:var(--sp-2);color:var(--sd-text);background:var(--sd-primary-light);border-right:3px solid var(--sd-primary)}.sd-notification-item.is-unread{background:var(--sd-primary-light);border-color:var(--sd-primary-ring)}.sd-notification-item:last-child{margin-bottom:0}.sd-notification-item-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.sd-notification-item strong{font-weight:var(--fw-medium)}.sd-notification-date{display:block;color:var(--sd-text-secondary);font-size:var(--fs-sm);margin-top:2px}.sd-notification-text{margin:var(--sp-1) 0 0}.sd-notification-empty{padding:var(--sp-6);text-align:center;color:var(--sd-text-muted);font-size:var(--fs-md)}.sd-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-4);margin-bottom:var(--sp-5)}.sd-stat-card{background:var(--sd-card);border:1px solid var(--sd-border);border-radius:var(--sd-radius-card);padding:var(--sp-5);text-align:center;min-width:0;box-shadow:var(--sd-shadow);transition:transform .15s,box-shadow .15s}.sd-stat-card--compact{cursor:help}.sd-stat-card--compact .sd-stat-number{font-size:.85em}.sd-stat-icon{display:flex;justify-content:center;margin-bottom:var(--sp-2);color:var(--sd-primary)}.sd-stat-number{font-size:var(--fs-num);font-weight:700;color:var(--sd-primary);line-height:1.1;font-variant-numeric:tabular-nums}.sd-stat-label{color:var(--sd-text-secondary);font-size:var(--fs-sm);margin-top:6px}.sd-stat-card--plan{padding-top:calc(var(--sp-5) + 30px)}.sd-stat-sub{color:var(--sd-text-secondary);font-size:var(--fs-sm);margin-top:var(--sp-1);font-weight:600}.sd-stat-sub--warn{display:inline-flex;align-items:center;gap:var(--sp-1);color:var(--p-amber-700);font-weight:var(--fw-medium)}.sd-stat-sub--warn .ui-icon{color:var(--s-warn-icon)}.sd-eligibility{background:var(--sd-card);border:1px solid var(--sd-border);border-radius:var(--sd-radius-card);padding:var(--sp-6);margin-bottom:var(--sp-5);box-shadow:var(--sd-shadow)}.sd-eligibility-title{font-size:var(--fs-lg);font-weight:600;margin:0 0 var(--sp-3);color:var(--sd-text)}.sd-eligibility-status{margin-bottom:var(--sp-4);font-weight:700}.sd-requirements{list-style:none;margin:0;padding:0}.sd-requirement{display:flex;align-items:center;gap:var(--sp-2);padding:6px 0;font-size:var(--fs-md);color:var(--sd-text)}.sd-requirement.met .sd-req-icon{color:var(--s-ok-icon)}.sd-requirement.not-met .sd-req-icon{color:var(--s-bad-icon)}.sd-banner{margin-top:var(--sp-3)}.sd-progress-wrap{margin-bottom:var(--sp-6)}.sd-progress-label{font-size:var(--fs-md);color:var(--sd-text-secondary);margin-bottom:6px}.sd-progress-bar{width:100%;height:8px;background:var(--p-gray-200);border-radius:4px;overflow:hidden}.sd-progress-fill{height:100%;background:var(--sd-primary);border-radius:4px;transition:width .3s}.sd-subjects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:var(--sp-5);margin-bottom:var(--sp-6)}.sd-subject-card{background:var(--sd-card);border:1px solid var(--sd-border);border-radius:var(--sd-radius-card);overflow:hidden;min-width:0;box-shadow:var(--sd-shadow);transition:transform .18s,box-shadow .18s}.sd-subject-header{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-3);padding:var(--sp-5) var(--sp-6);border-bottom:1px solid var(--sd-border)}.sd-subject-title-area{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1) var(--sp-2)}.sd-subject-name{flex-basis:100%;font-size:var(--fs-lg);font-weight:600;color:var(--sd-text);margin:0;line-height:var(--lh-tight)}.sd-subject-units{display:inline-block;background:var(--sd-primary-light);color:var(--sd-primary-text, var(--sd-primary));font-size:var(--fs-sm);font-weight:500;padding:2px 10px;border-radius:20px}.sd-subject-units--muted{background:var(--s-neu-bg);color:var(--s-neu-text)}.sd-final-grade{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xl);font-weight:700;flex-shrink:0;background:var(--sd-primary-light);color:var(--sd-text);border:1px solid var(--sd-primary-ring);font-variant-numeric:tabular-nums;box-shadow:0 2px 8px var(--p-black-a10)}.sd-final-grade.missing{background:var(--sd-grade-missing-bg);color:var(--sd-grade-missing);border-color:var(--sd-border);font-size:var(--fs-md)}.sd-final-grade:empty{background:transparent;border:2px dashed var(--p-slate-16);box-shadow:none}.sd-grade-text-label{font-size:var(--fs-md);font-weight:600;color:var(--sd-text-secondary);white-space:nowrap}.sd-floor--sep{border-top:1px dashed var(--sd-border)}.sd-floor-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-3) var(--sp-6) var(--sp-1);font-size:var(--fs-md);color:var(--sd-text-secondary)}.sd-floor-title{font-weight:var(--fw-medium)}.sd-floor-status{display:inline-flex;align-items:center;gap:var(--sp-2)}.sd-floor-grade{font-weight:var(--fw-medium);color:var(--sd-text);font-variant-numeric:tabular-nums}.sd-floor-grade.is-voided{color:var(--sd-text-secondary);text-decoration:line-through}.sd-floor-void{margin:var(--sp-1) var(--sp-6) var(--sp-2);font-size:var(--fs-sm)}.sd-floor-empty{padding:var(--sp-2) var(--sp-6);color:var(--sd-text-secondary);font-size:var(--fs-md)}.sd-exam-list{padding:0}.sd-exam-item{display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-2);padding:var(--sp-3) var(--sp-6);border-bottom:1px solid var(--p-gray-100)}.sd-exam-item:last-child{border-bottom:none}.sd-exam-row-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.sd-exam-info{flex:1;min-width:0}.sd-exam-name{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:var(--fs-md);color:var(--sd-text);overflow-wrap:anywhere;font-weight:500}.sd-exam-name strong{font-weight:var(--fw-medium)}.sd-exam-details{font-size:var(--fs-sm);color:var(--sd-text-muted);margin-top:2px}.sd-exam-cell{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}.sd-exam-grade{font-size:var(--fs-xl);font-weight:700;min-width:50px;text-align:center;color:var(--sd-text);font-variant-numeric:tabular-nums}.sd-exam-grade.missing-grade,.sd-exam-grade.examined{color:var(--sd-text-secondary);font-size:var(--fs-md)}.sd-exam-awaiting{white-space:nowrap}.sd-tri-info{flex-shrink:0;width:var(--ctl-h);height:var(--ctl-h);margin:-6px;padding:0;border-radius:50%;border:1px solid var(--p-gray-200);background:var(--p-white);color:var(--p-orange-700);cursor:pointer;display:inline-grid;place-items:center;transition:background .15s,color .15s,border-color .15s;font-weight:700}.sd-tri-info:hover{background:var(--ad-primary, var(--p-amber-500));color:var(--p-white);border-color:var(--ad-primary-text)}.sd-tri-info:focus-visible{outline:3px solid var(--sd-focus);outline-offset:-3px}.sd-tri-info-placeholder{flex-shrink:0;width:32px;height:32px;display:inline-block}.sd-simulator-btn{flex-shrink:0;transition:background .15s,border-color .15s}.sd-exam-tags{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2)}.sd-moedb-frame{display:inline-flex;align-items:center;flex-wrap:wrap;gap:var(--sp-1) var(--sp-2);padding:2px var(--sp-1) 2px var(--sp-1);padding-inline-start:var(--sp-3);border:1px solid var(--p-blue-07);border-radius:10px;background:var(--p-slate-50)}.sd-moedb-label{font-size:var(--fs-sm);color:var(--sd-text-secondary)}.student-panel .btn.sd-tag-btn{font-size:var(--fs-sm)}.sd-moedb-inline{flex:none;display:inline-flex}.sd-moedb-inline .btn.sd-tag-btn{min-height:32px;padding:0 var(--sp-2);font-size:var(--fs-sm)}.sd-prev-tag{min-height:32px;padding:0 var(--sp-3);border:none;border-radius:999px;background:var(--p-purple-06-2);color:var(--p-purple-55);font-family:var(--font);font-size:var(--fs-sm);font-weight:600;cursor:pointer;white-space:nowrap;position:relative;transition:filter .12s}.sd-prev-tag:after{content:"";position:absolute;inset:-6px 0}.sd-prev-tag:hover{background:var(--sd-primary-light);filter:brightness(.96)}.sd-prev-tag:focus-visible{outline:3px solid var(--sd-focus);outline-offset:2px}.sd-blocker-notice{margin:var(--sp-3) var(--sp-6) var(--sp-1);font-size:var(--fs-md);border-radius:6px;background:var(--p-red-50);border-right:4px solid var(--sd-danger);color:var(--p-red-800);font-weight:600;padding:8px 12px}.sd-blocker-notice-level{font-weight:400;margin-inline-start:var(--sp-1);color:var(--p-red-700)}.sd-additional{background:var(--sd-card);border:1px solid var(--sd-border);border-radius:var(--sd-radius-card);padding:var(--sp-5) var(--sp-6);margin-bottom:var(--sp-6);box-shadow:var(--sd-shadow)}.sd-additional-title{color:var(--sd-text);font-size:var(--fs-lg);font-weight:var(--fw-medium);margin:0 0 var(--sp-3)}.sd-additional-list{display:flex;gap:var(--sp-2);flex-wrap:wrap}.sd-additional-pill{display:flex;align-items:center;gap:var(--sp-2);border:1px solid var(--sd-border);padding:6px 14px;border-radius:20px;font-size:var(--fs-sm);background:var(--p-slate-50)}.sd-additional-code{color:var(--sd-text-secondary)}.sd-additional-grade{font-weight:var(--fw-medium);color:var(--sd-text);font-variant-numeric:tabular-nums}.sd-additional-info{color:var(--sd-text-secondary)}.sd-additional-note{font-size:var(--fs-sm);color:var(--sd-text-muted);margin-top:var(--sp-3)}.sd-annual-fab{position:fixed;bottom:var(--sp-6);left:var(--sp-6);z-index:var(--z-nav)}.sd-annual-fab button{background:var(--sd-primary);color:var(--sd-on-primary);border:0;border-radius:var(--r-pill);min-height:52px;padding:0 var(--sp-6);font-size:var(--fs-md);font-weight:var(--fw-medium);font-family:var(--font);cursor:pointer;box-shadow:var(--shadow-float);display:flex;align-items:center;gap:var(--sp-2);transition:transform .2s,box-shadow .2s}.sd-annual-fab button:hover{background:var(--sd-primary-hover)}.sd-annual-fab button:focus-visible{outline:3px solid var(--sd-focus);outline-offset:3px}.sd-fab-count{background:var(--p-amber-500);color:var(--p-white);border-radius:50%;min-width:22px;height:22px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-sm);font-weight:600}.student-panel.sd-portal.dialog{background:var(--sd-card);color:var(--sd-text)}.sd-form-group{margin-bottom:var(--sp-4)}.sd-form-group label{display:block;margin-bottom:var(--sp-1);font-size:var(--fs-md);color:var(--sd-text);font-weight:500}.sd-form-group input,.sd-form-group textarea{width:100%;min-height:var(--ctl-h);padding:0 var(--sp-3);border:1px solid var(--c-ctl-border);border-radius:var(--sd-radius-input);font-size:var(--fs-md);font-family:Rubik,sans-serif;box-sizing:border-box;color:var(--sd-text);background:var(--sd-card);transition:border-color .15s,box-shadow .15s}.sd-form-group textarea{padding:var(--sp-3)}.sd-form-group input:focus-visible,.sd-form-group textarea:focus-visible{outline:3px solid var(--sd-focus);outline-offset:1px;border-color:var(--sd-primary)}.sd-alert{margin-bottom:var(--sp-4);border-radius:var(--sd-radius-input)}.sd-password-req{border:1px solid var(--sd-border);border-radius:var(--sd-radius-input);padding:var(--sp-4);margin:var(--sp-4) 0 0;background:var(--p-slate-50)}.sd-password-req h4{margin:0 0 var(--sp-2);font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--sd-text)}.sd-password-req ul{list-style:none;padding:0;margin:0}.sd-password-req li{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0;font-size:var(--fs-md);color:var(--sd-text-secondary)}.sd-password-req .sd-req-icon{color:var(--sd-text-secondary)}.sd-password-req li.valid{color:var(--sd-text)}.sd-password-req li.valid .sd-req-icon{color:var(--s-ok-icon)}.sd-password-match{margin-top:var(--sp-3);font-weight:500}.sd-annual-card{border:1px solid var(--sd-border);border-radius:var(--sd-radius-input);padding:var(--sp-4);margin-bottom:var(--sp-3);background:var(--p-slate-50);border-right:4px solid var(--sd-primary)}.sd-annual-card:last-child{margin-bottom:0}.sd-annual-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-3)}.sd-annual-subject{font-size:var(--fs-md);font-weight:600;color:var(--sd-text);margin:0}.sd-annual-meta{color:var(--sd-text-muted);font-size:var(--fs-sm);margin-top:var(--sp-1)}.sd-annual-grade-circle{min-width:88px;padding:var(--sp-2) var(--sp-3);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;background:var(--sd-primary-light);color:var(--sd-text);text-align:center}.sd-annual-grade-circle.is-missing{background:var(--s-neu-bg);color:var(--s-neu-text)}.sd-annual-grade-circle .value{font-size:var(--fs-xl);font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}.sd-annual-grade-circle.is-missing .value{font-size:var(--fs-sm)}.sd-annual-grade-circle .label{font-size:var(--fs-sm);margin-top:2px;line-height:1.2}.sd-annual-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-4)}.sd-annual-deadline{font-size:var(--fs-sm);color:var(--sd-text-muted);margin-top:var(--sp-2);display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-1)}.sd-appeal-status{width:100%;margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--sd-border);border-radius:var(--sd-radius-input);background:var(--sd-card);color:var(--sd-text);font-family:var(--font);font-size:var(--fs-sm);text-align:start;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-1)}.sd-appeal-status:hover{border-color:var(--sd-ctl-border)}.sd-appeal-status:focus-visible{outline:3px solid var(--sd-focus);outline-offset:2px}.sd-appeal-needs{font-weight:var(--fw-medium);color:var(--sd-text)}.sd-appeal-more{color:var(--sd-primary-text)}.sd-grade-hero{background:var(--sd-primary);color:var(--p-white);padding:var(--sp-6);border-radius:var(--sd-radius-input);text-align:center;margin-bottom:var(--sp-5)}.sd-grade-hero .big-grade{font-size:var(--fs-num);font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}.sd-grade-hero .grade-label{color:var(--sd-text-secondary);font-size:var(--fs-md);margin-top:var(--sp-1)}.sd-detail-section{margin-bottom:var(--sp-5)}.sd-detail-heading{color:var(--sd-text-secondary);margin:0 0 var(--sp-3);font-size:var(--fs-md);font-weight:var(--fw-medium)}.sd-category-card{border:1px solid var(--sd-border);padding:var(--sp-4);border-radius:var(--sd-radius-input);margin-bottom:var(--sp-2);background:var(--p-slate-50)}.sd-category-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-2)}.sd-category-header strong{font-weight:var(--fw-medium)}.sd-category-item{display:flex;justify-content:space-between;gap:var(--sp-3);padding:6px 0;border-bottom:1px solid var(--p-gray-200);font-size:var(--fs-md);color:var(--sd-text-secondary)}.sd-category-item:last-child{border-bottom:none}.sd-category-item .item-grade{font-weight:600;color:var(--sd-text);font-variant-numeric:tabular-nums}.sd-category-item.is-strong{font-weight:var(--fw-medium);color:var(--sd-text)}.sd-category-item.is-total{border-top:1px solid var(--sd-border);margin-top:var(--sp-1)}.sd-category-weight-text{color:var(--sd-text-secondary);font-size:var(--fs-sm)}.sd-category-summary{margin-top:var(--sp-2);padding-top:var(--sp-2);border-top:1px dashed var(--sd-border)}.sd-category-comment{color:var(--sd-text);white-space:pre-wrap}.sd-final-summary{border:1px solid var(--sd-border);border-radius:var(--sd-radius-input);padding:var(--sp-3) var(--sp-4)}.sd-final-summary-row{display:flex;justify-content:space-between;font-weight:var(--fw-medium);font-size:var(--fs-md);color:var(--sd-text)}.sd-final-summary-row.is-calc{font-weight:var(--fw-regular);color:var(--sd-text-secondary);margin-bottom:6px}.sd-appeal-intro{text-align:center;color:var(--sd-text-secondary);margin:0 0 var(--sp-5)}.sd-appeal-intro strong{font-weight:var(--fw-medium);color:var(--sd-text)}.sd-appeal-textarea{width:100%;padding:var(--sp-3);border:1px solid var(--c-ctl-border);border-radius:var(--sd-radius-input);font-size:var(--fs-md);font-family:Rubik,sans-serif;resize:vertical;box-sizing:border-box;min-height:120px;color:var(--sd-text);background:var(--sd-card);transition:border-color .15s,box-shadow .15s}.sd-appeal-textarea:focus-visible{outline:3px solid var(--sd-focus);outline-offset:1px;border-color:var(--sd-primary)}.sd-char-count{font-size:var(--fs-sm);color:var(--sd-text-muted);margin-top:var(--sp-1)}.sd-appeal-detail{border:1px solid var(--sd-border);padding:var(--sp-4);border-radius:var(--sd-radius-input);background:var(--p-slate-50)}.sd-appeal-status-row{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3)}.sd-appeal-status-row strong{font-weight:var(--fw-medium)}.sd-chat{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-3)}.sd-chat-msg{max-width:85%;padding:10px 14px;border-radius:var(--r-ctl);border:1px solid var(--sd-border)}.sd-chat-msg.is-mine{align-self:flex-end;background:var(--sd-primary-light);border-color:var(--sd-primary-ring)}.sd-chat-msg.is-theirs{align-self:flex-start;background:var(--sd-card)}.sd-chat-author{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--sd-text-secondary);margin-bottom:var(--sp-1)}.sd-chat-msg.is-mine .sd-chat-author{color:var(--sd-primary-text)}.sd-chat-text{margin:0;white-space:pre-wrap;font-size:var(--fs-md);color:var(--sd-text)}.sd-chat-time{font-size:var(--fs-sm);color:var(--sd-text-secondary);margin-top:var(--sp-1)}.sd-appeal-result{margin-top:var(--sp-2)}.sd-appeal-waiting{text-align:center;color:var(--sd-text-secondary);margin-top:var(--sp-2)}.sd-appeal-reply{border-top:1px solid var(--sd-border);padding-top:var(--sp-3);margin-top:var(--sp-2)}.sd-moedb-exam{text-align:center;color:var(--sd-text-secondary);margin:0 0 var(--sp-4)}.sd-moedb-exam strong{font-weight:var(--fw-medium);color:var(--sd-text)}.sd-error{background:var(--sd-card);border:1px solid var(--sd-border);border-radius:var(--sd-radius-card);max-width:440px;margin:var(--sp-12) auto;box-shadow:var(--sd-shadow)}.sd-error p{color:var(--sd-text-secondary);margin:0 0 var(--sp-4)}.sd-push-banner{position:fixed;bottom:var(--sp-4);left:var(--sp-4);right:var(--sp-4);max-width:640px;margin:0 auto;background:var(--sd-card);color:var(--sd-text);border:1px solid var(--sd-border);border-radius:var(--r-card);box-shadow:var(--shadow-float);padding:var(--sp-3) var(--sp-4);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);z-index:var(--z-toast);direction:rtl;font-size:var(--fs-md)}.sd-push-text{flex:1;line-height:1.5}.sd-push-actions{display:flex;align-items:center;gap:var(--sp-1);flex-shrink:0}@media(max-width:1024px){.sd-stats{grid-template-columns:repeat(3,1fr)}.sd-subjects-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}}@media(max-width:768px){.student-panel:not(.sd-portal){padding:var(--sp-3)}.sd-header-actions{display:none}.sd-mobile-menu{display:flex}.sd-stats{grid-template-columns:repeat(2,1fr)}.sd-subjects-grid{grid-template-columns:1fr}.sd-notification-center{width:calc(100% - 24px);right:var(--sp-3)}.sd-header{padding:var(--sp-3) var(--sp-4)}.sd-subject-header{padding:var(--sp-4)}.sd-exam-item{padding:var(--sp-3) var(--sp-4)}.sd-floor-header{padding:var(--sp-3) var(--sp-4) var(--sp-1)}.sd-floor-void,.sd-blocker-notice{margin-inline:var(--sp-4)}.sd-floor-empty{padding:var(--sp-2) var(--sp-4)}.sd-eligibility{padding:var(--sp-4)}.sd-annual-fab{bottom:var(--sp-4);left:var(--sp-4)}.sd-push-banner{flex-wrap:wrap}}@media(max-width:480px){.sd-stats{gap:var(--sp-2)}.sd-stat-card{padding:var(--sp-3)}.sd-stat-card--plan{padding-top:calc(var(--sp-3) + 30px)}.sd-final-grade{width:48px;height:48px;font-size:var(--fs-lg)}.sd-exam-grade{font-size:var(--fs-lg)}.sd-subjects-grid{grid-template-columns:minmax(0,1fr)}.sd-school-logo{width:32px;height:32px}.sd-org-logo{max-height:24px;max-width:48px}.sd-logo-sep{height:24px}}@media print{.sd-header,.sd-admin-nav,.sd-search-container,.sd-notification-center,.sd-mobile-menu,.sd-annual-fab,.sd-push-banner,.sd-progress-wrap,.student-panel .btn,.student-panel .icon-btn{display:none!important}.student-panel:not(.sd-portal){background:var(--c-surface)!important;padding:3mm!important;min-height:0!important}.sd-stats{display:flex!important;flex-wrap:nowrap!important;gap:1mm!important;margin-bottom:2mm!important}.sd-stat-card{flex:1!important;padding:1mm!important}.sd-stat-icon{display:none!important}.sd-stat-number{font-size:10pt!important}.sd-stat-label{font-size:5pt!important}.sd-eligibility{padding:1.5mm 2mm!important;margin-bottom:2mm!important;font-size:6pt!important}.sd-subjects-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:1.5mm!important}.sd-subject-card{font-size:6pt!important;break-inside:avoid!important}.sd-subject-header{padding:1.5mm!important}.sd-subject-name{font-size:7pt!important}.sd-final-grade{width:28px!important;height:28px!important;font-size:7pt!important}.sd-exam-item{padding:.5mm 1mm!important;font-size:5.5pt!important}.sd-exam-grade{font-size:7pt!important}}.sd-search-item:last-child{border-bottom:none}.sd-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 18px var(--p-black-a9)}.sd-stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--sd-primary);border-radius:var(--sd-radius-card) var(--sd-radius-card) 0 0}.sd-stat-card:nth-child(1){background:var(--p-blue-50)}.sd-stat-card:nth-child(2){background:var(--p-green-50)}.sd-stat-card:nth-child(3){background:var(--p-red-50)}.sd-stat-card:nth-child(4){background:var(--p-purple-50)}.sd-stat-card:nth-child(5){background:var(--p-orange-50)}.sd-eligibility:before{content:"";position:absolute;top:0;bottom:0;right:0;width:6px;border-radius:0 var(--sd-radius-card) var(--sd-radius-card) 0}.sd-eligibility-status.pass{color:var(--sd-success)}.sd-eligibility-status.fail{color:var(--sd-warning-text)}.sd-subject-card:hover{transform:translateY(-3px);box-shadow:0 8px 28px var(--p-black-a10)}.sd-subject-credit{background:var(--p-green-06-2);color:var(--p-green-76);border:1px solid var(--p-green-26);font-weight:600;border-radius:20px;padding:2px 10px}.sd-final-grade.fail{background:var(--sd-grade-fail-bg);color:var(--sd-grade-fail);border:2px solid var(--sd-grade-fail)}.sd-exam-grade.fail{color:var(--sd-grade-fail)}.sd-tag-status{font-weight:600}.sd-additional h4{color:var(--sd-text-secondary);font-weight:600}.sd-password-req h5{font-weight:600;color:var(--sd-text)}.sd-password-match.match{color:var(--sd-success)}.sd-password-match.no-match{color:var(--sd-danger-text)}.sd-appeal-status.pending{background:var(--p-orange-50);border:1px solid var(--p-orange-200);color:var(--p-orange-700)}.sd-appeal-status.resolved{background:var(--p-green-50);border:1px solid var(--p-green-200);color:var(--p-green-700)}.sd-appeal-status.awaiting{background:var(--p-blue-50);border:2px solid var(--p-blue-500);color:var(--p-blue-700);animation:sd-pulse-border 2s ease-in-out infinite}.sd-error h4{color:var(--sd-danger-text)}.sd-exam-grade.excellent{color:var(--sd-grade-excellent)}.sd-exam-grade.good{color:var(--sd-grade-good)}.sd-exam-grade.warning{color:var(--sd-grade-warning)}.sd-final-grade.excellent{background:var(--sd-grade-excellent-bg);color:var(--sd-grade-excellent);border:2px solid var(--sd-grade-excellent)}.sd-final-grade.good{background:var(--sd-grade-good-bg);color:var(--sd-grade-good);border:2px solid var(--sd-grade-good)}.sd-final-grade.warning{background:var(--sd-grade-warning-bg);color:var(--sd-grade-warning);border:2px solid var(--sd-grade-warning)}.sd-final-grade.missing{border:2px solid var(--sd-grade-missing)}.sd-final-grade{box-shadow:0 2px 8px var(--p-black-a10)}.sd-exam-grade.missing-grade{color:var(--sd-grade-missing);font-weight:500}.sd-exam-grade.examined{color:var(--sd-info);font-weight:500}.student-panel.sd-theme-night .sd-stat-card:nth-child(1){background:var(--sd-night-stat-1)}.student-panel.sd-theme-night .sd-stat-card:nth-child(2){background:var(--sd-night-stat-2)}.student-panel.sd-theme-night .sd-stat-card:nth-child(3){background:var(--sd-night-stat-3)}.student-panel.sd-theme-night .sd-stat-card:nth-child(4){background:var(--sd-night-stat-4)}.student-panel.sd-theme-night .sd-stat-card:nth-child(5){background:var(--sd-night-stat-5)}.student-panel.sd-theme-night .sd-eligibility,.student-panel.sd-theme-night .sd-subject-card{background:var(--sd-card)}.student-panel.sd-theme-night .sd-exam-item,.student-panel.sd-theme-night .sd-subject-header{border-bottom-color:var(--sd-border)}.student-panel.sd-theme-night .sd-notification-item{background:var(--sd-night-notif)}.student-panel.sd-theme-night .sd-search-input{background:var(--sd-card);color:var(--sd-text);border-color:var(--sd-ctl-border)}.student-panel.sd-theme-night .sd-additional-pill{background:var(--sd-bg);border-color:var(--sd-border)}.student-panel.sd-theme-night .sd-additional-pill .sd-additional-code,.student-panel.sd-theme-night .sd-additional-pill .sd-additional-info{color:var(--sd-text-secondary)}.student-panel.sd-theme-night .sd-additional-pill .sd-additional-grade{color:var(--sd-text)}.student-panel.sd-theme-night .app-footer-text{color:var(--sd-text-muted)}.student-panel.sd-theme-night .app-footer-brand,.student-panel.sd-theme-night .app-footer a{color:var(--sd-primary)}.sd-stat-card,.sd-eligibility{position:relative;overflow:hidden}.sd-stat-card:nth-child(1):before{background:var(--p-blue-500)}.sd-stat-card:nth-child(2):before{background:var(--p-green-500)}.sd-stat-card:nth-child(3):before{background:var(--p-red-500)}.sd-stat-card:nth-child(4):before{background:var(--p-violet-500)}.sd-stat-card:nth-child(5):before{background:var(--p-amber-500)}.sd-eligibility:before{content:"";position:absolute;top:0;bottom:0;right:0;width:6px;background:var(--sd-warning)}.sd-eligibility.eligible:before{background:var(--sd-success)}.sd-eligibility.not-eligible:before{background:var(--sd-warning)}@keyframes sd-pulse-border{0%,to{border-color:var(--p-blue-500)}50%{border-color:var(--p-blue-300)}}.disclaimer-overlay{position:fixed;inset:0;background:var(--p-black-a70);z-index:var(--z-dialog);display:grid;place-items:center;padding:var(--sp-4);overflow-y:auto}.disclaimer-modal{background:var(--p-white);color:var(--c-text);border-radius:15px;width:100%;max-width:640px;max-height:calc(100vh - 32px);box-shadow:0 10px 40px var(--p-black-a30);display:flex;flex-direction:column;padding:var(--sp-6);direction:rtl;text-align:start}.disclaimer-title{color:var(--p-red-53);margin:0 0 var(--sp-4);font-size:var(--fs-lg);font-weight:var(--fw-medium);line-height:var(--lh-tight)}.disclaimer-scroll-area{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:var(--sp-3)}.disclaimer-scroll-area:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px;border-radius:var(--r-sm)}.disclaimer-box p{margin:0;color:var(--p-gray-80)}.disclaimer-lead{margin:var(--sp-1) 0 0}.disclaimer-list{margin:var(--sp-1) 0 0;padding-inline-start:var(--sp-5);line-height:var(--lh)}.disclaimer-bold{font-weight:var(--fw-medium)}.disclaimer-tip{margin:0;color:var(--c-text-2);font-size:var(--fs-md);line-height:var(--lh);background:var(--p-sky-06);border-radius:8px;padding:15px}.disclaimer-tip strong{font-weight:var(--fw-medium);color:var(--c-text)}.disclaimer-checkbox-area{border-top:1px solid var(--c-border);padding-top:var(--sp-4);margin-top:var(--sp-4);background:var(--p-sky-06);border-radius:8px}.disclaimer-checkbox-label{display:flex;align-items:flex-start;cursor:pointer;gap:var(--sp-3);min-height:var(--ctl-h)}.disclaimer-checkbox{width:22px;height:22px;margin-top:1px;cursor:pointer;flex-shrink:0;accent-color:var(--p-bs-green)}.disclaimer-checkbox:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.disclaimer-checkbox-label span{font-size:var(--fs-md);line-height:1.4}.disclaimer-button-area{display:flex;justify-content:flex-end;margin-top:var(--sp-4)}@media(max-width:640px){.disclaimer-modal{padding:var(--sp-4)}.disclaimer-button-area .btn{flex:1}}.disclaimer-box{border-radius:10px;border-width:2px;border-style:solid}.disclaimer-tip p{color:var(--p-blue-74)}.disclaimer-title{color:var(--disc-title);display:flex;align-items:center;justify-content:center;gap:var(--sp-2)}.disclaimer-title .ui-icon-duo{color:var(--disc-title)}.disclaimer-box.disclaimer-box-warning{background:var(--disc-warn-bg);border:2px solid var(--disc-warn-border);color:var(--disc-warn-text)}.disclaimer-box.disclaimer-box-success{background:var(--disc-ok-bg);border:2px solid var(--disc-ok-border);color:var(--disc-ok-text)}.disclaimer-box.disclaimer-box-danger{background:var(--disc-bad-bg);border:2px solid var(--disc-bad-border);color:var(--disc-bad-text)}.disclaimer-box .inline-alert-title{font-weight:700}.disclaimer-box-warning .inline-alert-icon{color:var(--disc-warn-text)}.disclaimer-box-success .inline-alert-icon{color:var(--disc-ok-text)}.disclaimer-highlight-red{color:var(--disc-highlight);font-weight:700}.disclaimer-modal{color:var(--c-text);animation:disclaimerSlideIn .3s ease-out}.disclaimer-tip,.disclaimer-tip strong,.disclaimer-checkbox-label,.disclaimer-checkbox-label span{color:var(--c-text)}.student-panel.sd-theme-night .disclaimer-tip,.student-panel.sd-theme-night .disclaimer-checkbox-area{background:var(--sd-bg);border-color:var(--sd-border)}.disclaimer-box-warning{background:var(--p-bs-yellow-bg);border-color:var(--p-bs-yellow)}.disclaimer-box-warning h4{color:var(--p-yellow-73)}.disclaimer-box-success{background:var(--p-bs-green-bg);border-color:var(--p-bs-green)}.disclaimer-box-success h4{color:var(--p-green-79)}.disclaimer-box-danger{background:var(--p-bs-red-bg);border-color:var(--p-bs-red)}.disclaimer-bold-center{color:var(--p-red-72);font-weight:700}@keyframes disclaimerSlideIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.sd-sim-overlay{position:fixed;inset:0;z-index:calc(var(--z-dialog) + 1);background:var(--p-gray-800-a50);display:flex;align-items:center;justify-content:center;padding:24px;animation:sdSimFade .15s ease}.sd-sim-modal{position:relative;width:100%;max-width:420px;max-height:88vh;overflow-y:auto;background:var(--p-white);border-radius:22px;box-shadow:0 20px 50px var(--p-black-a25);padding:var(--sp-6) var(--sp-6) var(--sp-4);direction:rtl;animation:sdSimPop .18s cubic-bezier(.2,.8,.3,1)}.sd-sim-close{position:absolute;top:var(--sp-2);left:var(--sp-2);border-radius:50%;border:none;background:var(--p-page-bg);color:var(--p-gray-600)}.sd-sim-head{text-align:center;padding-bottom:14px;margin-bottom:4px;border-bottom:1px solid var(--p-gray-200)}.sd-sim-title{font-size:var(--fs-lg);font-weight:700;color:var(--p-gray-800);margin:0;padding:0 var(--sp-8)}.sd-sim-sub{font-size:var(--fs-sm);color:var(--p-gray-500);margin-top:3px}.sd-sim-achieved{text-align:center;background:var(--p-purple-50);border-radius:14px;padding:var(--sp-4);margin:var(--sp-4) 0}.sd-sim-achieved-label{font-size:var(--fs-md);color:var(--p-purple-44);font-weight:600}.sd-sim-achieved-val{font-size:var(--fs-4xl);font-weight:800;color:var(--p-purple-56);line-height:1.1}.sd-sim-achieved-note{font-size:var(--fs-md);color:var(--p-gray-500);margin-top:2px}.sd-sim-target-row{display:flex;align-items:center;justify-content:space-between;padding:4px 2px 12px}.sd-sim-target-label{font-size:var(--fs-md);color:var(--p-gray-600);font-weight:600}.sd-sim-input{width:64px;padding:6px 8px;border:1px solid var(--c-ctl-border);border-radius:var(--r-sm);font-size:var(--fs-md);text-align:center;direction:ltr;background:var(--p-white);color:var(--p-gray-700)}.sd-sim-input{min-height:var(--ctl-h);border-radius:8px;font-variant-numeric:tabular-nums}.sd-sim-input:focus-visible{outline:3px solid var(--c-focus);outline-offset:1px}.sd-sim-input--grade{width:58px}.sd-sim-list{display:flex;flex-direction:column;gap:8px}.sd-sim-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--p-purple-07-2);border-radius:12px;background:var(--p-gray-50)}.sd-sim-item--filled{background:var(--p-gray-50);border-color:var(--p-green-08)}.sd-sim-item--edited{background:var(--p-orange-50);border-color:var(--p-amber-19)}.sd-sim-item-was{font-size:var(--fs-md);color:var(--p-amber-700);font-weight:600;margin-top:3px}.sd-sim-item-info{min-width:0}.sd-sim-item-name{font-size:var(--fs-md);font-weight:600;color:var(--p-gray-700)}.sd-sim-item-meta{font-size:var(--fs-md);color:var(--p-gray-500);margin-top:1px}.sd-sim-item-min{font-size:var(--fs-md);color:var(--p-amber-700);font-weight:600;margin-top:var(--sp-1)}.sd-sim-item-grade{font-size:var(--fs-xl);font-weight:800;color:var(--p-gray-600);flex-shrink:0}.sd-sim-result{margin-top:16px;text-align:center;border-radius:14px;padding:14px}.sd-sim-result--pending,.sd-sim-result--pass,.sd-sim-result--fail{background:var(--c-surface-2);border:1px solid var(--c-border)}.sd-sim-result-hint{font-size:var(--fs-md);color:var(--p-gray-600)}.sd-sim-result-grade{font-size:var(--fs-xl);font-weight:800;color:var(--p-gray-700)}.sd-sim-result-verdict{margin-top:var(--sp-2);font-weight:700}.sd-sim-unavailable{text-align:center;padding:28px 14px}.sd-sim-unavailable-title{font-size:var(--fs-md);font-weight:700;color:var(--p-gray-700)}.sd-sim-unavailable-sub{font-size:var(--fs-sm);color:var(--p-gray-500);margin-top:6px}.sd-sim-close:hover{background:var(--p-purple-09);color:var(--p-gray-700)}.sd-sim-item-min.ok{color:var(--p-green-66)}.sd-sim-result--pending{background:var(--p-gray-100)}.sd-sim-result--pass{background:var(--p-emerald-06);border:1px solid var(--p-emerald-18)}.sd-sim-result--fail{background:var(--p-rose-50);border:1px solid var(--p-red-13)}.sd-sim-result--pass .sd-sim-result-verdict{color:var(--p-green-66)}.sd-sim-result--fail .sd-sim-result-verdict{color:var(--p-red-53)}@keyframes sdSimFade{0%{opacity:0}to{opacity:1}}@keyframes sdSimPop{0%{transform:scale(.94);opacity:.6}to{transform:scale(1);opacity:1}}.tc-btn{margin-block:-10px;margin-inline-start:var(--sp-1);vertical-align:middle}.tc-btn-full{color:var(--c-primary)}.dialog-scrim:has(>.tc-side){justify-items:start;align-items:stretch;padding:var(--sp-3)}.dialog.tc-side{max-width:760px;height:calc(100vh - 24px);max-height:none;overflow:visible;display:flex;flex-direction:column}.dialog.tc-side>.tc-side-body{flex:1 1 auto;min-height:0;overflow-y:auto}@media(max-width:640px){.dialog-scrim:has(>.tc-side){padding:var(--sp-2)}.dialog.tc-side{height:calc(100vh - 16px);padding:var(--sp-4)}}.tc-loading{display:grid;place-items:center;padding:var(--sp-8) 0}.tc-picker.is-side{position:absolute;top:0;bottom:0;right:calc(100% + var(--sp-3));width:min(480px,calc(100vw - 100% - 3 * var(--sp-3)));background:var(--c-surface);color:var(--c-text);border-radius:var(--r-card);box-shadow:var(--shadow-float);padding:var(--sp-5);overflow-y:auto;text-align:start;animation:tc-slide-in .2s ease-out both}.tc-picker.is-side.is-closing{animation:tc-slide-out .2s ease-out both;pointer-events:none}@keyframes tc-slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@keyframes tc-slide-out{0%{opacity:1;transform:none}to{opacity:0;transform:translate(24px)}}@media(prefers-reduced-motion:reduce){.tc-picker.is-side,.tc-picker.is-side.is-closing{animation:none}}.tc-picker-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2)}.tc-picker-head .tc-h3{margin:0;flex-basis:100%}.tc-main[hidden]{display:none}.tc-section-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2)}.tc-section-head .tc-h3{margin:0}.tc-rows{list-style:none;margin:var(--sp-3) 0 0;padding:0;display:grid;gap:var(--sp-2)}.tc-row{border:1px solid var(--c-border-strong);border-radius:var(--r-card);background:var(--c-surface)}.tc-row.needs{border-inline-start:4px solid var(--c-accent-text)}.tc-row-h{margin:0;font-size:var(--fs-md)}.tc-row-btn{all:unset;box-sizing:border-box;width:100%;min-height:var(--ctl-h);cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3);padding:var(--sp-3);border-radius:var(--r-card);color:var(--c-heading);font-weight:var(--fw-medium);text-align:start}.tc-row-btn:hover{background:var(--c-surface-2)}.tc-row-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.tc-row-title{flex:1 1 220px;overflow-wrap:anywhere}.tc-row-btn .tc-tags{font-weight:var(--fw-regular, 400)}.tc-row-chev{flex:0 0 auto;color:var(--c-text-2)}.tc-due{color:var(--c-text-2);font-size:var(--fs-sm);white-space:nowrap}.tc-row-body{padding:0 var(--sp-3) var(--sp-3);border-top:1px solid var(--c-border)}.tc-save-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);min-height:24px}.tc-save-state{margin:0;color:var(--c-text-2);font-size:var(--fs-sm);flex:1 1 200px}.tc-save-state.is-error{color:var(--c-danger);font-weight:var(--fw-medium);font-size:var(--fs-md)}.tc-err{margin:0;color:var(--c-danger);font-weight:var(--fw-medium)}.tc-err-why{display:block;font-weight:var(--fw-regular, 400)}.tc-section{margin-top:var(--sp-6)}.tc-section:first-child{margin-top:0}.tc-h3{font-size:var(--fs-lg);margin:0 0 var(--sp-2);color:var(--c-heading)}.tc-h4,.tc-h5{font-size:var(--fs-md);margin:var(--sp-4) 0 var(--sp-2);color:var(--c-heading)}.tc-muted{margin:var(--sp-1) 0;color:var(--c-text-2)}.tc-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp-2) var(--sp-4);margin:0 0 var(--sp-2)}.tc-details dt{color:var(--c-text-2);font-size:var(--fs-sm)}.tc-details dd{margin:0;font-weight:var(--fw-medium)}.tc-tabs{margin:var(--sp-2) 0;flex-wrap:wrap}.tc-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-2)}.tc-pick{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) 0;border-bottom:1px solid var(--c-border)}.tc-pick-main{display:grid;gap:var(--sp-1);flex:1 1 220px;min-width:0}.tc-pick-name{overflow-wrap:anywhere}.tc-pick-tracked{color:var(--c-text-2);font-weight:var(--fw-medium);white-space:nowrap}.tc-pick-err{flex-basis:100%}.tc-tags{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1)}.tc-actions{margin-top:var(--sp-3)}.tc-manual{margin-top:var(--sp-4)}.tc-manual-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}.tc-manual-row .field-input{flex:1 1 220px}.tc-log{list-style:none;margin:0;padding:0;display:grid;gap:var(--sp-2)}.tc-log-entry{border-inline-start:3px solid var(--c-border-strong);padding-inline-start:var(--sp-3)}.tc-log-text{margin:0;color:var(--c-text);font-size:var(--fs-md);white-space:pre-wrap;overflow-wrap:anywhere}.tc-log-meta{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--sp-1);color:var(--c-text-2);font-size:var(--fs-sm)}.tc-log-entry.is-auto .tc-log-text{color:var(--c-text-2);font-style:italic}.tc-log-auto-icon{vertical-align:-2px;margin-inline-end:var(--sp-1)}.tc-log-actions{display:inline-flex;gap:0;margin-block:-10px;margin-inline-start:auto;color:var(--c-text-2)}.tc-log-actions .icon-btn,.tc-log-actions button{color:var(--c-text-2)}@media(hover:hover)and (pointer:fine){.tc-log-actions{opacity:0;transition:opacity .12s ease-out}.tc-log-entry:hover .tc-log-actions,.tc-log-entry:focus-within .tc-log-actions{opacity:1}}@media(prefers-reduced-motion:reduce){.tc-log-actions{transition:none}}.tc-note-form{display:grid;gap:var(--sp-2);margin-top:var(--sp-3)}.tc-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-3);margin-bottom:var(--sp-3)}.tc-filters>div{min-width:200px;flex:1 1 200px}.tc-filters>.btn{flex:0 0 auto}.tc-name-cell{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1)}.tc-row-actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.tc-print{display:none}@media print{.tc-report-screen{display:none!important}.tc-print{display:block}.tc-print h2{margin:0 0 var(--sp-2)}.tc-print-student{break-inside:avoid;margin-top:var(--sp-4)}.tc-print table{width:100%;border-collapse:collapse}.tc-print th,.tc-print td{border:1px solid currentColor;padding:4px 6px;text-align:start}}.tc-show-all{margin-bottom:var(--sp-2)}.tc-field{margin-top:var(--sp-2);max-width:320px}.tc-field-due{margin-top:var(--sp-4)}.tc-status-line{margin:var(--sp-1) 0 0;color:var(--c-text-2);font-size:var(--fs-sm)}.tc-row-head{display:flex;align-items:flex-start;gap:var(--sp-1)}.tc-row-head .tc-row-h{flex:1 1 auto;min-width:0}.tc-row-remove{flex:0 0 auto;margin:2px 0 0 var(--sp-1)}.tc-row-err{padding:0 var(--sp-3) var(--sp-2)}.tc-archive{margin-top:var(--sp-6)}.tc-archive-list{list-style:none;margin:var(--sp-2) 0 0;padding:0;display:grid;gap:var(--sp-2);color:var(--c-text-2);font-size:var(--fs-sm);overflow-wrap:anywhere}@media print{.tc-archive{display:none!important}}.am-wrap{position:relative;display:inline-flex}.am-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;margin-inline-end:var(--sp-1);border:1px solid var(--c-ctl-border);border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-text-2);line-height:1;cursor:pointer;transition:all .12s}.am-btn:hover{background:var(--c-primary-tint);border-color:var(--c-primary);color:var(--c-primary)}.am-btn:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.am-btn[aria-expanded=true]{background:var(--c-primary-tint);border-color:var(--c-primary);color:var(--c-primary)}.am-compact{width:24px;height:24px}.am-pop{z-index:calc(var(--z-dialog) + 1);min-width:220px;max-width:320px;max-height:340px;overflow-y:auto;background:var(--p-white);border:1px solid var(--p-gray-300);border-radius:8px;box-shadow:0 8px 24px var(--p-gray-900-a14);padding:6px;text-align:start;direction:rtl}.am-empty{padding:var(--sp-2) var(--sp-3);color:var(--text-secondary, var(--p-slate-54-2));font-size:var(--fs-sm)}.am-group+.am-group{border-top:1px solid var(--p-gray-200);margin-top:6px;padding-top:6px}.am-group-title{padding:var(--sp-1) var(--sp-3) 2px;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary, var(--p-slate-54-2))}.am-opt{display:flex;align-items:center;gap:var(--sp-2);width:100%;min-height:40px;padding:0 var(--sp-3);border:none;border-radius:6px;background:transparent;color:var(--p-gray-900);font-family:var(--font);font-size:var(--fs-sm);text-align:start;cursor:pointer}.am-opt:hover:not(:disabled){background:var(--c-quiet-hover)}.am-opt:focus-visible{outline:3px solid var(--c-focus);outline-offset:-3px}.am-opt:disabled{cursor:default}.am-checked{background:var(--c-primary-tint);color:var(--p-gray-900);font-weight:600}.am-check{flex:0 0 16px;display:inline-flex;color:var(--p-green-600);font-weight:800}.am-lbl{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ma-undo-bar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--p-green-79);background:var(--p-bs-green-bg);border:1px solid var(--p-green-26);border-radius:6px;padding:var(--sp-1) var(--sp-1) var(--sp-1) var(--sp-3);padding-inline-start:var(--sp-3);margin-bottom:var(--sp-3);font-weight:600}.ma-undo-ok{display:inline-flex;color:var(--p-green-66);font-weight:800}.ma-undo-bar .ma-undo-btn{margin-inline-start:auto;font-size:var(--fs-sm)}.ma-assign-undo-note{color:var(--p-indigo-500)}.ma-assign-undo-bar{background:var(--p-indigo-50);border-color:var(--p-indigo-200);color:var(--p-indigo-800)}.ma-assign-undo-bar .ma-undo-ok{color:var(--p-indigo-600)}.cluster-tone-0{--cl-bg: #dbeafe;--cl-fg: #1e3a8a;--cl-bd: #93c5fd}.cluster-tone-1{--cl-bg: #ede9fe;--cl-fg: #4c1d95;--cl-bd: #c4b5fd}.cluster-tone-2{--cl-bg: #dcfce7;--cl-fg: #14532d;--cl-bd: #86efac}.cluster-tone-3{--cl-bg: #fef3c7;--cl-fg: #78350f;--cl-bd: #fcd34d}.cluster-tone-4{--cl-bg: #fce7f3;--cl-fg: #831843;--cl-bd: #f9a8d4}.cluster-tone-5{--cl-bg: #ccfbf1;--cl-fg: #134e4a;--cl-bd: #5eead4}.cluster-tone-other{--cl-bg: #f1f5f9;--cl-fg: #334155;--cl-bd: #cbd5e1}.sd-cluster+.sd-cluster{margin-top:24px}.sd-cluster-title,.sps-cluster-title{display:flex;align-items:center;gap:8px;margin:0 0 var(--sp-2, 8px);padding:0;border:0;background:none;color:var(--c-text, #1e293b);font-size:18px;font-weight:500;line-height:1.3}.sd-cluster-title:after,.sps-cluster-title:after{content:"";flex:1 1 auto;min-width:16px;height:1px;background:var(--c-border-strong, #cbd5e1)}.sd-cluster-count,.sps-cluster-count{color:var(--c-text-2, #475569);font-size:var(--fs-sm, 14px);font-weight:400;white-space:nowrap}.sps-cluster{break-inside:auto}.sps-cluster+.sps-cluster{margin-top:24px}.sps-cluster-title{break-after:avoid;color:#1e293b}.sps-cluster-count{color:#475569}.sps-cluster-title:after{background:#94a3b8}.scl-editor{display:grid;gap:14px;margin-top:18px;padding-top:14px;border-top:1px solid var(--c-border, #e2e8f0)}.scl-editor h4{margin:0;font-size:var(--fs-lg, 18px)}.scl-layout{display:flex;gap:8px;flex-wrap:wrap}.scl-status{min-height:1.4em;font-size:var(--fs-sm, 14px);color:var(--c-text-2, #475569)}.scl-status.is-error{color:var(--s-bad-text, #b91c1c)}.scl-clusters{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.scl-cluster-btn{min-height:40px;padding:6px 14px;border-radius:999px;cursor:pointer;border:2px solid var(--cl-bd);background:var(--cl-bg);color:var(--cl-fg);font:inherit;font-weight:400}.scl-cluster-btn[aria-pressed=true]{border-color:var(--cl-fg);font-weight:500}.scl-edit-area{display:grid;gap:10px;padding:12px;border:1px solid var(--c-border, #e2e8f0);border-radius:8px}.scl-edit-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.scl-edit-row{display:flex;align-items:center;gap:6px;padding-inline-start:8px;border-inline-start:4px solid var(--cl-bd)}.scl-active-hint{margin:0;padding:10px 12px;border-radius:8px;background:var(--s-info-bg, #EAF0F5);color:var(--s-info-text, #2F4D64);border:1px solid var(--s-info-border, #D5E1EA);font-size:var(--fs-md, 16px);font-weight:500}.scl-cluster-btn:focus-visible,.scl-subject:focus-visible{outline:3px solid var(--c-focus, #1d4ed8);outline-offset:2px}.scl-name-field{display:grid;gap:2px;flex:1 1 160px;min-width:0}.scl-name-field input{min-height:40px;padding:0 10px;border:1px solid var(--c-ctl-border, #94a3b8);border-radius:6px;font:inherit;width:100%;box-sizing:border-box}.scl-name-field input[aria-invalid=true]{border-color:var(--s-bad-text, #b91c1c)}.scl-name-error{color:var(--s-bad-text, #b91c1c);font-size:var(--fs-sm, 14px)}.scl-hint{margin:0;color:var(--c-text-2, #475569);font-size:var(--fs-sm, 14px)}.scl-subjects{display:flex;flex-wrap:wrap;gap:8px}.scl-subject{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:4px 6px 4px 12px;cursor:pointer;border:1px solid var(--c-ctl-border, #94a3b8);border-radius:8px;background:var(--c-surface, #fff);color:var(--c-text, #1e293b);font:inherit}.scl-subject[aria-pressed=true]{border-width:2px;border-color:var(--cl-fg)}.scl-subject-tag{padding:2px 8px;border-radius:999px;background:var(--cl-bg);color:var(--cl-fg);border:1px solid var(--cl-bd);font-size:var(--fs-sm, 14px);font-weight:600;white-space:nowrap}@media(max-width:480px){.scl-subject{flex:1 1 100%;justify-content:space-between}}.scl-locked{margin:0 0 12px;padding:10px 12px;border-radius:8px;background:var(--s-info-bg, #EAF0F5);color:var(--s-info-text, #2F4D64);border:1px solid var(--s-info-border, #D5E1EA);font-size:var(--fs-md, 16px)}.scl-editor [aria-disabled=true]{cursor:not-allowed}.scl-editor .scl-cluster-btn[aria-disabled=true],.scl-editor .scl-subject[aria-disabled=true]{border-style:dashed}.scl-editor input[aria-disabled=true]{background:var(--c-surface-2, #f8fafc);color:var(--c-text, #1e293b)}.splash{position:fixed;inset:0;z-index:var(--z-toast);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:var(--sp-4);background:linear-gradient(160deg,var(--p-slate-50) 0%,var(--p-slate-100) 100%);transition:opacity .3s ease}.splash--exiting{opacity:0;pointer-events:none}.splash__lockup{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;animation:splashShiftUp .5s cubic-bezier(.65,0,.35,1) 1.1s both}.splash__logo{display:block;width:120px;height:120px;animation:splashLogoIn .55s cubic-bezier(.34,1.56,.64,1) .05s both;filter:drop-shadow(0 20px 60px var(--p-blue-88-a18))}.splash__arc-track{opacity:.15;animation:splashTrackIn .3s ease .3s both}.splash__arc{stroke-dasharray:138.3;stroke-dashoffset:34.3;animation:splashArcDraw 1s cubic-bezier(.65,0,.35,1) .35s both}.splash__wordmark{margin-top:var(--sp-6);font-family:Rubik,sans-serif;font-weight:700;font-size:var(--fs-4xl);line-height:var(--lh-tight);color:var(--splash-ink);animation:splashRiseIn .45s cubic-bezier(.33,1,.68,1) 1.25s both}.splash__slogan{margin-top:var(--sp-3);font-family:Frank Ruhl Libre,serif;font-weight:500;font-size:var(--fs-2xl);line-height:1.4;color:var(--splash-ink-soft);animation:splashRiseIn .45s cubic-bezier(.33,1,.68,1) 1.55s both}.splash__highlight{position:relative;display:inline-block;padding:0 3px;font-weight:700;color:var(--splash-gold)}.splash__highlight-bar{position:absolute;right:0;left:0;bottom:0;height:3px;background:var(--splash-gold-soft);border-radius:3px;transform-origin:right center;animation:splashUnderline .45s cubic-bezier(.33,1,.68,1) 1.85s both}.splash__highlight-text{position:relative}.splash__dots{position:absolute;bottom:var(--sp-12);left:0;right:0;display:flex;justify-content:center;animation:splashFade .4s ease 2.05s both}@media(max-width:768px){.splash__logo{width:96px;height:96px}.splash__wordmark{font-size:var(--fs-3xl)}.splash__slogan{font-size:var(--fs-xl)}}@keyframes splashLogoIn{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}@keyframes splashTrackIn{0%{opacity:0}to{opacity:.15}}@keyframes splashArcDraw{0%{stroke-dashoffset:138.3}to{stroke-dashoffset:34.3}}@keyframes splashBetIn{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}@keyframes splashShiftUp{0%{transform:translateY(72px)}to{transform:translateY(0)}}@keyframes splashRiseIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes splashUnderline{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes splashFade{0%{opacity:0}to{opacity:1}}.splash__glow{position:absolute;width:700px;height:700px;border-radius:50%;left:50%;top:46%;transform:translate(-50%,-50%);background:radial-gradient(circle,color-mix(in srgb,var(--splash-gold) 16%,transparent) 0%,transparent 62%);opacity:0;animation:splashFade 1s ease .4s both}.splash__bet{transform-origin:32px 32px;transform-box:view-box;animation:splashBetIn .45s cubic-bezier(.34,1.56,.64,1) .95s both}.splash__dots{gap:12px}.splash__dots{color:var(--splash-dots)}.app-center{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-4);background:var(--c-bg);color:var(--c-text);font-family:var(--font);text-align:center;direction:rtl}.app-center-logo{width:64px;height:64px;margin-bottom:var(--sp-4);animation:logoFadeIn .6s ease}.app-center-brand{animation:logoFadeIn .6s ease .2s both;font-size:var(--fs-xl);font-weight:var(--fw-medium);color:var(--c-primary)}.app-center-title{margin:0;font-size:var(--fs-2xl);font-weight:var(--fw-medium);line-height:var(--lh-tight);color:var(--c-text)}.app-center-text{font-size:var(--fs-md);color:var(--c-text-2);animation:logoFadeIn .6s ease .3s both}.app-center-icon{color:var(--s-bad-icon);margin-bottom:var(--sp-2)}.app-center .btn{margin-top:var(--sp-4)}.app-progress{width:200px;height:3px;margin-top:var(--sp-6);border-radius:2px;background:var(--c-border);overflow:hidden}.app-progress-bar{height:100%;border-radius:2px;background:var(--c-primary);animation:welcomeProgress 1.5s ease forwards}.timeout-dialog-body{display:flex;align-items:flex-start;gap:var(--sp-3);color:var(--c-text-2)}.timeout-dialog-body .ui-icon{flex:none;margin-top:2px;color:var(--s-warn-icon)}.timeout-timer,.timeout-count{font-family:var(--font);font-size:var(--fs-2xl);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums;color:var(--c-text)}.install-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-3);margin:var(--sp-3) auto;width:calc(100% - 2 * var(--sp-4));max-width:960px;padding:var(--sp-3) var(--sp-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-card);color:var(--c-text);font-family:var(--font);direction:rtl;animation:slideUpBanner .4s ease}.install-banner-closing{animation:slideDownBanner .4s ease-in forwards;pointer-events:none}.install-banner-main{display:flex;align-items:center;gap:var(--sp-3);flex:1 1 260px;min-width:0}.install-banner-icon{width:40px;height:40px;border-radius:var(--r-ctl);flex:none}.install-banner-title{font-size:var(--fs-md);font-weight:var(--fw-medium)}.install-banner-text{font-size:var(--fs-sm);color:var(--c-text-2)}.install-banner-actions{display:flex;gap:var(--sp-2);flex-shrink:0}.switch-overlay{position:fixed;inset:0;z-index:var(--z-toast);display:flex;align-items:center;justify-content:center;padding:var(--sp-4);background:var(--c-scrim);direction:rtl;animation:switchFadeIn .2s ease}.switch-overlay-box{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-6) var(--sp-8);background:var(--c-surface);border-radius:var(--r-card);box-shadow:var(--shadow-float);font-family:var(--font);font-size:var(--fs-lg);font-weight:var(--fw-medium);color:var(--c-text)}@media print{.install-banner,.switch-overlay{display:none!important}}.install-banner{background:linear-gradient(135deg,var(--install-bg-1),var(--install-bg-2));border-color:transparent;color:var(--p-white);box-shadow:0 4px 20px var(--p-black-a20)}.install-banner .install-banner-title{color:var(--p-white);font-weight:600}.install-banner .install-banner-text{color:var(--install-text-2)}.install-banner .btn-quiet{color:var(--p-white)}.install-banner .btn-quiet:hover{background:var(--install-quiet-hover);color:var(--p-white)}@keyframes timeoutModalAppear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes timerPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.timeout-timer{animation:timerPulse 1s ease-in-out infinite}@keyframes logoFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes welcomeFadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes welcomeProgress{0%{width:0%}to{width:100%}}@keyframes slideUpBanner{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideDownBanner{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}@keyframes switchFadeIn{0%{opacity:0}to{opacity:1}}.app-center--welcome .app-center-logo{animation:welcomeFadeIn .5s ease}.app-center--welcome .app-center-title{animation:welcomeFadeIn .5s ease .2s both}.app-center--welcome .app-center-text{animation:welcomeFadeIn .5s ease .4s both}.app-center--welcome .app-progress{animation:welcomeFadeIn .5s ease .5s both}@media(prefers-reduced-motion:reduce){.install-banner,.install-banner-closing{animation:none!important}}.app-center .ui-spinner{margin-top:var(--sp-4)}
