/* Einstellungsfenster — gleiche Farbwelt wie das Widget, aber auf Lesbarkeit in einem größeren Fenster ausgelegt. */ :root { color-scheme: dark; --surface: #1e1e22; --surface-raised: rgba(255, 255, 255, 0.05); --surface-input: rgba(255, 255, 255, 0.06); --text-primary: #ffffff; --text-secondary: #c3c2b7; --text-muted: #898781; --hairline: rgba(255, 255, 255, 0.1); --accent: #3987e5; --good: #0ca30c; --warning: #fab219; --font: system-ui, -apple-system, "Segoe UI", sans-serif; } * { box-sizing: border-box; } html, body { margin: 0; height: 100%; background: var(--surface); color: var(--text-primary); font-family: var(--font); font-size: 13px; overflow: hidden; } body { display: flex; flex-direction: column; } /* ── Titelleiste ─────────────────────────────────────────────────────── */ .titlebar { -webkit-app-region: drag; display: flex; align-items: center; gap: 8px; padding: 9px 10px 9px 14px; border-bottom: 1px solid var(--hairline); flex: 0 0 auto; } .title { font-size: 12px; font-weight: 600; color: var(--text-secondary); } .spacer { flex: 1; } .icon-btn { -webkit-app-region: no-drag; display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 22px; border: 0; border-radius: 4px; background: transparent; color: var(--text-muted); font-size: 13px; cursor: pointer; } .icon-btn:hover { background: var(--surface-raised); color: var(--text-primary); } /* ── Inhalt ──────────────────────────────────────────────────────────── */ .content { flex: 1 1 auto; overflow-y: auto; padding: 14px 16px 18px; } .content::-webkit-scrollbar { width: 8px; } .content::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.12); border-radius: 4px; } .path { margin: 0 0 16px; font-size: 11px; color: var(--text-muted); word-break: break-all; } .group + .group { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--hairline); } .group h2 { display: flex; align-items: center; gap: 8px; margin: 0 0 4px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted); } .tag { font-size: 9.5px; font-weight: 500; letter-spacing: 0.03em; text-transform: none; color: var(--warning); border: 1px solid currentColor; border-radius: 3px; padding: 0 4px; } .note { margin: 0 0 12px; font-size: 11px; line-height: 1.5; color: var(--text-muted); } .note code { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: 10.5px; background: var(--surface-input); border-radius: 3px; padding: 1px 4px; } /* ── Zeilen ──────────────────────────────────────────────────────────── */ .row { display: grid; grid-template-columns: 148px 1fr; gap: 10px; align-items: start; padding: 7px 0; } .row > label { padding-top: 5px; color: var(--text-secondary); } .control { display: flex; flex-direction: column; gap: 5px; } .control.inline { flex-direction: row; align-items: center; gap: 6px; } .control .hint { font-size: 10.5px; line-height: 1.45; color: var(--text-muted); } .colon { color: var(--text-muted); } .grid { display: grid; grid-template-columns: 148px 1fr; gap: 8px 10px; align-items: center; } .grid label { color: var(--text-secondary); } /* ── Eingabefelder ───────────────────────────────────────────────────── */ input[type="text"], input[type="number"], select { width: 100%; padding: 6px 8px; border: 1px solid var(--hairline); border-radius: 5px; background: var(--surface-input); color: var(--text-primary); font-family: inherit; font-size: 12.5px; font-variant-numeric: tabular-nums; } input[type="number"] { max-width: 170px; } .control.inline input[type="number"] { max-width: 72px; } input:focus-visible, select:focus-visible, button:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; } input[type="checkbox"] { width: 15px; height: 15px; margin: 4px 0 0; accent-color: var(--accent); cursor: pointer; } input[type="range"] { width: 190px; accent-color: var(--accent); cursor: pointer; } .control:has(> input[type="range"]) { flex-direction: row; align-items: center; gap: 10px; } output { font-size: 12px; font-variant-numeric: tabular-nums; color: var(--text-secondary); min-width: 42px; } /* Ungültige Eingabe deutlich, aber nicht allein über die Farbe */ input[aria-invalid="true"] { border-color: var(--warning); background: rgba(250, 178, 25, 0.08); } /* ── Fußzeile ────────────────────────────────────────────────────────── */ .actions { display: flex; align-items: center; gap: 8px; padding: 11px 16px; border-top: 1px solid var(--hairline); flex: 0 0 auto; } .btn { padding: 6px 14px; border: 1px solid var(--hairline); border-radius: 5px; background: transparent; color: var(--text-secondary); font-family: inherit; font-size: 12.5px; cursor: pointer; } .btn:hover { background: var(--surface-raised); color: var(--text-primary); } .btn.primary { background: var(--accent); border-color: var(--accent); color: #ffffff; font-weight: 500; } .btn.primary:hover { filter: brightness(1.12); } .btn:disabled { opacity: 0.45; cursor: default; } .feedback { font-size: 11.5px; color: var(--good); } .feedback[data-kind="error"] { color: var(--warning); }