

/* --- 0) Aus gn2-extra.css hierher verschoben (Regel 3: Feld-Regeln nur hier).
   Basis-Feldstil (unscoped) + Fokus + Such-Overlay. Steht VOR den
   .view/.panel-Regeln unten – gleiche Kaskade wie zuvor, keine Optik-Änderung. */
input[type="text"], input[type="search"], input[type="number"],
input[type="email"], input[type="url"], input[type="tel"],
input[type="password"], input[type="time"], input[type="date"],
input[type="datetime-local"], textarea,
.tt-hours, .tt-note, .tt-price, .tt-rate,
.td-link-form input, .td-subtask-add input {
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-xs);
  color: var(--text);
  padding: 10px 12px;
  font: inherit;
  font-size: var(--fs-base);
  transition: border-color .15s ease, box-shadow .15s ease;
}
input::placeholder, textarea::placeholder { color: var(--muted); opacity: 1; }

/* Das native Browser-Kreuz in Suchfeldern ist weg (Jenny, 01.09.2026:
   „das X springt noch immer") – der Browser setzt es je nach Zustand
   unterschiedlich, das ließ sich mit CSS nicht ruhig stellen. Wo ein
   Suchfeld ein Kreuz braucht, setzt Neura ein eigenes daneben
   (.such-loeschen) – das sitzt fest und leert die Suche wirklich. */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; appearance: none; display: none; }

/* Eigenes Kreuz im Suchfeld – fest positioniert, springt nie */
.such-feld { position: relative; display: flex; align-items: center; }
.such-feld > input[type="search"] { width: 100%; padding-right: 48px; }
.such-loeschen { position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
  width: 28px; height: 28px; border-radius: 50%; border: 0; padding: 0; cursor: pointer;
  display: grid; place-items: center; background: transparent; color: var(--muted); }
.such-loeschen:hover { color: var(--text); background: var(--surface-2); }
.such-loeschen:focus-visible { outline: none; color: var(--text);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--logo-magenta) 60%, transparent); }
.such-loeschen svg { width: var(--icon); height: var(--icon); }
.such-loeschen[hidden] { display: none; }

/* Fokus in Lumina (Gelb-Ring) – bis 17.08.2026 Magenta, auf Jennys
   Werkstatt-Auftrag portalweit auf Gelb umgestellt ("keine pinken
   aktiven Eingabefelder mehr"). */
input:focus, input:focus-visible,
textarea:focus, textarea:focus-visible,
select:focus, select:focus-visible,
.tt-hours:focus, .tt-note:focus, .tt-price:focus, .tt-rate:focus,
.td-link-form input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 45%, transparent);
}

/* Such-Overlay-Feld behält seinen Rahmen-unten-Look (höhere Spezifität) */
.sel-search .sel-search-input {
  border: 0;
  border-bottom: 1px solid var(--border-soft);
  border-radius: 0;
  padding: 14px 16px;
}
.sel-search .sel-search-input:focus { box-shadow: none; border-bottom-color: var(--accent); }

/* --- 1) Eingabefelder: EIN Glas-Look überall -------------------------
   Gilt für Text-, Mail-, URL-, Telefon-, Zahl-, Datum-, Zeit-, Such-
   und Passwort-Felder sowie Dropdowns und Textbereiche – innerhalb der
   App-Ansichten (.view) und Panels (.panel). Ausgenommen: Häkchen,
   Radios, Farb-, Bereichs- und Datei-Felder sowie das Such-Overlay.
   Das Claude-Panel (.claude-drawer .capture textarea) hängt an <body>
   und läuft deshalb hier ausdrücklich mit: Jenny will, dass das
   Eingabefeld beim Sprechen mit Claude genauso aussieht wie z. B. beim
   Auftrag einstellen in der Werkstatt – ein Feld-Look im ganzen Portal,
   keine Extra-Optik fürs Claude-Feld mehr. (Jenny, 14.08.2026) */
.view input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not([type="file"]),
.view select,
.view textarea,
.panel input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not([type="file"]),
.panel select,
.panel textarea,
.claude-drawer .capture textarea {
  background-color: color-mix(in srgb, var(--card) 42%, transparent);
  -webkit-backdrop-filter: blur(10px) saturate(120%);
  backdrop-filter: blur(10px) saturate(120%);
  border: 1px solid color-mix(in srgb, var(--text) 13%, transparent);
  border-radius: var(--radius-feld);
  color: var(--text);
  font: inherit;
  font-size: var(--fs-lg);            /* verhindert das iOS-Auto-Zoomen beim Antippen */
  line-height: 1.4;
  padding: 12px 14px;
  min-height: 46px;
  box-sizing: border-box;
  transition: border-color 0.15s, box-shadow 0.15s, background-color 0.15s;
}

