/* CARmove Komponenten v2 (Phase B, 08.10.2026) · alle Werte aus tokens.css · Präfix cm- */
*,*::before,*::after{box-sizing:border-box}
.cm-app{min-height:100vh;background-color:var(--ground);background-image:radial-gradient(var(--grid-dot) 1px,transparent 1px);background-size:24px 24px;color:var(--ink);font:400 15px/23px var(--font-sans);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}
.cm-app.no-side{grid-template-columns:minmax(0,1fr)}
.cm-app :is(p,span,dd,td,label,small,.cm-small) > a:not([class]),.cm-link{color:var(--brand-text);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.cm-app :is(p,span,dd,td,label,small,.cm-small) > a:not([class]):hover,.cm-link:hover{text-decoration-thickness:2px}
/* #1539 (A-1539a): Textlinks am PC (QM beta.291, 1280 px) sind mindestens
   24 px hoch — am Handy gilt die 44-px-Regel aus dem #30-Block. */
@media (min-width:760px){
 .cm-app :is(p,span,dd,td,label,small,.cm-small) > a:not([class]),a.cm-link{display:inline-flex;align-items:center;min-height:24px}
}
/* #1564: am Handy sind die Anleitung-Links (z. B. WhatsApp-Anleitung)
   mindestens 44 px hohe Tippflächen. */
@media (max-width:759.98px){
 .cm-akk-koerper :is(p,span,small) > a:not([class]){display:inline-flex;align-items:center;min-height:44px}
}
.cm-app :focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.ic{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.ic.sm{width:16px;height:16px}.ic.lg{width:24px;height:24px}.ic.xl{width:40px;height:40px;stroke-width:1.25}

/* Typografie */
.cm-eyebrow{display:flex;align-items:center;gap:12px;font:500 11px/16px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.cm-eyebrow::before{content:"";width:24px;height:1px;background:currentColor;flex:none}
/* #978: lange Überschriften (z. B. „Verfahrensdokumentation“) brechen am Handy um (keine Seitenbreite) */
.cm-title{font:700 44px/1.02 var(--font-display);letter-spacing:-.035em;margin:0;color:var(--ink);text-wrap:balance;overflow-wrap:anywhere;hyphens:auto}
.cm-h{font:600 20px/26px var(--font-display);letter-spacing:-.01em;margin:0;color:var(--ink)}
.cm-h3{font:600 16px/22px var(--font-display);margin:0}
.cm-label{font:500 11px/16px var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.cm-mono{font-family:var(--font-mono);font-size:13px;letter-spacing:.02em}
/* Fahrzeugnummern aus Börsen-Importen sind bis 21 Zeichen lang und ohne Leerzeichen (#302) */
.cm-nr{overflow-wrap:anywhere;word-break:break-word;min-width:0}
.card.spot{min-width:0}
.cm-num-xl{font:700 36px/40px var(--font-sans);letter-spacing:-.02em}
.cm-num-m{font:700 20px/24px var(--font-sans)}
.cm-unit{font-size:.55em;font-weight:500;color:var(--ink-muted);margin-left:4px;letter-spacing:0}
.cm-muted{color:var(--ink-muted)}.cm-small{font-size:13px;line-height:19px}.cm-strong{font-weight:600}
.cm-lead{font-size:17px;line-height:26px;color:var(--ink-muted);max-width:60ch;margin:0;text-wrap:pretty}

/* Rahmen: Seitenleiste */
.cm-side{position:sticky;top:0;height:100vh;background:var(--chrome);color:var(--on-chrome);display:flex;flex-direction:column;gap:2px;padding:22px 12px 14px;overflow-y:auto;border-right:1px solid var(--chrome-line)}
.cm-logo{display:flex;align-items:baseline;font:400 22px/1 var(--font-display);letter-spacing:-.02em;color:inherit;text-decoration:none;padding:0 10px}
.cm-logo b{font-weight:800}
.cm-logo span{font-weight:400;display:inline-block;transform:skewX(-10deg);margin-left:.02em}
.cm-logo i{width:.28em;height:.28em;background:#FF6A1A;margin-left:.15em;display:inline-block;transform:skewX(-10deg)}
.cm-tenant{display:flex;align-items:center;gap:10px;width:100%;margin:18px 0 6px;padding:8px 10px;border:1px solid var(--chrome-line);border-radius:var(--radius-md);background:transparent;color:var(--on-chrome);font:600 13px/17px var(--font-sans);text-align:left;cursor:pointer}
.cm-tenant .mark{width:30px;height:30px;flex:none;border-radius:var(--radius-sm);background:var(--chrome-raised);display:grid;place-items:center;font:700 13px/1 var(--font-display)}
.cm-tenant small{display:block;font:500 11px/15px var(--font-sans);color:var(--on-chrome-muted)}
.cm-tenant .ic{margin-left:auto;color:var(--on-chrome-muted)}
.cm-nav-label{font:500 10.5px/16px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--on-chrome-muted);padding:16px 10px 6px}
.cm-side a.nav{position:relative;display:flex;align-items:center;gap:12px;min-height:40px;padding:0 10px;border-radius:var(--radius-sm);color:var(--on-chrome-muted);text-decoration:none;font:500 14px/1 var(--font-sans)}
.cm-side a.nav:hover{color:var(--on-chrome);background:var(--chrome-raised)}
.cm-side a.nav.is-active{color:var(--on-chrome);background:var(--chrome-raised);font-weight:600}
.cm-side a.nav.is-active::before{content:"";position:absolute;left:-12px;top:9px;bottom:9px;width:3px;background:var(--brand);border-radius:0 2px 2px 0}
.cm-side a.nav.sub{min-height:34px;padding-left:42px;font-size:13px}
.cm-side a.nav.sub.is-active::before{display:none}
.cm-side a.nav.sub.is-active{background:transparent;color:var(--on-chrome)}
.cm-side a.nav.sub.is-active::after{content:"";position:absolute;left:27px;top:50%;width:6px;height:6px;margin-top:-3px;background:var(--brand)}
.cm-count{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--brand);color:var(--on-brand);font:700 11px/20px var(--font-sans);text-align:center}
/* #1107: kleines Stufen-Badge an gesperrten Menüpunkten (Hof/Betrieb/Premium) */
.cm-stufenbadge{margin-left:6px;display:inline-flex;align-items:center;height:18px;padding:0 7px;border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink-muted);font:600 10px/16px var(--font-sans);letter-spacing:.04em;white-space:nowrap}
/* #1107: Anzeige der Funktionsstufe auf der Einstellungsseite (nur lesen) */
.cm-stufen-anzeige{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:var(--space-4);padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);font:400 14px/20px var(--font-sans);color:var(--ink)}
.cm-stufen-anzeige .ic{color:var(--ink-muted)}
.cm-side .foot{margin-top:auto;padding-top:10px;border-top:1px solid var(--chrome-line);display:flex;flex-direction:column;gap:2px}
.cm-side .ver{padding:8px 10px 0;font:500 10.5px/16px var(--font-mono);letter-spacing:.08em;color:var(--on-chrome-muted)}

/* Rahmen: Kopfzeile, Inhalt */
.cm-main{min-width:0;display:flex;flex-direction:column}
.cm-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;height:64px;padding:0 var(--space-6);background:var(--ground);border-bottom:1px solid var(--line)}
.cm-top .title{display:none;min-width:0;flex:1;font:700 18px/1.1 var(--font-display);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-top .spacer{flex:1}
.cm-search{flex:1;max-width:520px;display:flex;align-items:center;gap:10px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink-muted);font:400 14px/1 var(--font-sans);cursor:text;text-align:left}
.cm-search:hover{border-color:var(--line-strong)}
.cm-search kbd{margin-left:auto;font:500 11px/1 var(--font-mono);border:1px solid var(--line);border-radius:4px;padding:3px 6px;color:var(--ink-muted)}
.cm-iconbtn{position:relative;display:grid;place-items:center;width:44px;height:44px;flex:none;border:0;border-radius:var(--radius-md);background:transparent;color:var(--ink);cursor:pointer}
.cm-iconbtn:hover{background:var(--surface-sunken)}
.cm-iconbtn .pip{position:absolute;top:5px;right:4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--danger);color:var(--on-danger);font:700 11px/18px var(--font-sans);border:2px solid var(--ground);box-sizing:content-box}
.cm-user{display:flex;align-items:center;gap:10px;padding:4px 6px 4px 4px;border-radius:var(--radius-md);border:0;background:transparent;color:var(--ink);cursor:pointer;text-align:left}
.cm-user:hover{background:var(--surface-sunken)}
.cm-avatar{width:34px;height:34px;flex:none;border-radius:50%;background:var(--surface-sunken);border:1px solid var(--line);display:grid;place-items:center;font:700 12px/1 var(--font-sans);color:var(--ink)}
.cm-user small{display:block;font-size:12px;line-height:15px;color:var(--ink-muted)}
.cm-user b{display:block;font-size:13px;line-height:17px;font-weight:600}
/* #1276: keine feste Höchstbreite für Datenseiten — der Inhalt nutzt die volle Breite.
   Fließtext bleibt über .ag-lesebreite (72ch) und Formulare über .ag-formular (760px) schmal. */
.cm-content{width:100%;padding:var(--space-8) var(--space-6) 112px;display:flex;flex-direction:column;gap:var(--space-8)}
.cm-pagehead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-4) var(--space-6)}
.cm-pagehead .head{display:flex;flex-direction:column;gap:14px;min-width:0}
.cm-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}
.cm-cols{display:grid;grid-template-columns:var(--cols,minmax(0,1fr) minmax(0,1fr));gap:var(--space-6);align-items:start}
.cm-stack{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}
.cm-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}
.cm-section{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}
.cm-section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-2) var(--space-4)}
.cm-section-head .cm-h span{font:500 14px/1 var(--font-sans);color:var(--ink-muted);margin-left:10px;letter-spacing:0}

/* Segment-Schalter */
.cm-seg{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
.cm-seg button{border:0;background:transparent;color:var(--ink-muted);font:500 11px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;height:30px;padding:0 12px;border-radius:999px;cursor:pointer}
.cm-seg button:hover{color:var(--ink)}
.cm-seg button[aria-pressed="true"]{background:var(--ink);color:var(--ground)}
.cm-seg.lg{border-radius:var(--radius-md)}
.cm-seg.lg button{height:38px;padding:0 16px;font:600 14px/1 var(--font-sans);letter-spacing:0;text-transform:none;border-radius:6px;display:inline-flex;align-items:center;gap:8px}

/* Knöpfe */
.cm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:var(--radius-md);border:1px solid transparent;background:var(--brand);color:var(--on-brand);font:600 15px/1 var(--font-sans);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .15s,border-color .15s}
.cm-app a.cm-btn{color:var(--on-brand)}
.cm-btn:hover{background:var(--brand-strong)}
.cm-btn.secondary,.cm-app a.cm-btn.secondary{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}
.cm-btn.secondary:hover{background:var(--surface-sunken)}
.cm-btn.ghost,.cm-app a.cm-btn.ghost{background:transparent;color:var(--ink)}
.cm-btn.ghost:hover{background:var(--surface-sunken)}
.cm-btn.danger,.cm-app a.cm-btn.danger{background:var(--danger);color:var(--on-danger)}
.cm-btn.sm{min-height:44px;padding:0 12px;font-size:14px;gap:6px}
.cm-btn.lg{min-height:56px;padding:0 24px;font-size:17px}
/* #1483 (GF3): ein Blockknopf mit langem Text („Schaden melden …“) läuft bei
   390 px nicht mehr über — der Text bricht um, Symbol und Text bleiben mittig. */
.cm-btn.block{width:100%;white-space:normal;text-align:center}
.cm-btn.icon{width:44px;padding:0}.cm-btn.icon.sm{width:44px}
.cm-btn[disabled],.cm-btn.is-disabled{opacity:.5;cursor:default;pointer-events:none}
.cm-btn.is-loading{position:relative;color:transparent!important;pointer-events:none}
.cm-btn.is-loading::after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;border:2px solid var(--on-brand);border-right-color:transparent;animation:cm-spin .8s linear infinite}
.cm-btn.secondary.is-loading::after{border-color:var(--ink);border-right-color:transparent}
@keyframes cm-spin{to{transform:rotate(360deg)}}

/* Badges: Status hat Form + Wort */
.cm-badge{display:inline-flex;align-items:center;gap:7px;height:24px;padding:0 8px;border-radius:var(--radius-sm);background:var(--surface-sunken);color:var(--ink-muted);font:600 12.5px/1 var(--font-sans);white-space:nowrap}
.cm-badge.umbruch{height:auto;min-height:24px;padding:4px 8px;white-space:normal;line-height:1.3} /* #416: langer Text am Handy */
.cm-badge::before{content:"";width:7px;height:7px;flex:none;background:currentColor;border-radius:50%}
.cm-badge.plain::before{display:none}
.cm-badge.ok{background:var(--ok-tint);color:var(--ok)}
.cm-badge.warn{background:var(--warn-tint);color:var(--warn)}
.cm-badge.warn::before{border-radius:1px;transform:rotate(45deg) scale(.9)}
.cm-badge.danger{background:var(--danger-tint);color:var(--danger)}
.cm-badge.danger::before{border-radius:1px}
.cm-badge.info{background:var(--info-tint);color:var(--info)}
.cm-badge.info::before{border-radius:50%;background:transparent;border:2px solid currentColor;width:8px;height:8px}
.cm-badge.brand{background:var(--brand-tint);color:var(--brand-text)}
.cm-badge.outline{background:transparent;border:1px solid var(--line-strong);color:var(--ink)}
.cm-badge .ic{width:14px;height:14px}

/* Karte, Panel, Liste */
.cm-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);display:flex;flex-direction:column;min-width:0}
.cm-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;padding:12px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.cm-card-body{padding:20px;display:flex;flex-direction:column;gap:16px}
.cm-card-body.flush{padding:0;gap:0}
.cm-card-foot{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;padding:12px 20px;border-top:1px solid var(--line)}
.cm-card.is-highlight{border-color:var(--brand)}
.cm-list{list-style:none;margin:0;padding:0}
.cm-list > li > a,.cm-list > li > .row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:14px;align-items:center;min-height:64px;padding:12px 20px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}
.cm-list > li:first-child > a,.cm-list > li:first-child > .row{border-top:0}
.cm-list a:hover{background:var(--surface-sunken)}
.cm-list .t{font-weight:600;display:block;overflow-wrap:anywhere}.cm-list .s{display:block;font-size:13px;line-height:19px;color:var(--ink-muted)}
.cm-list .n{font:700 24px/1 var(--font-sans)}
.cm-list .chev{color:var(--ink-muted)}
.cm-lead-ic{width:36px;height:36px;flex:none;border-radius:var(--radius-md);display:grid;place-items:center;background:var(--surface-sunken);color:var(--ink-muted)}
.cm-lead-ic.ok{background:var(--ok-tint);color:var(--ok)}.cm-lead-ic.warn{background:var(--warn-tint);color:var(--warn)}.cm-lead-ic.danger{background:var(--danger-tint);color:var(--danger)}.cm-lead-ic.info{background:var(--info-tint);color:var(--info)}
.cm-dl{display:grid;grid-template-columns:minmax(110px,max-content) minmax(0,1fr);margin:0;min-width:0}
.cm-dl dt,.cm-dl dd{margin:0;padding:11px 0;border-top:1px solid var(--line)}
.cm-dl > :nth-child(-n+2){border-top:0}
.cm-dl dt{font:500 11px/21px var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.cm-dl dd{padding-left:16px;font-weight:500;min-width:0;overflow-wrap:anywhere}
.cm-dl dd.num{text-align:right}
.cm-dl .sum{font-weight:700}
.cm-dls{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));column-gap:32px}

/* Kennzahlen */
.cm-kpis{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.cm-kpis.flat{border:0;border-radius:0;background:transparent;gap:0}
.cm-kpis.flat .cm-kpi{padding:0 16px 0 0;background:transparent}
.cm-kpi{display:flex;flex-direction:column;gap:6px;padding:18px 20px;background:var(--surface);min-width:0;color:inherit;text-decoration:none}
a.cm-kpi:hover{background:var(--surface-sunken)}
.cm-kpi .value{font:700 36px/40px var(--font-sans);letter-spacing:-.02em;color:var(--ink)}
.cm-kpi .value small{font-size:15px;font-weight:500;color:var(--ink-muted);margin-left:4px;letter-spacing:0}
.cm-kpi .meta{display:flex;align-items:center;gap:6px;font-size:13px;line-height:19px;color:var(--ink-muted)}
.cm-kpi.is-ok .value{color:var(--ok)}.cm-kpi.is-warn .value{color:var(--warn)}.cm-kpi.is-danger .value{color:var(--danger)}
.cm-kpis.compact .value{font-size:20px;line-height:26px}
.cm-flow{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.cm-flow > a{display:flex;flex-direction:column;gap:8px;padding:16px 18px 18px;background:var(--surface);color:var(--ink);text-decoration:none;min-width:0}
.cm-flow > a:hover{background:var(--surface-sunken)}
.cm-flow .n{font:700 34px/38px var(--font-sans);letter-spacing:-.02em}
.cm-flow .cm-label{display:flex;justify-content:space-between;gap:6px}
.cm-flow > a.is-focus{box-shadow:inset 0 -3px var(--brand)}
.cm-stackbar{display:flex;gap:3px;height:12px}
.cm-stackbar i{border-radius:2px;min-width:6px}
.cm-stackbar .ok{background:var(--ok)}.cm-stackbar .warn{background:var(--warn)}.cm-stackbar .danger{background:var(--danger)}
.cm-stackbar .warn2{background:repeating-linear-gradient(-45deg,var(--warn) 0 3px,transparent 3px 6px);box-shadow:inset 0 0 0 1px var(--warn)}
.cm-bars{display:grid;grid-template-columns:repeat(var(--n,6),minmax(0,1fr));gap:12px;align-items:end;height:180px}
.cm-bars .b{display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:8px;height:100%;text-align:center}
.cm-bars .b i{display:block;height:var(--h);border-radius:3px 3px 0 0;background:color-mix(in srgb,var(--dataviz-blau) 45%,var(--surface))}
.cm-bars .b.is-running i{background:var(--dataviz-blau)}
.cm-bars .v{font:600 12px/1 var(--font-sans);color:var(--ink-muted)}
.cm-bars .b.is-running .v{color:var(--ink)}
.cm-cap{display:flex;flex-direction:column;gap:8px}
.cm-cap .bar{display:flex;gap:4px}
.cm-cap .bar i{flex:1;height:8px;border-radius:2px;background:var(--surface-sunken);box-shadow:inset 0 0 0 1px var(--line-strong)}
.cm-cap .bar i.on{background:var(--brand);box-shadow:none}

/* Tabelle */
.cm-table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow-x:auto}
.cm-table{width:100%;border-collapse:collapse;font-size:14px}
.cm-table th{padding:10px 16px;text-align:left;font:500 11px/16px var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);background:var(--surface-sunken);border-bottom:1px solid var(--line);white-space:nowrap}
.cm-table td{padding:12px 16px;border-top:1px solid var(--line);vertical-align:middle}
.cm-table tbody tr:first-child td{border-top:0}
.cm-table tbody tr:hover td{background:var(--surface-sunken)}
.cm-table tr.ag-garantie-summe td{background:var(--surface-sunken)}
.cm-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.cm-table .veh b{display:block;font-weight:600}
.cm-table .veh span{font:500 12px/18px var(--font-mono);color:var(--ink-muted)}
@media (max-width:640px){
 .cm-table.stack thead{display:none}
 .cm-table.stack,.cm-table.stack tbody{display:block}
 .cm-table.stack tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:14px 16px;border-top:1px solid var(--line)}
 .cm-table.stack tbody tr:first-child{border-top:0}
 .cm-table.stack td{display:block;padding:0;border:0;background:transparent!important}
 .cm-table.stack td.c-end{text-align:right}
 .cm-table.stack td.c-full{grid-column:1/-1}
 .cm-table.stack td.c-full.c-end{text-align:left;white-space:normal}
 .cm-table.stack td.c-full .cm-aktionen{justify-content:flex-start!important;flex-wrap:wrap}
 .cm-table.stack td.c-full .cm-aktionen form{display:contents}
 .cm-table.stack td.c-hide{display:none}
}

/* Formular */
.cm-form-grid{display:grid;grid-template-columns:repeat(var(--fc,2),minmax(0,1fr));gap:18px 20px}
.cm-form-grid .span-all{grid-column:1/-1}
.cm-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.cm-field > label,.cm-field > .lbl{display:flex;align-items:center;gap:8px;font:500 11px/16px var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.cm-field .ref{opacity:.7}
.cm-field .flag{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font:600 11px/1 var(--font-sans);letter-spacing:.02em;text-transform:none}
.cm-input{width:100%;min-height:48px;padding:0 14px;font:400 16px/1.4 var(--font-sans);color:var(--ink);background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--radius-sm);outline:none;-webkit-appearance:none;appearance:none}
.cm-input:hover{border-color:var(--line-strong)}
.cm-input:focus-visible,.cm-input.is-focus{border-color:var(--focus);box-shadow:0 0 0 1px var(--focus);outline:none}
.cm-input::placeholder{color:var(--ink-muted);opacity:.75}
.cm-input.mono{font-family:var(--font-mono);font-size:15px;letter-spacing:.06em}
textarea.cm-input{min-height:96px;padding:12px 14px}
.cm-input:disabled{opacity:.5;cursor:not-allowed}
.cm-select{position:relative;display:block}
.cm-select select,.cm-field select,.field select,select.cm-input{width:100%;max-width:100%;min-width:0}
select{contain:paint;overflow:hidden;text-overflow:ellipsis}
.cm-select .cm-input{padding-right:42px}
.cm-select::after{content:"";position:absolute;right:18px;top:50%;width:8px;height:8px;border-right:1.75px solid var(--ink-muted);border-bottom:1.75px solid var(--ink-muted);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.cm-affix{display:flex}
.cm-affix .cm-input{border-top-right-radius:0;border-bottom-right-radius:0}
.cm-affix .sfx{display:grid;place-items:center;min-width:52px;padding:0 12px;border:1px solid var(--line);border-left:0;border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--surface);color:var(--ink-muted);font:500 14px/1 var(--font-sans)}
.cm-field .help{display:flex;align-items:center;gap:6px;font-size:13px;line-height:19px;color:var(--ink-muted)}
.cm-field.is-required .flag{color:var(--ink-muted)}
.cm-field.is-scan .cm-input{background:var(--info-tint);border-color:var(--info-line)}
.cm-field.is-scan .flag{color:var(--info)}
.cm-field.is-error .cm-input{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}
.cm-field.is-error .help,.cm-field.is-error .flag{color:var(--danger)}
.cm-field.is-ok .help{color:var(--ok)}
.cm-check{display:flex;align-items:center;gap:12px;min-height:44px;font-size:15px;cursor:pointer}
/* #1521 (QM beta.289): das Kästchen ist eine 44-px-Tippfläche (vorher 22 px),
   das sichtbare Kästchen bleibt 22 px — gezeichnet als ::before in der Mitte. */
.cm-check input{-webkit-appearance:none;appearance:none;position:relative;width:44px;height:44px;flex:none;margin:0;border:0;border-radius:0;background:transparent;cursor:pointer}
.cm-check input::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:22px;height:22px;border:1.5px solid var(--line-strong);border-radius:5px;background:var(--surface)}
.cm-check input:checked::before{background:var(--ink);border-color:var(--ink)}
.cm-check input:checked::after{content:"";position:absolute;top:50%;left:50%;width:6px;height:11px;border-right:2px solid var(--surface);border-bottom:2px solid var(--surface);transform:translate(-50%,-50%) translateY(-1px) rotate(45deg)}
.cm-check .s{display:block;font-size:13px;color:var(--ink-muted)}
/* #1539 (A-1539a): Radio-Auswahlen im Kundenlink-Portal (Terminwunsch,
   KVA-Entscheidung) — QM beta.291 maß 22x22 px. Wie .cm-check (#1521): die
   Eingabe ist eine 44-px-Tippfläche, das sichtbare Kästchen (22 px) zeichnet
   ::before, der gesetzte Punkt ::after; die Beschriftung (Label) ist Teil
   der Fläche. */
.cm-radio{display:flex;align-items:center;gap:10px;min-height:44px;font-size:15px;cursor:pointer}
.cm-radio input[type=radio]{-webkit-appearance:none;appearance:none;position:relative;width:44px;height:44px;flex:none;margin:0;border:0;border-radius:0;background:transparent;cursor:pointer}
.cm-radio input[type=radio]::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:22px;height:22px;border:1.5px solid var(--line-strong);border-radius:50%;background:var(--surface)}
.cm-radio input[type=radio]:checked::before{border-color:var(--ink)}
.cm-radio input[type=radio]:checked::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;background:var(--ink)}
/* Belegprüfung: Hinweis „aus dem Bild gelesen, bitte prüfen“ direkt am FIN-Feld (#1024) */
.cm-fin-hinweis{display:inline-flex;align-items:center;gap:6px;margin:4px 0 0;font-size:14px;line-height:20px;color:var(--warn)}
.cm-fin-hinweis .ic{flex:none}
p.cm-fin-hinweis{display:flex}
.cm-switch{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer}
/* #1532 (QM beta.290): die Tippfläche des Kippschalters ist 44x44 px — das
   sichtbare Bett (44x26) zeichnet ::before, der Knauf ::after. Vorher maß
   der Schalter selbst nur 44x26. */
.cm-switch input{-webkit-appearance:none;appearance:none;position:relative;width:44px;height:44px;flex:none;margin:0;border:0;background:transparent;cursor:pointer}
.cm-switch input::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:26px;border-radius:13px;background:var(--line-strong);transition:background .15s}
.cm-switch input::after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;border-radius:50%;background:var(--surface);transform:translate(-50%,-50%) translateX(-9px);transition:transform .15s}
.cm-switch input:checked::before{background:var(--brand)}
.cm-switch input:checked::after{transform:translate(-50%,-50%) translateX(9px)}

/* #1532 (QM beta.290): Steuer-Wahl am Fahrzeugformular — die Radios sind
   44-px-Tippflächen mit sichtbarem Punkt (22 px), vorher 13x24 px. */
.cm-steuer-wahl{position:relative;display:block;padding:12px;min-height:56px;border:1px solid var(--line-strong);border-radius:6px;cursor:pointer}
.cm-steuer-wahl:hover,.cm-steuer-wahl:focus-within{border-color:var(--brand)}
.cm-steuer-wahl input[type=radio]{-webkit-appearance:none;appearance:none;position:relative;width:44px;height:44px;margin:0;border:0;background:transparent;cursor:pointer;vertical-align:middle}
.cm-steuer-wahl input[type=radio]::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:22px;height:22px;border:1.5px solid var(--line-strong);border-radius:50%;background:var(--surface)}
.cm-steuer-wahl input[type=radio]:checked::before{border-color:var(--brand)}
.cm-steuer-wahl input[type=radio]:checked::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:10px;height:10px;border-radius:50%;background:var(--brand)}
.cm-steuer-wahl input[type=radio]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}

/* Meldungen */
.cm-banner{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--radius-md);background:var(--info-tint);border:1px solid var(--info-line);color:var(--ink)}
.cm-banner > .ic{color:var(--info);margin-top:2px}
.cm-banner .body{flex:1;min-width:0}
.cm-banner strong{display:block;font-weight:600}
.cm-banner p{margin:2px 0 0;font-size:14px;line-height:21px;color:var(--ink-muted)}
.cm-banner .actions{display:flex;flex-wrap:wrap;gap:8px;align-self:center}
.cm-banner.warn{background:var(--warn-tint);border-color:var(--warn-line)}.cm-banner.warn > .ic{color:var(--warn)}
.cm-banner.danger{background:var(--danger-tint);border-color:var(--danger-line)}.cm-banner.danger > .ic{color:var(--danger)}
.cm-banner.ok{background:var(--ok-tint);border-color:var(--ok-line)}.cm-banner.ok > .ic{color:var(--ok)}
/* Abgelaufene Garantie in der Akte (#948): grau statt Farbton, Wort „abgelaufen“. */
.cm-banner.ist-abgelaufen{background:var(--surface-sunken);border-color:var(--line-strong)}
.cm-banner.ist-abgelaufen > .ic,.cm-banner.ist-abgelaufen strong{color:var(--ink-muted)}
.cm-banner.ist-angeboten{background:var(--surface-sunken);border-color:var(--line-strong)}
.cm-banner.ist-angeboten > .ic,.cm-banner.ist-angeboten strong{color:var(--ink-muted)}
/* Links im Banner: Kontrast ≥ 4,5:1 auf dem jeweiligen Tint in hell und dunkel (#588) */
.cm-banner .cm-link{color:var(--info)}
.cm-banner.warn .cm-link{color:var(--warn)}
.cm-banner.danger .cm-link{color:var(--danger)}
.cm-banner.ok .cm-link{color:var(--ok)}
/* #1544 (A-1544a, QM beta.292): der Link „Was ist neu“ im Update-Hinweis ist
   auch am PC (1280 px) mindestens 44 px hoch — vorher 24 px. */
.cm-banner#update-hinweis a.cm-link{min-height:44px}
/* #1503 (A-QMB2c, QM beta.292): die Nachtragen-Links des Telefonblatts sind
   auch am PC mindestens 44 px hohe Tippflächen — vorher 24 px Textzeile;
   am Handy galt die Regel schon (#30). Nur diese Seite, kein Inline-Stil. */
.cm-telefonblatt a.cm-link{display:inline-flex;align-items:center;min-height:44px}
/* #1132: Links im Band tragen die Bandfarbe (Kontrast ≥ 4,5 : 1 auf dem Tönungsgrund), nicht die allgemeine Linkfarbe. */
.cm-banner a:not(.cm-btn){color:var(--info)}
.cm-banner.warn a:not(.cm-btn){color:var(--warn)}
.cm-banner.danger a:not(.cm-btn){color:var(--danger)}
.cm-banner.ok a:not(.cm-btn){color:var(--ok)}
/* Hinweise (#668): nur das dringendste Banner ganz, die übrigen als „N weitere Hinweise“ */
.cm-hinweise{display:flex;flex-direction:column;gap:8px}
/* #1604: festes Band im Schnupper-Betrieb — ganz oben im Inhalt, nur Tokens,
   am Handy sichtbar (kein Inline-Skript, role="status" im Template). */
.cm-schnupper-band{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 16px;background:var(--info-tint);border-bottom:1px solid var(--info-line);color:var(--ink);font:400 14px/20px var(--font-sans)}
.cm-hinweis-weitere{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}
.cm-hinweis-weitere summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;font:600 14px/20px var(--font-sans);color:var(--ink);cursor:pointer;list-style:none}
.cm-hinweis-weitere summary::-webkit-details-marker{display:none}
.cm-hinweis-weitere summary .ic{color:var(--ink-muted);flex:none;transition:transform .15s}
.cm-hinweis-weitere[open] summary .ic{transform:rotate(180deg)}
.cm-hinweis-stapel{display:flex;flex-direction:column;gap:12px;padding:0 12px 12px}
@media (max-width:767px){
  .cm-hinweise .cm-banner{flex-wrap:wrap}
  .cm-hinweise .actions{flex-basis:100%;width:100%;align-self:stretch}
  .cm-hinweise .actions .cm-btn{flex:1;min-height:48px}
}
/* #1136: Hinweisband „N unbeantwortet“ am Handy (bis 640 px) einzeilig,
   48 px hoch mit Zahl und „Alle ansehen“; die Namen kommen erst nach dem
   Antippen des Pfeils (details/summary, kein Skript). Am PC bleibt das Band
   wie bisher (cm-response-pc). */
