/* Sininbe EDU realtime/UI stability and visible conversation menus v2.5.76 */
.edu-rt-pin{
  display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;
  flex:0 0 24px;border-radius:8px;color:var(--text-muted);cursor:pointer;opacity:.48;
  transition:opacity .15s,color .15s,background .15s;position:relative!important;z-index:1!important;
}
.edu-rt-pin:hover,.edu-rt-pin:focus-visible{opacity:1;background:rgba(34,211,178,.1);color:var(--primary);outline:none}
.edu-rt-pin.on{opacity:1;color:var(--gold);background:rgba(240,180,41,.1)}
.ni.edu-rt-pinned{border-color:rgba(240,180,41,.28)!important;background:rgba(240,180,41,.055)!important}
.ni .unread-badge.edu-rt-unread{display:inline-flex!important;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#ef4444;color:#fff;font-size:.58rem;font-weight:950;line-height:1;box-shadow:0 0 0 2px var(--panel-bg,#071126)}

/* Table info controls must remain in their own cell and never float over sticky headers. */
.se-admin-table-wrap,.se-admin-table-wrap-groups{position:relative!important;isolation:isolate!important;overflow:auto!important;contain:layout paint}
.se-admin-table td,.se-admin-table th{position:relative;overflow:hidden}
.se-admin-table .se-info-btn{position:relative!important;inset:auto!important;transform:none!important;z-index:1!important;vertical-align:middle}
.se-admin-table thead th{z-index:3!important}
.se-admin-pane:not(.active) .se-info-btn,#m-adminpanel:not(.show) .se-info-btn{visibility:hidden!important;pointer-events:none!important}

/* The old separators directly below General Community are intentionally removed. */
#adm-block>.sb-sep:first-child,#grp-block>.sb-sep:first-child{display:none!important}

/* Keep notification and badges inside the viewport on every screen width. */
#msg-notif{max-width:min(420px,calc(100vw - 24px))!important;inset-inline:12px!important;margin-inline:auto!important;box-sizing:border-box!important}
@media(max-width:620px){
  .edu-rt-pin{width:22px;height:22px;flex-basis:22px}
  .ni .unread-badge.edu-rt-unread{min-width:18px;height:18px;padding:0 5px}
}
.se-adminmsg-thread>.edu-rt-pin{position:absolute!important;top:7px!important;inset-inline-end:36px!important;width:22px!important;height:22px!important;z-index:2!important}
.se-adminmsg-thread.edu-rt-pinned strong{padding-inline-end:58px!important}

/* v2.5.59 — compact person rows, cross-device admin actions and light audio contrast. */
#stu-lst .ni.se-person-row{
  overflow:hidden!important;
  gap:8px!important;
  min-width:0!important;
  padding-inline:10px!important;
}
#grp-lst .ni.se-group-row{
  overflow:hidden!important;
  gap:8px!important;
  min-width:0!important;
  padding-inline:10px!important;
  box-sizing:border-box!important;
  max-width:100%!important;
  width:100%!important;
}
#grp-lst .ni.se-group-row > .ni-lbl{flex:1 1 0!important;min-width:0!important;width:0!important;}
#grp-lst .ni.se-group-row > .edu-rt-pin{display:none!important;}
#stu-lst .ni.se-person-row > span[id^="stuname-"]{
  flex:1 1 auto!important;
  min-width:0!important;
  max-width:none!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
