:root{color-scheme:light;--cp-bg:#FFFFFF;--cp-canvas:#F1F3F4;--cp-bg-elevated:#F7F8F8;--cp-surface:#FFFFFF;--cp-surface-soft:#EAECED;--cp-border:#CFD3D5;--cp-border-strong:#6E7376;--cp-text:#1A1A1A;--cp-text-muted:#555A5D;--cp-text-soft:#666C70;--cp-accent:#FFC70A;--cp-accent-hover:#EAB600;--cp-accent-soft:#FFF3B8;--cp-accent-fg:#1A1A1A;--cp-success:#176B45;--cp-success-soft:#E6F3EB;--cp-danger:#A62B22;--cp-danger-soft:#F8E8E5;--cp-warning:#7A5700;--cp-warning-soft:#FFF1C2;--cp-info:#155C91;--cp-info-soft:#E6F0F7;--cp-link:#1A1A1A;--cp-focus:#005FCC;--cp-shadow:2px 2px 0 rgba(26,26,26,.12);--cp-shadow-dialog:0 24px 64px rgba(26,26,26,.25);--cp-overlay:rgba(16,16,14,.62);--cp-ease:cubic-bezier(.23,1,.32,1);}
html{min-height:100%;scroll-padding:5rem 0 6rem;}
*{box-sizing:border-box;}
[hidden]{display:none !important;}
body{min-width:320px;min-height:100dvh;margin:0;background:var(--cp-canvas);color:var(--cp-text);font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
button,input,textarea,select{font:inherit;}
button,a{touch-action:manipulation;}
a{color:var(--cp-link);text-underline-offset:.2em;text-decoration-thickness:.08em;}
h1,h2,h3,h4{margin-block:0 .75rem;line-height:1.14;letter-spacing:-.025em;}
h1{font-size:clamp(1.65rem,4vw,2.25rem);}
h2{font-size:clamp(1.4rem,3vw,1.8rem);}
h3{font-size:1.08rem;}
p{overflow-wrap:anywhere;}
button{min-width:44px;min-height:44px;padding:.625rem .9rem;border:1px solid var(--cp-border-strong);border-radius:.5rem;background:var(--cp-surface);color:var(--cp-text);cursor:pointer;font-weight:650;transition:background-color 120ms ease,border-color 120ms ease,color 120ms ease;}
button.primary{border-color:var(--cp-accent);background:var(--cp-accent);color:var(--cp-accent-fg);}
button:disabled{cursor:not-allowed;opacity:.5;}
:is(button,input,textarea,select,a,summary,[tabindex]):focus-visible{outline:3px solid var(--cp-focus);outline-offset:3px;}
input,textarea,select{width:100%;min-width:0;min-height:44px;padding:.65rem .75rem;border:1px solid var(--cp-border-strong);border-radius:.5rem;background:var(--cp-surface);color:var(--cp-text);}
textarea{min-height:6rem;resize:vertical;}
label{display:block;margin:1rem 0 .375rem;font-weight:650;}
fieldset{margin:1.25rem 0;padding:1rem;border:1px solid var(--cp-border);border-radius:.625rem;}
input[type="checkbox"]{width:24px;height:24px;min-height:24px;margin:0;flex:0 0 auto;accent-color:var(--cp-accent);}
.checkbox-row{display:flex;gap:.75rem;align-items:flex-start;min-height:44px;font-weight:400;}
form > button{margin:1rem .5rem .5rem 0;}
.schmal{max-width:30rem;margin:max(1.5rem,7vh) auto;padding:clamp(1.25rem,4vw,2rem);border:1px solid var(--cp-border-strong);border-radius:.75rem;background:var(--cp-surface);box-shadow:4px 4px 0 var(--cp-accent);}
.schmal h1{margin-top:0;}
.badge{display:inline-flex;align-items:center;width:fit-content;min-height:1.75rem;padding:.2rem .5rem;border-radius:.35rem;background:var(--cp-accent-soft);color:var(--cp-text);font-size:.78rem;font-weight:700;}
.badge.loeschfaellig{background:transparent;border:1px dashed var(--cp-danger);color:var(--cp-danger);font-weight:600;}
.badge.status-angefragt{background:var(--cp-warning-soft);color:var(--cp-warning);}
.badge.status-bestaetigt,.badge.status-durchgefuehrt{background:var(--cp-success-soft);color:var(--cp-success);}
.badge.status-abgelehnt,.badge.status-storniert,.badge.status-nichterschienen{background:var(--cp-danger-soft);color:var(--cp-danger);}
.app-shell{min-height:100dvh;}
.seitenleiste{display:none;}
.app-inhalt{min-width:0;}
.kopf{position:sticky;top:0;z-index:9;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem .75rem;align-items:center;padding:.75rem 1rem;border-bottom:1px solid var(--cp-border);background:rgba(255,255,255,.96);}
.mobile-marke{display:flex;align-items:center;gap:.625rem;font-weight:800;}
.marke-schild{display:inline-grid;width:2.25rem;height:2.25rem;place-items:center;border-radius:.4rem;background:var(--cp-accent);color:var(--cp-text);font-size:.82rem;font-weight:900;letter-spacing:-.04em;}
.seitentitel{display:none;}
.seitentitel p{margin:0 0 .15rem;color:var(--cp-text-muted);font-size:.78rem;font-weight:700;}
.seitentitel h1{margin:0;}
.kopf-aktionen{display:flex;gap:.5rem;}
.kopf-aktionen button{padding-inline:.75rem;}
#last-refresh{grid-column:1 / -1;margin:0;}
.arbeitsbereich{max-width:74rem;margin:0 auto;padding:1.25rem 1rem calc(6.5rem + env(safe-area-inset-bottom));}
.arbeitsbereich > section{min-width:0;}
.bereichskopf{display:flex;gap:1rem;align-items:flex-start;justify-content:space-between;}
.bereichskopf p{margin:0;}
.bereichsstatus{flex:0 0 auto;padding:.35rem .55rem;border:1px solid var(--cp-border-strong);border-radius:.4rem;background:var(--cp-text);color:var(--cp-surface);font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums;}
.mobile-nav{position:fixed;inset:auto 0 0;z-index:20;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:.35rem .35rem max(.35rem,env(safe-area-inset-bottom));border-top:1px solid var(--cp-border-strong);background:var(--cp-surface);}
.mobile-nav button{position:relative;display:flex;min-width:0;min-height:3.6rem;flex-direction:column;gap:.1rem;align-items:center;justify-content:center;padding:.35rem .2rem;border-color:transparent;background:transparent;color:var(--cp-text-muted);font-size:.7rem;}
.mobile-nav button[aria-current="page"]{border-color:var(--cp-text);background:var(--cp-text);color:var(--cp-surface);}
.mobile-nav button[aria-current="page"]::before{position:absolute;top:-1px;width:2rem;height:3px;background:var(--cp-accent);content:"";}
.mobile-nav-symbol{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;}
.nav-anzahl{display:inline-grid;min-width:1.35rem;height:1.35rem;place-items:center;padding-inline:.28rem;border-radius:99px;background:var(--cp-accent);color:var(--cp-text);font-size:.7rem;font-variant-numeric:tabular-nums;}
.mobile-nav .nav-anzahl{position:absolute;top:.2rem;right:max(.3rem,calc(50% - 1.65rem));}
.mehr-dialog{width:min(30rem,calc(100vw - 1rem));max-height:calc(100dvh - 1rem);margin:auto auto 0;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));border:1px solid var(--cp-border-strong);border-radius:.75rem .75rem 0 0;background:var(--cp-surface);box-shadow:var(--cp-shadow-dialog);color:var(--cp-text);}
.mehr-dialog::backdrop,.modal::backdrop{background:var(--cp-overlay);}
.dialog-kopf{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding-bottom:.75rem;border-bottom:1px solid var(--cp-border);}
.dialog-kopf h2{margin:0;}
.mehr-nav{display:grid;gap:.5rem;margin:1rem 0;}
.mehr-nav button{width:100%;text-align:left;}
.mehr-nav button[aria-current="page"],.desktop-nav button[aria-current="page"]{border-color:var(--cp-accent);background:var(--cp-text);color:var(--cp-surface);}
.konto{display:grid;gap:.25rem;padding-top:1rem;border-top:1px solid #46463F;color:#D8D5CC;font-size:.78rem;overflow-wrap:anywhere;}
.konto button{margin-top:.5rem;border-color:#727168;background:transparent;color:var(--cp-surface);}
.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin:1rem 0;}
.toolbar input{width:auto;}
.toolbar label{margin:0;}
.notice{padding:.75rem 1rem;border:1px solid #D7B138;border-radius:.5rem;background:var(--cp-accent-soft);}
.klein{color:var(--cp-text-muted);font-size:.875rem;}
.vorschlag-hinweis{display:block;margin-top:2px;color:var(--cp-text-muted);font-size:.75rem;}
/* "Dieses Gerät merken" beim Anmelden. Bewusst laut: wer es übersieht, tippt beim
   nächsten Mal wieder einen Code ab - genau das soll die Option ja ersparen. */
.geraet-merken{margin:1.25rem 0 .5rem;padding:1rem;border:3px solid var(--cp-accent);border-radius:.75rem;background:var(--cp-accent-soft);}
.geraet-merken__schalter{display:flex;gap:.875rem;align-items:flex-start;margin:0;cursor:pointer;font-weight:400;}
.geraet-merken__schalter input[type="checkbox"]{width:30px;height:30px;min-height:30px;margin-top:.1rem;}
.geraet-merken__text{display:block;min-width:0;}
.geraet-merken__text strong{display:block;font-size:1.15rem;line-height:1.25;}
.geraet-merken__dauer{display:block;margin-top:.35rem;}
.geraet-merken__warnung{display:block;margin-top:.35rem;color:var(--cp-warning);font-weight:650;}
/* Einmalige Bestätigung direkt nach dem Anmelden. */
.geraet-banner{margin:0 0 1rem;padding:1rem;border:3px solid var(--cp-success);border-radius:.75rem;background:var(--cp-success-soft);}
.geraet-banner__titel{margin:0;font-size:1.15rem;font-weight:800;}
.geraet-banner__text{margin:.35rem 0 .75rem;}
.geraet-banner button{margin:0;}
/* Dauerhafter Zustand in den Einstellungen unter "Sicherheit". */
.geraet-status{margin:0 0 .75rem;font-weight:650;}

.card{margin:1rem 0;padding:1rem;border:1px solid var(--cp-border);border-radius:.625rem;background:var(--cp-surface);box-shadow:var(--cp-shadow);}
.filters{display:flex;gap:.75rem;align-items:end;flex-wrap:wrap;}
.filters > div{flex:1 1 12rem;}
.filters button{margin:0;}
.zeile{display:flex;gap:1rem;}
.zeile > div{min-width:0;flex:1;}
.liste{margin:0;padding:0;list-style:none;}
.listenkopf{display:flex;gap:.5rem 1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;}
.listenkopf p{margin:0;}
.sortierung{display:flex;gap:.5rem;align-items:center;color:var(--cp-text-muted);font-size:.875rem;font-weight:650;}
.sortierung .pfeil{padding:0;font-size:1.15rem;line-height:1;}
.fahrt-kopf{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;align-items:start;margin-bottom:1rem;}
.fahrt-zeit{min-width:4.5rem;padding:.5rem;border-radius:.4rem;background:var(--cp-text);color:var(--cp-surface);font-weight:800;font-variant-numeric:tabular-nums;text-align:center;}
.fahrt-zeit small{display:block;color:#D8D5CC;font-size:.7rem;font-weight:600;}
.fahrt-person h3{margin:.15rem 0 .2rem;}
.fahrt-person p{margin:0;}
.fahrt-route{position:relative;display:grid;grid-template-columns:1.2rem minmax(0,1fr);gap:.1rem .6rem;margin:0 0 1rem;}
.fahrt-route::before{position:absolute;top:.7rem;bottom:.7rem;left:.34rem;width:1px;background:var(--cp-border-strong);content:"";}
.fahrt-route dt{position:relative;z-index:1;grid-column:1;width:.7rem;height:.7rem;margin-top:.38rem;border:2px solid var(--cp-text);border-radius:50%;background:var(--cp-surface);color:transparent;font-size:0;}
.fahrt-route dt:last-of-type{background:var(--cp-text);}
.fahrt-route dd{grid-column:2;margin:0 0 .65rem;overflow-wrap:anywhere;}
.fahrt-route dd::before{display:block;margin-bottom:.1rem;color:var(--cp-text-muted);content:attr(data-label);font-size:.72rem;font-weight:700;}
.booking-card > button{width:100%;}
.anfragen-aktionen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:.5rem;align-items:center;margin-top:1rem;}
.anfragen-aktionen > a,.anfragen-aktionen > button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:.625rem .75rem;border:1px solid var(--cp-border-strong);border-radius:.5rem;background:var(--cp-surface);color:var(--cp-text);font-weight:650;text-align:center;text-decoration:none;}
.status-btn{border-width:1px;}
.status-btn-bestaetigt,.status-btn-durchgefuehrt{border-color:var(--cp-success);color:var(--cp-success);}
.status-btn-abgelehnt,.status-btn-storniert,.status-btn-nichterschienen{border-color:var(--cp-danger);color:var(--cp-danger);}
.festpreis-box{margin:1rem 0;}
.festpreis-highlight{padding:.75rem;border:1px solid var(--cp-warning);border-radius:.5rem;background:var(--cp-warning-soft);}
.overflow-menu{position:relative;}
.overflow-menu > button{min-width:4.5rem;}
.overflow-menu-liste{position:absolute;z-index:30;top:calc(100% + .35rem);right:0;display:flex;width:min(18rem,calc(100vw - 2rem));flex-direction:column;gap:.25rem;padding:.5rem;border:1px solid var(--cp-border-strong);border-radius:.5rem;background:var(--cp-surface);box-shadow:var(--cp-shadow-dialog);}
.overflow-menu-liste button{width:100%;min-height:44px;border-color:transparent;text-align:left;}
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.75rem;}
.metric{display:flex;min-height:7rem;flex-direction:column;gap:.75rem;justify-content:space-between;padding:1rem;border:1px solid var(--cp-border);border-radius:.5rem;background:var(--cp-surface);}
.metric span{color:var(--cp-text-muted);font-size:.8rem;font-weight:700;}
.metric strong{font-size:1.55rem;font-variant-numeric:tabular-nums;letter-spacing:-.035em;}
.metric:nth-last-child(-n+2){border-color:var(--cp-text);background:var(--cp-text);color:var(--cp-surface);}
.metric:nth-last-child(-n+2) span{color:#D8D5CC;}
.metric:nth-last-child(-n+2) strong{color:var(--cp-accent);}
.sms-kontostand{display:flex;max-width:24rem;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0;padding:.8rem 1rem;border:1px solid var(--cp-accent-strong);border-radius:.5rem;background:var(--cp-accent-soft);}
.sms-kontostand span{font-size:.8rem;font-weight:700;}
.sms-kontostand strong{font-size:1.15rem;font-variant-numeric:tabular-nums;}
.charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;}
.charts svg{display:block;width:100%;height:auto;}
.chart-bar{fill:var(--cp-text);}
.chart-label{fill:var(--cp-text);font-size:13px;}
.calendar-scroll{max-height:42rem;overflow:auto;border:1px solid var(--cp-border);border-radius:.625rem;background:var(--cp-surface);}
.calendar-columns{display:flex;}
.calendar-column{min-width:20rem;flex:1;border-right:1px solid var(--cp-border);}
.calendar-column h4{position:sticky;top:0;z-index:3;margin:0;padding:.75rem;border-bottom:3px solid var(--cp-accent);background:var(--cp-text);color:var(--cp-surface);}
.time-track{position:relative;width:100%;}
.time-tick{position:absolute;width:100%;padding:.125rem 0 0 .25rem;border-top:1px solid var(--cp-border);color:var(--cp-text-muted);font-size:.75rem;}
.time-block{position:absolute;z-index:1;display:flex;min-height:0;flex-direction:column;align-items:flex-start;justify-content:flex-start;padding:.25rem;overflow:hidden;border:1px solid var(--cp-border-strong);border-radius:.25rem;background:var(--cp-accent-soft);font-size:.75rem;text-align:left;}
.time-block.conflict{border:2px solid var(--cp-danger);}
.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;}
.month-grid button{min-height:4rem;padding:.25rem;font-size:.875rem;}
.blocked-row{margin-bottom:.75rem;padding:.75rem;border:1px solid var(--cp-border);border-radius:.5rem;}
.blocked-row button{margin-top:.75rem;}
.modal{width:min(44rem,calc(100vw - 1rem));max-height:calc(100dvh - 1rem);padding:0;overflow:hidden;border:1px solid var(--cp-border-strong);border-radius:.75rem;background:var(--cp-surface);box-shadow:var(--cp-shadow-dialog);color:var(--cp-text);}
.modal .dialog-kopf{position:sticky;top:0;z-index:2;padding:1rem;background:var(--cp-surface);}
.dialog-inhalt{max-height:calc(100dvh - 6rem);padding:1rem;overflow:auto;}
.modal p,.private-entry{white-space:pre-wrap;}
.private-entry{padding-bottom:.75rem;border-bottom:1px solid var(--cp-border);}
.karte-umsatz{border-color:var(--cp-success);}
.karte-umsatz h3{color:var(--cp-success);}
.ausnahme-tag{padding:.75rem 1rem;}
.ausnahme-tag legend{padding:0 .4rem;font-weight:700;}
.ausnahme-status{margin:.5rem 0 0;}
.print-only{display:none;}

