/* ==========================================================================
   Note de calcul — styles partagés (impression EN PLACE, paginée par paged.js).
   #note vit hors-écran et n'apparaît qu'à l'impression.
   ========================================================================== */
#note { position: absolute; left: -99999px; top: 0; font-family: Archivo, system-ui, sans-serif; color: #201e1d; font-size: 12px; line-height: 1.5; }
@media print { .page { display: none !important; } #note { position: static; left: auto; } body { background: #fff; } }
/* Force l'impression des fonds de couleur */
#note, #note * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

#note .head { border-bottom: 2px solid #1247ff; padding-bottom: 6px; margin-bottom: 6px; display: flex; justify-content: space-between; align-items: flex-end; }
#note .brand { font-weight: 800; color: #1247ff; font-size: 16px; }
#note h1 { font-size: 18px; margin: 2px 0; }
#note .obj { font-size: 12px; color: #444; margin: 0 0 10px; }
#note .head .r { text-align: right; font-size: 10px; color: #666; line-height: 1.4; }
#note h2 { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #0730b9; border-bottom: 1.5px solid #0730b9; padding-bottom: 3px; margin: 15px 0 7px; }

#note table.cart { width: 100%; border-collapse: collapse; margin: 8px 0 2px; font-size: 11.5px; }
#note table.cart td { border: 1px solid #9aa; padding: 4px 8px; }
#note table.cart .k { background: #eef2ff; font-weight: 700; white-space: nowrap; width: 1%; }

#note ul.refs { margin: 0; padding-left: 18px; }
#note .refs li { margin: 2px 0; }
#note .refs li.ko { color: #c0170a; }
#note .frm { font-size: 11.5px; padding: 2px 0; color: #222; }

#note table.kv { width: 100%; border-collapse: collapse; font-size: 11.5px; margin: 0 0 4px; }
#note .kv td { padding: 3px 8px; border-bottom: 0.5px solid #eee; }
#note .kv .kk { font-weight: 700; color: #333; width: 32%; background: #f4f6fb; }

#note table.steps { width: 100%; border-collapse: collapse; font-size: 11.5px; }
#note .steps .sh td { font-size: 10px; color: #5f5e5a; font-weight: 700; border-bottom: 1px solid #9aa8bf; padding: 4px 8px; }
#note .steps .sh .rr { text-align: right; }
#note .steps td { padding: 5px 8px; border-bottom: 0.5px solid #ececec; vertical-align: top; }
#note .steps tr { break-inside: avoid; }
#note .steps .sd { width: 30%; }
#note .steps .sy { color: #8a8a8a; font-size: 10.5px; }
#note .steps .ap { color: #222; }
#note .steps .rc { width: 20%; text-align: right; font-weight: 700; color: #0730b9; background: #eef2ff; white-space: nowrap; }

#note .rline { display: flex; gap: 26px; font-size: 12.5px; margin: 2px 0 8px; flex-wrap: wrap; }
#note .rline .mut { color: #777; font-weight: 400; }
#note .vbar { padding: 8px 12px; font-weight: 700; text-align: center; border: 1px solid transparent; }
#note .vbar.vok { background: #e7f6ec; color: #157f3c; border-color: #b7e0c2; }
#note .vbar.vko { background: #fdeceb; color: #c0170a; border-color: #f2b8b4; }
#note .vbar.vneutral { background: #eef2ff; color: #0730b9; border-color: #c4d2ff; }
#note sub, #note sup { font-size: 0.72em; line-height: 0; }

/* Schéma (type 'svg') */
#note .svgbox { margin: 4px 0 6px; }
#note .svgbox svg { width: 62mm; height: auto; }
/* `big: true` → schéma PLEINE LARGEUR. Un schéma de section se lit très bien à
   62 mm, mais pas un diagramme de sollicitations : ses textes (valeurs de M et V,
   abscisses) deviennent illisibles à l'impression. Le SVG étant vectoriel, la
   largeur 100 % agrandit tout proportionnellement, sans perte. */
#note .svgbox.lg { margin: 8px 0 10px; }
#note .svgbox.lg svg { width: 100%; }

/* Tableau récapitulatif (type 'table') */
#note .tnote { font-size: 10.5px; color: #666; margin: 2px 0 6px; max-width: 100%; }
#note table.rtable { width: 100%; border-collapse: collapse; font-size: 10px; margin: 2px 0 4px; }
#note .rtable th { background: #f4f6fb; border-bottom: 1px solid #9aa8bf; padding: 4px 5px; font-size: 9.5px; color: #5f5e5a; font-weight: 700; text-align: right; white-space: nowrap; }
#note .rtable th:first-child { text-align: left; }
#note .rtable td { padding: 3px 5px; border-bottom: 0.5px solid #ececec; }
#note .rtable td.num { text-align: right; white-space: nowrap; }
#note .rtable td.rlab { font-weight: 700; white-space: nowrap; }
#note .rtable .col-cur { background: #eef2ff; color: #0730b9; }
/* Variante « texte long » (expressions de combinaisons) : les cellules doivent pouvoir
   se couper, sinon la table dépasse la largeur de page et paged.js ne pagine plus. */
#note table.rtable.rt-wrap th, #note table.rtable.rt-wrap td { text-align: left; white-space: normal; overflow-wrap: anywhere; }
#note table.rtable.rt-wrap td.rlab { white-space: nowrap; width: 26%; color: #5f5e5a; font-weight: 400; }
#note table.rtable.rt-wrap td.num { font-weight: 700; color: #0730b9; }

/* Tableau de vérification des contraintes (type 'vtable') — cellule Vérification colorée */
#note table.vtable { width: 100%; border-collapse: collapse; font-size: 11.5px; margin: 2px 0 8px; }
#note .vtable th { font-size: 10px; color: #5f5e5a; font-weight: 700; border-bottom: 1px solid #9aa8bf; padding: 5px 8px; text-align: left; }
#note .vtable th.num, #note .vtable th.vt-chk { text-align: right; }
#note .vtable th.vt-chk { text-align: center; }
#note .vtable td { padding: 5px 8px; border-bottom: 0.5px solid #ececec; }
#note .vtable td.num { text-align: right; white-space: nowrap; }
#note .vtable td.vt-mat { font-weight: 700; white-space: nowrap; }
#note .vtable td.vt-chk { text-align: center; font-weight: 800; }
#note .vtable td.vt-ok { background: #e7f6ec; color: #157f3c; }
#note .vtable td.vt-ko { background: #fdeceb; color: #c0170a; }
#note .vtable td.vt-na { background: #f1f1f0; color: #6b6b68; font-weight: 700; }