#stu-lst .ni.se-person-row > .se-info-btn,
#stu-lst .ni.se-person-row > .se-relation-badge,
#stu-lst .ni.se-person-row > small:not(.unread-badge),
#stu-lst .ni.se-person-row > .edu-rt-pin{display:none!important;}
#stu-lst .ni.se-person-row > .unread-badge{flex:0 0 auto!important;margin-inline-start:2px!important;}
.se-person-more{
  width:30px;height:30px;flex:0 0 30px;border-radius:9px;
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--text-muted);background:rgba(255,255,255,.035);border:1px solid var(--border);
  cursor:pointer;position:relative;z-index:2;transition:.15s ease;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;pointer-events:auto!important;
}
.se-person-more:hover,.se-person-more:focus-visible{color:var(--primary);border-color:rgba(34,211,178,.35);background:rgba(34,211,178,.09);outline:none;}
.edu-person-popup{
  position:fixed;z-index:2147483647!important;box-sizing:border-box;padding:8px;
  max-height:calc(100dvh - 16px);overflow:auto;overscroll-behavior:contain;
  border:1px solid var(--border-strong);border-radius:14px;
  background:linear-gradient(180deg,rgba(10,20,44,.985),rgba(6,14,34,.99));
  box-shadow:0 18px 55px rgba(0,0,0,.5);color:var(--text-primary);
  font-family:var(--se-font-ui),sans-serif;text-align:start;
}
.edu-person-popup[hidden]{display:none!important;}
.edu-person-popup-head{padding:7px 9px 9px;border-bottom:1px solid var(--border);margin-bottom:6px;min-width:0;}
.edu-person-popup-head strong{display:block;font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);}
.edu-person-popup-head span{display:block;margin-top:2px;font-size:.58rem;color:var(--text-muted);font-weight:800;}
.edu-person-popup>button{
  width:100%;min-height:38px;border:0;border-radius:10px;padding:8px 10px;
  display:flex;align-items:center;gap:9px;background:transparent;color:var(--text-primary);
  font-family:inherit;font-size:.7rem;font-weight:850;cursor:pointer;text-align:start;
}
.edu-person-popup>button:hover,.edu-person-popup>button:focus-visible{background:rgba(34,211,178,.09);color:var(--primary);outline:none;}
.edu-person-popup>button i{width:18px;text-align:center;flex:0 0 18px;}
.edu-person-popup-meta{display:grid;grid-template-columns:minmax(72px,.7fr) minmax(0,1.3fr);gap:8px;align-items:start;padding:8px 10px;border-top:1px solid rgba(148,163,184,.10);}
.edu-person-popup-meta span{font-size:.57rem;color:var(--text-muted);font-weight:800;}
.edu-person-popup-meta strong{font-size:.62rem;color:var(--text-secondary);font-weight:900;overflow-wrap:anywhere;text-align:end;}
.edu-person-popup-meta.edu-person-popup-absence{background:rgba(239,68,68,.055);border-top-color:rgba(248,113,113,.18);}
.edu-person-popup-meta.edu-person-popup-absence span,.edu-person-popup-meta.edu-person-popup-absence strong{color:#f87171;}
.edu-person-popup-progress{border-top:1px solid rgba(148,163,184,.10);}
.edu-person-popup-progress .edu-person-popup-meta:first-child{border-top:0;}
.edu-person-popup-progress-status{display:flex;align-items:center;gap:7px;padding:9px 10px;font-size:.58rem;font-weight:850;color:var(--text-muted);line-height:1.45;}
.edu-person-popup-progress-status.error{color:#fb7185;}
[data-theme="light"] .edu-person-popup{background:#fff;border-color:#d6dee9;box-shadow:0 18px 55px rgba(15,23,42,.2);color:#172033;}
[data-theme="light"] .edu-person-popup-head strong,[data-theme="light"] .edu-person-popup>button{color:#172033;}
[data-theme="light"] .edu-person-popup-head span,[data-theme="light"] .edu-person-popup-meta span{color:#64748b;}
[data-theme="light"] .edu-person-popup-meta strong{color:#334155;}
[data-theme="light"] .edu-person-popup-progress{border-top-color:#e2e8f0;}
[data-theme="light"] .edu-person-popup>button:hover{background:rgba(13,155,128,.08);color:#0d9b80;}
[data-theme="light"] .se-person-more{background:#fff;border-color:#d6dee9;color:#64748b;}

/* Administrative voice notes need their own light-theme palette: these cards do
   not use the regular .bub/.bme classes, so the generic audio rules did not apply. */
#app[data-theme="light"] .se-audit-msg .ap,
html[data-theme="light"] .se-audit-msg .ap,
body[data-theme="light"] .se-audit-msg .ap{
  background:#edf3f7!important;border-color:#cbd5e1!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.75)!important;
}
#app[data-theme="light"] .se-audit-msg .ap-pp,
html[data-theme="light"] .se-audit-msg .ap-pp,
body[data-theme="light"] .se-audit-msg .ap-pp{
  background:#ffffff!important;border-color:#b9c6d5!important;color:#0f766e!important;
}
#app[data-theme="light"] .se-audit-msg .ap-bar,
html[data-theme="light"] .se-audit-msg .ap-bar,
body[data-theme="light"] .se-audit-msg .ap-bar{background:#94a3b8!important;}
#app[data-theme="light"] .se-audit-msg .ap-bar.played,
html[data-theme="light"] .se-audit-msg .ap-bar.played,
body[data-theme="light"] .se-audit-msg .ap-bar.played{background:#0d9b80!important;}
#app[data-theme="light"] .se-audit-msg .ap-dur,
#app[data-theme="light"] .se-audit-msg .ap-voice-lbl,
#app[data-theme="light"] .se-audit-msg .ap-spd-btn,
html[data-theme="light"] .se-audit-msg .ap-dur,
html[data-theme="light"] .se-audit-msg .ap-voice-lbl,
html[data-theme="light"] .se-audit-msg .ap-spd-btn,
body[data-theme="light"] .se-audit-msg .ap-dur,
body[data-theme="light"] .se-audit-msg .ap-voice-lbl,
body[data-theme="light"] .se-audit-msg .ap-spd-btn{color:#334155!important;opacity:1!important;}
#app[data-theme="light"] .se-audit-msg .ap-spd-btn,
html[data-theme="light"] .se-audit-msg .ap-spd-btn,
body[data-theme="light"] .se-audit-msg .ap-spd-btn{background:#fff!important;border:1px solid #cbd5e1!important;}

/* User and assignment management remains fully operable on phones/tablets.
   Tables become labelled cards instead of hiding the action column off-screen. */
@media(max-width:760px){
  #admin-pane-users .se-admin-table-wrap,
  #admin-pane-groups .se-admin-table-wrap-groups{overflow:visible!important;max-height:none!important;border:0!important;background:transparent!important;contain:none!important;}
  #admin-pane-users .se-admin-table,
  #admin-pane-groups .se-admin-table{display:block!important;min-width:0!important;width:100%!important;}
  #admin-pane-users .se-admin-table thead,
  #admin-pane-groups .se-admin-table thead{display:none!important;}
  #admin-pane-users .se-admin-table tbody,
  #admin-pane-groups .se-admin-table tbody{display:grid!important;gap:10px!important;width:100%!important;}
  #admin-pane-users .se-admin-table tr,
  #admin-pane-groups .se-admin-table tr{display:block!important;border:1px solid var(--border)!important;border-radius:14px!important;background:rgba(255,255,255,.025)!important;padding:6px!important;overflow:hidden!important;}
  #admin-pane-users .se-admin-table td,
  #admin-pane-groups .se-admin-table td{display:grid!important;grid-template-columns:minmax(88px,34%) minmax(0,1fr)!important;gap:8px!important;align-items:center!important;width:100%!important;box-sizing:border-box!important;padding:9px 8px!important;border-bottom:1px solid rgba(148,163,184,.09)!important;overflow:visible!important;min-height:40px!important;}
  #admin-pane-users .se-admin-table td:last-child,
  #admin-pane-groups .se-admin-table td:last-child{border-bottom:0!important;}
  #admin-pane-users .se-admin-table td::before,
  #admin-pane-groups .se-admin-table td::before{content:attr(data-label);font-size:.6rem;font-weight:900;color:var(--text-muted);overflow-wrap:anywhere;}
  #admin-pane-users .se-admin-table td>* ,
  #admin-pane-groups .se-admin-table td>*{min-width:0;max-width:100%;overflow-wrap:anywhere;}
  #admin-pane-users .se-mini-actions,
  #admin-pane-groups .se-mini-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;width:100%!important;}
  #admin-pane-users .se-mini-actions button,
  #admin-pane-groups .se-mini-actions button{min-height:42px!important;width:100%!important;justify-content:center!important;touch-action:manipulation!important;}
  #admin-pane-users .se-admin-form,
  #admin-pane-groups .se-group-form{position:relative!important;z-index:1!important;}
  #admin-pane-users .se-admin-form input,
  #admin-pane-users .se-admin-form select,
  #admin-pane-users .se-admin-form button,
  #admin-pane-groups .se-group-form input,
  #admin-pane-groups .se-group-form select,
  #admin-pane-groups .se-group-form button{width:100%!important;min-width:0!important;touch-action:manipulation!important;}
  #app[data-theme="light"] #admin-pane-users .se-admin-table tr,
  #app[data-theme="light"] #admin-pane-groups .se-admin-table tr{background:#fff!important;border-color:#d6dee9!important;}
}
@media(max-width:360px){
  #admin-pane-users .se-admin-table td,
  #admin-pane-groups .se-admin-table td{grid-template-columns:1fr!important;gap:4px!important;}
  .edu-person-popup{max-width:calc(100vw - 16px)!important;}
}
#stu-lst,#adm-block{min-width:0!important;max-width:100%!important;}
#stu-lst .ni.se-person-row{box-sizing:border-box!important;max-width:100%!important;width:100%!important;}
#stu-lst .ni.se-person-row > span[id^="stuname-"]{flex:1 1 0!important;width:0!important;}
#grp-lst{min-width:0!important;max-width:100%!important;}