.view textarea,
.panel textarea,
.claude-drawer .capture textarea {
  min-height: 96px;
  resize: vertical;
}

/* Dropdowns: eigener Pfeil statt Browser-Grau, gleiche Höhe wie Felder */
.view select,
.panel select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 40px;
  cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'><path d='M1 1l6 6 6-6' fill='none' stroke='%23a08cc0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 13px center;
}

/* Fokus: immer Lumina-Ring (Gelb) – ein einheitliches Signal im ganzen
   Portal. Bis 17.08.2026 war das Magenta, siehe Werkstatt-Auftrag Jenny. */
.view input:focus-visible, .view select:focus-visible, .view textarea:focus-visible,
.panel input:focus-visible, .panel select:focus-visible, .panel textarea:focus-visible,
.claude-drawer .capture textarea:focus-visible {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);
}

.view ::placeholder, .panel ::placeholder,
.claude-drawer .capture textarea::placeholder { color: var(--muted); opacity: 0.9; }

/* Datums-/Zeit-Icon UND Apples Auswahl-Overlay passend zum Theme.
   datetime-local stand hier nicht mit drin – deshalb kam der
   iOS-Kalender bei den Listen in Weiß. (Jenny, 03.08.2026) */
.view input[type="date"], .view input[type="time"], .view input[type="datetime-local"],
.panel input[type="date"], .panel input[type="time"], .panel input[type="datetime-local"] { color-scheme: dark; }
:root[data-theme="light"] .view input[type="date"],
:root[data-theme="light"] .view input[type="datetime-local"],
:root[data-theme="light"] .panel input[type="date"],
:root[data-theme="light"] .panel input[type="datetime-local"] { color-scheme: light; }

/* --- 2) Deaktivierte Felder klar erkennbar --- */
.view input:disabled, .view select:disabled, .view textarea:disabled,
.panel input:disabled, .panel select:disabled, .panel textarea:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

/* Radios: unser Rot-Rosa statt Browser-Blau. (Die Checkbox-Regeln
   stehen weiter unten – die alte 17px-Regel hier hätte die runden
   28er-Checkboxen wieder kleingedrückt.) */
.view input[type="radio"], .panel input[type="radio"] {
  accent-color: var(--logo-magenta);
  width: 17px;
  height: 17px;
}

/* Datum-/Zeit-Felder überall zähmen: native Eigenbreite abschalten, damit sie
   nie breiter als ihr Container werden (iOS-Überlauf ein für alle mal behoben) */