.cm-response-handy{display:none}
@media (max-width:640px){
  .cm-response-pc{display:none!important}
  .cm-response-handy{display:flex;flex-wrap:wrap;align-items:stretch;padding:0;min-height:48px;max-width:100%}
  .cm-response-handy summary{order:1;flex:1 1 100%;min-width:0;display:flex;align-items:center;min-height:48px;cursor:pointer;list-style:none}
  .cm-response-handy summary::-webkit-details-marker{display:none}
  .cm-response-handy .cm-response-pfeil{flex:none;display:flex;align-items:center;justify-content:center;width:44px;min-height:48px;color:var(--danger)}
  .cm-response-handy .cm-response-pfeil .ic{transition:transform .15s}
  .cm-response-handy[open] .cm-response-pfeil .ic{transform:rotate(180deg)}
  .cm-response-handy .cm-response-zeile{flex:1;display:flex;align-items:center;gap:8px;min-width:0;min-height:48px;padding-left:12px}
  .cm-response-handy .cm-response-zeile .ic{flex:none;color:var(--danger)}
  .cm-response-handy .cm-response-zeile strong{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cm-response-handy .cm-response-zeile a{flex:none;font-weight:600;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
  .cm-response-handy .cm-response-namen{order:2;flex-basis:100%;display:none;flex-direction:column;gap:2px;padding:0 8px 10px}
  .cm-response-handy[open] .cm-response-namen{display:flex}
  .cm-response-handy .cm-response-namen a{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 4px;border-top:1px solid var(--danger-line);font-weight:600}
  .cm-response-handy .cm-response-namen .mehr{font-size:13px;line-height:19px;color:var(--ink-muted);padding:0 4px;min-height:28px;display:flex;align-items:center}
}
/* #1136: das gelbe Band „Berichte warten auf Zuordnung“ der Fahrzeugliste
   am Handy ebenfalls eine Zeile, 48 px hoch; am PC unverändert. */
@media (max-width:640px){
  .cm-bericht-band{flex-wrap:nowrap;align-items:center;min-height:48px;padding-top:6px;padding-bottom:6px}
  .cm-bericht-band .body{flex:1;min-width:0}
  .cm-bericht-band strong{white-space:normal;overflow-wrap:anywhere}
  .cm-bericht-band .cm-btn.sm{min-height:44px}
}
.cm-toast{display:flex;align-items:center;gap:12px;max-width:460px;padding:12px 12px 12px 16px;border-radius:var(--radius-md);background:var(--ink);color:var(--ground);box-shadow:var(--shadow-float);font-size:14px;line-height:20px}
.cm-toast .ic{color:var(--brand)}
.cm-toast .body{flex:1}
.cm-toast button{border:0;background:transparent;color:inherit;font:600 14px/1 var(--font-sans);padding:10px;border-radius:6px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.cm-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 24px;text-align:center;border:1px dashed var(--line-strong);border-radius:var(--radius-lg);color:var(--ink-muted)}
.cm-empty h3{margin:0;font:600 18px/24px var(--font-display);color:var(--ink)}
.cm-empty p{margin:0;max-width:42ch;font-size:14px;line-height:21px}
.cm-empty .cm-row{justify-content:center;margin-top:4px}
.cm-ring{width:40px;height:40px;border-radius:50%;background:conic-gradient(var(--brand) calc(var(--p,25)*1%),var(--surface-sunken) 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px))}
.cm-ring.spin{animation:cm-spin 1s linear infinite}
.cm-skel{display:block;height:14px;border-radius:4px;background:var(--surface-sunken);animation:cm-pulse 1.4s ease-in-out infinite}
@keyframes cm-pulse{50%{opacity:.45}}
.cm-progress{height:6px;border-radius:3px;background:var(--surface-sunken);overflow:hidden}
.cm-progress i{display:block;height:100%;width:var(--p,0%);background:var(--brand)}

/* Navigation im Inhalt */
.cm-tabs{display:flex;gap:2px;min-height:46px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.cm-tabs::-webkit-scrollbar{display:none}
.cm-tabs a{display:flex;align-items:center;gap:8px;min-height:46px;padding:0 14px;margin-bottom:-1px;border-bottom:2px solid transparent;color:var(--ink-muted);font:600 14px/1 var(--font-sans);text-decoration:none;white-space:nowrap}
.cm-tabs a:hover{color:var(--ink)}
.cm-tabs a.is-active{color:var(--ink);border-bottom-color:var(--brand)}
.cm-tabs .n{font:500 11px/1 var(--font-mono);color:var(--ink-muted)}
.cm-tabs.sticky{position:sticky;top:64px;z-index:10;background:var(--ground)}
.cm-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cm-chip{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:500 14px/1 var(--font-sans);white-space:nowrap;cursor:pointer;text-decoration:none}
.cm-chip:hover{border-color:var(--line-strong)}
.cm-chip .n{color:var(--ink-muted)}
.cm-chip.is-active{background:var(--ink);border-color:var(--ink);color:var(--ground)}
.cm-chip.is-active .n{color:inherit;opacity:.7}
.cm-qs{width:100%;max-width:640px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);overflow:hidden}
.cm-qs .q{display:flex;align-items:center;gap:12px;height:58px;padding:0 18px;border-bottom:1px solid var(--line);font-size:17px}
.cm-qs .q kbd{margin-left:auto;font:500 11px/1 var(--font-mono);border:1px solid var(--line);border-radius:4px;padding:3px 6px;color:var(--ink-muted)}
.cm-qs .grp{padding:6px 0}
.cm-qs .grp + .grp{border-top:1px solid var(--line)}
.cm-qs .grp > .cm-label{display:block;padding:8px 18px 4px}
.cm-qs .hit{display:flex;align-items:center;gap:12px;min-height:48px;padding:6px 18px;color:var(--ink);text-decoration:none}
.cm-qs .hit .s{margin-left:auto;font-size:13px;color:var(--ink-muted)}
.cm-qs .hit.is-active{background:var(--surface-sunken);box-shadow:inset 3px 0 var(--brand)}
.cm-qs mark{background:var(--brand-tint);color:inherit;border-radius:2px;padding:0 1px}
.cm-legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13px;line-height:19px;color:var(--ink-muted)}
.cm-legend span{display:inline-flex;align-items:center;gap:8px}
.cm-legend i{width:12px;height:12px;display:inline-block;flex:none}
.cm-legend i.ok{background:var(--ok);border-radius:50%}
.cm-legend i.warn{background:var(--warn);transform:rotate(45deg) scale(.82)}
.cm-legend i.danger{background:var(--danger)}
.cm-legend i.free{border:1.5px dashed var(--yard-line)}
.cm-legend i.res{background:var(--warn-tint);border:1.5px solid var(--warn)}

/* Ablauf: Checkliste, Stufen, Assistent */
.cm-steps{list-style:none;margin:0;padding:0}
.cm-steps li{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:2px 14px;align-items:start;padding:10px 0}
.cm-steps li::before{content:"";position:absolute;left:13px;top:42px;bottom:-6px;width:2px;background:var(--line)}
.cm-steps li:last-child::before{display:none}
.cm-steps .mk{grid-row:span 2;width:28px;height:28px;border-radius:50%;border:2px solid var(--line-strong);background:var(--surface);color:var(--ink-muted);display:grid;place-items:center}
.cm-steps .mk .ic{width:14px;height:14px;stroke-width:2.5}
.cm-steps .t{font-weight:600;line-height:28px}
.cm-steps .s{grid-column:2;font-size:13px;line-height:19px;color:var(--ink-muted)}
.cm-steps .end{grid-column:3;grid-row:1;align-self:center}
.cm-steps li.is-done .mk{background:var(--ok);border-color:var(--ok);color:var(--surface)}
.cm-steps li.is-done::before{background:var(--ok)}
.cm-steps li.is-running .mk{border-color:var(--brand);color:var(--brand)}
.cm-steps li.is-planned .mk{border-style:dashed}
.cm-steps li.is-blocked .mk{border-color:var(--danger);color:var(--danger)}
.cm-steps li.is-skipped .t{color:var(--ink-muted);text-decoration:line-through}
.cm-steps li.is-deferred .mk{border-style:dashed;border-color:var(--warn);color:var(--warn)}
.cm-steps li.is-deferred .s{color:var(--warn)}
.cm-hsteps{display:flex;flex-wrap:wrap;align-items:center;gap:6px;list-style:none;margin:0;padding:0;font:500 11px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.cm-hsteps li{display:flex;align-items:center;gap:8px}
.cm-hsteps li + li::before{content:"";width:22px;height:1px;background:var(--line-strong);margin-right:4px}
.cm-hsteps .no{width:24px;height:24px;border-radius:50%;border:1px solid var(--line-strong);display:grid;place-items:center}
.cm-hsteps .no .ic{width:13px;height:13px;stroke-width:2.5}
.cm-hsteps li.is-done .no{background:var(--ok);border-color:var(--ok);color:var(--surface)}
.cm-hsteps li.is-active{color:var(--ink)}
.cm-hsteps li.is-active .no{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.cm-wizard{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.cm-wizard a{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;align-items:center;min-height:54px;padding:6px 12px;border:1px solid transparent;border-radius:var(--radius-md);color:var(--ink-muted);text-decoration:none;font-weight:600;font-size:14px;line-height:18px}
.cm-wizard a:hover{color:var(--ink)}
.cm-wizard small{display:block;font-weight:400;font-size:12px;color:var(--ink-muted)}
.cm-wizard .no{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--line-strong);display:grid;place-items:center;font:500 12px/1 var(--font-mono)}
.cm-wizard .no .ic{width:15px;height:15px;stroke-width:2.5}
.cm-wizard li.is-done .no{background:var(--ok-tint);border-color:var(--ok);color:var(--ok)}
.cm-wizard li.is-done a{color:var(--ink)}
.cm-wizard li.is-active a{background:var(--surface);border-color:var(--line);color:var(--ink)}
.cm-wizard li.is-active .no{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}

/* Fahrzeug: Fotos, Scan, Kamera, Unterschrift */
.cm-photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.cm-photo{position:relative;aspect-ratio:4/3;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--line);background:var(--surface-sunken);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--ink-muted);font-size:13px;line-height:17px;text-align:center;padding:8px}
.cm-photo.is-main{grid-column:span 2;grid-row:span 2}
.cm-photo.is-empty{border:1.5px dashed var(--line-strong);background:transparent;cursor:pointer}
.cm-photo.is-empty:hover{border-color:var(--brand);color:var(--ink)}
.cm-photo-wrap{display:flex;flex-direction:column;gap:6px;min-width:0}
.cm-photo-wrap.is-main{grid-column:span 2}
.cm-photo-wrap .cm-photo{width:100%}
.cm-btn.cm-photo-edit{min-height:44px;width:100%;justify-content:center}
.cm-sheet .cm-btn{min-height:48px;width:100%;justify-content:center}
.cm-sheet .cm-btn.cm-vergleich-knopf{min-height:56px;width:100%;justify-content:center}
.cm-photo.is-filled{background:repeating-linear-gradient(-45deg,var(--surface-sunken) 0 10px,var(--surface) 10px 20px)}
.cm-photo .tag{position:absolute;left:8px;top:8px;padding:3px 6px;border-radius:3px;background:var(--surface);font:500 10px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}
.cm-photo.is-uploading::after{content:"";position:absolute;left:0;bottom:0;height:4px;width:var(--p,60%);background:var(--brand)}
.cm-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cm-scan{position:relative;aspect-ratio:1.48;border-radius:var(--radius-md);border:1px solid var(--line);background:repeating-linear-gradient(-45deg,var(--surface-sunken) 0 9px,var(--surface) 9px 18px);display:grid;place-items:center;overflow:hidden}
.cm-scan .frame{position:absolute;inset:14px;border:2px solid var(--brand);border-radius:6px;-webkit-mask:linear-gradient(#000 0 0) top left/22px 22px no-repeat,linear-gradient(#000 0 0) top right/22px 22px no-repeat,linear-gradient(#000 0 0) bottom left/22px 22px no-repeat,linear-gradient(#000 0 0) bottom right/22px 22px no-repeat;mask:linear-gradient(#000 0 0) top left/22px 22px no-repeat,linear-gradient(#000 0 0) top right/22px 22px no-repeat,linear-gradient(#000 0 0) bottom left/22px 22px no-repeat,linear-gradient(#000 0 0) bottom right/22px 22px no-repeat}
.cm-scan .cap{position:relative;padding:4px 8px;border-radius:3px;background:var(--surface);font:500 11px/16px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);text-align:center}
.cm-camera{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:64px;border:0;border-radius:var(--radius-lg);background:var(--brand);color:var(--on-brand);font:700 17px/1 var(--font-sans);cursor:pointer}
.cm-camera .ic{width:26px;height:26px}
.cm-camera.round{width:76px;height:76px;min-height:0;border-radius:50%;padding:0;box-shadow:0 0 0 5px var(--ground),0 0 0 6px var(--line-strong)}
.cm-sign{position:relative;height:200px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface)}
.cm-sign .line{position:absolute;left:24px;right:24px;bottom:52px;border-bottom:1px solid var(--line-strong)}
.cm-sign .x{position:absolute;left:24px;bottom:58px;font:500 18px/1 var(--font-mono);color:var(--ink-muted)}
.cm-sign .hint{position:absolute;left:24px;right:24px;bottom:18px;display:flex;justify-content:space-between;font-size:13px;color:var(--ink-muted)}
.cm-sign svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--ink);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

/* Dialog */
.cm-scrim{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:24px;background:rgba(5,7,10,.62)}
.cm-scrim.inline{position:relative;inset:auto;z-index:auto;border-radius:var(--radius-lg)}
.cm-dialog{width:100%;max-width:520px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-float)}
.cm-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 20px 0 24px}
.cm-dialog .body{padding:12px 24px 8px;display:flex;flex-direction:column;gap:16px}
.cm-dialog footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:16px 24px 24px}

/* Werkstatt-Board */
.cm-board{display:grid;grid-template-columns:repeat(4,minmax(230px,1fr));gap:16px;align-items:start}
.cm-col{display:flex;flex-direction:column;gap:10px;min-height:240px;padding:12px;border-radius:var(--radius-lg);background:var(--surface-sunken);border:1px solid var(--line)}
.cm-col-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 4px 6px}
.cm-col-head h3{margin:0;display:flex;align-items:center;gap:10px;font:600 16px/22px var(--font-display)}
.cm-col-head h3 .n{font:500 12px/1 var(--font-mono);color:var(--ink-muted)}
.cm-job{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--line)}
.cm-job.is-overdue{border-color:var(--danger)}
.cm-job.is-sold{border-color:var(--danger)}
.cm-job .veh{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.cm-job .veh b{font-weight:700;font-size:15px}
.cm-job .veh .cm-mono{color:var(--ink-muted);font-size:12px}
.cm-job .step{font:600 14px/20px var(--font-sans);color:var(--ink)}
.cm-job .meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;line-height:19px;color:var(--ink-muted)}
.cm-job .meta span{display:inline-flex;align-items:center;gap:5px}
.cm-job .note{font-size:13px;line-height:19px;padding:8px 10px;border-radius:var(--radius-sm);background:var(--danger-tint);color:var(--ink)}
.cm-job .acts{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.cm-job .acts .cm-btn{min-width:0;padding:0 12px;font-size:14px;gap:6px;white-space:nowrap}
.cm-job .acts .cm-btn:first-child{flex:1 1 96px}
.cm-job .acts .cm-btn.secondary{flex:0 1 auto}
.cm-job .shots{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.cm-shot{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border:1.5px dashed var(--line-strong);border-radius:var(--radius-sm);background:transparent;color:var(--ink);font:600 13px/1 var(--font-sans);cursor:pointer}
.cm-shot.is-done{border-style:solid;border-color:var(--ok-line);background:var(--ok-tint);color:var(--ok)}

/* #603: ein Knopf je Karte, Zuständigkeit unter „Mehr“, Fertig melden als Blatt */
.cm-board-filter summary{list-style:none}
.cm-board-filter summary::-webkit-details-marker{display:none}
.cm-board-chips{flex-wrap:wrap}
.cm-board-chips .cm-chip{white-space:normal;min-width:0}
.cm-chip-warn{background:var(--warn-tint);color:var(--warn);border-color:var(--warn-line)}
.cm-chip-danger{background:var(--danger-tint);color:var(--danger);border-color:var(--danger-line)}
.cm-clean-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
@media (max-width:640px){.cm-clean-grid{grid-template-columns:minmax(0,1fr)}}
.cm-clean .acts{align-items:center}
.cm-clean .acts .cm-btn{min-height:56px}
.cm-job .acts .cm-btn.cm-haupt{flex:1 1 130px;min-height:56px;font-size:15px}
.cm-job .acts .cm-mehr{flex:0 1 auto}
.cm-job .cm-mehr>summary{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 12px;font-size:14px;white-space:nowrap}
.cm-job .acts .cm-mehr>summary.cm-btn{min-height:56px;padding:0 14px;font-size:14px;gap:6px;min-width:0}
.cm-mehr-liste .cm-assign{display:flex;flex-direction:column;gap:6px;padding:8px 4px}
.cm-mehr-liste .cm-assign:not(:last-child){border-bottom:1px solid var(--line);margin-bottom:4px}
.cm-mehr-liste .cm-mehr-label{font:500 11px/16px var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.cm-mehr-liste .cm-assign .cm-select select{min-height:44px}
.cm-fertig-blatt{width:min(560px,calc(100vw - 32px));max-height:min(85dvh,720px);overflow-y:auto}
.cm-fertig-fuss{position:sticky;bottom:0;display:flex;flex-direction:column;gap:8px;padding:12px 24px calc(16px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);margin:0}
@media (max-width:759px){
 .cm-fertig-blatt{width:100vw;max-width:100vw;margin:auto 0 0;max-height:92dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:0}
 .cm-fertig-fuss{margin:0;padding:12px 24px calc(12px + env(safe-area-inset-bottom))}
 .cm-fertig-fuss .cm-btn{min-height:56px}
 .cm-fertig-fuss .cm-btn[type=submit]{flex:1}
}

/* Hofplan (SVG in Metern) */
.cm-yard{position:relative;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--yard-ground);overflow:auto}
.cm-yard svg{display:block;width:100%;min-width:720px;height:auto}
.y-lot{fill:var(--yard-asphalt)}
.y-grid{stroke:var(--yard-grid);stroke-width:.06}
.y-bay{fill:none;stroke:var(--yard-line);stroke-width:.1;stroke-dasharray:.35 .25}
.y-bay.is-show{fill:var(--yard-show);stroke-dasharray:none}
.y-bay.is-res{fill:var(--warn-tint);stroke:var(--warn);stroke-width:.14;stroke-dasharray:none}
.y-bay.is-target{stroke:var(--brand);stroke-width:.2;stroke-dasharray:none}
.y-bld{fill:var(--yard-building);stroke:var(--yard-line);stroke-width:.1}
.y-edge{fill:none;stroke:var(--ink-muted);stroke-width:.25}
.y-edge.zaun{stroke-dasharray:.6 .4}
.y-edge.wand{stroke-width:.6;stroke:var(--line-strong)}
.y-edge.strasse{stroke:var(--ink);stroke-width:.3}
.y-t{font-family:var(--font-mono);font-size:.85px;letter-spacing:.06em;fill:var(--ink-muted);text-transform:uppercase}
.y-t.b{font-size:1.05px;fill:var(--ink);font-weight:500}
.y-t.car{font-size:.72px;fill:var(--y-car-ink);font-weight:500}
.y-car{stroke:none}
.y-car.ok{fill:var(--ok)}.y-car.warn{fill:var(--warn)}.y-car.danger{fill:var(--danger)}
.y-mk{fill:var(--y-car-ink)}
.y-sel{fill:none;stroke:var(--brand);stroke-width:.25}
.y-arrow{fill:none;stroke:var(--brand);stroke-width:.18;stroke-dasharray:.5 .3}

/* Einrichtung: Grundstücks-Vorschau */
.cm-plot{position:relative;width:100%;max-width:360px;margin:22px auto 26px;background:var(--yard-asphalt)}
.cm-plot .e{position:absolute;font:500 10px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);white-space:nowrap}

/* Login */
.cm-login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
.cm-login-form{display:flex;flex-direction:column;padding:28px clamp(24px,5vw,72px)}
.cm-login-form .inner{width:100%;max-width:400px;margin:auto 0;padding:48px 0;display:flex;flex-direction:column;gap:24px}
.cm-login-art{position:relative;display:flex;flex-direction:column;justify-content:center;gap:16px;padding:48px;border-left:1px solid var(--line);background:var(--surface-sunken);overflow:hidden}
.cm-login-art .pic{position:relative;width:100%;aspect-ratio:16/9}
.cm-login-art .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);mix-blend-mode:multiply}
[data-theme="dark"] .cm-login-art .pic img{filter:grayscale(1) invert(1) brightness(.9);mix-blend-mode:screen}
.cm-login-art .pic .tint{position:absolute;inset:0;background:var(--brand);mix-blend-mode:color;-webkit-mask-image:linear-gradient(90deg,#000 35%,transparent 58%);mask-image:linear-gradient(90deg,#000 35%,transparent 58%)}

/* Leiste unten, Aktionsleiste */
.cm-bottomnav{display:none}
.cm-actionbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:var(--space-6);border-top:1px solid var(--line)}
.cm-actionbar .status{margin-right:auto;font-size:13px;color:var(--ink-muted);display:flex;align-items:center;gap:6px}

/* Verkaufszettel (Druck, immer hell) */
.cm-tag{width:300px;padding:18px;border-radius:var(--radius-sm);background:#fff;color:#15181D;box-shadow:var(--shadow-card);font-family:var(--font-sans)}
.cm-tag .head{display:flex;justify-content:space-between;align-items:center;font:500 10px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:#585F69}
.cm-tag h2{margin:12px 0 2px;font:700 26px/28px var(--font-display);letter-spacing:-.02em}
.cm-tag .sub{font-size:13px;color:#585F69}
.cm-tag .price{margin:14px -18px;padding:10px 18px;background:var(--accent);color:var(--on-accent);font:700 32px/36px var(--font-sans);letter-spacing:-.02em}
.cm-tag .price small{display:block;font:500 11px/16px var(--font-sans);letter-spacing:0}
.cm-tag table{width:100%;border-collapse:collapse;font-size:13px}
.cm-tag td{padding:5px 0;border-top:1px solid #DDDBD4}
.cm-tag td:last-child{text-align:right;font-weight:600}
.cm-tag .qr{display:flex;align-items:center;gap:12px;margin-top:14px;font-size:12px;color:#585F69}
.cm-tag .qr i{width:56px;height:56px;flex:none;background:repeating-conic-gradient(#15181D 0 25%,#fff 0 50%) 0 0/14px 14px;outline:4px solid #15181D;outline-offset:-4px}

/* Phase C (10.10.2026): Fahrzeugliste, Kontakte, Verkauf, Börsen, Benutzer, Kalender, Fahrtenbuch */
.cm-toolbar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.cm-toolbar .end{margin-left:auto;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cm-find{position:relative;flex:1 1 260px;max-width:420px}
.cm-find > .ic{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--ink-muted);pointer-events:none}
.cm-find .cm-input{min-height:44px;padding-left:42px;background:var(--surface)}
.cm-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(var(--tile,264px),100%),1fr));gap:16px}
.cm-tile{display:flex;flex-direction:column;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;color:var(--ink);text-decoration:none;box-shadow:var(--shadow-card);transition:border-color .15s}
.cm-tile:hover{border-color:var(--line-strong)}
.cm-tile .pic{position:relative;aspect-ratio:4/3;background:repeating-linear-gradient(-45deg,var(--surface-sunken) 0 10px,var(--surface) 10px 20px);display:grid;place-items:center;color:var(--ink-muted)}
.cm-tile .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cm-tile .pic .cm-badge{position:absolute;left:10px;top:10px}
.cm-tile .pic .days{position:absolute;right:10px;top:10px;display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 8px;border-radius:var(--radius-sm);background:var(--surface);font:500 11.5px/1 var(--font-mono);letter-spacing:.04em;color:var(--ink)}
.cm-tile .pic .days.is-long{background:var(--danger-tint);color:var(--danger)}
.cm-tile .body{flex:1;display:flex;flex-direction:column;gap:10px;padding:14px 16px 16px}
.cm-tile .name b{display:block;font-weight:700;font-size:16px;line-height:21px}
.cm-tile .name span{font:500 12px/18px var(--font-mono);color:var(--ink-muted)}
.cm-tile .price{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.cm-tile .price strong{font:700 22px/26px var(--font-sans);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.cm-locked{display:inline-flex;align-items:center;gap:6px;font-size:13px;line-height:26px;color:var(--ink-muted)}
.cm-facts{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px;line-height:19px;color:var(--ink-muted)}
.cm-facts span{display:inline-flex;align-items:center;gap:5px}
.cm-tile .leads{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-top:12px;border-top:1px solid var(--line)}
.cm-tile .leads .cm-label{margin-right:auto}
/* #1362: die Kachel hat zwei Flächen — Hauptlink (Akte) und Fuß (Telefonblatt) */
.cm-tile-haupt{display:flex;flex-direction:column;flex:1;min-width:0;color:inherit;text-decoration:none}
.cm-tile-fuss{display:flex;align-items:center;min-height:44px;padding:0 16px 14px;font:600 13.5px/1.2 var(--font-sans);color:var(--ink-muted);text-decoration:none}
.cm-tile-fuss:hover{color:var(--ink)}
.cm-trend{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 8px;border-radius:var(--radius-sm);background:var(--surface-sunken);font:500 12px/1 var(--font-mono);color:var(--ink);white-space:nowrap}
.cm-trend::after{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent}
.cm-trend.up::after{border-bottom:7px solid var(--ok)}
.cm-trend.down::after{border-top:7px solid var(--danger)}
.cm-trend.flat::after{width:9px;height:2px;border:0;background:var(--ink-muted)}
.cm-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:16px}
.cm-person{display:flex;flex-direction:column;gap:14px;min-width:0;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}
.cm-person.is-pending{border-style:dashed;box-shadow:none}
.cm-person .who{display:flex;align-items:center;gap:14px;min-width:0}
.cm-person .who > span:not(.cm-avatar){min-width:0}
.cm-person .who b{display:block;font-weight:700;font-size:16px;line-height:21px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-person .who small{display:block;font-size:13px;line-height:19px;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-person .who .cm-iconbtn{margin-left:auto}
.cm-avatar.lg{width:48px;height:48px;font-size:15px}
.cm-avatar.org{border-radius:var(--radius-md)}
.cm-person .stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}
.cm-person .stats > div{display:flex;flex-direction:column;gap:2px;padding:10px 12px;background:var(--surface)}
.cm-person .stats b{font:700 18px/22px var(--font-sans)}
.cm-person .last{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:19px;color:var(--ink-muted)}
.cm-person .last .ic{margin-top:1px}
/* #600: Anrufen als großer Knopf, E-Mail daneben, Zustand in Worten, ganze Karte antippbar */
.cm-person .who a{display:block;color:inherit;text-decoration:none;min-width:0}
.cm-person .who a:hover b{color:var(--brand-text)}
.cm-person .zustand{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:auto}
.cm-person .cm-kontakt-zeit{font-size:13px;line-height:19px;color:var(--ink-muted)}
.cm-person .acts{display:flex;gap:8px;margin-top:auto}
.cm-person .acts .cm-btn{min-height:56px;font-size:17px;min-width:0}
.cm-person .acts .cm-btn:first-child{flex:2 1 0}
.cm-person .acts .cm-btn.secondary{flex:1 1 0}
.cm-person.cm-rowlink:hover{border-color:var(--line-strong)}
.cm-kontakt-hinweis{font-size:13px;line-height:19px;color:var(--ink-muted);margin:0}
.cm-deals{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(380px,100%),1fr));gap:16px}
.cm-deal{display:flex;flex-direction:column;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}
.cm-deal.is-urgent{border-color:var(--danger)}
.cm-deal .top{display:grid;grid-template-columns:72px minmax(0,1fr);gap:14px;padding:16px 18px 14px}
.cm-deal .thumb{width:72px;aspect-ratio:4/3;border-radius:var(--radius-sm);background:repeating-linear-gradient(-45deg,var(--surface-sunken) 0 6px,var(--surface) 6px 12px);border:1px solid var(--line)}
.cm-deal .thumb{overflow:hidden}
.cm-deal .thumb img{display:block;width:100%;height:100%;object-fit:cover} /* #395: Foto sonst in Originalgröße */
.cm-deal .t{display:block;font-weight:700;font-size:16px;line-height:21px}
.cm-deal .s{display:block;font-size:13px;line-height:19px;color:var(--ink-muted)}
.cm-deal .stage{display:flex;flex-direction:column;gap:8px;padding:0 18px 14px}
.cm-deal .stage .row{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.cm-deal .next{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 18px;border-top:1px solid var(--line);margin-top:auto}
.cm-deal .next .what{display:flex;align-items:center;gap:8px;margin-right:auto;font-size:14px;line-height:20px;font-weight:600;min-width:0}
.cm-deal .next .what .ic{color:var(--ink-muted)}
.cm-portals{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:16px}
.cm-mark{width:40px;height:40px;flex:none;border-radius:var(--radius-md);background:var(--surface-sunken);border:1px solid var(--line);display:grid;place-items:center;font:700 13px/1 var(--font-display);color:var(--ink)}
.cm-spark{display:flex;align-items:flex-end;gap:3px;height:44px}
.cm-spark i{flex:1;height:var(--h);min-height:2px;border-radius:2px 2px 0 0;background:var(--line-strong)}
.cm-spark i:last-child{background:var(--brand)}
.cm-issues{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.cm-issues li{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:19px}
.cm-issues li .ic{margin-top:1px;flex:none}
.cm-issues li.warn .ic{color:var(--warn)}.cm-issues li.danger .ic{color:var(--danger)}
.cm-week-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow-x:auto}
.cm-week{display:grid;grid-template-columns:56px repeat(var(--days,6),minmax(120px,1fr));min-width:820px}
.cm-week .dh{position:sticky;top:0;display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-left:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}
.cm-week .dh:first-child{border-left:0}
.cm-week .dh b{font:700 20px/24px var(--font-sans)}
.cm-week .dh.is-today b{display:inline-grid;place-items:center;width:32px;height:32px;margin-left:-4px;border-radius:50%;background:var(--brand);color:var(--on-brand);font-size:16px}
.cm-week .dh small{font-size:12px;color:var(--ink-muted)}
.cm-hours > div{height:56px;padding:4px 8px 0 0;text-align:right;font:500 11px/1 var(--font-mono);color:var(--ink-muted)}
.cm-day{position:relative;height:calc(var(--rows,11)*56px);border-left:1px solid var(--line);background-image:repeating-linear-gradient(to bottom,transparent 0 55px,var(--line) 55px 56px)}
.cm-day.is-today{background-color:var(--brand-tint)}
.cm-day .closed{position:absolute;left:0;right:0;top:calc(var(--s)*56px);height:calc(var(--d)*56px);background:repeating-linear-gradient(-45deg,transparent 0 6px,var(--surface-sunken) 6px 12px)}
.cm-ev{position:absolute;left:4px;right:4px;top:calc(var(--s)*56px + 2px);height:calc(var(--d)*56px - 4px);display:flex;flex-direction:column;gap:2px;padding:6px 8px;overflow:hidden;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:12.5px;line-height:16px;text-decoration:none}
.cm-ev:hover{box-shadow:var(--shadow-float);z-index:2}
.cm-ev .k{display:flex;align-items:center;gap:6px;font:500 10px/14px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}
.cm-ev .k::before{content:"";width:7px;height:7px;flex:none;background:currentColor;border-radius:50%}
.cm-ev b{font-weight:600;font-size:13px;line-height:17px}
.cm-ev .p{color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-ev.probe{background:var(--brand-tint);border-color:var(--brand)}.cm-ev.probe .k{color:var(--brand-text)}
.cm-ev.uebergabe{background:var(--ok-tint);border-color:var(--ok-line)}.cm-ev.uebergabe .k{color:var(--ok)}
.cm-ev.werkstatt{background:var(--info-tint);border-color:var(--info-line)}.cm-ev.werkstatt .k{color:var(--info)}
.cm-ev.werkstatt .k::before{background:transparent;border:2px solid currentColor;width:8px;height:8px}
.cm-ev.pruefer{background:var(--warn-tint);border-color:var(--warn-line)}.cm-ev.pruefer .k{color:var(--warn)}
.cm-ev.pruefer .k::before{border-radius:1px;transform:rotate(45deg) scale(.9)}
.cm-ev.ankauf .k::before{border-radius:1px}
.cm-ev.static{position:static;height:auto;padding:10px 12px;gap:4px;font-size:13.5px;line-height:19px}
.cm-ev.static b{font-size:15px;line-height:20px}
.cm-now{position:absolute;left:0;right:0;top:calc(var(--s)*56px);height:2px;background:var(--brand);z-index:3}
.cm-now::before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--brand)}
.cm-daystrip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.cm-daystrip button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:60px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);cursor:pointer}
.cm-daystrip button span{font:500 10.5px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.cm-daystrip button b{font:700 18px/1 var(--font-sans)}
.cm-daystrip button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--ground)}
.cm-daystrip button[aria-pressed="true"] span{color:inherit;opacity:.7}
.cm-daystrip button i{width:5px;height:5px;border-radius:50%;background:var(--brand)}
.cm-agenda{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.cm-agenda li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:start}
.cm-agenda time{padding-top:11px;font:500 13px/1 var(--font-mono);color:var(--ink-muted)}
.cm-agenda .free{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:0 6px 0 12px;border:1.5px dashed var(--line-strong);border-radius:var(--radius-sm);font-size:13px;color:var(--ink-muted)}
.cm-agenda .closed-line{display:flex;align-items:center;gap:10px;font:500 11px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.cm-agenda .closed-line::after{content:"";flex:1;height:1px;background:var(--line-strong)}
.cm-trip{width:100%;max-width:460px;margin:0 auto;display:flex;flex-direction:column;gap:22px}
.cm-input.xl{min-height:76px;font:600 34px/1 var(--font-mono);letter-spacing:.06em;text-align:center}
.cm-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cm-choice button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font:600 15px/1 var(--font-sans);cursor:pointer}
.cm-choice button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--ground)}
.cm-veh{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}
.cm-veh .thumb{width:64px;aspect-ratio:4/3;flex:none;border-radius:var(--radius-sm);background:repeating-linear-gradient(-45deg,var(--surface-sunken) 0 6px,var(--surface) 6px 12px);border:1px solid var(--line)}
.cm-veh .txt{flex:1;min-width:0}
.cm-veh b{display:block;font-weight:700;font-size:16px;line-height:21px}
.cm-veh small{display:block;font:500 12px/18px var(--font-mono);color:var(--ink-muted)}
.cm-clock{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);text-align:center}
.cm-clock .t{font:600 64px/1 var(--font-mono);letter-spacing:.02em}
.cm-clock .s{font-size:14px;line-height:20px;color:var(--ink-muted)}
.cm-live{display:inline-flex;align-items:center;gap:8px;font:500 11px/16px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--brand-text)}
.cm-live::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--brand);animation:cm-pulse 1.4s ease-in-out infinite}
.cm-odo{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}
.cm-odo > div{display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:var(--surface)}
.cm-odo b{font:600 20px/24px var(--font-mono)}
.cm-job > .cm-badge,.cm-card-body > .cm-badge,.cm-stack > .cm-badge{align-self:flex-start}
.cm-sticky{position:sticky;top:96px}
/* Hilfsklassen Gerät */
@media (min-width:960px){.show-sm{display:none!important}}
@media (max-width:959px){
 .hide-sm{display:none!important}
 .cm-app{grid-template-columns:minmax(0,1fr)}
 .cm-side{display:none}
 .cm-top{height:56px;padding:0 var(--space-2) 0 var(--space-4)}
 .cm-top .title{display:block}
 .cm-top .cm-search{display:none}
 .cm-tabs.sticky{top:56px}
 .cm-content{padding:var(--space-6) var(--space-4) 132px;gap:var(--space-6)}
 .cm-title{font-size:34px}
 .cm-cols{grid-template-columns:minmax(0,1fr)}
 .cm-bottomnav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:30;padding:4px 4px calc(4px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line)}
 .cm-bottomnav a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:56px;color:var(--ink-muted);text-decoration:none;font:500 11px/1.1 var(--font-sans)}
 .cm-bottomnav a.is-active{color:var(--ink);font-weight:700}
 .cm-bottomnav a.is-active::before{content:"";position:absolute;top:-4px;width:28px;height:3px;background:var(--brand);border-radius:0 0 2px 2px}
 .cm-bottomnav .ic{width:24px;height:24px}
 .cm-sticky{position:static}
 .cm-scan-row .cm-card-body{flex-direction:row;align-items:center;gap:14px;padding:12px}
 .cm-scan-row .cm-scan{width:96px;flex:none;aspect-ratio:1.48}
 .cm-scan-row .cm-scan .cap{display:none}
 .cm-scan-row .cm-scan .frame{inset:6px}
 .cm-scan-row .cm-row{flex:1}
 .cm-board{grid-template-columns:minmax(0,1fr)}
 .cm-board .cm-col:not(.is-current){display:none}
 .cm-board .cm-col{background:transparent;border:0;padding:0;min-height:0}
 .cm-board .cm-col-head{display:none}
 .cm-flow{grid-template-columns:repeat(3,minmax(0,1fr))}
 .cm-login{grid-template-columns:minmax(0,1fr)}
 .cm-login-art{display:none}
 .cm-photos{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:640px){
 .cm-kpis{grid-template-columns:repeat(var(--n-sm,2),minmax(0,1fr))}
 .cm-kpis > .cm-kpi:last-child:nth-child(odd){grid-column:1/-1}
 .cm-form-grid{grid-template-columns:minmax(0,1fr)}
 .cm-pagehead .cm-actions{width:100%}
 .cm-pagehead .cm-actions > .cm-btn:not(.icon){flex:1}
 .cm-title{font-size:32px}
 .cm-list > li > a,.cm-list > li > .row{padding:12px 16px;gap:12px}
 .cm-card-head,.cm-card-body{padding-left:16px;padding-right:16px}
}
@media (prefers-reduced-motion:reduce){.cm-app *,.cm-app *::before,.cm-app *::after{animation:none!important;transition:none!important}}
[hidden]{display:none !important}

