/* Nivossa Local 7.0 - Oberfläche "Keramik und Graphit"
   Ein einziges Stylesheet. Ersetzt styles.css, theme.css und signature.css (liegen in historie/).
   Aufbau: Schrift, Tokens, Basis, Shell, Bausteine, Ansichten, Responsiv, Druck, Barrierefreiheit. */

/* ---------- Schrift, lokal eingebettet (SIL OFL 1.1, siehe assets/fonts) ---------- */
@font-face{font-family:"Atkinson Hyperlegible Next";font-style:normal;font-weight:200 800;font-display:swap;src:url("assets/fonts/AtkinsonHyperlegibleNext-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Atkinson Hyperlegible Next";font-style:normal;font-weight:200 800;font-display:swap;src:url("assets/fonts/AtkinsonHyperlegibleNext-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Atkinson Hyperlegible Mono";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/AtkinsonHyperlegibleMono-400.woff2") format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible Mono";font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/AtkinsonHyperlegibleMono-600.woff2") format("woff2")}

/* ---------- Tokens ---------- */
:root,html[data-theme="light"]{
  --bg:#ECEFEB;--surface:#FAFBF9;--raised:#FFFFFF;--sunken:#E2E7E2;--field:#FFFFFF;
  --line:#CBD3CD;--line-soft:rgba(20,32,27,.09);--control:#73837A;
  --ink:#14201B;--ink-2:#34423B;--muted:#55635B;
  --primary:#245D4E;--primary-hover:#1B4A3E;--on-primary:#FFFFFF;--primary-soft:#D9E7DE;
  --brass:#9B713D;--focus:#245D4E;
  --danger:#A3363A;--danger-soft:#F6E2E1;--warn:#7E560F;--warn-soft:#F4E8CF;
  --info:#33598C;--info-soft:#E1E9F3;--ok:#2F6B45;--ok-soft:#E1EEE4;
  --glass:rgba(236,239,235,.76);--glass-strong:rgba(250,251,249,.80);--glass-edge:rgba(255,255,255,.65);
  --shadow-panel:0 0 0 1px var(--line-soft),0 1px 2px rgba(20,32,27,.05);
  --shadow-float:0 10px 30px rgba(20,32,27,.15),0 1px 2px rgba(20,32,27,.08);
  --tooth:#FFFFFF;--tooth-stroke:#7C8A82;--metal:#93A099;
  --k-karies:#F4D9D3;--k-karies-ink:#9A3A2F;--k-fuell:#D6E2EF;--k-fuell-ink:#2E5A88;
  --k-krone:#EFE3BD;--k-krone-ink:#775A0C;--k-bruecke:#E3DDEF;--k-bruecke-ink:#594A8C;
  --k-fremd:#DDE7EA;--k-fremd-ink:#2F5E69;
  --bone:#E7E1D2;--bone-line:#C9BFA8;--viewer:#1F2321;
  --radius-control:9px;--radius-panel:16px;--sig:9px 9px 18px 9px;
  --font:"Atkinson Hyperlegible Next","Segoe UI",system-ui,-apple-system,sans-serif;
  --font-mono:"Atkinson Hyperlegible Mono",ui-monospace,Consolas,monospace;
  color-scheme:light;
}
html[data-theme="dark"]{
  --bg:#101614;--surface:#18201C;--raised:#1E2823;--sunken:#131A17;--field:#131A17;
  --line:#33413A;--line-soft:rgba(255,255,255,.07);--control:#74877B;
  --ink:#EEF2EE;--ink-2:#CDD6CF;--muted:#A7B3AA;
  --primary:#A9CFBC;--primary-hover:#BDDCCB;--on-primary:#10221A;--primary-soft:#22372D;
  --brass:#D4B47D;--focus:#A9CFBC;
  --danger:#F09A9C;--danger-soft:#3D2628;--warn:#E2BA74;--warn-soft:#382E1E;
  --info:#A9C0EA;--info-soft:#1F2A3A;--ok:#9FD0AE;--ok-soft:#1E3025;
  --glass:rgba(16,22,20,.74);--glass-strong:rgba(24,32,28,.78);--glass-edge:rgba(255,255,255,.07);
  --shadow-panel:0 0 0 1px var(--line-soft);
  --shadow-float:0 12px 34px rgba(0,0,0,.5),0 1px 2px rgba(0,0,0,.4);
  --tooth:#26302B;--tooth-stroke:#94A39A;--metal:#7D8C85;
  --k-karies:#6A3A33;--k-karies-ink:#F0A79C;--k-fuell:#2F4A68;--k-fuell-ink:#A9C4E6;
  --k-krone:#5E5025;--k-krone-ink:#E3C77C;--k-bruecke:#4A4068;--k-bruecke-ink:#C6B9EC;
  --k-fremd:#2C4B52;--k-fremd-ink:#9CCFD9;
  --bone:#2F2B23;--bone-line:#5B5241;--viewer:#0B0D0C;
  color-scheme:dark;
}

/* ---------- Basis ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
:where(h1,h2,h3,h4,h5,p,dl,dd,figure,pre){margin:0}
:where(ul,ol){margin:0;padding:0;list-style:none}
:where(button,input,select,textarea){font:inherit;color:inherit}
a{color:var(--primary)}
a:hover{color:var(--primary-hover)}
img,canvas,svg{max-width:100%}
.hidden{display:none!important}
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;padding:0;margin:-1px}
.muted{color:var(--muted)}
.tiny{font-size:12px}
.num,.tooth-number,time{font-variant-numeric:tabular-nums}
.code,input.code{font-family:var(--font-mono);letter-spacing:.01em}
.skip-link{position:absolute;left:12px;top:-60px;z-index:200;background:var(--primary);color:var(--on-primary);padding:10px 14px;border-radius:var(--radius-control);font-weight:700;text-decoration:none}
.skip-link:focus{top:12px}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.nv-icon{width:20px;height:20px;flex:none;vertical-align:middle}
[data-nv-icon]{display:inline-flex}
[data-nv-icon]:empty{display:none}

/* Knöpfe: ein Knopf ist standardmäßig sekundär. Genau eine Hauptaktion pro Bereich. */
:where(button,.btn,.button-link){display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 15px;border-radius:var(--radius-control);border:1px solid var(--control);background:var(--surface);color:var(--ink);font-size:14px;font-weight:700;line-height:1.2;text-decoration:none;cursor:pointer;white-space:nowrap}
:where(button,.btn,.button-link):hover{background:var(--sunken)}
:where(button,.btn,.button-link) .nv-icon{width:18px;height:18px}
:where(button):disabled{opacity:.5;cursor:not-allowed}
:where(button.primary,.btn.primary){background:var(--primary);border-color:var(--primary);color:var(--on-primary);border-radius:var(--sig)}
:where(button.primary,.btn.primary):hover{background:var(--primary-hover);border-color:var(--primary-hover)}
:where(button.quiet,.btn.quiet){border-color:transparent;background:transparent;color:var(--primary);padding:0 10px}
:where(button.quiet,.btn.quiet):hover{background:var(--primary-soft)}
:where(button.small,.btn.small){min-height:34px;padding:0 11px;font-size:13px}
:where(button.small.quiet){padding:0 8px}
:where(button.red){border-color:transparent;background:transparent;color:var(--danger)}
:where(button.red):hover{background:var(--danger-soft)}
:where(button.green){border-color:var(--control)}
.btn-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.form-foot{margin-top:16px}

/* Felder */
:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),select,textarea){width:100%;min-height:42px;border:1px solid var(--control);border-radius:var(--radius-control);background:var(--field);color:var(--ink);padding:9px 12px;font-size:15px;font-weight:400;line-height:1.4}
:where(textarea){min-height:92px;resize:vertical;line-height:1.5}
textarea.short{min-height:42px}
textarea.tall{min-height:180px}
:where(select){appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:34px}
:where(input,select,textarea):disabled{opacity:.6;cursor:not-allowed}
::placeholder{color:var(--muted);opacity:1}
input[type=checkbox],input[type=radio]{width:20px;height:20px;margin:0;accent-color:var(--primary);flex:none}
/* Beschriftung über dem Feld. Gilt auch für Formulare, die app.js erzeugt (Text direkt im label). */
:where(label){display:flex;flex-direction:column;gap:6px;min-width:0;font-size:13px;font-weight:700;color:var(--ink-2)}
div.field{display:flex;flex-direction:column;gap:6px;min-width:0}
div.field>.form-hint{margin-top:0}
.field>span:first-child,.field>label:first-child>span{font-size:13px;font-weight:700;color:var(--ink-2)}
.inline-field{flex-direction:row;align-items:center;gap:8px;font-size:13px}
.inline-field select{width:auto;min-height:34px;padding-top:5px;padding-bottom:5px}
.conditional-input{margin-top:6px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}
.form-grid.one{grid-template-columns:minmax(0,1fr)}
.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.form-grid .span2,.form-grid .wide{grid-column:span 2}
.form-grid .span3{grid-column:1/-1}
.form-grid.suture{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end}
.field-action{justify-content:flex-end}
.form-group-title{font-size:13px;font-weight:700;color:var(--muted);margin:22px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.form-group-title:first-child{margin-top:0}
.hint{font-size:13px;color:var(--muted);font-weight:400}
.panel-text{color:var(--ink-2);margin-bottom:14px;max-width:70ch}
.empty{color:var(--muted);font-size:14px;padding:6px 0}
.divider{height:1px;background:var(--line);margin:18px 0}
.stack{display:flex;flex-direction:column;gap:12px}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.spacer{flex:1}

/* Chips und Status. .badge bleibt als Alias für bestehende Vorlagen. */
.chip,.badge{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:2px 10px;border-radius:7px;background:var(--sunken);color:var(--ink-2);font-size:13px;font-weight:700;white-space:nowrap;line-height:1.3}
.chip:empty,.badge:empty{display:none}
.chip .nv-icon,.badge .nv-icon{width:16px;height:16px}
.chip.ok,.badge.green{background:var(--ok-soft);color:var(--ok)}
.chip.warn,.badge.amber{background:var(--warn-soft);color:var(--warn)}
.chip.alert,.badge.red{background:var(--danger-soft);color:var(--danger)}
.chip.info,.badge.blue{background:var(--info-soft);color:var(--info)}
.chip.brand{background:var(--primary-soft);color:var(--primary)}

/* ---------- Startbildschirm ---------- */
.landing{min-height:100vh;display:grid;place-items:center;padding:32px 16px;background:var(--bg)}
.landing.hidden{display:none}
.landing-card{width:min(520px,100%);display:flex;flex-direction:column;align-items:flex-start;gap:14px;transition:opacity .35s ease,transform .35s ease}
.landing.leaving .landing-card{opacity:0;transform:translateY(-8px)}
.landing-mark{width:64px;height:64px;margin-bottom:8px}
.landing h1{font-size:34px;line-height:1.1;letter-spacing:-.015em}
.landing-lead{font-size:17px;color:var(--ink-2)}
.landing-note{background:var(--warn-soft);color:var(--warn);border-radius:12px;padding:12px 14px;font-size:14px;line-height:1.45}
.landing-note b{font-weight:700}
.landing-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.landing-version{font-size:13px;color:var(--muted)}
.mark-tile{fill:var(--primary)}
.mark-line{stroke:var(--brass);stroke-width:14;stroke-linecap:round}
.mark-n{fill:var(--on-primary)}

/* ---------- Shell ---------- */
.app{display:none}
.app.active{display:grid;grid-template-columns:84px minmax(0,1fr);min-height:100vh}
.rail{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;border-right:1px solid var(--line-soft);background:var(--bg);z-index:30}
.rail-mark{width:46px;height:46px;min-height:46px;padding:2px;border:0;background:transparent;border-radius:14px;margin-bottom:14px}
.rail-mark:hover{background:transparent;opacity:.9}
.rail-mark svg{width:42px;height:42px}
.rail-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:68px;min-height:58px;padding:8px 0 7px;border:0;border-radius:12px;background:transparent;color:var(--muted);font-size:12px;font-weight:700;text-decoration:none;white-space:nowrap}
.rail-item:hover{color:var(--ink);background:var(--sunken)}
.rail-item .nv-icon{width:22px;height:22px}
.rail-item[aria-current="page"]{color:var(--primary);background:var(--surface);box-shadow:var(--shadow-panel)}
.rail-item[aria-current="true"]{color:var(--primary)}
.rail-count{position:absolute;top:4px;right:9px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--primary);color:var(--on-primary);font-size:12px;font-weight:700;line-height:20px;text-align:center}
.rail-spacer{flex:1}
.rail-demo{font-size:12px;font-weight:700;color:var(--warn);background:var(--warn-soft);border-radius:6px;padding:3px 7px;margin-bottom:6px}

