/* Thông báo trong app (Đợt 2 phần B): the bell in the title bar and its list (notifications.mjs). */
.notify-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:white;border:1px solid transparent;border-radius:8px;min-width:40px;min-height:40px;padding:6px;cursor:pointer}
.notify-bell svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.notify-bell:hover,.notify-bell[aria-expanded=true]{background:rgba(255,255,255,.12)}
.notify-bell:focus-visible{outline:2px solid #f3c969;outline-offset:2px}
.notify-count{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#c43c2c;color:white;font-size:11px;font-weight:700;line-height:18px;text-align:center}
.notify-count[hidden]{display:none}
.notify-panel{position:fixed;z-index:60;margin:0;padding:0;background:white;color:#203930;border:1px solid #cfdad4;border-radius:10px;box-shadow:0 12px 32px rgba(20,40,32,.22);display:flex;flex-direction:column;overflow:hidden}
.notify-panel[hidden]{display:none}
.notify-desktop{width:380px;max-width:calc(100vw - 16px);max-height:min(70vh,560px)}
.notify-mobile{left:8px;right:8px;max-height:calc(100vh - 96px)}
/* On the phone the bell sits right, before Đăng xuất. */
.mobile-header .notify-bell{margin-left:auto}.mobile-header .notify-bell+#home-logout{margin-left:0}
.notify-panel header{margin:0;border-radius:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #e3e9e5;background:#f6f9f7;color:#203930}
.notify-panel h2{margin:0;font-size:16px}
.notify-all{background:transparent;color:#2c6a50;border:0;padding:6px 4px;font-size:13px;font-weight:600;cursor:pointer;min-height:36px}
.notify-all:disabled{color:#9aa9a1;cursor:default}
.notify-status{margin:0;padding:14px;color:#5d7067;font-size:14px}
.notify-status[hidden]{display:none}
.notify-list{list-style:none;margin:0;padding:0;overflow:auto}
.notify-item{display:grid;grid-template-columns:1fr auto;gap:2px 10px;width:100%;text-align:left;background:white;color:#3d5249;border:0;border-bottom:1px solid #edf1ee;padding:11px 14px;font:inherit;font-size:13px;font-weight:400;cursor:pointer;min-height:auto}
.notify-item:hover,.notify-item:focus-visible{background:#f1f6f3}
.notify-item strong{grid-column:1;font-size:14px;font-weight:500;color:#203930}
.notify-item .notify-time{grid-column:2;grid-row:1;font-size:12px;color:#7a8b82;white-space:nowrap}
.notify-item .notify-ref,.notify-item .notify-text{grid-column:1/-1}
.notify-item .notify-ref{font-weight:500;color:#203930}
.notify-item .notify-text{color:#5d7067;overflow-wrap:anywhere}
.notify-item.unread{background:#eef7f1}
.notify-item.unread strong,.notify-item.unread .notify-ref{font-weight:700}
.notify-item.unread strong::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:#2c8a5c;margin-right:7px;vertical-align:1px}
.notify-device{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;padding:10px 14px;border-top:1px solid #e3e9e5;background:#f6f9f7;font-size:13px;color:#3d5249}
.notify-device[hidden]{display:none}
.notify-device span{flex:1;line-height:1.4}
.notify-device-button{flex:none;background:#2c6a50;color:white;border:0;border-radius:8px;padding:8px 12px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;min-height:36px}
.notify-device-button[hidden]{display:none}
.notify-device-button:disabled{opacity:.6;cursor:wait}
.notify-device-button.notify-device-off{background:white;color:#2c6a50;border:1px solid #b7cbbf}
/* Chưa đọc / Tất cả; the unread of a kind in one line; ten at a time (Owner 28/10/2026: "đừng làm một trang quá dài"). */
.notify-tabs{display:flex;gap:8px;padding:10px 14px 8px;border-bottom:1px solid #e3e9e5}
.notify-tabs[hidden]{display:none}
.notify-tab{display:inline-flex;align-items:center;gap:6px;min-height:38px;margin:0;padding:6px 14px;border:1px solid #c5d6cb;border-radius:19px;background:white;color:#294c3d;font:inherit;font-size:14px;font-weight:650;cursor:pointer}
.notify-tab[aria-selected=true]{background:#294c3d;border-color:#294c3d;color:white}
.notify-tab:disabled{opacity:.5;cursor:default}
.notify-tab-count{min-width:22px;padding:1px 6px;border-radius:11px;background:#e9f1eb;color:#294c3d;font-size:12px;text-align:center}
.notify-tab[aria-selected=true] .notify-tab-count{background:#ffffff26;color:white}
.notify-item.notify-group .notify-time{font-size:18px;line-height:1;color:#5d7067}
.notify-item:is(.notify-more,.notify-back){display:block;font-size:14px;font-weight:700;color:#1e5138}
.notify-item.notify-more{text-align:center}
/* Có bản mới (app-update.mjs, Owner 08/11/2026): a bar at the top of the screen once a deploy changed the pages; over a window
   that is open it moves into that window (the page under it is inert), so its own rules set every look the window could. */
.app-update{position:fixed;z-index:1000;top:8px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 16px);box-sizing:border-box;display:flex;align-items:center;gap:12px;margin:0;padding:8px 8px 8px 14px;background:#fff7dc;color:#3b3216;border:1px solid #e2c56b;border-radius:10px;box-shadow:0 10px 28px rgba(20,40,32,.24);font-family:inherit;font-size:14px;font-weight:400;line-height:1.4;text-align:left;letter-spacing:normal}
.app-update[hidden]{display:none}
.app-update .app-update-text{flex:1 1 auto;min-width:0;margin:0;padding:0;color:inherit;font:inherit}
.app-update .app-update-text strong{font-weight:700;color:#203930}
.app-update .app-update-actions{flex:none;display:flex;align-items:center;gap:6px;margin:0}
.app-update .app-update-reload,.app-update .app-update-later{width:auto;min-width:0;min-height:36px;margin:0;padding:7px 14px;border-radius:8px;font-family:inherit;font-size:14px;font-weight:650;line-height:1.2;cursor:pointer;box-shadow:none}
.app-update .app-update-reload{background:#2c6a50;color:white;border:1px solid #2c6a50}
.app-update .app-update-reload:hover{background:#245a43}
.app-update .app-update-later{background:transparent;color:#2c6a50;border:1px solid transparent;padding:7px 8px}
.app-update .app-update-later:hover{background:#f3e9c4}
.app-update :is(.app-update-reload,.app-update-later):focus-visible{outline:2px solid #2c6a50;outline-offset:2px}
@media (max-width:600px){
  .app-update{left:8px;right:8px;transform:none;width:auto;max-width:none;flex-wrap:wrap;gap:6px 10px;padding:10px 10px 8px 12px}
  .app-update .app-update-text{flex:1 1 100%}
  .app-update .app-update-actions{margin-left:auto}
  .app-update .app-update-reload,.app-update .app-update-later{min-height:40px}
}
@media print{.app-update{display:none!important}}
