:root{
  --glass-bg:rgba(255,255,255,.68);
  --glass-bg-strong:rgba(255,255,255,.84);
  --glass-border:rgba(255,255,255,.78);
  --glass-shadow:0 18px 45px rgba(28,45,91,.10);
  --glass-blur:18px;
}
body{
  background:
    radial-gradient(circle at 7% 8%,rgba(53,82,164,.14),transparent 27rem),
    radial-gradient(circle at 88% 14%,rgba(139,153,95,.14),transparent 25rem),
    radial-gradient(circle at 72% 92%,rgba(237,48,55,.08),transparent 24rem),
    linear-gradient(145deg,#eef2f8 0%,#f8f9fb 45%,#edf1e7 100%);
  background-attachment:fixed;
}
.ambient-bg{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:-1}
.ambient-bg i{position:absolute;width:25rem;height:25rem;border-radius:50%;filter:blur(8px);opacity:.18;animation:ambientFloat 18s ease-in-out infinite}
.ambient-bg i:nth-child(1){background:#3552a4;left:-9rem;top:8rem}
.ambient-bg i:nth-child(2){background:#8b995f;right:-8rem;top:22%;animation-delay:-6s}
.ambient-bg i:nth-child(3){background:#ed3037;left:45%;bottom:-18rem;animation-delay:-12s}
.sidebar,.topbar,.panel,.metric,.mini-metrics,.course-card,.toolbar,.empty-state,.eval-card{
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  box-shadow:var(--glass-shadow);
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(145%);
  backdrop-filter:blur(var(--glass-blur)) saturate(145%);
}
.sidebar{background:rgba(255,255,255,.76);box-shadow:12px 0 38px rgba(28,45,91,.07)}
.topbar{background:rgba(255,255,255,.60);box-shadow:0 8px 30px rgba(28,45,91,.06)}
.workspace,.sidebar-help,.search-field,.search{
  background:rgba(255,255,255,.42);
  border-color:rgba(255,255,255,.72);
  backdrop-filter:blur(12px);
}
.panel,.metric,.course-card,.mini-metrics,.empty-state{border-radius:16px}
.metric,.course-card,.eval-card,.media-card{
  position:relative;
  overflow:hidden;
  transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease,border-color .28s ease;
}
.metric:before,.course-card:before,.eval-card:before{
  content:"";position:absolute;inset:0 auto auto 0;width:100%;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.95),transparent);
}
.metric:hover,.course-card:hover,.eval-card:hover,.media-card:hover{
  transform:translateY(-5px);
  box-shadow:0 24px 55px rgba(28,45,91,.16);
  border-color:rgba(255,255,255,.98);
}
.btn{
  border-radius:10px;
  transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease!important;
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0) scale(.98)}
.btn.primary,.btn-primary{
  background:linear-gradient(135deg,#3552a4,#263f88);
  border-color:rgba(255,255,255,.18);
  box-shadow:0 9px 22px rgba(53,82,164,.25);
}
.btn.secondary,.btn-outline-secondary{background:rgba(255,255,255,.55);backdrop-filter:blur(9px)}
nav a{transition:transform .2s ease,background-color .2s ease,color .2s ease}
nav a:hover{transform:translateX(4px)}
.avatar{box-shadow:inset 0 1px 0 rgba(255,255,255,.75),0 5px 13px rgba(53,82,164,.14)}
.progress{background:rgba(33,45,77,.09);box-shadow:inset 0 1px 3px rgba(24,32,54,.09)}
.progress i{position:relative;overflow:hidden}
.progress i:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);transform:translateX(-100%);animation:progressShine 2.8s ease-in-out infinite}
table{border-collapse:separate;border-spacing:0}
th{background:rgba(241,244,249,.66);backdrop-filter:blur(8px)}
td,th{border-color:rgba(218,223,234,.66)}
tbody tr{transition:background-color .18s ease,transform .18s ease}
tbody tr:hover{background:rgba(255,255,255,.55)}
input,select,textarea{
  background-color:rgba(255,255,255,.62)!important;
  border-color:rgba(205,212,226,.72)!important;
  backdrop-filter:blur(8px);
}
input:focus,select:focus,textarea:focus{
  background-color:rgba(255,255,255,.88)!important;
  border-color:#5972bc!important;
  box-shadow:0 0 0 .22rem rgba(53,82,164,.12)!important;
}
.modal-backdrop{background:rgba(22,32,63,.36);backdrop-filter:blur(9px);opacity:1!important}
.modal-backdrop.open{animation:glassFadeIn .22s ease both}
.modal{
  display:block;
  position:relative;
  inset:auto;
  height:auto;
  overflow:visible;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(255,255,255,.9);
  box-shadow:0 35px 90px rgba(22,32,63,.28);
  backdrop-filter:blur(25px) saturate(155%);
}
.modal-backdrop.open .modal{animation:glassModalIn .32s cubic-bezier(.2,.85,.25,1.1) both}
.user-actions{display:flex;align-items:center;gap:10px}.user-actions form{margin:0}.user-actions .link-button{padding:4px 0}.user-actions .link-button:hover{text-decoration:underline}
.flash{backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.35);animation:toastIn .35s ease both}
.course-cover:after{content:"";position:absolute;inset:-40% -30%;background:linear-gradient(110deg,transparent 36%,rgba(255,255,255,.22) 48%,transparent 60%);transform:translateX(-70%);transition:transform .8s ease}
.course-card:hover .course-cover:after{transform:translateX(65%)}
.page>*{animation:contentRise .45s ease both}.page>*:nth-child(2){animation-delay:.05s}.page>*:nth-child(3){animation-delay:.1s}.page>*:nth-child(4){animation-delay:.15s}
@keyframes glassFadeIn{from{opacity:0}to{opacity:1}}
@keyframes glassModalIn{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
@keyframes contentRise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes toastIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes progressShine{0%,55%{transform:translateX(-100%)}85%,100%{transform:translateX(100%)}}
@keyframes ambientFloat{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(2rem,-2rem,0) scale(1.08)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
@media(max-width:760px){:root{--glass-blur:12px}.sidebar{background:rgba(255,255,255,.9)}.ambient-bg i{width:16rem;height:16rem}}
.profile-wrap{position:relative}.profile-trigger{border:0;background:transparent;display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:12px;color:var(--ink);transition:background .2s ease,transform .2s ease}.profile-trigger:hover,.profile-wrap.open .profile-trigger{background:rgba(255,255,255,.62);transform:translateY(-1px)}.profile-trigger .user{text-align:left;min-width:92px}.profile-trigger .user strong{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chevron{transition:transform .2s ease}.profile-wrap.open .chevron{transform:rotate(180deg)}
.profile-menu{display:none;position:absolute;right:0;top:calc(100% + 10px);width:265px;padding:10px;background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.95);border-radius:15px;box-shadow:0 24px 55px rgba(22,32,63,.2);backdrop-filter:blur(24px) saturate(150%);z-index:20}.profile-wrap.open .profile-menu{display:block;animation:profileMenuIn .22s cubic-bezier(.2,.85,.25,1.05)}.profile-menu-head{display:flex;gap:11px;align-items:center;padding:9px 8px 14px;border-bottom:1px solid rgba(215,220,230,.7);margin-bottom:7px}.profile-menu-head>div{min-width:0;display:flex;flex-direction:column}.profile-menu-head strong{font-size:12px}.profile-menu-head small{font-size:9px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-menu a,.profile-menu button{display:flex;width:100%;gap:9px;align-items:center;padding:10px;border:0;border-radius:8px;background:transparent;text-decoration:none;color:#4f586e;font-size:11px;font-weight:600;text-align:left}.profile-menu a:hover{background:rgba(53,82,164,.08);color:var(--blue)}.profile-menu form{margin:0;border-top:1px solid rgba(215,220,230,.7);padding-top:7px}.profile-menu form button{color:var(--red);cursor:pointer}.profile-menu form button:hover{background:rgba(237,48,55,.08)}
.logout-page{min-height:100vh;display:grid;place-items:center;margin:0}.logout-card{width:min(440px,90vw);margin:0!important;padding:38px;text-align:center;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.92);border-radius:22px;box-shadow:0 28px 80px rgba(22,32,63,.18);backdrop-filter:blur(25px) saturate(150%);animation:glassModalIn .4s ease both}.logout-card>img{width:270px;max-width:100%;margin-bottom:28px}.logout-card .logout-icon{width:52px;height:52px;margin:0 auto 15px;display:grid;place-items:center;border-radius:50%;background:#eef1e5;color:var(--olive);font-size:24px;font-weight:800}.logout-card h1{font-size:25px}.logout-card p{color:var(--muted);margin:10px 0 22px}.logout-card .btn{width:100%}.logout-card>small{display:block;color:var(--muted);margin-top:16px}
@keyframes profileMenuIn{from{opacity:0;transform:translateY(-7px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:680px){.profile-trigger .user,.profile-trigger .chevron{display:none}.profile-menu{right:-4px}}
.brand-row{position:relative;justify-content:center;padding:0 5px}.brand-row .brand-logo{flex:0 1 155px;justify-content:center}.brand-logo img{object-position:center center}.brand-row .sidebar-toggle{position:absolute;right:-4px;top:50%;transform:translateY(-50%)}.brand-row .sidebar-toggle:hover{transform:translateY(-50%) scale(1.06)}
.nav-group{margin-top:12px}.nav-group-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border:0;background:transparent;color:#959bad;font-size:10px;letter-spacing:1.2px;font-weight:800;text-align:left}.nav-group-toggle i{font-style:normal;font-size:13px;color:var(--blue);transition:transform .25s ease}.nav-group-toggle:hover{color:var(--blue)}.nav-group-content{display:flex;flex-direction:column;gap:3px;max-height:190px;opacity:1;overflow:hidden;transition:max-height .32s cubic-bezier(.2,.8,.2,1),opacity .22s ease,transform .32s ease;transform-origin:top}.nav-group.closed .nav-group-content{max-height:0;opacity:0;transform:translateY(-6px)}.nav-group.closed .nav-group-toggle i{transform:rotate(180deg)}
.sidebar.collapsed .brand-row{padding:0}.sidebar.collapsed .brand-logo{flex-basis:54px}.sidebar.collapsed .sidebar-toggle{position:static;transform:none}.sidebar.collapsed .sidebar-toggle:hover{transform:scale(1.06)}.sidebar.collapsed .nav-group{margin-top:3px}.sidebar.collapsed .nav-group-toggle{display:none}.sidebar.collapsed .nav-group-content{max-height:190px!important;opacity:1!important;transform:none!important}
@media(max-width:1050px){.brand-row .sidebar-toggle{display:none}.sidebar.collapsed .nav-group-toggle{display:flex}.sidebar.collapsed .nav-group-content{max-height:190px}.sidebar.collapsed .brand-logo{flex-basis:155px}}
.sidebar,main{transition:width .28s cubic-bezier(.2,.8,.2,1),margin-left .28s cubic-bezier(.2,.8,.2,1),transform .28s ease}
.brand-row{display:flex;align-items:center;gap:7px;margin-bottom:20px}.brand-row .brand{min-width:0;flex:1;padding:0;gap:8px}.brand-symbol{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:linear-gradient(145deg,var(--blue),#263f88);color:#fff;font:italic 800 20px Manrope;box-shadow:0 8px 18px rgba(53,82,164,.22)}.brand-title{font:800 18px Manrope;color:var(--ink);white-space:nowrap}.sidebar-toggle{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border:1px solid rgba(255,255,255,.9);border-radius:9px;background:rgba(255,255,255,.58);color:var(--blue);font-size:20px;line-height:1;box-shadow:0 5px 14px rgba(28,45,91,.09);transition:transform .2s ease,background .2s ease}.sidebar-toggle:hover{background:#fff;transform:scale(1.06)}
.brand-logo{height:70px;display:flex!important;align-items:center}.brand-logo img{width:100%;height:68px;object-fit:contain;object-position:left center;filter:drop-shadow(0 5px 9px rgba(28,45,91,.10))}
.sidebar.collapsed{width:82px;padding-left:13px;padding-right:13px}.sidebar.collapsed .brand-title,.sidebar.collapsed .workspace,.sidebar.collapsed nav p,.sidebar.collapsed .sidebar-help div,.sidebar.collapsed .sidebar-help b{display:none}.sidebar.collapsed .brand-row{flex-direction:column;gap:12px}.sidebar.collapsed .brand{justify-content:center}.sidebar.collapsed nav a{font-size:0;justify-content:center;padding-left:8px;padding-right:8px;border-left-width:0}.sidebar.collapsed nav a i{font-size:18px}.sidebar.collapsed .sidebar-help{justify-content:center;padding-left:0;padding-right:0}.sidebar-collapsed main{margin-left:82px}
.sidebar.collapsed .brand-logo{width:54px;height:54px;overflow:hidden}.sidebar.collapsed .brand-logo img{width:78px;height:54px;max-width:none;object-fit:contain;object-position:center top}
.app-footer{margin:0 36px;padding:18px 0 25px;border-top:1px solid rgba(255,255,255,.7);text-align:center;color:var(--muted);font-size:10px}.app-footer a,.logout-card footer a{color:var(--blue);font-weight:700;text-decoration:none}.app-footer a:hover,.logout-card footer a:hover{text-decoration:underline}
.logout-brand{display:flex;justify-content:center;align-items:center;gap:9px;font:800 23px Manrope;color:var(--ink);margin-bottom:28px}.logout-brand span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,var(--blue),#263f88);color:#fff;font-style:italic}.logout-card footer{margin-top:24px;padding-top:17px;border-top:1px solid rgba(215,220,230,.7);color:var(--muted);font-size:10px}
.logout-logo{display:block;width:290px!important;height:180px;object-fit:contain;margin:0 auto 20px!important;filter:drop-shadow(0 8px 15px rgba(28,45,91,.12))}
.logout-actions{display:flex;flex-direction:column;gap:10px}.logout-actions .btn{width:100%}.logout-actions .secondary{background:rgba(255,255,255,.7);border-color:rgba(53,82,164,.2);color:var(--blue)}
.chart-period{border:1px solid var(--line);border-radius:7px;padding:7px 10px;background:rgba(255,255,255,.55);color:#555e73;font-size:10px}.chart-panel .x-labels{bottom:2px;text-align:center}.chart-panel .x-labels b{color:var(--blue);font-size:9px}
.group-user-option[hidden],.group-users-empty[hidden]{display:none!important}.group-users-empty{grid-column:1/-1;margin:10px 0;padding:18px;text-align:center;color:var(--muted);font-size:10px}.group-selection-head b{color:var(--blue)}
.group-modal{width:min(650px,94vw)}.group-member-tools{display:grid;grid-template-columns:1fr 1fr;gap:10px}.group-selection-head{display:flex;align-items:center;justify-content:space-between;padding:9px 11px;border-radius:9px;background:rgba(53,82,164,.07);font-size:10px}.group-selection-head label{flex-direction:row!important;align-items:center;gap:7px!important}.group-selection-head input{width:auto!important}.group-selection-head span{color:var(--blue);font-weight:700}.group-user-checklist{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-height:270px;overflow:auto;padding:3px}.group-user-option{display:flex!important;flex-direction:row!important;align-items:center;gap:10px!important;padding:10px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.5);cursor:pointer}.group-user-option:hover{border-color:rgba(53,82,164,.3)}.group-user-option:has(input:checked){border-color:var(--blue);background:rgba(53,82,164,.08)}.group-user-option input{width:auto!important;flex:0 0 auto}.group-user-option>span{display:flex;flex-direction:column;gap:3px;min-width:0}.group-user-option strong{font-size:10px}.group-user-option small{font-size:8px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:600px){.group-member-tools,.group-user-checklist{grid-template-columns:1fr}}
.login-divider{display:flex;align-items:center;gap:10px;margin:5px 0;color:var(--muted);font-size:10px}.login-divider:before,.login-divider:after{content:"";height:1px;background:rgba(120,128,148,.22);flex:1}.login-divider span{white-space:nowrap}.ad-login-form{display:flex;flex-direction:column;gap:10px;text-align:left}.ad-login-form label{display:flex;flex-direction:column;gap:5px;color:var(--ink);font-size:10px;font-weight:700}.ad-login-form input{width:100%;border:1px solid rgba(53,82,164,.18);border-radius:9px;background:rgba(255,255,255,.7);padding:10px 12px;outline:none;color:var(--ink)}.ad-login-form input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(53,82,164,.1)}.login-error{margin:0 0 14px;padding:10px 12px;border:1px solid rgba(239,85,72,.22);border-radius:9px;background:rgba(255,235,232,.72);color:#b43b32;font-size:10px}
@media(max-width:1050px){.sidebar-collapsed main{margin-left:0}.sidebar.collapsed{width:242px;padding:26px 18px}.sidebar.collapsed .brand-title,.sidebar.collapsed .workspace,.sidebar.collapsed nav p,.sidebar.collapsed .sidebar-help div,.sidebar.collapsed .sidebar-help b{display:initial}.sidebar.collapsed .brand-row{flex-direction:row}.sidebar.collapsed nav a{font-size:14px;justify-content:flex-start;padding:10px 12px}.sidebar.collapsed .sidebar-help{justify-content:flex-start}.sidebar-toggle{display:none}}