/* Geräte-Regel (#313): Großbild = kürzere Seite ab 600 px */
.nur-handy{display:none}
.cm-geraet-inhalt{display:contents}
@media (max-width:599.98px),(max-height:599.98px){
 .nur-grossbild{display:none!important}
 .nur-handy{display:flex}
 body[data-geraet="A"] .cm-content form[data-geraet-gesperrt] button,
 body[data-geraet="A"] .cm-content form[data-geraet-gesperrt] [type="submit"],
 body[data-geraet="A"] .cm-content [hx-post]:not(form){display:none!important}
}
.cm-grossbild-karte{flex-direction:column;align-items:flex-start;gap:14px;padding:26px 20px 20px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);margin-bottom:var(--space-4)}
.cm-grossbild-karte .kreis{width:64px;height:64px;border-radius:50%;background:var(--surface-sunken);display:grid;place-items:center;color:var(--ink)}
.cm-grossbild-karte .kreis .ic{width:32px;height:32px}
@media (max-width:599.98px),(max-height:599.98px){body[data-geraet="G"] .cm-pagehead > :not(.head){display:none!important}}
.cm-grossbild-karte h2{margin:0;font:700 24px/30px var(--font-display,inherit);color:var(--ink)}
.cm-grossbild-karte p{margin:0;font-size:16px;line-height:24px;color:var(--ink-muted)}
.cm-grossbild-karte .cm-btn{width:100%;min-height:56px;margin-top:6px}
.cm-geraet-zeile{align-items:center;gap:10px;min-height:52px;padding:8px 14px;border-radius:var(--radius-md);background:var(--surface-sunken);color:var(--ink-muted);font:600 15px/20px var(--font-sans);margin-bottom:var(--space-4)}
.cm-geraet-zeile .ic{flex:none;color:var(--ink)}
.cm-geraet-symbol{width:44px;height:44px;align-items:center;justify-content:center;flex:none;color:var(--ink-muted);margin-left:auto}
.cm-settings-tile .cm-geraet-symbol .ic,.cm-tabs .cm-geraet-symbol .ic,.cm-areatabs .cm-geraet-symbol .ic{color:var(--ink-muted);width:20px;height:20px}
.cm-geraet-legende{align-items:center;gap:8px;font-size:13.5px;color:var(--ink-muted);margin-bottom:var(--space-3)}
.cm-geraet-legende .ic{color:var(--ink)}

/* Phase D (10.10.2026): Händler-Webseite – Einstellungen */
.cm-opt{display:flex;gap:14px;align-items:flex-start;width:100%;padding:16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);text-align:left;font:inherit;cursor:pointer}
.cm-opt:hover,.cm-opt:focus-visible{border-color:var(--line-strong);background:var(--surface);color:var(--ink)}
.cm-opt[aria-pressed="true"]{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.cm-opt .rd{width:22px;height:22px;flex:none;border-radius:50%;border:1.5px solid var(--line-strong);display:grid;place-items:center;margin-top:1px}
.cm-opt[aria-pressed="true"] .rd{border-color:var(--brand)}
.cm-opt[aria-pressed="true"] .rd::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--brand)}
.cm-opt .t{display:block;font-weight:700}
.cm-opt .s{display:block;font-size:13px;line-height:19px;color:var(--ink-muted)}
.cm-opt.col{flex-direction:column;gap:10px;padding:10px 10px 14px}
.cm-opt.col .row{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:0 4px}
.cm-opt.col .s{padding:0 4px}
.cm-tpls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cm-thumb{position:relative;width:100%;aspect-ratio:16/10;overflow:hidden;border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface-sunken)}
.cm-thumb iframe{position:absolute;left:0;top:0;width:1280px;height:800px;border:0;transform-origin:0 0;transform:scale(.2);pointer-events:none}
.cm-code{margin:0;padding:14px 16px;border-radius:var(--radius-md);background:var(--chrome);color:var(--on-chrome);font:500 12.5px/1.7 var(--font-mono);overflow-x:auto;white-space:pre}
.cm-swatches{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.cm-swatches button{position:relative;width:44px;height:44px;border-radius:50%;border:3px solid var(--surface);box-shadow:0 0 0 1px var(--line-strong);background:var(--c);cursor:pointer}
.cm-swatches button[aria-pressed="true"]{box-shadow:0 0 0 2px var(--ink)}
.cm-swatches button[aria-pressed="true"]::after{content:"";position:absolute;left:50%;top:50%;width:8px;height:14px;margin:-9px 0 0 -4px;border-right:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(45deg);filter:drop-shadow(0 0 1px rgba(0,0,0,.7))}
.cm-logo-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-sunken)}
.cm-logo-row img{width:56px;height:56px;object-fit:contain;flex:none}
.cm-logo-row .txt{flex:1;min-width:160px}
.cm-preview{position:sticky;top:96px}
.cm-frame{position:relative;overflow:hidden;background:var(--surface-sunken)}
.cm-frame iframe{position:absolute;top:0;border:0;transform-origin:0 0;background:#fff}
.cm-urlbar{display:flex;align-items:center;gap:8px;min-width:0;padding:10px 16px;border-bottom:1px solid var(--line);font:500 12px/1 var(--font-mono);color:var(--ink-muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cm-urlbar .ic{width:14px;height:14px}
@media (max-width:959px){.cm-preview{position:static}.cm-tpls{grid-template-columns:minmax(0,1fr)}}

/* Bereichs-Reiter (#51) */
.cm-areatabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:0 0 18px;overflow:visible}
.cm-areatabs a{position:relative;display:flex;align-items:center;min-height:52px;padding:0 18px;font:600 16px/1 var(--font-sans);color:var(--ink-muted);text-decoration:none}
.cm-areatabs a.is-active{color:var(--ink);font-weight:700}
.cm-areatabs a.is-active::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:3px;background:var(--brand);border-radius:2px 2px 0 0}
@media (max-width:759px){
 .cm-areatabs{flex-wrap:wrap;gap:8px;border-bottom:0;margin:0 0 12px}
 .cm-areatabs a{flex:1 1 calc(33.333% - 8px);min-width:96px;min-height:48px;justify-content:center;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-md,10px);background:var(--surface)}
 .cm-areatabs a.is-active{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}
 .cm-areatabs a.is-active::after{display:none}
}

/* Einstellungs-Kacheln und Profil (#51) */
.cm-settings-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.cm-settings-tile{display:flex;gap:14px;align-items:flex-start;min-height:88px;padding:18px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);text-decoration:none}
.cm-settings-tile:hover{border-color:var(--brand)}
.cm-settings-tile .ic{width:24px;height:24px;flex:none;color:var(--brand)}
.cm-settings-tile b{display:block;font-weight:700;font-size:16px;margin-bottom:4px}
.cm-settings-tile small{display:block;color:var(--ink-muted);font-size:14px;line-height:1.35}
.cm-profile{position:relative}
.cm-profile>summary{list-style:none;cursor:pointer}
.cm-profile>summary::-webkit-details-marker{display:none}
.cm-profile:not([open])>.cm-profile-panel{display:none}
.cm-profile-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:40;min-width:260px;padding:8px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg,0 8px 24px rgba(0,0,0,.18))}
.cm-profile-panel .who{padding:10px 12px;border-bottom:1px solid var(--line);margin-bottom:4px}
.cm-profile-panel .who small{display:block;color:var(--ink-muted)}
.cm-profile-panel .item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:48px;padding:0 12px;border:0;background:none;color:var(--ink);font:inherit;text-align:left;text-decoration:none;border-radius:var(--radius-md,10px);cursor:pointer}
.cm-profile-panel a.item,.cm-profile-panel button.item{justify-content:flex-start}
.cm-profile-panel a.item:hover,.cm-profile-panel button.item:hover{background:var(--bg)}
@media (max-width:759px){.cm-settings-tiles{grid-template-columns:1fr}.cm-profile-panel{position:fixed;left:8px;right:8px;top:64px;min-width:0}}

/* Werkstatt-Rollen: drei große Knöpfe (#51, C7) */
@media (max-width:759px){
 .cm-bottomnav.big a{min-height:68px;font:700 14px/1.1 var(--font-sans);color:var(--ink)}
 .cm-bottomnav.big .ic{width:28px;height:28px}
}

/* #30 Zielflächen am Handy: mindestens 44 px */
@media (max-width:759px){
 input[type=checkbox]:not(.cm-check input):not(.cm-switch input),
 input[type=radio]:not(.cm-steuer-wahl input):not(.cm-radio input){width:22px;height:22px;flex:none}
 label:has(> input[type=checkbox]),label:not(.cm-steuer-wahl):has(> input[type=radio]){display:flex;align-items:center;gap:10px;min-height:44px}
 li:has(> label > input[type=checkbox]),li:has(> label > input[type=radio]){min-height:44px;display:flex;align-items:center}
 td a:not(.cm-btn),.cm-table a:not(.cm-btn),a.cm-link,.cm-banner a:not(.cm-btn),.cm-list a:not(.cm-btn),.cm-card-head a:not(.cm-btn),.cm-eyebrow a,.cm-pagehead a:not(.cm-btn):not(.cm-iconbtn),.cm-kpi .meta a{display:inline-flex;align-items:center;min-height:44px}
 .field:has(> input[type=checkbox]),.cm-field:has(> input[type=checkbox]){display:flex;flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:10px;min-height:44px}
 .field:has(> input[type=checkbox]) > label,.cm-field:has(> input[type=checkbox]) > label{display:flex;align-items:center;min-height:44px;flex:1;margin:0}
 .field:has(> input[type=checkbox]) > .help{flex-basis:100%;order:-1}
 .cm-kpi .meta a{min-width:44px;justify-content:center}
 a.cm-link{min-width:44px}
 /* #1532 (QM beta.290): das „Mehr“-Menü bleibt schmaler als der Bildschirm
    (16 px Abstand je Seite) — die Ausrichtung übernimmt aktionen.js. */
 .cm-mehr-liste{max-width:calc(100vw - 32px)}
}

/* #1555d (Design-Antwort, A-QMB6 Punkt 13): jeder allein stehende Textlink
   (eigene Zeile, „Alle N zeigen“, „Mehr“, Links in Karten) bekommt am Handy
   eine Tippfläche von mindestens 44 px — die Schrift wird nicht größer.
   Ausgenommen sind Links mitten im Fließtext (WCAG 2.5.8 „inline“), deshalb
   zählen nur direkte Kinder von Block-Behältern und die .cm-link-Klasse. */
@media (max-width:899.98px){
 .cm-app :is(div,section,aside,figure,summary) > a:not([class]),
 .cm-app a.cm-link{display:inline-flex;align-items:center;min-height:44px}
}

/* Ganze Zeile antippbar (#30) */
.cm-rowlink{cursor:pointer}
.cm-rowlink:hover{background:var(--bg)}

/* #1521 (QM beta.289): /fahrzeuge/nachziehen/ — die Fahrzeuglinks der
   Vorschau sind 44-px-Tippflächen (vorher 23 px Zeilenhöhe). */
.cm-nachziehen-link{display:flex;align-items:center;min-height:44px;flex:1;min-width:0;padding:0 12px}

/* 3D-Schadensbild Stufe 2: Zonen am Handy (#30) */
.cm-zonen{display:grid;grid-template-columns:repeat(8,minmax(44px,1fr));gap:2px;margin:0 0 8px}
/* #392c: Zähler und Text stehen untereinander im Knopf, die rote Zahl überdeckt
   den Reiter-Text nicht mehr (vorher absolut oben rechts über dem Text). */
.cm-zonen button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;padding:0 2px;border:1px solid var(--line);border-radius:var(--radius-md,10px);background:var(--surface);color:var(--ink);font:700 13px/1.1 var(--font-sans)}
.cm-zonen button[aria-selected=true]{border-color:var(--brand);box-shadow:inset 0 0 0 2px var(--brand)}
.cm-zonen i{flex:none;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--danger);color:var(--on-danger);font:700 11px/18px var(--font-sans);font-style:normal}
.cm-zonen i:empty{display:none}
.cm-zone-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.cm-zone-chip{min-height:48px;padding:0 14px;border:1px solid var(--line-strong);border-radius:24px;background:var(--surface);color:var(--ink);font:600 15px/1 var(--font-sans)}
.cm-zone-chip.has{border-color:var(--danger);background:var(--danger-tint);color:var(--ink)}
@media (min-width:760px){.cm-zonen,.cm-zone-chips,.cm-zone-titel{display:none!important}}

/* #233 Kein seitliches Verrutschen am Handy */
.cm-main,.cm-content{min-width:0}
.cm-table-wrap{max-width:100%}
@media (max-width:759px){
 /* Allgemeiner Schutz: jede Tabelle außerhalb eines Wischbereichs wird selbst zum Wischbereich */
 .cm-content table:not(.cm-table-wrap table):not(.table-wrap table):not(.table-container table){display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
 /* 3D-Drehansicht: Punkte umbrechen statt die Seite zu verbreitern */
 .cm-viewdots{flex-wrap:wrap;max-width:100%}
 .cm-viewdots + *,.cm-viewdots{min-width:0}
}

/* Anruf/Antwort vermerken (#213) – PC: Karte oben, Handy: Blatt von unten */
.cm-vermerk{position:relative;margin:0 0 16px;padding:16px;border:2px solid var(--brand);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg,0 8px 24px rgba(0,0,0,.12))}
.cm-vermerk h2{margin:0;font-size:18px}
.cm-vermerk-ergs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}
.cm-vermerk-erg{min-height:56px;border:1px solid var(--line-strong);border-radius:var(--radius-md,10px);background:var(--surface);font:600 15px/1.2 var(--font-sans);color:var(--ink);cursor:pointer}
.cm-vermerk-erg[aria-pressed=true]{border-color:var(--brand);box-shadow:inset 0 0 0 2px var(--brand)}
.cm-vermerk-zeiten{display:flex;flex-wrap:wrap;gap:8px}
.cm-vermerk-zeiten button{min-height:48px;padding:0 14px}
.cm-vermerk-wirkung{margin:12px 0 0;padding:10px 12px;border-radius:var(--radius-md,10px);background:var(--bg);font-size:14px}
.cm-vermerk-fuss{display:flex;gap:8px;margin-top:12px}
.cm-vermerk-ok{flex:1;min-height:56px}
@media (max-width:759px){
 .cm-vermerk{position:fixed;left:0;right:0;bottom:0;z-index:60;margin:0;max-height:88vh;overflow:auto;border-radius:16px 16px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-width:0;border-top:2px solid var(--brand)}
 .cm-vermerk-ergs{grid-template-columns:repeat(2,1fr)}
 .cm-vermerk-erg{min-height:64px}
 .cm-vermerk-fuss{position:sticky;bottom:0;background:var(--surface);padding-top:8px}
 .cm-vermerk-ok{min-height:64px}
}

/* #250: Reiter am Handy bis an den Kartenrand (7 × ≥ 44 px), Innen-Chips 48 px wie im Design */
@media (max-width:759px){
 .cm-zonen{margin-left:-16px;margin-right:-16px}
 .cm-zonen button{padding:0;font-size:12.5px;letter-spacing:-.01em}
 #schaden-no-image .cm-chip{min-height:48px}
}

/* Dialoge per data-modal-auto (#276): modal, im Bild, am Handy als Blatt */
dialog.feedback-dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:20px 24px 0;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-float)}
dialog.feedback-dialog::backdrop{background:rgba(10,12,16,.55)}
dialog.feedback-dialog .feedback-actions{position:sticky;bottom:0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 0 20px;background:var(--surface)}
dialog.feedback-dialog .feedback-actions button{min-height:44px}
@media (max-width:759px){dialog.feedback-dialog{width:100vw;max-width:100vw;margin:auto 0 0;max-height:92dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:0}}

