body{background:var(--bg);color:var(--text)}
body,button,input,textarea,select,dialog,.header,.portal,.panel,.contact-form,.cal-slot,.message,.toast{transition:background-color .25s,color .25s,border-color .25s;}
.btn,.cal-slot.termin{background:var(--button);border-color:var(--button);color:var(--on-button)}
.btn:hover{background:var(--red-hover)}
.btn.dark,.toast,.demo-bar{background:var(--dark-button);color:var(--on-button)}
.btn.secondary,.cal-slot.termin.pending{background:var(--surface);color:var(--text);border-color:var(--border)}
.btn.secondary:hover{background:var(--pale)}
.header{background:var(--header-bg)}
.portal{background:var(--bg)}
.portal-top,.portal-sidebar,dialog{background:var(--surface);color:var(--text)}
.panel.mint{background:var(--mint-panel);color:var(--text)}
.day-block,.hamburger,.icon-button{color:var(--text)}
.form-error{color:var(--error-text)}
.message.mine{background:var(--mint-panel);color:var(--text)}
input,textarea,select{background:var(--surface);color:var(--text);border-color:var(--input-border)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
input[type=checkbox],input[type=radio]{accent-color:var(--button)}
:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
*{scrollbar-color:var(--border) var(--surface-alt)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--surface-alt)}
::-webkit-scrollbar-thumb{background:var(--border);border:2px solid var(--surface-alt);border-radius:8px}
.display-settings{display:flex;align-items:center;gap:6px;flex-shrink:0}
.display-settings .icon-button{display:flex;align-items:center;justify-content:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:9px;min-height:44px;width:auto;padding:9px;font-size:12px;font-weight:700}
.display-settings svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.language-switch{display:flex;align-items:center;gap:2px;padding:3px 4px 3px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text)}
.language-switch>svg{width:16px;height:16px;margin-right:4px;opacity:.7}
.language-switch button{min-width:38px;min-height:36px;padding:0 8px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:700 12px/1 inherit;letter-spacing:.02em;cursor:pointer;transition:background-color .2s,color .2s,transform .15s}
.language-switch button:hover{color:var(--text);background:var(--pale)}
.language-switch button.active{background:var(--button);color:var(--on-button)}
.language-switch button:active{transform:scale(.94)}
.id-chip{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:3px 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);font:700 13px/1.2 inherit;letter-spacing:.03em;cursor:pointer;transition:background-color .2s,border-color .2s}
.id-chip::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--button)}
.id-chip:hover{background:var(--pale);border-color:var(--button)}
.cal-slot .id-chip{min-height:0;padding:1px 7px;font-size:11px;background:transparent;border-color:currentColor;color:inherit}
.plain-list{list-style:none;padding:0;margin:0 0 14px;display:grid;gap:6px}
.patient-card p{margin:0 0 10px}
.sun,.sun-rays,.moon{transform-origin:12px 12px;transition:transform .4s ease,opacity .4s ease}
.moon{opacity:0;transform:rotate(-35deg) scale(.3)}
[data-theme=dark] .sun{transform:rotate(90deg);opacity:0}
[data-theme=dark] .sun-rays{transform:scale(.1)}
[data-theme=dark] .moon{opacity:1;transform:rotate(0) scale(1)}
.portal-top{gap:12px;flex-wrap:wrap}
.portal-tools{margin-left:auto;flex-wrap:wrap}
.navlinks{gap:18px}
.nav{gap:16px}
@media(min-width:761px) and (max-width:1180px){.navlinks{gap:8px}.navlinks>a{font-size:12px}.nav .brand{font-size:16px;gap:8px}.nav .logo{width:32px}.nav .wrap{padding:0 20px}.navlinks .btn{padding:9px 10px}}
@media(max-width:760px){
 .nav{gap:8px}
 .nav>.display-settings{margin-left:auto;gap:4px}
 .nav .brand{min-width:0;gap:8px}
 .nav .brand small{display:none}
 .nav .logo{width:30px;flex-shrink:0}
 .nav .hamburger,#menuToggle{flex-shrink:0;width:40px;height:40px}
 .language-switch{padding:2px 3px}
 .language-switch>svg{display:none}
 .language-switch button{min-width:34px;min-height:34px;padding:0 6px;font-size:11.5px}
 .display-settings .theme-toggle{min-height:40px;min-width:40px;padding:8px}
 h1{font-size:clamp(36px,10.5vw,53px);overflow-wrap:break-word;hyphens:auto}
 .portal-top .brand{flex:1;min-width:150px}
 .portal-top .portal-tools{gap:6px}
 .portal-tools .display-settings{gap:4px}
 .portal-tools .language-menu{right:0}
}
@media(max-width:400px){
 .nav .brand{font-size:15px;line-height:1.1}
 .language-switch button{min-width:30px;padding:0 4px}
 .display-settings .theme-toggle{min-width:36px;min-height:36px;padding:6px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
.role-cards.single{grid-template-columns:minmax(0,440px);justify-content:center}
.role-cards.single .role-card{width:100%}
.aesthetics{background:var(--pale)}
.aes-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start}
.aes-badge{display:inline-block;margin-bottom:14px;padding:6px 14px;border-radius:999px;background:var(--button);color:var(--on-button);font-weight:700;font-size:13px}
.aes-intro h2{margin-bottom:16px}
.aes-intro p{max-width:46ch;margin-bottom:22px}
.aes-note{margin-top:16px;font-size:13px}
.aes-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}
.aes-card{padding:22px;border-radius:22px;background:var(--surface);border:1px solid var(--line)}
.aes-card:nth-child(2){border-radius:22px 60px 22px 22px}
.aes-card:nth-child(3){grid-column:1/-1}
.aes-card:nth-child(3) ul{columns:2;column-gap:28px}
.aes-card svg{width:34px;height:34px;fill:none;stroke:var(--button);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;margin-bottom:10px}
.aes-card h3{font-size:18px;margin-bottom:10px}
.aes-card ul{margin:0;padding-left:18px;display:block}
.aes-card li{margin:3px 0;break-inside:avoid}
@media(max-width:860px){.aes-grid{grid-template-columns:1fr;gap:28px}.aes-card:nth-child(3) ul{columns:1}}
html,body{overflow-x:clip}

