.payroll-page{display:grid;gap:18px}
.payroll-hero{display:flex;justify-content:space-between;gap:22px;align-items:flex-start;padding:24px;border:1px solid #e8e0f1;border-radius:20px;background:linear-gradient(135deg,#fff 0%,#faf7ff 100%);box-shadow:0 10px 30px rgba(68,39,92,.05)}
.payroll-hero h2{margin:5px 0 8px;font-size:24px;color:#291b37}
.payroll-hero p{max-width:760px;margin:0;color:#766a82;line-height:1.9}
.payroll-eyebrow{font-size:12px;font-weight:900;color:#7c3aed}
.payroll-hero__actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.payroll-tabs{display:flex;gap:8px;padding:6px;border:1px solid #e8e0f1;border-radius:15px;background:#fff;overflow:auto}
.payroll-tab{border:0;background:transparent;color:#655970;border-radius:11px;padding:10px 14px;font-family:inherit;font-weight:800;white-space:nowrap;cursor:pointer;display:inline-flex;align-items:center;gap:8px}
.payroll-tab:hover{background:#faf7ff;color:#6d28d9}
.payroll-tab.is-active{background:#f0e8ff;color:#5b21b6;box-shadow:inset 0 0 0 1px #ddcff8}
.payroll-alert{display:flex;align-items:center;gap:10px}
.payroll-alert span{flex:1}
.payroll-loading,.payroll-empty{min-height:220px;border:1px dashed #dcd1e6;border-radius:18px;background:#fff;display:grid;place-items:center;align-content:center;gap:10px;color:#796d84;text-align:center;padding:24px}
.payroll-loading i,.payroll-empty>i{font-size:28px;color:#8b5cf6}
.payroll-empty h3,.payroll-empty p{margin:0}
.payroll-empty--compact{min-height:140px}
.payroll-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.payroll-kpi{display:flex;align-items:center;gap:13px;padding:17px;border:1px solid #ebe4f1;border-radius:16px;background:#fff}
.payroll-kpi>i{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#f3edff;color:#6d28d9}
.payroll-kpi small,.payroll-kpi span{display:block;color:#887a93}
.payroll-kpi strong{display:block;font-size:24px;color:#2f213c;margin:1px 0}
.payroll-kpi.is-warning{border-color:#fed7aa;background:#fffaf3}
.payroll-kpi.is-warning>i{background:#ffedd5;color:#c2410c}
.payroll-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:14px;margin-top:14px}
.payroll-grid--periods{grid-template-columns:minmax(0,1fr);margin-top:0}
.payroll-panel{padding:18px;border:1px solid #e9e2ef;border-radius:18px;background:#fff;min-width:0}
.payroll-panel__head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:14px}
.payroll-panel__actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}

.payroll-panel__head h3{margin:3px 0 0;font-size:18px}
.payroll-panel__head small{color:#8a7c94}
.payroll-flow{display:grid;gap:9px}
.payroll-flow__item{display:flex;gap:11px;align-items:center;padding:11px;border:1px solid #eee8f4;border-radius:13px}
.payroll-flow__item>span{flex:0 0 30px;width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:#eee7fd;color:#6d28d9;font-weight:900}
.payroll-flow__item b,.payroll-flow__item small{display:block}
.payroll-flow__item small{color:#85788f;margin-top:2px}
.payroll-summary-list{display:grid;gap:9px;margin:0 0 14px}
.payroll-summary-list>div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #f0eaf4}
.payroll-summary-list dt{color:#887a93}.payroll-summary-list dd{margin:0;font-weight:800}
.payroll-table-wrap{overflow:auto;border:1px solid #eee8f4;border-radius:14px}
.payroll-table{width:100%;border-collapse:collapse;min-width:720px}
.payroll-table th,.payroll-table td{padding:11px 10px;border-bottom:1px solid #f0ebf4;text-align:right;vertical-align:middle;font-size:13px}
.payroll-table th{background:#faf8fc;color:#6d6078;font-size:12px;white-space:nowrap}
.payroll-row-number{width:64px;text-align:center!important;font-variant-numeric:tabular-nums}
.payroll-sort-button{appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-weight:850;padding:0;display:inline-flex;align-items:center;gap:7px;cursor:pointer;white-space:nowrap}
.payroll-sort-button i{font-size:10px;opacity:.55;transition:opacity .15s ease,transform .15s ease}
.payroll-sort-button:hover,.payroll-sort-button.is-sorted{color:#6d28d9}
.payroll-sort-button:hover i,.payroll-sort-button.is-sorted i{opacity:1}
.payroll-directory-tools{display:grid;grid-template-columns:minmax(260px,1.5fr) repeat(3,minmax(145px,.7fr)) auto;gap:9px;align-items:center;margin:0 0 12px}
.payroll-directory[data-directory="services"] .payroll-directory-tools{grid-template-columns:minmax(240px,1.5fr) minmax(140px,.65fr) minmax(140px,.65fr) minmax(170px,.75fr) auto}
.payroll-directory-search{position:relative;display:block}
.payroll-directory-search>i{position:absolute;inset-inline-start:12px;top:50%;transform:translateY(-50%);color:#8a7c94;pointer-events:none}
.payroll-directory-search .input{width:100%;padding-inline-start:36px}
.payroll-directory-tools .select{width:100%;min-width:0}
.payroll-filter-count{justify-self:end;white-space:nowrap;color:#6f6179;font-size:11px;font-weight:850;background:#f7f2ff;border:1px solid #e6daf9;border-radius:999px;padding:7px 10px}
.payroll-filter-empty td{text-align:center!important;color:#8a7c94!important;padding:22px!important;background:#fff!important}

.payroll-table tbody tr:last-child td{border-bottom:0}
.payroll-table tbody tr:hover{background:#fcfaff}
.payroll-table tbody tr.is-selected{background:#f7f2ff}
.payroll-table tbody tr.is-needs-attention{background:#fffaf2}
.payroll-table td>small{display:block;color:#8a7e94;margin-top:3px}
.payroll-table--compact{min-width:850px}
.payroll-person{display:flex;gap:10px;align-items:center;min-width:190px}
.payroll-person>span{width:35px;height:35px;border-radius:11px;background:#f0e9fd;color:#6d28d9;display:grid;place-items:center;flex:0 0 35px}
.payroll-person b,.payroll-person small{display:block}
.payroll-person small{color:#887b92;margin-top:2px}
.payroll-state,.payroll-recon{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:900;white-space:nowrap}
.payroll-state--active,.payroll-state--published,.payroll-recon--pass{background:#ecfdf5;color:#047857}
.payroll-state--inactive,.payroll-state--void{background:#f3f4f6;color:#6b7280}
.payroll-state--draft{background:#f3f4f6;color:#4b5563}
.payroll-state--imported,.payroll-state--calculated{background:#eff6ff;color:#1d4ed8}
.payroll-state--approved{background:#f5f3ff;color:#6d28d9}
.payroll-state--locked{background:#f1f5f9;color:#334155}
.payroll-recon--share_missing,.payroll-recon--rate_missing{background:#fff7ed;color:#c2410c}
.payroll-recon--amount_mismatch{background:#fef2f2;color:#b91c1c}
.payroll-service-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.payroll-delete-action{color:#b91c1c!important;border-color:#fecaca!important;background:#fff7f7!important}
.payroll-delete-action:hover{color:#991b1b!important;border-color:#fca5a5!important;background:#fef2f2!important}
.payroll-table tr.is-payroll-error td{background:#fffaf7}
.payroll-line-action-cell{white-space:nowrap}
.payroll-line-ok{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:#ecfdf5;color:#047857}

.payroll-note{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;margin:0 0 14px;border-radius:12px;background:#faf7ff;border:1px solid #e8ddfb;color:#665673}
.payroll-note i{color:#7c3aed;margin-top:3px}
.payroll-period-placeholder{text-align:center;display:grid;place-items:center;align-content:center;min-height:180px;color:#7c7086}
.payroll-period-placeholder i{font-size:32px;color:#8b5cf6}
.payroll-period-placeholder h3,.payroll-period-placeholder p{margin:4px}
.payroll-doctor-card{border:1px solid #e9e2ef;border-radius:14px;margin-top:10px;overflow:hidden}
.payroll-doctor-card>summary{cursor:pointer;list-style:none;padding:13px;display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:16px;align-items:center;background:#fcfbfd}
.payroll-doctor-card>summary::-webkit-details-marker{display:none}
.payroll-doctor-card[open]>summary{border-bottom:1px solid #e9e2ef;background:#f9f6ff}
.payroll-doctor-card__metrics{display:flex;gap:18px}
.payroll-doctor-card__metrics span{min-width:95px}
.payroll-doctor-card__metrics small,.payroll-doctor-card__metrics b{display:block}
.payroll-doctor-card__metrics small{color:#8a7c94;font-size:10px}
.payroll-doctor-card__metrics b{font-size:12px;margin-top:3px}
.payroll-doctor-card__status{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.payroll-doctor-card__body{padding:13px}
.payroll-payslip-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:12px}
.payroll-form{width:100%;min-width:0;max-width:100%}
.payroll-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.payroll-field{display:grid;gap:6px}
.payroll-field>span{font-size:12px;font-weight:800;color:#62546d}
.payroll-field--wide{grid-column:1/-1}
.payroll-employment-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.payroll-employment-add{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:10px;border:1px dashed #d8caf0;border-radius:12px;background:#fbf9ff}
.payroll-employment-add[hidden]{display:none!important}
.payroll-field-hint{color:#8a7c94;font-size:10px;font-weight:600;line-height:1.8}
.payroll-profile-form{display:grid;gap:14px}
.payroll-profile-section{border:1px solid #eee7f5;border-radius:16px;padding:15px;background:#fff}
.payroll-profile-section__title{display:flex;align-items:center;gap:9px;margin-bottom:13px;color:#4f3c61}
.payroll-profile-section__title i{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#f2ecff;color:#6d28d9}
.payroll-profile-section__title b{font-size:13px}
.payroll-model-choice{border:1px solid #e9e1f2;border-radius:15px;padding:12px;margin:0 0 14px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.payroll-model-choice legend{padding:0 6px;color:#62546d;font-size:12px;font-weight:850}
.payroll-choice-card{position:relative;display:block;cursor:pointer}
.payroll-choice-card input{position:absolute;opacity:0;pointer-events:none}
.payroll-choice-card span{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #e9e1f2;border-radius:12px;background:#fff;transition:.16s ease}
.payroll-choice-card span>i{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#f4efff;color:#6d28d9}
.payroll-choice-card span>b,.payroll-choice-card span>small{display:block}
.payroll-choice-card span>small{color:#897b93;font-size:10px;margin-inline-start:auto}
.payroll-choice-card input:checked+span{border-color:#8b5cf6;background:#f7f2ff;box-shadow:0 0 0 2px rgba(139,92,246,.08)}
.payroll-model-badge{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:850;white-space:nowrap}
.payroll-model-badge--performance{background:#eef2ff;color:#4338ca}
.payroll-model-badge--requester{background:#ecfeff;color:#0f766e}


.payroll-upload{display:grid;place-items:center;text-align:center;gap:8px;padding:24px;border:2px dashed #d8caf0;border-radius:16px;background:#fbf9ff;margin-bottom:14px}
.payroll-upload>i{font-size:34px;color:#16a34a}
.payroll-upload p{margin:0;color:#7d7088;max-width:520px}
.payroll-upload input[type=file]{max-width:100%}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.btn--sm{padding:7px 10px;font-size:11px}
@media(max-width:1100px){.payroll-directory-tools,.payroll-directory[data-directory="services"] .payroll-directory-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-directory-search{grid-column:1/-1}.payroll-filter-count{justify-self:start}.payroll-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-grid{grid-template-columns:1fr}.payroll-doctor-card>summary{grid-template-columns:1fr}.payroll-doctor-card__metrics{flex-wrap:wrap}.payroll-doctor-card__status{justify-self:start}}
@media(max-width:700px){.payroll-panel__actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.payroll-panel__actions .btn{width:100%}.payroll-model-choice{grid-template-columns:1fr}.payroll-choice-card span{align-items:flex-start;flex-wrap:wrap}.payroll-choice-card span>small{width:100%;margin-inline-start:44px}.payroll-profile-section{padding:12px}.payroll-directory-tools,.payroll-directory[data-directory="services"] .payroll-directory-tools{grid-template-columns:1fr}.payroll-directory-search{grid-column:auto}.payroll-filter-count{justify-self:start}.payroll-sort-button{gap:5px}.payroll-row-number{width:52px}.payroll-employment-control{grid-template-columns:1fr}.payroll-employment-control .btn{width:100%}.payroll-employment-add{grid-template-columns:1fr}.payroll-employment-add .btn{width:100%}.payroll-hero{padding:17px;display:grid}.payroll-hero h2{font-size:20px}.payroll-hero__actions{justify-content:stretch}.payroll-hero__actions .btn{flex:1}.payroll-kpis{grid-template-columns:1fr 1fr}.payroll-panel{padding:13px}.payroll-panel__head{align-items:flex-start;flex-direction:column}.payroll-form{min-width:0}.payroll-form-grid{grid-template-columns:1fr}.payroll-field--wide{grid-column:auto}.payroll-doctor-card__metrics{display:grid;grid-template-columns:1fr 1fr}.payroll-tabs{margin-inline:-4px}.payroll-kpi{padding:12px}.payroll-kpi strong{font-size:20px}}
@media(max-width:430px){.payroll-kpis{grid-template-columns:1fr}.payroll-doctor-card__metrics{grid-template-columns:1fr}.payroll-hero__actions{display:grid}.payroll-payslip-actions{justify-content:stretch}.payroll-payslip-actions .btn{width:100%}}


/* Payroll modal polish — scoped to Payroll dialogs only. */
.payroll-modal-card{
  width:min(860px,calc(100vw - 40px))!important;
  max-width:860px!important;
  min-width:0!important;
  max-height:calc(100vh - 40px)!important;
  padding:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  border-radius:22px!important;
  box-sizing:border-box!important;
  scrollbar-gutter:stable;
}
.payroll-modal-card *{box-sizing:border-box}
.payroll-modal-card--large{width:min(1160px,calc(100vw - 32px))!important;max-width:1160px!important}

.payroll-modal-card .payroll-form{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  padding:26px 28px 24px;
  overflow-x:hidden!important;
}
.payroll-modal-card .modal-head{
  position:relative;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  width:100%;
  min-width:0;
  margin:0 0 22px;
  padding:0 0 18px;
  border-bottom:1px solid #eee7f5;
}
.payroll-modal-card .modal-head>div{
  min-width:0;
  padding-inline-start:52px;
}
.payroll-modal-card .modal-head small{
  display:block;
  margin-bottom:5px;
  color:#7c3aed;
  font-size:12px;
  font-weight:850;
}
.payroll-modal-card .modal-head h3{
  margin:0;
  color:#261a34;
  font-size:22px;
  line-height:1.55;
  font-weight:900;
}
.payroll-modal-card .payroll-modal-close{
  position:absolute;
  inset-inline-start:0;
  top:0;
  display:grid;
  place-items:center;
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  min-height:40px!important;
  padding:0!important;
  border:1px solid #e3daf0!important;
  border-radius:12px!important;
  color:#6d28d9!important;
  background:#f7f3ff!important;
  box-shadow:none!important;
  cursor:pointer;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
.payroll-modal-card .payroll-modal-close:hover{
  color:#5b21b6!important;
  border-color:#d4c5ec!important;
  background:#eee7fb!important;
  transform:translateY(-1px);
}
.payroll-modal-card .payroll-modal-close:active{transform:translateY(0)}
.payroll-modal-card .payroll-modal-close i{
  margin:0!important;
  font-size:16px;
  line-height:1;
}
.payroll-modal-card .payroll-form-grid{
  width:100%;
  min-width:0;
  max-width:100%;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px 14px;
}
.payroll-modal-card .payroll-field,
.payroll-modal-card .payroll-field>*{
  min-width:0!important;
  max-width:100%!important;
}
.payroll-modal-card .payroll-field .input,
.payroll-modal-card .payroll-field .select,
.payroll-modal-card .payroll-field input,
.payroll-modal-card .payroll-field select,
.payroll-modal-card .payroll-field textarea{
  display:block;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
}
.payroll-modal-card .payroll-note,
.payroll-modal-card .payroll-upload{
  width:100%;
  min-width:0;
  max-width:100%;
  overflow-wrap:anywhere;
}
.payroll-modal-card .payroll-upload input[type=file]{
  width:100%;
  min-width:0;
  max-width:100%;
}
.payroll-modal-card .modal-actions{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  width:100%;
  min-width:0;
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid #eee7f5;
  flex-wrap:wrap;
}
.payroll-modal-card .modal-actions .btn{
  min-width:112px;
  min-height:42px;
}
@media(max-width:760px){
  .payroll-modal-card{
    width:calc(100vw - 20px)!important;
    max-width:calc(100vw - 20px)!important;
    max-height:calc(100dvh - 20px)!important;
    border-radius:18px!important;
  }
  .payroll-modal-card .payroll-form{padding:20px 16px 16px}
  .payroll-modal-card .modal-head{margin-bottom:18px;padding-bottom:15px}
  .payroll-modal-card .modal-head>div{padding-inline-start:46px}
  .payroll-modal-card .modal-head h3{font-size:19px}
  .payroll-modal-card .payroll-modal-close{
    width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;
  }
  .payroll-modal-card .payroll-form-grid{grid-template-columns:minmax(0,1fr);gap:13px}
  .payroll-modal-card .payroll-field--wide{grid-column:auto}
  .payroll-modal-card .modal-actions{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .payroll-modal-card .modal-actions .btn{width:100%;min-width:0}
}
@media(max-width:420px){
  .payroll-modal-card .modal-actions{grid-template-columns:minmax(0,1fr)}
}


/* Payroll Jalali date picker — canonical ShiftNevis calendar UX. */
.payroll-jdate-field{position:relative}
.payroll-jdate{position:relative;width:100%;min-width:0}
.payroll-jdate__inputrow{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px;align-items:center;width:100%;min-width:0}
.payroll-jdate__input{width:100%;min-width:0;text-align:right;direction:rtl}
.payroll-jdate__button{
  display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;
  border:1px solid #e5dcef;border-radius:12px;background:#fff;color:#6d28d9;cursor:pointer;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.payroll-jdate__button:hover{background:#f7f3ff;border-color:#d7c9ea;transform:translateY(-1px)}
.payroll-jdate__button:active{transform:translateY(0)}
.payroll-jdate__popup{
  display:none;position:absolute;z-index:1305;inset-inline-start:0;top:calc(100% + 8px);
  width:min(340px,calc(100vw - 48px));padding:12px;border:1px solid #dfd5eb;border-radius:16px;
  background:#fff;box-shadow:0 18px 50px rgba(48,31,69,.16)
}
.payroll-jdate__popup.is-open{display:block}
.payroll-jdate__head{display:grid;grid-template-columns:38px minmax(0,1fr) 38px;align-items:center;gap:8px;margin-bottom:10px}
.payroll-jdate__head b{text-align:center;font-size:13px;color:#2f213b}
.payroll-jdate__head button{
  display:grid;place-items:center;width:38px;height:38px;border:1px solid #e8e1ef;border-radius:11px;
  background:#faf8fc;color:#6d28d9;cursor:pointer
}
.payroll-jdate__week,.payroll-jdate__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.payroll-jdate__week{margin-bottom:5px}
.payroll-jdate__week span{display:grid;place-items:center;min-height:26px;color:#8b7d96;font-size:10px;font-weight:900}
.payroll-jdate__days .is-empty{min-height:34px}
.payroll-jdate__days button{
  display:grid;place-items:center;min-width:0;min-height:34px;padding:0;border:0;border-radius:10px;
  background:transparent;color:#41344e;font-family:inherit;font-size:11px;font-weight:800;cursor:pointer
}
.payroll-jdate__days button:hover{background:#f4efff;color:#6d28d9}
.payroll-jdate__days button.is-selected{background:linear-gradient(135deg,#7c3aed,#6d28d9);color:#fff}
.payroll-jdate__days button.is-friday:not(.is-selected){background:#fff5f5;color:#b91c1c}
.payroll-jdate__foot{display:flex;gap:8px;justify-content:space-between;margin-top:10px;padding-top:10px;border-top:1px solid #eee7f5}
.payroll-jdate__foot .btn{min-height:36px;padding:7px 11px}
@media(max-width:760px){
  .payroll-jdate__popup{position:fixed;inset:auto 10px calc(14px + env(safe-area-inset-bottom)) 10px;width:auto;max-width:none}
}

/* Payroll polish — compact service directory, sticky headers, professional overview. */
.payroll-money-input{
  font-variant-numeric:tabular-nums;
  letter-spacing:.01em;
  direction:rtl;
  text-align:right;
}

/* Overview */
.payroll-overview--pro{display:grid;gap:14px}
.payroll-overview-status{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:18px 20px;border:1px solid #e8e0f1;border-radius:18px;
  background:linear-gradient(135deg,#fff 0%,#fbf9ff 58%,#f5f0ff 100%);
  box-shadow:0 8px 24px rgba(67,45,88,.04)
}
.payroll-overview-status.is-ready{border-color:#d8eee4;background:linear-gradient(135deg,#fff 0%,#f8fffb 62%,#eefbf5 100%)}
.payroll-overview-status.is-attention{border-color:#f3e0c5;background:linear-gradient(135deg,#fff 0%,#fffaf4 62%,#fff4e8 100%)}
.payroll-overview-status__main{display:flex;align-items:center;gap:14px;min-width:0}
.payroll-overview-status__icon{
  flex:0 0 48px;width:48px;height:48px;border-radius:15px;display:grid;place-items:center;
  color:#6d28d9;background:#eee7ff;font-size:20px
}
.payroll-overview-status.is-ready .payroll-overview-status__icon{color:#047857;background:#dff7eb}
.payroll-overview-status.is-attention .payroll-overview-status__icon{color:#c2410c;background:#ffead2}
.payroll-overview-status__main small{display:block;color:#8c7d96;font-size:11px;font-weight:750;margin-bottom:2px}
.payroll-overview-status__main h3{margin:0;color:#2b2035;font-size:17px;line-height:1.55}
.payroll-overview-status__main p{margin:4px 0 0;color:#776a82;font-size:12px;line-height:1.9}
.payroll-overview-status__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:0 0 auto}
.payroll-overview--pro .payroll-kpis{gap:10px}
.payroll-overview--pro .payroll-kpi{
  position:relative;min-height:102px;padding:15px 16px;border-radius:15px;
  transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease
}
.payroll-overview--pro .payroll-kpi.is-clickable{cursor:pointer}
.payroll-overview--pro .payroll-kpi.is-clickable:hover{
  transform:translateY(-2px);border-color:#d9cdf0;box-shadow:0 10px 24px rgba(65,43,86,.07)
}
.payroll-overview--pro .payroll-kpi:focus-visible{outline:2px solid #8b5cf6;outline-offset:2px}
.payroll-overview--pro .payroll-kpi>i:first-child{width:38px;height:38px;border-radius:12px;font-size:14px}
.payroll-overview--pro .payroll-kpi strong{font-size:22px;line-height:1.25}
.payroll-kpi__arrow{margin-inline-start:auto!important;width:auto!important;height:auto!important;background:transparent!important;color:#b2a5bc!important;font-size:10px!important}
.payroll-overview-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.85fr);gap:14px}
.payroll-overview-workflow,.payroll-latest-period{height:100%}
.payroll-overview-progress{
  display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;
  padding:6px 10px;border-radius:999px;background:#f4efff;color:#6d28d9;font-size:11px;font-weight:900
}
.payroll-overview-steps{display:grid;gap:8px}
.payroll-overview-step{
  width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 18px;align-items:center;gap:11px;
  padding:10px 11px;border:1px solid #eee8f4;border-radius:12px;background:#fff;color:inherit;
  font-family:inherit;text-align:right;cursor:pointer;transition:.15s ease
}
.payroll-overview-step:hover{background:#fcfaff;border-color:#ddd1ec;transform:translateX(-2px)}
.payroll-overview-step__number{
  width:30px;height:30px;border-radius:10px;display:grid;place-items:center;
  font-size:11px;font-weight:900;background:#f1ebfb;color:#6d28d9
}
.payroll-overview-step.is-done .payroll-overview-step__number{background:#e7f8ef;color:#047857}
.payroll-overview-step__copy{min-width:0}
.payroll-overview-step__copy b,.payroll-overview-step__copy small{display:block}
.payroll-overview-step__copy b{font-size:12px;color:#372942}
.payroll-overview-step__copy small{margin-top:2px;color:#897b93;font-size:10.5px;line-height:1.75}
.payroll-overview-step__arrow{color:#b3a8bb;font-size:10px}
.payroll-latest-period__range{
  display:grid;grid-template-columns:1fr 30px 1fr;align-items:center;gap:10px;
  padding:16px;border:1px solid #eee8f4;border-radius:14px;background:#fcfbfd
}
.payroll-latest-period__range>div{min-width:0}
.payroll-latest-period__range small,.payroll-latest-period__range b{display:block}
.payroll-latest-period__range small{color:#90829a;font-size:10px;margin-bottom:4px}
.payroll-latest-period__range b{color:#34263e;font-size:13px;white-space:nowrap}
.payroll-latest-period__range>i{text-align:center;color:#b4a7bd;font-size:12px}
.payroll-latest-period__footer{
  display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:13px
}
.payroll-latest-period__footer>span{color:#82748c;font-size:10.5px}
.payroll-latest-period__footer>span i{margin-inline-end:5px;color:#8b5cf6}
.payroll-overview-empty-state{
  min-height:180px;display:grid;place-items:center;align-content:center;gap:9px;text-align:center;
  color:#86788f;padding:18px;border:1px dashed #ddd3e7;border-radius:14px;background:#fcfbfd
}
.payroll-overview-empty-state>i{font-size:26px;color:#8b5cf6}
.payroll-overview-empty-state p{max-width:340px;margin:0;font-size:11px;line-height:1.9}

/* Services table — no desktop horizontal scrolling; vertical scroll with frozen header. */
.payroll-services-table-wrap{
  max-height:min(62vh,640px);
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-gutter:stable;
  position:relative
}
.payroll-services-table{
  width:100%!important;
  min-width:0!important;
  table-layout:fixed
}
.payroll-services-table th,
.payroll-services-table td{
  padding:8px 7px;
  font-size:11.5px;
  line-height:1.55;
  overflow-wrap:anywhere
}
.payroll-services-table thead th{
  position:sticky;
  top:0;
  z-index:6;
  background:#faf8fc;
  box-shadow:0 1px 0 #e9e2ef
}
.payroll-services-table thead th:first-child{z-index:7}
.payroll-services-table th:nth-child(1),.payroll-services-table td:nth-child(1){width:5%;text-align:center!important}
.payroll-services-table th:nth-child(2),.payroll-services-table td:nth-child(2){width:30%}
.payroll-services-table th:nth-child(3),.payroll-services-table td:nth-child(3){width:9%;text-align:center}
.payroll-services-table th:nth-child(4),.payroll-services-table td:nth-child(4){width:14%;white-space:nowrap}
.payroll-services-table th:nth-child(5),.payroll-services-table td:nth-child(5){width:9%;white-space:nowrap;text-align:center}
.payroll-services-table th:nth-child(6),.payroll-services-table td:nth-child(6){width:11%;white-space:nowrap}
.payroll-services-table th:nth-child(7),.payroll-services-table td:nth-child(7){width:8%;white-space:nowrap;text-align:center}
.payroll-services-table th:nth-child(8),.payroll-services-table td:nth-child(8){width:14%}
.payroll-services-table td:nth-child(2) b{display:block;line-height:1.75;font-size:11.5px}
.payroll-services-table .payroll-sort-button{white-space:normal;gap:4px;line-height:1.45}
.payroll-services-table .payroll-service-actions{gap:4px;flex-wrap:nowrap}
.payroll-services-table .payroll-service-actions .btn{
  min-width:0;padding:6px 8px;font-size:10.5px;border-radius:9px;white-space:nowrap
}
.payroll-services-table .payroll-state,
.payroll-services-table .payroll-recon,
.payroll-services-table .payroll-model-badge{padding:4px 7px;font-size:10px}
.payroll-directory[data-directory="services"] .payroll-directory-tools{margin-bottom:10px}
.payroll-directory[data-directory="services"] .payroll-note{padding:9px 11px;margin-bottom:10px;font-size:11px}

@media(max-width:1100px){
  .payroll-overview-grid{grid-template-columns:minmax(0,1fr)}
  .payroll-overview-status{align-items:flex-start}
  .payroll-services-table th,.payroll-services-table td{padding:7px 5px;font-size:10.5px}
  .payroll-services-table .payroll-service-actions{display:grid;grid-template-columns:1fr}
}
@media(max-width:820px){
  .payroll-overview-status{flex-direction:column}
  .payroll-overview-status__actions{width:100%}
  .payroll-overview-status__actions .btn{flex:1}
  .payroll-overview--pro .payroll-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .payroll-latest-period__footer{align-items:flex-start;flex-direction:column}
  .payroll-services-table-wrap{overflow-x:auto}
  .payroll-services-table{min-width:760px!important}
}
@media(max-width:520px){
  .payroll-overview--pro .payroll-kpis{grid-template-columns:1fr}
  .payroll-overview-status__actions{display:grid;grid-template-columns:1fr;width:100%}
  .payroll-overview-status__actions .btn{width:100%}
  .payroll-latest-period__range{grid-template-columns:1fr}
  .payroll-latest-period__range>i{transform:rotate(-90deg)}
}

/* Payroll services table v2 — force full fit, vertical-only scroll, sticky header. */
.payroll-directory[data-directory="services"]{
  overflow:visible!important;
}
.payroll-directory[data-directory="services"] .payroll-services-table-wrap{
  width:100%!important;
  max-width:100%!important;
  height:min(58vh,560px)!important;
  max-height:min(58vh,560px)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain;
  position:relative!important;
  border:1px solid #ece6f2!important;
  border-radius:12px!important;
  scrollbar-gutter:stable both-edges;
}
.payroll-directory[data-directory="services"] .payroll-services-table{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
  border-collapse:separate!important;
  border-spacing:0!important;
}
.payroll-directory[data-directory="services"] .payroll-services-table col.col-row{width:5%!important}
.payroll-directory[data-directory="services"] .payroll-services-table col.col-service{width:43%!important}
.payroll-directory[data-directory="services"] .payroll-services-table col.col-price{width:14%!important}
.payroll-directory[data-directory="services"] .payroll-services-table col.col-share{width:10%!important}
.payroll-directory[data-directory="services"] .payroll-services-table col.col-meta{width:16%!important}
.payroll-directory[data-directory="services"] .payroll-services-table col.col-actions{width:12%!important}

.payroll-directory[data-directory="services"] .payroll-services-table thead{
  position:sticky!important;
  top:0!important;
  z-index:20!important;
}
.payroll-directory[data-directory="services"] .payroll-services-table thead th{
  position:sticky!important;
  top:0!important;
  z-index:21!important;
  background:#faf8fc!important;
  box-shadow:0 1px 0 #e8e0ef,0 5px 10px rgba(60,42,76,.04)!important;
  padding:8px 6px!important;
  font-size:10.5px!important;
  white-space:normal!important;
  overflow:hidden!important;
}
.payroll-directory[data-directory="services"] .payroll-services-table tbody td{
  padding:8px 6px!important;
  font-size:10.5px!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
  vertical-align:middle!important;
}
.payroll-directory[data-directory="services"] .payroll-services-table .payroll-row-number{
  width:auto!important;
  text-align:center!important;
  white-space:nowrap!important;
}
.payroll-directory[data-directory="services"] .payroll-service-main{
  min-width:0!important;
}
.payroll-directory[data-directory="services"] .payroll-service-main>b{
  display:block!important;
  min-width:0!important;
  max-width:100%!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  line-height:1.65!important;
  margin-bottom:5px!important;
  font-size:10.7px!important;
}
.payroll-directory[data-directory="services"] .payroll-service-main .payroll-model-badge{
  display:inline-flex!important;
  padding:3px 6px!important;
  font-size:9px!important;
}
.payroll-directory[data-directory="services"] .payroll-service-money,
.payroll-directory[data-directory="services"] .payroll-service-share{
  white-space:nowrap!important;
  text-align:center!important;
  font-variant-numeric:tabular-nums;
}
.payroll-directory[data-directory="services"] .payroll-service-meta{
  text-align:center!important;
}
.payroll-directory[data-directory="services"] .payroll-service-meta>span:first-child{
  display:block!important;
  margin-bottom:5px!important;
  white-space:nowrap!important;
  font-size:9.5px!important;
}
.payroll-directory[data-directory="services"] .payroll-service-meta .payroll-state{
  padding:3px 6px!important;
  font-size:9px!important;
}
.payroll-directory[data-directory="services"] .payroll-service-actions-cell{
  overflow:visible!important;
}
.payroll-directory[data-directory="services"] .payroll-service-actions{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:4px!important;
  width:100%!important;
  min-width:0!important;
}
.payroll-directory[data-directory="services"] .payroll-service-actions .btn{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  padding:5px 4px!important;
  font-size:9px!important;
  gap:3px!important;
  justify-content:center!important;
  white-space:nowrap!important;
}
.payroll-directory[data-directory="services"] .payroll-service-actions .btn i{
  font-size:9px!important;
}
.payroll-directory[data-directory="services"] .payroll-sort-button{
  width:100%!important;
  min-width:0!important;
  justify-content:flex-start!important;
  gap:4px!important;
  white-space:normal!important;
  line-height:1.35!important;
  font-size:10px!important;
}
.payroll-directory[data-directory="services"] .payroll-sort-button span{
  min-width:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.payroll-directory[data-directory="services"] .payroll-filter-empty td{
  position:static!important;
}

/* Filters also stay within the panel width. */
.payroll-directory[data-directory="services"] .payroll-directory-tools{
  width:100%!important;
  max-width:100%!important;
  grid-template-columns:minmax(220px,1.6fr) minmax(110px,.75fr) minmax(110px,.75fr) minmax(120px,.8fr) auto!important;
  gap:7px!important;
}
.payroll-directory[data-directory="services"] .payroll-directory-tools>*{
  min-width:0!important;
}

/* Never re-enable horizontal scrolling for this table. */
@media(max-width:820px){
  .payroll-directory[data-directory="services"] .payroll-services-table-wrap{
    overflow-x:hidden!important;
  }
  .payroll-directory[data-directory="services"] .payroll-services-table{
    min-width:0!important;
  }
}
@media(max-width:760px){
  .payroll-directory[data-directory="services"] .payroll-directory-tools{
    grid-template-columns:1fr 1fr!important;
  }
  .payroll-directory[data-directory="services"] .payroll-directory-search{
    grid-column:1/-1!important;
  }
  .payroll-directory[data-directory="services"] .payroll-filter-count{
    justify-self:stretch!important;
    text-align:center!important;
  }
  .payroll-directory[data-directory="services"] .payroll-services-table-wrap{
    height:55vh!important;
    max-height:55vh!important;
  }
  .payroll-directory[data-directory="services"] .payroll-services-table col.col-row{width:7%!important}
  .payroll-directory[data-directory="services"] .payroll-services-table col.col-service{width:39%!important}
  .payroll-directory[data-directory="services"] .payroll-services-table col.col-price{width:15%!important}
  .payroll-directory[data-directory="services"] .payroll-services-table col.col-share{width:11%!important}
  .payroll-directory[data-directory="services"] .payroll-services-table col.col-meta{width:16%!important}
  .payroll-directory[data-directory="services"] .payroll-services-table col.col-actions{width:12%!important}
  .payroll-directory[data-directory="services"] .payroll-service-actions .btn span{display:none!important}
}

/* Physician profile tabs — replace the long profile scroll with focused sections. */
.payroll-modal-card--large .payroll-profile-form{
  display:flex!important;
  flex-direction:column;
  gap:14px;
  min-height:0;
}
.payroll-profile-note{margin:0!important}
.payroll-profile-tabs{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:7px;
  width:100%;
  padding:7px;
  border:1px solid #e9e1f2;
  border-radius:15px;
  background:#faf8fc;
}
.payroll-profile-tab{
  position:relative;
  min-width:0;
  min-height:58px;
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  grid-template-areas:"icon label" "icon badge";
  align-items:center;
  column-gap:8px;
  row-gap:1px;
  padding:8px 9px;
  border:1px solid transparent;
  border-radius:11px;
  background:transparent;
  color:#665770;
  font:inherit;
  text-align:right;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease;
}
.payroll-profile-tab:hover{
  background:#fff;
  border-color:#e1d7eb;
  transform:translateY(-1px);
}
.payroll-profile-tab.is-active{
  color:#5b21b6;
  background:#fff;
  border-color:#cdbbf0;
  box-shadow:0 5px 14px rgba(91,33,182,.08);
}
.payroll-profile-tab>i{
  grid-area:icon;
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:9px;
  color:#6d28d9;
  background:#f0e9ff;
  font-size:11px;
}
.payroll-profile-tab>span{
  grid-area:label;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11px;
  font-weight:900;
}
.payroll-profile-tab>em{
  grid-area:badge;
  justify-self:start;
  display:inline-flex;
  align-items:center;
  min-height:19px;
  padding:2px 7px;
  border-radius:999px;
  font-size:9px;
  font-style:normal;
  font-weight:900;
  line-height:1;
}
.payroll-profile-tab.is-incomplete>em{
  color:#c2410c;
  background:#fff0df;
  border:1px solid #fed7aa;
}
.payroll-profile-tab.is-complete>em{
  color:#047857;
  background:#e8f8ef;
  border:1px solid #c7eed8;
}
.payroll-profile-tab.is-active.is-incomplete{
  border-color:#f0c99b;
  box-shadow:0 5px 14px rgba(194,65,12,.06);
}
.payroll-profile-panels{
  min-height:340px;
  width:100%;
}
.payroll-profile-panel{
  width:100%;
  min-height:340px;
  margin:0!important;
  padding:18px!important;
  border-radius:15px!important;
  animation:payroll-profile-panel-in .16s ease;
}
.payroll-profile-panel[hidden]{display:none!important}
.payroll-profile-panel .payroll-profile-section__title{
  margin-bottom:16px;
  padding-bottom:10px;
  border-bottom:1px solid #f0ebf4;
}
.payroll-profile-panel .payroll-form-grid{
  align-content:start;
}
@keyframes payroll-profile-panel-in{
  from{opacity:.35;transform:translateY(3px)}
  to{opacity:1;transform:translateY(0)}
}

/* ShiftNevis-native destructive confirmation modal. */
.payroll-confirm{
  width:100%;
  padding:25px 27px 23px;
}
.payroll-confirm .modal-head{margin-bottom:18px!important}
.payroll-confirm__body{
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  align-items:start;
  gap:14px;
  padding:16px;
  border:1px solid #f3dddd;
  border-radius:15px;
  background:#fffafa;
}
.payroll-confirm__icon{
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  border-radius:14px;
  color:#dc2626;
  background:#feecec;
  font-size:19px;
}
.payroll-confirm__body b{
  display:block;
  margin:2px 0 5px;
  color:#332432;
  font-size:14px;
  font-weight:900;
}
.payroll-confirm__body p{
  margin:0;
  color:#756777;
  font-size:11.5px;
  line-height:1.95;
}
.payroll-confirm__warning{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:11px;
  padding:10px 12px;
  border:1px solid #f3e5cc;
  border-radius:11px;
  color:#9a5b17;
  background:#fffbf3;
  font-size:10.5px;
  line-height:1.8;
}
.payroll-confirm__warning i{color:#d97706}
.payroll-btn--danger{
  min-width:120px;
  border:1px solid #dc2626!important;
  color:#fff!important;
  background:#dc2626!important;
  box-shadow:0 8px 20px rgba(220,38,38,.16)!important;
}
.payroll-btn--danger:hover{
  border-color:#b91c1c!important;
  background:#b91c1c!important;
}
.payroll-btn--danger:disabled{
  opacity:.65;
  cursor:not-allowed;
}

@media(max-width:900px){
  .payroll-profile-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .payroll-profile-panels,.payroll-profile-panel{min-height:300px}
}
@media(max-width:600px){
  .payroll-profile-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .payroll-profile-tab{min-height:54px}
  .payroll-profile-tab>span{white-space:normal;line-height:1.45}
  .payroll-profile-panels,.payroll-profile-panel{min-height:0}
  .payroll-confirm{padding:20px 16px 16px}
  .payroll-confirm__body{grid-template-columns:1fr}
}

/* Payroll confirmation dialogs — one visual language for all destructive/publish actions. */
.payroll-confirm{
  width:100%;
  padding:25px 27px 23px;
}
.payroll-confirm .modal-head{
  margin-bottom:18px!important;
}
.payroll-confirm__body{
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  align-items:start;
  gap:14px;
  padding:16px;
  border:1px solid #e8e1ef;
  border-radius:15px;
  background:#fcfbfd;
}
.payroll-confirm__icon{
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  border-radius:14px;
  font-size:19px;
}
.payroll-confirm__body b{
  display:block;
  margin:2px 0 5px;
  color:#332432;
  font-size:14px;
  font-weight:900;
}
.payroll-confirm__body p{
  margin:0;
  color:#756777;
  font-size:11.5px;
  line-height:1.95;
}
.payroll-confirm__warning{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin-top:11px;
  padding:10px 12px;
  border-radius:11px;
  font-size:10.5px;
  line-height:1.8;
}
.payroll-confirm--danger .payroll-confirm__body{
  border-color:#f3dddd;
  background:#fffafa;
}
.payroll-confirm--danger .payroll-confirm__icon{
  color:#dc2626;
  background:#feecec;
}
.payroll-confirm--danger .payroll-confirm__warning{
  border:1px solid #f3e5cc;
  color:#9a5b17;
  background:#fffbf3;
}
.payroll-confirm--danger .payroll-confirm__warning i{
  color:#d97706;
}
.payroll-confirm--primary .payroll-confirm__body{
  border-color:#dfd5f0;
  background:#fbf9ff;
}
.payroll-confirm--primary .payroll-confirm__icon{
  color:#6d28d9;
  background:#eee7ff;
}
.payroll-confirm--primary .payroll-confirm__warning{
  border:1px solid #e5dcf2;
  color:#655174;
  background:#faf7ff;
}
.payroll-confirm--primary .payroll-confirm__warning i{
  color:#7c3aed;
}
.payroll-confirm .modal-actions{
  margin-top:18px!important;
}
.payroll-confirm .modal-actions .btn{
  min-width:118px;
}
.payroll-btn--danger{
  min-width:120px;
  border:1px solid #dc2626!important;
  color:#fff!important;
  background:#dc2626!important;
  box-shadow:0 8px 20px rgba(220,38,38,.16)!important;
}
.payroll-btn--danger:hover{
  border-color:#b91c1c!important;
  background:#b91c1c!important;
}
.payroll-btn--danger:disabled,
.payroll-confirm .btn:disabled{
  opacity:.65;
  cursor:not-allowed;
}
@media(max-width:600px){
  .payroll-confirm{padding:20px 16px 16px}
  .payroll-confirm__body{grid-template-columns:1fr}
  .payroll-confirm__icon{width:46px;height:46px}
}

/* Payroll overview statistics v2 */
.payroll-overview-insights{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.payroll-overview-insight{
  min-width:0;
  padding:16px!important;
}
.payroll-overview-insight .payroll-panel__head{
  margin-bottom:14px;
}
.payroll-overview-insight__icon{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#f1ebfb;
  color:#6d28d9;
  font-size:14px;
}
.payroll-overview-bar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:6px 10px;
  align-items:center;
  padding:10px 11px;
  border:1px solid #eee8f4;
  border-radius:12px;
  background:#fcfbfd;
}
.payroll-overview-bar>div:first-child{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  grid-column:1/-1;
}
.payroll-overview-bar>div:first-child span{
  color:#76677f;
  font-size:10.5px;
  font-weight:800;
}
.payroll-overview-bar>div:first-child b{
  color:#34263e;
  font-size:11px;
}
.payroll-overview-bar>div:first-child b small{
  color:#a092aa;
  font-size:9px;
  font-weight:700;
}
.payroll-overview-bar__track{
  height:7px;
  overflow:hidden;
  border-radius:999px;
  background:#eeeaf1;
}
.payroll-overview-bar__fill{
  display:block;
  height:100%;
  border-radius:inherit;
  background:#7c3aed;
  transition:width .25s ease;
}
.payroll-overview-bar__fill--green{background:#10b981}
.payroll-overview-bar__fill--orange{background:#f59e0b}
.payroll-overview-bar__fill--blue{background:#3b82f6}
.payroll-overview-bar>small{
  min-width:34px;
  color:#6f6077;
  font-size:9.5px;
  font-weight:900;
  text-align:left;
}
.payroll-overview-metrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  margin-top:9px;
}
.payroll-overview-metric{
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 8px;
  border:1px solid #eee8f4;
  border-radius:11px;
  background:#fff;
}
.payroll-overview-metric>span{
  flex:0 0 28px;
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:9px;
  color:#6d28d9;
  background:#f1ebfb;
  font-size:10px;
}
.payroll-overview-metric>div{
  min-width:0;
}
.payroll-overview-metric small,
.payroll-overview-metric b,
.payroll-overview-metric em{
  display:block;
}
.payroll-overview-metric small{
  color:#8c7d96;
  font-size:8.5px;
  line-height:1.4;
}
.payroll-overview-metric b{
  margin-top:1px;
  color:#30223a;
  font-size:13px;
  line-height:1.45;
}
.payroll-overview-metric em{
  margin-top:1px;
  color:#9c8fa5;
  font-size:8px;
  font-style:normal;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.payroll-overview-metric--green>span{color:#047857;background:#e7f8ef}
.payroll-overview-metric--orange>span{color:#c2410c;background:#fff0df}
.payroll-overview-metric--blue>span{color:#2563eb;background:#eaf2ff}
.payroll-overview-metric--gray>span{color:#64748b;background:#f1f5f9}
.payroll-overview-link{
  width:100%;
  margin-top:9px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:9px 10px;
  border:0;
  border-radius:10px;
  color:#6d28d9;
  background:#f8f5ff;
  font:inherit;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}
.payroll-overview-link:hover{background:#f1ebff}
.payroll-overview-link i{font-size:9px}
.payroll-overview-ok{
  margin-top:9px;
  display:flex;
  align-items:center;
  gap:6px;
  padding:9px 10px;
  border-radius:10px;
  color:#047857;
  background:#f0fbf5;
  font-size:9.5px;
  font-weight:800;
}
.payroll-overview-finance{
  padding:13px 14px;
  border:1px solid #e8def3;
  border-radius:13px;
  background:linear-gradient(135deg,#fbf9ff,#f5efff);
}
.payroll-overview-finance small{
  display:block;
  color:#8b7a96;
  font-size:9.5px;
  margin-bottom:4px;
}
.payroll-overview-finance strong{
  display:block;
  color:#4c1d95;
  font-size:18px;
  line-height:1.5;
  font-weight:950;
}
@media(max-width:1180px){
  .payroll-overview-insights{grid-template-columns:1fr 1fr}
  .payroll-overview-insight:last-child{grid-column:1/-1}
}
@media(max-width:760px){
  .payroll-overview-insights{grid-template-columns:1fr}
  .payroll-overview-insight:last-child{grid-column:auto}
  .payroll-overview-metrics{grid-template-columns:1fr}
}

/* Payroll UI system v3 — shared form/table/filter language across payroll sections. */
.payroll-panel__actions,
.payroll-panel>.payroll-panel__head .toolbar{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.payroll-panel__actions .btn,
.payroll-panel>.payroll-panel__head .toolbar .btn{
  min-height:38px;
  border-radius:10px;
  gap:6px;
}
.payroll-data-section .payroll-panel__head{
  margin-bottom:12px;
}
.payroll-data-toolbar{
  width:100%;
  max-width:100%;
  margin:0 0 10px!important;
  padding:0;
  align-items:center;
}
.payroll-directory[data-directory="periods"] .payroll-data-toolbar,
.payroll-directory[data-directory="decrees"] .payroll-data-toolbar{
  grid-template-columns:minmax(260px,1.6fr) minmax(150px,.7fr) auto!important;
}
.payroll-directory[data-directory="performance"] .payroll-data-toolbar{
  grid-template-columns:minmax(260px,1.6fr) minmax(145px,.7fr) minmax(165px,.8fr) auto!important;
}
.payroll-data-toolbar>*{min-width:0!important}
.payroll-data-toolbar .input,
.payroll-data-toolbar .select{
  min-height:42px;
  border-radius:11px;
}
.payroll-data-toolbar .payroll-filter-count{
  min-height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

/* Canonical scrollable data table: vertical scroll, fixed header, no desktop horizontal scroll. */
.payroll-data-table-wrap,
.payroll-directory[data-directory="physicians"] .payroll-services-table-wrap{
  position:relative!important;
  width:100%!important;
  max-width:100%!important;
  max-height:min(56vh,520px)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  border:1px solid #ece6f2!important;
  border-radius:12px!important;
  background:#fff;
}
.payroll-periods-table-wrap{max-height:330px!important}
.payroll-data-table,
.payroll-directory[data-directory="physicians"] .payroll-services-table{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
  border-collapse:separate!important;
  border-spacing:0!important;
}
.payroll-data-table thead,
.payroll-directory[data-directory="physicians"] .payroll-services-table thead{
  position:sticky!important;
  top:0!important;
  z-index:30!important;
}
.payroll-data-table thead th,
.payroll-directory[data-directory="physicians"] .payroll-services-table thead th{
  position:sticky!important;
  top:0!important;
  z-index:31!important;
  background:#faf8fc!important;
  box-shadow:0 1px 0 #e8e0ef,0 5px 12px rgba(60,42,76,.045)!important;
  padding:8px 6px!important;
  font-size:10.5px!important;
  line-height:1.45!important;
  white-space:normal!important;
  overflow:hidden!important;
}
.payroll-data-table tbody td,
.payroll-directory[data-directory="physicians"] .payroll-services-table tbody td{
  min-width:0!important;
  padding:8px 6px!important;
  font-size:10.5px!important;
  line-height:1.55!important;
  vertical-align:middle!important;
  overflow:hidden;
  text-overflow:ellipsis;
}
.payroll-data-table tbody tr:hover td,
.payroll-directory[data-directory="physicians"] .payroll-services-table tbody tr:hover td{
  background:#fcfaff;
}
.payroll-data-table .payroll-sort-button,
.payroll-directory[data-directory="physicians"] .payroll-sort-button{
  width:100%;
  min-width:0;
  justify-content:flex-start;
  gap:4px;
  font-size:10px;
  line-height:1.4;
  white-space:normal;
}
.payroll-data-table .payroll-sort-button span,
.payroll-directory[data-directory="physicians"] .payroll-sort-button span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
.payroll-data-table .payroll-row-number,
.payroll-directory[data-directory="physicians"] .payroll-row-number{
  width:auto!important;
  white-space:nowrap!important;
  text-align:center!important;
}
.payroll-person--compact{min-width:0!important;gap:8px}
.payroll-person--compact>span{width:30px;height:30px;flex-basis:30px;border-radius:9px}
.payroll-person--compact>div{min-width:0}
.payroll-person--compact b{
  display:block;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.payroll-person--compact small{
  display:block;
  min-width:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:9px;
}
.payroll-money-cell{white-space:nowrap!important;font-variant-numeric:tabular-nums}
.payroll-row-actions{
  display:flex!important;
  align-items:center!important;
  gap:4px!important;
  flex-wrap:wrap!important;
}
.payroll-row-actions .btn{
  min-width:0!important;
  padding:5px 7px!important;
  border-radius:8px!important;
  font-size:9px!important;
  line-height:1.4!important;
  gap:4px!important;
  white-space:nowrap!important;
}
.payroll-row-actions .btn i{font-size:9px!important}

/* Table-specific proportional widths. */
.payroll-periods-table col.col-row{width:5%}
.payroll-periods-table col.col-main{width:31%}
.payroll-periods-table col.col-status{width:12%}
.payroll-periods-table col.col-count{width:8%}
.payroll-periods-table col.col-money{width:16%}
.payroll-periods-table col.col-actions{width:20%}

.payroll-decrees-table col.col-row{width:5%}
.payroll-decrees-table col.col-main{width:24%}
.payroll-decrees-table col.col-number{width:15%}
.payroll-decrees-table col.col-version{width:7%}
.payroll-decrees-table col.col-date{width:14%}
.payroll-decrees-table col.col-status{width:12%}
.payroll-decrees-table col.col-actions{width:23%}

.payroll-performance-table col.col-row{width:4%}
.payroll-performance-table col.col-main{width:23%}
.payroll-performance-table col.col-count{width:8%}
.payroll-performance-table col.col-money{width:14%}
.payroll-performance-table col.col-recon{width:10%}
.payroll-performance-table col.col-status{width:11%}
.payroll-performance-table col.col-actions{width:16%}

/* Performance detail is a secondary table, not another repeated card header. */
.payroll-performance-detail-row[hidden]{display:none!important}
.payroll-performance-detail-row>td{
  padding:0!important;
  overflow:visible!important;
  background:#fbf9fe!important;
}
.payroll-performance-detail{
  padding:12px;
  border-top:1px solid #e7def2;
  border-bottom:1px solid #e7def2;
  background:#fbf9fe;
}
.payroll-performance-detail__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:9px;
}
.payroll-performance-detail__head b,
.payroll-performance-detail__head small{display:block}
.payroll-performance-detail__head b{font-size:11.5px;color:#3a2b46}
.payroll-performance-detail__head small{margin-top:2px;color:#8c7d96;font-size:9px}
.payroll-performance-detail__head>span{
  padding:5px 8px;
  border-radius:999px;
  background:#f3edff;
  color:#6d28d9;
  font-size:9px;
  font-weight:850;
  white-space:nowrap;
}
.payroll-detail-table-wrap{
  position:relative;
  max-height:300px;
  overflow:auto;
  border:1px solid #e8e0ef;
  border-radius:10px;
  background:#fff;
}
.payroll-detail-table{min-width:780px!important}
.payroll-detail-table thead th{
  position:sticky!important;
  top:0!important;
  z-index:8!important;
  background:#faf8fc!important;
  box-shadow:0 1px 0 #e8e0ef!important;
}
.payroll-performance-table .payroll-state,
.payroll-performance-table .payroll-recon{
  padding:4px 6px;
  font-size:9px;
}

/* Keep the physician directory aligned with the same table system. */
.payroll-directory[data-directory="physicians"] .payroll-services-table-wrap{
  max-height:min(56vh,520px)!important;
}
.payroll-directory[data-directory="physicians"] .payroll-services-table{
  min-width:0!important;
}
.payroll-directory[data-directory="physicians"] .payroll-services-table th:nth-child(1),
.payroll-directory[data-directory="physicians"] .payroll-services-table td:nth-child(1){width:5%!important}
.payroll-directory[data-directory="physicians"] .payroll-services-table th:nth-child(2),
.payroll-directory[data-directory="physicians"] .payroll-services-table td:nth-child(2){width:24%!important}
.payroll-directory[data-directory="physicians"] .payroll-services-table th:nth-child(3),
.payroll-directory[data-directory="physicians"] .payroll-services-table td:nth-child(3){width:12%!important}
.payroll-directory[data-directory="physicians"] .payroll-services-table th:nth-child(4),
.payroll-directory[data-directory="physicians"] .payroll-services-table td:nth-child(4){width:11%!important}
.payroll-directory[data-directory="physicians"] .payroll-services-table th:nth-child(5),
.payroll-directory[data-directory="physicians"] .payroll-services-table td:nth-child(5){width:12%!important}
.payroll-directory[data-directory="physicians"] .payroll-services-table th:nth-child(6),
.payroll-directory[data-directory="physicians"] .payroll-services-table td:nth-child(6){width:12%!important}
.payroll-directory[data-directory="physicians"] .payroll-services-table th:nth-child(7),
.payroll-directory[data-directory="physicians"] .payroll-services-table td:nth-child(7){width:9%!important}
.payroll-directory[data-directory="physicians"] .payroll-services-table th:nth-child(8),
.payroll-directory[data-directory="physicians"] .payroll-services-table td:nth-child(8){width:15%!important}

/* Canonical Payroll form section. */
.payroll-form-section{
  padding:15px;
  border:1px solid #eae3f1;
  border-radius:15px;
  background:#fff;
}
.payroll-form-section__head{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
  padding-bottom:11px;
  border-bottom:1px solid #f0eaf5;
}
.payroll-form-section__head>span{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  flex:0 0 34px;
  border-radius:10px;
  color:#6d28d9;
  background:#f1ebff;
}
.payroll-form-section__head b,
.payroll-form-section__head small{display:block}
.payroll-form-section__head b{font-size:12px;color:#41314d}
.payroll-form-section__head small{margin-top:2px;font-size:9.5px;color:#8b7c95}
.payroll-note--compact{margin-top:11px!important;margin-bottom:0!important;font-size:10px}
.payroll-period-form .modal-actions{
  padding-top:15px;
  border-top:1px solid #f0eaf5;
}

/* Jalali picker floats inside the viewport instead of extending the modal scroll area. */
.payroll-jdate__popup.is-floating{
  position:fixed!important;
  inset:auto!important;
  z-index:100000!important;
  margin:0!important;
  max-height:calc(100vh - 24px)!important;
  overflow:auto!important;
  transform:none!important;
}
.payroll-jdate__popup.is-floating.is-above{
  box-shadow:0 -16px 45px rgba(48,31,69,.14)!important;
}
.payroll-jdate__popup.is-floating::after{
  content:"";
  position:absolute;
  inset-inline-start:28px;
  top:-5px;
  width:10px;
  height:10px;
  background:#fff;
  border-inline-start:1px solid #dfd5eb;
  border-top:1px solid #dfd5eb;
  transform:rotate(45deg);
}
.payroll-jdate__popup.is-floating.is-above::after{
  top:auto;
  bottom:-5px;
  transform:rotate(225deg);
}

/* Responsive shared controls. */
@media(max-width:980px){
  .payroll-directory[data-directory="periods"] .payroll-data-toolbar,
  .payroll-directory[data-directory="decrees"] .payroll-data-toolbar,
  .payroll-directory[data-directory="performance"] .payroll-data-toolbar{
    grid-template-columns:1fr 1fr!important;
  }
  .payroll-data-toolbar .payroll-directory-search{grid-column:1/-1}
  .payroll-data-toolbar .payroll-filter-count{justify-self:stretch;text-align:center}
  .payroll-row-actions .btn span{display:none}
  .payroll-performance-table col.col-main{width:27%}
  .payroll-performance-table col.col-actions{width:11%}
}
@media(max-width:760px){
  .payroll-panel__actions{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .payroll-panel__actions .btn{width:100%}
  .payroll-data-toolbar{grid-template-columns:1fr!important}
  .payroll-data-toolbar .payroll-directory-search{grid-column:auto!important}
  .payroll-data-table-wrap,
  .payroll-directory[data-directory="physicians"] .payroll-services-table-wrap{
    max-height:55vh!important;
  }
  .payroll-jdate__popup.is-floating{
    position:fixed!important;
    inset:auto 10px calc(14px + env(safe-area-inset-bottom)) 10px!important;
    width:auto!important;
    max-height:min(72vh,520px)!important;
  }
  .payroll-jdate__popup.is-floating::after{display:none}
}

/* Payroll typography + personnel directory scale-up */
.payroll-page{
  font-size:14px;
}
.payroll-hero h2{
  font-size:24px!important;
  line-height:1.55;
}
.payroll-hero p{
  font-size:14px!important;
  line-height:1.9!important;
}
.payroll-tab{
  font-size:13px!important;
  font-weight:850!important;
}
.payroll-panel__head h3{
  font-size:19px!important;
  line-height:1.5!important;
}
.payroll-panel__head small{
  font-size:12px!important;
  line-height:1.6!important;
}
.payroll-note{
  font-size:12.5px!important;
  line-height:1.9!important;
}
.payroll-directory-tools .input,
.payroll-directory-tools .select{
  min-height:44px!important;
  font-size:13px!important;
}
.payroll-filter-count{
  font-size:12px!important;
}
.payroll-field>span{
  font-size:13px!important;
}
.payroll-field-hint{
  font-size:11px!important;
}
.payroll-profile-section__title b{
  font-size:14px!important;
}
.payroll-profile-tab>span{
  font-size:12px!important;
}
.payroll-profile-tab>em{
  font-size:9.5px!important;
}
.payroll-modal-card .payroll-field .input,
.payroll-modal-card .payroll-field .select,
.payroll-modal-card .payroll-field input,
.payroll-modal-card .payroll-field select,
.payroll-modal-card .payroll-field textarea{
  font-size:13.5px!important;
}
.payroll-page .btn,
.payroll-modal-card .btn{
  font-size:12px;
}
.payroll-state,
.payroll-recon{
  font-size:10.5px!important;
}

/* Personnel directory */
.payroll-personnel-tools{
  grid-template-columns:minmax(240px,1.55fr) repeat(4,minmax(118px,.72fr)) auto!important;
  gap:8px!important;
}
.payroll-directory[data-directory="physicians"] .payroll-services-table thead th{
  font-size:11.5px!important;
  padding:9px 6px!important;
}
.payroll-directory[data-directory="physicians"] .payroll-services-table tbody td{
  font-size:12px!important;
  padding:10px 7px!important;
  line-height:1.7!important;
}
.payroll-directory[data-directory="physicians"] .payroll-sort-button{
  font-size:11.5px!important;
  line-height:1.45!important;
}
.payroll-person--directory{
  min-width:0!important;
  gap:10px!important;
}
.payroll-person--directory>span{
  width:38px!important;
  height:38px!important;
  flex:0 0 38px!important;
  border-radius:11px!important;
  font-size:13px!important;
}
.payroll-person--directory>div{
  min-width:0;
}
.payroll-person--directory b{
  display:block;
  min-width:0;
  font-size:14px!important;
  line-height:1.55!important;
  color:#2d2038;
  font-weight:900!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
.payroll-person-meta{
  display:flex!important;
  align-items:center;
  gap:5px;
  flex-wrap:wrap;
  margin-top:4px!important;
  color:#776a80!important;
  font-size:11px!important;
  line-height:1.6!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
.payroll-person-meta__dot{
  color:#c3b7ca;
  font-style:normal;
}
.payroll-person-group{
  display:inline-flex;
  align-items:center;
  padding:2px 6px;
  border-radius:999px;
  background:#f2ecff;
  color:#6d28d9;
  font-size:10px;
  font-weight:850;
}
.payroll-person-gender{
  color:#91849a;
}

/* Raise table readability throughout Payroll without reintroducing horizontal scroll. */
.payroll-data-table thead th{
  font-size:11.5px!important;
  padding:9px 6px!important;
}
.payroll-data-table tbody td{
  font-size:12px!important;
  padding:9px 6px!important;
  line-height:1.65!important;
}
.payroll-data-table .payroll-sort-button{
  font-size:11px!important;
}
.payroll-person--compact b{
  font-size:12.5px!important;
  line-height:1.5!important;
}
.payroll-person--compact small{
  font-size:10.5px!important;
  line-height:1.5!important;
}
.payroll-row-actions .btn{
  font-size:10px!important;
}
.payroll-directory[data-directory="services"] .payroll-services-table thead th{
  font-size:11.5px!important;
}
.payroll-directory[data-directory="services"] .payroll-services-table tbody td{
  font-size:11.5px!important;
  line-height:1.65!important;
}
.payroll-directory[data-directory="services"] .payroll-service-main>b{
  font-size:12.5px!important;
  line-height:1.65!important;
}
.payroll-directory[data-directory="services"] .payroll-service-main .payroll-model-badge{
  font-size:10px!important;
}
.payroll-directory[data-directory="services"] .payroll-service-meta>span:first-child,
.payroll-directory[data-directory="services"] .payroll-service-meta .payroll-state{
  font-size:10px!important;
}
.payroll-directory[data-directory="services"] .payroll-service-actions .btn{
  font-size:10px!important;
}
.payroll-performance-detail__head b{
  font-size:13px!important;
}
.payroll-performance-detail__head small,
.payroll-performance-detail__head>span{
  font-size:10.5px!important;
}

@media(max-width:1180px){
  .payroll-personnel-tools{
    grid-template-columns:minmax(220px,1.4fr) repeat(2,minmax(130px,1fr))!important;
  }
  .payroll-personnel-tools .payroll-directory-search{
    grid-column:1/-1!important;
  }
  .payroll-personnel-tools .payroll-filter-count{
    justify-self:stretch!important;
    text-align:center!important;
  }
}
@media(max-width:760px){
  .payroll-personnel-tools{
    grid-template-columns:1fr!important;
  }
  .payroll-personnel-tools .payroll-directory-search{
    grid-column:auto!important;
  }
  .payroll-person--directory b{
    font-size:13.5px!important;
  }
  .payroll-person-meta{
    font-size:10.5px!important;
  }
}

/* Payroll services directory v4 — match personnel table/system exactly. */
.payroll-directory[data-directory="services"] .payroll-services-tools{
  grid-template-columns:minmax(240px,1.5fr) minmax(150px,.8fr) minmax(130px,.7fr) minmax(145px,.75fr) auto!important;
  gap:8px!important;
}
.payroll-directory[data-directory="services"] .payroll-services-table-wrap{
  width:100%!important;
  max-width:100%!important;
  max-height:min(56vh,520px)!important;
  height:auto!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  border:1px solid #ece6f2!important;
  border-radius:12px!important;
  background:#fff!important;
  scrollbar-gutter:stable!important;
}
.payroll-directory[data-directory="services"] .payroll-services-table{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
  border-collapse:separate!important;
  border-spacing:0!important;
}
.payroll-directory[data-directory="services"] .payroll-services-table col.col-row{width:5%!important}
.payroll-directory[data-directory="services"] .payroll-services-table col.col-service{width:29%!important}
.payroll-directory[data-directory="services"] .payroll-services-table col.col-model{width:12%!important}
.payroll-directory[data-directory="services"] .payroll-services-table col.col-price{width:13%!important}
.payroll-directory[data-directory="services"] .payroll-services-table col.col-share{width:10%!important}
.payroll-directory[data-directory="services"] .payroll-services-table col.col-date{width:11%!important}
.payroll-directory[data-directory="services"] .payroll-services-table col.col-status{width:8%!important}
.payroll-directory[data-directory="services"] .payroll-services-table col.col-actions{width:12%!important}

.payroll-directory[data-directory="services"] .payroll-services-table thead,
.payroll-directory[data-directory="services"] .payroll-services-table thead th{
  position:sticky!important;
  top:0!important;
}
.payroll-directory[data-directory="services"] .payroll-services-table thead{z-index:30!important}
.payroll-directory[data-directory="services"] .payroll-services-table thead th{
  z-index:31!important;
  background:#faf8fc!important;
  box-shadow:0 1px 0 #e8e0ef,0 5px 12px rgba(60,42,76,.045)!important;
  padding:9px 6px!important;
  font-size:11.5px!important;
  line-height:1.45!important;
  white-space:normal!important;
  overflow:hidden!important;
}
.payroll-directory[data-directory="services"] .payroll-services-table tbody td{
  min-width:0!important;
  max-width:100%!important;
  padding:10px 7px!important;
  font-size:12px!important;
  line-height:1.7!important;
  vertical-align:middle!important;
  overflow:hidden!important;
  text-overflow:ellipsis;
}
.payroll-directory[data-directory="services"] .payroll-sort-button{
  width:100%!important;
  min-width:0!important;
  justify-content:flex-start!important;
  gap:4px!important;
  font-size:11.5px!important;
  line-height:1.45!important;
  white-space:normal!important;
}
.payroll-directory[data-directory="services"] .payroll-service-main{
  min-width:0!important;
}
.payroll-directory[data-directory="services"] .payroll-service-main>b{
  display:block!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  color:#2d2038!important;
  font-size:13px!important;
  line-height:1.65!important;
  font-weight:900!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}
.payroll-directory[data-directory="services"] .payroll-service-model-cell,
.payroll-directory[data-directory="services"] .payroll-service-money,
.payroll-directory[data-directory="services"] .payroll-service-share,
.payroll-directory[data-directory="services"] .payroll-service-date,
.payroll-directory[data-directory="services"] .payroll-service-status{
  text-align:center!important;
}
.payroll-directory[data-directory="services"] .payroll-service-money,
.payroll-directory[data-directory="services"] .payroll-service-share,
.payroll-directory[data-directory="services"] .payroll-service-date{
  white-space:nowrap!important;
  font-variant-numeric:tabular-nums;
}
.payroll-directory[data-directory="services"] .payroll-service-model-cell .payroll-model-badge{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:4px 7px!important;
  font-size:10px!important;
  line-height:1.25!important;
}
.payroll-directory[data-directory="services"] .payroll-service-status .payroll-state,
.payroll-directory[data-directory="services"] .payroll-service-share .payroll-recon{
  padding:4px 7px!important;
  font-size:10px!important;
}
.payroll-directory[data-directory="services"] .payroll-service-actions-cell{
  overflow:visible!important;
}
.payroll-directory[data-directory="services"] .payroll-service-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:5px!important;
  flex-wrap:nowrap!important;
  width:100%!important;
  min-width:0!important;
}
.payroll-directory[data-directory="services"] .payroll-service-actions .btn{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  flex:0 1 auto!important;
  padding:6px 8px!important;
  border-radius:8px!important;
  font-size:10px!important;
  line-height:1.4!important;
  gap:4px!important;
  justify-content:center!important;
  white-space:nowrap!important;
}
.payroll-directory[data-directory="services"] .payroll-service-actions .btn i{
  font-size:9px!important;
}
.payroll-directory[data-directory="services"] .payroll-note{
  font-size:12px!important;
  padding:10px 12px!important;
  margin-bottom:12px!important;
}

@media(max-width:1120px){
  .payroll-directory[data-directory="services"] .payroll-services-tools{
    grid-template-columns:minmax(220px,1.4fr) repeat(2,minmax(130px,1fr))!important;
  }
  .payroll-directory[data-directory="services"] .payroll-services-tools .payroll-directory-search{
    grid-column:1/-1!important;
  }
  .payroll-directory[data-directory="services"] .payroll-services-tools .payroll-filter-count{
    justify-self:stretch!important;
    text-align:center!important;
  }
  .payroll-directory[data-directory="services"] .payroll-service-actions .btn span{
    display:none!important;
  }
  .payroll-directory[data-directory="services"] .payroll-services-table col.col-actions{width:9%!important}
  .payroll-directory[data-directory="services"] .payroll-services-table col.col-service{width:32%!important}
}
@media(max-width:760px){
  .payroll-directory[data-directory="services"] .payroll-services-tools{
    grid-template-columns:1fr!important;
  }
  .payroll-directory[data-directory="services"] .payroll-services-tools .payroll-directory-search{
    grid-column:auto!important;
  }
  .payroll-directory[data-directory="services"] .payroll-services-table-wrap{
    max-height:55vh!important;
  }
}

/* Payroll table headers v5 — one alignment rule across every tab. */
.payroll-page .payroll-table thead th{
  text-align:center!important;
  vertical-align:middle!important;
}
.payroll-page .payroll-table thead th .payroll-sort-button,
.payroll-page .payroll-table thead th>.payroll-sort-button{
  width:100%!important;
  justify-content:center!important;
  align-items:center!important;
  text-align:center!important;
  margin-inline:auto!important;
}
.payroll-page .payroll-table thead th .payroll-sort-button span{
  text-align:center!important;
}
.payroll-page .payroll-table thead th.payroll-row-number{
  text-align:center!important;
}
.payroll-page .payroll-detail-table thead th{
  text-align:center!important;
}

/* Decree actions may contain view / publish / delete in one row. */
.payroll-directory[data-directory="decrees"] .payroll-row-actions{
  justify-content:center!important;
}
.payroll-directory[data-directory="decrees"] .payroll-row-actions .btn{
  flex:0 1 auto!important;
}
.payroll-directory[data-directory="decrees"] .payroll-row-actions .btn:disabled{
  opacity:.48!important;
  cursor:not-allowed!important;
}

/* Payroll tables v6 — exact column-axis alignment for headers and row content. */
.payroll-page .payroll-table thead th,
.payroll-page .payroll-table tbody td{
  text-align:center!important;
  vertical-align:middle!important;
}
.payroll-page .payroll-table thead th .payroll-sort-button,
.payroll-page .payroll-table thead th>.payroll-sort-button{
  display:flex!important;
  width:100%!important;
  min-width:0!important;
  padding-inline:0!important;
  margin-inline:auto!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  gap:4px!important;
}
.payroll-page .payroll-table thead th .payroll-sort-button span{
  flex:0 1 auto!important;
  text-align:center!important;
}
.payroll-page .payroll-table tbody td>.payroll-state,
.payroll-page .payroll-table tbody td>.payroll-recon,
.payroll-page .payroll-table tbody td>.payroll-model-badge{
  margin-inline:auto!important;
}
.payroll-page .payroll-person,
.payroll-page .payroll-person--directory,
.payroll-page .payroll-person--compact{
  width:100%!important;
  justify-content:center!important;
  align-items:center!important;
  text-align:center!important;
}
.payroll-page .payroll-person>div,
.payroll-page .payroll-person--directory>div,
.payroll-page .payroll-person--compact>div{
  min-width:0!important;
  text-align:center!important;
}
.payroll-page .payroll-person b,
.payroll-page .payroll-person small,
.payroll-page .payroll-person-meta{
  text-align:center!important;
}
.payroll-page .payroll-person-meta{
  justify-content:center!important;
}
.payroll-page .payroll-service-main,
.payroll-page .payroll-service-main>b{
  text-align:center!important;
}
.payroll-page .payroll-row-actions,
.payroll-page .payroll-service-actions{
  width:100%!important;
  justify-content:center!important;
  align-items:center!important;
}
.payroll-page .payroll-money-cell,
.payroll-page .payroll-service-money,
.payroll-page .payroll-service-share,
.payroll-page .payroll-service-date,
.payroll-page .payroll-service-status,
.payroll-page td.ltr{
  text-align:center!important;
}
.payroll-page .payroll-row-number{
  text-align:center!important;
}

/* Gender-aware personnel avatar. Gender is only reflected when explicitly stored. */
.payroll-person-avatar{
  display:inline-grid!important;
  place-items:center!important;
  flex:0 0 auto!important;
  border-radius:10px!important;
  background:#f1ebff!important;
  color:#6d28d9!important;
}
.payroll-person--directory>.payroll-person-avatar{
  width:38px!important;
  height:38px!important;
  flex-basis:38px!important;
}
.payroll-person--compact>.payroll-person-avatar{
  width:30px!important;
  height:30px!important;
  flex-basis:30px!important;
}
.payroll-person-avatar--neutral{
  background:#f4f1f7!important;
  color:#83778c!important;
}
.payroll-person-avatar i{
  font-size:13px!important;
  line-height:1!important;
}
.payroll-person--compact>.payroll-person-avatar i{
  font-size:11px!important;
}

/* Payroll personnel avatars v2 — reuse the canonical scheduling/personnel gender style. */
.payroll-person-avatar{
  border-radius:12px!important;
  box-shadow:none!important;
}
.payroll-person-avatar--female{
  background:#fcecf5!important;
  color:#b83280!important;
}
.payroll-person-avatar--male{
  background:#eaf3ff!important;
  color:#2563a8!important;
}
.payroll-person-avatar--other{
  background:#f1edff!important;
  color:#6d28d9!important;
}
.payroll-person-avatar--unknown,
.payroll-person-avatar--neutral{
  background:#f3f1f5!important;
  color:#7b7283!important;
}
.payroll-person--directory>.payroll-person-avatar i{
  font-size:17px!important;
}
.payroll-person--compact>.payroll-person-avatar i{
  font-size:14px!important;
}

/* A fixed avatar track prevents icons moving left/right as names change length. */
.payroll-directory[data-directory="physicians"] .payroll-person--directory{
  width:min(100%,280px)!important;
  margin-inline:auto!important;
  display:grid!important;
  grid-template-columns:38px minmax(0,1fr)!important;
  align-items:center!important;
  justify-content:stretch!important;
  column-gap:10px!important;
  direction:rtl!important;
}
.payroll-directory[data-directory="physicians"] .payroll-person--directory>.payroll-person-avatar{
  grid-column:1!important;
  grid-row:1!important;
  justify-self:center!important;
  align-self:center!important;
  width:38px!important;
  height:38px!important;
}
.payroll-directory[data-directory="physicians"] .payroll-person--directory>div{
  grid-column:2!important;
  grid-row:1!important;
  width:100%!important;
  text-align:center!important;
}
.payroll-directory[data-directory="physicians"] .payroll-person--directory b,
.payroll-directory[data-directory="physicians"] .payroll-person--directory .payroll-person-meta{
  width:100%!important;
  text-align:center!important;
  justify-content:center!important;
}

/* Reuse the same fixed-track geometry in decree/performance personnel cells. */
.payroll-data-table .payroll-person--compact{
  width:min(100%,230px)!important;
  margin-inline:auto!important;
  display:grid!important;
  grid-template-columns:30px minmax(0,1fr)!important;
  align-items:center!important;
  justify-content:stretch!important;
  column-gap:8px!important;
  direction:rtl!important;
}
.payroll-data-table .payroll-person--compact>.payroll-person-avatar{
  grid-column:1!important;
  grid-row:1!important;
  justify-self:center!important;
  width:30px!important;
  height:30px!important;
}
.payroll-data-table .payroll-person--compact>div{
  grid-column:2!important;
  grid-row:1!important;
  width:100%!important;
  text-align:center!important;
}

/* Payroll modal header v3 — canonical close action across every Payroll dialog. */
.payroll-modal-card .modal-head{
  position:relative!important;
  display:block!important;
  min-height:42px!important;
  padding:0 52px 18px 0!important;
  direction:rtl!important;
  text-align:right!important;
}
.payroll-modal-card .modal-head>div{
  width:100%!important;
  min-width:0!important;
  padding:0!important;
  text-align:right!important;
}
.payroll-modal-card .modal-head h3,
.payroll-modal-card .modal-head small{
  text-align:right!important;
}
.payroll-modal-card .payroll-modal-close,
.payroll-modal-card .modal-close.payroll-modal-close{
  position:absolute!important;
  top:0!important;
  left:0!important;
  right:auto!important;
  inset-inline-start:auto!important;
  inset-inline-end:auto!important;
  display:grid!important;
  place-items:center!important;
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  min-height:40px!important;
  padding:0!important;
  margin:0!important;
  border:1px solid #fecaca!important;
  border-radius:12px!important;
  color:#dc2626!important;
  background:#fff1f2!important;
  box-shadow:none!important;
  cursor:pointer!important;
  z-index:3!important;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease!important;
}
.payroll-modal-card .payroll-modal-close:hover,
.payroll-modal-card .modal-close.payroll-modal-close:hover{
  color:#b91c1c!important;
  border-color:#fca5a5!important;
  background:#ffe4e6!important;
  box-shadow:0 6px 16px rgba(220,38,38,.10)!important;
  transform:translateY(-1px)!important;
}
.payroll-modal-card .payroll-modal-close:focus-visible{
  outline:3px solid rgba(220,38,38,.16)!important;
  outline-offset:2px!important;
}
.payroll-modal-card .payroll-modal-close:active{
  transform:translateY(0)!important;
}
.payroll-modal-card .payroll-modal-close i{
  margin:0!important;
  color:inherit!important;
  font-size:16px!important;
  line-height:1!important;
}
.payroll-modal-card .payroll-personnel-profile-head{
  min-height:42px!important;
}
.payroll-modal-card .payroll-personnel-profile-head h3{
  margin:0!important;
  font-size:22px!important;
  font-weight:900!important;
  line-height:1.55!important;
}

@media(max-width:760px){
  .payroll-modal-card .modal-head{
    min-height:40px!important;
    padding:0 48px 15px 0!important;
  }
  .payroll-modal-card .payroll-modal-close,
  .payroll-modal-card .modal-close.payroll-modal-close{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    min-height:38px!important;
  }
}

/* Payroll modal header v4 — physical left close + compact filled personnel header. */
.payroll-modal-card .payroll-modal-close,
.payroll-modal-card .modal-close.payroll-modal-close{
  left:12px!important;
  right:auto!important;
  inset-inline-start:auto!important;
  inset-inline-end:auto!important;
}
.payroll-modal-card .payroll-profile-form{
  padding-top:16px!important;
}
.payroll-modal-card .payroll-personnel-profile-head{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  min-height:58px!important;
  margin:0 0 14px!important;
  padding:10px 16px 10px 60px!important;
  border:1px solid #ece4f4!important;
  border-radius:15px!important;
  background:linear-gradient(135deg,#fcfbff 0%,#f8f4ff 100%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.88)!important;
  direction:rtl!important;
}
.payroll-modal-card .payroll-personnel-profile-head>div{
  width:100%!important;
  min-width:0!important;
  padding:0!important;
}
.payroll-modal-card .payroll-personnel-profile-head h3{
  margin:0!important;
  color:#281b35!important;
  font-size:22px!important;
  font-weight:950!important;
  line-height:1.45!important;
  text-align:right!important;
}
.payroll-modal-card .payroll-personnel-profile-head .payroll-modal-close{
  top:50%!important;
  left:12px!important;
  right:auto!important;
  transform:translateY(-50%)!important;
}
.payroll-modal-card .payroll-personnel-profile-head .payroll-modal-close:hover{
  transform:translateY(calc(-50% - 1px))!important;
}
.payroll-modal-card .payroll-personnel-profile-head .payroll-modal-close:active{
  transform:translateY(-50%)!important;
}
.payroll-modal-card .payroll-profile-note{
  margin-top:0!important;
  margin-bottom:12px!important;
}

@media(max-width:760px){
  .payroll-modal-card .payroll-profile-form{
    padding-top:12px!important;
  }
  .payroll-modal-card .payroll-personnel-profile-head{
    min-height:54px!important;
    margin-bottom:11px!important;
    padding:8px 12px 8px 56px!important;
  }
  .payroll-modal-card .payroll-personnel-profile-head h3{
    font-size:19px!important;
  }
  .payroll-modal-card .payroll-personnel-profile-head .payroll-modal-close{
    left:10px!important;
  }
}

/* Payroll modal shell v5 — deterministic LTR shell, RTL content, sticky actions. */
.payroll-modal-card{
  overflow:hidden!important;
}
.payroll-modal-card .payroll-form{
  max-height:calc(100dvh - 40px)!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.payroll-modal-card .modal-head{
  position:sticky!important;
  top:0!important;
  z-index:30!important;
  display:grid!important;
  grid-template-columns:44px minmax(0,1fr)!important;
  align-items:center!important;
  gap:12px!important;
  direction:ltr!important;
  min-height:58px!important;
  margin:-16px -28px 14px!important;
  padding:10px 28px!important;
  border-bottom:1px solid #eee7f5!important;
  background:rgba(255,255,255,.97)!important;
  backdrop-filter:blur(10px);
  box-shadow:0 8px 20px rgba(45,26,66,.04)!important;
}
.payroll-modal-card .modal-head>div{
  grid-column:2!important;
  grid-row:1!important;
  width:100%!important;
  min-width:0!important;
  padding:0!important;
  direction:rtl!important;
  text-align:right!important;
}
.payroll-modal-card .modal-head h3,
.payroll-modal-card .modal-head small{
  text-align:right!important;
}
.payroll-modal-card .payroll-modal-close,
.payroll-modal-card .modal-close.payroll-modal-close,
.payroll-modal-card .payroll-personnel-profile-head .payroll-modal-close{
  position:static!important;
  grid-column:1!important;
  grid-row:1!important;
  justify-self:start!important;
  align-self:center!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  inset:auto!important;
  margin:0!important;
  transform:none!important;
  z-index:31!important;
}
.payroll-modal-card .payroll-modal-close:hover,
.payroll-modal-card .modal-close.payroll-modal-close:hover,
.payroll-modal-card .payroll-personnel-profile-head .payroll-modal-close:hover{
  transform:translateY(-1px)!important;
}
.payroll-modal-card .payroll-modal-close:active,
.payroll-modal-card .modal-close.payroll-modal-close:active,
.payroll-modal-card .payroll-personnel-profile-head .payroll-modal-close:active{
  transform:none!important;
}
.payroll-modal-card .payroll-personnel-profile-head{
  display:grid!important;
  grid-template-columns:44px minmax(0,1fr)!important;
  direction:ltr!important;
  margin:-16px -28px 14px!important;
  padding:10px 28px!important;
  border:0!important;
  border-bottom:1px solid #eee7f5!important;
  border-radius:0!important;
  background:rgba(255,255,255,.97)!important;
}
.payroll-modal-card .payroll-personnel-profile-head>div{
  grid-column:2!important;
  grid-row:1!important;
  direction:rtl!important;
}
.payroll-modal-card .modal-actions{
  position:sticky!important;
  bottom:0!important;
  z-index:28!important;
  margin:20px -28px -24px!important;
  padding:14px 28px 16px!important;
  border-top:1px solid #eee7f5!important;
  background:rgba(255,255,255,.98)!important;
  backdrop-filter:blur(10px);
  box-shadow:0 -10px 22px rgba(45,26,66,.06)!important;
}
.payroll-modal-card .payroll-profile-form .modal-actions{
  margin-top:18px!important;
}
@media(max-width:760px){
  .payroll-modal-card .payroll-form{
    max-height:calc(100dvh - 20px)!important;
  }
  .payroll-modal-card .modal-head,
  .payroll-modal-card .payroll-personnel-profile-head{
    grid-template-columns:40px minmax(0,1fr)!important;
    margin:-12px -16px 12px!important;
    padding:8px 16px!important;
  }
  .payroll-modal-card .modal-actions{
    margin:16px -16px -16px!important;
    padding:12px 16px 14px!important;
  }
}

/* Payroll modal shell v6 — header/footer are layout rows; only body scrolls. */
.payroll-modal-card{
  overflow:hidden!important;
}
.payroll-modal-card .payroll-form.payroll-modal-shell{
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto!important;
  width:100%!important;
  max-width:100%!important;
  max-height:calc(100dvh - 40px)!important;
  min-height:0!important;
  padding:0!important;
  overflow:hidden!important;
}
.payroll-modal-card .payroll-modal-shell>.modal-head,
.payroll-modal-card .payroll-modal-shell>.payroll-personnel-profile-head{
  position:relative!important;
  top:auto!important;
  z-index:20!important;
  margin:0!important;
  padding:10px 28px!important;
  border:0!important;
  border-bottom:1px solid #eee7f5!important;
  border-radius:0!important;
  background:#fff!important;
  box-shadow:0 5px 14px rgba(45,26,66,.035)!important;
}
.payroll-modal-card .payroll-modal-shell>.payroll-modal-body{
  min-width:0!important;
  min-height:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  scrollbar-gutter:stable;
  padding:14px 28px 18px!important;
  direction:rtl!important;
  background:#fff!important;
}
.payroll-modal-card .payroll-modal-shell>.modal-actions{
  position:relative!important;
  bottom:auto!important;
  z-index:20!important;
  flex:0 0 auto!important;
  margin:0!important;
  padding:14px 28px 16px!important;
  border-top:1px solid #eee7f5!important;
  background:#fff!important;
  box-shadow:0 -6px 16px rgba(45,26,66,.045)!important;
  backdrop-filter:none!important;
}
.payroll-modal-card .payroll-modal-shell>.payroll-modal-body>.payroll-profile-note{
  margin-top:0!important;
}
.payroll-modal-card .payroll-modal-shell>.payroll-modal-body>.payroll-profile-tabs{
  margin-top:0!important;
}

/* Keep non-form confirmations simple; never let their actions float over content. */
.payroll-modal-card .payroll-confirm .modal-actions{
  position:relative!important;
  bottom:auto!important;
  margin-top:18px!important;
}

@media(max-width:760px){
  .payroll-modal-card .payroll-form.payroll-modal-shell{
    max-height:calc(100dvh - 20px)!important;
  }
  .payroll-modal-card .payroll-modal-shell>.modal-head,
  .payroll-modal-card .payroll-modal-shell>.payroll-personnel-profile-head{
    margin:0!important;
    padding:8px 16px!important;
  }
  .payroll-modal-card .payroll-modal-shell>.payroll-modal-body{
    padding:12px 16px 14px!important;
  }
  .payroll-modal-card .payroll-modal-shell>.modal-actions{
    margin:0!important;
    padding:12px 16px 14px!important;
  }
}

/* Payroll Excel entry/template controls */
.payroll-personnel-actions,
.payroll-services-actions{
  flex-wrap:wrap!important;
  gap:8px!important;
}

.payroll-personnel-import-form .payroll-import-template-card,
.payroll-service-import-form .payroll-import-template-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 16px;
  border:1px solid #e8def5;
  border-radius:14px;
  background:#fbf9ff;
}
.payroll-personnel-import-form .payroll-import-template-card>div,
.payroll-service-import-form .payroll-import-template-card>div{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.payroll-personnel-import-form .payroll-import-template-card>div>span,
.payroll-service-import-form .payroll-import-template-card>div>span{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  flex:0 0 40px;
  border-radius:12px;
  color:#6d28d9;
  background:#f1eafe;
}
.payroll-personnel-import-form .payroll-import-template-card b,
.payroll-personnel-import-form .payroll-import-template-card small,
.payroll-service-import-form .payroll-import-template-card b,
.payroll-service-import-form .payroll-import-template-card small{
  display:block;
  text-align:right;
}
.payroll-personnel-import-form .payroll-import-template-card b,
.payroll-service-import-form .payroll-import-template-card b{
  margin-bottom:3px;
  color:#31203d;
  font-size:13px;
  font-weight:900;
}
.payroll-personnel-import-form .payroll-import-template-card small,
.payroll-service-import-form .payroll-import-template-card small{
  color:#83768e;
  font-size:11px;
  line-height:1.7;
}
.payroll-personnel-import-form .payroll-upload,
.payroll-service-import-form .payroll-upload{
  margin-top:14px;
}

.payroll-personnel-excel-actions,
.payroll-excel-actions{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px;
  border:1px solid #ccebdc;
  border-radius:13px;
  background:#f4fbf7;
}
.payroll-excel-import-btn,
.payroll-excel-template-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:38px;
  border-radius:10px;
  font-weight:850;
  white-space:nowrap;
  transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease;
}
.payroll-excel-import-btn{
  border:1px solid #16824f;
  background:#188b56;
  color:#fff;
  box-shadow:0 6px 16px rgba(24,139,86,.14);
}
.payroll-excel-import-btn:hover{
  background:#117447;
  border-color:#117447;
  color:#fff;
  transform:translateY(-1px);
}
.payroll-excel-template-btn{
  border:1px solid #b9dfcc;
  background:#fff;
  color:#126a43;
}
.payroll-excel-template-btn:hover{
  border-color:#86caaa;
  background:#eaf8f0;
  color:#0d5937;
}
.payroll-excel-import-btn i,
.payroll-excel-template-btn i{
  color:inherit;
}
.payroll-personnel-import-form .payroll-import-template-card .payroll-excel-template-btn,
.payroll-service-import-form .payroll-import-template-card .payroll-excel-template-btn{
  flex:0 0 auto;
}

@media(max-width:900px){
  .payroll-personnel-actions,
  .payroll-services-actions{
    width:100%;
  }
}
@media(max-width:760px){
  .payroll-personnel-excel-actions,
  .payroll-excel-actions{
    width:100%;
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .payroll-personnel-excel-actions .btn,
  .payroll-excel-actions .btn{
    width:100%;
  }
}
@media(max-width:640px){
  .payroll-personnel-import-form .payroll-import-template-card,
  .payroll-service-import-form .payroll-import-template-card{
    align-items:stretch;
    flex-direction:column;
  }
  .payroll-personnel-import-form .payroll-import-template-card .btn,
  .payroll-service-import-form .payroll-import-template-card .btn{
    width:100%;
    justify-content:center;
  }
}
@media(max-width:520px){
  .payroll-personnel-excel-actions,
  .payroll-excel-actions{
    grid-template-columns:1fr;
  }
}

/* Personnel-wide employment decree: contextual, read-only profile preview. */
.payroll-decree-person-preview{
  min-width:0;
  padding:13px 15px;
  margin:0;
  border:1px solid #e6def4;
  border-radius:14px;
  background:#fbf9ff;
}
.payroll-decree-person-preview[hidden]{display:none!important}
.payroll-decree-person-preview__head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.payroll-decree-person-preview__head>i{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:11px;color:#6d28d9;background:#efe8ff}
.payroll-decree-person-preview__head>div{flex:1;min-width:0}
.payroll-decree-person-preview__head b,.payroll-decree-person-preview__head small{display:block;overflow-wrap:anywhere}
.payroll-decree-person-preview__head b{font-size:13px;color:#332447}
.payroll-decree-person-preview__head small{font-size:10.5px;color:#7c6c90}
.payroll-decree-person-preview__head>span{padding:5px 9px;border-radius:999px;background:#e9f9f0;color:#047857;font-size:10px;font-weight:800}
.payroll-decree-person-preview__head>span.is-inactive{background:#f1f2f4;color:#64748b}
.payroll-decree-person-preview__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.payroll-decree-person-preview__grid>div{min-width:0;border:1px solid #ebe6f2;background:#fff;border-radius:10px;padding:9px 10px}
.payroll-decree-person-preview__grid small,.payroll-decree-person-preview__grid b{display:block;overflow-wrap:anywhere}
.payroll-decree-person-preview__grid small{font-size:10.5px;color:#887992;margin-bottom:3px}
.payroll-decree-person-preview__grid b{font-size:12px;color:#3d2e4b;font-weight:800}
.payroll-decree-note{margin:15px 0 0!important;font-size:11.5px;line-height:1.8}
@media(max-width:760px){
  .payroll-decree-person-preview__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:420px){
  .payroll-decree-person-preview__grid{grid-template-columns:minmax(0,1fr)}
}


/* Financial periods: monthly-first workflow, scoped and readable actions. */
.payroll-periods-table col.col-main{width:26%}
.payroll-periods-table col.col-status{width:11%}
.payroll-periods-table col.col-count{width:7%}
.payroll-periods-table col.col-money{width:14%}
.payroll-periods-table col.col-actions{width:30%}
.payroll-period-row-actions{justify-content:flex-start;gap:6px!important}
.payroll-period-row-actions .btn{min-height:32px!important;padding:6px 8px!important}
.payroll-period-row-actions .payroll-excel-import-btn{
  background:#188b56!important;
  border:1px solid #16824f!important;
  color:#fff!important;
  box-shadow:0 3px 12px rgba(24,139,86,.1)!important;
}
.payroll-period-row-actions .payroll-excel-import-btn:hover{background:#117447!important}
.payroll-directory[data-directory="periods"]>.payroll-note{
  margin:0 0 12px;
  background:#f8f5fd;
  border:1px solid #eee6fa;
  border-radius:12px;
}
@media(max-width:1100px){
  .payroll-period-row-actions .btn span{display:none}
  .payroll-period-row-actions .btn{min-width:34px!important}
}

/* Standard performance import: keep validation details readable inside form. */
.payroll-standard-excel-error{
  direction:rtl;
  text-align:right;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  line-height:1.95;
  padding:12px 14px;
  margin:12px 0;
  color:#8b212b;
  background:#fff5f5;
  border:1px solid #f5c6cd;
  border-radius:12px;
  font-size:13px;
  font-weight:650;
}
.payroll-standard-excel-error[hidden]{display:none}

/* Financial uploads archive: readable errors and private raw-file downloads. */
.payroll-archive-open-btn{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.payroll-archive-table{max-height:min(56vh,520px);overflow:auto;overscroll-behavior:contain}
.payroll-archive-table .payroll-table{min-width:660px}
.payroll-archive-table .payroll-table th,
.payroll-archive-table .payroll-table td{vertical-align:middle}
.payroll-archive-table .payroll-table td:first-child{max-width:260px;overflow-wrap:anywhere}
.payroll-archive-table .payroll-table td small{display:block;font-size:11px;color:#837b98;margin-top:5px}
.payroll-archive-table .payroll-table .payroll-archive-error{color:#a34343;max-width:360px;line-height:1.7;white-space:normal}
@media(max-width:680px){.payroll-periods-actions{flex-wrap:wrap}.payroll-archive-table{max-height:45vh}}

/* Numeric service-code metadata stays compact beside the service title. */
.payroll-service-code{display:block;margin-top:4px;font-size:11px;font-weight:500;color:var(--text-muted,#81798b)}
.payroll-service-code [dir="ltr"]{display:inline-block;direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums}

/* Service editor v2 — tightly scoped, compact RTL layout.
   The generic payroll modal shell (header/body/footer) stays intact for
   physician, archive, performance, and personnel dialogs. */
.payroll-modal-card:has(.payroll-service-form){
  width:min(780px,calc(100vw - 32px))!important;
  max-width:780px!important;
}
.payroll-modal-card .payroll-service-form .payroll-modal-body{
  padding:14px 24px 18px!important;
  direction:rtl!important;
}
.payroll-modal-card .payroll-service-form .modal-head{
  padding:10px 24px!important;
}
.payroll-modal-card .payroll-service-form .modal-head h3{
  font-size:19px!important;
  line-height:1.45!important;
}
.payroll-modal-card .payroll-service-form .modal-head small{
  font-size:11px!important;
  margin-bottom:2px!important;
}
.payroll-modal-card .payroll-service-form .payroll-model-choice{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  width:100%;
  margin:0 0 17px!important;
  padding:9px 10px 10px;
  border:1px solid #ece5f5;
  border-radius:14px;
  background:#fbfaff;
  min-width:0;
}
.payroll-modal-card .payroll-service-form .payroll-model-choice legend{
  padding-inline:5px;
  font-size:11.5px;
  line-height:1.4;
}
.payroll-modal-card .payroll-service-form .payroll-choice-card{
  min-width:0;
}
.payroll-modal-card .payroll-service-form .payroll-choice-card span{
  min-width:0;
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:9px;
  min-height:56px;
  padding:9px 11px;
}
.payroll-modal-card .payroll-service-form .payroll-choice-card span>i{
  flex:0 0 32px;
  width:32px;
  height:32px;
}
.payroll-modal-card .payroll-service-form .payroll-choice-card span>b{
  flex:0 0 auto;
  font-size:12px;
  white-space:nowrap;
}
.payroll-modal-card .payroll-service-form .payroll-choice-card span>small{
  min-width:0;
  margin-inline-start:auto;
  font-size:10px;
  line-height:1.55;
  text-align:right;
  overflow-wrap:anywhere;
}
.payroll-modal-card .payroll-service-form .payroll-service-form__grid{
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:13px 14px!important;
  align-items:start;
}
.payroll-modal-card .payroll-service-form__grid>.payroll-field{
  grid-column:span 3;
  display:grid;
  grid-template-rows:19px 44px;
  align-content:start;
  gap:6px;
  min-width:0;
  margin:0!important;
}
.payroll-modal-card .payroll-service-form__grid>.payroll-service-form__title{
  grid-column:1/-1!important;
}
.payroll-modal-card .payroll-service-form__grid>.payroll-field:nth-child(n+4){
  grid-column:span 2;
}
.payroll-modal-card .payroll-service-form__grid>.payroll-field>span{
  display:flex;
  align-items:center;
  gap:5px;
  width:100%;
  min-height:19px;
  margin:0!important;
  font-size:12px!important;
  line-height:1.4!important;
  font-weight:800;
  white-space:nowrap;
}
.payroll-modal-card .payroll-service-form__grid>.payroll-field>span small{
  color:#8c8298;
  font-size:10px;
  font-weight:550;
}
.payroll-modal-card .payroll-service-form__grid>.payroll-field>.input,
.payroll-modal-card .payroll-service-form__grid>.payroll-field>.select,
.payroll-modal-card .payroll-service-form__grid .payroll-jdate__input{
  height:44px!important;
  min-height:44px!important;
  max-height:44px!important;
  margin:0!important;
  padding-block:9px!important;
  border-radius:11px;
}
.payroll-modal-card .payroll-service-form__grid>.payroll-field>.input:focus,
.payroll-modal-card .payroll-service-form__grid>.payroll-field>.select:focus{
  outline-offset:1px;
}
.payroll-modal-card .payroll-service-form__grid .payroll-jdate{
  min-width:0;
  height:44px;
}
.payroll-modal-card .payroll-service-form__grid .payroll-jdate__inputrow{
  display:grid;
  grid-template-columns:minmax(0,1fr) 40px;
  gap:6px;
  height:44px;
}
.payroll-modal-card .payroll-service-form__grid .payroll-jdate__button{
  width:40px;
  height:44px;
  min-height:44px;
  border-radius:11px;
}
.payroll-modal-card .payroll-service-form__grid .payroll-service-form__code>.input{
  text-align:left!important;
  font-variant-numeric:tabular-nums;
  unicode-bidi:plaintext;
}
.payroll-modal-card .payroll-service-form__hint{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin:14px 0 0!important;
  padding:10px 12px;
  border:1px solid #ece5f9;
  border-radius:11px;
  background:#faf8ff;
  color:#736181;
  font-size:11px;
  font-weight:500;
  line-height:1.75;
}
.payroll-modal-card .payroll-service-form__hint>i{
  flex:0 0 auto;
  margin-top:3px;
  color:#7c3aed;
}
.payroll-modal-card .payroll-service-form .modal-actions{
  padding:11px 24px 13px!important;
  gap:9px!important;
}
.payroll-modal-card .payroll-service-form .modal-actions .btn{
  min-height:40px!important;
  min-width:105px;
}
@media(max-width:760px){
  .payroll-modal-card:has(.payroll-service-form){
    width:calc(100vw - 20px)!important;
    max-width:calc(100vw - 20px)!important;
  }
  .payroll-modal-card .payroll-service-form .payroll-modal-body{
    padding:12px 16px 15px!important;
  }
  .payroll-modal-card .payroll-service-form .modal-head{
    padding:9px 16px!important;
  }
  .payroll-modal-card .payroll-service-form .payroll-service-form__grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:12px!important;
  }
  .payroll-modal-card .payroll-service-form__grid>.payroll-field,
  .payroll-modal-card .payroll-service-form__grid>.payroll-field:nth-child(n+4){
    grid-column:span 1;
  }
  .payroll-modal-card .payroll-service-form__grid>.payroll-service-form__title{
    grid-column:1/-1!important;
  }
  .payroll-modal-card .payroll-service-form .modal-actions{
    padding:11px 16px 13px!important;
  }
}
@media(max-width:520px){
  .payroll-modal-card .payroll-service-form .payroll-model-choice{
    grid-template-columns:1fr;
    gap:7px;
  }
  .payroll-modal-card .payroll-service-form .payroll-choice-card span{
    min-height:47px;
    padding:8px 10px;
  }
  .payroll-modal-card .payroll-service-form .payroll-service-form__grid{
    grid-template-columns:minmax(0,1fr)!important;
    gap:12px!important;
  }
  .payroll-modal-card .payroll-service-form__grid>.payroll-field,
  .payroll-modal-card .payroll-service-form__grid>.payroll-field:nth-child(n+4),
  .payroll-modal-card .payroll-service-form__grid>.payroll-service-form__title{
    grid-column:1/-1!important;
  }
}

/* Inline physician-performance reconciliation: compact editable fields. */
.payroll-standard-review .payroll-table-wrap{
  max-height:min(58vh,620px);
  overflow:auto;
  overscroll-behavior:contain;
  border-radius:12px;
}
.payroll-standard-review .payroll-table{min-width:1180px}
.payroll-standard-review .payroll-table td{vertical-align:top}
.payroll-standard-review [data-standard-review-name]{
  width:190px;min-width:150px;min-height:36px;
  background:#fff;border:1px solid #e3daf0;border-radius:10px;
}
.payroll-standard-review [data-standard-review-service]{
  min-width:210px;max-width:270px;min-height:36px;
  background:#fff;border:1px solid #e3daf0;border-radius:10px;
}
.payroll-standard-review td small{
  display:block;max-width:250px;line-height:1.75;margin-top:5px;
  color:#786a8b;overflow-wrap:anywhere;
}
.payroll-standard-review td>.btn{margin-top:7px}
.payroll-standard-review .modal-actions{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;
}
@media(max-width:700px){
  .payroll-standard-review .payroll-table-wrap{max-height:49vh}
  .payroll-standard-review .modal-actions>.btn{flex:1 1 44%}
}


/* Payroll standard Excel upload and reconciliation v2 — scoped; no native browser picker. */
.payroll-modal-card .payroll-standard-upload-form .payroll-standard-file-input{
  position:absolute!important;width:1px!important;height:1px!important;padding:0!important;
  margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;
  clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;
}
.payroll-modal-card .payroll-standard-picker{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:100%;min-height:205px;gap:9px;padding:23px 20px;
  margin:0 0 9px;border:1.5px dashed #d7c6f1;border-radius:17px;
  background:linear-gradient(160deg,#faf8ff,#f7f2ff);
  text-align:center;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s;
}
.payroll-modal-card .payroll-standard-picker:hover,
.payroll-modal-card .payroll-standard-picker:focus-visible{
  border-color:#9864ea;box-shadow:0 0 0 3px rgba(124,58,237,.10);
  background:#f7f1ff;outline:none;
}
.payroll-modal-card .payroll-standard-picker.is-selected{
  background:#f3fcf8;border-color:#64b899;border-style:solid;
}
.payroll-modal-card .payroll-standard-picker.is-invalid{
  background:#fff7f7;border-color:#e1a6a6;
}
.payroll-modal-card .payroll-standard-picker__icon{
  display:grid;place-items:center;width:47px;height:47px;border-radius:14px;
  background:#fff;border:1px solid #e8ddf8;color:#16a34a;
  box-shadow:0 3px 10px rgba(79,40,123,.055);font-size:22px;
}
.payroll-modal-card .payroll-standard-picker__title{font-size:15px;font-weight:900;color:#30213f;line-height:1.55}
.payroll-modal-card .payroll-standard-picker__description{max-width:580px;color:#81728b;font-size:11.5px;line-height:1.9}
.payroll-modal-card .payroll-standard-picker__button{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:40px;border:1px solid #d9c9f4;border-radius:11px;
  padding:9px 17px;margin:3px 0 0;color:#6d28d9;background:#fff;
  font-size:12px;font-weight:850;
}
.payroll-modal-card .payroll-standard-picker:hover .payroll-standard-picker__button{background:#f8f4ff;border-color:#bca5ed}
.payroll-modal-card .payroll-standard-picker.is-selected .payroll-standard-picker__button{border-color:#a8dbc6;color:#087957}
.payroll-modal-card .payroll-standard-picker__file{
  display:block;max-width:min(100%,660px);font-size:11px;color:#82758e;
  font-weight:600;overflow-wrap:anywhere;line-height:1.8;
}
.payroll-modal-card .payroll-standard-picker.is-selected .payroll-standard-picker__file{color:#047857;font-weight:850}
.payroll-modal-card .payroll-standard-picker.is-invalid .payroll-standard-picker__file{color:#b91c1c}
.payroll-modal-card .payroll-standard-picker__hint{
  display:flex;align-items:flex-start;gap:7px;margin:0 0 13px;
  color:#81728b;font-size:10.5px;line-height:1.8;
}
.payroll-modal-card .payroll-standard-picker__hint i{color:#8564b2;margin-top:3px;flex:0 0 auto}
.payroll-modal-card .payroll-standard-upload-submit:disabled{opacity:.48;cursor:not-allowed;box-shadow:none}

/* Single scrollable modal body; doctors and services remain legible without wide nested tables. */
.payroll-modal-card:has(.payroll-standard-review){
  width:min(1050px,calc(100vw - 32px))!important;
  max-width:min(1050px,calc(100vw - 32px))!important;
}
.payroll-modal-card .payroll-standard-review{font-size:12px;color:#382944}
.payroll-modal-card .payroll-standard-review .payroll-modal-body{
  overflow-x:hidden!important;overflow-y:auto!important;
  padding:14px 22px 16px!important;
}
.payroll-modal-card .payroll-standard-review .modal-head{margin-bottom:0!important}
.payroll-modal-card .payroll-standard-review__notice{
  display:flex;gap:10px;align-items:flex-start;
  padding:11px 13px;border-radius:12px;margin-bottom:12px;
  background:#fff9f1;border:1px solid #f5e4cc;color:#87522b;
}
.payroll-modal-card .payroll-standard-review__notice>i{flex:0 0 auto;margin-top:4px;font-size:15px}
.payroll-modal-card .payroll-standard-review__notice>div{min-width:0;display:flex;flex-wrap:wrap;gap:3px 10px;align-items:baseline}
.payroll-modal-card .payroll-standard-review__notice b{font-size:12px;font-weight:900}
.payroll-modal-card .payroll-standard-review__notice span{font-size:11px;line-height:1.75}
.payroll-modal-card .payroll-standard-review__notice small{display:block;flex:1 0 100%;line-height:1.8}
.payroll-modal-card .payroll-standard-review__notice--ready{background:#f0fbf5;border-color:#cce9db;color:#047857}
.payroll-modal-card .payroll-standard-review__summary{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:11px;
}
.payroll-modal-card .payroll-standard-review__summary>div{
  border:1px solid #eee8f5;border-radius:11px;padding:9px 11px;
  background:#faf9fc;min-width:0;
}
.payroll-modal-card .payroll-standard-review__summary small,
.payroll-modal-card .payroll-standard-review__metrics small{
  display:block;color:#8c7c96;font-size:10px;font-weight:600;margin-bottom:3px;
}
.payroll-modal-card .payroll-standard-review__summary b{
  display:block;color:#372545;font-size:13px;font-weight:900;overflow-wrap:anywhere;
}
.payroll-modal-card .payroll-standard-review__helper{
  display:flex;gap:8px;align-items:flex-start;
  margin:0 0 11px;padding:8px 10px;background:#f7f3fd;
  border:1px solid #ece4f5;border-radius:10px;
  font-size:10.5px;color:#736482;line-height:1.8;
}
.payroll-modal-card .payroll-standard-review__helper i{flex:0 0 auto;color:#7c3aed;margin-top:3px}
.payroll-modal-card .payroll-standard-review__people{display:grid;gap:12px}
.payroll-modal-card .payroll-standard-review__person{
  border:1px solid #e8e0f1;background:#fff;border-radius:15px;min-width:0;overflow:hidden;
}
.payroll-modal-card .payroll-standard-review__person-head{
  display:flex;align-items:flex-start;gap:11px;background:#fcfaff;
  border-bottom:1px solid #eee7f4;padding:11px 13px;
}
.payroll-modal-card .payroll-standard-review__person-avatar{
  display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;
  background:#f0e9ff;color:#6d28d9;border-radius:12px;font-size:15px;
}
.payroll-modal-card .payroll-standard-review__person-main{flex:1;min-width:0}
.payroll-modal-card .payroll-standard-review__person-topline{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:7px;
}
.payroll-modal-card .payroll-standard-review__person-topline>b{font-size:12px;color:#352344}
.payroll-modal-card .payroll-standard-review__identity-ok{
  display:inline-flex;align-items:center;gap:5px;font-size:10px;color:#047857;
  background:#eaf9f1;padding:4px 8px;border-radius:999px;font-weight:800;
}
.payroll-modal-card .payroll-standard-review__person-main>label{
  display:block;font-size:10.5px;font-weight:800;margin-bottom:5px;color:#6f5b7c;
}
.payroll-modal-card .payroll-standard-review__person-main>.input{
  width:min(380px,100%)!important;max-width:100%!important;
  min-height:38px!important;height:38px!important;font-size:12px;font-weight:750;
  border:1px solid #ddd0ee;border-radius:10px;background:#fff;padding:7px 11px;
}
.payroll-modal-card .payroll-standard-review__person-main>small{
  display:block;margin-top:5px;font-size:10px;color:#81718e;line-height:1.8;
}
.payroll-modal-card .payroll-standard-review__person-main>p{
  margin:4px 0 0;font-size:10px;color:#13805a;line-height:1.7;
}
.payroll-modal-card .payroll-standard-review__services{display:grid;gap:9px;padding:11px 12px}
.payroll-modal-card .payroll-standard-review__service{
  min-width:0;border:1px solid #e9e3f0;border-radius:12px;overflow:hidden;background:#fff;
}
.payroll-modal-card .payroll-standard-review__service.is-warning{border-color:#f2ddc3}
.payroll-modal-card .payroll-standard-review__service-head{
  display:flex;gap:9px;justify-content:space-between;align-items:center;
  padding:9px 11px;border-bottom:1px solid #f0edf4;background:#fdfcfe;
}
.payroll-modal-card .payroll-standard-review__service-identity{
  display:flex;align-items:center;gap:9px;min-width:0;
}
.payroll-modal-card .payroll-standard-review__service-identity>div{min-width:0}
.payroll-modal-card .payroll-standard-review__service-identity b{display:block;font-size:11.5px;font-weight:900}
.payroll-modal-card .payroll-standard-review__service-identity small{display:block;font-size:10px;color:#897993;margin-top:2px}
.payroll-modal-card .payroll-standard-review__row-label{
  flex:0 0 auto;font-size:10px;color:#71548c;background:#f1eafb;
  padding:5px 8px;border-radius:8px;font-weight:850;
}
.payroll-modal-card .payroll-standard-review__status{
  display:inline-flex;align-items:center;gap:5px;white-space:nowrap;
  font-size:10px;color:#b45309;background:#fff2df;border-radius:999px;padding:5px 8px;font-weight:850;
}
.payroll-modal-card .payroll-standard-review__status.is-ready{color:#047857;background:#e9f8f0}
.payroll-modal-card .payroll-standard-review__service-content{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);
  align-items:center;gap:12px;padding:10px 11px;
}
.payroll-modal-card .payroll-standard-review__metrics{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;
  min-width:0;align-items:center;
}
.payroll-modal-card .payroll-standard-review__metrics>div{min-width:0}
.payroll-modal-card .payroll-standard-review__metrics b{
  display:block;font-size:11px;color:#392a48;font-weight:850;line-height:1.7;
  overflow-wrap:anywhere;font-variant-numeric:tabular-nums;
}
.payroll-modal-card .payroll-standard-review__mapping{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:7px;
  min-width:0;
}
.payroll-modal-card .payroll-standard-review__mapping label{
  grid-column:1/-1;color:#776481;font-weight:850;font-size:10.5px;margin:0;
}
.payroll-modal-card .payroll-standard-review__mapping>.select{
  width:100%!important;min-width:0!important;max-width:100%!important;
  min-height:39px!important;height:39px!important;
  font-size:10.5px;border:1px solid #e1d5ef;border-radius:10px;background-color:#fff;
}
.payroll-modal-card .payroll-standard-review__mapping>.btn{
  min-height:39px;min-width:0;padding:7px 9px;white-space:nowrap;
  font-size:10.5px;border-radius:10px;
}
.payroll-modal-card .payroll-standard-review__service-issues{
  display:grid;gap:4px;padding:8px 11px;border-top:1px solid #f6e4ce;
  background:#fffaf3;color:#95551f;font-size:10px;line-height:1.8;
}
.payroll-modal-card .payroll-standard-review__service-issues span{display:flex;align-items:flex-start;gap:7px}
.payroll-modal-card .payroll-standard-review__service-issues i{margin-top:3px;flex:0 0 auto}
.payroll-modal-card .payroll-standard-review__correction{
  padding:8px 11px;background:#f1fbf5;color:#08744d;font-size:10px;line-height:1.7;
}
.payroll-modal-card .payroll-standard-review__replace{
  display:flex;align-items:center;gap:8px;margin:12px 0 0;
  padding:11px;border:1px solid #f1dfca;border-radius:10px;background:#fffbf5;
  color:#83522b;font-size:11px;
}
.payroll-modal-card .payroll-standard-review__replace input{accent-color:#7c3aed}
.payroll-modal-card .payroll-standard-review .modal-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.payroll-modal-card .payroll-standard-review .modal-actions>.btn{min-height:41px;min-width:115px}

@media(max-width:980px){
  .payroll-modal-card .payroll-standard-review__service-content{grid-template-columns:minmax(0,1fr)}
  .payroll-modal-card .payroll-standard-review__metrics{grid-template-columns:repeat(5,minmax(0,1fr))}
}
@media(max-width:660px){
  .payroll-modal-card:has(.payroll-standard-review){
    width:calc(100vw - 20px)!important;max-width:calc(100vw - 20px)!important;
  }
  .payroll-modal-card .payroll-standard-review .payroll-modal-body{padding:12px 14px!important}
  .payroll-modal-card .payroll-standard-review__summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .payroll-modal-card .payroll-standard-review__person-head{padding:10px}
  .payroll-modal-card .payroll-standard-review__services{padding:9px}
  .payroll-modal-card .payroll-standard-review__service-content{padding:9px}
  .payroll-modal-card .payroll-standard-review__metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .payroll-modal-card .payroll-standard-review__mapping{grid-template-columns:1fr}
  .payroll-modal-card .payroll-standard-review__mapping>.btn{justify-self:start}
  .payroll-modal-card .payroll-standard-review__service-head{align-items:flex-start;flex-wrap:wrap}
  .payroll-modal-card .payroll-standard-review .modal-actions .btn{flex:1 1 100%}
  .payroll-modal-card .payroll-standard-picker{padding:20px 14px}
  .payroll-modal-card .payroll-standard-picker__title{font-size:13px}
}


/* Employment decree: preview, document readiness and deliberate publication. */
.payroll-decree-field-hint{grid-column:1/-1;margin-top:-4px;color:#766483;font-size:10.5px;line-height:1.8}
.payroll-decree-person-preview__quality{border-top:1px solid #e8e0f0;margin-top:11px;padding-top:10px;color:#047857;font-size:10.5px;font-weight:750;line-height:1.9}
.payroll-decree-person-preview__quality.has-missing{color:#9d5513}
.payroll-decree-review{margin-top:14px;padding:15px;border:1px solid #e0d6ef;border-radius:14px;background:linear-gradient(145deg,#faf7ff,#fff)}
.payroll-decree-review[hidden],.payroll-decree-form [data-decree-save][hidden]{display:none!important}
.payroll-decree-review__head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.payroll-decree-review__head>i{flex:0 0 36px;width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#eee6ff;color:#6d28d9}
.payroll-decree-review__head b,.payroll-decree-review__head small{display:block}
.payroll-decree-review__head b{font-size:12px;color:#3c2e4e}
.payroll-decree-review__head small{font-size:10px;color:#80708d;margin-top:2px}
.payroll-decree-review__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.payroll-decree-review__grid>div{min-width:0;border:1px solid #ece5f3;border-radius:10px;background:#fff;padding:9px 10px}
.payroll-decree-review__grid small,.payroll-decree-review__grid b{display:block;overflow-wrap:anywhere}
.payroll-decree-review__grid small{font-size:10px;color:#8c7d97}
.payroll-decree-review__grid b{font-size:11px;color:#3e304b;margin-top:3px}
.payroll-decree-review__warning,.payroll-decree-review__success{border-radius:10px;padding:10px 12px;font-size:10.5px;line-height:1.85;margin-top:12px}
.payroll-decree-review__warning{background:#fff8ed;border:1px solid #efd6b1;color:#855017}
.payroll-decree-review__success{background:#edf9f1;border:1px solid #c6e8d2;color:#066f42}
.payroll-decree-review>p{font-size:10px;line-height:1.9;color:#766887;margin:10px 0 0}
.payroll-decree-publication-check{padding:23px 26px}
.payroll-decree-publication-check p{color:#756781;font-size:11px;line-height:2;margin:12px 0}
.payroll-decree-publication-check .modal-actions{margin-top:17px}
@media(max-width:760px){.payroll-decree-review__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:440px){.payroll-decree-review__grid{grid-template-columns:1fr}.payroll-decree-publication-check{padding:19px}}


/* Decree personnel picker: constrained searchable list instead of an OS-level full-height select. */
.payroll-decree-person-picker{position:relative;min-width:0;z-index:8}
.payroll-decree-picker__control{display:grid;grid-template-columns:24px minmax(0,1fr) 36px;gap:8px;align-items:center;border:1px solid #e7ddf0;border-radius:12px;background:#fff;padding:4px 9px;transition:border-color .16s,box-shadow .16s}
.payroll-decree-picker__control:focus-within{border-color:#9b75ec;box-shadow:0 0 0 3px rgba(128,77,224,.08)}
.payroll-decree-picker__control>i{color:#8765bf;font-size:13px;text-align:center}
.payroll-modal-card .payroll-decree-picker__control input[type="search"]{border:0!important;box-shadow:none!important;background:transparent!important;min-height:34px!important;font-size:12px!important;padding:4px 0!important;outline:0!important;width:100%!important;direction:rtl}
.payroll-decree-picker__control input::-webkit-search-cancel-button{cursor:pointer}
.payroll-decree-picker__toggle{display:grid;place-items:center;border:0;border-radius:8px;width:34px;height:34px;background:#f5f0ff;color:#673ab7;cursor:pointer}
.payroll-decree-picker__toggle:focus-visible{outline:2px solid #8b5cf6;outline-offset:2px}
.payroll-decree-person-picker.is-open .payroll-decree-picker__toggle i{transform:rotate(180deg)}
.payroll-decree-picker__results{display:none;position:absolute;z-index:500;inset-inline:0;top:calc(100% + 5px);max-height:222px;overflow-y:auto;overscroll-behavior:contain;border:1px solid #d8cbea;border-radius:12px;background:#fff;box-shadow:0 16px 32px rgba(45,28,74,.16);padding:4px;scrollbar-width:thin}
.payroll-decree-person-picker.is-open .payroll-decree-picker__results{display:block}
.payroll-decree-picker__option{display:flex;width:100%;min-width:0;gap:9px;justify-content:space-between;align-items:center;text-align:right;border:0;border-radius:9px;background:#fff;color:#3c2e50;padding:8px 11px;cursor:pointer;font-family:inherit}
.payroll-decree-picker__option>span{min-width:0;display:block}
.payroll-decree-picker__option b,.payroll-decree-picker__option small{display:block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%}
.payroll-decree-picker__option b{font-size:11.5px;font-weight:800}
.payroll-decree-picker__option small{font-size:10px;color:#8d7d9b}
.payroll-decree-picker__option i{color:#7c3aed;flex-shrink:0}
.payroll-decree-picker__option:hover,.payroll-decree-picker__option.is-active,.payroll-decree-picker__option[aria-selected="true"]{background:#f4edff}
.payroll-decree-picker__empty,.payroll-decree-picker__more{font-size:10.5px;padding:12px;text-align:center;color:#776883;line-height:1.7}
.payroll-decree-person-preview{padding:10px 12px!important}
.payroll-decree-person-preview__head{margin-bottom:8px!important}
.payroll-decree-person-preview__head>i{flex-basis:32px!important;width:32px!important;height:32px!important}
.payroll-decree-person-preview__grid{gap:6px!important}
.payroll-decree-person-preview__grid>div{padding:6px 9px!important;border-radius:8px!important}
.payroll-decree-person-preview__grid small{font-size:9.5px!important;margin-bottom:1px!important}
.payroll-decree-person-preview__grid b{font-size:11px!important}
.payroll-decree-person-preview__quality{margin-top:7px!important;padding-top:6px!important}
@media(max-width:760px){.payroll-decree-picker__results{max-height:min(220px,37dvh)}}

/* Compact RTL decree picker options. */
.payroll-modal-card .payroll-decree-picker__results{width:min(100%,468px);inset-inline-start:0;inset-inline-end:auto;max-height:min(260px,42dvh);border-radius:13px;box-shadow:0 13px 36px rgba(48,30,72,.18);padding:6px}
.payroll-modal-card .payroll-decree-picker__option{min-height:43px;padding:7px 10px;line-height:1.5;gap:12px;text-align:start}
.payroll-modal-card .payroll-decree-picker__option b{font-size:12px;line-height:1.65}
.payroll-modal-card .payroll-decree-picker__option small{font-size:10px;line-height:1.6}
.payroll-modal-card .payroll-decree-picker__option+.payroll-decree-picker__option{margin-top:2px}
@media(max-width:760px){.payroll-modal-card .payroll-decree-picker__results{width:100%;max-height:min(235px,37dvh)}}

/* Official decree pre-draft review: show all material user-entered fields. */
.payroll-decree-review__description{margin-top:9px;border:1px solid #e8dff0;background:#fff;border-radius:10px;padding:10px 12px}
.payroll-decree-review__description small{display:block;color:#77678b;font-size:10.5px;font-weight:800;margin-bottom:5px}
.payroll-decree-review__description>div{white-space:pre-wrap;overflow-wrap:anywhere;color:#3d304b;font-size:11.5px;line-height:1.9;max-height:132px;overflow-y:auto}
.payroll-decree-review__advisory{border:1px solid #f0dfc3;border-radius:9px;background:#fffbf3;padding:8px 11px;color:#91601c!important;font-size:10.5px!important;font-weight:700}
.payroll-decree-review__earnings-hint{color:#755e84!important}
.payroll-decree-review__grid b{line-height:1.6}
@media(max-width:440px){.payroll-decree-review__description{padding:9px 10px}}

/* Payroll performance: keep all person-row actions on a single, aligned line.
   The table itself may scroll on narrow viewports; its controls must not wrap. */
.payroll-page .payroll-directory[data-directory="performance"] .payroll-performance-table{
  min-width:1020px;
  table-layout:fixed;
}
.payroll-page .payroll-directory[data-directory="performance"] .payroll-performance-table col.col-row{width:4%!important}
.payroll-page .payroll-directory[data-directory="performance"] .payroll-performance-table col.col-main{width:21%!important}
.payroll-page .payroll-directory[data-directory="performance"] .payroll-performance-table col.col-count{width:7%!important}
.payroll-page .payroll-directory[data-directory="performance"] .payroll-performance-table col.col-money{width:13%!important}
.payroll-page .payroll-directory[data-directory="performance"] .payroll-performance-table col.col-recon{width:9%!important}
.payroll-page .payroll-directory[data-directory="performance"] .payroll-performance-table col.col-status{width:9%!important}
.payroll-page .payroll-directory[data-directory="performance"] .payroll-performance-table col.col-actions{width:24%!important}
.payroll-page .payroll-directory[data-directory="performance"] .payroll-performance-table tr[data-directory-row]>td:last-child{
  white-space:nowrap;
  padding-inline:6px!important;
}
.payroll-page .payroll-directory[data-directory="performance"] .payroll-performance-table tr[data-directory-row] .payroll-row-actions{
  display:flex!important;
  flex-flow:row nowrap!important;
  justify-content:center!important;
  align-items:center!important;
  width:100%!important;
  gap:4px!important;
  white-space:nowrap;
}
.payroll-page .payroll-directory[data-directory="performance"] .payroll-performance-table tr[data-directory-row] .payroll-row-actions>.btn{
  flex:0 0 auto!important;
  min-width:0!important;
  padding:5px 6px!important;
  white-space:nowrap!important;
  line-height:1.45!important;
}

/* Payroll salary component simulation — no write actions. */
.payroll-comp-sim{max-width:100%}
.payroll-comp-sim__chip{display:inline-flex;align-items:center;gap:7px;background:#f2ebff;color:#6536a8;border:1px solid #e5d7ff;border-radius:999px;padding:8px 13px;font-size:11px;font-weight:800}
.payroll-comp-sim__intro{font-size:12px;color:#70647b;line-height:2;margin:9px 0 18px}
.payroll-comp-sim__form{display:grid;grid-template-columns:minmax(205px,1.55fr) repeat(3,minmax(120px,1fr));gap:12px;align-items:end}
.payroll-comp-sim__form .payroll-field{margin:0;min-width:0}
.payroll-comp-sim__form .payroll-field .input,.payroll-comp-sim__form .payroll-field .select{width:100%;min-width:0}
.payroll-comp-sim__submit{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:5px}
.payroll-comp-sim__submit span{color:#84748e;font-size:11px}
.payroll-comp-sim__result{margin-top:19px;background:#fcfbff;border:1px solid #e6dcf5;border-radius:14px;padding:16px}
.payroll-comp-sim__result[hidden]{display:none!important}
.payroll-comp-sim__resulthead{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #e8e0f0;padding-bottom:11px;margin-bottom:14px}
.payroll-comp-sim__resulthead h4{font-size:15px;margin:0}.payroll-comp-sim__resulthead small{font-size:10px;color:#796e88}
.payroll-comp-sim__resulthead>span{font-size:10px;font-weight:800;color:#7845ad;background:#f2eafd;border-radius:8px;padding:6px 10px;white-space:nowrap}
.payroll-comp-sim__columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.payroll-comp-sim__block{min-width:0;background:#fff;border:1px solid #eae4f0;border-radius:10px;padding:12px}
.payroll-comp-sim__block h5{font-size:12px;margin:0 0 11px;color:#463352}
.payroll-comp-sim__item{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-top:1px solid #f1edf4;min-width:0}
.payroll-comp-sim__item span{min-width:0}.payroll-comp-sim__item b,.payroll-comp-sim__item small{display:block}
.payroll-comp-sim__item b{font-size:10.5px;color:#50435e;overflow-wrap:anywhere}
.payroll-comp-sim__item small{font-size:9.5px;color:#9487a3}
.payroll-comp-sim__item strong{font-size:10.5px;white-space:nowrap;color:#402c65}
.payroll-comp-sim__empty{font-size:10.5px;color:#8e7e97;line-height:1.9}
.payroll-comp-sim__totals{display:flex;gap:9px;flex-wrap:wrap;margin-top:12px}
.payroll-comp-sim__totals>span{flex:1;min-width:155px;border:1px solid #e9e0f1;border-radius:9px;background:#fff;padding:10px;font-size:10px}
.payroll-comp-sim__totals b{display:block;font-size:11px}
.payroll-comp-sim__totals>div{width:100%;display:flex;align-items:center;justify-content:space-between;background:#eee6fc;color:#573198;border:1px solid #d9c7ef;padding:12px;border-radius:10px;gap:8px}
.payroll-comp-sim__totals>div strong{font-size:17px;white-space:nowrap}
.payroll-comp-sim__warning{background:#fff8ed;border:1px solid #f0d4a9;color:#925e1a;border-radius:9px;padding:10px 12px;font-size:10.5px;margin:11px 0}
.payroll-comp-sim__warning p{margin:3px 0}
.payroll-comp-sim__exclusions,.payroll-comp-sim__footer{font-size:10.5px;color:#80708c;line-height:1.9}
.payroll-comp-sim__footer{display:flex;align-items:baseline;gap:8px;margin-top:17px;border-top:1px solid #efe8f5;padding-top:10px}
@media(max-width:1050px){.payroll-comp-sim__form{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-comp-sim__columns{grid-template-columns:1fr}}
@media(max-width:600px){.payroll-comp-sim__form{grid-template-columns:1fr}.payroll-comp-sim__submit{display:grid}.payroll-comp-sim__resulthead{align-items:flex-start;flex-direction:column}.payroll-comp-sim__totals>div{flex-wrap:wrap}.payroll-comp-sim__totals>div strong{font-size:15px}}

/* Payroll interface navigation: clarify file sources and avoid a parallel salary workflow. */
.payroll-page .payroll-workflow-hint{
  display:flex;align-items:flex-start;gap:10px;width:100%;min-width:0;
  padding:10px 13px;margin:9px 0 13px;border:1px solid #e9e5ef;
  border-radius:11px;background:#fbfafc;color:#655b70;line-height:1.85
}
.payroll-page .payroll-workflow-hint>i{color:#7655aa;margin-top:4px;flex:none}
.payroll-page .payroll-workflow-hint>div{min-width:0;display:grid;gap:3px}
.payroll-page .payroll-workflow-hint b{font-size:11px;font-weight:850;color:#453553}
.payroll-page .payroll-workflow-hint span{font-size:10.5px;line-height:1.8}
.payroll-directory[data-directory="physicians"] .payroll-service-actions{flex-wrap:nowrap;gap:4px}
.payroll-directory[data-directory="physicians"] .payroll-service-actions>.btn{white-space:nowrap;min-width:0;flex:0 0 auto;padding-inline:6px}
@media(max-width:700px){.payroll-page .payroll-workflow-hint{padding:9px 10px;gap:8px}}

/* Payroll table typography v1: clear hierarchy, same visual weight across tabs.
   Scope is Payroll only; do not change table geometry, control weights or status colors. */
.payroll-page .payroll-table tbody tr[data-directory-row] > td,
.payroll-page .payroll-detail-table tbody td,
.payroll-modal-card .payroll-table tbody td{
  color:#382a45;
  font-weight:700;
  font-variant-numeric:tabular-nums;
}
.payroll-page .payroll-table tbody tr[data-directory-row] .payroll-person b,
.payroll-page .payroll-table tbody tr[data-directory-row] td.payroll-service-main > b,
.payroll-page .payroll-table tbody tr[data-directory-row] > td > b,
.payroll-modal-card .payroll-table tbody td > b{
  color:#281a36;
  font-weight:900!important;
}
.payroll-page .payroll-table tbody tr[data-directory-row] .payroll-person--compact b{
  font-size:13px!important;
}
.payroll-page .payroll-table tbody tr[data-directory-row] > td.payroll-money-cell,
.payroll-page .payroll-table tbody tr[data-directory-row] > td.payroll-service-money,
.payroll-page .payroll-table tbody tr[data-directory-row] > td.payroll-service-share,
.payroll-page .payroll-periods-table tbody tr[data-directory-row] > td:nth-child(4),
.payroll-page .payroll-periods-table tbody tr[data-directory-row] > td:nth-child(5),
.payroll-page .payroll-periods-table tbody tr[data-directory-row] > td:nth-child(6),
.payroll-page .payroll-performance-table tbody tr[data-directory-row] > td:nth-child(3),
.payroll-page .payroll-decrees-table tbody tr[data-directory-row] > td:nth-child(3),
.payroll-page .payroll-decrees-table tbody tr[data-directory-row] > td:nth-child(4),
.payroll-page .payroll-decrees-table tbody tr[data-directory-row] > td:nth-child(5),
.payroll-page .payroll-directory[data-directory="physicians"] .payroll-services-table tbody tr[data-directory-row] > td:nth-child(3),
.payroll-page .payroll-directory[data-directory="physicians"] .payroll-services-table tbody tr[data-directory-row] > td:nth-child(4),
.payroll-page .payroll-detail-table tbody td:nth-child(3),
.payroll-page .payroll-detail-table tbody td:nth-child(4),
.payroll-page .payroll-detail-table tbody td:nth-child(5),
.payroll-page .payroll-detail-table tbody td:nth-child(6),
.payroll-page .payroll-detail-table tbody td:nth-child(7){
  color:#30203f;
  font-weight:800;
}
.payroll-page .payroll-table tbody tr[data-directory-row] .payroll-person small,
.payroll-page .payroll-table tbody tr[data-directory-row] td.payroll-service-main > small,
.payroll-page .payroll-periods-table tbody tr[data-directory-row] > td > small,
.payroll-modal-card .payroll-table tbody td small{
  color:#766980;
  font-weight:500!important;
}
