
/* V30 — announcement banner + admin/user notification center */
.site-announcement{
  position:relative;z-index:90;width:100%;height:31px;overflow:hidden;
  background:linear-gradient(90deg,#071f48,#0d4b91 52%,#1769d2);
  border-bottom:1px solid rgba(255,255,255,.16);color:#fff
}
.site-announcement[hidden]{display:none!important}
.announcement-track{
  position:absolute;top:0;left:0;height:100%;display:flex;align-items:center;width:max-content;
  animation:announcement-ltr var(--announcement-duration,28s) linear infinite;will-change:transform
}
.announcement-track span{
  display:inline-flex;align-items:center;white-space:nowrap;font-size:9px;font-weight:700;letter-spacing:.01em;
  padding:0 22px;color:#eef7ff;text-shadow:0 1px 5px rgba(0,0,0,.2)
}
.announcement-track span:before{content:"●";font-size:7px;color:#5df0b4;margin-right:9px;text-shadow:0 0 8px #5df0b4}
@keyframes announcement-ltr{from{transform:translateX(calc(-100% - 25px))}to{transform:translateX(100vw)}}
.site-announcement:hover .announcement-track{animation-play-state:paused}

/* user notification bell */
.user-notification-btn{
  position:relative;width:36px;height:36px;border:1px solid var(--u-line,#dce5ef);background:#fff;color:#294967;
  border-radius:10px;display:grid;place-items:center;cursor:pointer;box-shadow:0 5px 14px rgba(15,23,42,.04)
}
.user-notification-btn:hover{border-color:#8fb8ea;color:#1769d2;background:#f8fbff}
.notification-red-dot{
  position:absolute;right:5px;top:5px;width:8px;height:8px;border-radius:50%;background:#e3342f;
  border:2px solid #fff;box-shadow:0 0 0 3px rgba(227,52,47,.12);animation:notif-pulse 1.7s ease-in-out infinite
}
.notification-red-dot[hidden],#notificationUnreadCount[hidden],.side-notification-badge[hidden]{display:none!important}
#notificationUnreadCount{
  position:absolute;right:-7px;top:-7px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;
  background:#d92d20;color:#fff;border:2px solid #fff;font-size:7px;font-weight:800;display:grid;place-items:center
}
@keyframes notif-pulse{0%,100%{box-shadow:0 0 0 2px rgba(227,52,47,.1)}50%{box-shadow:0 0 0 6px rgba(227,52,47,.04)}}
.user-sidebar nav button{position:relative}
.side-notification-badge{
  margin-left:auto;min-width:18px;height:18px;border-radius:999px;background:#e02d2d;color:#fff;display:grid;place-items:center;
  font-style:normal;font-size:7px;font-weight:800;padding:0 4px
}

/* user notification modal */
.user-notification-modal{position:fixed;inset:0;z-index:500;display:none;align-items:center;justify-content:center;padding:18px}
.user-notification-modal.show{display:flex}
.user-notification-backdrop{position:absolute;inset:0;background:rgba(3,16,35,.58);backdrop-filter:blur(7px)}
.user-notification-panel{
  position:relative;width:min(680px,96vw);max-height:82vh;background:#fff;border:1px solid #dbe5ef;border-radius:22px;
  box-shadow:0 30px 90px rgba(0,20,45,.28);overflow:hidden;display:flex;flex-direction:column
}
.user-notification-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:21px 22px 15px;background:linear-gradient(135deg,#071f48,#0b407f);color:#fff}
.user-notification-panel header span{font-size:7px;letter-spacing:.11em;font-weight:800;color:#9fc9f5}.user-notification-panel header h2{font:800 20px "Plus Jakarta Sans";margin:4px 0}.user-notification-panel header p{font-size:8.5px;color:#c3d9f1;margin:0}
.user-notification-panel header button{width:33px;height:33px;border-radius:10px;border:1px solid #ffffff24;background:#ffffff0d;color:#fff;cursor:pointer}
.notification-summary{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 20px;background:#f7f9fc;border-bottom:1px solid #e5ebf2;font-size:8px;color:#667b91}.notification-summary span{display:flex;gap:6px;align-items:center}.notification-summary b{font-size:7.5px;background:#fff;border:1px solid #dfe7ef;padding:4px 7px;border-radius:999px}
.user-notification-list{overflow-y:auto;padding:13px 18px 20px;display:grid;gap:8px}
.account-notification{display:grid;grid-template-columns:38px 1fr;gap:10px;border:1px solid #e0e8f1;border-radius:13px;padding:12px;background:#fff}
.account-notification.unread{border-color:#b8d5f5;background:#f8fbff;box-shadow:inset 3px 0 0 #1769d2}
.account-notification.priority-urgent{box-shadow:inset 3px 0 0 #d92d20}.account-notification.priority-important{box-shadow:inset 3px 0 0 #e59b18}
.account-notification-icon{width:36px;height:36px;border-radius:10px;background:#eaf3ff;color:#1769d2;display:grid;place-items:center}.priority-urgent .account-notification-icon{background:#fee9e8;color:#d92d20}.priority-important .account-notification-icon{background:#fff3d9;color:#b76e00}
.notification-title-line{display:flex;align-items:center;justify-content:space-between;gap:8px}.notification-title-line b{font-size:10px}.notification-title-line span{font-size:6.5px;text-transform:uppercase;font-weight:800;color:#71849a;background:#f1f5f9;padding:3px 5px;border-radius:999px}.account-notification p{font-size:8.5px;line-height:1.6;color:#526980;margin:5px 0}.account-notification time{font-size:7px;color:#8b9aae}
.notification-empty{padding:35px 20px;text-align:center;border:1px dashed #d9e3ed;border-radius:13px;color:#73869b;background:#fafcff}.notification-empty i{display:block;font-size:22px;color:#9fb0c1;margin-bottom:8px}.notification-empty b{display:block;font-size:10px}.notification-empty span{display:block;font-size:8px;margin-top:4px}

/* Admin communications */
.communications-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.comms-help{font-size:8.5px;color:#71849a;line-height:1.6;margin:2px 0 10px}
.banner-control-card textarea,.notification-compose-card textarea{
  width:100%;resize:vertical;min-height:88px;border:1px solid #dbe4ee;border-radius:10px;background:#f9fbfd;padding:10px;
  outline:0;font:500 9px/1.55 Inter;color:#10213b
}
.banner-control-card textarea:focus,.notification-compose-card textarea:focus{background:#fff;border-color:#75a9e8;box-shadow:0 0 0 3px rgba(23,105,210,.07)}
.banner-speed-row{display:grid;grid-template-columns:135px 1fr;gap:11px;align-items:end;margin-top:8px}
.banner-preview-box{min-width:0}.banner-preview-box>span{display:block;font-size:7px;font-weight:800;color:#72869a;margin-bottom:5px}
.mini-marquee{height:39px;border-radius:9px;overflow:hidden;position:relative;background:linear-gradient(90deg,#071f48,#1769d2);color:#fff}
.mini-marquee i{font-style:normal;position:absolute;white-space:nowrap;top:50%;transform:translateY(-50%);font-size:7.5px;font-weight:700;animation:admin-preview 12s linear infinite}
@keyframes admin-preview{from{left:-100%}to{left:100%}}
.notification-options{display:grid;grid-template-columns:145px 1fr;gap:12px;align-items:end}
.admin-check{display:flex!important;align-items:center;gap:9px!important;border:1px solid #e0e7ef;border-radius:10px;padding:9px!important;background:#f8fafc;text-transform:none!important;margin:10px 0 0!important}
.admin-check input{width:16px!important;height:16px!important;accent-color:#1769d2}.admin-check span b{display:block;font-size:8px}.admin-check span small{display:block;font-size:7px;color:#7b8da2;margin-top:2px}
.notification-send-btn{background:linear-gradient(135deg,#0f5abb,#1769d2)!important}
.sent-notifications-card{margin-top:12px}.notification-history-count{font-size:7.5px;font-weight:800;color:#60758c;background:#f3f7fb;border:1px solid #e0e8f0;border-radius:999px;padding:5px 8px}
.admin-notification-history{display:grid;gap:7px;margin-top:11px;max-height:430px;overflow-y:auto}
.admin-notification-record{display:grid;grid-template-columns:36px 1fr 30px;gap:10px;align-items:start;border:1px solid #e1e8f0;border-radius:11px;padding:10px;background:#fbfdff}
.admin-notification-record.priority-important{border-left:3px solid #e59b18}.admin-notification-record.priority-urgent{border-left:3px solid #d92d20}
.admin-notification-icon{width:33px;height:33px;border-radius:9px;background:#eaf3ff;color:#1769d2;display:grid;place-items:center}.priority-important .admin-notification-icon{background:#fff3d9;color:#b76e00}.priority-urgent .admin-notification-icon{background:#fee9e8;color:#d92d20}
.admin-notification-record-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.admin-notification-record-head b{font-size:9px}.admin-notification-record-head span{font-size:6.5px;text-transform:uppercase;color:#70839a;font-weight:800;background:#f0f4f8;padding:3px 5px;border-radius:999px}
.admin-notification-record p{font-size:8px;color:#5f738a;line-height:1.5;margin:4px 0}.admin-notification-record small{font-size:7px;color:#8292a4}.notification-delete{width:29px;height:29px;border:1px solid #e2e8ef;background:#fff;color:#b42318;border-radius:8px;cursor:pointer}

@media(max-width:900px){.communications-grid{grid-template-columns:1fr}}
@media(max-width:600px){.site-announcement{height:28px}.announcement-track span{font-size:8px}.user-notification-panel{max-height:90vh}.notification-options,.banner-speed-row{grid-template-columns:1fr}.notification-title-line{align-items:flex-start;flex-direction:column}}

body.banner-active .sidebar{top:43px!important}
body.banner-active .user-sidebar{top:122px!important}