/* Kalender: Tage = Zeilen, Uhrzeiten = Spalten */
.cal-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 4px}
.cal-views{display:inline-flex;gap:2px;padding:4px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
.cal-views button{min-height:36px;padding:0 16px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:700 13px/1 inherit;cursor:pointer;transition:background-color .2s,color .2s}
.cal-views button:hover{color:var(--text);background:var(--pale)}
.cal-views button.active{background:var(--button);color:var(--on-button)}
.cal-nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cal-title{min-width:13ch;text-align:center;text-transform:capitalize}
.tl-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface);-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.timeline{display:grid;--daycol:128px;--cell:minmax(46px,1fr);--gap:12px;width:100%}
.timeline>*{min-height:48px;border-bottom:1px solid var(--line)}
.timeline>:nth-last-child(-n+1){border-bottom:0}
.tl-corner,.tl-day{position:sticky;left:0;z-index:2;background:var(--surface);border-right:1px solid var(--line)}
.timeline .tl-corner,.timeline .tl-hour,.timeline .tl-head-gap{min-height:34px;background:var(--surface-alt)}
.tl-hour{display:flex;align-items:flex-end;padding:0 0 7px 4px;border-left:1px solid var(--line);font-size:11.5px;font-weight:700;color:var(--text);white-space:nowrap}
.tl-hour span{font-weight:500;color:var(--muted)}
.tl-day{display:grid;grid-template-columns:1fr auto;align-content:center;gap:0 6px;padding:5px 8px 5px 12px;font-size:13px}
.tl-wd{font-weight:700;text-transform:capitalize;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tl-dt{grid-row:2;font-size:11.5px;color:var(--muted)}
.tl-day .day-block{grid-row:1/3;grid-column:2;display:grid;place-items:center;width:30px;height:30px;min-height:0;padding:0;border-radius:8px;cursor:pointer}
.tl-day .day-block svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tl-day .day-block:hover{border-color:var(--button);color:var(--button)}
.tl-day .day-block[data-block=false]{background:var(--button);border-color:var(--button);color:var(--on-button)}
.tl-day.today{box-shadow:inset 4px 0 0 var(--button)}
.tl-day.today .tl-wd{color:var(--button)}
.tl-day.weekend,.tl-closed,.tl-off{background:var(--surface-alt)}
.tl-closed{display:flex;align-items:center;padding-left:14px;font-size:12px;color:var(--muted)}
.tl-gap{background:repeating-linear-gradient(135deg,transparent 0 4px,var(--line) 4px 5px)}
.tl-cell{border-left:1px solid var(--line);padding:3px 2px;display:flex}
.tl-cell:nth-child(odd){}
.timeline .cal-slot{flex:1;min-width:0;min-height:0;margin:0;padding:2px 3px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:700;text-align:center;white-space:nowrap;cursor:pointer;user-select:none;touch-action:pan-x pan-y}
.timeline .cal-slot span{overflow:hidden;text-overflow:ellipsis}
.timeline .cal-slot.frei{border-color:transparent;background:var(--mint-panel)}
.timeline .cal-slot.frei:hover:not(:disabled){border-color:var(--button);background:var(--pale)}
.timeline .cal-slot:disabled{opacity:.35;cursor:default}
.timeline.cal-day{--cell:minmax(52px,1fr)}
.timeline.cal-day>.tl-day,.timeline.cal-day>.tl-cell,.timeline.cal-day>.tl-gap:not(.tl-head-gap),.timeline.cal-day>.tl-off{min-height:110px}
.timeline.cal-day .cal-slot{font-size:12px;white-space:normal;overflow-wrap:anywhere}
.timeline.cal-month{--daycol:104px;--cell:minmax(26px,1fr);--gap:8px}
.timeline.cal-month>*{min-height:30px}
.timeline.cal-month .tl-day{grid-template-columns:auto 1fr auto;padding:2px 6px 2px 10px;font-size:12px}
.timeline.cal-month .tl-dt{grid-row:1;grid-column:2}
.timeline.cal-month .day-block{grid-row:1;grid-column:3;width:24px;height:24px}
.timeline.cal-month .day-block svg{width:13px;height:13px}
.timeline.cal-month .tl-cell{padding:2px 1px}
.timeline.cal-month .cal-slot{border-radius:4px;padding:0}
.timeline.cal-month .cal-slot span{display:none}
.timeline.cal-month .tl-hour{font-size:10px}
.timeline.cal-month .tl-hour span{visibility:hidden}
.timeline.cal-month .tl-closed{font-size:0}
.quick-account{display:inline-flex;align-items:center;gap:6px}
.quick-account>span:first-child{font-size:18px;line-height:1}
@media(max-width:760px){
 .timeline{--daycol:92px;--cell:minmax(44px,1fr)}
 .timeline.cal-month{--daycol:86px}
 .tl-day{padding:4px 6px 4px 9px;font-size:12px}
 .cal-toolbar{justify-content:center}
 .cal-views button{padding:0 13px}
 .quick-account>span:last-child{font-size:11.5px}
}

@media(max-width:480px){#quickAccount>span:last-child{display:none}#quickAccount::after{content:"ID + PIN";font-size:11.5px}#quickReset>span:last-child{font-size:11.5px}}
.print-sheet{margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}.print-sheet p{margin:0 0 8px}.print-sheet .row-buttons{display:flex;gap:8px;flex-wrap:wrap}
.role-card .id-field,.id-field{display:flex;align-items:stretch;border:1px solid var(--input-border);border-radius:10px;overflow:hidden;background:var(--surface);margin-top:6px}.id-field:focus-within{outline:3px solid var(--focus);outline-offset:2px}.role-card .id-prefix,.id-prefix{display:flex;align-items:center;padding:0 12px;background:var(--pale);color:var(--text);font-weight:800;letter-spacing:.04em;border-right:1px solid var(--input-border);user-select:none}.id-field input{border:0!important;margin:0!important;border-radius:0!important;flex:1;min-width:0;letter-spacing:.08em;font-weight:700}.id-field input:focus-visible{outline:none}
.link-button{background:none;border:0;padding:4px 0;color:var(--button);font:600 14px/1.3 inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.link-button:hover{color:var(--red-hover)}label.check{display:flex;align-items:flex-start;gap:8px;font-size:14px;margin:10px 0}label.check input{width:18px;min-height:18px;margin:2px 0 0;flex-shrink:0}.mail-status{margin-top:10px;font-weight:600}

/* Behandlungen & Kosten */
.cost-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 18px}
.cost-box{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface)}
.cost-box span{display:block;font-size:12.5px;color:var(--muted)}
.cost-box strong{display:block;font-size:22px;line-height:1.25;margin-top:2px}
.cost-box.open{border-color:var(--button);background:var(--pale)}
.cost-box.open strong{color:var(--button)}
.cost-list{display:grid;gap:10px;margin-bottom:12px}
.cost-row{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface)}
.cost-row.offen,.cost-row.teilweise{border-left:4px solid var(--button)}
.cost-row.bezahlt{border-left:4px solid #39846f}
.cost-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.cost-nums{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px 12px;margin:10px 0 0}
.cost-nums div{min-width:0}
.cost-nums dt{font-size:11.5px;color:var(--muted)}
.cost-nums dd{margin:0;font-weight:700;font-size:14px}
.cost-nums .o dd{color:var(--button)}
.cost-row.bezahlt .cost-nums .o dd{color:inherit}
.cost-row .actions{margin-top:10px;display:flex;gap:6px;flex-wrap:wrap}
.pay-pill{flex-shrink:0;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--pale);color:var(--button);white-space:nowrap}
.pay-pill.bezahlt{background:#e3f3ee;color:#246b56}
[data-theme=dark] .pay-pill.bezahlt{background:#1f3b33;color:#9fe0c9}
.tr-add{margin:6px 0 16px}
.tr-add summary{cursor:pointer;font-weight:700;margin-bottom:8px}
.tr-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 14px}
.tr-form .tr-wide{grid-column:1/-1}
.tr-patient{display:flex;align-items:center;gap:6px;margin:0;font-size:14px}
.tr-patient strong{font-size:17px}
.cat-list{display:grid;gap:8px;max-height:60vh;overflow:auto}
.cat-row{display:grid;grid-template-columns:minmax(0,1fr) 90px 70px auto auto;gap:6px;align-items:center}
.cat-row input{margin:0}
.cat-row label.check{margin:0;font-size:12px}
@media(max-width:760px){.cost-sum{grid-template-columns:1fr 1fr}.cost-sum .kasse{grid-column:1/-1}.cost-nums{grid-template-columns:repeat(2,minmax(0,1fr))}.tr-form{grid-template-columns:1fr}.cat-row{grid-template-columns:1fr 80px 56px;}.cat-row label.check,.cat-row button{grid-column:auto}}

/* Patientensuche oben */
.global-search{position:relative;flex:0 0 210px;width:210px}
.global-search input{width:100%;margin:0;min-height:40px;border-radius:999px;padding:0 14px}
.gs-results{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:50;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:6px;display:grid;gap:2px}
.gs-item{display:flex;justify-content:space-between;align-items:center;gap:10px;border:0;background:transparent;color:var(--text);padding:9px 10px;border-radius:8px;cursor:pointer;font:inherit;text-align:left}
.gs-item:hover,.gs-item:focus-visible{background:var(--pale)}
.gs-item span{font-size:12px;color:var(--muted)}
.gs-none{margin:6px 8px;font-size:13px;color:var(--muted)}
@media(max-width:760px){.global-search{order:5;flex:1 1 100%;width:auto}}

/* Zahlungen */
.pay-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:4px 0 14px}
.pay-tools input[type=search]{flex:1 1 240px;margin:0;max-width:360px}
.pay-tools label.check{margin:0}
.pay-list{display:grid;gap:10px}
.pay-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,3fr) auto;align-items:center;gap:14px;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--surface)}
.pay-row.has-open{border-left:4px solid var(--button)}
.pay-row.clear{border-left:4px solid #39846f}
.pay-row .cost-nums{margin:0}
.pay-id{display:grid;gap:4px;justify-items:start}
.pay-hist{display:grid;gap:6px;margin-bottom:10px}
.pay-h{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.btn.danger{background:var(--button);color:var(--on-button);border-color:var(--button)}
#dialogBody h3{margin:18px 0 8px}
@media(max-width:900px){.pay-row{grid-template-columns:1fr}.pay-row .btn{justify-self:start}}

.pick-list{display:grid;gap:2px;max-height:50vh;overflow:auto;margin-top:6px}
.row-buttons{display:inline-flex;gap:6px;flex-wrap:wrap}
.cal-pat-actions{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap}

/* Leistungsauswahl + Zahnschema */
.tr-pick{display:grid;gap:10px;max-height:420px;overflow:auto;padding:4px 2px;border:1px solid var(--line);border-radius:12px;padding:10px}
.tr-cat{border:0;margin:0;padding:0}
.tr-cat legend{font-weight:700;font-size:13px;margin-bottom:6px;color:var(--muted)}
.tr-chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:6px;margin:0;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);cursor:pointer;font-size:13px;line-height:1.2;user-select:none;transition:background-color .15s,border-color .15s}
.chip input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.chip small{color:var(--muted);font-size:11px}
.chip:hover{border-color:var(--button)}
.chip.on{background:var(--button);border-color:var(--button);color:var(--on-button)}
.chip.on small{color:var(--on-button);opacity:.8}
.chip:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}
.tr-selinfo{margin:0;font-size:14px}
.tr-single{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 14px}
.tr-single[hidden]{display:none}
.tooth-lbl{display:block;font-size:14px;margin-bottom:6px}
.tooth-chart{display:grid;gap:4px;margin-bottom:8px;overflow-x:auto}
.tooth-row{display:flex;gap:3px;align-items:center}
.tooth-row button{min-width:34px;height:34px;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font:600 12px/1 inherit;cursor:pointer}
.tooth-row button.on{background:var(--button);border-color:var(--button);color:var(--on-button)}
.tooth-mid{width:2px;align-self:stretch;background:var(--line);margin:0 6px}
.tooth-row:first-child{border-bottom:1px dashed var(--line);padding-bottom:4px}
@media(max-width:760px){.tr-single{grid-template-columns:1fr}.tooth-row button{min-width:30px;height:32px}}

