:root{--tinte: #1a2332;--papier: #f7f8fa;--linie: #c9cfd8;--siegel: #7a1f2b;--siegel-hell: #fbeef0;--gruen: #1d5c3a;--fokus: #1a4fa0}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--tinte);background:var(--papier)}button{font:inherit;padding:.5rem 1rem;border:1px solid var(--tinte);border-radius:.25rem;background:var(--tinte);color:#fff;cursor:pointer}button:disabled{opacity:.6;cursor:wait}button:focus-visible,input:focus-visible{outline:3px solid var(--fokus);outline-offset:2px}input{font:inherit;padding:.5rem;border:1px solid var(--linie);border-radius:.25rem;background:#fff}.fehler{color:var(--siegel);background:var(--siegel-hell);border:1px solid var(--siegel);border-radius:.25rem;padding:.5rem .75rem}.anmeldung{max-width:22rem;margin:10vh auto 0;display:flex;flex-direction:column;gap:.5rem;padding:1rem}.anmeldung h1{margin:0;font-size:2rem;letter-spacing:.02em}.anmeldung .untertitel{margin:0 0 1rem;color:#43506a}.anmeldung label{font-weight:600;margin-top:.5rem}.empfang{padding:1rem}.kopfzeile{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.kopfzeile h1{margin:0;font-size:1.4rem}.kopf-steuerung{display:flex;align-items:center;gap:.75rem}.angemeldet{color:#43506a}.kalender{display:grid;gap:0 1px;background:var(--linie);border:1px solid var(--linie);border-radius:.375rem;overflow-x:auto}.ecke,.spaltenkopf{background:#fff;position:sticky;top:0}.spaltenkopf{margin:0;font-size:1rem;padding:.5rem;border-bottom:2px solid var(--tinte)}.zeitspalte,.behandlerspalte{display:grid;background:#fff;position:relative;min-height:100%}.zeitspalte{background:var(--papier)}.stundenmarke{font-size:.75rem;color:#43506a;padding:0 .35rem;border-top:1px solid var(--linie)}.behandlerspalte:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(5rem - 1px),var(--linie) calc(5rem - 1px),var(--linie) 5rem);pointer-events:none}.termin{grid-column:1;margin:1px .25rem;padding:.25rem .4rem;border-left:4px solid var(--siegel);border-radius:.2rem;background:var(--siegel-hell);display:flex;flex-direction:column;gap:.1rem;overflow:hidden;z-index:1}.termin[data-status=storniert]{border-left-color:var(--linie);background:#eef0f3;text-decoration:line-through}.termin[data-status=erschienen],.termin[data-status=abgerechnet]{border-left-color:var(--gruen);background:#ecf5ef}.termin-zeit{font-size:.72rem;color:#43506a}.termin-patient{font-weight:600;font-size:.85rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.termin-art{font-size:.78rem;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.zelle{grid-column:1;background:transparent;border:0;padding:0;cursor:pointer;z-index:0}.zelle:hover{background:#eaf0f8}.zelle:focus-visible{outline:3px solid var(--fokus);outline-offset:-3px;z-index:2}.termin{padding:0}.termin-knopf{width:100%;height:100%;background:transparent;border:0;color:inherit;padding:.25rem .4rem;display:flex;flex-direction:column;gap:.1rem;align-items:flex-start;text-align:left;cursor:pointer;overflow:hidden}.schleier{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a23328c;display:flex;align-items:flex-start;justify-content:center;padding-top:8vh;z-index:10}.dialog{background:#fff;border-radius:.5rem;border-top:6px solid var(--siegel);padding:1.25rem 1.5rem 1.5rem;width:min(26rem,92vw);max-height:80vh;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.dialog h2{margin:0 0 .25rem;font-size:1.1rem}.dialog label{font-weight:600;margin-top:.35rem}.dialog select{font:inherit;padding:.5rem;border:1px solid var(--linie);border-radius:.25rem;background:#fff}.modus{border:1px solid var(--linie);border-radius:.25rem;padding:.5rem .75rem;display:flex;gap:1.25rem}.modus legend{font-weight:600;padding:0 .25rem}.modus label{font-weight:400;display:flex;align-items:center;gap:.4rem;margin:0}.trefferliste{list-style:none;margin:0;padding:0;border:1px solid var(--linie);border-radius:.25rem;max-height:11rem;overflow-y:auto}.trefferliste li+li{border-top:1px solid var(--linie)}.trefferliste button{width:100%;text-align:left;background:#fff;color:var(--tinte);border:0;padding:.5rem .75rem}.trefferliste button:hover{background:var(--siegel-hell)}.gewaehlt{margin:.25rem 0 0}.dialog-leiste{display:flex;gap:.75rem;margin-top:.75rem}.zweitrangig{background:#fff;color:var(--tinte)}.popover-zeile{margin:.15rem 0;color:var(--tinte)}.verschiebe-banner{display:flex;align-items:center;gap:.75rem;background:#fff7e6;border:1px solid #d9a441;border-radius:.25rem;padding:.5rem .75rem;margin:0 0 .75rem}.status-leiste{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.termin-status{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--gruen)}.termin[data-status=bestaetigt]{border-left-color:#1a4fa0;background:#eaf0f8}.termin[data-status=bestaetigt] .termin-status{color:#1a4fa0}.termin[data-status=nicht_erschienen]{border-left-color:#b3541e;background:#fbf1ea}.termin[data-status=nicht_erschienen] .termin-status{color:#b3541e}.hinweis{background:#ecf5ef;border:1px solid var(--gruen);border-radius:.25rem;padding:.5rem .75rem;margin:0 0 .75rem;color:var(--gruen)}.zeitvorschau{margin:0 0 .25rem;color:var(--grau, #43506a);font-size:.95rem}.termin{border-left-width:5px}.termin-zeit{font-size:.78rem;font-weight:600}.termin-patient{font-size:.92rem}.termin-art{font-size:.82rem;color:#43506a}.spaltenkopf{font-size:1.05rem;padding:.6rem}.stundenmarke{font-size:.8rem;font-weight:600}.kopf-steuerung button.zweitrangig{padding:.45rem .7rem}
