.doc {
    color: #1c2b30;
    background: #fff;
    font-family: "DejaVu Sans", "Segoe UI", Helvetica, Arial, sans-serif;
    font-size: 12px;
    line-height: 1.45;
}

.accent-bar {
    height: 8px;
    background: #115e59;
}

.doc-inner {
    padding: 22px 28px 32px;
}

.doc-head,
.parties,
.summary,
.lines,
.totals,
.meta {
    width: 100%;
    border-collapse: collapse;
}

.doc-head td {
    vertical-align: top;
}

.brand-cell {
    width: 58%;
    padding-right: 16px;
}

.title-cell {
    width: 42%;
    text-align: right;
}

.logo {
    max-width: 180px;
    max-height: 58px;
    margin-bottom: 8px;
}

.biz-name {
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.doc-kicker {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #115e59;
}

.doc-number {
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.03em;
    margin: 2px 0 8px;
}

.biz-meta {
    margin-top: 4px;
    color: #3e5558;
    font-size: 11px;
}

.meta {
    margin-left: auto;
    width: 230px;
}

.meta th,
.meta td {
    text-align: left;
    padding: 2px 0;
    font-size: 11px;
    font-weight: 400;
}

.meta th {
    color: #5c7276;
    width: 46%;
    padding-right: 8px;
}

.parties {
    margin: 22px 0 18px;
}

.parties td {
    vertical-align: top;
    width: 50%;
}

.party-label {
    margin: 0 0 4px;
    color: #5c7276;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lines {
    margin-top: 8px;
}

.lines th,
.lines td {
    border-bottom: 1px solid #d5e0e1;
    padding: 8px 6px;
    vertical-align: top;
    text-align: left;
}

.lines th {
    background: #f3f7f7;
    color: #3e5558;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.lines thead {
    display: table-header-group;
}

.lines tr {
    page-break-inside: avoid;
}

.lines td {
    word-wrap: break-word;
}

.num {
    text-align: right !important;
    white-space: nowrap;
}

.lines th:first-child,
.lines td:first-child {
    width: 40%;
    white-space: normal;
}

.item-name {
    font-weight: 700;
}

.item-desc {
    margin-top: 2px;
    color: #4e6366;
    font-size: 11px;
}

.summary {
    margin-top: 16px;
    page-break-inside: auto;
}

.notes-col {
    width: 56%;
    vertical-align: top;
    padding-right: 18px;
}

.totals-col {
    width: 44%;
    vertical-align: top;
}

.note-copy {
    margin: 0 0 12px;
    color: #24383c;
    font-size: 11px;
}

.totals th,
.totals td {
    padding: 4px 0;
    font-weight: 400;
    font-size: 12px;
}

.totals th {
    text-align: left;
    color: #3e5558;
}

.totals td {
    text-align: right;
    white-space: nowrap;
}

.total-line th,
.total-line td {
    border-top: 1px solid #c5d4d6;
    padding-top: 8px;
    font-weight: 700;
}

.balance-line th,
.balance-line td {
    background: #f3faf8;
    padding: 8px 6px;
    font-size: 14px;
    font-weight: 700;
}

.payment-block {
    page-break-inside: avoid;
}

.pay-heading {
    margin-top: 22px;
}

.pay-table {
    margin-top: 6px;
}

.receipt-total {
    width: 320px;
    margin-top: 18px;
}

.receipt-thanks {
    margin-top: 28px;
    color: #4e6366;
    font-size: 11px;
}
