
/* Integrated online-class / notification UI */
.ss-notification-wrap{position:fixed;top:16px;right:20px;z-index:1200}.ss-notification-bell{box-sizing:border-box;position:relative;width:46px;height:46px;border:1px solid rgba(255,255,255,.18);border-radius:14px;background:rgba(15,23,42,.55);backdrop-filter:blur(14px);color:inherit;display:flex;align-items:center;justify-content:center;line-height:0;padding:0;margin:0;font:inherit;cursor:pointer;box-shadow:0 8px 25px rgba(0,0,0,.15);transition:.2s}.ss-notification-bell svg{display:block;flex-shrink:0}.ss-notification-bell:hover{transform:translateY(-2px)}.ss-notification-count{position:absolute;right:-6px;top:-6px;z-index:1201;min-width:20px;height:20px;line-height:20px;border-radius:20px;padding:0 5px;background:#ef4444;border:2px solid rgba(15,23,42,.9);color:#fff;font:700 11px/18px Arial;text-align:center;display:none;box-shadow:0 2px 6px rgba(0,0,0,.4)}.ss-notification-count.show{display:block;animation:ssBellPulse 1.2s infinite}.ss-notification-panel{display:none;position:absolute;right:0;top:54px;width:360px;max-width:calc(100vw - 24px);border:1px solid rgba(255,255,255,.16);border-radius:18px;background:rgba(15,23,42,.94);color:#fff;box-shadow:0 20px 55px rgba(0,0,0,.35);overflow:hidden}.ss-notification-panel.open{display:block;animation:ssDrop .2s ease}.ss-notification-head{padding:13px 15px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1)}.ss-notification-head button,.ss-notification-head a{border:0;background:none;color:#9cc5ff;font-size:12px;text-decoration:none;cursor:pointer;margin-left:10px}.ss-notification-item{display:block;padding:13px 15px;border-bottom:1px solid rgba(255,255,255,.07);color:inherit;text-decoration:none}.ss-notification-item:hover{background:rgba(255,255,255,.06)}.ss-notification-item.unread{background:rgba(59,130,246,.10)}.ss-notification-item .ntitle{font-weight:700;font-size:13px}.ss-notification-item .nmsg{font-size:12px;opacity:.78;margin-top:4px;line-height:1.4}.ss-notification-item .ntime{font-size:10px;opacity:.5;margin-top:6px}.ss-notification-empty{padding:28px 15px;text-align:center;opacity:.55;font-size:13px}@keyframes ssBellPulse{50%{transform:scale(1.08)}}@keyframes ssDrop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.video-shell{max-width:1400px;margin:auto}.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.video-tile{position:relative;aspect-ratio:16/9;background:#07111f;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.video-tile video{width:100%;height:100%;object-fit:cover}.video-name{position:absolute;left:10px;bottom:8px;padding:5px 9px;border-radius:10px;background:rgba(0,0,0,.55);font-size:12px}.video-controls{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.video-controls button{cursor:pointer}.video-chat{max-height:380px;overflow:auto}.video-chat-msg{padding:7px 0;border-bottom:1px solid rgba(255,255,255,.08)}.video-chat-msg b{font-size:12px}.video-chat-msg div{font-size:13px}.meeting-status{display:inline-flex;padding:5px 9px;border-radius:999px;background:rgba(59,130,246,.14);font-size:12px}.meeting-status.ongoing{background:rgba(34,197,94,.14)}.meeting-status.cancelled{background:rgba(239,68,68,.14)}@media(max-width:700px){.ss-notification-wrap{top:10px;right:10px}.ss-notification-panel{width:calc(100vw - 20px);right:-2px}.video-grid{grid-template-columns:1fr}}
.ss-notification-link{display:block;color:inherit;text-decoration:none;padding-right:26px}
.ss-notification-del{position:absolute;top:10px;right:10px;width:20px;height:20px;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:inherit;opacity:.55;font-size:15px;line-height:20px;text-align:center;cursor:pointer;padding:0}
.ss-notification-del:hover{opacity:1;background:rgba(239,68,68,.35)}
.video-side-grid{grid-template-columns:minmax(0,1fr) 320px}
.video-secure-warning{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.35);border-radius:12px;padding:12px 14px;margin-top:15px;font-size:13px;line-height:1.5}
@media(max-width:820px){.video-side-grid{grid-template-columns:1fr}}