.view input[type="date"], .panel input[type="date"],
.view input[type="time"], .panel input[type="time"] {
  -webkit-appearance: none;
  appearance: none;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

/* ============================================================
   Demo-Modus: Beträge in Eingabefeldern verdecken.
   In ein Zahlenfeld lässt sich kein „XXX" schreiben, ohne den Wert
   zu zerstören – deshalb bleibt der echte Wert im Feld stehen und
   wird nur unlesbar dargestellt. Gespeichert wird weiter richtig.
   (Jenny, 01.08.2026)
   ============================================================ */
body.demo-aktiv .view input[type="number"],
body.demo-aktiv .panel input[type="number"] {
  color: transparent;
  text-shadow: 0 0 8px var(--muted);
}
body.demo-aktiv .view input[type="number"]:focus,
body.demo-aktiv .panel input[type="number"]:focus {
  color: var(--text);
  text-shadow: none;
}

/* Suchfeld in einer Kopfzeile steht auf derselben Linie wie die Knöpfe
   daneben (44 px). Gehört hierher, weil Formularfelder ausschließlich in
   dieser Datei gestylt werden. (Jenny, 01.08.2026) */
.view-head input[type="search"] { height: 44px; }

/* Der Notiz-Editor füllt die Höhe: eine Notiz ist kein Kommentarfeld.
   Die allgemeine Regel „.panel textarea { min-height: 96px }" weiter oben
   hat dieselbe Stärke wie eine Regel in gn2-extra.css und gewinnt, weil
   diese Datei zuletzt geladen wird – deshalb steht die Ausnahme hier.
   (Jenny, 01.08.2026) */
.nz-editor textarea {
  min-height: 60vh;
  /* Die Höhe setzt notizen.js beim Tippen – hier nur die Grenze nach oben,
     damit das Feld nie über den Bildschirm hinauswächst. */
  max-height: calc(100vh - 220px);
}
@media (max-width: 800px) { .nz-editor textarea { min-height: 44vh; } }

/* Tagebuch-Editor: das Schreibfeld füllt die ganze Seitenbreite und ist
   von Haus aus hoch – wie eine leere Seite, auf der man einfach losschreibt.
   Steht hier, weil Formularfelder nur in dieser Datei gestylt werden.
   (Jenny, 04.08.2026) */
.tb-editor #tb-highlight { width: 100%; margin-bottom: 12px; }
.tb-editor #tb-text {
  width: 100%;
  min-height: 50vh;
  max-height: calc(100vh - 220px);
  resize: vertical;
}
@media (max-width: 800px) { .tb-editor #tb-text { min-height: 44vh; } }

/* Werkstatt: der Wunsch-Text braucht mehr Platz als eine Zeile Notiz –
   höheres Eingabefenster auf Jennys Wunsch. Steht hier, weil Formularfelder
   nur in dieser Datei gestylt werden. (Jenny, 14.08.2026) */
.wk-feldzeile textarea { min-height: 220px; }

/* Werkstatt-Wunschfeld: KEIN pinker Rahmen mehr. Der ruhend-pinke Rahmen
   (Ausnahme vom 08.09.2026) wurde auf Jennys Wunsch wieder entfernt
   (Werkstatt-Auftrag 12.09.2026: „Verzichte auf das Rosa hier"). Das Feld
   trägt jetzt wie alle anderen den feinen Standardrahmen aus der Grundregel
   (--border); der Fokus bleibt Lumina/Gelb über den Block „IMMER Lumina im
   Fokus" weiter unten. Keine eigene Rahmen-Regel mehr nötig. */

/* Notiz-Editor wie in Apples Notizen: Text auf dem Grund, kein Kasten.
   Gilt für Titel und Rumpf; der Fokusring bleibt, damit man weiß, wo man
   schreibt. Steht hier, weil Formularfelder nur in dieser Datei gestylt
   werden. (Jenny, 01.08.2026) */
.nz-editor #nz-titel,
.nz-editor #nz-text {
  background: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  border-color: transparent;
  padding-left: 4px;
  padding-right: 4px;
}
.nz-editor #nz-titel:focus-visible,
.nz-editor #nz-text:focus-visible {
  border-color: transparent;
  box-shadow: none;
  outline: 2px solid color-mix(in srgb, var(--accent) 55%, transparent);
  outline-offset: 4px;
  border-radius: var(--radius-xs);
}

/* ============================================================
   Kopfzeile der Mailansicht: Suchfeld, Auswahl und Icon-Knöpfe stehen
   nebeneinander und müssen deshalb GLEICH hoch sein. Die Felder erben
   sonst die 46 px aus der Grundregel weiter oben, die Icon-Knöpfe sind
   38 – das sah aus wie zwei Reihen in einer. (Jenny, 02.08.2026)
   Steht hier und nicht in gn2-extra, weil Feldregeln hierher gehören.
   ============================================================ */
.mailv .view-head input[type="search"],
.mailv .view-head input[type="text"],
.mailv .view-head select,
#mailv-suche,
#mailv-filter {
  height: 38px;
  min-height: 38px;
  max-height: 38px;
  padding-top: 0;
  padding-bottom: 0;
  line-height: 36px;
  box-sizing: border-box;
}

/* ============================================================
   GILT ÜBERALL – auch außerhalb von .view und .panel
   ------------------------------------------------------------
   Die Regeln weiter oben verlangen, dass ein Feld in .view oder .panel
   steht. Dialoge, die an <body> gehängt werden (Termin anlegen, Kunde
   anlegen, Ordner wählen …), liegen aber in keinem von beiden – dort
   blieben Felder ungestylt: Selects niedriger als Eingabefelder, und der
   Fokusring kam aus irgendeiner Altregel in Gold.
   Beides ist hier ein für alle Mal festgelegt. (Jenny, 02.08.2026)
   Update 17.08.2026: der Fokusring ist jetzt wieder Gold/Lumina – diesmal
   absichtlich, siehe Block "IMMER Lumina im Fokus" direkt darunter.
   ============================================================ */