/* #277: sr-only für Bildschirmleser */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Fortschritt Kaufvertrag (#283): bricht am Handy um statt überzustehen */
.cm-steps{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:1rem;min-width:0}
.cm-steps .progress-step{display:inline-flex;align-items:center;padding:4px 10px;border:1px solid var(--line);border-radius:999px;font-size:13px;line-height:18px;color:var(--ink-muted);white-space:nowrap}
.cm-steps .progress-step.done{color:var(--ink);border-color:var(--line-strong)}
.cm-steps .progress-step.active{color:var(--on-brand,#fff);background:var(--brand);border-color:var(--brand)}
@media (max-width:759px){.cm-steps .progress-step{font-size:12px;padding:3px 8px}}

/* Schadensbild Ansichten (#392) */
.cm-ansichten{grid-template-columns:repeat(8,minmax(44px,1fr))}
.cm-ansicht-buehne{position:relative}
.cm-ansicht-werkzeug{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cm-ansicht-werkzeug[hidden]{display:none}
.cm-ansicht-werkzeug .cm-lupe{min-width:48px;min-height:48px;flex:none;gap:6px}
.cm-ansicht-teilname{display:inline-block;margin:0 0 6px;padding:6px 12px;border-radius:6px;border:2px solid var(--brand);background:var(--ink);color:var(--surface);font:600 14px/20px var(--font-sans)}
.cm-ansicht-spalte{flex:1 1 300px;min-width:280px;max-width:640px;margin:0}
.cm-ansicht-buehne{scroll-margin-top:72px} /* #400: nicht unter die feste Kopfzeile */
/* #400: am Handy bis an den Kartenrand, Inline-Stil hatte die Begrenzung festgehalten */
@media (max-width:759px){.cm-ansicht-spalte{max-width:none;min-width:0;margin:0 -12px}}
/* #392b: Reiter in einer Zeile (7 Stück); #1276c: statt seitlich wegzuscrollen
   teilen sich die Reiter die Breite (flex-basis 0 → alle in einer Zeile, sie
   schrumpfen nie unter null und werden nie abgeschnitten; die Leiste bleibt
   flach). flex-wrap:wrap steht als Netz für Schmalstgeräte bereit. */
@media (max-width:759px){.cm-ansichten{display:flex;flex-wrap:wrap;overflow:visible}.cm-ansichten button{flex:1 1 0;min-width:0;min-height:44px;font-size:12px;letter-spacing:-.02em}}
#schaden-ansicht svg{display:block;touch-action:manipulation}
#schaden-ansicht path[data-teil]:focus-visible{outline:none;stroke:var(--focus);stroke-width:4}
.cm-teileliste{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.cm-teil-taste{min-height:48px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-md,10px);background:var(--surface);color:var(--ink);font:600 14px/1.2 var(--font-sans);text-align:left;cursor:pointer}
.cm-teil-taste.has{border-color:var(--danger);color:var(--danger)}
.cm-teil-taste.ok{border-color:var(--ok);color:var(--ok)}
.cm-btn.is-ok{background:var(--ok-tint);border-color:var(--ok);color:var(--ok)}
.cm-teil-taste[aria-pressed=true]{border-color:var(--brand);box-shadow:inset 0 0 0 2px var(--brand)}

/* Glocke mit Vorgängen (#240) */
.cm-glocke{width:48px;height:48px}
@media (min-width:768px){.cm-glocke{width:44px;height:44px}}
.cm-glocke.is-offen{color:var(--danger)}
.cm-glocke.is-ruhig{color:var(--ok)}
.cm-glocke-zahl{position:absolute;top:1px;right:-3px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--danger);color:var(--on-danger);font:700 11px/16px var(--font-sans);border:2px solid var(--ground);box-sizing:content-box;text-align:center}
.cm-glocke-haken{position:absolute;top:6px;right:6px;width:14px;height:14px;border-radius:7px;display:grid;place-items:center;background:var(--ok);color:#fff}
@keyframes cm-glocke-schwingen{0%{transform:rotate(0)}15%{transform:rotate(20deg)}35%{transform:rotate(-14deg)}55%{transform:rotate(8deg)}75%{transform:rotate(-4deg)}100%{transform:rotate(0)}}
.cm-glocke.is-schwingt svg{transform-origin:50% 10%;animation:cm-glocke-schwingen .9s ease-out 1}
.cm-glocke.is-ring{box-shadow:0 0 0 3px var(--danger)}
@media (prefers-reduced-motion:reduce){.cm-glocke.is-schwingt svg{animation:none}}
.cm-glocke-dialog{width:min(440px,calc(100vw - 16px));max-height:min(80dvh,720px);overflow:auto;padding:8px 16px 0;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-float)}
.cm-glocke-dialog::backdrop{background:rgba(10,12,16,.45)}
@media (max-width:767px){.cm-glocke-dialog{margin:auto 0 0;width:100vw;max-width:100vw;border-radius:var(--radius-lg) var(--radius-lg) 0 0}}
@media (min-width:768px){.cm-glocke-dialog{margin:64px 16px auto auto}}
.cm-glocke-kopf{display:flex;justify-content:flex-end}
.cm-glocke-zeile{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:10px 0;border-bottom:1px solid var(--line)}
.cm-glocke-zeile .cm-actions{margin-left:auto;display:flex;gap:8px}
.cm-glocke-zeile .cm-btn{min-height:48px}
#glocke-blatt .cm-card-foot{position:sticky;bottom:0;background:var(--surface);padding:12px 0}

/* SSH-Fingerabdruck (#408) */
.cm-fp{display:flex;flex-wrap:wrap;gap:6px 14px;font:500 17px/1.5 var(--font-mono);letter-spacing:.02em}
.cm-fp span{white-space:nowrap}

/* Löschfenster der Akte (#485) */
.cm-mehr{position:relative;display:inline-block}
.cm-vergleich .cm-mehr{display:block}
.cm-mehr>summary{list-style:none;cursor:pointer}
.cm-mehr>summary::-webkit-details-marker{display:none}
.cm-mehr-liste{position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:220px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md,10px);box-shadow:var(--shadow-card);padding:6px;display:flex;flex-direction:column}
.cm-mehr-eintrag{min-height:48px;text-align:left;background:none;border:0;padding:0 12px;border-radius:8px;font:500 15px/1 var(--font-sans);color:var(--ink);cursor:pointer}
.cm-mehr-eintrag:hover{background:var(--surface-sunken)}
.cm-mehr-eintrag.gefahr{color:var(--danger);border-top:1px solid var(--line);border-radius:0 0 8px 8px;margin-top:4px}
.cm-loeschen-gruende{margin:6px 0 0;padding-left:18px}
.cm-loeschen-knoepfe{display:flex;flex-direction:column;gap:10px}
.cm-loeschen-knoepfe .cm-btn{min-height:56px;width:100%;justify-content:center}
@media (min-width:768px){.cm-loeschen{width:560px}}
/* #487: Auswahl-Tasten auch mit Radiofeldern (ohne JS), gewählt = dunkel */
.cm-choice label,.cm-field .cm-choice label{position:relative;display:flex;align-items:center;justify-content:center;min-height:56px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font:600 15px/1 var(--font-sans);text-transform:none;letter-spacing:0;cursor:pointer}
.cm-choice label input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.cm-choice label:has(input:checked){background:var(--ink);border-color:var(--ink);color:var(--ground)}
.cm-choice label:has(input:focus-visible){outline:2px solid var(--brand);outline-offset:2px}
.cm-choice.drei{grid-template-columns:repeat(3,1fr)}

/* Haken-Zeile: Kästchen + umbrechender Text (#503); überschreibt .cm-field > label */
.cm-haken,.cm-field > label.cm-haken{display:flex;gap:12px;align-items:flex-start;
  min-height:56px;font-family:inherit;text-transform:none;letter-spacing:normal;font-size:16px;
  line-height:1.4;cursor:pointer;max-width:100%;box-sizing:border-box}
.cm-haken input[type=checkbox]{flex:none;width:28px;height:28px;margin:2px 0 0}
.cm-haken .txt{flex:1;min-width:0}

/* Karosserie-Kacheln (#493 E1) */
.cm-kacheln{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.cm-kachel{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;
  min-height:150px;padding:12px;border:1px solid var(--line);border-radius:14px;
  background:var(--surface);color:var(--ink);cursor:pointer;font:inherit}
.cm-kachel:hover,.cm-kachel:focus-visible{border-color:var(--brand)}
.cm-kachel .bild{display:block;width:100%;aspect-ratio:2.4/1}

/* Schadensaufnahme Unten/Innen (#493 E2/E3) */
#schaden-no-image .cm-zonenteile{display:none;flex-direction:column;gap:8px;width:100%}
#schaden-no-image[data-aktiv="unten"] [data-zone="unten"],
#schaden-no-image[data-aktiv="innen"] [data-zone="innen"],
#schaden-no-image[data-aktiv="pruefpunkte"] [data-zone="pruefpunkte"]{display:flex}
/* Draufsicht (#539): alle Zonen ohne Bild sichtbar */
#schaden-no-image[data-aktiv="alle"] .cm-zonenteile{display:flex}
.cm-zonengruppe{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.cm-zonengruppe .kopf{display:flex;justify-content:space-between;align-items:center;gap:8px}
.cm-zeile{display:flex;align-items:center;gap:8px;min-height:56px;padding:6px 10px;
  border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.cm-zeile.is-sel{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.cm-zeile .haupt{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;
  background:none;border:0;padding:6px 0;color:var(--ink);font:inherit;text-align:left;cursor:pointer;
  min-height:48px;justify-content:center}
.cm-zeile .name{font-weight:600}
.cm-zeile .kurz{font-size:13px;color:var(--ink-muted)}
.cm-zeile .cm-btn.sm{min-height:48px;min-width:48px} /* #524 Handschuh-Bedienung */
.cm-unterboden{width:100%;max-width:420px;height:auto}
.cm-unterboden .karo{fill:var(--surface-sunken);stroke:var(--line-strong)}
.cm-unterboden .rad{fill:#2B3038;stroke:var(--line-strong)}
.cm-unterboden .teil{fill:var(--line-strong);stroke:var(--line-strong)}
.cm-unterboden .teil.is-sel{fill:var(--brand);stroke:var(--brand)}

/* Freie Vermerke je Reiter (#493 E4) */
#schaden-frei{width:100%}
#schaden-frei .cm-freizone{display:none;flex-direction:column;gap:8px;margin-top:12px}
#schaden-frei[data-aktiv="links"] [data-frei-zone="links"],
#schaden-frei[data-aktiv="vorne"] [data-frei-zone="vorne"],
#schaden-frei[data-aktiv="oben"] [data-frei-zone="oben"],
#schaden-frei[data-aktiv="rechts"] [data-frei-zone="rechts"],
#schaden-frei[data-aktiv="hinten"] [data-frei-zone="hinten"],
#schaden-frei[data-aktiv="unten"] [data-frei-zone="unten"],
#schaden-frei[data-aktiv="innen"] [data-frei-zone="innen"],
#schaden-frei[data-aktiv="pruefpunkte"] [data-frei-zone="pruefpunkte"]{display:flex}
/* Draufsicht (#539): alle freien Vermerke sichtbar */
#schaden-frei[data-aktiv="alle"] .cm-freizone{display:flex}
.cm-frei-neu{width:100%;text-align:left;cursor:pointer;border-style:dashed;font:inherit;color:var(--ink)}

/* Karosserie-Wahl auf der Schadenseite (#493 Schritt 5) */
.cm-karosserie-wahl summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:48px;
  cursor:pointer;list-style:none}
.cm-karosserie-wahl summary::-webkit-details-marker{display:none}
.cm-kachel.is-sel{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}

/* #213: Schnelltasten im Vermerk-Fenster, 3 + 2 in zwei Reihen, Tippfläche ≥ 52 px */
.cm-vermerk-schnell{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;width:100%}
.cm-vermerk-schnell .cm-btn{min-height:52px;width:100%;justify-content:center;grid-column:span 2}
.cm-vermerk-schnell .cm-btn:nth-child(n+4){grid-column:span 3}

/* Kalenderseite mit EventCalendar (K2/K3, #9): Leiste, Schalter, Raster, Termin-Karten */
.cm-kalender{display:flex;flex-direction:column;gap:12px}
.cm-kalender-leiste{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.cm-kalender-zeit{font:700 15px/1.2 var(--font-sans);color:var(--ink)}
.cm-kalender-anzeigen{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cm-kalender-anzeigen-label{font:600 12px/16px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);margin-right:4px}
.cm-kalender-chips{display:flex;gap:8px;flex-wrap:wrap}
.cm-kalender .cm-seg button,.cm-kalender-seg button{height:auto;min-height:44px;padding:0 16px;font:700 15px/1 var(--font-sans);text-transform:none;letter-spacing:0}
.cm-kalender-seg{border-radius:var(--radius-md)}
.cm-kalender .cm-chip{min-height:44px}
.cm-kalender .cm-chip i{width:12px;height:12px;border-radius:50%;flex:none}
.cm-kalender .cm-chip.off{opacity:.55;background:transparent}
.cm-kalender-status{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);max-width:calc(100vw - 32px);background:var(--chrome);color:var(--on-chrome);padding:12px 20px;border-radius:var(--radius-md);font:600 14px/1.4 var(--font-sans);box-shadow:var(--shadow-float);z-index:60}
/* #600: unter 768 px nur Tag mit Pfeilen und Wochenstreifen, ab 768 px Woche am PC/Tablet */
@media (max-width:767px){.cm-kalender-nur-pc{display:none!important}}
@media (min-width:768px){.cm-kalender-nur-handy{display:none!important}}
.cm-ec .ec{height:72vh;min-height:380px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;--ec-bg-color:var(--surface);--ec-text-color:var(--ink);--ec-border-color:var(--line);--ec-button-bg-color:var(--surface);--ec-button-border-color:var(--line-strong);--ec-button-text-color:var(--ink);--ec-button-active-bg-color:var(--surface-sunken);--ec-button-active-border-color:var(--line-strong);--ec-button-active-text-color:var(--ink);--ec-today-bg-color:var(--brand-tint);--ec-highlight-color:var(--brand-tint);--ec-now-indicator-color:var(--danger);--ec-event-bg-color:var(--info);--ec-event-text-color:var(--ink)}
.cm-ec .ec-header,.cm-ec .ec-col-head,.cm-ec .ec-day-head{background:var(--surface-sunken)}
.cm-ec .ec-time{font:500 13px/1 var(--font-mono);color:var(--ink-muted)}
.cm-ec .ec-event:not(.ec-bg-event){border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--c,#2358A6) 45%,var(--surface));background:color-mix(in srgb,var(--c,#2358A6) 14%,var(--surface))!important;color:var(--ink)}
[data-theme="dark"] .cm-ec .ec-event:not(.ec-bg-event){border-color:color-mix(in srgb,var(--cd,var(--c,#7FB0FF)) 45%,var(--surface));background:color-mix(in srgb,var(--cd,var(--c,#7FB0FF)) 14%,var(--surface))!important}
.cm-ec .ec-event.ec-bg-event{background:repeating-linear-gradient(-45deg,transparent 0 6px,var(--line-strong) 6px 8px)!important;opacity:.4;border:0}
/* #668: 44-px-Tippflächen bleiben in der Karte; kurze Termine klipsen statt zu überlappen */
.cm-ec .ec-event{overflow:hidden}
.cm-ec .cm-ec-ev{display:flex;flex-direction:column;gap:2px;overflow:hidden;font-size:13px;line-height:17px}
.cm-ec .cm-ec-ev .k{display:block;width:100%;margin:0;padding:0;border:0;background:transparent;text-align:left;font:700 13px/17px var(--font-sans);color:color-mix(in srgb,var(--c) 65%,var(--ink));min-height:44px;cursor:pointer}
.cm-ec .cm-ec-ev .k:hover{background:transparent}
[data-theme="dark"] .cm-ec .cm-ec-ev .k{color:color-mix(in srgb,var(--cd,var(--c)) 65%,var(--ink))}
.cm-ec .cm-ec-ev .p{color:var(--ink-muted)}
.cm-ec .cm-ec-ev .p a{display:inline-flex;align-items:center;min-width:44px;min-height:44px;color:var(--info);text-decoration:underline;text-underline-offset:2px}
.cm-ec .cm-ec-res{display:inline-flex;align-items:center;gap:8px;font:700 15px/1 var(--font-sans);color:var(--ink)}
.cm-ec .cm-ec-res .dot{width:12px;height:12px;border-radius:50%;flex:none}
.cm-ec .ec-list .ec-event{min-height:44px}
/* #748: mehr als zwei gleichzeitige Termine → die ganze Karte ist die Schaltfläche */
.cm-ec .ec-event.cm-ec-dicht{cursor:pointer}
.cm-ec .ec-event.cm-ec-dicht:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
/* #600 Handy: Tag-Kopf mit 56-px-Pfeilen, „Anzeigen“-Blatt, Wochenstreifen */
.cm-kalender-tagkopf{display:flex;align-items:center;gap:8px;width:100%;flex:1}
.cm-kalender-pfeil{width:56px;height:56px;flex:none;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);cursor:pointer}
.cm-kalender-pfeil:hover{background:var(--surface-sunken)}
.cm-kalender-tagdatum{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}
.cm-kalender-tagdatum b{font:800 20px/24px var(--font-display);white-space:nowrap}
.cm-kalender-tag-termine{font-size:13px;line-height:19px;color:var(--ink-muted)}
.cm-kalender-tag-termine:empty{display:none}
.cm-kalender-handy-leiste{display:flex;gap:8px;align-items:center}
.cm-kalender-handy-leiste .cm-chip{min-height:44px}
.cm-kalender-anzeigen-inhalt{display:flex;flex-direction:column;gap:12px}
.cm-kalender-anzeigen-kopf{display:flex;align-items:center;justify-content:space-between}
.cm-kalender-schnellwahl{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cm-kalender-anzeigen-hinweis{font-size:13px;line-height:19px;color:var(--ink-muted);margin:0}
@media (max-width:767px){.cm-ec .ec{height:calc(100vh - 320px);min-height:360px}}
/* #760 Handy: kein Größenänderungs-Griff über dem Termin-Knopf – die Dauer ist
   am Handy nicht per Ziehen veränderbar; der Knopf bleibt mindestens 44 px hoch
   und vollständig klickbar (zusätzliche Sicherung zur Bibliotheks-Option). */
@media (max-width:767px){.cm-ec .ec-resizer{display:none}.cm-ec .cm-ec-ev .k{min-height:44px}}
@media (max-width:959px){.cm-kalender .cm-seg{width:100%}.cm-kalender .cm-seg button{flex:1}}

/* #600 (Stephan 20.10.) PC: ein Knopf „Anzeigen: … ▾“, Statuszeile, Legende,
   Auswahl-Blatt mit Schnellwahl, Suche, Bereichen und Personen */
.cm-kalender-pc-leiste{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.cm-kalender-anzeigen-knopf{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);font:700 15px/1 var(--font-sans);color:var(--ink)}
.cm-kalender-anzeigen-knopf .ic{color:var(--ink-muted)}
.cm-kalender-status-text{font-size:13.5px;line-height:19px;color:var(--ink-muted)}
.cm-kalender-status-text:empty{display:none}
.cm-kalender-merged{min-height:26px}
.cm-kalender-pc-leiste .cm-sheet{max-height:min(70vh,560px);overflow:auto}
/* #1485: 420 px statt mindestens 720 px — der Inhalt ist Schnellwahl, Suche
   und eine Namensliste; 720 px sind dafür zu breit. Die Höhe bleibt höchstens
   70 % des Bildschirms, „Übernehmen“ bleibt unten stehen. */
.cm-kalender-pc-leiste .cm-filter[open] > .cm-sheet{min-width:min(420px,calc(100vw - 32px))}
/* #1503: Der Knopf steht im Kalender links; ohne JS-Klasse richtete sich das Blatt am rechten
   Rand des Knopfs aus und ragte unter die Seitenleiste. Reines CSS, ab 960 px. */
@media (min-width:960px){.cm-kalender-pc-leiste .cm-filter[open] > .cm-sheet{left:0;right:auto}}
.cm-kalender-schnellwahl-pc{grid-template-columns:repeat(4,minmax(0,1fr))}
.cm-kalender-schnellwahl .cm-btn[aria-pressed="true"]{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.cm-kalender-pc-leiste .cm-find{flex:1 1 320px;max-width:none}
.cm-kalender-gruppe{display:flex;flex-direction:column;gap:2px}
.cm-kalender-gruppe-titel{font:500 11px/16px var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.cm-kalender-zeile{display:flex;align-items:center;gap:12px;min-height:48px;padding:6px 0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--ink);font:600 15px/20px var(--font-sans);text-align:left;cursor:pointer}
.cm-kalender-zeile i{width:10px;height:10px;border-radius:50%;flex:none}
.cm-kalender-zeile .name{flex:1;min-width:0}
.cm-kalender-zeile > .ic{opacity:0;color:var(--ink);flex:none}
.cm-kalender-zeile[aria-pressed="true"] > .ic{opacity:1}
.cm-kalender-zeile.off{opacity:.55}
.cm-kalender-zeile:hover{color:var(--brand-text)}
.cm-kalender-legende{display:flex;gap:8px 14px;flex-wrap:wrap}
.cm-kalender-legende-chip{display:inline-flex;align-items:center;gap:6px;font:600 13.5px/1 var(--font-sans);color:var(--ink)}
.cm-kalender-legende-chip i{width:10px;height:10px;border-radius:50%;flex:none}
.cm-kalender-legende-rest{display:inline-flex;align-items:center;font-size:13.5px;line-height:19px;color:var(--ink-muted)}

/* Rückrufe (#9 E2/E3): Formular, Liste mit Ampel, Toast, Empfang-Startseite */
.cm-rueckruf-form{width:100%;max-width:640px;display:flex;flex-direction:column;gap:20px}
.cm-rueckruf-form .schritt{display:flex;flex-direction:column;gap:8px}
.cm-rueckruf-form .lbl{font:600 12px/16px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}
.cm-rueckruf-form .nummer{min-height:60px;font:600 24px/1 var(--font-sans);border-width:2px}
.cm-rueckruf-form .fuss{display:flex;flex-direction:column;gap:10px;padding-top:8px}
.knopf-wahl{display:flex;flex-wrap:wrap;gap:8px}
.knopf-wahl.zwei .cm-auswahl{flex:1;min-width:140px}
.cm-auswahl{position:relative;display:inline-flex;flex:0 1 auto}
/* #1521: das unsichtbare Radio füllt die ganze Auswahl (mindestens 52 px) —
   das Ziel ist damit am Handy voll antippbar statt 1×1 px (QM beta.289). */
.cm-auswahl input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.cm-auswahl span{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 18px;border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface);font:700 16px/1 var(--font-sans);color:var(--ink);cursor:pointer}
.cm-auswahl span em{font:600 12px/1 var(--font-sans);opacity:.7}
.cm-auswahl span .av{width:28px;height:28px;border-radius:50%;color:var(--on-brand);background:var(--brand);display:inline-flex;align-items:center;justify-content:center;font:700 13px/1 var(--font-sans)}
.cm-auswahl input:checked+span{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.cm-auswahl input:checked+span em{opacity:.65}
.cm-auswahl input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}
.cm-treffer{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font:inherit;text-align:left;text-decoration:none;cursor:pointer}
.cm-treffer:hover{background:var(--surface-sunken)}
.cm-treffer .mark{flex:none;width:40px;height:40px;border-radius:50%;background:var(--surface-sunken);color:var(--ink);display:flex;align-items:center;justify-content:center;font:700 14px/1 var(--font-sans)}
.cm-treffer .text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cm-treffer .text b{font-size:16px;line-height:20px}
.cm-treffer .text span{font-size:13px;line-height:18px;color:var(--ink-muted)}
.cm-treffer .wahl{font:700 14px/1 var(--font-sans);color:var(--brand)}
.cm-treffer .ok{font:700 14px/1 var(--font-sans);color:var(--ok)}
.cm-treffer.passt{border-color:var(--ok-line);background:var(--ok-tint)}
.cm-treffer-liste{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.cm-treffer-felder{display:flex;gap:8px;margin-top:8px}
.cm-treffer-felder .cm-input{flex:1}
.cm-hinweis{font-size:14px;line-height:20px;color:var(--ink-muted);padding:8px 0}

.cm-rueckruf-liste{display:flex;flex-direction:column;gap:12px}
.cm-rueckruf-karte{display:flex;gap:16px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.cm-rueckruf-karte.is-gefahr{border-color:var(--danger-line);background:var(--danger-tint)}
.cm-rueckruf-karte.is-wartet{border-color:var(--warn-line)}
.cm-rueckruf-karte .ampel{flex:none;width:104px;padding:10px 6px;border-radius:8px;text-align:center;font:700 14px/1.25 var(--font-sans)}
.cm-rueckruf-karte .ampel small{display:block;font:500 12px/1.2 var(--font-sans)}
.cm-rueckruf-karte .ampel.tone-ok{background:var(--ok-tint);color:var(--ok);border:1px solid var(--ok-line)}
.cm-rueckruf-karte .ampel.tone-warn{background:var(--warn-tint);color:var(--warn);border:1px solid var(--warn-line)}
.cm-rueckruf-karte .ampel.tone-danger{background:var(--danger);color:var(--on-danger)}
.cm-rueckruf-karte .ampel.tone-nicht-erreicht{background:var(--surface-sunken);color:var(--ink-muted);border:1px solid var(--line)}
.cm-rueckruf-karte .inhalt{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.cm-rueckruf-karte .titel{font:700 17px/22px var(--font-sans)}
.cm-rueckruf-karte .titel .fahrzeug{font-weight:500;color:var(--ink)}
.cm-rueckruf-karte .dringend{font:700 11px/1 var(--font-sans);background:var(--danger);color:var(--on-danger);border-radius:4px;padding:3px 6px;margin-left:6px;vertical-align:2px}
.cm-rueckruf-karte .zeile{font-size:14px;line-height:20px;color:var(--ink-muted)}
.cm-rueckruf-karte .zeile .tel{color:var(--ink)}
.cm-rueckruf-karte .knopf-reihe{flex:none;display:flex;gap:8px;align-items:center}
.cm-ampel-legende{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--ink-muted)}
.cm-ampel-legende b{font:700 13px/1 var(--font-sans)}
.cm-ampel-legende b.tone-ok{color:var(--ok)}
.cm-ampel-legende b.tone-warn{color:var(--warn)}
.cm-ampel-legende b.tone-danger{color:var(--danger)}
.cm-ampel-legende b.tone-nicht-erreicht{color:var(--ink-muted)}

/* Toast „Rückruf wartet" (#9 E3.5): unten rechts, am Handy oben volle Breite */
#cm-rueckruf-toast{position:fixed;right:12px;bottom:12px;z-index:80;width:330px;max-width:calc(100vw - 16px)}
.cm-rueckruf-toast{background:var(--chrome-raised);color:var(--on-chrome);border:1px solid var(--chrome-line);border-radius:12px;box-shadow:var(--shadow-float);padding:16px;display:flex;flex-direction:column;gap:12px}
.cm-rueckruf-toast .t{display:flex;gap:12px;align-items:flex-start}
.cm-rueckruf-toast .t .glocke{flex:none;width:44px;height:44px;border-radius:50%;background:var(--brand);color:var(--on-brand);display:flex;align-items:center;justify-content:center}
.cm-rueckruf-toast .t b{font:700 17px/22px var(--font-sans)}
.cm-rueckruf-toast .t .s{font-size:14px;line-height:20px;color:var(--on-chrome-muted);white-space:pre-line}
.cm-rueckruf-toast .t .zu{margin-left:auto;flex:none;width:40px;height:40px;border:0;border-radius:8px;background:transparent;color:var(--on-chrome-muted);font-size:16px;cursor:pointer}
.cm-rueckruf-toast .knopf-reihe{display:flex;gap:8px}
.cm-rueckruf-toast .knopf-reihe a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:56px;border-radius:8px;font:700 17px/1 var(--font-sans);text-decoration:none}
.cm-rueckruf-toast .knopf-reihe a.main{background:var(--brand);color:var(--on-brand)}
.cm-rueckruf-toast .knopf-reihe a.neben{background:transparent;color:var(--on-chrome);border:1px solid var(--chrome-line)}
@media (max-width:959px){
  #cm-rueckruf-toast{left:8px;right:8px;top:8px;bottom:auto;width:auto}
  .cm-rueckruf-toast .knopf-reihe{flex-direction:column}
  .cm-rueckruf-karte{flex-wrap:wrap;gap:10px}
  .cm-rueckruf-karte .ampel{width:auto;align-self:flex-start}
  .cm-rueckruf-karte .inhalt{flex:1 1 100%;order:-1}
  .cm-rueckruf-karte .knopf-reihe{width:100%}
  .cm-rueckruf-karte .knopf-reihe .cm-btn{flex:1}
  .cm-treffer-felder{flex-direction:column}
}

/* Empfang-Startseite (#9 E4) */
.cm-empfang{display:flex;flex-direction:column;gap:16px}
.cm-empfang .suche-zeile{display:flex;gap:12px;align-items:center}
.cm-empfang .suchfeld{flex:1;position:relative;display:flex;align-items:center;gap:12px;min-height:64px;padding:0 18px;border:2px solid var(--focus);border-radius:10px;background:var(--surface)}
.cm-empfang .suchfeld>svg{flex:none;color:var(--ink-muted)}
.cm-empfang .suchfeld input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:600 18px/1 var(--font-sans);color:var(--ink)}
.cm-empfang .treffer-ort{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-float);z-index:50;max-height:420px;overflow-y:auto}
.cm-empfang .treffer-gruppe{padding:6px 0}
.cm-empfang .treffer-gruppe+.treffer-gruppe{border-top:1px solid var(--line)}
.cm-empfang .gruppen-titel{font:600 11px/16px var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);padding:8px 16px 4px}
.cm-empfang .treffer{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:8px 16px;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;text-decoration:none;cursor:pointer}
.cm-empfang .treffer:hover{background:var(--surface-sunken)}
.cm-empfang .treffer .text{flex:1;min-width:0;display:flex;flex-direction:column}
.cm-empfang .treffer .text b{font-size:15px}
.cm-empfang .treffer .text span{font-size:13px;color:var(--ink-muted)}
.cm-empfang .hinweis.suche{padding:12px 16px;color:var(--ink-muted)}
.cm-empfang .spalten{display:flex;gap:16px;align-items:flex-start}
.cm-empfang .haupt{flex:1.4;min-width:0;display:flex;flex-direction:column;gap:16px}
.cm-empfang .kurzinfo{flex:1;min-width:280px;position:sticky;top:12px}
.cm-empfang .cm-section-head .cm-switch{margin-left:auto;align-self:center}
/* Empfang „Heute“ (#779): Tageskalender mit einer Spalte je Kalender */
.cm-empfang-kalender{display:flex;flex-direction:column;gap:12px}
.cm-empfang-kalender .cm-ec .ec{height:56vh;min-height:400px}
.cm-empfang-kalender .cm-chip{min-height:44px}
/* Mindestbreite je Spalte (#779): bei vielen Spalten scrollt der Bereich
   waagerecht (overflow der Bibliothek); !important gewinnt gegen die
   Inline-Variable --ec-col-width, die die Bibliothek selbst setzt. */
.cm-empfang .cm-ec .ec-main{--ec-col-width:minmax(110px, 1fr)!important}
/* Uhrzeitspalte bleibt beim waagerechten Scrollen stehen (sticky) */
.cm-empfang .cm-ec .ec-sidebar{position:sticky;inset-inline-start:0;background-color:var(--surface)}
/* Spaltenköpfe höchstens zwei Zeilen, danach „…“; voller Name als title (JS) */
.cm-empfang .cm-ec .ec-row-head .cm-ec-res{align-items:flex-start}
.cm-empfang .cm-ec .ec-row-head .cm-ec-res .dot{margin-top:4px}
.cm-empfang .cm-ec .ec-row-head .cm-ec-res .name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;line-height:1.3}
.kurzinfo-box{display:flex;flex-direction:column;gap:12px}
.kurzinfo-box .foto{width:100%;height:150px;object-fit:cover;border-radius:8px;background:var(--surface-sunken)}
.kurzinfo-box .foto.leer{display:flex;align-items:center;justify-content:center;color:var(--ink-muted)}
.kurzinfo-box .kopf{display:flex;align-items:center;gap:10px}
.kurzinfo-box .kopf .titel{font:700 20px/26px var(--font-sans);flex:1}
.kurzinfo-box .werte{display:flex;flex-direction:column;margin:0}
.kurzinfo-box .wert{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:15px}
.kurzinfo-box .wert span{color:var(--ink-muted)}
.kurzinfo-box .wert b{font-variant-numeric:tabular-nums}
.kurzinfo-box .knoepfe{display:flex;gap:10px}
.kurzinfo-box .knoepfe .cm-btn{flex:1;min-height:56px}
@media (max-width:959px){
  .cm-empfang .suche-zeile{flex-direction:column;align-items:stretch}
  .cm-empfang .suche-zeile .cm-btn{width:100%}
  .cm-empfang .spalten{flex-direction:column}
  .cm-empfang .kurzinfo{position:static;width:100%;min-width:0}
}
/* #779: Am Handy ein fester Rahmen für den Heute-Kalender (wie .cm-ec .ec) */
@media (max-width:767px){
  .cm-empfang-kalender .cm-ec .ec{height:calc(100vh - 380px);min-height:360px}
}

/* Rückrufe: Kopfleisten-Knopf und Filter-Auswahl */
.cm-top .rueckruf-knopf{min-height:40px;padding:0 14px;font-size:14px;gap:6px}
.cm-select-inline{display:flex;gap:8px}
.cm-select-inline .cm-input{min-height:44px;width:auto}

/* Fahrzeugakte #597: Reiter, Akkordeon, Schnelltasten, Fehlendes-Bündel */
.cm-akte-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;margin-bottom:var(--space-6)}
.cm-akte-tabs::-webkit-scrollbar{display:none}
.cm-akte-tabs button{display:flex;align-items:center;gap:8px;min-height:46px;padding:0 14px;margin-bottom:-1px;border:0;border-bottom:2px solid transparent;background:none;color:var(--ink-muted);font:600 14px/1 var(--font-sans);white-space:nowrap;cursor:pointer}
.cm-akte-tabs button:hover{color:var(--ink);background:none}
.cm-akte-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--brand)}
.cm-akte-tabs .n{font:500 11px/1 var(--font-mono);color:var(--ink-muted)}
.cm-akte-panels{display:flex;flex-direction:column;gap:var(--space-2)}
.cm-akte-panel{background:transparent;border:0;border-radius:0;scroll-margin-top:80px}
.cm-akk-kopf{width:100%;align-items:center;gap:10px;min-height:60px;padding:8px 14px;border:0;background:none;color:var(--ink);text-align:left;font:inherit;cursor:pointer}
.cm-akk-kopf:hover{background:none}
.cm-akk-kopf .k{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.cm-akk-kopf .t{font-weight:700;font-size:16.5px;line-height:22px}
.cm-akk-kopf .s{font-size:13.5px;line-height:19px;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cm-akk-kopf .pfeil{flex:none;display:flex;color:var(--ink-muted);transition:transform .15s}
.cm-akk-kopf[aria-expanded="true"] .pfeil{transform:rotate(180deg)}
.cm-akk-koerper{padding:0;border-top:0}
@media (max-width:599.98px),(max-height:599.98px){
  .cm-akte-panel{border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
  .cm-akte-panel .cm-akk-koerper{padding:14px;border-top:1px solid var(--line)}
  .cm-akte-panel .cm-card{border:0;border-radius:0;padding:0;background:transparent}
  .cm-akte-panel .cm-card-head,.cm-akte-panel .cm-card-body{padding-left:0;padding-right:0}
}
.cm-schnell{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}
.cm-akte-spalte{flex-direction:column}
.cm-taste{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:72px;padding:8px 4px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink);font:700 13.5px/1 var(--font-sans);text-decoration:none;text-align:center}
.cm-taste .ic{width:24px;height:24px;color:var(--ink)}
.cm-taste.is-gesperrt{opacity:.5;cursor:default}
.cm-fehlt summary{display:flex;align-items:center;gap:10px;min-height:56px;padding:6px 6px 6px 12px;border-radius:8px;background:var(--warn-tint);border:1px solid var(--warn-line);color:var(--ink);font-size:15px;line-height:21px;list-style:none;cursor:pointer}
.cm-fehlt summary::-webkit-details-marker{display:none}
.cm-fehlt summary .pfeil{margin-left:auto;flex:none;display:flex;color:var(--warn);transition:transform .15s}
.cm-fehlt[open] summary .pfeil{transform:rotate(180deg)}
.cm-fehlt-liste{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-2)}
.cm-prozess-balken{display:flex;gap:6px}
.cm-prozess-balken>div{flex:1;min-width:0}
.cm-akk-bar{height:8px;border-radius:4px}

/* Anfrage-Detail #598: Frist und Fahrzeug oben, die Abschnitte am Handy als
   Akkordeon, am PC in zwei Spalten (Frist, Probefahrten, Antworten, Notizen
   links; Fahrzeug, Kontakt, Reservierung, Abschluss rechts). */
.cm-anfrage-grid{display:grid;gap:var(--space-3);grid-template-columns:minmax(0,1fr);align-items:start}
.cm-anfrage-grid .bereich-frist,
.cm-anfrage-grid .bereich-fahrzeug,
.cm-anfrage-grid .bereich-schnell{scroll-margin-top:80px}
@media (min-width:600px) and (min-height:600px){
  .cm-anfrage-grid{grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:var(--space-4);grid-template-areas:
    "frist fahrzeug"
    "probefahrten kontakt"
    "antwort reservierung"
    "notizen abschluss"}
  .cm-anfrage-grid .bereich-frist{grid-area:frist}
  .cm-anfrage-grid .bereich-fahrzeug{grid-area:fahrzeug}
  .cm-anfrage-grid .bereich-probefahrten{grid-area:probefahrten}
  .cm-anfrage-grid .bereich-antwort{grid-area:antwort}
  .cm-anfrage-grid .bereich-notizen{grid-area:notizen}
  .cm-anfrage-grid .bereich-kontakt{grid-area:kontakt}
  .cm-anfrage-grid .bereich-reservierung{grid-area:reservierung}
  .cm-anfrage-grid .bereich-abschluss{grid-area:abschluss}
}
/* Kurztext nur am Handy in Zeilen (Tabellen) */
.nur-handy-inline{display:none}
@media (max-width:599.98px),(max-height:599.98px){
  .nur-handy-inline{display:inline}
}
/* #647: Antwort-Vorschau und Textfeld: lange Links brechen um (keine Seitenbreite) */
#antwort-vorschau,#antwort-body{overflow-wrap:anywhere}
/* Verlauf der Anfrage: Zeit links, Text rechts */
.cm-verlauf{list-style:none;margin:var(--space-3) 0 0;padding:0;display:flex;flex-direction:column}
.cm-verlauf li{display:flex;gap:12px;align-items:baseline;padding:7px 0;border-top:1px solid var(--line);font-size:14.5px;line-height:21px}
.cm-verlauf li:first-child{border-top:0}
.cm-verlauf time{flex:none;min-width:74px;font:500 12.5px/19px var(--font-mono);color:var(--ink-muted)}
.cm-taste{cursor:pointer}
.cm-prozess-balken .titel{font:600 13.5px/18px var(--font-sans);margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-prozess-balken .titel.is-jetzt{font-weight:800}
.cm-stammdaten-kern{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
.cm-stammdaten-kern .zeile{display:flex;justify-content:space-between;gap:10px;min-height:36px;align-items:center;border-top:1px solid var(--line)}
.cm-stammdaten-kern .zeile span{font-size:13.5px;color:var(--ink-muted)}
.cm-stammdaten-kern .zeile b{font-size:14.5px;text-align:right}
.cm-alle-anzeigen{margin-top:var(--space-3)}
.cm-alle-anzeigen summary{display:inline-flex;align-items:center;min-height:44px;color:var(--info);font-weight:600;font-size:15px;cursor:pointer;list-style:none}
.cm-alle-anzeigen summary::-webkit-details-marker{display:none}
.cm-alle-anzeigen[open] summary{color:var(--ink)}
.cm-thumbs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.cm-thumbs img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;background:var(--surface-sunken)}

/* Ausstattung in der Akte (#631): Kopf mit Zähler und Marke, Suchfeld,
   „Häufigste 20“-Chips (44 px), Kategorien (Handy aufklappbar, PC drei Spalten).
   Zeilen 56 px mit 32-px-Haken; jeder Haken speichert sofort per HTMX. */
.cm-ausst-kopf{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:var(--space-3)}
.cm-ausst-kopf-links{flex:1;min-width:0}
.cm-ausst-kopf b{display:block;font-size:16.5px;line-height:22px}
.cm-ausst-marke{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border-radius:6px;font:700 13.5px/1 var(--font-sans);background:var(--ok-tint);color:var(--ok);white-space:nowrap}
.cm-ausst-marke.is-gefahr{background:var(--danger-tint);color:var(--danger)}
.cm-ausst-marke .ic{width:16px;height:16px;flex:none}
.cm-ausst-cap{margin:var(--space-3) 0 var(--space-2)}
.cm-ausst-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:var(--space-3)}
.cm-ausst-chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:22px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:700 14.5px/1.2 var(--font-sans);cursor:pointer;text-align:left}
.cm-ausst-chip .ic{width:16px;height:16px;flex:none}
.cm-ausst-chip.is-an{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.cm-ausst-kategorien{display:flex;flex-direction:column;gap:var(--space-2)}
.cm-ausst-kat{min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
.cm-ausst-kat details summary{display:flex;align-items:center;gap:10px;min-height:56px;padding:8px 14px;list-style:none;cursor:pointer}
.cm-ausst-kat summary::-webkit-details-marker{display:none}
.cm-ausst-kat summary .k{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.cm-ausst-kat summary .k b{font-size:16.5px;line-height:22px}
.cm-ausst-kat summary .k .s{font-size:13.5px;line-height:19px;color:var(--ink-muted)}
.cm-ausst-kat summary .pfeil{flex:none;display:flex;color:var(--ink-muted);transition:transform .15s}
.cm-ausst-kat details[open] summary{border-bottom:1px solid var(--line)}
.cm-ausst-kat details[open] .pfeil{transform:rotate(180deg)}
.cm-ausst-kat-kopf{display:flex;align-items:center;min-height:52px;padding:0 14px;border-bottom:1px solid var(--line)}
.cm-ausst-kat-kopf b{font-size:16.5px}
.cm-ausst-liste{padding:0 14px}
.cm-ausst-zeile{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:6px 0;border:0;border-top:1px solid var(--line);background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.cm-ausst-zeile:first-child{border-top:0}
.cm-ausst-haken{width:32px;height:32px;border:2px solid var(--line-strong);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex:none;background:var(--surface);color:var(--surface)}
.cm-ausst-haken .ic{width:20px;height:20px}
.cm-ausst-zeile.is-an .cm-ausst-haken{background:var(--ink);border-color:var(--ink)}
.cm-ausst-label{flex:1;min-width:0;font-size:15.5px;line-height:21px;overflow:hidden;text-overflow:ellipsis}
.cm-ausst-treffer{font-size:13.5px;line-height:19px;color:var(--ink-muted);margin-bottom:var(--space-2)}
@media (min-width:600px) and (min-height:600px){
  .cm-ausst-kategorien{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);align-items:start}
  .cm-ausst-kat summary{pointer-events:none}
  .cm-ausst-kat summary .pfeil{display:none}
}

/* Phase E: Fahrzeugliste und Dashboard „Heute“ (#599, dunkel #608 – nur Tokens) */

/* Liste: aktive Filter als Chips mit × (Tippfläche mindestens 44 px) */
.cm-filter-chips .cm-chip{min-height:44px}
.cm-chip.is-filter{color:var(--ink);border-color:var(--line-strong)}
.cm-chip.is-filter .ic{width:14px;height:14px;color:var(--ink-muted);flex:none}
.cm-chip.is-filter:hover{border-color:var(--brand)}
.cm-chip.is-filter:hover .ic{color:var(--danger)}

/* Liste: Chips kleben oben (unter der Kopfleiste); #1276f: sie brechen auf
   allen Breiten um statt seitlich abgeschnitten zu werden (Regel 8). */
.cm-chips-zeile{position:sticky;top:64px;z-index:15;display:flex;flex-wrap:wrap;overflow:visible;gap:8px;padding:8px 0;background:var(--ground)}
.cm-chips-zeile .cm-chip{min-height:44px}
@media (max-width:959px){.cm-chips-zeile{top:56px}}

/* Liste: Sortierzeile */
.cm-sortzeile{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cm-sort{position:relative}
.cm-sort > summary{list-style:none;cursor:pointer}
.cm-sort > summary::-webkit-details-marker{display:none}
.cm-sort .cm-chip{min-height:44px}
.cm-sort[open] .cm-sort-liste{position:absolute;top:calc(100% + 6px);right:0;z-index:25;min-width:200px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-float);display:flex;flex-direction:column}
.cm-sort-liste a{display:flex;align-items:center;min-height:44px;padding:0 12px;border-radius:var(--radius-sm);color:var(--ink);text-decoration:none;font:500 15px/1 var(--font-sans)}
.cm-sort-liste a:hover{background:var(--surface-sunken)}
.cm-sort-liste a[aria-current="true"]{color:var(--brand-text);font-weight:700}

/* Liste: fester Knopf im Filterblatt */
.cm-filterpanel .cm-sheet-fuss,.cm-kalender-anzeigen-inhalt .cm-sheet-fuss{position:sticky;bottom:0;margin:16px -16px -16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line)}
.cm-filterpanel .cm-sheet-fuss .cm-btn,.cm-kalender-anzeigen-inhalt .cm-sheet-fuss .cm-btn{width:100%;min-height:56px}

/* Liste: Tabelle mit Foto, Stand-Wort, Standzeit-Farbe und Marge */
.cm-table .cm-veh-link{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;min-width:0}
/* #1362: Telefonblatt-Link in der Fahrzeug-Zelle (Tabelle), 44 px Tippfläche */
.cm-table .cm-veh-telefon{display:inline-flex;align-items:center;min-height:44px;font:500 13.5px/1.2 var(--font-sans);color:var(--ink-muted);text-decoration:none}
.cm-table .cm-veh-telefon:hover{color:var(--ink)}
.cm-table .cm-veh-text{min-width:0}
.cm-table .cm-list-foto{width:64px;height:48px;flex:none;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-sunken);border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;color:var(--ink-muted)}
.cm-table .cm-list-foto img{width:100%;height:100%;object-fit:cover;display:block}
.cm-tile .pic .days.is-warn{background:var(--warn-tint);color:var(--warn)}

/* Dashboard: „Jetzt dran“ nach Dringlichkeit (Wort + Farbe) */
.cm-dran{list-style:none;margin:0;padding:0}
.cm-dran > li > a,.cm-dran > li > .cm-dran-zeile{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:14px;align-items:center;min-height:60px;padding:10px 16px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}
.cm-dran > li:first-child > a,.cm-dran > li:first-child > .cm-dran-zeile{border-top:0}
.cm-dran a:hover{background:var(--surface-sunken)}
.cm-dran .punkt{width:10px;height:10px;border-radius:5px;background:var(--ink-muted);flex:none}
.cm-dran .punkt.danger{background:var(--danger)}
.cm-dran .punkt.warn{background:var(--warn)}
.cm-dran .punkt.ok{background:var(--ok)}
.cm-dran .punkt.info{background:var(--info)}
.cm-dran .cm-dran-text{min-width:0}
.cm-dran .t{font-weight:600;display:block;overflow-wrap:anywhere}
.cm-dran .s{display:block;font-size:13px;line-height:19px;color:var(--ink-muted)}
.cm-dran .chev{color:var(--ink-muted)}
.cm-dran-alles-gut{display:flex;align-items:center;gap:10px;min-height:64px;padding:12px 16px;color:var(--ok);font-weight:600}
.cm-jd-gruppe{border-top:1px solid var(--line);padding:14px 16px 2px}
.cm-jd-gruppe .cm-badge{margin-bottom:10px}

/* Dashboard: Kennzahlen (links Bestand, rechts vier Zahlen) */
.cm-kennzahlen{display:grid;gap:var(--space-4);align-items:start}
@media (min-width:960px){.cm-kennzahlen{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}}
.cm-kennzahlen .cm-kpi .value{font-size:28px;line-height:32px}
/* #719: am Handy kleiner, damit „-44.247,27 €“ in die Kachel passt (kein Umbruch, kein Abschneiden) */
@media (max-width:599.98px),(max-height:599.98px){
  .cm-kennzahlen .cm-kpi .value{font-size:22px;line-height:26px}
}

/* Dashboard: Hauptknopf je Rolle */
.cm-btn.cm-hauptknopf{width:100%;min-height:56px;font-size:17px}
@media (min-width:960px){.cm-btn.cm-hauptknopf{width:auto;align-self:flex-start;padding:0 28px}}

/* Chef-Bericht #596: Karten, Kennzahlen, Akkordeon am Handy (dunkel #608 – nur Tokens) */
.cm-chef{display:flex;flex-direction:column;gap:var(--space-6)}
.cm-chef-abschnitt{display:flex;flex-direction:column;gap:var(--space-4)}
.cm-chef-h2{display:flex;align-items:baseline;gap:12px;margin:0}
.cm-chef-h2 span{font-size:14px;line-height:20px;color:var(--ink-muted);font-weight:500}
.cm-chef-h3{margin:var(--space-4) 0 0;font-size:17px;line-height:22px;font-weight:700}
.cm-chef-koerper{display:flex;flex-direction:column;gap:var(--space-4)}
#chef-heute,#chef-geld,#chef-verkauf,#chef-faellig{scroll-margin-top:64px}
.cm-chef-chips{display:none}
/* #596 (Stephan 21.10.): der Kopf ist die Zeile mit Einzeiler; am PC zeigt ihn
   x-show nur am zugeklappten Abschnitt, geöffnete Abschnitte zeigen die h2. */
.cm-chef-kopf{display:flex;align-items:center;gap:10px;min-height:64px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);text-align:left;font:inherit;cursor:pointer}
@media (max-width:599.98px),(max-height:599.98px){
  #chef-heute,#chef-geld,#chef-verkauf,#chef-team,#chef-faellig{scroll-margin-top:112px}
  [x-cloak]{display:none!important}
  /* #1276c: Chips brechen um statt seitlich wegzuscrollen (keine halb
     sichtbaren Knöpfe, Regel für alle Seiten) */
  .cm-chef-chips{display:flex;flex-wrap:wrap;overflow:visible;gap:8px;padding:2px 0;position:sticky;top:56px;z-index:15;background:var(--ground)}
}
.cm-chef-chips::-webkit-scrollbar{display:none}
.cm-chef-chips button{display:flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:22px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:700 15px/1 var(--font-sans);white-space:nowrap}
.cm-chef-chips button:hover{border-color:var(--brand)}
.cm-chef-kopf .k{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cm-chef-kopf .t{font-weight:700;font-size:17px;line-height:22px}
.cm-chef-kopf .s{font-size:13px;line-height:18px;color:var(--ink-muted)}
.cm-chef-kopf .pfeil{flex:none;display:flex;color:var(--ink-muted);transition:transform .15s}
.cm-chef-kopf[aria-expanded="true"] .pfeil{transform:rotate(180deg)}
.cm-chef-karten{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3)}
/* #1601c (Punkt 5): Jahr-Felder (EZ von/bis) am Handy mindestens 72 px breit
   für vier Ziffern; ggf. auch für andere Jahr-Felder im Suchfilter. */
@media (max-width:759.98px){
  .cm-field input[name^="ez_"],
  .cm-field input[name^="jahr"]{min-width:72px}
}
/* #985: Karten erscheinen nur mit Befund; die vorhandenen teilen sich die Breite (keine leere Fläche) */
@media (min-width:960px){.cm-chef-karten{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}}
.cm-chef-karte{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:12px;min-width:0}
.cm-chef-karte.is-danger{background:var(--danger-tint);border:1px solid var(--danger-line)}
.cm-chef-karte.is-warn{background:var(--warn-tint);border:1px solid var(--warn-line)}
.cm-chef-karte .cm-badge{align-self:flex-start}
.cm-chef-karte-titel{font:800 24px/30px var(--font-display,var(--font-sans));letter-spacing:-.01em}
.cm-chef-karte-text{margin:0;font-size:15px;line-height:21px;flex:1}
.cm-chef-karte-text b{font-weight:700}
.cm-chef-karte .cm-btn{align-self:flex-start;min-height:44px}
.cm-chef-kpis .cm-kpi .value{font-size:26px;line-height:32px}
.cm-chef-kpis .cm-kpi .meta{flex-wrap:wrap}
.cm-chef-bestand{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3)}
@media (min-width:960px){.cm-chef-bestand{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}
.cm-chef-standzeiten{display:flex;align-items:center;gap:12px;min-height:56px;border-top:1px solid var(--line)}
.cm-chef-standzeiten:first-child{border-top:0}
.cm-chef-standzeit-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cm-chef-zeile{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;border-top:1px solid var(--line)}
.cm-chef-zeile:first-child{border-top:0}
.cm-chef-zeile .t{min-width:0;font-size:14.5px;line-height:20px;overflow-wrap:anywhere}
.cm-chef-zeile b{font-size:14.5px;text-align:right;white-space:nowrap}
.cm-chef-zahl{font:700 30px/34px var(--font-sans);letter-spacing:-.01em}
.cm-chef-faellig{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3)}
@media (min-width:960px){.cm-chef-faellig{grid-template-columns:repeat(4,minmax(0,1fr))}}
.cm-chef-faellig .cm-card{display:flex;flex-direction:column;gap:6px}
.cm-chef-faellig .cm-card b{font:700 22px/26px var(--font-sans)}
.cm-chef-faellig .cm-card .cm-small{display:flex;flex-wrap:wrap;gap:2px 8px}
.cm-chef-detail{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:0 16px}
.cm-chef-detail summary{display:flex;align-items:center;gap:10px;min-height:56px;font-weight:700;font-size:15px;cursor:pointer;list-style:none}
.cm-chef-detail summary::-webkit-details-marker{display:none}
.cm-chef-detail summary .ic{color:var(--ink-muted);flex:none}
.cm-chef-detail[open] summary{border-bottom:1px solid var(--line);margin-bottom:var(--space-2)}

/* #1144 Berichte und Chef-Bericht als Dashboard: Kopfzahlen, klappbare
   Abschnitte (gemeinsamer Baustein), Standzeit als Balken, zwei Spalten am PC */
.cm-kopfzahlen{display:flex;gap:10px}
.cm-kopfzahlen .cm-kz{flex:1;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:2px}
/* #1192: Die Zahl bricht notfalls um, statt mit „…“ abgeschnitten zu werden;
   die Schrift folgt der Kachelbreite (clamp) und bleibt bei 360 px lesbar. */
.cm-kopfzahlen .cm-kz .v{font-weight:800;font-size:clamp(14px,4.5vw,21px);line-height:1.3;font-family:var(--font-display,var(--font-sans));letter-spacing:-.01em;white-space:normal;overflow-wrap:anywhere}
.cm-kopfzahlen .cm-kz .v.is-danger{color:var(--danger)}
.cm-kopfzahlen .cm-kz .v.is-warn{color:var(--warn)}
.cm-kopfzahlen .cm-kz .v.is-muted{color:var(--ink-muted)}
.cm-kopfzahlen .cm-kz .s{font-size:13px;line-height:18px;color:var(--ink-muted)}
@media (min-width:960px){
  .cm-kopfzahlen .cm-kz{padding:14px 18px}
  .cm-kopfzahlen .cm-kz .v{font-size:30px;line-height:34px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}

/* #1555 (A-1555e, Baustein 8 der Übergabe app-design-cockpit): Kennzahl-Kacheln
   (Bento). Höchstens 4 je Zeile am PC; je Kachel Beschriftung, Zahl (Archivo
   30 px), eine Zeile Erklärung, optional Verlauf aus 7–12 Säulen. Die Farbe
   der Zahl folgt der Lage (rot dringend, gelb Hinweis, grün gut, sonst Tinte).
   Am Handy 2×2 ohne Verlauf; die Zahl skaliert mit clamp (Design-Antwort 12,
   A-QMB6) und bleibt tabular-nums ohne Umbruch. */
.cm-bento{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.cm-kachel{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto;gap:2px 10px;align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;min-width:0;color:inherit;text-decoration:none}
a.cm-kachel:hover{border-color:var(--line-strong)}
.cm-kachel-kopf{grid-column:1/-1;font-size:12.5px;line-height:16px;font-weight:600;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-kachel-zahl{font:800 30px/1.1 var(--font-display,var(--font-sans));letter-spacing:-.01em;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.cm-kachel-erklaerung{grid-column:1/-1;font-style:normal;font-size:12px;line-height:16px;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* #1555 (A-1555f): rote Zahl in der Erklärungszeile („davon [n] seit über 24 h“). */
.cm-kachel-erklaerung .is-danger{color:var(--danger);font-weight:700}
.cm-kachel.is-danger .cm-kachel-zahl{color:var(--danger)}
.cm-kachel.is-warn .cm-kachel-zahl{color:var(--warn)}
.cm-kachel.is-ok .cm-kachel-zahl{color:var(--ok)}
.cm-kachel-verlauf{display:flex;align-items:flex-end;gap:3px;height:32px;align-self:end;grid-column:2;grid-row:2}
.cm-kachel-verlauf i{display:block;width:6px;border-radius:2px;background:var(--line-strong)}
.cm-kachel.is-danger .cm-kachel-verlauf i{background:var(--danger)}
.cm-kachel.is-warn .cm-kachel-verlauf i{background:var(--dataviz-gelb-dunkel)}
.cm-kachel.is-ok .cm-kachel-verlauf i{background:var(--ok)}
@media (max-width:899.98px){
  .cm-kachel-verlauf{display:none}
  .cm-kachel-zahl{font-size:clamp(16px,5.2vw,22px);line-height:1.25}
}
@media (min-width:900px){
  .cm-bento{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
}

.cm-klapp{display:flex;flex-direction:column;gap:var(--space-4)}
.cm-berichte-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);align-items:start}
/* #1276: Berichte — linke Spalte wächst, rechte Spalte fest schmal (mindestens 320 px) */
@media (min-width:960px){.cm-berichte-grid{grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);gap:var(--space-6)}}
.cm-berichte-spalte{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}
/* #1192: „Berichte und Exporte“ am Handy über die volle Spaltenbreite —
   der nur-handy-Wrapper ist ein Flex-Container, die Karte darin sonst nur
   so breit wie ihr Inhalt (QM-Befund). */
.cm-berichte-exporte{flex-direction:column}

/* Klappbarer Abschnitt: Kopf ist die ganze Tippfläche (min. 64 px), offen
   höchstens drei Zeilen plus „Alle N … zeigen“ (#1144, Baustein BD3). */
.cm-abschnitt{display:flex;flex-direction:column;padding:0;overflow:hidden}
.cm-abschnitt.is-leer{background:var(--surface-sunken)}
.cm-abschnitt-kopf{display:flex;align-items:center;gap:10px;min-height:64px;padding:10px 12px;width:100%;border:0;background:transparent;color:var(--ink);text-align:left;font:inherit;cursor:pointer}
.cm-abschnitt.is-leer .cm-abschnitt-kopf{cursor:default}
.cm-abschnitt-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none;background:var(--surface-sunken);color:var(--ink-muted)}
.cm-abschnitt-icon.is-danger{background:var(--danger-tint);color:var(--danger)}
.cm-abschnitt-icon.is-warn{background:var(--warn-tint);color:var(--warn)}
.cm-abschnitt-icon.is-info{background:var(--info-tint);color:var(--info)}
.cm-abschnitt-icon.is-ok{background:var(--ok-tint);color:var(--ok)}
.cm-abschnitt-kopf .k{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cm-abschnitt-kopf .t{font-weight:700;font-size:15.5px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-abschnitt-kopf .s{font-size:13px;line-height:18px;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-abschnitt-kopf .z{flex:none;text-align:right;display:flex;flex-direction:column;gap:2px;align-items:flex-end}
.cm-abschnitt-kopf .z b{font:800 21px/24px var(--font-display,var(--font-sans));white-space:nowrap}
.cm-abschnitt-kopf .z b.is-danger{color:var(--danger)}
.cm-abschnitt-kopf .z b.is-warn{color:var(--warn)}
.cm-abschnitt-kopf .z b.is-info{color:var(--info)}
.cm-abschnitt-kopf .z b.is-muted{color:var(--ink-muted)}
.cm-abschnitt-kopf .z .st{font-size:11.5px;line-height:14px;font-weight:700;white-space:nowrap}
.cm-abschnitt-kopf .z .st.is-danger{color:var(--danger)}
.cm-abschnitt-kopf .z .st.is-warn{color:var(--warn)}
.cm-abschnitt-kopf .z .st.is-info{color:var(--info)}
.cm-abschnitt-kopf .pfeil{flex:none;display:flex;color:var(--ink-muted);transition:transform .15s}
/* #1555 (A-1555f): native <details> — der Kopf ist das summary, der Pfeil dreht
   sich mit dem offenen Zustand des Browsers; der Aufzählungspunkt entfällt. */
.cm-abschnitt summary.cm-abschnitt-kopf{list-style:none}
.cm-abschnitt summary.cm-abschnitt-kopf::-webkit-details-marker{display:none}
details.cm-abschnitt[open] > summary.cm-abschnitt-kopf .pfeil{transform:rotate(180deg)}
.cm-abschnitt-koerper{padding:0 12px 12px;display:flex;flex-direction:column;gap:var(--space-3)}
.cm-abschnitt-zeilen{display:flex;flex-direction:column}
.cm-abschnitt-zeile{display:flex;align-items:center;gap:10px;min-height:56px;padding:6px 0;border-top:1px solid var(--line);color:inherit;text-decoration:none}
.cm-abschnitt-zeile .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cm-abschnitt-zeile .t b{font-weight:600;font-size:15px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-abschnitt-zeile .t small{font-size:13px;line-height:18px;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-abschnitt-zeile .w{flex:none;font-weight:800;font-size:14px;line-height:20px;white-space:nowrap;font-variant-numeric:tabular-nums}
.cm-abschnitt-zeile .w.is-danger{color:var(--danger)}
.cm-abschnitt-zeile .w.is-warn{color:var(--warn)}
.cm-abschnitt-zeile .chev{flex:none;display:flex;color:var(--ink-muted)}

/* Standzeit als ein Balken mit vier Zahlen (#1144, Tafel BD2) */
.cm-standzeit-zahlen{display:flex;gap:6px;margin-top:10px}
.cm-standzeit-zahl{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cm-standzeit-zahl b{font:800 18px/22px var(--font-display,var(--font-sans))}
.cm-standzeit-zahl span{font-size:12px;line-height:16px;color:var(--ink-muted)}
.cm-standzeit-zahl.is-warn b{color:var(--warn)}
.cm-standzeit-zahl.is-danger b{color:var(--danger)}
/* #601 Rechnungsliste: Summe des Überfälligen in der Überschrift */
.cm-rech-summe{font:700 28px/34px var(--font-sans);letter-spacing:-.01em;margin:2px 0 14px}
/* #601 Rechnungsliste: Hinweis unter „Stornieren“ im Mehr-Menü */
.cm-mehr-hinweis{display:block;padding:2px 12px 8px;font-size:13px;line-height:18px;color:var(--ink-muted)}

/* #602 Ankauf und Börsen (dunkel #608): Karten mit einem Knopf, vier Schritte, „Das braucht dich“ */

/* Ankauf-Liste: eine Karte je Fahrzeug, ein Hauptknopf (nächster Schritt) */
.cm-ankauf-karten{display:flex;flex-direction:column;gap:12px}
.cm-ankauf-karte{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}
.cm-ankauf-karte .kopf{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.cm-ankauf-karte .name{display:block;font-weight:700;font-size:16.5px;line-height:22px}
.cm-ankauf-karte .nr{font:500 12px/18px var(--font-mono);color:var(--ink-muted)}
.cm-ankauf-karte .wert{font:800 18px/24px var(--font-display);text-align:right;white-space:nowrap}
.cm-ankauf-karte > .cm-badge{align-self:flex-start}
.cm-ankauf-karte .meta{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px;line-height:19px}
.cm-ankauf-karte .cm-btn{width:100%;justify-content:center;min-height:56px}

/* Ankauf-Formular in vier Schritten: Anzeige, Leiste unten, große Wahlkacheln */
.cm-ankauf-formular{display:flex;flex-direction:column;gap:var(--space-4);max-width:720px;width:100%;margin:0 auto}
.cm-ankauf-schritte{list-style:none;margin:0;padding:0;display:flex;gap:6px}
.cm-ankauf-schritte li{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.cm-ankauf-schritte li i{display:block;height:6px;border-radius:3px;background:var(--surface-sunken)}
.cm-ankauf-schritte li span{font:600 12.5px/18px var(--font-sans);color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-ankauf-schritte li.is-active i{background:var(--brand)}
.cm-ankauf-schritte li.is-active span{font-weight:800;color:var(--ink)}
.cm-ankauf-schritte li.is-done i{background:var(--ok)}
.cm-ankauf-schritt{display:flex;flex-direction:column;gap:var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px}
.cm-ankauf-zwischentitel{margin:var(--space-2) 0 0;font:600 16px/22px var(--font-display)}
.cm-ankauf-leiste{position:sticky;bottom:0;z-index:20;display:flex;gap:8px;margin:0 -16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line)}
.cm-ankauf-leiste .cm-btn{flex:1;min-height:56px}
.cm-ankauf-leiste .cm-btn.main{flex:2}
@media (min-width:960px){.cm-ankauf-leiste{margin:0;border:1px solid var(--line);border-radius:var(--radius-lg)}}
@media (max-width:959px){.cm-ankauf-leiste{bottom:60px}}
@media (max-width:599.98px),(max-height:599.98px){.cm-ankauf-schritt{padding:16px}}
/* #1078: Fahrzeug aufnehmen in echten Schritten (1 Schein, 2 Prüfen, 3 Ergänzen) */
.cm-aufnahme-schritte ol{list-style:none;margin:0;padding:0;display:flex;align-items:center}
.cm-aufnahme-schritte li{display:flex;align-items:center}
.cm-aufnahme-schritte li + li::before{content:"";width:22px;height:2px;background:var(--line-strong);margin:0 6px}
.cm-aufnahme-schritte li.is-done + li::before{background:var(--ok)}
.cm-aufnahme-schritt-knopf{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 4px;border:0;border-radius:10px;background:none;color:var(--ink-muted);font:700 14px/1 var(--font-sans);cursor:pointer;white-space:nowrap}
.cm-aufnahme-schritt-knopf:hover{background:var(--surface-sunken)}
.cm-aufnahme-schritte .no{width:30px;height:30px;flex:none;border-radius:50%;border:2px solid var(--line-strong);background:var(--surface);display:grid;place-items:center;color:var(--ink-muted);font:800 14px/1 var(--font-display)}
.cm-aufnahme-schritte .no .ic{display:none;width:16px;height:16px;stroke-width:2.5}
.cm-aufnahme-schritte li.is-active{color:var(--ink)}
.cm-aufnahme-schritte li.is-active .no{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.cm-aufnahme-schritte li.is-done .no{background:var(--ok);border-color:var(--ok);color:var(--surface)}
.cm-aufnahme-schritte li.is-done .no .zahl{display:none}
.cm-aufnahme-schritte li.is-done .no .ic{display:block}
.cm-aufnahme-schritte li.is-done .cm-aufnahme-schritt-knopf{color:var(--ink);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--line-strong)}
.cm-aufnahme-schritte li.is-todo .no{border-style:dashed;color:var(--line-strong)}
.cm-aufnahme-schritte li.is-todo .cm-aufnahme-schritt-knopf{color:var(--line-strong);cursor:not-allowed}
.cm-aufnahme-schritte li.is-error .no{background:var(--danger);border-color:var(--danger);color:var(--on-danger)}
.cm-aufnahme-zaehler{font:600 13px/19px var(--font-sans);color:var(--ink-muted);margin:4px 0 0;display:none}
@media (max-width:599.98px),(max-height:599.98px){.cm-aufnahme-zaehler{display:block}}
.cm-aufnahme-schritt{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}
.cm-aufnahme-raster{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-6);align-items:start;min-width:0}
.cm-aufnahme-inhalt{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}
@media (min-width:960px){
  .cm-aufnahme-raster{grid-template-columns:minmax(300px,380px) minmax(0,760px)}
  .cm-aufnahme-inhalt{grid-column:2}
  .cm-aufnahme-leiste:not(.cm-aufnahme-leiste-schritt1){grid-column:2}
  .cm-aufnahme-scan{position:sticky;top:96px}
}
.cm-aufnahme-scan summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:56px;padding:10px 14px;cursor:pointer;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);font-weight:600;color:var(--ink)}
.cm-aufnahme-scan summary::-webkit-details-marker{display:none}
.cm-aufnahme-scan summary span{flex:1;min-width:0;display:flex;align-items:center;gap:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-aufnahme-scan summary small{font-size:13px;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-aufnahme-scan summary .ic:last-child{margin-left:auto;flex:none;transition:transform .15s}
.cm-aufnahme-scan[open] summary .ic:last-child{transform:rotate(180deg)}
@media (min-width:960px){.cm-aufnahme-scan summary{display:none}}
.cm-aufnahme-leiste{position:sticky;bottom:0;z-index:20;display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-float)}
.cm-aufnahme-leiste .status{margin-right:auto;font-size:13px;color:var(--ink-muted);display:flex;align-items:center;gap:6px}
.cm-aufnahme-leiste .cm-aufnahme-weiter,.cm-aufnahme-leiste button[type=submit]{margin-left:auto}
.cm-aufnahme-leiste-aus{display:none}
.cm-aufnahme-nach{display:flex;flex-direction:column;gap:6px}
.cm-aufnahme-nach-label{font:600 13px/19px var(--font-sans);color:var(--ink-muted)}
.cm-aufnahme-seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line-strong);border-radius:12px;overflow:hidden;background:var(--surface);min-width:280px}
.cm-aufnahme-seg button{min-height:48px;padding:0 12px;border:0;background:var(--surface);color:var(--ink-muted);font:700 14px/1 var(--font-sans);cursor:pointer;white-space:nowrap}
.cm-aufnahme-seg button.on{background:var(--ink);color:var(--ground)}
.cm-aufnahme-mehr{position:relative}
.cm-aufnahme-mehr>summary{list-style:none;cursor:pointer;display:inline-flex}
.cm-aufnahme-mehr>summary::-webkit-details-marker{display:none}
.cm-aufnahme-mehr .cm-mehr-liste{position:absolute;right:0;top:calc(100% + 4px);min-width:220px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-float);padding:6px;z-index:40}
.cm-aufnahme-mehr .cm-mehr-eintrag{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 10px;border-radius:6px;color:var(--ink);text-decoration:none;font:600 14px/1 var(--font-sans);border:0;background:none;width:100%;text-align:left;cursor:pointer}
.cm-aufnahme-mehr .cm-mehr-eintrag:hover{background:var(--surface-sunken)}
.cm-aufnahme-fold{margin:0}
.cm-aufnahme-fold>summary{list-style:none;display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 14px;cursor:pointer;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--ink)}
.cm-aufnahme-fold>summary::-webkit-details-marker{display:none}
.cm-aufnahme-fold>summary span{flex:1;min-width:0;display:flex;align-items:center;gap:10px}
.cm-aufnahme-fold>summary small{font-size:13px;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-aufnahme-fold>summary .ic:last-child{margin-left:auto;flex:none;transition:transform .15s}
.cm-aufnahme-fold[open]>summary .ic:last-child{transform:rotate(180deg)}
.cm-aufnahme-fold[open]>summary{margin-bottom:var(--space-3)}
.cm-aufnahme-schnell-pc{display:inline-flex}
.cm-aufnahme-verwerfen-pc{display:inline-flex}
@media (max-width:599.98px),(max-height:599.98px){
  .cm-aufnahme-schnell-pc{display:none}
  .cm-aufnahme-verwerfen-pc{display:none}
  .cm-aufnahme-zurueck{width:48px;height:48px;min-height:48px;padding:0}
  .cm-aufnahme-zurueck .cm-aufnahme-zurueck-wort{display:none}
  .cm-aufnahme-leiste .status{display:none}
  .cm-aufnahme-nach{flex-basis:100%;order:5}
  .cm-aufnahme-nach .cm-aufnahme-seg{min-width:0;width:100%}
  .cm-aufnahme-leiste .cm-aufnahme-weiter,.cm-aufnahme-leiste button[type=submit]{flex:1;margin-left:0}
}
/* Steuer als große Wahlkacheln (Radio mit Wort + Haken, ≥ 56 px) */
.cm-wahlkacheln{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.cm-wahl{display:flex;align-items:center;gap:14px;min-height:56px;padding:10px 14px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);cursor:pointer}
.cm-wahl input{position:absolute;opacity:0;width:1px;height:1px}
.cm-wahl .rd{width:22px;height:22px;flex:none;border-radius:50%;border:1.5px solid var(--line-strong);display:grid;place-items:center}
.cm-wahl:has(input:checked){border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.cm-wahl:has(input:checked) .rd{background:var(--ink);border-color:var(--ink)}
.cm-wahl:has(input:checked) .rd::after{content:"";width:6px;height:11px;border-right:2px solid var(--surface);border-bottom:2px solid var(--surface);transform:translateY(-1px) rotate(45deg)}
.cm-wahl:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}
.cm-wahl .txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cm-wahl .txt b{font-weight:700;font-size:16px;line-height:21px}
.cm-wahl .txt .s{font-size:13px;line-height:18px;color:var(--ink-muted)}
.cm-wahl .txt .hinweis{font-size:13px;line-height:18px;color:var(--brand-text)}
/* „Prüfen“-Zusammenfassung im letzten Schritt */
.cm-pruefen{border:1px solid var(--line);border-radius:var(--radius-md);padding:6px 14px;background:var(--surface-sunken)}
.cm-pruefen .zeile{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:40px;border-top:1px solid var(--line)}
.cm-pruefen .zeile:first-child{border-top:0}
.cm-pruefen .zeile span{font-size:14px;color:var(--ink-muted)}
.cm-pruefen .zeile b{font-size:14.5px;text-align:right}

/* Börsen: „Das braucht dich“ als Karte mit Zeilen und Pfeil */
.cm-braucht{display:flex;flex-direction:column;gap:6px;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--danger);border-radius:var(--radius-lg)}
.cm-braucht > .cm-badge{align-self:flex-start}
.cm-braucht-zeilen{display:flex;flex-direction:column}
.cm-braucht-zeile{display:flex;align-items:center;gap:10px;min-height:56px;padding:8px 2px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}
.cm-braucht-zeile:hover .txt b{text-decoration:underline}
.cm-braucht-zeile .txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.cm-braucht-zeile .txt b{font-size:15px;line-height:20px}
.cm-braucht-zeile .txt .s{font-size:13.5px;line-height:19px;color:var(--ink-muted)}
.cm-braucht-zeile > .ic{color:var(--ink-muted);flex:none}
.cm-braucht-zeile.danger > .ic{color:var(--danger)}
.cm-braucht-zeile.warn > .ic{color:var(--warn)}
.cm-braucht-details{border-top:1px solid var(--line);padding:8px 2px 2px}
.cm-braucht-details summary{display:inline-flex;align-items:center;min-height:44px;cursor:pointer;list-style:none}
.cm-braucht-details summary::-webkit-details-marker{display:none}
.cm-braucht-details ul{margin:0;padding:0 0 0 16px;font-size:14px;line-height:21px;color:var(--ink-muted)}

/* Börsen-Karten: Anfragen und Aufrufe groß, Hauptknopf über die ganze Breite */
.cm-portal-zahlen{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cm-portal-zahlen > div{display:flex;flex-direction:column;gap:2px;min-width:0}
.cm-portal-zahlen b{font:800 26px/30px var(--font-display)}
.cm-portals .cm-card-foot .cm-btn{width:100%;justify-content:center;min-height:56px;font-size:17px}

/* #605: Prüfliste „Vorher prüfen“ beim Veröffentlichen-Knopf der Inserat-Karte */
.cm-pruef-karte{margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md)}
.cm-pruefliste{list-style:none;margin:0;padding:0}
.cm-pruefliste li{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;padding:6px 0;border-top:1px solid var(--line);font-size:14.5px;line-height:21px}
.cm-pruefliste li:first-child{border-top:0}
.cm-pruefliste .zeichen{flex:none;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;margin-top:1px;background:var(--ok-tint);color:var(--ok)}
.cm-pruefliste li.fehler .zeichen{background:var(--danger-tint);color:var(--danger)}
.cm-pruefliste li.hinweis .zeichen{background:var(--warn-tint);color:var(--warn)}
.cm-pruefliste .text{flex:1;min-width:0}
.cm-pruefliste li.ok .text{color:var(--ink-muted)}
/* #788: Text und Link untereinander – der Satz läuft über die volle Kartenbreite,
   der Link steht als eigene Zeile darunter (keine Überdeckung, auch in den
   schmalen Börsenkarten). Am Handy hat der Link mindestens 44 px Höhe (#30). */
.cm-pruefliste .cm-pruef-link{flex-basis:100%;display:flex;padding-left:28px}
.cm-pruefliste .cm-pruef-link .cm-link{display:inline-flex;align-items:center;min-height:44px}

/* #605 Bestand übernehmen: Schritte wie der Ankauf (#602), Auswahl als Karten
   mit großer Haken-Fläche (32 px, Karte ≥ 64 px) und fester Leiste unten */
.cm-import-formular{display:flex;flex-direction:column;gap:var(--space-4);max-width:720px;width:100%;margin:0 auto}
.cm-import-schritt{display:flex;flex-direction:column;gap:var(--space-4)}
.cm-import-gefunden{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg)}
.cm-import-gefunden b{font:700 16px/22px var(--font-sans)}
.cm-import-gefunden .cm-btn{align-self:flex-start;min-height:56px}
.cm-import-karten{display:flex;flex-direction:column;gap:12px}
.cm-import-karte{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}
.cm-import-karte.is-gesperrt{opacity:.55}
.cm-import-haken{display:flex;align-items:center;gap:12px;min-height:64px;cursor:pointer}
.cm-import-haken input[type=checkbox]{width:32px;height:32px;flex:none;accent-color:var(--brand)}
.cm-import-haken .txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cm-import-haken .txt b{font-weight:700;font-size:16px;line-height:21px}
.cm-import-haken .txt .s{font-size:13px;line-height:18px;color:var(--ink-muted)}
.cm-import-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:13px;line-height:18px;color:var(--ink-muted)}
.cm-import-leiste{position:sticky;bottom:0;z-index:20;display:flex;gap:8px;margin:0 -16px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line)}
.cm-import-leiste .cm-btn{flex:1;min-height:56px}
@media (min-width:960px){.cm-import-leiste{margin:0;border:1px solid var(--line);border-radius:var(--radius-lg)}}
@media (max-width:959px){.cm-import-leiste{bottom:60px}}
/* Ergebnis-Seite: Zeile je Fahrzeug mit Link zur Akte und Marken der fehlenden Angaben */
.cm-import-zeilen{display:flex;flex-direction:column;gap:8px}
.cm-import-zeile{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;min-height:56px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);scroll-margin-top:120px}
.cm-import-zeile .txt{flex:1;min-width:200px;display:flex;flex-direction:column;gap:1px}
.cm-import-zeile .txt a{color:var(--ink);text-decoration:none}
.cm-import-zeile .txt a:hover b{text-decoration:underline}
.cm-import-zeile .txt b{font-size:15px;line-height:20px}
.cm-import-zeile .txt .s{font:500 12px/18px var(--font-mono);color:var(--ink-muted)}
.cm-import-zeile .fotos{font-size:13px;color:var(--ink-muted)}
/* Direkt-Angebot im „Mehr“-Menü: großer Knopf in der Zeile (56 px, #605) */
.cm-mehr-eintrag.lg{min-height:56px}
/* Fahrzeugliste: Marke „Angaben fehlen“ bleibt oben auf der Karte (#605) */
.cm-tile .body > .cm-badge{align-self:flex-start}

/* #603 Werkstatt: Spalten-Umschalter am Handy mit Tippfläche ≥ 44 px */
.cm-board-spalten .cm-chip { min-height: 44px; }

/* Einstellungen: Akkordeon (#595). Jeder Abschnitt ist ein <details>, der Kopf des
   offenen Abschnitts klebt unter der Reiterleiste (64 px Kopfzeile + 47 px Reiter). */
.cm-akk-werkzeuge{display:flex;justify-content:flex-end;margin-bottom:var(--space-2)}
.cm-akk{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);margin-bottom:var(--space-2);scroll-margin-top:128px;min-width:0}
.cm-akk:last-child{margin-bottom:0}
.cm-akk>.cm-akk-kopf{display:flex;align-items:center;gap:12px;min-height:68px;padding:10px 12px 10px 16px;list-style:none;cursor:pointer;min-width:0;white-space:normal;overflow-wrap:anywhere}
.cm-akk>.cm-akk-kopf::-webkit-details-marker{display:none}
.cm-akk>.cm-akk-kopf:hover{background:var(--surface-sunken)}
.cm-akk>.cm-akk-kopf .cm-akk-titel{flex:0 1 auto;min-width:0;font:800 17px/22px var(--font-sans);color:var(--ink);white-space:normal;overflow-wrap:anywhere}
.cm-akk>.cm-akk-kopf .cm-akk-zeile{flex:1;min-width:0;font:400 14px/20px var(--font-sans);color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-akk>.cm-akk-kopf .cm-akk-status{flex:none}
.cm-akk>.cm-akk-kopf .cm-akk-status[hidden]{display:none}
.cm-akk>.cm-akk-kopf .cm-akk-pfeil{flex:none;flex-shrink:0;color:var(--ink-muted);transition:transform .15s}
.cm-akk[open]>.cm-akk-kopf{position:sticky;top:112px;z-index:5;background:var(--surface-sunken);border-bottom:1px solid var(--line)}
.cm-akk[open]>.cm-akk-kopf .cm-akk-pfeil{transform:rotate(180deg)}
.cm-akk>.cm-akk-kopf>.cm-akk-link{display:flex;align-items:center;gap:12px;flex:1;min-width:0;min-height:48px;margin:-4px 0;color:inherit;text-decoration:none}
.cm-akk>.cm-akk-kopf>.cm-akk-link .cm-akk-titel{color:inherit}
.cm-akk .card,.cm-akk article.card{margin:0;border:0;border-radius:0;box-shadow:none}
@media (max-width:959px){
 .cm-akk{scroll-margin-top:116px}
 .cm-akk[open]>.cm-akk-kopf{top:104px}
}

/* Einstellungen: klebende Speicherleiste (#595). Erscheint erst bei Änderungen,
   sitzt am Handy über der Fußleiste und weicht bei offener Tastatur zurück. */
.cm-speicherleiste{position:sticky;bottom:0;z-index:20;display:flex;align-items:center;gap:10px;margin:var(--space-4) -16px 0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line-strong)}
.cm-speicherleiste[hidden]{display:none}
.cm-speicherleiste .cm-speicherleiste-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cm-speicherleiste .cm-speicherleiste-info b{font:700 15px/20px var(--font-sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-speicherleiste .cm-speicherleiste-info span{font-size:13px;line-height:17px;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cm-speicherleiste .cm-btn{min-height:52px}
.cm-speicherleiste.is-fehler{background:var(--danger-tint);border-top-color:var(--danger-line)}
.cm-speicherleiste.is-fehler .cm-speicherleiste-info b{color:var(--danger)}
@media (max-width:959px){
 .cm-speicherleiste{bottom:60px}
 /* offene Tastatur: Leiste nicht über dem Eingabefeld */
 form:focus-within .cm-speicherleiste{position:static;margin-top:var(--space-4)}
}
@media (min-width:960px){
 .cm-speicherleiste{margin:var(--space-4) 0 0;border:1px solid var(--line);border-radius:var(--radius-lg)}
}

/* Einstellungsunterseiten: Zahlenformulare (#604). Zahlenfeld mit Einheit rechts,
   Wirkungssatz unter dem Feld, Farbvorschau, Stufen-Karten, Basiszins-Zeilen. */
.cm-zahlen-teil{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}
.cm-zahlen-gruppe{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}
.cm-zahlen-gruppe b{font:600 15px/20px var(--font-sans);color:var(--ink)}
.cm-zahlen-raster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
.cm-zahl{display:flex;align-items:stretch;min-width:0}
.cm-zahl .cm-input{min-width:0;border-radius:var(--radius-sm) 0 0 var(--radius-sm)}
.cm-zahl .cm-einheit{flex:none;display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 12px;border:1px solid var(--line);border-left:0;border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--surface-sunken);color:var(--ink-muted);font:500 14px/1 var(--font-sans);white-space:nowrap}
.cm-wirkung{display:flex;align-items:flex-start;gap:6px;margin:0;font-size:13px;line-height:19px;color:var(--ink-muted)}
.cm-wirkung .ic{flex:none;margin-top:2px;color:var(--ink-muted)}
.cm-vorschau{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}
.cm-vorschau b{font:600 15px/20px var(--font-sans);color:var(--ink)}
.cm-vorschau-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.cm-vorschau-chip{display:inline-flex;align-items:center;gap:8px;min-height:28px;padding:0 10px;border-radius:6px;font:700 13.5px/1 var(--font-sans)}
.cm-vorschau-chip i{width:8px;height:8px;border-radius:4px;background:currentColor;display:inline-block}
.cm-vorschau-chip.ok{background:var(--ok-tint);color:var(--ok)}
.cm-vorschau-chip.warn{background:var(--warn-tint);color:var(--warn)}
.cm-vorschau-chip.danger{background:var(--danger-tint);color:var(--danger)}
.cm-abschnitt-speichern{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-3);border-top:1px solid var(--line);padding-top:var(--space-3)}
.cm-abschnitt-speichern .cm-nicht-gespeichert{font-size:13px;line-height:19px;color:var(--ink-muted)}
.cm-abschnitt-speichern .cm-gespeichert{display:inline-flex;align-items:center;gap:6px;font-size:13px;line-height:19px;color:var(--ok)}
.cm-abschnitt-speichern .cm-nicht-gespeichert[hidden],.cm-abschnitt-speichern .cm-gespeichert[hidden]{display:none}
.cm-stufen{display:flex;flex-direction:column;gap:var(--space-2)}
.cm-stufe{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}
.cm-stufe-kopf{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}
.cm-stufe-kopf b{font:700 16px/22px var(--font-sans);color:var(--ink)}
.cm-stufe-kopf .cm-stufe-zeile{font-size:13.5px;line-height:19px;color:var(--ink-muted)}
.cm-aktuell-gilt{font-size:14px;line-height:21px;color:var(--ink);margin:0}
.cm-aktuell-gilt b{font-weight:600}
.cm-basiszins-zeilen{display:flex;flex-direction:column;gap:var(--space-2)}
.cm-basiszins-zeilen[hidden]{display:none}
.cm-basiszins-zeile{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;gap:var(--space-2);align-items:start}
.cm-basiszins-zeile .cm-btn{align-self:end;margin-bottom:2px}
.cm-basiszins-zeile.is-error .cm-input{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}
.cm-basiszins-zeile.is-error .cm-einheit{border-color:var(--danger)}
.cm-fehlertext{margin:0;font-size:13px;line-height:19px;color:var(--danger)}
.cm-basiszins-zeile .cm-fehlertext{grid-column:1/-1}
.cm-basiszins-textfeld{display:flex;flex-direction:column;gap:7px}
.cm-basiszins-textfeld[hidden]{display:none}
.cm-btn[hidden]{display:none}
@media (max-width:640px){
 .cm-zahlen-raster{grid-template-columns:minmax(0,1fr)}
}
/* #611 Vorschau der Vertragsvorlagen: ganzes Dokument, orange = bearbeitbar, grau = fest */
.cm-vorschau-rahmen{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--space-4);align-items:start}
.cm-vorschau-side{display:flex;flex-direction:column;gap:var(--space-3)}
.cm-vorschau-seite{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4)}
.cm-vorschau-frame{display:block;width:172mm;max-width:none;min-height:640px;margin:0 auto;border:0;background:#fff}
.cm-vorschau-steuerarten{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.cm-vorschau-steuerart{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 14px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font:600 14px/1 var(--font-sans);text-decoration:none}
.cm-vorschau-steuerart:hover{color:var(--ink)}
.cm-vorschau-steuerart.is-aktiv{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.cm-vorschau-steuerart.gesperrt{border-style:dashed;color:var(--ink-muted);cursor:not-allowed}
.cm-vorschau-farben{display:flex;flex-direction:column;gap:var(--space-2)}
.cm-vorschau-farbe{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:20px;color:var(--ink-muted)}
.cm-vorschau-farbe i{width:14px;height:14px;flex:none;margin-top:3px;border-radius:4px;background:var(--surface-sunken);border:1px solid var(--line-strong)}
.cm-vorschau-farbe.bearbeitbar i{background:var(--brand-tint);border-color:var(--brand)}
.cm-vorschau-farbe.neu i{background:var(--ok-tint);border-color:var(--ok)}
@media (max-width:599.98px),(max-height:599.98px){
 .cm-vorschau-rahmen{grid-template-columns:minmax(0,1fr)}
}
/* Kanal-Chips „läuft gut/mäßig/schlecht“ (#782): helle Fläche, 2-px-Rand in Statusfarbe,
   Kanalzeichen + Pfeil; grau gestrichelt mit Uhr = noch kein Urteil. */
.cm-kanal-chips{display:inline-flex;gap:6px;align-items:center}
.cm-tile .pic .cm-kanal-chips{position:absolute;right:10px;bottom:10px}
.cm-kanal-chip{display:inline-flex;align-items:center;gap:3px;height:30px;padding:0 8px 0 7px;border-radius:999px;background:var(--surface);border:2px solid var(--line-strong);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.35);white-space:nowrap}
.cm-kanal-chip .k{display:inline-flex;align-items:center;font:800 12px/1 var(--font-sans);color:var(--ink)}
.cm-kanal-chip .k .ic{width:14px;height:14px}
.cm-kanal-chip .pfeil{display:inline-flex;color:var(--ink-muted)}
.cm-kanal-chip .pfeil .ic{width:16px;height:16px}
.cm-kanal-chip .pfeil.is-unten{transform:scaleY(-1)}
.cm-kanal-chip.is-gut{border-color:var(--ok)}
.cm-kanal-chip.is-gut .pfeil{color:var(--ok)}
.cm-kanal-chip.is-maessig{border-color:var(--warn)}
.cm-kanal-chip.is-maessig .pfeil{color:var(--warn)}
.cm-kanal-chip.is-schlecht{border-color:var(--danger)}
.cm-kanal-chip.is-schlecht .pfeil{color:var(--danger)}
.cm-kanal-chip.is-neu{border-style:dashed;border-color:var(--line-strong)}

/* „Läuft auf“ im Preiskasten der Akte (#782): eine zuklappbare Zeile. */
.cm-laeuft-auf{border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.cm-laeuft-auf summary{display:flex;align-items:center;gap:8px;min-height:56px;padding:0 12px;cursor:pointer;list-style:none}
.cm-laeuft-auf summary::-webkit-details-marker{display:none}
.cm-laeuft-auf summary .t{flex:1;font-weight:700;font-size:15px}
.cm-laeuft-auf summary > .pfeil{display:inline-flex;color:var(--ink-muted);transition:transform .15s}
.cm-laeuft-auf[open] summary > .pfeil{transform:rotate(180deg)}
.cm-laeuft-auf summary .cm-kanal-chip{height:34px;padding:0 9px 0 8px}
.cm-laeuft-auf-liste{border-top:1px solid var(--line)}
.cm-laeuft-auf-liste .zeile{display:flex;align-items:center;gap:10px;min-height:52px;padding:8px 12px;border-top:1px solid var(--line)}
.cm-laeuft-auf-liste .zeile:first-child{border-top:0}
.cm-laeuft-auf-liste .zeile .cm-kanal-chip{height:34px;padding:0 9px 0 8px}
.cm-laeuft-auf-liste .who{display:flex;flex-direction:column;gap:2px;min-width:0}
.cm-laeuft-auf-liste .kopf{display:flex;align-items:baseline;gap:8px;min-width:0}
.cm-laeuft-auf-liste .name{font-weight:700;font-size:15px}
.cm-laeuft-auf-liste .wort{font:700 13.5px/1.2 var(--font-sans);white-space:nowrap}
.cm-laeuft-auf-liste .wort.is-gut{color:var(--ok)}
.cm-laeuft-auf-liste .wort.is-maessig{color:var(--warn)}
.cm-laeuft-auf-liste .wort.is-schlecht{color:var(--danger)}
.cm-laeuft-auf-liste .wort.is-neu{color:var(--ink-muted)}
.cm-laeuft-auf-liste .satz{font-size:13.5px;line-height:18px;color:var(--ink-muted)}

/* Werkstatt-Arbeitsmaske (#897): links Abschnitte, rechts „Das wird gemeldet“. */
.cm-werk-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);gap:var(--space-4);align-items:start}
.cm-werk-abschnitte{display:flex;flex-direction:column;gap:var(--space-3)}
.cm-werk-abschnitt{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}
.cm-werk-abschnitt summary{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 14px;cursor:pointer;list-style:none;font-weight:700;font-size:15px}
.cm-werk-abschnitt summary::-webkit-details-marker{display:none}
.cm-werk-abschnitt summary .t{display:flex;align-items:center;gap:8px}
.cm-werk-abschnitt summary .t .ic{color:var(--ink-muted)}
.cm-werk-abschnitt summary .einz{margin-left:auto;font-weight:400;font-size:13.5px;line-height:18px;color:var(--ink-muted);text-align:right}
.cm-werk-abschnitt summary > .pfeil{display:inline-flex;color:var(--ink-muted);transition:transform .15s}
.cm-werk-abschnitt[open] summary > .pfeil{transform:rotate(180deg)}
.cm-werk-innen{border-top:1px solid var(--line);padding:14px;display:flex;flex-direction:column;gap:12px}
.cm-werk-reihe{display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.cm-werk-reihe .t{flex:1;min-width:0}
.cm-werk-reihe .zeit{font:500 13.5px/1.3 var(--font-mono);color:var(--ink-muted);white-space:nowrap}
.cm-werk-reihe.is-done .t{color:var(--ink-muted);text-decoration:line-through}
.cm-werk-haken{width:28px;height:28px;flex:none;border:2px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.cm-werk-haken.is-an{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.cm-werk-timer{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font:600 16px/1 var(--font-mono)}
.cm-werk-timer b{font-weight:700}
.cm-werk-chips{display:flex;flex-wrap:wrap;gap:8px}
.cm-werk-chip{position:relative}
.cm-werk-chip input{position:absolute;opacity:0;pointer-events:none}
.cm-werk-chip span{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--line-strong);border-radius:999px;font-weight:600;font-size:14px;line-height:1;cursor:pointer;background:var(--surface)}
.cm-werk-chip input:checked+span{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.cm-werk-chip input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}
.cm-werk-cam-zeile{display:flex;gap:10px;flex-wrap:wrap}
.cm-werk-cam,.cm-werk-galerie{display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}
.cm-werk-cam{flex:1;min-height:76px;flex-direction:column;gap:4px;border:2px dashed var(--line-strong);border-radius:var(--radius-md);background:var(--surface);font-weight:700;font-size:15px}
.cm-werk-cam.is-gross{min-height:110px}
.cm-werk-cam:active,.cm-werk-galerie:active{background:var(--surface-sunken)}
.cm-werk-galerie{min-height:48px;padding:0 14px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);font-weight:600;font-size:14px}
.cm-werk-fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}
.cm-werk-foto{position:relative;display:block;aspect-ratio:4/3;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--line)}
.cm-werk-foto img{width:100%;height:100%;object-fit:cover;display:block}
.cm-werk-foto span{position:absolute;left:6px;bottom:6px;background:var(--scrim);color:#fff;font:600 11px/1 var(--font-sans);padding:4px 8px;border-radius:6px}
.cm-werk-meldung{position:sticky;top:104px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:16px;display:flex;flex-direction:column;gap:12px}
.cm-werk-zeile{display:flex;flex-direction:column;gap:4px}
.cm-werk-balken{height:8px;border-radius:999px;background:var(--surface-sunken);overflow:hidden}
.cm-werk-balken>i{display:block;height:100%;border-radius:inherit;background:var(--ok)}
.cm-werk-balken.is-ueber>i{background:var(--danger)}
.cm-werk-katalog{display:flex;flex-direction:column;gap:6px;max-height:280px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius-md);padding:8px}
.cm-werk-katalog-eintrag{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--radius-sm)}
.cm-werk-katalog-eintrag:hover{background:var(--surface-sunken)}
.cm-werk-katalog-eintrag .t{flex:1;min-width:0;font-size:14px}
.cm-werk-maengel{font-weight:700}
.cm-werk-maengel.gm{background:var(--warn-tint);color:var(--warn)}
.cm-werk-maengel.em{background:var(--danger-tint);color:var(--danger)}
.cm-werk-maengel.vu{background:var(--danger-tint);color:var(--danger);text-transform:uppercase}
.cm-werk-eigen summary{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:600;font-size:14px;color:var(--info)}
.cm-werk-eigen .cm-form-grid{margin-top:8px}
.cm-werk-teile{display:flex;flex-direction:column;gap:4px}
/* Arbeitslisten-Vorlagen (#916): Auswahl in der Maske */
.cm-werk-vorlagen{display:flex;flex-direction:column}
.cm-werk-vorlagen summary{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;min-height:40px;cursor:pointer;list-style:none;font-weight:600;font-size:14px}
.cm-werk-vorlagen summary::-webkit-details-marker{display:none}
.cm-werk-vorlagen-liste{border-top:1px solid var(--line);margin-top:10px;padding:4px 14px}
.cm-werk-vorlagen-liste .cm-werk-reihe:last-child{border-bottom:0}
@media (max-width:959px){.cm-werk-layout{grid-template-columns:minmax(0,1fr)}.cm-werk-meldung{position:static}}

/* Einstellungs-Suche (#906): Suchfeld über der Kachelseite, Trefferliste, Ziel-Hervorhebung */
.cm-settings-suche{position:relative;max-width:640px;margin-bottom:var(--space-6)}
.cm-settings-suche-box{position:relative}
.cm-settings-suche-box .ic{position:absolute;left:12px;top:14px;color:var(--ink-muted);pointer-events:none}
.cm-settings-suche-box input{width:100%;height:44px;padding:0 14px 0 40px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font:400 15px/1.4 var(--font-sans)}
.cm-settings-suche-box input:focus-visible{border-color:var(--focus);box-shadow:0 0 0 1px var(--focus);outline:none}
.cm-settings-suche-ergebnisse{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);z-index:1000;max-height:420px;overflow-y:auto}
.cm-settings-suche-treffer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;color:var(--ink);text-decoration:none;border-top:1px solid var(--line)}
.cm-settings-suche-treffer:first-child{border-top:0}
.cm-settings-suche-treffer:hover{background:var(--surface-sunken);box-shadow:inset 3px 0 var(--brand)}
.cm-settings-suche-treffer b{font-weight:600}
.cm-settings-suche-treffer small{display:block;color:var(--ink-muted);font-size:13px}
.cm-settings-suche-leer{padding:1rem;text-align:center;color:var(--ink-muted)}
.cm-suchtreffer{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm);background:var(--info-tint);box-shadow:0 0 0 5px var(--info-tint)}

