/* ════════════════════════════════════════════════════════════════════════
   celledit.apex.css — GESETZ 3: EIN FELD-SYSTEM (SSoT)

   Eine einzige, token-basierte Definition für editierbare Inline-Zellen im
   Faktura-Modul. Ersetzt die Wildwuchs-Idiome (lv-edit, ag-input, fakt-input,
   lv-num) durch EINE Komponente `apex-celledit` mit Modifiern. Geometrie kommt
   ausschließlich aus den --field-*-Tokens → eine Änderung wirkt überall.

   Edit-Mechanik bleibt contenteditable (kein <input>-Umbau) — nur das
   Design-System-Aussehen wird vereinheitlicht.
   ════════════════════════════════════════════════════════════════════════ */

:root {
  --field-radius:        6px;
  --field-bg:            #fff;
  --field-bg-hover:      #F7F7FB;
  --field-border:        #E5E5EA;
  --field-border-hover:  #C7CCD2;
  --field-focus:         #0356b1;            /* IKT-Hausfarbe */
  --field-focus-ring:    0 0 0 2px rgba(3, 86, 177, 0.18);
  --field-pad-y:         3px;
  --field-pad-x:         7px;
  --field-required-bg:   rgba(184, 120, 0, 0.08);
  --field-required-bd:   rgba(184, 120, 0, 0.45);
  --field-required-ring: 0 0 0 2px rgba(184, 120, 0, 0.18);
}

/* Basis: editierbare Inline-Zelle (für contenteditable-Spans). */
.apex-celledit {
  display: inline-flex;
  align-items: center;
  padding: var(--field-pad-y) var(--field-pad-x);
  border: 1px solid var(--field-border);
  border-radius: var(--field-radius);
  background: var(--field-bg);
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  cursor: text;
  outline: none;
  transition: border-color .1s ease, box-shadow .1s ease, background-color .1s ease;
}
.apex-celledit:hover  { background: var(--field-bg-hover); border-color: var(--field-border-hover); }
.apex-celledit:focus  { background: var(--field-bg); border-color: var(--field-focus); box-shadow: var(--field-focus-ring); }

/* Modifier: numerische Zelle (Menge, Einzelpreis) — rechtsbündig, Tabellenziffern. */
.apex-celledit--num   { justify-content: flex-end; min-width: 38px; font-variant-numeric: tabular-nums; }

/* Modifier: Textzelle (Positionsname/Bezeichnung) — flexibel breit. */
.apex-celledit--text  { min-width: 60px; max-width: 100%; }

/* Modifier: Ordnungszahl/Position (OZ). */
.apex-celledit--oz    { min-width: 26px; justify-content: center; }
.apex-celledit--oz.oz-suggestion { color: #B0B0B6; }
.apex-celledit--oz.oz-suggestion:hover,
.apex-celledit--oz.oz-suggestion:focus { color: #1C1C1E; }
.apex-celledit--oz.oz-locked { color: var(--pd-text, #1C1C1E); }

/* Zustand: Pflichtfeld leer (E-Rechnung) — dezenter Bernstein-Hinweis. */
.apex-celledit.is-empty-required        { background: var(--field-required-bg); border-color: var(--field-required-bd); }
.apex-celledit.is-empty-required:hover  { background: var(--field-required-bg); }
.apex-celledit.is-empty-required:focus  { background: var(--field-bg); border-color: var(--field-required-bd); box-shadow: var(--field-required-ring); }
.apex-celledit.is-empty-required:empty::before {
  content: attr(data-placeholder);
  color: #B0843C;
}
