/* css/privacy.css – Privatmodus (Sichtschutz), Modul js/core/privacy.js. Eigene Klassen mit Präfix pv.
   Verschwimmen nur per filter, die Daten bleiben unverändert. Klassen am <html>: pv-on · pv-cat-<Bereich> · pv-notap. */

/* ---------- Verschwimmen ---------- */
.pv { transition: filter .2s; }
html.pv-on .pv.is-private,
html.pv-on.pv-cat-betraege .pv[data-pv="betraege"],
html.pv-on.pv-cat-wochenreview .pv[data-pv="wochenreview"],
html.pv-on.pv-cat-monatsreview .pv[data-pv="monatsreview"],
html.pv-on.pv-cat-controlling .pv[data-pv="controlling"],
html.pv-on.pv-cat-ziele .pv[data-pv="ziele"],
html.pv-on.pv-cat-erfolge .pv[data-pv="erfolge"],
html.pv-on.pv-cat-ideen .pv[data-pv="ideen"],
html.pv-on.pv-cat-mindset .pv[data-pv="mindset"],
html.pv-on.pv-cat-fundament .pv[data-pv="fundament"],
html.pv-on.pv-cat-selbst .pv[data-pv="selbst"],
html.pv-on.pv-cat-entscheidungen .pv[data-pv="entscheidungen"],
html.pv-on.pv-cat-gewohnheiten .pv[data-pv="gewohnheiten"],
html.pv-on.pv-cat-immobilien .pv[data-pv="immobilien"],
html.pv-on.pv-cat-kontakte .pv[data-pv="kontakte"] { filter: blur(7px); user-select: none; cursor: pointer; }
/* aufgedeckt (Antippen), oder Eingabe im Feld: lesbar, damit man darin arbeiten kann */
html.pv-on .pv.peek,
html.pv-on .pv.peek .pv,
html.pv-on .pv:focus,
html.pv-on .pv:focus-within { filter: none !important; cursor: auto; user-select: auto; }
html.pv-on.pv-notap .pv { cursor: auto; }

/* ---------- Leiste ---------- */
.pvBar { display: none; align-items: center; gap: var(--s3); padding: var(--s2) var(--s5); background: var(--a-person); color: var(--on-solid); font-size: var(--fs-sm); font-weight: 500; position: sticky; top: 0; z-index: 15; margin-bottom: var(--s4); border-radius: var(--r-md); }
html.pv-on .pvBar { display: flex; }
.pvBarIc { display: inline-flex; flex-shrink: 0; }
.pvBarTxt { flex: 1; min-width: 0; }
.pvBar button { background: var(--wash); border: 0; border-radius: 99px; height: 28px; padding: 0 var(--s3); color: var(--on-solid); font: inherit; font-size: var(--fs-xs); font-weight: 600; cursor: pointer; }
.pvBar button:hover { background: var(--border-strong); }
.pvBar button:focus-visible { outline: 2px solid var(--on-solid); outline-offset: 2px; }

/* ---------- Knöpfe, Schalter ---------- */
.pvBtn[aria-pressed="true"] { background: var(--a-person); border-color: var(--a-person); color: var(--on-solid); }
.pvNavSwitch { margin-left: auto; width: 32px; height: 18px; pointer-events: none; flex-shrink: 0; }
.pvNavSwitch::after { width: 12px; height: 12px; }
.pvNavSwitch[aria-checked="true"]::after { left: 17px; }
.navBtn[data-nav-id="privacy"] { display: flex; align-items: center; }
.pvLock { width: 32px; height: 32px; border-radius: var(--r-sm); border: 0; background: transparent; color: var(--ink-3); display: inline-grid; place-items: center; cursor: pointer; flex-shrink: 0; padding: 0; }
.pvLock:hover { background: var(--surface-2); color: var(--ink); }
.pvLock[aria-pressed="true"] { color: var(--a-person); }
.pvLock:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }

/* ---------- Privat-Zeile und Hinweis (Detailseiten) ---------- */
.pvRow { display: flex; align-items: center; gap: var(--s3); padding: var(--s3) 0; border-top: 1px solid var(--border); margin-top: var(--s2); }
.pvRow > .lc, .pvRowIc { color: var(--ink-3); display: inline-flex; flex-shrink: 0; }
.pvRowTxt { flex: 1; min-width: 0; }
.pvRowTxt b { font-weight: 500; display: block; }
.pvRowTxt small { color: var(--ink-3); font-size: var(--fs-xs); }
.pvReveal { display: none; align-items: center; gap: var(--s3); padding: var(--s3) var(--s4); border-radius: var(--r-md); background: var(--surface-2); border-left: 3px solid var(--a-person); margin-bottom: var(--s4); font-size: var(--fs-sm); color: var(--ink-2); flex-wrap: wrap; }
.pvReveal > .lc { color: var(--a-person); }
.pvReveal > span { flex: 1; min-width: 200px; }
html.pv-on .pvReveal.is-private,
html.pv-on.pv-cat-betraege .pvReveal[data-pv="betraege"],
html.pv-on.pv-cat-wochenreview .pvReveal[data-pv="wochenreview"],
html.pv-on.pv-cat-monatsreview .pvReveal[data-pv="monatsreview"],
html.pv-on.pv-cat-controlling .pvReveal[data-pv="controlling"],
html.pv-on.pv-cat-ziele .pvReveal[data-pv="ziele"],
html.pv-on.pv-cat-erfolge .pvReveal[data-pv="erfolge"],
html.pv-on.pv-cat-ideen .pvReveal[data-pv="ideen"],
html.pv-on.pv-cat-mindset .pvReveal[data-pv="mindset"],
html.pv-on.pv-cat-fundament .pvReveal[data-pv="fundament"],
html.pv-on.pv-cat-selbst .pvReveal[data-pv="selbst"],
html.pv-on.pv-cat-entscheidungen .pvReveal[data-pv="entscheidungen"],
html.pv-on.pv-cat-gewohnheiten .pvReveal[data-pv="gewohnheiten"],
html.pv-on.pv-cat-immobilien .pvReveal[data-pv="immobilien"],
html.pv-on.pv-cat-kontakte .pvReveal[data-pv="kontakte"] { display: flex; }
/* Der Hinweis selbst bleibt lesbar */
html.pv-on .pvReveal { filter: none; }

/* ---------- Einstellungen-Karte und Dialog ---------- */
.pvH { margin: var(--s5) 0 var(--s2); font-size: var(--fs-xs); font-weight: 600; color: var(--ink-3); }
.pvCatRow { display: flex; align-items: center; gap: var(--s3); padding: var(--s2) 0; border-top: 1px solid var(--border); }
.pvCatRow > .lc { color: var(--area, var(--ink-3)); }
.pvDialog { max-height: calc(100vh - 2 * var(--s4)); overflow: auto; }
.pvAct { margin-top: var(--s5); }

/* Menü- und Suchknopf schweben oben links (bis 1024 px): die Leiste klebt darunter */
@media (max-width: 1024px) {
  .pvBar { top: calc(var(--s7) + var(--s3)); }
}
@media (max-width: 640px) {
  .pvBar { padding: var(--s2) var(--s4); }
  .pvLong { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .pv { transition: none; }
}