/* PLZ → Ort (#912): Vorschlag im Feld, bei mehreren Orten eine kleine Auswahl */
.cm-ort-feld{display:flex;flex-direction:column;gap:6px}
.cm-ort-vorschlag{display:flex;flex-wrap:wrap;gap:6px;max-height:150px;overflow-y:auto;padding:6px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-sunken)}

/* Verfahrensdokumentation (#913): Markdown-Vorlage als lesbares Dokument */
.verfahrensdoku{max-width:70ch;line-height:1.6;color:var(--ink)}
.verfahrensdoku h1{font-size:1.4rem;margin:0 0 1rem}
.verfahrensdoku h2{font-size:1.15rem;margin:1.6rem 0 .5rem;padding-bottom:.25rem;border-bottom:1px solid var(--line)}
.verfahrensdoku h3{font-size:1rem;margin:1.1rem 0 .4rem}
.verfahrensdoku p{margin:.5rem 0}
.verfahrensdoku ul,.verfahrensdoku ol{margin:.4rem 0 .4rem 1.4rem;padding:0}
.verfahrensdoku li{margin:.2rem 0}
.verfahrensdoku table{width:100%;border-collapse:collapse;margin:.8rem 0}
.verfahrensdoku th,.verfahrensdoku td{border:1px solid var(--line);padding:.4rem .6rem;text-align:left;vertical-align:top;font-size:.9rem}
.verfahrensdoku th{background:var(--surface-sunken)}
.verfahrensdoku blockquote{border-left:3px solid var(--line);margin:.8rem 0;padding:.2rem .9rem;color:var(--ink-muted)}
.verfahrensdoku code{font-family:var(--font-mono);font-size:.85em}

