:host { display: block; } .payroll-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; } .payroll-header h1 { letter-spacing: -.025em; } .payroll-header .header-actions { display: flex; align-items: center; gap: 10px; } .ui-button { min-height: 44px; padding: 0 16px; border-radius: 12px; font-size: 13px; font-weight: 750; } .refresh-action { border-color: #d6e2de; color: #38534a; background: #fff; } .export-action { border-color: #b9dace; color: #176c55; background: #edf8f4; } .refresh-action:hover, .export-action:hover { border-color: #86b7a6; color: #125e49; background: #f4faf7; } .payroll-tabs { display: inline-flex; gap: 4px; margin: 0 0 18px; padding: 5px; border: 1px solid #dfe8e4; border-radius: 14px; background: #fff; box-shadow: 0 6px 20px rgba(29, 62, 51, .04); } .payroll-tabs button { display: inline-flex; min-height: 40px; align-items: center; justify-content: center; gap: 7px; padding: 0 16px; border: 0; border-radius: 10px; color: #667972; background: transparent; font-weight: 750; } .payroll-tabs button:hover { color: #176c55; background: #f1f7f4; } .payroll-tabs button.active { border: 0; color: #fff; background: #176c55; box-shadow: 0 6px 14px rgba(23, 108, 85, .2); } .payroll-toolbar { display: grid; grid-template-columns: 190px 220px minmax(260px, 1fr) auto auto; align-items: end; gap: 14px; padding: 18px; border-radius: 18px; } .payroll-toolbar label { min-width: 0; } .payroll-toolbar input, .payroll-toolbar select { height: 46px; border-radius: 12px; } .query-action { min-width: 96px; height: 46px; box-shadow: 0 8px 18px rgba(23, 108, 85, .16); } .source-chip { display: inline-flex; height: 46px; align-items: center; gap: 8px; padding: 0 16px; border: 1px solid #b9dfd2; border-radius: 14px; color: #167459; background: #edf9f5; font-size: 12px; font-weight: 750; white-space: nowrap; } .source-chip i { width: 8px; height: 8px; border-radius: 50%; background: #20a374; box-shadow: 0 0 0 4px rgba(32, 163, 116, .12); } .source-chip.cache { border-color: #f1c5c5; color: #b42318; background: #fff2f2; } .source-chip.cache i { background: #d92d20; box-shadow: 0 0 0 4px rgba(217, 45, 32, .1); } .payroll-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; margin: 18px 0; } .payroll-metrics article { position: relative; min-height: 138px; overflow: hidden; padding: 22px; border: 1px solid #dce7e3; border-radius: 18px; background: #fff; box-shadow: 0 10px 24px rgba(22, 52, 43, .05); } .payroll-metrics article::before { position: absolute; inset: 0 0 auto; height: 3px; background: #2f8c70; content: ''; } .payroll-metrics article:nth-child(2)::before, .payroll-metrics article:nth-child(3)::before { background: #4f80b5; } .payroll-metrics article:nth-child(4)::before, .payroll-metrics article:nth-child(5)::before { background: #d3902b; } .payroll-metrics .exception-card::before { background: #c85a5a; } .payroll-metrics span { display: block; color: #667c75; font-weight: 700; } .payroll-metrics strong { display: block; margin: 12px 0 6px; color: #16352d; font-size: clamp(24px, 2vw, 30px); line-height: 1.1; } .payroll-metrics small { color: #84958f; line-height: 1.45; } .payroll-metrics .exception-card strong { color: #b42318; } .content-card { border-radius: 18px; } .content-card > header { min-height: 72px; padding: 17px 20px; background: linear-gradient(180deg, #fff, #fbfdfc); } .content-card > header > div { display: flex; flex-direction: column; gap: 5px; } .content-card > header strong { color: #20352e; font-size: 16px; } .content-card > header span { color: #83918c; font-size: 12px; } .create-payroll-action { min-width: 190px; } .data-table td small { display: block; margin-top: 4px; color: #84958f; } .payroll-summary-table th, .payroll-summary-table td { white-space: nowrap; } .payroll-summary-table th { position: sticky; z-index: 1; top: 0; height: 44px; color: #64756f; background: #f5f9f7; font-weight: 750; letter-spacing: .02em; } .payroll-summary-table tbody tr:hover { background: #f7fbf9; } .payroll-summary-table td:first-child strong { color: #243a33; font-size: 13px; } .view-action { width: 36px; height: 36px; border-radius: 11px; color: #176c55; background: #f2f9f6; } .type4-note { margin: 0; padding: 14px 20px; border-top: 1px solid #e6eeeb; color: #667c75; background: #fafcfb; } .payroll-drawer { width: min(1180px, 92vw); } .payroll-drawer .table-scroll { max-height: 54vh; border: 1px solid #e2e9e6; border-radius: 14px; } .payroll-drawer footer { gap: 10px; } .ui-button.compact { min-height: 30px; padding: 0 9px; border-radius: 8px; font-size: 11px; } .money { color: #167459; font-weight: 800; } .standards-summary { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 14px; } .standards-summary article { padding:18px 20px;border:1px solid #dce7e3;border-radius:16px;background:#fff; } .standards-summary article.warn { border-color:#efc78e;background:#fff9ef; } .standards-summary span,.standards-summary strong { display:block; } .standards-summary span { color:#71837d;font-size:12px;font-weight:700; } .standards-summary strong { margin-top:8px;color:#173d32;font-size:24px; } .standards-nav { display:flex;gap:8px;margin-bottom:14px; } .standards-nav button { min-height:42px;padding:0 16px;border:1px solid #d7e3df;border-radius:12px;color:#50665e;background:#fff;font-weight:750; } .standards-nav button.active { border-color:#176c55;color:#fff;background:#176c55; } .standards-nav button span { margin-left:5px;padding:2px 6px;border-radius:999px;color:#9a5a00;background:#fff2d9;font-size:11px; } .standard-editor .form-grid { grid-template-columns:repeat(5,minmax(130px,1fr)) minmax(220px,1.4fr) auto;align-items:end; } .credit-preview { min-height:64px;padding:10px 13px;border:1px solid #d9e5e1;border-radius:12px;background:#f7fbf9; } .credit-preview span,.credit-preview strong { display:block; } .credit-preview span { color:#71837d;font-size:11px; } .credit-preview strong { margin-top:4px;color:#23493e;font-size:12px; } .standards-table td,.mapping-table td { white-space:nowrap; } .delivery-badge { display:inline-flex;padding:4px 9px;border-radius:999px;color:#156c54;background:#e9f8f2;font-size:12px;font-weight:750; } .delivery-badge.offline { color:#855411;background:#fff2d9; } .mapping-search { width:min(340px,100%); } .mapping-search input,.mapping-table select { min-height:42px;border:1px solid #d7e3df;border-radius:11px;background:#fff; } .category-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px; } .category-grid article { padding:18px;border:1px solid #dce7e3;border-radius:14px;background:#fbfdfc; } .category-grid span,.category-grid strong,.category-grid small { display:block; } .category-grid span { color:#8a9a94;font-size:11px; } .category-grid strong { margin:5px 0;color:#1d4136; } .category-grid input { width:100%;margin:8px 0;border:1px solid #d5e2de;border-radius:10px;padding:9px 10px;background:#fff;color:#193a31;font:inherit; } .category-actions { display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 8px; } .muted-text { color:#98a7a2; } .reconciliation-card .header-actions { display:flex;align-items:center;gap:8px; } .reconciliation-summary { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:18px; } .reconciliation-summary article { padding:16px 18px;border:1px solid #dce7e3;border-radius:14px;background:#f8fbfa; } .reconciliation-summary span,.reconciliation-summary strong { display:block; } .reconciliation-summary span { color:#71837d;font-size:12px;font-weight:700; } .reconciliation-summary strong { margin-top:7px;color:#176c55;font-size:24px; } @media (max-width: 1400px) { .payroll-metrics { grid-template-columns: repeat(3, 1fr); } .payroll-toolbar { grid-template-columns: 190px 220px minmax(240px, 1fr) auto; } .source-chip { grid-column: 1 / -1; justify-self: start; } } @media (max-width: 900px) { .standards-summary,.category-grid,.reconciliation-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } .standard-editor .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .payroll-header { align-items: stretch; flex-direction: column; } .payroll-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); } .payroll-toolbar .search-field { grid-column: 1 / -1; } .query-action { justify-self: start; } } @media (max-width: 700px) { .standards-summary,.category-grid,.standard-editor .form-grid { grid-template-columns:1fr; } .standards-nav { overflow-x:auto; } .payroll-header .header-actions { display: grid; grid-template-columns: 1fr 1fr; } .payroll-tabs { display: grid; grid-template-columns: repeat(3, max-content); width: 100%; overflow-x: auto; } .payroll-toolbar { grid-template-columns: 1fr; padding: 15px; } .payroll-toolbar .search-field, .source-chip { grid-column: auto; } .query-action, .source-chip { width: 100%; justify-self: stretch; justify-content: center; } .payroll-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .payroll-metrics article { min-height: 118px; padding: 16px; border-radius: 16px; } .payroll-metrics strong { font-size: 25px; } .content-card > header { align-items: stretch; flex-direction: column; } .create-payroll-action { width: 100%; } .payroll-drawer { width: 100vw; } .payroll-drawer .panel .form-grid { grid-template-columns: 1fr; } .payroll-drawer footer { display: grid; grid-template-columns: 1fr; } } @media (max-width: 420px) { .payroll-header .header-actions, .payroll-metrics { grid-template-columns: 1fr; } }