/*
 * NovaSoap Docs — document styles shared by the web view and the PDF (mPDF).
 *
 * Sizes are in px at 96 dpi, matching the Figma page (816 × 1056 = US Letter),
 * so the web view and the PDF render at the same scale.
 * mPDF constraints: no flex/grid (layouts use real tables), no var() (resolved
 * in PHP), unreliable :last-child (explicit classes instead).
 */

:root {
	--nsd-primary: #91C851;
	--nsd-primary-700: #74A041;
	--nsd-primary-800: #496429;
	--nsd-primary-100: #EFF7E5;
	--nsd-secondary: #164257;
	--nsd-text: #08171E;
	--nsd-text-secondary: #164257;
	--nsd-muted: #456879;
	--nsd-surface: #EFF2F3;
	--nsd-border: #DCE3E6;
	--nsd-white: #FFFFFF;
}

.nsd-doc { font-family: 'Lexend Giga', Verdana, sans-serif; font-size: 11px; line-height: 1.5; color: var(--nsd-text); }
.nsd-doc table { border-collapse: collapse; width: 100%; }
.nsd-doc td, .nsd-doc th { vertical-align: top; }
th { text-align: left; }
.fw-light { font-weight: 300; }
.fw-medium { font-weight: 500; }
.ta-right, td.ta-right, th.ta-right { text-align: right; }
.nsd-lbl { font-size: 8.5px; letter-spacing: 1px; text-transform: uppercase; color: var(--nsd-text-secondary); padding-bottom: 4px; }
.nsd-val { font-size: 12px; }

/* Meta row */
.nsd-meta td { width: 25%; padding: 0 16px 16px 0; }
.nsd-rule { border-top: 1px solid var(--nsd-border); height: 1px; margin: 6px 0 22px; }

/* Client / delivery boxes */
td.nsd-box { width: 49%; background: var(--nsd-surface); padding: 14px 16px; }
td.nsd-gap { width: 2%; }
.nsd-box__main { font-size: 14px; font-weight: bold; color: var(--nsd-secondary); padding-bottom: 4px; }
.nsd-box__line { font-size: 11px; line-height: 1.6; }

/* Items table */
.nsd-items { margin-top: 22px; }
.nsd-items th { background: var(--nsd-secondary); color: var(--nsd-white); font-size: 8.5px; letter-spacing: 1px; text-transform: uppercase; font-weight: normal; padding: 8px 12px; }
.nsd-items td { padding: 9px 12px; font-size: 11px; vertical-align: middle; }
.nsd-items tr.is-alt td { background: var(--nsd-surface); }
.nsd-items__line { font-size: 8.5px; letter-spacing: 1px; text-transform: uppercase; color: var(--nsd-primary-800); }
td.nsd-items__num { color: var(--nsd-text-secondary); width: 18px; }
.nsd-items tr.nsd-items__end td { border-top: 2px solid var(--nsd-secondary); padding: 0; height: 2px; background: none; }

/* Notes + totals */
.nsd-bottom { margin-top: 22px; }
td.nsd-conds { padding-right: 24px; }
.nsd-conds ul { margin: 0; padding: 0 0 0 14px; }
.nsd-conds li { font-size: 10px; line-height: 1.55; margin: 0 0 4px; color: var(--nsd-text); }
.nsd-notes { font-size: 10px; line-height: 1.55; }
.nsd-lbl--spaced { padding-top: 12px; }
td.nsd-totals-cell { width: 250px; }
.nsd-totals td { padding: 7px 12px; font-size: 12px; }
td.nsd-totals__lbl { white-space: nowrap; font-size: 8.5px; letter-spacing: 1px; text-transform: uppercase; color: var(--nsd-text-secondary); }
.nsd-totals tr.is-total td { background: var(--nsd-secondary); color: var(--nsd-white); padding: 12px; }
td.nsd-totals__lbl--total { color: var(--nsd-white); font-weight: bold; }
td.nsd-totals__val { font-size: 17px; font-weight: bold; }

/* Call to action */
.nsd-cta { margin-top: 24px; background: var(--nsd-primary-100); border-left: 3px solid var(--nsd-primary); padding: 12px 16px; }
.nsd-cta__title { font-size: 12.5px; font-weight: bold; color: var(--nsd-secondary); }
.nsd-cta__text { font-size: 10.5px; }

/* Lists (catalog + price list) */
.nsd-intro { font-size: 12px; line-height: 1.6; margin-bottom: 22px; }
.nsd-line { margin-top: 24px; }
.nsd-line.is-first { margin-top: 0; }
.nsd-line__head td { vertical-align: middle; }
td.nsd-line__bar { width: 1%; background: var(--nsd-primary); }
td.nsd-line__name { width: 79%; font-size: 17px; font-weight: bold; color: var(--nsd-secondary); padding-left: 12px; }
.nsd-line__brand { color: var(--nsd-primary); }
td.nsd-line__desc { font-size: 10.5px; color: var(--nsd-text-secondary); padding-left: 12px; }
td.nsd-line__count { width: 20%; vertical-align: middle; font-size: 9px; letter-spacing: 1px; text-transform: uppercase; color: var(--nsd-text-secondary); text-align: right; }
.nsd-grid { margin-top: 10px; }
td.nsd-grid__cell { width: 48%; padding: 6px 12px 6px 0; border-bottom: 1px solid var(--nsd-border); font-size: 11px; }
td.nsd-grid__gap { width: 4%; border-bottom: 0; padding: 0; }
.nsd-dot { color: var(--nsd-primary); font-weight: bold; padding-right: 6px; }
.nsd-pres { font-size: 9px; color: var(--nsd-muted); padding: 1px 0 0 13px; }
.nsd-prices { margin-top: 8px; }
.nsd-prices th { background: var(--nsd-secondary); color: var(--nsd-white); font-size: 8.5px; letter-spacing: 1px; text-transform: uppercase; font-weight: normal; padding: 6px 12px; }
.nsd-prices td { padding: 5px 12px; font-size: 10.5px; }
.nsd-prices tr.is-alt td { background: var(--nsd-surface); }
th.nsd-prices__col, td.nsd-prices__col { width: 15%; white-space: nowrap; }
td.nsd-prices__na { color: var(--nsd-muted); }
.nsd-note { background: var(--nsd-surface); padding: 9px 14px; font-size: 10px; color: var(--nsd-text-secondary); margin-bottom: 18px; }
.nsd-empty { font-size: 11px; color: var(--nsd-muted); padding: 12px 0; }
