/* ============================================================
   g4w-tool.css — Corporate Design für G4W-Tools · Version 3
   Stand 28.08.2026 · gehört zur G4W Tool-Fabrik
   NEU in v3: Zustände für die Pflegeberechtigung (ganz unten).
   Referenz-Design: Fassaden-Perspektivkorrektur (21.08.2026).
   DUNKEL ist Standard; hell kommt über <html data-theme="light">.
   Die Umschalt-Pille liefert g4w-thema.js (immer beides einbinden).
   ============================================================ */

:root{
  --accent:#BF49CA;
  --accent-light:#E084E9;
  --accent-dark:#8f2f98;
  --cyan:#44B5D6;
  --blue:#3153B9;
  --bg:#0C0C16;
  --panel:#14141f;
  --input:#1a1a26;
  --line:rgba(255,255,255,0.09);
  --ink:#EDEDF2;
  --muted:#9A9AA6;
  --ok:#3ddc97; --warn:#f0c479; --rot:#ff6b6b;
  --mono:"Consolas","SFMono-Regular",Menlo,monospace;
  --sans:"Verdana Pro Light","Segoe UI",Verdana,Arial,sans-serif;
}
[data-theme="light"]{
  --bg:#f4f4f8;
  --panel:#ffffff;
  --input:#ffffff;
  --line:rgba(20,20,40,0.14);
  --ink:#1d1d27;
  --muted:#6d6d7a;
  --ok:#1d9e6c; --warn:#a97d12; --rot:#d43d3d;
}

*{box-sizing:border-box;}
html{color-scheme:dark}
[data-theme="light"]{color-scheme:light}
body{
  margin:0;
  font-family:var(--sans);
  background:var(--bg);
  color:var(--ink);
}

/* ---- Kopf: jedes Tool beginnt mit diesem Muster ----
   <header>
     <div class="kicker">+ + + // g4w tools · toolname</div>
     <h1>Toolname</h1>
     <p>Ein Satz, was das Tool tut.</p>
   </header>                                                  */
header{
  background:var(--bg);
  padding:22px 28px 20px;
  border-bottom:1px solid var(--line);
  background-image:linear-gradient(90deg, var(--accent), var(--cyan), var(--blue));
  background-size:100% 3px;
  background-repeat:no-repeat;
  background-position:top;
}
.kicker{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.08em;
  color:var(--cyan);
  text-transform:lowercase;
  margin:2px 0 8px;
}
header h1{
  margin:0;
  font-size:21px;
  font-weight:400;
  letter-spacing:0.01em;
  color:var(--ink);
}
header p{
  margin:6px 0 0;
  font-size:13px;
  color:var(--muted);
  max-width:720px;
}

/* ---- Inhalt: Panels in einem Raster ----
   <div class="wrap">…<div class="panel">…</div>…</div>
   Spaltenaufteilung je Tool per style="grid-template-columns:…"  */
.wrap{
  max-width:1180px;
  margin:0 auto;
  padding:24px;
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}
.panel{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:10px;
  padding:18px;
  position:relative;
}
.panel::before{
  content:"+";
  position:absolute;
  top:6px; left:10px;
  font-family:var(--mono);
  color:var(--muted);
  font-size:13px;
  opacity:0.45;
}

