:root{
  --blau:#1766c7;
  --blau-dunkel:#114e99;
  --blau-hell:#eef4fc;
  --rand:#dde3ea;
  --text:#1b2430;
  --grau:#67717e;
  --bg:#f6f8fa;
  --ok:#1a7a4c;
  --warn:#9a5b00;
  --rot:#b3261e;
}
*{box-sizing:border-box}
body{
  margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);color:var(--text);font-size:15px;line-height:1.5;
}
a{color:var(--blau);text-decoration:none}
a:hover{text-decoration:underline}

header.top{background:#fff;border-bottom:1px solid var(--rand)}
header.top .inner{max-width:1180px;margin:0 auto;padding:14px 22px;display:flex;align-items:center;gap:26px;flex-wrap:wrap}
header.top .brand{font-weight:700;font-size:17px;letter-spacing:-.2px}
header.top .brand span{color:var(--grau);font-weight:400;font-size:13px;display:block;letter-spacing:0}
nav.main{display:flex;gap:18px;flex-wrap:wrap}
nav.main a{color:var(--grau);font-size:14px;padding:4px 0;border-bottom:2px solid transparent}
nav.main a.active{color:var(--blau);border-bottom-color:var(--blau)}
.modus{margin-left:auto;font-size:12px;color:var(--warn);border:1px solid #f0d9ab;background:#fdf6e8;padding:4px 10px;border-radius:3px}
.modus.live{color:var(--rot);border-color:#f2c4c0;background:#fdeceb}

main{max-width:1180px;margin:0 auto;padding:24px 22px 60px}
h1{font-size:22px;margin:0 0 4px;font-weight:650;letter-spacing:-.3px}
h2{font-size:16px;margin:28px 0 10px;font-weight:650}
.sub{color:var(--grau);font-size:13px;margin:0 0 22px}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;margin-bottom:8px}
.card{background:#fff;border:1px solid var(--rand);border-radius:4px;padding:14px 16px}
.card .k{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--grau)}
.card .v{font-size:26px;font-weight:650;margin-top:4px;letter-spacing:-.5px}
.card .n{font-size:12px;color:var(--grau);margin-top:2px}

.panel{background:#fff;border:1px solid var(--rand);border-radius:4px;overflow:hidden;margin-bottom:22px}
.panel > .ph{padding:12px 16px;border-bottom:1px solid var(--rand);font-weight:650;font-size:14px;display:flex;align-items:center;gap:12px}
.panel > .ph .hint{font-weight:400;color:var(--grau);font-size:12px;margin-left:auto}
.panel .pb{padding:16px}

table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--grau);
   padding:9px 16px;border-bottom:1px solid var(--rand);font-weight:600;background:#fafbfc}
td{padding:9px 16px;border-bottom:1px solid #eef1f4;vertical-align:middle}
tr:last-child td{border-bottom:none}
td.num{text-align:right;font-variant-numeric:tabular-nums}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}

.tag{display:inline-block;font-size:11.5px;padding:2px 8px;border-radius:3px;border:1px solid var(--rand);
     background:#f4f6f8;color:var(--grau);white-space:nowrap}
.tag.geplant{background:var(--blau-hell);border-color:#cfe0f5;color:var(--blau-dunkel)}
.tag.bestaetigt{background:#e8f5ee;border-color:#c3e3d2;color:var(--ok)}
.tag.erschienen{background:#e8f5ee;border-color:#c3e3d2;color:var(--ok)}
.tag.abgesagt{background:#fdeceb;border-color:#f2c4c0;color:var(--rot)}
.tag.no_show{background:#fdeceb;border-color:#f2c4c0;color:var(--rot)}
.tag.umgebucht{background:#fdf6e8;border-color:#f0d9ab;color:var(--warn)}
.tag.demo{background:#fdf6e8;border-color:#f0d9ab;color:var(--warn)}
.tag.gesendet{background:#e8f5ee;border-color:#c3e3d2;color:var(--ok)}
.tag.fehler{background:#fdeceb;border-color:#f2c4c0;color:var(--rot)}
.tag.freigegeben{background:#e8f5ee;border-color:#c3e3d2;color:var(--ok)}

button,.btn{
  font:inherit;font-size:13px;padding:6px 13px;border:1px solid var(--rand);background:#fff;
  border-radius:3px;cursor:pointer;color:var(--text);display:inline-block
}
button:hover,.btn:hover{border-color:#b9c3cf;text-decoration:none}
.btn-primary,button.primary{background:var(--blau);border-color:var(--blau);color:#fff}
.btn-primary:hover,button.primary:hover{background:var(--blau-dunkel);border-color:var(--blau-dunkel)}
.btn-gross{font-size:16px;padding:12px 24px}
.inline-form{display:inline}

label{display:block;font-size:12px;color:var(--grau);margin:0 0 4px;font-weight:600}
input[type=text],input[type=tel],input[type=number],input[type=datetime-local],select,textarea{
  font:inherit;font-size:14px;width:100%;padding:8px 10px;border:1px solid var(--rand);border-radius:3px;background:#fff;color:var(--text)
}
textarea{min-height:110px;resize:vertical;line-height:1.55}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.feld{margin-bottom:14px}
.aktionen{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}

.hinweis{background:var(--blau-hell);border:1px solid #cfe0f5;border-radius:4px;padding:12px 14px;font-size:13px;margin-bottom:18px}
.hinweis.warn{background:#fdf6e8;border-color:#f0d9ab}
.msg{white-space:pre-wrap;font-size:13px;line-height:1.55;margin:0}

/* Oeffentliche Seiten (Patientensicht) */
body.public{background:#fff}
.public-wrap{max-width:560px;margin:0 auto;padding:48px 22px 60px}
.public-wrap .logo{font-weight:700;font-size:16px;margin-bottom:30px;padding-bottom:16px;border-bottom:1px solid var(--rand)}
.public-wrap h1{font-size:24px;margin-bottom:10px}
.public-wrap .box{border:1px solid var(--rand);border-radius:4px;padding:18px;margin:20px 0;background:var(--bg)}
.public-wrap .box .zeile{display:flex;justify-content:space-between;padding:4px 0;font-size:14px;gap:16px}
.public-wrap .box .zeile b{font-weight:600}
.stars{display:flex;gap:10px;margin:22px 0 8px;flex-wrap:wrap}
.stars a{border:1px solid var(--rand);border-radius:4px;width:62px;height:62px;display:flex;
  align-items:center;justify-content:center;font-size:20px;font-weight:650;background:#fff;color:var(--text)}
.stars a:hover{border-color:var(--blau);background:var(--blau-hell);text-decoration:none}
.slotliste{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:18px 0}
.slotliste form{margin:0}
.slotliste button{width:100%;text-align:left;padding:12px 14px}
.erfolg{border-left:3px solid var(--ok);background:#f2faf5;padding:14px 16px;border-radius:0 4px 4px 0;margin:20px 0}
.fehlbox{border-left:3px solid var(--rot);background:#fdf2f1;padding:14px 16px;border-radius:0 4px 4px 0;margin:20px 0}
footer.pub{margin-top:36px;padding-top:16px;border-top:1px solid var(--rand);font-size:12px;color:var(--grau)}
.sterne-anzeige{letter-spacing:2px;font-size:15px;color:#b07c00;white-space:nowrap}

/* Schmale Bildschirme: Tabellen bleiben vollstaendig erreichbar (seitlich scrollbar),
   die Seite selbst bekommt aber keinen Querscroll. */
@media (max-width: 760px) {
  .panel { overflow-x: auto; }
  .panel table { min-width: 560px; }
  main { padding: 18px 14px 50px; }
  header.top .inner { padding: 12px 14px; gap: 14px; }
  .modus { margin-left: 0; }
  .card .v { font-size: 22px; }
}

/* ---- Oeffentliche Verkaufs-Demo: Hinweisbanner und Fusszeile ---- */
.demo-banner{background:#0b2a4a;color:#eaf2fb;font-size:13px;line-height:1.45}
.demo-banner .inner{max-width:1180px;margin:0 auto;padding:10px 22px}
body.public .demo-banner .inner{max-width:604px}
.demo-footer{border-top:1px solid var(--rand);background:#fff;margin-top:36px;padding:18px 22px;
  text-align:center;font-size:13px;color:var(--grau)}
.demo-footer a{color:var(--blau)}
.demo-footer .sep{margin:0 8px;color:var(--rand)}
.demo-footer .wss-badge{display:inline-flex;align-items:center;gap:8px;vertical-align:middle;
  text-decoration:none;color:var(--grau);opacity:.75;font-size:12.5px;transition:opacity .2s ease}
.demo-footer .wss-badge:hover{opacity:1}
.demo-footer .wss-badge img{height:22px;width:auto;display:block}
body.demo .public-wrap{padding-top:34px}
@media(max-width:620px){
  .demo-banner .inner{padding:9px 16px;font-size:12.5px}
  .demo-footer{padding:16px}
}