input[type="text"], input[type="email"], input[type="url"], input[type="tel"],
input[type="number"], input[type="date"], input[type="time"],
input[type="datetime-local"], input[type="search"], input[type="password"],
select, textarea {
  min-height: 46px;
  font-size: var(--fs-lg);
}
select {
  height: 46px;
  padding-top: 0;
  padding-bottom: 0;
}
textarea { min-height: 96px; }

/* IMMER Lumina im Fokus – nirgends mehr Magenta. Bis 17.08.2026 war der
   Ring hier Magenta ("KEIN Gold im Fokus"); Jenny fand pinke aktive
   Eingabefelder störend und ließ sie portalweit auf Gelb umstellen. */
input:focus, input:focus-visible,
select:focus, select:focus-visible,
textarea:focus, textarea:focus-visible,
[contenteditable]:focus, [contenteditable]:focus-visible {
  outline: none !important;
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 24%, transparent) !important;
}

/* Ausnahmen, die ihre eigene Höhe brauchen */
input[type="checkbox"], input[type="radio"], input[type="range"],
input[type="color"], input[type="file"] { min-height: 0; }
.mailv .view-head input, .mailv .view-head select { min-height: 38px; }
.sel-search .sel-search-input { min-height: 0; }

/* Namens-Umschalter in der Kopfleiste („wer ist gerade vorne?"). Steht hier,
   weil Formularfelder ausschließlich in dieser Datei gestylt werden. Die
   Kopfleiste ist weder .view noch .panel, deshalb bekommt das Feld hier den
   Glas-Look ausdrücklich. Kompakt auf Knopfhöhe (--btn = 42px), damit es neben
   den Icon-Knöpfen der Leiste sitzt statt sie zu überragen; der Fokusring
   kommt aus „IMMER Lumina im Fokus" weiter oben. (Jenny, 12.09.2026) */
.topbar-gruss .gruss-select {
  appearance: none;
  -webkit-appearance: none;
  height: var(--btn);
  min-height: var(--btn);
  padding: 0 32px 0 12px;
  font: inherit;
  font-size: var(--fs-base);
  color: var(--text);
  background-color: color-mix(in srgb, var(--card) 42%, transparent);
  -webkit-backdrop-filter: blur(10px) saturate(120%);
  backdrop-filter: blur(10px) saturate(120%);
  border: 1px solid color-mix(in srgb, var(--text) 13%, transparent);
  border-radius: var(--radius-feld);
  cursor: pointer;
  max-width: 168px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'><path d='M1 1l6 6 6-6' fill='none' stroke='%23a08cc0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 12px center;
}

/* ============================================================
   Checkboxen: EINE Form und Größe im ganzen Portal – RUND wie der
   Erledigt-Haken, 20 px, beim Anhaken gefüllt. Selbst gezeichnet,
   weil die eckige Grundform sonst vom System kommt. Gilt überall,
   auch in Dialogen an <body>. (Jenny, 03.08.2026)
   Bewusste Ausnahme: der weiße Haken steckt als eingebettetes SVG
   in der Regel – ein data-URI kann keine CSS-Variablen lesen. */
input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 28px;  /* gleiche Größe wie die runden Erledigt-Kreise */
  height: 28px;
  flex: none;
  margin: 0;
  border: 2px solid var(--muted); /* 2px: die 1px-Linie wirkte neben den satten Icons zu dunkel/dünn */
  border-radius: var(--radius-pill);
  background: none;
  cursor: pointer;
  transition: 0.15s;
}
input[type="checkbox"]:hover { border-color: var(--logo-magenta); }
input[type="checkbox"]:checked {
  border-color: var(--muted);
  background-color: var(--muted); /* gefüllt im Icon-Grau statt Rot-Rosa (Jenny, 03.08.2026) */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E");
  background-size: 14px 14px;
  background-position: center;
  background-repeat: no-repeat;
}
input[type="checkbox"]:focus-visible {
  outline: 2px solid var(--logo-magenta);
  outline-offset: 2px;
}

/* ============================================================
   DISG-Ampel am Schreibfeld: nach der Prüfung zeigt der RAHMEN die
   Passung zum Empfänger – Grün = Go, Gelb = okay, Rot = passt nicht.
   Bewusste Ausnahme von „Fokus immer Magenta": hier ist der Rahmen
   eine Statusanzeige auf Jennys Wunsch; Tippen setzt ihn zurück.
   (Jenny, 03.08.2026)
   ============================================================ */
.mailv-fenster-form textarea.disg-gruen {
  border-color: var(--green) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--green) 22%, transparent) !important;
}
.mailv-fenster-form textarea.disg-gelb {
  border-color: var(--yellow) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--yellow) 22%, transparent) !important;
}
.mailv-fenster-form textarea.disg-rot {
  border-color: var(--rose) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--rose) 22%, transparent) !important;
}

