/* ============================================================================
   Document layout — "Meridian".

   Two tones and nothing else: a deep blue carries the structure — headings,
   labels, rules — and a single red is spent only where the eye must land, which
   on a quotation is the title rule and the amount payable.

   Restraint everywhere except the item table, which is fully ruled and shaded
   so figures can be read across a wide row and checked line by line. The amount
   payable is shaded blue and set in black. Everything outside the table stays
   quiet. Type is a step larger than the other layouts for readability across a
   desk.

   Every size multiplies --doc-fs so the print fitter can pull a document onto
   one page.
   ========================================================================== */

.doc-theme-meridian {
  --md-blue: #123c66;
  --md-red: #b3252b;
  --md-ink: #16191c;
  --md-soft: #5b6570;
  --md-hair: #dfe3e7;
  --md-grid: #a9bcd0;
  --md-shade: #f2f7fb;
  --md-head-shade: #dde8f3;
  --md-total-shade: #c9dcef;

  --md-title: calc(21pt * var(--doc-fs));
  --md-body:  calc(10pt * var(--doc-fs));
  --md-cell:  calc(9.6pt * var(--doc-fs));
  --md-sub:   calc(8.8pt * var(--doc-fs));
  --md-label: calc(7.6pt * var(--doc-fs));

  color: var(--md-ink);
  font-size: var(--md-body);
}

/* ------------------------------------------------------------------ header */
.doc-theme-meridian .doc-head {
  align-items: center; padding-bottom: 2.4mm; border: 0;
  border-bottom: 1.6pt solid var(--md-blue);
}
.doc-theme-meridian .doc-logo { height: 14mm; }
.doc-theme-meridian .doc-org { font-size: calc(8pt * var(--doc-fs)); color: var(--md-soft); line-height: 1.45; }
.doc-theme-meridian .doc-org-name {
  font-size: calc(11pt * var(--doc-fs)); font-weight: 700; color: var(--md-blue); letter-spacing: .02em;
}

/* the one place the two tones meet */
.doc-theme-meridian .doc-title {
  margin: 4mm 0 3mm; text-align: left; border: 0; padding: 0 0 1.4mm;
  font-size: var(--md-title); font-weight: 700; letter-spacing: .14em;
  color: var(--md-blue); position: relative;
}
.doc-theme-meridian .doc-title::after {
  content: ''; position: absolute; left: 0; bottom: 0;
  width: 26mm; height: 1.8pt; background: var(--md-red);
}

/* -------------------------------------------------------------- meta block */
.doc-theme-meridian .doc-meta { gap: 0 11mm; margin-bottom: 2.4mm; }
.doc-theme-meridian .doc-meta-row {
  display: flex; flex-direction: row; align-items: baseline; gap: 1.6mm;
  border: 0; padding: 0 0 1.2mm;
}
.doc-theme-meridian .doc-meta-key {
  min-width: 23mm; font-size: var(--md-label); font-weight: 700; letter-spacing: .09em;
  text-transform: uppercase; color: var(--md-blue); line-height: 1.3;
}
.doc-theme-meridian .doc-meta-val { font-size: var(--md-body); color: var(--md-ink); line-height: 1.25; }
.doc-theme-meridian .doc-subject {
  border: 0; border-top: .5pt solid var(--md-hair);
  padding-top: 1.8mm; margin-bottom: 2.2mm;
}
.doc-theme-meridian .doc-fixed { font-weight: 700; color: var(--md-blue); }

/* ------------------------------------------------------------------ table */
.doc-theme-meridian .doc-table { margin-top: 1mm; border: .6pt solid var(--md-grid); }
.doc-theme-meridian .doc-table th {
  background: var(--md-head-shade);
  border: .6pt solid var(--md-grid);
  border-bottom: 1.2pt solid var(--md-blue);
  padding: 2mm 1.5mm;
  font-size: var(--md-label); font-weight: 700; letter-spacing: .08em;
  color: var(--md-blue); text-align: left; line-height: 1.15;
}
.doc-theme-meridian .doc-table th.doc-th-num { text-align: right; }
.doc-theme-meridian .doc-table th.doc-th-ctr { text-align: center; }
.doc-theme-meridian .doc-table td {
  border: .6pt solid var(--md-grid);
  padding: 1.7mm 1.5mm; font-size: var(--md-cell); line-height: 1.32;
}
/* alternate shading so the eye tracks across a wide row. Keyed on a class the
   engine sets for every other priced line — nth-of-type would count section and
   note rows too, and the banding would land wherever they happened to fall. */
.doc-theme-meridian .doc-row-alt td { background: var(--md-shade); }