@media (hover: hover) and (pointer: fine){button:hover,.anfragen-aktionen > a:hover{background:var(--cp-surface-soft);}
button.primary:hover{background:var(--cp-accent-hover);}
.desktop-nav button:hover,.mobile-nav button:hover{border-color:var(--cp-border-strong);}
.status-btn-bestaetigt:hover,.status-btn-durchgefuehrt:hover{background:var(--cp-success-soft);}
.status-btn-abgelehnt:hover,.status-btn-storniert:hover,.status-btn-nichterschienen:hover{background:var(--cp-danger-soft);}
}

@media (max-width: 650px) {.calendar-columns{flex-direction:column;}
.calendar-column{min-width:0;border-right:0;border-bottom:1px solid var(--cp-border);}
.schmal{margin:1rem;}
.kopf-aktionen button:first-child{display:none;}
.charts{grid-template-columns:1fr;}
.toolbar > button{flex:1 1 9rem;}
.zeile{flex-direction:column;gap:0;}
.anfragen-aktionen{grid-template-columns:repeat(3,minmax(0,1fr));}
.anfragen-aktionen > .status-btn-bestaetigt{grid-column:1 / -1;}
.overflow-menu{grid-column:auto;}
.fahrt-kopf{grid-template-columns:auto minmax(0,1fr);}
.fahrt-kopf > .badge{grid-column:1 / -1;}
}

