@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.ml-auto{margin-left:auto}.table{display:table}.hidden{display:none}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{font-family:Inter Variable,Inter,ui-sans-serif,system-ui,sans-serif;color:#1e293b;background:#f5f7fb;font-synthesis:none;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{transition:background .16s,color .16s,box-shadow .16s}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1{font-size:30px;font-weight:650;letter-spacing:-1.1px}h2{font-size:16px;font-weight:650;letter-spacing:-.3px}p,small{color:#64748b}input,select,textarea{width:100%;background:#fff;border:1px solid #d9e0ea;border-radius:8px;padding:11px 12px;color:#334155;outline:none;min-width:0}input:focus,select:focus,textarea:focus{border-color:#3866d9;box-shadow:0 0 0 3px #3866d914}input[type=checkbox]{width:20px;height:20px;accent-color:#235f50}input[type=color]{height:43px;padding:5px}button:focus-visible,a:focus-visible{outline:3px solid #75aa91;outline-offset:3px}.app-shell{display:flex;min-height:100vh}.sidebar{width:252px;position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid #e5e9f0;z-index:30;padding:31px 21px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;font-size:22px;font-weight:750;letter-spacing:-1px;white-space:nowrap}.brand-icon{background:#2b59c3;color:#fff;width:35px;height:35px;border-radius:10px;display:grid;place-items:center;margin-right:10px}.brand-dot{color:#3866d9}.workspace{display:flex;gap:11px;border:1px solid #e5e9f0;border-radius:10px;padding:13px 11px;margin-top:35px;margin-bottom:28px}.workspace-icon{background:#eef2ff;color:#4061a7;width:33px;height:33px;border-radius:7px;display:grid;place-items:center;font-weight:700}.workspace strong{display:block;font-size:12px}.workspace small{display:block;font-size:12px;margin-top:3px}.nav-caption{font-size:12px;font-weight:650;letter-spacing:1.7px;color:#64748b;margin:0 12px 14px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav a{display:flex;align-items:center;gap:11px;padding:12px 13px;color:#56647a;border-radius:8px;font-size:12px;font-weight:500}.sidebar nav a.active{background:#edf2ff;color:#2855bc;font-weight:650}.sidebar nav a:hover{background:#f7f9fc}.sidebar nav a svg:last-child:not(:first-child){margin-left:auto}.sidebar-bottom{margin-top:auto;padding-top:28px}.semester-card{background:#f6f8fc;border:1px solid #e5e9f0;border-radius:10px;padding:16px;font-size:12px;color:#64748b}.semester-card strong{display:block;font-size:20px;color:#334155;margin:12px 0 4px}.semester-card>span:not(.status-dot){display:block}.semester-card a{display:flex;align-items:center;justify-content:space-between;color:#3c5c96;font-weight:600;margin-top:18px}.status-dot{display:inline-block;width:6px;height:6px;background:#5681df;border-radius:50%;margin-right:6px}.profile-link,.logout{display:flex;align-items:center;gap:10px;color:#64748b;padding:13px 10px;font-size:12px}.profile-link{margin-top:17px}.logout{background:none;border:none;width:100%}.logout:hover{color:#ae4a43}.main-shell{margin-left:252px;width:calc(100% - 252px);min-width:0}.topbar{height:80px;padding:0 37px;background:#fff;border-bottom:1px solid #e5e9f0;display:flex;align-items:center;justify-content:space-between;gap:15px}.breadcrumb,.topbar-right{display:flex;align-items:center;gap:15px}.breadcrumb{font-size:12px;color:#64748b}.breadcrumb strong{color:#334155;font-weight:500}.today-date{font-size:12px;color:#64748b}.divider{height:28px;border-left:1px solid #e4e9e6;margin:0 5px}.user-chip{display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;-o-object-fit:cover;object-fit:cover;flex-shrink:0;border-radius:50%;background:#eaf0ff;color:#3c5c96;display:grid;place-items:center;font-size:12px;font-weight:700}.user-chip strong,.user-chip small{display:block;font-size:12px}.user-chip small{font-size:12px;margin-top:3px}.main-shell main{max-width:1600px;margin:auto;padding:33px 37px 44px}.main-shell footer{border-top:1px solid #e8ece9;padding:19px 37px;display:flex;justify-content:space-between;font-size:12px;color:#64748b}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:28px}.eyebrow{font-size:12px;letter-spacing:1.6px;color:#64748b;font-weight:600;margin-bottom:11px}.page-heading p{font-size:12px;margin-top:8px}.heading-actions{display:flex;gap:10px;flex-shrink:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #dce3ed;border-radius:7px;background:#fff;color:#475569;min-height:39px;padding:9px 14px;font-size:12px;font-weight:600;white-space:nowrap}.btn:hover{background:#f1f5fb}.btn.primary{background:#2d5bcc;color:#fff;border-color:#2d5bcc;box-shadow:0 2px 3px #2d5bcc12}.btn.primary:hover{background:#244db1}.btn.lime{background:#dcefad;border-color:#dcefad;color:#294934;margin-top:22px}.btn.subtle{background:#f9fbf9;box-shadow:none}.btn.destructive{background:#b74942;border-color:#b74942;color:#fff}.btn.full{width:100%;margin-top:14px;min-height:47px}.welcome-banner{background:#183f35;border-radius:13px;padding:29px 33px;display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden;min-height:230px;color:#fff}.banner-label{font-size:12px;font-weight:600;letter-spacing:1.8px;color:#c4d6b9}.welcome-banner h2{font-size:27px;letter-spacing:-.8px;margin:14px 0 10px;font-weight:550}.welcome-banner p{color:#b1c7bb;font-size:12px;line-height:1.8}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:23px 0}.stat-card{padding:19px 21px;background:#fff;border:1px solid #e3e8f0;border-radius:10px}.stat-card:hover{box-shadow:0 5px 20px #233c3509}.stat-top{display:flex;align-items:center;justify-content:space-between;color:#94a3b8}.stat-icon{width:37px;height:37px;display:grid;place-items:center;border-radius:9px}.tone-0{background:#eff4e8;color:#759252}.tone-1{background:#ebf2fa;color:#6387ab}.tone-2{background:#f4edf8;color:#997bac}.tone-3{background:#fcf1e8;color:#c39368}.stat-card>strong{font-size:31px;font-weight:600;display:block;margin:12px 0 6px;letter-spacing:-1px}.stat-bottom{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#64748b}.stat-bottom small{font-size:12px;color:#75849a}.panel{background:#fff;border:1px solid #e3e8f0;border-radius:11px;overflow:hidden;margin-bottom:22px}.dashboard-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:22px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:23px 23px 18px}.panel-heading h2{font-size:14px}.panel-heading p{font-size:12px;margin-top:6px}.pill{display:inline-flex;align-items:center;gap:4px;border-radius:5px;padding:5px 8px;font-size:12px;font-weight:500;white-space:nowrap}.pill.muted{background:#f4f6f1;color:#829074}.pill.success{background:#edf5e9;color:#5c8146}.chart{display:flex;gap:20px;height:173px;margin:12px 25px 0;padding:0 15px;border-bottom:1px solid #edf0eb}.chart-column{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;font-size:12px;color:#64748b}.chart-column>span{font-size:12px}.chart-track{height:128px;width:100%;max-width:42px;display:flex;align-items:end;background:repeating-linear-gradient(to top,transparent,transparent 31px,#f5f7f3 31px,#f5f7f3 32px)}.chart-track>div{width:100%;background:#cbd9fa;border-radius:5px 5px 0 0}.chart-column.current .chart-track>div{background:#4470d8}.chart-column small{font-size:12px}.chart-caption{display:flex;align-items:center;margin:22px 26px;font-size:12px;color:#64748b}.chart-caption strong{margin-left:auto;color:#3e5b91}.workload{padding:0 23px 16px}.workload-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #edf1f6}.workload-row:last-child{border:0}.workload-row strong,.workload-row small{display:block;font-size:12px}.workload-row small{font-size:12px;margin-top:4px}.count-pill{background:#f1f5fb;border:1px solid #e3e8f0;color:#58709c;padding:4px 7px;border-radius:5px;font-size:12px;font-weight:500;white-space:nowrap}.workload-row>.count-pill{margin-left:auto}.text-link{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#365ec0;border:0;background:none;cursor:pointer}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{padding:13px 22px;font-size:12px;letter-spacing:.8px;font-weight:550;background:#f8fafd;color:#64748b;border-top:1px solid #e9edf4;border-bottom:1px solid #e9edf4;white-space:nowrap}td{padding:16px 22px;border-bottom:1px solid #edf1f6;color:#526178}tbody tr:last-child td{border-bottom:0}td strong{font-size:12px;color:#29384f;font-weight:550}td small{display:block;font-size:12px;color:#75849a;margin-top:4px}.subject-title{display:flex;gap:11px;align-items:center}.subject-marker{width:3px;height:30px;border-radius:3px}.resource-toolbar{padding:22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.resource-toolbar h2{font-size:15px;display:flex;align-items:center;gap:10px}.resource-toolbar p{font-size:12px;margin-top:6px}.search-input{position:relative;min-width:230px}.search-input svg{position:absolute;left:12px;top:12px;color:#8b9bb3}.search-input input{padding-left:38px;font-size:12px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;padding:7px;border:0;background:transparent;color:#64748b;border-radius:6px}.icon-btn:hover{background:#edf2fc}.icon-btn.danger:hover{background:#fbece9;color:#b4544b}.row-actions{display:flex;gap:6px}.avatar.small{width:29px;height:29px;font-size:12px;border-radius:8px}.truncate-cell{max-width:220px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pagination{display:flex;justify-content:space-between;align-items:center;padding:17px 22px;border-top:1px solid #e8edf4;font-size:12px;color:#64748b}.pagination>div{display:flex;align-items:center;gap:15px}.state{min-height:230px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;padding:30px;color:#64748b;text-align:center}.state h3{font-size:14px;font-weight:500}.state.error{color:#b36d61}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal{border:1px solid #e5eadf;border-radius:13px;width:min(620px,calc(100vw - 28px));max-height:90vh;overflow:auto;padding:0;color:#29384f;box-shadow:0 20px 90px #10291e40}.modal::backdrop{background:#142c235e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e8edf4;padding:19px 24px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.field{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#526178;text-align:left}.field>span{font-weight:550}.field-error{color:#b45045;font-size:12px;line-height:1.5}.modal-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #e8edf4;padding-top:19px;margin-top:23px}.modal>.modal-actions{margin:20px 24px 24px}.help-text,.validation-note{font-size:12px;margin-top:17px;line-height:1.7;color:#64748b}.validation-note{padding:11px;background:#f2f6ff;border-radius:7px}.form-error{color:#b24942;background:#fcf0ec;padding:12px;border-radius:7px;font-size:12px;margin:16px 0}.confirm-text{padding:24px;line-height:1.9;font-size:13px}.toasts{position:fixed;bottom:25px;right:25px;z-index:1000;display:flex;flex-direction:column;gap:10px;max-width:calc(100vw - 40px)}.toast{display:flex;align-items:center;gap:20px;background:#2d5bcc;color:#fff;border-radius:9px;padding:16px 20px;box-shadow:0 8px 30px #213b2a25;font-size:12px}.toast.error{background:#a74d43}.toast button{border:0;background:none;color:inherit;font-size:22px;line-height:1}.filters-panel{padding:20px 23px}.filter-title{display:flex;gap:9px;align-items:center;font-size:12px;margin-bottom:17px}.filter-title button{margin-left:auto}.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.filter-grid input,.filter-grid select{font-size:12px;padding:9px}.schedule-toolbar{display:flex;justify-content:space-between;gap:10px;padding:17px 21px;align-items:center}.view-tabs{display:flex;background:#f0f3f9;border-radius:7px;padding:3px;gap:2px}.view-tabs button{border:0;background:transparent;padding:9px 12px;border-radius:5px;display:flex;align-items:center;gap:6px;font-size:12px;color:#64748b}.view-tabs button.active{background:#fff;color:#2d5bcc;box-shadow:0 1px 4px #23321f12}.export-actions{display:flex;gap:8px;align-items:center}.timetable{table-layout:fixed;min-width:950px}.timetable th{padding:16px 10px;text-align:center;font-size:12px;letter-spacing:0;font-weight:600}.timetable th:first-child{width:80px;font-size:12px}.timetable th small{display:block;font-size:12px;color:#4470d8;margin-top:4px}.timetable td{vertical-align:top;border-right:1px solid #e8edf4;padding:7px;height:112px}.timetable td:last-child{border-right:0}.timetable .lesson-time{text-align:center;padding-top:22px;background:#f9fafd}.lesson-time strong{font-size:20px;font-weight:400;color:#64748b}.lesson-time small{font-size:12px;line-height:1.6}.today-column,.is-today{background:#f4f7ff}.lesson-card{display:flex;width:100%;flex-direction:column;gap:6px;text-align:left;border:1px solid color-mix(in srgb,var(--lesson-color),transparent 85%);border-left:3px solid var(--lesson-color);background:color-mix(in srgb,var(--lesson-color),white 96%);border-radius:6px;padding:10px 9px;margin-bottom:5px;color:#64748b}.lesson-card:hover{filter:brightness(.98);box-shadow:0 2px 7px #35432d12}.lesson-card .lesson-group{font-size:12px;color:var(--lesson-color);font-weight:600}.lesson-card strong{font-size:12px;line-height:1.4}.lesson-card>span{font-size:12px;display:flex;gap:3px;align-items:center}.lesson-detail{padding:24px}.lesson-detail h2{font-size:23px;margin:12px 0 24px}.lesson-detail dl{margin:0}.lesson-detail dl>div{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid #e8edf4;gap:20px;font-size:12px}.lesson-detail dt{color:#64748b}.lesson-detail dd{margin:0;text-align:right}.print-title{display:none}.profile-grid{display:grid;grid-template-columns:280px 1fr;gap:24px}.profile-summary{align-self:start;text-align:center;padding:32px 23px}.profile-avatar{width:85px;height:85px;font-size:26px;margin:0 auto 19px}.profile-summary p{font-size:12px;margin:9px 0 15px}.profile-summary hr{border:0;border-top:1px solid #e8edf4;margin:25px 0}.profile-summary small{font-size:12px;line-height:1.8}.form-panel form{padding:5px 24px 24px}.auth-page{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:#fff}.auth-story{background:#152d52;color:#fff;padding:42px 55px;display:flex;flex-direction:column;position:relative;overflow:hidden}.auth-story:after{content:"";position:absolute;right:-200px;bottom:-210px;width:650px;height:650px;border:1px solid #ffffff0a;border-radius:50%;pointer-events:none}.auth-story .brand-icon{background:#fff;color:#2d5bcc}.auth-copy{margin:auto 0;padding:70px 0}.auth-copy>.pill{background:#ffffff0c;color:#b7cdf6;font-size:12px;letter-spacing:1.4px;padding:9px 13px}.auth-copy h1{font-size:clamp(40px,4.5vw,66px);font-weight:500;line-height:1.17;letter-spacing:-2.7px;margin:29px 0}.auth-copy h1 em{font-style:normal;color:#b7cdf6}.auth-copy>p{font-size:14px;line-height:1.9;max-width:335px;color:#b1c2dc}.auth-preview{display:flex;gap:14px;align-items:center;margin-top:46px;padding:19px;border:1px solid #ffffff18;border-radius:10px;max-width:410px;color:#dbe7ff;background:#ffffff04}.auth-preview strong{font-size:12px;display:block;font-weight:500}.auth-preview span{font-size:12px;color:#a5b9d6;display:block;margin-top:5px}.auth-bottom{display:flex;justify-content:space-between;font-size:12px;color:#a5b9d6}.auth-form{display:flex;align-items:center;justify-content:center;padding:48px}.auth-form-inner{width:100%;max-width:375px}.auth-form h2{font-size:31px;letter-spacing:-1px;margin-top:13px}.auth-form h2+p{font-size:13px;margin:11px 0 32px}.auth-form form>.field{margin-bottom:20px}.auth-form .form-grid{margin-bottom:20px}.password-input{position:relative}.password-input input{padding-right:43px}.password-input button{position:absolute;right:12px;top:12px;background:none;border:0;color:#8797b0}.auth-switch{font-size:12px;text-align:center;margin-top:24px}.auth-switch a{color:#2d5bcc;font-weight:650}.security-note{display:flex;align-items:center;justify-content:center;gap:7px;border-top:1px solid #e8edf4;padding-top:28px;margin-top:40px;font-size:12px;color:#75849a}.mobile-menu,.mobile-close{display:none}@media(min-width:1500px){.main-shell main{padding:40px 55px}.welcome-banner{padding:35px 42px}.stat-card{padding:23px}.dashboard-grid{grid-template-columns:1.45fr 1fr}.welcome-banner h2{font-size:31px}}@media(max-width:1150px){.sidebar{width:215px;padding:25px 15px}.brand{font-size:20px}.main-shell{margin-left:215px;width:calc(100% - 215px)}.main-shell main{padding:26px}.topbar{padding:0 26px}.stat-grid{gap:12px}.stat-card{padding:16px}.dashboard-grid{gap:15px;grid-template-columns:1.1fr 1fr}.panel-heading{padding:20px 17px}.workload{padding:0 17px 12px}.welcome-banner h2{font-size:24px}.today-date{display:none}.profile-grid{grid-template-columns:220px 1fr}.chart{gap:13px;margin-left:15px;margin-right:15px}.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:850px){.sidebar{transform:translate(-100%);transition:transform .2s;width:250px}.sidebar.open{transform:translate(0)}.sidebar-overlay{position:fixed;inset:0;background:#18322366;z-index:25}.main-shell{margin:0;width:100%}.mobile-menu{display:inline-flex}.mobile-close{display:inline-flex;position:absolute;right:8px;top:8px}.topbar{height:68px;padding:0 20px}.main-shell main{padding:25px 20px}.topbar-right .divider{display:none}.page-heading h1{font-size:27px}.profile-grid{grid-template-columns:210px 1fr}.auth-story,.auth-form{padding:35px}.auth-preview{padding:15px}.auth-preview>svg:last-child{display:none}.auth-copy h1{font-size:46px}.auth-page{grid-template-columns:1fr 1fr}}@media(max-width:620px){.main-shell main{padding:24px 15px}.topbar{padding:0 12px}.breadcrumb{gap:5px;font-size:12px}.breadcrumb>span{display:none}.user-chip>span:last-child{display:none}.page-heading{align-items:flex-start;flex-direction:column;gap:15px;margin-bottom:21px}.page-heading h1{font-size:26px}.page-heading p{font-size:12px;line-height:1.7}.heading-actions{flex-wrap:wrap}.welcome-banner{padding:25px 22px;min-height:215px}.welcome-banner h2{font-size:22px;line-height:1.35}.welcome-banner p{font-size:12px}.stat-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin:17px 0}.stat-card{padding:16px}.stat-card>strong{font-size:28px}.dashboard-grid{grid-template-columns:1fr;gap:0}.panel-heading{padding:20px 17px}.resource-toolbar{flex-direction:column;align-items:stretch;padding:18px}.search-input{min-width:0}.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.filters-panel{padding:17px}.schedule-toolbar{flex-wrap:wrap;padding:12px;gap:12px}.view-tabs{width:100%;justify-content:space-between}.view-tabs button{flex:1;justify-content:center}.export-actions{margin-left:auto}.pagination{padding:13px;font-size:12px}.pagination>div{gap:9px}.pagination .btn{padding:7px 10px;font-size:12px}.profile-grid{grid-template-columns:1fr;gap:0}.profile-summary{padding:25px}.form-grid{grid-template-columns:1fr}.modal form{padding:18px}.auth-page{grid-template-columns:1fr}.auth-story{padding:23px;background:#152d52}.auth-copy,.auth-bottom{display:none}.auth-form{padding:38px 25px;align-items:start}.auth-form h2{font-size:29px}.auth-form .form-grid{grid-template-columns:1fr 1fr}.auth-form .eyebrow{font-size:12px}.main-shell footer{padding:17px;font-size:12px}.panel-heading .text-link{font-size:12px}.chart{margin:12px 18px 0}}@media print{@page{size:A4 landscape;margin:10mm}body{background:#fff;font-size:12px}.sidebar,.topbar,.main-shell footer,.no-print,.heading-actions,.toasts{display:none!important}.main-shell{margin:0;width:100%}.main-shell main{padding:0;max-width:none}.page-heading{margin-bottom:12px}.page-heading .eyebrow{display:none}.panel{border-color:#ccc;overflow:visible}.table-wrap{overflow:visible}.timetable{min-width:0;width:100%;font-size:12px}.timetable th:first-child{width:45px}.timetable td{padding:3px}.lesson-card{padding:5px;-moz-column-break-inside:avoid;break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}.lesson-card strong{font-size:12px}.lesson-card>span{font-size:12px}.print-title{display:block;padding:14px}.schedule-toolbar{display:none}.timetable tr{-moz-column-break-inside:avoid;break-inside:avoid}.lesson-time strong{font-size:14px}}:root{--accent: #2d5bcc;--ink: #1e293b;--muted: #64748b;--border: #e3e8f0}body{font-weight:400}h1{font-size:30px;font-weight:650;letter-spacing:-.8px;line-height:1.25}h2{line-height:1.4}.sidebar{width:252px;padding:28px 20px 20px;overflow-y:auto}.brand{font-size:23px;font-weight:720;letter-spacing:-.9px}.brand-icon{border-radius:9px;width:38px;height:38px}.workspace{margin-top:30px;margin-bottom:26px;padding:13px 10px;background:#fafbfd}.workspace strong{font-size:12px}.workspace small{font-size:11px}.nav-caption{font-size:10px;letter-spacing:1.2px}.sidebar nav{gap:6px}.sidebar nav a{font-size:13px;padding:12px;font-weight:500}.sidebar nav a.active{box-shadow:inset 3px 0 #2d5bcc}.sidebar nav a:hover{background:#f1f5fb}.profile-link,.logout{font-size:12px}.semester-card{padding:14px;font-size:11px}.semester-card strong{margin:8px 0 2px;font-size:20px}.semester-card a{margin-top:12px;font-size:12px}.topbar{height:76px}.breadcrumb,.today-date,.user-chip strong{font-size:12px}.user-chip small{font-size:11px}.main-shell main{padding:32px 34px 40px}.page-heading{margin-bottom:24px}.eyebrow{font-size:10px;letter-spacing:1.1px;margin-bottom:8px}.page-heading p{font-size:13px;line-height:1.65}.btn{font-size:12px;min-height:42px;padding:10px 15px;border-radius:8px}.btn.primary{box-shadow:0 2px 3px #23489e14}.btn.subtle{background:#fff}.welcome-banner{background:#fff;color:var(--ink);border:1px solid var(--border);border-radius:12px;min-height:unset;padding:26px 28px;gap:25px}.welcome-banner h2{font-size:23px;font-weight:600;margin:8px 0;letter-spacing:-.6px}.welcome-banner p{color:var(--muted);font-size:13px;line-height:1.6}.banner-label{color:var(--accent);font-size:12px;letter-spacing:0;text-transform:capitalize;font-weight:500}.welcome-banner>.btn{flex-shrink:0}.stat-grid{margin:20px 0;gap:17px}.stat-card{padding:22px}.stat-card>strong{font-size:34px;line-height:1.1;margin:18px 0 12px;font-weight:650;letter-spacing:-1px}.stat-bottom{font-size:13px}.stat-bottom small{font-size:11px}.stat-top>svg{color:#98a5b8}.stat-icon{width:40px;height:40px}.panel{box-shadow:0 2px 3px #273b5603;border-radius:11px}.panel-heading h2,.resource-toolbar h2{font-size:16px;font-weight:600}.panel-heading p,.resource-toolbar p{font-size:12px;line-height:1.6}.panel-heading{padding:22px 23px 19px}.pill,.count-pill{font-size:11px;padding:5px 9px}.pill.muted{background:#f1f5fb;color:#64748b}.pill.success{background:#eaf6ef;color:#2f8055}.chart{height:197px;margin-top:15px;padding:0 12px}.chart-track{height:142px;max-width:45px}.chart-column>span,.chart-column small{font-size:12px}.chart-caption{font-size:12px;margin:23px 26px}.workload-row{padding:13px 0}.workload-row strong{font-size:12px;font-weight:550}.workload-row small{font-size:11px;margin-top:3px}.workload-row .avatar{width:36px;height:36px;font-size:11px}.workload-row .count-pill{font-size:10px}.text-link{font-size:12px;font-weight:500}table{font-size:12px}th{font-size:10px;font-weight:600;letter-spacing:.5px;padding:14px 20px}td{padding:17px 20px;line-height:1.5}td strong{font-size:12px;font-weight:600}td small{font-size:11px;line-height:1.5}.resource-toolbar{padding:23px}.search-input input{font-size:13px;min-height:43px}input,select,textarea{font-size:13px;min-height:43px;border-color:#d9e0ea}input[type=checkbox]{min-height:20px}.field{font-size:12px;gap:7px}.field>span{color:#475569;font-weight:550}.form-grid{gap:19px}.field-error,.help-text{font-size:12px}.modal{width:min(680px,calc(100vw - 28px))}.modal-heading h2{font-size:18px}.modal form{padding:24px}.modal-actions{flex-wrap:wrap}.pagination{font-size:12px}.state{color:var(--muted)}.filters-panel{padding:22px}.filter-title{font-size:14px}.filter-title .save-filters{margin-left:auto}.filter-title .save-filters+button{margin-left:10px;color:#64748b}.filter-grid{gap:16px}.filter-grid input,.filter-grid select{font-size:12px;padding:10px}.schedule-search{margin-bottom:18px;max-width:500px}.view-tabs button{font-size:12px;padding:9px 13px}.schedule-toolbar{padding:17px}.timetable{min-width:1120px}.timetable th{font-size:12px;padding:16px 10px}.timetable th small{font-size:9px;letter-spacing:.4px}.timetable .lesson-time{padding-top:24px}.lesson-time small{font-size:11px}.lesson-card{padding:12px 10px;gap:6px;margin-bottom:7px;border-left-width:3px;border-radius:6px}.lesson-card strong{font-size:12px;line-height:1.5}.lesson-card>span{font-size:10px;line-height:1.5}.lesson-card .lesson-group{font-size:10px}.timetable td{min-height:125px}.availability-panel{margin-top:23px;background:#f7f9fd;border:1px solid #e4eaf4;border-radius:9px;padding:16px}.availability-panel>div:first-child{display:flex;align-items:center;gap:8px;color:#3b5b94;font-size:13px}.availability-panel p{font-size:12px;margin:9px 0;line-height:1.7}.room-suggestions{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.room-suggestions button{border:1px solid #dbe3f0;border-radius:6px;background:#fff;padding:8px 10px;display:flex;gap:8px;align-items:center;font-size:12px}.room-suggestions button small{font-size:10px}.room-suggestions button.chosen{background:#eaf0ff;border-color:#86a2e6;color:#2d5bcc}.info-note{background:#edf3ff;border-left:3px solid #7093e2;padding:12px;font-size:12px;line-height:1.7;margin-bottom:20px}.auth-story{background:#152d52}.auth-copy h1{font-size:clamp(40px,4vw,58px);font-weight:550;letter-spacing:-2px;line-height:1.22}.auth-copy>p{font-size:15px}.auth-copy>.pill{font-size:10px;letter-spacing:1px;padding:10px 13px}.auth-preview{margin-top:35px}.auth-preview strong{font-size:12px}.auth-preview span{font-size:11px;line-height:1.6}.auth-form-inner{max-width:400px}.auth-form h2{font-size:30px}.auth-form h2+p{font-size:14px}.auth-form .field{font-size:13px}.auth-form input{min-height:46px;font-size:14px}.auth-form .btn.full{min-height:46px;font-size:13px}.auth-switch{font-size:13px}.auth-form .eyebrow{font-size:10px}.security-note{font-size:11px}.password-input button{top:14px}.auth-bottom{font-size:11px}.profile-summary h2{font-size:20px}.profile-summary small{font-size:12px}.main-shell footer{font-size:11px}@media(min-width:1500px){.main-shell main{padding:38px 48px}}@media(max-width:1150px)and (min-width:851px){.sidebar{width:220px;padding:25px 14px}.main-shell{margin-left:220px;width:calc(100% - 220px)}.brand{font-size:20px}.sidebar nav a{font-size:12px}.main-shell main{padding:28px 24px}}@media(max-width:1000px){.dashboard-grid{grid-template-columns:1fr}.workload{display:grid;grid-template-columns:1fr 1fr;-moz-column-gap:25px;column-gap:25px}}@media(max-width:850px){.main-shell{width:100%;margin-left:0}.main-shell main{padding:28px 20px}}@media(max-width:620px){.main-shell main{padding:23px 15px}h1,.page-heading h1{font-size:27px}.page-heading p{font-size:12px}.eyebrow{font-size:10px}.welcome-banner{padding:22px;flex-direction:column;align-items:flex-start;gap:18px}.welcome-banner h2{font-size:21px;line-height:1.4}.welcome-banner p{font-size:12px}.banner-label{font-size:11px}.stat-grid{gap:12px}.stat-card{padding:17px}.stat-card>strong{font-size:30px}.stat-bottom{font-size:12px}.stat-bottom small{display:none}.stat-icon{width:36px;height:36px}.workload{display:block}.panel-heading h2{font-size:14px}.panel-heading p,.panel-heading .text-link{font-size:11px}.panel-heading{padding:19px 16px}.filter-title{flex-wrap:wrap;font-size:12px;gap:7px}.filter-title .text-link{font-size:11px}.filter-grid{gap:13px}.filters-panel{padding:17px}.search-input input{font-size:12px}.pagination,.pagination .btn{font-size:11px}.auth-form{padding:35px 24px}.auth-form .form-grid{grid-template-columns:1fr}.auth-form input{font-size:16px}.auth-form .eyebrow{font-size:10px}.auth-story .brand{font-size:22px}.modal form{padding:19px}.modal-actions .btn,.breadcrumb{font-size:11px}}@media print{.timetable{min-width:0}.lesson-card strong{font-size:8px}.lesson-card>span,.lesson-card .lesson-group{font-size:7px}.lesson-card{padding:5px}.timetable th{font-size:9px}.lesson-time small{font-size:8px}.save-filters{display:none}}
