:root{--tenant-theme-color: #4338ca;--tenant-theme-color-rgb: 67, 56, 202;--tenant-theme-hover: #362d9f;--tenant-theme-active: #2b2480;--tenant-theme-soft: #eeedfb;--tenant-theme-soft-strong: #dad7f4;--tenant-theme-contrast: #ffffff;--tenant-theme-ring: rgba(67, 56, 202, .22);--color-bg: #f5f6fa;--color-surface: #ffffff;--color-surface-alt: #fafafc;--color-border: #e5e7ee;--color-border-strong: #d7d9e3;--color-text: #191b23;--color-text-muted: #676c7c;--color-text-faint: #9498a6;--color-danger: #dc2626;--color-danger-soft: #fdecec;--color-success: #16794f;--color-success-soft: #e7f6ec;--color-warning: #92650a;--color-warning-soft: #fff5e0;--shadow-xs: 0 1px 2px rgba(16, 24, 40, .04);--shadow-sm: 0 1px 3px rgba(16, 24, 40, .07), 0 1px 2px rgba(16, 24, 40, .04);--shadow-md: 0 4px 14px rgba(16, 24, 40, .08), 0 2px 6px rgba(16, 24, 40, .04);--shadow-lg: 0 16px 40px rgba(16, 24, 40, .14), 0 4px 12px rgba(16, 24, 40, .06);--shadow-brand: 0 6px 16px -4px rgba(var(--tenant-theme-color-rgb), .32);--surface-translucent: rgba(255, 255, 255, .82);--blob-opacity: .6;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--ease: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);color-scheme:light}:root[data-theme=dark]{--color-bg: #14161c;--color-surface: #1b1e26;--color-surface-alt: #21242e;--color-border: #2c303c;--color-border-strong: #3b4050;--color-text: #eef0f5;--color-text-muted: #a3a8b8;--color-text-faint: #74798a;--color-danger: #f87171;--color-danger-soft: rgba(248, 113, 113, .14);--color-success: #4ade80;--color-success-soft: rgba(74, 222, 128, .14);--color-warning: #fbbf24;--color-warning-soft: rgba(251, 191, 36, .14);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .45), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .5), 0 2px 6px rgba(0, 0, 0, .32);--shadow-lg: 0 20px 50px rgba(0, 0, 0, .6), 0 6px 16px rgba(0, 0, 0, .4);--surface-translucent: rgba(19, 21, 27, .78);--blob-opacity: .32;color-scheme:dark}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14.5px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--tenant-theme-soft-strong);color:var(--color-text)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:999px;border:2.5px solid var(--color-bg)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-faint)}h1,h2,h3{margin:0 0 4px;font-weight:700;letter-spacing:-.015em}h1{font-size:22px}h2{font-size:16px}p{margin:0 0 8px}a{color:var(--tenant-theme-color);font-weight:600;text-decoration:none;transition:color .14s var(--ease)}a:hover{color:var(--tenant-theme-hover);text-decoration:underline}code{background:var(--color-bg);border:1px solid var(--color-border);padding:1px 5px;border-radius:4px;font-size:.9em}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes softPulse{0%,to{opacity:.55}50%{opacity:1}}@keyframes blobDrift{0%{transform:translate(0) scale(1)}50%{transform:translate(2%,-3%) scale(1.06)}to{transform:translate(0) scale(1)}}.page-transition{animation:fadeInUp .38s var(--ease-out) both}.screen{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;overflow:hidden;background:radial-gradient(760px circle at 15% 15%,var(--tenant-theme-soft) 0%,transparent 60%),radial-gradient(760px circle at 85% 85%,var(--tenant-theme-soft) 0%,transparent 60%),var(--color-bg)}.screen:before{content:"";position:absolute;top:-120px;right:-120px;width:420px;height:420px;border-radius:50%;background:var(--tenant-theme-soft-strong);filter:blur(60px);opacity:var(--blob-opacity);animation:blobDrift 14s ease-in-out infinite;pointer-events:none}.screen-photo{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background-size:cover;background-position:center;animation:photoZoom 24s var(--ease-out) infinite alternate}@keyframes photoZoom{0%{transform:scale(1)}to{transform:scale(1.06)}}.screen-photo-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(700px circle at 88% 20%,rgba(var(--tenant-theme-color-rgb),.28) 0%,transparent 60%),linear-gradient(100deg,#08090ead,#08090e52 55%,#08090e1a)}.screen-glow{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(480px circle at var(--glow-x, 50%) var(--glow-y, 35%),rgba(var(--tenant-theme-color-rgb),.16),transparent 65%)}.login-tilt{flex:0 0 400px;max-width:400px;display:flex;align-items:center;transform:perspective(1000px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg));transition:transform .3s var(--ease-out);will-change:transform}.login-split{position:relative;z-index:1;display:flex;align-items:stretch;gap:40px;width:100%;max-width:1040px;margin:0 auto}.tenant-card.tenant-card-glass{background:#ffffff57;backdrop-filter:blur(38px) saturate(1.1);-webkit-backdrop-filter:blur(38px) saturate(1.1);border-color:#fff9;box-shadow:var(--shadow-lg),inset 0 1px #ffffff8c}.tenant-card.tenant-card-glass:before{display:none}:root[data-theme=dark] .tenant-card.tenant-card-glass{background:#12141a66;border-color:#ffffff29;box-shadow:var(--shadow-lg),inset 0 1px #ffffff1a}.tenant-card.tenant-card-glass h1{color:#14161c}.tenant-card.tenant-card-glass .subtitle,.tenant-card.tenant-card-glass .field label{color:#14161cb8}:root[data-theme=dark] .tenant-card.tenant-card-glass h1{color:#fff}:root[data-theme=dark] .tenant-card.tenant-card-glass .subtitle,:root[data-theme=dark] .tenant-card.tenant-card-glass .field label{color:#ffffffb8}.tenant-card-glass .field input{background:#ffffff8c;border-color:#fff9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#14161c}.tenant-card-glass .field input::placeholder{color:#14161c8c}.tenant-card-glass .field input:hover{border-color:#ffffffbf}.tenant-card-glass .field input:focus{background:#ffffffbf;border-color:var(--tenant-theme-color)}:root[data-theme=dark] .tenant-card-glass .field input{background:#ffffff1a;border-color:#ffffff2e;color:#fff}:root[data-theme=dark] .tenant-card-glass .field input::placeholder{color:#ffffff80}:root[data-theme=dark] .tenant-card-glass .field input:hover{border-color:#ffffff4d}:root[data-theme=dark] .tenant-card-glass .field input:focus{background:#ffffff29}.login-brand-panel{position:relative;flex:1 1 0;min-width:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:44px 40px;gap:8px;border-radius:var(--radius-lg);background:linear-gradient(160deg,var(--tenant-theme-color) 0%,var(--tenant-theme-hover) 100%);color:var(--tenant-theme-contrast);box-shadow:var(--shadow-lg)}.login-brand-panel--photo{background:none;box-shadow:none;color:#fff}.login-brand-panel .tenant-logo{width:168px;height:168px;max-width:none;max-height:none;object-fit:cover;border-radius:50%;margin-bottom:20px;border:4px solid rgba(255,255,255,.35);box-shadow:var(--shadow-md)}.login-brand-panel .tenant-logo-fallback{width:168px;height:168px;border-radius:50%;margin-bottom:20px;font-size:58px}.login-brand-name{color:currentColor;font-size:44px;line-height:1.15;margin:4px 0 14px}.login-brand-quote{max-width:460px;margin:14px 0 0;padding:0;font-size:21px;font-style:italic;line-height:1.6;color:currentColor;opacity:.94}.login-brand-quote:before{content:"“";display:block;font-size:46px;line-height:1;font-style:normal;opacity:.5;margin-bottom:2px}.login-brand-socials{display:flex;gap:12px;margin-top:28px}.login-social-link{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:999px;color:currentColor;background:#ffffff29;border:1px solid rgba(255,255,255,.28);transition:background .16s var(--ease),transform .14s var(--ease),border-color .16s var(--ease)}.login-social-link svg{width:20px;height:20px}.login-social-link:hover{background:#ffffff4d;border-color:#ffffff73;transform:translateY(-2px);text-decoration:none}.platform-badge{position:absolute;bottom:22px;left:22px;z-index:2;display:inline-flex;align-items:center;gap:8px;padding:6px 13px 6px 6px;border-radius:999px;background:var(--surface-translucent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);color:var(--color-text-muted);font-size:11.5px;font-weight:600}.platform-badge strong{color:var(--color-text)}.platform-badge-mark{flex-shrink:0;width:22px;height:22px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff;background:linear-gradient(145deg,#4338ca,#362d9f)}@media (max-width: 860px){.login-split{justify-content:center}.login-brand-panel{display:none}.platform-badge span:last-child{display:none}}.tenant-card{position:relative;z-index:1;width:100%;max-width:400px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:38px 36px;text-align:center;animation:fadeInUp .5s var(--ease-out) both}.tenant-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:linear-gradient(90deg,var(--tenant-theme-color),var(--tenant-theme-hover))}.tenant-logo{max-width:120px;max-height:80px;margin-bottom:18px}.tenant-logo-fallback{width:56px;height:56px;margin:0 auto 18px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;color:var(--tenant-theme-contrast);background:linear-gradient(145deg,var(--tenant-theme-color),var(--tenant-theme-hover));box-shadow:var(--shadow-brand)}.tenant-card h1{color:var(--color-text)}.tenant-card .subtitle{color:var(--color-text-muted);font-size:13.5px;margin-bottom:22px}.field{margin-top:14px;text-align:left}.field:first-child{margin-top:0}.field label{display:block;font-size:12.5px;font-weight:650;color:var(--color-text-muted);margin-bottom:6px;letter-spacing:.01em}input[type=email],input[type=password],input:not([type]){width:100%;padding:10px 12px;font-size:14px;font-family:inherit;color:var(--color-text);background:var(--color-surface-alt);border:2px solid var(--color-border-strong);border-radius:var(--radius-sm);outline:none;transition:border-color .14s var(--ease),box-shadow .14s var(--ease),background .14s var(--ease)}input:hover{border-color:var(--color-text-faint)}input:focus{background:var(--color-surface);border-color:var(--tenant-theme-color);box-shadow:0 0 0 3.5px var(--tenant-theme-ring)}button{font-family:inherit;cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:10px 16px;font-size:14px;font-weight:650;border-radius:var(--radius-sm);border:none;background:var(--tenant-theme-color);color:var(--tenant-theme-contrast);margin-top:20px;box-shadow:var(--shadow-brand);transition:background .14s var(--ease),transform .12s var(--ease),box-shadow .14s var(--ease)}.btn:hover:not(:disabled){background:var(--tenant-theme-hover);transform:translateY(-1px);box-shadow:0 10px 20px -6px rgba(var(--tenant-theme-color-rgb),.4)}.btn:active:not(:disabled){background:var(--tenant-theme-active);transform:translateY(0) scale(.98);box-shadow:var(--shadow-xs)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3.5px var(--tenant-theme-ring)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-link{display:inline-block;margin-top:14px;width:auto;background:none;color:var(--tenant-theme-color);padding:0;box-shadow:none}.alert{padding:10px 13px;border-radius:var(--radius-sm);font-size:13.5px;margin-top:14px;text-align:left;animation:fadeIn .2s var(--ease) both}.alert-error{background:var(--color-danger-soft);color:var(--color-danger)}.alert-success{background:var(--color-success-soft);color:var(--color-success)}.state-message{text-align:center;color:var(--color-text-muted);font-size:13.5px}.badge-hint{display:inline-block;margin-top:18px;font-size:12px;color:var(--color-text-faint)}.quote-card{display:flex;gap:14px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-alt)}.quote-card-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;flex-shrink:0;background:linear-gradient(145deg,var(--tenant-theme-color),var(--tenant-theme-hover));color:var(--tenant-theme-contrast);box-shadow:var(--shadow-brand)}.quote-card-icon svg{width:19px;height:19px}.quote-card-body{flex:1;min-width:0}.quote-card-body label{display:block;font-size:12.5px;font-weight:650;color:var(--color-text-muted);margin-bottom:6px}.quote-card-body textarea{margin:0}.social-fields-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.social-field{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-alt);transition:border-color .16s var(--ease),background .16s var(--ease)}.social-field-filled{border-color:var(--tenant-theme-color);background:var(--color-surface)}.social-field-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;flex-shrink:0;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted)}.social-field-filled .social-field-icon{color:var(--tenant-theme-color);border-color:var(--tenant-theme-color)}.social-field-icon svg{width:17px;height:17px}.social-field-input{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.social-field-input label{font-size:11.5px;font-weight:650;color:var(--color-text-muted)}.social-field-input input{margin:0}.app-shell{display:flex;min-height:100vh}.app-sidebar{width:232px;flex-shrink:0;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;padding:18px 0;position:sticky;top:0;height:100vh;z-index:20;transition:width .2s var(--ease)}.app-shell-collapsed .app-sidebar{width:76px}.app-sidebar-brand{display:flex;align-items:center;gap:10px;padding:4px 18px 18px;border-bottom:1px solid var(--color-border);margin-bottom:12px}.app-shell-collapsed .app-sidebar-brand{justify-content:center;padding:4px 0 18px}.app-sidebar-badge{flex-shrink:0;width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:14px;font-weight:800;color:var(--tenant-theme-contrast);background:linear-gradient(145deg,var(--tenant-theme-color),var(--tenant-theme-hover));box-shadow:var(--shadow-brand)}.app-sidebar-badge img{width:100%;height:100%;object-fit:cover}.app-sidebar-name{font-weight:700;font-size:14px;color:var(--color-text);line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell-collapsed .app-sidebar-name{display:none}.app-nav{display:flex;flex-direction:column;gap:2px;padding:0 10px}.app-shell-collapsed .app-nav{padding:0 14px}.app-nav a{display:flex;align-items:center;gap:10px;position:relative;color:var(--color-text-muted);font-weight:550;font-size:13.5px;padding:9px 12px;border-radius:var(--radius-sm);text-decoration:none;white-space:nowrap;transition:background .16s var(--ease),color .16s var(--ease),transform .12s var(--ease)}.app-shell-collapsed .app-nav a{justify-content:center;padding:10px}.app-nav a svg{flex-shrink:0;width:17px;height:17px;opacity:.85}.app-nav a:hover{background:var(--color-surface-alt);color:var(--color-text);text-decoration:none;transform:translate(1px)}.app-shell-collapsed .app-nav a:hover{transform:none}.app-nav a.active{background:var(--tenant-theme-soft);color:var(--tenant-theme-active);font-weight:650}.app-nav a.active svg{opacity:1}.app-nav a.active:before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--tenant-theme-color)}.app-shell-collapsed .app-nav a:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 14px);top:50%;transform:translateY(-50%) translate(-4px);background:var(--color-text);color:var(--color-bg);font-size:12px;font-weight:600;white-space:nowrap;padding:6px 10px;border-radius:7px;box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transition:opacity .14s var(--ease),transform .14s var(--ease);z-index:30}.app-shell-collapsed .app-nav a:hover:after{opacity:1;transform:translateY(-50%) translate(0)}.app-sidebar-footer-nav{margin-top:auto;padding-top:10px;border-top:1px solid var(--color-border)}.app-sidebar-collapse{display:flex;align-items:center;gap:10px;padding:14px 20px;border:none;background:transparent;color:var(--color-text-faint);font-size:12.5px;font-weight:600;transition:background .14s var(--ease),color .14s var(--ease)}.app-sidebar-collapse svg{flex-shrink:0;width:17px;height:17px;transition:transform .2s var(--ease)}.app-sidebar-collapse:hover{background:var(--color-surface-alt);color:var(--color-text)}.app-shell-collapsed .app-sidebar-collapse{justify-content:center;padding:14px 0}.app-shell-collapsed .app-sidebar-collapse svg{transform:rotate(180deg)}.nav-label{overflow:hidden;text-overflow:ellipsis}.app-shell-collapsed .nav-label{display:none}.app-main{flex:1;min-width:0;display:flex;flex-direction:column}.app-topbar{display:flex;align-items:center;justify-content:space-between;padding:13px 28px;background:var(--surface-translucent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:5}.app-topbar-user{display:flex;align-items:center;gap:10px;padding:4px 8px 4px 4px;border-radius:var(--radius-sm);transition:background .14s var(--ease)}.app-topbar-user:hover{background:var(--color-surface-alt)}.app-topbar-avatar{width:30px;height:30px;border-radius:999px;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:12px;font-weight:700;color:var(--tenant-theme-contrast);background:linear-gradient(145deg,var(--tenant-theme-color),var(--tenant-theme-hover))}.app-topbar-avatar img{width:100%;height:100%;object-fit:cover}.app-topbar-identity{display:flex;flex-direction:column;line-height:1.25}.app-topbar-identity strong{font-size:13px;font-weight:650;color:var(--color-text)}.app-topbar-identity span{font-size:11.5px;color:var(--color-text-faint)}.app-content{flex:1;min-width:0;padding:28px;max-width:1080px;width:100%;margin:0 auto}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:24px;margin-bottom:20px;transition:box-shadow .18s var(--ease),transform .18s var(--ease),border-color .18s var(--ease);animation:fadeInUp .4s var(--ease-out) both}.app-content>.panel:nth-of-type(2){animation-delay:.04s}.app-content>.panel:nth-of-type(3){animation-delay:.08s}.app-content>.panel:nth-of-type(4){animation-delay:.12s}.panel:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-strong)}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}.panel-header h2{font-size:16px}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:12px}.form-actions{display:flex;gap:10px;margin-top:4px}.btn-inline{width:auto;margin-top:0;padding:8px 15px;font-size:13px;box-shadow:none}.btn-inline:hover:not(:disabled){box-shadow:0 6px 14px -6px rgba(var(--tenant-theme-color-rgb),.4)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1.5px solid var(--color-border);box-shadow:none}.btn-secondary:hover:not(:disabled){background:var(--color-surface-alt);border-color:var(--color-border-strong);color:var(--color-text);box-shadow:none;transform:translateY(-1px)}.btn-secondary:active:not(:disabled){background:var(--color-bg);transform:translateY(0) scale(.98)}.btn-danger{background:var(--color-danger);box-shadow:0 6px 14px -6px #dc262666}.btn-danger:hover:not(:disabled){background:#c01f1f}.data-table{width:100%;border-collapse:collapse;font-size:13.5px}.data-table th,.data-table td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--color-border)}.data-table th{color:var(--color-text-faint);font-weight:650;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}.data-table tbody tr{transition:background .12s var(--ease)}.data-table tbody tr:hover{background:var(--color-surface-alt)}.data-table tbody tr:last-child td{border-bottom:none}.timetable-grid th,.timetable-grid td{text-align:center;white-space:nowrap}.timetable-grid th:first-child,.timetable-grid td:first-child{text-align:left}.timetable-period-label{font-weight:650}.timetable-period-time{display:block;font-weight:400;font-size:11.5px;color:var(--color-text-faint)}.timetable-cell{display:inline-flex;align-items:center;justify-content:center;min-width:84px;padding:7px 10px;border-radius:var(--radius-sm);border:none;font-size:12.5px;font-weight:650;cursor:pointer;transition:background .12s var(--ease),transform .12s var(--ease)}.timetable-cell-filled{background:var(--tenant-theme-soft);color:var(--tenant-theme-color)}.timetable-cell-filled:not(.timetable-cell-static):hover{background:var(--tenant-theme-soft-strong);transform:translateY(-1px)}.timetable-cell-static{cursor:default}.timetable-cell-empty{background:transparent;color:var(--color-text-faint);border:1.5px dashed var(--color-border);opacity:0}.timetable-grid td:hover .timetable-cell-empty{opacity:1}.timetable-cell-empty:hover{border-color:var(--tenant-theme-color);color:var(--tenant-theme-color)}.timetable-cell-empty svg{width:14px;height:14px}.timetable-cell-blank{display:block;min-width:84px;height:1px}.timetable-divider-row td{background:var(--color-surface-alt);color:var(--color-text-faint);font-size:11.5px;font-weight:650;text-transform:uppercase;letter-spacing:.04em;text-align:center;padding:6px 12px}.timetable-cell-td{position:relative}.timetable-cell-popover{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);z-index:60;min-width:220px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:12px;display:flex;flex-direction:column;gap:10px;text-align:left;white-space:normal;animation:fadeInUp .16s var(--ease-out) both}.timetable-cell-popover-above{top:auto;bottom:calc(100% + 6px)}.timetable-popover-actions{display:flex;justify-content:flex-end;gap:8px}.status-pill{display:inline-flex;align-items:center;gap:5px;padding:3.5px 10px;border-radius:999px;font-size:11.5px;font-weight:650;text-transform:capitalize}.status-pill:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.status-pill.active{background:var(--color-success-soft);color:var(--color-success)}.status-pill.invited{background:var(--color-warning-soft);color:var(--color-warning)}.status-pill.disabled,.status-pill.expelled{background:var(--color-danger-soft);color:var(--color-danger)}.status-pill.discontinued{background:var(--color-warning-soft);color:var(--color-warning)}.status-pill.promoted{background:var(--tenant-theme-soft);color:var(--tenant-theme-color)}.status-pill.graduated{background:var(--color-border);color:var(--color-text-muted)}.hod-status{display:inline-flex;align-items:center;gap:7px}.attendance-schedule-list{display:flex;flex-direction:column;gap:8px}.attendance-period-card{display:flex;align-items:center;gap:16px;width:100%;padding:12px 16px;background:var(--color-surface-alt);border:1.5px solid var(--color-border);border-radius:var(--radius-md);text-align:left;cursor:pointer;transition:background .12s var(--ease),border-color .12s var(--ease),transform .12s var(--ease)}.attendance-period-card:hover{border-color:var(--tenant-theme-color);transform:translateY(-1px)}.attendance-period-card.is-now{border-color:var(--tenant-theme-color);background:var(--tenant-theme-soft)}.attendance-period-card.is-unmarked{border-left:3px solid var(--color-danger)}.attendance-period-time{display:flex;flex-direction:column;min-width:84px}.attendance-period-info{flex:1}.attendance-period-status{display:flex;align-items:center;gap:8px}.attendance-roster-search{flex-shrink:0;margin-bottom:12px}.attendance-roster-scroll{flex:1 1 auto;overflow-y:auto;min-height:0}.attendance-modal-footer{flex-shrink:0;padding-top:12px}.hod-status svg{width:17px;height:17px;flex-shrink:0}.hod-status-assigned{color:var(--color-success)}.hod-status-unassigned{color:var(--color-danger)}.hod-reassign{display:flex;align-items:center;gap:8px}.empty-state{color:var(--color-text-muted);font-size:13.5px;padding:12px 0;animation:softPulse 1.8s ease-in-out infinite}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px 0;text-align:center}.loading-state-sm{gap:4px;padding:14px 0}.loading-state .loading-illustration{width:100%;height:auto}.loading-state-lg{padding:32px 0}.loading-state-lg .loading-illustration{max-width:280px}.loading-state-label{color:var(--color-text-muted);font-size:13.5px}.loading-state-lg .loading-state-label{font-size:14.5px}.data-loader{width:40px;aspect-ratio:1;color:#f03355;position:relative;background:radial-gradient(10px,currentColor 94%,#0000)}.data-loader:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(9px at bottom right,#0000 94%,currentColor) top left,radial-gradient(9px at bottom left,#0000 94%,currentColor) top right,radial-gradient(9px at top right,#0000 94%,currentColor) bottom left,radial-gradient(9px at top left,#0000 94%,currentColor) bottom right;background-size:20px 20px;background-repeat:no-repeat;animation:data-loader-spin 1.5s infinite cubic-bezier(.3,1,0,1)}@keyframes data-loader-spin{33%{top:-10px;right:-10px;bottom:-10px;left:-10px;transform:rotate(0)}66%{top:-10px;right:-10px;bottom:-10px;left:-10px;transform:rotate(90deg)}to{top:0;right:0;bottom:0;left:0;transform:rotate(90deg)}}.field-inline{margin-top:0}.field-inline label{font-size:12.5px}.profile-photo-row{display:flex;align-items:center;gap:18px;margin-bottom:22px}.profile-photo-preview,.profile-photo-fallback{width:84px;height:84px;border-radius:50%;flex-shrink:0;border:1px solid var(--color-border)}.profile-photo-preview{object-fit:cover}.profile-photo-fallback{display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;color:var(--tenant-theme-contrast);background:linear-gradient(145deg,var(--tenant-theme-color),var(--tenant-theme-hover));box-shadow:var(--shadow-brand)}.profile-photo-input{font-size:13px;color:var(--color-text-muted)}.account-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--color-border)}.account-row:first-of-type{border-top:none}.account-row strong{font-size:14px}select,input[type=text],input[type=number],input[type=date],input[type=time],textarea{width:100%;padding:10px 12px;font-size:14px;font-family:inherit;color:var(--color-text);background:var(--color-surface-alt);border:2px solid var(--color-border-strong);border-radius:var(--radius-sm);outline:none;transition:border-color .14s var(--ease),box-shadow .14s var(--ease),background .14s var(--ease)}select:hover,input[type=text]:hover,input[type=number]:hover,input[type=date]:hover,input[type=time]:hover,textarea:hover{border-color:var(--color-text-faint)}select:focus,input[type=text]:focus,input[type=number]:focus,input[type=date]:focus,input[type=time]:focus,textarea:focus{background:var(--color-surface);border-color:var(--tenant-theme-color);box-shadow:0 0 0 3.5px var(--tenant-theme-ring)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;border-radius:999px;border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);padding:0;transition:background .14s var(--ease),border-color .14s var(--ease),color .14s var(--ease),transform .12s var(--ease)}.theme-toggle svg{width:17px;height:17px;animation:scaleIn .2s var(--ease-out)}.theme-toggle:hover{background:var(--color-surface-alt);border-color:var(--color-border-strong);color:var(--tenant-theme-color);transform:translateY(-1px)}.theme-toggle:active{transform:translateY(0) scale(.92)}.theme-toggle:focus-visible{outline:none;box-shadow:0 0 0 3.5px var(--tenant-theme-ring)}.theme-toggle-floating{position:absolute;top:22px;right:22px;z-index:2;box-shadow:var(--shadow-sm)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;border-radius:999px;border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);padding:0;cursor:pointer;transition:background .14s var(--ease),border-color .14s var(--ease),color .14s var(--ease),transform .12s var(--ease)}.icon-btn svg{width:17px;height:17px}.icon-btn:hover{background:var(--color-surface-alt);border-color:var(--color-border-strong);color:var(--tenant-theme-color);transform:translateY(-1px)}.icon-btn:active{transform:translateY(0) scale(.92)}.icon-btn:focus-visible{outline:none;box-shadow:0 0 0 3.5px var(--tenant-theme-ring)}.filter-popover{position:relative;display:inline-block}.filter-popover-trigger{position:relative}.filter-popover-dot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--tenant-theme-color)}.filter-popover-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:50;min-width:260px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:16px;display:flex;flex-direction:column;gap:12px;animation:fadeInUp .16s var(--ease-out) both}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182873;display:flex;align-items:flex-start;justify-content:center;padding:64px 20px;z-index:100;animation:fadeInUp .2s var(--ease-out) both}.modal-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:24px;width:100%;max-width:520px;max-height:calc(100vh - 128px);overflow-y:auto}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182873;display:flex;justify-content:flex-end;z-index:100;animation:fadeIn .2s var(--ease-out) both}.drawer-panel{background:var(--color-surface);border-left:1px solid var(--color-border);box-shadow:var(--shadow-lg);padding:24px;width:100%;max-width:880px;height:100%;overflow-y:auto;animation:drawerSlideIn .22s var(--ease-out) both}@keyframes drawerSlideIn{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}@media (max-width: 720px){.drawer-panel{max-width:100%}}.timetable-cell-proposed{outline:2px dashed var(--tenant-theme-color);outline-offset:2px}.lab-slot-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:84px;padding:7px 10px;border-radius:var(--radius-sm);font-size:12.5px;font-weight:650;cursor:pointer}.lab-slot-free{background:var(--color-success-soft);color:var(--color-success);border:1px solid transparent}.lab-slot-busy{background:transparent;color:var(--color-text-faint);border:1.5px dashed var(--color-border)}.lab-slot-busy:hover{border-color:var(--tenant-theme-color);color:var(--tenant-theme-color)}.option-chip{display:inline-flex;align-items:center;padding:8px 15px;font-size:13px;font-weight:600;border-radius:var(--radius-sm);border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);cursor:pointer;transition:border-color .14s var(--ease),background .14s var(--ease),color .14s var(--ease)}.option-chip:hover{border-color:var(--color-border-strong);color:var(--color-text)}.option-chip-selected{border-color:var(--tenant-theme-color);background:var(--tenant-theme-soft);color:var(--tenant-theme-color);font-weight:700}.option-chip-selected:hover{background:var(--tenant-theme-soft-strong);color:var(--tenant-theme-color)}.lab-chip-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.lab-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 8px 6px 12px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface-alt);color:var(--color-text);font-size:13px;font-weight:600}.lab-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;color:var(--color-text-faint);background:transparent}.lab-chip-remove:hover{background:var(--color-danger-soft);color:var(--color-danger)}.lab-chip-remove svg{width:12px;height:12px}.overview-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.overview-stat-card{padding:14px 16px;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md)}.overview-stat-value{font-size:24px;font-weight:700;line-height:1.2}.overview-stat-label{margin-top:2px;font-size:12.5px;color:var(--color-text-muted)}.overview-gap-list{display:flex;flex-direction:column;gap:10px;list-style:none;padding:0;margin:0}.overview-gap-list li{font-size:13.5px}.welcome-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:14px 24px;margin-bottom:16px}.welcome-heading{margin:0;font-size:32px;font-weight:700;letter-spacing:-.02em;line-height:1.25;position:relative;display:inline-block}.welcome-heading:after{content:"";position:absolute;left:1px;bottom:-6px;width:46px;height:3px;border-radius:2px;background:var(--tenant-theme-color);transform-origin:left;animation:welcomeUnderline .5s var(--ease-out) .3s both,softPulse 2.4s ease-in-out .9s infinite}.welcome-letter{display:inline-block;opacity:0;transform:translateY(14px);animation:welcomeLetterIn .5s var(--ease-out) both}@keyframes welcomeLetterIn{to{opacity:1;transform:translateY(0)}}@keyframes welcomeUnderline{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.wm-stage{--wm-size: 112px;--wm-face-hi: #fff6e7;--wm-face: #ffe9c9;--wm-face-lo: #f3d0a0;--wm-ink: #3a3a45;--wm-hair: #4b4350;--wm-hair-lo: #322d3a;--wm-cheek: #f79098;--wm-tongue: #ef6b73;--wm-accent: var(--tenant-theme-color);--wm-accent-lo: var(--tenant-theme-hover);--wm-t0: 0s;--wm-lx: 0;--wm-ly: 0;position:relative;flex:none;width:var(--wm-size);height:var(--wm-size);font-size:calc(var(--wm-size) / 14);line-height:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.wm-glow{position:absolute;left:1.4em;top:1.2em;width:11.2em;height:11.2em;border-radius:50%;background:radial-gradient(circle at 50% 45%,rgba(var(--tenant-theme-color-rgb),.18),rgba(var(--tenant-theme-color-rgb),.07) 46%,rgba(var(--tenant-theme-color-rgb),0) 70%);animation:wm-glow-breathe 7s ease-in-out calc(var(--wm-t0) + .6s) infinite both}.wm-pop{position:absolute;left:1.5em;top:.9em;width:11em;height:13em;transform-origin:50% 90%;animation:wm-pop .85s cubic-bezier(.22,1.08,.34,1) var(--wm-t0) both}.wm-float{position:absolute;top:0;right:0;bottom:0;left:0;animation:wm-float 4.4s ease-in-out calc(var(--wm-t0) + .85s) infinite both}.wm-look{position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(calc(var(--wm-lx) * .16em),calc(var(--wm-ly) * .11em)) rotate(calc(var(--wm-lx) * 1.7deg));transition:transform .45s cubic-bezier(.22,.8,.28,1)}.wm-body{position:absolute;left:3.2em;top:7.5em;width:4.6em;height:3.3em;z-index:1;border-radius:1.5em 1.5em 1.9em 1.9em;background:linear-gradient(168deg,color-mix(in srgb,var(--wm-accent) 70%,white) 0%,var(--wm-accent) 45%,var(--wm-accent-lo) 100%);box-shadow:inset 0 -.3em .6em #00000038,inset 0 .2em .4em #ffffff38}.wm-arm{position:absolute;top:8.6em;width:0;height:0;z-index:2}.wm-limb{position:absolute;left:-.36em;top:-.25em;width:.72em;height:1.8em;border-radius:.36em;background:linear-gradient(180deg,var(--wm-face),var(--wm-face-lo))}.wm-hand{position:absolute;left:-.56em;top:1.25em;width:1.12em;height:1.12em;border-radius:50%;background:linear-gradient(155deg,var(--wm-face-hi),var(--wm-face-lo));box-shadow:inset 0 -.14em .28em #b4824638}.wm-arm--r{left:7.5em;animation:wm-wave-r 1.75s cubic-bezier(.36,0,.3,1) calc(var(--wm-t0) + 1.4s) both,wm-idle-r 3.8s ease-in-out calc(var(--wm-t0) + 3.15s) infinite both}.wm-arm--l{left:3.5em;animation:wm-perk-l 1.75s ease-in-out calc(var(--wm-t0) + 1.4s) both,wm-idle-l 3.8s ease-in-out calc(var(--wm-t0) + 3.15s) infinite both}.wm-hair-back,.wm-hair-front{position:absolute;top:0;right:0;bottom:0;left:0}.wm-hair-back{z-index:3}.wm-hair-front{z-index:5}.wm-puff,.wm-lobe{position:absolute;border-radius:50%;background:linear-gradient(165deg,var(--wm-hair),var(--wm-hair-lo))}.wm-puff--l{left:.4em;top:1.6em;width:2.6em;height:2.8em}.wm-puff--r{left:8em;top:1.5em;width:2.7em;height:2.9em}.wm-puff--t{left:3.4em;top:-.8em;width:4.2em;height:3.2em}.wm-lobe--a{left:1.3em;top:.15em;width:3.6em;height:3.4em}.wm-lobe--b{left:3.7em;top:-.35em;width:3.9em;height:4.1em}.wm-lobe--c{left:6.2em;top:.25em;width:3.4em;height:3.3em}.wm-sheen{position:absolute;left:3.1em;top:.35em;width:3.1em;height:1.5em;border-radius:50%;background:#fff;opacity:.1;filter:blur(.2em);transform:rotate(-18deg)}.wm-strand{position:absolute;z-index:3;transform-origin:50% 100%;background:linear-gradient(180deg,var(--wm-hair),var(--wm-hair-lo));border-radius:50% 50% 42% 42%/62% 62% 38% 38%;transform:rotate(var(--a));animation:wm-sway var(--dur) ease-in-out calc(var(--wm-t0) + .9s) infinite both}.wm-strand--1{left:4.55em;top:-1.35em;width:.62em;height:1.95em;--a: -16deg;--sway: 9deg;--dur: 3.9s}.wm-strand--2{left:5.35em;top:-1.7em;width:.58em;height:2.2em;--a: -4deg;--sway: 8deg;--dur: 4.6s}.wm-strand--3{left:6.1em;top:-1.35em;width:.52em;height:1.9em;--a: 9deg;--sway: -8deg;--dur: 4.2s}.wm-strand--4{left:3.85em;top:-.75em;width:.46em;height:1.55em;--a: -28deg;--sway: 7deg;--dur: 5.1s}.wm-strand--5{left:6.85em;top:-.7em;width:.44em;height:1.5em;--a: 22deg;--sway: -7deg;--dur: 4.8s}.wm-strand--6{left:2.9em;top:.3em;width:.42em;height:1.3em;--a: -42deg;--sway: 6deg;--dur: 5.5s}.wm-strand--7{left:7.8em;top:.35em;width:.4em;height:1.25em;--a: 36deg;--sway: -6deg;--dur: 5.9s}.wm-head{position:absolute;left:1.1em;top:.5em;width:8.8em;height:8em;z-index:4;border-radius:47% 47% 45% 45%/49% 49% 51% 51%;background:linear-gradient(160deg,var(--wm-face-hi) 0%,var(--wm-face) 52%,var(--wm-face-lo) 100%);box-shadow:inset 0 -.4em .9em #b27e3e3d,inset 0 .3em .6em #ffffff8c}.wm-eye{position:absolute;top:4.32em;width:1.15em;height:1.15em;z-index:6;transform-origin:50% 50%;animation:wm-blink 4s ease-in-out calc(var(--wm-t0) + 1.1s) infinite both}.wm-eye--l{left:3.17em}.wm-eye--r{left:6.67em}.wm-eyeball{position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(calc(var(--wm-lx) * .21em),calc(var(--wm-ly) * .17em));transition:transform .3s cubic-bezier(.22,.8,.28,1)}.wm-pupil{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(circle at 34% 30%,#4a4a56 0%,var(--wm-ink) 60%)}.wm-glint{position:absolute;left:.58em;top:.17em;width:.36em;height:.36em;border-radius:50%;background:#fff;opacity:.92}.wm-heart{display:none;position:absolute;top:0;right:0;bottom:0;left:0}.wm-heart:before,.wm-heart:after{content:"";position:absolute;top:.12em;left:.56em;width:.5em;height:.8em;border-radius:.25em .25em 0 0;background:#ef4444}.wm-heart:before{transform:rotate(-45deg);transform-origin:0 100%}.wm-heart:after{transform:rotate(45deg);transform-origin:100% 100%}.wm-arc{display:none;position:absolute;left:-.11em;top:.3em;width:1.37em;height:.6em;border-top:.26em solid var(--wm-ink);border-radius:50% 50% 0 0/100% 100% 0 0}.wm-cheek{position:absolute;top:5.75em;width:1.55em;height:.85em;z-index:6;border-radius:50%;background:var(--wm-cheek);opacity:.52;filter:blur(.17em);transition:opacity .3s ease,top .3s ease}.wm-cheek--l{left:1.95em}.wm-cheek--r{left:7.5em}.wm-mouth{position:absolute;left:4.47em;top:6.05em;width:2.06em;height:1.16em;z-index:6;overflow:hidden;border-radius:38% 38% 52% 52%/26% 26% 88% 88%;background:var(--wm-ink);transform-origin:50% 0;animation:wm-smile .5s cubic-bezier(.34,1.42,.5,1) calc(var(--wm-t0) + .5s) both;transition:width .28s ease,height .28s ease,left .28s ease,top .28s ease,border-radius .28s ease}.wm-tongue{position:absolute;left:.5em;bottom:-.12em;width:1.06em;height:.58em;border-radius:50% 50% 42% 42%/68% 68% 32% 32%;background:var(--wm-tongue)}.wm-sparkle{position:absolute;z-index:7;clip-path:polygon(50% 0%,59% 41%,100% 50%,59% 59%,50% 100%,41% 59%,0% 50%,41% 41%)}.wm-sparkle--1{left:-.4em;top:3.6em;width:.95em;height:.95em;background:#fff;animation:wm-twinkle 5.2s ease-in-out calc(var(--wm-t0) + 2s) infinite both}.wm-sparkle--2{left:10.3em;top:2.2em;width:1.15em;height:1.15em;background:#fde68a;animation:wm-twinkle 6.1s ease-in-out calc(var(--wm-t0) + 2.2s) infinite both}.wm-sparkle--3{left:10em;top:6.4em;width:.8em;height:.8em;background:#fca5a5;animation:wm-twinkle 6.8s ease-in-out calc(var(--wm-t0) + 3.5s) infinite both}.wm-sparkle--4{left:.2em;top:7em;width:.85em;height:.85em;background:#fff;animation:wm-twinkle 5.7s ease-in-out calc(var(--wm-t0) + 4.3s) infinite both}.wm-bubble{position:absolute;left:7.4em;top:-1em;z-index:8;min-width:3.9em;padding:.52em .7em;border-radius:1em 1em 1em .28em;background:#fff;color:#2a2a33;font-size:1.15em;font-weight:700;line-height:1;text-align:center;letter-spacing:-.01em;white-space:nowrap;box-shadow:0 .3em .8em #00000059;opacity:0;transform-origin:12% 100%;animation:wm-bubble 2.4s cubic-bezier(.3,1.15,.4,1) calc(var(--wm-t0) + 1.55s) both}.wm-bubble:after{content:"";position:absolute;left:.28em;bottom:-.26em;width:.72em;height:.72em;background:#fff;border-radius:.14em;transform:rotate(28deg)}.wm-zzz{display:none;position:absolute;left:9em;top:1.4em;z-index:8}.wm-zzz span{position:absolute;color:#fff;font-weight:700;line-height:1;opacity:0;text-shadow:0 .1em .3em rgb(0 0 0 / .4)}.wm-zzz span:nth-child(1){left:0;top:1.6em;font-size:.85em;animation:wm-zzz 3s ease-in-out 0s infinite both}.wm-zzz span:nth-child(2){left:.7em;top:.9em;font-size:1.05em;animation:wm-zzz 3s ease-in-out .55s infinite both}.wm-zzz span:nth-child(3){left:1.5em;top:.1em;font-size:1.3em;animation:wm-zzz 3s ease-in-out 1.1s infinite both}.wm-shadow{position:absolute;left:2.3em;top:11.9em;width:6.4em;height:1em;border-radius:50%;background:radial-gradient(ellipse at 50% 50%,#00000085,#00000038 55%,#0000 75%);filter:blur(.13em);animation:wm-shadow 4.4s ease-in-out calc(var(--wm-t0) + .85s) infinite both}.wm-stage.is-joy .wm-eyeball{opacity:0}.wm-stage.is-joy .wm-arc{display:block}.wm-stage.is-joy .wm-cheek{top:5.6em;opacity:.62}.wm-stage.is-wink .wm-eye--l{animation:none;transform:none}.wm-stage.is-wink .wm-eye--l .wm-eyeball{opacity:0}.wm-stage.is-wink .wm-eye--l .wm-arc{display:block}.wm-stage.is-wink .wm-mouth{width:1.7em;left:4.75em}.wm-stage.is-wink .wm-cheek--l{opacity:.72}.wm-stage.is-love .wm-pupil,.wm-stage.is-love .wm-glint{display:none}.wm-stage.is-love .wm-heart{display:block}.wm-stage.is-love .wm-eye{animation:wm-beat 1.15s ease-in-out infinite both}.wm-stage.is-love .wm-cheek{opacity:.78}.wm-stage.is-love .wm-mouth{width:2.3em;left:4.35em}.wm-stage.is-wow .wm-eye{animation:none;transform:scale(1.24)}.wm-stage.is-wow .wm-mouth{width:1.05em;height:1.15em;left:4.97em;top:6.15em;border-radius:50%}.wm-stage.is-wow .wm-tongue{display:none}.wm-stage.is-wow .wm-cheek{opacity:.36}.wm-stage.is-sleepy .wm-eye{animation:none;transform:scaleY(.14)}.wm-stage.is-sleepy .wm-mouth{width:.85em;height:.72em;left:5.08em;top:6.4em;border-radius:50%}.wm-stage.is-sleepy .wm-tongue{display:none}.wm-stage.is-sleepy .wm-cheek{opacity:.34}.wm-stage.is-sleepy .wm-zzz{display:block}.wm-stage.is-sleepy .wm-float,.wm-stage.is-sleepy .wm-shadow{animation-duration:7s}.wm-stage.is-cheer .wm-arm--l{animation:wm-cheer-l 1s ease-in-out 0s infinite alternate both}.wm-stage.is-cheer .wm-arm--r{animation:wm-cheer-r 1s ease-in-out .08s infinite alternate both}.wm-stage.is-cheer .wm-mouth{width:2.4em;height:1.35em;left:4.3em}.wm-stage.is-cheer .wm-cheek{opacity:.7}.wm-stage.is-hi .wm-arm--r{animation:wm-wave-r 1.75s cubic-bezier(.36,0,.3,1) 0s both,wm-idle-r 3.8s ease-in-out 1.75s infinite both}.wm-stage.is-hi .wm-arm--l{animation:wm-perk-l 1.75s ease-in-out 0s both,wm-idle-l 3.8s ease-in-out 1.75s infinite both}.wm-stage.is-hi .wm-bubble{animation:wm-bubble 2.4s cubic-bezier(.3,1.15,.4,1) .15s both}@keyframes wm-pop{0%{opacity:0;transform:scale(.35) translateY(1.6em) rotate(-9deg)}50%{opacity:1;transform:scale(1.09) translateY(-.4em) rotate(3deg)}72%{transform:scale(.98) translateY(.12em) rotate(-3.2deg)}88%{transform:scale(1.01) translateY(-.04em) rotate(-1deg)}to{opacity:1;transform:scale(1) translateY(0) rotate(-2deg)}}@keyframes wm-float{0%,to{transform:translateY(0) rotate(-2.4deg)}50%{transform:translateY(-.55em) rotate(-.4deg)}}@keyframes wm-shadow{0%,to{opacity:1;transform:scaleX(1)}50%{opacity:.58;transform:scaleX(.8)}}@keyframes wm-smile{0%{opacity:0;transform:scale(.15)}to{opacity:1;transform:scale(1)}}@keyframes wm-blink{0%,5%,11%,to{transform:scaleY(1)}8%{transform:scaleY(.08)}}@keyframes wm-beat{0%,to{transform:scale(1)}28%{transform:scale(1.18)}52%{transform:scale(1.02)}74%{transform:scale(1.12)}}@keyframes wm-wave-r{0%{transform:rotate(-22deg)}16%{transform:rotate(-132deg)}30%{transform:rotate(-104deg)}44%{transform:rotate(-134deg)}58%{transform:rotate(-106deg)}72%{transform:rotate(-132deg)}86%{transform:rotate(-110deg)}to{transform:rotate(-22deg)}}@keyframes wm-perk-l{0%{transform:rotate(22deg)}28%{transform:rotate(39deg)}62%{transform:rotate(31deg)}to{transform:rotate(22deg)}}@keyframes wm-idle-l{0%,to{transform:rotate(22deg)}50%{transform:rotate(27deg)}}@keyframes wm-idle-r{0%,to{transform:rotate(-22deg)}50%{transform:rotate(-27deg)}}@keyframes wm-cheer-l{0%{transform:rotate(138deg)}to{transform:rotate(152deg)}}@keyframes wm-cheer-r{0%{transform:rotate(-138deg)}to{transform:rotate(-152deg)}}@keyframes wm-sway{0%,to{transform:rotate(var(--a))}50%{transform:rotate(calc(var(--a) + var(--sway)))}}@keyframes wm-twinkle{0%{opacity:0;transform:scale(.2) rotate(0)}7%{opacity:1;transform:scale(1) rotate(22deg)}16%{opacity:.5;transform:scale(.72) rotate(42deg)}28%,to{opacity:0;transform:scale(.25) rotate(80deg)}}@keyframes wm-bubble{0%{opacity:0;transform:scale(.3) translateY(.5em)}12%{opacity:1;transform:scale(1.09) translateY(0)}20%{transform:scale(.97)}28%{transform:scale(1)}74%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.88) translateY(-.45em)}}@keyframes wm-zzz{0%{opacity:0;transform:translate(0) scale(.7)}22%{opacity:.9}to{opacity:0;transform:translate(.9em,-1.5em) scale(1.1)}}@keyframes wm-glow-breathe{0%,to{opacity:.72;transform:scale(.93)}50%{opacity:1;transform:scale(1.05)}}.welcome-panel .wm-stage{--wm-size: 88px}@media (max-width: 860px){.welcome-panel .wm-stage{--wm-size: 72px}}@media (max-width: 480px){.welcome-panel .wm-stage{display:none}}.report-profile{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px 24px;margin:0}.report-profile dt{font-size:12px;color:var(--color-text-secondary);margin-bottom:2px}.report-profile dd{margin:0;font-weight:500}@media print{.print-hide,.app-sidebar,.app-topbar{display:none!important}.student-report .panel{box-shadow:none;border:1px solid var(--color-border);break-inside:avoid}}