.content{min-width:0;position:relative;outline:none}

/* Patientenkopf: einziges dauerhaft schwebendes Element, deshalb Glas. */
.phead{position:sticky;top:0;z-index:20;background:var(--glass);border-bottom:1px solid var(--line-soft)}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .phead{-webkit-backdrop-filter:blur(18px) saturate(1.35);backdrop-filter:blur(18px) saturate(1.35)}
}
.app[data-scope="global"] .phead{display:none}
.phead-row{display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;padding:14px 24px 10px;max-width:1680px}
.work-context{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;flex:1;min-width:0}
.who{display:flex;align-items:baseline;gap:4px 14px;flex-wrap:wrap;min-width:0}
.who h1{font-size:24px;line-height:1.2;font-weight:700;letter-spacing:-.01em}
.who .meta{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:14px}
.allergy{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:3px 11px 3px 9px;border-radius:8px;background:var(--danger-soft);color:var(--danger);font-size:14px;font-weight:700;max-width:100%}
.allergy .nv-icon{width:18px;height:18px}
.allergy.none{background:var(--sunken);color:var(--muted);font-weight:600}
.allergy.neg{background:var(--sunken);color:var(--ink-2);font-weight:600}
.casepick{position:relative;display:inline-flex;flex-direction:row;align-items:center;gap:10px;min-height:44px;padding:5px 12px 5px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);max-width:360px;margin-left:auto}
.casepick:hover{border-color:var(--control)}
.casepick:focus-within{outline:3px solid var(--focus);outline-offset:2px}
.casepick-text{display:flex;flex-direction:column;min-width:0;overflow:hidden}
.casepick small{font-size:12px;color:var(--muted);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.casepick b{font-size:14px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.casepick .nv-icon{width:18px;height:18px;color:var(--muted);transform:rotate(90deg)}
.casepick select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;min-height:0;border:0;padding:0}
.casepick.empty{border-style:dashed}
.phead-tools{display:flex;align-items:center;gap:10px}
.draft-line{display:none;align-items:center;gap:8px;min-height:34px;padding:2px 4px 2px 10px;border-radius:9px;background:var(--warn-soft);color:var(--warn);font-size:13px;font-weight:700}
.draft-line[data-state="draft"],.draft-line[data-state="error"],.draft-line[data-state="busy"]{display:inline-flex}
.draft-line[data-state="error"]{background:var(--danger-soft);color:var(--danger)}
.draft-dot{width:8px;height:8px;border-radius:50%;background:currentColor}
.draft-line button{color:inherit}
.switch-btn{min-height:40px}
.switcher{display:none;position:absolute;right:24px;top:calc(100% - 52px);width:min(420px,calc(100vw - 32px));background:var(--raised);border-radius:14px;box-shadow:var(--shadow-float);padding:16px;z-index:40}
body.sidebar-expanded .switcher{display:flex;flex-direction:column;gap:12px}
.switcher-list{display:flex;flex-direction:column;max-height:50vh;overflow:auto}
.switcher-list .sw-row,.search-results .sw-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:center;width:100%;min-height:52px;padding:8px 10px;border:0;border-radius:10px;background:transparent;text-align:left;font-weight:400;white-space:normal}
.switcher-list .sw-row:hover,.search-results .sw-row:hover{background:var(--sunken)}
.sw-row b{font-size:15px;font-weight:700}
.sw-row small{grid-column:1;font-size:13px;color:var(--muted)}
.sw-row .sw-end{grid-column:2;grid-row:1/span 2;font-size:13px;color:var(--muted)}
.sw-row[aria-current="true"]{background:var(--primary-soft)}
.switcher-head{font-size:12px;font-weight:700;color:var(--muted);padding:6px 10px 2px}

.tabbar{display:flex;align-items:center;gap:12px;padding-right:24px;max-width:1680px}
.tabbar .draft-line{flex:none;margin-bottom:4px}
.tabs{display:flex;gap:2px;padding:0 14px;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0}
.tabs::-webkit-scrollbar{display:none}
.tabs [role="tab"]{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 11px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--muted);font-size:15px;font-weight:700;white-space:nowrap;margin-bottom:-1px}
.tabs [role="tab"]:hover{color:var(--ink);background:transparent}
.tabs [role="tab"][aria-selected="true"]{color:var(--ink);border-bottom-color:var(--primary)}
.tab-n{font-size:12px;font-weight:700;color:var(--muted);background:var(--sunken);border-radius:6px;padding:0 6px;line-height:19px}
.tab-n:empty{display:none}
.tab-dot{width:7px;height:7px;border-radius:50%;background:var(--warn)}

