.payroll-toolbar{align-items:center}
.payroll-toolbar-state{display:flex;align-items:center;gap:12px;min-width:0}
.payroll-toolbar-state .muted{font-size:.78rem;overflow-wrap:anywhere}
.payroll-toolbar-state .status-pill.is-reviewed{background:var(--blue-soft);color:var(--blue)}
.payroll-toolbar-state .status-pill.is-approved{background:color-mix(in srgb,var(--green) 12%,var(--surface));color:var(--green)}
.payroll-toolbar-actions{display:flex;justify-content:flex-end}
.payroll-summary-grid{margin-bottom:14px}
.payroll-summary-card{min-height:142px;padding:18px 20px}
.payroll-summary-card small{display:block;margin-top:7px;color:var(--muted);font-size:.72rem;line-height:1.4}
.summary-card--accent.payroll-summary-card small{color:#b7c7d8}
.payroll-page-note{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 14px;color:var(--muted);font-size:.76rem}
.payroll-page-actions,.payroll-key,.payroll-key span{display:flex;align-items:center}
.payroll-page-actions{gap:16px}.payroll-key{gap:14px;white-space:nowrap}.payroll-key span{gap:6px}
.payroll-key i{width:10px;height:10px;border:1px solid #9eb9d0;border-radius:3px;background:var(--blue-soft)}
.payroll-key i.is-auto{border-color:var(--line);background:var(--paper)}
.payroll-register{padding:0;overflow:hidden}
.payroll-section{border-bottom:1px solid var(--line)}.payroll-section:last-child{border-bottom:0}
.payroll-section summary{list-style:none;cursor:pointer}.payroll-section summary::-webkit-details-marker{display:none}
.payroll-section-summary{min-height:56px;padding:8px 16px;display:grid;grid-template-columns:minmax(0,1fr) 36px;align-items:center;gap:12px;background:var(--surface)}
.payroll-section summary:hover .payroll-section-summary{background:color-mix(in srgb,var(--paper) 45%,var(--surface))}
.payroll-section[open] .payroll-section-summary{background:var(--paper);border-bottom:1px solid var(--line)}
.payroll-section-title{display:flex;align-items:center;gap:9px;min-width:0}.payroll-section-title h2{margin:0;font-size:.94rem;letter-spacing:0;overflow-wrap:anywhere}
.payroll-section-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:var(--blue-soft);color:var(--blue);font-weight:850;flex:0 0 30px}
.payroll-section-title small{display:block;margin-top:2px;color:var(--muted);font-size:.64rem}
.payroll-chevron{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:var(--line);color:var(--ink-2);transition:transform .18s}
.payroll-section[open] .payroll-chevron{transform:rotate(180deg)}
.payroll-section-body{background:var(--surface)}
.payroll-section-tools{min-height:38px;padding:5px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}
.payroll-section-tools p{margin:0;color:var(--muted);font-size:.66rem}.payroll-rule-button{border:0;background:transparent;color:var(--blue);font:inherit;font-size:.68rem;font-weight:750;padding:8px;cursor:pointer}
.payroll-top-scroll{height:16px;overflow-x:auto;overflow-y:hidden;border-bottom:1px solid var(--line);background:var(--paper)}
.payroll-top-scroll-inner{height:1px;width:2920px}.payroll-top-scroll-inner.is-fixed{width:1640px}
.payroll-table-scroll{overflow:auto;scrollbar-color:#aeb9c5 var(--paper)}
.payroll-table{width:100%;min-width:2920px;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}
.payroll-table--fixed{min-width:1640px}
.payroll-table th,.payroll-table td{height:38px;padding:5px 7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;white-space:nowrap;font-size:.7rem}
.payroll-table tr.payroll-role-start td{border-top:7px solid var(--paper)}
.payroll-table th{background:var(--paper);color:var(--muted);font-size:.61rem;font-weight:750}
.payroll-table thead tr:first-child th{height:29px;background:color-mix(in srgb,var(--line) 64%,var(--surface));color:var(--ink);border-bottom:1px solid color-mix(in srgb,var(--line) 80%,var(--ink));font-weight:850}
.payroll-table .payroll-block-start{border-left:2px solid color-mix(in srgb,var(--line) 70%,var(--ink))}
.payroll-table thead tr:first-child .payroll-group-head{border-left:2px solid color-mix(in srgb,var(--line) 70%,var(--ink))}
.payroll-table th:first-child,.payroll-table td:first-child{position:sticky;left:0;z-index:3;width:170px;min-width:170px;background:var(--surface)}
.payroll-table th:nth-child(2),.payroll-table td:nth-child(2){position:sticky;left:170px;z-index:3;width:120px;min-width:120px;background:var(--surface);box-shadow:2px 0 0 var(--line)}
.payroll-table thead th:first-child,.payroll-table thead th:nth-child(2){z-index:5;background:var(--paper)}
.payroll-name{font-weight:800;color:var(--ink)}.payroll-role{color:var(--muted)}
.payroll-input{width:68px;min-height:29px;padding:4px 6px;border:1px solid #9eb9d0;border-radius:6px;background:color-mix(in srgb,var(--blue-soft) 45%,var(--surface));text-align:center;font:inherit;font-size:.7rem;font-weight:750;font-variant-numeric:tabular-nums}
.payroll-input:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 14%,transparent);background:var(--surface)}
.payroll-input:disabled{border-color:transparent;background:transparent;color:var(--ink);opacity:1}
.payroll-input.is-missing{border-color:var(--red);background:color-mix(in srgb,var(--red) 8%,var(--surface))}
.payroll-input.is-invalid{border-color:var(--red);background:color-mix(in srgb,var(--red) 8%,var(--surface));color:var(--red)}
.payroll-auto{background:color-mix(in srgb,var(--paper) 55%,var(--surface));color:var(--ink);font-weight:700}
.payroll-due{background:var(--paper);font-weight:850;color:var(--ink)}
.payroll-section-total{min-height:50px;padding:7px 16px;display:flex;align-items:center;justify-content:flex-end;gap:18px;overflow-x:auto;background:var(--paper);border-top:1px solid var(--line);white-space:nowrap}
.payroll-section-total>strong{margin-right:auto}.payroll-section-total span{display:grid;gap:2px;color:var(--muted);font-size:.58rem}.payroll-section-total b{color:var(--ink);font-size:.7rem}.payroll-section-total .is-success{color:var(--green)}
.payroll-mobile-tabs,.payroll-mobile-list{display:none}
.payroll-dialog{padding:0;border:0;border-radius:18px;width:min(780px,94vw);max-height:92vh;box-shadow:0 30px 90px rgba(0,0,0,.3)}
.payroll-dialog::backdrop,.payroll-print-dialog::backdrop{background:rgba(10,20,34,.62)}
.payroll-rules{padding:0 28px 20px;max-height:62vh;overflow:auto}
.payroll-rule-flow{padding:14px 0;border-bottom:1px solid var(--line)}.payroll-rule-flow code{display:block;padding:9px 11px;border-left:3px solid var(--blue);background:var(--paper);color:var(--ink);font-size:.72rem;font-weight:800;white-space:normal}
.payroll-rule-flow code+code{margin-top:7px;border-left-color:var(--gold)}
.payroll-rule-item{display:grid;grid-template-columns:118px minmax(0,1fr);gap:16px;padding:11px 0;border-bottom:1px solid var(--line)}.payroll-rule-item:last-child{border-bottom:0}
.payroll-rule-item h3{margin:1px 0 0;font-size:.73rem}.payroll-rule-item p{margin:0;color:var(--muted);font-size:.72rem;line-height:1.48}.payroll-rule-item b{color:var(--ink)}
.payroll-print-dialog{padding:0;border:0;border-radius:14px;width:min(1180px,96vw);max-height:94vh;box-shadow:0 30px 90px rgba(0,0,0,.3)}
.payroll-print-controls{padding:14px 24px;border-bottom:1px solid var(--line);background:var(--paper)}.payroll-print-controls label{display:grid;grid-template-columns:auto minmax(240px,420px);align-items:center;justify-content:start;gap:12px;color:var(--muted);font-size:.76rem;font-weight:750}.payroll-print-controls select{min-height:40px;border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:8px 10px}
.payroll-print-preview{padding:24px;overflow:auto;max-height:62vh;background:var(--line)}
.payroll-print-sheet{width:1120px;min-height:700px;margin:auto;padding:38px 42px;background:#fff;color:#111;box-shadow:0 8px 28px rgba(16,27,45,.12)}
.payroll-print-head,.payroll-print-person{display:flex;justify-content:space-between;align-items:flex-start}.payroll-print-head{padding-bottom:16px;border-bottom:2px solid #17243a}.payroll-print-head h2{margin:0 0 5px;font-size:1.25rem}.payroll-print-head p{margin:0;color:#536174;font-size:.76rem}.payroll-print-brand{font-weight:850;font-size:1rem}
.payroll-print-person{gap:20px;padding:16px 0 12px}.payroll-print-person strong{font-size:1rem}.payroll-print-person span{color:#536174;font-size:.74rem}
.payroll-print-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.payroll-print-table th,.payroll-print-table td{padding:8px 6px;border:1px solid #cfd6de;text-align:right;font-size:.64rem}.payroll-print-table th:first-child,.payroll-print-table td:first-child,.payroll-print-table th:nth-child(2),.payroll-print-table td:nth-child(2){text-align:left}.payroll-print-table th{background:#edf2f6;color:#445266}.payroll-print-table tfoot td{font-weight:850;background:#f5f7f9}
.payroll-print-signatures{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:62px}.payroll-print-signatures div{padding-top:9px;border-top:1px solid #222;font-size:.72rem}.payroll-print-signatures small{display:block;margin-top:5px;color:#697586}

@media(max-width:760px){
  #payrollSummary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .payroll-summary-card{min-height:126px;padding:14px}
  .payroll-summary-card>strong{font-size:1.3rem;overflow-wrap:anywhere}
  .payroll-summary-card small{font-size:.66rem}
  .payroll-toolbar{align-items:stretch}.payroll-toolbar-state{align-items:flex-start;flex-direction:column}.payroll-toolbar-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.payroll-toolbar-actions .button--primary{grid-column:1/-1}
  .payroll-page-note{align-items:flex-start;flex-direction:column}.payroll-page-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.payroll-key{white-space:normal}
  .payroll-section-summary{min-height:0;padding:16px 15px}.payroll-section-title h2{font-size:1rem}.payroll-section-title small{font-size:.72rem}.payroll-chevron{width:36px;height:36px}
  .payroll-section-tools{padding:9px 15px}.payroll-section-tools p{font-size:.75rem;line-height:1.45}.payroll-rule-button{min-height:40px}
  .payroll-top-scroll,.payroll-table-scroll{display:none}.payroll-mobile-tabs{display:flex;gap:5px;padding:12px 12px 0;overflow-x:auto}.payroll-mobile-tabs button{min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font:inherit;font-size:.76rem;font-weight:750;white-space:nowrap}.payroll-mobile-tabs button.is-active{border-color:var(--ink);background:var(--ink);color:#fff}
  .payroll-mobile-list{display:grid;gap:10px;padding:12px}.payroll-mobile-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}.payroll-mobile-card-head{padding:12px 14px;background:var(--paper);text-align:center}.payroll-mobile-card-head strong{display:block;font-size:.88rem}.payroll-mobile-card-head span{display:block;margin-top:3px;color:var(--muted);font-size:.72rem}
  .payroll-mobile-card.payroll-role-start{margin-top:8px}
  .payroll-mobile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-mobile-cell{min-height:66px;padding:10px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}.payroll-mobile-cell:nth-child(even){border-right:0}.payroll-mobile-cell span{display:block;margin-bottom:5px;color:var(--muted);font-size:.66rem;font-weight:750}.payroll-mobile-cell strong{font-size:.84rem}.payroll-mobile-cell .payroll-input{width:100%;min-height:44px;font-size:16px}.payroll-mobile-cell.is-key{background:var(--paper)}.payroll-mobile-cell.is-key strong{font-size:.94rem}.payroll-mobile-subhead{grid-column:1/-1;padding:7px 12px;border-top:2px solid color-mix(in srgb,var(--line) 65%,var(--ink));border-bottom:1px solid var(--line);background:var(--paper);color:var(--ink-2);font-size:.66rem;font-weight:850}
  .payroll-section-total{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;padding:14px 15px;white-space:normal}.payroll-section-total>strong{grid-column:1/-1;margin:0}.payroll-section-total span{font-size:.65rem}.payroll-section-total b{font-size:.78rem}
  .payroll-dialog{width:100%;max-width:none;height:100%;max-height:none;border-radius:0}.payroll-rules{padding:0 20px 28px;max-height:calc(100dvh - 220px)}.payroll-rule-item{grid-template-columns:1fr;gap:5px}
  .payroll-print-dialog{width:100%;height:100%;max-height:none;border-radius:0}.payroll-print-controls label{grid-template-columns:1fr}.payroll-print-preview{padding:12px;max-height:65vh}.payroll-print-sheet{transform-origin:top left;transform:scale(.72);margin-bottom:-190px}
}

@media print{
  @page{size:A4 landscape;margin:10mm}
  body>*{display:none!important}.payroll-print-dialog[open]{display:block!important;position:static;width:auto;max-width:none;max-height:none;margin:0;border:0;box-shadow:none}.payroll-print-dialog .dialog-heading,.payroll-print-dialog .payroll-print-controls,.payroll-print-dialog .dialog-actions{display:none!important}.payroll-print-preview{display:block!important;max-height:none;padding:0;background:#fff;overflow:visible}.payroll-print-sheet{width:auto;min-height:0;margin:0;padding:0;box-shadow:none;transform:none}
}