/* ---- Typografie & Schmuck ---- */
h2{font-size:16px; margin:0 0 2px; font-weight:400;}
.stepnum{
  display:block;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.1em;
  color:var(--cyan);
  margin-bottom:4px;
  text-transform:lowercase;
}
.badge{
  display:inline-block;
  font-family:var(--mono);
  background:rgba(191,73,202,0.14);
  color:var(--accent-light);
  font-size:11px;
  letter-spacing:0.06em;
  font-weight:600;
  padding:4px 10px;
  border-radius:20px;
  margin-bottom:10px;
  text-transform:lowercase;
}
[data-theme="light"] .badge{color:var(--accent-dark);}
.hint{
  font-size:13px;
  color:var(--muted);
  line-height:1.55;
  margin:10px 0;
}
hr{border:none; border-top:1px solid var(--line); margin:16px 0;}
a{color:var(--accent-light);}
[data-theme="light"] a{color:var(--accent-dark);}
.status{
  font-size:13px;
  color:var(--muted);
  margin-top:8px;
  min-height:18px;
  font-family:var(--mono);
}
.status.gut{color:var(--ok);}
.status.schlecht{color:var(--rot);}
.warnbox{
  background:rgba(240,196,121,0.1);
  border:1px solid var(--warn);
  color:var(--warn);
  font-size:13px;
  padding:10px 12px;
  border-radius:6px;
  margin-bottom:12px;
}

