.sgn-alert-menu-state,
.sgn-alert-menu-empty {
    min-height: 132px;
    padding: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: .45rem;
    color: var(--sgn-muted, #8292a6);
    text-align: center;
}
.sgn-alert-menu-empty small { display: block; }
.sgn-alert-empty-icon {
    width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center;
    color: #20b9a4; background: rgba(32,185,164,.11); font-size: 1.35rem;
}
.sgn-alert-menu-item {
    display: flex; align-items: flex-start; gap: .8rem; padding: .85rem 1rem;
    border-left: 3px solid transparent !important;
}
.sgn-alert-menu-item.is-unread { border-left-color: #2d9cdb !important; }
.sgn-alert-menu-icon {
    flex: 0 0 36px; width: 36px; height: 36px; display: grid; place-items: center;
    border-radius: 11px; font-size: 1.15rem;
}
.sgn-alert-menu-icon.is-informativo { color: #2d9cdb; background: rgba(45,156,219,.12); }
.sgn-alert-menu-icon.is-atencao { color: #e6a23c; background: rgba(230,162,60,.13); }
.sgn-alert-menu-icon.is-critico { color: #ef6675; background: rgba(239,102,117,.13); }
.sgn-alert-menu-copy { min-width: 0; display: grid; gap: .16rem; }
.sgn-alert-menu-copy strong { font-size: .78rem; line-height: 1.3; }
.sgn-alert-menu-copy small { color: #7da7cc; font-size: .68rem; }
.sgn-alert-menu-copy > span { color: var(--sgn-muted, #8292a6); font-size: .66rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sgn-notification-menu { overflow: hidden; }
#sgn-alert-menu-items {
    max-height: min(62vh, 520px);
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(111,151,183,.48) transparent;
}
.sgn-alert-menu-group-title {
    position: sticky; top: 0; z-index: 2; display: flex; align-items: center;
    justify-content: space-between; padding: .42rem 1rem;
    color: #6e9dc2; background: rgba(244,248,251,.97);
    border-top: 1px solid rgba(121,145,166,.14);
    border-bottom: 1px solid rgba(121,145,166,.14);
    font-size: .62rem; font-weight: 800; letter-spacing: .055em; text-transform: uppercase;
    backdrop-filter: blur(8px);
}
.sgn-alert-menu-group-title span:last-child {
    display: grid; place-items: center; min-width: 20px; height: 20px;
    padding: 0 .32rem; border-radius: 999px; color: #2d8fc9; background: rgba(45,156,219,.11);
}
.sgn-alert-menu-footer { position: relative; z-index: 4; padding: .65rem; border-top: 1px solid var(--sgn-border); background: #fff; }
.sgn-alert-view-all {
    display: flex; align-items: center; justify-content: space-between; gap: .8rem;
    min-height: 40px; padding: .55rem .75rem; border-radius: 8px;
    color: #278bc7; background: rgba(45,156,219,.09); font-size: .74rem; font-weight: 750;
}
.sgn-alert-view-all span { display: flex; align-items: center; gap: .48rem; }
.sgn-alert-view-all:hover { color: #fff; background: #258dca; }

.alerts-shell { border: 1px solid var(--sgn-border); border-radius: 10px; overflow: hidden; background: #fff; }
.alerts-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.15rem; border-bottom:1px solid var(--sgn-border); }
.alerts-summary { display:flex; gap:.65rem; flex-wrap:wrap; }
.alerts-stat { padding:.55rem .8rem; border:1px solid var(--sgn-border); border-radius:8px; min-width:105px; }
.alerts-stat strong { display:block; font-size:1rem; color:var(--sgn-heading); }
.alerts-stat span { font-size:.67rem; color:var(--sgn-muted); text-transform:uppercase; font-weight:700; letter-spacing:.04em; }
.alerts-list { min-height:260px; }
.alert-row { display:grid; grid-template-columns:42px minmax(220px,1.6fr) minmax(160px,.8fr) 120px 100px; align-items:center; gap:.9rem; padding:.9rem 1.15rem; border-bottom:1px solid var(--sgn-border); }
.alert-row:last-child { border-bottom:0; }
.alert-row-title strong,.alert-rule-copy strong { display:block; color:var(--sgn-heading); font-size:.8rem; }
.alert-row-title small,.alert-rule-copy small { display:block; color:var(--sgn-muted); font-size:.7rem; margin-top:.15rem; }
.alert-severity { display:inline-flex; align-items:center; width:max-content; border-radius:999px; padding:.3rem .55rem; font-size:.65rem; font-weight:800; text-transform:uppercase; }
.alert-severity.is-informativo { color:#55b8ed; background:rgba(45,156,219,.13); }
.alert-severity.is-atencao { color:#edb14e; background:rgba(230,162,60,.13); }
.alert-severity.is-critico { color:#f07b88; background:rgba(239,102,117,.13); }
.alert-rule { display:grid; grid-template-columns:minmax(230px,1fr) 130px 145px 145px 120px; gap:1rem; align-items:center; padding:1rem 1.15rem; border-bottom:1px solid var(--sgn-border); }
.alert-rule:last-child { border-bottom:0; }
.alert-rule .form-control,.alert-rule .form-select { min-height:36px; font-size:.75rem; }
.alert-field label { display:block; margin-bottom:.35rem; color:var(--sgn-muted); font-size:.62rem; font-weight:800; text-transform:uppercase; }
.alert-category { padding:.55rem 1.15rem; background:#f4f8fb; color:#397aa7; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.alerts-empty { min-height:260px; display:grid; place-items:center; text-align:center; color:var(--sgn-muted); }
.dark-mode .alerts-shell { background:#263746; border-color:#385064; }
.dark-mode .alert-category { background:#20303e; color:#7fc2ed; }
.dark-mode .alert-row,.dark-mode .alert-rule,.dark-mode .alerts-toolbar { border-color:#385064; }
.dark-mode .alerts-stat { border-color:#40576b; background:#223240; }
.dark-mode .sgn-alert-menu-group-title { color:#81b9df; background:rgba(31,47,60,.97); border-color:#385064; }
.dark-mode .sgn-alert-menu-footer { background:#22313e; border-color:#385064; }
.sgn-vacation-dialog { border:1px solid var(--sgn-border); border-radius:14px; overflow:hidden; }
.sgn-vacation-eyebrow { color:#2b99d6; font-size:.65rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.sgn-vacation-person { display:flex; justify-content:space-between; gap:1rem; padding:.85rem 1rem; margin-bottom:1rem; border:1px solid var(--sgn-border); border-radius:10px; background:#f7fafc; }
.sgn-vacation-person > div { display:grid; gap:.15rem; }
.sgn-vacation-person > div:last-child { text-align:right; }
.sgn-vacation-person strong { color:var(--sgn-heading,#243c52); font-size:.8rem; }
.sgn-vacation-person span,.sgn-vacation-person small { color:var(--sgn-muted); font-size:.68rem; }
.sgn-vacation-layout { display:grid; grid-template-columns:minmax(420px,1.5fr) minmax(260px,.75fr); gap:1rem; }
.sgn-vacation-calendar-card,.sgn-vacation-form { padding:1rem; border:1px solid var(--sgn-border); border-radius:10px; }
.sgn-vacation-calendar-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:.75rem; }
.sgn-vacation-calendar-head strong { color:var(--sgn-heading,#243c52); text-transform:capitalize; }
.sgn-vacation-week,.sgn-vacation-calendar { display:grid; grid-template-columns:repeat(7,1fr); gap:.35rem; }
.sgn-vacation-months { display:grid; grid-template-columns:1fr; gap:.7rem; }
.sgn-vacation-months.is-two-months { grid-template-columns:repeat(2,minmax(0,1fr)); }
.sgn-vacation-month-view { min-width:0; padding:.55rem; border:1px solid transparent; border-radius:10px; }
.sgn-vacation-months.is-two-months .sgn-vacation-month-view { border-color:var(--sgn-border); background:rgba(45,156,219,.035); }
.sgn-vacation-months.is-two-months .sgn-vacation-month-view:last-child { animation:sgnVacationMonthReveal .32s cubic-bezier(.2,.8,.2,1) both; }
@keyframes sgnVacationMonthReveal { from { opacity:0; transform:translateX(18px) scale(.985); } to { opacity:1; transform:translateX(0) scale(1); } }
.sgn-vacation-month-view > strong { display:block; margin-bottom:.45rem; color:var(--sgn-heading,#243c52); font-size:.7rem; text-align:center; }
.sgn-vacation-week span { padding:.25rem; color:var(--sgn-muted); font-size:.62rem; font-weight:800; text-align:center; text-transform:uppercase; }
.sgn-vacation-calendar button,.sgn-vacation-calendar .is-out { position:relative; min-height:48px; border:1px solid var(--sgn-border); border-radius:8px; color:var(--sgn-heading,#243c52); background:#fff; font-size:.72rem; transition:.16s ease; }
.sgn-vacation-calendar button:not(.is-blocked):hover { color:#fff; border-color:#2699d8; background:#2699d8; transform:translateY(-1px); }
.sgn-vacation-calendar button.is-selected { color:#fff; border-color:#1789c8; background:#1789c8; box-shadow:0 0 0 3px rgba(38,153,216,.16); }
.sgn-vacation-calendar button.is-in-range { color:#176b9b; border-color:rgba(38,153,216,.32); background:rgba(38,153,216,.14); }
.sgn-vacation-calendar button.is-blocked { color:#9aa7b4; background:repeating-linear-gradient(135deg,rgba(132,150,166,.08),rgba(132,150,166,.08) 5px,transparent 5px,transparent 10px); cursor:not-allowed; }
.sgn-vacation-calendar button.is-blocked.is-in-range { color:#557b96; border-color:rgba(38,153,216,.25); background:rgba(38,153,216,.09); }
.sgn-vacation-calendar button.is-selected,.sgn-vacation-calendar button.is-selected.is-blocked { color:#fff; border-color:#1789c8; background:#1789c8; box-shadow:0 0 0 3px rgba(38,153,216,.16); }
.sgn-vacation-calendar button.is-selected { cursor:ew-resize; }
.sgn-vacation-calendar button.is-blocked i { position:absolute; right:6px; top:6px; width:5px; height:5px; border-radius:50%; background:#ef6675; }
.sgn-vacation-legend { display:flex; flex-wrap:wrap; gap:.8rem; margin-top:.8rem; color:var(--sgn-muted); font-size:.63rem; }
.sgn-vacation-legend span { display:flex; align-items:center; gap:.35rem; }
.sgn-vacation-legend i { width:9px;height:9px;border-radius:3px;border:1px solid var(--sgn-border);background:#fff; }
.sgn-vacation-legend i.is-selected { background:#2699d8;border-color:#2699d8; }
.sgn-vacation-legend i.is-blocked { background:#e7ebef;border-color:#d5dde5; }
.sgn-vacation-summary { display:flex; align-items:center; justify-content:space-between; padding:.75rem; border-radius:8px; color:var(--sgn-muted); background:rgba(45,156,219,.09); font-size:.7rem; }
.sgn-vacation-summary strong { color:#278bc7; font-size:.85rem; }
.sgn-vacation-bonus-days { margin-top:.75rem; padding:.75rem; border:1px solid rgba(45,156,219,.22); border-radius:8px; background:rgba(45,156,219,.07); }
.sgn-vacation-bonus-days small { display:block; margin-top:.4rem; color:var(--sgn-muted); font-size:.63rem; line-height:1.4; }
.sgn-vacation-dialog .modal-title,
.sgn-vacation-dialog .sgn-vacation-calendar-head strong,
.sgn-vacation-dialog .sgn-vacation-person strong { color:#263f55; }
.sgn-vacation-dialog .form-label,
.sgn-vacation-dialog .form-check-label { color:#557086; }
body.sgn-dark-mode .sgn-vacation-dialog,
body:has(#page-container.dark-mode) .sgn-vacation-dialog { color:#aabccc; background:#22313e !important; border-color:#3a5266; }
body.sgn-dark-mode .sgn-vacation-dialog .modal-header,
body.sgn-dark-mode .sgn-vacation-dialog .modal-footer,
body:has(#page-container.dark-mode) .sgn-vacation-dialog .modal-header,
body:has(#page-container.dark-mode) .sgn-vacation-dialog .modal-footer { border-color:#3a5266; }
body.sgn-dark-mode .sgn-vacation-person,
body.sgn-dark-mode .sgn-vacation-calendar-card,
body.sgn-dark-mode .sgn-vacation-form,
body:has(#page-container.dark-mode) .sgn-vacation-person,
body:has(#page-container.dark-mode) .sgn-vacation-calendar-card,
body:has(#page-container.dark-mode) .sgn-vacation-form { background:#263746; border-color:#3a5266; }
body.sgn-dark-mode .sgn-vacation-calendar button,
body:has(#page-container.dark-mode) .sgn-vacation-calendar button { color:#c6d5e2; background:#20303d; border-color:#3a5266; }
body.sgn-dark-mode .sgn-vacation-dialog .form-control,
body.sgn-dark-mode .sgn-vacation-dialog .input-group-text,
body:has(#page-container.dark-mode) .sgn-vacation-dialog .form-control,
body:has(#page-container.dark-mode) .sgn-vacation-dialog .input-group-text { color:#c9d6e1; background:#1e2d39; border-color:#40576b; }
body.sgn-dark-mode .sgn-vacation-dialog .modal-title,
body.sgn-dark-mode .sgn-vacation-dialog .sgn-vacation-calendar-head strong,
body.sgn-dark-mode .sgn-vacation-dialog .sgn-vacation-person strong,
body.sgn-dark-mode .sgn-vacation-dialog .form-label,
body.sgn-dark-mode .sgn-vacation-dialog .form-check-label,
body:has(#page-container.dark-mode) .sgn-vacation-dialog .modal-title,
body:has(#page-container.dark-mode) .sgn-vacation-dialog .sgn-vacation-calendar-head strong,
body:has(#page-container.dark-mode) .sgn-vacation-dialog .sgn-vacation-person strong,
body:has(#page-container.dark-mode) .sgn-vacation-dialog .form-label,
body:has(#page-container.dark-mode) .sgn-vacation-dialog .form-check-label { color:#d4e0ea !important; }
body.sgn-dark-mode .sgn-vacation-dialog .sgn-vacation-person span,
body.sgn-dark-mode .sgn-vacation-dialog .sgn-vacation-person small,
body:has(#page-container.dark-mode) .sgn-vacation-dialog .sgn-vacation-person span,
body:has(#page-container.dark-mode) .sgn-vacation-dialog .sgn-vacation-person small { color:#91abc0; }
body.sgn-dark-mode .sgn-vacation-week span,
body:has(#page-container.dark-mode) .sgn-vacation-week span { color:#9eb3c5; }
body.sgn-dark-mode .sgn-vacation-calendar .is-out,
body:has(#page-container.dark-mode) .sgn-vacation-calendar .is-out { background:#1d2a35; border-color:#34495b; }
body.sgn-dark-mode .sgn-vacation-bonus-days,
body:has(#page-container.dark-mode) .sgn-vacation-bonus-days { background:rgba(38,153,216,.1); border-color:#3e6078; }
body.sgn-dark-mode .sgn-vacation-months.is-two-months .sgn-vacation-month-view,
body:has(#page-container.dark-mode) .sgn-vacation-months.is-two-months .sgn-vacation-month-view { border-color:#3a5266; background:rgba(20,34,45,.22); }
body.sgn-dark-mode .sgn-vacation-month-view > strong,
body:has(#page-container.dark-mode) .sgn-vacation-month-view > strong { color:#d4e0ea; }
body.sgn-dark-mode .sgn-vacation-calendar button.is-in-range,
body:has(#page-container.dark-mode) .sgn-vacation-calendar button.is-in-range { color:#a7d8f4; border-color:rgba(74,173,229,.4); background:rgba(38,153,216,.18); }
body.sgn-dark-mode .sgn-vacation-calendar button.is-selected,
body:has(#page-container.dark-mode) .sgn-vacation-calendar button.is-selected { color:#fff; background:#238fcf; border-color:#50b5ed; }
@media(max-width:850px) {
  .sgn-vacation-layout { grid-template-columns:1fr; }
  .sgn-vacation-person { flex-direction:column; }
  .sgn-vacation-person > div:last-child { text-align:left; }
  .sgn-vacation-months.is-two-months { grid-template-columns:1fr; }
}
@media(max-width:900px) {
  .alert-row,.alert-rule { grid-template-columns:40px 1fr; }
  .alert-rule { grid-template-columns:1fr 1fr; }
  .alert-rule-copy { grid-column:1/-1; }
}
.sgn-process-notice {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: .9rem 0 .25rem;
  padding: .8rem .95rem;
  border: 1px solid rgba(38, 169, 224, .24);
  border-radius: .65rem;
  color: #55708a;
  background: rgba(38, 169, 224, .07);
  font-size: .78rem;
  line-height: 1.45;
}
.sgn-process-notice iconify-icon { flex: 0 0 auto; color: #26a9e0; font-size: 1.3rem; }
[data-theme="dark"] .sgn-process-notice,
.dark .sgn-process-notice {
  color: #aec4d8;
  border-color: rgba(77, 180, 231, .25);
  background: rgba(54, 147, 199, .09);
}
.sgn-dismissal-dialog .select2-container--default .select2-selection--single { min-height: 38px; }
