/* Én Nhân Sự adapter for Én UI v1.0.0: maps shared tokens onto the existing HR shell without changing workflows. */
:root {
    --en-navy: var(--en-ui-primary); --en-navy-dark: var(--en-ui-primary-deep); --en-accent: var(--en-ui-accent);
    --en-canvas: var(--en-ui-canvas); --en-border: var(--en-ui-border); --en-danger: var(--en-ui-danger);
    --en-muted: var(--en-ui-muted); --en-text-strong: var(--en-ui-text);
}
html, body, body.en-app-body, body.en-guest-body { font-family: var(--en-ui-font); }
:focus-visible { outline: 2px solid var(--en-ui-focus); outline-offset: 2px; box-shadow: var(--en-ui-ring); }

/* Controls: 34px / compact 30px on desktop, 44px touch targets on mobile. */
.btn:not(.btn-lg):not(.btn-settle) { --bs-btn-padding-y: 5px; --bs-btn-padding-x: 12px; --bs-btn-font-size: 14px; --bs-btn-line-height: 1.5; --bs-btn-font-weight: 600; --bs-btn-border-radius: var(--en-ui-radius-control); border-radius: var(--en-ui-radius-control); min-height: var(--en-ui-btn-h); display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.btn.btn-sm:not(.btn-lg):not(.btn-settle) { --bs-btn-padding-y: 2px; --bs-btn-padding-x: 10px; --bs-btn-font-size: 13px; min-height: var(--en-ui-btn-h-compact); }
.btn.w-100 { display: flex; }
.btn-primary, .btn-dark { --bs-btn-bg: var(--en-ui-primary); --bs-btn-border-color: var(--en-ui-primary); --bs-btn-hover-bg: var(--en-ui-primary-deep); --bs-btn-hover-border-color: var(--en-ui-primary-deep); --bs-btn-active-bg: var(--en-ui-primary-deep); --bs-btn-disabled-bg: var(--en-ui-primary); --bs-btn-disabled-border-color: var(--en-ui-primary); }
.btn-outline-secondary { --bs-btn-color: var(--en-ui-primary); --bs-btn-border-color: var(--en-ui-control-border); --bs-btn-hover-bg: var(--en-ui-canvas); --bs-btn-hover-color: var(--en-ui-primary-deep); --bs-btn-hover-border-color: var(--en-ui-primary); }
.btn-danger { --bs-btn-bg: var(--en-ui-danger); --bs-btn-border-color: var(--en-ui-danger); --bs-btn-hover-bg: #912018; --bs-btn-hover-border-color: #912018; }
.btn-outline-danger { --bs-btn-color: var(--en-ui-danger); --bs-btn-border-color: var(--en-ui-danger); --bs-btn-hover-bg: var(--en-ui-danger); }
.form-control, .form-select { min-height: var(--en-ui-btn-h); border-color: var(--en-ui-control-border); border-radius: var(--en-ui-radius-control); }
.form-control-sm, .form-select-sm { min-height: var(--en-ui-btn-h-compact); }
.en-toolbar .form-control, .en-toolbar .form-select { min-height: var(--en-ui-btn-h); }
.form-control:focus, .form-select:focus { border-color: var(--en-ui-focus); box-shadow: var(--en-ui-ring); }
.form-label { font-size: 13px; font-weight: 600; color: var(--en-ui-text); }
:is(div, fieldset):focus-within > .form-label { color: var(--en-ui-accent); }
.en-toolbar select[name="month"], .en-toolbar select[name="year"] { width: auto; min-width: 104px; }
.en-toolbar .en-date-field { min-width: 156px; }
.hr-select-full { margin-top: 4px; color: var(--en-ui-text); font-size: 13px; line-height: 1.4; overflow-wrap: anywhere; }
.hr-month-controls { display: flex; align-items: center; gap: 6px; min-width: 0; }
.hr-month-picker { flex: 1 1 auto; min-width: 0; }
.hr-month-arrow { flex: 0 0 auto; width: var(--en-ui-btn-h); padding: 0 !important; }
.hr-month-arrow .en-svg { width: 18px; height: 18px; }
.hr-month-arrow[aria-disabled="true"] { pointer-events: auto; cursor: not-allowed; }

/* Navigation: active item in brand pink. */
.en-nav a.active, .en-nav a.active:hover { background: #fff; border-color: #f3c3dc; color: var(--en-ui-accent); font-weight: 600; }
.en-nav a.active svg { color: var(--en-ui-accent); }
.en-nav a:hover { background: rgba(18, 59, 86, .07); color: var(--en-ui-primary-deep); }

/* Header: 72px desktop, 64px mobile. */
.en-topbar { background: var(--en-ui-primary-deep); border-bottom: 3px solid var(--en-ui-accent); }
.en-topbar-mark { display: inline-flex; align-items: center; flex: 0 0 auto; }
.en-topbar-logo { width: 32px; height: 32px; border-radius: 6px; background: #fff; object-fit: contain; }
.en-topbar > :first-child { flex: 1 1 auto; min-width: 0; }
.en-topbar-heading { min-width: 0; }
.en-topbar-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; min-width: 0; }
.en-icon-btn { width: 40px; height: 40px; border-radius: var(--en-ui-radius-control); }
.en-user-chip { min-height: 44px; gap: 8px; padding: 4px 8px 4px 4px; border-radius: var(--en-ui-radius-control); }
.en-avatar { width: 32px; height: 32px; flex: 0 0 32px; object-fit: cover; }
.en-account-copy { display: grid; min-width: 0; max-width: 200px; text-align: left; line-height: 1.2; }
.en-account-name { overflow: hidden; font-size: 14px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.en-account-meta { overflow: hidden; color: rgba(255,255,255,.78); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.en-account-chevron { width: 16px; height: 16px; opacity: .8; }
.en-user-chip[aria-expanded="true"] .en-account-chevron { transform: rotate(180deg); }
.en-account-menu-header { display: grid; gap: 2px; min-width: 220px; white-space: normal; }
.en-account-menu-header span { color: var(--en-ui-muted); font-size: 12px; }
.en-account-menu .dropdown-item { min-height: 36px; display: flex; align-items: center; }
.en-account-menu .dropdown-item.active, .en-account-menu .dropdown-item[aria-current="page"] { background: transparent; color: var(--en-ui-accent); font-weight: 600; }

/* Topbar notification bell (class names match Én ID / Portal). */
.en-notif-btn { position: relative; }
.en-notif-btn .en-svg { width: 20px; height: 20px; }
.en-notif-btn:hover, .en-notif-btn[aria-expanded="true"] { background: rgba(255,255,255,.22); border-color: rgba(255,255,255,.34); }
.en-notif-badge { position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--en-ui-accent); color: #fff; font-size: 11px; font-weight: 700; line-height: 18px; text-align: center; box-shadow: 0 0 0 2px var(--en-ui-primary-deep); }
.en-notif-badge[hidden] { display: none; }
.en-notif-menu { width: min(360px, calc(100vw - 24px)); margin-top: 8px !important; padding: 0; overflow: hidden; border: 1px solid var(--en-ui-border); border-radius: var(--en-ui-radius); box-shadow: var(--en-ui-shadow-pop); }
.en-notif-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 12px 14px; border-bottom: 1px solid var(--en-ui-border); }
.en-notif-head h2 { margin: 0; color: var(--en-ui-text); font-size: 15px; font-weight: 600; line-height: 1.4; }
.en-notif-head small { color: var(--en-ui-muted); font-size: 12px; font-weight: 500; }
.en-notif-list { max-height: min(420px, 60vh); margin: 0; padding: 4px; overflow-y: auto; list-style: none; }
.en-notif-item { width: 100%; display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: start; gap: 10px; min-height: 44px; padding: 10px; border-radius: 6px; color: var(--en-ui-text); text-align: left; white-space: normal; }
.en-notif-item:hover, .en-notif-item:focus { background: var(--en-ui-canvas); color: var(--en-ui-primary-deep); }
.en-notif-icon { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--en-ui-radius); background: #EAF1F5; color: var(--en-ui-primary-deep); }
.en-notif-copy { min-width: 0; }
.en-notif-copy strong { display: block; font-size: 14px; font-weight: 600; line-height: 1.35; }
.en-notif-copy span:not(.visually-hidden) { display: block; margin-top: 2px; color: var(--en-ui-muted); font-size: 13px; overflow-wrap: anywhere; }
.en-notif-item.is-unread .en-notif-copy strong::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: var(--en-ui-accent); vertical-align: middle; }
.en-notif-empty { padding: 20px 16px; color: var(--en-ui-muted); font-size: 13px; text-align: center; }
.en-notif-empty strong { display: block; margin-bottom: 4px; color: var(--en-ui-text); font-size: 14px; }
.en-notif-foot { padding: 10px 14px 12px; border-top: 1px solid var(--en-ui-border); background: #F7F9FB; }
.en-notif-source { margin: 0; color: var(--en-ui-muted); font-size: 12px; line-height: 1.45; }
.en-notif-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }
.en-notif-actions [aria-disabled="true"] { opacity: .55; cursor: default; }

/* Simple tables: server-side column funnels + column settings. */
.en-column-heading { display: inline-flex; align-items: center; gap: 4px; }
.en-column-filter-trigger { width: 28px; height: 28px; min-width: 28px; display: inline-flex; align-items: center; justify-content: center; margin-left: 4px; padding: 0; border: 0; border-radius: var(--en-ui-radius-control); background: transparent; color: #71818D; vertical-align: middle; }
.en-column-filter-trigger:hover { background: #EAF1F5; color: var(--en-ui-primary-deep); }
.en-column-filter-trigger.is-active { background: #fdeaf4; color: var(--en-ui-accent); box-shadow: inset 0 0 0 1px #f3a6cf; }
.en-column-filter-trigger svg { width: 15px; height: 15px; }
.en-column-filter-popover { position: fixed; inset: auto; width: min(320px, calc(100vw - 24px)); margin: 0; padding: 14px; border: 1px solid var(--en-ui-border); border-radius: var(--en-ui-radius); background: #fff; color: var(--en-ui-text); box-shadow: var(--en-ui-shadow-pop); font-size: 14px; font-weight: 400; text-align: left; white-space: normal; }
.en-column-filter-popover-wide { width: min(420px, calc(100vw - 24px)); }
.en-column-filter-popover::backdrop { background: transparent; }
.en-column-filter-popover .en-date-field { max-width: none; }
.en-column-filter-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; margin-top: 12px; }
.en-date-filter-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 8px; }
.en-table thead th { vertical-align: middle; }
.en-table .en-nofilter { margin-left: 2px; }
.en-table-tools { margin-bottom: 8px; }

@media (max-width: 767.98px) {
    :root { --en-topbar: 64px; --en-content-offset: 76px; }
    .btn:not(.btn-lg):not(.btn-settle), .btn.btn-sm:not(.btn-lg):not(.btn-settle), .form-control, .form-select, .en-toolbar .form-control, .en-toolbar .form-select { min-height: var(--en-ui-tap); }
    .en-icon-btn { width: 44px; height: 44px; }
    .en-topbar { gap: 6px; }
    .en-topbar-actions { gap: 6px; }
    .en-column-filter-trigger, .en-nofilter { width: 44px !important; height: 44px !important; min-width: 44px; }
    .en-account-menu .dropdown-item { min-height: 44px; }
    .en-toolbar .en-date-field { min-width: 0; }
    .hr-month-arrow { width: var(--en-ui-tap); }
    .en-toolbar > .hr-month-field { grid-column: 1 / -1; }
    /* Branch/employee selects show full names, which do not fit half of a phone-width toolbar. */
    .en-toolbar > .hr-toolbar-wide { grid-column: 1 / -1; }
}
@media (max-width: 399.98px) {
    .en-topbar-mark { display: none; }
    .en-topbar .muted { display: none; }
    .en-toolbar > .hr-toolbar-date { grid-column: 1 / -1; }
}