@media (min-width: 720px) {html{scroll-padding:6rem 1rem 2rem;}
.app-shell{display:grid;grid-template-columns:15rem minmax(0,1fr);}
.seitenleiste{position:sticky;top:0;display:flex;height:100dvh;flex-direction:column;padding:1rem;background:#1C1C19;color:var(--cp-surface);}
.marke{display:flex;gap:.75rem;align-items:center;padding:.25rem 0 1.25rem;border-bottom:1px solid #46463F;}
.marke strong,.marke small{display:block;}
.marke small{color:#B7B4AA;font-size:.75rem;}
.desktop-nav{display:grid;gap:.25rem;margin-top:1rem;}
.desktop-nav button{display:flex;width:100%;align-items:center;justify-content:space-between;border-color:transparent;background:transparent;color:#EDEBE4;text-align:left;}
.nav-gruppe{margin:1rem .65rem .25rem;color:#A6A399;font-size:.7rem;font-weight:700;}
.konto{margin-top:auto;}
.mobile-marke,.mobile-nav{display:none;}
.kopf{grid-template-columns:minmax(0,1fr) auto;padding:1.25rem clamp(1.5rem,4vw,3rem);}
.seitentitel{display:block;}
.kopf-aktionen button{min-width:8rem;}
#last-refresh{grid-column:1;}
.arbeitsbereich{padding:2rem clamp(1.5rem,4vw,3rem) 4rem;}
.mehr-dialog{display:none;}
}

@media (min-width: 960px) {#buchungsliste,#anfragen-liste{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;}
#buchungsliste .card,#anfragen-liste .card{margin:0;}
}

@media (prefers-reduced-motion: reduce) {*,*::before,*::after{animation:none !important;scroll-behavior:auto !important;transition:none !important;}
}

/* Bewertungs-SMS (review-requests.js): fester SMS-Text als Vorschau, Karten wie in den übrigen Listen. */
.sms-vorschau{margin:.5rem 0;padding:.75rem 1rem;border-left:4px solid var(--cp-accent);border-radius:.375rem;background:var(--cp-bg-elevated);white-space:pre-wrap;}
.bewertung-karte .bewertung-strecke{margin:0 0 .75rem;}
.bewertung-karte > button{width:100%;}
@media (min-width:720px){.bewertung-karte > button{width:auto;}}

@media print{body >:not(#print-area){display:none !important;}
#print-area{display:block !important;}
#print-area .card{border:1px solid #000;box-shadow:none;}
}
/* Ansicht "Nutzung": Kennzahlen, Balkenlisten und Säulen ohne Diagrammbibliothek. */
.nutzung-abschnitt{margin:2rem 0 .5rem;padding-top:1rem;border-top:2px solid var(--cp-text);font-size:1.25rem;}
.nutzung [aria-pressed="true"]{border-color:var(--cp-accent);background:var(--cp-text);color:var(--cp-surface);}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem;}
.kpi{display:flex;flex-direction:column;gap:.35rem;padding:1rem;border:1px solid var(--cp-border);border-radius:.5rem;background:var(--cp-surface);}
.kpi span{color:var(--cp-text-muted);font-size:.8rem;font-weight:700;}
.kpi strong{font-size:1.55rem;font-variant-numeric:tabular-nums;letter-spacing:-.035em;}
.kpi small{color:var(--cp-text-muted);font-size:.78rem;}
.nutzung-hinweise-karte{border-color:var(--cp-accent);box-shadow:4px 4px 0 var(--cp-accent);}
.nutzung-hinweise{margin:0;padding-left:1.25rem;}
.nutzung-hinweise li+li{margin-top:.4rem;}
.balkenliste{display:grid;gap:.6rem;margin:0;padding:0;list-style:none;}
.balkenliste li{display:grid;grid-template-columns:minmax(0,11rem) minmax(3rem,1fr) auto;gap:.25rem .75rem;align-items:center;}
.balken-label{font-size:.875rem;overflow-wrap:anywhere;}
.balken-spur{display:block;height:.9rem;border-radius:.25rem;background:var(--cp-surface-soft);overflow:hidden;}
.balken-fuellung{display:block;height:100%;background:var(--cp-text);}
.trichter .balken-fuellung{background:var(--cp-accent);}
.balken-wert{font-variant-numeric:tabular-nums;text-align:right;}
.balken-zusatz{grid-column:2 / -1;color:var(--cp-text-muted);font-size:.78rem;}
.saeulen{display:flex;height:7rem;gap:2px;align-items:flex-end;padding-bottom:1px;border-bottom:1px solid var(--cp-border-strong);}
.saeule{flex:1 1 0;min-width:1px;min-height:1px;border-radius:2px 2px 0 0;background:var(--cp-text);}
.saeulen-achse{display:flex;justify-content:space-between;margin-bottom:.5rem;color:var(--cp-text-muted);font-size:.75rem;}
.nutzung-api{display:grid;gap:.5rem;margin:0;padding-left:1.25rem;font-size:.9rem;}
.nutzung details summary{cursor:pointer;font-weight:700;}
@media (max-width:520px){.balkenliste li{grid-template-columns:minmax(0,1fr) auto;}.balken-spur{grid-column:1 / -1;grid-row:2;}.balken-zusatz{grid-column:1 / -1;}}

/* Sichtbarkeit bei Google & Co. (onboarding.js): NEU-Kennzeichen, Starthinweis, Kopierbox, Abhaklisten. */
.nav-neu{display:inline-flex;align-items:center;min-height:1.25rem;padding:0 .4rem;border-radius:.3rem;background:var(--cp-accent);color:var(--cp-accent-fg);font-size:.66rem;font-weight:800;letter-spacing:.04em;}
.mobile-nav .nav-neu{position:absolute;top:.15rem;right:.15rem;}
.mehr-nav .nav-neu{margin-left:.5rem;}
.onboarding-hinweis{display:flex;flex-wrap:wrap;gap:.5rem .75rem;align-items:center;margin:1rem 0;padding:.75rem 1rem;border:1px solid var(--cp-border);border-left:4px solid var(--cp-accent);border-radius:.5rem;background:var(--cp-surface);}
.onboarding-hinweis p{flex:1 1 16rem;margin:0;}
.onboarding-hinweis button{margin:0;}
.onboarding-fortschritt{margin:0 0 1rem;}
.onboarding-fortschritt-text{margin:0 0 .35rem;font-weight:700;font-variant-numeric:tabular-nums;}
.onboarding-fortschritt progress{width:100%;height:.75rem;accent-color:var(--cp-accent);}
.onboarding-firma{border:2px solid var(--cp-accent);}
.onboarding-feld{margin-top:.75rem;}
.onboarding-feld p{margin:.25rem 0 0;}
.onboarding-kopierzeile{display:flex;gap:.5rem;align-items:flex-end;justify-content:space-between;margin-bottom:.375rem;}
.onboarding-kopierzeile label{margin:0;}
.onboarding-kopierzeile button{flex:0 0 auto;padding:.4rem .75rem;}
.onboarding-feld input,.onboarding-feld textarea{background:var(--cp-bg-elevated);}
.onboarding-adresse{margin:1rem 0 0;padding:.75rem;border-radius:.5rem;background:var(--cp-warning-soft);}
.onboarding-abschnitt summary{display:flex;list-style:none;gap:.75rem;align-items:center;justify-content:space-between;min-height:44px;cursor:pointer;}
.onboarding-summary-text{display:grid;gap:.1rem;}
.onboarding-abschnitt summary::-webkit-details-marker{display:none;}
.onboarding-abschnitt summary::after{flex:0 0 auto;width:1.5rem;font-size:1.25rem;font-weight:700;text-align:center;content:"+";}
.onboarding-abschnitt[open] summary::after{content:"–";}
.onboarding-summary-text{flex:1 1 auto;}
.onboarding-prio{color:var(--cp-text-muted);font-size:.75rem;font-weight:700;}
.onboarding-zaehler{flex:0 0 auto;padding:.2rem .5rem;border-radius:.35rem;background:var(--cp-text);color:var(--cp-surface);font-size:.8rem;font-weight:700;font-variant-numeric:tabular-nums;}
.onboarding-fakten{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.25rem .75rem;margin:0 0 .75rem;font-size:.875rem;}
.onboarding-fakten dt{font-weight:700;}
.onboarding-fakten dd{margin:0;}
.onboarding-link{display:inline-flex;min-height:44px;align-items:center;font-weight:650;}
.onboarding-schritte{margin:.5rem 0;padding:0;list-style:none;}
.onboarding-schritt{padding:.5rem 0;border-top:1px solid var(--cp-border);}
.onboarding-schritt .checkbox-row{margin:0;align-items:center;}
.onboarding-schritt .checkbox-row input:checked + span{color:var(--cp-text-muted);text-decoration:line-through;}
.onboarding-schritt > p,.onboarding-schritt > a{margin:.25rem 0 0 2.25rem;}
.onboarding-querverweis{min-height:36px;margin-top:.25rem;padding:.3rem .65rem;}
.onboarding-stolper{margin-top:.75rem;padding:.75rem 1rem;border-radius:.5rem;background:var(--cp-info-soft);}
.onboarding-stolper ul{margin:.35rem 0 0;padding-left:1.1rem;}
.nur-lesen-banner{position:sticky;top:0;z-index:10;margin:0;padding:.65rem 1rem;border-bottom:2px solid var(--cp-warning);background:var(--cp-warning-soft);color:var(--cp-warning);font-weight:600;}
body.nur-lesen [data-schreibt]:is(button,input,select,textarea):disabled{cursor:not-allowed;opacity:.45;}
body.nur-lesen form[data-schreibt]{opacity:.8;}
.zugaenge-liste{display:grid;gap:.5rem;margin:.75rem 0;padding:0;list-style:none;}
.zugang-zeile{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.6rem .75rem;border:1px solid var(--cp-border);border-radius:.5rem;background:var(--cp-surface);}
.zugang-mail{flex:1 1 14rem;min-width:0;overflow-wrap:anywhere;font-weight:600;}
.zugang-zeile select{flex:0 1 9rem;width:auto;}
.zugang-rolle-fest{color:var(--cp-text-muted);font-size:.9rem;}
.zugang-neu{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.5rem 0 1rem;}
.zugang-neu input{flex:1 1 14rem;width:auto;}
.zugang-neu select{flex:0 1 9rem;width:auto;}
.festpreise-liste{display:grid;gap:.5rem;margin:.75rem 0;}
.festpreis-zeile{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.6rem .75rem;border:1px solid var(--cp-border);border-radius:.5rem;background:var(--cp-surface);}
.festpreis-zeile label{flex:1 1 14rem;min-width:0;margin:0;font-weight:600;}
.festpreis-zeile input{flex:0 1 7rem;width:7rem;text-align:right;}
.festpreis-zeile .klein{flex:0 0 100%;margin:0;}
.dokumente-liste{display:grid;gap:.5rem;margin:.75rem 0;padding:0;list-style:none;}
.dokumente-liste a{display:block;min-height:44px;padding:.65rem .75rem;border:1px solid var(--cp-border-strong);border-radius:.5rem;background:var(--cp-surface);color:var(--cp-text);font-weight:600;overflow-wrap:anywhere;}
