@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Source+Sans+3:wght@400;500;600;700&display=swap";*{box-sizing:border-box}body:has(.modal-overlay){overflow:hidden}:root,[data-theme=light]{--font-sans: "Source Sans 3", "Segoe UI", sans-serif;--font-display: "Space Grotesk", "Segoe UI", sans-serif;--color-ink: #1b1e2b;--color-ink-muted: #5b6274;--color-surface: #ffffff;--color-surface-alt: #f5f6f9;--color-surface-bg: #eef1f5;--color-surface-header: rgba(255, 255, 255, .9);--color-border: #e3e6ee;--color-accent: #4a90d9;--color-accent-strong: #2d6eb5;--color-accent-warm: #f4801f;--color-accent-light: rgba(74, 144, 217, .12);--color-accent-subtle: rgba(74, 144, 217, .08);--color-focus-ring: rgba(74, 144, 217, .12);--color-purple: #7c3aed;--color-purple-strong: #6d28d9;--color-purple-light: #f5f3ff;--color-purple-bg: #ede9fe;--color-blue: #0d65b3;--color-blue-dark: #074b92;--color-danger: #d64545;--color-danger-light: rgba(214, 69, 69, .1);--color-warning: #f3b04c;--color-warning-light: rgba(243, 176, 76, .15);--color-warning-text: #8a5a12;--color-success: #2e7d32;--color-success-light: rgba(46, 125, 50, .12);--priority-high: #ef5350;--priority-high-light: rgba(239, 83, 80, .12);--priority-medium: #ff9800;--priority-medium-light: rgba(255, 152, 0, .12);--priority-low: #66bb6a;--priority-low-light: rgba(102, 187, 106, .12);--brand-google: #4285f4;--brand-google-light: rgba(66, 133, 244, .12);--badge-syllabus: #9c27b0;--badge-labs: #f57c00;--badge-readings: #1976d2;--badge-resources: #388e3c;--badge-assignments: #d32f2f;--role-parent: #b1571e;--role-teacher: #2e7d32;--role-admin: #a85f13;--color-accent-dark: #1c5a9c;--color-accent-warm-strong: #d97745;--color-success-dark: #246c2c;--color-inactive: #c1c6d1;--color-overlay: rgba(0, 0, 0, .5);--color-overlay-light: rgba(0, 0, 0, .3);--color-muted: #888;--color-muted-light: #aaa;--color-muted-border: #d1d5db;--color-success-bg: #e8f5e9;--color-success-border: #c8e6c9;--color-warning-bg: #fff3e0;--color-warning-border: #ffe0b2;--color-info: #1565c0;--color-info-bg: #e3f2fd;--color-info-border: #bbdefb;--shadow-xs: 0 1px 3px rgba(19, 27, 46, .06);--shadow-sm: 0 2px 8px rgba(19, 27, 46, .08);--shadow-soft: 0 8px 24px rgba(19, 27, 46, .08);--shadow-md: 0 4px 16px rgba(19, 27, 46, .1);--shadow-lg: 0 8px 30px rgba(19, 27, 46, .15);--shadow-lift: 0 12px 30px rgba(19, 27, 46, .12);--shadow-xl: 0 20px 40px rgba(19, 27, 46, .18);--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-xl: 24px;--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-fab: 900;--z-fab-chatbot: 910;--z-chatbot-panel: 920;--z-modal: 1000;--z-toast: 10000;--bg-dot-color: rgba(12, 18, 34, .05);--bg-dot-opacity: .35;--skeleton-from: rgba(230, 233, 240, .9);--skeleton-mid: rgba(245, 247, 251, .9);font-family:var(--font-sans);line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-ink);background-color:var(--color-surface-bg)}[data-theme=dark]{--color-ink: #e4e4e7;--color-ink-muted: #a1a1aa;--color-surface: #1e1e1e;--color-surface-alt: #2a2a2a;--color-surface-bg: #141414;--color-surface-header: rgba(30, 30, 30, .94);--color-border: #3f3f46;--color-accent: #a78bfa;--color-accent-strong: #8b5cf6;--color-accent-warm: #22d3ee;--color-accent-light: rgba(167, 139, 250, .15);--color-accent-subtle: rgba(167, 139, 250, .08);--color-focus-ring: rgba(167, 139, 250, .25);--color-purple: #c4b5fd;--color-purple-strong: #a78bfa;--color-purple-light: rgba(167, 139, 250, .14);--color-purple-bg: rgba(167, 139, 250, .18);--color-blue: #7dd3fc;--color-blue-dark: #38bdf8;--color-danger: #fca5a5;--color-danger-light: rgba(252, 165, 165, .14);--color-warning: #fde68a;--color-warning-light: rgba(253, 230, 138, .14);--color-warning-text: #fef08a;--color-success: #6ee7b7;--color-success-light: rgba(110, 231, 183, .14);--priority-high: #fca5a5;--priority-high-light: rgba(252, 165, 165, .14);--priority-medium: #fde68a;--priority-medium-light: rgba(253, 230, 138, .14);--priority-low: #6ee7b7;--priority-low-light: rgba(110, 231, 183, .14);--brand-google: #7dd3fc;--brand-google-light: rgba(125, 211, 252, .14);--badge-syllabus: #d8b4fe;--badge-labs: #fdba74;--badge-readings: #7dd3fc;--badge-resources: #86efac;--badge-assignments: #fda4af;--role-parent: #fdba74;--role-teacher: #6ee7b7;--role-admin: #fde68a;--color-accent-dark: #7c3aed;--color-accent-warm-strong: #0ea5e9;--color-success-dark: #10b981;--color-inactive: #52525b;--color-overlay: rgba(0, 0, 0, .7);--color-overlay-light: rgba(0, 0, 0, .5);--color-muted: #a1a1aa;--color-muted-light: #71717a;--color-muted-border: #52525b;--color-success-bg: rgba(110, 231, 183, .12);--color-success-border: rgba(110, 231, 183, .25);--color-warning-bg: rgba(253, 230, 138, .12);--color-warning-border: rgba(253, 230, 138, .25);--color-info: #7dd3fc;--color-info-bg: rgba(125, 211, 252, .12);--color-info-border: rgba(125, 211, 252, .25);--shadow-xs: 0 1px 3px rgba(0, 0, 0, .25);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-soft: 0 2px 16px rgba(0, 0, 0, .35);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .45);--shadow-lift: 0 4px 24px rgba(0, 0, 0, .45);--shadow-xl: 0 20px 40px rgba(0, 0, 0, .5);--bg-dot-color: rgba(161, 161, 170, .06);--bg-dot-opacity: .2;--skeleton-from: rgba(63, 63, 70, .9);--skeleton-mid: rgba(82, 82, 91, .9)}[data-theme=focus]{--color-ink: #2c2a26;--color-ink-muted: #6b6560;--color-surface: #fefdfb;--color-surface-alt: #f5f0ea;--color-surface-bg: #faf8f5;--color-surface-header: rgba(250, 248, 245, .92);--color-border: #ddd6cc;--color-accent: #5a8fb5;--color-accent-strong: #4a7fa5;--color-accent-warm: #c47f3b;--color-accent-light: rgba(90, 143, 181, .12);--color-accent-subtle: rgba(90, 143, 181, .08);--color-focus-ring: rgba(90, 143, 181, .15);--color-purple: #7b6b8a;--color-purple-strong: #6b5b7a;--color-purple-light: #f3eff7;--color-purple-bg: #ebe5f0;--color-blue: #4a7c9e;--color-blue-dark: #3a6c8e;--color-danger: #c45a5a;--color-danger-light: rgba(196, 90, 90, .1);--color-warning: #c9943a;--color-warning-light: rgba(201, 148, 58, .12);--color-warning-text: #7a6030;--color-success: #4a8a4a;--color-success-light: rgba(74, 138, 74, .12);--priority-high: #c45a5a;--priority-high-light: rgba(196, 90, 90, .1);--priority-medium: #c9943a;--priority-medium-light: rgba(201, 148, 58, .1);--priority-low: #5a9e6a;--priority-low-light: rgba(90, 158, 106, .1);--brand-google: #5a8ab0;--brand-google-light: rgba(90, 138, 176, .12);--badge-syllabus: #8a6a9e;--badge-labs: #c47f3b;--badge-readings: #4a7c9e;--badge-resources: #5a8a5a;--badge-assignments: #b05a5a;--role-parent: #a87a3a;--role-teacher: #4a8a4a;--role-admin: #8a6a30;--color-accent-dark: #3a6f95;--color-accent-warm-strong: #a86830;--color-success-dark: #3a7a3a;--color-inactive: #c5beb5;--color-overlay: rgba(44, 42, 38, .5);--color-overlay-light: rgba(44, 42, 38, .3);--color-muted: #8a8480;--color-muted-light: #a09a95;--color-muted-border: #ccc5bb;--color-success-bg: rgba(74, 138, 74, .1);--color-success-border: rgba(74, 138, 74, .2);--color-warning-bg: rgba(201, 148, 58, .1);--color-warning-border: rgba(201, 148, 58, .2);--color-info: #4a7c9e;--color-info-bg: rgba(74, 124, 158, .1);--color-info-border: rgba(74, 124, 158, .2);--shadow-xs: 0 1px 3px rgba(44, 42, 38, .04);--shadow-sm: 0 2px 8px rgba(44, 42, 38, .05);--shadow-soft: 0 8px 24px rgba(44, 42, 38, .06);--shadow-md: 0 4px 16px rgba(44, 42, 38, .08);--shadow-lg: 0 8px 30px rgba(44, 42, 38, .1);--shadow-lift: 0 12px 30px rgba(44, 42, 38, .1);--shadow-xl: 0 20px 40px rgba(44, 42, 38, .12);--bg-dot-color: rgba(44, 42, 38, .04);--bg-dot-opacity: .25;--skeleton-from: rgba(221, 214, 204, .6);--skeleton-mid: rgba(240, 236, 230, .6)}body{margin:0;min-width:320px;color:var(--color-ink);background:var(--color-surface-bg);min-height:100vh}body:before{content:"";position:fixed;inset:0;background-image:radial-gradient(var(--bg-dot-color) 1px,transparent 1px);background-size:28px 28px;opacity:var(--bg-dot-opacity);pointer-events:none;z-index:-1}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit}.skeleton{background:linear-gradient(90deg,var(--skeleton-from),var(--skeleton-mid),var(--skeleton-from));background-size:200% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.touch-target{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}.modal .bug-report-header{padding:20px 24px;border-bottom:1px solid var(--color-border, #e5e7eb);display:flex;justify-content:space-between;align-items:center}.modal .bug-report-header h2{margin:0;padding:0;font-size:20px;font-weight:600;color:var(--color-ink, #1f2937);border-bottom:none}.bug-report-close{background:none;border:none;font-size:24px;color:var(--color-ink-muted, #6b7280);cursor:pointer;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.bug-report-close:hover{color:var(--color-ink, #1f2937)}.bug-report-body{padding:24px;overflow-y:auto;flex:1;min-height:0}.bug-report-form{display:flex;flex-direction:column;gap:16px}.bug-report-form label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:500;color:var(--text-primary, #1f2937)}.bug-report-form textarea{padding:10px 12px;border:1px solid var(--border-color, #d1d5db);border-radius:8px;font-size:14px;font-family:inherit;resize:vertical;min-height:100px;background:var(--bg-input, #fff);color:var(--text-primary, #1f2937)}.bug-report-form textarea:focus{outline:none;border-color:var(--color-accent-strong, #2d6eb5);box-shadow:0 0 0 3px var(--color-accent-subtle, rgba(74, 144, 217, .12))}.bug-report-file-input{padding:10px 12px;border:1px dashed var(--border-color, #d1d5db);border-radius:8px;background:var(--bg-secondary, #f9fafb);cursor:pointer;font-size:13px}.bug-report-file-input:hover{border-color:var(--color-accent-strong, #2d6eb5)}.bug-report-preview{max-width:200px;max-height:150px;border-radius:6px;margin-top:8px;border:1px solid var(--border-color, #d1d5db)}.bug-report-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.bug-report-actions button{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:background .2s}.bug-report-actions .btn-cancel{background:var(--bg-secondary, #f3f4f6);color:var(--text-secondary, #6b7280)}.bug-report-actions .btn-cancel:hover{background:var(--bg-tertiary, #e5e7eb)}.bug-report-actions .btn-submit{background:var(--color-accent-strong, #2d6eb5);color:#fff}.bug-report-actions .btn-submit:hover{background:var(--color-accent-strong, #2d6eb5);filter:brightness(.9)}.bug-report-actions .btn-submit:disabled{opacity:.6;cursor:not-allowed}.bug-report-success{text-align:center;padding:16px 0;color:var(--text-primary, #1f2937)}.bug-report-success p{margin:8px 0;font-size:14px;color:var(--text-secondary, #6b7280)}.bug-report-error{color:#dc2626;font-size:13px;margin-top:-8px}.bug-report-paste-hint{font-size:12px;color:var(--text-secondary, #6b7280);margin:0;font-style:italic}.bug-report-preview-container{position:relative;display:inline-block}.bug-report-remove-preview{position:absolute;top:-8px;right:-8px;width:24px;height:24px;border-radius:50%;border:none;background:#dc2626;color:#fff;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.bug-report-screenshot-section{display:flex;flex-direction:column;gap:4px}.report-bug-link{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:4px 0;font-size:.75rem;color:var(--color-text-secondary, #6b7280);cursor:pointer;text-decoration:none;opacity:.7;transition:opacity .2s,color .2s}.report-bug-link:hover{opacity:1;color:var(--color-accent-strong, #2d6eb5)}.report-bug-link svg{flex-shrink:0}.toast-container{position:fixed;bottom:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);font-size:14px;color:var(--color-ink);cursor:pointer;animation:toast-in .3s ease;max-width:380px}.toast-icon{font-size:16px;flex-shrink:0;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%}.toast-success .toast-icon{background:var(--color-success-light);color:var(--color-success)}.toast-error .toast-icon{background:var(--color-danger-light);color:var(--color-danger)}.toast-info .toast-icon{background:var(--color-accent-subtle);color:var(--color-accent-strong)}.toast-message{flex:1;line-height:1.4}@keyframes toast-in{0%{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:480px){.toast-container{left:12px;right:12px;bottom:12px}.toast{max-width:100%}}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;background:var(--color-bg)}.error-boundary-card{text-align:center;max-width:440px;padding:40px 32px;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-soft)}.error-boundary-icon{width:56px;height:56px;margin:0 auto 20px;border-radius:50%;background:var(--color-danger-light);color:var(--color-danger);font-size:28px;font-weight:700;display:flex;align-items:center;justify-content:center}.error-boundary-card h2{margin:0 0 8px;font-size:20px;color:var(--color-ink)}.error-boundary-card p{margin:0 0 24px;font-size:14px;color:var(--color-ink-muted);line-height:1.5}.error-boundary-details{margin:0 0 24px;padding:12px;border-radius:var(--radius-sm);background:var(--color-bg);border:1px solid var(--color-border);font-size:12px;color:var(--color-danger);text-align:left;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.error-boundary-actions{display:flex;gap:12px;justify-content:center}.error-boundary-btn{padding:10px 24px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;border:none;transition:opacity .15s}.error-boundary-btn:hover{opacity:.85}.error-boundary-btn.primary{background:var(--color-accent);color:var(--color-surface)}.error-boundary-btn.secondary{background:var(--color-bg);color:var(--color-ink);border:1px solid var(--color-border)}@media(max-width:480px){.error-boundary{padding:12px}.error-boundary-card{padding:24px 16px;max-width:100%}.error-boundary-actions{flex-direction:column}.error-boundary-btn{width:100%}}.page-loader{min-height:60vh;display:flex;align-items:center;justify-content:center;padding:40px 20px}#root{min-height:100vh}