.charge-box{margin:10px 0 6px;border:1px dashed var(--line);border-radius:12px;padding:10px 12px}
.charge-box summary{cursor:pointer;font-weight:700}
#chargeForm h3{margin-top:4px}
.charge-box #chargeForm h3{display:none}

/* Behandlungsverlauf */
.hist-list{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:0;border-left:2px solid var(--line);margin-left:6px}
.hist-list li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;padding:8px 0 10px 16px;position:relative}
.hist-list li::before{content:"";position:absolute;left:-7px;top:13px;width:12px;height:12px;border-radius:50%;background:var(--button);border:2px solid var(--surface)}
.hist-list time{font-size:13px;color:var(--muted);padding-top:2px}
.hist-list p{margin:2px 0 0}
.hist-teeth{display:inline-flex;flex-wrap:wrap;gap:4px;margin-left:8px;vertical-align:middle}
.hist-teeth span{font:700 11px/1 inherit;padding:4px 6px;border-radius:6px;background:var(--pale);color:var(--button)}
.hist-chart button{cursor:default;opacity:.45}
.hist-chart button.done{opacity:1;cursor:pointer;border-color:var(--button);color:var(--button);font-weight:800}
.hist-chart button.on{background:var(--button);color:var(--on-button)}
@media(max-width:560px){.hist-list li{grid-template-columns:1fr;gap:2px}}

