/* Extracted from HRM dashboard v3.3.4 */

          #hrm-login {
            font-family: 'Inter', Arial, sans-serif;
            min-height: calc(100vh - 120px);
            display: flex; align-items: center; justify-content: center;
            padding: 32px 20px;
            background: radial-gradient(1200px 600px at 50% -10%, #E1F5EE 0%, #F0F2F5 55%, #EAECF1 100%);
          }
          #hrm-login * { box-sizing: border-box; }
          #hrm-login .hrm-card {
            background: #fff; width: 100%; max-width: 408px;
            border: 1px solid #E8EAF0; border-radius: 18px;
            box-shadow: 0 12px 40px rgba(15,110,86,.10), 0 2px 8px rgba(0,0,0,.04);
            padding: 38px 36px 32px; text-align: center;
          }
          #hrm-login .hrm-logo {
            width: 60px; height: 60px; margin: 0 auto 18px;
            background: linear-gradient(135deg, #1D9E75 0%, #0F6E56 100%);
            color: #fff; border-radius: 16px;
            display: flex; align-items: center; justify-content: center; font-size: 30px;
            box-shadow: 0 6px 16px rgba(29,158,117,.32);
          }
          #hrm-login .hrm-title { font-size: 21px; font-weight: 700; color: #1A1D23; letter-spacing: -.01em; }
          #hrm-login .hrm-company { font-size: 13px; color: #6B7280; margin-top: 3px; }
          #hrm-login .hrm-divider { height: 1px; background: #EEF0F4; margin: 24px 0 22px; }
          #hrm-login .hrm-welcome { font-size: 14px; font-weight: 600; color: #1A1D23; margin-bottom: 4px; text-align: left; }
          #hrm-login .hrm-hint { font-size: 12px; color: #9CA3AF; margin-bottom: 18px; text-align: left; }
          #hrm-login .hrm-alert {
            display: flex; align-items: flex-start; gap: 8px; text-align: left;
            background: #FEE2E2; color: #991B1B; border: 1px solid #FCA5A5;
            font-size: 12.5px; line-height: 1.5; padding: 10px 12px; border-radius: 9px; margin-bottom: 18px;
          }
          #hrm-login .hrm-alert i { font-size: 16px; flex-shrink: 0; margin-top: 1px; }
          #hrm-login #loginform p { margin: 0 0 14px; text-align: left; }
          #hrm-login #loginform label { display: block; font-size: 12px; font-weight: 600; color: #374151; margin-bottom: 6px; }
          #hrm-login #loginform input[type=text],
          #hrm-login #loginform input[type=password] {
            width: 100%; padding: 11px 13px; font-size: 14px; font-family: inherit;
            border: 1px solid #D1D5E0; border-radius: 10px; background: #fff; color: #1A1D23;
            transition: border-color .12s, box-shadow .12s;
          }
          #hrm-login #loginform input[type=text]:focus,
          #hrm-login #loginform input[type=password]:focus {
            outline: none; border-color: #1D9E75; box-shadow: 0 0 0 3px rgba(29,158,117,.14);
          }
          #hrm-login .login-remember { display: flex; align-items: center; }
          #hrm-login .login-remember label { display: flex !important; align-items: center; gap: 7px; font-weight: 400 !important; color: #6B7280; margin-bottom: 0 !important; cursor: pointer; }
          #hrm-login .login-remember input { width: 15px; height: 15px; accent-color: #1D9E75; margin: 0; }
          #hrm-login #loginform .login-submit { margin-bottom: 0; }
          #hrm-login #wp-submit {
            width: 100%; padding: 12px; font-size: 14.5px; font-weight: 600; font-family: inherit;
            color: #fff; background: linear-gradient(135deg, #1D9E75 0%, #0F6E56 100%);
            border: none; border-radius: 10px; cursor: pointer; transition: filter .12s, transform .04s;
            box-shadow: 0 4px 12px rgba(29,158,117,.28);
          }
          #hrm-login #wp-submit:hover { filter: brightness(1.05); }
          #hrm-login #wp-submit:active { transform: translateY(1px); }
          #hrm-login .hrm-foot { margin-top: 20px; font-size: 11.5px; color: #9CA3AF; line-height: 1.6; }
          #hrm-login .hrm-foot a { color: #0F6E56; text-decoration: none; font-weight: 500; }
          #hrm-login .hrm-lock { display: inline-flex; align-items: center; gap: 5px; }
  
      /* ── PAYROLL / OVERTIME EMBED SYNC (modules own their own UI) ── */
      #hrm-root .page.hrm-payroll-page,
      #hrm-root .page.hrm-overtime-page { padding: 10px 10px 16px; background: #f9fafb; }
      #hrm-root .page.hrm-payroll-page .page-header,
      #hrm-root .page.hrm-overtime-page .page-header { display: none !important; }
      #hrm-root .page.hrm-payroll-page #ifv-payroll-v3,
      #hrm-root .page.hrm-overtime-page #ifv-ot-root { width: 100%; max-width: none; margin: 0; border-radius: 10px; }
      #hrm-root .page.hrm-payroll-page #ifv-payroll-v3 .wrap,
      #hrm-root .page.hrm-overtime-page #ifv-ot-root .ot-wrap { max-height: calc(100vh - 210px); }
      #hrm-root .page.hrm-payroll-page table { width: max-content; }
      #hrm-root .page.hrm-overtime-page table { min-width: 1250px; }
      #hrm-root .page.hrm-leave-page { padding: 24px; background: var(--color-bg-tertiary); }
      #hrm-root .page.hrm-leave-page .card { overflow: hidden; }
      @media print {
        #hrm-root .sidebar, #hrm-root .page:not(.active), #hrm-root .page.hrm-payroll-page .page-header, #hrm-root .page.hrm-overtime-page .page-header { display: none !important; }
        #hrm-root .app, #hrm-root .main, #hrm-root .page.hrm-payroll-page, #hrm-root .page.hrm-overtime-page { height: auto !important; overflow: visible !important; padding: 0 !important; background: #fff !important; }
      }
      


      #hrm-root {
        --color-brand: #1D9E75;
        --color-brand-dark: #0F6E56;
        --color-brand-bg: #E1F5EE;
        --color-bg-primary: #ffffff;
        --color-bg-secondary: #F7F8FA;
        --color-bg-tertiary: #F0F2F5;
        --color-border: #E8EAF0;
        --color-border-strong: #D1D5E0;
        --color-text-primary: #1A1D23;
        --color-text-secondary: #6B7280;
        --color-text-muted: #9CA3AF;
        --color-green-bg: #E1F5EE;
        --color-green-text: #0F6E56;
        --color-amber-bg: #FEF3C7;
        --color-amber-text: #92400E;
        --color-red-bg: #FEE2E2;
        --color-red-text: #991B1B;
        --color-blue-bg: #DBEAFE;
        --color-blue-text: #1E40AF;
        --color-purple-bg: #EDE9FE;
        --color-purple-text: #5B21B6;
        --color-gray-bg: #F3F4F6;
        --color-gray-text: #374151;
        --radius-sm: 5px;
        --radius-md: 7px;
        --radius-lg: 10px;
        --sidebar-width: 216px;
        --shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
        --shadow-md: 0 4px 12px rgba(0,0,0,.08);
        font-family: 'Inter', Arial, sans-serif;
        background: var(--color-bg-tertiary);
        color: var(--color-text-primary);
        font-size: 13px;
        line-height: 1.5;
      }
      #hrm-root * { box-sizing: border-box; margin: 0; padding: 0; }
  
      /* ── LAYOUT ── */
      #hrm-root .app { display: flex; height: calc(100vh - 120px); min-height: 600px; }
  
      /* ── SIDEBAR ── */
      #hrm-root .sidebar {
        width: var(--sidebar-width); min-width: var(--sidebar-width);
        background: var(--color-bg-primary); border-right: 1px solid var(--color-border);
        display: flex; flex-direction: column; overflow: hidden;
      }
      #hrm-root .sidebar-header { padding: 16px; border-bottom: 1px solid var(--color-border); flex-shrink: 0; }
      #hrm-root .sidebar-brand { display: flex; align-items: center; gap: 9px; }
      #hrm-root .sidebar-icon {
        width: 32px; height: 32px; background: var(--color-brand);
        border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center;
        color: #fff; font-size: 16px; flex-shrink: 0;
      }
      #hrm-root .sidebar-title { font-size: 14px; font-weight: 600; color: var(--color-text-primary); }
      #hrm-root .sidebar-sub { font-size: 11px; color: var(--color-text-muted); margin-top: 1px; }
      #hrm-root .sidebar-nav { flex: 1; overflow-y: auto; padding: 10px 8px 16px; }
      #hrm-root .sidebar-nav::-webkit-scrollbar { width: 4px; }
      #hrm-root .sidebar-nav::-webkit-scrollbar-thumb { background: var(--color-border-strong); border-radius: 2px; }
      #hrm-root .group-label {
        font-size: 10px; font-weight: 600; color: var(--color-text-muted);
        padding: 12px 8px 4px; letter-spacing: .08em; text-transform: uppercase;
      }
      #hrm-root .nav-item {
        display: flex; align-items: center; gap: 9px;
        padding: 7px 10px; cursor: pointer; font-size: 13px;
        color: var(--color-text-secondary); border-radius: var(--radius-md);
        transition: background .1s, color .1s; margin-bottom: 1px;
      }
      #hrm-root .nav-item:hover { background: var(--color-bg-secondary); color: var(--color-text-primary); }
      #hrm-root .nav-item.active { background: var(--color-brand-bg); color: var(--color-brand-dark); font-weight: 500; }
      #hrm-root .nav-item i { font-size: 16px; flex-shrink: 0; }
      #hrm-root .nav-badge {
        margin-left: auto; background: var(--color-red-bg); color: var(--color-red-text);
        font-size: 10px; font-weight: 600; padding: 1px 6px; border-radius: 99px;
      }
  
      /* ── MAIN ── */
      #hrm-root .main { flex: 1; overflow: auto; }
      #hrm-root .page { padding: 24px; display: none; }
      #hrm-root .page.active { display: block; }
      #hrm-root .page-header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 20px; }
      #hrm-root .page-title { font-size: 17px; font-weight: 600; color: var(--color-text-primary); }
      #hrm-root .page-sub { font-size: 12px; color: var(--color-text-secondary); margin-top: 3px; }
      #hrm-root .header-actions { display: flex; gap: 8px; align-items: center; flex-shrink: 0; }
  
      /* ── BUTTONS ── */
      #hrm-root .btn {
        display: inline-flex; align-items: center; gap: 6px;
        padding: 7px 13px; border: 1px solid var(--color-border-strong);
        border-radius: var(--radius-md); font-size: 12px; font-weight: 500;
        cursor: pointer; background: var(--color-bg-primary); color: var(--color-text-primary);
        transition: background .1s; line-height: 1; font-family: inherit;
      }
      #hrm-root .btn:hover { background: var(--color-bg-secondary); }
      #hrm-root .btn-primary { background: var(--color-brand); color: #fff; border-color: var(--color-brand); }
      #hrm-root .btn-primary:hover { background: var(--color-brand-dark); border-color: var(--color-brand-dark); }
      #hrm-root .btn-sm { padding: 4px 10px; font-size: 11px; }
      #hrm-root .btn-icon { padding: 6px 9px; }
  
      /* ── BADGES ── */
      #hrm-root .badge { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 99px; font-size: 11px; font-weight: 500; }
      #hrm-root .badge-green { background: var(--color-green-bg); color: var(--color-green-text); }
      #hrm-root .badge-amber { background: var(--color-amber-bg); color: var(--color-amber-text); }
      #hrm-root .badge-red { background: var(--color-red-bg); color: var(--color-red-text); }
      #hrm-root .badge-blue { background: var(--color-blue-bg); color: var(--color-blue-text); }
      #hrm-root .badge-purple { background: var(--color-purple-bg); color: var(--color-purple-text); }
      #hrm-root .badge-gray { background: var(--color-gray-bg); color: var(--color-gray-text); }
  
      /* ── STATS ── */
      #hrm-root .stats-row { display: grid; gap: 12px; margin-bottom: 18px; }
      #hrm-root .stats-row.cols-4 { grid-template-columns: repeat(4, 1fr); }
      #hrm-root .stats-row.cols-3 { grid-template-columns: repeat(3, 1fr); }
      #hrm-root .stat-card {
        background: var(--color-bg-primary); border: 1px solid var(--color-border);
        border-radius: var(--radius-lg); padding: 16px 18px; box-shadow: var(--shadow-sm);
      }
      #hrm-root .stat-label { font-size: 11px; font-weight: 500; color: var(--color-text-muted); margin-bottom: 8px; text-transform: uppercase; letter-spacing: .04em; }
      #hrm-root .stat-val { font-size: 26px; font-weight: 600; color: var(--color-text-primary); line-height: 1; }
      #hrm-root .stat-val.green { color: var(--color-green-text); }
      #hrm-root .stat-val.amber { color: var(--color-amber-text); }
      #hrm-root .stat-val.red { color: var(--color-red-text); }
      #hrm-root .stat-val.blue { color: var(--color-blue-text); }
      #hrm-root .stat-sub { font-size: 11px; color: var(--color-text-muted); margin-top: 6px; }
  
      /* ── CARD ── */
      #hrm-root .card {
        background: var(--color-bg-primary); border: 1px solid var(--color-border);
        border-radius: var(--radius-lg); padding: 16px; margin-bottom: 14px;
        box-shadow: var(--shadow-sm);
      }
      #hrm-root .card-title { font-size: 13px; font-weight: 600; color: var(--color-text-primary); margin-bottom: 12px; }
  
      /* ── FILTER BAR ── */
      #hrm-root .filter-bar { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; align-items: center; }
      #hrm-root .filter-bar.one-row { flex-wrap: nowrap; overflow-x: auto; }
      #hrm-root .filter-bar.one-row .search-wrap { flex-shrink: 0; }
      #hrm-root .filter-bar.one-row select { flex-shrink: 0; }
      #hrm-root .search-wrap { position: relative; }
      #hrm-root .search-wrap i { position: absolute; left: 9px; top: 50%; transform: translateY(-50%); color: var(--color-text-muted); font-size: 15px; }
      #hrm-root .search-input {
        padding: 7px 10px 7px 32px; border: 1px solid var(--color-border-strong);
        border-radius: var(--radius-md); font-size: 12px; background: var(--color-bg-primary);
        color: var(--color-text-primary); width: 220px; font-family: inherit;
      }
      #hrm-root .search-input:focus { outline: none; border-color: var(--color-brand); box-shadow: 0 0 0 3px rgba(29,158,117,.12); }
      #hrm-root select, #hrm-root input[type=text], #hrm-root input[type=date], #hrm-root input[type=email] {
        padding: 7px 10px; border: 1px solid var(--color-border-strong);
        border-radius: var(--radius-md); font-size: 12px; background: var(--color-bg-primary);
        color: var(--color-text-primary); font-family: inherit;
      }
      #hrm-root select:focus, #hrm-root input:focus { outline: none; border-color: var(--color-brand); box-shadow: 0 0 0 3px rgba(29,158,117,.12); }
      #hrm-root .filter-label { font-size: 12px; color: var(--color-text-secondary); margin-left: 4px; }
  
      /* ── TABLE ── */
      #hrm-root .table-wrap { overflow-x: auto; }
      #hrm-root table { width: 100%; border-collapse: collapse; font-size: 12px; }
      #hrm-root th {
        text-align: left; padding: 9px 12px; font-size: 11px; font-weight: 600;
        color: var(--color-text-muted); border-bottom: 1px solid var(--color-border);
        text-transform: uppercase; letter-spacing: .05em; white-space: nowrap;
        background: var(--color-bg-secondary);
      }
      #hrm-root th:first-child { border-radius: var(--radius-md) 0 0 0; }
      #hrm-root th:last-child { border-radius: 0 var(--radius-md) 0 0; }
      #hrm-root td { padding: 10px 12px; border-bottom: 1px solid var(--color-border); color: var(--color-text-primary); vertical-align: middle; }
      #hrm-root tr:last-child td { border-bottom: none; }
      #hrm-root tbody tr:hover td { background: var(--color-bg-secondary); }
      #hrm-root .td-muted { color: var(--color-text-secondary); }
      #hrm-root .td-strong { font-weight: 500; }
  
      /* ── AVATAR ── */
      #hrm-root .avatar {
        width: 32px; height: 32px; border-radius: 50%;
        display: inline-flex; align-items: center; justify-content: center;
        font-size: 11px; font-weight: 600; flex-shrink: 0;
      }
      #hrm-root .av-green { background: var(--color-green-bg); color: var(--color-green-text); }
      #hrm-root .av-blue { background: var(--color-blue-bg); color: var(--color-blue-text); }
      #hrm-root .av-amber { background: var(--color-amber-bg); color: var(--color-amber-text); }
      #hrm-root .av-purple { background: var(--color-purple-bg); color: var(--color-purple-text); }
      #hrm-root .av-coral { background: #FDECEA; color: #9B3122; }
      #hrm-root .av-teal { background: #CCFBF1; color: #0F766E; }
      #hrm-root .av-pink { background: #FCE7F3; color: #9D174D; }
      #hrm-root .av-indigo { background: #E0E7FF; color: #3730A3; }
      #hrm-root .emp-cell { display: flex; align-items: center; gap: 10px; }
      #hrm-root .emp-name { font-weight:500; white-space:normal; overflow:visible; text-overflow:clip; line-height:1.35; min-width:150px; }
      #hrm-root .emp-cell > div:last-child { min-width:150px; }
      #hrm-root .emp-email { font-size: 11px; color: var(--color-text-muted); margin-top: 1px; }
  
      /* ── PAGINATION ── */
      #hrm-root .pagination {
        display: flex; align-items: center; gap: 6px; justify-content: space-between;
        margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--color-border);
      }
      #hrm-root .pag-info { font-size: 12px; color: var(--color-text-secondary); }
      #hrm-root .pag-controls { display: flex; gap: 4px; align-items: center; }
      #hrm-root .pag-btn {
        width: 30px; height: 30px; border: 1px solid var(--color-border-strong);
        border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center;
        cursor: pointer; background: var(--color-bg-primary); font-size: 12px; color: var(--color-text-secondary);
        transition: background .1s;
      }
      #hrm-root .pag-btn:hover { background: var(--color-bg-secondary); }
      #hrm-root .pag-btn.active { background: var(--color-brand); color: #fff; border-color: var(--color-brand); font-weight: 600; }
      #hrm-root .pag-btn:disabled { opacity: .4; cursor: not-allowed; }
      #hrm-root .pag-pages { display: flex; gap: 3px; }
      #hrm-root .per-page-select { padding: 4px 8px; border: 1px solid var(--color-border-strong); border-radius: var(--radius-md); font-size: 12px; font-family: inherit; }
  
      /* ── INFO ROWS ── */
      #hrm-root .info-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--color-border); font-size: 12px; }
      #hrm-root .info-row:last-child { border-bottom: none; }
      #hrm-root .info-key { color: var(--color-text-secondary); }
      #hrm-root .info-val { font-weight: 500; text-align: right; }
  
      /* ── GRID ── */
      #hrm-root .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
      #hrm-root .three-col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
  
      /* ── SECTION LABEL ── */
      #hrm-root .section-label {
        font-size: 11px; font-weight: 600; color: var(--color-text-muted);
        margin: 16px 0 10px; padding-bottom: 6px; border-bottom: 1px solid var(--color-border);
        text-transform: uppercase; letter-spacing: .06em;
      }
  
      /* ── FORM ── */
      #hrm-root .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
      #hrm-root .form-group { display: flex; flex-direction: column; gap: 4px; }
      #hrm-root .form-label { font-size: 11px; font-weight: 600; color: var(--color-text-secondary); text-transform: uppercase; letter-spacing: .04em; }
      #hrm-root input[type=text], #hrm-root input[type=date], #hrm-root input[type=email], #hrm-root textarea {
        width: 100%; padding: 8px 10px; border: 1px solid var(--color-border-strong);
        border-radius: var(--radius-md); font-size: 12px; font-family: inherit;
      }
  
      /* ── PAY ROWS ── */
      #hrm-root .pay-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--color-border); font-size: 12px; }
      #hrm-root .pay-row:last-child { border-bottom: none; }
      #hrm-root .pay-total { font-size: 15px; font-weight: 600; color: var(--color-green-text); }
  
      /* ── PAYSLIP COMPACT FILTER ── */
      #hrm-root #hrm-pg-payslip .hrm-ps-filter {
        display:grid;
        grid-template-columns:minmax(190px,1.6fr) 145px 105px 78px 150px 145px auto;
        gap:7px;
        align-items:center;
        margin-bottom:0;
        padding:10px 12px;
        overflow:visible;
      }
      #hrm-root #hrm-pg-payslip .hrm-ps-filter .search-wrap {
        min-width:0;
        width:100%;
      }
      #hrm-root #hrm-pg-payslip .hrm-ps-filter .search-input {
        width:100% !important;
        height:32px;
        padding-top:5px;
        padding-bottom:5px;
        font-size:11px;
      }
      #hrm-root #hrm-pg-payslip .hrm-ps-filter select,
      #hrm-root #hrm-pg-payslip .hrm-ps-filter input[type=number] {
        width:100%;
        min-width:0;
        height:32px;
        padding:5px 8px;
        font-size:11px;
      }
      #hrm-root #hrm-pg-payslip .hrm-ps-filter .btn {
        height:32px;
        padding:5px 10px;
        font-size:11px;
        justify-content:center;
      }
      #hrm-root #hrm-pg-payslip .card {
        padding:0;
      }
      #hrm-root #hrm-pg-payslip .table-wrap {
        border-top:1px solid var(--color-border);
      }
      @media (max-width:1200px) {
        #hrm-root #hrm-pg-payslip .hrm-ps-filter {
          grid-template-columns:minmax(180px,1.5fr) 130px 96px 74px 135px 135px auto;
          gap:6px;
          padding:9px 10px;
        }
      }
      @media (max-width:980px) {
        #hrm-root #hrm-pg-payslip .hrm-ps-filter {
          grid-template-columns:repeat(4,minmax(0,1fr));
        }
        #hrm-root #hrm-pg-payslip .hrm-ps-filter .search-wrap {
          grid-column:span 2;
        }
      }

      /* ── ATTENDANCE COMPACT CODE LEGEND ── */
      #hrm-root #ifv-cc-root .cc-legend .ifv-code-desc {
        display:flex!important;
        flex-wrap:wrap!important;
        align-items:center!important;
        gap:4px 10px!important;
        font-size:10px!important;
        line-height:1.35!important;
        width:auto!important;
      }
      #hrm-root #ifv-cc-root .cc-legend .ifv-code-desc > span {
        display:inline-flex!important;
        width:auto!important;
        max-width:none!important;
        flex:0 0 auto!important;
        margin:0!important;
        padding:0!important;
        white-space:nowrap!important;
      }

      /* ── ATTENDANCE ── */
      #hrm-root .att-header { display: grid; grid-template-columns: repeat(7,1fr); gap: 3px; margin-bottom: 4px; text-align: center; }
      #hrm-root .att-header span { font-size: 10px; font-weight: 600; color: var(--color-text-muted); padding: 4px 0; }
      #hrm-root .att-grid { display: grid; grid-template-columns: repeat(7,1fr); gap: 3px; margin-bottom: 10px; }
      #hrm-root .att-day { border-radius: var(--radius-sm); padding: 7px 4px; text-align: center; font-size: 10px; }
      #hrm-root .att-day .day-num { font-size: 12px; font-weight: 600; margin-bottom: 2px; }
      #hrm-root .att-day.present { background: var(--color-green-bg); color: var(--color-green-text); }
      #hrm-root .att-day.late { background: var(--color-amber-bg); color: var(--color-amber-text); }
      #hrm-root .att-day.absent { background: var(--color-red-bg); color: var(--color-red-text); }
      #hrm-root .att-day.weekend { background: var(--color-bg-tertiary); color: var(--color-text-muted); }
      #hrm-root .att-day.holiday { background: var(--color-purple-bg); color: var(--color-purple-text); }
      #hrm-root .att-day.empty { background: transparent; }
  
      /* ── LEGEND ── */
      #hrm-root .legend { display: flex; gap: 14px; flex-wrap: wrap; font-size: 11px; color: var(--color-text-secondary); }
      #hrm-root .legend-item { display: flex; align-items: center; gap: 5px; }
      #hrm-root .legend-dot { width: 10px; height: 10px; border-radius: 2px; flex-shrink: 0; }
  
      /* ── PROGRESS ── */
      #hrm-root .progress-bar { height: 6px; background: var(--color-bg-tertiary); border-radius: 3px; overflow: hidden; }
      #hrm-root .progress-fill { height: 100%; border-radius: 3px; background: var(--color-brand); }
  
      /* ── ALERT ── */
      #hrm-root .alert { padding: 10px 14px; border-radius: var(--radius-md); font-size: 12px; display: flex; gap: 8px; align-items: flex-start; }
      #hrm-root .alert-amber { background: var(--color-amber-bg); color: var(--color-amber-text); }
      #hrm-root .alert-red { background: var(--color-red-bg); color: var(--color-red-text); }
      #hrm-root .alert-blue { background: var(--color-blue-bg); color: var(--color-blue-text); }
      #hrm-root .alert i { flex-shrink: 0; margin-top: 1px; }
  
      /* ── DEPT CARDS ── */
      #hrm-root .dept-icon { width: 38px; height: 38px; border-radius: var(--radius-md); display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }
      #hrm-root .dept-header { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
      #hrm-root .dept-name { font-size: 14px; font-weight: 600; }
      #hrm-root .dept-code { font-size: 11px; color: var(--color-text-muted); }
      #hrm-root .dept-actions { display: flex; gap: 6px; justify-content: flex-end; margin-top: 10px; }
  
      /* ── TIMELINE ── */
      #hrm-root .timeline-item { display: flex; gap: 12px; padding-bottom: 14px; position: relative; }
      #hrm-root .timeline-item:last-child { padding-bottom: 0; }
      #hrm-root .timeline-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--color-brand); flex-shrink: 0; margin-top: 4px; }
      #hrm-root .timeline-line { position: absolute; left: 4px; top: 14px; bottom: 0; width: 1px; background: var(--color-border); }
      #hrm-root .timeline-item:last-child .timeline-line { display: none; }
  
      /* ── FILE ROW ── */
      #hrm-root .file-row { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--color-border); }
      #hrm-root .file-row:last-child { border-bottom: none; }
      #hrm-root .file-info { display: flex; align-items: center; gap: 10px; }
      #hrm-root .file-icon { font-size: 20px; }
  
      /* ── NOTIFICATION ── */
      #hrm-root .notif-item { padding: 12px 14px; border-bottom: 1px solid var(--color-border); display: flex; gap: 12px; align-items: flex-start; }
      #hrm-root .notif-item:last-child { border-bottom: none; }
      #hrm-root .notif-item.unread { background: #FAFFFE; }
      #hrm-root .notif-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--color-brand); flex-shrink: 0; margin-top: 5px; }
      #hrm-root .notif-dot.read { background: transparent; border: 1px solid var(--color-border-strong); }
  
  
      /* ── MODAL ── */
      #hrm-root .hrm-modal-overlay { position: fixed; inset: 0; background: rgba(17,24,39,.5); display: flex; align-items: flex-start; justify-content: center; padding: 40px 16px; z-index: 99999; overflow-y: auto; }
      #hrm-root .hrm-modal { background: #fff; width: 100%; max-width: 560px; border-radius: 14px; box-shadow: 0 20px 60px rgba(0,0,0,.25); overflow: hidden; animation: hrmModalIn .16s ease; }
      @keyframes hrmModalIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
      #hrm-root .hrm-modal-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--color-border); }
      #hrm-root .hrm-modal-title { font-size: 15px; font-weight: 600; color: var(--color-text-primary); }
      #hrm-root .hrm-modal-x { border: none; background: transparent; cursor: pointer; font-size: 18px; color: var(--color-text-muted); line-height: 1; padding: 4px; border-radius: 6px; }
      #hrm-root .hrm-modal-x:hover { background: var(--color-bg-tertiary); color: var(--color-text-primary); }
      #hrm-root .hrm-modal-body { padding: 20px; max-height: 62vh; overflow-y: auto; }
      #hrm-root .hrm-modal-foot { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 20px; border-top: 1px solid var(--color-border); background: var(--color-bg-secondary); }
      #hrm-root .hrm-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
      #hrm-root .hrm-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
      #hrm-root .hrm-form-grid .hrm-field { margin-bottom: 0; }
      #hrm-root .hrm-label { font-size: 12px; font-weight: 600; color: var(--color-gray-text); }
      #hrm-root .hrm-input { width: 100%; padding: 9px 11px; font-size: 13px; font-family: inherit; border: 1px solid var(--color-border-strong); border-radius: 8px; background: #fff; color: var(--color-text-primary); box-sizing: border-box; }
      #hrm-root .hrm-input:focus { outline: none; border-color: var(--color-brand); box-shadow: 0 0 0 3px rgba(29,158,117,.14); }
      #hrm-root textarea.hrm-input { resize: vertical; }
      /* ── TOAST ── */
      #hrm-root .hrm-toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(20px); background: var(--color-text-primary); color: #fff; font-size: 13px; padding: 11px 18px; border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.2); display: flex; align-items: center; gap: 8px; opacity: 0; transition: all .3s; z-index: 100000; }
      #hrm-root .hrm-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
      #hrm-root .hrm-toast i { color: #34D399; font-size: 16px; }
      #hrm-root .hrm-action-bar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
      #hrm-root .hrm-pipeline { display: flex; flex-wrap: wrap; gap: 8px; align-items: stretch; }
      #hrm-root .hrm-pipe-step { flex: 1; min-width: 110px; border: 1px solid var(--color-border); border-radius: 10px; padding: 10px 12px; background: var(--color-bg-secondary); position: relative; }
      #hrm-root .hrm-pipe-step .hrm-pipe-num { font-size: 10px; font-weight: 600; color: var(--color-brand-dark); background: var(--color-brand-bg); border-radius: 20px; padding: 1px 7px; display: inline-block; }
      #hrm-root .hrm-pipe-step .hrm-pipe-name { font-size: 12px; font-weight: 500; margin-top: 6px; color: var(--color-text-primary); }
      #hrm-root .hrm-pipe-step .hrm-pipe-count { font-size: 18px; font-weight: 700; margin-top: 4px; }
      #hrm-root .hrm-pipe-step.hrm-pipe-final { background: var(--color-green-bg); border-color: var(--color-green-text); }
      


        #hrm-native-employee-host {
          position:absolute !important;
          width:0 !important;
          height:0 !important;
          overflow:visible !important;
          pointer-events:none;
        }
        #hrm-native-employee-host #ifv-emp {
          width:0 !important;
          height:0 !important;
          min-height:0 !important;
          overflow:visible !important;
          background:transparent !important;
          pointer-events:none;
        }
        #hrm-native-employee-host #ifv-emp > *:not(.mo) {
          display:none !important;
        }
        #hrm-native-employee-host #ifv-emp > .mo {
          display:flex !important;
          pointer-events:auto;
        }
      