/* a section heading sits inside the grid, shaded like the column heads */
.doc-theme-meridian .doc-row-section td {
  background: var(--md-total-shade); color: #000;
  border: .6pt solid var(--md-grid); border-top: .9pt solid var(--md-red);
  font-size: var(--md-label); font-weight: 700; letter-spacing: .12em;
  padding: 1.8mm 1.5mm .9mm;
}
.doc-theme-meridian .doc-row-note td {
  color: var(--md-soft); font-style: italic; font-size: var(--md-sub);
  padding-top: 0; border: .6pt solid var(--md-grid);
}

/* ----------------------------------------------------------------- totals */
.doc-theme-meridian .doc-totals { margin-top: 3.5mm; }
.doc-theme-meridian .doc-totals table { min-width: 92mm; border: .6pt solid var(--md-grid); }
.doc-theme-meridian .doc-totals td {
  border: .6pt solid var(--md-grid);
  padding: 1.5mm 2mm; font-size: var(--md-cell);
}
.doc-theme-meridian .doc-totals .k {
  background: transparent; font-weight: 700; color: var(--md-blue);
  text-transform: uppercase; font-size: var(--md-label); letter-spacing: .09em;
}
.doc-theme-meridian .doc-totals .cur { color: var(--md-soft); font-size: var(--md-label); }
/* the line that matters: shaded blue, set in black so it reads at a glance */
.doc-theme-meridian .doc-totals .grand td {
  background: var(--md-total-shade); color: #000;
  border: .6pt solid var(--md-grid); border-top: 1.2pt solid var(--md-blue);
  font-size: calc(12pt * var(--doc-fs)); font-weight: 700; padding: 1.9mm 2mm;
}
.doc-theme-meridian .doc-totals .grand .cur { color: #000; font-size: calc(8.4pt * var(--doc-fs)); }

/* ------------------------------------------------------------------ words */
.doc-theme-meridian .doc-words {
  margin-top: 3mm; padding: 0; background: transparent;
  border-top: .5pt solid var(--md-hair); padding-top: 2mm;
  font-size: var(--md-sub); color: var(--md-ink);
}
.doc-theme-meridian .doc-words b { text-transform: none; font-weight: 700; color: var(--md-blue); }

/* ------------------------------------------------------------------ terms */
.doc-theme-meridian .doc-terms {
  margin-top: 3.5mm; font-size: calc(7.8pt * var(--doc-fs)); color: var(--md-soft);
  border-top: .5pt solid var(--md-hair); padding-top: 2mm;
}
.doc-theme-meridian .doc-terms h4 {
  font-size: var(--md-label); letter-spacing: .1em; color: var(--md-blue); margin-bottom: 1.4mm;
}
.doc-theme-meridian .doc-terms ol { columns: 2; column-gap: 8mm; padding-left: 4mm; }
.doc-theme-meridian .doc-terms li { margin-bottom: .5mm; break-inside: avoid; line-height: 1.32; }

/* ------------------------------------------------------------- signatures */
.doc-theme-meridian .doc-sign { margin-top: 5mm; gap: 16mm; font-size: var(--md-sub); }
.doc-theme-meridian .doc-sign-box b {
  font-size: var(--md-label); letter-spacing: .09em; text-transform: uppercase;
  color: var(--md-blue); font-weight: 700;
}
.doc-theme-meridian .doc-sign-line {
  margin-top: 8mm; border-top: .8pt solid var(--md-blue);
  padding-top: 1.1mm; color: var(--md-soft); font-size: var(--md-label);
}

/* ----------------------------------------------------------------- footer */
.doc-theme-meridian .doc-foot {
  margin-top: 3.5mm; padding-top: 1.6mm; border: 0;
  border-top: 1.2pt solid var(--md-blue);
  color: var(--md-soft); font-size: var(--md-label); letter-spacing: .05em;
}

.doc-theme-meridian .doc-draft-mark {
  font-size: calc(54pt * var(--doc-fs)); color: rgba(179,37,43,.08); letter-spacing: .3em;
}

/* editing affordances follow the theme */
.doc-theme-meridian [contenteditable]:focus { outline-color: var(--md-blue); background: #eef4fa; }
.doc-theme-meridian .doc-pick:hover { background: #eef4fa; box-shadow: 0 1px 0 var(--md-blue); }
.doc-theme-meridian .doc-colgrip:hover::after,
.doc-theme-meridian .doc-colgrip.is-dragging::after { background: var(--md-red); }
.doc-theme-meridian .doc-add { color: var(--md-blue); }
.doc-theme-meridian .doc-add:hover { background: #eef4fa; border-color: var(--md-blue); }

/* page furniture in the printed, paginated document */
.doc-theme-meridian .page-foot {
  border-top: .5pt solid var(--md-hair) !important;
  color: var(--md-soft); font-size: var(--md-label);
}
.doc-theme-meridian .page-cont { color: var(--md-soft); font-size: var(--md-label); }