/* ---- Knöpfe ---- */
button,.btn{
  background:var(--accent);
  color:#fff;
  border:none;
  padding:10px 16px;
  border-radius:6px;
  font-size:14px;
  font-weight:600;
  font-family:var(--sans);
  cursor:pointer;
  margin:4px 6px 4px 0;
  transition:background 0.15s ease, transform 0.1s ease;
}
button:hover,.btn:hover{background:var(--accent-light);}
[data-theme="light"] button:hover,[data-theme="light"] .btn:hover{background:var(--accent-dark);}
button:active,.btn:active{transform:translateY(1px);}
button.secondary,.btn.secondary{
  background:transparent;
  color:var(--ink);
  border:1px solid var(--line);
}
button.secondary:hover,.btn.secondary:hover{border-color:var(--accent); color:var(--accent-light); background:transparent;}
[data-theme="light"] button.secondary:hover,[data-theme="light"] .btn.secondary:hover{color:var(--accent-dark);}
button:disabled,.btn:disabled{background:#3a3a46; color:#7a7a86; cursor:not-allowed;}

/* ---- Formulare ---- */
.field{margin-bottom:14px;}
.field label{
  display:block;
  font-size:13px;
  font-weight:600;
  margin-bottom:4px;
  color:var(--ink);
}
.field .rowlabel{display:flex; justify-content:space-between; align-items:center;}
.field .rowlabel span{
  font-weight:400;
  color:var(--muted);
  font-family:var(--mono);
  font-size:12px;
}
select, input[type=text], input[type=number], input[type=date], input[type=email], textarea, input[type=color]{
  width:100%;
  padding:7px;
  border-radius:6px;
  border:1px solid var(--line);
  background:var(--input);
  color:var(--ink);
  font-size:13px;
  font-family:var(--sans);
}
select:focus, input:focus, textarea:focus{outline:none; border-color:var(--accent);}
input[type=range]{width:100%; accent-color:var(--accent);}
.dropzone{
  border:1px dashed var(--line);
  border-radius:10px;
  padding:36px 16px;
  text-align:center;
  color:var(--muted);
  cursor:pointer;
  margin-bottom:16px;
  transition:border-color 0.15s ease;
}
.dropzone:hover{border-color:var(--accent);}
.dropzone input{display:none;}

/* ---- Tabellen ---- */
table{width:100%; border-collapse:collapse; font-size:13px;}
th{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.08em;
  color:var(--muted);
  text-transform:lowercase;
  text-align:left;
  padding:7px 9px;
  border-bottom:1px solid var(--line);
}
td{padding:7px 9px; border-bottom:1px solid var(--line); vertical-align:middle;}

/* ---- Fuß: in jedem Tool identisch ----
   <div class="g4w-foot">g4w gmbh — wir denken nicht nach. wir denken vorwärts.</div> */
.g4w-foot{
  text-align:center;
  padding:22px 16px 34px;
  color:var(--muted);
  font-size:12px;
  font-family:var(--mono);
  text-transform:lowercase;
}

/* ---- Umschalt-Pille (erzeugt g4w-thema.js) ----
   Selektoren bewusst mit button davor: schlagen die allgemeinen
   Button-Regeln (inkl. Hell-Hover) in der Spezifitaet. */
button.g4w-thema{
  position:fixed;top:14px;right:16px;z-index:9000;
  background:var(--panel);border:1px solid var(--line);border-radius:20px;
  color:var(--muted);font-family:var(--mono);font-size:11px;font-weight:400;
  letter-spacing:0.08em;text-transform:lowercase;padding:5px 13px;cursor:pointer;
  margin:0;transition:color 0.15s ease, border-color 0.15s ease;
}
button.g4w-thema:hover,
[data-theme="light"] button.g4w-thema:hover{
  color:var(--ink);border-color:var(--accent);background:var(--panel);transform:none;
}

/* ============================================================
   v3 — Pflegeberechtigung (ab 28.08.2026)
   ------------------------------------------------------------
   Das Cockpit sagt jedem Tool über den Kopfzeilen-Wert
   X-G4W-Tool-Recht, ob die Person PFLEGEN darf oder nur NUTZEN.
   Das Tool schreibt das Ergebnis an den body:

       <body data-recht="pflegen">   bzw.   data-recht="nutzen"

   Alles, was etwas VERÄNDERT, bekommt die Klasse `pflegen`:

       <button class="pflegen" id="speichern">Speichern</button>
       <input class="pflegen" id="satz">

   Bei `nutzen` wird es sichtbar, aber unbedienbar — nicht
   versteckt. Wer einen Knopf sucht, den es scheinbar nicht gibt,
   meldet einen Fehler; wer einen ausgegrauten Knopf sieht,
   versteht sofort, woran es liegt.

   ⚠ Das hier ist Höflichkeit, keine Sicherung. Die eigentliche
   Prüfung gehört auf den Server — siehe Projektanweisung.
   ============================================================ */
body[data-recht="nutzen"] .pflegen{
  pointer-events:none;
  cursor:not-allowed;
}
/* Knöpfe werden blass - sie tun ja nichts mehr. */
body[data-recht="nutzen"] button.pflegen,
body[data-recht="nutzen"] .btn.pflegen{
  opacity:0.45;
  filter:grayscale(0.6);
}
/* Eingabefelder NICHT: Ihr Wert ist genau das, was man beim Ansehen
   lesen will. Sie bekommen die Optik eines Anzeigefeldes - kein
   Rahmen, kein Kasten -, bleiben aber voll lesbar. */
body[data-recht="nutzen"] input.pflegen,
body[data-recht="nutzen"] select.pflegen,
body[data-recht="nutzen"] textarea.pflegen{
  background:transparent;
  border-color:transparent;
  color:var(--ink);
  padding-left:0;
  padding-right:0;
}
/* Der erklärende Satz. Steht im Markup immer da und zeigt sich
   nur, wenn die Pflege gesperrt ist — so kann er nicht vergessen
   werden. Text: siehe Projektanweisung, Wortlaut in jedem Tool
   gleich. */
.rechtehinweis{display:none;}
body[data-recht="nutzen"] .rechtehinweis{
  display:block;
  background:rgba(68,181,214,0.10);
  border:1px solid var(--cyan);
  color:var(--cyan);
  font-size:13px;
  line-height:1.5;
  padding:10px 12px;
  border-radius:6px;
  margin-bottom:12px;
}
[data-theme="light"] .rechtehinweis{color:#1c6b83;}

/* Wer angemeldet ist, gehört in die Kopfzeile — ein Tool ohne
   Anmeldung gibt es nicht mehr, und bei geteilten Rechnern ist es
   die schnellste Kontrolle. Der Name kommt prozentkodiert an und
   muss vor der Anzeige dekodiert werden (decodeURIComponent).
       <div class="g4w-wer">angemeldet als <b>…</b> · pflegen</div>  */
.g4w-wer{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.06em;
  color:var(--muted);
  text-transform:lowercase;
  margin:8px 0 0;
}
.g4w-wer b{color:var(--ink); font-weight:600;}
