.payroll-finance-panel{margin-bottom:16px}.payroll-finance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 18px}.payroll-finance-summary>div{border:1px solid var(--border,#e5e7eb);border-radius:12px;padding:12px;background:#fff}.payroll-finance-summary span{display:block;font-size:12px;color:#64748b}.payroll-finance-summary strong{display:block;margin-top:5px;font-size:20px}.payroll-overtime-review h4{margin:0 0 4px}.payroll-overtime-class-list{display:grid;gap:8px;margin-top:10px}.payroll-ot-class-row{display:grid;grid-template-columns:minmax(150px,1.2fr) 110px 110px minmax(160px,1fr) auto;gap:8px;align-items:center;padding:10px;border:1px solid var(--border,#e5e7eb);border-radius:10px;background:#fff}.payroll-ot-class-row select,.payroll-ot-class-row input{width:100%;min-height:36px}.payroll-salary-detail{font-size:12px;color:#64748b;line-height:1.45}.payroll-money{font-weight:700;white-space:nowrap}.payroll-warning{color:#b45309;font-size:12px}@media(max-width:760px){.payroll-finance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-ot-class-row{grid-template-columns:1fr 1fr}.payroll-ot-class-row .payroll-ot-person{grid-column:1/-1}.payroll-ot-class-row .payroll-ot-note{grid-column:1/-1}}

/* 4087 absence confirmation + payroll exports */
.payroll-slip-btn{margin-top:6px}.payroll-absence-list{display:grid;gap:6px;margin-top:6px;min-width:230px}.payroll-absence-item{padding:6px;border:1px solid var(--border,#e5e7eb);border-radius:8px;background:#fff;font-size:12px}.payroll-absence-item>span{margin-right:6px}.payroll-absence-actions{display:flex;gap:4px;margin-top:5px}.payroll-absence-actions .btn{padding:4px 7px;font-size:11px}@media(max-width:760px){.payroll-absence-actions{flex-wrap:wrap}}