/* ---------- Seiten und Flächen ---------- */
.view{display:none}
.view.active{display:block}
.page{padding:22px 24px 110px;max-width:1680px}
.page.narrow{max-width:900px;display:flex;flex-direction:column;gap:16px}
.page.narrow>.page-head{margin-bottom:4px}
.page-head{display:flex;align-items:flex-end;gap:12px 16px;flex-wrap:wrap;margin-bottom:20px}
.page-head h1{font-size:28px;line-height:1.2;letter-spacing:-.015em}
.page-head p{color:var(--muted);margin-top:4px}
.page-head.compact{margin-bottom:12px}
.panel{background:var(--surface);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel);padding:20px;min-width:0}
.panel+.panel{margin-top:0}
.panel-head{display:flex;align-items:center;gap:10px 12px;flex-wrap:wrap;margin-bottom:16px}
.panel-head h2{font-size:17px;line-height:1.3;font-weight:700}
.panel-head h3{font-size:15px;line-height:1.3;font-weight:700}
.col{display:flex;flex-direction:column;gap:20px;min-width:0}
.rows{display:flex;flex-direction:column}
.rows>.empty{padding:4px 0}
.row-link{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 16px;align-items:center;width:100%;min-height:56px;padding:12px 6px;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;text-align:left;font-weight:400;white-space:normal;color:inherit}
.rows>.row-link:first-child{border-top:0}
.row-link:hover{background:var(--sunken)}
.row-link b{font-size:15px;font-weight:700}
.row-link small{grid-column:1;font-size:14px;color:var(--muted)}
.row-link .row-end{grid-column:2;grid-row:1/span 3;display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.row-link .row-end .nv-icon{color:var(--muted);width:18px;height:18px}
.row-link .gaps{grid-column:1;display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}

/* ---------- Heute ---------- */
.today{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px;align-items:start}
.today-search{position:relative;width:min(380px,100%)}
.search-results{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--raised);border-radius:12px;box-shadow:var(--shadow-float);padding:6px;z-index:25;display:flex;flex-direction:column}

/* ---------- Patienten ---------- */
.filters{display:flex;flex-wrap:wrap;gap:12px 14px;align-items:flex-end;margin-bottom:16px}
.filters .field{min-width:150px}
.filters .grow{flex:1 1 260px}
.segmented{display:inline-flex;gap:2px;padding:3px;border-radius:11px;background:var(--sunken)}
.segmented button{min-height:34px;border:0;background:transparent;color:var(--muted)}
.segmented button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-panel)}
.patient-table-wrap{overflow-x:auto}
.patient-table{width:100%;border-collapse:collapse;font-size:14px}
.patient-table th{text-align:left;font-size:13px;font-weight:700;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.patient-table td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.patient-table tbody tr{cursor:pointer}
.patient-table tbody tr:hover td{background:var(--sunken)}
.patient-table tbody tr:last-child td{border-bottom:0}
.patient-directory-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.patient-directory-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:0;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);text-align:left;font-weight:400;white-space:normal}
.patient-directory-card h4{font-size:17px}
.patient-directory-card p{color:var(--muted);font-size:14px}
.directory-card-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--ink-2)}
.patient-directory-compact{display:flex;flex-direction:column}
.patient-directory-compact button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;justify-items:start;min-height:52px;padding:8px 6px;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;text-align:left;font-weight:400}
.patient-directory-compact button:first-child{border-top:0}
.patient-directory-compact span{grid-column:1;font-size:13px;color:var(--muted)}
.patient-directory-compact .risk-dot{grid-column:2;grid-row:1/span 2}
.risk-dot{width:10px;height:10px;border-radius:50%;background:var(--line)}
.risk-dot.hoch{background:var(--danger)}.risk-dot.mittel{background:var(--warn)}.risk-dot.niedrig{background:var(--ok)}
.patient-avatar{display:none}

