.admin-tools-dropdown{position:relative;display:none;z-index:210;isolation:isolate}
.admin-tools-btn{overflow:visible}
.admin-tools-indicator{position:absolute;right:7px;top:7px;width:6px;height:6px;border-radius:50%;background:var(--teal-bright);box-shadow:0 0 0 3px var(--bg-panel),0 0 12px rgba(96,165,250,.7);opacity:0;transform:scale(.5);transition:opacity .5s var(--ease),transform .65s var(--ease)}
.admin-tools-indicator.show{opacity:1;transform:scale(1)}
.admin-tools-menu{position:fixed;top:74px;left:auto;right:8px;width:min(292px,calc(100vw - 1rem));padding:.65rem;border:1px solid var(--line);border-radius:22px;background:color-mix(in srgb,var(--bg-panel) 92%,transparent);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 28px 80px -34px rgba(0,0,0,.8),0 10px 30px -20px rgba(37,99,235,.5);opacity:0;visibility:hidden;transform:translate3d(0,-10px,0) scale(.96);transform-origin:top right;transition:opacity .42s var(--ease),visibility .42s var(--ease),transform .58s var(--ease);max-width:calc(100vw - 1rem);max-height:calc(100vh - 7rem);overflow-y:auto;overscroll-behavior:contain}
.admin-tools-dropdown.open .admin-tools-menu{opacity:1;visibility:visible;transform:translate3d(0,0,0) scale(1)}
.admin-tools-menu-head{display:flex;align-items:center;justify-content:space-between;padding:.45rem .5rem .65rem;border-bottom:1px solid var(--line-soft);margin-bottom:.4rem}
.admin-tools-menu-head div{display:flex;flex-direction:column;gap:.12rem}
.admin-tools-menu-head strong{font-size:.78rem}
.admin-tools-menu-head span{font-size:.59rem;color:var(--text-dim)}
.admin-tools-close{width:30px;height:30px;border:0;border-radius:50%;background:var(--bg-input);color:var(--text-dim);cursor:pointer;display:grid;place-items:center;transition:transform .5s var(--ease),background .35s ease,color .35s ease}
.admin-tools-close:hover{transform:rotate(90deg) scale(1.08);background:var(--teal-dim);color:var(--teal-bright)}
.admin-tools-menu-list{display:grid;gap:.28rem}
.admin-tools-item{position:relative;display:flex;align-items:center;gap:.65rem;width:100%;padding:.52rem;border:1px solid transparent;border-radius:15px;background:transparent;color:var(--text);text-align:left;font:inherit;cursor:pointer;overflow:hidden;transition:transform .55s var(--ease),background-color .4s var(--ease),border-color .4s var(--ease),box-shadow .55s var(--ease)}
[dir="rtl"] .admin-tools-item{text-align:right}
.admin-tools-item::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(96,165,250,.13),transparent 70%);opacity:0;transform:translate3d(-12%,0,0);transition:opacity .5s var(--ease),transform .7s var(--ease);pointer-events:none}
.admin-tools-item:hover{transform:translate3d(3px,-1px,0);background:var(--teal-dim);border-color:var(--line);box-shadow:0 12px 28px -22px rgba(37,99,235,.8)}
.admin-tools-item:hover::before,.admin-tools-item.active::before{opacity:1;transform:translate3d(0,0,0)}
.admin-tools-item.active{background:var(--teal-dim);border-color:var(--teal-line)}
.admin-tools-item-icon{position:relative;z-index:1;width:36px;height:36px;display:grid;place-items:center;flex:0 0 36px;border-radius:11px;background:var(--aqua-dim);color:var(--aqua-bright);font-size:.95rem;transition:transform .7s var(--ease),background .45s ease,color .45s ease,box-shadow .7s var(--ease)}
.admin-tools-item:hover .admin-tools-item-icon{transform:translate3d(0,-2px,0) scale(1.06) rotate(-3deg)}
.admin-tools-item.active .admin-tools-item-icon{background:linear-gradient(135deg,#2563eb,#60a5fa);color:#05080c;box-shadow:0 10px 24px -12px rgba(37,99,235,.85)}
.admin-tools-item>span:last-child{position:relative;z-index:1;display:flex;flex-direction:column;min-width:0;gap:.08rem}
.admin-tools-item strong{font-size:.72rem;font-weight:750}
.admin-tools-item small{font-size:.57rem;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-tools-badge{position:absolute;right:-5px;top:-5px;min-width:16px;padding:1px 4px;border-radius:999px;background:var(--danger);color:#fff;font-size:.52rem;text-align:center;box-shadow:0 4px 12px -5px rgba(229,62,62,.8)}
[dir="rtl"] .admin-tools-badge{right:auto;left:-5px}
.admin-tools-menu{width:min(292px,calc(100vw - 1rem));max-width:calc(100vw - 1rem);padding:.48rem;border-radius:18px}
.admin-tools-menu-head{padding:.3rem .4rem .48rem;margin-bottom:.3rem}
.admin-tools-menu-head strong{font-size:.72rem}
.admin-tools-menu-head span{font-size:.54rem}
.admin-tools-menu-list{gap:.2rem}
.admin-tools-item{min-height:0;padding:.42rem .44rem;gap:.55rem;border-radius:13px}
.admin-tools-item-icon{width:32px;height:32px;flex-basis:32px;border-radius:10px;font-size:.88rem}
.admin-tools-item strong{font-size:.68rem}
.admin-tools-item small{font-size:.53rem}
.admin-tools-close{width:28px;height:28px}
.admin-tools-menu::-webkit-scrollbar{width:5px}
.user-tools-dropdown{position:relative;display:none;z-index:260;isolation:isolate}
.user-tools-menu{position:fixed;width:min(310px,calc(100vw - 1rem));padding:.65rem;border:1px solid var(--line);border-radius:22px;background:color-mix(in srgb,var(--bg-panel) 94%,transparent);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);box-shadow:0 28px 80px -34px rgba(0,0,0,.8),0 10px 30px -20px rgba(37,99,235,.5);opacity:0;visibility:hidden;transform:translate3d(0,-10px,0) scale(.96);transform-origin:top right;transition:opacity .42s var(--ease),visibility .42s var(--ease),transform .58s var(--ease);max-height:calc(100vh - 6rem);overflow-y:auto;overscroll-behavior:contain}
.user-tools-dropdown.open{display:block}
.user-tools-dropdown.open .user-tools-menu{opacity:1;visibility:visible;transform:translate3d(0,0,0) scale(1)}
.user-tools-menu-head{display:flex;align-items:center;justify-content:space-between;padding:.45rem .5rem .65rem;border-bottom:1px solid var(--line-soft);margin-bottom:.4rem}
.user-tools-menu-head div{display:flex;flex-direction:column;gap:.12rem}
.user-tools-menu-head strong{font-size:.78rem}
.user-tools-menu-head span{font-size:.59rem;color:var(--text-dim)}
.user-tools-menu-list{display:grid;gap:.28rem}
.user-tools-item{position:relative;display:flex;align-items:center;gap:.65rem;width:100%;padding:.58rem;border:1px solid transparent;border-radius:15px;background:transparent;color:var(--text);text-align:left;font:inherit;cursor:pointer;overflow:hidden;transition:transform .55s var(--ease),background-color .4s var(--ease),border-color .4s var(--ease),box-shadow .55s var(--ease)}
[dir="rtl"] .user-tools-item{text-align:right}
.user-tools-item::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(96,165,250,.13),transparent 70%);opacity:0;transform:translate3d(-12%,0,0);transition:opacity .5s var(--ease),transform .7s var(--ease);pointer-events:none}
.user-tools-item:hover{transform:translate3d(3px,-1px,0);background:var(--teal-dim);border-color:var(--line);box-shadow:0 12px 28px -22px rgba(37,99,235,.8)}
.user-tools-item:hover::before,.user-tools-item.active::before{opacity:1;transform:translate3d(0,0,0)}
.user-tools-item.active{background:var(--teal-dim);border-color:var(--teal-line)}
.user-tools-item-icon{position:relative;z-index:1;width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border-radius:12px;background:var(--aqua-dim);color:var(--aqua-bright);font-size:1rem;transition:transform .7s var(--ease),background .45s ease,color .45s ease,box-shadow .7s var(--ease)}
.user-tools-item:hover .user-tools-item-icon{transform:translate3d(0,-2px,0) scale(1.06) rotate(-3deg)}
.user-tools-item.active .user-tools-item-icon{background:linear-gradient(135deg,#2563eb,#60a5fa);color:#05080c;box-shadow:0 10px 24px -12px rgba(37,99,235,.85)}
.user-tools-item>span:last-child{position:relative;z-index:1;display:flex;flex-direction:column;min-width:0;gap:.08rem}
.user-tools-item strong{font-size:.72rem;font-weight:750}
.user-tools-item small{font-size:.57rem;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-tools-divider{height:1px;background:var(--line-soft);margin:.35rem 0}
.user-tools-item.danger{color:var(--danger)}
.user-tools-item.danger .user-tools-item-icon{background:var(--danger-dim);color:var(--danger)}
.admin-nav{display:none!important;margin-bottom:2rem;padding:.5rem;background:var(--bg-panel);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);position:sticky;top:6.5rem;z-index:50;contain:layout paint}
#viewAdmin.admin-interface-switching{will-change:opacity}
#viewAdmin .admin-panel-switch-glow{position:absolute;inset:0;pointer-events:none;border-radius:28px;opacity:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07),0 0 70px -42px rgba(255,255,255,.12);transition:opacity .45s var(--ease);z-index:0}
#viewAdmin.admin-interface-switching .admin-panel-switch-glow{opacity:1}
#viewAdmin .res-table tbody{contain:layout style}
#viewAdmin .glass,#viewAdmin .admin-nav,#viewAdmin .stat-card,#viewAdmin .notif-card{contain:layout paint}
#viewAdmin .res-table tbody tr{contain:layout paint;content-visibility:auto;contain-intrinsic-size:1px 52px}
@media (min-width:769px){#viewAdmin .glass,#viewAdmin .admin-nav{backdrop-filter:blur(5px) saturate(1.15);-webkit-backdrop-filter:blur(5px) saturate(1.15)}#viewAdmin .admin-tools-menu{backdrop-filter:blur(10px) saturate(1.2);-webkit-backdrop-filter:blur(10px) saturate(1.2)}}
@media (min-width:769px){#viewAdmin .glass{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.glass:hover,.stat-card:hover,.notif-card:hover,.admin-nav-item:hover,.btn-main:hover,.btn-ghost:hover,.btn-sm:hover,.icon-btn:hover{transform:translateZ(0)}}
@media (max-width:768px){
  .admin-tools-menu{right:8px;left:auto;width:min(280px,calc(100vw - 1rem));max-height:min(70vh,420px);padding:.44rem}
  .admin-tools-item{padding:.42rem}
  .admin-tools-item-icon{width:31px;height:31px;flex-basis:31px}
  .user-tools-menu{width:min(320px,calc(100vw - 1rem));border-radius:18px;padding:.55rem}
  .user-tools-item{min-height:48px}
  #viewAdmin .glass,#viewAdmin .admin-nav{background:var(--bg-panel);box-shadow:0 8px 28px -16px rgba(0,0,0,.45)}
  .admin-tools-menu{right:0;width:min(320px,calc(100vw - 1rem));top:calc(100% + 8px);border-radius:18px;padding:.55rem}
  .admin-tools-menu-head{padding:.35rem .45rem .55rem}
  .admin-tools-item{min-height:46px}
}
@media (max-width:420px){.admin-tools-menu{width:calc(100vw - 1rem);right:8px;left:8px}.admin-tools-item small{display:none}.admin-tools-item{min-height:40px}.admin-tools-menu-head{padding-bottom:.4rem}}
@media (pointer:coarse){
  .admin-tools-item:hover{transform:none}
  .admin-tools-item:active{transform:scale(.985)}
  .admin-nav-item:hover{transform:none}
}
.role-picker{position:relative;display:inline-flex;min-width:120px}
.role-picker-btn{padding:.4rem .6rem;font-size:.81rem;min-width:120px}
.role-picker-menu{position:fixed;min-width:150px;padding:.45rem;background:var(--bg-panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-l);backdrop-filter:blur(12px) saturate(1.3);-webkit-backdrop-filter:blur(12px) saturate(1.3);opacity:0;visibility:hidden;pointer-events:none;transform:translate3d(0,-8px,0) scale(.97);transform-origin:top center;transition:opacity .24s var(--ease-smooth),visibility .24s var(--ease-smooth),transform .3s var(--ease-smooth);z-index:var(--z-modal)}
.role-picker-menu.open{opacity:1;visibility:visible;pointer-events:auto;transform:translate3d(0,0,0) scale(1)}
.role-picker-option{width:100%;display:flex;align-items:center;gap:.55rem;padding:.68rem .8rem;border:0;border-radius:11px;background:transparent;color:var(--text);font:inherit;font-size:.83rem;font-weight:600;text-align:left;cursor:pointer;transition:background-color .22s var(--ease-smooth),transform .22s var(--ease-smooth),color .22s var(--ease-smooth)}
.role-picker-option:hover{background:var(--teal-dim);transform:translate3d(3px,0,0)}
.role-picker-option[aria-selected="true"]{background:var(--teal-dim);color:var(--teal-bright);font-weight:700}
.role-picker-option span:first-child{flex:1}
.role-picker-option .role-check{opacity:0;transform:scale(.7);transition:opacity .18s ease,transform .22s var(--ease-smooth)}
.role-picker-option[aria-selected="true"] .role-check{opacity:1;transform:scale(1)}
.rank-panel{contain:none!important;overflow:visible!important}
#rankModuleMenu{position:fixed!important;z-index:9999!important;max-height:min(360px,60vh)!important}
#rankModuleMenu.open{opacity:1!important;visibility:visible!important;transform:translate3d(0,0,0) scale(1)!important;pointer-events:auto!important}
.admin-row-actions{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}
.admin-row-actions .btn-sm{white-space:nowrap}
#panelEtudiants,#panelNotifs,#panelClassement,#panelMessages{position:relative;z-index:1}
@media (max-width:768px){.role-picker-menu{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--bg-panel)}}