/* ============================================================
   Schreibfenster der Mail auf dem Handy – nach Jennys Apple-Screenshot:
   flache Zeilen mit Haarlinie statt Glaskästen, Beschriftung in der
   Zeile, Text randlos. Steht hier (nicht in gn2-extra), weil es
   Feldregeln sind. Fokus bleibt sichtbar: Unterstrich in Magenta statt
   Ring – ein Ring um eine randlose Zeile sähe wie ein Fehler aus.
   (Jenny, 03.08.2026)
   ============================================================ */
@media (max-width: 700px) {
  .mailv-fenster-form .mailv-f-zeile {
    display: flex;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid var(--border-soft);
    padding: 4px 0;
  }
  .mailv-fenster-form .mailv-f-zeile label {
    flex: none;
    color: var(--muted);
    font-size: var(--fs-base);
  }
  .mailv-fenster-form .mailv-f-zeile input,
  .mailv-fenster-form .mailv-f-zeile select {
    flex: 1;
    min-width: 0;
    min-height: 32px; /* kompakter – die Zeilen wirkten Jenny zu hoch (09.08.2026) */
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
    border-radius: 0;
    padding-left: 0;
    padding-top: 4px;
    padding-bottom: 4px;
  }
  /* Kein Ring, kein Strich beim Tippen im Schreibblatt – Jenny empfand
     beides als Fehler-Rahmen (09.08.2026, „pinker Rahmen"). Bewusste
     Ausnahme von „Fokus immer sichtbar": iOS ließ auch den
     :focus-visible-Ring nach programmatischem Fokus dauerhaft stehen.
     Auf dem Telefon zeigen Cursor und Tastatur die Stelle. */
  .mailv-fenster-form .mailv-f-zeile input:focus,
  .mailv-fenster-form .mailv-f-zeile select:focus,
  .mailv-fenster-form .mailv-f-zeile input:focus-visible,
  .mailv-fenster-form .mailv-f-zeile select:focus-visible {
    border: 0 !important;
    box-shadow: none !important;
    outline: none !important;
  }
  .mailv-fenster-form > textarea {
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
    border-radius: 0;
    padding-left: 0;
    min-height: 40vh;
  }
}

/* Empfängeradresse in Neongelb – Jennys Wunsch (09.08.2026) statt des
   pinken Rahmens. Bewusste CD-Ausnahme: Akzent als Platzhalter-Text; das
   Token wechselt im hellen Modus automatisch auf das dunklere Lumina. */
#mailv-f-an::placeholder { color: var(--accent); opacity: 1; }

/* Schreibfenster: kein Magenta-Rahmen/Ring beim Tippen – auf ALLEN
   Geräten (Jenny, 09.08.2026, „auch am Desktop bitte keinen pinken
   Rahmen"). Bewusste CD-Ausnahme vom Fokus-Magenta: die Schreibmarke
   zeigt die Stelle. Am Rechner behält das Feld beim Tippen seinen
   normalen feinen Rand, statt ihn magenta zu färben. */
.mailv-fenster-form .mailv-f-zeile input:focus,
.mailv-fenster-form .mailv-f-zeile select:focus,
.mailv-fenster-form .mailv-f-zeile input:focus-visible,
.mailv-fenster-form .mailv-f-zeile select:focus-visible {
  border-color: color-mix(in srgb, var(--text) 13%, transparent) !important;
  box-shadow: none !important;
  outline: none !important;
}

/* ============================================================
   GILT ÜBERALL: Ausklapp-Listen dürfen keinen eigenen Glas-Blur tragen.
   Mit backdrop-filter malte Chrome am Mac die geöffnete Liste des
   Von-Feldes HINTER das Verfassen-Fenster – die Absenderwahl wirkte
   kaputt. Dropdowns stehen deshalb auf voller Karte statt auf Glas;
   geschlossen sieht man den Unterschied kaum. (Jenny, 07.08.2026)
   ============================================================ */
select {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  background-color: var(--card) !important;
}

/* ── Verfassen-Fenster: Absenderwahl („Von") deutlich lesbar ─────────────
   Die Zeile erbte die gedämpfte 0,8rem-Schrift der Formularzeilen – die
   gewählte Adresse stand damit „im Hintergrund" und fiel Jenny erst nach
   dem Senden auf (25.08.2026). Jetzt: volle Textfarbe, 16px, halbfett. */
