/* THERAPIE.PRO Design: schwarz/weiss/dunkelrot, kantig, technisch */
:root { --prim: #8B1E1E; --schwarz: #111111; --grau: #f4f4f2; }
* { box-sizing: border-box; }
body { margin:0; font-family: Bahnschrift, "DIN Alternate", "Segoe UI", "Franklin Gothic Medium", Arial, sans-serif; color:var(--schwarz); background:var(--grau); }
.innen { max-width: 880px; margin:0 auto; padding:0 16px; }
.kopf { background:var(--schwarz); padding:12px 0; border-bottom:4px solid var(--prim); }
.kopf a { color:#fff; text-decoration:none; }
.logo { display:flex; align-items:center; }
.logoimg { height:46px; width:auto; display:block; background:#fff; }
.logo { font-size:20px; font-weight:700; letter-spacing:1px; text-transform:uppercase; }
.logo span { font-weight:400; opacity:.8; }
.kopf .innen { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; }
.kopf nav a { margin-left:14px; font-size:13px; letter-spacing:1px; text-transform:uppercase; opacity:.9; border-bottom:2px solid transparent; padding-bottom:2px; }
.kopf nav a:hover { border-bottom-color:var(--prim); opacity:1; }
main { padding:26px 0 56px; }
h1 { font-size:26px; margin:6px 0 16px; text-transform:uppercase; letter-spacing:1.5px; border-left:6px solid var(--prim); padding-left:12px; }
h2 { font-size:15px; margin:28px 0 10px; text-transform:uppercase; letter-spacing:1.2px; color:var(--prim); }
h3 { font-size:13px; text-transform:uppercase; letter-spacing:1px; }
.lead { color:#444; }
.karten { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:14px; }
.karte { background:#fff; border:2px solid var(--schwarz); padding:20px; text-decoration:none; color:inherit; display:flex; flex-direction:column; gap:6px; }
.karte:hover { border-color:var(--prim); box-shadow:4px 4px 0 var(--prim); }
.karte .cta { color:var(--prim); font-weight:700; margin-top:6px; text-transform:uppercase; letter-spacing:1px; font-size:13px; }
.chips { display:flex; flex-wrap:wrap; gap:8px; }
.chip { background:#fff; border:2px solid var(--schwarz); padding:9px 16px; text-decoration:none; color:var(--schwarz); font-size:15px; cursor:pointer; }
.chip.aktiv { background:var(--prim); color:#fff; border-color:var(--prim); }
.chip.zeit input { margin-right:4px; }
.chips.tage .chip { text-align:center; padding:7px 10px; line-height:1.25; }
.knopf { background:var(--schwarz); color:#fff; border:2px solid var(--schwarz); padding:11px 22px; font-size:14px; letter-spacing:1px; text-transform:uppercase; cursor:pointer; text-decoration:none; display:inline-block; font-family:inherit; }
.knopf:hover { background:var(--prim); border-color:var(--prim); }
.knopf.sekundaer { background:#fff; color:var(--schwarz); }
.knopf.sekundaer:hover { color:#fff; }
.knopf.gefahr { background:var(--prim); border-color:var(--prim); }
.knopf.klein { padding:5px 10px; font-size:11px; }
form.schmal { max-width:420px; }
label { display:block; margin:12px 0; font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:1px; }
input, select { display:block; width:100%; padding:10px; margin-top:4px; border:2px solid var(--schwarz); font-size:15px; background:#fff; font-family:inherit; }
input:focus, select:focus, textarea:focus { outline:2px solid var(--prim); border-color:var(--prim); }
form.zeile { display:flex; gap:10px; align-items:end; flex-wrap:wrap; }
form.zeile input, form.zeile select { width:auto; display:inline-block; }
table { width:100%; border-collapse:collapse; background:#fff; border:2px solid var(--schwarz); font-size:14px; }
th, td { text-align:left; padding:9px 10px; border-bottom:1px solid #ddd; }
th { background:var(--schwarz); color:#fff; text-transform:uppercase; letter-spacing:1px; font-size:11px; }
td input { padding:6px; }
.box { background:#fff; border:2px solid var(--schwarz); padding:16px 18px; margin:14px 0; }
.box.mail pre { white-space:pre-wrap; font-family:inherit; }
.feed { word-break:break-all; background:var(--grau); padding:8px 10px; border:1px solid #999; display:block; font-family:"Courier New",monospace; font-size:13px; }
.flash { background:#fff; border:2px solid var(--prim); border-left:8px solid var(--prim); padding:10px 14px; margin:10px 0; }
.demo-banner { background:var(--prim); color:#fff; padding:8px 12px; font-size:12px; letter-spacing:1px; text-transform:uppercase; margin-bottom:16px; }
.klein { font-size:13px; color:#555; text-transform:none; letter-spacing:0; }
.terminform { margin-top:6px; }
.fuss { border-top:2px solid var(--schwarz); padding:16px 0; font-size:12px; letter-spacing:1px; text-transform:uppercase; }
.fuss a { color:var(--prim); }
textarea { display:block; width:100%; padding:10px; margin-top:4px; border:2px solid var(--schwarz); font-size:15px; font-family:inherit; min-height:90px; }
input[type=color] { width:70px; height:42px; padding:4px; }
.preline { white-space:pre-line; }
label.check { display:flex; gap:10px; align-items:flex-start; font-weight:400; background:#fff; border:2px solid var(--schwarz); padding:12px 14px; text-transform:none; letter-spacing:0; font-size:14px; }
label.check input { width:auto; margin-top:3px; }

/* Profilfotos & Initialen */
.chip { display:inline-flex; align-items:center; gap:.45em; }
.chip-foto { width:30px; height:30px; border-radius:50%; object-fit:cover; flex:none; }
.chip-initialen { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px;
  border-radius:50%; background:#1a1a1a; color:#fff; font-weight:700; font-size:.8em; flex:none;
  border:2px solid var(--prim, #8B1E1E); }
.chip-initialen.gross { width:64px; height:64px; font-size:1.3em; }
.chip-initialen.klein-av { width:30px; height:30px; }
.avatar-klein { width:30px; height:30px; border-radius:50%; object-fit:cover; }
.foto-aktuell { width:64px; height:64px; border-radius:50%; object-fit:cover; border:2px solid var(--prim, #8B1E1E); }

/* Vorschau-Modus & Status */
.banner-vorschau { background:#fdf3e0; border:1px solid #e0a800; border-radius:8px; padding:.7em 1em; margin:0 0 1em; }
.status-punkt { display:inline-block; width:14px; height:14px; border-radius:50%; flex:none; }
.status-punkt.an { background:#1e9e4f; box-shadow:0 0 0 3px rgba(30,158,79,.2); }
.status-punkt.aus { background:#8B1E1E; box-shadow:0 0 0 3px rgba(139,30,30,.15); }
.box.warnung { border-left:4px solid #8B1E1E; }
.box.storno-hinweis { background:#f7f7f7; border-left:4px solid var(--prim, #8B1E1E); font-size:.95em; margin:1em 0; }

/* Schnellsuche "Nächster freier Termin" */
.knopf.schnell { display:inline-block; margin:0 0 1em; }
.box.schnell-termin { border-left:4px solid var(--prim, #8B1E1E); }
.schnell-zeit { font-size:1.25em; margin:.1em 0 .4em; }
