@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');
/* System sans-serif font stack for compatibility */
:root {
    --page-width: 1140;
    --page-max-width: 1140px;
    --page-padding: 48px;
    --muted: #555;
    --input-bg: rgba(255, 255, 255, 0.9);
    --clr-txt: #1C1C1C;
}

body{
    color: #1C1C1C;
}

* {
    box-sizing: border-box
}

.font-sm{
    font-size: 14px;
}
.font-md{
    font-size: 16px;
}
.font-lg{
    font-size: 18px;
}

body {
    font-family: Inter, sans-serif;
    background: #f3f3f3;
    color: #111;
}

.form-top-panel select{
    width: 20rem
}

.page-wrapper {
    width: 100%;
    overflow-x: auto; /* horizontal scroll */
    -webkit-overflow-scrolling: touch; /* smooth scroll on iOS */
    padding-bottom: 16px; /* space for scrollbar */
}

/* Custom horizontal scrollbar */
.page-wrapper::-webkit-scrollbar {
    height: 8px; /* scrollbar height */
}

.page-wrapper::-webkit-scrollbar-track {
    background: #f0f0f0;
    border-radius: 4px;
}

.page-wrapper::-webkit-scrollbar-thumb {
    background: #6b82d9;
    border-radius: 4px;
}

.page-wrapper::-webkit-scrollbar-thumb:hover {
    background: #5a6fd1;
}

/* Paystub form page */
.page {
    width: var(--page-width) !important; /* fixed width */
    max-width: var(--page-max-width);
    margin: 0 auto;
    background: url("../../images/paystubbg/advanced7-template-watermark.png") no-repeat top left;
    background-size: 1140px auto; /* full width, auto height */
    height: 1476px; /* keep fixed height to match design */
    padding: var(--page-padding);
    border: 1px solid #ddd;
    box-shadow: 0 0 0 rgba(0, 0, 0, 0);
}

/* Mobile responsiveness */
@media (max-width: 640px) {
    .page {
        width: 1140px !important;
        max-width: 1140px !important;
        background-size: calc(1140px - 4px) 1476px;
    }
}

/* Header area */
.checkstub-header{
    display: grid;
    height: 296px;
    grid-template-columns: 608px 402px;
}
.header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 18px
}
.checkstub-header{
    input, select {
        width: 100%;

    }
}
.header-left{
    padding-left: 190px;
    display: grid;
    /*grid-template-rows: 42px;*/
}
.header-right{
    display: grid;
    padding-left: 40px;
}
.employer{
    margin: 28px 0px -20px;
}
.employee-info{
    line-height: 1;
}
.employee-details{
    margin-top: -25px;
}

.header-input{
    font-size: 18px !important;
    font-weight: 600;
}
.header-info-row{
    display:grid;
    grid-template-columns: 45% 55%;
    text-wrap: nowrap;
    font-size: 14px;
}
.meta{
    margin: 24px 0px  -10px;
    height: 68px;
    max-height: 68px;
    min-height: 68px;
}
.meta-info-row{
    display:grid;
    grid-template-columns: 34% 66%;
    text-wrap: nowrap;
    font-size: 14px;
}
input{
    border: none;
}
input, textarea, select {
    /*background: #ced7ff;*/
    border: 1px solid rgb(124, 199, 65);
    background-color: rgb(255, 249, 196);
    outline: none;
}

.company-name {
    margin: 0;
    font-size: 20px;
    width: 70%;
}

.company-addr {
    margin-top: 6px;
    resize: none;
    width: 100%;
}
.addr-textarea{
    margin-top: 6px;
    resize: none;
    width: 100%;
}
/* Meta area (right side of header) */
.paystub-row{
    min-height: 660px;
    display: grid;
    grid-template-columns: calc(580px + 58px) calc(500px - 58px);
}
.left-col{
    padding-right: 15px
}
.earnings{
    height: 215px;
    font-size: 13px;
    position: relative;
}
.table-header {
    height: 13px;
    font-size: 16px;
    display: grid;
    justify-content: end;
    grid-template-columns: 133px 112px 85px 120px 127px;
}
.table-header-item,
.deduction-table-header-item,
.total-deduction-header-item{
    text-align: left;
    font-weight: 700;
    font-size: 16px !important;
}
.table-header-item:first-child{
    font-size: 18px
}
.table-header-item:not(.ytd){
    border-bottom: 3px solid #000;
}
.ytd{
    padding-left: 20px;
    position: relative;
}
.ytd:after{
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    background: #000;
    width: 90%;
    border-bottom: 3px solid #000;
    display: block;
}
.ytd-item{
    padding-left: 20px;
}
.table-body{
    margin-top: 14px !important;
}
.table-body-row{
    font-size: 16px;
    display: grid;
    justify-content: end;
    grid-template-columns: 133px 112px 85px 120px 127px;
    position: relative;
    margin-block: 4px;
}
.table-body-item input,
.deduction-table-body-item input{
    width: 100%;
}
.remove-table-item{
    position: absolute;
    width: 24px;
    height: 24px;
    font-size: 16px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background-color: var(--muted);
    color: #fff;
}
.add-row{
    width: 24px;
    height: 24px;
    font-size: 16px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background-color: #7CC741;
    color: #fff;
}
.deduction-table-header{
    display: grid;
    grid-template-columns: 140px 175px 145px 119px;
    justify-content: end;
    font-size: 16px;
}

