.earnings-page{max-width:1200px;margin:0 auto;padding:28px}.earnings-page-head,.earnings-cutoff-bar,.statement-head,.earnings-total{display:flex;align-items:center;justify-content:space-between;gap:20px}.earnings-head-actions{display:flex;gap:10px}.earnings-page-head{margin-bottom:20px}.earnings-page-head h1{margin:4px 0 6px;font-size:30px}.earnings-page-head p{margin:0;color:#667085}.earnings-cutoff-bar{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:14px 18px;margin-bottom:18px}.cutoff-title{text-align:center}.cutoff-title span,.statement-head span,.earnings-kpis span,.earnings-total span,.section-label-row span{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;color:#667085}.cutoff-title b{display:block;margin-top:3px}.earnings-panel{background:#fff;border:1px solid #e5e7eb;border-radius:18px;box-shadow:0 8px 28px rgba(16,24,40,.06);padding:22px;margin-bottom:20px}.statement-head{padding-bottom:16px;border-bottom:1px solid #eef0f3}.statement-head h2{margin:4px 0 2px}.statement-head small{color:#667085}.statement-status{padding:8px 12px;border-radius:999px;font-size:12px;font-weight:800;background:#f2f4f7}.statement-status.confirmed{background:#e9f8ef;color:#16704a}.statement-status.needs-correction{background:#fff4e5;color:#a15c00}.earnings-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.earnings-kpis>div{padding:16px;border:1px solid #e8ebef;border-radius:12px}.earnings-kpis b{display:block;font-size:20px;margin-top:6px}.earnings-kpis>div:last-child{background:#eef9f0;border-color:#a8d5b0}.statement-note{background:#f8fafc;border-radius:10px;padding:11px 13px;font-size:13px;margin-bottom:16px;line-height:1.55}.section-label-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:10px}.section-label-row h3{margin:3px 0 0}.cutoff-calendar-wrap{border:1px solid #e4e7ec;border-radius:14px;padding:14px;margin-top:4px}.cutoff-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.cutoff-day{min-height:108px;border:1px solid #e8ebef;border-radius:10px;padding:8px;background:#fff}.cutoff-day-head{display:flex;justify-content:space-between;gap:5px;font-size:11px;margin-bottom:7px}.cutoff-day-head span{color:#667085}.cutoff-class{display:block;width:100%;border:1px solid #dfe4ea;border-radius:8px;background:#f8fafc;padding:7px;text-align:left;margin-bottom:5px;font:inherit;cursor:pointer}.cutoff-class:hover{background:#f1f5f9}.cutoff-class b,.cutoff-class span,.cutoff-class small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cutoff-class span{font-size:12px;font-weight:700;margin-top:2px}.cutoff-class small{font-size:10px;color:#667085;margin-top:2px}.cutoff-empty{color:#98a2b3;font-size:11px;padding:9px 3px}.student-summary{border:1px solid #e4e7ec;border-radius:14px;padding:14px;margin-top:14px}.student-summary-table{border:1px solid #e4e7ec;border-radius:10px;overflow:hidden}.student-summary-head,.student-summary-row{display:grid;grid-template-columns:1.8fr .8fr 1fr 1fr;align-items:center}.student-summary-head{background:#f7f8fa;padding:10px 12px;font-size:11px;font-weight:800;text-transform:uppercase;color:#667085}.student-summary-row{padding:11px 12px;border-top:1px solid #eef0f3;font-size:13px}.statement-detail-link{display:flex;justify-content:space-between;gap:10px;margin-top:10px;font-size:12px;color:#667085}.earnings-total{margin-top:16px;border:1.5px solid #73b97e;background:#eef9f0;border-radius:12px;padding:15px 17px}.earnings-total b{display:block;font-size:22px;margin-top:3px}.earnings-total strong{font-size:25px;color:#155d31}.review-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.review-confirmed{margin-top:16px;padding:13px 15px;border-radius:10px;background:#e9f8ef;color:#17683f;font-weight:700}.empty-earnings{text-align:center;padding:70px 20px}.empty-icon{font-size:34px;font-weight:800}.empty-earnings h2{margin:10px 0 6px}.empty-earnings p{color:#667085}.earnings-loading-screen{text-align:center;padding:80px}.earnings-error{max-width:700px;margin:50px auto;text-align:center}.earnings-error-inline{padding:14px;background:#fff4f2;color:#b42318;border-radius:10px}.earnings-detail-modal{position:fixed;inset:0;background:rgba(15,23,42,.5);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}.earnings-detail-card{width:min(720px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.2);padding:22px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:18px}.detail-grid>div{border:1px solid #e5e7eb;border-radius:10px;padding:12px}.detail-grid span,.detail-note span{display:block;font-size:11px;color:#667085;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.detail-grid b{display:block;margin-top:5px}.detail-note{margin-top:12px;padding:14px;border-radius:10px;background:#f8fafc}.detail-note p{margin:6px 0 0;color:#475467}.payroll-review-page{padding:28px}.payroll-review-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.payroll-review-hero h1{margin:4px 0}.payroll-review-hero p{margin:0;color:#667085}.payroll-period-tools{display:flex;align-items:end;gap:10px}.payroll-period-tools label{font-size:12px;font-weight:700;color:#475467}.payroll-period-tools input{display:block;margin-top:5px}.review-filter{display:flex;gap:10px;margin:16px 0}.review-table{overflow:auto}.review-table .admin-table-head,.review-table .admin-table-row{grid-template-columns:1.4fr 1.5fr .8fr .9fr 1fr 1fr}.review-table .admin-table-row{min-width:850px}.review-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#f2f4f7;font-size:11px;font-weight:800}.review-badge.ok{background:#e9f8ef;color:#17683f}.review-badge.warn{background:#fff4e5;color:#a15c00}.review-statement-card{width:min(1080px,100%)}.review-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.review-summary>div{padding:14px;border:1px solid #e5e7eb;border-radius:11px}.review-summary b{display:block;font-size:20px;margin-top:4px}.review-actions-admin{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.review-lock-note{padding:12px 14px;border-radius:10px;background:#eef2ff;color:#3730a3;margin-top:12px;font-size:13px}@media(max-width:900px){.cutoff-calendar{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:760px){.earnings-page,.payroll-review-page{padding:16px}.earnings-kpis,.review-summary{grid-template-columns:repeat(2,1fr)}.earnings-page-head,.earnings-cutoff-bar,.statement-head,.earnings-total,.payroll-review-hero{align-items:stretch;flex-direction:column}.earnings-head-actions{flex-wrap:wrap}.earnings-head-actions button{flex:1}.cutoff-title{text-align:left}.cutoff-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:1fr}.payroll-period-tools{flex-wrap:wrap}.review-actions,.review-actions-admin{justify-content:stretch}.review-actions button,.review-actions-admin button{flex:1}.student-summary-head,.student-summary-row{grid-template-columns:1.5fr .7fr .8fr .9fr}.statement-detail-link{flex-direction:column}}@media print{body{background:#fff!important}.sidebar,.earnings-page-head,.earnings-cutoff-bar,.review-actions,.earnings-detail-modal{display:none!important}.earnings-page{max-width:none;padding:0}.earnings-panel{box-shadow:none;border:0;padding:0}.cutoff-calendar-wrap,.student-summary{break-inside:avoid}.cutoff-day{min-height:80px}.earnings-total{border:1px solid #222!important;background:#fff!important}.earnings-total strong{color:#111!important}}
