/* LX-ERP: Ergänzungen zu style.css (LX-Tools). Nur Tokens aus style.css verwenden. */
/* Basis-Schriftgrösse aus users.ui_prefs.font_size (views/layout.php, font-size.js); Werte wie UiPrefs::FONT_SIZES. */
/* hidden gilt auch bei Klassen mit eigenem display (Grid, Flex); sonst blendet el.hidden nichts aus (Fixes 1a b10 #1). */
[hidden] { display: none !important; }
html[data-font-size="small"] { font-size: 11.2px; }
html[data-font-size="medium"] { font-size: 13px; }
html[data-font-size="normal"] { font-size: 16px; }
html[data-font-size="large"] { font-size: 18px; }
.lxh-ib.is-on { color: var(--text-primary); background: var(--bg-tertiary); }
.lxh-ib.is-on svg.lucide { color: var(--ctl-primary-fg); }
.lx-erp-page-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 1rem 0; }
.lx-erp-error { max-width: 520px; margin: 10vh auto; text-align: center; }

.lx-flash { display: flex; gap: 0.55rem; align-items: flex-start; border-radius: 8px; padding: 0.6rem 0.75rem; margin: 0 0 0.85rem; font-size: var(--fs-sm); border: 1px solid; line-height: 1.45; }
.lx-flash > svg, .lx-flash > i { flex: none; margin-top: 0.1rem; }
.lx-flash span { color: var(--text-primary); }
.lx-flash.is-e { color: var(--error); border-color: color-mix(in srgb, var(--error) 45%, transparent); background: color-mix(in srgb, var(--error) 8%, transparent); }
.lx-flash.is-i { color: var(--info); border-color: color-mix(in srgb, var(--info) 40%, transparent); background: color-mix(in srgb, var(--info) 8%, transparent); }
.lx-flash.is-ok { color: var(--success); border-color: color-mix(in srgb, var(--success) 45%, transparent); background: color-mix(in srgb, var(--success) 8%, transparent); }

.lx-erp-section { margin: 0 0 1rem; }
.lx-erp-section-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 0.5rem; }
.lx-erp-section-head h2 { margin: 0; font-size: var(--fs-md); display: flex; align-items: center; gap: 0.5rem; }
.lx-erp-section-head form { margin: 0; }
.lx-erp-muted { color: var(--text-secondary); font-size: var(--fs-sm); margin: 0 0 0.75rem; }
.lx-erp-actions { text-align: right; white-space: nowrap; }
.lx-erp-actions form { display: inline; margin: 0; }
.lx-erp-row { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.lx-erp-row form { margin: 0; }
.lx-erp-inline { display: inline-flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin: 0; }
.lx-erp-codes { display: grid; grid-template-columns: repeat(2, max-content); gap: 0.4rem 1.5rem; margin: 0.75rem 0 1rem; padding: 0; list-style: none; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: var(--fs-base); }
/* QR-Code braucht hellen Grund und Ruhezone, auch im Dark-Mode: bewusst fest #fff statt Token. */
.lx-erp-qr { display: inline-block; padding: 0.75rem; background: #fff; border-radius: 6px; margin-bottom: 0.75rem; }
.lx-erp-secret { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: 0.08em; word-break: break-all; }

.lx-erp-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 1rem; margin: 0 0 1rem; }
.lx-erp-tile { display: flex; gap: 0.75rem; align-items: flex-start; text-decoration: none; color: var(--text-primary); }
.lx-erp-tile:hover { border-color: var(--text-secondary); }
.lx-erp-tile small { display: block; color: var(--text-secondary); font-size: var(--fs-sm); margin-top: 0.2rem; }

.lx-erp-matrix th, .lx-erp-matrix td { text-align: center; }
.lx-erp-matrix th:first-child, .lx-erp-matrix td:first-child { text-align: left; white-space: nowrap; }
.lx-erp-matrix input[type="radio"] { accent-color: var(--ctl-primary); }
.lx-erp-check { display: flex; gap: 0.5rem; align-items: center; padding: 0.25rem 0; font-size: var(--fs-sm); cursor: pointer; }
.lx-erp-check input { accent-color: var(--ctl-primary); }
.lx-erp-form-actions { margin-top: 1rem; }

.lx-erp-form-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 0.75rem 1rem; align-items: end; }
.lx-erp-form-grid label { display: flex; flex-direction: column; gap: 0.3rem; font-size: var(--fs-sm); color: var(--text-secondary); }
.lx-erp-form-grid label.lx-erp-check { flex-direction: row; color: var(--text-primary); }
.lx-erp-form-grid .lx-erp-form-actions, .lx-erp-form-grid .lx-erp-fieldset { grid-column: 1 / -1; }
.lx-erp-form-grid .lx-erp-form-actions { margin-top: 0; }
.lx-erp-fieldset { border: 1px solid var(--border-color); border-radius: 6px; padding: 0.5rem 0.75rem; margin: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; }
.lx-erp-fieldset legend { font-size: var(--fs-sm); color: var(--text-secondary); padding: 0 0.3rem; }

