.paystub-card{margin-top:24px;padding:24px;border:1px solid rgba(148,163,184,.16);border-radius:20px;background:rgba(9,18,32,.82);box-shadow:0 18px 50px rgba(0,0,0,.18)}
.paystub-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.paystub-card-header h3{margin:0 0 6px;font-size:1.15rem}.paystub-card-header p{margin:0;color:#91a0b8}.paystub-summary{display:flex;gap:10px;flex-wrap:wrap}.paystub-summary span{padding:7px 10px;border:1px solid rgba(148,163,184,.14);border-radius:999px;background:rgba(15,29,48,.9);font-size:.78rem;color:#b8c5d8}.paystub-table-wrap{overflow:auto}.paystub-table{width:100%;border-collapse:collapse;min-width:760px}.paystub-table th,.paystub-table td{padding:14px 12px;border-bottom:1px solid rgba(148,163,184,.1);text-align:left}.paystub-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#7f91aa}.paystub-status{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:999px;font-size:.76rem;font-weight:700}.paystub-status.ready{color:#77e8b2;background:rgba(34,197,94,.12)}.paystub-status.missing{color:#a8b6ca;background:rgba(148,163,184,.1)}.paystub-actions{display:flex;gap:8px;flex-wrap:wrap}.paystub-btn{border:1px solid rgba(65,190,255,.22);border-radius:10px;padding:8px 11px;background:rgba(12,30,51,.8);color:#dcecff;cursor:pointer;font:inherit;font-size:.8rem}.paystub-btn.primary{background:#0daeea;color:#04131d;border-color:#0daeea;font-weight:800}.paystub-btn.danger{color:#ff9eaa;border-color:rgba(248,113,113,.25)}.paystub-btn:disabled{opacity:.5;cursor:not-allowed}.paystub-empty{padding:28px;text-align:center;color:#91a0b8}
.paystub-modal[hidden]{display:none}.paystub-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px}.paystub-modal-backdrop{position:absolute;inset:0;background:rgba(1,6,14,.76);backdrop-filter:blur(8px)}.paystub-modal-panel{position:relative;width:min(520px,100%);border:1px solid rgba(91,197,255,.2);border-radius:22px;background:#0a1422;box-shadow:0 30px 90px rgba(0,0,0,.55);padding:24px}.paystub-modal-panel h3{margin:0 0 6px}.paystub-modal-panel p{margin:0 0 20px;color:#91a0b8}.paystub-dropzone{display:block;padding:28px;border:1px dashed rgba(77,195,255,.4);border-radius:16px;text-align:center;background:rgba(7,25,44,.7);cursor:pointer}.paystub-dropzone input{display:none}.paystub-dropzone strong{display:block;margin-bottom:6px}.paystub-dropzone span{color:#91a0b8;font-size:.86rem}.paystub-file-name{margin-top:12px;padding:10px 12px;border-radius:10px;background:rgba(148,163,184,.08);color:#c8d7e9;word-break:break-word}.paystub-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
@media(max-width:760px){.paystub-card{padding:18px}.paystub-card-header{display:block}.paystub-summary{margin-top:12px}}

.paystub-bulk-panel{width:min(680px,100%)}.paystub-bulk-status{margin:14px 0 10px;color:#a9bad0;font-size:.86rem}.paystub-bulk-preview{max-height:280px;overflow:auto;display:grid;gap:8px}.paystub-bulk-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border-radius:11px;background:rgba(148,163,184,.07);border:1px solid rgba(148,163,184,.1);font-size:.82rem}.paystub-bulk-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paystub-bulk-row strong{flex:0 0 auto}.paystub-bulk-row.matched strong{color:#72e3ad}.paystub-bulk-row.unmatched strong{color:#ffb3be}@media(max-width:650px){.paystub-bulk-row{display:block}.paystub-bulk-row strong{display:block;margin-top:5px}}


/* Sprint 4.3: explicit payroll checklist */
.paystub-progress{margin:0 0 18px;padding:16px 18px;border:1px solid rgba(91,197,255,.14);border-radius:16px;background:rgba(7,22,39,.64)}
.paystub-progress-copy{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:12px}.paystub-progress-copy>div{display:grid;gap:3px}.paystub-progress-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:#7f91aa}.paystub-progress-copy strong{color:#dcecff}.paystub-progress-track{height:8px;overflow:hidden;border-radius:999px;background:rgba(148,163,184,.12)}.paystub-progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0daeea,#4bd2ff);transition:width .25s ease}.paystub-progress.complete .paystub-progress-track span{background:#35d28b}.paystub-completion-message{display:flex;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;border:1px solid rgba(53,210,139,.2);border-radius:12px;background:rgba(53,210,139,.08)}.paystub-completion-message[hidden]{display:none}.paystub-completion-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#35d28b;color:#04130c;font-weight:900}.paystub-completion-message div{display:grid;gap:2px}.paystub-completion-message small{color:#9bbbab}
.paystub-employee-cell{display:flex;align-items:center;gap:12px}.paystub-check{display:grid;place-items:center;flex:0 0 auto;width:24px;height:24px;border:1px solid rgba(148,163,184,.28);border-radius:7px;background:rgba(148,163,184,.06);color:#03120b;font-size:.76rem;font-weight:900}.paystub-check.checked{border-color:#35d28b;background:#35d28b}.paystub-row-missing{background:rgba(13,174,234,.025)}.paystub-row-complete td{opacity:.9}.paystub-confirmation-card{display:grid;gap:4px;margin:14px 0 18px;padding:15px 16px;border:1px solid rgba(77,195,255,.22);border-radius:14px;background:rgba(7,25,44,.72)}.paystub-confirmation-card span{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;color:#7f91aa}.paystub-confirmation-card strong{font-size:1.05rem;color:#e7f5ff}.paystub-confirmation-card small{color:#9eb0c6}
@media(max-width:760px){.paystub-progress-copy{align-items:flex-start;flex-direction:column}.paystub-progress-copy>strong{font-size:.86rem}}
