  
    :root{
      --primary:#ff5f1f;
      --primary-soft:#fff3ed;
      --bg:#f4f7fb;
      --card:#ffffff;
      --line:#e6edf5;
      --text:#1b2537;
      --muted:#778195;
      --green:#20c66a;
      --green-soft:#ebfaf2;
      --blue:#1677ff;
      --blue-soft:#edf4ff;
      --yellow:#f5a400;
      --yellow-soft:#fff7e6;
      --red:#ef4444;
      --red-soft:#fff0f0;
      --gray:#667085;
      --gray-soft:#f2f4f7;
      --shadow:0 8px 24px rgba(24,39,75,.07);
      --radius:16px;
    }

    *{box-sizing:border-box}
    body{
      margin:0;
      font-family:"Inter Tight", sans-serif;
      background:var(--bg);
      color:var(--text);
      font-size:13px;
      font-weight:400;
    }


    .login-screen{
      position:fixed;
      inset:0;
      z-index:10000;
      min-height:100vh;
      display:flex;
      align-items:center;
      justify-content:center;
      background:
        radial-gradient(circle at top left, rgba(255,95,31,.14), transparent 34%),
        linear-gradient(135deg,#f6f8fc,#eef3f8);
      padding:24px;
    }
    .login-screen.hidden,
    body.is-authenticated #loginScreen{
      display:none!important;
      visibility:hidden!important;
      pointer-events:none!important;
      opacity:0!important;
    }
    body.is-authenticated #mainApp{
      display:flex!important;
    }
    .login-card{
      width:430px;
      background:#fff;
      border:1px solid var(--line);
      border-radius:22px;
      box-shadow:0 28px 80px rgba(24,39,75,.16);
      padding:34px;
      text-align:center;
    }
    .login-logo{
      width:68px;
      height:68px;
      border-radius:20px;
      background:linear-gradient(135deg,#ff7a2f,#ff4f16);
      color:#fff;
      display:flex;
      align-items:center;
      justify-content:center;
      font-size:28px;
      margin:0 auto 18px;
      box-shadow:0 14px 28px rgba(255,95,31,.24);
    }
    .login-card h1{
      margin:0;
      font-size:26px;
      font-weight:600;
      color:#1b2537;
    }
    .login-card p{
      margin:8px 0 24px;
      color:#667085;
      font-size:14px;
    }
    .login-form{
      display:grid;
      gap:10px;
      text-align:left;
    }
    .login-form label{
      color:#344054;
      font-weight:600;
      margin-top:4px;
    }
    .login-input{
      height:46px;
      border:1px solid var(--line);
      border-radius:12px;
      padding:0 14px;
      font-family:"Inter Tight",sans-serif;
      font-size:14px;
      outline:none;
    }
    .login-input:focus{
      border-color:#ffb08a;
      box-shadow:0 0 0 4px rgba(255,95,31,.08);
    }
    .login-btn{
      height:46px;
      margin-top:8px;
      border:none;
      border-radius:12px;
      background:var(--primary);
      color:#fff;
      font-family:"Inter Tight",sans-serif;
      font-weight:600;
      cursor:pointer;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:9px;
      box-shadow:0 12px 22px rgba(255,95,31,.20);
    }
    .login-btn:disabled{
      opacity:.72;
      cursor:not-allowed;
      box-shadow:none;
    }
    .login-demo{
      margin-top:18px;
      padding:14px;
      border-radius:14px;
      background:#f8fafc;
      color:#667085;
      text-align:left;
      line-height:1.7;
      font-size:13px;
    }
    .app-locked{
      display:none;
    }
    .login-user-box{
      display:flex;
      align-items:center;
      gap:8px;
      padding:5px 9px;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fff;
      min-height:42px;
      max-width:190px;
    }
    .login-user-box .avatar-grad{
      width:28px;
      height:28px;
      flex:0 0 28px;
    }
    .login-user-name{
      font-weight:700;
      color:#1d2939;
      font-size:12px;
      line-height:1.1;
      max-width:135px;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .login-user-role{
      color:#667085;
      font-size:10.5px;
      margin-top:1px;
      line-height:1.1;
      max-width:135px;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .logout-btn{
      height:40px;
      color:#ef4444;
      border-color:#fecaca;
      background:#fff;
    }

    .app{display:flex;min-height:100vh}
    .sidebar{
      width:92px;
      background:#fff;
      border-right:1px solid var(--line);
      display:flex;
      flex-direction:column;
      align-items:center;
      gap:10px;
      padding:16px 0;
      flex-shrink:0;
      box-shadow:2px 0 12px rgba(24,39,75,.03);
      z-index:2;
    }
    .side-grid{
      width:38px;height:38px;
      display:flex;align-items:center;justify-content:center;
      color:#667085;font-size:20px;margin-bottom:6px;
    }
    .nav-item{
      width:84px;min-height:68px;
      display:flex;flex-direction:column;align-items:center;justify-content:center;
      gap:7px;
      color:#667085;
      font-size:12px;
      font-weight:500;
      border-left:4px solid transparent;
      border-radius:0 12px 12px 0;
      cursor:pointer;
      user-select:none;
    }
    .nav-item i{font-size:20px}
    .nav-item.active{
      background:linear-gradient(90deg,#fff0e8 0%,#fff 100%);
      color:var(--primary);
      border-left-color:var(--primary);
    }

    .main{flex:1;min-width:0;display:flex;flex-direction:column}
    .topbar{
      min-height:76px;
      background:#fff;
      border-bottom:1px solid var(--line);
      display:flex;
      align-items:center;
      justify-content:space-between;
      padding:0 24px;
      box-shadow:0 2px 10px rgba(24,39,75,.03);
      gap:16px;
    }
    .brand{display:flex;align-items:center;gap:15px;min-width:0}
    .plus{
      width:32px;height:32px;border-radius:8px;border:2px solid var(--primary);
      color:var(--primary);display:flex;align-items:center;justify-content:center;
      font-size:15px;font-weight:600;
    }
    .top-name{font-size:19px;font-weight:600;letter-spacing:-.2px}
    .top-subtitle{
      margin-top:4px;
      color:#667085;
      font-size:12px;
      font-weight:400;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .top-actions{
      display:flex;
      align-items:center;
      justify-content:flex-end;
      gap:10px;
      flex-shrink:0;
    }
    .gear{font-size:16px;color:#748096}
    .avatar-grad{
      width:38px;height:38px;border-radius:50%;
      background:linear-gradient(135deg,#ff8a3d,#a913ff 70%,#6757ff);
    }

    .tabbar{
      height:56px;background:#fff;border-bottom:1px solid var(--line);
      display:flex;align-items:end;justify-content:space-between;
      padding:0 24px;
    }
    .tabs{display:flex;height:100%;align-items:end;gap:32px}
    .tab{
      height:100%;display:flex;align-items:center;position:relative;
      color:#6f788b;font-size:15px;font-weight:600;cursor:pointer;
    }
    .tab.active{color:var(--primary)}
    .tab.active:after{
      content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--primary);
      border-radius:4px 4px 0 0;
    }
    .header-actions{display:none}
    .btn,.update-btn,.reset-btn{
      height:38px;padding:0 16px;border:1px solid var(--line);
      background:#fff;border-radius:10px;color:#5f6b7d;font-weight:500;
      display:flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;text-align:center;
      font-family:"Inter Tight", sans-serif;
    }
    .update-btn,.btn-primary{
      background:var(--primary);
      color:#fff;
      border-color:var(--primary);
      justify-content:center;
      text-align:center;
    }
    .btn-danger{
      background:var(--red);
      border-color:var(--red);
      color:#fff;
    }
    .btn:disabled,.update-btn:disabled,.reset-btn:disabled,.btn-primary:disabled{
      background:#eef1f5!important;
      border-color:#e3e8ef!important;
      color:#b0b8c5!important;
      cursor:not-allowed!important;
      box-shadow:none!important;
    }

    .content{padding:24px 26px 30px;overflow:auto}
    .page-title{margin:0 0 16px;font-size:20px;font-weight:600;letter-spacing:-.2px}
    .page{display:none}
    .page.active{display:block!important}

    .profile-tabstrip{
      display:flex;
      align-items:center;
      gap:10px;
      margin:0 0 16px;
      padding:6px;
      background:#fff;
      border:1px solid var(--line);
      border-radius:16px;
      box-shadow:var(--shadow);
      width:max-content;
      max-width:100%;
    }
    .profile-tab{
      height:40px;
      padding:0 16px;
      border:0;
      border-radius:12px;
      background:transparent;
      color:#667085;
      display:flex;
      align-items:center;
      gap:8px;
      cursor:pointer;
      font-family:"Inter Tight", sans-serif;
      font-weight:700;
      white-space:nowrap;
      transition:.18s ease;
    }
    .profile-tab:hover{background:#f8fafc;color:#25324a}
    .profile-tab.active{
      background:linear-gradient(135deg,#fff3ed,#ffe8db);
      color:var(--primary);
      box-shadow:0 8px 18px rgba(255,95,31,.12);
    }
    .profile-edit-btn{
      height:40px;
      padding:0 14px;
      border:1px solid #ffd3bd;
      border-radius:12px;
      background:#fff7f2;
      color:var(--primary);
      display:none;
      align-items:center;
      gap:8px;
      cursor:pointer;
      font-family:"Inter Tight", sans-serif;
      font-weight:700;
      white-space:nowrap;
      margin-left:6px;
    }
    .profile-edit-btn:hover{background:#fff0e8;border-color:#ffb995;}
    .profile-empty-state{
      min-height:360px;
      display:flex;
      align-items:center;
      justify-content:center;
      flex-direction:column;
      gap:10px;
      text-align:center;
      color:#667085;
      background:#fff;
      border:1px solid var(--line);
      border-radius:18px;
      box-shadow:var(--shadow);
      padding:34px;
    }
    .profile-empty-state .empty-icon{
      width:92px;
      height:92px;
      border-radius:50%;
      display:flex;
      align-items:center;
      justify-content:center;
      background:#f8fafc;
      color:#c0cad8;
      font-size:40px;
      border:1px dashed #d7deea;
    }
    .profile-empty-state .empty-title{font-size:18px;font-weight:800;color:#25324a}
    .profile-empty-state .empty-text{max-width:420px;line-height:1.6}
    .my-attendance-empty-state{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-height:360px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;color:#98a2b3;padding:42px 24px}
    .my-attendance-empty-state .empty-icon{width:92px;height:92px;border-radius:50%;border:2px dashed #d7deea;display:flex;align-items:center;justify-content:center;margin-bottom:16px;color:#c8d0dc;font-size:40px;background:#fbfcfe}
    .my-attendance-empty-state .empty-title{font-size:18px;font-weight:800;color:#25324a;margin-bottom:8px}
    .my-attendance-empty-state .empty-text{max-width:480px;line-height:1.65;color:#667085}

    .profile-3col{
      display:grid;
      grid-template-columns:34% 32% 34%;
      gap:14px;
      align-items:start;
    }
    .col-stack{display:grid;gap:14px}

    .card{
      background:var(--card);
      border:1px solid var(--line);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
    }

    .profile-card{padding:22px 22px 20px}
    .profile-head{
      display:grid;
      grid-template-columns:112px 1fr;
      gap:18px;
      align-items:center;
    }
    .portrait{
      width:100px;height:100px;border-radius:50%;
      object-fit:cover;border:4px solid #ffe1d7;
    }
    .employee-title{font-size:22px;font-weight:600;margin:0 0 8px;line-height:1.15}
    .employee-code{color:#6f788b;font-size:14px;font-weight:500;margin-bottom:10px}
    .mini-line{color:#667085;line-height:1.45;margin:4px 0}
    #divisionLine{display:none!important}
    .dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--primary);margin:0 8px;vertical-align:middle}
    .status{
      display:inline-flex;align-items:center;gap:8px;
      background:var(--green-soft);color:#14984a;border:1px solid #c7efd6;
      border-radius:9px;padding:7px 12px;font-weight:600;margin-top:8px;
    }
    .status:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green)}
    .divider{height:1px;background:var(--line);margin:20px 0 16px}

    .simple-row{display:grid;grid-template-columns:128px 1fr;gap:12px;align-items:center;min-height:32px}
    .label{color:#758095;font-weight:400}
    .value{color:var(--text);font-weight:600}
    .link{color:var(--blue);font-weight:600}
    .change-link{color:var(--primary);font-weight:600;margin-left:10px;cursor:pointer}
    .account-security-block{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}
    .account-security-header{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:700;margin-bottom:14px;color:#1f2937}
    .account-security-header .sec-icon{width:34px;height:34px;border-radius:12px;border:1px solid #ffd8c2;background:#fff7f2;color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
    .account-security-panel{border:1px solid #ebeef4;background:#fff;border-radius:16px;overflow:hidden}
    .account-security-row{display:grid;grid-template-columns:44px 150px 1fr auto;align-items:center;gap:12px;padding:14px 16px}
    .account-security-row + .account-security-row{border-top:1px solid #f1f4f8}
    .account-security-row .row-icon{width:28px;height:28px;border-radius:999px;background:#f6f7fb;color:#667085;display:flex;align-items:center;justify-content:center;font-size:13px}
    .account-security-row .row-label{color:#475467;font-weight:600}
    .account-security-row .row-value{color:#111827;font-weight:600}
    .account-security-row .row-action{color:var(--primary);font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
    .account-security-row .row-action i{font-size:12px}
    @media(max-width:768px){.account-security-row{grid-template-columns:36px 1fr;}.account-security-row .row-value{grid-column:2}.account-security-row .row-action{grid-column:2;justify-self:start}}

    .section-card{padding:20px 22px}
    .card-title{
      display:flex;align-items:center;gap:11px;
      font-size:17px;font-weight:600;margin-bottom:16px;
    }
    .icon-box{
      width:28px;height:28px;border:2px solid var(--primary);border-radius:8px;
      color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;
    }
    .icon-plain{
      width:28px;height:28px;color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:21px;flex-shrink:0;
    }

    .merged-card{padding:0;overflow:hidden}
    .merged-section{padding:20px 22px}
    .merged-divider{height:1px;background:var(--line);margin:0 22px}
    .info-list{display:grid;gap:11px}
    .info-row{display:grid;grid-template-columns:150px 1fr;gap:12px;line-height:1.35}
    .thin-line{height:1px;background:var(--line);margin:2px 0}

    .note-box{
      background:linear-gradient(135deg,#fff8f4,#fff);
      border:1px solid #ffd8c4;border-radius:12px;
      padding:16px 18px;line-height:1.7;font-size:14px;position:relative;
    }
    .note-box:after{
      content:"”";position:absolute;right:16px;bottom:-6px;color:#ffc29f;font-size:42px;font-weight:600;line-height:1;
    }

    .cccd-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
    .cccd-preview{
      border:1.4px dashed #c8d9ef;background:linear-gradient(145deg,#f7fbff,#fff);
      border-radius:13px;padding:12px;min-height:142px;
      display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
      overflow:hidden;
    }
    .cccd-preview img{
      max-width:100%;
      max-height:110px;
      object-fit:cover;
      border-radius:9px;
      border:1px solid var(--line);
    }
    .id-card{
      width:100%;max-width:190px;height:88px;border-radius:9px;background:linear-gradient(135deg,#dfe8f7,#f7faff);
      border:1px solid #d8e2f2;position:relative;overflow:hidden;
    }
    .id-card:before{
      content:"";position:absolute;left:14px;top:18px;width:34px;height:34px;border-radius:50%;background:#9aacc4;
      box-shadow:0 40px 0 -9px #9aacc4;
    }
    .id-card:after{
      content:"";position:absolute;left:64px;top:19px;width:98px;height:8px;border-radius:999px;background:#aab9d0;
      box-shadow:0 20px 0 -2px #c4cedd,0 38px 0 -2px #c4cedd,56px 38px 0 -2px #c4cedd;
    }
    .id-card.back:before{display:none}
    .id-card.back:after{
      left:22px;top:20px;width:140px;
      box-shadow:0 20px 0 -2px #c4cedd,0 38px 0 -2px #c4cedd,0 56px 0 -2px #c4cedd;
    }
    .cccd-caption{margin-top:9px;color:#6f788b;font-weight:500}

    .timeline{position:relative;display:grid;gap:18px;padding-left:7px}
    .timeline:before{content:"";position:absolute;left:7px;top:10px;bottom:10px;width:2px;background:#ffd4c1}
    .timeline-item{display:grid;grid-template-columns:94px 1fr;gap:12px;position:relative;padding-left:20px}
    .timeline-item:before{
      content:"";position:absolute;left:2px;top:4px;width:11px;height:11px;border-radius:50%;background:var(--primary);
      border:3px solid #fff;box-shadow:0 0 0 2px #ffd4c1;
    }
    .time{font-weight:600;color:#364152}

    .skills{display:flex;flex-wrap:wrap;gap:10px}
    .skill{
      display:inline-flex;align-items:center;gap:8px;
      background:#fff7f2;border:1px solid #ffdecd;color:#364152;
      border-radius:999px;padding:8px 12px;font-weight:500;
    }
    .skill i{color:var(--primary)}

    .staff-toolbar,.filter-card{
      display:flex;
      align-items:center;
      gap:12px;
      margin-bottom:14px;
      flex-wrap:wrap;
    }
    .control{
      height:38px;
      border:1px solid var(--line);
      border-radius:10px;
      padding:0 12px;
      font-family:"Inter Tight", sans-serif;
      background:#fff;
      outline:none;
      min-width:160px;
    }
    .search-control{min-width:320px}
    .table-card{
      background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;
    }
    table{width:100%;border-collapse:collapse;table-layout:fixed}
    th,td{border-bottom:1px solid var(--line);padding:13px 16px;text-align:left;height:54px}
    th{color:#667085;font-weight:500;background:#fff}
    td{font-weight:500}
    tr:last-child td{border-bottom:none}
    .data-row{cursor:pointer}
    .data-row:hover{background:#fff8f4}
    .data-row.selected{background:linear-gradient(90deg,#fff4ed,#fff);box-shadow:inset 4px 0 0 var(--primary)}
    .name-cell{display:flex;align-items:center;gap:10px;min-width:0}
    .avatar-small{width:34px;height:34px;border-radius:50%;object-fit:cover;background:#e2e8f0}
    .badge{
      display:inline-flex;align-items:center;justify-content:center;
      min-width:78px;height:28px;border-radius:999px;font-size:12px;font-weight:500;padding:0 10px;
    }
    .badge.green{background:var(--green-soft);color:var(--green)}
    .badge.yellow{background:var(--yellow-soft);color:#de8b00}
    .badge.blue{background:var(--blue-soft);color:var(--blue)}
    .badge.red{background:var(--red-soft);color:var(--red)}
    .badge.gray{background:var(--gray-soft);color:#475467}
    .ot-chip{
      display:inline-flex;align-items:center;justify-content:center;
      min-width:54px;height:28px;border-radius:8px;border:1px solid #ffc8ac;
      color:var(--primary);background:#fff;font-weight:600;
    }
    .ot-chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}

    .attendance-branch-card{
      background:#fff;
      border:1px solid var(--line);
      border-radius:16px;
      box-shadow:var(--shadow);
      overflow:hidden;
      margin-bottom:14px;
    }
    .attendance-branch-head{
      min-height:54px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      padding:14px 18px;
      border-bottom:1px solid var(--line);
      background:#fbfcfe;
    }
    .attendance-branch-title{
      display:flex;
      align-items:center;
      gap:10px;
      font-size:15px;
      font-weight:600;
      color:#1d2939;
    }
    .attendance-branch-title i{color:#1677ff;}
    .attendance-branch-note{color:#667085;font-size:12px;}
    .attendance-branch-tree{padding:10px 16px 14px;}
    .att-branch-row{
      min-height:42px;
      display:flex;
      align-items:center;
      gap:10px;
      border-bottom:1px solid #edf2f7;
      cursor:pointer;
      position:relative;
      border-radius:10px;
      padding-right:10px;
    }
    .att-branch-row:last-child{border-bottom:none;}
    .att-branch-row:hover{background:#f8fbff;}
    .att-branch-row.active{
      background:linear-gradient(90deg,#edf5ff,#fff);
      box-shadow:inset 4px 0 0 #1677ff;
    }
    .att-branch-content{
      display:flex;
      align-items:center;
      gap:10px;
      min-width:0;
      width:100%;
      position:relative;
    }
    .att-branch-l0 .att-branch-content{padding-left:4px;}
    .att-branch-l1 .att-branch-content{padding-left:42px;}
    .att-branch-l1 .att-branch-content:before{
      content:"";
      position:absolute;
      left:20px;
      top:-21px;
      bottom:50%;
      width:18px;
      border-left:1px dashed #cbd5e1;
      border-bottom:1px dashed #cbd5e1;
      border-bottom-left-radius:10px;
    }
    .att-branch-icon{
      width:30px;
      height:30px;
      border-radius:9px;
      display:flex;
      align-items:center;
      justify-content:center;
      flex-shrink:0;
      background:#eff6ff;
      color:#2563eb;
    }
    .att-branch-icon.emp{background:#f2f4f7;color:#667085;border-radius:50%;}
    .att-branch-name{
      font-weight:600;
      color:#25324a;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .att-branch-meta{
      margin-left:auto;
      color:#667085;
      font-size:12px;
      white-space:nowrap;
    }
    .attendance-grid{
      display:grid;
      grid-template-columns:360px minmax(360px,430px);
      gap:16px;
      align-items:start;
      justify-content:start;
    }
    .attendance-tree-grid{align-items:start;}
    .attendance-branch-card-grid{margin-bottom:0;min-height:520px;width:360px;}
    .attendance-branch-card-grid .attendance-branch-tree{max-height:620px;overflow:auto;}
    /* Chỉ giữ nhánh cây + panel sửa công trong trang Chấm công.
       Nếu còn table cũ trong HTML/cache thì ép ẩn ngay trên giao diện. */
    #attendancePage .legacy-attendance-table,
    #attendancePage .attendance-list-old,
    #attendancePage .table-card:has(#attendanceTable){display:none!important;}
    .att-panel{padding:20px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
    .panel-title{font-size:18px;font-weight:600;margin-bottom:14px}
    .employee-select{
      display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:12px;
    }
    .option-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
    .option-card{
      position:relative;min-height:84px;border:1px solid var(--line);border-radius:12px;background:#fff;
      display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-weight:600;
    }
    .option-card.green{border-color:#b8e8cb;background:#f6fdf9;color:#14984a}
    .option-card.yellow{border-color:#ffe0a3;background:#fffaf0;color:#e69000}
    .option-card.blue{border-color:#c9defe;background:#f6faff;color:#1677ff}
    .option-card.red{border-color:#ffc9c9;background:#fff8f8;color:#ef4444}
    .option-card.active:after{
      content:"✓";position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;
    }
    .option-card.manual-hours:after{display:none}
    .ot-options{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:8px}
    .ot-option{height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;font-family:"Inter Tight"}
    .ot-option.active{background:var(--primary);border-color:var(--primary);color:#fff}
    .main-hours-control{display:grid;grid-template-columns:38px minmax(0,1fr) 38px;gap:8px;align-items:center}
    .main-hours-control input{text-align:center;font-weight:800}
    .hour-step{height:38px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#344054;cursor:pointer;display:flex;align-items:center;justify-content:center}
    .hour-step:disabled{opacity:.45;cursor:not-allowed;background:#f8fafc}
    .main-hours-presets{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:8px}
    .main-hour-preset{height:32px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;font-family:"Inter Tight";font-weight:700;color:#344054}
    .main-hour-preset.active{background:#1677ff;border-color:#1677ff;color:#fff}
    .main-hour-preset:disabled{opacity:.45;cursor:not-allowed}
    .attendance-panel-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 14px;padding:4px;border:1px solid #e5eaf2;border-radius:12px;background:#f8fafc}
    .attendance-panel-tab{min-height:36px;border:0;border-radius:9px;background:transparent;color:#667085;font-family:"Inter Tight",sans-serif;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px}
    .attendance-panel-tab.active{background:#fff;color:#ff5f1f;box-shadow:0 6px 14px rgba(15,23,42,.08)}
    .attendance-panel-tab:disabled{opacity:.45;cursor:not-allowed}
    .attendance-edit-section{display:none}
    .attendance-edit-section.active{display:block}
    .section-kicker{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.4px;color:#667085;margin:0 0 8px}
    .quick-month-card{margin-top:0;border-top:0;padding-top:0}
    input[type="date"],input[type="month"]{-webkit-locale:"vi-VN";}
    .vn-date-picker,.vn-month-picker{cursor:pointer;background:#fff}
    .shift-time-inputs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
    .shift-time-inputs label{display:grid;gap:6px;font-weight:700;color:#344054;font-size:12px}
    .shift-time-inputs input{height:38px}
    .shift-calc-note{margin-top:7px;color:#667085;font-size:12px;line-height:1.35}
    .vn-picker-popover{position:fixed;z-index:120;background:#fff;border:1px solid #dfe6ef;border-radius:14px;box-shadow:0 22px 70px rgba(15,23,42,.24);padding:12px;width:300px;max-width:calc(100vw - 24px)}
    .vn-picker-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
    .vn-picker-title{font-weight:900;color:#101828;text-align:center;flex:1}
    .vn-picker-nav{width:32px;height:32px;border:1px solid #dfe6ef;border-radius:9px;background:#fff;color:#344054;cursor:pointer;display:flex;align-items:center;justify-content:center}
    .vn-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
    .vn-picker-weekday{text-align:center;font-size:11px;font-weight:900;color:#667085;padding:4px 0}
    .vn-picker-day,.vn-picker-month{height:34px;border:1px solid #edf2f7;border-radius:9px;background:#fff;color:#1d2939;font-weight:800;cursor:pointer}
    .vn-picker-day:hover,.vn-picker-month:hover{border-color:#ffb183;background:#fff7f2;color:#ff5f1f}
    .vn-picker-day.muted{opacity:.28;pointer-events:none}
    .vn-picker-day.selected,.vn-picker-month.selected{background:#ff5f1f;color:#fff;border-color:#ff5f1f}
    .vn-picker-month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
    .vn-picker-backdrop{position:fixed;inset:0;z-index:119;background:transparent}
    .quick-month-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,138px);gap:10px;align-items:center;margin-bottom:10px}
    #quickMonthInput{width:100%;min-width:0}
    .quick-month-title{display:flex;align-items:center;gap:8px;font-weight:800;color:#1d2939}
    .quick-month-title i{color:#1677ff}
    .quick-month-sub{font-size:12px;color:#667085;margin-top:3px}
    .quick-month-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
    .quick-month-actions .att-mini-btn:last-child{grid-column:1/-1;width:max-content}
    .quick-month-settings{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 10px;padding:10px;border:1px solid #edf2f7;border-radius:12px;background:#fbfdff}
    .quick-month-settings label{display:grid;gap:5px;color:#344054;font-size:12px;font-weight:800}
    .quick-month-settings .control{height:34px;border-radius:9px}
    .quick-month-settings label:last-child{grid-column:1/-1}
    .quick-month-weekdays,.quick-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
    .quick-month-weekdays{margin-bottom:6px;color:#667085;font-size:11px;font-weight:800;text-align:center}
    .quick-day{min-height:42px;border:1px solid #e5eaf2;border-radius:10px;background:#fff;color:#1d2939;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:"Inter Tight",sans-serif}
    .quick-day span{font-weight:800;font-size:13px}
    .quick-day small{font-size:10px;color:#667085;line-height:1;display:flex;align-items:center;justify-content:center;gap:3px;min-height:10px}
    .quick-day-ot{display:inline-flex;align-items:center;border-radius:999px;background:#fff3ed;color:#ff5f1f;font-size:9px;font-weight:900;padding:1px 4px;line-height:1}
    .quick-day.blank{visibility:hidden;cursor:default}
    .quick-day.weekend{background:#fff7f7;color:#dc2626}
    .quick-day.locked{opacity:.45;cursor:not-allowed;background:#f8fafc;color:#98a2b3;border-color:#e5e7eb}
    .quick-day.locked small{color:#98a2b3}
    .quick-day.marked{border-color:#bbf7d0;background:#f0fdf4}
    .quick-day.selected{border-color:#ff5f1f;background:#fff3ed;box-shadow:0 0 0 2px rgba(255,95,31,.12)}
    .quick-month-save{width:100%;margin-top:10px}
    textarea{
      width:100%;min-height:80px;border:1px solid var(--line);border-radius:10px;padding:10px;font-family:"Inter Tight";resize:vertical;
    }
    .panel-actions{display:grid;grid-template-columns:.8fr 1.4fr;gap:10px;margin-top:12px}
    .attendance-empty-state{
      min-height:300px;
      display:flex;
      align-items:center;
      justify-content:center;
      flex-direction:column;
      text-align:center;
      color:#98a2b3;
      border-top:1px solid var(--line);
      border-bottom:1px solid var(--line);
      margin:6px -20px 14px;
      padding:28px 24px;
    }
    .attendance-empty-state .icon-wrap{
      width:120px;height:120px;border-radius:50%;border:2px dashed #d7deea;
      display:flex;align-items:center;justify-content:center;margin-bottom:18px;color:#c8d0dc;font-size:54px;
    }
    .attendance-empty-state .empty-title{font-size:18px;font-weight:700;color:#1f2a44;margin-bottom:8px}
    .attendance-empty-state .empty-desc{max-width:260px;line-height:1.6;color:#98a2b3}


    .attendance-detail-card{
      margin-top:16px;
      background:#fff;
      border:1px solid var(--line);
      border-radius:16px;
      box-shadow:var(--shadow);
      overflow:hidden;
    }
    .attendance-detail-title{
      min-height:66px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      padding:16px 18px;
      border-bottom:1px solid var(--line);
      background:#fff;
    }
    .detail-main-title{
      font-size:18px;
      font-weight:600;
      color:#1b2537;
    }
    .detail-sub-title{
      margin-top:4px;
      color:#667085;
      font-size:12px;
      font-weight:400;
    }
    .detail-date-pill{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      height:30px;
      padding:0 12px;
      border-radius:999px;
      background:#fff3ed;
      color:var(--primary);
      border:1px solid #ffd7c4;
      font-weight:500;
      white-space:nowrap;
    }
    .detail-table-wrap{
      width:100%;
      overflow:auto;
    }
    .detail-table-wrap table{
      min-width:1180px;
    }


    .my-attendance-card{
      background:#fff;
      border:1px solid var(--line);
      border-radius:16px;
      box-shadow:var(--shadow);
      padding:18px;
      overflow:hidden;
    }
    .my-attendance-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:14px;
      margin-bottom:14px;
    }
    .my-attendance-layout{
      display:grid;
      grid-template-columns:minmax(820px,1fr) 300px;
      gap:16px;
      align-items:start;
    }
    .my-attendance-detail-col{
      min-width:0;
    }
    .my-attendance-col-title{
      display:flex;
      align-items:center;
      gap:8px;
      margin:0 0 10px;
      color:#1d2939;
      font-size:15px;
      font-weight:800;
    }
    .my-attendance-col-title i{
      color:var(--primary);
    }
    .my-attendance-stats-col{
      position:sticky;
      top:12px;
      border:1px solid var(--line);
      border-radius:16px;
      background:#fff;
      box-shadow:var(--shadow);
      padding:14px;
    }
    .my-stats-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      margin-bottom:12px;
      padding-bottom:12px;
      border-bottom:1px solid var(--line);
    }
    .my-stats-title{
      display:flex;
      align-items:center;
      gap:8px;
      color:#1d2939;
      font-size:15px;
      font-weight:800;
    }
    .my-stats-title i{color:var(--primary)}
    .my-stats-month{
      height:26px;
      padding:0 9px;
      border-radius:999px;
      background:#fff3ed;
      color:var(--primary);
      border:1px solid #ffd7c4;
      display:inline-flex;
      align-items:center;
      font-size:12px;
      font-weight:700;
      white-space:nowrap;
    }
    .my-stats-note{
      margin-top:12px;
      padding:10px 12px;
      border:1px solid #dbeafe;
      border-radius:12px;
      background:#eff6ff;
      color:#1677ff;
      font-size:12px;
      line-height:1.45;
      font-weight:600;
    }
    .my-title{
      font-size:20px;
      font-weight:600;
      color:#1b2537;
    }
    .my-subtitle{
      margin-top:4px;
      color:#667085;
      font-size:12px;
    }
    .month-nav{
      display:flex;
      align-items:center;
      gap:8px;
    }
    .month-btn,.month-picker{
      height:38px;
      border:1px solid var(--line);
      background:#fff;
      border-radius:10px;
      padding:0 12px;
      display:inline-flex;
      align-items:center;
      gap:8px;
      font-family:"Inter Tight", sans-serif;
      color:#344054;
      font-weight:500;
      cursor:pointer;
    }
    .month-btn{width:38px;justify-content:center;padding:0;}
    .month-picker-field input{
      width:82px;
      border:0;
      outline:0;
      background:transparent;
      color:#344054;
      font:inherit;
      font-weight:700;
      text-align:center;
      cursor:pointer;
    }
    .my-summary-grid{
      display:grid;
      grid-template-columns:1fr;
      gap:10px;
      margin-bottom:0;
    }
    .my-summary-card{
      min-height:66px;
      border:1px solid var(--line);
      border-radius:14px;
      padding:11px;
      display:flex;
      align-items:center;
      gap:11px;
      background:#fff;
    }
    .my-summary-card .sum-icon{
      width:38px;
      height:38px;
      border-radius:50%;
      display:flex;
      align-items:center;
      justify-content:center;
      font-size:18px;
      flex-shrink:0;
    }
    .my-summary-card .sum-label{
      font-weight:600;
      font-size:13px;
      margin-bottom:2px;
    }
    .my-summary-card .sum-value{
      font-size:21px;
      font-weight:800;
      line-height:1;
    }
    .my-summary-card .sum-unit{
      font-size:12px;
      color:#667085;
      margin-left:2px;
    }
    .sum-green{background:#f1fbf6;border-color:#c8efd9;color:#16a34a;}
    .sum-yellow{background:#fff8e8;border-color:#ffe3ad;color:#e69000;}
    .sum-blue{background:#eff6ff;border-color:#cfe2ff;color:#1677ff;}
    .sum-red{background:#fff0f0;border-color:#ffcaca;color:#ef4444;}
    .sum-gray{background:#f5f7fb;border-color:#e1e7ef;color:#667085;}
    .my-legend{
      display:flex;
      align-items:center;
      gap:18px;
      flex-wrap:wrap;
      color:#344054;
      font-weight:500;
      margin:8px 0 12px;
    }
    .dot-status{
      display:inline-block;
      width:10px;
      height:10px;
      border-radius:50%;
      margin-right:7px;
      vertical-align:middle;
    }
    .green-dot{background:#20c66a;}
    .yellow-dot{background:#f5a400;}
    .blue-dot{background:#3b82f6;}
    .red-dot{background:#ef4444;}
    .gray-dot{background:#98a2b3;}
    .my-calendar{
      border:1px solid var(--line);
      border-radius:14px;
      overflow:hidden;
      background:#fff;
    }
    .my-calendar-header{
      display:grid;
      grid-template-columns:repeat(7,1fr);
      background:#fff;
      border-bottom:1px solid var(--line);
    }
    .my-calendar-header div{
      height:38px;
      display:flex;
      align-items:center;
      justify-content:center;
      font-weight:600;
      color:#344054;
      border-right:1px solid var(--line);
    }
    .my-calendar-header div:last-child{border-right:none;}
    .my-calendar-grid{
      display:grid;
      grid-template-columns:repeat(7,1fr);
      background:#eef3f8;
      gap:1px;
    }
    .my-day{
      min-height:154px;
      background:#fff;
      padding:8px;
      position:relative;
      display:flex;
      flex-direction:column;
      gap:6px;
      overflow:hidden;
    }
    .day-num{
      color:#667085;
      font-size:13px;
      font-weight:600;
      position:relative;
      z-index:2;
      min-height:18px;
      padding-right:18px;
    }
    .day-num.muted{color:#c0c7d2;}
    .my-day-card{
      position:static;
      min-height:56px;
      height:75px;
      border-radius:10px;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      text-align:center;
      gap:3px;
      padding:6px;
      border:1px solid transparent;
      overflow:hidden;
      flex:0 0 auto;
    }
    .my-day-card .big{
      font-size:17px;
      font-weight:700;
      line-height:1;
    }
    .my-day-card .time{
      display:none!important;
    }
    .my-day-card .shift{
      font-size:11px;
      color:#667085;
      font-weight:600;
      line-height:1.1;
    }
    .my-day-card .rate-line{
      font-size:10px;
      color:#ea580c;
      font-weight:800;
      line-height:1.15;
      max-width:100%;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .my-day-note{
      margin-top:0;
      padding:0 2px;
      color:#344054;
      font-size:12px;
      font-weight:500;
      line-height:1.35;
      overflow:hidden;
      display:-webkit-box;
      -webkit-line-clamp:4;
      -webkit-box-orient:vertical;
      word-break:break-word;
    }
    .my-day-note .note-label{
      font-weight:800;
      color:#1d2939;
    }
    .day-du{background:#ebfaf2;border-color:#d5f2df;color:#16a34a;}
    .day-nua{background:#fff7e6;border-color:#ffe5b5;color:#e69000;}
    .day-phep{background:#eff6ff;border-color:#cfe2ff;color:#1677ff;}
    .day-khong{background:#fff0f0;border-color:#ffcaca;color:#ef4444;}
    .day-chua{
      background:repeating-linear-gradient(135deg,#ffffff 0,#ffffff 4px,#f1f4f8 4px,#f1f4f8 7px);
      border-color:#eef2f7;
      color:#98a2b3;
    }
    .day-empty{
      background:#fff;
      color:#c0c7d2;
    }
    .star-day{
      position:absolute;
      right:8px;
      top:8px;
      color:#f5a400;
      font-size:14px;
    }
    .my-day .holiday-mini{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      margin-left:6px;
      height:18px;
      padding:0 6px;
      border-radius:6px;
      background:#fff1f2;
      border:1px solid #fecdd3;
      color:#e11d48;
      font-size:10px;
      font-weight:800;
      vertical-align:middle;
    }
    .my-day .day-num.holiday-head{
      color:#e11d48;
      font-weight:800;
    }
    @media(max-width:1320px){
      .my-attendance-layout{grid-template-columns:1fr}
      .my-attendance-stats-col{position:static}
      .my-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    }
    @media(max-width:760px){
      .my-summary-grid{grid-template-columns:1fr}
      .my-attendance-layout{gap:12px}
    }



    .setting-page-head{
      display:flex;
      align-items:center;
      gap:16px;
      margin-bottom:18px;
    }
    .setting-head-icon{
      width:56px;
      height:56px;
      border-radius:16px;
      background:linear-gradient(135deg,#ff7a2f,#ff4f16);
      color:#fff;
      display:flex;
      align-items:center;
      justify-content:center;
      font-size:24px;
      box-shadow:0 10px 22px rgba(255,95,31,.22);
      flex-shrink:0;
    }
    .setting-title-main{
      margin-bottom:4px;
    }
    .setting-subtitle-main{
      color:#667085;
      font-size:14px;
    }
    .setting-layout{
      display:grid;
      grid-template-columns:minmax(460px, 42%) minmax(620px, 58%);
      gap:16px;
      margin-bottom:16px;
      align-items:start;
    }
    .setting-layout > .setting-company-card,
    .setting-layout > .setting-admin-card,
    .setting-layout > .setting-holiday-card{
      grid-column:1;
    }
    .setting-layout > .setting-department-card{
      grid-column:2;
      grid-row:1 / span 2;
    }
    .setting-company-card,
    .setting-department-card,
    .setting-holiday-card,
    .permission-card{
      padding:0;
      overflow:hidden;
      border:1px solid #e8edf5;
      border-radius:18px;
      box-shadow:0 18px 46px rgba(15,23,42,.07);
      background:#fff;
    }

    .holiday-card-body{padding:16px 18px 18px;display:grid;gap:14px;overflow:hidden}
    .holiday-table-wrap{border:1px solid #dfe6ef;border-radius:14px;overflow:hidden;background:#fff;width:100%}
    .holiday-table{width:100%;border-collapse:collapse;table-layout:fixed}
    .holiday-table th{padding:12px 8px;color:#475467;font-size:12px;text-align:left;background:#fbfcfe;border-bottom:1px solid #e6ebf2;font-weight:700;white-space:nowrap}
    .holiday-table td{padding:10px 8px;border-bottom:1px solid #edf2f7;vertical-align:middle;overflow:hidden}
    .holiday-table tr:last-child td{border-bottom:none}
    .holiday-table th:nth-child(1),.holiday-table td:nth-child(1){width:112px}
    .holiday-table th:nth-child(3),.holiday-table td:nth-child(3),.holiday-table th:nth-child(4),.holiday-table td:nth-child(4){width:74px;text-align:center}
    .holiday-table th:nth-child(5),.holiday-table td:nth-child(5){width:44px;text-align:center}
    .holiday-day-input{width:96px!important;height:36px!important;border-radius:10px!important;text-align:center;padding:0 8px!important}
    .holiday-name{width:100%!important;height:36px!important;border-radius:10px!important;min-width:0!important}
    .holiday-rate,.holiday-ot-rate{width:58px!important;height:36px!important;margin:0 auto!important;text-align:center;border-radius:10px!important;padding:0 6px!important;min-width:58px!important}
    .holiday-sunday-card{border:1px solid #e6ebf2;border-radius:16px;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.04);padding:16px 18px;overflow:hidden}

    .holiday-standard-card{border:1px solid #dfe6ef;border-radius:16px;background:linear-gradient(135deg,#fff,#fbfdff);padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;box-shadow:0 8px 22px rgba(15,23,42,.04)}
    .holiday-standard-left{display:flex;align-items:center;gap:12px;min-width:0}
    .holiday-standard-icon{width:42px;height:42px;border-radius:14px;background:#eff6ff;color:#1677ff;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
    .holiday-standard-title{font-size:17px;font-weight:700;color:#1d2939}
    .holiday-standard-desc{color:#667085;margin-top:3px;font-size:13px}
    .holiday-standard-select{width:96px!important;min-width:96px!important;text-align:center;font-weight:700}
    .holiday-sunday-row{display: flex;gap: 14px;justify-content: space-between;width: 100%;flex-wrap: nowrap;}
    .holiday-sunday-toggle{display:flex;align-items:center;gap:10px;font-weight:600;color:#344054}
    .holiday-sunday-rates{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:360px}
    .holiday-rate-group{display:grid;grid-template-columns:1fr 64px;gap:8px;align-items:center;min-width:0}
    .holiday-rate-group span{color:#667085;font-weight:600;text-align:left;font-size:13px;white-space:nowrap}
    @media(max-width:1200px){
      .setting-layout{grid-template-columns:1fr}
      .setting-layout > .setting-company-card,.setting-layout > .setting-admin-card,.setting-layout > .setting-holiday-card,.setting-layout > .setting-department-card{grid-column:1;grid-row:auto}
    }
    .setting-card-title{
      min-height:86px;
      padding:20px 22px;
      display:flex;
      align-items:center;
      gap:14px;
      border-bottom:1px solid #eef2f7;
      background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);
    }
    .setting-card-title.with-action{
      justify-content:space-between;
      gap:14px;
    }
    .setting-title-left{
      display:flex;
      align-items:center;
      gap:14px;
      min-width:0;
    }
    .setting-icon{
      width:46px;
      height:46px;
      border-radius:15px;
      display:flex;
      align-items:center;
      justify-content:center;
      flex-shrink:0;
      font-size:18px;
      box-shadow:inset 0 0 0 1px rgba(255,255,255,.8);
    }
    .setting-icon.orange{
      background:linear-gradient(135deg,#fff4ec,#ffe8d8);
      color:var(--primary);
    }
    .setting-icon.blue{
      background:linear-gradient(135deg,#eef6ff,#e8f0ff);
      color:#1677ff;
    }
    .company-info-list{
      padding:20px 22px 24px;
      display:grid;
      gap:18px;
    }
    .company-row{
      display:grid;
      grid-template-columns:30px 130px 12px 1fr;
      gap:10px;
      align-items:start;
      color:#344054;
      line-height:1.45;
    }
    .company-row i{
      color:#667085;
      font-size:18px;
      margin-top:2px;
    }
    .company-label{
      color:#667085;
      font-weight:500;
    }
    .company-value{
      font-weight:600;
      color:#1d2939;
    }
    .tree-header{
      height:46px;
      display:flex;
      align-items:center;
      padding:0 26px;
      color:#667085;
      font-weight:700;
      border-bottom:1px solid #eef2f7;
      background:#f8fafc;
      font-size:13px;
    }
    .department-tree{
      padding:14px 20px 20px;
      background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
    }
    .tree-row{
      min-height:56px;
      display:grid;
      grid-template-columns:minmax(0,1fr) 84px;
      gap:12px;
      align-items:center;
      border-bottom:1px solid #edf2f7;
      position:relative;
      transition:.18s ease;
    }
    .tree-row:hover{
      background:#fbfdff;
    }
    .tree-row:last-child{
      border-bottom:none;
    }
    .tree-row.tree-level-0{
      min-height:58px;
      background:#fff;
    }
    .tree-row.tree-level-1{
      background:#fcfdff;
    }
    .tree-content{
      display:flex;
      align-items:center;
      gap:10px;
      min-width:0;
      position:relative;
    }
    .tree-name{
      font-weight:700;
      color:#1d2939;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
      max-width:230px;
    }
    .tree-name.child{
      font-weight:600;
      max-width:190px;
      color:#344054;
    }
    .tree-name-wrap{
      min-width:0;
      display:flex;
      align-items:center;
      gap:10px;
      flex-wrap:wrap;
    }
    .tree-row.tree-type-position .tree-name-wrap{
      display:grid;
      grid-template-columns:minmax(168px,220px) minmax(0,1fr);
      align-items:center;
      gap:14px;
      width:100%;
      flex-wrap:nowrap;
    }
    .tree-row.tree-type-position .tree-name{
      max-width:none;
      min-width:0;
    }
    .tree-row.tree-type-position .tree-perm-chips{
      min-width:0;
      align-content:center;
      padding:2px 0;
    }
    .tree-perm-chips{
      display:flex;
      align-items:center;
      gap:7px;
      flex-wrap:wrap;
    }
    .perm-chip{
      display:inline-flex;
      align-items:center;
      height:28px;
      padding:0 11px;
      border:1px solid #d9e6ff;
      color:#2563eb;
      background:#f4f8ff;
      border-radius:8px;
      font-size:12px;
      font-weight:700;
      white-space:nowrap;
      box-shadow:0 2px 7px rgba(15,23,42,.04);
    }
    .perm-chip.perm-staffList{border-color:#bfd5ff;background:#f1f6ff;color:#2563eb;}
    .perm-chip.perm-profile{border-color:#ddd0ff;background:#f7f3ff;color:#7c3aed;}
    .perm-chip.perm-attendance{border-color:#bfdbfe;background:#eff6ff;color:#1677ff;}
    .perm-chip.perm-myAttendance{border-color:#bbf7d0;background:#f0fdf4;color:#16a34a;}
    .perm-chip.perm-report{border-color:#fed7aa;background:#fff7ed;color:#ea580c;}
    .perm-chip.perm-personalUpdate{border-color:#ffd3bd;background:#fff4ed;color:#ff5f1f;}
    .perm-chip.muted{
      border-color:#e5e7eb;
      color:#98a2b3;
      background:#f9fafb;
      font-weight:600;
    }
    .tree-toggle{
      width:24px;
      height:24px;
      border-radius:8px;
      display:flex;
      align-items:center;
      justify-content:center;
      color:#344054;
      background:#fff;
      flex-shrink:0;
    }
    .tree-icon{
      width:32px;
      height:32px;
      border-radius:10px;
      display:flex;
      align-items:center;
      justify-content:center;
      flex-shrink:0;
      background:#f2f4f7;
      color:#667085;
      box-shadow:inset 0 0 0 1px rgba(255,255,255,.8);
    }
    .tree-icon.company{
      background:linear-gradient(135deg,#fff1e8,#ffe1cf);
      color:var(--primary);
    }
    .tree-icon.department{
      background:linear-gradient(135deg,#edf5ff,#e6efff);
      color:#2563eb;
    }
    .tree-actions{
      display:flex;
      justify-content:flex-end;
      gap:8px;
      padding-right:2px;
    }
    .tree-action{
      width:32px;
      height:32px;
      border-radius:10px;
      border:1px solid #dbeafe;
      background:#fff;
      color:#1677ff;
      display:flex;
      align-items:center;
      justify-content:center;
      cursor:pointer;
      transition:.18s ease;
    }
    .tree-action:hover{background:#eff6ff;transform:translateY(-1px)}
    .tree-action.delete{
      border-color:#fecaca;
      color:#ef4444;
    }
    .tree-action.delete:hover{background:#fff1f2;}
    .tree-level-0 .tree-content{padding-left:2px;}
    .tree-level-1 .tree-content{padding-left:42px;}
    .tree-level-2 .tree-content{padding-left:88px;}
    .tree-level-1 .tree-content:before,
    .tree-level-2 .tree-content:before{
      content:"";
      position:absolute;
      left:13px;
      top:-28px;
      bottom:50%;
      width:26px;
      border-left:1px dashed #cbd5e1;
      border-bottom:1px dashed #cbd5e1;
      border-bottom-left-radius:12px;
    }
    .tree-level-2 .tree-content:before{
      left:53px;
    }
    .permission-card{
      margin-top:16px;
    }
    .permission-table-wrap{
      width:100%;
      overflow:auto;
    }
    .permission-table{
      min-width:980px;
    }
    .permission-table th,
    .permission-table td{
      text-align:center;
      vertical-align:middle;
      height:58px;
    }
    .permission-table th:first-child,
    .permission-table td:first-child{
      text-align:left;
    }
    .role-cell{
      display:flex;
      align-items:center;
      gap:12px;
    }
    .role-icon{
      width:36px;
      height:36px;
      border-radius:10px;
      display:flex;
      align-items:center;
      justify-content:center;
      color:#fff;
      flex-shrink:0;
    }
    .role-icon.purple{background:#7c3aed;}
    .role-icon.orange{background:#ff5f1f;}
    .role-icon.blue{background:#1677ff;}
    .role-name{
      font-weight:600;
      color:#1d2939;
    }
    .role-desc{
      color:#667085;
      margin-top:3px;
      font-size:12px;
    }
    .perm-check,
    .perm-minus{
      width:22px;
      height:22px;
      border-radius:50%;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      color:#fff;
      font-size:12px;
    }
    .perm-check{background:#16a34a;}
    .perm-minus{background:#aab3c1;}
    .permission-note{
      display:flex;
      align-items:center;
      gap:8px;
      color:#667085;
      padding:12px 18px 18px;
      font-size:13px;
    }
    @media(max-width:1200px){
      .setting-layout{
        grid-template-columns:1fr;
      }
    }



    .admin-account-box{
      padding:18px 22px 22px;
      display:grid;
      gap:12px;
    }
    .admin-row{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      padding:11px 12px;
      border:1px solid var(--line);
      border-radius:12px;
      background:#fbfcfe;
    }
    .admin-label{
      color:#667085;
      font-weight:500;
    }
    .admin-value{
      color:#1d2939;
      font-weight:600;
    }
    .admin-role-pill{
      height:28px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border-radius:999px;
      padding:0 10px;
      background:#fff3ed;
      color:#ff5f1f;
      border:1px solid #ffd7c4;
      font-weight:600;
    }

    .role-check-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:12px;
      margin-top:14px;
    }
    .role-check-item{
      border:1px solid var(--line);
      border-radius:12px;
      padding:12px 14px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      background:#fff;
      color:#344054;
      font-weight:500;
    }
    .role-check-item input{
      width:18px;
      height:18px;
      accent-color:#ff5f1f;
    }

    .modal{
      position:fixed;inset:0;background:rgba(15,23,42,.45);display:none;align-items:center;justify-content:center;z-index:99;padding:20px;
    }
    .modal.show{display:flex}
    .modal-box{width:min(960px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 25px 80px rgba(15,23,42,.25)}
    .modal-head{height:58px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 20px;font-weight:600;font-size:18px;position:sticky;top:0;background:#fff;z-index:2}
    .modal-body{padding:18px 20px}
    .form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
    .form-grid.two{grid-template-columns:repeat(2,1fr)}
    .form-group{display:grid;gap:6px}
    .form-group.full{grid-column:1 / span 3}
    .form-group label{color:#667085}
    .modal-foot{border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;position:sticky;bottom:0;background:#fff}
    .payslip-modal-box{width:min(560px,96vw);max-height:94vh}
    .payslip-modal-body{padding:0;background:#eef3f8}
    #payslipFrame{display:block;width:100%;height:min(760px,78vh);border:0;background:#eef3f8}
    .employee-modal-box{width:min(1120px,96vw);}
    .employee-modal-body{padding:18px 20px 14px;background:#fbfcfe;}
    .employee-topbar{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.9fr);gap:14px;margin-bottom:14px;}
    .employee-summary-card,.employee-upload-card,.employee-section-card{background:#fff;border:1px solid #e8edf5;border-radius:18px;box-shadow:0 8px 30px rgba(15,23,42,.04);}
    .employee-summary-card{display:flex;align-items:center;gap:16px;padding:18px 20px;}
    .employee-summary-avatar{width:72px;height:72px;border-radius:50%;background:#eef2ff;color:#4f46e5;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:700;flex-shrink:0;overflow:hidden;}
    .employee-summary-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
    .employee-summary-meta{min-width:0;display:flex;flex-direction:column;gap:5px;}
    .employee-summary-name{font-size:28px;font-weight:700;color:#1d2939;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
    .employee-summary-sub{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#667085;font-weight:500;}
    .employee-summary-dot{width:4px;height:4px;border-radius:50%;background:#c5ced9;display:inline-block;}
    .employee-status-chip{display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:700;border:1px solid #d6f0dd;background:#effaf3;color:#16a34a;}
    .employee-status-chip.off{border-color:#fde7a5;background:#fff9e6;color:#d97706;}
    .employee-status-chip.stop{border-color:#fecaca;background:#fff1f2;color:#dc2626;}
    .employee-upload-card{padding:18px 20px;display:grid;grid-template-columns:56px 1fr;gap:14px;align-items:start;}
    .employee-upload-icon{width:56px;height:56px;border-radius:16px;border:1px solid #e5e7eb;background:#fff;display:flex;align-items:center;justify-content:center;color:#344054;font-size:22px;}
    .employee-upload-title{font-size:14px;font-weight:700;color:#475467;margin-bottom:8px;}
    .employee-section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start;}
    .employee-section-card{padding:14px 16px 16px;}
    .employee-section-card.full{grid-column:1 / -1;}
    .employee-section-title{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:700;color:#1d2939;margin-bottom:12px;}
    .employee-section-title .icon{width:28px;height:28px;border-radius:10px;background:#fff7f2;border:1px solid #ffd6c0;color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
    .employee-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;}
    .employee-form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
    .employee-form-grid .full{grid-column:1 / -1;}
    .form-group label{color:#667085;font-size:13px;font-weight:600;}
    .employee-modal-box .control, .employee-modal-box textarea{height:42px;border-radius:12px;background:#fff;border:1px solid #dfe6ef;box-shadow:none;}
    .employee-modal-box textarea{height:84px;padding-top:10px;resize:vertical;}
    .employee-modal-box .control:focus, .employee-modal-box textarea:focus{border-color:#ffb183;box-shadow:0 0 0 3px rgba(255,107,0,.12);outline:none;}
    .employee-modal-box .modal-head{height:64px;padding:0 20px 0 22px;}
    .employee-modal-box .modal-head span{font-size:18px;font-weight:700;}
    .employee-modal-box .modal-foot{padding:14px 20px 16px;}
    @media(max-width:980px){
      .employee-topbar,.employee-section-grid,.employee-form-grid,.employee-form-grid.cols-3{grid-template-columns:1fr;}
      .employee-modal-box{width:min(96vw,1120px);}
      .employee-section-card.full{grid-column:1;}
    }


    .group-row td{
      height:44px;
      background:#fbfcfe;
      color:#25324a;
      font-weight:600;
      border-bottom:1px solid var(--line);
    }
    .group-title{
      display:flex;
      align-items:center;
      gap:8px;
    }
    .group-title i{
      color:#667085;
    }
    .staff-child td:first-child{
      padding-left:32px;
      position:relative;
    }
    .staff-child td:first-child:before{
      content:"";
      position:absolute;
      left:18px;
      top:0;
      bottom:0;
      width:1px;
      background:#d9e1ec;
    }
    .staff-child td:first-child:after{
      content:"";
      position:absolute;
      left:18px;
      top:27px;
      width:10px;
      height:1px;
      background:#d9e1ec;
    }

    .staff-list-wrap{
      background:#fff;
      border:1px solid var(--line);
      border-radius:16px;
      box-shadow:var(--shadow);
      padding:8px 12px 14px;
    }
    .staff-list-head{
      display:grid;
      grid-template-columns:86px minmax(210px,1.1fr) minmax(105px,.46fr) minmax(110px,.48fr) 135px 108px minmax(320px,1.25fr);
      gap:8px;
      padding:12px 12px 14px;
      color:#667085;
      font-weight:500;
      border-bottom:1px solid var(--line);
      margin-bottom:10px;
    }
    .staff-group-box{
      border:1px solid #e8eef6;
      border-radius:14px;
      background:#fff;
      margin-bottom:12px;
      overflow:hidden;
    }
    .staff-group-title{
      display:flex;
      align-items:center;
      gap:8px;
      padding:14px 16px 12px 16px;
      font-size:16px;
      font-weight:600;
      color:#25324a;
      background:#fff;
    }
    .staff-group-title i{
      color:#7b8798;
      font-size:15px;
    }
    .staff-group-body{
      position:relative;
      padding:2px 12px 8px 34px;
    }
    .staff-group-body:before{
      content:"";
      position:absolute;
      left:20px;
      top:0;
      bottom:12px;
      width:1px;
      background:#dde5ef;
    }
    .staff-line{
      display:grid;
      grid-template-columns:86px minmax(210px,1.1fr) minmax(105px,.46fr) minmax(110px,.48fr) 135px 108px minmax(320px,1.25fr);
      gap:8px;
      align-items:center;
      min-height:62px;
      padding:8px 10px 8px 0;
      border-top:1px solid #edf2f7;
      position:relative;
      background:#fff;
    }
    .staff-line:first-child{
      border-top:none;
    }
    .staff-line:before{
      content:"";
      position:absolute;
      left:-14px;
      top:0;
      width:14px;
      height:50%;
      border-left:1px solid #dde5ef;
      border-bottom:1px solid #dde5ef;
      border-bottom-left-radius:12px;
    }
    .staff-line:last-child:before{
      height:24px;
    }
    .staff-code{
      color:#25324a;
      font-weight:500;
      padding-left:14px;
      white-space:nowrap;
    }
    .staff-name-cell{
      display:flex;
      align-items:center;
      gap:12px;
      min-width:0;
    }
    .staff-avatar{
      width:40px;
      height:40px;
      border-radius:50%;
      object-fit:cover;
      flex-shrink:0;
      border:1px solid #eef2f6;
      box-shadow:0 2px 6px rgba(15,23,42,.06);
      background:#fff7f2;
      display:block;
    }
    .staff-name-text{
      font-weight:500;
      color:#25324a;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    .staff-department{
      color:#25324a;
      font-weight:500;
    }
    .staff-view-btn{
      height:42px;
      min-width:112px;
      border-radius:12px;
      border:1px solid #dbe4ef;
      background:#fff;
      color:#42526b;
      font-weight:500;
      cursor:pointer;
      font-family:"Inter Tight", sans-serif;
      line-height:1.2;
      padding:0 12px;
    }
    .staff-view-btn:hover{
      border-color:#c8d6e7;
      background:#fbfdff;
    }


    .staff-position{
      color:#25324a;
      font-weight:500;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    .staff-phone{
      color:#475467;
      font-weight:500;
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
      font-variant-numeric:tabular-nums;
    }
    .staff-skills{
      display:flex;
      align-items:center;
      flex-wrap:wrap;
      gap:6px;
      min-width:0;
      max-width:100%;
    }
    .skill-tag{
      height:28px;
      border-radius:999px;
      border:1px solid #ffd7c4;
      background:#fff7f2;
      color:var(--primary);
      font-weight:500;
      cursor:pointer;
      font-family:"Inter Tight", sans-serif;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:6px;
      padding:0 10px;
      font-size:12px;
      white-space:nowrap;
      max-width:185px;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    .skill-tag:hover{
      background:#fff1e9;
      border-color:#ffc2a5;
    }
    .skill-more{
      height:28px;
      border-radius:999px;
      border:1px solid #dbe4ef;
      background:#fff;
      color:#667085;
      font-weight:500;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding:0 9px;
      font-size:12px;
      white-space:nowrap;
    }
    .staff-pagination{
      min-height:58px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      padding:12px 12px 2px;
      color:#667085;
      font-weight:500;
    }
    .staff-page-size{
      display:flex;
      align-items:center;
      gap:8px;
    }
    .small-control{
      min-width:124px;
      height:34px;
    }

    .setting-grid{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:14px;
    }
    .setting-card{
      background:#fff;
      border:1px solid var(--line);
      border-radius:16px;
      box-shadow:var(--shadow);
      padding:20px;
    }
    .setting-title{
      font-size:17px;
      font-weight:600;
      margin-bottom:8px;
    }
    .setting-desc{
      color:#667085;
      line-height:1.6;
      margin-bottom:16px;
    }

    .toast{position:fixed;right:24px;bottom:24px;background:#101828;color:#fff;padding:12px 16px;border-radius:12px;display:none;z-index:100;font-weight:500}
    .toast.show{display:block}
     .loading{
      position:fixed;
      inset:0;
      background:rgba(248,250,252,.72);
      backdrop-filter:blur(6px);
      -webkit-backdrop-filter:blur(6px);
      display:none;
      align-items:center;
      justify-content:center;
      z-index:10001;
      color:var(--primary);
      font-weight:700;
    }
    .loading.show{display:flex}
    .loading-card{
      min-width:210px;
      min-height:122px;
      border:1px solid #ffe1d3;
      border-radius:20px;
      background:#fff;
      box-shadow:0 24px 70px rgba(15,23,42,.16);
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      gap:13px;
      padding:22px 26px;
    }
    .loading-spinner{
      width:42px;
      height:42px;
      border-radius:50%;
      border:4px solid #ffe5d7;
      border-top-color:var(--primary);
      animation:spinLoading .78s linear infinite;
    }
    .loading-text{font-size:15px;color:#1d2939;}
    .loading-subtext{font-size:12px;color:#667085;font-weight:500;margin-top:-6px;}
    @keyframes spinLoading{to{transform:rotate(360deg)}}

    .app-setting-safe-wrap{display:grid;grid-template-columns:minmax(360px,560px) 1fr;gap:16px;align-items:start;}
    .admin-safe-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden;}
    .admin-safe-head{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--line);}
    .admin-safe-icon{width:46px;height:46px;border-radius:16px;background:#eef4ff;color:#2563eb;display:flex;align-items:center;justify-content:center;font-size:20px;}
    .admin-safe-title{font-size:18px;font-weight:700;color:#1d2939;}
    .admin-safe-desc{color:#667085;margin-top:4px;}
    .admin-safe-body{padding:18px 20px;display:grid;gap:12px;}
    .admin-safe-row{display:grid;grid-template-columns:140px 1fr;gap:12px;align-items:center;min-height:44px;border:1px solid #eef2f6;border-radius:12px;padding:0 14px;background:#fff;}
    .admin-safe-label{color:#667085;font-weight:600;}
    .admin-safe-value{color:#101828;font-weight:700;display:flex;align-items:center;gap:10px;}
    .admin-safe-change{color:var(--primary);font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
    .admin-safe-change:hover{text-decoration:underline;}
    @media(max-width:900px){.app-setting-safe-wrap{grid-template-columns:1fr}.admin-safe-row{grid-template-columns:1fr;gap:4px;padding:10px 14px;}}

    @media(max-width:1300px){
      .profile-3col,.attendance-grid{grid-template-columns:1fr}
      .form-grid,.form-grid.two{grid-template-columns:1fr}
      .form-group.full{grid-column:1}
      .staff-list-head,.staff-line{
        grid-template-columns:80px minmax(180px,1fr) minmax(95px,.45fr) minmax(105px,.48fr) 128px 100px minmax(240px,1.15fr);
      }
    }


    /* V27.6 - Giao diện chấm công đúng theo quyền: admin xem tất cả, user chỉ phòng ban của mình, hỗ trợ chọn nhiều nhân viên */
    .attendance-management-layout{
      display:grid;
      grid-template-columns:minmax(760px,1fr) 390px;
      gap:16px;
      align-items:start;
    }
    .attendance-list-card{
      background:#fff;
      border:1px solid var(--line);
      border-radius:16px;
      box-shadow:var(--shadow);
      overflow:hidden;
      min-height:520px;
    }
    .attendance-list-toolbar{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      padding:12px 16px;
      border-bottom:1px solid var(--line);
      background:#fbfcfe;
    }
    .attendance-list-title{
      display:flex;
      align-items:center;
      gap:8px;
      font-weight:600;
      color:#1d2939;
    }
    .attendance-list-title i{color:#2563eb;}
    .attendance-list-note{font-size:12px;color:#667085;}
    .att-bulk-bar{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      padding:10px 16px;
      background:#fff7f2;
      border-bottom:1px solid #ffd7c4;
      color:#b93815;
      font-weight:600;
    }
    .att-bulk-actions{display:flex;align-items:center;gap:8px;}
    .att-mini-btn{
      height:30px;
      border:1px solid #ffd7c4;
      background:#fff;
      color:#ff5f1f;
      border-radius:8px;
      padding:0 10px;
      font-family:"Inter Tight";
      font-weight:600;
      cursor:pointer;
    }
    .att-mini-btn:hover{background:#fff0e8;}
    .attendance-approval-card{border:1px solid #dbeafe;background:#f8fbff;border-radius:14px;margin-bottom:14px;overflow:hidden}
    .approval-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border-bottom:1px solid #dbeafe}
    .approval-title{font-weight:800;color:#155bc0;display:flex;align-items:center;gap:8px}
    .approval-sub{font-size:12px;color:#667085;margin-top:3px}
    .approval-list{display:grid;gap:8px;padding:10px;max-height:260px;overflow:auto}
    .approval-empty{padding:14px;text-align:center;color:#667085;font-weight:600}
    .approval-item{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1px solid #e5eaf2;border-radius:12px;padding:10px}
    .approval-name{font-weight:800;color:#101828}.approval-name span{color:#667085;font-weight:700;margin-left:4px}
    .approval-meta{font-size:12px;color:#667085;margin-top:3px;line-height:1.45}
    .approval-actions{display:flex;gap:6px}.approval-actions .att-mini-btn{width:32px;padding:0}.approval-actions .danger{color:#ef4444;border-color:#fecaca}
    .attendance-list-head,
    .att-row{
      display:grid;
      grid-template-columns:38px 90px minmax(210px,1fr) 140px 140px 120px 90px 78px;
      align-items:center;
      column-gap:10px;
    }
    .attendance-list-head{
      min-height:46px;
      padding:0 16px;
      color:#475467;
      font-size:13px;
      font-weight:600;
      border-bottom:1px solid var(--line);
      background:#fff;
    }
    .attendance-list-body{padding:0 16px 16px;}
    .att-dept-row{
      min-height:52px;
      display:flex;
      align-items:center;
      gap:9px;
      color:#1d2939;
      font-weight:700;
      border-bottom:1px solid #edf2f7;
      margin-top:4px;
    }
    .att-dept-row .att-dept-name{display:flex;align-items:center;gap:8px;}
    .att-row{
      min-height:64px;
      border-bottom:1px solid #edf2f7;
      position:relative;
      transition:.15s ease;
    }
    .att-row:hover{background:#f8fbff;}
    .att-row.active{
      background:#fff7f2;
      box-shadow:inset 4px 0 0 var(--primary);
    }
    .att-row.checked{background:#f0f7ff;}
    .att-row.checked.active{background:linear-gradient(90deg,#fff7f2,#f0f7ff);}
    .att-code{font-weight:600;color:#1d2939;}
    .att-name-cell{display:flex;align-items:center;gap:12px;min-width:0;}
    .att-name-text{font-weight:600;color:#101828;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .att-avatar{
      width:38px;height:38px;border-radius:50%;object-fit:cover;background:#eaf2ff;box-shadow:0 4px 12px rgba(22,119,255,.12);
    }
    .att-dept-cell{font-weight:500;color:#1d2939;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .att-position-cell{font-weight:500;color:#475467;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .att-select,
    .att-group-select{
      width:17px;
      height:17px;
      accent-color:#1677ff;
      cursor:pointer;
    }
    .att-action-btn{
      height:36px;
      border:1px solid var(--line);
      background:#fff;
      border-radius:10px;
      padding:0 14px;
      color:#344054;
      font-family:"Inter Tight";
      font-weight:600;
      cursor:pointer;
    }
    .att-action-btn:hover{border-color:#ff5f1f;color:#ff5f1f;background:#fff7f2;}
    .att-empty{
      padding:30px;
      text-align:center;
      color:#667085;
    }
    .bulk-selected-list{
      display:flex;
      flex-wrap:wrap;
      gap:6px;
      margin:0 0 12px;
    }
    .bulk-selected-chip{
      display:inline-flex;
      align-items:center;
      gap:6px;
      height:28px;
      border-radius:999px;
      background:#eff6ff;
      border:1px solid #cfe2ff;
      color:#175cd3;
      padding:0 10px;
      font-size:12px;
      font-weight:600;
    }
    .employee-select.multi{
      border-color:#cfe2ff;
      background:#f8fbff;
    }
    .employee-select .multi-avatar{
      width:42px;
      height:42px;
      border-radius:50%;
      background:#1677ff;
      color:#fff;
      display:flex;
      align-items:center;
      justify-content:center;
      font-weight:700;
      flex-shrink:0;
    }
    .lock-select-wrap{position:relative;display:inline-flex;align-items:center;}
    .lock-select-wrap:before{
      content:"\f023";
      font-family:"Font Awesome 6 Free";
      font-weight:900;
      position:absolute;
      left:14px;
      color:#667085;
      z-index:1;
      font-size:12px;
      pointer-events:none;
      display:none;
    }
    .lock-select-wrap.locked:before{display:block;}
    .lock-select-wrap select{padding-left:12px;}
    .lock-select-wrap.locked select{padding-left:34px;color:#344054;background:#f8fafc;}
    .attendance-filter-admin #attendanceDepartment{min-width:190px;}
    .attendance-filter-user #attendanceDepartment{min-width:190px;}


    /* V27.7 - Fix CSS nhánh cây chấm công: bỏ checkbox cũ, admin không hiện icon khóa */
    #attendancePage .attendance-list-toolbar .att-mini-btn,
    #attendancePage .att-bulk-bar{display:none!important;}
    #attendancePage .attendance-list-head,
    #attendancePage .att-row{
      grid-template-columns:90px minmax(220px,1fr) 140px 140px 120px 90px 78px;
    }
    #attendancePage .attendance-list-head{
      padding-left:40px;
      padding-right:16px;
    }
    #attendancePage .attendance-list-body{
      padding:10px 16px 18px;
    }
    #attendancePage .att-dept-row{
      min-height:46px;
      margin:0;
      padding:0 0 0 2px;
      border-bottom:none;
      font-weight:700;
    }
    #attendancePage .att-dept-name{
      display:flex;
      align-items:center;
      gap:8px;
      color:#101828;
      font-size:15px;
    }
    #attendancePage .att-dept-name i{color:#667085;}
    #attendancePage .att-row{
      margin-left:18px;
      padding-left:22px;
      padding-right:10px;
      border-bottom:1px solid #edf2f7;
      border-radius:0;
      position:relative;
      overflow:visible;
    }
    #attendancePage .att-row:before{
      content:"";
      position:absolute;
      left:0;
      top:-8px;
      bottom:-1px;
      border-left:1px solid #d7e3f0;
    }
    #attendancePage .att-row:after{
      content:"";
      position:absolute;
      left:0;
      top:32px;
      width:18px;
      border-top:1px solid #d7e3f0;
      border-bottom-left-radius:10px;
    }
    #attendancePage .att-row.dept-last:before{bottom:31px;}
    #attendancePage .att-row.active{
      background:#fff7f2;
      box-shadow:none;
    }
    #attendancePage .att-row.checked{background:inherit;}
    #attendancePage .att-row.checked.active{background:#fff7f2;}
    #attendancePage .att-row:hover{background:#f8fbff;}
    #attendancePage .att-row.active:hover{background:#fff7f2;}
    #attendancePage .att-select,
    #attendancePage .att-group-select{display:none!important;}
    #attendancePage .lock-select-wrap:not(.locked):before{display:none!important;}
    #attendancePage .attendance-filter-admin .lock-select-wrap select{padding-left:12px!important;}



    /* V27.8 - Chấm công + tăng ca hàng loạt: checkbox nằm trong nhánh cây, không tạo bảng cũ */
    #attendancePage .attendance-list-toolbar .att-bulk-actions{
      display:flex;
      gap:8px;
      align-items:center;
      flex-wrap:wrap;
      justify-content:flex-end;
    }
    #attendancePage .attendance-list-toolbar .att-mini-btn{
      display:inline-flex!important;
      align-items:center;
      gap:6px;
    }
    #attendancePage .att-bulk-bar{
      display:none!important;
    }
    #attendancePage .att-bulk-bar.show{
      display:flex!important;
    }
    #attendancePage .att-code{
      display:flex;
      align-items:center;
      gap:9px;
      min-width:0;
    }
    #attendancePage .att-code span{
      white-space:nowrap;
      overflow:hidden;
      text-overflow:ellipsis;
    }
    #attendancePage .att-select,
    #attendancePage .att-group-select{
      display:inline-block!important;
      width:16px;
      height:16px;
      accent-color:#ff5f1f;
      cursor:pointer;
      flex:0 0 auto;
    }
    #attendancePage .att-dept-name .att-group-select{
      margin-right:2px;
    }
    #attendancePage .att-row.checked:not(.active){
      background:#f5faff;
    }
    #attendancePage .att-row.checked.active{
      background:#fff7f2;
    }
    #attendancePage .att-row .att-select:focus,
    #attendancePage .att-dept-row .att-group-select:focus{
      outline:2px solid rgba(255,95,31,.22);
      outline-offset:2px;
    }
    #attendancePage .att-action-btn.bulk-primary,
    #attendancePage .att-mini-btn.bulk-primary{
      background:#ff5f1f;
      color:#fff;
      border-color:#ff5f1f;
    }

    @media(max-width:1100px){
      .attendance-management-layout{grid-template-columns:1fr;}
      #attendancePage .attendance-list-head,#attendancePage .att-row{grid-template-columns:78px minmax(170px,1fr) 110px 110px 100px 78px 70px;}
      #attendancePage .attendance-list-head{padding-left:34px;}
    }


    /* V27.29 - Báo cáo Timeline làm lại từ v27.26 */
    .report-toolbar{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap}
    .report-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
    .report-note{border:1px solid #fed7aa;background:#fff7ed;border-radius:14px;padding:12px 14px;display:flex;align-items:center;gap:10px;color:#9a3412;font-weight:600;margin-bottom:12px}
    .report-note.blue{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}
    .report-legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:12px;box-shadow:0 6px 20px rgba(15,23,42,.04)}
    .legend-item{display:flex;align-items:center;gap:7px;color:#667085;font-weight:600;font-size:13px}
    .legend-pill{height:24px;min-width:32px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:12px;padding:0 7px}
    .legend-pill.green{background:#22a34a}.legend-pill.yellow{background:#f4c430;color:#1d2939}.legend-pill.orange{background:#ff6b00}.legend-pill.blue{background:#2f80ed}.legend-pill.red{background:#ef4444}.legend-pill.gray{background:#eef1f5;color:#667085}
    .report-timeline-wrap{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:auto;max-width:100%}
    .timeline-table{min-width:1700px;width:max-content;border-collapse:separate;border-spacing:0;font-size:13px}
    .timeline-table th,.timeline-table td{border-right:1px solid #edf2f7;border-bottom:1px solid #edf2f7;padding:8px 8px;text-align:center;vertical-align:middle;background:#fff}
    .timeline-table th{background:#f8fafc;color:#344054;font-weight:700;position:sticky;top:0;z-index:4}
    .timeline-table th.fixed,.timeline-table td.fixed{text-align:left;position:sticky;z-index:5;background:#fff;box-shadow:1px 0 0 #edf2f7}
    .timeline-table th.fixed{background:#f8fafc;z-index:7}
    .timeline-table .fix-tree{left:0;width:42px;min-width:42px;text-align:center}.timeline-table .fix-code{left:42px;width:86px;min-width:86px}.timeline-table .fix-name{left:128px;width:220px;min-width:220px}.timeline-table .fix-dept{left:348px;width:130px;min-width:130px}.timeline-table .fix-pos{left:478px;width:135px;min-width:135px}
    .timeline-table .report-group-tree{background:#fff8f3!important;color:var(--primary);font-weight:800}.timeline-table .report-group-name{left:42px;width:571px;min-width:571px;background:#fff8f3!important;color:#1f2937;font-weight:800;text-align:left!important;z-index:6}.timeline-table .report-group-tail{background:#fff8f3!important;border-top:1px solid #ffe0c8}
    .timeline-table .day-col{width:38px;min-width:38px;padding:5px 4px}.timeline-table .sum-col{width:82px;min-width:82px;font-weight:700;background:#fbfdff}
    .timeline-date-head{display:grid;gap:2px}.timeline-date-head .dow{font-size:11px;color:#98a2b3}.timeline-date-head.weekend{color:#ef4444}.timeline-date-head.weekend .dow{color:#ef4444}.timeline-date-head.holiday{background:#fff1f2;border:1px solid #fecdd3;border-radius:8px;padding:3px 2px;color:#e11d48}.timeline-date-head.holiday .dow,.timeline-date-head.holiday .holiday-label{color:#e11d48}.timeline-date-head .holiday-label{font-size:10px;font-weight:800;line-height:1}
    .report-dept-row td{font-weight:800;padding:11px 12px;border-top:1px solid #ffe0c8}
    .report-dept-title{display:flex;align-items:center;gap:8px}.report-dept-title i{color:var(--primary)}
    .timeline-cell{width:28px;height:32px;border-radius:7px;overflow:hidden;margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f4f6f8;color:#98a2b3;font-size:12px;font-weight:800;line-height:1}.timeline-cell.rate-day{box-shadow:0 0 0 2px rgba(225,29,72,.18)}
    .timeline-cell .main{height:20px;width:100%;display:flex;align-items:center;justify-content:center}.timeline-cell .ot{height:12px;width:100%;display:flex;align-items:center;justify-content:center;background:#ff8a00;color:#fff;font-size:10px;line-height:1}
    .timeline-cell.full .main{background:#2da44e;color:#fff}.timeline-cell.half .main{background:#f4c430;color:#1f2937}.timeline-cell.leave .main{background:#eff6ff;border:1px solid #cfe2ff;color:#1677ff}.timeline-cell.absent .main{background:#ef4444;color:#fff}.timeline-cell.empty .main{background:#f3f4f6;color:#98a2b3}
    .timeline-tree-cell{position:relative;height:42px}
    .timeline-tree-cell:before{content:"";position:absolute;left:18px;top:-9px;bottom:-9px;width:1px;background:#d9e4f1}
    .timeline-tree-cell:after{content:"";position:absolute;left:18px;top:50%;width:18px;height:1px;background:#d9e4f1}
    tr:last-child .timeline-tree-cell:before{bottom:50%}
    .timeline-tree-dot{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:9px;height:9px;border-radius:50%;background:#fff;border:2px solid #c7d7ea;z-index:1}
    .timeline-emp-name{display:flex;align-items:center;gap:10px;min-width:0}
    .timeline-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0;box-shadow:0 4px 10px rgba(15,23,42,.10)}
    .timeline-name-text{font-weight:600;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .timeline-head-check{display:inline-block;width:16px;height:16px;border:1px solid #b9c5d4;border-radius:4px;background:#fff}

    .report-empty{padding:32px;text-align:center;color:#667085}

    .payroll-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
    .payroll-toolbar-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
    .payroll-note{display:flex;align-items:center;gap:10px;background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;border-radius:14px;padding:12px 14px;margin-bottom:12px;font-weight:600}
    .payroll-flow-card{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:1px solid #dfe6ef;border-radius:16px;box-shadow:0 10px 28px rgba(16,24,40,.06);padding:12px 14px;margin-bottom:12px}
    .payroll-flow-copy{min-width:220px}
    .payroll-flow-title{display:flex;align-items:center;gap:8px;color:#101828;font-weight:900}
    .payroll-flow-title i{color:#ff5f1f}
    .payroll-flow-sub{margin-top:4px;color:#667085;font-size:12px;font-weight:650;line-height:1.35}
    .payroll-flow-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
    .payroll-flow-btn{height:34px;white-space:nowrap}
    .payroll-workflow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}
    .workflow-step{height:62px;border:1px solid #dfe6ef;border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(16,24,40,.05);display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;column-gap:9px;align-items:center;text-align:left;padding:9px 11px;cursor:pointer;font-family:"Inter Tight",sans-serif;color:#344054;transition:.16s ease}
    .workflow-step span{grid-row:1/3;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#eef6ff;color:#1d4ed8;font-weight:950}
    .workflow-step b{font-size:13px;color:#101828;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .workflow-step small{font-size:11px;color:#667085;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .workflow-step:hover{border-color:#bfdbfe;transform:translateY(-1px)}
    .workflow-step.active{border-color:#ff5f1f;background:#fff7ed;box-shadow:0 10px 26px rgba(255,95,31,.12)}
    .workflow-step.active span{background:#ff5f1f;color:#fff}
    .workflow-step.active b{color:#c2410c}
    .payroll-table-wrap{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:auto;max-width:100%;position:relative}
    .payroll-table{min-width:1320px;width:100%;border-collapse:separate;border-spacing:0;font-size:12px;table-layout:fixed}
    .payroll-table.show-advanced{min-width:2340px}
    .payroll-table:not(.show-advanced) .payroll-advanced{display:none}
    .payroll-table th,.payroll-table td{border-right:1px solid #edf2f7;border-bottom:1px solid #edf2f7;padding:6px;text-align:left;vertical-align:middle;background:#fff;overflow:hidden;text-overflow:ellipsis}
    .payroll-table th{position:sticky;top:0;z-index:2;background:#f8fafc;color:#344054;font-weight:800;white-space:nowrap}
    .payroll-table th:nth-child(1),.payroll-table td:nth-child(1){width:62px;min-width:62px;max-width:62px;position:sticky;left:0;z-index:4}
    .payroll-table th:nth-child(2),.payroll-table td:nth-child(2){width:142px;min-width:142px;max-width:142px;position:sticky;left:62px;z-index:4}
    .payroll-table th:nth-child(26),.payroll-table td:nth-child(26){width:118px;min-width:118px;max-width:118px;position:sticky;right:44px;z-index:4}
    .payroll-table th:nth-child(30),.payroll-table td:nth-child(30){width:44px;min-width:44px;max-width:44px;position:sticky;right:0;z-index:5;text-align:center!important}
    .payroll-table th:nth-child(1),.payroll-table th:nth-child(2),.payroll-table th:nth-child(26),.payroll-table th:nth-child(30){z-index:7;background:#eef6ff}
    .payroll-table td:nth-child(1),.payroll-table td:nth-child(2),.payroll-table td:nth-child(26),.payroll-table td:nth-child(30){box-shadow:1px 0 0 #edf2f7;background:#fff}
    .payroll-table th:nth-child(3),.payroll-table td:nth-child(3){width:92px}
    .payroll-table th:nth-child(4),.payroll-table td:nth-child(4),.payroll-table th:nth-child(5),.payroll-table td:nth-child(5),.payroll-table th:nth-child(6),.payroll-table td:nth-child(6),.payroll-table th:nth-child(7),.payroll-table td:nth-child(7){width:58px;text-align:center}
    .payroll-table th:nth-child(17),.payroll-table td:nth-child(17){width:82px}
    .payroll-table th:nth-child(10),.payroll-table td:nth-child(10),.payroll-table th:nth-child(12),.payroll-table td:nth-child(12),.payroll-table th:nth-child(14),.payroll-table td:nth-child(14),.payroll-table th:nth-child(15),.payroll-table td:nth-child(15),.payroll-table th:nth-child(16),.payroll-table td:nth-child(16),.payroll-table th:nth-child(18),.payroll-table td:nth-child(18),.payroll-table th:nth-child(19),.payroll-table td:nth-child(19),.payroll-table th:nth-child(20),.payroll-table td:nth-child(20),.payroll-table th:nth-child(25),.payroll-table td:nth-child(25){width:92px}
    .payroll-table .payroll-code{font-weight:800;color:#1d2939}
    .payroll-stat{font-weight:800;color:#2563eb;text-align:center!important;background:#eff6ff!important;white-space:nowrap}
    .payroll-money{font-weight:800;text-align:right!important;background:#fbfdff!important;white-space:nowrap}
    .payroll-input{width:100%;height:30px;border:1px solid #dfe6ef;border-radius:8px;padding:0 7px;font-family:"Inter Tight",sans-serif;font-weight:650}
    .payroll-input[type="number"]{text-align:right}
    .payroll-money-edit{text-align:right}
    .payroll-money-edit::-webkit-outer-spin-button,.payroll-money-edit::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
    .payroll-readonly{min-height:30px;border:1px solid #edf2f7;border-radius:8px;background:#f8fafc;color:#344054;padding:7px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .payroll-readonly.money{text-align:right}
    .payroll-score{min-height:30px;border-radius:8px;padding:7px;text-align:center;font-weight:900;white-space:nowrap}
    .payroll-score.good{background:#f0fdf4;color:#078b42;border:1px solid #bbf7d0}
    .payroll-score.warn{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}
    .payroll-score.bad{background:#fff1f2;color:#e11d48;border:1px solid #fecdd3}
    .payroll-net{font-weight:900;color:#078b42;white-space:nowrap;text-align:right!important;background:#f0fdf4!important}
    .payroll-export-btn{width:30px;height:30px;border:1px solid #bfdbfe;border-radius:9px;background:#eff6ff;color:#1d4ed8;display:flex;align-items:center;justify-content:center;cursor:pointer}
    .payroll-export-btn:hover{background:#dbeafe}
    .payroll-empty{text-align:center!important;color:#667085;padding:28px!important}
    .self-check-card{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:16px;padding:14px 16px;margin:0 0 16px}
    .self-check-title{display:flex;align-items:center;gap:8px;color:#155bc0;font-weight:900;font-size:16px}
    .self-check-sub{color:#475467;margin-top:4px;font-weight:600}
    .self-check-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
    .quick-month-grid{user-select:none}
    .quick-day.selected{box-shadow:0 0 0 2px rgba(255,95,31,.22) inset}
    .reward-note{background:#fff7ed;border-color:#fed7aa;color:#c2410c}
    .payroll-toolbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
    .month-stepper{display:flex;align-items:center;gap:6px}
    .month-control{width:148px;text-align:center;font-weight:900}
    .icon-btn{width:38px;padding:0;justify-content:center}
    .staff-subtabs{display:inline-flex;align-items:center;gap:4px;background:#eef2f7;border:1px solid var(--line);border-radius:12px;padding:4px;margin-bottom:12px}
    .staff-subtab{height:38px;border:0;background:transparent;color:#667085;border-radius:9px;padding:0 14px;display:flex;align-items:center;gap:8px;font-weight:800;cursor:pointer}
    .staff-subtab.active{background:#fff;color:#ff5f1f;box-shadow:0 6px 16px rgba(15,23,42,.08)}
    .staff-panel{display:none}
    .staff-panel.active{display:block}
    .salary-default-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
    .salary-default-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
    .salary-default-note{display:flex;align-items:center;gap:10px;background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d;border-radius:14px;padding:12px 14px;margin-bottom:12px;font-weight:650}
    .salary-default-wrap{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:auto;max-width:100%}
    .salary-default-table{min-width:1760px;width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
    .salary-default-table th,.salary-default-table td{border-right:1px solid #edf2f7;border-bottom:1px solid #edf2f7;padding:8px;text-align:left;vertical-align:middle;background:#fff}
    .salary-default-table th{position:sticky;top:0;z-index:2;background:#e7f0fb;color:#1f4e79;font-weight:900;white-space:nowrap}
    .salary-default-code{font-weight:900;color:#1d2939;background:#f8fbff!important}
    .salary-default-input{width:100%;height:34px;border:1px solid #dfe6ef;border-radius:8px;padding:0 9px;font-family:"Inter Tight",sans-serif;font-weight:650}
    .salary-default-input[type="number"]{text-align:right}
    .salary-default-empty{text-align:center!important;color:#667085;padding:28px!important}
    .reward-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:12px}
    .reward-summary>div{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:14px 16px}
    .reward-summary b{display:block;color:#155bc0;font-size:20px;font-weight:900;margin-bottom:3px}
    .reward-summary span{color:#667085;font-size:13px;font-weight:700}
    .reward-table{min-width:1320px;width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
    .reward-table th,.reward-table td{border-right:1px solid #edf2f7;border-bottom:1px solid #edf2f7;padding:9px;text-align:left;vertical-align:middle;background:#fff}
    .reward-table th{position:sticky;top:0;z-index:2;background:#f8fafc;color:#344054;font-weight:800;white-space:nowrap}
    .reward-actions{display:flex;align-items:center;gap:6px;white-space:nowrap}
    .performance-note{background:#f0fdf4;border-color:#bbf7d0;color:#047857}
    .performance-subtabs{margin:12px 0}
    .performance-sub-panel{display:none}
    .performance-sub-panel.active{display:block}
    .kpi-catalog-card{background:#fff;border:1px solid #fed7aa;border-radius:14px;box-shadow:0 16px 34px rgba(255,95,31,.10);padding:0;margin-bottom:12px;overflow:hidden}
    .kpi-catalog-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;background:#fff7ed;border-bottom:1px solid #fed7aa}
    .kpi-catalog-head strong{display:flex;align-items:center;gap:8px;color:#101828;font-weight:900}
    .kpi-catalog-head i{color:#ff5f1f}
    .kpi-catalog-head small{display:block;color:#667085;font-size:12px;font-weight:700;margin-top:4px}
    .kpi-catalog-actions{display:flex;justify-content:flex-end;gap:8px}
    .kpi-catalog-list{display:grid;gap:10px;padding:16px}
    .kpi-catalog-template{border:1px solid #e5eaf2;border-radius:12px;background:#fff;overflow:hidden}
    .kpi-catalog-template-head{display:grid;grid-template-columns:110px minmax(160px,1.2fr) minmax(120px,.8fr) minmax(120px,.8fr) 90px 118px;gap:8px;padding:12px;background:#f8fbff;border-bottom:1px solid #edf2f7;align-items:center}
    .kpi-toggle{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:850;color:#155bc0;white-space:nowrap}
    .kpi-catalog-input{height:36px;border:1px solid #dfe6ef;border-radius:10px;padding:0 10px;background:#fff;font-weight:750;color:#101828;min-width:0}
    .kpi-catalog-input.title{font-weight:900}
    .kpi-catalog-input.small{text-align:center}
    .kpi-catalog-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;color:#667085;font-size:12px;font-weight:750}
    .kpi-catalog-meta b.ok{color:#078b42}
    .kpi-catalog-meta b.warn{color:#dc2626}
    .kpi-catalog-criteria-list{display:grid;gap:6px;padding:0 12px 12px}
    .kpi-catalog-criteria{display:grid;grid-template-columns:34px minmax(180px,1fr) 80px 36px;gap:8px;align-items:center}
    .kpi-catalog-criteria input[type="checkbox"]{height:18px}
    .kpi-catalog-input.desc{grid-column:2 / 4;height:32px;color:#667085;font-size:12px;font-weight:700;background:#fbfdff}
    .kpi-catalog-template-actions{display:flex;justify-content:flex-end;gap:8px;padding:10px 12px;border-top:1px solid #edf2f7;background:#fbfcfe}
    .performance-revenue-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px;margin-bottom:12px}
    .performance-revenue-grid label{display:flex;flex-direction:column;gap:7px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:12px 14px;color:#344054;font-size:13px;font-weight:800}
    .performance-revenue-chart-card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:14px;margin-bottom:12px}
    .performance-table{min-width:1320px;width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
    .performance-table th,.performance-table td{border-right:1px solid #edf2f7;border-bottom:1px solid #edf2f7;padding:9px;text-align:left;vertical-align:middle;background:#fff}
    .performance-table th{position:sticky;top:0;z-index:2;background:#f8fafc;color:#344054;font-weight:800;white-space:nowrap}
    .kpi-template-pill{display:inline-flex;align-items:center;border:1px solid #dbeafe;background:#eff6ff;color:#155bc0;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:850;white-space:nowrap}
    .kpi-score-chip{display:inline-flex;align-items:center;justify-content:center;min-width:74px;border-radius:999px;padding:6px 10px;font-weight:900;font-size:12px}
    .kpi-score-chip.good{background:#f0fdf4;border:1px solid #bbf7d0;color:#078b42}
    .kpi-score-chip.warn{background:#fff7ed;border:1px solid #fed7aa;color:#c2410c}
    .kpi-score-chip.bad{background:#fff1f2;border:1px solid #fecdd3;color:#e11d48}
    .kpi-open-btn{height:32px;padding:0 10px;border-radius:9px;background:#eff6ff;border:1px solid #bfdbfe;color:#155bc0;font-size:12px;font-weight:850}
    .kpi-open-btn i{margin-right:5px}
    .kpi-criteria-grid{display:grid;grid-template-columns:repeat(2,minmax(116px,1fr));gap:6px;min-width:330px}
    .kpi-criteria-grid label{display:grid;grid-template-columns:1fr 58px;align-items:center;gap:6px;color:#344054;font-size:11px;font-weight:800}
    .kpi-criteria-grid small{color:#667085;font-weight:700;margin-left:3px}
    .kpi-criteria-grid .payroll-input{height:28px;padding:0 6px}
    .kpi-modal-box{width:min(860px,96vw)}
    .kpi-modal-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}
    .kpi-modal-summary>div{border:1px solid #e5eaf2;border-radius:12px;background:#f8fbff;padding:10px}
    .kpi-modal-summary span{display:block;color:#667085;font-size:11px;font-weight:800;margin-bottom:4px}
    .kpi-modal-summary b{color:#155bc0;font-size:14px;font-weight:950}
    .kpi-modal-list{display:grid;gap:9px}
    .kpi-modal-criterion{display:grid;gap:10px;border:1px solid #e5eaf2;border-radius:12px;background:#fff;padding:12px;overflow:hidden}
    .kpi-criterion-head{display:grid;grid-template-columns:minmax(180px,1fr) minmax(360px,1.45fr);align-items:start;gap:12px}
    .kpi-criterion-copy{min-width:0}
    .kpi-criterion-title-row{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
    .kpi-modal-criterion strong{display:block;color:#101828;font-size:13px;margin-bottom:3px}
    .kpi-modal-criterion span{color:#667085;font-size:12px;font-weight:750}
    .kpi-review-issues-btn{height:26px;padding:0 8px;border-radius:8px;border:1px solid #fed7aa;background:#fff7ed;color:#ea580c;font-size:11px;font-weight:900}
    .kpi-review-issues-btn i{margin-right:4px}
    .kpi-level-group{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;min-width:0}
    .kpi-level-btn{height:36px;border:1px solid #dfe6ef;border-radius:9px;background:#fff;color:#344054;font-weight:900;cursor:pointer}
    .kpi-level-btn:hover{border-color:#93c5fd;background:#eff6ff;color:#155bc0}
    .kpi-level-btn.active{border-color:#2563eb;background:#2563eb;color:#fff;box-shadow:0 8px 18px rgba(37,99,235,.18)}
    .kpi-level-btn:disabled{cursor:not-allowed;opacity:.55}
    .kpi-level-btn:disabled:hover{border-color:#dfe6ef;background:#fff;color:#344054}
    .kpi-level-btn.active:disabled{opacity:1;border-color:#2563eb;background:#2563eb;color:#fff}
    .kpi-metric-row{display:grid;grid-template-columns:repeat(2,minmax(0,126px));justify-content:end;gap:8px;width:min(100%,260px);margin-left:auto}
    .kpi-metric-row label{display:grid;gap:4px;color:#667085;font-size:11px;font-weight:800;min-width:0}
    .kpi-metric-input{width:100%;min-width:0;box-sizing:border-box;height:32px;border:1px solid #dfe6ef;border-radius:9px;padding:0 8px;font-weight:850;color:#101828}
    .kpi-metric-input:disabled{background:#f3f6fb;color:#155bc0;cursor:not-allowed}
    .kpi-info-icon,.my-kpi-info{margin-left:5px;color:#98a2b3;font-size:12px}
    .kpi-modal-hint{margin-top:12px;border:1px dashed #bfdbfe;background:#eff6ff;color:#155bc0;border-radius:12px;padding:10px 12px;font-size:12px;font-weight:750;line-height:1.45}
    .kpi-issue-review-box{width:min(980px,96vw)}
    .kpi-issue-counter-box{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px;padding:10px;border-radius:12px;border:1px solid #dbeafe;background:#f8fbff}
    .kpi-issue-counter-box.warn{border-color:#fed7aa;background:#fff7ed}
    .kpi-issue-counter-box.ok{border-color:#bbf7d0;background:#f0fdf4}
    .kpi-issue-counter-box span{display:block;color:#667085;font-size:11px;font-weight:850;margin-bottom:4px}
    .kpi-issue-counter-box b{display:block;color:#155bc0;font-size:15px;font-weight:950}
    .kpi-issue-counter-box.warn b{color:#c2410c}
    .kpi-issue-review-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px}
    .kpi-issue-review-summary>div{border:1px solid #e5eaf2;border-radius:12px;background:#f8fbff;padding:10px}
    .kpi-issue-review-summary span{display:block;color:#667085;font-size:11px;font-weight:850;margin-bottom:4px}
    .kpi-issue-review-summary b{color:#155bc0;font-size:16px;font-weight:950}
    .kpi-issue-review-note{border:1px dashed #fed7aa;background:#fff7ed;color:#9a3412;border-radius:10px;padding:9px 11px;margin-bottom:10px;font-size:12px;font-weight:750;line-height:1.4}
    .kpi-issue-review-list{display:grid;gap:8px}
    .kpi-issue-review-row{display:grid;grid-template-columns:minmax(280px,1fr) 112px 170px;gap:10px;align-items:center;border:1px solid #e5eaf2;border-radius:12px;background:#fff;padding:10px}
    .kpi-issue-review-main{display:grid;grid-template-columns:145px minmax(0,1fr);gap:10px;align-items:start;min-width:0}
    .kpi-issue-review-detail-head{display:flex;align-items:center;gap:8px;min-width:0;margin-bottom:2px}
    .kpi-issue-review-order b,.kpi-issue-review-detail strong{display:block;color:#101828;font-size:12px;font-weight:950}
    .kpi-issue-review-order span,.kpi-issue-review-detail span,.kpi-issue-review-detail small,.kpi-issue-review-stats span,.kpi-issue-review-stats small{display:block;color:#667085;font-size:11px;font-weight:750;line-height:1.35}
    .kpi-issue-review-detail span,.kpi-issue-review-detail small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .kpi-issue-review-stats b{display:block;color:#0f172a;font-size:13px;font-weight:950;margin:2px 0}
    .kpi-issue-review-status{display:inline-flex;align-items:center;justify-content:center;min-height:22px;border-radius:999px;padding:0 8px;font-size:10.5px;font-weight:950;white-space:nowrap;flex:0 0 auto}
    .kpi-issue-review-status.pending{background:#fff7ed;color:#ea580c;border:1px solid #fed7aa}
    .kpi-issue-review-status.counted{background:#ecfdf3;color:#039855;border:1px solid #bbf7d0}
    .kpi-issue-review-status.ignored{background:#f2f4f7;color:#667085;border:1px solid #e4e7ec}
    .kpi-issue-review-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}
    .kpi-issue-review-action{height:30px;padding:0 8px;border-radius:8px;font-size:11px;font-weight:900}
    .kpi-issue-review-action.good{background:#ecfdf3;border:1px solid #bbf7d0;color:#039855}
    .kpi-issue-review-action.muted{background:#fff;border:1px solid #dfe6ef;color:#667085}
    @media(max-width:760px){
      .kpi-modal-summary{grid-template-columns:1fr 1fr}
      .kpi-issue-counter-box{grid-template-columns:1fr}
      .kpi-criterion-head{grid-template-columns:1fr}
      .kpi-level-group{grid-template-columns:repeat(5,1fr)}
      .kpi-metric-row{grid-template-columns:1fr 1fr;justify-content:stretch;width:100%}
      .kpi-issue-review-summary{grid-template-columns:1fr 1fr}
      .kpi-issue-review-row{grid-template-columns:1fr}
      .kpi-issue-review-main{grid-template-columns:1fr}
    }
    @media(max-width:900px){
      .payroll-toolbar-left{width:100%}
      .payroll-toolbar-left .control{min-width:0;width:100%}
      .payroll-toolbar .btn{width:100%}
      .payroll-toolbar-right{width:100%}
      .salary-default-left{width:100%}
      .salary-default-left .control{min-width:0;width:100%}
      .salary-default-toolbar .btn{width:100%}
      .reward-summary{grid-template-columns:1fr}
      .performance-revenue-grid{grid-template-columns:1fr}
      .kpi-catalog-head{align-items:flex-start;flex-direction:column}
      .kpi-catalog-actions{width:100%;flex-direction:column}
      .kpi-catalog-actions .btn{width:100%}
      .kpi-catalog-template-head{grid-template-columns:1fr}
      .kpi-catalog-criteria{grid-template-columns:34px 1fr 70px 36px}
    }


    /* === My attendance stats redesign VSG === */
    .my-attendance-layout{
      grid-template-columns:minmax(660px,1fr) 480px;
      gap:18px;
    }
    .my-attendance-stats-col{
      padding:18px;
      border-radius:20px;
      background:#ffffff;
      box-shadow:0 18px 46px rgba(15,23,42,.08);
    }
    .my-stats-head{
      margin-bottom:14px;
      border-bottom:none;
      padding-bottom:0;
    }
    .my-stats-title{font-size:16px;}
    .my-stats-title i{color:#1677ff;}
    .my-stats-month{
      background:#eef6ff;
      color:#1677ff;
      border-color:#cfe2ff;
      height:30px;
      padding:0 12px;
    }
    .my-summary-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:12px;
      margin:0;
      overflow:visible;
    }
    .my-progress-card{
      grid-column:1 / -1;
      min-height:132px;
      border-radius:18px;
      background:linear-gradient(135deg,#162947,#243d67);
      color:#fff;
      padding:20px;
      display:grid;
      grid-template-columns:92px 1fr;
      gap:18px;
      align-items:center;
      box-shadow:0 16px 34px rgba(22,41,71,.22);
    }
    .my-progress-ring{
      --pct:0;
      width:82px;
      height:82px;
      border-radius:50%;
      background:conic-gradient(#86efac calc(var(--pct) * 1%), rgba(255,255,255,.22) 0);
      display:flex;
      align-items:center;
      justify-content:center;
      position:relative;
      flex-shrink:0;
    }
    .my-progress-ring:after{
      content:"";
      position:absolute;
      width:60px;
      height:60px;
      border-radius:50%;
      background:#243d67;
    }
    .my-progress-ring span{
      position:relative;
      z-index:1;
      font-weight:800;
      font-size:18px;
    }
    .my-progress-label{
      font-size:12px;
      font-weight:800;
      text-transform:uppercase;
      letter-spacing:.4px;
      opacity:.78;
      margin-bottom:8px;
    }
    .my-progress-main{
      display:flex;
      align-items:baseline;
      gap:8px;
      font-size:34px;
      font-weight:800;
      line-height:1;
    }
    .my-progress-main small{
      font-size:14px;
      font-weight:600;
      opacity:.82;
    }
    .my-progress-sub{
      margin-top:8px;
      color:#dbeafe;
      font-size:12px;
      line-height:1.4;
    }
    .my-stat-mini{
      min-height:86px;
      border:1px solid var(--line);
      border-radius:16px;
      padding:14px;
      background:#fff;
      display:flex;
      align-items:center;
      gap:12px;
    }
    .my-stat-mini .mini-icon{
      width:38px;
      height:38px;
      border-radius:13px;
      display:flex;
      align-items:center;
      justify-content:center;
      flex-shrink:0;
      font-size:17px;
    }
    .my-stat-mini .mini-label{font-size:12px;font-weight:800;margin-bottom:4px;}
    .my-stat-mini .mini-value{font-size:25px;font-weight:850;line-height:1;}
    .my-stat-mini .mini-unit{font-size:12px;color:#667085;margin-left:4px;font-weight:600;}
    .my-attendance-bonus-card{grid-column:span 1;}
    .attendance-bonus-main{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:6px 8px;width:100%;min-width:0;}
    .attendance-bonus-content{min-width:0;}
    .attendance-bonus-content .mini-label{margin-bottom:8px;}
    .attendance-bonus-content .mini-value{font-size:25px;color:#078b42;white-space:nowrap;}
    .attendance-score-chip{display:inline-flex;align-items:baseline;justify-content:flex-end;gap:2px;font-weight:900;white-space:nowrap;line-height:1;}
    .attendance-score-chip b{font-size:15px;color:inherit;}
    .attendance-score-chip span{font-size:11px;color:#667085;font-weight:800;}

    .my-stat-mini{
      position:relative;
      overflow:hidden;
      transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
    }
    .my-stat-mini:hover{
      transform:translateY(-2px);
      box-shadow:0 14px 30px rgba(15,23,42,.08);
    }
    .my-stat-mini.short-work-card{
      overflow:visible;
      z-index:5;
      cursor:help;
      outline:none;
    }
    .my-stat-mini.short-work-card:hover,
    .my-stat-mini.short-work-card:focus{
      z-index:20;
    }
    .short-work-popover{
      display:none;
      position:absolute;
      right:0;
      top:calc(100% + 10px);
      width:min(441px, calc(100vw - 32px));
      max-height:430px;
      overflow:auto;
      border:1px solid #fed7aa;
      border-radius:14px;
      background:#fffdf8;
      color:#344054;
      padding:12px;
      box-shadow:0 18px 42px rgba(15,23,42,.18);
      z-index:30;
    }
    .short-work-popover:before{
      content:"";
      position:absolute;
      top:-7px;
      right:24px;
      width:12px;
      height:12px;
      background:#fffdf8;
      border-left:1px solid #fed7aa;
      border-top:1px solid #fed7aa;
      transform:rotate(45deg);
    }
    .short-work-card:hover .short-work-popover,
    .short-work-card:focus .short-work-popover,
    .short-work-card:focus-within .short-work-popover,
    .short-work-card.is-open .short-work-popover{
      display:block;
    }
    .short-work-popover .popover-title{
      color:#92400e;
      font-size:13px;
      font-weight:900;
      margin-bottom:4px;
    }
    .short-work-popover .popover-text{
      color:#667085;
      font-size:12px;
      line-height:1.45;
    }
    .short-work-popover .popover-more{
      margin-top:8px;
      border:1px solid #fed7aa;
      border-radius:999px;
      background:#fff7ed;
      color:#c2410c;
      padding:6px 10px;
      font-size:12px;
      font-weight:850;
      width:max-content;
      max-width:100%;
    }
    @media(max-width:640px){
      .attendance-bonus-main{grid-template-columns:minmax(0,1fr) auto;}
      .short-work-popover{
        position:fixed;
        left:12px;
        right:12px;
        top:auto;
        bottom:14px;
        width:auto;
        max-height:58vh;
      }
      .short-work-popover:before{display:none}
    }
    .my-stat-mini .mini-icon i{filter:drop-shadow(0 2px 4px rgba(15,23,42,.08));}
    .my-stat-green{background:linear-gradient(135deg,#f1fbf6,#fff);border-color:#c8efd9;color:#16a34a;}
    .my-stat-yellow{background:linear-gradient(135deg,#fff8e8,#fff);border-color:#ffe3ad;color:#e69000;}
    .my-stat-blue{background:linear-gradient(135deg,#eff6ff,#fff);border-color:#cfe2ff;color:#1677ff;}
    .my-stat-red{background:linear-gradient(135deg,#fff0f0,#fff);border-color:#ffcaca;color:#ef4444;}
    .my-stat-gray{background:linear-gradient(135deg,#f5f7fb,#fff);border-color:#e1e7ef;color:#667085;}
    .my-stat-purple{background:linear-gradient(135deg,#f5f0ff,#fff);border-color:#ddd6fe;color:#7c3aed;}
    .my-stat-orange{background:linear-gradient(135deg,#fff7ed,#fff);border-color:#fed7aa;color:#ea580c;}
    .my-extra-stats{
      grid-column:1/-1;
      border:1px solid #e5eaf2;
      border-radius:14px;
      background:#fff;
      padding:10px 12px;
      color:#667085;
    }
    .my-extra-stats summary{
      cursor:pointer;
      font-size:12px;
      font-weight:900;
      color:#344054;
      list-style:none;
      display:flex;
      align-items:center;
      justify-content:space-between;
    }
    .my-extra-stats summary::-webkit-details-marker{display:none}
    .my-extra-stats summary:after{content:"+";font-size:16px;color:#ff5f1f;font-weight:900}
    .my-extra-stats[open] summary:after{content:"-"}
    .extra-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin-top:10px;font-size:12px}
    .extra-stat-grid span{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #f0f3f8;padding-top:7px}
    .extra-stat-grid b{color:#101828;white-space:nowrap}
    .my-status-message{
      grid-column:1 / -1;
      margin-top:2px;
      border:1px solid #c8efd9;
      border-radius:18px;
      background:linear-gradient(135deg,#f1fbf6,#fff);
      color:#166534;
      padding:16px;
      display:flex;
      gap:13px;
      align-items:flex-start;
      line-height:1.45;
    }
    .my-status-message.warning{
      border-color:#ffe3ad;
      background:linear-gradient(135deg,#fff8e8,#fff);
      color:#92400e;
    }
    .my-status-message .status-icon{font-size:26px;line-height:1;}
    .my-status-message .status-title{font-size:16px;font-weight:850;margin-bottom:4px;}
    .my-status-message .status-text{font-size:12px;color:#475467;}
    .attendance-penalty-list{margin-top:10px;display:grid;gap:4px;font-size:12px;color:#475467}
    .attendance-penalty-list div{background:rgba(255,255,255,.72);border:1px solid rgba(203,213,225,.7);border-radius:8px;padding:6px 8px}
    .attendance-penalty-list b{color:#dc2626}
    .attendance-penalty-list.compact{gap:6px}
    .attendance-more{margin-top:8px}
    .attendance-more summary{cursor:pointer;width:max-content;max-width:100%;border:1px solid #fed7aa;border-radius:999px;background:#fff7ed;color:#c2410c;padding:6px 10px;font-size:12px;font-weight:850;list-style:none}
    .attendance-more summary::-webkit-details-marker{display:none}
    .shortage-list .shortage-item{
      display:grid;
      gap:4px;
      background:#fff!important;
      border:1px solid #e5eaf2!important;
      border-radius:8px!important;
      padding:7px 8px!important;
    }
    .shortage-list .shortage-row{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      background:transparent!important;
      border:0!important;
      border-radius:0!important;
      padding:0!important;
      min-width:0;
    }
    .shortage-main{font-weight:750;color:#344054}
    .shift-time{display:inline-flex;align-items:center;width:max-content;max-width:44%;border:0!important;background:transparent!important;color:#1d4ed8;border-radius:0!important;padding:0!important;font-weight:800;white-space:nowrap;justify-content:flex-end;text-align:right}
    .shift-time.missing{border:0!important;background:transparent!important;color:#c2410c}
    .shortage-note{color:#667085;font-size:11px;line-height:1.45}
    .my-payslip-tools{display:flex;align-items:center;gap:8px;margin:0 0 10px}
    .my-payslip-tools .control{height:34px;min-width:116px;border-radius:10px}
    .my-payslip-tools .secondary-btn{height:34px;padding:0 12px;border-radius:10px;font-size:12px}
    .salary-history-card{grid-column:1/-1;background:#fff;border:1px solid #dfe6ef;border-radius:14px;padding:12px;box-shadow:0 10px 26px rgba(16,24,40,.06)}
    .salary-history-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
    .salary-history-title{display:flex;align-items:center;gap:8px;color:#101828;font-weight:900}
    .salary-history-title i{color:#1d4ed8}
    .salary-history-sub{font-size:12px;color:#667085;margin-top:3px;line-height:1.35}
    .salary-history-net{display:grid;gap:3px;text-align:right;white-space:nowrap}
    .salary-history-net span{font-size:11px;color:#667085;font-weight:800}
    .salary-history-net b{font-size:14px;font-weight:950;color:#078b42}
    .salary-chart-bars{height:132px;display:grid;grid-template-columns:repeat(12,minmax(16px,1fr));align-items:end;gap:6px;padding:4px 0 0}
    .salary-bar-item{min-width:0;display:grid;grid-template-rows:1fr auto;gap:6px;height:100%;text-align:center}
    .salary-bar-track{height:100%;border-radius:8px;background:#eef2f7;display:flex;align-items:flex-end;overflow:hidden}
    .salary-bar-fill{width:100%;border-radius:8px 8px 0 0;background:linear-gradient(180deg,#22c55e,#0ea5e9)}
    .salary-bar-label{font-size:10px;color:#667085;font-weight:800;white-space:nowrap}
    .salary-line-chart{position:relative;margin-top:4px}
    .salary-line-chart svg{width:100%;height:210px;display:block;overflow:visible}
    .salary-line-grid{stroke:#e5eaf2;stroke-width:1}
    .salary-line-y,.salary-line-x{fill:#667085;font-size:11px;font-weight:800}
    .salary-line{fill:none;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
    .salary-line.income{stroke:#16a34a}
    .salary-line.net{stroke:#0ea5e9;stroke-width:2.4;stroke-dasharray:7 6;opacity:.82}
    .salary-line.target{stroke:#f59e0b;stroke-width:2.2;stroke-dasharray:7 5;opacity:.9}
    .salary-point circle{stroke:#fff;stroke-width:2.5;transition:r .16s ease, filter .16s ease}
    .salary-point circle.income{fill:#16a34a}
    .salary-point circle.net{fill:#0ea5e9}
    .salary-point:hover circle{r:6;filter:drop-shadow(0 3px 7px rgba(15,23,42,.2))}
    .salary-line-legend{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:4px;color:#667085;font-size:11px;font-weight:850;flex-wrap:wrap}
    .salary-line-legend span{display:inline-flex;align-items:center;gap:6px}
    .salary-line-legend i{width:18px;height:3px;border-radius:99px;display:inline-block}
    .salary-line-legend i.income{background:#16a34a}
    .salary-line-legend i.net{background:repeating-linear-gradient(90deg,#0ea5e9 0 7px,transparent 7px 12px)}
    .salary-line-legend i.target{background:repeating-linear-gradient(90deg,#f59e0b 0 7px,transparent 7px 12px)}
    .salary-chart-empty{border:1px dashed #cbd5e1;border-radius:12px;padding:18px;text-align:center;color:#667085;font-weight:700;background:#f8fafc}
    .salary-history-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:10px;padding-top:10px;border-top:1px solid #edf2f7;color:#667085;font-size:12px}
    .salary-history-foot b{color:#101828}
    .my-kpi-card{grid-column:1/-1;background:#fff;border:1px solid #dbeafe;border-radius:14px;padding:13px;box-shadow:0 10px 26px rgba(16,24,40,.06)}
    .my-kpi-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
    .my-kpi-title{display:flex;align-items:center;gap:8px;font-weight:900;color:#101828}
    .my-kpi-title i{color:#2563eb}
    .my-kpi-sub{font-size:12px;color:#667085;margin-top:3px;line-height:1.35}
    .my-kpi-score{display:flex;align-items:baseline;gap:3px;color:#2563eb;white-space:nowrap}
    .my-kpi-score b{font-size:28px;line-height:1}
    .my-kpi-score span{font-size:12px;color:#667085;font-weight:800}
    .my-kpi-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
    .my-kpi-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;border:1px solid #edf2f7;border-radius:10px;background:#f8fbff;padding:8px 10px;color:#344054;font-size:12px;font-weight:800;cursor:help}
    .my-kpi-row span{min-width:0}
    .my-kpi-row small{color:#667085;font-weight:900;background:#eef4ff;border:1px solid #dbeafe;border-radius:999px;padding:2px 6px;font-size:10.5px;white-space:nowrap}
    .my-kpi-row b{color:#155bc0;white-space:nowrap}
    .my-kpi-empty,.my-kpi-note{border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc;color:#667085;padding:10px;font-size:12px;font-weight:700;margin-top:8px;line-height:1.4}
    @media(max-width:640px){
      .my-kpi-list{grid-template-columns:1fr}
      .my-kpi-head{align-items:center}
    }


  
