:root{--bg-primary: linear-gradient(135deg, #FFF0F5 0%, #FFE4E1 40%, #E6E6FA 100%);--color-primary: #ec4899;--color-secondary: #8b5cf6;--color-accent: #f472b6;--color-neutral-50: #faf5ff;--color-neutral-100: #f3e8ff;--color-neutral-200: #e9d5ff;--color-neutral-300: #d8b4fe;--color-neutral-400: #c084fc;--color-neutral-500: #a855f7;--color-neutral-600: #9333ea;--color-neutral-700: #7e22ce;--color-neutral-800: #6b21a8;--color-neutral-900: #581c87;--text-heading: #1e1b4b;--text-body: #312e81;--text-secondary: #6366f1;--text-muted: #818cf8;--text-glass-heading: #1e1b4b;--text-glass-body: #312e81;--text-glass-muted: #6366f1;--glass-bg-1: rgba(255, 255, 255, .15);--glass-bg-2: rgba(255, 255, 255, .35);--glass-bg-3: rgba(255, 255, 255, .45);--glass-bg-4: rgba(255, 255, 255, .5);--glass-bg-5: rgba(255, 255, 255, .7);--glass-border-1: rgba(255, 255, 255, .25);--glass-border-2: rgba(255, 255, 255, .5);--glass-border-3: rgba(255, 255, 255, .6);--glass-highlight: rgba(255, 255, 255, .6);--glass-highlight-soft: rgba(255, 255, 255, .3);--glass-shade-rgb: 31, 38, 135;--glass-blur-sm: 8px;--glass-blur-lg: 24px saturate(1.5);--glow-pink: 244, 114, 182;--glow-primary: 236, 72, 153;--glow-purple: 167, 139, 250;--glow-border-pink: rgba(236, 72, 153, .95);--glow-border-purple: rgba(139, 92, 246, .95);--glow-border-rose: rgba(255, 211, 219, .7);--radius-glass: 12px;--radius-glass-lg: 16px;--radius-glass-xl: 20px;--radius-pill: 9999px;--radius-pill-sm: 999px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "苹方", "Microsoft YaHei", sans-serif;--font-mono: Monaco, Menlo, Consolas, "Courier New", monospace;--ease-out: cubic-bezier(.4, 0, .2, 1)}html,body,#root{width:100%;height:100%}body{background:var(--bg-primary, linear-gradient(135deg, #fff0f5, #ffe4e1 40%, #e6e6fa));background-attachment:fixed;color:var(--text-body, #312e81);font-family:var(--font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .3s ease,color .3s ease}h1,h2,h3,h4,h5,h6,.heading,[class*=title],[class*=Title]{font-weight:700;color:var(--text-heading, #1e1b4b)}.gradient-text{background:linear-gradient(135deg,var(--color-secondary),var(--color-primary),var(--color-accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.liquid-glass{background:var(--glass-bg-1, rgba(255, 255, 255, .15));backdrop-filter:var(--glass-blur-lg, blur(24px) saturate(1.5));-webkit-backdrop-filter:var(--glass-blur-lg, blur(24px) saturate(1.5));border:1px solid var(--glass-border-1, rgba(255, 255, 255, .25));box-shadow:0 8px 32px rgba(var(--glass-shade-rgb, 31 38 135),.2),inset 0 1px 0 var(--glass-highlight-soft, rgba(255, 255, 255, .3))}.glass{background:var(--glass-bg-2, rgba(255, 255, 255, .35));border:1px solid var(--glass-border-2, rgba(255, 255, 255, .5));box-shadow:0 8px 32px rgba(var(--glass-shade-rgb, 31 38 135),.15),inset 0 1px 0 var(--glass-highlight, rgba(255, 255, 255, .6))}.glass-dark{background:var(--glass-bg-1, rgba(255, 255, 255, .15));border:1px solid var(--glass-border-1, rgba(255, 255, 255, .25));box-shadow:0 8px 32px rgba(var(--glass-shade-rgb, 31 38 135),.2),inset 0 1px 0 var(--glass-highlight-soft, rgba(255, 255, 255, .3))}.glass-shortcut{background:var(--glass-bg-4, rgba(255, 255, 255, .5));border:1px solid var(--glass-border-3, rgba(255, 255, 255, .6));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 4px 16px rgba(var(--glass-shade-rgb, 31 38 135),.1),inset 0 1px #fffc}.glass-white{background:var(--glass-bg-3, rgba(255, 255, 255, .45));border:1px solid var(--glass-border-3, rgba(255, 255, 255, .6));box-shadow:0 2px 8px rgba(var(--glass-shade-rgb, 31 38 135),.1),inset 0 1px 0 var(--glass-highlight-soft, rgba(255, 255, 255, .5));transition:all .2s ease}.glass-white:hover{background:var(--glass-bg-4, rgba(255, 255, 255, .6));box-shadow:0 4px 14px rgba(var(--glass-shade-rgb, 31 38 135),.15),inset 0 1px 0 var(--glass-highlight, rgba(255, 255, 255, .7))}.glass-hover{transition:all .3s ease}.glass-hover:hover{background:var(--glass-bg-4, rgba(255, 255, 255, .5));transform:translateY(-2px);box-shadow:0 12px 40px rgba(var(--glass-shade-rgb, 31 38 135),.2),inset 0 1px 0 var(--glass-highlight, rgba(255, 255, 255, .7))}.liquid-glass-glow{box-shadow:0 0 30px 2px rgba(var(--glow-pink, 244 114 182),.35),0 12px 40px #bea0dc59,inset 0 1px 1px #fffffff2;will-change:box-shadow}.liquid-glass-glow:hover{box-shadow:0 0 30px 2px rgba(var(--glow-pink, 244 114 182),.5),0 12px 40px #bea0dc80,inset 0 1px 1px #fffffff2}.liquid-glass-hover-fade:hover{box-shadow:0 0 rgba(var(--glass-shade-rgb, 31 38 135),0),inset 0 0 #fff0}.glass-button{position:relative;overflow:hidden;background:var(--glass-bg-3, rgba(255, 255, 255, .45));backdrop-filter:var(--glass-blur-sm, blur(8px));-webkit-backdrop-filter:var(--glass-blur-sm, blur(8px));border:1px solid var(--glass-border-3, rgba(255, 255, 255, .6));border-radius:var(--radius-glass, 12px);padding:10px 14px;transition:all .2s ease;color:#1a1a2e;box-shadow:0 2px 8px rgba(var(--glass-shade-rgb, 31 38 135),.1),inset 0 1px 0 var(--glass-highlight-soft, rgba(255, 255, 255, .5));isolation:isolate}.glass-button,.glass-button>*{cursor:pointer}.glass-button:hover{background:var(--glass-bg-4, rgba(255, 255, 255, .55));transform:scale(1.02);box-shadow:0 4px 16px rgba(var(--glass-shade-rgb, 31 38 135),.15),inset 0 1px 0 var(--glass-highlight, rgba(255, 255, 255, .6))}.glass-button:active{transform:scale(.98)}.glass-button:before,.modal-action-button:before,.modal-action-button-secondary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transition:left .6s ease;pointer-events:none;z-index:0}.glass-button:hover:before,.modal-action-button:hover:before,.modal-action-button-secondary:hover:before{left:100%}.glass-button-no-scale:hover{transform:none!important}.glass-btn{background:linear-gradient(135deg,#ffffff80,#ffffff40);border:1px solid var(--glass-border-2, rgba(255, 255, 255, .5));box-shadow:0 4px 15px rgba(var(--glass-shade-rgb, 31 38 135),.1);transition:all .2s ease}.glass-btn:hover{background:linear-gradient(135deg,#ffffffb3,#fff6);transform:translateY(-1px);box-shadow:0 6px 20px rgba(var(--glass-shade-rgb, 31 38 135),.15)}.glass-btn:active{transform:translateY(0)}.btn-primary{background:linear-gradient(135deg,var(--color-secondary),var(--color-primary));color:#fff;border:none}.btn-primary:hover{background:linear-gradient(135deg,var(--color-secondary),var(--color-primary));box-shadow:0 6px 20px #7b61ff66}.btn-danger{background:linear-gradient(135deg,#ff6b6b,#ee5a6f);color:#fff;border:none}.btn-danger:hover{background:linear-gradient(135deg,#ff5b5b,#de4a5f);box-shadow:0 6px 20px #ff6b6b66}.modal-action-button{position:relative;overflow:hidden;background:linear-gradient(135deg,#ffd3dbcc,#ffd3db66);border:1px solid var(--glass-border-3, rgba(255, 255, 255, .6));border-radius:var(--radius-glass, 12px);padding:10px 14px;font-size:.875rem;font-weight:500;color:var(--color-primary);transition:all .2s ease;box-shadow:0 0 20px rgba(var(--glow-primary, 236 72 153),.3),inset 0 1px 0 var(--glass-highlight, rgba(255, 255, 255, .6));cursor:pointer}.modal-action-button:hover{background:linear-gradient(135deg,#ffd3db,#ffd3db99);box-shadow:0 0 30px rgba(var(--glow-primary, 236 72 153),.4),inset 0 1px #ffffffb3;transform:scale(1.02)}.modal-action-button:active{transform:scale(.98)}.modal-action-button-secondary{position:relative;overflow:hidden;background:var(--glass-bg-3, rgba(255, 255, 255, .45));backdrop-filter:var(--glass-blur-sm, blur(8px));-webkit-backdrop-filter:var(--glass-blur-sm, blur(8px));border:1px solid var(--glass-border-3, rgba(255, 255, 255, .6));border-radius:var(--radius-glass, 12px);padding:10px 14px;font-size:.875rem;font-weight:500;color:#475569;transition:all .2s ease;box-shadow:0 2px 8px rgba(var(--glass-shade-rgb, 31 38 135),.1),inset 0 1px 0 var(--glass-highlight-soft, rgba(255, 255, 255, .5));cursor:pointer}.modal-action-button-secondary:hover{background:var(--glass-bg-4, rgba(255, 255, 255, .55));color:#334155;box-shadow:0 4px 16px rgba(var(--glass-shade-rgb, 31 38 135),.15),inset 0 1px 0 var(--glass-highlight, rgba(255, 255, 255, .6));transform:scale(1.02)}.modal-action-button-secondary:active{transform:scale(.98)}.modal-btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-glass, 12px);padding:10px 16px;font-size:.875rem;font-weight:500;color:#fff;line-height:1.5;transition:all .2s ease;box-shadow:0 4px 16px rgba(var(--glow-primary, 236 72 153),.35),inset 0 1px #ffffff4d}.modal-btn-primary:hover{background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));transform:translateY(-1px);box-shadow:0 6px 20px rgba(var(--glow-primary, 236 72 153),.45),inset 0 1px #fff6}.modal-btn-primary:active{transform:translateY(0)}.modal-btn-secondary{background:#fff6;backdrop-filter:var(--glass-blur-sm, blur(8px));-webkit-backdrop-filter:var(--glass-blur-sm, blur(8px));border:1px solid var(--glass-border-2, rgba(255, 255, 255, .5));border-radius:var(--radius-glass, 12px);padding:10px 16px;font-size:.875rem;font-weight:500;color:#64748b;line-height:1.5;transition:all .2s ease;box-shadow:0 2px 8px rgba(var(--glass-shade-rgb, 31 38 135),.08),inset 0 1px 0 var(--glass-highlight-soft, rgba(255, 255, 255, .5))}.modal-btn-secondary:hover{background:var(--glass-bg-4, rgba(255, 255, 255, .55));color:#475569;transform:translateY(-1px);box-shadow:0 4px 16px rgba(var(--glass-shade-rgb, 31 38 135),.12),inset 0 1px 0 var(--glass-highlight, rgba(255, 255, 255, .6))}.input-glass{position:relative;overflow:hidden;background:var(--glass-bg-3, rgba(255, 255, 255, .45));backdrop-filter:var(--glass-blur-sm, blur(8px));-webkit-backdrop-filter:var(--glass-blur-sm, blur(8px));border:1px solid var(--glass-border-3, rgba(255, 255, 255, .6));border-radius:var(--radius-glass, 12px);padding:10px 14px;transition:all .2s ease;color:#1a1a2e;box-shadow:0 2px 8px rgba(var(--glass-shade-rgb, 31 38 135),.1),inset 0 1px 0 var(--glass-highlight-soft, rgba(255, 255, 255, .5));isolation:isolate}.input-glass:focus{background:var(--glass-bg-5, rgba(255, 255, 255, .7));border-color:var(--glow-border-rose, rgba(255, 211, 219, .7));box-shadow:0 2px 12px #ffd3db40,0 0 0 3px #ffd3db33,inset 0 1px 0 var(--glass-highlight, rgba(255, 255, 255, .6));outline:none}.input-glass::placeholder{color:#6a6a9399}.modal-input{background:var(--glass-bg-4, rgba(255, 255, 255, .5));border:1px solid var(--glass-border-3, rgba(255, 255, 255, .6));border-radius:var(--radius-glass, 12px);padding:12px 14px;font-size:.875rem;font-weight:400;color:#1e293b;line-height:1.5;transition:all .2s ease;box-shadow:0 2px 8px rgba(var(--glass-shade-rgb, 31 38 135),.08),inset 0 1px 0 var(--glass-highlight, rgba(255, 255, 255, .6))}.modal-input:focus{background:var(--glass-bg-5, rgba(255, 255, 255, .8));border-color:rgba(var(--glow-primary, 236 72 153),.5);box-shadow:0 2px 12px rgba(var(--glow-primary, 236 72 153),.2),0 0 0 3px rgba(var(--glow-primary, 236 72 153),.15),inset 0 1px #ffffffb3;outline:none}.modal-input::placeholder{color:#64748b80}.range-glass{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:var(--radius-pill-sm, 999px);outline:none;cursor:pointer;box-sizing:border-box;background:#ffffff40;display:block;vertical-align:middle}.range-glass::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:12px;border-radius:var(--radius-pill, 9999px);background:#ffd3dbf2;border:1px solid rgba(255,255,255,.9);box-shadow:0 2px 6px #ffb6c180,inset 0 1px 2px #fff9;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;margin-top:-2px}.range-glass::-webkit-slider-thumb:hover{box-shadow:0 3px 10px #ffb6c1b3}.range-glass::-webkit-slider-runnable-track{height:6px;border-radius:var(--radius-pill-sm, 999px);background:transparent}.range-glass::-moz-range-track{height:6px;border-radius:var(--radius-pill-sm, 999px);background:#ffffff40}.range-glass::-moz-range-progress{height:6px;border-radius:var(--radius-pill-sm, 999px);background:linear-gradient(to right,#ffd3dbcc,#ffb6c1cc)}.range-glass::-moz-range-thumb{width:22px;height:14px;border-radius:var(--radius-pill, 9999px);background:#ffd3dbf2;border:1px solid rgba(255,255,255,.9);box-shadow:0 2px 6px #ffb6c180;cursor:pointer}.custom-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:var(--radius-pill-sm, 999px);background:linear-gradient(to right,#ffd3dbd9,#ffd3dbd9 50%,#ffffff40 50%,#ffffff40);outline:none;transition:all .15s ease}.custom-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:var(--thumb-width, 22px);height:var(--thumb-height, 12px);border-radius:var(--radius-pill, 9999px);background:var(--thumb-gradient, linear-gradient(135deg, rgba(255, 211, 219, .95), rgba(255, 180, 200, .95)));border:2px solid rgba(255,255,255,.95);box-shadow:0 2px 6px rgba(var(--glow-primary, 236 72 153),.55),0 0 0 1px #ffffffb3,inset 0 1px 0 var(--glass-highlight, rgba(255, 255, 255, .6));cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.custom-slider::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 3px 10px #ffb6c1b3}.custom-slider::-moz-range-thumb{width:var(--thumb-width, 22px);height:var(--thumb-height, 12px);border-radius:var(--radius-pill, 9999px);background:var(--thumb-gradient, linear-gradient(135deg, rgba(255, 211, 219, .95), rgba(255, 180, 200, .95)));border:2px solid rgba(255,255,255,.95);box-shadow:0 2px 6px rgba(var(--glow-primary, 236 72 153),.55),0 0 0 1px #ffffffb3,inset 0 1px 0 var(--glass-highlight, rgba(255, 255, 255, .6));cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.custom-slider::-moz-range-thumb:hover{transform:scale(1.1);box-shadow:0 3px 10px #ffb6c1b3}.slider-hover-thumb .custom-slider::-webkit-slider-thumb,.slider-hover-thumb .custom-slider::-moz-range-thumb{opacity:0;transform:scale(.5);transition:opacity .2s ease,transform .2s ease}.slider-hover-thumb:hover .custom-slider::-webkit-slider-thumb,.slider-hover-thumb:hover .custom-slider::-moz-range-thumb{opacity:1;transform:scale(1)}.custom-switch-track{background:linear-gradient(135deg,#ffd3dbd9,#ffd3dba6);box-shadow:#ffd3db80 0 2px 8px,#fff6 0 1px 2px inset}.metric-bar{background:linear-gradient(90deg,var(--color-primary),var(--color-secondary));box-shadow:0 0 12px rgba(var(--glow-pink, 244 114 182),.5)}.modal-overlay{background:#00000040;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.modal-panel{background:#fff3;backdrop-filter:var(--glass-blur-lg, blur(24px) saturate(1.5));-webkit-backdrop-filter:var(--glass-blur-lg, blur(24px) saturate(1.5));border:1px solid var(--glass-border-1, rgba(255, 255, 255, .3));box-shadow:0 20px 60px rgba(var(--glass-shade-rgb, 31 38 135),.3),0 0 0 1px #fff3,inset 0 1px #fff6;border-radius:var(--radius-glass-xl, 20px)}.modal-title{font-size:1.125rem;font-weight:700;color:#1e293b;letter-spacing:-.025em;line-height:1.4}.modal-label{font-size:.75rem;font-weight:500;color:#475569;letter-spacing:.05em;text-transform:uppercase;line-height:1.6}.neon-text-pink{color:var(--color-primary);text-shadow:0 0 12px rgba(var(--glow-primary, 236 72 153),.5)}.neon-text-purple{color:var(--color-secondary);text-shadow:0 0 12px rgba(var(--glow-purple, 167 139 250),.5)}.bbox-pink{border:2px solid var(--glow-border-pink, rgba(236, 72, 153, .95));box-shadow:0 0 16px 3px rgba(var(--glow-pink, 244 114 182),.55),inset 0 0 20px rgba(var(--glow-pink, 244 114 182),.15);background:rgba(var(--glow-pink, 244 114 182),.06)}.bbox-purple{border:2px solid var(--glow-border-purple, rgba(139, 92, 246, .95));box-shadow:0 0 16px 3px rgba(var(--glow-purple, 167 139 250),.55),inset 0 0 20px rgba(var(--glow-purple, 167 139 250),.15);background:rgba(var(--glow-purple, 167 139 250),.06)}.avatar-border{border:2px solid rgba(255,255,255,.4);box-shadow:0 2px 8px rgba(var(--glass-shade-rgb, 31 38 135),.1),inset 0 1px 0 var(--glass-highlight, rgba(255, 255, 255, .5))}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot.is-connecting{animation:pulse-dot 2s ease-in-out infinite}.video-container{position:relative;overflow:hidden;border-radius:var(--radius-glass-xl, 20px);box-shadow:0 20px 60px rgba(var(--glass-shade-rgb, 31 38 135),.25),0 0 0 1px #fff6;transition:border-radius .3s ease,box-shadow .3s ease}.video-container.fullscreen{border-radius:0;box-shadow:none}.toast{animation:slide-down .3s ease-out}.scrollbar-hide,.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar,.hide-scrollbar::-webkit-scrollbar{display:none}.scrollbar-thin::-webkit-scrollbar{width:4px}.scrollbar-thin::-webkit-scrollbar-track{background:transparent}.scrollbar-thin::-webkit-scrollbar-thumb{background:#fff6;border-radius:2px}.sidebar-container{position:fixed;left:0;top:0;height:100vh;z-index:50}.sidebar-track{position:absolute;left:0;top:96px;bottom:24px;width:14px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:49}.sidebar-thumb{width:6px;height:120px;background:#ffffff73;border:1px solid rgba(255,255,255,.7);border-radius:var(--radius-pill, 9999px);box-shadow:0 2px 8px rgba(var(--glass-shade-rgb, 31 38 135),.12),inset 0 1px 2px var(--glass-highlight-soft, rgba(255, 255, 255, .5));transition:all .3s ease}.sidebar-track:hover .sidebar-thumb{height:180px;background:#fff9;border-color:#ffffffd9;box-shadow:0 4px 14px rgba(var(--glass-shade-rgb, 31 38 135),.18),inset 0 1px 3px #ffffffb3}.sidebar-panel{position:absolute;left:24px;top:96px;bottom:24px;width:320px;transition:transform .35s var(--ease-out, cubic-bezier(.4, 0, .2, 1)),opacity .3s ease;transform-origin:left center;border-radius:var(--radius-glass-lg, 16px);z-index:50;display:flex;flex-direction:column;overflow:hidden}.sidebar-panel.collapsed{transform:translate(-110%);opacity:0;pointer-events:none}.sidebar-panel.expanded{transform:translate(0);opacity:1;pointer-events:auto}.animate-shimmer{animation:shimmer 2s infinite}.animate-gradient-drift{animation:gradient-drift 6s ease-in-out infinite}.animate-pulse-glow{animation:pulse-glow 2s ease-in-out infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes ripple-animation{to{width:300px;height:300px;opacity:0}}@keyframes particle-fly{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--tx),var(--ty)) scale(0);opacity:0}}@keyframes count-bounce{0%{transform:scale(1)}40%{transform:scale(1.35)}70%{transform:scale(.9)}to{transform:scale(1)}}@keyframes gradient-drift{0%{transform:translate(0) scale(1)}33%{transform:translate(30px,-20px) scale(1.05)}66%{transform:translate(-20px,15px) scale(.95)}to{transform:translate(0) scale(1)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 rgba(var(--glow-pink, 244 114 182),.4)}50%{box-shadow:0 0 0 12px rgba(var(--glow-pink, 244 114 182),0)}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.2)}}@media(max-width:640px){.sidebar-panel{left:12px;top:72px;bottom:12px;width:calc(100vw - 48px)}.sidebar-track{top:72px;bottom:12px}.glass-button{padding:8px 12px;font-size:.8125rem}.modal-panel{margin:0 12px;max-width:none}.liquid-glass{padding:16px}}@media(min-width:641px)and (max-width:1024px){.sidebar-panel{left:16px;top:80px;bottom:16px;width:280px}.sidebar-track{top:80px;bottom:16px}}@media(max-width:1024px){.video-container{border-radius:var(--radius-glass-lg, 16px)}}:root{color:var(--text-body);font-family:var(--font-sans);font-synthesis:none}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input{font:inherit}button:disabled{cursor:wait;opacity:.7}#app{min-height:100vh}.auth-shell{display:grid;grid-template-columns:1.1fr .9fr;min-height:100vh;background:radial-gradient(circle at 10% 20%,#dbeafea6,#f3e8ff73 45%,#fff1f259)}.brand-panel{display:flex;flex-direction:column;justify-content:space-between;padding:48px clamp(36px,5vw,84px);border-right:1px solid rgba(255,255,255,.45);background:#ffffff40;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand-hero-header{display:flex;align-items:center;gap:20px}.brand-mark-lg{width:68px;height:68px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(135deg,#fffc,#eff6ffb3);border:1px solid rgba(255,255,255,.9);box-shadow:0 10px 25px #3b82f626,inset 0 1px #ffffffe6;flex-shrink:0;transition:transform .25s ease,box-shadow .25s ease}.brand-mark-lg:hover{transform:translateY(-2px);box-shadow:0 14px 28px #3b82f638}.brand-logo-img{width:50px;height:50px;object-fit:contain;filter:drop-shadow(0 2px 5px rgba(37,99,235,.2));transition:transform .2s ease}.brand-logo-text{font-size:1.35rem;font-weight:900;letter-spacing:-.02em;background:linear-gradient(135deg,#1d4ed8,#4338ca);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.brand-copy{max-width:440px}.brand-copy h1{font-size:clamp(1.8rem,2.8vw,2.6rem);line-height:1.2;margin:0}.brand-subtitle{margin:8px 0 0;color:var(--text-glass-muted);font-size:.92rem;line-height:1.6}.brand-features-list{display:flex;flex-direction:column;gap:14px;margin:36px 0}.feature-item{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;border-radius:14px;border:1px solid rgba(255,255,255,.65);background:#ffffff80;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 2px 8px #0f172a08;transition:all .22s cubic-bezier(.4,0,.2,1)}.feature-item:hover{transform:translateY(-2px);border-color:#3b82f673;background:#ffffffbf;box-shadow:0 8px 20px #3b82f614}.feature-icon-badge{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-weight:800;font-size:.9rem;flex-shrink:0}.badge-blue-glow{background:#3b82f626;color:#1d4ed8;border:1px solid rgba(59,130,246,.35)}.badge-green-glow{background:#10b98126;color:#047857;border:1px solid rgba(16,185,129,.35)}.badge-purple-glow{background:#8b5cf626;color:#6d28d9;border:1px solid rgba(139,92,246,.35)}.feature-title{margin:0 0 3px;font-size:.9rem;font-weight:700;color:var(--text-glass-heading)}.feature-desc{margin:0;font-size:.78rem;color:var(--text-glass-muted);line-height:1.5}.brand-footer-status{padding-top:12px}.status-indicator-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:20px;font-size:.78rem;color:#475569;border:1px solid rgba(255,255,255,.6);background:#ffffff8c}.status-dot-pulse{width:8px;height:8px;border-radius:50%;background:#10b981;box-shadow:0 0 0 3px #10b98140;flex-shrink:0}.auth-stage{display:grid;place-items:center;padding:48px 32px}.auth-card{width:min(100%,420px);padding:36px 32px;border-radius:20px;border:1px solid rgba(255,255,255,.75);background:#fff9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 20px 45px #0f172a14,inset 0 1px #ffffffe6}.auth-card-badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:.72rem;font-weight:700;color:#1e40af;background:#3b82f61f;border:1px solid rgba(59,130,246,.25);margin-bottom:8px}.auth-card-title{font-size:1.55rem;font-weight:800;color:var(--text-glass-heading);margin:0 0 6px}.auth-card-desc{font-size:.84rem;color:var(--text-glass-muted);margin:0 0 24px}.auth-form-body{display:flex;flex-direction:column;gap:18px;margin-bottom:24px}.field-label{display:block;font-size:.82rem;font-weight:700;color:var(--text-glass-heading);margin-bottom:6px}.input-wrapper{position:relative;width:100%}.input-wrapper .input-glass{width:100%;padding:10px 14px;border-radius:10px;background:#ffffffbf;border:1px solid rgba(203,213,225,.85);font-size:.9rem;color:var(--text-glass-heading);transition:all .2s ease}.input-wrapper .input-glass:focus{background:#fff;border-color:var(--brand-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f633;outline:none}.password-control .input-glass{padding-right:68px}.password-toggle-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:none;background:#f1f5f9d9;padding:4px 8px;border-radius:6px;font-size:.72rem;font-weight:600;color:#64748b;cursor:pointer;transition:all .15s ease}.password-toggle-btn:hover{background:#e2e8f0;color:var(--brand-primary, #3b82f6)}.login-btn{width:100%;height:44px;border-radius:12px;font-size:.95rem;font-weight:700;letter-spacing:.02em;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;box-shadow:0 4px 14px #2563eb59;cursor:pointer;transition:all .2s ease}.login-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #2563eb73}.auth-card-footer{margin-top:24px;text-align:center;font-size:.72rem;color:var(--text-glass-muted)}@media(max-width:900px){.auth-shell{grid-template-columns:1fr}.brand-panel{border-right:none;border-bottom:1px solid rgba(255,255,255,.4);padding:32px 24px}.auth-stage{padding:36px 20px}}.portal-page-shell{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at 10% 15%,#dbeafe99,#f3e8ff59 45%,#ffffffd9)}.portal-navbar{display:flex;justify-content:space-between;align-items:center;padding:14px clamp(24px,5vw,64px);border-bottom:1px solid rgba(255,255,255,.5);background:#ffffffa6;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);position:sticky;top:0;z-index:10}.portal-nav-brand{display:flex;align-items:center;gap:12px}.brand-nav-titles{display:flex;flex-direction:column;line-height:1.25}.nav-brand-main{font-size:1rem;font-weight:800;color:var(--text-glass-heading)}.nav-brand-sub{font-size:.72rem;color:var(--text-glass-muted)}.portal-nav-user{display:flex;align-items:center;gap:12px}.user-profile-badge{display:flex;align-items:center;gap:8px;padding:5px 14px;border-radius:20px;background:#ffffffb3;border:1px solid rgba(226,232,240,.8)}.user-avatar-dot{width:8px;height:8px;border-radius:50%;background:#3b82f6;box-shadow:0 0 0 2px #3b82f640}.user-name-text{font-size:.84rem;font-weight:700;color:var(--text-glass-heading)}.user-role-tag{font-size:.7rem;padding:1px 7px;border-radius:4px;background:#3b82f61a;color:#1e40af;font-weight:600}.user-role-tag.is-admin{background:#8b5cf626;color:#6d28d9}.btn-sign-out{padding:4px 10px;font-size:.76rem;border-radius:6px;color:var(--text-glass-muted)}.btn-sign-out:hover{color:#b91c1c;border-color:#ef44444d;background:#fee2e266}.portal-content-container{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:36px clamp(20px,4vw,48px);display:flex;flex-direction:column;gap:32px}.portal-welcome-banner{padding:28px 32px;border-radius:20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;background:#ffffffa6;border:1px solid rgba(255,255,255,.8);box-shadow:0 10px 30px #0f172a0a}.welcome-eyebrow{margin:0 0 6px;font-size:.74rem;font-weight:700;color:#3b82f6;letter-spacing:.08em}.welcome-heading{margin:0 0 6px;font-size:1.65rem;font-weight:800;line-height:1.25}.welcome-desc{margin:0;font-size:.88rem;color:var(--text-glass-muted)}.welcome-status-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:20px;font-size:.78rem;color:#475569;background:#fff9;border:1px solid rgba(226,232,240,.8)}.portal-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px}.subsystem-card{display:flex;flex-direction:column;justify-content:space-between;padding:26px;border-radius:20px;border:1px solid rgba(255,255,255,.7);transition:all .25s cubic-bezier(.4,0,.2,1);min-height:290px;position:relative;overflow:hidden}.subsystem-card.is-active{cursor:pointer;background:#ffffffbf;box-shadow:0 4px 18px #0f172a0a}.subsystem-card.is-active:hover{transform:translateY(-4px);border-color:#3b82f699;background:#ffffffe6;box-shadow:0 16px 36px #3b82f626,inset 0 1px #fffffff2}.subsystem-card.is-pending{opacity:.72;cursor:not-allowed;background:#ffffff73}.subsystem-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.subsystem-icon-box{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;font-size:.95rem;font-weight:800;color:#fff}.icon-academic{background:linear-gradient(135deg,#3b82f6,#6366f1);box-shadow:0 6px 16px #3b82f659}.icon-finance{background:linear-gradient(135deg,#94a3b8,#64748b)}.icon-operations{background:linear-gradient(135deg,#a78bfa,#8b5cf6)}.subsystem-status-chip{padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:600;display:inline-flex;align-items:center;gap:6px}.chip-ready{background:#10b98124;color:#047857;border:1px solid rgba(16,185,129,.35)}.pulse-dot{width:6px;height:6px;border-radius:50%;background:#10b981;box-shadow:0 0 0 2px #10b98140}.chip-pending{background:#94a3b826;color:#64748b;border:1px solid rgba(148,163,184,.3)}.subsystem-title{margin:0 0 8px;font-size:1.25rem;font-weight:800;color:var(--text-glass-heading)}.subsystem-summary{margin:0 0 16px;font-size:.84rem;color:var(--text-glass-muted);line-height:1.55}.subsystem-capabilities-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}.cap-tag{padding:3px 9px;border-radius:6px;font-size:.74rem;font-weight:600;background:#3b82f614;color:#2563eb;border:1px solid rgba(59,130,246,.22)}.cap-tag.cap-muted{background:#94a3b814;color:#64748b;border-color:#94a3b833}.subsystem-card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:14px;border-top:1px solid rgba(226,232,240,.7)}.enter-btn-text{font-size:.88rem;font-weight:700;color:var(--brand-primary, #3b82f6)}.enter-arrow-icon{font-size:1.1rem;font-weight:700;color:var(--brand-primary, #3b82f6);transition:transform .2s ease}.subsystem-card.is-active:hover .enter-arrow-icon{transform:translate(5px)}.pending-hint-text{font-size:.78rem;color:#94a3b8;font-style:italic}.admin-shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.admin-sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:22px;height:100vh;padding:24px 14px;border-right:1px solid rgba(255,255,255,.34)}.brand-mark-small{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#ffffffb3;border:1px solid rgba(255,255,255,.85);box-shadow:0 4px 12px #3b82f61f;flex-shrink:0}.brand-logo-img-sm{width:26px;height:26px;object-fit:contain;filter:drop-shadow(0 1px 3px rgba(37,99,235,.2))}.admin-brand{display:flex;gap:10px;align-items:center;padding:0 6px;color:var(--text-glass-heading);font-weight:800}.admin-nav{display:grid;gap:6px}.admin-nav-item{display:flex;align-items:center;justify-content:space-between;min-height:42px;padding:10px 12px;border-radius:var(--radius-glass);color:var(--text-glass-body);font-size:.9rem;font-weight:600;text-decoration:none;transition:background .15s ease,color .15s ease}.admin-nav-item:hover:not(.is-disabled){color:var(--text-glass-heading);background:#ffffff73}.admin-nav-item.is-active{position:relative;color:var(--color-primary);background:#ffffff9e}.admin-nav-item.is-active:before{content:"";position:absolute;left:0;width:3px;height:22px;border-radius:999px;background:var(--color-primary)}.admin-nav-item.is-disabled{opacity:.6;cursor:not-allowed}.admin-main{display:flex;flex-direction:column;min-width:0}.admin-topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:14px 28px;border-bottom:1px solid rgba(255,255,255,.34)}.admin-topbar-title h2{margin:2px 0 0;color:var(--text-glass-heading);font-size:1.15rem}.admin-user{display:flex;gap:12px;align-items:center}.admin-user-chip{display:inline-flex;gap:8px;align-items:baseline;padding:8px 12px;border-radius:var(--radius-glass);font-size:.82rem}.admin-user-chip span{color:var(--text-secondary);font-size:.74rem}.admin-signout{min-height:36px;padding:6px 14px;color:var(--text-glass-body);font-size:.82rem}.admin-content{flex:1;padding:26px clamp(16px,3vw,36px) 40px}.page-card{padding:24px;border-radius:var(--radius-glass-xl)}.page-card-header h3{margin:0;color:var(--text-glass-heading);font-size:1.05rem}.page-card-header p{margin:6px 0 0;color:var(--text-glass-body);font-size:.84rem}.filter-bar{display:flex;flex-wrap:wrap;gap:14px;align-items:end;margin-top:20px}.filter-item{display:grid;gap:6px;color:var(--text-glass-body);font-size:.78rem;font-weight:700}.filter-item .input-glass{width:180px;min-height:38px}select.input-glass{-webkit-appearance:none;-moz-appearance:none;appearance:none}.filter-action{min-height:38px;padding:8px 18px;font-size:.84rem}.table-wrap{overflow-x:auto;margin-top:20px;border:1px solid rgba(255,255,255,.4);border-radius:var(--radius-glass);background:#ffffff59}.data-table{width:100%;border-collapse:collapse;font-size:.86rem}.data-table th,.data-table td{padding:12px 16px;text-align:left;white-space:nowrap}.data-table thead th{color:var(--text-secondary);background:#ffffff80;font-size:.76rem;letter-spacing:.04em}.data-table tbody tr+tr td{border-top:1px solid rgba(160,160,180,.16)}.data-table tbody tr:hover td{background:#ffffff59}.cell-strong{color:var(--text-heading);font-weight:700}.table-empty{padding:32px!important;color:var(--text-secondary);text-align:center}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.74rem;font-weight:700}.badge-green{color:#15803d;background:#22c55e2e}.badge-amber{color:#b45309;background:#f59e0b33}.badge-gray{color:#52525b;background:#71717a2e}.badge-red{color:#b91c1c;background:#ef444438}.filter-rows{display:grid;gap:14px;margin-top:20px}.filter-row{display:flex;flex-wrap:wrap;gap:14px;align-items:end}.table-footer{margin-top:14px;color:var(--text-glass-muted, var(--text-secondary));font-size:.78rem;text-align:right}@media(max-width:900px){.admin-shell{grid-template-columns:64px minmax(0,1fr)}.admin-brand-text,.admin-nav-item{justify-content:center}.admin-nav-item{padding:10px 6px;font-size:0}.admin-nav-item.is-active:before{left:-6px}.portal-grid{grid-template-columns:1fr}}.page-card-header{display:flex;gap:16px;align-items:flex-start;justify-content:space-between}.page-actions{display:inline-flex;gap:12px;align-items:center}.sync-button{min-height:38px;padding:8px 18px;white-space:nowrap;font-size:.84rem}.sync-status{font-size:.8rem;font-weight:600}.sync-status.success{color:#15803d}.sync-status.error{color:#b91c1c}.refresh-button{min-height:38px;padding:8px 18px;white-space:nowrap;font-size:.84rem}.list-error{margin:16px 0 0;padding:10px 12px;border:1px solid rgba(220,38,38,.22);border-radius:var(--radius-glass);color:#b91c1c;background:#fee2e294;font-size:.84rem}.table-footer{display:flex;gap:16px;align-items:center;justify-content:space-between}.pager{display:inline-flex;gap:8px}.pager-button{min-height:32px;padding:5px 14px;font-size:.78rem}.filter-item input[type=date]{width:160px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:20px;background:#1e1e2d59;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-panel{width:min(92vw,420px);padding:26px 24px;border-radius:var(--radius-glass-xl);background:#ffffffb8}.modal-title{margin:0;color:var(--text-glass-heading);font-size:1.1rem}.modal-sub{margin:8px 0 18px;color:var(--text-glass-body);font-size:.84rem;line-height:1.6}.preset-list{display:grid;gap:10px;margin-bottom:16px}.preset-item{display:flex;gap:10px;align-items:center;min-height:40px;padding:8px 14px;border:1px solid rgba(160,160,180,.22);border-radius:var(--radius-glass);cursor:pointer;font-size:.88rem;transition:background .15s ease,border-color .15s ease}.preset-item:hover{background:#ffffff73}.preset-item:has(input:checked){border-color:var(--color-primary);background:#ffffff9e}.preset-item input[type=radio]{accent-color:var(--color-primary)}.custom-range{display:flex;gap:10px;align-items:center;margin-bottom:16px}.custom-range .input-glass{flex:1;min-height:38px}.range-sep{color:var(--text-secondary);font-size:.84rem}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:4px}.student-link-text{color:var(--color-primary);text-decoration:none;font-weight:700;transition:color .15s ease,text-shadow .15s ease}.student-link-text:hover{color:#15803d;text-decoration:underline;text-underline-offset:3px}.student-detail-view{display:flex;flex-direction:column;gap:20px}.detail-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.header-left{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.back-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;font-size:.86rem;font-weight:600;color:var(--text-glass-heading)}.back-btn:hover{color:var(--color-primary)}.back-arrow{font-size:1.1rem;line-height:1;transition:transform .15s ease}.back-btn:hover .back-arrow{transform:translate(-3px)}.header-title-group{display:flex;align-items:center;gap:10px}.header-title-group h3{margin:0;font-size:1.3rem;color:var(--text-glass-heading)}.student-id-tag{padding:2px 8px;border-radius:var(--radius-glass-sm, 6px);background:#0000000d;font-size:.75rem;color:var(--text-glass-muted);font-family:monospace}.detail-loading-box{padding:40px 0;text-align:center}.profile-section{padding:18px 20px;border-radius:var(--radius-glass);background:#ffffff73;border:1px solid rgba(255,255,255,.6);box-shadow:0 4px 16px #00000008}.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.profile-item{display:flex;flex-direction:column;gap:6px}.profile-item-full{grid-column:1 / -1}.profile-label{font-size:.78rem;font-weight:600;color:var(--text-glass-muted);text-transform:uppercase;letter-spacing:.5px}.profile-value{font-size:.95rem;color:var(--text-glass-heading)}.profile-value.strong-name{font-size:1.15rem;font-weight:800;color:var(--text-glass-heading)}.contact-tags,.class-tags{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.contact-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:#ffffffbf;border:1px solid rgba(160,160,180,.25);border-radius:var(--radius-glass-sm, 6px);font-size:.85rem}.contact-badge .rel{color:var(--text-glass-muted);font-weight:600;font-size:.78rem}.contact-badge .phone{color:var(--text-glass-heading);font-weight:700;letter-spacing:.3px}.class-badge{display:inline-flex;align-items:center;padding:4px 12px;background:#10b98114;border:1px solid rgba(16,185,129,.22);color:#047857;border-radius:var(--radius-glass-sm, 6px);font-size:.85rem;font-weight:600}.text-muted{color:var(--text-glass-muted);font-size:.85rem}.detail-divider{display:flex;align-items:center;gap:14px;margin:6px 0}.divider-line{flex:1;height:1px;background:linear-gradient(90deg,#a0a0b400,#a0a0b447,#a0a0b400)}.divider-text{font-size:.82rem;font-weight:700;color:var(--text-glass-muted);letter-spacing:1px;text-transform:uppercase}.courselog-sub-section{display:flex;flex-direction:column;gap:12px}.sub-header{display:flex;justify-content:space-between;align-items:center}.sub-header h4{margin:0;font-size:1.05rem;color:var(--text-glass-heading)}.log-count-tag{font-size:.8rem;color:var(--text-glass-muted);font-weight:600}.curriculum-view-container{display:flex;flex-direction:column;gap:20px}.curriculum-overview-header{padding:16px 22px}.header-main-info{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.overview-title-group h3{margin:0;font-size:1.25rem;color:var(--text-glass-heading)}.overview-subtitle{margin:4px 0 0;font-size:.84rem;color:var(--text-glass-body)}.overview-subtitle span{color:var(--color-primary);font-weight:700}.search-bar-inline{display:flex;gap:8px;align-items:center}.search-input{min-width:240px;min-height:38px}.category-grid-section{display:flex;flex-direction:column;gap:12px}.section-label-bar{display:flex;align-items:baseline;gap:12px}.section-label-bar h4{margin:0;font-size:1.05rem;color:var(--text-glass-heading)}.tip-text{font-size:.8rem;color:var(--text-glass-muted)}.category-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}.category-card{display:flex;flex-direction:column;justify-content:space-between;padding:14px 16px;min-height:84px;border-radius:var(--radius-glass);border:1px solid rgba(255,255,255,.55);background:#ffffff73;cursor:pointer;text-align:left;transition:all .2s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.category-card:hover{transform:translateY(-2px);background:#ffffffb3;box-shadow:0 6px 20px #0000000f}.category-card.is-active{background:#ffffffd9;border-color:var(--cat-accent, var(--color-primary));box-shadow:0 0 0 2px #10b98133,0 8px 24px #00000014}.category-card-header{display:flex;align-items:center;gap:8px}.category-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.category-name{font-size:.96rem;font-weight:700;color:var(--text-glass-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-card-body{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px}.category-courses-badge{font-size:.82rem;color:var(--text-glass-heading)}.category-courses-badge strong{font-size:1.05rem;font-weight:800}.category-levels-count{font-size:.75rem;color:var(--text-glass-muted)}.active-curriculum-panel{display:flex;flex-direction:column;gap:18px}.panel-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}.panel-title-area{display:flex;align-items:center;gap:12px}.category-title-badge{padding:4px 14px;border-radius:var(--radius-glass-sm, 6px);font-size:1.05rem;font-weight:800;border:1px solid rgba(0,0,0,.06)}.panel-summary-text{font-size:.86rem;color:var(--text-glass-muted);font-weight:600}.view-mode-toggle{display:flex;background:#0000000d;padding:3px;border-radius:var(--radius-glass-sm, 6px);gap:2px}.mode-btn{padding:4px 12px;font-size:.8rem;font-weight:600;border:none;background:transparent;color:var(--text-glass-body);border-radius:4px;cursor:pointer;transition:all .15s ease}.mode-btn.is-active{background:#fff;color:var(--text-glass-heading);box-shadow:0 2px 6px #00000014}.level-tabs-bar{display:flex;align-items:center;gap:10px;overflow-x:auto;padding-bottom:4px}.level-bar-label{font-size:.82rem;color:var(--text-glass-muted);white-space:nowrap;font-weight:600}.level-pills-list{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.level-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;border:1px solid rgba(160,160,180,.25);background:#ffffff80;font-size:.84rem;font-weight:600;color:var(--text-glass-body);cursor:pointer;transition:all .15s ease}.level-pill:hover{background:#fffc;border-color:#10b98166}.level-pill.is-active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:0 3px 10px #10b98140}.level-pill.is-active .pill-badge{background:#ffffff40;color:#fff}.pill-badge{padding:1px 6px;border-radius:10px;background:#00000014;font-size:.72rem}.level-groups-container{display:flex;flex-direction:column;gap:18px}.level-group-box{padding:16px 20px;border-radius:var(--radius-glass);background:#fff6;border:1px solid rgba(255,255,255,.6)}.group-box-header{margin-bottom:12px}.group-lvl-title{display:flex;align-items:center;gap:10px}.lvl-tag{font-size:1.02rem;font-weight:800;color:var(--text-glass-heading)}.lvl-count{font-size:.78rem;color:var(--text-glass-muted);font-weight:600}.lesson-items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.lesson-card{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-glass-sm, 6px);background:#ffffffb3;border:1px solid rgba(200,200,220,.3);box-shadow:0 2px 6px #00000005;transition:all .15s ease}.lesson-card:hover{background:#fff;border-color:#10b98159;box-shadow:0 4px 12px #0000000d;transform:translateY(-1px)}.lesson-num{font-size:.75rem;font-weight:800;color:var(--color-primary);background:#10b98114;padding:2px 6px;border-radius:4px;font-family:monospace}.lesson-name{font-size:.88rem;font-weight:600;color:var(--text-glass-heading);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.level-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-glass-sm, 6px);background:#3b82f614;color:#1d4ed8;font-size:.82rem;font-weight:600}.title-with-badge{display:flex;align-items:center;gap:10px}.admin-badge{font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:20px;background:#10b9811f;color:#047857;border:1px solid rgba(16,185,129,.25)}.header-actions-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.btn-success{background:linear-gradient(135deg,#10b981,#059669)!important;color:#fff!important;border-color:#059669!important;box-shadow:0 4px 12px #10b9814d!important}.btn-success:hover{background:linear-gradient(135deg,#059669,#047857)!important}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626)!important;color:#fff!important;border-color:#b91c1c!important}.btn-xs{padding:3px 8px!important;font-size:.75rem!important;min-height:auto!important}.btn-danger-hover:hover{background:#ef44441f!important;color:#dc2626!important;border-color:#ef44444d!important}.category-card{position:relative}.card-admin-hover-actions{position:absolute;top:8px;right:8px;display:none;gap:4px;background:#ffffffd9;padding:2px 4px;border-radius:6px;box-shadow:0 2px 6px #00000014}.category-card:hover .card-admin-hover-actions{display:flex}.mini-action-btn{border:none;background:transparent;cursor:pointer;padding:2px 4px;border-radius:4px;font-size:.75rem;line-height:1}.mini-action-btn:hover{background:#00000014}.level-pill-wrapper{display:inline-flex;align-items:center;gap:4px}.level-pill-admin-ops{display:inline-flex;align-items:center;gap:2px}.pill-op-btn{border:none;background:#0000000d;cursor:pointer;padding:3px 6px;border-radius:4px;font-size:.72rem;line-height:1;transition:all .15s ease}.pill-op-btn:hover{background:#0000001f}.pill-op-btn.op-del:hover{background:#ef44442e}.lesson-card{position:relative}.lesson-card-actions{display:none;margin-left:auto;gap:4px}.lesson-card:hover .lesson-card-actions{display:flex}.mini-btn-icon{border:none;background:#0000000a;cursor:pointer;padding:2px 5px;border-radius:4px;font-size:.75rem;line-height:1}.mini-btn-icon:hover{background:#0000001a}.mini-btn-icon.btn-del:hover{background:#ef44442e}.group-box-header{display:flex;justify-content:space-between;align-items:center}.group-box-admin-ops{display:flex;gap:6px}.table-row-ops{display:inline-flex;gap:6px}.global-toast{padding:10px 16px;border-radius:var(--radius-glass-sm, 6px);font-size:.88rem;font-weight:600;display:flex;align-items:center;animation:fadeIn .2s ease}.toast-success{background:#dcfce7e0;color:#15803d;border:1px solid rgba(34,197,94,.35)}.toast-error{background:#fee2e2e0;color:#b91c1c;border:1px solid rgba(239,68,68,.35)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:24px 16px;background:#0f172a73;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);animation:modalFadeIn .2s cubic-bezier(.16,1,.3,1);overflow-y:auto}.modal-card,.modal-panel{position:relative;background:#ffffffeb!important;backdrop-filter:blur(32px) saturate(200%)!important;-webkit-backdrop-filter:blur(32px) saturate(200%)!important;border:1px solid rgba(255,255,255,.9)!important;border-radius:24px!important;box-shadow:0 24px 70px -10px #0f172a47,0 10px 25px -5px #0f172a1f,0 0 0 1px #fffc inset!important;padding:28px 32px!important;animation:modalZoomIn .25s cubic-bezier(.16,1,.3,1);color:#0f172a}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalZoomIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-sm{max-width:460px;width:92%}.modal-md{max-width:600px;width:92%}.modal-lg{max-width:860px;width:94%}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid rgba(0,0,0,.06)}.modal-title{margin:0;color:#0f172a!important;font-size:1.25rem!important;font-weight:800!important;letter-spacing:-.02em}.modal-sub{margin:6px 0 0;color:#64748b!important;font-size:.86rem;line-height:1.5}.modal-close-btn{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:1px solid rgba(0,0,0,.08);background:#ffffffb3;font-size:1rem;cursor:pointer;color:#64748b;line-height:1;transition:all .15s ease}.modal-close-btn:hover{background:#fff;color:#0f172a;box-shadow:0 2px 8px #00000014;transform:scale(1.05)}.modal-form{display:flex;flex-direction:column;gap:16px}.modal-form .form-group{display:flex;flex-direction:column;gap:6px}.modal-form .form-label{display:flex;justify-content:space-between;align-items:center;font-size:.84rem;font-weight:700;color:#1e293b}.btn-text-link{border:none;background:transparent;color:var(--color-primary);font-size:.8rem;font-weight:700;cursor:pointer;padding:0}.btn-text-link:hover{text-decoration:underline}.modal-form .input-glass,.modal-form select,.modal-form textarea{background:#f8fafce6!important;border:1.5px solid rgba(203,213,225,.8)!important;border-radius:12px!important;font-size:.92rem!important;color:#0f172a!important;padding:10px 14px!important;transition:all .15s ease}.modal-form .input-glass:focus,.modal-form select:focus,.modal-form textarea:focus{background:#fff!important;border-color:var(--color-primary, #10b981)!important;box-shadow:0 0 0 3px #10b98133!important;outline:none}.textarea-glass{resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:10px;padding-top:14px;border-top:1px solid rgba(0,0,0,.06)}.confirm-warning-text{font-size:.92rem;line-height:1.6;color:#991b1b;background:#fee2e2bf;border:1px solid rgba(239,68,68,.3);padding:14px 16px;border-radius:14px;margin:10px 0 20px}.cat-manager-list{display:flex;flex-direction:column;gap:14px;max-height:480px;overflow-y:auto;padding-right:4px}.cat-manager-card{padding:16px 18px;border-radius:16px;background:#ffffffeb;border:1px solid rgba(226,232,240,.9);box-shadow:0 2px 8px #00000008;display:flex;flex-direction:column;gap:12px}.cat-manager-card-head{display:flex;justify-content:space-between;align-items:center}.cat-title-badge{display:flex;align-items:center;gap:8px;font-size:1rem;font-weight:800;color:#0f172a}.cat-stat{font-size:.8rem;color:#64748b;font-weight:500}.cat-head-actions{display:flex;gap:8px}.cat-manager-levels{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding-top:6px;border-top:1px dashed rgba(226,232,240,.8)}.levels-label{font-size:.8rem;color:#64748b;font-weight:700;white-space:nowrap}.manager-level-chips{display:flex;flex-wrap:wrap;gap:8px}.manager-level-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:8px;background:#f1f5f9;border:1px solid rgba(203,213,225,.8);font-size:.82rem;font-weight:600;color:#334155}.chip-btn{border:none;background:transparent;cursor:pointer;font-size:.72rem;line-height:1;padding:2px 3px;border-radius:4px}.chip-btn:hover{background:#00000014}.chip-btn.chip-del:hover{color:#dc2626;background:#ef44442e}.form-error{background:#fee2e2f2;color:#b91c1c;border:1px solid rgba(239,68,68,.35);padding:10px 14px;border-radius:12px;font-size:.86rem;font-weight:600;margin:0 0 14px}.progress-tracks-section{display:flex;flex-direction:column;gap:16px}.track-empty-box{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px 20px;border-radius:var(--radius-glass);text-align:center;color:var(--text-glass-muted)}.empty-icon{font-size:2rem;margin-bottom:8px}.tracks-card-grid{display:flex;flex-direction:column;gap:16px}.track-card{border-radius:18px;border:1px solid rgba(255,255,255,.7);background:#fff9;box-shadow:0 4px 16px #00000008;transition:all .2s cubic-bezier(.16,1,.3,1);overflow:hidden}.track-card:hover{background:#fffc;box-shadow:0 8px 24px #0000000f}.track-card.is-expanded{background:#ffffffe6;border-color:var(--track-accent, var(--color-primary));box-shadow:0 0 0 2px #10b98126,0 12px 32px #00000014}.track-card-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;cursor:pointer;flex-wrap:wrap;gap:14px}.track-title-box{display:flex;align-items:center;gap:12px}.track-color-badge{width:12px;height:12px;border-radius:50%;flex-shrink:0;box-shadow:0 0 8px #00000026}.track-name-group{display:flex;flex-direction:column;gap:2px}.track-name{font-size:1.05rem;font-weight:800;color:var(--text-glass-heading)}.track-time-tag{font-size:.76rem;color:var(--text-glass-muted);font-weight:600}.track-stats-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.track-stat-chip{padding:4px 10px;border-radius:20px;background:#0000000a;font-size:.8rem;color:var(--text-glass-body);font-weight:500}.track-stat-chip strong{font-size:.92rem;font-weight:800}.stat-syllabus{background:#10b9811f;color:#047857}.stat-practice{background:#3b82f61f;color:#1d4ed8}.stat-contest{background:#f59e0b24;color:#b45309}.stat-custom{background:#8b5cf61f;color:#6d28d9}.track-toggle-btn{margin-left:4px}.track-current-bar{padding:10px 20px;background:#00000005;border-top:1px solid rgba(0,0,0,.04);display:flex;align-items:center}.current-info{display:flex;align-items:center;gap:8px;font-size:.86rem}.current-label{color:var(--text-glass-muted);font-weight:600}.current-value{display:inline-flex;align-items:center;gap:6px;color:var(--text-glass-heading)}.level-mini-badge{padding:2px 6px;border-radius:4px;background:#10b98126;color:#047857;font-size:.76rem;font-weight:800}.track-expanded-content{padding:18px 20px;border-top:1px solid rgba(0,0,0,.06);display:flex;flex-direction:column;gap:20px;background:#ffffff80}.sub-block-title{margin:0 0 12px;font-size:.95rem;font-weight:800;color:var(--text-glass-heading)}.syllabus-levels-grid{display:flex;flex-direction:column;gap:10px}.syllabus-level-block{border-radius:10px;background:#ffffffa6;border:1px solid rgba(226,232,240,.8);box-shadow:0 1px 3px #0f172a0a;overflow:hidden;transition:all .2s cubic-bezier(.4,0,.2,1)}.syllabus-level-block:hover{border-color:#bfdbfee6;box-shadow:0 4px 12px #0f172a0f}.syllabus-level-block.is-collapsed{background:#fff6;border-color:#e2e8f099;box-shadow:none}.syllabus-level-block.is-collapsed:hover{background:#fff9;border-color:#cbd5e1cc}.level-block-head{display:flex;justify-content:space-between;align-items:center;padding:9px 14px;background:#f8fafcb3;border-bottom:1px solid rgba(226,232,240,.7);transition:background .15s ease}.syllabus-level-block.is-collapsed .level-block-head{border-bottom:none}.level-block-head.is-clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.level-block-head.is-clickable:hover{background:#eef2ffd9}.level-head-left{display:flex;align-items:center;gap:10px}.level-collapse-caret{font-size:.65rem;color:#64748b;width:14px;text-align:center;-webkit-user-select:none;user-select:none}.level-tag-sm{font-size:.9rem;font-weight:700;color:#1e293b;letter-spacing:.01em}.level-stat-badge{font-size:.74rem;padding:2px 9px;border-radius:20px;font-weight:600;display:inline-flex;align-items:center}.stat-badge-complete{background:#10b98124;color:#065f46;border:1px solid rgba(16,185,129,.35)}.stat-badge-active{background:#3b82f624;color:#1e40af;border:1px solid rgba(59,130,246,.35)}.stat-badge-empty{background:#94a3b824;color:#475569;border:1px solid rgba(148,163,184,.25)}.level-head-right{display:flex;align-items:center;gap:8px}.level-collapse-label{font-size:.74rem;color:#64748b;cursor:pointer;padding:2px 6px;border-radius:4px;transition:all .15s ease}.level-collapse-label:hover{color:var(--brand-primary, #3b82f6);background:#3b82f61a}.syllabus-course-pills{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;padding:12px 14px}@media(max-width:600px){.syllabus-course-pills{grid-template-columns:1fr}}.syllabus-pill{display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:8px;background:#ffffffbf;border:1px solid rgba(226,232,240,.85);font-size:.82rem;color:#64748b;box-shadow:0 1px 2px #00000005;transition:all .18s cubic-bezier(.4,0,.2,1)}.syllabus-pill.is-done{background:#ecfdf5f2;border-color:#34d399b3;color:#065f46;font-weight:600;box-shadow:0 1px 3px #10b9811f}.syllabus-pill.is-editable{cursor:pointer;-webkit-user-select:none;user-select:none;border-style:dashed;border-color:#94a3b899}.syllabus-pill.is-editable:hover{transform:translateY(-1px);border-color:var(--brand-primary, #3b82f6);background:#eff6ffe6;box-shadow:0 3px 8px #3b82f626}.syllabus-pill.is-editable.is-done{border-style:solid;border-color:#10b98199;background:#d1fae5e6}.pill-check-icon{display:inline-flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:800;color:#059669;flex-shrink:0;line-height:1}.pill-idx{font-size:.76rem;color:#94a3b8;font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:500}.syllabus-pill.is-done .pill-idx{color:#059669;font-weight:600}.pill-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.special-chips-list{display:flex;flex-wrap:wrap;gap:8px}.special-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:8px;background:#fff;border:1px solid rgba(200,200,220,.5);box-shadow:0 2px 6px #00000005}.special-type-badge{padding:2px 6px;border-radius:4px;font-size:.72rem;font-weight:800}.chip-practice .special-type-badge{background:#3b82f626;color:#1d4ed8}.chip-contest .special-type-badge{background:#f59e0b2e;color:#b45309}.chip-custom .special-type-badge{background:#8b5cf626;color:#6d28d9}.special-title{font-size:.82rem;font-weight:600;color:var(--text-glass-heading)}.special-date{font-size:.74rem;color:var(--text-glass-muted)}.cell-hours-badge{display:inline-block;padding:3px 8px;border-radius:6px;background:#10b9811f;color:#047857;font-size:.8rem;font-weight:700;white-space:nowrap}.header-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.teacher-current-badge{display:inline-flex;align-items:center;padding:3px 10px;background:#3b82f61f;border:1px solid rgba(59,130,246,.25);border-radius:20px;font-size:.82rem;color:#1e40af}.teacher-switcher{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-glass-secondary)}.teacher-switcher .select-sm{padding:4px 10px;font-size:.82rem}.time-presets-bar{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:8px 14px;background:#ffffff73;border:1px solid rgba(255,255,255,.6);border-radius:10px}.preset-label{font-size:.82rem;font-weight:600;color:var(--text-glass-secondary)}.preset-buttons{display:flex;gap:6px;flex-wrap:wrap}.preset-btn{padding:3px 10px;font-size:.78rem;border-radius:6px;color:var(--text-glass-secondary);transition:all .2s ease}.preset-btn.preset-active{background:var(--brand-primary, #3b82f6);color:#fff;border-color:var(--brand-primary, #3b82f6);font-weight:600;box-shadow:0 2px 6px #3b82f659}.student-avatar-mark{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#3b82f6);color:#fff;font-size:.78rem;font-weight:700;margin-right:8px;vertical-align:middle}.class-time-box{display:flex;flex-direction:column;gap:2px}.class-time-text{font-size:.84rem;font-weight:600;color:var(--text-glass-heading)}.class-content-preview{font-size:.74rem;color:var(--text-glass-muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-students-section .filter-bar{margin-top:14px;margin-bottom:6px;display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.my-students-section .filter-item input.input-glass{width:220px}.my-students-section .filter-item select.input-glass{width:140px}.divider-header-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}.btn-add-track{padding:3px 10px;font-size:.76rem;color:var(--brand-primary, #3b82f6);border-color:#3b82f666;background:#3b82f614}.btn-add-track:hover{background:#3b82f629}.track-card.is-editing-card{border-color:#3b82f699;box-shadow:0 0 0 2px #3b82f640,var(--shadow-glass-lg)}.syllabus-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:10px}.section-title-wrap{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.editing-indicator{font-size:.74rem;color:#b45309;background:#f59e0b24;padding:2px 8px;border-radius:4px;font-weight:600}.syllabus-ops-wrap{display:flex;align-items:center;gap:10px}.capsule-toggle-group{display:inline-flex;align-items:center;background:#ffffffbf;border:1px solid rgba(203,213,225,.85);border-radius:20px;padding:2px 4px;box-shadow:0 1px 2px #0f172a0a}.capsule-btn{background:none;border:none;border-radius:16px;padding:3px 10px;font-size:.74rem;font-weight:600;color:#475569;cursor:pointer;transition:all .18s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none}.capsule-btn:hover{color:#1e40af;background:#3b82f61f}.capsule-divider{display:inline-block;width:1px;height:12px;background:#cbd5e1e6;margin:0 2px}.capsule-action-btn{border-radius:20px!important;padding:3px 12px!important;font-weight:600!important}.capsule-readonly-tag{display:inline-flex;align-items:center;padding:3px 12px;border-radius:20px;font-size:.74rem;font-weight:600;background:#f1f5f9d9;border:1px solid rgba(203,213,225,.8);color:#64748b;-webkit-user-select:none;user-select:none}.my-classes-view{width:100%;min-width:0;box-sizing:border-box;overflow:hidden}.classes-main-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:18px;margin-top:16px;align-items:start;width:100%;min-width:0;box-sizing:border-box}@media(max-width:1024px){.classes-main-layout{grid-template-columns:1fr}}.classes-sidebar{display:flex;flex-direction:column;gap:10px;min-width:0;width:100%;box-sizing:border-box}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:4px 6px}.sidebar-title{font-size:.86rem;font-weight:700;color:var(--text-glass-heading, #1e293b)}.sidebar-search-box{width:100%}.sidebar-search-input{width:100%;font-size:.78rem;padding:5px 10px;box-sizing:border-box}.sidebar-empty{padding:32px 14px;text-align:center;font-size:.82rem;color:var(--text-glass-muted, #64748b);background:#fff6;border-radius:8px;border:1px dashed rgba(203,213,225,.8)}.class-card-list{display:flex;flex-direction:column;gap:8px;max-height:calc(100vh - 300px);overflow-y:auto;padding-right:2px}.class-item-card{padding:12px 14px;border-radius:10px;cursor:pointer;transition:all .18s ease;border:1px solid rgba(255,255,255,.6);background:#ffffff80;box-sizing:border-box;min-width:0}.class-item-card:hover{transform:translateY(-1px);border-color:#3b82f666;background:#ffffffd9;box-shadow:0 4px 12px #0f172a0d}.class-item-card.is-active{border-left:3px solid var(--brand-primary, #3b82f6);border-color:#3b82f666;background:#eff6ffe6;box-shadow:0 4px 14px #3b82f626}.class-card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}.class-title{font-size:.88rem;font-weight:700;color:var(--text-glass-heading, #1e293b);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.class-count-chip{font-size:.7rem;font-weight:600;padding:1px 6px;border-radius:4px;background:#3b82f61f;color:#1d4ed8;white-space:nowrap;flex-shrink:0}.class-card-body{display:flex;flex-direction:column;gap:3px;min-width:0}.class-info-line{display:flex;align-items:baseline;font-size:.74rem;gap:6px;min-width:0}.class-info-line .lbl{color:var(--text-glass-muted, #64748b);flex-shrink:0}.class-info-line .val{color:var(--text-glass-body, #334155)}.content-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.class-detail-panel{display:flex;flex-direction:column;gap:12px;min-width:0;width:100%;box-sizing:border-box}.detail-empty{padding:80px 24px;text-align:center;border-radius:12px;display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center}.empty-hint-title{font-size:.95rem;font-weight:700;color:var(--text-glass-heading, #1e293b)}.empty-hint-sub{font-size:.8rem;color:var(--text-glass-muted, #64748b)}.detail-container{display:flex;flex-direction:column;gap:12px;min-width:0;width:100%;box-sizing:border-box}.detail-head-banner{padding:14px 18px;border-radius:12px;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border:1px solid rgba(255,255,255,.65);background:#fff9;box-shadow:0 2px 10px #00000005}.banner-info{display:flex;flex-direction:column;gap:4px;min-width:0}.banner-title{font-size:1.12rem;font-weight:800;margin:0;color:var(--text-glass-heading, #0f172a)}.banner-tags{display:flex;gap:12px;font-size:.78rem;color:var(--text-glass-muted, #64748b);flex-wrap:wrap}.banner-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0}.logs-table-wrap{width:100%;min-width:0;overflow-x:auto;margin-top:2px;border:1px solid rgba(203,213,225,.75);border-radius:10px;background:#ffffffe0;box-shadow:0 4px 16px #00000008;box-sizing:border-box}.logs-table-wrap .data-table{width:100%;min-width:680px;border-collapse:collapse;font-size:.83rem}.logs-table-wrap .data-table th,.logs-table-wrap .data-table td{padding:10px 14px;box-sizing:border-box}.col-log-time{width:155px}.col-log-content{min-width:180px}.col-log-attend{width:115px}.col-log-teachers{width:110px}.col-log-state,.col-log-action{width:90px}.cell-time{white-space:nowrap;font-size:.8rem;color:#334155}.cell-course-content{color:#1e3a8a;max-width:240px;white-space:normal;word-break:break-all;line-height:1.4;font-weight:600}.cell-teachers{white-space:nowrap;font-size:.8rem}.logs-pagination-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 4px;font-size:.8rem;color:var(--text-glass-muted, #64748b);flex-wrap:wrap;gap:8px}.pagination-btns{display:flex;gap:6px}.form-notice{font-size:.76rem;color:#1e40af;background:#dbeafe99;padding:8px 12px;border-radius:6px;margin-bottom:12px;line-height:1.45}.attend-stat-btn{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:4px;border:1px dashed rgba(59,130,246,.4);background:#3b82f60f;color:var(--text-glass-heading);cursor:pointer;transition:all .18s ease;font-size:.8rem}.attend-stat-btn:hover{background:#3b82f629;border-style:solid;border-color:var(--brand-primary, #3b82f6);transform:translateY(-1px)}.attend-stat-btn .stat-num{font-weight:700;color:#1e3a8a}.attend-stat-btn .stat-click-hint{font-size:.68rem;color:#2563eb;padding:0 4px;border-radius:3px;background:#2563eb1a}.attendance-modal-head-titles{display:flex;flex-direction:column;gap:2px}.attendance-modal-sub{font-size:.76rem;color:var(--text-glass-muted)}.attendance-stat-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.stat-pill{padding:4px 10px;border-radius:6px;font-size:.78rem;background:#f0f4ffcc;border:1px solid rgba(219,234,254,.9);color:var(--text-glass-heading)}.stat-pill-green{background:#10b9811a;border-color:#10b9814d;color:#065f46}.stat-pill-amber{background:#f59e0b1a;border-color:#f59e0b4d;color:#92400e}.stat-pill-gray{background:#6b72801a;border-color:#6b72804d;color:#374151}.roster-table-wrap{max-height:380px;overflow-y:auto;border-radius:6px;border:1px solid rgba(226,232,240,.7)}.roster-table th,.roster-table td{padding:8px 12px}.student-link{color:var(--brand-primary, #3b82f6);text-decoration:none;font-weight:600;transition:all .15s ease}.student-link:hover{text-decoration:underline;color:#1d4ed8}.my-profile-container{display:flex;flex-direction:column;gap:24px}.profile-hero-section{display:flex;align-items:center;gap:24px;padding:24px 30px;border-radius:18px;border:1px solid rgba(255,255,255,.75);background:#ffffffbf;box-shadow:0 10px 30px #0f172a0a;flex-wrap:wrap;transition:all .2s ease}.profile-avatar-wrap{flex-shrink:0}.profile-avatar-badge{width:60px;height:60px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;font-size:1.5rem;font-weight:800;box-shadow:0 6px 18px #3b82f64d}.profile-main-info{flex:1;min-width:260px}.profile-name-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.profile-real-name{margin:0;font-size:1.35rem;font-weight:800;color:var(--text-glass-heading)}.role-badge{padding:2px 10px;border-radius:20px;font-size:.72rem;font-weight:700;background:#3b82f61f;color:#1e40af;border:1px solid rgba(59,130,246,.25)}.role-badge.role-admin{background:#8b5cf626;color:#6d28d9;border-color:#8b5cf64d}.active-status-badge{padding:2px 8px;border-radius:4px;font-size:.72rem;font-weight:600;background:#10b9811f;color:#047857;border:1px solid rgba(16,185,129,.25)}.profile-meta-grid{display:flex;gap:24px;flex-wrap:wrap}.meta-item{display:flex;flex-direction:column;gap:2px}.meta-label{font-size:.74rem;color:var(--text-glass-muted)}.meta-value{font-size:.86rem;font-weight:600;color:var(--text-glass-heading)}.profile-ops-wrap{display:flex;gap:10px}.profile-ops-wrap .glass-button{border-radius:20px;padding:6px 14px;font-weight:600}.profile-hours-workbench{display:flex;flex-direction:column;gap:18px}.workbench-header-bar{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border-radius:14px;border:1px solid rgba(255,255,255,.75);background:#ffffffb3;flex-wrap:wrap;gap:14px}.workbench-title{margin:0 0 3px;font-size:1.1rem;font-weight:800;color:var(--text-glass-heading)}.workbench-subtitle{font-size:.76rem;color:var(--text-glass-muted)}.workbench-header-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filter-control-group{display:flex;align-items:center;gap:6px}.control-label{font-size:.76rem;font-weight:600;color:var(--text-glass-muted)}.month-select{padding:4px 10px;font-size:.82rem;border-radius:8px;background:#ffffffd9;border:1px solid rgba(203,213,225,.85);font-weight:600;color:var(--text-glass-heading);cursor:pointer}.teacher-search-input{width:140px;padding:4px 8px;font-size:.78rem;border-radius:8px}.stats-overview-grid{display:grid;gap:14px}.stats-grid-5{grid-template-columns:repeat(5,1fr)}@media(max-width:1200px){.stats-grid-5{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.stats-grid-5{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.stats-grid-5{grid-template-columns:1fr}}.stat-card{padding:18px 20px;border-radius:14px;border:1px solid rgba(255,255,255,.75);background:#ffffffa6;box-shadow:0 4px 14px #0f172a08;display:flex;flex-direction:column;justify-content:space-between;gap:6px;min-height:110px;transition:all .22s cubic-bezier(.4,0,.2,1)}.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0f172a12}.stat-hours-card{border-color:#10b98173;background:#ecfdf5bf}.stat-cost-card{border-color:#f59e0b73;background:#fef3c7a6}.stat-rate-card{border-color:#6366f173;background:#eef2ffbf}.stat-card-title{font-size:.78rem;font-weight:700;color:var(--text-glass-muted)}.stat-card-number{font-size:1.65rem;font-weight:800;color:var(--text-glass-heading);line-height:1.2}.text-emerald{color:#059669}.text-amber{color:#d97706}.text-blue{color:#2563eb}.text-indigo{color:#4f46e5}.stat-unit{font-size:.8rem;font-weight:600;color:var(--text-glass-muted);margin-left:3px}.stat-card-hint{font-size:.72rem;color:var(--text-glass-muted);padding-top:6px;border-top:1px dashed rgba(203,213,225,.6)}.hours-details-wrapper{padding:20px;border-radius:16px;border:1px solid rgba(255,255,255,.75);background:#ffffffb3;display:flex;flex-direction:column;gap:16px;box-shadow:0 6px 20px #0f172a08}.details-tab-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.tab-btn-group{display:inline-flex;background:#f1f5f9d9;padding:3px;border-radius:10px;border:1px solid rgba(203,213,225,.7)}.tab-pill-btn{border:none;background:none;padding:6px 14px;border-radius:8px;font-size:.8rem;font-weight:600;color:#64748b;cursor:pointer;transition:all .18s ease}.tab-pill-btn.is-active{background:#fff;color:#1e40af;box-shadow:0 2px 6px #0f172a0f}.tab-search-box .search-mini-input{width:220px;padding:5px 10px;font-size:.78rem;border-radius:8px}.table-responsive-container{width:100%;overflow-x:auto;border-radius:12px;border:1px solid rgba(226,232,240,.85);background:#ffffffa6}.academic-data-table{width:100%;border-collapse:collapse;font-size:.84rem;text-align:left}.academic-data-table th,.academic-data-table td{padding:12px 14px;vertical-align:middle;box-sizing:border-box}.academic-data-table thead th{background:#f1f5f9f2;color:#475569;font-size:.78rem;font-weight:700;letter-spacing:.02em;border-bottom:1px solid rgba(203,213,225,.85);white-space:nowrap}.academic-data-table tbody td{border-bottom:1px solid rgba(226,232,240,.7);color:var(--text-glass-heading)}.academic-data-table tbody tr:last-child td{border-bottom:none}.academic-data-table tbody tr:hover td{background:#f8fafcd9}.academic-data-table .text-center{text-align:center!important}.academic-data-table .text-right{text-align:right!important}.table-empty-row{text-align:center!important;padding:36px 16px!important;color:#94a3b8;font-size:.86rem;font-weight:600}.rank-badge{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:.72rem;font-weight:700;background:#e2e8f0cc;color:#64748b;margin:0 auto}.rank-top{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;box-shadow:0 2px 6px #f59e0b59}.hours-highlight-badge{display:inline-block;padding:3px 8px;border-radius:6px;font-size:.82rem;font-weight:800;background:#10b9811f;color:#047857;border:1px solid rgba(16,185,129,.25);font-variant-numeric:tabular-nums}.hour-sub-text{font-size:.8rem;font-weight:700;color:#047857;font-variant-numeric:tabular-nums}.attend-stat-text{font-size:.78rem;font-weight:600;color:var(--text-glass-heading);white-space:nowrap}.class-tags-wrap{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.class-mini-tag{display:inline-block;padding:2px 8px;border-radius:5px;font-size:.74rem;font-weight:500;background:#f1f5f9f2;color:#334155;border:1px solid rgba(203,213,225,.85);line-height:1.4}.student-link-text{color:var(--brand-primary, #3b82f6);font-weight:700;cursor:pointer;transition:all .15s ease}.student-link-text:hover{text-decoration:underline;color:#1d4ed8}.lesson-content-text{display:inline-block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;font-size:.8rem;color:#475569}.time-text{font-size:.78rem;color:#64748b;font-variant-numeric:tabular-nums}.alert-banner,.action-alert{display:flex;justify-content:space-between;align-items:center;gap:.85rem;padding:.75rem 1.15rem;border-radius:var(--radius-glass, 12px);font-size:.86rem;font-weight:600;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 4px 20px rgba(var(--glass-shade-rgb, 31 38 135),.08),inset 0 1px #ffffffb3;animation:alertSlideIn .25s cubic-bezier(.4,0,.2,1);transition:all .2s ease;position:relative;overflow:hidden}.alert-banner.alert-success,.action-alert.alert-success{background:linear-gradient(135deg,#ecfdf5e6,#d1fae5bf);border:1px solid rgba(16,185,129,.45);color:#065f46}.alert-banner.alert-error,.alert-banner.alert-danger,.action-alert.alert-danger{background:linear-gradient(135deg,#fef2f2eb,#fee2e2bf);border:1px solid rgba(239,68,68,.45);color:#991b1b}.alert-banner.alert-warning{background:linear-gradient(135deg,#fef3c7eb,#fde68abf);border:1px solid rgba(245,158,11,.45);color:#92400e}.alert-banner.alert-info{background:linear-gradient(135deg,#eff6ffeb,#dbeafebf);border:1px solid rgba(59,130,246,.45);color:#1e40af}.alert-content-wrap{display:flex;align-items:center;gap:.55rem;flex:1}.alert-icon-badge{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:.72rem;font-weight:800;flex-shrink:0}.alert-success .alert-icon-badge{background:#10b98133;color:#047857}.alert-error .alert-icon-badge,.alert-danger .alert-icon-badge{background:#ef444433;color:#b91c1c}.alert-close,.alert-close-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.6);background:#ffffff73;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:currentColor;opacity:.75;font-size:.95rem;font-weight:600;line-height:1;cursor:pointer;flex-shrink:0;transition:all .18s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px #0000000a}.alert-close:hover,.alert-close-btn:hover{opacity:1;background:#ffffffd9;transform:scale(1.1) rotate(90deg);box-shadow:0 3px 8px #00000014}.alert-close:active,.alert-close-btn:active{transform:scale(.95)}@keyframes alertSlideIn{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:grid;place-items:center;padding:20px;background:#0f172a73;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal-card{width:min(92vw,440px);padding:28px 26px;border-radius:20px;border:1px solid rgba(255,255,255,.8);background:#ffffffd9;box-shadow:0 20px 50px #0f172a33,inset 0 1px #fffffff2}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid rgba(226,232,240,.8)}.modal-title{margin:0;font-size:1.15rem;font-weight:800;color:var(--text-glass-heading)}.modal-close-btn{background:none;border:none;font-size:1.4rem;line-height:1;color:#94a3b8;cursor:pointer;padding:2px 6px;border-radius:4px;transition:all .15s ease}.modal-close-btn:hover{color:#1e293b;background:#e2e8f0cc}.modal-form-body{display:flex;flex-direction:column;gap:16px}.modal-form-body .field-group{display:flex;flex-direction:column;gap:6px;margin:0}.modal-form-body .input-glass{width:100%;padding:9px 12px;border-radius:8px;background:#ffffffd9;border:1px solid rgba(203,213,225,.85);font-size:.88rem}.modal-form-body .input-glass:focus{background:#fff;border-color:var(--brand-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f633;outline:none}.modal-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:14px;border-top:1px solid rgba(226,232,240,.8)}.btn-matrix-prep{box-shadow:0 2px 8px #3b82f640;font-weight:600}.modal-fullscreen-styled{width:96vw;max-width:1440px;height:94vh;max-height:960px;display:flex;flex-direction:column;padding:16px 22px}.matrix-modal-head-titles{display:flex;flex-direction:column;gap:2px}.matrix-modal-head-titles .head-title-row{display:flex;align-items:center;gap:10px}.matrix-modal-sub{font-size:.78rem;color:var(--text-glass-muted, #64748b)}.badge-class-name{font-size:.82rem;padding:2px 8px}.matrix-modal-body{flex:1;min-height:0;display:flex;flex-direction:column;gap:10px;overflow:hidden;margin-top:6px}.copy-toast-banner{padding:5px 12px;background:#10b98126;border:1px solid rgba(16,185,129,.35);color:#065f46;border-radius:6px;font-size:.82rem;font-weight:600;text-align:center;animation:fadeIn .2s ease}.matrix-top-panel{padding:10px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.65);display:flex;flex-direction:column;gap:8px;flex-shrink:0}.matrix-panel-row{display:flex;align-items:center;gap:8px}.panel-lbl{font-size:.8rem;font-weight:700;color:var(--text-glass-heading, #1e293b);white-space:nowrap;flex-shrink:0}.cat-nav-pills{display:flex;gap:5px;flex-wrap:wrap}.cat-pill-btn{padding:3px 10px;border-radius:16px;font-size:.78rem;font-weight:600;background:#ffffffb3;border:1px solid rgba(203,213,225,.7);color:#475569;cursor:pointer;transition:all .15s ease}.cat-pill-btn:hover{background:#fff;border-color:#94a3b8}.cat-pill-btn.is-active{background:var(--brand-primary, #3b82f6);border-color:var(--brand-primary, #3b82f6);color:#fff;box-shadow:0 2px 6px #3b82f640}.matrix-roster-row{justify-content:space-between;gap:12px}.roster-left{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1}.student-chips-flow{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.student-matrix-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:6px;background:#ffffffd9;border:1px solid rgba(203,213,225,.8);font-size:.78rem}.student-matrix-chip.is-temp-student{background:#fef3c7e6;border-color:#f59e0b8c}.st-name{font-weight:700;color:var(--text-glass-heading, #1e293b)}.st-completed-count{font-size:.72rem;color:#059669;font-weight:600}.st-remove-btn{background:transparent;border:none;font-size:.95rem;color:#ef4444;cursor:pointer;padding:0 2px;line-height:1}.st-remove-btn:hover{transform:scale(1.2)}.relative-container{position:relative}.student-search-popover{position:absolute;top:calc(100% + 6px);right:0;width:380px;z-index:100;padding:14px;border-radius:12px;background:#fffffffa;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.9);box-shadow:0 16px 40px #0f172a2e,0 0 0 1px #cbd5e180;display:flex;flex-direction:column;gap:10px;animation:fadeIn .18s ease-out}.popover-header{display:flex;justify-content:space-between;align-items:center}.popover-title{font-size:.84rem;font-weight:700;color:var(--text-glass-heading, #1e293b)}.popover-close-btn{background:transparent;border:none;font-size:1.1rem;color:#94a3b8;cursor:pointer;padding:0 4px;line-height:1;border-radius:4px}.popover-close-btn:hover{color:#1e293b;background:#f1f5f9cc}.popover-search-bar{display:flex;gap:6px}.search-student-input{flex:1;font-size:.82rem}.popover-state-msg{font-size:.76rem;padding:6px 10px;border-radius:6px;background:#f1f5f9d9;color:var(--text-glass-muted, #64748b);text-align:center}.popover-state-msg.error-msg{background:#fef2f2d9;color:#b91c1c}.popover-state-msg.empty-msg{background:#fef3c799;color:#b45309}.popover-state-msg.tip-msg{color:#64748b}.search-student-dropdown{list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:5px}.search-student-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;background:#f8fafce6;border:1px solid rgba(226,232,240,.8);cursor:pointer;transition:all .15s ease}.search-student-item:hover{background:#eff6fff2;border-color:#3b82f666}.st-avatar-badge{width:26px;height:26px;border-radius:50%;background:var(--brand-primary, #3b82f6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:700;flex-shrink:0}.st-main-info{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.st-name-row{display:flex;align-items:center;gap:4px}.st-item-name{font-size:.82rem;font-weight:700;color:var(--text-glass-heading, #1e293b)}.st-item-tag{font-size:.68rem;padding:1px 3px;border-radius:3px;background:#e2e8f0cc;color:#475569}.st-item-id{font-size:.7rem;color:var(--text-glass-muted, #94a3b8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-add-pick{flex-shrink:0;font-size:.7rem;padding:2px 6px;background:var(--brand-primary, #3b82f6);color:#fff}.matrix-toolbar-row{justify-content:space-between;flex-wrap:wrap;gap:8px;padding-top:4px;border-top:1px solid rgba(226,232,240,.7)}.toolbar-kpi-filters{display:flex;gap:5px;flex-wrap:wrap;align-items:center}.kpi-filter-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:16px;font-size:.76rem;font-weight:600;background:#ffffffbf;border:1px solid rgba(203,213,225,.75);color:#475569;cursor:pointer;transition:all .15s ease}.kpi-filter-chip:hover{background:#fff;border-color:#94a3b8}.kpi-filter-chip.is-active{box-shadow:0 1px 4px #0000001a}.kpi-filter-chip.chip-all.is-active{background:#3b82f626;border-color:#3b82f680;color:#1d4ed8}.kpi-filter-chip.chip-green.is-active{background:#10b98126;border-color:#10b98180;color:#065f46}.kpi-filter-chip.chip-amber.is-active{background:#f59e0b26;border-color:#f59e0b80;color:#92400e}.kpi-filter-chip.chip-gray.is-active{background:#94a3b833;border-color:#94a3b899;color:#334155}.chip-dot{width:6px;height:6px;border-radius:50%}.dot-green{background:#10b981}.dot-amber{background:#f59e0b}.dot-gray{background:#94a3b8}.chip-val{padding:0 4px;border-radius:8px;background:#0000000f;font-size:.72rem;font-weight:700}.toolbar-view-and-search{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.view-mode-tabs{display:flex;background:#f1f5f9e6;border-radius:6px;padding:2px;gap:2px;border:1px solid rgba(203,213,225,.8)}.tab-mode-btn{padding:3px 8px;border-radius:5px;font-size:.76rem;font-weight:600;background:transparent;border:none;color:#64748b;cursor:pointer;transition:all .15s ease}.tab-mode-btn.is-active{background:#fff;color:#1e293b;box-shadow:0 1px 3px #0000001a}.matrix-search-input{width:180px;font-size:.78rem;padding:4px 8px}.matrix-stream-view{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding-right:4px}.level-group-section{display:flex;flex-direction:column;gap:8px}.level-group-header{display:flex;align-items:baseline;gap:8px;padding:2px 4px;border-bottom:1px solid rgba(203,213,225,.6)}.level-group-title{font-size:.88rem;font-weight:700;color:var(--text-glass-heading, #1e293b)}.level-group-count{font-size:.74rem;color:var(--text-glass-muted, #94a3b8)}.lesson-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}.matrix-lesson-card{padding:10px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.5);display:flex;flex-direction:column;gap:6px;transition:all .2s ease}.matrix-lesson-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000000f}.matrix-lesson-card.status-none{border-left:3px solid #10b981;background:#f0fdf4bf}.matrix-lesson-card.status-partial{border-left:3px solid #f59e0b;background:#fefce8bf}.matrix-lesson-card.status-all{border-left:3px solid #cbd5e1;background:#f8fafc99;opacity:.85}.matrix-lesson-card .card-head{display:flex;justify-content:space-between;align-items:center;gap:6px}.card-title-wrap{display:flex;align-items:center;gap:6px}.lesson-order{font-size:.72rem;color:var(--text-glass-muted, #94a3b8);font-weight:600}.lesson-name{margin:0;font-size:.86rem;font-weight:700;color:var(--text-glass-heading, #1e293b)}.clean-lesson-hint{font-size:.76rem;color:#059669;line-height:1.4}.conflict-detail-breakdown{display:flex;flex-direction:column;gap:3px;font-size:.74rem}.student-status-line{display:flex;align-items:flex-start;gap:4px}.line-label{font-weight:600;white-space:nowrap}.amber-label{color:#b45309}.gray-label{color:#64748b}.name-pill-list{display:flex;gap:3px;flex-wrap:wrap}.name-pill{padding:1px 5px;border-radius:3px;font-size:.7rem;font-weight:600}.name-pill-amber{background:#fde68ab3;color:#92400e}.name-pill-gray{background:#f1f5f9e6;color:#475569}.completed-lesson-hint{font-size:.76rem;color:#64748b}.matrix-lesson-card .card-footer{display:flex;justify-content:flex-end;margin-top:auto;padding-top:4px;border-top:1px solid rgba(226,232,240,.6)}.btn-copy-lesson{font-size:.7rem}.matrix-table-view{flex:1;min-height:0;width:100%;overflow:auto;border:1px solid rgba(203,213,225,.85);border-radius:10px;background:#ffffffeb;box-shadow:0 4px 16px #0000000a}.matrix-cross-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.82rem}.matrix-cross-table th{position:sticky;top:0;background:#f1f5f9fa;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;padding:9px 12px;font-weight:700;border-bottom:2px solid rgba(203,213,225,.9);white-space:nowrap}.matrix-cross-table td{padding:7px 12px;border-bottom:1px solid rgba(226,232,240,.8);vertical-align:middle}.col-order{width:50px;text-align:center}.col-level{width:85px}.col-course-name{min-width:170px}.col-conflict-badge{width:120px}.course-name-cell{display:flex;align-items:center;justify-content:space-between;gap:6px}.btn-copy-icon{background:#3b82f614;border:1px solid rgba(59,130,246,.2);font-size:.7rem;color:var(--brand-primary, #3b82f6);cursor:pointer;padding:1px 5px;border-radius:3px;transition:all .15s ease}.btn-copy-icon:hover{background:var(--brand-primary, #3b82f6);color:#fff}.col-student-head{min-width:90px;text-align:center}.student-head-cell{display:flex;flex-direction:column;align-items:center;gap:2px}.st-head-name{font-weight:700;font-size:.8rem;color:var(--text-glass-heading, #1e293b)}.is-temp-student-th{background:#fef3c7f2!important;border-bottom-color:#f59e0bcc!important}.tr-recommended{background:#f0fdf473}.tr-conflict{background:#fefce873}.matrix-cross-table tbody tr:hover td{background:#eff6ff99}.col-student-cell{padding:6px 8px}.col-student-cell.cell-done{background:#d1fae573}.matrix-loading-box,.matrix-empty-box{padding:40px 20px;text-align:center;font-size:.86rem;color:var(--text-glass-muted, #64748b)}