/* Ansicht als Mitglied (Banner, neutraler Hintergrund mit 1px Rahmen) */
.lx-erp-imp { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; margin: 0 0 1rem; padding: 0.45rem 0.75rem; border: 1px solid var(--border-color); border-radius: 6px; background: var(--bg-secondary); font-size: var(--fs-sm); }
.lx-erp-imp form { margin: 0 0 0 auto; }
.lx-erp-pre { margin: 0; padding: 0.6rem 0.75rem; border: 1px solid var(--border-color); border-radius: 6px; background: var(--bg-primary); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: var(--fs-sm); white-space: pre-wrap; word-break: break-word; max-height: 28rem; overflow: auto; }
.lx-erp-dl { display: grid; grid-template-columns: max-content 1fr; gap: 0.3rem 1rem; margin: 0.75rem 0; font-size: var(--fs-sm); }
.lx-erp-dl dt { color: var(--text-secondary); }
.lx-erp-dl dd { margin: 0; word-break: break-word; }
.lx-erp-log { list-style: none; margin: 0; padding: 0; font-size: var(--fs-sm); }
.lx-erp-log li { padding: 0.4rem 0; border-bottom: 1px solid var(--border-color); word-break: break-word; }

/* Benutzereinstellungen: Formular und Schriftgrössen im Benutzermenü (Muster lxh-fontseg aus LX-Tools) */
.lx-erp-prefs { max-width: 28rem; }
.lxh-fontseg [data-lxh-fontsize="small"] span { font-size: 0.8em; }
.lxh-fontseg [data-lxh-fontsize="medium"] span { font-size: 0.95em; }
.lxh-fontseg [data-lxh-fontsize="normal"] span { font-size: 1.1em; }
.lxh-fontseg [data-lxh-fontsize="large"] span { font-size: 1.25em; }

/* Dashboard-Widgets (neutraler Hintergrund, 1px Border) */
.lx-erp-widgets { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.lx-erp-widget { border: 1px solid var(--border-color); border-radius: 6px; background: var(--bg-secondary); min-width: 0; }
.lx-erp-widget.is-full { grid-column: 1 / -1; }
.lx-erp-widget-head { display: flex; align-items: center; gap: 0.45rem; padding: 0.55rem 0.75rem 0.35rem; }
.lx-erp-widget-head h2 { margin: 0; font-size: var(--fs-sm); font-weight: 600; flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.lx-erp-widget-link { font-size: var(--fs-sm); }
.lx-erp-widget-body { padding: 0 0.75rem 0.75rem; }
.lx-erp-widget-list { list-style: none; margin: 0; padding: 0; font-size: var(--fs-sm); }
.lx-erp-widget-list li { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; padding: 0.35rem 0; border-bottom: 1px solid var(--border-color); }
.lx-erp-widget-list li:last-child { border-bottom: 0; }
.lx-erp-widget-grow { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.lx-erp-widget-meta { color: var(--text-secondary); font-size: var(--fs-xs); }
.lx-erp-widget-pos { width: 5rem; }
.lx-erp-welcome { margin: 0; }
@media (max-width: 900px) { .lx-erp-widgets { grid-template-columns: 1fr; } }

/* Palette: Hinweis ohne Treffer als Live-Region neben der Listbox; Seite gesperrt, solange die Palette offen ist. */
.lxh-pal-note[hidden] { display: none; }
body.lxh-pal-open { overflow: hidden; }

/* Betrieb im Plattform-Admin (0d) */
.lx-erp-ops-msg { margin-top: 0.25rem; color: var(--text-secondary); font-size: var(--fs-sm); word-break: break-word; }
.lx-erp-ops-log { max-height: 28rem; overflow: auto; margin: 0; padding: 0.75rem; white-space: pre-wrap; word-break: break-word; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: var(--fs-sm); background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: 6px; }

/* Branding (Plan 0d Entscheid 23) */
.lx-erp-branding { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 1rem; }
.lx-erp-branding-item { display: flex; flex-direction: column; gap: 0.5rem; }
.lx-erp-branding-item h3 { margin: 0; font-size: var(--fs-base); }
.lx-erp-branding-item form { margin: 0; }
.lx-erp-branding-preview { display: flex; align-items: center; justify-content: center; height: 6rem; background: var(--bg-primary); border: 1px solid var(--border-color); border-radius: 6px; }
.lx-erp-branding-preview img { max-width: 90%; max-height: 5rem; object-fit: contain; }
img.lxh-logo-icon { border-radius: 4px; object-fit: contain; }