/* Empfehlungen */
.rec-pick{display:grid;gap:10px;max-height:380px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:12px}
.rec-pick .chip{border-radius:12px;text-align:left;line-height:1.3}
.med-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1.1fr) 90px minmax(0,1.1fr) minmax(0,1.4fr) auto;gap:8px;align-items:end;margin-bottom:6px}
.med-row label{margin:0;font-size:12.5px}
.med-row input,.med-row select{margin:4px 0 0}
.med-row [data-med-del]{height:42px}
.rec-card{border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin:10px 0;background:var(--surface)}
.rec-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.rec-card h4{margin:12px 0 6px}
.rec-items{margin:0;padding-left:20px}
.rec-items li{margin:3px 0}
.med-list{display:grid;gap:8px}
.med{border-left:4px solid var(--button);padding:6px 10px;background:var(--pale);border-radius:8px}
.med-name{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.dose{display:inline-flex;gap:4px;margin-top:6px}
.dose>span{display:grid;justify-items:center;min-width:64px;padding:4px 6px;border-radius:8px;background:var(--surface);border:1px solid var(--line)}
.dose b{font-size:18px;color:var(--button)}
.dose small{font-size:11px;color:var(--muted)}
.dose .z b{color:var(--muted);opacity:.6}
.old-docs{margin-top:16px}
.milk{margin-top:6px}
.milk summary{cursor:pointer;font-size:13px;color:var(--muted)}
.surf-box .tr-chips{margin-bottom:4px}
@media(max-width:860px){.med-row{grid-template-columns:1fr 1fr}.med-row .med-note{grid-column:1/-1}.dose>span{min-width:52px}}

.block-panel{border-color:var(--line)}
.block-panel.is-blocked{border:2px solid var(--button);background:var(--pale)}
.blk-state{margin:6px 0 12px}

.dose-freq{display:inline-block;margin-left:8px;font-size:12px;font-weight:700;color:var(--button);vertical-align:middle}

.med-row{grid-template-columns:minmax(0,1.4fr) minmax(0,2.4fr) 80px minmax(0,1fr) minmax(0,1.2fr) auto}
.dose-pick{display:grid;gap:4px;font-size:12.5px}
.dose-pick .chip{padding:6px 10px;font-size:12px}
.dose-pick .chip.prn{border-style:dashed}
.dose-pick .m-max{margin:4px 0 0}
.med-max{margin:6px 0 0;font-size:13px}
.dose-pick [hidden]{display:none!important}
@media(max-width:860px){.med-row{grid-template-columns:1fr 1fr}.med-row .dose-pick{grid-column:1/-1}}

/* Familie */
.fam-list{display:grid;gap:8px;margin:10px 0 14px}
.fam-card{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--surface)}
.fam-pick{padding:12px 16px}
.fam-for select{margin-top:4px}
#famPanel details summary{cursor:pointer;font-weight:700;margin-bottom:8px}