.record{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:20px;align-items:start}
.case-list{display:flex;flex-direction:column}
.case-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;padding:12px 10px;border-top:1px solid var(--line);cursor:pointer;border-radius:0}
.case-item:first-child{border-top:0}
.case-item:hover{background:var(--sunken)}
.case-item.active{background:var(--primary-soft);border-radius:10px;border-top-color:transparent}
.case-item.active+.case-item{border-top-color:transparent}
.case-item b{font-size:15px}
.case-item small{grid-column:1;font-size:14px;color:var(--muted)}
.case-item .case-tags{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.case-item .case-end{grid-column:2;grid-row:1/span 2}
.case-title{font-size:20px;line-height:1.25;margin-bottom:4px}
.case-sub{color:var(--muted);margin-bottom:16px}
.doc-status{margin-bottom:18px}
.doc-checks{display:flex;flex-wrap:wrap;gap:6px}
.doc-checks span{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:2px 10px;border-radius:7px;font-size:13px;font-weight:700}
.doc-checks .ok{background:var(--ok-soft);color:var(--ok)}
.doc-checks .warn{background:var(--warn-soft);color:var(--warn)}
.clinical-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 18px}
.clinical-grid .wide{grid-column:1/-1}
.clinical-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.case-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}
.case-facts .fact{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:3px;background:var(--sunken);border-radius:12px;padding:12px 14px;cursor:pointer;min-width:0}
.case-facts .fact:hover{box-shadow:inset 0 0 0 1px var(--control)}
.case-facts .fact:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.case-facts .fact>span{font-size:13px;font-weight:700;color:var(--muted)}
.case-facts .fact b{font-size:16px;overflow-wrap:anywhere}
.case-facts .fact small{font-size:13px;color:var(--ink-2);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
@media (max-width:600px){.case-facts{grid-template-columns:minmax(0,1fr)}}
.appointments{display:flex;flex-direction:column}
.appt{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.appt:first-child{border-top:0}
.appt b{font-variant-numeric:tabular-nums}
.appt small{grid-column:1;color:var(--muted);font-size:13px}
.appt .appt-actions{grid-column:2;grid-row:1/span 2;display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.mini-odontogram{display:grid;grid-template-columns:repeat(16,minmax(0,1fr));gap:3px;margin:4px 0 12px}
.mini-tooth{display:grid;place-items:center;height:30px;border-radius:6px;background:var(--sunken);color:var(--muted);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.mini-tooth.status-karies{background:var(--k-karies);color:var(--k-karies-ink)}
.mini-tooth.status-fuellung{background:var(--k-fuell);color:var(--k-fuell-ink)}
.mini-tooth.status-krone{background:var(--k-krone);color:var(--k-krone-ink)}
.mini-tooth.status-bruecke{background:var(--k-bruecke);color:var(--k-bruecke-ink)}
.mini-tooth.status-implantat{background:var(--primary-soft);color:var(--primary)}
.mini-tooth.status-kontrolle{background:var(--warn-soft);color:var(--warn)}
.mini-tooth.status-fremdbefund{background:var(--k-fremd);color:var(--k-fremd-ink)}
.mini-tooth.status-fehlend{background:transparent;box-shadow:inset 0 0 0 1px var(--line);color:var(--muted);text-decoration:line-through}
.snapshot-chips{display:flex;flex-wrap:wrap;gap:6px}
.empty-state{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:8px 0}
.empty-state h3,.empty-state b{font-size:16px}

/* ---------- Zahnschema ---------- */
.work{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.odo{display:flex;flex-direction:column}
.odo-scroll{display:flex;flex-direction:column;position:relative}
.odo-quads{display:grid;grid-template-columns:1fr 1fr;font-size:13px;color:var(--muted);font-weight:700;padding:0 4px 6px}
.odo-quads span:last-child{text-align:right}
.jaw{display:grid;grid-template-columns:repeat(8,minmax(0,1fr)) 12px repeat(8,minmax(0,1fr));column-gap:1px}
.jaw-mid{width:1px;justify-self:center;background:var(--line)}
.occl{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;font-weight:700;margin:4px 0}
.occl::before,.occl::after{content:"";flex:1;height:1px;background:var(--line)}
.tooth{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;min-width:0;min-height:0;padding:8px 0 7px;border:0;border-radius:10px;background:transparent;color:var(--ink);font-weight:700;white-space:nowrap}
.jaw.lower .tooth{flex-direction:column-reverse}
.tooth:hover{background:var(--sunken)}
.tooth .tooth-number{font-size:15px;font-weight:700;line-height:1.2}
.tooth .tooth-state{font-size:12px;font-weight:700;line-height:16px;min-height:16px;letter-spacing:-.015em;color:var(--t-ink,var(--muted))}
.tg{width:36px;height:63px;fill:var(--t-fill,var(--tooth));stroke:var(--t-stroke,var(--tooth-stroke));stroke-width:1.25;stroke-linejoin:round;overflow:visible}
.tg .cej{fill:none;opacity:.5}
.tg .metal{fill:var(--metal)}
.tg .thread{fill:none;stroke-width:1;opacity:.75}
.jaw.upper .tg{transform:scaleY(-1)}
.tooth.documented{--t-stroke:var(--ink-2)}
.tooth.status-karies{--t-fill:var(--k-karies);--t-ink:var(--k-karies-ink);--t-stroke:var(--k-karies-ink)}
.tooth.status-fuellung{--t-fill:var(--k-fuell);--t-ink:var(--k-fuell-ink);--t-stroke:var(--k-fuell-ink)}
.tooth.status-krone{--t-fill:var(--k-krone);--t-ink:var(--k-krone-ink);--t-stroke:var(--k-krone-ink)}
.tooth.status-bruecke{--t-fill:var(--k-bruecke);--t-ink:var(--k-bruecke-ink);--t-stroke:var(--k-bruecke-ink)}
.tooth.status-implantat{--t-ink:var(--primary)}
.tooth.status-kontrolle{--t-stroke:var(--warn);--t-ink:var(--warn)}
.tooth.status-kontrolle .tg{stroke-width:1.8}
.tooth.status-fremdbefund{--t-fill:var(--k-fremd);--t-ink:var(--k-fremd-ink);--t-stroke:var(--k-fremd-ink)}
.tooth.status-gesund{--t-ink:var(--ok)}
.tooth.status-fehlend .tg{fill:transparent;stroke-dasharray:3 2.5}
.tooth .tooth-media{position:absolute;top:4px;right:3px;font-size:11px;font-weight:700;color:var(--muted);display:inline-flex;align-items:center;gap:1px}
.tooth .tooth-media .nv-icon{width:12px;height:12px}
.jaw.lower .tooth .tooth-media{top:auto;bottom:4px}
.tooth.selected{background:var(--primary-soft);box-shadow:0 0 0 2px var(--primary);border-radius:7px 7px 18px 7px;z-index:1}
.tooth.pulse{animation:nvPulse .5s ease-out}
@keyframes nvPulse{0%{box-shadow:0 0 0 0 var(--primary)}100%{box-shadow:0 0 0 2px var(--primary)}}
.odo-legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13px;color:var(--muted);margin-top:16px}
.odo-legend span{display:inline-flex;align-items:center;gap:7px}
.odo-legend i{display:inline-block;width:14px;height:14px;border-radius:4px;border:1.25px solid var(--ink-2)}
.odo-legend i.fehlend{border-style:dashed;border-color:var(--muted)}
.odo-legend svg{width:12px;height:22px;fill:var(--tooth);stroke:var(--ink-2);stroke-width:2}
.findings{display:flex;flex-direction:column;margin-top:18px;border-top:1px solid var(--line)}
.finding{display:grid;grid-template-columns:44px 120px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;min-height:48px;padding:8px 4px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;text-align:left;font-weight:400;white-space:normal;color:inherit}
.finding:last-child{border-bottom:0}
.finding:hover{background:var(--sunken)}
.finding .no{font-weight:700;font-size:16px;font-variant-numeric:tabular-nums}
.finding b{font-weight:700;color:var(--t-ink,var(--ink))}
.finding .note{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.finding .nv-icon{width:18px;height:18px;color:var(--muted)}
.finding.status-karies{--t-ink:var(--k-karies-ink)}.finding.status-fuellung{--t-ink:var(--k-fuell-ink)}.finding.status-krone{--t-ink:var(--k-krone-ink)}.finding.status-bruecke{--t-ink:var(--k-bruecke-ink)}.finding.status-implantat{--t-ink:var(--primary)}.finding.status-kontrolle{--t-ink:var(--warn)}.finding.status-fremdbefund{--t-ink:var(--k-fremd-ink)}.finding.status-gesund{--t-ink:var(--ok)}.finding.status-fehlend{--t-ink:var(--muted)}

.insp{position:sticky;top:132px}
.insp-head{display:flex;gap:14px;align-items:center}
.bignum{display:grid;place-items:center;width:58px;height:58px;flex:none;background:var(--primary);color:var(--on-primary);font-size:27px;font-weight:700;border-radius:8px 8px 20px 8px;font-variant-numeric:tabular-nums}
.insp-head h2{font-size:19px;line-height:1.25}
.insp-head p{font-size:14px;color:var(--muted)}
.insp-actions{margin-top:16px}
.sec-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--ink-2);margin:22px 0 10px}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}
.facts div{min-width:0}
.facts dt{font-size:13px;color:var(--muted);font-weight:700}
.facts dd{font-size:15px;font-weight:700;margin-top:2px;overflow-wrap:anywhere}
.facts dd.none{color:var(--muted);font-weight:400}
.facts dd.gap{color:var(--warn);display:flex;align-items:center;gap:6px}
.facts dd.gap .nv-icon{width:17px;height:17px}
.niveau{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:center;background:var(--sunken);border-radius:12px;padding:12px 16px 12px 12px;margin-top:16px}
.niveau>svg{width:96px;height:112px;display:block}
.niveau h3{font-size:15px}
.niveau p{font-size:13px;color:var(--muted);margin:3px 0 0}
.niveau>button{grid-column:1/-1;justify-self:start;max-width:100%;white-space:normal;text-align:left}
@media (max-width:420px){.niveau{grid-template-columns:72px minmax(0,1fr);gap:12px}.niveau>svg{width:72px;height:84px}}
.niveau .bone{fill:var(--bone)}.niveau .bone-edge{stroke:var(--bone-line);stroke-width:1}
.niveau .crown{fill:var(--tooth);stroke:var(--tooth-stroke);stroke-width:1.4}
.niveau .metal{fill:var(--metal)}.niveau .thread{stroke:var(--surface);stroke-width:1.2;opacity:.6;fill:none}
.niveau .level{stroke:var(--brass);stroke-width:2.2;stroke-linecap:round}
.niveau .level.missing{stroke-dasharray:5 4}
.tooth-form{margin-top:4px;grid-template-columns:minmax(0,1fr)}
.tooth-form .span2,.tooth-form .wide{grid-column:auto}
.form-hint{display:block;font-size:13px;color:var(--muted);margin-top:8px;overflow-wrap:anywhere}
.thumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.thumb{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:6px;min-width:0;min-height:0;padding:0;border:0;background:transparent;text-align:left;font-weight:400;white-space:normal}
.thumb:hover{background:transparent}
.thumb .thumb-img{aspect-ratio:4/3;width:100%;border-radius:8px;background:var(--viewer);display:grid;place-items:center;color:#B9C2BD;box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.thumb .thumb-img img{width:100%;height:100%;object-fit:contain}
.thumb .thumb-img{align-content:center;gap:4px}.thumb .thumb-img em{font:600 12px/1 var(--font-mono);font-style:normal;letter-spacing:.06em}
.thumb small{font-size:12px;color:var(--muted);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.thumb b{font-size:13px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.events{display:flex;flex-direction:column}
.event{display:grid;grid-template-columns:62px minmax(0,1fr);gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:14px}
.event:first-child{border-top:0}
.event time{color:var(--muted);font-weight:700}
.event b{display:block}
.event p{color:var(--muted);font-size:13px}
.linked{display:flex;flex-wrap:wrap;gap:6px}

/* ---------- OP-Protokoll, Implantate, Recall ---------- */
.protocol{display:grid;grid-template-columns:232px minmax(0,1fr);gap:28px;align-items:start}
.toc{position:sticky;top:132px;display:flex;flex-direction:column;gap:2px}
.toc a{display:flex;justify-content:space-between;gap:8px;align-items:center;min-height:38px;padding:7px 12px;border-radius:9px;color:var(--ink-2);text-decoration:none;font-size:14px;font-weight:700}
.toc a:hover{background:var(--sunken);color:var(--ink)}
.toc a[aria-current="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-panel)}
.toc a span{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.toc-phase{font-size:12px;font-weight:700;color:var(--muted);padding:14px 12px 4px}
.toc-phase:first-child{padding-top:0}
.toc-foot{padding:12px 4px 0}
#view-documentation:not([data-doc-mode="op"]) [data-mode="op"],
#view-documentation:not([data-doc-mode="implant"]) [data-mode="implant"],
#view-documentation:not([data-doc-mode="recall"]) [data-mode="recall"]{display:none!important}
.sheet{max-width:960px;display:flex;flex-direction:column;gap:20px;min-width:0}
.sheet section{scroll-margin-top:150px}
.sheet h2{scroll-margin-top:150px}
.section-state{font-size:13px;color:var(--muted);font-weight:700}
.progress{height:6px;border-radius:3px;background:var(--sunken);overflow:hidden;margin:-4px 0 18px}
.progress i{display:block;height:100%;width:0;background:var(--primary);border-radius:3px;transition:width .2s ease}
.checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
.checks h3{grid-column:1/-1;font-size:13px;font-weight:700;color:var(--muted);padding:14px 0 4px;border-bottom:1px solid var(--line);margin-bottom:4px}
.checks h3:first-child{padding-top:0}
.doc-check{display:flex;flex-direction:row;gap:11px;align-items:center;padding:7px 0;font-size:15px;font-weight:400;color:var(--ink);line-height:1.35;cursor:pointer}
.doc-check span{flex:1}
.implant-context-hint{font-size:14px;color:var(--muted);margin:-6px 0 14px}
.implant-list{display:flex;flex-direction:column;gap:12px}
.item-list{display:flex;flex-direction:column;margin:4px 0 14px}
.item-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}
.item-row:first-child{border-top:0}
.item-row b{font-variant-numeric:tabular-nums}
.item-row small{grid-column:1;color:var(--muted);font-size:13px}
.item-row .item-end{grid-column:2;grid-row:1/span 3;display:flex;gap:6px;align-items:center}
.item-row .item-tags{grid-column:1;display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.computed-date{margin-top:14px;font-size:14px;color:var(--ink-2)}
.computed-date:empty{display:none}

.savebar{position:sticky;bottom:18px;z-index:15;display:flex;align-items:center;gap:12px;margin:8px 0 0;padding:8px 8px 8px 18px;border-radius:14px;background:var(--glass-strong);box-shadow:var(--shadow-float),inset 0 0 0 1px var(--glass-edge)}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .savebar{-webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4)}
}
.savebar p{font-size:14px;font-weight:700}
.savebar-dot{width:9px;height:9px;border-radius:50%;background:var(--control);flex:none}
.savebar[data-state="saved"] .savebar-dot{background:var(--ok)}
.savebar[data-state="draft"] .savebar-dot{background:var(--warn)}
.savebar[data-state="error"] .savebar-dot{background:var(--danger)}
.savebar [data-mode]{flex:none}
#view-documentation:not([data-doc-mode="op"]) .savebar [data-mode="op"],
#view-documentation:not([data-doc-mode="implant"]) .savebar [data-mode="implant"],
#view-documentation:not([data-doc-mode="recall"]) .savebar [data-mode="recall"]{display:none!important}

/* Implantat-Karte */
.nv-implant-card{display:grid;grid-template-columns:56px minmax(0,1fr);gap:14px;padding:14px;border-radius:14px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}
.nv-implant-card.nv-implant-inactive{opacity:.75}
.nv-implant-illustration{display:flex;flex-direction:column;align-items:center;gap:4px;font-weight:700;font-size:15px;font-variant-numeric:tabular-nums}
.nv-implant-illustration svg{width:30px;height:52px;fill:var(--tooth);stroke:var(--tooth-stroke);stroke-width:1.25}
.nv-implant-content{min-width:0}
.nv-implant-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:2px}
.nv-implant-content h4{font-size:16px;line-height:1.3}
.nv-implant-context{font-size:13px;color:var(--muted);margin-top:2px}
.nv-implant-specs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 14px;margin:10px 0}
.nv-implant-specs dt{font-size:12px;color:var(--muted);font-weight:700}
.nv-implant-specs dd{font-size:14px;font-weight:700;overflow-wrap:anywhere}
.nv-implant-specs dd.gap{color:var(--warn)}
.nv-implant-actions{display:flex;gap:8px;flex-wrap:wrap}

/* ---------- Knochenniveau ---------- */
.bone-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:20px;align-items:start}
.nv-bone-identity{display:flex;gap:14px;align-items:center;margin-bottom:16px}
.nv-bone-identity svg{width:30px;height:52px;fill:var(--tooth);stroke:var(--tooth-stroke);stroke-width:1.25}
.nv-bone-identity h2{font-size:17px}
.nv-bone-identity p{font-size:14px;color:var(--muted)}
.nv-empty-bone{display:flex;gap:10px;align-items:center;color:var(--muted);margin-bottom:16px}
.bone-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.bone-kpis div{background:var(--sunken);border-radius:12px;padding:12px 14px}
.bone-kpis span{display:block;font-size:13px;color:var(--muted);font-weight:700}
.bone-kpis strong{display:block;font-size:20px;font-variant-numeric:tabular-nums}
.chart-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.series-legend{display:flex;flex-wrap:wrap;gap:6px;flex:1}
.nv-series-key{min-height:32px;padding:0 10px;gap:7px;font-size:13px;border-color:var(--line)}
.nv-series-key[aria-pressed="true"]{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}
.nv-series-key span:last-child{color:var(--muted);font-variant-numeric:tabular-nums}
.nv-series-line{display:inline-block;width:18px;height:0;border-top:2px solid var(--series-light)}
html[data-theme="dark"] .nv-series-line{border-top-color:var(--series-dark)}
.nv-line-1{border-top-style:dashed!important}.nv-line-2{border-top-style:dotted!important}.nv-line-3{border-top-style:dashed!important;border-top-width:3px!important}
.small-select{width:auto;min-height:32px;font-size:13px;padding-top:4px;padding-bottom:4px}
.bone-chart{display:block;width:100%;height:350px;background:var(--surface);border-radius:12px}
.chart-inspector{display:flex;align-items:center;gap:10px;margin-top:8px}
.chart-inspector p{flex:1;font-size:14px;color:var(--ink-2);min-height:20px}
.chart-inspector button{min-width:40px;padding:0}

/* ---------- Eingang und Medien ---------- */
#view-media[data-media-mode="gallery"] [data-media="inbox"],
#view-media[data-media-mode="inbox"] [data-media="gallery"]{display:none}
.inbox-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.inbox-list{display:flex;flex-direction:column}
.inbox-file{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;padding:14px 0;border-top:1px solid var(--line)}
.inbox-file:first-child{border-top:0;padding-top:0}
.inbox-file-head{display:flex;gap:12px;align-items:flex-start;min-width:0}
.inbox-file-head .nv-icon{width:22px;height:22px;color:var(--muted);margin-top:1px}
.inbox-file-head b{display:block;font-size:15px;overflow-wrap:anywhere}
.inbox-file-head small{display:block;font-size:13px;color:var(--muted)}
.inbox-assign-row{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr) auto;gap:10px;align-items:center}
.inbox-assign-row select{min-height:38px}
.suggestion-chip{display:inline-flex;margin-top:6px;font-size:13px;color:var(--ink-2);background:var(--sunken);border-radius:7px;padding:2px 8px;font-weight:700}
.suggestion-chip.accepted{background:var(--primary-soft);color:var(--primary)}
.missing-attachment{grid-column:1/-1;font-size:14px;color:var(--danger);background:var(--danger-soft);border-radius:8px;padding:8px 10px}
.dropzone{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:16px;padding:22px 16px;border:1.5px dashed var(--control);border-radius:14px;text-align:center;color:var(--ink-2)}
.dropzone .nv-icon{width:26px;height:26px;color:var(--muted)}
.dropzone b{font-size:15px}
.dropzone span{font-size:13px;color:var(--muted)}
.dropzone label.btn{margin-top:6px;flex-direction:row;font-size:13px;color:var(--ink)}
.dropzone.drag{border-color:var(--primary);background:var(--primary-soft)}
.file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.media-card{display:flex;flex-direction:column;border-radius:12px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden;min-width:0}
.media-card[hidden]{display:none}
.media-img,.media-thumb{width:100%;aspect-ratio:4/3;object-fit:contain;background:var(--viewer);display:grid;place-items:center;color:#B9C2BD}
.media-thumb .nv-icon{width:28px;height:28px}
.media-thumb{align-content:center;gap:8px}.media-thumb span{font:600 12px/1 var(--font-mono);letter-spacing:.06em}
.media-meta{padding:10px 12px 4px;display:flex;flex-direction:column;gap:2px;min-width:0}
.media-meta b{font-size:14px;overflow-wrap:anywhere}
.media-meta span{font-size:13px;color:var(--muted)}
.media-actions{display:flex;gap:6px;padding:6px 12px 12px;flex-wrap:wrap}

/* ---------- Verlauf ---------- */
.timeline-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start}
.timeline{display:flex;flex-direction:column}
.timeline-item{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;padding:14px 0;border-top:1px solid var(--line)}
.timeline-item:first-child{border-top:0;padding-top:0}
.timeline-date{display:flex;flex-direction:column;align-items:flex-start;gap:6px;font-weight:700;font-variant-numeric:tabular-nums}
.timeline-body b{display:block;font-size:15px}
.timeline-body .tiny{display:block;color:var(--muted);font-size:13px}
.timeline-body p{margin-top:4px;color:var(--ink-2);font-size:14px}
.type-op{background:var(--primary-soft);color:var(--primary)}
.type-kontrolle{background:var(--info-soft);color:var(--info)}
.type-befund{background:var(--k-fremd);color:var(--k-fremd-ink)}
.type-beschwerde{background:var(--warn-soft);color:var(--warn)}

/* ---------- Bericht ---------- */
.report-layout{display:grid;grid-template-columns:380px minmax(0,1fr);gap:24px;align-items:start}
.report-layout>.panel{position:sticky;top:24px}
.report-layout .btn-row+.form-foot{margin-top:12px}
.paper-wrap{min-width:0;background:var(--sunken);border-radius:var(--radius-panel);padding:28px}
#reportPreview .report-a4{max-width:860px;margin:0 auto;background:#fff;border-radius:4px;padding:44px 48px;box-shadow:0 1px 2px rgba(0,0,0,.08),0 12px 32px rgba(0,0,0,.12)}
/* Papierstil identisch zu REPORT_SIGNATURE_CSS in app.js (Export und Druck) */
#reportPreview .report-a4{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#17231E;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
#reportPreview .report-brandline{display:flex;align-items:center;gap:9px;margin-bottom:22px;color:#17231E}
#reportPreview .report-brand-symbol{width:30px;height:30px;flex:none}
#reportPreview .report-brandline b{font-size:14px;letter-spacing:.19em;font-weight:700}
#reportPreview .report-brandline span{color:#59665F;font-size:12px;letter-spacing:.02em;margin-left:auto}
#reportPreview .report-header{display:flex;gap:20px;justify-content:space-between;border-bottom:2px solid #17231E;padding-bottom:18px;margin-bottom:22px}
#reportPreview .report-header h1{font-size:25px;line-height:1.25;letter-spacing:-.03em;margin:0 0 9px;font-weight:650;color:#17231E}
#reportPreview .report-header p{margin:0;font-size:12px;color:#59665F}
#reportPreview .report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 20px;margin:14px 0 24px}
#reportPreview .report-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
#reportPreview .report-field{border:0;border-bottom:1px solid #D4DDD5;padding:9px 0;background:#fff;min-width:0}
#reportPreview .report-field span{color:#59665F;font-size:12px;display:block;line-height:1.4}
#reportPreview .report-field strong{color:#17231E;font-size:13px;font-weight:500;white-space:pre-wrap;display:block;margin-top:4px}
#reportPreview .report-section{margin-top:24px}
#reportPreview .report-section h3{font-size:15px;color:#17231E;border-bottom:1px solid #8DA397;padding-bottom:5px;margin:0 0 10px}
#reportPreview .report-section h4{font-size:13px;color:#17231E;margin:12px 0 6px}
#reportPreview .report-text{border-left:2px solid #8DA397;background:#F3F5F1;padding:10px 13px;white-space:pre-wrap;color:#17231E;line-height:1.6}
#reportPreview .report-table{font-size:12px;table-layout:fixed;width:100%;border-collapse:collapse}
#reportPreview .report-table th,#reportPreview .report-table td{padding:8px;border:0;border-bottom:1px solid #D4DDD5;text-align:left;color:#17231E}
#reportPreview .report-table th{background:#EEF1EC;font-size:12px;font-weight:650}
#reportPreview .report-table td{background:#fff}
#reportPreview :is(.report-note,.tiny){font-size:12px;color:#59665F}
#reportPreview .report-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
#reportPreview .report-badges span{border:1px solid #D4DDD5;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:700;color:#17231E}
#reportPreview .report-footer-v6{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:40px}
#reportPreview .signature-v6{border-top:1px solid #59665F;color:#59665F;font-size:12px;padding-top:7px}
#reportPreview .report-footer-brand{border-top:1px solid #D4DDD5;padding-top:9px;margin-top:28px;color:#59665F;font-size:12px;letter-spacing:.03em}
#reportPreview .report-image-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#reportPreview .report-figure{margin:0;border:1px solid #D4DDD5;border-radius:6px;overflow:hidden}
#reportPreview .report-figure img{width:100%;height:auto;display:block;max-height:260px;object-fit:contain;background:#fff}
#reportPreview .report-figure figcaption{font-size:12px;color:#59665F;padding:6px 8px;border-top:1px solid #D4DDD5}
#reportPreview .missing-attachment{padding:10px;color:#8B2E31;background:#FBEDEE}
#reportPreview .empty-state{background:var(--surface);border-radius:12px;padding:24px}

/* ---------- Leuchtkasten, Hinweise ---------- */
.lightbox{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(8,12,10,.72)}
.lightbox.open{display:flex}
.lightbox-inner{width:min(1100px,100%);max-height:100%;display:flex;flex-direction:column;background:var(--raised);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-float)}
.lightbox-bar{display:flex;align-items:center;gap:12px;padding:12px 14px 12px 18px;border-bottom:1px solid var(--line)}
.lightbox-bar b{flex:1;overflow-wrap:anywhere}
.lightbox-actions{display:flex;gap:8px}
.lightbox-body{flex:1;min-height:0;overflow:auto;background:var(--viewer);display:grid;place-items:center;padding:12px}
.lightbox-body img{max-width:100%;max-height:78vh;object-fit:contain;filter:none;mix-blend-mode:normal;opacity:1}
.lightbox-body iframe{width:100%;height:78vh;border:0;background:#fff}
.lightbox-body p{color:#E6ECE8}
.toast-stack{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:150;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.toast{background:var(--ink);color:var(--bg);padding:11px 16px;border-radius:10px;font-size:14px;font-weight:700;box-shadow:var(--shadow-float);opacity:0;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease;max-width:min(560px,calc(100vw - 32px))}
.toast.show{opacity:1;transform:none}
.storage-alert{position:sticky;top:0;z-index:130;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:12px 20px;background:var(--danger-soft);color:var(--danger);border-bottom:1px solid var(--danger)}
.storage-alert p{flex:1 1 280px;color:var(--ink)}
.storage-busy{position:fixed;left:50%;top:16px;transform:translateX(-50%);z-index:140;background:var(--raised);color:var(--ink);padding:10px 16px;border-radius:10px;box-shadow:var(--shadow-float);font-weight:700}
.context-bar{display:none}

/* ---------- Responsiv ---------- */
@media (max-width:1320px){
  .work{grid-template-columns:minmax(0,1fr) 300px}
  .work>.panel:first-child{padding:16px}
  .record{grid-template-columns:minmax(0,1fr) 360px}
  .protocol{grid-template-columns:200px minmax(0,1fr);gap:22px}
}
@media (max-width:1180px){
  .app.active{grid-template-columns:72px minmax(0,1fr)}
  .rail-item{width:64px}
  .rail-demo{padding:3px 5px}
  .phead-row{padding:12px 18px 8px}
  .tabs{padding:0 8px}
  .tabbar{padding-right:18px}
  .page{padding:18px 18px 110px}
  .work,.record,.today,.inbox-layout,.timeline-layout,.report-layout,.bone-layout{grid-template-columns:minmax(0,1fr)}
  .insp{position:static}
  .insp-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
  .report-layout>.panel{position:static}
  .protocol{grid-template-columns:minmax(0,1fr)}
  .toc{position:static;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -4px;padding:0 4px 2px}
  .toc a{white-space:nowrap;flex:none}
  .toc-phase,.toc-foot{display:none}
  .casepick{margin-left:0}
}
@media (max-width:960px){
  .form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}
  .form-grid.three .span3{grid-column:1/-1}
  .form-grid.suture{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Mehr-Menü nur auf dem Telefon */
.rail-more,.rail-menu{display:none}
.rail-menu[hidden]{display:none!important}
@media (max-width:760px){
  body{font-size:15px}
  .app.active{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);padding-bottom:68px}
  .rail{position:fixed;top:auto;bottom:0;left:0;right:0;height:auto;flex-direction:row;justify-content:space-around;padding:6px 6px calc(6px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--line-soft);background:var(--glass-strong);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
  .rail-mark,.rail-spacer,.rail-demo,.rail>a.rail-item,#tab-export,#toggleThemeApp{display:none}
  .rail-more{display:flex}
  .rail-menu{display:flex;flex-direction:column;position:fixed;right:10px;bottom:calc(74px + env(safe-area-inset-bottom));min-width:230px;padding:6px;border-radius:14px;background:var(--raised);box-shadow:var(--shadow-float),0 0 0 1px var(--line);z-index:60}
  .rail-menu>button,.rail-menu>a{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:12px;min-height:48px;padding:0 14px;border-radius:10px;font-weight:700;color:var(--ink);cursor:pointer}
  .rail-menu>button:hover,.rail-menu>a:hover{background:var(--sunken)}
  .rail-menu>button:focus-visible,.rail-menu>a:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}
  .rail-menu .nv-icon{width:20px;height:20px;color:var(--muted)}
  /* Kompakter Patientenkopf: Name, Geburtsdatum, Warnungen, Fall; Alter und Kasse stehen in der Übersicht */
  .who .meta span:not(:first-child){display:none}
  .who .meta{font-size:13px}
  .casepick small{display:none}
  .casepick{min-height:40px;padding:4px 10px 4px 12px}
  .switch-btn{min-height:40px}
  .allergy,.phead .chip{font-size:13px}
  /* Speicherleiste schmal halten */
  .savebar{padding:6px 6px 6px 12px;gap:8px}
  .savebar p{font-size:13px}
  /* Kieferreihen: Schatten am Rand zeigen, dass seitlich weitere Zähne folgen */
  .odo-scroll{background:linear-gradient(to right,var(--surface) 30%,transparent) 0 0/32px 100% no-repeat local,linear-gradient(to left,var(--surface) 30%,transparent) 100% 0/32px 100% no-repeat local,radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.2),transparent) 0 0/14px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.2),transparent) 100% 0/14px 100% no-repeat scroll}
  .rail-item{width:auto;flex:1;min-height:52px}
  .phead-row{padding:8px 14px 4px;gap:6px 10px}
  .who h1{font-size:20px}
  .casepick{max-width:100%;flex:1 1 200px;min-width:0}
  .allergy{overflow-wrap:anywhere}
  .switch-btn span:last-child{display:none}
  .tabbar{flex-direction:column;align-items:stretch;padding-right:0;gap:0}
  .tabbar .draft-line{margin:4px 14px 8px;align-self:flex-start}
  .switcher{right:14px;top:56px}
  .page{padding:14px 14px 96px}
  .page-head h1{font-size:24px}
  .form-grid,.form-grid.three,.clinical-grid,.checks,.facts,.case-facts,.insp-body,.form-grid.suture{grid-template-columns:minmax(0,1fr)}
  .form-grid .span2,.form-grid .wide,.form-grid .span3{grid-column:auto}
  .odo-scroll{overflow-x:auto;padding-bottom:6px;overscroll-behavior-x:contain}
  .odo-scroll>*{min-width:720px}
  .finding{grid-template-columns:40px minmax(0,1fr) auto}
  .finding .note{display:none}
  .inbox-assign-row{grid-template-columns:minmax(0,1fr)}
  .timeline-item{grid-template-columns:minmax(0,1fr);gap:4px}
  .timeline-date{flex-direction:row;align-items:center}
  .nv-implant-specs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .savebar{bottom:76px;flex-wrap:wrap}
  .savebar p{flex:1 1 140px;min-width:0}
  .paper-wrap{padding:10px}
  #reportPreview .report-a4{padding:18px}
  .today-search{width:100%}
}
@media (max-height:620px) and (min-width:761px){
  .phead{position:static}
  .insp,.toc{top:16px}
}

