.aptora-document {
	--aptora-document-border: #d9dee8;
	--aptora-document-muted: #5f6b7a;
	--aptora-document-text: #172033;
	--aptora-document-accent: #0f6f9f;
	width: 100%;
	max-width: 960px;
	margin: 0 auto;
	padding: 32px;
	background: #fff;
	color: var(--aptora-document-text);
	font-size: 14px;
	line-height: 1.45;
	overflow-wrap: anywhere;
}

.aptora-document * {
	box-sizing: border-box;
	min-width: 0;
}

.aptora-document__header,
.aptora-document__section,
.aptora-document__summary {
	margin-bottom: 24px;
}

.aptora-document__header {
	display: grid;
	gap: 24px;
	grid-template-columns: minmax(0, 1fr) minmax(260px, auto);
	align-items: start;
	border-bottom: 2px solid var(--aptora-document-text);
	padding-bottom: 18px;
}

.aptora-document__brand {
	display: grid;
	gap: 14px;
}

.aptora-document__logo {
	display: block;
	max-width: 180px;
	max-height: 88px;
	object-fit: contain;
}

.aptora-document__label {
	margin: 0 0 4px;
	color: var(--aptora-document-muted);
	font-size: 0.75rem;
	font-weight: 700;
	text-transform: uppercase;
}

.aptora-document h1,
.aptora-document h2,
.aptora-document h3,
.aptora-document p {
	margin-top: 0;
}

.aptora-document h1 {
	margin-bottom: 0;
	font-size: 2rem;
	line-height: 1.1;
}

.aptora-document h2 {
	margin-bottom: 10px;
	font-size: 0.95rem;
	text-transform: uppercase;
}

.aptora-document h3 {
	margin-bottom: 6px;
	font-size: 0.9rem;
}

.aptora-document__meta,
.aptora-document__totals,
.aptora-document__custom-fields {
	display: grid;
	gap: 7px 16px;
	grid-template-columns: auto minmax(120px, 1fr);
	margin: 0;
}

.aptora-document__meta div,
.aptora-document__totals div,
.aptora-document__custom-fields div {
	display: contents;
}

.aptora-document dt {
	color: var(--aptora-document-muted);
	font-weight: 700;
}

.aptora-document dd {
	margin: 0;
	text-align: right;
}

.aptora-document__parties {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.aptora-document__address {
	margin: 0;
}

.aptora-document__address p {
	margin-bottom: 4px;
	overflow-wrap: anywhere;
}

.aptora-document__line-items {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
}

.aptora-document__line-items th,
.aptora-document__line-items td {
	border-bottom: 1px solid var(--aptora-document-border);
	padding: 9px 7px;
	text-align: left;
	vertical-align: top;
	overflow-wrap: anywhere;
}

.aptora-document__line-items th {
	color: var(--aptora-document-muted);
	font-size: 0.78rem;
	text-transform: uppercase;
}

.aptora-document__line-items thead {
	display: table-header-group;
}

.aptora-document__line-items .aptora-document__money,
.aptora-document__line-items .aptora-document__number {
	text-align: right;
}

.aptora-document__line-items .aptora-document__description {
	width: 30%;
	overflow-wrap: anywhere;
}

.aptora-document__line-items .aptora-document__sku {
	width: 12%;
	overflow-wrap: anywhere;
}

.aptora-document__summary {
	display: grid;
	gap: 20px;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
	align-items: start;
}

.aptora-document__custom-fields {
	max-width: 420px;
}

.aptora-document__totals {
	padding-top: 8px;
	border-top: 1px solid var(--aptora-document-border);
}

.aptora-document__total-row dt,
.aptora-document__total-row dd {
	border-top: 2px solid var(--aptora-document-text);
	padding-top: 8px;
	font-size: 1rem;
	font-weight: 800;
}

.aptora-document__notes {
	display: grid;
	gap: 14px;
}

.aptora-document__note p {
	margin-bottom: 0;
	white-space: pre-wrap;
	overflow-wrap: anywhere;
}

@media (max-width: 760px) {

	.aptora-document {
		padding: 20px;
	}

	.aptora-document__header,
	.aptora-document__parties,
	.aptora-document__summary {
		grid-template-columns: 1fr;
	}

	.aptora-document dd {
		text-align: left;
	}

	.aptora-document__line-items {
		display: block;
		overflow-x: auto;
		table-layout: auto;
	}
}

@media print {

	.aptora-document {
		max-width: none;
		padding: 0;
		font-size: 11pt;
	}

	.aptora-document__header {
		page-break-after: avoid;
	}

	.aptora-document__section,
	.aptora-document__summary,
	.aptora-document__note {
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.aptora-document__section--line-items {
		break-inside: auto;
		page-break-inside: auto;
	}

	.aptora-document__line-items thead {
		display: table-header-group;
	}

	.aptora-document__line-items tfoot {
		display: table-footer-group;
	}

	.aptora-document__line-items tr {
		break-inside: avoid;
		page-break-inside: avoid;
	}
}