#mergePanel .id-field{max-width:260px}
.mrg-preview{font-weight:600;margin:8px 0}
.mrg-mode{border:0;padding:0;margin:8px 0}
.mrg-mode legend{font-weight:700;margin-bottom:4px}
#mergePanel [hidden]{display:none!important}

.questionnaire .q-hidden{display:none!important}

.intake{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px 14px;margin:6px 0 10px}
.intake dt{font-size:12px;color:var(--muted)}
.intake dd{margin:0;font-weight:600}

/* Mittagspause sichtbar */
.timeline{--gap:30px}
.timeline.cal-month{--gap:18px}
.timeline .tl-head-gap{display:flex;align-items:center;justify-content:center;overflow:hidden}
.tl-head-gap span{writing-mode:vertical-rl;transform:rotate(180deg);font-size:10px;font-weight:700;color:var(--muted);letter-spacing:.04em}
/* Zahlungen ausgeblendet (Wunsch 2026-11-03) */
[data-pay-open]{display:none!important}

/* Preise ausgeblendet (2026-11-03) */
#treatPanel .cost-sum,#treatPanel .tr-single,#treatPanel .tr-multi,#treatPanel .cost-nums,#treatPanel .pay-pill,
#treatPanel [data-tr-full],#treatPanel [data-tr-pay],.tr-pick .chip small,
.cat-row input[name=price],.cat-row input[name=gkv_percent]{display:none!important}

/* Patientenbogen */
.anm-form{border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:12px 0;background:var(--surface-alt)}
.anm-form h4{margin:0 0 4px}.anm-form fieldset{border:0;padding:0;margin:10px 0}.anm-form legend{font-weight:700;margin-bottom:6px}
.anm-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}.anm-wide{grid-column:1/-1;margin:0}
.anm-checks{display:grid;grid-template-columns:1fr 1fr;gap:2px 14px}.anm-radio label{display:inline-flex;margin-right:16px}
.anm-ds{display:flex;flex-direction:column;gap:8px;margin-top:10px}.anm-ds button{align-self:flex-start}
.ds-text{max-height:60vh;overflow:auto;padding-right:6px}.ds-text h4{margin:12px 0 4px;font-size:14px}.ds-text p{margin:0 0 8px;font-size:14px;line-height:1.5}
.pf-box{border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:12px}
@media (max-width:640px){.anm-grid,.anm-checks{grid-template-columns:1fr}}

