:root{--cfp-brand-50: #eff6ff;--cfp-brand-100: #dbeafe;--cfp-brand-200: #bfdbfe;--cfp-brand-300: #93c5fd;--cfp-brand-400: #60a5fa;--cfp-brand-500: #3b82f6;--cfp-brand-600: #2563eb;--cfp-brand-700: #1d4ed8;--cfp-brand-800: #1e40af;--cfp-brand-900: #1e3a8a;--cfp-accent-300: #93c5fd;--cfp-accent-500: #3b82f6;--cfp-accent-600: #2563eb;--cfp-paper: #fbfbfa;--cfp-surface: #ffffff;--cfp-elevated: #ffffff;--cfp-muted-50: #f4f5f7;--cfp-muted-100: #eceef2;--cfp-muted-200: #dde0e7;--cfp-muted-300: #c4c8d2;--cfp-muted-400: #9aa0ad;--cfp-muted-500: #6b7280;--cfp-muted-600: #4b5563;--cfp-muted-700: #374151;--cfp-muted-800: #1f2937;--cfp-muted-900: #0f172a;--cfp-success: #16a34a;--cfp-warning: #d97706;--cfp-danger: #dc2626;--cfp-info: var(--cfp-brand-500);--cfp-font-sans: "Inter", "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--cfp-font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--cfp-text-xs: .75rem;--cfp-text-sm: .8125rem;--cfp-text-base: .9375rem;--cfp-text-md: 1rem;--cfp-text-lg: 1.125rem;--cfp-text-xl: 1.375rem;--cfp-text-2xl: 1.75rem;--cfp-text-3xl: 2.25rem;--cfp-leading-tight: 1.2;--cfp-leading-normal: 1.5;--cfp-leading-relaxed: 1.65;--cfp-tracking-tight: -.015em;--cfp-tracking-wide: .04em;--cfp-space-1: .25rem;--cfp-space-2: .5rem;--cfp-space-3: .75rem;--cfp-space-4: 1rem;--cfp-space-5: 1.25rem;--cfp-space-6: 1.5rem;--cfp-space-8: 2rem;--cfp-space-10: 2.5rem;--cfp-space-12: 3rem;--cfp-space-16: 4rem;--cfp-radius-xs: 4px;--cfp-radius-sm: 6px;--cfp-radius-md: 10px;--cfp-radius-lg: 14px;--cfp-radius-xl: 20px;--cfp-radius-pill: 999px;--cfp-shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);--cfp-shadow-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--cfp-shadow-md: 0 4px 12px rgba(15, 23, 42, .07), 0 2px 4px rgba(15, 23, 42, .04);--cfp-shadow-lg: 0 14px 32px rgba(15, 23, 42, .1), 0 4px 8px rgba(15, 23, 42, .05);--cfp-shadow-focus: 0 0 0 3px rgba(59, 130, 246, .2);--cfp-ease-out: cubic-bezier(.22, 1, .36, 1);--cfp-ease-in-out: cubic-bezier(.65, 0, .35, 1);--cfp-duration-fast: .14s;--cfp-duration-base: .22s;--cfp-duration-slow: .36s;--cfp-sidebar-width: 272px;--cfp-header-height: 64px;--cfp-content-max: 1320px;--cfp-bg-app: var(--cfp-paper);--cfp-bg-surface: var(--cfp-surface);--cfp-bg-elevated: var(--cfp-elevated);--cfp-bg-muted: var(--cfp-muted-50);--cfp-bg-sidebar: #ffffff;--cfp-border-subtle: var(--cfp-muted-100);--cfp-border-base: var(--cfp-muted-200);--cfp-border-strong: var(--cfp-muted-300);--cfp-text-primary: var(--cfp-muted-900);--cfp-text-secondary: var(--cfp-muted-600);--cfp-text-tertiary: var(--cfp-muted-500);--cfp-text-on-brand: #ffffff}[data-bs-theme=dark]{--cfp-bg-app: #0b1220;--cfp-bg-surface: #111a2c;--cfp-bg-elevated: #16223a;--cfp-bg-muted: #1b2740;--cfp-bg-sidebar: #0e172a;--cfp-border-subtle: rgba(255, 255, 255, .06);--cfp-border-base: rgba(255, 255, 255, .1);--cfp-border-strong: rgba(255, 255, 255, .16);--cfp-text-primary: #f3f5fa;--cfp-text-secondary: #b6bccc;--cfp-text-tertiary: #8a92a6;--cfp-shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--cfp-shadow-sm: 0 1px 3px rgba(0, 0, 0, .45), 0 1px 2px rgba(0, 0, 0, .3);--cfp-shadow-md: 0 6px 16px rgba(0, 0, 0, .45), 0 2px 4px rgba(0, 0, 0, .3);--cfp-shadow-lg: 0 18px 36px rgba(0, 0, 0, .55), 0 6px 12px rgba(0, 0, 0, .35);--cfp-shadow-focus: 0 0 0 3px rgba(147, 197, 253, .32)}body{font-family:var(--cfp-font-sans);font-size:var(--cfp-text-base);line-height:var(--cfp-leading-normal);color:var(--cfp-text-primary);background-color:var(--cfp-bg-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{font-weight:600;letter-spacing:var(--cfp-tracking-tight);color:var(--cfp-text-primary)}h1{font-size:var(--cfp-text-3xl);line-height:var(--cfp-leading-tight)}h2{font-size:var(--cfp-text-2xl);line-height:var(--cfp-leading-tight)}h3{font-size:var(--cfp-text-xl)}h4{font-size:var(--cfp-text-lg)}a{color:var(--cfp-brand-600);text-decoration:none;transition:color var(--cfp-duration-fast) var(--cfp-ease-out)}a:hover{color:var(--cfp-brand-700)}::selection{background-color:var(--cfp-brand-200);color:var(--cfp-brand-900)}:focus-visible{outline:none;box-shadow:var(--cfp-shadow-focus);border-radius:var(--cfp-radius-sm)}.card{border:1px solid var(--cfp-border-subtle);border-radius:var(--cfp-radius-lg);background-color:var(--cfp-bg-surface);box-shadow:var(--cfp-shadow-xs);transition:box-shadow var(--cfp-duration-base) var(--cfp-ease-out),transform var(--cfp-duration-base) var(--cfp-ease-out)}.card:hover{box-shadow:var(--cfp-shadow-sm)}.card .card-header,.card .card-footer{background-color:transparent;border-color:var(--cfp-border-subtle)}.btn{--bs-btn-border-radius: var(--cfp-radius-md);--bs-btn-padding-x: var(--cfp-space-4);--bs-btn-padding-y: .5rem;--bs-btn-font-weight: 500;letter-spacing:var(--cfp-tracking-tight);transition:background-color var(--cfp-duration-fast) var(--cfp-ease-out),color var(--cfp-duration-fast) var(--cfp-ease-out),box-shadow var(--cfp-duration-fast) var(--cfp-ease-out),transform var(--cfp-duration-fast) var(--cfp-ease-out)}.btn:active{transform:translateY(1px)}.btn-primary{--bs-btn-bg: var(--cfp-brand-600);--bs-btn-border-color: var(--cfp-brand-600);--bs-btn-hover-bg: var(--cfp-brand-700);--bs-btn-hover-border-color: var(--cfp-brand-700);--bs-btn-active-bg: var(--cfp-brand-800);--bs-btn-active-border-color: var(--cfp-brand-800)}.btn-outline-secondary{--bs-btn-color: var(--cfp-text-secondary);--bs-btn-border-color: var(--cfp-border-base);--bs-btn-hover-bg: var(--cfp-bg-muted);--bs-btn-hover-border-color: var(--cfp-border-strong);--bs-btn-hover-color: var(--cfp-text-primary)}.form-control,.form-select{border-radius:var(--cfp-radius-md);border-color:var(--cfp-border-base);background-color:var(--cfp-bg-surface);transition:border-color var(--cfp-duration-fast) var(--cfp-ease-out),box-shadow var(--cfp-duration-fast) var(--cfp-ease-out)}.form-control:focus,.form-select:focus{border-color:var(--cfp-brand-400);box-shadow:var(--cfp-shadow-focus)}.form-label{font-weight:500;font-size:var(--cfp-text-sm);color:var(--cfp-text-secondary);margin-bottom:var(--cfp-space-2)}.navbar{background-color:var(--cfp-bg-surface)!important;border-bottom:1px solid var(--cfp-border-subtle)!important;box-shadow:var(--cfp-shadow-xs)}.navbar .nav-link{color:var(--cfp-text-secondary);font-weight:500;border-radius:var(--cfp-radius-md);padding:.45rem .75rem;transition:background-color var(--cfp-duration-fast) var(--cfp-ease-out),color var(--cfp-duration-fast) var(--cfp-ease-out)}.navbar .nav-link:hover{background-color:var(--cfp-bg-muted);color:var(--cfp-text-primary)}.navbar .nav-link.active{background-color:var(--cfp-brand-50);color:var(--cfp-brand-700)}.sidebar-fixed,.offcanvas{background-color:var(--cfp-bg-sidebar)!important;border-color:var(--cfp-border-subtle)!important}.sidebar-fixed .nav-link,.offcanvas .nav-link{color:var(--cfp-text-secondary);font-weight:500;font-size:var(--cfp-text-sm);border-radius:var(--cfp-radius-md);padding:.55rem .75rem;margin-bottom:2px;transition:background-color var(--cfp-duration-fast) var(--cfp-ease-out),color var(--cfp-duration-fast) var(--cfp-ease-out)}.sidebar-fixed .nav-link i,.offcanvas .nav-link i{color:var(--cfp-text-tertiary);font-size:1rem;transition:color var(--cfp-duration-fast) var(--cfp-ease-out)}.sidebar-fixed .nav-link:hover,.offcanvas .nav-link:hover{background-color:var(--cfp-bg-muted);color:var(--cfp-text-primary)}.sidebar-fixed .nav-link:hover i,.offcanvas .nav-link:hover i{color:var(--cfp-text-primary)}.sidebar-fixed .nav-link.active,.offcanvas .nav-link.active{background-color:var(--cfp-brand-50);color:var(--cfp-brand-700);font-weight:600}.sidebar-fixed .nav-link.active i,.offcanvas .nav-link.active i{color:var(--cfp-brand-600)}.sidebar-fixed .nav-item small,.offcanvas .nav-item small{font-size:.6875rem;font-weight:600;letter-spacing:var(--cfp-tracking-wide);color:var(--cfp-text-tertiary);text-transform:uppercase;padding-left:.75rem;padding-right:.75rem;display:block;margin-bottom:var(--cfp-space-2)}.dropdown-menu{border:1px solid var(--cfp-border-subtle);border-radius:var(--cfp-radius-lg);box-shadow:var(--cfp-shadow-md);padding:var(--cfp-space-2);background-color:var(--cfp-bg-elevated)}.dropdown-item{border-radius:var(--cfp-radius-sm);padding:.45rem .6rem;font-size:var(--cfp-text-sm);color:var(--cfp-text-secondary);transition:background-color var(--cfp-duration-fast) var(--cfp-ease-out),color var(--cfp-duration-fast) var(--cfp-ease-out)}.dropdown-item:hover,.dropdown-item:focus{background-color:var(--cfp-bg-muted);color:var(--cfp-text-primary)}.dropdown-divider{border-color:var(--cfp-border-subtle);margin:var(--cfp-space-2) 0}.table{--bs-table-bg: transparent;color:var(--cfp-text-primary)}.table thead th{font-size:var(--cfp-text-xs);text-transform:uppercase;letter-spacing:var(--cfp-tracking-wide);color:var(--cfp-text-tertiary);font-weight:600;border-bottom-color:var(--cfp-border-base)!important}.table tbody tr{transition:background-color var(--cfp-duration-fast) var(--cfp-ease-out)}.table-hover tbody tr:hover{background-color:var(--cfp-bg-muted)}.badge{font-weight:500;border-radius:var(--cfp-radius-pill);padding:.25rem .55rem;font-size:var(--cfp-text-xs);letter-spacing:var(--cfp-tracking-tight)}.modal-content{border:1px solid var(--cfp-border-subtle);border-radius:var(--cfp-radius-xl);box-shadow:var(--cfp-shadow-lg);background-color:var(--cfp-bg-elevated)}.modal-header,.modal-footer{border-color:var(--cfp-border-subtle)}.user-avatar-sm{background:linear-gradient(135deg,var(--cfp-brand-500),var(--cfp-brand-700))!important;color:var(--cfp-text-on-brand)!important;font-weight:600;letter-spacing:var(--cfp-tracking-tight);box-shadow:var(--cfp-shadow-xs)}hr{border-color:var(--cfp-border-subtle);opacity:1}.appearance-card{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100px;padding:1rem .75rem;border:2px solid var(--cfp-border-base);border-radius:var(--cfp-radius-lg);background-color:var(--cfp-bg-surface);cursor:pointer;transition:border-color var(--cfp-duration-fast) var(--cfp-ease-out),box-shadow var(--cfp-duration-fast) var(--cfp-ease-out),background-color var(--cfp-duration-fast) var(--cfp-ease-out);-webkit-user-select:none;user-select:none}.appearance-card:hover{border-color:var(--cfp-brand-300);background-color:var(--cfp-bg-muted)}.appearance-card--active{border-color:var(--cfp-brand-500);background-color:var(--cfp-brand-50);box-shadow:0 0 0 3px #2e578a1f}[data-bs-theme=dark] .appearance-card--active{background-color:var(--cfp-bg-muted);box-shadow:0 0 0 3px #7e9fc633}.schedule-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cfp-space-3);justify-content:space-between;margin-bottom:var(--cfp-space-4)}.schedule-toolbar__title{font-size:var(--cfp-text-2xl);font-weight:600;letter-spacing:var(--cfp-tracking-tight);margin:0;line-height:var(--cfp-leading-tight)}.schedule-toolbar__subtitle{font-size:var(--cfp-text-sm);color:var(--cfp-text-tertiary);margin-top:2px}.schedule-week-nav .btn{--bs-btn-padding-y: .45rem;--bs-btn-padding-x: .85rem;font-size:var(--cfp-text-sm)}.schedule-week-nav .btn-today{--bs-btn-color: var(--cfp-brand-700);--bs-btn-bg: var(--cfp-brand-50);--bs-btn-border-color: var(--cfp-brand-100);--bs-btn-hover-bg: var(--cfp-brand-100);--bs-btn-hover-border-color: var(--cfp-brand-200);--bs-btn-hover-color: var(--cfp-brand-800);font-weight:600}.schedule-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--cfp-space-3);padding:var(--cfp-space-2) var(--cfp-space-3);background-color:var(--cfp-bg-muted);border:1px solid var(--cfp-border-subtle);border-radius:var(--cfp-radius-md)}.schedule-filters .form-check{margin:0}.schedule-filters .form-check-label{font-size:var(--cfp-text-sm);color:var(--cfp-text-secondary);cursor:pointer}.schedule-filters .form-control-sm{font-size:var(--cfp-text-sm)}.schedule-grid-wrapper{border:1px solid var(--cfp-border-subtle);border-radius:var(--cfp-radius-lg);background-color:var(--cfp-bg-surface);overflow:hidden;box-shadow:var(--cfp-shadow-xs)}.schedule-grid{width:100%;border-collapse:separate;border-spacing:0;margin:0}.schedule-grid th,.schedule-grid td{border-bottom:1px solid var(--cfp-border-subtle);border-right:1px solid var(--cfp-border-subtle);vertical-align:middle}.schedule-grid tr td:last-child,.schedule-grid tr th:last-child{border-right:0}.schedule-grid tbody tr:last-child td{border-bottom:0}.schedule-grid thead{position:sticky;top:0;z-index:2}.schedule-grid thead th{background-color:var(--cfp-bg-muted);color:var(--cfp-text-primary);font-weight:600;text-align:center;padding:.75rem .5rem;border-bottom:1px solid var(--cfp-border-base);white-space:nowrap}.schedule-grid thead th .schedule-day-name{display:block;font-size:var(--cfp-text-base);letter-spacing:var(--cfp-tracking-tight);text-transform:capitalize}.schedule-grid thead th .schedule-day-date{display:block;font-size:var(--cfp-text-xs);color:var(--cfp-text-tertiary);font-weight:500;margin-top:2px}.schedule-grid thead th.schedule-day-today{background-color:var(--cfp-brand-50);color:var(--cfp-brand-800)}.schedule-grid thead th.schedule-day-today .schedule-day-date{color:var(--cfp-brand-600)}.schedule-grid .schedule-period-cell{background-color:var(--cfp-bg-muted);text-align:center;font-size:var(--cfp-text-xs);font-weight:600;color:var(--cfp-text-secondary);letter-spacing:var(--cfp-tracking-tight);padding:.65rem .5rem;white-space:nowrap;width:110px;font-variant-numeric:tabular-nums}.schedule-grid .schedule-period-cell .schedule-period-dash{display:block;color:var(--cfp-text-tertiary);font-weight:400;line-height:1}.schedule-grid td.schedule-empty{background-image:repeating-linear-gradient(45deg,transparent,transparent 8px,var(--cfp-muted-50) 8px,var(--cfp-muted-50) 9px)}.schedule-course{display:block;padding:.75rem;text-decoration:none;color:var(--cfp-text-primary);height:100%;border-radius:var(--cfp-radius-md);transition:background-color var(--cfp-duration-fast) var(--cfp-ease-out),box-shadow var(--cfp-duration-fast) var(--cfp-ease-out)}.schedule-course:hover{color:var(--cfp-text-primary);box-shadow:inset 0 0 0 2px #0000000a}.schedule-course__subject{font-weight:600;font-size:var(--cfp-text-base);line-height:var(--cfp-leading-tight);margin-bottom:.25rem}.schedule-course__teacher{font-size:var(--cfp-text-xs);color:var(--cfp-text-secondary);margin-bottom:.15rem;display:flex;align-items:center;gap:.35rem}.schedule-course__teacher i{color:var(--cfp-text-tertiary)}.schedule-course__classes{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.4rem}.schedule-course__classes .schedule-class-chip{font-size:.7rem;font-weight:500;padding:.1rem .5rem;border-radius:var(--cfp-radius-pill);background-color:#ffffff8c;color:var(--cfp-text-secondary);border:1px solid var(--cfp-border-subtle)}[data-bs-theme=dark] .schedule-course__classes .schedule-class-chip{background-color:#ffffff0f}.schedule-course__activities{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--cfp-border-base)}.schedule-course__badge{font-size:.7rem;font-weight:600;padding:.2rem .55rem;border-radius:var(--cfp-radius-pill);display:inline-flex;align-items:center;gap:.3rem;line-height:1}.schedule-course__badge--homework{background-color:#d977061f;color:var(--cfp-warning)}.schedule-course__badge--exam{background-color:#dc26261f;color:var(--cfp-danger)}.schedule-empty-state{text-align:center;padding:var(--cfp-space-12) var(--cfp-space-6);background-color:var(--cfp-bg-surface);border:1px dashed var(--cfp-border-base);border-radius:var(--cfp-radius-lg)}.schedule-empty-state i{font-size:2.5rem;color:var(--cfp-text-tertiary);display:block;margin-bottom:var(--cfp-space-3)}.schedule-empty-state p{color:var(--cfp-text-secondary);font-size:var(--cfp-text-base);margin:0}@media(max-width:768px){.schedule-grid thead th,.schedule-grid .schedule-period-cell{font-size:var(--cfp-text-xs)}.schedule-course__subject{font-size:var(--cfp-text-sm)}}.sidebar-fixed::-webkit-scrollbar{width:8px}.sidebar-fixed::-webkit-scrollbar-thumb{background:var(--cfp-border-base);border-radius:var(--cfp-radius-pill)}.sidebar-fixed::-webkit-scrollbar-thumb:hover{background:var(--cfp-border-strong)}.sidebar-curtain{overflow:hidden}.sidebar-curtain.collapsing{transition:height .26s ease}.sidebar-chevron{transition:transform .2s ease}.sidebar-chevron.is-open{transform:rotate(180deg)}.app-shell{width:100vw;overflow-x:hidden}@media(min-width:992px){.sidebar-fixed{width:260px;height:100vh;position:fixed;top:0;left:0;overflow-y:auto;z-index:1030}.sidebar-main{margin-left:260px}}.sidebar-main{min-width:0}.user-avatar-sm{width:32px;height:32px;font-size:.75rem}[data-bs-theme=dark] .bg-light{background-color:var(--bs-tertiary-bg)!important}[data-bs-theme=dark] .bg-white{background-color:var(--bs-body-bg)!important}[data-bs-theme=dark] .text-dark{color:var(--bs-body-color)!important}[data-bs-theme=dark] .navbar-light{--bs-navbar-color: var(--bs-body-color);--bs-navbar-hover-color: var(--bs-emphasis-color);--bs-navbar-active-color: var(--bs-emphasis-color);--bs-navbar-brand-color: var(--bs-body-color);--bs-navbar-brand-hover-color: var(--bs-emphasis-color)}[data-bs-theme=dark] .sidebar-fixed{background-color:var(--bs-tertiary-bg)!important;border-color:var(--bs-border-color)!important}[data-bs-theme=dark] .sidebar-fixed .nav-link.active,[data-bs-theme=dark] .offcanvas .nav-link.active{color:var(--bs-emphasis-color);background-color:var(--bs-secondary-bg);border-radius:.375rem}[data-bs-theme=dark] .auth-loader{background:#212529f5}[data-bs-theme=dark] .auth-loader__name{color:var(--bs-emphasis-color)}[data-bs-theme=dark] .auth-loader__row{color:var(--bs-secondary-color)}[x-cloak]{display:none!important}.auth-loader{position:fixed;inset:0;background:#fffffff5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;z-index:9999;opacity:1;transition:opacity .25s ease}.auth-loader.is-hidden{opacity:0;pointer-events:none}.auth-loader__name{font-size:1.25rem;font-weight:600;color:#1b1b18;letter-spacing:.02em}.auth-loader__row{display:flex;align-items:center;gap:.75rem;color:#706f6c}.auth-loader__logo{width:28px;height:28px;animation:auth-spin 1s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-shell{max-width:400px}.onboarding-shell{max-width:720px}.app-logo-sm{width:32px;height:32px}.app-logo-md{width:36px;height:36px}@media(max-width:991.98px){.configurator-slot-picker{position:fixed;inset:0;z-index:1050;overflow-y:auto;background-color:var(--cfp-bg-app, #f8f9fa);padding:1rem}}.written-work-card__subject{font-size:var(--cfp-text-base);color:var(--cfp-text-primary);letter-spacing:var(--cfp-tracking-tight);line-height:var(--cfp-leading-tight)}.written-work-card__grade-chip{display:inline-flex;align-items:baseline;gap:.15rem;padding:.2rem .55rem;border-radius:var(--cfp-radius-pill);border:1px solid var(--cfp-brand-200);background-color:var(--cfp-brand-50);color:var(--cfp-brand-700);font-size:var(--cfp-text-sm);line-height:1}[data-bs-theme=dark] .written-work-card__grade-chip{border-color:#4f78a859;background-color:#2e578a2e;color:var(--cfp-brand-300)}
