/* KTP Workforce shared UI foundation. Business pages opt in through ktp-* classes. */
.ktp-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.ktp-page-heading{min-width:0}.ktp-page-title{font-size:1.75rem;line-height:1.25;font-weight:700;margin:0}.ktp-page-description{color:#6c757d;margin-top:.25rem}.ktp-page-context{color:#6c757d;font-size:.875rem;margin-bottom:.25rem}
.ktp-page-actions,.ktp-form-actions,.ktp-filter-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.ktp-filter-bar{background:#eef4ff;border-radius:.75rem;padding:1rem;margin-bottom:1rem}.ktp-filter-bar .form-label{font-weight:600}
.ktp-section{margin-bottom:1rem}.ktp-section-title{font-size:1.125rem;font-weight:700;margin-bottom:1rem}
.ktp-business-table{margin-bottom:0}.ktp-business-table th{white-space:nowrap}.ktp-business-table .ktp-cell-date,.ktp-business-table .ktp-cell-money{white-space:nowrap}.ktp-business-table .ktp-cell-money{text-align:right}.ktp-business-table .ktp-cell-actions{text-align:right;white-space:nowrap}
.ktp-status-badge{font-size:.8rem;font-weight:600}.ktp-empty-cell{padding:0!important}.ktp-empty-state{text-align:center;color:#6c757d;padding:2rem 1rem}.ktp-empty-state-title{color:#495057;font-weight:600}.ktp-empty-state-description{font-size:.875rem;margin-top:.25rem}
.ktp-detail-meta{margin-bottom:0}.ktp-detail-meta dt{color:#6c757d;font-weight:500}.ktp-detail-meta dd{font-weight:600}.ktp-history-table td,.ktp-history-table th{vertical-align:middle}
.ktp-form-section-title{font-size:1.125rem;font-weight:700;margin-bottom:1rem}.ktp-required{color:#dc3545}.ktp-validation-summary ul{padding-left:1.25rem}
.ktp-pagination{margin-top:1rem;margin-bottom:0}
.ktp-workflow-status{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.ktp-summary-strip{background:#fff;border-radius:.75rem;padding:1rem;box-shadow:0 4px 16px rgba(0,0,0,.06)}
.ktp-table-actions{display:flex;gap:.375rem;align-items:center;flex-wrap:wrap}.ktp-readonly-section{background:#f8f9fa}.ktp-correction-notice{border-left:4px solid #ffc107}
.ktp-timesheet-table th{position:sticky;top:0;z-index:1;background:#f8f9fa}.ktp-timesheet-table input,.ktp-timesheet-table select{min-width:6rem}.ktp-total-row{font-weight:700;background:#eef4ff}
.ktp-payroll-step{display:flex;flex-direction:column;border-top:4px solid #dee2e6;border-radius:.5rem;background:#fff;padding:.75rem 1rem;height:100%}.ktp-payroll-step.complete{border-color:#198754}.ktp-payroll-step.current{border-color:#0d6efd;background:#eef6ff}.ktp-payroll-step.upcoming{color:#6c757d}
.ktp-financial-table th,.ktp-financial-table td{vertical-align:middle}.ktp-financial-table .ktp-formula{color:#6c757d;font-size:.875rem;white-space:normal;min-width:12rem}.ktp-excluded-row{background:#f8f9fa;color:#6c757d}.ktp-calculation-error{color:#b02a37;font-weight:600;max-width:20rem;white-space:normal}
@media (max-width:575.98px){.ktp-page-header{display:block}.ktp-page-actions{margin-top:.75rem}.ktp-page-actions .btn,.ktp-filter-actions .btn{flex:1 1 auto}.ktp-page-title{font-size:1.5rem}.ktp-filter-bar{padding:.875rem}.ktp-form-actions .btn{flex:1 1 auto}}