.deduction-table-header-item:not(.ytd){
    border-bottom: 3px solid #000;
}
.deduction-table-body{
    height: 112px;
    display: grid;
    grid-template-rows: 22px 22px 22px 22px 22px;
}
.deduction-table-body-row{
    display: grid;
    justify-content: end;
    grid-template-columns: 140px 175px 145px 119px;
    font-size: 16px;
}

.total-deductions-wrapper{
    margin-bottom: 39px;
}
.total-deduction-header{
    display: grid;
    justify-content: end;
    grid-template-columns: 140px 175px 145px 119px;
    font-size: 16px;
    height: 16px;
    margin-top: -3px !important;
}
.total-deduction-header-item:not(.ytd){
    border-bottom: 3px solid #000;
}
.total-deduction-body{
    margin-top: 15px;
        display: grid;
        grid-template-columns: 140px 175px 145px 119px;
    justify-content: end;
        font-size: 16px;
}
.gross-pay-wrapper{
    height: 63px
}
.gross-pay-row{
    display: grid;
    grid-template-columns: 158px 151px 127px;
    align-content: center;
    padding-left: 135px;
    height: 33px;
    justify-content: end;
    font-size: 11px;
}
.gross-pay-body-item:not(.pay-ytd-item){
    border-block: 3px solid #000;
    font-weight: bold;
    background: #ebebeb;
}
.gross-pay-body-item{
    font-size: 16px;
}
.pay-ytd-item{
    padding-left: 15px;
    font-size: 16px;
}
.taxable{
    padding-left: 185px !important;
    font-size: 16px !important;
}
#benefitsTable{
    margin-top: -29px;
    margin-bottom: 220px;
}
.benefits-table-header{
        display: grid ;
        grid-template-columns: 173px 128px 128px;
        font-size: 16px;
    align-items: end;
    border-bottom: 3px solid #000;
}

.benefits-table-header-item{
    font-weight: 700;
    display: flex;
    text-align: left;
    align-items: flex-end !important;
    justify-content: flex-end !important;
    font-size: 18px !important;
}

.benefits-table-body{
    display: grid;
    grid-template-columns: 173px 128px 128px;
    font-size: 16px;
}

.notes{
    padding-top: 3px
}
.notes h4{

    font-size: 18px !important;
    border-bottom: 3px solid #000;
    margin-bottom: 5px;
    font-weight: 600;
}

.note-textarea{
    width: 100%;
    resize: none;
    min-height: 10rem;
    height: auto;
    background: transparent;
}

/*Check*/

.check-wrapper{
    width: 100%;
    min-width: 1140px;
    /*padding-top: 30px;*/
}

.check-header-row{
    padding: 34px 37px 0px 29px;
    height: 177px;
    display: grid;
    grid-template-columns: 519px 454px;
    font-size: 16px;
}
.check-company-details{
    padding-left: 118px;
}

.check-company-detail{
    text-transform: uppercase;
    font-size: 18px !important;
    margin-bottom: 6px !important;
    color: var(--clr-txt);
    font-weight: 500;
}
.check-details{
    padding-left: 30px;
}
.check-detail-row{
    display: grid;
    grid-template-columns: 45% 45%;
}
.check-detail{
    font-size: 16px;
    font-weight: 500;
}
.check-detail-label{
    font-weight: 600;
}
.check-fill-wrapper{
        display: block;
        padding: 0px 0px 0px 150px;
        font-size: 16px;
        font-weight: 700;
}

.check-fill-to-details{
    display: flex
;
    -webkit-box-align: center;
    align-items: center;
}
.check-to{
    display: flex;
    -webkit-box-align: center;
    align-items: center;
    text-transform: uppercase;
    font-size: 20px !important;
    margin-left: 40px !important;
}

.check-amount-wrapper{
    height: 32px;
    display: flex
;
    -webkit-box-align: center;
    align-items: center;
}
.check-amount-alph{
    display: flex
;
    -webkit-box-align: center;
    align-items: center;
    width: 557px;
    text-align: left;
    font-size: 16px !important;
    margin-left: 52px !important;
}
.check-footer-wrapper{
    margin-top: 20px !important;
}
.check-footer-row{
    display: flex
;
    -webkit-box-align: center;
    align-items: center;
    font-size: 13px !important;
    gap: 6px !important;
    margin-bottom: 4px !important;
}
/* Footer */
.footer {
    margin-top: 22px;
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    align-items: center
}

/* Print rules for single page */
@page {
    size: 8.5in 11in;
    margin: 0.5in
}

@media print {
    body {
        background: #fff;
        margin: 0
    }

    .page {
        border: none;
        box-shadow: none
    }

    .meta-row input, table input {
        background: #fff
    }

    /* inputs printable */
    a[href]:after {
        content: ""
    }
}


.summary-table{
    width: 100%;
}
.summary-row{
    border-top: solid 2px #000;
}
.net-row{
    border-bottom: solid 2px #000;
}
.generate-btn{
    background: #00adef;
    padding: .5rem 1rem;
    color: #fff;
    border-radius: 4px;
}