'
        + '*{box-sizing:border-box;margin:0;padding:0;font-family:sans-serif}'
        + 'body{padding:24px;background:#fff;color:#111}'
        + 'table{width:100%;border-collapse:collapse}'
        + 'td{font-size:12px;padding:5px 10px;border-bottom:1px solid #f0f0f0}'
        + '@media print{body{padding:8px}}

/* ── SIDEBAR ACCOUNT / LOGOUT ── */
#hrm-root .sidebar-account {
  flex-shrink: 0;
  border-top: 1px solid var(--color-border);
  padding: 10px 8px;
  background: var(--color-bg-primary);
}
#hrm-root .sidebar-account-meta {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 4px 8px 9px;
  min-width: 0;
}
#hrm-root .sidebar-account-avatar {
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: var(--color-bg-secondary);
  color: var(--color-text-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
#hrm-root .sidebar-account-avatar i { font-size: 16px; }
#hrm-root .sidebar-account-copy { min-width: 0; flex: 1; }
#hrm-root .sidebar-account-name {
  font-size: 12px;
  line-height: 1.35;
  font-weight: 600;
  color: var(--color-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#hrm-root .sidebar-account-role {
  margin-top: 1px;
  font-size: 10px;
  line-height: 1.35;
  color: var(--color-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#hrm-root .sidebar-logout {
  display: flex;
  align-items: center;
  gap: 9px;
  width: 100%;
  padding: 8px 10px;
  border-radius: var(--radius-md);
  text-decoration: none;
  color: var(--color-red-text);
  font-size: 13px;
  font-weight: 500;
  transition: background .1s, color .1s;
}
#hrm-root .sidebar-logout:hover {
  background: var(--color-red-bg);
  color: var(--color-red-text);
}
#hrm-root .sidebar-logout i { font-size: 16px; flex-shrink: 0; }


/* v3.6.41 — Employee master table: readable full names + compact financial columns */
#hrm-root .table-wrap { overflow-x:auto; }
#hrm-root .employee-master-table { min-width:1280px; table-layout:auto; }
#hrm-root .employee-master-table th,
#hrm-root .employee-master-table td { text-align:left; }
#hrm-root .employee-master-table .employee-name-head,
#hrm-root .employee-master-table .employee-name-cell { min-width:250px; width:250px; }
#hrm-root .employee-master-table .employee-name-cell { white-space:normal; overflow:visible; }
#hrm-root .employee-master-table .emp-name { display:block; width:auto; max-width:none; min-width:0; white-space:normal; overflow:visible; text-overflow:clip; word-break:normal; font-weight:600; color:var(--color-text-primary); text-align:left; }
#hrm-root .employee-master-table .emp-email { white-space:normal; overflow-wrap:anywhere; text-align:left; }
#hrm-root .employee-master-table .emp-code-cell { min-width:125px; color:var(--color-brand); white-space:nowrap; }
#hrm-root .employee-master-table .num-col,
#hrm-root .employee-master-table .num-cell { text-align:right; white-space:nowrap; min-width:110px; }
#hrm-root .employee-master-table .nowrap { white-space:nowrap; }

/* v3.6.48 responsive filter containment */
#hrm-root{max-width:100%;overflow-x:hidden;}
#hrm-root .filter-bar,
#hrm-root .filter-bar.one-row{width:100%;max-width:100%;display:flex;flex-wrap:wrap;overflow-x:visible;align-items:center;}
#hrm-root .filter-bar .search-wrap,
#hrm-root .filter-bar.one-row .search-wrap{flex:2 1 260px;min-width:180px;max-width:100%;}
#hrm-root .filter-bar .search-wrap .search-input,
#hrm-root .filter-bar.one-row .search-wrap .search-input{width:100%;min-width:0;max-width:100%;}
#hrm-root .filter-bar select,
#hrm-root .filter-bar.one-row select{flex:1 1 150px;min-width:130px;max-width:100%;width:auto;}
#hrm-root .filter-bar > .btn,
#hrm-root .filter-bar > button{flex:0 0 auto;max-width:100%;}
@media(max-width:900px){
  #hrm-root .filter-bar .search-wrap,
  #hrm-root .filter-bar.one-row .search-wrap{flex:1 1 100%;}
  #hrm-root .filter-bar select,
  #hrm-root .filter-bar.one-row select{flex:1 1 calc(50% - 8px);min-width:0;}
}
@media(max-width:560px){
  #hrm-root .filter-bar select,
  #hrm-root .filter-bar.one-row select{flex:1 1 100%;width:100%;}
}

/* 3.6.72 — Leave/Overtime dashboard */
#ifv-hrm-root .ifv-requests-overview, #hrm-root .ifv-requests-overview{margin:0 0 16px;padding:16px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;max-width:100%;overflow:hidden}
#ifv-hrm-root .ifv-request-dashboard-grid, #hrm-root .ifv-request-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
#ifv-hrm-root .ifv-request-kpis small, #hrm-root .ifv-request-kpis small{display:block;margin-top:5px;font-size:11px;color:#64748b;font-weight:500;white-space:normal}
#ifv-hrm-root .ifv-request-dashboard-grid>* , #hrm-root .ifv-request-dashboard-grid>*{min-width:0;max-width:100%;overflow:hidden}
@media(max-width:980px){#ifv-hrm-root .ifv-request-dashboard-grid,#hrm-root .ifv-request-dashboard-grid{grid-template-columns:1fr}}