/* Patienten-Tabelle */
.pt-find{max-width:420px}
.pt-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.pt-table{width:100%;border-collapse:collapse;font-size:14px}
.pt-table th,.pt-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.pt-table th{background:var(--surface-alt);font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.pt-table tr:last-child td{border-bottom:0}.pt-table tbody tr:hover{background:var(--surface-alt)}
.pt-table td:last-child{text-align:right;white-space:nowrap}.pt-table a{color:inherit}
.pt-head{margin:4px 0 12px}
@media (max-width:700px){.pt-table thead{display:none}.pt-table tr{display:block;padding:8px 0;border-bottom:1px solid var(--line)}
.pt-table td{display:flex;justify-content:space-between;gap:10px;border:0;padding:4px 12px}.pt-table td[data-l]:before{content:attr(data-l);color:var(--muted);font-size:12px}
.pt-table td:last-child{justify-content:flex-end}}
/* Nachrichten: Liste links, Chat rechts */
.ch-find{max-width:420px}
.chat-layout{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start}
.chat-layout .conversation-list{flex-direction:column;flex-wrap:nowrap;max-height:70vh;overflow-y:auto;overflow-x:hidden;margin:0;gap:6px}
.chat-layout .conversation{flex:0 0 auto;width:100%;display:flex;flex-direction:column;gap:2px;padding:10px 12px}
.chat-layout .conversation.selected{border-color:var(--button);box-shadow:inset 3px 0 0 var(--button)}
.conversation.new{background:var(--pale)}
.cv-top{display:flex;align-items:center;gap:8px;justify-content:space-between}.cv-id{font-size:11.5px;color:var(--muted)}
.chat-layout .conversation .preview{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-wait{font-size:11px;font-weight:700;color:#d1495b}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#e5383b;box-shadow:0 0 0 3px rgba(229,56,59,.18);flex:0 0 auto}
.pt-msg{position:relative}.pt-msg .dot{position:absolute;top:-4px;right:-4px}
@media (max-width:800px){.chat-layout{grid-template-columns:1fr}.chat-layout .conversation-list{max-height:40vh}}

.cv-code{font-weight:800;font-size:15px;cursor:help;border-bottom:1px dotted currentColor}

.ch-sort{max-width:300px;margin-bottom:10px}

/* ===== Auswahl/Hover: Türkis statt Braun (2026-11-03) ===== */
:root{--select:#d3f4f1;--select-strong:#0f9f95;--select-text:#0b4d48}
html[data-theme="dark"]{--select:#2c7a78;--select-strong:#5fe3d6;--select-text:#effffd}
.portal-sidebar button.active{background:var(--select);color:var(--select-text);box-shadow:inset 3px 0 0 var(--select-strong)}
.portal-sidebar button:hover:not(.active){background:color-mix(in srgb,var(--select) 45%,transparent)}
.conversation.selected,.chat-layout .conversation.selected{background:var(--select);color:var(--select-text);border-color:var(--select-strong);box-shadow:inset 3px 0 0 var(--select-strong)}
.conversation.selected .cv-id,.conversation.selected .preview{color:inherit;opacity:.85}
.conversation.new:not(.selected){background:var(--red-soft)}
[aria-current]{border-color:var(--select-strong)}
.btn.secondary:hover,.language-switch button:hover,.cal-views button:hover,.gs-item:hover,.gs-item:focus-visible,.id-chip:hover{background:var(--select);color:var(--select-text)}
.id-chip:hover{border-color:var(--select-strong)}
.timeline .cal-slot.frei:hover:not(:disabled){background:var(--select);border-color:var(--select-strong)}
.pt-table tbody tr:hover{background:color-mix(in srgb,var(--select) 55%,transparent)}
.chip:hover{border-color:var(--select-strong)}
.chip.on,label.chip.on{background:var(--select);border-color:var(--select-strong);color:var(--select-text)}.message:not(.mine){background:#eef1f4}
[data-theme="dark"] .message:not(.mine){background:#363b44}
/* ===== Chat: Patient = hellviolett, Praxis = hellgrün (beide Themen); Braun im Dark-Mode -> Violett ===== */
html[data-theme="dark"]{--pale:#4a3d78;--peach-line:#a78bfa}
.message:not(.mine),[data-theme="dark"] .message:not(.mine){background:#ebe4ff;color:#2a2142}
.message.mine,[data-theme="dark"] .message.mine{background:#d9f5e3;color:#173826}
.message small,[data-theme="dark"] .message small{color:#5d5970}
.message.mine small,[data-theme="dark"] .message.mine small{color:#4a6656}
.message a{color:inherit}
/* Sigla neu (quadratisch) */
.logo{aspect-ratio:1/1;height:auto!important;overflow:visible}
.logo{width:44px!important}
@media (max-width:760px){.logo{width:36px!important}}

/* Nachrichten-Layout */
.chat-layout{grid-template-columns:320px 1fr;align-items:stretch}
.chat-side{display:flex;flex-direction:column;gap:8px;min-width:0}
.chat-side .ch-find,.chat-side .ch-sort{max-width:none;margin:0}
.chat-side .conversation-list{flex:1;max-height:calc(100vh - 330px);min-height:300px}
.chat-layout>.panel,.panel.chat-full{display:flex;flex-direction:column;margin:0;min-height:calc(100vh - 230px)}
.chat-layout>.panel .chat-log,.panel.chat-full .chat-log{flex:1;max-height:none;height:calc(100vh - 400px);min-height:280px}
@media (max-width:800px){.chat-layout{grid-template-columns:1fr}.chat-side .conversation-list{max-height:38vh;min-height:0}.chat-layout>.panel,.panel.chat-full{min-height:0}.chat-layout>.panel .chat-log,.panel.chat-full .chat-log{height:55vh}}/* Patientenansicht: eigene Nachrichten = Patient (violett), Praxis = grün – wie bei der Praxis */
.chat-full .message.mine,[data-theme="dark"] .chat-full .message.mine{background:#ebe4ff;color:#2a2142}
.chat-full .message:not(.mine),[data-theme="dark"] .chat-full .message:not(.mine){background:#d9f5e3;color:#173826}
/* Nachrichten: ganze Seite (Breite + Hoehe), nicht nur 1100px Spalte */
.portal-content>div:has(.chat-layout),.portal-content>div:has(.chat-full){max-width:none}
.chat-layout{height:calc(100vh - var(--chat-top,200px) - 38px);min-height:420px;grid-template-columns:340px 1fr}
.chat-side{height:100%;min-height:0}
.chat-side .conversation-list{flex:1;min-height:0;max-height:none}
.chat-layout>.panel{height:100%;min-height:0}
.panel.chat-full{height:calc(100vh - var(--chat-top,200px) - 38px);min-height:420px}
.chat-layout>.panel .chat-log,.panel.chat-full .chat-log{flex:1;height:auto;min-height:0;max-height:none}
@media (max-width:800px){.chat-layout,.panel.chat-full{height:auto;min-height:0}.chat-side{height:auto}.chat-side .conversation-list{max-height:38vh}.chat-layout>.panel .chat-log,.panel.chat-full .chat-log{height:55vh;flex:none}}
/* Patient: Texte mittig */
.chat-title{text-align:center}
.panel.chat-full>h3,.panel.chat-full>.hint{text-align:center}
/* Praxis-Chat: ohne Rand oben/unten – Liste und Chat ueber die ganze Hoehe */
.portal-content:has(.chat-layout){padding:12px 16px}
.portal-content:has(.chat-layout) .portal-notice{display:none}
.portal-content:has(.chat-layout) .chat-layout{height:calc(100vh - var(--chat-top,80px) - 12px)}
/* Team (Ueber uns) */
.team{background:var(--surface-alt)}
.team-head{max-width:780px;margin:0 auto 48px;text-align:center}
.team-kicker{display:inline-block;padding:6px 14px;border-radius:999px;background:var(--select);color:var(--select-text);font-weight:700;font-size:13px;margin-bottom:14px}
.team-head h2{margin:0 0 14px}.team-head p{color:var(--copy);font-size:17px;line-height:1.6}
.team-row{display:grid;grid-template-columns:minmax(260px,420px) 1fr;gap:56px;align-items:center;margin:0 0 64px}
.team-row.reverse{grid-template-columns:1fr minmax(260px,420px)}.team-row.reverse .team-photo{order:2}
.team-photo{margin:0;border-radius:24px;overflow:hidden;box-shadow:0 18px 40px var(--shadow);aspect-ratio:4/5;background:var(--surface)}
.team-photo img{width:100%;height:100%;object-fit:cover;display:block}
.team-text h3{font-size:22px;margin:0 0 12px}.team-text p{color:var(--copy);line-height:1.7;margin:0 0 14px}
.team-sub{margin-top:26px;padding:20px 22px;border-left:4px solid var(--select-strong);background:var(--surface);border-radius:0 16px 16px 0}
.team-invite{max-width:760px;margin:0 auto;text-align:center;padding:36px 32px;border-radius:24px;background:var(--surface);box-shadow:0 10px 30px var(--shadow-soft)}
.team-invite h3{font-size:24px;margin:0 0 12px}.team-invite p{color:var(--copy);line-height:1.7}
.team-sign{font-family:'Bricolage Grotesque',Arial,sans-serif;font-weight:600;font-size:19px;color:var(--text)!important;margin:18px 0 22px}
@media (max-width:860px){.team-row,.team-row.reverse{grid-template-columns:1fr;gap:24px;margin-bottom:44px}.team-row.reverse .team-photo{order:0}.team-photo{max-width:440px;margin:0 auto;width:100%}.team-head{margin-bottom:32px}.team-invite{padding:26px 18px}}
.team-head h2{font-size:clamp(28px,3.2vw,42px);line-height:1.15}

/* Kopfzeile: ganze Breite, passt sich an (Fenster und Vollbild) */
.header .nav.wrap{max-width:none;width:100%;padding:0 clamp(16px,3.2vw,64px)}
.nav .brand,.nav .brand span,.navlinks>a{white-space:nowrap}
.nav .brand>span{display:flex;flex-direction:column;line-height:1.15}
.navlinks{gap:clamp(12px,1.6vw,32px)}
@media(min-width:761px) and (max-width:1180px){.header .nav.wrap{padding:0 18px}.nav .brand{font-size:15px}.nav .brand small{display:none}}/* ganze Seite breiter + Kopfzeile auf allen Groessen */
.wrap{max-width:1680px;padding-left:clamp(16px,4vw,72px);padding-right:clamp(16px,4vw,72px)}
.navlinks .btn{white-space:nowrap}
@media(max-width:760px){.nav .brand,.nav .brand span{white-space:normal}.nav .brand{font-size:14px;line-height:1.15;min-width:0;flex:1}.nav .brand>span{overflow:hidden}}/* unter 1200px: Menue im Hamburger (wie Handy), Reihenfolge Logo | Sprache/Thema | ☰ */
@media(max-width:1200px){
 .hamburger{display:block}
 .navlinks{display:none;position:absolute;left:0;right:0;top:100%;background:var(--surface);padding:20px 22px;border-bottom:1px solid var(--line);box-shadow:0 15px 20px var(--shadow-soft);flex-direction:column;align-items:stretch;gap:5px;z-index:20}
 .navlinks.open{display:flex}
 .navlinks>a{font-size:16px;padding:10px}
 .header,.nav{position:relative}
 .nav .brand{order:0}.nav>.display-settings{order:1;margin-left:auto}.nav .hamburger{order:2;flex-shrink:0}
}
@media(max-width:560px){
 .nav{gap:6px}
 .nav .brand{font-size:13px}.nav .logo{width:30px!important}
 .nav>.display-settings{gap:3px}
 .nav>.display-settings .language-switch>svg{display:none}
 .language-switch button{min-width:30px;padding:0 6px;font-size:12px}
 .nav .hamburger{width:40px;height:40px}
}
.reason-cards .dur{display:block;font-size:11px;font-weight:600;opacity:.75;margin-top:2px}

/* Kalender ueber die ganze Breite */
.portal-content>div:has(.timeline){max-width:none}

/* ===== Zahn-Maskottchen lebendig ===== */
@keyframes toothFloat{0%,100%{translate:0 0;rotate:-1.5deg}50%{translate:0 -12px;rotate:1.5deg}}
@keyframes toothJump{0%{scale:1 1}25%{scale:1.06 .92}55%{translate:0 -38px;scale:.96 1.06}80%{scale:1.04 .96}100%{scale:1 1}}
@keyframes cheekGlow{0%,100%{opacity:.65}50%{opacity:1}}
.tooth-main.alive{animation:toothFloat 4.2s ease-in-out 3s infinite}
.tooth-main.alive.jump{animation:toothJump .7s ease, toothFloat 4.2s ease-in-out .7s infinite}
.tooth-main .mouth{transition:d .35s cubic-bezier(.34,1.56,.64,1),stroke-width .3s}
.tooth-main.happy .mouth{stroke-width:7}
.tooth-main .cheek{transition:rx .35s,ry .35s,opacity .35s;opacity:.7}
.tooth-main.happy .cheek{rx:15px;ry:8px;animation:cheekGlow 1.6s ease-in-out infinite}
.tooth-main .eye-hl{pointer-events:none}
.tooth-main:hover{filter:drop-shadow(0 12px 22px rgba(200,16,46,.18))}
@media (prefers-reduced-motion: reduce){.tooth-main.alive{animation:none}}

/* ===== Portal-Menue: schoene Hervorhebung ===== */
@keyframes navPop{0%{transform:scale(.95)}55%{transform:scale(1.04)}100%{transform:scale(1)}}
@keyframes iconWiggle{0%,100%{rotate:0deg}25%{rotate:-14deg}55%{rotate:10deg}80%{rotate:-4deg}}
@keyframes screenIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.portal-sidebar button{transition:background .25s,color .25s,transform .2s,box-shadow .3s}
.portal-sidebar button:hover:not(.active){transform:translateX(4px)}
.portal-sidebar button.active{animation:navPop .38s ease;box-shadow:inset 3px 0 0 var(--select-strong),0 8px 22px color-mix(in srgb,var(--select-strong) 30%,transparent)}
.portal-sidebar button.active>:first-child{display:inline-block;animation:iconWiggle .6s ease .05s}
.portal-screen{animation:screenIn .32s ease both}
@media (max-width:760px){.portal-sidebar button:hover:not(.active){transform:none}}
@media (prefers-reduced-motion: reduce){.portal-sidebar button.active,.portal-sidebar button.active>:first-child,.portal-screen{animation:none}}