/* Modèles de documents (facture, proforma, reçu). Papier toujours blanc, encre presque noire :
   tout doit rester net sur une imprimante noir et blanc. Les gris clairs (fonds de lignes) s'impriment légers. */
.paper.dm{-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#111;line-height:1.45}
.dm .dm-logo{width:240px;max-width:100%;display:block}
.dm .dm-coord{margin-top:8px;color:#4b555a}
.dm .dm-gris{color:#4b555a}
.dm .dm-fort{font-weight:800;font-size:15px}
.dm .dm-num{font-weight:800;font-size:15px}
.dm .dm-ref{font-size:10px;color:#6b7378}
.dm table{width:100%;border-collapse:collapse;font-size:12.5px}
.dm table th{font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;padding:8px 10px}
.dm table td{padding:8px 10px;vertical-align:top}
.dm .dm-mention{border:1.5px solid #1c2428;padding:8px 12px;font-weight:700}
.dm .dm-mention.leger{border-style:dashed;font-weight:500}
.dm .dm-mention.petit{padding:5px 9px;font-size:11px}
.dm .dm-ligne-remise{text-align:right;font-weight:600}
.dm .dm-coord-bas{text-align:center;font-size:10.5px;color:#4b555a;border-top:1px solid #d5d9dc;padding-top:8px}
.dm .k{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#4b555a;font-weight:700}

/* --- Moderne --- */
.dm-moderne .dm-m-tete{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:3px solid #1c2428;padding-bottom:14px}
.dm-moderne .dm-m-tete .dm-logo{width:250px}
.dm-moderne .dm-m-titre{font-size:32px;font-weight:800;letter-spacing:.14em;color:#1c2428}
.dm-moderne .dm-m-cases{display:grid;grid-template-columns:1fr 1fr 1.4fr;border:1.5px solid #1c2428}
.dm-moderne .dm-m-cases>div{padding:9px 14px;display:flex;flex-direction:column;gap:2px}
.dm-moderne .dm-m-cases>div+div{border-left:1.5px solid #1c2428}
.dm-moderne .dm-m-cases span{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#4b555a;font-weight:700}
.dm-moderne .dm-m-cases b{font-size:16px}
.dm-moderne .dm-m-cases .fort b{font-size:21px}
.dm-moderne .dm-m-blocs{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.dm-moderne .dm-bloc{border-left:4px solid #1c2428;padding:2px 0 2px 12px;display:flex;flex-direction:column;gap:2px}
.dm-moderne .dm-bloc b{font-size:14.5px}
.dm-moderne table th{background:none;color:#1c2428;border:0;border-bottom:2px solid #1c2428}
.dm-moderne table tbody tr:nth-child(even) td{background:#f1f2f3}
.dm-moderne table td{border-bottom:0}
.dm-moderne .dm-m-totaux{margin-left:auto;width:min(320px,100%);display:flex;flex-direction:column;gap:4px}
.dm-moderne .dm-m-totaux div{display:flex;justify-content:space-between;gap:20px}
.dm-moderne .dm-m-totaux .grand{border-top:2px solid #1c2428;border-bottom:2px solid #1c2428;padding:8px 0;font-size:19px;font-weight:800}

/* --- Atelier --- */
.dm-atelier .dm-a-moto{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;border:2px solid #1c2428;border-radius:6px;padding:12px 14px}
.dm-atelier .dm-plaque{border:2.5px solid #1c2428;border-radius:5px;padding:6px 12px;font-weight:800;font-size:18px;letter-spacing:.06em;white-space:nowrap}
.dm-atelier .dm-a-km{text-align:right;display:flex;flex-direction:column}
.dm-atelier .dm-a-km b{font-size:19px}
.dm-atelier .dm-section h4{margin:0 0 4px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;border-bottom:2px solid #1c2428;padding-bottom:4px}
.dm-atelier .dm-section table th{background:none;color:#4b555a;border:0;border-bottom:1px solid #9aa1a5}
.dm-atelier .dm-sous{display:flex;justify-content:flex-end;gap:30px;font-weight:700;padding:6px 10px;border-top:1px solid #1c2428}
.dm-atelier .dm-sigs{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.dm-atelier .dm-sigs>div{border:1.2px solid #1c2428;min-height:96px;padding:8px 10px;font-size:11px;position:relative}
.dm-atelier .dm-sigs .stamp{position:absolute;right:10px;bottom:8px;width:110px;height:70px;font-size:9.5px}

/* --- Compact (demi-page) --- */
.paper.dm-compact{font-size:11.5px;gap:10px;padding:22px 28px}
.dm-compact .dm-c-tete{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;border-bottom:2px solid #1c2428;padding-bottom:8px}
.dm-compact .dm-c-tete .dm-logo{width:150px}
.dm-compact .dm-c-doc{text-align:right}
.dm-compact .dm-c-doc b{font-size:17px;letter-spacing:.08em}
.dm-compact table{font-size:11.5px}
.dm-compact table th{background:none;color:#1c2428;border:0;border-bottom:1.5px solid #1c2428;padding:4px 6px}
.dm-compact table td{padding:4px 6px;border-bottom:1px solid #e2e5e7}
.dm-compact .dm-c-bas{display:flex;justify-content:space-between;align-items:flex-end;gap:14px}
.dm-compact .dm-c-total{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.dm-compact .dm-c-total span{font-size:10px;letter-spacing:.14em;font-weight:700}
.dm-compact .dm-c-total b{font-size:18px;border:2px solid #1c2428;padding:4px 10px;white-space:nowrap}
.dm-compact .stamp{width:96px;height:62px;font-size:9px;margin-top:6px}
.dm-compact .dm-coupe{color:#6b7378;font-size:10px;letter-spacing:.05em;white-space:nowrap;overflow:hidden;margin-top:6px}

/* --- Reçus (tickets de caisse) --- */
.ticket.dm-recu{color:#111}
.ticket.dm-recu .dm-gris{color:#4b555a;font-size:10px}
.ticket.dm-recu .dm-recu-total{font-weight:800;font-size:14px}
.ticket.dm-58{width:220px;font-size:10px;padding:12px 8px;gap:6px}
.ticket.dm-58 img{width:64px}
.ticket.dm-58 .dm-recu-total{font-size:12px}

/* --- Écran Paramètres : choix des modèles --- */
.dm-reglages{display:flex;flex-direction:column;gap:10px;max-width:1100px}
.dm-titre-type{margin:10px 0 2px;font-size:.92rem}
.dm-choix{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.dm-carte{border:1.5px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden;display:flex;flex-direction:column;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.dm-carte:hover{border-color:var(--copper);box-shadow:var(--shadow);transform:translateY(-2px)}
.dm-carte.on{border-color:var(--ok);box-shadow:0 0 0 2px var(--ok-soft)}
.dm-vignette{all:unset;cursor:zoom-in;display:block;height:300px;overflow:hidden;background:var(--panel2);position:relative}
.dm-vignette:focus-visible{outline:2px solid var(--copper);outline-offset:-2px}
.dm-vignette .dm-echelle{width:740px;transform:scale(.31);transform-origin:0 0;position:absolute;left:6px;top:8px;pointer-events:none}
.dm-vignette .dm-echelle .paper{min-width:0;box-shadow:0 2px 10px #0003}
.dm-vignette.recu .dm-echelle{width:300px;transform:scale(.62);left:50%;margin-left:-93px}
.dm-carte-pied{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-top:1px solid var(--line)}
.dm-carte-pied b{display:block;font-size:.88rem}
.dm-carte-pied .xs{display:block;line-height:1.3}
.dm-options{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:10px;margin-top:6px}
.dm-autres{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dm-seg button{padding:4px 10px;font-size:.78rem}

/* --- Impression : A4 pour facture / proforma, rouleau pour les tickets --- */
@media print{
  html,body{background:#fff!important}
  @page dmA4{size:A4;margin:12mm}
  @page dmRouleau{margin:2mm}
  #impression .paper.dm{page:dmA4;box-shadow:none;min-width:0;max-width:none;padding:0}
  #impression .paper.dm-compact{padding:0}
  #impression .ticket.dm-recu{page:dmRouleau;box-shadow:none;margin:0}
  #impression .ticket.dm-80{width:74mm;font-size:11.5px}
  #impression .ticket.dm-58{width:54mm;font-size:9.5px;padding:0}
  #impression .ticket.dm-58 img{width:40mm}
}