/* ---------- Druck ---------- */
@media print{
  body{background:#fff}
  .rail,.phead,.no-print,.landing,.toast-stack,.savebar{display:none!important}
  .app,.app.active{display:block!important}
  .view{display:none!important}
  #view-reports{display:block!important}
  .page{padding:0}
  .paper-wrap{padding:0;background:#fff}
  .report-layout{display:block}
  #reportPreview .report-a4{box-shadow:none;border:0;border-radius:0;max-width:none;padding:0}
}

/* ---------- Barrierefreiheit ---------- */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media (prefers-reduced-transparency:reduce){.phead,.savebar,.rail{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.phead{background:var(--bg)}.savebar{background:var(--surface)}}
@media (forced-colors:active){.tooth.selected{outline:3px solid Highlight}:where(button.primary){border:2px solid ButtonText}.rail-item[aria-current="page"],.tabs [role="tab"][aria-selected="true"]{outline:2px solid Highlight}}

/* Eingang: Werte für alle Zeilen setzen, ohne zuzuordnen */
fieldset.apply-all{border:1px solid var(--line);border-radius:var(--radius-control);padding:12px 14px 14px;margin:4px 0 0;display:grid;gap:12px;min-width:0}
fieldset.apply-all legend{padding:0 6px;font-size:13px;font-weight:700;color:var(--ink-2)}
fieldset.apply-all button{justify-self:start}
/* Patiententabelle: Name als echte Schaltfläche, damit die Zeile per Tastatur erreichbar ist */
.cell-link{all:unset;cursor:pointer;font-weight:700;color:var(--ink);border-radius:6px;padding:2px 0}
.cell-link:hover{color:var(--primary);text-decoration:underline;text-underline-offset:3px}
.cell-link:focus-visible{outline:3px solid var(--focus);outline-offset:3px}

/* Recall: Vorwert des letzten Recalls desselben Implantats unter jedem Feld */
.last-val{display:block;font-size:13px;font-weight:400;color:var(--muted);min-height:0}
.last-val:empty{display:none}
.form-group-hint{margin:-4px 0 10px}

/* Heute: Kontrollen nach Fälligkeit, Aufgaben mit Sprungziel, schmale Sicherungszeile */
.row-group{font-size:13px;font-weight:700;color:var(--muted);margin:14px 6px 4px;letter-spacing:.02em}
.row-group:first-child{margin-top:2px}
.row-more{font-size:13px;color:var(--muted);margin:10px 6px 2px}
.row-task{border-bottom:1px solid var(--line);padding-bottom:10px}
.row-task:last-child{border-bottom:0}
.row-task .row-link{border-bottom:0}
.row-task .gaps{display:flex;flex-wrap:wrap;gap:6px;padding:0 6px}
button.task-chip{font:inherit;font-size:13px;font-weight:700;cursor:pointer;border:0;min-height:32px}
button.task-chip:hover{filter:brightness(.96);text-decoration:underline;text-underline-offset:3px}
.backup-strip{display:flex;align-items:center;justify-content:space-between;gap:12px 16px;flex-wrap:wrap;padding:14px 18px;border-radius:var(--radius-panel);border:1px dashed var(--line);background:transparent}
.backup-strip h2{font-size:15px;margin:0}
.backup-strip p{margin:2px 0 0;font-size:13px;color:var(--muted)}

/* Reiter mit ungespeicherten Eingaben */
.draft-flag{position:relative;display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--warn);margin-left:6px;vertical-align:middle;flex:none}

/* Fallreiter in vier Gruppen: Übersicht | Behandlung | Nachsorge | Unterlagen. Nur optisch, kein zusätzlicher Klick. */
[role="tab"].grp-start{position:relative;margin-left:14px}
[role="tab"].grp-start::before{content:"";position:absolute;left:-8px;top:50%;width:1px;height:18px;margin-top:-9px;background:var(--line)}
/* Lange Dateinamen ohne Leerzeichen (zugeordnete Medien) dürfen keine Seite verbreitern */
.events,.events li,.events li>div,.item-row,.timeline-item,.media-meta{min-width:0;overflow-wrap:anywhere}
.event>div{min-width:0}

/* ===== Klinische Erweiterung 6.5.3: Anamnese, Checkliste, Sondierung, Knochenniveau, Zahnbefund ===== */
fieldset.ana,fieldset.probe{border:1px solid var(--line);border-radius:var(--radius-control);padding:12px 14px 14px;margin:0;min-width:0}
fieldset.ana{display:grid;gap:12px;margin:16px 0}
fieldset.ana legend,fieldset.probe legend{padding:0 6px;font-size:13px;font-weight:700;color:var(--ink-2)}
fieldset.ana>.hint{margin-top:-4px}
.ana-row{display:grid;gap:10px;padding-top:12px;border-top:1px solid var(--line);min-width:0}
fieldset.ana>.hint+.ana-row{border-top:0;padding-top:0}
.ana-detail{padding:2px 0 2px 12px;border-left:2px solid var(--warn-soft);grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.ana-detail .span2{grid-column:1/-1}
.chip.risk-flag{max-width:100%;white-space:normal;text-align:left}
.doc-check-row{display:flex;align-items:center;gap:10px;min-width:0}
.doc-check-row .doc-check{flex:1;min-width:0}
.doc-check-hint{display:block;font-size:13px;color:var(--muted);font-weight:400;margin-top:1px}
.doc-na{display:inline-flex;flex-direction:row;align-items:center;gap:6px;flex:none;min-height:32px;padding:2px 10px 2px 8px;border-radius:999px;background:var(--sunken);font-size:13px;font-weight:700;color:var(--muted);cursor:pointer;white-space:nowrap}
.doc-na input[type=checkbox]{width:16px;height:16px}
.doc-check-row.is-na .doc-na{background:var(--info-soft);color:var(--info)}
.doc-check-row.is-na .doc-check{color:var(--muted)}
.doc-check-row.is-na .doc-check input{opacity:.45}
.probe-grid{display:grid;grid-template-columns:auto repeat(3,minmax(0,1fr));gap:8px 10px;align-items:start}
.probe-col{font-size:13px;font-weight:700;color:var(--muted);text-align:center}
.probe-rowlabel{font-size:13px;font-weight:700;color:var(--ink-2);padding-top:11px}
.probe-site{display:flex;flex-direction:column;align-items:stretch;gap:4px;min-width:0}
.probe-site input:not([type]){text-align:center;font-variant-numeric:tabular-nums}
.probe-bop{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:700;color:var(--ink-2);cursor:pointer;min-height:28px}
.probe-bop input[type=checkbox]{width:16px;height:16px}
.probe-site .last-val{text-align:center}
.probe-summary{margin-top:10px}
#recallPd[readonly],#recallBop:disabled{background:var(--sunken);color:var(--ink-2)}
.check-inline{display:flex;flex-direction:row;align-items:flex-start;gap:10px;font-size:15px;font-weight:700;color:var(--ink);line-height:1.35;cursor:pointer}
.check-inline input{margin-top:1px}
.bone-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.bone-kpis strong.kpi-small{font-size:16px;line-height:1.9}
.bone-ref-summary{margin:-4px 0 14px}
.bone-ref-summary:empty{display:none}
.item-row.bone-row{grid-template-columns:minmax(0,1fr)}
.bone-row .item-end{grid-column:1;grid-row:auto;flex-wrap:wrap;justify-content:flex-start;margin-top:2px}
.tooth-dims{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px 14px;min-width:0}
.tooth-legacy{margin:0 0 10px;padding:8px 10px;border-radius:8px;background:var(--sunken);color:var(--ink-2)}
.tooth.rest-krone{--t-fill:var(--k-krone)}
.tooth.rest-fuellung{--t-fill:var(--k-fuell)}
.tooth.rest-bruecke{--t-fill:var(--k-bruecke)}
.odo-legend i.dual{background:var(--k-krone);border:2px solid var(--k-karies-ink)}
@media (max-width:720px){
  .bone-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .work-context{gap:6px 8px}
  .risk-flag .rf-detail{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
@media (max-width:380px){
  .probe-grid{gap:8px 6px}
  .probe-bop span{font-size:12px}
  .doc-check-row{flex-wrap:wrap}
}
.finding{grid-template-columns:44px minmax(120px,260px) minmax(0,1fr) auto}
@media (max-width:760px){.finding{grid-template-columns:44px minmax(0,1fr) auto}}

/* V7.0 clinical status: distinct diagnoses reuse the existing lesion palette. */
.tooth.status-fraktur,.tooth.status-wurzelrest,.tooth.status-weitgehendzerstoert,.tooth.status-nichterhaltungswuerdig{--t-fill:var(--k-karies);--t-ink:var(--k-karies-ink);--t-stroke:var(--k-karies-ink)}
.mini-tooth.status-fraktur,.mini-tooth.status-wurzelrest,.mini-tooth.status-weitgehendzerstoert,.mini-tooth.status-nichterhaltungswuerdig{background:var(--k-karies);color:var(--k-karies-ink)}
.finding.status-fraktur,.finding.status-wurzelrest,.finding.status-weitgehendzerstoert,.finding.status-nichterhaltungswuerdig{--t-ink:var(--k-karies-ink)}
/* Quiet structural hierarchy in dark clinical forms, no decorative glow. */
html[data-theme="dark"] .clinical-case-panel h3,html[data-theme="dark"] .panel-head h3{font-weight:750}
@media(min-width:650px){.clinical-case-panel .form-hint,.probe-summary{font-size:13px}}

/* v7.0.1: ältere klinische Einträge sichtbar und überprüfbar halten. */
.clinical-review[hidden],.landing-review-hint[hidden]{display:none!important}
.clinical-review{margin:12px 20px 8px;padding:14px 16px;border:1px solid var(--warn);border-left:4px solid var(--warn);background:var(--warn-soft);border-radius:10px;color:var(--ink);font-size:14px;overflow-wrap:anywhere}
.clinical-review summary{cursor:pointer;line-height:1.5}
.clinical-review summary strong{display:block;font-size:15px}
.clinical-review ul{margin:10px 0;padding-left:20px;display:grid;gap:7px}
.clinical-review li{line-height:1.45}
.clinical-review button{margin-top:5px}
.landing-review-hint{margin:12px 0;border-left:3px solid var(--warn);background:var(--warn-soft);color:var(--ink);padding:10px 12px;border-radius:7px;font-size:14px;line-height:1.5}
.event-scope{display:block;margin-top:3px;color:var(--muted);font-size:12px;font-weight:600}
.tooth.status-fehlend.rest-bruecke{--t-ink:var(--k-bruecke-ink);--t-stroke:var(--k-bruecke-ink)}
.tooth.status-fehlend.rest-bruecke .tg{stroke-dasharray:3 2.5}
.item-row .item-tags{min-width:0;max-width:100%}
.item-row .item-tags .chip{white-space:normal;overflow-wrap:anywhere;max-width:100%}
.probe-grid{min-width:0;max-width:100%}
.probe-site input{min-width:0;max-width:100%}
.probe-site .last-val{overflow-wrap:anywhere}
@media(max-width:400px){
  .clinical-review{margin:10px 12px;padding:12px}
  .probe-grid{grid-template-columns:minmax(0,38px) repeat(3,minmax(0,1fr));gap:6px 4px}
  .probe-rowlabel,.probe-col{font-size:11px}
  .probe-bop{gap:3px;font-size:11px;flex-wrap:wrap}
  .probe-bop span{font-size:11px}
  .probe-site input:not([type]){padding:6px 2px;font-size:13px}
}

/* v7.0.2: patient-specific legacy review, 320px reflow, readable probing headers. */
.clinical-review,.clinical-review details,.clinical-review ul,.clinical-review li{min-width:0;max-width:100%;box-sizing:border-box}
.clinical-review .review-download{display:inline-block;white-space:normal;max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:normal;text-align:left;line-height:1.45;height:auto}
.clinical-review .review-entry{display:grid;grid-template-columns:minmax(0,1fr);gap:7px;overflow-wrap:anywhere}
.clinical-review .review-entry button{justify-self:start;white-space:normal;max-width:100%;text-align:left}
.clinical-review .review-entry small{font-size:12px;color:var(--muted)}
.clinical-review .review-past{list-style:none;margin-left:-15px}
.clinical-review .review-past ul{margin:8px 0;padding-left:18px}
.clinical-review.is-reviewed{border-color:var(--line);border-left-color:var(--muted);background:var(--sunken)}
.clinical-review-inline{margin:8px 0 12px;padding:11px 12px;border-left:3px solid var(--warn);background:var(--warn-soft);border-radius:7px;line-height:1.48;overflow-wrap:anywhere;font-size:13px}
.clinical-review-inline[hidden]{display:none!important}
.clinical-review-inline strong{display:block;margin-bottom:6px}
.clinical-review-inline p{margin:4px 0 8px}
.clinical-review-inline small,.clinical-review-inline .review-reviewed{color:var(--ink-2);font-size:12px}
@media(max-width:400px){
 .probe-rowlabel,.probe-col,.probe-bop,.probe-bop span{font-size:12px}
 .probe-bop{gap:2px;flex-wrap:wrap;line-height:1.25}
 .probe-grid{min-width:0;max-width:100%;grid-template-columns:minmax(0,38px) repeat(3,minmax(0,1fr))}
}