/* WhatsApp-Posteingang (#1061): Liste, Chat-Verlauf und Eingabe.
   Farben nur aus den Design-Tokens, Tippflächen mindestens 44 px. */
.cm-wa-suche{position:relative;display:flex;align-items:center}
.cm-wa-suche .ic{position:absolute;left:10px;top:10px;color:var(--ink-muted);pointer-events:none}
.cm-wa-suche input{min-height:44px;padding:0 12px 0 38px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font:400 15px/1.4 var(--font-sans)}
.cm-wa-verlauf{display:flex;flex-direction:column;gap:var(--space-2);max-height:60vh;overflow-y:auto;padding:var(--space-4)}
.cm-wa-blasen{display:flex}
.cm-wa-blasen.is-ein{justify-content:flex-start}
.cm-wa-blasen.is-aus{justify-content:flex-end}
.cm-wa-blase{max-width:min(76%,560px);padding:10px 14px;border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface-sunken);color:var(--ink);font:400 14px/1.5 var(--font-sans);overflow-wrap:anywhere}
.cm-wa-blase.is-aus{background:var(--brand-tint);border-color:var(--brand);color:var(--ink)}
.cm-wa-blase p{margin:0}
.cm-wa-blase p+p{margin-top:6px}
.cm-wa-meta{display:flex;align-items:center;gap:4px;margin-top:6px;font:400 11px/1 var(--font-mono);color:var(--ink-muted)}
.cm-wa-blase.is-aus .cm-wa-meta{justify-content:flex-end}
.cm-wa-gelesen{color:var(--ok);font:700 11px/1 var(--font-mono)}
.cm-wa-bild{display:block;max-width:100%;max-height:320px;border-radius:var(--radius-md);margin-bottom:6px}
.cm-wa-eingabe textarea{width:100%;min-height:64px;resize:vertical}