.mailv-fenster-form .mailv-f-zeile select#mailv-f-von {
  color: var(--text);
  font-size: var(--fs-lg);
  font-weight: 600;
}

/* ============================================================
   BREITE – Felder füllen ihren Platz (Jenny, 04.09.2026:
   „vor allem Felder, die mobil nicht über die ganze Breite gehen")
   ------------------------------------------------------------
   Befund: Die Regeln oben setzen Hintergrund, Rahmen, Radius, Schrift und
   Höhe – aber nie eine BREITE. Ein Feld ohne eigene Regel läuft deshalb in
   seiner Browser-Eigenbreite (~190 px), egal wie breit der Behälter ist.
   Dazu 15 Felder mit fester Pixelbreite (bis 420 px – das lief auf dem
   Handy über) und 26 Feldzeilen ohne Umbruch (Umbruch: gn2-extra.css,
   Block „Feldzeilen brechen auf dem Handy um").

   Spezifität hier absichtlich NULL (:where): Auf dem Desktop gewinnen
   weiter feste Breiten aus den Ansichten (Preisziel 92 px, Stundensatz
   112 px …) – das sind bewusste Kurzfelder. Auf dem Handy werden genau
   diese direkt darunter ausdrücklich aufgehoben.
   ============================================================ */
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not([type="file"]):not([type="submit"]):not([type="button"]):not([type="image"]),
       select, textarea) {
  max-width: 100%;       /* nie breiter als der Behälter */
  min-width: 0;          /* in Flex-Zeilen schrumpfen dürfen statt die Zeile zu sprengen */
  box-sizing: border-box;
}

/* Eigenständige Felder füllen auch am Desktop ihre Spalte.
   Bewusst nur DIREKTE Kinder von .view/.panel: Das sind Felder, die allein
   in einem Panel stehen – die sollen die Breite nutzen. Felder in einer
   Zeile (.preis-ziel input, .abr-satz-form input …) haben einen Wrapper
   dazwischen und bleiben so kurz, wie sie gemeint sind. (04.09.2026) */
:where(.view, .panel) > :where(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not([type="file"]):not([type="submit"]):not([type="button"]),
                               select, textarea) {
  width: 100%;
}

@media (max-width: 700px) {
  /* Jedes Feld nimmt die ganze Zeile – als Block über width, in Flex-Zeilen
     über die Grundbreite (flex-basis), in Rastern füllt width die Zelle. */
  :where(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="range"]):not([type="file"]):not([type="submit"]):not([type="button"]):not([type="image"]),
         select, textarea) {
    width: 100%;
    flex: 1 1 100%;
  }
  /* Feste Desktop-Breiten aufheben – ein 92-px-Feld allein in einer
     360-px-Zeile sieht kaputt aus, nicht kompakt. */
  .preis-ziel input,
  .abr-satz-form input,
  .mailv-regel-form input[name="ziel"],
  .tf-zeile select,
  .lb-neu-fuss input[type="date"],
  .lb-neu-fuss select,
  .nz-editor-leiste .status-select,
  .nz-import-zeile .status-select,
  .lat-eingabe input,
  .private-form input,
  .fin-priv-form input[type="number"],
  .abo-form input[type="number"],
  .period-switch .status-select,
  .sz-form .sz-input,
  .kal-pop-row .kal-feld:first-child {
    width: 100%;
    flex: 1 1 100%;
  }
}

/* Navi-Suchfeld (11.09.2026): weiterhin etwas flacher als die 46px-Formular-
   felder – es ist ein Filter, kein Eingabeformular. Einzige Feld-Regel außerhalb
   von .view/.panel für die Seitenleiste; Fokus bleibt Lumina wie überall.
   12.09.2026 (Werkstatt, Jenny: „auch nur ne Lupe"): das Feld ist standardmäßig
   versteckt und erscheint erst neben der Lupe, wenn .side-suche die Klasse
   ist-offen trägt (Klick auf die Lupe, siehe gn2-extra.css/core.js). */
.side-suche input[type="search"] {
  display: none;
  width: 100%;
  min-width: 0;
  height: var(--btn);
  min-height: var(--btn);         /* die Grundregel setzt min-height 46px – hier bewusst etwas kleiner */
  padding: 8px 12px;
  font-size: var(--fs-base);
  border-radius: var(--radius-feld);
}
.side-suche.ist-offen input[type="search"] {
  display: block;
  flex: 1 1 auto;
}
