@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--bg-primary: #ffffff;--bg-secondary: #f8fafb;--bg-glass: rgba(255, 255, 255, .75);--bg-glass-hover: rgba(255, 255, 255, .9);--border-glass: rgba(0, 0, 0, .08);--border-glow: rgba(22, 163, 74, .3);--accent: #16a34a;--accent-light: #22c55e;--accent-dark: #15803d;--accent-glow: rgba(22, 163, 74, .12);--accent-glow-strong: rgba(22, 163, 74, .3);--text-primary: #111827;--text-secondary: #6b7280;--text-muted: #9ca3af;--danger: #ef4444;--success: #16a34a;--warning: #f59e0b;--info: #3b82f6;--purple: #8b5cf6;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 16px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .08);--shadow-glow: 0 0 20px rgba(22, 163, 74, .08), 0 4px 16px rgba(0, 0, 0, .06);--shadow-card: 0 1px 3px rgba(0, 0, 0, .06), 0 4px 16px rgba(0, 0, 0, .04);font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.6;font-weight:400;color:var(--text-primary);background-color:var(--bg-secondary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box;margin:0;padding:0}body{min-width:320px;min-height:100vh;overflow-x:hidden;background:var(--bg-secondary)}a{color:var(--accent);text-decoration:none;transition:color .2s ease}a:hover{color:var(--accent-dark)}.glass{background:var(--bg-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-glass);box-shadow:var(--shadow-card)}.glass:hover{background:var(--bg-glass-hover);border-color:var(--border-glow);box-shadow:var(--shadow-glow)}.glow-border{position:relative;transition:box-shadow .3s ease}.glow-border:hover{box-shadow:var(--shadow-glow)}.loading{display:flex;justify-content:center;align-items:center;min-height:100vh;font-size:1.1rem;color:var(--text-secondary);gap:.75rem}.unauthorized{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;color:var(--danger);gap:.5rem}.unauthorized p{color:var(--text-secondary)}.logo-text{font-size:1.25rem;font-weight:800;letter-spacing:-.03em}.logo-up{color:var(--text-primary)}.logo-green{color:var(--accent)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0000001f;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#0003}[data-theme=dark]{--bg-primary: #111111;--bg-secondary: #0a0a0a;--bg-glass: rgba(20, 20, 20, .75);--bg-glass-hover: rgba(30, 30, 30, .9);--border-glass: rgba(255, 255, 255, .08);--border-glow: rgba(22, 163, 74, .4);--accent-glow: rgba(22, 163, 74, .15);--accent-glow-strong: rgba(22, 163, 74, .35);--text-primary: #f3f4f6;--text-secondary: #9ca3af;--text-muted: #6b7280;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px rgba(22, 163, 74, .12), 0 4px 16px rgba(0, 0, 0, .3);--shadow-card: 0 1px 3px rgba(0, 0, 0, .3), 0 4px 16px rgba(0, 0, 0, .2);color-scheme:dark}[data-theme=dark] .logo-up{color:#f3f4f6}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#ffffff1f}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#fff3}:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: hsl(6, 78%, 57%);--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-container-width: fit-content;--toastify-toast-width: 320px;--toastify-toast-offset: 16px;--toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));--toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));--toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));--toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));--toastify-toast-background: #fff;--toastify-toast-padding: 14px;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-toast-shadow: 0px 4px 12px rgba(0, 0, 0, .1);--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55);--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error);--toastify-color-progress-bgo: .2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;width:var(--toastify-container-width);box-sizing:border-box;color:#fff;display:flex;flex-direction:column}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right);align-items:end}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right);align-items:end}.Toastify__toast{--y: 0;position:relative;touch-action:none;width:var(--toastify-toast-width);min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:var(--toastify-toast-padding);border-radius:var(--toastify-toast-bd-radius);box-shadow:var(--toastify-toast-shadow);max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);z-index:0;display:flex;flex:1 auto;align-items:center;word-break:break-word}@media only screen and (max-width:480px){.Toastify__toast-container{width:100vw;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:initial}.Toastify__toast{--toastify-toast-width: 100%;margin-bottom:0;border-radius:0}}.Toastify__toast-container[data-stacked=true]{width:var(--toastify-toast-width)}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,.Toastify__toast--stacked[data-collapsed] .Toastify__close-button{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{margin-inline-end:10px;width:22px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;position:absolute;top:6px;right:6px;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:unset}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:1;opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right;border-bottom-left-radius:initial}.Toastify__progress-bar--wrp{position:absolute;overflow:hidden;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.navbar{position:sticky;top:0;z-index:100;background:#ffffffd9;backdrop-filter:blur(24px) saturate(1.4);-webkit-backdrop-filter:blur(24px) saturate(1.4);border-bottom:1px solid rgba(0,0,0,.06);box-shadow:0 1px 3px #0000000a}.navbar-inner{display:flex;align-items:center;justify-content:space-between;max-width:1280px;margin:0 auto;padding:0 1.5rem;height:64px}.navbar-brand{display:flex;align-items:center;text-decoration:none}.navbar-actions{display:flex;align-items:center;gap:.75rem}.navbar-divider{width:1px;height:24px;background:#0000001a;flex-shrink:0}.user-info{display:flex;align-items:center;gap:.6rem}.user-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;box-shadow:0 2px 8px #16a34a40}.user-details{display:flex;flex-direction:column;line-height:1.2}.user-name{font-size:.85rem;font-weight:600;color:var(--text-primary)}.user-role{font-size:.7rem;color:var(--accent);text-transform:uppercase;font-weight:600;letter-spacing:.04em}.btn-logout{display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:#ef44440f;border:1px solid rgba(239,68,68,.15);color:var(--danger);padding:0;border-radius:50%;cursor:pointer;font-family:inherit;transition:all .25s ease}.btn-logout:hover{background:#ef44441a;border-color:#ef44444d;box-shadow:0 2px 12px #ef44441a}.theme-toggle{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid rgba(0,0,0,.08);border-radius:50%;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;transition:all .25s ease}.theme-toggle:hover{border-color:var(--accent);color:var(--accent);background:#16a34a0a}[data-theme=dark] .navbar{background:#111111d9;border-bottom-color:#ffffff0f;box-shadow:0 1px 3px #0000004d}[data-theme=dark] .navbar-divider{background:#ffffff1a}[data-theme=dark] .theme-toggle{border-color:#ffffff1a;background:#ffffff0d}[data-theme=dark] .btn-logout{background:#ef44441a;border-color:#ef444433}[data-theme=dark] .btn-logout:hover{background:#ef444426;border-color:#ef444459}.sidebar{position:fixed;top:64px;left:0;bottom:0;background:#fff;border-right:1px solid rgba(0,0,0,.06);display:flex;flex-direction:column;z-index:90;overflow:hidden;box-shadow:2px 0 8px #00000008}.sidebar-top{display:flex;align-items:center;justify-content:space-between;padding:1rem;min-height:48px}.sidebar-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);white-space:nowrap;overflow:hidden}.sidebar-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid rgba(0,0,0,.08);border-radius:8px;background:var(--bg-secondary);color:var(--text-secondary);cursor:pointer;flex-shrink:0;transition:all .2s ease}.sidebar-toggle:hover{border-color:var(--accent);color:var(--accent);background:#16a34a0a}.collapsed .sidebar-top{justify-content:center;padding:1rem .5rem}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:0 .5rem;flex:1}.sidebar-link{position:relative;display:flex;align-items:center;gap:.75rem;padding:.65rem .75rem;border-radius:var(--radius-sm);color:var(--text-secondary);text-decoration:none;font-size:.875rem;font-weight:500;white-space:nowrap;overflow:hidden;transition:all .2s ease}.sidebar-link:hover{color:var(--text-primary);background:#00000008}.sidebar-link.active{color:var(--accent);background:#16a34a0f;font-weight:600}.sidebar-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;position:relative}.sidebar-badge{position:absolute;top:-6px;right:-8px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:.6rem;font-weight:700;padding:.1rem .3rem;border-radius:999px;min-width:16px;text-align:center;box-shadow:0 2px 4px #ef444466;animation:pulse-sidebar-badge 2s infinite}@keyframes pulse-sidebar-badge{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.sidebar-label{overflow:hidden;white-space:nowrap;display:flex;align-items:center;gap:.5rem}.sidebar-badge-text{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:.65rem;font-weight:700;padding:.15rem .4rem;border-radius:999px;min-width:20px;text-align:center;box-shadow:0 2px 4px #ef44444d}.sidebar-active-bar{position:absolute;left:0;top:25%;bottom:25%;width:3px;border-radius:0 3px 3px 0;background:var(--accent);box-shadow:0 0 8px #16a34a4d}.collapsed .sidebar-link{justify-content:center;padding:.65rem}.collapsed .sidebar-active-bar{left:0}[data-theme=dark] .sidebar{background:#111;border-right-color:#ffffff0f;box-shadow:2px 0 8px #0000004d}[data-theme=dark] .sidebar-toggle{border-color:#ffffff1a;background:#ffffff0d}[data-theme=dark] .sidebar-link:hover{background:#ffffff0a}[data-theme=dark] .sidebar-link.active{background:#16a34a1a}.app-layout{display:flex;min-height:calc(100vh - 64px)}.app-content{flex:1;min-width:0;transition:margin-left .3s ease}.with-sidebar .app-content{margin-left:240px}.spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem}.spinner-ring{border:3px solid rgba(0,0,0,.06);border-top:3px solid var(--accent);border-radius:50%;box-shadow:0 0 12px #16a34a1a}.spinner-text{color:var(--text-secondary);font-size:.9rem;font-weight:500;letter-spacing:.02em}[data-theme=dark] .spinner-ring{border-color:#ffffff14;border-top-color:var(--accent)}.auth-page{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;position:relative;overflow:hidden;background:linear-gradient(135deg,#f0fdf4,#fff 40%,#eff6ff)}.auth-bg-orb{position:fixed;border-radius:50%;filter:blur(80px);pointer-events:none;animation:orbFloat 8s ease-in-out infinite}.auth-bg-orb-1{width:400px;height:400px;background:radial-gradient(circle,rgba(22,163,74,.1),transparent 70%);top:-10%;right:-5%;animation-delay:0s}.auth-bg-orb-2{width:350px;height:350px;background:radial-gradient(circle,rgba(59,130,246,.08),transparent 70%);bottom:-10%;left:-5%;animation-delay:-4s}@keyframes orbFloat{0%,to{transform:translate(0) scale(1)}33%{transform:translate(20px,-20px) scale(1.05)}66%{transform:translate(-15px,15px) scale(.95)}}.auth-card{width:100%;max-width:440px;padding:2.5rem;border-radius:var(--radius-xl);background:#ffffffd9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(0,0,0,.06);box-shadow:0 8px 40px #0000000f,0 1px 3px #0000000a}.auth-header{text-align:center;margin-bottom:2rem}.auth-logo{display:inline-flex;align-items:center;justify-content:center;margin-bottom:1rem}.auth-header h2{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0 0 .35rem;letter-spacing:-.02em}.auth-header p{color:var(--text-secondary);font-size:.9rem;margin:0}.input-row{display:flex;gap:.75rem}.input-row .input-group{flex:1}.input-group{margin-bottom:1.25rem}.input-group label{display:block;margin-bottom:.4rem;font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.input-wrapper{display:flex;align-items:center;gap:.6rem;padding:0 .85rem;border:1px solid rgba(0,0,0,.1);border-radius:var(--radius-sm);background:#fff;transition:all .3s ease}.input-wrapper svg{color:var(--text-muted);flex-shrink:0;transition:color .3s ease}.input-wrapper:focus-within{border-color:var(--accent);background:#16a34a05;box-shadow:0 0 0 3px #16a34a14,0 2px 8px #16a34a0f}.input-wrapper:focus-within svg{color:var(--accent)}.input-wrapper input{width:100%;padding:.7rem 0;border:none;background:transparent;color:var(--text-primary);font-size:.925rem;font-family:inherit;outline:none}.input-wrapper input::placeholder{color:var(--text-muted)}.btn-submit{width:100%;padding:.75rem;margin-top:.5rem;border:none;border-radius:var(--radius-sm);background:linear-gradient(135deg,#16a34a,#059669);color:#fff;font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;position:relative;overflow:hidden;transition:box-shadow .3s ease}.btn-submit:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,.15) 50%,transparent 60%);transform:translate(-100%);transition:transform .6s ease}.btn-submit:hover:not(:disabled):before{transform:translate(100%)}.btn-submit:hover:not(:disabled){box-shadow:0 4px 20px #16a34a4d,0 2px 8px #16a34a26}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.auth-footer{text-align:center;margin-top:1.5rem;font-size:.875rem;color:var(--text-secondary)}.auth-footer a{color:var(--accent);font-weight:600;transition:color .2s ease}.auth-footer a:hover{color:var(--accent-dark)}[data-theme=dark] .auth-page{background:linear-gradient(135deg,#0a1a0f,#0a0a0a 40%,#0a0f1a)}[data-theme=dark] .auth-bg-orb-1{background:radial-gradient(circle,rgba(22,163,74,.15),transparent 70%)}[data-theme=dark] .auth-bg-orb-2{background:radial-gradient(circle,rgba(59,130,246,.1),transparent 70%)}[data-theme=dark] .auth-card{background:#141414d9;border-color:#ffffff14;box-shadow:0 8px 40px #0006,0 1px 3px #0000004d}[data-theme=dark] .input-wrapper{border-color:#ffffff1a;background:#ffffff0a}[data-theme=dark] .input-wrapper:focus-within{background:#16a34a0f}.dashboard{max-width:960px;margin:0 auto;padding:2rem 1.5rem 3rem}.db-welcome{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid rgba(0,0,0,.06)}.db-welcome-text h1{font-size:1.75rem;font-weight:800;letter-spacing:-.03em;margin:0 0 .3rem;color:var(--text-primary);line-height:1.2}.db-highlight{background:linear-gradient(135deg,var(--accent),#059669);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.db-welcome-sub{color:var(--text-secondary);font-size:.95rem;margin:0}.db-role-badge{display:inline-flex;align-items:center;padding:.35rem .9rem;border-radius:20px;font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;flex-shrink:0}.db-role-admin{background:#ef44441a;color:#dc2626;border:1px solid rgba(239,68,68,.2)}.db-role-instructor{background:#f59e0b1a;color:#d97706;border:1px solid rgba(245,158,11,.2)}.db-role-student{background:#22c55e1a;color:#16a34a;border:1px solid rgba(34,197,94,.2)}.db-welcome-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.db-export-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem 1rem;border-radius:20px;border:1px solid #16a34a;background:#16a34a;color:#fff;font-size:.8rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s ease;white-space:nowrap}.db-export-btn:hover:not(:disabled){background:#15803d;border-color:#15803d;box-shadow:0 2px 10px #16a34a4d}.db-export-btn:disabled{opacity:.65;cursor:not-allowed}.db-tabs{display:flex;gap:.25rem;padding:.3rem;border-radius:var(--radius-md);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm);margin-bottom:1.5rem}.db-tab{position:relative;flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem .75rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:.85rem;font-weight:500;font-family:inherit;cursor:pointer;transition:color .2s ease;z-index:1}.db-tab:hover{color:var(--text-primary)}.db-tab.active{color:var(--accent);font-weight:600}.db-tab svg{flex-shrink:0}.db-tab-indicator{position:absolute;inset:0;border-radius:var(--radius-sm);background:#16a34a0f;border:1px solid rgba(22,163,74,.15);z-index:-1}.db-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem}.db-stat-card{display:flex;align-items:center;gap:.9rem;padding:1.15rem 1.1rem;border-radius:var(--radius-md);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm);transition:box-shadow .3s ease;cursor:default}.db-stat-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.db-stat-body{display:flex;flex-direction:column;min-width:0}.db-stat-value{font-size:1.4rem;font-weight:800;letter-spacing:-.03em;line-height:1.2}.db-stat-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-top:.1rem}.db-stat-sub{font-size:.72rem;color:var(--text-secondary);margin-top:.15rem}.db-card{padding:1.5rem;border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm);margin-bottom:1rem}.db-card-center{display:flex;flex-direction:column;align-items:center}.db-card-title{font-size:.95rem;font-weight:700;color:var(--text-primary);margin:0 0 1rem}.db-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.db-grid-2 .db-card{margin-bottom:0}.db-chart-wrap{width:100%;min-height:200px}.db-chart-tooltip{background:#fffffff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(0,0,0,.08);border-radius:10px;padding:.6rem .85rem;box-shadow:0 4px 20px #0000001a;min-width:100px}.tooltip-label{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;margin-bottom:.35rem}.tooltip-row{display:flex;align-items:center;gap:.4rem;font-size:.82rem;padding:.1rem 0}.tooltip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.tooltip-name{color:#6b7280;flex:1}.tooltip-val{font-weight:700}.ring-container{position:relative;display:flex;align-items:center;justify-content:center;margin:.5rem 0 1rem;--ring-bg: rgba(0, 0, 0, .06)}.ring-svg circle{transition:stroke .4s ease}.ring-label{position:absolute;display:flex;flex-direction:column;align-items:center}.ring-value{font-size:1.5rem;font-weight:800;letter-spacing:-.03em;line-height:1}.ring-sub{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-top:.2rem}.db-ring-stats{display:flex;gap:2.5rem;margin-top:.25rem}.db-ring-stat{display:flex;flex-direction:column;align-items:center;gap:.1rem}.db-ring-stat-val{font-size:1.15rem;font-weight:700;color:var(--text-primary)}.db-ring-stat-lbl{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.db-progress-list{display:flex;flex-direction:column;gap:1rem}.db-progress-row{display:flex;flex-direction:column;gap:.35rem}.db-progress-header{display:flex;justify-content:space-between;align-items:center}.db-progress-label{font-size:.82rem;font-weight:500;color:var(--text-secondary)}.db-progress-count{font-size:.85rem;font-weight:700}.db-progress-track{height:8px;border-radius:4px;background:#0000000d;overflow:hidden}.db-progress-fill{height:100%;border-radius:4px}.db-progress-pct{font-size:.7rem;font-weight:600;color:var(--text-muted)}.db-inactive-note{margin-top:1rem;padding-top:.85rem;border-top:1px solid rgba(0,0,0,.06);font-size:.8rem;color:var(--text-muted)}.db-hw-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.db-hw-grid-3{grid-template-columns:1fr 1fr 1fr}.db-hw-stat{display:flex;flex-direction:column;align-items:center;padding:1rem .5rem;border-radius:var(--radius-sm);background:#00000005}.db-hw-val{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;line-height:1}.db-hw-lbl{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-top:.35rem}.db-section-title{font-size:.95rem;font-weight:700;color:var(--text-primary);margin:.5rem 0 1rem}.db-actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.db-quick-action{display:flex;align-items:center;gap:.85rem;padding:1rem 1.1rem;border-radius:var(--radius-md);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm);text-decoration:none;color:inherit;transition:all .25s ease}.db-quick-action:hover{border-color:var(--qa-color, var(--accent));box-shadow:0 4px 20px color-mix(in srgb,var(--qa-color, var(--accent)) 12%,transparent);transform:translateY(-2px)}.qa-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.qa-text{flex:1;display:flex;flex-direction:column;min-width:0}.qa-label{font-size:.88rem;font-weight:600;color:var(--text-primary)}.qa-desc{font-size:.75rem;color:var(--text-muted);margin-top:.1rem}.qa-arrow{color:var(--text-muted);opacity:0;transform:translate(-4px);transition:all .25s ease;flex-shrink:0}.db-quick-action:hover .qa-arrow{opacity:1;transform:translate(0);color:var(--qa-color, var(--accent))}.db-activity-list{display:flex;flex-direction:column}.db-activity-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid rgba(0,0,0,.04)}.db-activity-item:last-child{border-bottom:none;padding-bottom:0}.db-activity-item:first-child{padding-top:0}.db-activity-left{display:flex;flex-direction:column;gap:.15rem;min-width:0}.db-activity-title{font-size:.88rem;font-weight:600;color:var(--text-primary)}.db-activity-meta{font-size:.75rem;color:var(--text-muted)}.status-chip{display:inline-flex;align-items:center;padding:.25rem .65rem;border-radius:6px;font-size:.72rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;flex-shrink:0}.db-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 1rem;color:var(--text-muted)}.db-empty-icon{opacity:.25;margin-bottom:.5rem}.db-empty-state p{margin:0;font-size:.85rem}.db-skeleton-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}.db-skeleton-card{display:flex;align-items:center;gap:.9rem;padding:1.15rem 1.1rem;border-radius:var(--radius-md);background:#fff;border:1px solid rgba(0,0,0,.06)}.skel-circle{width:44px;height:44px;border-radius:12px;background:linear-gradient(90deg,#0000000a 25%,#00000014,#0000000a 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;flex-shrink:0}.skel-lines{flex:1;display:flex;flex-direction:column;gap:6px}.skel-line{height:10px;border-radius:4px;background:linear-gradient(90deg,#0000000a 25%,#00000014,#0000000a 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skel-line.w60{width:60%}.skel-line.w40{width:40%}.db-error-card{display:flex;align-items:center;justify-content:center;gap:1rem;padding:1.5rem;border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(239,68,68,.15);box-shadow:var(--shadow-sm)}.db-error-card p{margin:0;font-size:.9rem;color:var(--text-secondary)}.db-retry-btn{padding:.45rem 1.1rem;border-radius:var(--radius-sm);border:1px solid var(--accent);background:transparent;color:var(--accent);font-size:.82rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s ease}.db-retry-btn:hover{background:var(--accent);color:#fff}.recharts-legend-item-text{color:var(--text-secondary)!important;font-size:.78rem!important}.recharts-default-legend{margin-top:8px!important}@media(max-width:900px){.db-stats-row,.db-skeleton-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.db-grid-2,.db-actions-grid{grid-template-columns:1fr}}@media(max-width:560px){.dashboard{padding:1.25rem 1rem 2rem}.db-welcome{flex-direction:column;align-items:flex-start;gap:.75rem}.db-welcome-text h1{font-size:1.4rem}.db-stats-row{grid-template-columns:1fr 1fr;gap:.75rem}.db-stat-card{flex-direction:column;align-items:flex-start;gap:.6rem;padding:1rem}.db-stat-value{font-size:1.2rem}.db-skeleton-grid{grid-template-columns:1fr 1fr;gap:.75rem}.db-skeleton-card{flex-direction:column;align-items:flex-start;gap:.6rem}.db-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.db-tab{white-space:nowrap;font-size:.78rem;padding:.5rem .6rem}.db-hw-grid-3{grid-template-columns:1fr 1fr 1fr}}[data-theme=dark] .db-welcome{border-bottom-color:#ffffff0f}[data-theme=dark] .db-stat-card,[data-theme=dark] .db-card,[data-theme=dark] .db-quick-action,[data-theme=dark] .db-skeleton-card,[data-theme=dark] .db-error-card,[data-theme=dark] .db-tabs{background:#1e1e1e;border-color:#2a2a2a;box-shadow:0 2px 8px #0006}[data-theme=dark] .db-tab{color:var(--text-muted)}[data-theme=dark] .db-tab:hover{color:var(--text-secondary)}[data-theme=dark] .db-tab.active{color:var(--accent)}[data-theme=dark] .db-tab-indicator{background:#16a34a1a;border-color:#16a34a33}[data-theme=dark] .db-quick-action:hover{border-color:var(--qa-color, var(--accent));box-shadow:0 4px 20px #00000080}[data-theme=dark] .db-progress-track{background:#ffffff0f}[data-theme=dark] .ring-container{--ring-bg: rgba(255, 255, 255, .08)}[data-theme=dark] .db-hw-stat{background:#ffffff08}[data-theme=dark] .db-inactive-note{border-top-color:#ffffff0f}[data-theme=dark] .db-activity-item{border-bottom-color:#ffffff0a}[data-theme=dark] .skel-circle,[data-theme=dark] .skel-line{background:linear-gradient(90deg,#ffffff08 25%,#ffffff0f,#ffffff08 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}[data-theme=dark] .db-chart-tooltip{background:#1e1e1ef5;border-color:#ffffff1a;box-shadow:0 4px 20px #00000080}[data-theme=dark] .tooltip-label,[data-theme=dark] .tooltip-name{color:#9ca3af}[data-theme=dark] .recharts-cartesian-axis-tick-value{fill:#6b7280!important}[data-theme=dark] .recharts-legend-item-text{color:#9ca3af!important}[data-theme=dark] .db-export-btn{background:#15803d;border-color:#15803d}[data-theme=dark] .db-export-btn:hover:not(:disabled){background:#16a34a;border-color:#16a34a;box-shadow:0 2px 10px #16a34a66}.admin-container{max-width:960px;margin:0 auto;padding:2.5rem 1.5rem}.admin-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.admin-header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .25rem;color:var(--text-primary)}.admin-subtitle{color:var(--text-secondary);font-size:.9rem;margin:0}.user-tabs{display:flex;gap:.25rem;padding:.3rem;border-radius:var(--radius-md);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm);margin-bottom:1.5rem}.user-tab{position:relative;flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem .75rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:.85rem;font-weight:500;font-family:inherit;cursor:pointer;transition:color .2s ease;z-index:1}.user-tab:hover{color:var(--text-primary)}.user-tab.active{color:var(--accent);font-weight:600}.user-tab-indicator{position:absolute;inset:0;border-radius:var(--radius-sm);background:#16a34a0f;border:1px solid rgba(22,163,74,.15);z-index:-1}.user-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;padding:.6rem .75rem;border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm)}.toolbar-search{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0;padding:.35rem .65rem;border-radius:var(--radius-sm);border:1px solid rgba(0,0,0,.08);background:var(--bg-secondary);transition:border-color .2s ease,box-shadow .2s ease;color:var(--text-muted)}.toolbar-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #16a34a14}.toolbar-search:focus-within svg{color:var(--accent)}.toolbar-search input{width:100%;border:none;background:transparent;font-size:.85rem;font-family:inherit;color:var(--text-primary);outline:none;padding:0}.toolbar-search input::placeholder{color:var(--text-muted)}.toolbar-search-clear{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;border-radius:50%;background:#0000000f;color:var(--text-muted);cursor:pointer;flex-shrink:0;transition:all .15s ease}.toolbar-search-clear:hover{background:#0000001f;color:var(--text-primary)}.toolbar-filters{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.toolbar-select{padding:.4rem .6rem;border:1px solid rgba(0,0,0,.08);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);font-size:.8rem;font-family:inherit;outline:none;cursor:pointer;transition:border-color .2s ease}.toolbar-select:focus{border-color:var(--accent)}.date-cell{color:var(--text-muted)!important;font-size:.8rem!important}.table-card{border-radius:var(--radius-lg);overflow:hidden;background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm)}.table-wrapper{overflow-x:auto;max-height:400px;overflow-y:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table th{padding:.85rem 1.25rem;text-align:left;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:1px solid rgba(0,0,0,.06);background:var(--bg-secondary);position:sticky;top:0;z-index:1}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .2s ease}.sortable-th:hover{color:var(--text-primary)}.sort-icon{display:inline-flex;align-items:center;vertical-align:middle;margin-left:.3rem;opacity:.25;transition:opacity .2s ease}.sortable-th:hover .sort-icon{opacity:.5}.sort-icon.sort-active{opacity:1;color:var(--accent)}.admin-table td{padding:.85rem 1.25rem;font-size:.9rem;color:var(--text-secondary);border-bottom:1px solid rgba(0,0,0,.04);transition:background .2s ease}.admin-table tr:hover td{background:#16a34a05}.admin-table tr:last-child td{border-bottom:none}.user-cell{display:flex;align-items:center;gap:.75rem}.table-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:#fff;flex-shrink:0}.role-bg-student{background:linear-gradient(135deg,#22c55e,#16a34a)}.role-bg-instructor{background:linear-gradient(135deg,#f59e0b,#d97706)}.role-bg-admin{background:linear-gradient(135deg,#ef4444,#dc2626)}.user-cell-info{display:flex;flex-direction:column;line-height:1.3}.user-cell-name{font-weight:600;color:var(--text-primary);font-size:.875rem}.user-cell-username{font-size:.75rem;color:var(--text-muted)}.email-cell{color:var(--text-secondary)!important}.id-cell{color:var(--text-muted)!important;font-family:SF Mono,Fira Code,monospace;font-size:.8rem!important}.role-chip{display:inline-flex;padding:.2rem .65rem;border-radius:20px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.role-student{background:#16a34a14;color:#16a34a;border:1px solid rgba(22,163,74,.2)}.role-instructor{background:#f59e0b14;color:#d97706;border:1px solid rgba(245,158,11,.2)}.role-admin{background:#ef444414;color:#dc2626;border:1px solid rgba(239,68,68,.2)}.pagination{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1.25rem;padding:.65rem 1rem;border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm)}.pagination-info{font-size:.8rem;color:var(--text-muted);white-space:nowrap;flex-shrink:0}.pagination-controls{display:flex;align-items:center;gap:.35rem}.page-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid rgba(0,0,0,.08);border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:all .2s ease}.page-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:#16a34a0a}.page-btn:disabled{opacity:.25;cursor:not-allowed}.page-numbers{display:flex;align-items:center;gap:.2rem}.page-num{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 .35rem;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.8rem;font-weight:500;font-family:inherit;transition:all .2s ease}.page-num:hover{background:#16a34a0a;color:var(--accent)}.page-num.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700;box-shadow:0 2px 8px #16a34a40}.page-ellipsis{display:flex;align-items:center;justify-content:center;width:24px;height:32px;color:var(--text-muted);font-size:.85rem;-webkit-user-select:none;user-select:none}.table-skeleton{border-radius:var(--radius-lg);padding:1.25rem;background:#fff}.skeleton-row{height:48px;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm);margin-bottom:.5rem}.skeleton-row:last-child{margin-bottom:0}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.create-user-section{display:flex;justify-content:center}.create-form-card{border-radius:var(--radius-lg);padding:1.5rem 1.75rem;width:100%;max-width:440px;background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm)}.create-form-header{text-align:center;margin-bottom:1.25rem}.create-form-header h2{font-size:1.05rem;font-weight:700;color:var(--text-primary);margin:0 0 .2rem;letter-spacing:-.01em}.create-form-header p{font-size:.78rem;color:var(--text-muted);margin:0}.create-form-card .input-row{display:flex;gap:.6rem}.create-form-card .input-row .input-group{flex:1}.create-form-card .input-group{margin-bottom:.85rem}.create-form-card .input-group label{display:block;margin-bottom:.3rem;font-size:.7rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.create-form-card .input-wrapper{display:flex;align-items:center;gap:.5rem;padding:0 .65rem;border:1px solid rgba(0,0,0,.1);border-radius:var(--radius-sm);background:#fff;transition:all .3s ease}.create-form-card .input-wrapper svg{color:var(--text-muted);flex-shrink:0;transition:color .3s ease;width:15px;height:15px}.create-form-card .input-wrapper:focus-within{border-color:var(--accent);background:#16a34a05;box-shadow:0 0 0 3px #16a34a14,0 2px 8px #16a34a0f}.create-form-card .input-wrapper:focus-within svg{color:var(--accent)}.create-form-card .input-wrapper input,.create-form-card .input-wrapper select{width:100%;padding:.5rem 0;border:none;background:transparent;color:var(--text-primary);font-size:.85rem;font-family:inherit;outline:none}.create-form-card .input-wrapper input::placeholder{color:var(--text-muted)}.create-form-card .input-wrapper select{cursor:pointer}.create-form-card .input-wrapper select option{background:#fff;color:var(--text-primary)}.create-form-card .btn-submit{width:100%;padding:.6rem;margin-top:.25rem;border:none;border-radius:var(--radius-sm);background:linear-gradient(135deg,#16a34a,#059669);color:#fff;font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer;position:relative;overflow:hidden;transition:box-shadow .3s ease}.create-form-card .btn-submit:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,.15) 50%,transparent 60%);transform:translate(-100%);transition:transform .6s ease}.create-form-card .btn-submit:hover:not(:disabled):before{transform:translate(100%)}.create-form-card .btn-submit:hover:not(:disabled){box-shadow:0 4px 20px #16a34a4d,0 2px 8px #16a34a26}.create-form-card .btn-submit:disabled{opacity:.6;cursor:not-allowed}.admin-loading{margin-top:1rem}.admin-table tr{cursor:pointer}.detail-breadcrumb{margin-bottom:1.5rem}.back-link{display:inline-flex;align-items:center;gap:.35rem;color:var(--text-secondary);font-size:.875rem;font-weight:500;text-decoration:none;transition:color .2s ease}.back-link:hover{color:var(--accent)}.detail-header{display:flex;align-items:center;gap:1.25rem;margin-bottom:2rem}.detail-avatar{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:#fff;flex-shrink:0;box-shadow:0 4px 16px #0000001f}.detail-header-info h1{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);margin:0 0 .25rem}.detail-header-meta{display:flex;align-items:center;gap:.75rem}.detail-username{color:var(--text-secondary);font-size:.9rem}.detail-card h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 1.25rem}.detail-field{display:flex;flex-direction:column;gap:.25rem}.detail-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.detail-value{font-size:.95rem;color:var(--text-primary);font-weight:500}.detail-skeleton{border-radius:var(--radius-lg);padding:1.75rem;background:#fff}.detail-empty{text-align:center;padding:4rem 0;color:var(--text-secondary)}.detail-empty h2{margin:0 0 1rem;color:var(--text-primary)}@media(max-width:640px){.detail-grid{grid-template-columns:1fr}.detail-header{flex-direction:column;text-align:center}.detail-header-meta{justify-content:center}}.status-chip{display:inline-flex;padding:.2rem .65rem;border-radius:20px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.status-active{background:#16a34a14;color:#16a34a;border:1px solid rgba(22,163,74,.2)}.status-inactive{background:#ef444414;color:#dc2626;border:1px solid rgba(239,68,68,.2)}.detail-actions-card{margin-top:1.25rem}.action-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid rgba(0,0,0,.06)}.action-row:last-child{border-bottom:none;padding-bottom:0}.action-row:first-child{padding-top:0}.action-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.action-title{font-size:.875rem;font-weight:600;color:var(--text-primary)}.action-title-danger{color:var(--danger)}.action-desc{font-size:.8rem;color:var(--text-muted)}.action-select{padding:.4rem .75rem;border:1px solid rgba(0,0,0,.1);border-radius:var(--radius-sm);background:#fff;color:var(--text-primary);font-size:.85rem;font-family:inherit;outline:none;cursor:pointer}.action-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #16a34a14}.action-input{padding:.4rem .75rem;border:1px solid rgba(0,0,0,.1);border-radius:var(--radius-sm);background:#fff;color:var(--text-primary);font-size:.85rem;font-family:inherit;outline:none;width:180px}.action-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #16a34a14}.action-confirm-text{font-size:.85rem;font-weight:500;color:var(--danger);white-space:nowrap}.action-btn{padding:.4rem .85rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap;border:1px solid transparent;transition:all .2s ease}.action-btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.action-btn-primary:hover:not(:disabled){box-shadow:0 2px 8px #16a34a4d}.action-btn-outline{background:transparent;color:var(--accent);border-color:#16a34a4d}.action-btn-outline:hover:not(:disabled){background:#16a34a0f}.action-btn-ghost{background:transparent;color:var(--text-secondary);border-color:#0000001a}.action-btn-ghost:hover:not(:disabled){background:#00000008}.action-btn-warning{background:#f59e0b;color:#fff;border-color:#f59e0b}.action-btn-warning:hover:not(:disabled){box-shadow:0 2px 8px #f59e0b4d}.action-btn-danger{background:#ef444414;color:var(--danger);border-color:#ef444433}.action-btn-danger:hover:not(:disabled){background:var(--danger);color:#fff;border-color:var(--danger)}.action-row-danger{margin-top:.5rem;padding-top:1rem;border-top:1px solid rgba(239,68,68,.1);border-bottom:none}[data-theme=dark] .status-active{background:#16a34a26;border-color:#16a34a4d}[data-theme=dark] .status-inactive{background:#ef444426;border-color:#ef44444d}[data-theme=dark] .action-select{background:#ffffff0a;border-color:#ffffff1a;color:var(--text-primary)}[data-theme=dark] .action-select option{background:#1e1e1e}[data-theme=dark] .action-input{background:#ffffff0a;border-color:#ffffff1a;color:var(--text-primary)}[data-theme=dark] .action-btn-ghost{border-color:#ffffff1a}[data-theme=dark] .action-btn-ghost:hover:not(:disabled){background:#ffffff0d}[data-theme=dark] .table-card,[data-theme=dark] .user-toolbar{background:#161616;border-color:#ffffff0f}[data-theme=dark] .toolbar-search{background:#ffffff0a;border-color:#ffffff14}[data-theme=dark] .toolbar-search input{color:var(--text-primary)}[data-theme=dark] .toolbar-search-clear{background:#ffffff14;color:var(--text-muted)}[data-theme=dark] .toolbar-search-clear:hover{background:#ffffff26}[data-theme=dark] .toolbar-select{background:#ffffff0a;border-color:#ffffff14;color:var(--text-primary)}[data-theme=dark] .toolbar-select option{background:#1e1e1e}[data-theme=dark] .user-tabs{background:#161616;border-color:#ffffff0f}[data-theme=dark] .user-tab-indicator{background:#16a34a1a;border-color:#16a34a33}[data-theme=dark] .pagination{background:#161616;border-color:#ffffff0f}[data-theme=dark] .admin-table th{border-bottom-color:#ffffff0f;background:#111}[data-theme=dark] .admin-table td{border-bottom-color:#ffffff0a}[data-theme=dark] .admin-table tr:hover td{background:#16a34a0a}[data-theme=dark] .skeleton-row{background:linear-gradient(90deg,#1e1e1e 25%,#2a2a2a,#1e1e1e 75%);background-size:200% 100%}[data-theme=dark] .table-skeleton{background:#161616}[data-theme=dark] .create-form-card{background:#161616;border-color:#ffffff0f}[data-theme=dark] .create-form-card .input-wrapper{border-color:#ffffff1a;background:#ffffff0a}[data-theme=dark] .create-form-card .input-wrapper:focus-within{background:#16a34a0f}[data-theme=dark] .create-form-card .input-wrapper select option{background:#1e1e1e;color:var(--text-primary)}[data-theme=dark] .page-btn{border-color:#ffffff14}[data-theme=dark] .page-btn:hover:not(:disabled){background:#16a34a14}[data-theme=dark] .page-num:hover{background:#16a34a14}[data-theme=dark] .page-num.active{background:var(--accent);border-color:var(--accent)}[data-theme=dark] .detail-skeleton{background:#161616}[data-theme=dark] .role-student{background:#16a34a26;border-color:#16a34a4d}[data-theme=dark] .role-instructor{background:#f59e0b26;border-color:#f59e0b4d}[data-theme=dark] .role-admin{background:#ef444426;border-color:#ef44444d}.detail-page-container{max-width:720px;margin:0 auto}.detail-breadcrumb{margin-bottom:1.25rem}.detail-hero{display:flex;align-items:center;gap:1.25rem;padding:1.75rem;border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm);margin-bottom:1.5rem}.detail-hero-avatar{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#059669);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;box-shadow:0 4px 16px #16a34a40}.detail-hero-avatar img{width:100%;height:100%;object-fit:cover}.detail-hero-info h1{font-size:1.35rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);margin:0 0 .15rem}.detail-hero-email{font-size:.875rem;color:var(--text-secondary);margin:0 0 .5rem}.detail-hero-badges{display:flex;gap:.5rem;align-items:center}.detail-tabs{display:flex;gap:.25rem;padding:.3rem;border-radius:var(--radius-md);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm);margin-bottom:1.5rem}.detail-tab{position:relative;flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem .75rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:.85rem;font-weight:500;font-family:inherit;cursor:pointer;transition:color .2s ease;z-index:1}.detail-tab:hover{color:var(--text-primary)}.detail-tab.active{color:var(--accent);font-weight:600}.detail-tab-indicator{position:absolute;inset:0;border-radius:var(--radius-sm);background:#16a34a0f;border:1px solid rgba(22,163,74,.15);z-index:-1}.detail-tab-content{min-height:300px}.detail-card{border-radius:var(--radius-lg);padding:1.75rem;background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.detail-field{display:flex;flex-direction:column;gap:.3rem}.detail-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.detail-value{font-size:.9rem;font-weight:500;color:var(--text-primary)}.detail-actions{display:flex;flex-direction:column;gap:0}.action-row{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;border-bottom:1px solid rgba(0,0,0,.06);gap:1rem}.action-row:last-child{border-bottom:none}.action-row-danger{margin-top:.5rem;padding-top:1.25rem;border-top:1px solid rgba(239,68,68,.2)}.action-info{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}.action-title{font-size:.9rem;font-weight:600;color:var(--text-primary)}.action-title-danger{color:#dc2626}.action-desc{font-size:.8rem;color:var(--text-secondary)}.action-inline{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.action-select{padding:.45rem .75rem;border-radius:var(--radius-sm);border:1px solid rgba(0,0,0,.12);background:#fff;font-size:.85rem;font-family:inherit;color:var(--text-primary);outline:none}.action-select:focus{border-color:var(--accent)}.action-input{padding:.45rem .75rem;border-radius:var(--radius-sm);border:1px solid rgba(0,0,0,.12);background:#fff;font-size:.85rem;font-family:inherit;color:var(--text-primary);outline:none;width:160px}.action-input:focus{border-color:var(--accent)}.action-btn{padding:.45rem 1rem;border-radius:var(--radius-sm);border:none;font-size:.8rem;font-weight:600;font-family:inherit;cursor:pointer;white-space:nowrap;transition:all .15s ease}.action-btn:disabled{opacity:.5;cursor:not-allowed}.action-btn-primary{background:var(--accent);color:#fff}.action-btn-primary:hover:not(:disabled){background:#15803d}.action-btn-outline{background:transparent;border:1px solid rgba(0,0,0,.12);color:var(--text-primary)}.action-btn-outline:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.action-btn-ghost{background:transparent;color:var(--text-secondary)}.action-btn-ghost:hover:not(:disabled){color:var(--text-primary)}.action-btn-warning{background:#f59e0b1f;color:#d97706;border:1px solid rgba(245,158,11,.2)}.action-btn-warning:hover:not(:disabled){background:#f59e0b33}.action-btn-danger{background:#ef44441f;color:#dc2626;border:1px solid rgba(239,68,68,.2)}.action-btn-danger:hover:not(:disabled){background:#ef444433}.action-confirm-text{font-size:.8rem;font-weight:500;color:#dc2626;white-space:nowrap}.detail-skeleton{padding:2rem;border-radius:var(--radius-lg)}.skeleton-row{height:16px;background:linear-gradient(90deg,#0000000a 25%,#00000014,#0000000a 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px;margin-bottom:1rem}.skeleton-row:last-child{margin-bottom:0;width:60%}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.detail-empty{text-align:center;padding:4rem 2rem}.detail-empty h2{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0 0 1rem}[data-theme=dark] .detail-hero,[data-theme=dark] .detail-tabs{background:#161616;border-color:#ffffff0f}[data-theme=dark] .detail-tab-indicator{background:#16a34a1a;border-color:#16a34a33}[data-theme=dark] .detail-card{background:#161616;border-color:#ffffff0f}[data-theme=dark] .action-row{border-bottom-color:#ffffff0f}[data-theme=dark] .action-row-danger{border-top-color:#ef444426}[data-theme=dark] .action-select,[data-theme=dark] .action-input{background:#ffffff0a;border-color:#ffffff1a;color:var(--text-primary)}[data-theme=dark] .skeleton-row{background:linear-gradient(90deg,#ffffff08 25%,#ffffff0f,#ffffff08 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@media(max-width:768px){.admin-container{padding:1.5rem 1rem}.admin-header h1{font-size:1.35rem}.admin-table .col-email,.admin-table .col-id{display:none}.create-form-card{max-width:100%;padding:1.25rem}.create-form-card .input-row{flex-direction:column;gap:0}}@media(max-width:600px){.admin-container{padding:1.25rem .75rem}.admin-header h1{font-size:1.15rem}.admin-subtitle{font-size:.8rem}.user-tabs{margin-bottom:1rem}.user-tab{font-size:.8rem;padding:.5rem;gap:.3rem}.user-tab svg{width:14px;height:14px}.user-toolbar{flex-direction:column;align-items:stretch;padding:.5rem;gap:.5rem;margin-bottom:1rem}.toolbar-search{padding:.3rem .5rem}.toolbar-search input{font-size:.8rem}.toolbar-filters{flex-wrap:wrap;gap:.4rem}.toolbar-select{flex:1;min-width:0;font-size:.75rem;padding:.35rem .4rem}.table-card{border-radius:var(--radius-md)}.admin-table th{padding:.6rem .75rem;font-size:.65rem}.admin-table td{padding:.6rem .75rem;font-size:.8rem}.table-avatar{width:28px;height:28px}.user-cell{gap:.5rem}.user-cell-name{font-size:.8rem}.user-cell-username{font-size:.65rem}.role-chip,.status-chip{font-size:.6rem;padding:.15rem .45rem}.pagination{flex-direction:column;gap:.5rem;padding:.5rem .75rem;margin-top:1rem}.pagination-controls{justify-content:center;gap:.25rem}.page-btn{width:28px;height:28px}.page-btn svg{width:12px;height:12px}.page-num{min-width:28px;height:28px;font-size:.75rem}.page-ellipsis{width:20px;height:28px}.pagination-info{font-size:.75rem}.create-user-section{padding:0}.create-form-card{padding:1rem;border-radius:var(--radius-md)}.create-form-header{margin-bottom:1rem}.create-form-header h2{font-size:.95rem}.create-form-header p{font-size:.72rem}.create-form-card .input-row{flex-direction:column;gap:0}.create-form-card .input-group{margin-bottom:.65rem}.create-form-card .input-group label{font-size:.65rem;margin-bottom:.2rem}.create-form-card .input-wrapper{padding:0 .5rem}.create-form-card .input-wrapper input,.create-form-card .input-wrapper select{font-size:.8rem;padding:.4rem 0}.create-form-card .btn-submit{font-size:.8rem;padding:.5rem}.detail-grid{grid-template-columns:1fr}.action-row{flex-direction:column;align-items:flex-start}.action-inline{width:100%;flex-wrap:wrap}}.table-actions{display:flex;align-items:center;gap:.35rem}.action-btn-ghost{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.action-btn-ghost:hover{background:#16a34a14;color:var(--accent)}.action-btn-ghost-danger:hover{background:#ef444414;color:#dc2626}.action-btn-primary{display:inline-flex;align-items:center;gap:.3rem;padding:.4rem .85rem;border:none;border-radius:8px;background:var(--accent);color:#fff;font-size:.78rem;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity .15s ease}.action-btn-primary:hover{opacity:.9}.action-btn-primary:disabled{opacity:.5;cursor:not-allowed}.action-btn-danger{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .7rem;border:none;border-radius:8px;background:#ef44441a;color:#dc2626;font-size:.75rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s ease}.action-btn-danger:hover{background:#ef44442e}.action-btn-danger:disabled{opacity:.5;cursor:not-allowed}.action-btn-outline{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .7rem;border:1px solid rgba(0,0,0,.12);border-radius:8px;background:transparent;color:var(--text-secondary);font-size:.75rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s ease}.action-btn-outline:hover{background:var(--bg-secondary);border-color:#0003}.editing-row td{padding:1rem!important}.inline-edit-form{display:flex;flex-direction:column;gap:.5rem}.inline-edit-fields{display:flex;gap:.75rem;align-items:flex-start}.inline-edit-fields .input-group{display:flex;flex-direction:column;gap:.25rem}.inline-edit-fields .input-group label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.inline-edit-fields .input-group input,.inline-edit-fields .input-group textarea{padding:.45rem .65rem;border:1px solid rgba(0,0,0,.12);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:.82rem;font-family:inherit;outline:none;transition:border-color .15s ease,box-shadow .15s ease;box-sizing:border-box}.inline-edit-fields .input-group input:focus,.inline-edit-fields .input-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #16a34a14}.inline-edit-actions{display:flex;gap:.5rem;margin-top:.25rem}.logo-upload-area-admin{margin-top:.35rem}.logo-upload-label-admin{display:flex;align-items:center;gap:.5rem;padding:.7rem 1rem;border:2px dashed rgba(0,0,0,.12);border-radius:10px;color:var(--text-muted);font-size:.82rem;cursor:pointer;transition:border-color .2s ease,color .2s ease,background .2s ease}.logo-upload-label-admin:hover{border-color:var(--accent);color:var(--accent);background:#16a34a08}.input-wrapper-textarea{align-items:flex-start!important}.input-wrapper-textarea textarea{flex:1;min-height:80px;resize:vertical;border:none;outline:none;background:transparent;color:var(--text-primary);font-size:.88rem;font-family:inherit;padding:.3rem 0}[data-theme=dark] .action-btn-ghost:hover{background:#22c55e1f}[data-theme=dark] .action-btn-ghost-danger:hover{background:#ef44441f}[data-theme=dark] .action-btn-outline{border-color:#ffffff1a}[data-theme=dark] .action-btn-outline:hover{border-color:#fff3;background:#ffffff0d}[data-theme=dark] .inline-edit-fields .input-group input,[data-theme=dark] .inline-edit-fields .input-group textarea{border-color:#ffffff1a;background:#ffffff0d}[data-theme=dark] .logo-upload-label-admin{border-color:#ffffff1a}[data-theme=dark] .logo-upload-label-admin:hover{border-color:var(--accent);background:#16a34a0f}@media(max-width:768px){.inline-edit-fields{flex-direction:column}.table-actions{flex-wrap:wrap}}.multi-select-container{max-height:180px;overflow-y:auto;border:1px solid rgba(0,0,0,.1);border-radius:8px;padding:.35rem;background:var(--bg-secondary)}.multi-select-option{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border-radius:6px;cursor:pointer;font-size:.82rem;color:var(--text-primary);transition:background .12s ease;-webkit-user-select:none;user-select:none}.multi-select-option:hover{background:#16a34a0f}.multi-select-option input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;cursor:pointer;flex-shrink:0}.multi-select-option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multi-select-empty{padding:1rem;text-align:center;font-size:.8rem;color:var(--text-muted)}[data-theme=dark] .multi-select-container{border-color:#ffffff1a;background:#ffffff0a}[data-theme=dark] .multi-select-option:hover{background:#16a34a1a}.group-chips{display:flex;flex-wrap:wrap;gap:.35rem}.group-chip{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:20px;font-size:.72rem;font-weight:600;background:#3b82f614;color:#3b82f6;border:1px solid rgba(59,130,246,.2);letter-spacing:.02em}[data-theme=dark] .group-chip{background:#3b82f626;border-color:#3b82f64d}.sms-wrapper{border:1px solid rgba(0,0,0,.1);border-radius:10px;background:var(--bg-secondary);overflow:hidden}.sms-chips{display:flex;flex-wrap:wrap;gap:.3rem;padding:.5rem .5rem .25rem;border-bottom:1px solid rgba(0,0,0,.06);max-height:100px;overflow-y:auto}.sms-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .2rem .2rem .35rem;border-radius:20px;font-size:.72rem;font-weight:500;background:#16a34a14;color:var(--text-primary);border:1px solid rgba(22,163,74,.18);white-space:nowrap;max-width:200px}.sms-chip-avatar{width:18px;height:18px;border-radius:50%;object-fit:cover;flex-shrink:0}.sms-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sms-chip-remove{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:none;background:#00000014;color:var(--text-secondary);cursor:pointer;padding:0;flex-shrink:0;transition:all .15s ease}.sms-chip-remove:hover{background:#ef444426;color:#ef4444}.sms-search{display:flex;align-items:center;gap:.4rem;padding:.45rem .6rem;border-bottom:1px solid rgba(0,0,0,.06)}.sms-search-icon{color:var(--text-muted);flex-shrink:0}.sms-search-input{flex:1;border:none;background:transparent;outline:none;font-size:.82rem;color:var(--text-primary);font-family:inherit;min-width:0}.sms-search-input::placeholder{color:var(--text-muted)}.sms-search-clear{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:none;background:#0000000f;color:var(--text-muted);cursor:pointer;padding:0;flex-shrink:0;transition:all .15s ease}.sms-search-clear:hover{background:#0000001f;color:var(--text-primary)}.sms-count{font-size:.7rem;font-weight:600;color:var(--accent);white-space:nowrap;flex-shrink:0;padding:.15rem .5rem;border-radius:10px;background:#16a34a14}.sms-options{max-height:200px;overflow-y:auto;padding:.25rem}.sms-option{display:flex;align-items:center;gap:.45rem;padding:.4rem .5rem;border-radius:6px;cursor:pointer;font-size:.82rem;color:var(--text-primary);transition:background .12s ease;-webkit-user-select:none;user-select:none}.sms-option:hover{background:#16a34a0f}.sms-option-selected{background:#16a34a0d}.sms-option-selected:hover{background:#16a34a1a}.sms-option input[type=checkbox]{accent-color:var(--accent);width:15px;height:15px;cursor:pointer;flex-shrink:0}.sms-option-avatar{width:24px;height:24px;border-radius:50%;object-fit:cover;flex-shrink:0;border:1px solid rgba(0,0,0,.06)}.sms-option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.sms-option-check{flex-shrink:0;margin-left:auto}.sms-empty{display:block;padding:1.25rem;text-align:center;font-size:.8rem;color:var(--text-muted)}[data-theme=dark] .sms-wrapper{border-color:#ffffff1a;background:#ffffff0a}[data-theme=dark] .sms-chips{border-bottom-color:#ffffff0f}[data-theme=dark] .sms-chip{background:#16a34a26;border-color:#16a34a40}[data-theme=dark] .sms-chip-remove{background:#ffffff1a}[data-theme=dark] .sms-chip-remove:hover{background:#ef444433}[data-theme=dark] .sms-search{border-bottom-color:#ffffff0f}[data-theme=dark] .sms-search-clear{background:#ffffff14}[data-theme=dark] .sms-search-clear:hover{background:#ffffff26}[data-theme=dark] .sms-count{background:#16a34a26}[data-theme=dark] .sms-option:hover{background:#16a34a1a}[data-theme=dark] .sms-option-selected{background:#16a34a14}[data-theme=dark] .sms-option-selected:hover{background:#16a34a26}[data-theme=dark] .sms-option-avatar{border-color:#ffffff14}.sms-options::-webkit-scrollbar,.sms-chips::-webkit-scrollbar{width:5px}.sms-options::-webkit-scrollbar-track,.sms-chips::-webkit-scrollbar-track{background:transparent}.sms-options::-webkit-scrollbar-thumb,.sms-chips::-webkit-scrollbar-thumb{background:#0000001f;border-radius:10px}[data-theme=dark] .sms-options::-webkit-scrollbar-thumb,[data-theme=dark] .sms-chips::-webkit-scrollbar-thumb{background:#ffffff1f}.profile-page{max-width:640px;margin:0 auto;padding:2.5rem 1.5rem}.profile-hero{display:flex;align-items:center;gap:1.25rem;padding:1.75rem;border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm);margin-bottom:1.5rem}.profile-hero-avatar{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#059669);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;box-shadow:0 4px 16px #16a34a40}.profile-hero-avatar img{width:100%;height:100%;object-fit:cover}.profile-hero-avatar span{font-size:1.75rem;font-weight:700;color:#fff}.profile-hero-info h1{font-size:1.35rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);margin:0 0 .15rem}.profile-hero-email{font-size:.875rem;color:var(--text-secondary);margin:0 0 .5rem}.profile-hero-role{display:inline-flex;padding:.2rem .65rem;border-radius:20px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.profile-tabs{display:flex;gap:.25rem;padding:.3rem;border-radius:var(--radius-md);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm);margin-bottom:1.5rem}.profile-tab{position:relative;flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem .75rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:.85rem;font-weight:500;font-family:inherit;cursor:pointer;transition:color .2s ease;z-index:1}.profile-tab:hover{color:var(--text-primary)}.profile-tab.active{color:var(--accent);font-weight:600}.tab-indicator{position:absolute;inset:0;border-radius:var(--radius-sm);background:#16a34a0f;border:1px solid rgba(22,163,74,.15);z-index:-1}.profile-tab-content{min-height:300px}.profile-section{border-radius:var(--radius-lg);padding:1.75rem;background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm)}.section-head{margin-bottom:1.5rem}.section-head h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 .25rem}.section-head p{font-size:.85rem;color:var(--text-secondary);margin:0}.profile-section .input-row{display:flex;gap:.75rem}.profile-section .input-row .input-group{flex:1}.profile-section .input-group{margin-bottom:1.25rem}.profile-section .input-group label{display:block;margin-bottom:.4rem;font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.profile-section .input-wrapper{display:flex;align-items:center;gap:.6rem;padding:0 .85rem;border:1px solid rgba(0,0,0,.1);border-radius:var(--radius-sm);background:#fff;transition:all .3s ease}.profile-section .input-wrapper svg{color:var(--text-muted);flex-shrink:0;transition:color .3s ease}.profile-section .input-wrapper:focus-within{border-color:var(--accent);background:#16a34a05;box-shadow:0 0 0 3px #16a34a14,0 2px 8px #16a34a0f}.profile-section .input-wrapper:focus-within svg{color:var(--accent)}.profile-section .input-wrapper input{width:100%;padding:.7rem 0;border:none;background:transparent;color:var(--text-primary);font-size:.925rem;font-family:inherit;outline:none}.profile-section .input-wrapper input::placeholder{color:var(--text-muted)}.textarea-wrapper{border:1px solid rgba(0,0,0,.1);border-radius:var(--radius-sm);background:#fff;transition:all .3s ease}.textarea-wrapper:focus-within{border-color:var(--accent);background:#16a34a05;box-shadow:0 0 0 3px #16a34a14,0 2px 8px #16a34a0f}.textarea-wrapper textarea{width:100%;padding:.7rem .85rem;border:none;background:transparent;color:var(--text-primary);font-size:.925rem;font-family:inherit;outline:none;resize:vertical;min-height:80px}.textarea-wrapper textarea::placeholder{color:var(--text-muted)}.avatar-section{margin-bottom:1.25rem}.avatar-upload{display:flex;align-items:center;gap:1rem}.avatar-upload-info{display:flex;flex-direction:column;gap:.35rem}.avatar-hint{font-size:.75rem;color:var(--text-muted)}.avatar-preview{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#059669);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 2px 12px #16a34a33}.avatar-preview img{width:100%;height:100%;object-fit:cover}.avatar-preview span{font-size:1.5rem;font-weight:700;color:#fff}.avatar-btn{display:inline-flex;padding:.45rem 1rem;border:1px solid rgba(0,0,0,.1);border-radius:var(--radius-sm);background:#fff;color:var(--text-primary);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.avatar-btn:hover{border-color:var(--accent);color:var(--accent);background:#16a34a0a}.btn-save{width:100%;padding:.75rem;border:none;border-radius:var(--radius-sm);background:linear-gradient(135deg,#16a34a,#059669);color:#fff;font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;position:relative;overflow:hidden;transition:box-shadow .3s ease}.btn-save:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,.15) 50%,transparent 60%);transform:translate(-100%);transition:transform .6s ease}.btn-save:hover:not(:disabled):before{transform:translate(100%)}.btn-save:hover:not(:disabled){box-shadow:0 4px 20px #16a34a4d,0 2px 8px #16a34a26}.btn-save:disabled{opacity:.6;cursor:not-allowed}.btn-save-warning{background:linear-gradient(135deg,#f59e0b,#d97706)}.btn-save-warning:hover:not(:disabled){box-shadow:0 4px 20px #f59e0b4d,0 2px 8px #f59e0b26}.btn-loading{display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@media(max-width:640px){.profile-section .input-row{flex-direction:column;gap:0}.profile-hero{flex-direction:column;text-align:center}.profile-tabs{flex-direction:column}}[data-theme=dark] .profile-hero,[data-theme=dark] .profile-tabs{background:#161616;border-color:#ffffff0f}[data-theme=dark] .tab-indicator{background:#16a34a1a;border-color:#16a34a33}[data-theme=dark] .profile-section{background:#161616;border-color:#ffffff0f}[data-theme=dark] .profile-section .input-wrapper{border-color:#ffffff1a;background:#ffffff0a}[data-theme=dark] .profile-section .input-wrapper:focus-within{background:#16a34a0f}[data-theme=dark] .textarea-wrapper{border-color:#ffffff1a;background:#ffffff0a}[data-theme=dark] .textarea-wrapper:focus-within{background:#16a34a0f}[data-theme=dark] .avatar-btn{border-color:#ffffff1a;background:#ffffff0d;color:var(--text-primary)}[data-theme=dark] .avatar-btn:hover{background:#16a34a14}.courses-container{max-width:960px;margin:0 auto;padding:2.5rem 1.5rem}.courses-container--wide{max-width:1060px}.courses-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.courses-header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .25rem;color:var(--text-primary)}.courses-subtitle{color:var(--text-secondary);font-size:.9rem;margin:0}.course-cards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}@media(max-width:700px){.course-cards-grid{grid-template-columns:1fr}}.course-card-v2{position:relative;background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:16px;overflow:hidden;cursor:pointer;box-shadow:0 1px 4px #0000000a,0 6px 20px #0000000a;transition:box-shadow .3s ease,border-color .3s ease}.course-card-v2:hover{box-shadow:0 8px 24px #00000014,0 20px 40px #0000000f;border-color:#16a34a33}.course-card-v2-banner{position:relative;width:100%;height:160px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#059669,#34d399)}.course-card-v2-banner-img{width:100%;height:100%;object-fit:cover}.course-card-v2-banner-icon{width:64px;height:64px;border-radius:20px;background:#fff3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;color:#fff}.course-card-v2-banner-badge{position:absolute;bottom:10px;right:10px;display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:700;color:#fff;background:#00000073;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:.3rem .65rem;border-radius:8px}.course-card-v2-body{padding:1.15rem 1.25rem 1.1rem}.course-card-v2-title{font-size:1.05rem;font-weight:700;color:var(--text-primary);margin:0 0 .35rem;letter-spacing:-.01em;line-height:1.35;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.course-card-v2-desc{font-size:.82rem;color:var(--text-secondary);margin:0 0 .85rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-card-v2-footer{display:flex;align-items:center;justify-content:space-between}.course-card-v2-date{font-size:.7rem;color:var(--text-muted)}.course-card-v2-cta{display:inline-flex;align-items:center;gap:.25rem;font-size:.78rem;font-weight:600;color:var(--accent);opacity:0;transform:translate(-4px);transition:opacity .25s ease,transform .25s ease}.course-card-v2:hover .course-card-v2-cta{opacity:1;transform:translate(0)}.course-card-skeleton{display:flex;flex-direction:column;gap:.75rem;padding:0;border-radius:16px;background:#fff;border:1px solid rgba(0,0,0,.06);overflow:hidden}.course-card-skeleton .skeleton-row:first-child{margin:0;border-radius:0}.course-detail-card{border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm);padding:2rem}.course-detail-title{font-size:1.5rem;font-weight:700;letter-spacing:-.01em;color:var(--text-primary);margin:0 0 .35rem}.course-detail-date{font-size:.8rem;color:var(--text-muted);margin:0 0 1.5rem}.course-detail-logo-wrap{margin-bottom:1.5rem}.course-detail-logo{max-width:180px;max-height:120px;object-fit:contain;border-radius:var(--radius-sm);border:1px solid rgba(0,0,0,.06)}.course-detail-section{margin-bottom:1.5rem}.course-detail-section h3{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 .5rem;display:flex;align-items:center;gap:.5rem}.course-detail-section h3:before{content:"";width:4px;height:1.125rem;background:linear-gradient(180deg,#16a34a,#22c55e);border-radius:2px}.course-detail-section p{font-size:.95rem;color:var(--text-secondary);margin:0;line-height:1.6;white-space:pre-wrap}.course-actions{display:flex;gap:.5rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(0,0,0,.06)}.course-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border-radius:var(--radius-sm);font-size:.82rem;font-weight:600;font-family:inherit;cursor:pointer;border:none;transition:all .2s ease}.course-btn-edit{background:#16a34a14;color:var(--accent);border:1px solid rgba(22,163,74,.2)}.course-btn-edit:hover{background:#16a34a24}.course-btn-delete{background:#ef444414;color:#dc2626;border:1px solid rgba(239,68,68,.2)}.course-btn-delete:hover{background:#ef444424}.course-btn-cancel{background:transparent;color:var(--text-secondary);border:1px solid rgba(0,0,0,.1)}.course-btn-cancel:hover{background:var(--bg-secondary)}.course-btn-save{background:var(--accent);color:#fff;border:1px solid var(--accent)}.course-btn-save:hover{opacity:.9}.course-btn-save:disabled,.course-btn-delete:disabled{opacity:.5;cursor:not-allowed}.course-confirm-row{display:flex;align-items:center;gap:.5rem}.course-confirm-text{font-size:.82rem;font-weight:600;color:#dc2626}.course-confirm-input{min-width:180px;padding:.45rem .6rem;border-radius:var(--radius-sm);border:1px solid rgba(0,0,0,.15);background:var(--bg-secondary);color:var(--text-primary);font-size:.85rem}.course-confirm-input:focus{outline:none;border-color:#dc2626;box-shadow:0 0 0 3px #dc26261f}.course-edit-form{display:flex;flex-direction:column;gap:1rem}.course-edit-form .input-group label{display:block;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:.35rem}.course-edit-form .input-group input,.course-edit-form .input-group textarea{width:100%;padding:.6rem .85rem;border:1px solid rgba(0,0,0,.1);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);font-size:.9rem;font-family:inherit;outline:none;transition:border-color .2s ease,box-shadow .2s ease;box-sizing:border-box}.course-edit-form .input-group textarea{min-height:120px;resize:vertical}.course-edit-form .input-group input:focus,.course-edit-form .input-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #16a34a14}.course-empty{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.course-empty h2{font-size:1.1rem;margin:0 0 .5rem;color:var(--text-secondary)}.course-empty p{font-size:.85rem;margin:0}.logo-file-input{display:none}.logo-upload-area{margin-top:.25rem}.logo-upload-label{display:flex;align-items:center;gap:.5rem;padding:.85rem 1.25rem;border:2px dashed rgba(0,0,0,.12);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.85rem;cursor:pointer;transition:border-color .2s ease,color .2s ease,background .2s ease}.logo-upload-label:hover{border-color:var(--accent);color:var(--accent);background:#16a34a08}.logo-preview-wrap{position:relative;display:inline-block}.logo-preview-img{max-width:140px;max-height:90px;object-fit:contain;border-radius:var(--radius-sm);border:1px solid rgba(0,0,0,.08)}.logo-remove-btn{position:absolute;top:-6px;right:-6px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:50%;background:#ef4444e6;color:#fff;cursor:pointer;transition:background .15s ease}.logo-remove-btn:hover{background:#dc2626}.lesson-list{display:flex;flex-direction:column;gap:.75rem}.lesson-card{padding:1.15rem 1.25rem;border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm);cursor:pointer;transition:all .2s ease}.lesson-card:hover{border-color:#16a34a4d;box-shadow:0 4px 16px #16a34a1a}.lesson-card-header{display:flex;align-items:flex-start;gap:.85rem;width:100%}.lesson-card-order{flex-shrink:0;font-size:.72rem;font-weight:700;font-family:SF Mono,Fira Code,monospace;color:var(--text-muted);padding-top:.1rem}.lesson-card-body{flex:1;min-width:0}.lesson-card-title{font-weight:600;font-size:.95rem;color:var(--text-primary)}.lesson-card-content{font-size:.82rem;color:var(--text-muted);margin:.3rem 0 0;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lesson-card-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}.lesson-card-chip{font-size:.72rem;font-weight:600;color:var(--text-secondary);background:#16a34a1a;padding:.2rem .55rem;border-radius:999px}.lesson-card-link{font-size:.72rem;font-weight:600;color:var(--accent);text-decoration:none;border:1px solid rgba(22,163,74,.2);padding:.2rem .55rem;border-radius:999px}.lesson-card-link:hover{background:#16a34a14}.lesson-create-card{padding:1.25rem;border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm)}.lesson-detail-card{background:linear-gradient(160deg,#fffffffa,#fff);border:1.5px solid rgba(22,163,74,.18);border-radius:calc(var(--radius-lg) + 4px);padding:2rem;box-shadow:0 8px 24px #0f172a14}.lesson-video-wrapper{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:12px;background:#0000000d;box-shadow:0 4px 16px #0000001f}.lesson-video-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:12px;border:none}[data-theme=dark] .course-card-v2{background:var(--bg-primary);border-color:#ffffff0f;box-shadow:0 1px 4px #0003,0 6px 20px #00000026}[data-theme=dark] .course-card-v2:hover{border-color:#22c55e4d;box-shadow:0 8px 24px #00000040,0 20px 40px #22c55e0f}[data-theme=dark] .course-card-v2-banner-icon{background:#ffffff26}[data-theme=dark] .course-card-v2-cta{color:#22c55e}[data-theme=dark] .course-card-skeleton{background:var(--bg-primary);border-color:#ffffff0f}[data-theme=dark] .course-detail-card{background:linear-gradient(160deg,#0f172af2,#0f172ad1);border-color:#22c55e2e}[data-theme=dark] .course-detail-section h3:before{background:linear-gradient(180deg,#94a3b8,#cbd5e1)}[data-theme=dark] .course-actions{border-top-color:#ffffff0f}[data-theme=dark] .lesson-card,[data-theme=dark] .lesson-create-card{background:var(--bg-primary);border-color:#ffffff0f}[data-theme=dark] .lesson-card:hover{border-color:#22c55e4d;box-shadow:0 4px 16px #22c55e0f}[data-theme=dark] .lesson-card-link{border-color:#22c55e4d}[data-theme=dark] .lesson-detail-card{background:linear-gradient(160deg,#1e293bf2,#0f172afa);border-color:#94a3b826;box-shadow:0 8px 24px #0000004d}[data-theme=dark] .lesson-video-wrapper{background:#0006;box-shadow:0 4px 16px #0000004d}[data-theme=dark] .logo-upload-label{border-color:#ffffff1a}[data-theme=dark] .logo-upload-label:hover{border-color:var(--accent);background:#16a34a0f}[data-theme=dark] .logo-preview-img{border-color:#ffffff14}@media(max-width:640px){.courses-container{padding:1.5rem 1rem}.course-card-v2-body{padding:1rem}.course-card-v2-banner{height:130px}}.course-detail-page{max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.course-detail-page .breadcrumb{display:flex;align-items:center;gap:.5rem;margin-bottom:2rem;font-size:.875rem}.course-detail-page .breadcrumb-link{color:var(--text-secondary);text-decoration:none;transition:color .2s}.course-detail-page .breadcrumb-link:hover{color:var(--accent)}.course-detail-page .breadcrumb-separator{color:var(--text-muted)}.course-detail-page .breadcrumb-current{color:var(--text-primary);font-weight:500}.course-hero{margin-bottom:2.5rem}.course-hero-content{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;flex-wrap:wrap}.course-hero-left{display:flex;gap:1.5rem;align-items:flex-start;flex:1;min-width:300px}.course-hero-logo{width:120px;height:120px;border-radius:16px;object-fit:cover;box-shadow:0 8px 24px #0000001f;flex-shrink:0}.course-hero h1{font-size:2.5rem;font-weight:700;margin:0 0 1rem;color:var(--text-primary);line-height:1.2}.course-hero-description{font-size:1.125rem;color:var(--text-secondary);margin:0 0 1.5rem;line-height:1.6}.course-meta{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center}.course-meta-item{display:flex;align-items:center;gap:.5rem;font-size:.95rem;color:var(--text-secondary)}.course-price-badge{padding:.5rem 1rem;border-radius:20px;font-weight:600;font-size:.95rem}.course-price-badge.free{background:#22c55e1a;color:#22c55e}.course-price-badge.paid{background:#3b82f61a;color:#3b82f6}.course-status-badge{padding:.5rem 1rem;border-radius:20px;font-weight:600;font-size:.875rem}.course-status-badge.purchased{background:#22c55e1a;color:#22c55e}.course-hero-actions{display:flex;flex-direction:column;gap:.75rem;min-width:200px}.btn-lg{padding:.875rem 1.75rem;font-size:1rem;font-weight:600}.course-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2.5rem}.stat-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:1.5rem;display:flex;align-items:center;gap:1rem;box-shadow:0 2px 8px #0000000a;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000014}.stat-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--accent),#059669);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.stat-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);line-height:1;margin-bottom:.25rem}.stat-label{font-size:.875rem;color:var(--text-muted)}.course-about{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:2rem;margin-bottom:2rem;box-shadow:0 2px 8px #0000000a}.course-about h2{font-size:1.5rem;font-weight:600;margin:0 0 1rem;color:var(--text-primary)}.course-about p{color:var(--text-secondary);line-height:1.8;margin:0 0 1.5rem}.course-cta{padding-top:1.5rem;border-top:1px solid rgba(0,0,0,.06);text-align:center}.course-cta p{font-size:1.125rem;font-weight:500;margin:0 0 1rem;color:var(--text-primary)}.course-navigation{padding-top:2rem;border-top:1px solid rgba(0,0,0,.06)}.course-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem;text-align:center}.spinner{width:40px;height:40px;border:3px solid rgba(0,0,0,.1);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}[data-theme=dark] .stat-card,[data-theme=dark] .course-about{background:#ffffff08;border-color:#ffffff14}[data-theme=dark] .course-cta,[data-theme=dark] .course-navigation{border-top-color:#ffffff14}@media(max-width:768px){.course-detail-page{padding:1.5rem 1rem}.course-hero h1{font-size:1.875rem}.course-hero-left{flex-direction:column}.course-hero-logo{width:100px;height:100px}.course-stats-grid{grid-template-columns:1fr}.course-meta{flex-direction:column;align-items:flex-start;gap:.75rem}}.course-lessons-page,.lesson-detail-page{max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.breadcrumb{display:flex;align-items:center;gap:.5rem;margin-bottom:2rem;font-size:.875rem}.breadcrumb-link{color:var(--text-secondary);text-decoration:none;transition:color .2s}.breadcrumb-link:hover{color:var(--accent)}.breadcrumb-separator{color:var(--text-muted)}.breadcrumb-current{color:var(--text-primary);font-weight:500}.course-lessons-header{margin-bottom:2.5rem}.course-header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;flex-wrap:wrap}.course-header-left{display:flex;gap:1.5rem;align-items:flex-start;flex:1}.course-header-logo{width:80px;height:80px;border-radius:12px;object-fit:cover;box-shadow:0 4px 12px #0000001a}.course-header-content h1{font-size:2rem;font-weight:700;margin:0 0 .5rem;color:var(--text-primary)}.course-description{color:var(--text-secondary);margin:0;line-height:1.6}.course-header-actions{display:flex;gap:.75rem;flex-wrap:wrap}.lessons-container{margin-top:2rem}.lessons-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.lessons-header h2{font-size:1.5rem;font-weight:600;margin:0;color:var(--text-primary)}.lessons-count{font-size:.875rem;color:var(--text-muted);background:var(--bg-secondary);padding:.4rem .8rem;border-radius:20px}.lessons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.lesson-card{cursor:pointer;padding:1.5rem;transition:all .3s ease;border:1px solid rgba(0,0,0,.08)}.lesson-card:hover{box-shadow:0 8px 24px #0000001f}.lesson-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.lesson-number{font-size:.75rem;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.5px}.lesson-video-badge{display:flex;align-items:center;gap:.3rem;font-size:.75rem;color:#ef4444;background:#ef44441a;padding:.3rem .6rem;border-radius:20px}.lesson-title{font-size:1.125rem;font-weight:600;margin:0 0 .75rem;color:var(--text-primary);line-height:1.4}.lesson-preview{font-size:.875rem;color:var(--text-secondary);line-height:1.6;margin:0 0 1rem}.lesson-card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid rgba(0,0,0,.06)}.lesson-date{font-size:.75rem;color:var(--text-muted)}.lesson-cta{display:flex;align-items:center;gap:.3rem;font-size:.875rem;font-weight:500;color:var(--accent)}.lesson-header{margin-bottom:2rem}.lesson-header-content h1{font-size:2.25rem;font-weight:700;margin:0 0 1rem;color:var(--text-primary);line-height:1.2}.lesson-meta{display:flex;gap:1.5rem;flex-wrap:wrap}.lesson-meta-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary)}.lesson-video-section{margin-bottom:2rem}.video-container{position:relative;width:100%;padding-bottom:56.25%;background:#000;border-radius:12px;overflow:hidden}.video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%}.lesson-content-section{margin-bottom:2rem}.lesson-content-section h2,.lesson-homework-section h2{font-size:1.5rem;font-weight:600;margin:0 0 1.5rem;color:var(--text-primary)}.lesson-content{line-height:1.8;color:var(--text-primary)}.lesson-content p{margin-bottom:1rem}.lesson-content h1,.lesson-content h2,.lesson-content h3{margin-top:1.5rem;margin-bottom:.75rem}.lesson-content ul,.lesson-content ol{margin-left:1.5rem;margin-bottom:1rem}.lesson-content code{background:var(--bg-secondary);padding:.2rem .4rem;border-radius:4px;font-size:.875em}.lesson-content pre{background:var(--bg-secondary);padding:1rem;border-radius:8px;overflow-x:auto;margin-bottom:1rem}.lesson-homework-section{margin-bottom:2rem}.homework-list{display:grid;gap:1rem}.homework-item{padding:1.5rem;background:var(--bg-secondary);border-radius:12px;border:1px solid rgba(0,0,0,.06)}.homework-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.homework-item-header h3{font-size:1.125rem;font-weight:600;margin:0;color:var(--text-primary)}.homework-points{font-size:.875rem;font-weight:600;color:var(--accent);background:rgba(var(--accent-rgb),.1);padding:.3rem .8rem;border-radius:20px}.homework-description{color:var(--text-secondary);margin:0 0 .75rem;line-height:1.6}.homework-due{font-size:.875rem;color:var(--text-muted);margin:0 0 1rem}.homework-status{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;font-size:.875rem}.status-badge{padding:.25rem .6rem;border-radius:12px;font-weight:500;font-size:.75rem;text-transform:capitalize}.status-draft{background:#9ca3af1a;color:#6b7280}.status-submitted{background:#3b82f61a;color:#3b82f6}.status-graded{background:#22c55e1a;color:#22c55e}.homework-score{font-weight:600;color:var(--text-primary)}.lesson-navigation{display:flex;justify-content:space-between;margin-top:3rem;padding-top:2rem;border-top:1px solid rgba(0,0,0,.06)}.lessons-loading,.lesson-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 1rem;text-align:center}.spinner{width:40px;height:40px;border:3px solid rgba(0,0,0,.1);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.lessons-empty{text-align:center;padding:4rem 2rem}.lessons-empty svg{color:var(--text-muted);margin-bottom:1rem}.lessons-empty h3{font-size:1.25rem;font-weight:600;margin:0 0 .5rem;color:var(--text-primary)}.lessons-empty p{color:var(--text-secondary);margin:0}.btn-primary,.btn-secondary{padding:.625rem 1.25rem;border-radius:8px;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s;border:none;text-decoration:none;display:inline-block}.btn-primary{background:linear-gradient(135deg,var(--accent),#059669);color:#fff}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(var(--accent-rgb),.3)}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid rgba(0,0,0,.08)}.btn-secondary:hover{background:#0000000d}[data-theme=dark] .lesson-card,[data-theme=dark] .homework-item{background:#ffffff08;border-color:#ffffff14}[data-theme=dark] .lesson-card-footer,[data-theme=dark] .lesson-navigation{border-top-color:#ffffff14}[data-theme=dark] .video-container{background:#1a1a1a}@media(max-width:768px){.course-lessons-page,.lesson-detail-page{padding:1.5rem 1rem}.course-header-content,.course-header-left{flex-direction:column}.lessons-grid{grid-template-columns:1fr}.lesson-header-content h1{font-size:1.75rem}.lesson-meta{flex-direction:column;gap:.75rem}}.mygroups-page{max-width:760px;margin:0 auto;padding:2.5rem 1.5rem}.mygroups-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.mygroups-header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .25rem;color:var(--text-primary)}.mygroups-subtitle{color:var(--text-secondary);font-size:.9rem;margin:0}.mygroups-count-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:20px;background:#16a34a14;color:var(--accent);font-size:.85rem;font-weight:600;border:1px solid rgba(22,163,74,.15)}.mygroups-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem}.mygroups-loading p{color:var(--text-secondary);font-size:.9rem}.mygroups-spinner{width:32px;height:32px;border:3px solid rgba(22,163,74,.15);border-top-color:var(--accent);border-radius:50%;animation:mgSpin .7s linear infinite}@keyframes mgSpin{to{transform:rotate(360deg)}}.mygroups-empty{text-align:center;padding:4rem 2rem;border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm)}.mygroups-empty-icon{display:inline-flex;padding:1.25rem;border-radius:50%;background:#16a34a14;color:var(--accent);margin-bottom:1.25rem}.mygroups-empty h3{font-size:1.15rem;font-weight:600;color:var(--text-primary);margin:0 0 .5rem}.mygroups-empty p{color:var(--text-secondary);font-size:.9rem;max-width:360px;margin:0 auto}.mygroups-list{display:flex;flex-direction:column;gap:.75rem}.mygroup-card{border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm);overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}.mygroup-card.expanded{border-color:#16a34a33;box-shadow:0 4px 16px #16a34a14}.mygroup-card-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:1.25rem 1.5rem;border:none;background:transparent;cursor:pointer;font-family:inherit;text-align:left;transition:background .15s ease}.mygroup-card-header:hover{background:#16a34a05}.mygroup-info{display:flex;align-items:center;gap:1rem}.mygroup-icon{width:42px;height:42px;border-radius:10px;background:linear-gradient(135deg,#16a34a1a,#05966914);display:flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0}.mygroup-info h3{font-size:1.05rem;font-weight:600;color:var(--text-primary);margin:0}.mygroup-desc{font-size:.8rem;color:var(--text-secondary);margin:.15rem 0 0}.mygroup-meta{display:flex;align-items:center;gap:.75rem}.mygroup-member-count,.mygroup-course-count{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--text-secondary);font-weight:500}.mygroup-chevron{color:var(--text-muted)}.mygroup-body{overflow:hidden}.mygroup-body-inner{padding:0 1.5rem 1.5rem;border-top:1px solid rgba(0,0,0,.05)}.mygroup-section{margin-top:1.25rem}.mygroup-section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.mygroup-section-title{display:flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .75rem}.section-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:#16a34a1a;color:var(--accent);font-size:.7rem;font-weight:700}.mygroup-search{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;border:1px solid rgba(0,0,0,.08);border-radius:var(--radius-sm);background:#00000005;transition:all .2s ease;margin-bottom:.75rem}.mygroup-search:focus-within{border-color:var(--accent);background:#16a34a05;box-shadow:0 0 0 3px #16a34a14}.mygroup-search svg{color:var(--text-muted);flex-shrink:0}.mygroup-search input{border:none;background:transparent;color:var(--text-primary);font-size:.85rem;font-family:inherit;outline:none;width:160px}.mygroup-search input::placeholder{color:var(--text-muted)}.mygroup-members-list{display:flex;flex-direction:column;gap:2px}.mygroup-member{display:flex;align-items:center;gap:.75rem;padding:.7rem .85rem;border-radius:var(--radius-sm);text-decoration:none;color:inherit;transition:background .15s ease}.mygroup-member:hover{background:#16a34a0a}.mygroup-member.instructor-member{background:#f59e0b0a;border:1px solid rgba(245,158,11,.1);border-radius:var(--radius-sm)}.mygroup-member.instructor-member:hover{background:#f59e0b14}.member-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#059669);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.member-avatar img{width:100%;height:100%;object-fit:cover}.member-info{flex:1;min-width:0}.member-name{display:block;font-size:.9rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-email{display:block;font-size:.78rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-role-badge{display:inline-flex;padding:.15rem .55rem;border-radius:12px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.member-you-badge{display:inline-flex;padding:.15rem .55rem;border-radius:12px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;background:#16a34a1a;color:var(--accent);border:1px solid rgba(22,163,74,.2);flex-shrink:0}.member-arrow{color:var(--text-muted);flex-shrink:0;transition:transform .15s ease}.mygroup-member:hover .member-arrow{transform:translate(2px);color:var(--accent)}.mygroup-no-students,.mygroup-no-results{font-size:.85rem;color:var(--text-muted);padding:.75rem 0;margin:0;text-align:center}.mygroup-courses-list{display:flex;flex-direction:column;gap:2px}.mygroup-course{display:flex;align-items:center;gap:.75rem;padding:.7rem .85rem;border-radius:var(--radius-sm);text-decoration:none;color:inherit;transition:background .15s ease}.mygroup-course:hover{background:#16a34a0a}.course-thumb{width:42px;height:42px;border-radius:8px;background:linear-gradient(135deg,#16a34a1a,#05966914);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;color:var(--accent)}.course-thumb img{width:100%;height:100%;object-fit:cover}.course-info{flex:1;min-width:0}.course-title{display:block;font-size:.9rem;font-weight:600;color:var(--text-primary)}.course-desc{display:block;font-size:.78rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:640px){.mygroups-page{padding:1.5rem 1rem}.mygroups-header{flex-direction:column;gap:.75rem}.mygroup-card-header{padding:1rem;flex-wrap:wrap;gap:.5rem}.mygroup-body-inner{padding:0 1rem 1rem}.mygroup-section-header{flex-direction:column;align-items:flex-start;gap:.5rem}.mygroup-search,.mygroup-search input{width:100%}}[data-theme=dark] .mygroups-empty,[data-theme=dark] .mygroup-card{background:#161616;border-color:#ffffff0f}[data-theme=dark] .mygroup-card.expanded{border-color:#16a34a40}[data-theme=dark] .mygroup-card-header:hover{background:#ffffff08}[data-theme=dark] .mygroup-body-inner{border-top-color:#ffffff0f}[data-theme=dark] .mygroup-search{border-color:#ffffff1a;background:#ffffff0a}[data-theme=dark] .mygroup-search:focus-within{background:#16a34a0f}[data-theme=dark] .mygroup-member:hover{background:#ffffff0a}[data-theme=dark] .mygroup-member.instructor-member{background:#f59e0b0f;border-color:#f59e0b1f}[data-theme=dark] .mygroup-member.instructor-member:hover{background:#f59e0b1a}[data-theme=dark] .mygroup-course:hover{background:#ffffff0a}[data-theme=dark] .mygroups-count-badge{background:#16a34a1f;border-color:#16a34a33}.member-profile-page{max-width:640px;margin:0 auto;padding:2.5rem 1.5rem}.member-profile-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem}.member-profile-loading p{color:var(--text-secondary);font-size:.9rem}.member-profile-spinner{width:32px;height:32px;border:3px solid rgba(22,163,74,.15);border-top-color:var(--accent);border-radius:50%;animation:mpSpin .7s linear infinite}@keyframes mpSpin{to{transform:rotate(360deg)}}.member-profile-error{text-align:center;padding:4rem 2rem;border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm)}.member-profile-error-icon{display:inline-flex;padding:1rem;border-radius:50%;background:#ef444414;color:#ef4444;margin-bottom:1rem}.member-profile-error h3{font-size:1.15rem;font-weight:600;color:var(--text-primary);margin:0 0 .5rem}.member-profile-error p{font-size:.9rem;color:var(--text-secondary);margin:0 0 1.5rem}.member-profile-back-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1.25rem;border:1px solid rgba(0,0,0,.1);border-radius:var(--radius-sm);background:#fff;color:var(--text-primary);font-size:.85rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s ease}.member-profile-back-btn:hover{border-color:var(--accent);color:var(--accent);background:#16a34a0a}.member-profile-nav{margin-bottom:1.5rem}.member-profile-back{display:inline-flex;align-items:center;gap:.4rem;color:var(--text-secondary);font-size:.85rem;font-weight:500;text-decoration:none;transition:color .15s ease}.member-profile-back:hover{color:var(--accent)}.member-profile-hero{display:flex;align-items:center;gap:1.25rem;padding:1.75rem;border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm);margin-bottom:1.25rem}.member-profile-hero-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#059669);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;box-shadow:0 4px 16px #16a34a40}.member-profile-hero-avatar img{width:100%;height:100%;object-fit:cover}.member-profile-hero-info h1{font-size:1.35rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);margin:0 0 .15rem;display:flex;align-items:center;gap:.5rem}.own-profile-tag{display:inline-flex;padding:.12rem .5rem;border-radius:12px;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;background:#16a34a1a;color:var(--accent);border:1px solid rgba(22,163,74,.2)}.member-profile-username{font-size:.875rem;color:var(--text-secondary);margin:0 0 .5rem}.member-profile-role{display:inline-flex;padding:.2rem .65rem;border-radius:20px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.member-profile-details{display:flex;flex-direction:column;gap:1rem}.member-profile-card{border-radius:var(--radius-lg);background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm);padding:1.5rem}.member-profile-card-header h3{display:flex;align-items:center;gap:.5rem;font-size:.95rem;font-weight:600;color:var(--text-primary);margin:0 0 1.25rem}.member-profile-card-header h3 svg{color:var(--accent)}.member-profile-fields{display:flex;flex-direction:column;gap:.85rem}.member-profile-field{display:flex;align-items:center;justify-content:space-between;padding:.6rem 0;border-bottom:1px solid rgba(0,0,0,.04)}.member-profile-field:last-child{border-bottom:none;padding-bottom:0}.field-label{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;color:var(--text-secondary)}.field-label svg{color:var(--text-muted)}.field-value{font-size:.9rem;font-weight:500;color:var(--text-primary)}.member-profile-bio{font-size:.9rem;color:var(--text-secondary);line-height:1.6;margin:0}.member-profile-groups{display:flex;flex-wrap:wrap;gap:.5rem}.member-profile-group-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .75rem;border-radius:20px;background:#16a34a14;color:var(--accent);font-size:.8rem;font-weight:600;border:1px solid rgba(22,163,74,.15)}@media(max-width:640px){.member-profile-page{padding:1.5rem 1rem}.member-profile-hero{flex-direction:column;text-align:center}.member-profile-hero-info h1{justify-content:center;flex-wrap:wrap}.member-profile-field{flex-direction:column;align-items:flex-start;gap:.25rem}}[data-theme=dark] .member-profile-error{background:#161616;border-color:#ffffff0f}[data-theme=dark] .member-profile-back-btn{border-color:#ffffff1a;background:#ffffff0d}[data-theme=dark] .member-profile-back-btn:hover{background:#16a34a14}[data-theme=dark] .member-profile-hero,[data-theme=dark] .member-profile-card{background:#161616;border-color:#ffffff0f}[data-theme=dark] .member-profile-field{border-bottom-color:#ffffff0a}[data-theme=dark] .member-profile-group-chip{background:#16a34a1f;border-color:#16a34a33}.billing-container{max-width:800px;margin:0 auto;padding:2.5rem 1.5rem}.billing-header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .25rem;color:var(--text-primary)}.billing-subtitle{color:var(--text-secondary);font-size:.9rem;margin:0 0 2rem}.subscription-card{background:#fff;border-radius:16px;padding:1.5rem;border:1px solid rgba(0,0,0,.06);box-shadow:0 1px 3px #0000000a;margin-bottom:2rem}.subscription-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.subscription-card-header h3{font-size:1.1rem;font-weight:600;margin:0;color:var(--text-primary)}.subscription-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.sub-detail{display:flex;flex-direction:column;gap:.2rem}.sub-detail-label{font-size:.75rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.sub-detail-value{font-size:.95rem;font-weight:600;color:var(--text-primary)}.plans-section h3{font-size:1.1rem;font-weight:600;margin:0 0 1rem;color:var(--text-primary)}.plans-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem;margin-bottom:2rem}.plan-card{background:#fff;border-radius:16px;padding:1.5rem;border:1px solid rgba(0,0,0,.06);box-shadow:0 1px 3px #0000000a;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s}.plan-card:hover{box-shadow:0 4px 16px #00000014}.plan-card-name{font-size:1.05rem;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.plan-card-desc{font-size:.82rem;color:var(--text-secondary);margin-bottom:1rem;flex:1}.plan-card-price{font-size:1.5rem;font-weight:700;color:#16a34a;margin-bottom:.25rem}.plan-card-duration{font-size:.78rem;color:var(--text-muted);margin-bottom:1rem}.plan-card-btn{width:100%;padding:.65rem 1rem;border:none;border-radius:10px;background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff;font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity .2s}.plan-card-btn:hover{opacity:.9}.plan-card-btn:disabled{opacity:.5;cursor:not-allowed}.payment-history{margin-top:2rem}.payment-history h3{font-size:1.1rem;font-weight:600;margin:0 0 1rem;color:var(--text-primary)}.payment-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border-radius:12px;overflow:hidden;border:1px solid rgba(0,0,0,.06);box-shadow:0 1px 3px #0000000a}.payment-table thead th{text-align:left;padding:.75rem 1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:#00000005;border-bottom:1px solid rgba(0,0,0,.06)}.payment-table tbody td{padding:.75rem 1rem;font-size:.85rem;color:var(--text-primary);border-bottom:1px solid rgba(0,0,0,.04)}.payment-table tbody tr:last-child td{border-bottom:none}.billing-empty{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.billing-empty-icon{font-size:3rem;margin-bottom:1rem}.billing-empty p{font-size:.95rem;margin:0}.billing-loading{display:flex;justify-content:center;padding:3rem}.billing-spinner{width:32px;height:32px;border:3px solid rgba(0,0,0,.08);border-top-color:var(--accent);border-radius:50%;animation:billing-spin .7s linear infinite}@keyframes billing-spin{to{transform:rotate(360deg)}}.billing-success{background:#16a34a14;border:1px solid rgba(22,163,74,.2);border-radius:12px;padding:1rem 1.25rem;margin-bottom:1.5rem;display:flex;align-items:center;gap:.75rem;color:#16a34a;font-size:.9rem;font-weight:500}[data-theme=dark] .subscription-card,[data-theme=dark] .plan-card,[data-theme=dark] .payment-table{background:var(--bg-secondary);border-color:#ffffff0f}[data-theme=dark] .payment-table thead th{background:#ffffff08;border-bottom-color:#ffffff0f}[data-theme=dark] .payment-table tbody td{border-bottom-color:#ffffff0a}.payments-container{max-width:900px;margin:0 auto;padding:2.5rem 1.5rem}.payments-header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .25rem;color:var(--text-primary)}.payments-subtitle{color:var(--text-secondary);font-size:.9rem;margin:0 0 2rem}.payments-tabs{display:flex;gap:.25rem;padding:.3rem;background:var(--bg-secondary);border-radius:12px;margin-bottom:1.5rem;border:1px solid rgba(0,0,0,.04)}.payments-tab{position:relative;display:flex;align-items:center;gap:.45rem;padding:.6rem 1rem;border:none;background:none;color:var(--text-muted);font-size:.82rem;font-weight:500;font-family:inherit;cursor:pointer;border-radius:9px;transition:color .2s;white-space:nowrap}.payments-tab:hover{color:var(--text-primary)}.payments-tab.active{color:var(--text-primary);font-weight:600}.payments-tab-indicator{position:absolute;inset:0;background:#fff;border-radius:9px;z-index:0;box-shadow:0 1px 3px #00000014}.payments-tab>*{position:relative;z-index:1}.payments-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;font-size:.7rem;font-weight:700;background:#16a34a1f;color:#16a34a}.section-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 1rem}.courses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1rem}.course-pay-card{background:#fff;border-radius:16px;border:1px solid rgba(0,0,0,.06);box-shadow:0 1px 3px #0000000a;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s}.course-pay-card:hover{box-shadow:0 6px 20px #00000014}.course-pay-logo{height:140px;background:linear-gradient(135deg,#f0fdf4,#e0f2fe);display:flex;align-items:center;justify-content:center;overflow:hidden}.course-pay-logo img{width:100%;height:100%;object-fit:cover}.course-pay-logo-placeholder{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;background:#16a34a1a;color:#16a34a}.course-pay-logo-placeholder.free{background:#3b82f61a;color:#3b82f6}.course-pay-card.free .course-pay-logo{background:linear-gradient(135deg,#eff6ff,#e0f2fe)}.course-pay-info{padding:1rem 1.25rem .5rem;flex:1}.course-pay-title{font-size:.95rem;font-weight:600;color:var(--text-primary);margin:0 0 .35rem}.course-pay-desc{font-size:.8rem;color:var(--text-secondary);margin:0;line-height:1.5}.course-pay-footer{padding:.75rem 1.25rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.course-pay-price{font-size:1.25rem;font-weight:700;color:#16a34a}.course-pay-price.free{color:#3b82f6;font-size:1rem}.course-free-badge{font-size:.75rem;color:var(--text-muted);font-style:italic}.course-pay-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.1rem;border:none;border-radius:10px;background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff;font-size:.82rem;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity .2s}.course-pay-btn:hover{opacity:.9}.course-pay-btn:disabled{opacity:.5;cursor:not-allowed}.btn-loading-inline{display:inline-flex;align-items:center;gap:.4rem}.btn-spinner-small{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:payments-spin .6s linear infinite}.purchases-list{display:flex;flex-direction:column;gap:.5rem}.purchase-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:#fff;border-radius:12px;border:1px solid rgba(0,0,0,.06);box-shadow:0 1px 3px #0000000a}.purchase-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:#16a34a1a;color:#16a34a;flex-shrink:0}.purchase-info{flex:1;display:flex;flex-direction:column;gap:.15rem}.purchase-title{font-size:.9rem;font-weight:600;color:var(--text-primary)}.purchase-date{font-size:.78rem;color:var(--text-muted)}.purchase-amount{font-size:.95rem;font-weight:700;color:#16a34a}.payments-table-wrap{background:#fff;border-radius:12px;overflow:hidden;border:1px solid rgba(0,0,0,.06);box-shadow:0 1px 3px #0000000a}.payments-table{width:100%;border-collapse:separate;border-spacing:0}.payments-table thead th{text-align:left;padding:.75rem 1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:#00000005;border-bottom:1px solid rgba(0,0,0,.06)}.payments-table tbody td{padding:.75rem 1rem;font-size:.85rem;color:var(--text-primary);border-bottom:1px solid rgba(0,0,0,.04)}.payments-table tbody tr:last-child td{border-bottom:none}.payments-empty{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.payments-empty-icon{margin-bottom:1rem;opacity:.4}.payments-empty p{font-size:.95rem;margin:0}.payments-loading{display:flex;justify-content:center;padding:3rem}.payments-spinner{width:32px;height:32px;border:3px solid rgba(0,0,0,.08);border-top-color:var(--accent);border-radius:50%;animation:payments-spin .7s linear infinite}@keyframes payments-spin{to{transform:rotate(360deg)}}.payments-success{background:#16a34a14;border:1px solid rgba(22,163,74,.2);border-radius:12px;padding:1rem 1.25rem;margin-bottom:1.5rem;display:flex;align-items:center;gap:.75rem;color:#16a34a;font-size:.9rem;font-weight:500}[data-theme=dark] .payments-tabs{border-color:#ffffff0f}[data-theme=dark] .payments-tab-indicator{background:var(--bg-tertiary);box-shadow:0 1px 3px #0000004d}[data-theme=dark] .course-pay-card,[data-theme=dark] .purchase-item,[data-theme=dark] .payments-table-wrap{background:var(--bg-secondary);border-color:#ffffff0f}[data-theme=dark] .course-pay-logo{background:linear-gradient(135deg,#16a34a14,#3b82f614)}[data-theme=dark] .course-pay-card.free .course-pay-logo{background:linear-gradient(135deg,#3b82f614,#6366f114)}[data-theme=dark] .payments-table thead th{background:#ffffff08;border-bottom-color:#ffffff0f}[data-theme=dark] .payments-table tbody td{border-bottom-color:#ffffff0a}@media(max-width:600px){.payments-container{padding:1.5rem 1rem}.courses-grid{grid-template-columns:1fr}.payments-tabs{overflow-x:auto}}.attendance-page{max-width:960px;margin:0 auto;padding:2.5rem 1.5rem}.attendance-header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .35rem;color:var(--text-primary)}.attendance-header p{color:var(--text-secondary);margin:0 0 1.5rem}.attendance-tabs{display:flex;gap:.35rem;padding:.3rem;border-radius:12px;background:var(--bg-secondary);border:1px solid rgba(0,0,0,.06);margin-bottom:1rem}.attendance-tab{border:none;border-radius:9px;padding:.55rem .9rem;font:inherit;font-size:.85rem;color:var(--text-muted);background:transparent;cursor:pointer}.attendance-tab.active{color:var(--text-primary);background:#fff;box-shadow:0 1px 3px #00000014}.card{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1rem}.attendance-form h3,.attendance-edit h3,.attendance-overview h3,.card h3{margin:0 0 .8rem;font-size:1rem}.attendance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.attendance-grid label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:var(--text-secondary)}.attendance-grid select,.attendance-grid input,.attendance-grid textarea,.attendance-record-row select{border:1px solid rgba(0,0,0,.12);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);padding:.5rem .65rem;font:inherit;font-size:.84rem}.attendance-note{grid-column:1 / -1}.attendance-note textarea{min-height:70px;resize:vertical}.attendance-checkbox{display:flex;align-items:center;gap:.5rem;margin:.8rem 0;font-size:.84rem;color:var(--text-secondary)}.attendance-records{border-top:1px solid rgba(0,0,0,.08);margin-top:.8rem;padding-top:.8rem}.attendance-records h4{margin:0 0 .6rem;font-size:.88rem;color:var(--text-primary)}.attendance-record-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.attendance-record-row span{font-size:.85rem;color:var(--text-primary)}.attendance-button{margin-top:.8rem;border:none;border-radius:9px;padding:.6rem 1rem;font:inherit;font-size:.84rem;font-weight:600;background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff;cursor:pointer}.attendance-button:disabled{opacity:.6;cursor:not-allowed}.attendance-session-list{display:grid;gap:.8rem;margin-top:1rem}.attendance-session-top{display:flex;justify-content:space-between;gap:.75rem}.attendance-session-top h4{margin:0;font-size:.95rem}.attendance-session-top p{margin:.2rem 0 0;color:var(--text-secondary);font-size:.82rem}.attendance-session-actions{display:flex;gap:.5rem}.attendance-link-button{border:none;background:transparent;color:var(--accent);font:inherit;font-size:.82rem;cursor:pointer}.attendance-link-button.danger{color:var(--danger)}.attendance-note-text{margin:.6rem 0;color:var(--text-secondary);font-size:.85rem}.attendance-summary{display:flex;flex-wrap:wrap;gap:.45rem}.attendance-summary-item{display:inline-flex;align-items:center;gap:.4rem}.attendance-status{display:inline-flex;align-items:center;border:1px solid;border-radius:999px;font-size:.75rem;font-weight:600;padding:.18rem .55rem;text-transform:capitalize}.attendance-edit{margin-top:1rem}.attendance-edit-header{display:flex;justify-content:space-between;gap:.75rem;align-items:center}.attendance-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:.9rem}.attendance-stats .card span{display:block;color:var(--text-muted);font-size:.78rem}.attendance-stats .card strong{font-size:1.35rem;color:var(--text-primary)}.attendance-overview{display:grid;gap:.9rem}.attendance-table{display:grid;gap:.45rem}.attendance-table-head,.attendance-table-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.75rem;align-items:center}.attendance-table-head{color:var(--text-muted);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.attendance-table-row{border-top:1px solid rgba(0,0,0,.06);padding-top:.45rem;color:var(--text-primary);font-size:.84rem}.attendance-loading{padding:3rem 0;text-align:center;color:var(--text-secondary)}.attendance-filters{margin-bottom:1rem}.attendance-date-group{margin-bottom:1.5rem}.attendance-date-header{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0 0 .8rem;padding-bottom:.5rem;border-bottom:2px solid rgba(0,0,0,.08)}[data-theme=dark] .attendance-date-header{border-bottom-color:#ffffff14}@media(max-width:780px){.attendance-grid,.attendance-stats{grid-template-columns:1fr}}[data-theme=dark] .card,[data-theme=dark] .attendance-tab.active{background:#1e1e1e;border-color:#333}[data-theme=dark] .attendance-table-row,[data-theme=dark] .attendance-records{border-color:#ffffff14}.messages-page{max-width:1280px;margin:0 auto;padding:2rem 1.5rem}.messages-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem}.messages-header h1{margin:0;font-size:1.7rem;color:var(--text-primary)}.messages-header p{margin:.2rem 0 0;color:var(--text-secondary);font-size:.88rem}.messages-socket{border-radius:999px;padding:.3rem .75rem;font-size:.78rem;font-weight:600;border:1px solid;display:flex;align-items:center;gap:.4rem}.messages-socket:before{content:"";width:7px;height:7px;border-radius:50%;display:inline-block}.messages-socket.connected{color:var(--success);background:#16a34a1a;border-color:#16a34a4d}.messages-socket.connected:before{background:var(--success);box-shadow:0 0 6px #16a34a80}.messages-socket.disconnected,.messages-socket.error{color:var(--danger);background:#ef444414;border-color:#ef44444d}.messages-socket.disconnected:before,.messages-socket.error:before{background:var(--danger)}.messages-layout{display:grid;grid-template-columns:300px 1fr;gap:1rem;height:calc(100vh - 180px);min-height:480px}.messages-sidebar,.messages-chat{background:var(--bg-primary);border:1px solid var(--border-glass);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.messages-sidebar{display:flex;flex-direction:column;overflow:hidden}.messages-tabs{display:flex;gap:.3rem;background:var(--bg-secondary);border-radius:10px;padding:.3rem;margin:.75rem .75rem 0;flex-shrink:0}.messages-tab{flex:1;border:none;border-radius:8px;padding:.5rem .75rem;background:transparent;color:var(--text-muted);font-size:.84rem;font-weight:500;cursor:pointer;transition:all .2s ease}.messages-tab:hover{color:var(--text-secondary)}.messages-tab.active{background:var(--bg-primary);color:var(--text-primary);font-weight:600;box-shadow:var(--shadow-sm)}.messages-search-box{padding:.6rem .75rem 0;flex-shrink:0}.messages-search-box input{width:100%;border:1px solid var(--border-glass);border-radius:8px;padding:.5rem .7rem;background:var(--bg-secondary);color:var(--text-primary);font-size:.84rem;transition:border-color .2s ease,box-shadow .2s ease;outline:none}.messages-search-box input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.messages-section-label{color:var(--text-muted);font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.6rem .85rem .25rem;flex-shrink:0}.messages-sidebar-scroll{flex:1;overflow-y:auto;padding:0 .4rem .4rem}.messages-list{display:flex;flex-direction:column;gap:3px;padding:0 .4rem .4rem}.messages-list.group-only{flex:1;overflow-y:auto;padding:.4rem}.messages-item{text-align:left;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);padding:.55rem .6rem;cursor:pointer;display:flex;align-items:center;gap:.6rem;position:relative;transition:all .15s ease}.messages-item:hover{background:var(--bg-secondary);border-color:var(--border-glass)}.messages-item.active{background:var(--accent-glow);border-color:#16a34a40}.messages-item-content{flex:1;display:grid;gap:.1rem;min-width:0}.messages-item-content span{font-size:.84rem;font-weight:600}.messages-item-content small{font-size:.75rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.messages-item>span{font-size:.84rem;font-weight:500}.messages-item>small{font-size:.75rem;color:var(--text-muted);margin-left:auto}.messages-unread-badge{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:.68rem;font-weight:700;padding:.12rem .4rem;border-radius:999px;min-width:18px;text-align:center;box-shadow:0 2px 6px #ef444459;flex-shrink:0;animation:pulse-badge 2s infinite}@keyframes pulse-badge{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.messages-chat{display:flex;flex-direction:column;overflow:hidden}.messages-chat-header{border-bottom:1px solid var(--border-glass);padding:.85rem 1.1rem;font-size:.92rem;font-weight:600;color:var(--text-primary);flex-shrink:0;display:flex;align-items:center;gap:.5rem}.messages-thread{flex:1;padding:1rem 1.1rem;overflow-y:auto;background:var(--bg-secondary);display:flex;flex-direction:column}.messages-empty{color:var(--text-muted);font-size:.88rem;text-align:center;padding:3rem 1rem;margin:auto 0;display:flex;flex-direction:column;align-items:center;gap:.5rem}.messages-empty:before{content:"";display:block;width:48px;height:48px;border-radius:50%;background:var(--accent-glow);border:2px dashed rgba(22,163,74,.25)}.bubble-row{display:flex;margin-bottom:.5rem}.bubble-row:last-of-type{margin-bottom:0}.bubble-row.mine{justify-content:flex-end}.bubble{max-width:min(78%,560px);background:var(--bg-primary);border:1px solid var(--border-glass);border-radius:14px 14px 14px 4px;padding:.6rem .8rem;box-shadow:var(--shadow-sm)}.bubble-row.mine .bubble{background:var(--accent-glow);border-color:#16a34a33;border-radius:14px 14px 4px}.bubble-meta{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;margin-bottom:.15rem}.bubble-meta strong{font-size:.76rem;color:var(--text-primary)}.bubble-meta span{font-size:.68rem;color:var(--text-muted);white-space:nowrap}.bubble p{margin:0;white-space:pre-wrap;word-break:break-word;color:var(--text-primary);font-size:.86rem;line-height:1.5}.messages-compose{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border-top:1px solid var(--border-glass);flex-shrink:0;background:var(--bg-primary)}.messages-compose input{flex:1;border:1px solid var(--border-glass);border-radius:10px;padding:.6rem .85rem;background:var(--bg-secondary);color:var(--text-primary);font-size:.86rem;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.messages-compose input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.messages-compose input:disabled{opacity:.5;cursor:not-allowed}.messages-compose button{border:none;border-radius:10px;padding:.6rem 1.15rem;background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff;font-size:.86rem;font-weight:600;cursor:pointer;transition:opacity .15s ease,transform .1s ease;flex-shrink:0}.messages-compose button:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.messages-compose button:active:not(:disabled){transform:translateY(0)}.messages-compose button:disabled{opacity:.5;cursor:not-allowed}.messages-loading{text-align:center;color:var(--text-secondary);padding:3rem 0;font-size:.9rem}@media(max-width:980px){.messages-layout{grid-template-columns:1fr;height:auto;min-height:unset}.messages-sidebar{max-height:380px}.messages-chat{min-height:420px}}@media(max-width:580px){.messages-page{padding:1rem .75rem}.messages-header h1{font-size:1.4rem}.bubble{max-width:90%}}[data-theme=dark] .messages-sidebar,[data-theme=dark] .messages-chat{background:var(--bg-primary);border-color:#ffffff0f}[data-theme=dark] .messages-tab.active{background:#ffffff14}[data-theme=dark] .messages-thread{background:var(--bg-secondary)}[data-theme=dark] .messages-search-box input,[data-theme=dark] .messages-compose input{background:var(--bg-secondary);border-color:#ffffff14}[data-theme=dark] .messages-chat-header,[data-theme=dark] .messages-compose{border-color:#ffffff0f;background:var(--bg-primary)}[data-theme=dark] .bubble{background:#ffffff0f;border-color:#ffffff14}[data-theme=dark] .bubble-row.mine .bubble{background:#16a34a26;border-color:#16a34a40}[data-theme=dark] .messages-item:hover{background:#ffffff0a;border-color:#ffffff0f}[data-theme=dark] .messages-item.active{background:#16a34a1f;border-color:#16a34a40}[data-theme=dark] .messages-empty:before{background:#16a34a1a;border-color:#16a34a33}