/* Verlustzähler je Fahrzeug (#1110): Summe groß, darunter die drei Teile */
.cm-verlust-summe{font:800 40px/44px var(--font-sans);letter-spacing:-.02em;color:var(--danger);font-variant-numeric:tabular-nums}
.cm-verlust-zeilen{display:flex;flex-direction:column}
.cm-verlust-zeile{display:flex;align-items:center;gap:10px;min-height:52px;border-top:1px solid var(--line)}
.cm-verlust-zeile .l{flex:1;display:flex;flex-direction:column;min-width:0}
.cm-verlust-zeile .l strong{font-weight:700;font-size:15px}
.cm-verlust-zeile .l .s{font-size:13px;line-height:19px;color:var(--ink-muted)}
.cm-verlust-zeile b{font:800 15.5px/1 var(--font-sans);white-space:nowrap}
.cm-card.is-verlust-fehlt{border:2px solid var(--warn)}
.cm-card.is-verlust-fehlt .cm-card-body{gap:8px}
.cm-card.is-verlust-fehlt strong{display:flex;align-items:center;gap:8px}

/* Spalte „Verlust bisher“ der Fahrzeugliste (#1110) */
.verlust-bisher{white-space:nowrap;font-variant-numeric:tabular-nums}
.verlust-bisher.is-rot{color:var(--danger);font-weight:700}
.verlust-bisher.is-gelb{color:var(--warn);font-weight:700}
.verlust-fehlt{color:var(--warn);font-weight:600}

/* Chef-Tagesblick „Heute zu entscheiden“ (#1110 Teil A) */
.cm-tagesblick{display:flex;flex-direction:column;gap:var(--space-4)}
.cm-tagesblick-kopf .cm-kpi .value{font-size:32px;line-height:36px}
@media (min-width:960px){.cm-tagesblick-kopf .cm-kpi .value{font-size:36px;line-height:40px}}
.cm-tagesblick-bloecke{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4)}
@media (min-width:960px){.cm-tagesblick-bloecke{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cm-tagesblick-block{display:flex;flex-direction:column;gap:14px;padding-bottom:16px}
.cm-tagesblick-titel{display:flex;flex-direction:column;gap:4px;min-width:0}
.cm-tagesblick-zahl{font:800 40px/44px var(--font-sans);letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.cm-tagesblick-zeilen{padding:0 16px;gap:0}
.cm-tagesblick-zeile{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 0;border-top:1px solid var(--line);color:inherit;text-decoration:none}
.cm-tagesblick-zeile:first-child{border-top:0}
.cm-tagesblick-zeile .t{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.cm-tagesblick-zeile .t b{font:600 15px/20px var(--font-sans);color:var(--ink);overflow-wrap:anywhere}
.cm-tagesblick-zeile .t small{font-size:13px;line-height:18px;color:var(--ink-muted);overflow-wrap:anywhere}
.cm-tagesblick-zeile .w{flex:none;font:700 15px/20px var(--font-sans);color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.cm-tagesblick-zeile .w.is-rot{color:var(--danger)}
.cm-tagesblick-zeile .w.is-gelb{color:var(--warn)}
.cm-tagesblick-leer{display:flex;align-items:center;gap:10px;min-height:56px;margin:0;color:var(--ok);font-weight:600}
.cm-tagesblick-block > .cm-btn{margin:0 16px}
@media (min-width:960px){.cm-tagesblick-block > .cm-btn{align-self:flex-end;min-width:220px}}
/* #1136: graue Nebenzeile unter der großen Zahl („N Anfragen insgesamt offen“)
   mit Textlink auf dieselbe Liste wie das Band. Grau = --ink-muted (Kontrast
   auf --surface in beiden Themen ≥ 4,5 : 1, siehe test_banner_kontrast_1132.py). */
.cm-tagesblick-nebenzeile{display:flex;align-items:center;gap:12px;padding:0 16px}
.cm-tagesblick-nebenzeile .cm-small{flex:1;min-width:0}

/* Leiste „Weg zur Übergabe“ (#1149, A-1149): Fortschrittsbalken und der bis
   zur Auszahlung gedämpfte (aber nicht gesperrte) Übergabe-Knopf. */
.cm-fortschritt{height:6px;border-radius:999px;background:var(--surface-sunken);border:1px solid var(--line);overflow:hidden}
.cm-fortschritt-fuellung{height:100%;background:var(--brand);border-radius:999px}
.cm-btn.gedaempft{opacity:.55}
.cm-btn.gedaempft:hover{opacity:.8}

/* ===== App-Hülle „aus einem Guss“ (#1206a, #1276b): ein Markup, zwei Breiten =====
   Entwurf aus design-handoff-v8/app-aus-einem-guss (vorschau/index.html):
   Kopf (Name + Glocke + Konto), Reiterzeile, Hauptknopf-Leiste, Tableiste/
   Seitenleiste. Am PC ab 900 px (hier Media-Query, weil die App selbst der
   Container ist; ein container-type-Wrapper würde die position:fixed-Elemente
   auf Hof- und Ankauf-Seiten einsperren). #1276b: am PC ist die Kopfleiste
   (Suche, ?, Glocke, Konto) eine eigene Zeile über der Titelzeile; die Leiste
   (.act) mit Seitenaktionen und Hauptknopf rückt an die Titelzeile.
   #1555 (Cockpit, Entwurf B): das Menü ist breit (224 px) oder schmal (64 px),
   die Wahl je Gerät als Cookie carmove-menue (data-menue an .cm-app,
   „auto“ = ab 1440 px breit). Im hellen Modus ist das Menü hell (--menu wie
   surface), im dunklen dunkel (--menu wie chrome). Bedienelemente am PC 36 px.
   #1555c: der Kopf ist am PC EINE Zeile — Titel, 1-px-Strich, Seitenaktionen
   (.act im Kopf), Abstand, Suche (420 px → 240 px), Hilfe, Glocke, Konto. Am
   Handy bleibt der Bestand (Titelzeile oben, .act über der Tableiste). */
.app{--p:16px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"ttl tools" "sub sub" "main main" "act act" "tab tab";grid-template-rows:auto auto minmax(0,1fr) auto auto;height:100vh;height:100dvh;background:var(--ground);color:var(--ink);overflow:hidden;font:400 15px/23px var(--font-sans);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
.app .i{flex:none}
.side{display:none}
/* #1555c: der Kopf löst sich am Handy auf (display:contents) — Titel, Leiste
   und Werkzeugzeile liegen direkt im App-Raster wie bisher. */
.top{display:contents}
.ttl{grid-area:ttl;min-width:0;padding:14px 0 8px var(--p)}
.top h1{font:800 28px/1.05 var(--font-display);letter-spacing:-.01em;margin:0;color:var(--ink);overflow-wrap:anywhere;text-wrap:balance}
/* #1601: Seitenname und Kontextzeile bleiben EINE Zeile (Übergabe: Kontext
   12,5 px einzeilig mit Ellipse) — der Kopf bricht sonst bei engen Breiten
   um (82 statt 70 px) und läuft am Handy über. */
.top h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top .cm-eyebrow,.top .ag-kontext{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:380px){.top{gap:8px}.top h1{font-size:25px}}  /* #1270: neben dem Hilfe-Knopf bricht "Einstellungen" bei 360 px sonst mitten im Wort */
@media (max-width:340px){.top h1{font-size:21px}}
.top .cm-eyebrow{display:block;margin:2px 0 0;font:500 12.5px/17px var(--font-sans);letter-spacing:0;text-transform:none;color:var(--ink-muted);min-width:0}
.top .cm-eyebrow::before{content:none}
.tools{grid-area:tools;display:flex;gap:6px;align-items:center;flex:0 1 auto;min-width:0;padding:14px var(--p) 8px 0}
.search{display:none;position:relative;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:0 12px;min-height:44px;width:240px;min-width:0;color:var(--ink-muted)}
.search input{border:0;background:none;font:400 16px/1.4 var(--font-sans);color:var(--ink);width:100%;min-width:0;min-height:44px;outline:none}
.ib{position:relative;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);color:var(--ink);cursor:pointer}
.cm-hilfe-knopf{flex:none}
.ib em{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;border-radius:10px;background:var(--danger);color:var(--on-danger);font:700 11px/20px var(--font-sans);text-align:center;font-style:normal;padding:0 5px}
.sub{grid-area:sub;display:flex;gap:4px;padding:0 var(--p);overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line);background:var(--ground)}
.sub::-webkit-scrollbar{display:none}
.sub a{flex:none;padding:10px 10px 11px;font:600 15px/1 var(--font-sans);color:var(--ink-muted);border-bottom:3px solid transparent;margin-bottom:-1px;min-height:44px;display:flex;align-items:center;gap:6px;text-decoration:none;white-space:nowrap}
.sub a.on{color:var(--ink);border-color:var(--brand)}
/* #1539 (A-QMB4, #1548): Reiterband und Reiter halten beim Herholen in Sicht
   (reiter.js, Anker-Sprung) Abstand zum Viewportrand — QM beta.293 maß den
   aktiven Reiter „Freigaben“ mit der rechten Kante 4 px über dem Viewport
   (r394). Der scroll-margin gilt deshalb auf allen Seiten, nicht nur oben:
   auch die seitliche Ausrichtung lässt nichts mehr über den Rand ragen.
   Nur scroll-margin: kein Querscroll, keine Layout-Änderung. */
.sub,.sub a{scroll-margin:8px}
.sub .cm-count{margin-left:6px}
.app main{grid-area:main;overflow-y:auto;padding:12px var(--p) 24px;display:flex;flex-direction:column;gap:18px;width:auto;max-width:none}
.act{grid-area:act;display:flex;gap:8px;padding:10px var(--p);background:var(--ground);border-top:1px solid var(--line)}
.act .b{flex:1 1 auto;min-width:0;padding:0 12px;white-space:normal;text-align:center;line-height:1.15}
.act .b:not(.main){flex:0 0 auto;white-space:nowrap}
/* #1276b: Seitenaktionen (Nebenknöpfe + „⋯“) in der Titelzeile, vor dem Hauptknopf.
   Am Handy ausgeblendet (Regel 10), am PC eine Gruppe vor dem Hauptknopf.
   #1555c: die Gruppe liegt in einem <details> (.cm-kopf-mehr) — am PC stehen
   die Knöpfe offen daneben, bei zu wenig Platz im „⋯“-Menü (kopf-eng.js). */
.act .seitenaktionen{display:none}
.seitenaktionen:not(:has(*)){display:none!important}
/* Leere Leiste entfällt: am Handy, wenn der Hauptknopf leer ist (die Seitenaktionen
   sind dort ausgeblendet); am PC nur, wenn beide Blöcke leer sind. */
@media (max-width:899.98px){.act:not(:has(> *:not(.cm-kopf-mehr))){display:none}}
@media (min-width:900px){.act:not(:has(.seitenaktionen > *)):not(:has(> *:not(.cm-kopf-mehr))){display:none}}
/* „⋯“ in der Titelzeile (#1276b): quadratischer Symbolknopf, Liste rechtsbündig */
.seitenaktionen .cm-mehr{position:relative;display:flex;flex:none}
.seitenaktionen .cm-mehr>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:48px;padding:0}
.seitenaktionen .cm-mehr>summary::-webkit-details-marker{display:none}
.b{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border-radius:12px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:700 15px/1 var(--font-sans);white-space:nowrap;text-decoration:none;cursor:pointer}
.b.main{background:var(--brand);color:var(--on-brand);border-color:transparent}
.b.main:hover{background:var(--brand-strong)}
.b.sm{min-height:40px;padding:0 12px;font-size:14px}
.tabbar{grid-area:tab;display:grid;grid-template-columns:repeat(6,1fr);background:var(--surface);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
.tabbar a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font:600 11px/1.1 var(--font-sans);color:var(--ink-muted);padding-top:6px;border-top:2px solid transparent;margin-top:-6px;min-height:52px;text-decoration:none}
.tabbar a.on{color:var(--ink);border-color:var(--brand)}
.tabbar .ic{width:22px;height:22px}
/* #1521: das Zähler-Badge bleibt in seinem Reiter (rechtsbündig) — bei vielen
   Reitern lief es vorher am Handy über die rechte Kante (QM beta.289). */
.tabbar .cm-count{position:absolute;top:4px;right:0;margin:0}
.tabbar .cm-stufenbadge{position:absolute;top:4px;left:calc(50% + 12px);margin:0}
.tabbar.big a{min-height:68px;font:700 14px/1.1 var(--font-sans);color:var(--ink)}
.tabbar.big .ic{width:28px;height:28px}
/* #1276c: Reiter- und Chip-Zeilen laufen am Rand weich aus. Die Klassen setzt
   reiter.js nur, wenn die Zeile seitlich überläuft — dann steht an der Seite,
   an der noch Reiter/Chips folgen, ein weicher 24-px-Verlauf. Das Verlaufs-
   Element ist klebrig (position:sticky) und bleibt beim Wischen am sichtbaren
   Rand stehen; es verdeckt nie die ganze Zeile (pointer-events:none). Tabellen
   mit sichtbarer Scrollleiste (.cm-table-wrap, .ag-tabelle) sind nicht betroffen. */
.ag-reiter.hat-weiter-rechts::after,.cm-tabs.hat-weiter-rechts::after,.cm-akte-tabs.hat-weiter-rechts::after,.sub.hat-weiter-rechts::after,.ag-chips.hat-weiter-rechts::after,.cm-chips-zeile.hat-weiter-rechts::after{content:"";position:sticky;right:0;flex:none;width:24px;margin-left:-24px;background:linear-gradient(to left,var(--ground),transparent);pointer-events:none}
.ag-reiter.hat-weiter-links::before,.cm-tabs.hat-weiter-links::before,.cm-akte-tabs.hat-weiter-links::before,.sub.hat-weiter-links::before,.ag-chips.hat-weiter-links::before,.cm-chips-zeile.hat-weiter-links::before{content:"";position:sticky;left:0;flex:none;width:24px;margin-right:-24px;background:linear-gradient(to right,var(--ground),transparent);pointer-events:none}
/* Hinweis-Band nur auf Heute (#1206a, Entscheidung d): der Rest bleibt unter
   „N weitere Hinweise“ (#668, #1136) — eine Zeile, aufklappbar. */
.app main .cm-hinweise{margin:0}
.cm-hinweis-weitere summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (min-width:900px){
 /* #1555c: der Kopf ist EINE Zeile — links der Seitenname mit Kontextzeile,
    danach die Seitenaktionen mit dem Hauptknopf (1-px-Strich davor), dann der
    Abstand zur Werkzeugleiste (Suche, Hilfe, Glocke, Konto). Es gibt keine
    eigene Werkzeug-Zeile mehr über der Titelzeile.
    #1555: die Menübreite kommt aus --menu-breite (224 px breit, 64 px schmal,
    gesetzt über data-menue an .cm-app), der Wechsel läuft weich (150 ms). */
 .app{--p:28px;grid-template-columns:var(--menu-breite,224px) minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"side top" "side sub" "side main";transition:grid-template-columns .15s ease}
 /* #1555: das Menü folgt dem Modus — hell wie surface, dunkel wie chrome */
 .side{grid-area:side;display:flex;flex-direction:column;gap:2px;background:var(--menu);color:var(--menu-ink);padding:18px 12px;min-height:0;overflow-y:auto;border-right:1px solid var(--menu-line)}
 .side-kopf{display:flex;align-items:center;justify-content:space-between;gap:4px}
 .cm-side-toggle{width:32px;height:32px;flex:none;display:grid;place-items:center;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--menu-ink-muted);cursor:pointer}
 .cm-side-toggle:hover{background:var(--menu-raised);color:var(--menu-ink)}
 .side .logo{display:flex;align-items:center;min-height:44px;font:800 22px/1 var(--font-display);letter-spacing:-.02em;color:inherit;text-decoration:none;padding:4px 10px}
 .side .logo img{max-height:28px;max-width:180px;display:block}
 .side .logo b{font-weight:800}
 .side .logo span{font-weight:400;display:inline-block;transform:skewX(-10deg);margin-left:.02em}
 .side .logo i{width:.28em;height:.28em;background:var(--brand);margin-left:.15em;display:inline-block;transform:skewX(-10deg)}
 .side .firma{font-size:12px;color:var(--menu-ink-muted);padding:0 10px 16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .side .cm-tenant{margin:0 10px 6px;width:auto;color:var(--menu-ink);border-color:var(--menu-line)}
 .side .cm-tenant .mark{background:var(--menu-raised)}
 .side .cm-tenant small,.side .cm-tenant .ic{color:var(--menu-ink-muted)}
 .side a.nav{position:relative;display:flex;align-items:center;gap:10px;padding:0 10px;min-height:44px;border-radius:10px;font:600 14px/1 var(--font-sans);color:var(--menu-ink-muted);text-decoration:none}
 .side a.nav:hover{color:var(--menu-ink);background:var(--menu-raised)}
 .side a.nav.is-active{background:var(--menu-raised);color:var(--menu-ink);box-shadow:inset 3px 0 0 var(--brand)}
 .side a.nav em{margin-left:auto;font-style:normal;font-size:12px;background:var(--danger);color:var(--on-danger);border-radius:10px;padding:1px 7px}
 .side .sp{flex:1}
 .side small{padding:8px 10px;color:var(--menu-ink-muted);font-size:11px}
 /* #1555: schmales Menü (64 px) — nur Symbole, der Name steht im title/aria-label,
    der Zähler (em) bleibt am Symbol, der aktive Eintrag behält den orangen Strich. */
 :is(.cm-app[data-menue="schmal"],.cm-app[data-menue="auto"]) .side-kopf{flex-direction:column;align-items:center}
 :is(.cm-app[data-menue="schmal"],.cm-app[data-menue="auto"]) .side .logo{justify-content:center;padding:4px 0}
 :is(.cm-app[data-menue="schmal"],.cm-app[data-menue="auto"]) .side .logo img{max-width:36px}
 :is(.cm-app[data-menue="schmal"],.cm-app[data-menue="auto"]) .side .logo span,
 :is(.cm-app[data-menue="schmal"],.cm-app[data-menue="auto"]) .side .logo i,
 :is(.cm-app[data-menue="schmal"],.cm-app[data-menue="auto"]) .side .firma,
 :is(.cm-app[data-menue="schmal"],.cm-app[data-menue="auto"]) .side .cm-tenant,
 :is(.cm-app[data-menue="schmal"],.cm-app[data-menue="auto"]) .side a.nav .nav-text,
 :is(.cm-app[data-menue="schmal"],.cm-app[data-menue="auto"]) .side a.nav .cm-stufenbadge,
 :is(.cm-app[data-menue="schmal"],.cm-app[data-menue="auto"]) .side small{display:none}
 :is(.cm-app[data-menue="schmal"],.cm-app[data-menue="auto"]) .side a.nav{justify-content:center;padding:0}
 :is(.cm-app[data-menue="schmal"],.cm-app[data-menue="auto"]) .side a.nav em{position:absolute;top:5px;right:4px;margin:0}
 .tabbar{display:none}
  /* #1555c: der Kopf ist eine Flex-Zeile; Titel, Seitenaktionen (1-px-Strich
     davor) und Werkzeugleiste folgen in dieser Reihenfolge, rechts endet alles
     am Innenabstand (padding der Zeile). Bei Platzmangel gibt zuerst die
     Suchzeile nach (420 px → 240 px, flex), dann ziehen die Rahmenknöpfe in
     das „Mehr“-Menü (kopf-eng.js setzt .hat-wenig-platz und den open-Zustand);
     der orangefarbene Hauptknopf bleibt immer sichtbar. */
  .top{grid-area:top;display:flex;align-items:center;gap:16px;min-width:0;padding:10px var(--p);background:var(--ground)}
  .top .ttl{flex:0 1 auto;min-width:0;padding:0}
  /* #1555: Seitenname 22 px mit Kontextzeile darunter */
  .top h1{font-size:22px;line-height:1.1}
  .top .act{flex:0 0 auto;display:flex;align-items:center;gap:8px;border:0;border-left:1px solid var(--line);padding:0 0 0 16px;background:transparent}
  .top .tools{flex:0 1 auto;display:flex;align-items:center;gap:6px;min-width:0;padding:0}
  /* #1555/#1555c: Such- und Befehlszeile 420 px breit (Kürzel „/“ rechts in der
     Zeile; Strg+K fokussiert zusätzlich). Bei Platzmangel schrumpft sie zuerst,
     bis zur Mindestbreite von 240 px. */
  .top .tools .search{flex:0 1 auto;width:420px;min-width:240px}
  .search{min-width:240px}
  .search{display:flex}
  .act .b{flex:none;white-space:nowrap}
  .act .seitenaktionen{display:flex;align-items:center;gap:8px;flex:none}
  .act .cm-kopf-mehr>summary{width:36px}
 /* #1555 (Baustein 5): Bedienelemente am PC 36 px hoch — am Handy bleiben 44 px */
 .act .b{min-height:36px;padding:0 14px;font-size:14px}
 .act .b.sm{min-height:36px}
 .seitenaktionen .cm-mehr>summary{width:36px}
 .ib{width:36px;height:36px;border-radius:10px}
 .cm-glocke{width:36px;height:36px}
 .search{min-height:36px}
 .search input{min-height:36px}
 .tools .cm-user{min-height:36px}
 /* #1276b: Knopf-Kopien, die am Handy im Inhalt bleiben, am PC in die Titelzeile ziehen */
 .nur-handy-app{display:none!important}
 /* #1276: zweite Grenze entfernt — auch am PC nutzt der Inhalt die volle Breite
    (die alte Höchstgrenze 1120px stand im Entwurf „App aus einem Guss“ #1206). */
 .app main{padding:20px var(--p) 32px}
 .sub a{padding:12px 12px 13px}
}
/* #1601c: Lupen-Knopf für schmale Bildschirme. Unter 1100 px wird die
   Suchzeile zum 44×44-Symbolknopf (cm-such-knopf); der Klick öffnet die
   Suche als fixierte Ebene (cm-such-ebene-offen). */
@media (max-width:1099.98px){
  .tools .search{display:none}
  .tools .cm-such-knopf{display:grid;width:44px;height:44px}
  .tools .search.cm-such-ebene-offen{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;gap:8px;background:var(--surface);border:0;border-radius:0;padding:calc((100dvh - 44px)/2) 16px;width:100%;min-height:100dvh;min-width:0;box-shadow:var(--shadow-float)}
  .tools .search.cm-such-ebene-offen input{font-size:18px;min-height:48px}
  .tools .search.cm-such-ebene-offen .quick-search-dropdown{position:fixed;top:auto;left:16px;right:16px;margin-top:12px;max-height:calc(100dvh - 120px)}
}
@media (min-width:1100px){
  .tools .cm-such-knopf{display:none!important}
}
   Inline-Skript; kopf-eng.js setzt nur .hat-wenig-platz und den open-Zustand).
   Am PC im weiten Kopf (offen, kein .hat-wenig-platz): der „⋯“-Knopf entfällt,
   die Rahmenknöpfe stehen als Gruppe neben dem Titel. Bei zu wenig Platz
   (.hat-wenig-platz, zu): „⋯“ öffnet dieselben Knöpfe als Menü — der
   orangefarbene Hauptknopf liegt außerhalb und bleibt immer sichtbar. Am Handy
   entfällt das Menü (die Rahmenknöpfe liegen dort im Inhalt, Regel 10). */
.act .cm-kopf-mehr{position:relative;display:flex;flex:none}
.act .cm-kopf-mehr>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:48px;padding:0}
.act .cm-kopf-mehr>summary::-webkit-details-marker{display:none}
/* ohne Rahmenknöpfe entfällt das „⋯“-Menü */
.act .cm-kopf-mehr:not(:has(.seitenaktionen > *)){display:none!important}
@media (max-width:899.98px){.act .cm-kopf-mehr{display:none!important}}
@media (min-width:900px){
  .act .cm-kopf-mehr:not(.hat-wenig-platz)[open]>summary{display:none}
  .act .cm-kopf-mehr.hat-wenig-platz>.seitenaktionen{position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:220px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md,10px);box-shadow:var(--shadow-card);padding:6px;display:flex;flex-direction:column;gap:2px}
  .act .cm-kopf-mehr.hat-wenig-platz .b,
  .act .cm-kopf-mehr.hat-wenig-platz .cm-btn{justify-content:flex-start;min-height:36px;border:0;background:none;border-radius:8px;font:500 14px/1 var(--font-sans);white-space:nowrap;text-align:left}
  .act .cm-kopf-mehr.hat-wenig-platz .b:hover,
  .act .cm-kopf-mehr.hat-wenig-platz .cm-btn:hover{background:var(--surface-sunken)}
  .act .cm-kopf-mehr.hat-wenig-platz .cm-mehr{display:block;flex:none}
  .act .cm-kopf-mehr.hat-wenig-platz .cm-mehr>summary{width:auto;justify-content:flex-start;gap:8px;padding:0 12px;font:500 14px/1 var(--font-sans)}
  .act .cm-kopf-mehr.hat-wenig-platz .cm-mehr>summary::after{content:"Mehr"}
  .act .cm-kopf-mehr.hat-wenig-platz .cm-mehr>summary:hover{background:var(--surface-sunken)}
}
/* #1555: Menübreite — breit 224 px, schmal 64 px; ohne Wahl (auto) gilt:
   ab 1440 px breit, darunter schmal (die optischen Schmal-Regeln stehen im
   900-px-Block oben, hier kommen nur die Breiten und der Auto-Rückweg). */
.cm-app[data-menue="schmal"]{--menu-breite:64px}
.cm-app[data-menue="breit"]{--menu-breite:224px}
@media (max-width:1439.98px){.cm-app[data-menue="auto"]{--menu-breite:64px}}
@media (min-width:1440px){
 .cm-app[data-menue="auto"]{--menu-breite:224px}
 .cm-app[data-menue="auto"] .side-kopf{flex-direction:row;align-items:center}
 .cm-app[data-menue="auto"] .side .logo{justify-content:flex-start;padding:4px 10px}
 .cm-app[data-menue="auto"] .side .logo img{max-width:180px}
 .cm-app[data-menue="auto"] .side .logo span{display:inline-block}
 .cm-app[data-menue="auto"] .side .logo i{display:inline-block}
 .cm-app[data-menue="auto"] .side .firma{display:block}
 .cm-app[data-menue="auto"] .side .cm-tenant{display:flex}
 .cm-app[data-menue="auto"] .side a.nav .nav-text{display:inline}
 .cm-app[data-menue="auto"] .side a.nav .cm-stufenbadge{display:inline-flex}
 .cm-app[data-menue="auto"] .side small{display:block}
 .cm-app[data-menue="auto"] .side a.nav{justify-content:flex-start;padding:0 10px}
 .cm-app[data-menue="auto"] .side a.nav em{position:static;margin-left:auto}
}
/* Hauptknopf als Formular (Akte) in der Leiste (#1206a) */
.act form{flex:1 1 auto;min-width:0;display:flex}
.act form .b{width:100%}
/* #1206a: Pagehead ohne Kopfzeile (nur Aktionen) bleibt rechtsbündig */
.cm-pagehead:not(:has(.head)){justify-content:flex-end}
/* #1555d (Design-Antwort): Konto-Name erst ab 1720 px — darunter nur die
   Kontoblase (aria-label = Name), so behält die Suchzeile ihre 420 px. */
@media (min-width:900px) and (max-width:1719.98px){.top .cm-user .hide-sm{display:none}}

/* #1259 Tippflächen am Handy (QM beta.269): Checkbox-Zeilen in Django-Formularen
   (Verwahrung, Räder, GwG-Formular) werden komplett antippbar — Label 44 px hoch
   neben dem Kästchen (24 px) statt 16-px-Label über dem 22-px-Kästchen. Textlinks
   in Hinweisen und Vertrags-Vorschauen bekommen eine 44-px-Tippfläche, ohne den
   Fließtext aufzublähen (negativer Rand hebt den Innenabstand optisch auf).
   Der Logo-Link der Anmeldeseite bekommt 44 px Tipphöhe (nur Innenabstand). */
