/* Utility-/Komponentenklassen — ersetzen statische inline style=""-Attribute,
   damit die CSP ohne style-src 'unsafe-inline' auskommt. Dynamische Styles
   (Paletten-Farben) werden per CSSOM gesetzt (js/actions.js hydrateStyles). */

.hidden { display: none; }
.flex1 { flex: 1; min-width: 0; }

/* Links */
.lnk-muted { color: var(--gray-400); text-decoration: none; }
.lnk-muted-u { color: var(--gray-400); text-decoration: underline; }
.lnk-primary { color: var(--primary); text-decoration: none; font-weight: 600; }
.lnk-primary-bold { color: var(--primary); font-weight: 600; }

/* Overlays / Z-Index */
.z-overlay { z-index: 9999; }
.z-overlay-top { z-index: 10000; }
.sheet-scroll { max-height: 85dvh; overflow-y: auto; }

/* Modal-Köpfe / Legal-Texte */
.modal-head-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.modal-h2 { font-size: 18px; font-weight: 800; }
.modal-h2-mb { font-size: 18px; font-weight: 800; margin-bottom: 12px; }
.legal-body { font-size: 14px; line-height: 1.7; color: var(--gray-700); }
.consent-text { font-size: 14px; margin-bottom: 16px; }
.consent-body { font-size: 14px; line-height: 1.6; color: var(--gray-700); margin-bottom: 16px; }
.consent-note { text-align: center; margin-top: 12px; font-size: 12px; color: var(--gray-400); }

/* Login */
.login-legal-links { text-align: center; margin-top: 14px; font-size: 11px; color: var(--gray-400); }
.chat-title-ico { width: 17px; height: 17px; vertical-align: -2.5px; margin-right: 4px; }
.btn-full-lg { width: 100%; padding: 14px; }

/* Spinner-Positionierung */
.spinner-md { margin: 20px auto; display: block; border-top-color: var(--primary); }
.spinner-lg { margin: 30px auto; display: block; border-top-color: var(--primary); }

/* Generierte Inhalte (Dashboard/History/Listen/Parse) */
.ml-auto-600 { margin-left: auto; font-weight: 600; }
.btn-cancel-sub { border-top: 1px solid #fecaca; color: var(--red); font-size: 14px; }
.err-text { color: var(--red); padding: 16px 0; }
.empty-hint { color: var(--gray-400); font-size: 14px; padding: 16px 0; }
.empty-center { color: var(--gray-400); padding: 20px 0; text-align: center; }
.parse-amount { color: #9C8A79; font-weight: 400; }
