﻿
.builder-controls { padding: 20px 0; max-width: 1066px; margin: 0 auto; }
.builder-wrapper { max-width: 1140px/*1066px*/; margin: 0 auto; }

.inv-preview { display: flex; flex-direction: column; flex-grow: 1; }
.inv-builder {
    background-color: #fff;
    position: relative;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    font-size: 14px;
}

    .inv-builder .inv {
        padding: 0;
        display: flex;
        flex-direction: column;
        flex-grow: 1;
    }

    .inv-builder .border-wrapper {
        padding: 0;
        height: 100%;
        display: flex;
        flex-direction: column;
        flex-grow: 1;
    }

    .inv-builder .border-border {
        height: 100%;
        display: flex;
        flex-direction: column;
        flex-grow: 1;
    }

    .inv-builder .header {
        display: flex;
        padding: 50px 50px 0 50px;
    }

    .inv-builder .header .left-side { width: 50%; padding-right: 10px; }
    .inv-builder .header .right-side { width: 50%; text-align: right; }

    .inv-builder .invoice-top table { width: 100%; }

    .inv-builder .invoice-top { display: flex; padding-bottom: 80px; flex-wrap: wrap; }
    .inv-builder .invoice-top .full {  }
    .inv-builder .invoice-top .left-side { width: 33.3%; padding-right: 20px; }
    .inv-builder .invoice-top .center-side { width: 33.3%; padding-right: 20px; }
    .inv-builder .invoice-top .right-side { width: 33.3%; }
    .inv-builder .invoice-text { font-size: 36px; text-transform: uppercase; font-weight: bold; line-height: normal; margin-bottom: 30px; }

    .inv-builder .input-label {  border: 1px solid transparent; transition: all 0.3s; }
    .inv-builder .input-label:hover { background: #eee; border-color: #555; }

    .inv-builder .section-header { font-weight: bold; }
    .inv-builder .left-side .section-header { width: 100px; }

    .inv-builder .input-field {  border: 1px solid #ddd; margin-bottom: 5px; transition: all 0.3s; }
    .inv-builder .input-field.readonly { border-color: transparent; }
    .inv-builder input.input-field:hover { background: #f5f5f5; border-color: #aaa; }
    .inv-builder:hover .input-field {  }

    .inv-builder .bold { font-weight: bold; }
    .inv-builder .invoice-text { font-size: 2rem !important; text-transform: uppercase; font-weight: bold; }


    .inv-builder .invoice-issue-date input.issue-date, .inv-builder .invoice-due-date input.due-date {  border-color: transparent; width: 120px; }
    .inv-builder .invoice-issue-date input.issue-date:hover,.inv-builder .invoice-issue-date input.issue-date:focus
    ,.inv-builder .invoice-due-date input.due-date:hover,.inv-builder .invoice-due-date input.due-date:focus {  border-color: #3fc380; }
    .inv-builder .invoice-issue-date div.issue-date, .inv-builder .invoice-due-date div.due-date { display: inline-block; padding-left: 4px; }

    .inv-builder .payment {text-align: center; }
    .inv-builder .payment a { max-width: 150px; width: 100%; background-color: #5cb85c; border-color: #398439; }

    .inv-builder .terms { padding: 20px 0; text-align: left; }
    .inv-builder textarea.client-notes { width: 100%; min-height: 70px; resize: none; border: 1px solid #ccc; padding: 10px; }
    .inv-builder div.client-notes {  }

    .inv-builder textarea, .inv-builder .input[type="text"] { border: 1px solid #bac9d4; width: 100%; height: 35px; font-size: inherit !important;  }

    

    .inv-builder .body {
        padding: 50px 50px 20px 50px;
        flex: 1 1 auto;
        display: flex;
        flex-direction: column;
    }
    .inv-builder .body .items { flex: 1 1 auto; }
    .inv-builder .body .terms { flex: 0 0 auto; }

    .inv-builder .inv-items {
        margin-bottom: 30px;
    }

        .inv-builder .inv-items thead th {
            padding: 5px;
            border-bottom: 1px solid #ddd;
            font-weight: bold;
            color: #333;
        }

        .inv-builder .inv-items tbody td {
            padding: 5px 5px 10px 5px;
            border-bottom: 1px solid #e5e5e5;
        }

        .inv-builder .inv-items tfoot tr {
            border: none;
        }

        .inv-builder .inv-items tfoot td {
            padding: 5px 5px 10px 5px;
            color: #333;
        }

    .inv-builder .border-border {
        background-color: #fff;
    }


    .inv-builder .border-wrapper {
        background-color: #fff !important;
    }

    .inv-builder .header .company {
        background-color: transparent !important;
    }


    .inv-builder .footer-total td {
        /*border-top: 1px solid #ddd;*/
    }

    .inv-builder .footer-payments-header td {
        /*border-top: 1px solid #ddd;*/
        text-align: right;
    }

    .inv-builder .footer-due td {
        /*border-top: 3px double #ddd;*/
    }

    .inv-builder .footer-separator td { padding: 0 0 !important; }
    .inv-builder .footer-separator div { border-top-width: 1px; border-top-style: solid; border-color: #ddd; margin-top: 5px; margin-bottom: 5px;}
    .inv-builder .footer-separator.double div { border-top-style: double; border-top-width: 3px; }

    .inv-builder .footer {
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        padding: 0 50px 20px 50px;
    }

        .inv-builder .footer .business {
            text-align: center;
            color: #aaa;
            font-size: 11px;
            letter-spacing: .5px;
        }

            .inv-builder .footer .business li {
                display: inline-block;
            }

                .inv-builder .footer .business li:empty {
                    display: none;
                }

                .inv-builder .footer .business li::after {
                    content: '·';
                    padding: 0 8px;
                    font-size: 14px;
                    color: #888;
                }

                .inv-builder .footer .business li:last-child::after {
                    content: none;
                }

    .inv-builder .invoice-totals {
        width: 50%;
        margin-left: 50%;
        margin-top: 20px;
    }

    .inv-builder .product-lines { width: 100%; }
    .inv-builder .product-lines thead td {
        font-weight: bold;
        border-bottom: 3px double #aaa;
    }

    .inv-builder .product-lines td {
        /*padding: 10px 5px; vertical-align: middle;*/ position: relative;
    }
    .inv-builder .product-lines tbody td {
        padding: 4px 2px;
        border-bottom: 1px solid #ddd;
    }
    .inv-builder .product-lines tbody tr:last-child td {  }

    .inv-builder .product-lines .ctrl { position: absolute; top: 0; left: 100%; z-index: 5; opacity: 0; transition: all 0.3s;  }
    .inv-builder .product-lines tr:hover .ctrl { opacity: 1; }
    @media screen and (max-width: 600px) {
        .inv-builder .product-lines tr .ctrl {opacity: 1; top: 32px; left: auto; right: -22px; font-size: 14px; }
        .inv-builder .LineTotal { pointer-events: none; }
    }
    .inv-builder .product-lines tr:hover .ctrl .delete { }
    .inv-builder .product-lines .draghandle { opacity: 0;
        position: absolute;
        left: -20px;
        top: 5px;
        height: 20px;
        width: 20px;
        font-size: 20px;
        cursor: move;
        display: inline-block;

    }

    .inv-builder .invoice-editor td > div {
        padding: 10px 10px;
    }
    .inv-builder .invoice-editor td.taxes-element > div { padding: 0; }

    .inv-builder .invoice-totals td {
        padding: 0px 10px;
        white-space: nowrap;
    }


    .inv-builder .payment-schedule {
        border-top: 1px solid #eee;
        background-color: #fcf8e3;
        padding: 50px 50px 70px 50px;
    }

    .inv-builder .payment-schedule th {
        font-weight: bold;
    }

    .inv-builder .payment-schedule p {
        text-align: center;
        font-weight: bold;
    }

    .inv-builder .payment-schedule tfoot td {
        border: none !important;
        padding-top: 20px;
    }

    .inv-builder .mobile-hide-address, .inv-builder .mobile-hide-phone {
        display: none;
    }
    .display-block { display: block !important; }
    .display-block > td { display: block !important; }
    .mobile-hide-controls { /*text-align: right; */ }

@media only screen and (max-width: 760px) {
    .inv-builder .invoice-editor,
    .inv-builder .invoice-editor tbody,
    .inv-builder .invoice-editor th,
    .inv-builder .invoice-editor td,
    .inv-builder .invoice-editor tr {
        display: block;
    }

    
    .inv-builder .mobile-hide-controls { /*display: block;*/ }
    .inv-builder .mobile-hide-address, .inv-builder .mobile-hide-phone {
        /*display: none;*/
    }

    .inv-builder .product-lines tbody td { border-bottom: none; }

    .inv-builder .invoice-editor tbody tr td:nth-child(2) {
        display: inline-block;
        width: 22% !important;
    }

    .inv-builder .invoice-editor tbody tr td:nth-child(3) {
        display: inline-block;
        width: 22%;
    }

    .inv-builder .invoice-editor tbody tr td:nth-child(4) {
        display: inline-block;
        width: 25%;
    }

    .inv-builder .invoice-editor tbody tr td:nth-child(5) {
        display: inline-block;
        width: 25%;
        text-align: right;
    }

    .inv-builder table.invoice-editor tbody tr td::before {
        font-weight: bold;
        display: block;
        /*font-size: 10px;*/
    }

    .inv-builder table.invoice-editor tbody tr td:nth-child(1)::before {
        content: "Description";
        text-align: left;
    }

    .inv-builder table.invoice-editor tbody tr td:nth-child(2)::before {
        content: "Taxes";
        padding-top: 8px;
        text-align: left; 
    }

    .inv-builder table.invoice-editor tbody tr td:nth-child(3)::before {
        content: "Quantity";
        padding-top: 8px;
        text-align: left;
    }

    .inv-builder table.invoice-editor tbody tr td:nth-child(4)::before {
        content: "Price";
        padding-top: 8px;
        text-align: left;
    }

    .inv-builder table.invoice-editor tbody tr td:nth-child(5)::before {
        content: "Total";
        padding-top: 8px;
        padding-right: 0px;
    }
    .inv-builder table.invoice-editor .LineTotal { padding-left: 0; padding-right: 0; } 

    .inv-builder table thead {
        display: none;
    }

    .inv-builder .invoice-top .right-side {
        order: 1;
        width: 100% !important;
        padding-right: 0;
        margin-bottom: 30px;
    }

    .inv-builder .invoice-top .center-side {
        order: 2;
        width: 100% !important;
        padding-right: 0;
        margin-bottom: 30px;
    }

    .inv-builder .invoice-top .left-side {
        order: 3;
        width: 100% !important;
        padding-right: 0;
    }
}

@media screen and (max-width: 600px) {
    .builder-controls { padding: 12px 0 12px 0;  background: #fff; }
    .builder-controls .doc-buttons > div:first-child { margin-bottom: 10px;}
    .builder-controls .btn-group-lg .btn, .builder-controls .btn-lg { padding: .375rem .75rem; font-size: .85rem; }
    .builder-controls .doc-buttons .btn { font-size: .85rem; }

    .inv-builder { padding: 0; font-size: 12px; }
    .inv-builder .inv { padding: 0; }
    .inv-builder .invoice-top { font-size: 11px; padding-bottom: 30px; }
    .inv-builder .invoice-text { font-size: 24px; }
    .inv-builder .invoice-details { font-size: 22px; padding-bottom: 10px; }
    .inv-builder .header .copy .business { font-size: 11px; padding: 10px; }
    .inv-builder .header { font-size: 11px; padding: 10px; }
    .inv-builder .header .company { margin-bottom: 15px; }
    .inv-builder .body { padding: 15px; }
    .inv-builder .body .items { flex-grow: 0; }
    .inv-builder .payment-schedule { padding: 50px 20px; }
    .inv-builder .invoice-totals { width: 100%; margin-left: 0; }
    .inv-builder .border-wrapper { padding: 0; }
    .inv-builder .border-border { padding: 0; }

    .inv-builder .invoice-editor td > div { padding: 5px 3px; }
    .inv-builder .invoice-totals td { padding: 5px 3px; }
    .inv-builder .product-lines { font-size: 11px; }
    .inv-builder .invoice-totals { font-size: 11px; }
    .inv-builder .footer .business { font-size: 10px; }
/*    .inv-builder .footer-subtotal > td:first-child { display: none; }
    .inv-builder .footer-total > td:first-child { display: none; }
    .inv-builder .footer-payments > td:first-child { display: none; }
    .inv-builder .footer-due > td:first-child { display: none; }*/
    .inv-builder .terms { font-size: 12px; padding-top: 50px; }

    .inv-builder input[type="text"],  .inv-builder textarea, .inv-builder select { margin-bottom: 10px; padding: 10px 4px; font-size: 12px;  }
    .doc-controls select { padding: 10px 12px; }
    .dropdown-tax-rules > .btn { padding: 9px 4px; }
    .td-desc { padding-top: 0 !important;  padding-bottom: 0 !important; }
    .td-desc textarea { margin-bottom: 0;}
    .inv-preview .product-lines tbody tr { background: #f5f5f5; outline: 3px solid #f5f5f5; margin-bottom: 14px; }
    .product-lines tbody tr td.right > * { margin-bottom: 0; }

    .section-block.inv { padding: 0; }
}
