:root{--ink:oklch(0.31 0.021 222);--ink-soft:oklch(0.44 0.019 222);--muted:oklch(0.52 0.015 222);--surface:oklch(0.981 0.004 210);--surface-2:oklch(0.965 0.005 210);--raised:oklch(0.995 0.0015 210);--border:oklch(0.916 0.006 215);--border-strong:oklch(0.86 0.008 215);--accent:oklch(0.72 0.108 185);--accent-solid:oklch(0.54 0.115 185);--accent-solid-hover:oklch(0.48 0.115 185);--accent-graphic:oklch(0.60 0.115 185);--accent-strong:oklch(0.655 0.115 185);--accent-bg:oklch(0.955 0.032 185);--accent-ink:oklch(0.99 0.006 185);--info:oklch(0.62 0.13 245);--success:oklch(0.70 0.11 165);--success-bg:oklch(0.955 0.032 165);--warning:oklch(0.80 0.12 80);--danger:oklch(0.545 0.16 25);--danger-bg:oklch(0.958 0.035 25);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--r-sm:6px;--r:10px;--r-lg:14px;--r-full:999px;--shadow-sm:0 1px 2px oklch(0.4 0.02 222/0.08);--shadow:0 2px 10px oklch(0.4 0.02 222/0.10);--shadow-lg:0 12px 40px oklch(0.35 0.02 222/0.18);--ease:cubic-bezier(0.22,1,0.36,1);--dur:180ms;--bg:var(--surface);--card:var(--raised);--line:var(--border);--header-bg:var(--ink);--header-ink:var(--accent-ink);--radius:var(--r)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--surface);color:var(--ink);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font-family:inherit}:root{accent-color:var(--accent)}a{color:var(--info);text-decoration:none}:focus-visible{outline:2px solid var(--accent-graphic);outline-offset:2px;border-radius:var(--r-sm)}::selection{background:var(--accent-bg);color:var(--ink)}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-full);border:3px solid var(--surface)}::-webkit-scrollbar-thumb:hover{background:var(--muted)}::-webkit-scrollbar-track{background:transparent}@keyframes ptw-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.ptw-skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--border) 37%,var(--surface-2) 63%);background-size:800px 100%;animation:ptw-shimmer 1.4s ease-in-out infinite;border-radius:var(--r-sm)}@keyframes ptw-toast-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes ptw-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes ptw-dialog-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.calendar-print-header{display:none}@page{size:A4 landscape;margin:7mm}@media print{body,html{width:auto;height:auto;overflow:visible!important;background:#fff!important}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}.calendar-app{display:block!important;width:100%!important;height:auto!important;overflow:visible!important;background:#fff!important;padding:10mm 12mm 12mm!important}.calendar-app>*{display:none!important}.calendar-app>.calendar-grid-scroll,.calendar-app>.calendar-print-header,.calendar-app>.calendar-print-warning{display:block!important}.calendar-print-header{padding:0 0 4mm;border-bottom:1px solid #cfd8de;color:#2d3940}.calendar-print-brand{float:right;padding-top:1mm;font-size:9pt;font-weight:700;color:#52616a}.calendar-print-title{font-size:17pt;line-height:1.1;font-weight:750}.calendar-print-date{margin-top:1.5mm;font-size:10.5pt;font-weight:650}.calendar-print-date span{margin-left:3mm;color:#6f7d85;font-weight:500}.calendar-print-warning{margin:2mm 0;padding:2mm 3mm!important;border:1px solid #e5cc80!important;font-size:8pt!important}.calendar-grid-scroll{height:auto!important;overflow:visible!important}.calendar-grid,.calendar-grid-scroll{width:100%!important;background:#fff!important}.calendar-grid{min-width:0!important;page-break-inside:avoid;break-inside:avoid;gap:0!important}.calendar-slot,.calendar-time-cell{border-top:1px solid #eef2f4!important;border-left:1px solid #e4eaee!important}.raster-stunde{border-top:1px solid #c3ced5!important}.calendar-column-header{border-left:1px solid #e4eaee!important}.calendar-grid>.calendar-column-header:first-child{border-left:none!important}.calendar-grid,.calendar-grid *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;transition:none!important}.calendar-grid>div{position:relative!important}.calendar-column-header{padding:5px 4px!important;font-size:10px!important}.calendar-column-header span{padding:1px 5px!important;font-size:8px!important}.calendar-time-cell{min-width:44px!important;padding:0 5px 0 2px!important;font-size:9px!important;line-height:1.2!important}.calendar-slot{min-height:var(--druck-zeile,14px)!important}.calendar-appointment{top:var(--print-top)!important;height:var(--print-height)!important;padding:1px 4px!important;border-radius:2px!important;font-size:9.5px!important;line-height:1.15!important;opacity:1!important;outline:none!important;cursor:default!important;background:#fff!important;color:#16202a!important;border:1.2px solid var(--farbe,#52616a)!important;border-left-width:1px!important;box-shadow:none!important}.calendar-appointment>div:first-child{font-weight:700!important}.calendar-appointment>div:last-child{font-size:8.5px!important;line-height:1.15!important;opacity:.85!important}.calendar-slot{background:#fff!important}.calendar-appointment-source,.calendar-now-dot,.calendar-now-line{display:none!important}}.serie-termin-liste{max-height:320px;overflow-y:auto;padding-right:4px}.serie-feld{display:block;min-width:0}.serie-feld-label{display:block;margin:0 0 3px;font-size:10.5px;font-weight:700;color:var(--muted)}@media (max-width:740px){.termin-dialog-fuss-rechts{margin-left:0!important}}@media (max-width:620px){.termin-dialog-body{padding:var(--sp-4)!important}.serie-generator{grid-template-columns:1fr 1fr!important}.serie-termin-liste{max-height:none;overflow-y:visible;padding-right:0}.serie-termin-zeile{grid-template-columns:28px minmax(0,1fr) 34px!important;grid-template-areas:"number date remove" "number time remove" "number therapist remove" ". error error"!important}.serie-termin-nummer{grid-area:number}.serie-termin-zeile .serie-feld:first-of-type{grid-area:date}.serie-termin-zeile .serie-feld:nth-of-type(2){grid-area:time}.serie-termin-zeile .serie-feld:nth-of-type(3){grid-area:therapist}.serie-termin-zeile>button{grid-area:remove}.serie-termin-fehler{grid-area:error;grid-column:auto!important}}.terminzettel{display:none}@media print{body.drucke-terminzettel>:not(.terminzettel){display:none!important}body.drucke-terminzettel .terminzettel{display:block!important;color:#000;font-family:Arial,Helvetica,sans-serif;font-size:var(--tz-schrift,12pt);line-height:var(--tz-zeilenhoehe,1.4);padding:var(--tz-rand-oben,16mm) var(--tz-rand-rechts,20mm) var(--tz-rand-unten,20mm) var(--tz-rand-links,25mm);-webkit-print-color-adjust:exact;print-color-adjust:exact}.tz-briefkopf{display:flex;align-items:flex-end;justify-content:space-between;gap:12mm;padding-bottom:5mm;border-bottom:1px solid #000;font-size:11pt;line-height:1.4}.tz-logo{height:max(16mm,calc(26mm * var(--tz-dichte, 1)));width:auto;object-fit:contain}.tz-absender{text-align:right}.tz-praxisname{font-size:14pt;font-weight:700}.tz-anschriftzeile{display:flex;justify-content:space-between;align-items:flex-start;gap:15mm;margin-top:calc(12mm * var(--tz-dichte, 1))}.tz-empfaenger{line-height:1.45}.tz-ortdatum{white-space:nowrap}.tz-titel{margin:calc(14mm * var(--tz-dichte, 1)) 0 calc(8mm * var(--tz-dichte, 1));text-align:center;font-size:14pt;font-weight:700;text-decoration:underline}.tz-fuer{margin-bottom:calc(6mm * var(--tz-dichte, 1))}.tz-einleitung{margin:0 0 3mm}.tz-tabelle{width:100%;border-collapse:collapse;table-layout:fixed}.tz-tabelle td:first-child,.tz-tabelle th:first-child{width:34mm}.tz-tabelle td:nth-child(2),.tz-tabelle th:nth-child(2){width:20mm}.tz-tabelle td:nth-child(3),.tz-tabelle th:nth-child(3){width:23mm}.tz-tabelle td:nth-child(-n+3),.tz-tabelle th:nth-child(-n+3){white-space:nowrap}.tz-tabelle th{text-align:left;font-weight:400;border:1px solid #000}.tz-tabelle td,.tz-tabelle th{padding:var(--tz-zellpolster,1.4mm) 3mm}.tz-tabelle td{border-left:1px solid #000;border-right:1px solid #000}.tz-tabelle tbody tr:last-child td{border-bottom:1px solid #000}.tz-tabelle tr{page-break-inside:avoid}.tz-gruss{margin-top:calc(10mm * var(--tz-dichte, 1))}.tz-signatur{margin-top:2mm}@page{size:A4 portrait;margin:0}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:9px 18px;font:inherit;font-size:13px;font-weight:600;line-height:1.2;border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;transition:background-color .16s var(--ease),border-color .16s var(--ease),color .16s var(--ease),box-shadow .16s var(--ease)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-ink);font-weight:700;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-primary:active:not(:disabled){background:var(--accent-strong);box-shadow:none}.btn-secondary{background:var(--raised);color:var(--ink);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.btn-secondary:active:not(:disabled){background:var(--surface-2)}.btn-danger{background:var(--raised);color:var(--danger);border-color:var(--border)}.btn-danger:hover:not(:disabled){background:var(--danger-bg);border-color:var(--danger)}.ptw-overlay{position:fixed;inset:0;background:oklch(.35 .02 222/.4);display:grid;place-items:center;padding:var(--sp-4);animation:ptw-overlay-ein .14s var(--ease)}.ptw-panel{width:min(520px,100%);max-height:90vh;display:flex;flex-direction:column;overflow:hidden;background:var(--raised);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);animation:ptw-panel-ein .18s var(--ease)}.ptw-panel-kopf{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);background:var(--surface-2)}.ptw-panel-koerper{padding:var(--sp-5);overflow-y:auto}.ptw-panel-fuss{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border);background:var(--surface-2)}@keyframes ptw-overlay-ein{0%{opacity:0}to{opacity:1}}@keyframes ptw-panel-ein{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.ptw-overlay,.ptw-panel{animation:none}}.btn-absagen{background:var(--danger);color:var(--raised);font-weight:600}.btn-absagen:hover:not(:disabled){background:oklch(.51 .17 25)}input:not([type=checkbox]):not([type=radio]),select,textarea{transition:border-color .16s var(--ease),box-shadow .16s var(--ease)}input:not([type=checkbox]):not([type=radio]):hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--border-strong)!important}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:var(--accent-graphic)!important}.tb-btn{transition:background-color .16s var(--ease),border-color .16s var(--ease)}.tb-btn:hover:not(:disabled){background:var(--surface-2)!important;border-color:var(--border-strong)!important}.tb-btn:active:not(:disabled){background:var(--border)!important}.tb-btn-primary{transition:background-color .16s var(--ease),box-shadow .16s var(--ease)}.tb-btn-primary:hover:not(:disabled){background:var(--accent-strong)!important}.tb-btn-primary:active:not(:disabled){box-shadow:none!important}.zeile-klickbar{transition:background-color .14s var(--ease)}.zeile-klickbar:hover{background:var(--surface-2)!important}@media print{.calendar-grid{grid-template-rows:auto repeat(40,auto)!important}.print-aus,body.drucke-akte .calendar-app>:not(.akte-druck){display:none!important}body.drucke-akte .calendar-app>.akte-druck{display:block!important;position:static!important;background:#fff!important}body.drucke-akte .akte-druck-fenster{position:static!important;width:100%!important;max-width:100%!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;border-radius:0!important}body.drucke-akte .akte-druck-inhalt{overflow:visible!important;padding:0!important}}.bereichs-knopf:hover{background:var(--surface-2)!important}.bereichs-knopf:focus-visible{outline:2px solid #1fae94;outline-offset:-3px}.bereichs-knopf[aria-current=page]:hover{filter:brightness(.98)}@media print{.bereich-rahmen{display:block!important;height:auto!important;overflow:visible!important}.bereichs-leiste{display:none!important}}