.cm-login .cm-logo{padding:0;color:var(--ink)}
@media (max-width:899.98px){
  /* Checkbox-/Radio-Zeile mit Label als Geschwister (form.as_p, field.label_tag) */
  form p:has(> label + input[type=checkbox]),
  form p:has(> label + input[type=radio]){display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;min-height:44px}
  form p:has(> label + input[type=checkbox]) > label,
  form p:has(> label + input[type=radio]) > label{flex:1 1 auto;min-width:0;min-height:44px;margin:0;display:flex;align-items:center;font-size:15px;line-height:1.4}
  form p:has(> label + input[type=checkbox]) > .helptext,
  form p:has(> label + input[type=radio]) > .helptext{flex-basis:100%;margin:0}
  /* #1539 (A-1539a): freie Checkboxen (ohne .cm-check/.cm-switch) sind am
     Handy 44-px-Tippflächen, das sichtbare Kästchen bleibt 24 px (::before) —
     QM beta.291 maß 24x24. Muster .cm-check (#1521). */
  input[type=checkbox]:not(.cm-check input):not(.cm-switch input),
  input[type=radio]:not(.cm-radio input){width:24px;height:24px}
  input[type=checkbox]:not(.cm-check input):not(.cm-switch input){-webkit-appearance:none;appearance:none;position:relative;width:44px;height:44px;flex:none;margin:0;border:0;border-radius:0;background:transparent;cursor:pointer}
  input[type=checkbox]:not(.cm-check input):not(.cm-switch input)::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:24px;height:24px;border:1.5px solid var(--line-strong);border-radius:6px;background:var(--surface)}
  input[type=checkbox]:not(.cm-check input):not(.cm-switch input):checked::before{background:var(--ink);border-color:var(--ink)}
  input[type=checkbox]:not(.cm-check input):not(.cm-switch input):checked::after{content:"";position:absolute;top:50%;left:50%;width:7px;height:13px;border-right:2px solid var(--surface);border-bottom:2px solid var(--surface);transform:translate(-50%,-50%) translateY(-1px) rotate(45deg)}
  /* #1521: das sichtbare Kästchen der 44-px-Tippfläche bleibt am Handy 24 px */
  .cm-check input::before{width:24px;height:24px}
  /* Textlinks in Hinweis-Klapps und Vertrags-Vorschauen: 44-px-Tippfläche,
     der Fließtext bleibt unverändert */
  .cm-akk-koerper a,
  .cm-veh .txt a,
  .vorlage-text a{display:inline-block;padding-block:13px;margin-block:-13px}
  /* Logo-Link der Anmeldeseite: Tippfläche 44 px hoch, Logo bleibt 22 px */
  .cm-login .cm-logo{padding:11px 0;margin:-11px 0}
}

/* #1414 Kontrolle „Fotos prüfen“: Galerie mit Vorher/Nachher, Pfeilen und
   Wischen, je Foto „Original verwenden“, Haken am Ende. Handy zuerst:
   große Tippflächen (56 px), nur Tokens. */
.cm-pruef{display:flex;flex-direction:column;gap:var(--space-4);max-width:880px}
.cm-pruef-rahmen{position:relative;border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;background:var(--surface-sunken);touch-action:pan-y}
.cm-pruef-bild{display:block;width:100%;aspect-ratio:4/3;object-fit:contain}
.cm-pruef-pfeil{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:56px;height:56px;border:0;border-radius:50%;background:var(--surface);color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.25);cursor:pointer}
.cm-pruef-pfeil.is-links{left:8px}
.cm-pruef-pfeil.is-rechts{right:8px}
.cm-pruef-zahl{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);padding:6px 12px;border-radius:16px;background:var(--surface);color:var(--ink);font-size:14px;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.cm-pruef-umschalter{display:flex;gap:8px}
.cm-pruef-umschalter .cm-btn{flex:1;min-height:56px;font-size:16px}
.cm-pruef-umschalter .cm-btn.is-aktiv{background:var(--brand-tint);border-color:var(--brand);color:var(--brand-text)}
.cm-pruef-leiste{display:flex;gap:8px;overflow-x:auto;padding:2px;scrollbar-width:thin}
.cm-pruef-tipp{position:relative;flex:none;width:56px;height:56px;padding:2px;border:2px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer}
.cm-pruef-tipp.is-aktiv{border-color:var(--brand)}
.cm-pruef-tipp img{width:100%;height:100%;object-fit:cover;border-radius:4px}
/* #1414 Teil 5: Prüfhinweise in der Kontrolle — nur Tokens. Das Panel steht
   über dem Foto (Stufe „stark“), die Fläche ist eine reine Markierung, das
   Galerie-Symbol ist leise (ab Stufe „mittel“). */
.cm-pruef-hinweise{position:absolute;top:8px;left:8px;right:8px;display:flex;flex-direction:column;gap:6px;pointer-events:none;z-index:2}
.cm-pruef-hinweis{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border:1px solid var(--warn-line);border-radius:8px;background:var(--warn-tint);color:var(--warn)}
.cm-pruef-hinweis .icon{flex:none;margin-top:2px}
.cm-pruef-hinweis-text{display:flex;flex-direction:column;gap:2px;font-size:14px;line-height:1.4}
.cm-pruef-hinweis-text b{font-size:14px}
.cm-pruef-hinweis-text small{font-size:13px}
.cm-pruef-flaeche{position:absolute;border:2px solid var(--warn);border-radius:4px;pointer-events:none;z-index:1}
.cm-pruef-symbol{position:absolute;top:2px;right:2px;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--warn-tint);color:var(--warn)}
.cm-pruef-karte{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}
.cm-pruef-karte-bild{flex:none;width:72px;height:54px;border-radius:8px;overflow:hidden;background:var(--surface-sunken)}
.cm-pruef-karte-bild img{width:100%;height:100%;object-fit:cover}
.cm-pruef-karte-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cm-pruef-karte-text b{font-size:15px}
.cm-pruef-karte-text small{font-size:13px;color:var(--ink-muted)}
.cm-pruef-karte-form{flex:none}
.cm-pruef-karte-form .cm-btn{min-height:48px;min-width:0}
@media (max-width:599.98px),(max-height:599.98px){
  .cm-pruef-karte{flex-wrap:wrap}
  .cm-pruef-karte-form{flex-basis:100%}
  .cm-pruef-karte-form .cm-btn{width:100%;min-height:56px;justify-content:center;font-size:16px}
  .cm-pruef-haken{position:sticky;bottom:8px;display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);box-shadow:0 -2px 12px rgba(0,0,0,.12)}
}
.cm-pruef-haken{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}
.cm-pruef-haken .cm-btn{min-height:56px;font-size:17px;justify-content:center}
.cm-pruef-leer{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 0;color:var(--ink-muted);text-align:center}
.cm-pruef-leer p{margin:0}

/* Import-Modul (#1558, A-1558a): Übersicht und Kalkulation vor dem Kauf.
   Nur Tokens; keine Farb-Literale. Die Übergabe (07.11.2026, Regel 1/2)
   legt Kacheln, Chips, Tabelle, Rechner-Gruppen und den Ergebnis-Streifen
   fest. */
.ag-import-chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.ag-import-chips .cm-chip{min-height:44px}
.ag-import-fahrzeug{display:flex;align-items:center;gap:10px;min-width:0}
.ag-import-foto{width:44px;height:44px;border-radius:8px;object-fit:cover;background:var(--surface-sunken);color:var(--ink-muted);display:inline-flex;align-items:center;justify-content:center;flex:none}
.ag-import-text{display:flex;flex-direction:column;min-width:0}
.ag-import-link{display:flex;flex-direction:column;gap:2px;min-width:0;color:var(--ink);text-decoration:none;border-radius:6px;padding:2px 4px;margin:-2px -4px}
.ag-import-link:hover{background:var(--surface-sunken)}
.ag-import-link b{font-weight:600;overflow-wrap:anywhere}
.ag-import-link small{font:500 12px/18px var(--font-mono);color:var(--ink-muted)}
.ag-import-land{display:inline-flex;align-items:center;gap:5px;font-size:13px;white-space:nowrap}
.ag-import-land .ic{color:var(--ink-muted)}
.ag-import-stufe{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.ag-import-stufe small{font-size:12px;color:var(--ink-muted)}
.ag-import-mini{display:flex;gap:2px;width:72px}
.ag-import-mini i{flex:1;height:5px;border-radius:2px;background:var(--surface-sunken);box-shadow:inset 0 0 0 1px var(--line)}
.ag-import-mini i.on{background:var(--info);box-shadow:none}
.ag-import-termin{font-size:13px;white-space:nowrap}
.ag-import-termin.offen{color:var(--ink-muted)}

/* Kalkulation vor dem Kauf: links der Rechner, rechts der feste Streifen */
.ag-kalk-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.ag-kalk-col{display:flex;flex-direction:column;gap:12px;margin:0;min-width:0}
.ag-kalk-gruppe{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:14px 16px;display:flex;flex-direction:column;min-width:0}
.ag-kalk-gruppe h4{margin:0 0 6px;font:700 15px/1.3 var(--font-sans);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ag-kalk-nb{font:600 12px/16px var(--font-sans);color:var(--info)}
.ag-kalk-zeile{display:flex;align-items:center;gap:12px;min-height:46px;border-top:1px solid var(--line);padding:4px 0;flex-wrap:wrap}
.ag-kalk-gruppe h4+.ag-kalk-zeile{border-top:0}
.ag-kalk-kl{flex:1;min-width:160px;display:flex;flex-direction:column;font:600 13.5px/1.3 var(--font-sans)}
.ag-kalk-kl small{font:500 12px/1.35 var(--font-sans);color:var(--ink-muted)}
.ag-kalk-label{font-weight:600;font-size:13.5px}
.ag-kalk-in{max-width:220px;text-align:right;font:600 13px/1 var(--font-mono)}
.ag-kalk-select{max-width:220px}
.ag-kalk-einheit{font:500 12px/1 var(--font-sans);color:var(--ink-muted);white-space:nowrap}
.ag-kalk-off{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;border:1px dashed var(--line-strong);color:var(--ink-muted);font:700 11.5px/1.5 var(--font-sans);white-space:nowrap}
.ag-kalk-fundstelle{margin:0 0 2px}
.ag-kalk-fs{border:0;margin:0;padding:4px 0}
.ag-kalk-fs legend{padding:0;flex:1;min-width:160px;display:flex;flex-direction:column;font:600 13.5px/1.3 var(--font-sans)}
.ag-kalk-fs legend small{font:500 12px/1.35 var(--font-sans);color:var(--ink-muted)}
.ag-kalk-seg{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface-sunken)}
.ag-kalk-seg label{position:relative;display:inline-flex}
.ag-kalk-seg input{position:absolute;opacity:0;pointer-events:none}
.ag-kalk-seg span{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:6px;font:600 13.5px/1 var(--font-sans);color:var(--ink-muted);cursor:pointer}
.ag-kalk-seg input:checked+span{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--line)}
.ag-kalk-seg input:focus-visible+span{outline:2px solid var(--focus);outline-offset:-2px}
.ag-kalk-res{position:sticky;top:8px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.ag-kalk-res small{font-size:12px;color:var(--ink-muted)}
.ag-kalk-big2{font:800 32px/1.15 'Archivo',var(--font-sans)}
.ag-kalk-mid{font:800 20px/1.25 'Archivo',var(--font-sans)}
.ag-kalk-hr{height:1px;background:var(--line);margin:8px 0}
.ag-kalk-hb{margin:10px 0 4px;padding:10px 12px;border-radius:10px;background:var(--info-tint);display:flex;flex-direction:column;gap:2px}
.ag-kalk-hb b{font:800 26px/1.15 'Archivo',var(--font-sans);color:var(--info)}
.ag-kalk-hb span{font-size:12px;color:var(--ink-muted)}
.ag-kalk-warn{display:flex;gap:8px;font-size:12.5px;line-height:1.4;padding:8px 10px;border-radius:8px;margin-top:6px;background:var(--warn-tint);color:var(--warn);align-items:flex-start}
.ag-kalk-warn .ic{flex:none;margin-top:1px}
.ag-kalk-warn span{color:var(--ink)}
.ag-kalk-res .cm-btn{justify-content:center;margin-top:8px}
@media (max-width:900px){
  .ag-kalk-grid{grid-template-columns:minmax(0,1fr)}
  .ag-kalk-res{position:static}
  .ag-kalk-in{max-width:none;flex:1;min-width:140px}
}

/* #1558 (A-1558b, Übergabe Regel 3): Vorprüfung Schritt für Schritt mit Ampel —
   links die Fragen (erledigt grün, Auffälligkeit gelb „!“ mit Folge, aktuelle
   Frage blau mit Knöpfen und „Warum?“, offene grau), rechts der Zwischenstand. */
.ag-import-vorpruefung{display:inline-block;margin-top:3px;font:600 12px/18px var(--font-sans);color:var(--info);text-decoration:none;min-height:20px}
.ag-import-vorpruefung:hover{text-decoration:underline}
.ag-vp-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.ag-vp-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:14px 16px;display:flex;flex-direction:column;min-width:0}
.ag-vp-card h3{margin:0 0 6px;font:700 15px/1.3 var(--font-sans);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ag-vp-card h3 span{font:500 12px/16px var(--font-sans);color:var(--ink-muted)}
.ag-vp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ag-vp-frage{display:flex;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.ag-vp-frage:first-child{border-top:0}
.ag-vp-kreis{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:700 12px/1 var(--font-sans);font-style:normal;border:2px solid var(--line);flex:none;color:var(--ink-muted)}
.ag-vp-frage.done .ag-vp-kreis{background:var(--ok);border-color:var(--ok);color:#fff}
.ag-vp-frage.warn .ag-vp-kreis{background:var(--warn-tint);border-color:var(--warn);color:var(--warn)}
.ag-vp-frage.on .ag-vp-kreis{border-color:var(--info);color:var(--info)}
.ag-vp-inhalt{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}
.ag-vp-frage b{font-weight:700;font-size:13.5px;line-height:1.35}
.ag-vp-antwort{font-size:13px;line-height:1.4}
.ag-vp-folge{font-size:12px;color:var(--warn)}
.ag-vp-frage:not(.done):not(.warn):not(.on) b{color:var(--ink-muted);font-weight:600}
.ag-vp-optionen{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.ag-vp-opt{min-height:32px;display:inline-flex;align-items:center;padding:0 12px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);font:600 13px/1 var(--font-sans);color:var(--ink);cursor:pointer}
.ag-vp-opt:hover{background:var(--surface-sunken)}
.ag-vp-opt:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.ag-vp-warum{margin-top:4px}
.ag-vp-warum summary{display:inline-flex;align-items:center;gap:4px;font:700 12.5px/1.4 var(--font-sans);color:var(--ink-muted);cursor:pointer;list-style:none;min-height:24px}
.ag-vp-warum summary::-webkit-details-marker{display:none}
.ag-vp-warum p{margin:4px 0 0;font-size:12.5px;line-height:1.45;color:var(--ink-muted)}
.ag-vp-res{position:sticky;top:8px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;min-width:0}
.ag-vp-res small{font-size:12px;color:var(--ink-muted)}
.ag-vp-ampel{display:flex;gap:6px;margin:6px 0}
.ag-vp-ampel i{width:18px;height:18px;border-radius:50%;background:var(--surface-sunken)}
.ag-vp-ampel i.on.ok{background:var(--ok)}
.ag-vp-ampel i.on.warn{background:var(--warn)}
.ag-vp-ampel i.on.danger{background:var(--danger)}
.ag-vp-mid{font:800 20px/1.25 'Archivo',var(--font-sans)}
.ag-vp-folgen{margin:4px 0 0 18px;font-size:13px;line-height:1.45}
.ag-vp-res .cm-btn{justify-content:center;margin-top:8px}
@media (max-width:900px){
  .ag-vp-grid{grid-template-columns:minmax(0,1fr)}
  .ag-vp-res{position:static}
}

/* #1558 (A-1558c, Übergabe Regel 4, Bild I-4): US-Herkunft erkennen in der
   Fahrzeugakte (Grundsoftware) — gelber Kasten, vier Prüfpunkte mit Status
   und „Klären“, darunter der Sperrsatz „unfallfrei“. Nur Tokens. */
.ag-us-herkunft{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.ag-us-punkte{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:12px 16px}
.ag-us-titel{margin:0 0 4px;font:700 15px/1.3 var(--font-sans);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ag-us-titel span{font:500 12px/16px var(--font-sans);color:var(--ink-muted)}
.ag-zeile-icon.is-info{background:var(--info-tint);color:var(--info)}
.ag-us-sperr{display:flex;align-items:center;gap:6px;margin:10px 0 0;font:600 12.5px/1.5 var(--font-sans);color:var(--ink-muted)}
.ag-us-sperr .ic{color:var(--ink-muted);flex:none}

/* #1558 (A-1558d, Design-Antwort): geklärt-sauber — neutrale Zeile mit
   1-px-Rahmen --line, grünem Häkchen und „geprüft am … · …“, darunter die
   Zusammenfassung in --ink-muted, rechts „Details“ (details/summary) mit
   den vier Prüfpunkten. Nur Tokens. */
.ag-us-geklaert{position:relative;border:1px solid var(--line);border-radius:var(--radius-md);padding:10px 14px}
.ag-us-geklaert-kopf{padding-right:72px}
.ag-us-geklaert-zeile{display:inline-flex;align-items:center;gap:8px;font:700 13.5px/1.4 var(--font-sans)}
.ag-us-geklaert-zeile .ic{color:var(--ok);flex:none}
.ag-us-geklaert-text{margin:4px 0 0;color:var(--ink-muted);font:400 12.5px/1.5 var(--font-sans)}
.ag-us-details{position:absolute;top:10px;right:14px}
.ag-us-details summary{cursor:pointer;font:600 12.5px/1 var(--font-sans);color:var(--info);list-style:none}
.ag-us-details summary::-webkit-details-marker{display:none}
.ag-us-details summary:hover{text-decoration:underline;text-underline-offset:2px}
.ag-us-details[open]{position:static;margin-top:10px}
.ag-us-details[open] summary{margin-bottom:8px}

/* #1558 (A-1558c, Übergabe Regel 5, Bild I-5): Kundenauftrag als Kette mit
   6 Schritten, Kundenkarte (Go, Höchstpreis gesamt, Luft) und
   Besichtigungsbericht in der Importakte. Nur Tokens. */
.ag-ka{display:flex;flex-direction:column;gap:12px}
.ag-ka-leiste{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.ag-ka-leiste li{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:10px;background:var(--surface);border:1px solid var(--line);font:600 12px/1.35 var(--font-sans);color:var(--ink-muted);text-align:center}
.ag-ka-leiste i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font:700 12px/1 var(--font-sans);font-style:normal;border:2px solid var(--line);color:var(--ink-muted)}
.ag-ka-leiste li.done{color:var(--ink)}
.ag-ka-leiste li.done i{background:var(--ok);border-color:var(--ok);color:#fff}
.ag-ka-leiste li.on{border-color:var(--info)}
.ag-ka-leiste li.on i{border-color:var(--info);color:var(--info)}
.ag-ka-karten{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start}
.ag-ka-karte{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:12px 16px;min-width:0}
.ag-ka-karte.ag-ka-rot{background:var(--danger-tint);border-color:var(--danger-line)}
.ag-ka-karte h3{margin:0 0 6px;font:700 14px/1.3 var(--font-sans);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ag-ka-ok{color:var(--ok);font:600 12px/16px var(--font-sans)}
.ag-ka-kunde{display:flex;align-items:center;gap:12px;padding:6px 0;min-width:0}
.ag-ka-t2{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}
.ag-ka-t2 b{font:700 13.5px/1.35 var(--font-sans)}
.ag-ka-t2 small{font-size:12px;line-height:1.45;color:var(--ink-muted)}
.ag-ka-preis{display:flex;flex-direction:column;align-items:flex-end;flex:none}
.ag-ka-preis small{font-size:11.5px;color:var(--ink-muted)}
.ag-ka-preis b{font:800 20px/1.25 'Archivo',var(--font-sans)}
.ag-ka-zeile{display:flex;align-items:center;gap:12px;min-height:46px;border-top:1px solid var(--line);padding:4px 0}
.ag-ka-zeile span{flex:1;display:flex;flex-direction:column;font:600 13.5px/1.35 var(--font-sans)}
.ag-ka-zeile small{font:500 12px/1.4 var(--font-sans);color:var(--ink-muted)}
.ag-ka-zeile b{font:800 16px/1.25 'Archivo',var(--font-sans)}
.ag-ka-luft{display:flex;align-items:center;gap:6px;margin:8px 0 0;font:700 12.5px/1.45 var(--font-sans)}
.ag-ka-luft.ok{color:var(--ok)}
.ag-ka-luft.danger{color:var(--danger)}
/* A-DES2 (#1558, Design-Antwort): der Schritt „Nebenkosten“ trägt „jetzt“
   den Rahmenknopf „Nebenkosten abschließen“, erledigt die Abschluss-Zeile. */
.ag-ka-leiste form{width:100%;display:flex}
.ag-ka-leiste .cm-btn{width:100%;min-height:36px;padding:4px 8px;font-size:12px;line-height:1.3;white-space:normal}
.ag-ka-abschluss{font:500 11px/1.4 var(--font-sans);color:var(--ink-muted)}
@media (max-width:900px){
  .ag-ka-leiste{grid-template-columns:repeat(3,1fr)}
  .ag-ka-kunde{flex-wrap:wrap}
  .ag-ka-preis{align-items:flex-start}
}

/* #1455 Spotlight-Führung: Ring ums Ziel und Kasten als Dialog, nur Tokens.
   Der Kasten liegt am unteren Rand, bei unsichtbarem Ziel (z. B. die
   Kopf-Suche am Handy) mittig; der Ring folgt Scrollen und Fenstergröße. */
.cm-spot-ring{position:fixed;z-index:1590;pointer-events:none;border:2px solid var(--brand);border-radius:var(--radius-md);box-shadow:0 0 0 3px var(--brand-tint)}
.cm-spot-kasten{position:fixed;z-index:1600;right:16px;bottom:16px;left:16px;max-width:420px;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-float);color:var(--ink);font:400 15px/1.5 var(--font-sans)}
.cm-spot-kasten.is-mittig{right:auto;bottom:auto;top:50%;transform:translateY(-50%)}
.cm-spot-kopf{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.cm-spot-titel{font:700 16px/1.4 var(--font-sans);margin:0}
.cm-spot-zaehler{font:500 11px/16px var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}
.cm-spot-schritt{display:flex;flex-direction:column;gap:4px}
.cm-spot-schritt-titel{font:700 15px/1.4 var(--font-sans)}
.cm-spot-schritt-text{color:var(--ink-muted);margin:0}
.cm-spot-leiste{display:flex;align-items:center;gap:8px;margin-top:4px}
.cm-spot-leiste .cm-btn{min-height:44px}
.cm-spot-leiste .cm-btn:last-child{margin-left:auto}
/* 1455 (A-1455c): Angebot der Führung beim ersten Öffnen — schmale Leiste
   über dem Inhalt, nur Tokens; am Handy brechen die Knöpfe um. */
.cm-spot-angebot{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 16px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-sunken);color:var(--ink);font:400 14px/1.5 var(--font-sans)}
.cm-spot-angebot .ic{color:var(--ink-muted);flex:none}
.cm-spot-angebot-text{flex:1;min-width:180px}
.cm-spot-angebot .cm-btn{min-height:44px}
@media (max-width:599.98px){
  .cm-spot-kasten{max-width:none}
}
/* 1557 (A-1557a/A-1557b): Modul-Baukasten — gemeinsamer Zusatzteil-Reiter.
   Kopf mit Symbol, Name, „n von m Angaben“ und „Bearbeiten“; Gruppen als
   Karten mit Feldern (PC zweispaltig, Handy einspaltig); fehlende Werte
   gelb als „• fehlt“; ausgeblendete Pkw-Felder leise unten. Nur Tokens. */
.cm-bk-kopf{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}
.cm-bk-icon{width:36px;height:36px;flex:none;display:grid;place-items:center;border-radius:10px;background:var(--info-tint);color:var(--info)}
.cm-bk-name{flex:1;min-width:0}
.cm-bk-name b{display:block;font:600 15px/20px var(--font-display)}
.cm-bk-name small{font-size:12px;color:var(--ink-muted)}
.cm-bk-fortschritt{display:flex;flex-direction:column;gap:4px;width:120px;flex:none}
.cm-bk-fortschritt small{font-size:11.5px;color:var(--ink-muted);white-space:nowrap}
.cm-bk-balken{display:block;height:6px;border-radius:3px;background:var(--surface-sunken);overflow:hidden}
.cm-bk-balken i{display:block;height:100%;background:var(--ok)}
.cm-bk-gruppe{border:1px solid var(--line);border-radius:var(--radius-md);padding:10px 12px;background:var(--surface)}
.cm-bk-gruppe h4{display:flex;justify-content:space-between;align-items:baseline;font:600 13.5px/20px var(--font-display);margin:0 0 6px}
.cm-bk-gruppe h4 span{font:600 12px/1 var(--font-sans);color:var(--warn)}
.cm-bk-felder{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.cm-bk-feld{display:flex;flex-direction:column;gap:1px;padding:6px 0;border-top:1px solid var(--line)}
.cm-bk-feld:nth-child(-n+2){border-top:0}
.cm-bk-feld span{font-size:12px;color:var(--ink-muted)}
.cm-bk-feld b{font-weight:600;font-size:13.5px;color:var(--ink)}
.cm-bk-feld b.leer{color:var(--warn);font-weight:700}
.cm-bk-feld b.leer::before{content:"• "}
.cm-bk-hinweis{font-size:12px;color:var(--ink-muted)}
.cm-bk-ausgeblendet{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--ink-muted)}
/* 1557 (A-1557b): Werkstatt-Zeile des Reiters (Regel 7) — leise Zeile unter
   den Gruppen, der Link bleibt eine 44-px-Tippfläche am Handy. */
.cm-bk-werkstatt{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--ink-muted);padding:2px 0}
.cm-bk-werkstatt a{display:inline-block;min-height:44px;line-height:44px;font-size:12.5px}
.cm-bk-werkstatt svg{flex:none;color:var(--ink-muted)}
/* 1557 (A-1557d): Reiter „Import“ — Schrittleiste (Regel 5) und Papierliste
   mit Status (Regel 6), Nachweisregel darunter. Nur Tokens. Am PC bleibt
   die Leiste in einer Zeile. */
.cm-bk-schritte{list-style:none;display:grid;grid-template-columns:repeat(var(--n,8),minmax(0,1fr));gap:4px;margin:4px 0 8px;padding:0}
.cm-bk-schritte li{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;color:var(--ink-muted);text-align:center;position:relative}
.cm-bk-schritte li i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font:700 11px/22px var(--font-sans);font-style:normal;border:2px solid var(--line);background:var(--surface);z-index:1}
.cm-bk-schritte li:not(:last-child)::after{content:"";position:absolute;top:10px;left:calc(50% + 12px);right:calc(-50% + 12px);height:2px;background:var(--line)}
.cm-bk-schritte li.done i{background:var(--ok);border-color:var(--ok);color:var(--surface)}
.cm-bk-schritte li.done:not(:last-child)::after{background:var(--ok)}
.cm-bk-schritte li.on i{border-color:var(--info);color:var(--info)}
.cm-bk-schritte li.on span{color:var(--ink);font-weight:700}
/* 1557 (A-DES1, Design-Antwort 5): Schrittleiste am Handy (unter 900 px)
   verdichtet — die waagerechte Leiste weicht einer Zeile „Schritt n von m ·
   [Name]“ mit Mini-Balken aus so vielen Segmenten wie Schritten (erledigt
   grün, aktuell blau, offen grau) und darunter „Alle Schritte“ als
   senkrechter Liste (Haken, Datum). Am PC (≥ 900 px) bleibt die Leiste in
   einer Zeile; die Handy-Zweireihen-Regel der Übergabe entfällt damit. */
.cm-bk-schritte-kompakt,.cm-bk-alle-schritte{display:none}
@media (max-width:899.98px){
  .cm-bk-nur-gross{display:none}
  .cm-bk-schritte{display:none}
  .cm-bk-schritte-kompakt{display:flex;flex-direction:column;gap:6px;margin:4px 0 8px}
  .cm-bk-schritte-kompakt p{margin:0;font-size:12.5px;line-height:16px;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cm-bk-schritte-kompakt p b{color:var(--ink);font-weight:600}
  .cm-bk-minibalken{display:flex;gap:3px}
  .cm-bk-minibalken i{flex:1;height:6px;border-radius:3px;background:var(--line)}
  .cm-bk-minibalken i.done{background:var(--ok)}
  .cm-bk-minibalken i.on{background:var(--info)}
  /* 1555 (A-1555g, Design-Antwort 2): das grüne Häkchen vor
     „n von m erledigt“ in der verdichteten Handy-Zeile. */
  .cm-bk-kompakt-haken{color:var(--ok);flex:none;vertical-align:-2px}
  .cm-bk-alle-schritte{display:block}
  .cm-bk-alle-schritte summary{list-style:none;display:flex;align-items:center;gap:8px;min-height:44px;font-size:13.5px;font-weight:600;color:var(--ink);cursor:pointer}
  .cm-bk-alle-schritte summary::-webkit-details-marker{display:none}
  .cm-bk-alle-pfeil{margin-left:auto;color:var(--ink-muted)}
  .cm-bk-alle-liste{list-style:none;margin:2px 0 0;padding:0}
  .cm-bk-alle-liste li{display:flex;align-items:center;gap:10px;min-height:44px;border-top:1px solid var(--line)}
  .cm-bk-alle-liste li:first-child{border-top:0}
  .cm-bk-alle-haken{color:var(--ok);flex:none}
  .cm-bk-alle-nummer{width:20px;height:20px;flex:none;display:grid;place-items:center;border-radius:50%;border:2px solid var(--line);font:700 11px/1 var(--font-sans);color:var(--ink-muted);text-align:center}
  .cm-bk-alle-liste li.on .cm-bk-alle-nummer{border-color:var(--info);color:var(--info)}
  .cm-bk-alle-text{flex:1;min-width:0;display:flex;flex-direction:column}
  .cm-bk-alle-text b{font-weight:600;font-size:13.5px;color:var(--ink)}
  .cm-bk-alle-text small{font-size:12px;color:var(--ink-muted)}
}
.cm-bk-sperre{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--warn);background:var(--warn-tint);border-radius:8px;padding:6px 10px}
.cm-bk-sperre svg{flex:none}
.cm-bk-papier{display:flex;align-items:center;gap:10px;min-height:48px;border-top:1px solid var(--line)}
.cm-bk-papier:first-of-type{border-top:0}
.cm-bk-papier-zeichen{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:8px;background:var(--surface-sunken);color:var(--ink-muted)}
.cm-bk-papier-zeichen.is-ok{background:var(--ok-tint);color:var(--ok)}
.cm-bk-papier-zeichen.is-danger{background:var(--danger-tint);color:var(--danger)}
.cm-bk-papier-text{flex:1;min-width:0;display:flex;flex-direction:column}
.cm-bk-papier-text b{font-weight:600;font-size:13.5px;color:var(--ink)}
.cm-bk-papier-text small{font-size:12px;color:var(--ink-muted)}
.cm-bk-fund{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--ink-muted);padding:0 2px}
.cm-bk-fund svg{flex:none}
/* 1557 (A-1557a): Marken der Zusatzteile unter dem Akte-Titel nebeneinander */
.ag-ld-marken{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
/* 1557 (A-1557b): Chips je Fahrzeugart in der Fahrzeugliste (Regel 10). */
.cm-art-chips{display:flex;gap:6px;flex-wrap:wrap}
/* 1601: Fahrzeugart-Chips am Handy mindestens 44 px hoch (QM beta.296: 38 px). */
.cm-art-chips .cm-chip{min-height:44px}
@media (max-width:640px){
  .cm-bk-felder{grid-template-columns:minmax(0,1fr)}
  .cm-bk-feld:nth-child(2){border-top:1px solid var(--line)}
  .cm-bk-fortschritt{width:90px}
}
