/* Taxiruf Münster – Digitale Taxiquittung v5.0 FINAL */
:root{--bg:#05111c;--surf:#0d1e2e;--card:rgba(255,255,255,.07);--brd:rgba(255,255,255,.1);--txt:#eef2f8;--muted:#6e8da5;--y:#f5c842;--y2:#ffe376;--ok:#16c96e;--danger:#ef4444;--blue:#60a5fa;--r:16px;--sh:0 20px 60px rgba(0,0,0,.5)}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;background:var(--bg);background-image:radial-gradient(ellipse 60% 35% at 98% 2%,rgba(245,200,66,.08) 0%,transparent 55%);color:var(--txt);min-height:100vh;line-height:1.5}

/* ── Nav ── */
.top{position:sticky;top:0;z-index:200;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 clamp(10px,4vw,48px);height:62px;background:rgba(5,17,28,.94);backdrop-filter:blur(24px);border-bottom:1px solid var(--brd)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--txt);flex-shrink:0}
.brand-logo{width:40px;height:40px;object-fit:contain;border-radius:8px}
.brand span{display:grid;line-height:1.2}
.brand b{font-size:15px;font-weight:900}
.brand small{font-size:10px;color:var(--muted)}
nav{display:flex;gap:2px;align-items:center;flex-wrap:wrap}
nav a{color:var(--txt);text-decoration:none;font-size:13px;font-weight:700;padding:6px 10px;border-radius:9px;transition:.15s;white-space:nowrap}
nav a:hover{background:rgba(255,255,255,.09)}
.nav-new{background:rgba(245,200,66,.14)!important;color:var(--y)!important}
.nav-user{font-size:11px;color:var(--muted);padding:0 6px}
.nav-logout{color:var(--muted)!important}

/* ── Sprachumschalter ── */
.lang-switch{display:flex;align-items:center;gap:4px;margin:0 2px}
.lang-switch-icon{font-size:15px;line-height:1}
.lang-switch-select{background:rgba(255,255,255,.07);color:var(--txt);border:1px solid var(--brd);border-radius:8px;padding:5px 8px;font-size:12px;font-weight:700;cursor:pointer;max-width:120px}
.lang-switch-select:hover{background:rgba(255,255,255,.12)}
.lang-switch-select option{background:#0d1e2e;color:#eef2f8}
.lang-switch-select option:checked{background:#1a3050}

/* ── RTL (Arabisch) ── */
html[dir="rtl"] body{direction:rtl}
html[dir="rtl"] .top{flex-direction:row-reverse}
html[dir="rtl"] nav{flex-direction:row-reverse}
html[dir="rtl"] .brand{flex-direction:row-reverse}
html[dir="rtl"] .input-row{flex-direction:row-reverse}
html[dir="rtl"] .mic-btn{border-radius:11px 0 0 11px!important}
html[dir="rtl"] .input-row .fi{border-radius:0 11px 11px 0!important}
.wrap{width:min(1260px,100%);margin:0 auto;padding:20px clamp(10px,4vw,48px) 80px}
.foot{text-align:center;color:var(--muted);padding:20px;font-size:11px}

/* ── Flash ── */
.flash{padding:12px 15px;border-radius:11px;background:rgba(245,200,66,.11);border:1px solid rgba(245,200,66,.28);margin-bottom:14px;font-weight:700;font-size:13px}
.flash-error{background:rgba(239,68,68,.11);border-color:rgba(239,68,68,.28);color:#fecaca}

/* ── Panel ── */
.panel{background:var(--card);border:1px solid var(--brd);border-radius:var(--r);box-shadow:var(--sh);padding:20px}
.narrow{max-width:500px;margin:24px auto}
.formwide{max-width:880px;margin:0 auto 16px}

/* ── Buttons ── */
.btn,button{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--brd);border-radius:11px;background:rgba(255,255,255,.08);color:var(--txt);padding:9px 14px;font-weight:800;font-size:13px;font-family:inherit;cursor:pointer;text-decoration:none;transition:background .15s,transform .12s;white-space:nowrap}
.btn:hover,button:hover{background:rgba(255,255,255,.13);transform:translateY(-1px)}
.btn:active,button:active{transform:translateY(0)}
.btn.primary,button.primary{background:linear-gradient(135deg,var(--y),var(--y2));color:#0d1400;border-color:transparent;font-weight:900}
.btn.primary:hover{opacity:.92}
.btn.big{font-size:15px;padding:12px 20px}
.btn.small{font-size:11px;padding:5px 9px;border-radius:8px}
.btn.danger{background:rgba(239,68,68,.13);border-color:rgba(239,68,68,.28);color:#fca5a5}
.danger-outline{background:transparent!important;border-color:rgba(239,68,68,.32)!important;color:#fca5a5!important;font-size:11px;padding:5px 9px;border-radius:8px}
h1{font-size:22px;font-weight:900;letter-spacing:-.02em}
h2{font-size:17px;font-weight:800;margin:14px 0 8px}
h3{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}

/* ── Formulare ── */
.fi{width:100%;border:1.5px solid var(--brd);border-radius:11px;background:rgba(255,255,255,.06);color:var(--txt);padding:12px 14px;font-size:15px;font-family:inherit;outline:none;transition:border-color .15s,background .15s;-webkit-appearance:none;appearance:none}
.fi:focus{border-color:var(--y);background:rgba(255,255,255,.09);box-shadow:0 0 0 3px rgba(245,200,66,.14)}
.fi::placeholder{color:rgba(255,255,255,.22)}
textarea.fi{resize:vertical;min-height:70px}
input[type=date].fi{color-scheme:dark}
select.fi{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236e8da5' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px;cursor:pointer;color-scheme:dark}
select.fi option{background:#0d1e2e;color:#eef2f8}
select.fi option:checked{background:#1a3050}
.fl{display:block;font-size:12px;font-weight:800;color:var(--txt);margin-bottom:6px}
.fl-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.check-row{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
.check-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--y);cursor:pointer;flex-shrink:0}
.check-row span{font-size:13px;font-weight:700}

/* ── Admin ── */
.adminbar{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px;align-items:center}
.stitle{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:18px 0 8px;padding-bottom:5px;border-bottom:1px solid var(--brd)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:16px}
.stats div{background:rgba(255,255,255,.05);border:1px solid var(--brd);border-radius:13px;padding:14px 12px}
.stats small{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.stats b{font-size:20px;font-weight:900}
.tablewrap{overflow:auto;border:1px solid var(--brd);border-radius:13px;margin-top:8px}
table{border-collapse:collapse;width:100%;min-width:700px}
th,td{text-align:left;border-bottom:1px solid var(--brd);padding:10px 11px;vertical-align:middle;font-size:12px}
th{color:var(--y);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;background:rgba(0,0,0,.2);white-space:nowrap}
tr:last-child td{border-bottom:0}
tr:hover td{background:rgba(255,255,255,.02)}
.row-inactive td,.row-cancelled td{opacity:.5}
.td-actions{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.tag{font-size:11px;color:var(--y);font-weight:900;font-family:monospace;letter-spacing:.05em}
.badge{display:inline-flex;padding:3px 8px;border-radius:99px;font-size:10px;font-weight:900;text-transform:uppercase}
.badge-green{background:rgba(22,201,110,.15);color:#6ee7b7;border:1px solid rgba(22,201,110,.25)}
.badge-red{background:rgba(239,68,68,.13);color:#fca5a5;border:1px solid rgba(239,68,68,.22)}
.tbadge{display:inline-flex;padding:3px 7px;border-radius:7px;font-size:10px;font-weight:900;text-transform:uppercase}
.tbadge-s{background:rgba(245,200,66,.13);color:var(--y);border:1px solid rgba(245,200,66,.26)}
.tbadge-r{background:rgba(96,165,250,.13);color:var(--blue);border:1px solid rgba(96,165,250,.26)}
.tbadge-k{background:rgba(22,201,110,.11);color:#6ee7b7;border:1px solid rgba(22,201,110,.2)}
.tbadge-f{background:rgba(239,68,68,.13);color:#fca5a5;border:1px solid rgba(239,68,68,.25)}
.filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;align-items:flex-end}
.filters .fi{font-size:12px;padding:7px 10px;border-radius:9px}
.filters .btn{padding:7px 11px;font-size:12px;border-radius:9px}
details summary{cursor:pointer;list-style:none}
details summary::-webkit-details-marker{display:none}
.storno-form{display:flex;gap:5px;margin-top:6px;background:rgba(239,68,68,.07);border:1px solid rgba(239,68,68,.18);border-radius:8px;padding:6px}
.info-table{width:100%;border-collapse:collapse}
.info-table th,.info-table td{padding:8px 0;border-bottom:1px solid var(--brd);font-size:12px}
.info-table th{color:var(--muted);width:160px;font-weight:700;font-size:10px;text-transform:uppercase}

/* ══════ STARTSEITE ══════ */
.home-center{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 160px);gap:20px;padding:24px 0}
.home-logo-wrap{text-align:center}
.home-logo{width:72px;height:72px;object-fit:contain;border-radius:18px;box-shadow:0 8px 32px rgba(245,200,66,.25)}
.home-brand{font-size:22px;font-weight:900;margin-top:10px;color:#fff}
.home-sub{font-size:13px;color:var(--muted)}
.home-card{width:min(420px,100%);padding:28px}
.home-card-title{font-size:18px;font-weight:900;text-align:center;margin-bottom:20px}
.home-form{display:grid;gap:12px}
.home-date{font-size:17px!important;min-height:52px}
.home-code{font-size:26px!important;font-weight:900!important;text-align:center!important;letter-spacing:.12em;text-transform:uppercase;min-height:64px}
.home-submit{width:100%;min-height:52px;font-size:17px;margin-top:4px}
.home-hints{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;font-size:12px;color:var(--muted)}
.home-promo-banner{
  display:flex;align-items:center;gap:14px;width:100%;max-width:420px;margin-top:18px;
  background:linear-gradient(135deg,rgba(22,201,110,.16),rgba(22,201,110,.06));
  border:1.5px solid rgba(22,201,110,.35);border-radius:16px;padding:14px 16px;
  text-decoration:none;transition:transform .15s,box-shadow .15s;
}
.home-promo-banner:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(22,201,110,.2)}
.home-promo-icon{font-size:30px;flex-shrink:0}
.home-promo-text{display:flex;flex-direction:column;gap:2px}
.home-promo-text strong{color:#6ee7b7;font-size:14px;font-weight:900}
.home-promo-text span{color:var(--txt);font-size:12px;opacity:.9}
.home-promo-terms-link{display:block;text-align:center;font-size:11px;color:var(--muted);margin-top:8px;text-decoration:underline}

/* ══════ SUCHSEITE ══════ */
.find-wrap{display:flex;flex-direction:column;align-items:center;gap:16px;padding:20px 0;min-height:calc(100vh - 160px);justify-content:center}
.find-form-card{width:min(400px,100%);padding:24px}
.find-form-logo{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.find-form-title{font-size:17px;font-weight:900;margin-bottom:16px}
.find-form{display:grid;gap:12px}
.find-code-input{font-size:22px!important;font-weight:900!important;text-align:center!important;letter-spacing:.1em;text-transform:uppercase!important;min-height:58px}
.find-result-card{width:min(400px,100%);background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.22);border-radius:var(--r);padding:20px;text-align:center}
.find-notfound{background:rgba(239,68,68,.08)!important;border-color:rgba(239,68,68,.22)!important}
.find-big-icon{font-size:40px;margin-bottom:8px}
.find-result-card h2{margin-bottom:12px}
.find-meta{background:rgba(0,0,0,.2);border-radius:10px;padding:12px;display:grid;gap:8px;margin:10px 0;text-align:left}
.find-meta-row{display:flex;justify-content:space-between;align-items:center;font-size:13px}
.find-meta-row span{color:var(--muted);font-weight:700}
.find-code-big{font-family:monospace;font-size:22px;font-weight:900;letter-spacing:.08em;color:var(--y)}
.find-hint{font-size:12px;color:var(--muted);margin-top:8px}
.find-item{display:flex;justify-content:space-between;align-items:center;background:var(--card);border:1px solid var(--brd);border-radius:11px;padding:12px 14px;text-decoration:none;color:var(--txt);font-weight:700;transition:.15s}
.find-item:hover{border-color:rgba(245,200,66,.3);background:rgba(245,200,66,.07)}
.find-item-sub{display:block;font-size:11px;color:var(--muted);margin-top:2px;font-weight:500}
.find-item-price{color:var(--y);font-size:17px;font-weight:900}

/* ══════ ÖFFENTLICHE SEITEN: TOP-LEISTE MIT „ZURÜCK ZUR STARTSEITE" ══════ */
/* ══════ ÖFFENTLICHE SEITEN: TOP-LEISTE MIT „ZUR HAUPTWEBSEITE" ══════ */
.pubpage-topbar{width:min(760px,100%);display:flex;justify-content:flex-start;gap:8px;flex-wrap:wrap}
.pubpage-back{display:inline-flex;align-items:center;gap:7px;color:var(--txt)!important;font-size:12.5px;font-weight:800;background:rgba(255,255,255,.06)!important;border:1px solid var(--brd)!important;padding:9px 16px!important;border-radius:30px;transition:background .18s,border-color .18s,transform .15s}
.pubpage-back:hover{background:rgba(245,200,66,.1)!important;border-color:rgba(245,200,66,.35)!important;transform:translateX(-2px)}
.pubpage-back .pubpage-back-arrow{font-size:14px;transition:transform .18s}
.pubpage-back:hover .pubpage-back-arrow{transform:translateX(-3px)}

/* ══════ PROMO-HERO – ANIMIERTE ILLUSTRATION OBEN AUF DEN ÖFFENTLICHEN SEITEN ══════ */
.promo-hero{position:relative;width:min(760px,100%);border-radius:20px;padding:30px 24px 26px;text-align:center;overflow:hidden;background:radial-gradient(ellipse at top,rgba(245,200,66,.1),transparent 60%),linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.015));border:1px solid var(--brd);box-shadow:var(--sh)}
.promo-orb{position:absolute;border-radius:50%;filter:blur(28px);opacity:.5;pointer-events:none}
.promo-orb-1{width:160px;height:160px;background:var(--y);top:-60px;left:-40px;animation:promoFloat1 9s ease-in-out infinite}
.promo-orb-2{width:120px;height:120px;background:var(--ok);bottom:-50px;right:-30px;animation:promoFloat2 11s ease-in-out infinite}
.promo-orb-3{width:90px;height:90px;background:var(--blue);top:20px;right:10%;opacity:.3;animation:promoFloat1 7.5s ease-in-out infinite reverse}
@keyframes promoFloat1{0%,100%{transform:translate(0,0)}50%{transform:translate(18px,14px)}}
@keyframes promoFloat2{0%,100%{transform:translate(0,0)}50%{transform:translate(-14px,-16px)}}
.promo-hero-illustration{position:relative;z-index:1;width:104px;height:104px;margin:0 auto 14px;animation:promoIconBob 3.2s ease-in-out infinite}
@keyframes promoIconBob{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-7px) rotate(-2deg)}}
.promo-hero-illustration svg{width:100%;height:100%;filter:drop-shadow(0 10px 22px rgba(245,200,66,.28))}
.promo-hero-title{position:relative;z-index:1;font-size:19px;font-weight:900;margin-bottom:6px;letter-spacing:.01em}
.promo-hero-sub{position:relative;z-index:1;font-size:12.5px;color:var(--muted);max-width:440px;margin:0 auto;line-height:1.6}
.promo-sparkle{animation:promoSparkle 1.8s ease-in-out infinite}
.promo-sparkle.s2{animation-delay:.4s}
.promo-sparkle.s3{animation-delay:.9s}
@keyframes promoSparkle{0%,100%{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1.15)}}
.promo-scanline{animation:promoScan 2.6s ease-in-out infinite}
@keyframes promoScan{0%,100%{transform:translateY(-14px);opacity:0}10%,90%{opacity:1}50%{transform:translateY(14px);opacity:1}}

/* ══════ „SO FUNKTIONIERT'S" – SCHRITT-FÜR-SCHRITT-ERKLÄRUNG (Premium-Stil) ══════ */
.howto-wrap{position:relative;width:min(760px,100%);background:linear-gradient(180deg,rgba(245,200,66,.05),rgba(255,255,255,.03));border:1px solid var(--brd);border-radius:18px;padding:26px 24px 22px;box-shadow:var(--sh);overflow:hidden}
.howto-wrap::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--y),var(--y2),var(--ok))}
.howto-title{font-size:16px;font-weight:900;margin-bottom:20px;display:flex;align-items:center;gap:9px;letter-spacing:.01em}
.howto-title span{font-size:20px;filter:drop-shadow(0 2px 6px rgba(245,200,66,.4))}
.howto-steps{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:18px 16px}
/* Verbindungslinie zwischen den Schritten – nur ab Desktop-Breite sichtbar, simuliert einen
   Prozess-/Ablauf-Pfad zwischen den Stationen, wie bei professionellen Erklär-Grafiken. */
.howto-steps::before{content:"";position:absolute;top:30px;left:8%;right:8%;height:2px;background:linear-gradient(90deg,rgba(245,200,66,.5),rgba(245,200,66,.15));z-index:0}
@media (max-width:640px){.howto-steps::before{display:none}}
.howto-step{position:relative;z-index:1;background:rgba(255,255,255,.045);border:1px solid var(--brd);border-radius:16px;padding:20px 16px 16px;text-align:center;opacity:0;transform:translateY(16px) scale(.96);animation:howtoFadeUp .6s cubic-bezier(.22,1,.36,1) forwards;transition:transform .25s,border-color .25s,background .25s}
.howto-step:hover{transform:translateY(-3px);border-color:rgba(245,200,66,.4);background:rgba(255,255,255,.07)}
.howto-step:nth-child(1){animation-delay:.08s}
.howto-step:nth-child(2){animation-delay:.24s}
.howto-step:nth-child(3){animation-delay:.40s}
.howto-step:nth-child(4){animation-delay:.56s}
@keyframes howtoFadeUp{to{opacity:1;transform:translateY(0) scale(1)}}
.howto-step-circle{position:relative;width:54px;height:54px;margin:0 auto 12px;border-radius:50%;background:linear-gradient(135deg,rgba(245,200,66,.16),rgba(245,200,66,.05));border:1.5px solid rgba(245,200,66,.3);display:flex;align-items:center;justify-content:center}
.howto-step-circle::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1.5px solid rgba(245,200,66,.18);animation:howtoPulse 2.6s ease-out infinite}
.howto-step:nth-child(2) .howto-step-circle::after{animation-delay:.4s}
.howto-step:nth-child(3) .howto-step-circle::after{animation-delay:.8s}
.howto-step:nth-child(4) .howto-step-circle::after{animation-delay:1.2s}
@keyframes howtoPulse{0%{transform:scale(1);opacity:.6}80%{transform:scale(1.28);opacity:0}100%{opacity:0}}
.howto-step-icon{font-size:24px;line-height:1;position:relative;z-index:1}
.howto-step-num{position:absolute;top:-6px;right:-2px;background:linear-gradient(135deg,var(--y),var(--y2));color:#0d1400;font-size:11px;font-weight:900;width:21px;height:21px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 8px rgba(245,200,66,.45),0 0 0 3px var(--bg)}
.howto-step-title{font-size:13px;font-weight:900;margin-bottom:5px;line-height:1.3}
.howto-step-desc{font-size:11.5px;color:var(--muted);line-height:1.55}
.howto-step-link{display:inline-block;margin-top:8px;font-size:11px;font-weight:800;color:var(--y);text-decoration:none;border-bottom:1px solid rgba(245,200,66,.4)}
.howto-step-link:hover{color:var(--y2);border-color:var(--y2)}

/* ══════ RABATT-CHECK: FAHRZEUGKARTE (klickbar → Business Card) ══════ */
.rabatt-vehicle-card{display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(255,255,255,.045);border:1px solid var(--brd);border-radius:14px;padding:13px 14px;transition:background .18s,border-color .18s,transform .15s}
a.rabatt-vehicle-card:hover{background:rgba(255,255,255,.08);border-color:rgba(245,200,66,.4);transform:translateY(-2px)}
.rabatt-vehicle-card-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.rabatt-vehicle-card-cta{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 10px;background:rgba(245,200,66,.1);border:1px solid rgba(245,200,66,.3);border-radius:10px;color:var(--y);font-size:10px;font-weight:800;flex-shrink:0;text-align:center;transition:background .18s}
a.rabatt-vehicle-card:hover .rabatt-vehicle-card-cta{background:rgba(245,200,66,.2)}

/* ══════ PWA „AUF STARTBILDSCHIRM" INSTALL-BANNER ══════ */
.pwa-install-banner{position:fixed;bottom:0;left:0;right:0;z-index:9999;display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#0d1e2e,#0a1829);border-top:2px solid var(--y);padding:12px 16px 14px;box-shadow:0 -8px 32px rgba(0,0,0,.5);transition:opacity .3s;animation:pwaBannerIn .4s cubic-bezier(.22,1,.36,1)}
@keyframes pwaBannerIn{from{transform:translateY(100%)}to{transform:translateY(0)}}
.pwa-install-icon{font-size:28px;flex-shrink:0;animation:pwaBob 2.4s ease-in-out infinite}
@keyframes pwaBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.pwa-install-text{flex:1;min-width:0}
.pwa-install-text strong{display:block;font-size:14px;font-weight:900;color:#fff;margin-bottom:1px}
.pwa-install-text span{font-size:11px;color:rgba(255,255,255,.6)}
.pwa-install-btn{flex-shrink:0;background:linear-gradient(135deg,var(--y),var(--y2));color:#0d1400;font-weight:900;font-size:13px;border:none;border-radius:20px;padding:9px 18px;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 4px 14px rgba(245,200,66,.4)}
.pwa-install-btn:hover{transform:scale(1.05);box-shadow:0 6px 20px rgba(245,200,66,.55)}
.pwa-install-close{background:none;border:none;color:rgba(255,255,255,.4);font-size:18px;cursor:pointer;padding:4px 8px;flex-shrink:0;transition:color .15s}
.pwa-install-close:hover{color:#fff}
/* iOS-Anleitung Modal */
.pwa-modal-overlay{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.72);display:flex;align-items:flex-end;justify-content:center;animation:pwaModalFade .25s ease}
@keyframes pwaModalFade{from{opacity:0}to{opacity:1}}
.pwa-modal{background:#0d1e2e;border:1px solid var(--brd);border-radius:20px 20px 0 0;padding:24px 20px 32px;width:100%;max-width:480px;position:relative}
.pwa-modal-close{position:absolute;top:14px;right:16px;background:rgba(255,255,255,.08);border:none;color:var(--txt);border-radius:50%;width:30px;height:30px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center}
.pwa-modal-icon{font-size:40px;text-align:center;margin-bottom:10px}
.pwa-modal-title{font-size:17px;font-weight:900;text-align:center;margin-bottom:18px}
.pwa-modal-steps{display:grid;gap:12px}
.pwa-step{display:flex;gap:12px;align-items:flex-start;font-size:13px;line-height:1.5}
.pwa-step-num{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--y),var(--y2));color:#0d1400;font-weight:900;font-size:12px;display:flex;align-items:center;justify-content:center}
.howto-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-top:22px;padding-top:18px;border-top:1px dashed var(--brd)}
.howto-actions .action-card{min-height:64px}

/* ══════ ÖFFENTLICHE INFO-LISTE (z.B. teilnehmende Fahrzeuge, FAQ) ══════ */
.pub-info-list{display:grid;gap:10px;margin-top:10px}
.pub-info-item{display:flex;gap:10px;align-items:flex-start;background:rgba(255,255,255,.04);border:1px solid var(--brd);border-radius:11px;padding:11px 13px}
.pub-info-item-icon{font-size:18px;flex-shrink:0;margin-top:1px}
.pub-info-item-title{font-size:12.5px;font-weight:800;margin-bottom:2px}
.pub-info-item-desc{font-size:11.5px;color:var(--muted);line-height:1.5}

/* ══════ LOGIN ══════ */
.login-wrap{display:grid;place-items:center;min-height:calc(100vh - 160px)}
.login-panel{width:min(380px,100%);padding:28px;display:grid;gap:12px}
.login-logo{text-align:center}

/* ══════ NEUE QUITTUNG ══════ */
.rform{max-width:760px;margin:0 auto;border:1px solid var(--brd);border-radius:var(--r);overflow:visible;box-shadow:var(--sh);display:flex;flex-direction:column}
.rform-head{background:linear-gradient(135deg,rgba(245,200,66,.1),rgba(255,255,255,.04));border-bottom:1px solid var(--brd);padding:18px 20px}
.rform-head h1{margin-bottom:14px;font-size:21px}

/* Typ-Tabs */
.type-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.type-tab{display:flex;align-items:center;gap:9px;padding:11px 12px;border:2px solid var(--brd);border-radius:12px;cursor:pointer;background:rgba(255,255,255,.04);transition:all .18s;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.type-tab input[type=radio]{display:none}
.tab-icon{font-size:22px;line-height:1;flex-shrink:0}
.tab-label{font-size:12px;font-weight:900;color:var(--muted);line-height:1.25}
.tab-sub{font-size:10px;color:rgba(110,141,165,.7);margin-top:1px}
.type-tab:hover{border-color:rgba(245,200,66,.35);background:rgba(245,200,66,.07)}
.type-tab.active{border-color:var(--y);background:rgba(245,200,66,.14)}
.type-tab.active .tab-label{color:var(--y)}
.type-tab.active .tab-sub{color:rgba(245,200,66,.75)}

/* Sektionen */
.rform-section{background:rgba(255,255,255,.04);border-bottom:1px solid var(--brd);padding:16px 20px;display:flex;flex-direction:column;gap:12px}
.rform-section-title{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);padding-bottom:3px;border-bottom:1px solid rgba(255,255,255,.06)}
.dyn-sec{display:none}

/* OCR / Kamera */
.ocr-details{border-bottom:1px solid var(--brd);overflow:hidden}
.ocr-summary{display:flex;align-items:center;gap:10px;padding:13px 20px;cursor:pointer;list-style:none;background:rgba(96,165,250,.06);transition:background .15s;-webkit-tap-highlight-color:transparent}
.ocr-summary::-webkit-details-marker{display:none}
.ocr-summary:hover{background:rgba(96,165,250,.1)}
.ocr-summary-icon{font-size:18px;flex-shrink:0}
.ocr-summary-text{font-size:13px;font-weight:700;color:var(--blue);flex:1}
.ocr-summary-text small{font-weight:500;color:var(--muted);font-size:11px}
.ocr-summary-arrow{font-size:16px;color:var(--muted);transition:transform .2s;flex-shrink:0}
details[open] .ocr-summary-arrow{transform:rotate(90deg)}
.ocr-body{border-top:0!important}
.ocr-btns{display:flex;gap:8px;flex-wrap:wrap}
.ocr-btns .btn{flex:1;min-width:120px;background:rgba(96,165,250,.1);border-color:rgba(96,165,250,.28);color:var(--blue)}
.ocr-status{font-size:12px;font-weight:700;min-height:20px;display:block;margin-top:4px}

/* Adressfelder – MOBILE FIRST */
.addr-stack{display:flex;flex-direction:column;gap:10px}
.addr-field-wrap{display:flex;flex-direction:column;gap:0}
.addr-swap-center{display:flex;justify-content:center;margin:-2px 0}
.swap-center-btn{background:rgba(255,255,255,.09);border:1.5px solid var(--brd);border-radius:10px;padding:8px 20px;font-size:14px;font-weight:900;cursor:pointer;transition:.15s;touch-action:manipulation;-webkit-tap-highlight-color:transparent;display:flex;align-items:center;gap:6px;color:var(--txt)}
.swap-center-btn:hover,.swap-center-btn:active{background:rgba(245,200,66,.15);border-color:rgba(245,200,66,.4);color:var(--y)}
.swap-label{font-size:12px}

/* GPS Button */
.gps-btn{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:4px 9px;border-radius:7px;background:rgba(96,165,250,.1);border:1px solid rgba(96,165,250,.25);color:var(--blue);font-weight:700;cursor:pointer;transition:.15s;touch-action:manipulation}
.gps-btn:hover,.gps-btn:active{background:rgba(96,165,250,.2)}

/* Input mit Mic */
.input-row{display:flex;gap:0}
.input-row .fi{border-radius:11px 0 0 11px;border-right:0;flex:1;min-width:0}
.input-row .fi:focus{z-index:1;position:relative}
.mic-btn{width:46px;min-width:46px;flex-shrink:0;border-radius:0 11px 11px 0;background:rgba(255,255,255,.07);border:1.5px solid var(--brd);border-left:0;color:var(--muted);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.mic-btn:hover,.mic-btn:active{background:rgba(245,200,66,.14);color:var(--y);border-color:rgba(245,200,66,.32)}
.mic-btn.recording{background:rgba(239,68,68,.18);color:#fca5a5;border-color:rgba(239,68,68,.38);animation:mic-pulse 1s infinite}
@keyframes mic-pulse{0%,100%{box-shadow:0 0 0 0 rgba(239,68,68,.4)}50%{box-shadow:0 0 0 5px rgba(239,68,68,0)}}

/* MwSt Hinweis */
.vat-note{background:rgba(245,200,66,.08);border:1px solid rgba(245,200,66,.2);border-radius:9px;padding:8px 12px;color:#fff8d0;font-size:12px;font-weight:700}

/* Schnellnotizen */
.quick-notes{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.qn-btn{font-size:11px;padding:5px 10px;border-radius:8px;background:rgba(255,255,255,.07);border:1px solid var(--brd);color:var(--muted);cursor:pointer;transition:.15s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.qn-btn:hover,.qn-btn:active{background:rgba(245,200,66,.14);border-color:rgba(245,200,66,.3);color:#fff}

/* Preis-Bereich */
.price-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.price-big{font-size:28px!important;font-weight:950!important;text-align:center!important;letter-spacing:.02em;min-height:62px}

/* Krankenfahrt: 2-spaltige Preiszeile, exakt deckungsgleich mit .ea-price-row darunter */
.kr-price-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* Eigenanteil */
.ea-block{background:rgba(22,201,110,.07);border:1px solid rgba(22,201,110,.18);border-radius:12px;padding:14px}
.ea-toggle-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.ea-toggle-info .ea-toggle-lbl{font-size:14px;font-weight:900}
.ea-toggle-info .ea-toggle-sub{font-size:11px;color:var(--muted);margin-top:2px}
.ea-price-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ea-info-box{display:flex;gap:8px;align-items:flex-start;background:rgba(22,201,110,.1);border:1px solid rgba(22,201,110,.2);border-radius:9px;padding:10px 12px;font-size:12px;color:#d1fae5;margin-top:10px}

/* Toggle Switch – mobile-optimiert */
.toggle-sw{position:relative;display:inline-block;width:50px;height:28px;flex-shrink:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.toggle-sw input{opacity:0;width:0;height:0;position:absolute;top:0;left:0}
.toggle-track{position:absolute;inset:0;background:rgba(255,255,255,.15);border-radius:99px;transition:.25s;display:block;cursor:pointer}
.toggle-sw input:checked + .toggle-track{background:var(--ok)}
.toggle-track::after{content:'';position:absolute;width:20px;height:20px;left:4px;top:4px;background:#fff;border-radius:50%;transition:.25s;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.toggle-sw input:checked + .toggle-track::after{transform:translateX(22px)}

/* Submit */
.rform-submit{display:block;width:100%;min-height:62px;border-radius:0 0 var(--r) var(--r);background:linear-gradient(135deg,var(--y),var(--y2));color:#0d1400;font-size:18px;font-weight:900;border:0;cursor:pointer;transition:opacity .15s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.rform-submit:hover{opacity:.93}
.rform-submit:active{opacity:.85}

/* Autocomplete */
.smart-wrap{position:relative}
.ac-drop{position:absolute;z-index:9999;left:0;right:0;top:calc(100% + 4px);background:#0b1e30;border:1.5px solid rgba(245,200,66,.4);border-radius:13px;box-shadow:0 24px 60px rgba(0,0,0,.65);overflow:hidden;max-height:280px;overflow-y:auto}
.ac-drop::-webkit-scrollbar{width:4px}
.ac-drop::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:4px}
.ac-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;border-bottom:1px solid rgba(255,255,255,.06);border-radius:0;background:transparent;color:var(--txt);padding:12px 14px;font-size:14px;font-family:inherit;cursor:pointer;transition:background .1s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.ac-item:last-child{border-bottom:0}
.ac-item:hover,.ac-item:active,.ac-item.ac-focused{background:rgba(245,200,66,.14);color:#fff}
.ac-item.ac-out-muenster{opacity:.75}
.ac-pin{font-size:14px;flex-shrink:0}
.ac-pin-out{font-size:14px;flex-shrink:0;opacity:.6}
.ac-main{font-size:13px;font-weight:800;line-height:1.2}
.ac-sub{font-size:11px;color:var(--muted);margin-top:1px}
.ac-loading{padding:12px 14px;color:var(--muted);font-size:12px;display:flex;align-items:center;gap:8px}
.ac-spin{width:13px;height:13px;border:2px solid rgba(255,255,255,.15);border-top-color:var(--y);border-radius:50%;animation:spin .6s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}

/* ══════ FERTIG-SEITE ══════ */
.done-layout{display:grid;grid-template-columns:minmax(260px,380px) 1fr;gap:14px;align-items:start;margin-top:4px}
.successbox{text-align:center;padding:22px}
.codebox{margin:10px auto 14px;background:#fff;color:#111;border-radius:13px;padding:14px;width:min(230px,100%)}
.codebox small{display:block;color:#666;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}
.codebox b{font-size:36px;letter-spacing:.08em;font-family:'Courier New',monospace;font-weight:950}
.done-actions{display:grid;gap:6px;margin-top:10px}
.done-actions .btn{justify-content:center}
.cust-head{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px}
.cust-icon{font-size:22px;width:40px;height:40px;background:rgba(245,200,66,.12);border-radius:11px;display:grid;place-items:center;flex-shrink:0}
.cust-head h2{font-size:16px;margin:0 0 2px}
.cust-head p{font-size:11px;color:var(--muted)}
.send-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}
.send-btn{min-height:44px;font-size:12px!important}

/* ══════ QUITTUNG ANSICHT ══════ */
.receipt-page{display:grid;place-items:center;gap:12px;padding:6px 0}
.receipt-actions{width:min(720px,100%);display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:7px;margin-bottom:10px}
.action-card{min-height:72px;border:1px solid rgba(255,255,255,.1);border-radius:13px;background:rgba(255,255,255,.06);color:var(--txt);text-decoration:none;padding:8px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:3px;transition:.18s;cursor:pointer;font:inherit;appearance:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.action-card:hover,.action-card:active{transform:translateY(-2px);border-color:rgba(245,200,66,.38)}
.action-card span{font-size:20px}
.action-card b{font-size:11px;font-weight:800}
.action-card.primary{background:linear-gradient(135deg,var(--y),var(--y2));color:#111;border-color:transparent}
.action-card.taxi{background:rgba(37,211,102,.1);border-color:rgba(37,211,102,.25)}
.action-card.call{background:rgba(96,165,250,.1);border-color:rgba(96,165,250,.25)}
.action-card.review{background:rgba(245,200,66,.09);border-color:rgba(245,200,66,.22)}

/* ══════ QUITTUNG BON 80mm – FINAL ══════ */
.receipt{width:80mm;max-width:100%;background:#fff;color:#111;border-radius:6px;padding:4.5mm;box-shadow:0 10px 40px rgba(0,0,0,.5);font-family:Arial,Helvetica,sans-serif;font-size:10px;line-height:1.4}
.r-head{display:flex;gap:7px;align-items:flex-start;border-bottom:1.5px solid #111;padding-bottom:7px;margin-bottom:6px}
.r-logo{width:30px;height:30px;object-fit:contain;border-radius:4px;flex-shrink:0}
.r-head-info{flex:1;min-width:0}
.r-brand{font-size:12px;font-weight:900;color:#111;line-height:1.1}
.r-co{font-size:7.5px;font-weight:700;color:#222;margin-top:1px}
.r-co-detail{font-size:7px;color:#444;line-height:1.35}
.r-taxid{font-size:7px;color:#333;margin-top:2px;font-weight:900}
.r-title{text-align:center;font-size:13px;font-weight:950;margin:6px 0;text-transform:uppercase;letter-spacing:.04em}
.r-title-k{font-size:13px;background:#ecfdf5;color:#065f46;padding:5px 8px;border-radius:5px;border:1px solid #bbf7d0;font-weight:950;display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}
.r-title-k-badge{font-size:8.5px;background:#fff;color:#065f46;padding:2px 6px;border-radius:99px;border:1px solid #6ee7b7;text-transform:uppercase;letter-spacing:.03em;font-weight:900}
.r-title-r{font-size:10.5px;background:#eff6ff;color:#1e3a8a;padding:3px 6px;border-radius:4px;border:1px solid #bfdbfe;font-weight:900}
.r-rows{margin-bottom:4px}
.r-row{display:flex;justify-content:space-between;gap:6px;border-bottom:1px dashed #ddd;padding:3px 0;font-size:10px}
.r-row span{color:#555;font-weight:700;flex-shrink:0;font-size:9.5px}
.r-row b{text-align:right;word-break:break-word}
.r-empf{background:#f8f8f8;border:1px solid #e5e5e5;border-radius:4px;padding:5px;margin:4px 0}
.r-empf-title{font-size:6.5px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#666;margin-bottom:2px}
.r-empf-name{font-weight:900;font-size:10px}
.r-empf-addr{font-size:7.5px;color:#555}
.r-route{display:grid;gap:3px;margin:5px 0}
.r-route-item{background:#f5f5f5;border:1px solid #e5e5e5;border-radius:4px;padding:4px}
.r-route-lbl{font-size:6.5px;color:#666;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.r-route-val{font-size:10px;font-weight:700;word-break:break-word;margin-top:1px}
.r-route-div{text-align:center;color:#999;font-size:8px;padding:1px 0}
.r-amount{border:2px solid #111;border-radius:5px;padding:7px;margin:5px 0}
.r-amount-lbl{font-size:7px;color:#555;font-weight:900;text-transform:uppercase;margin-bottom:2px}
.r-amount-val{font-size:22px;font-weight:950;color:#111;line-height:1}
.r-amount-pay{font-size:8px;color:#444;margin-top:2px}
.r-ea-block{background:#f0fdf4;border:2px solid #16a34a;border-radius:5px;padding:8px;margin:5px 0;text-align:center}
.r-ea-title{font-size:9px;font-weight:900;color:#065f46;text-transform:uppercase;letter-spacing:.02em;line-height:1.3;margin-bottom:5px}
.r-ea-price{font-size:26px;font-weight:950;color:#065f46;line-height:1}
.r-ea-pay{font-size:9px;color:#15803d;margin-top:3px;font-weight:800}
.r-ea-note{font-size:7.5px;color:#166534;margin-top:4px;border-top:1px dashed #bbf7d0;padding-top:3px}
.r-tax{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin:4px 0}
.r-tax-row{background:#f6f6f6;border:1px solid #e5e5e5;border-radius:4px;padding:4px;display:flex;flex-direction:column}
.r-tax-row span{font-size:6.5px;color:#555;font-weight:900;text-transform:uppercase}
.r-tax-row b{font-size:10px;font-weight:900}
.r-taxhint{font-size:6.5px;color:#555;margin:3px 0 4px;line-height:1.35}
.r-note{font-size:9px;color:#444;margin:3px 0;padding:3px 0;border-top:1px dashed #ddd}

/* ── Krankenfahrt: Vollständiger Bericht ── */
.r-route-block{margin:5px 0;padding:5px 0;border-top:1px dashed #ddd;border-bottom:1px dashed #ddd}
.r-route-row{display:flex;gap:6px;font-size:8.5px;padding:2px 0}
.r-route-row span{flex-shrink:0;font-weight:900;color:#666;text-transform:uppercase;font-size:7px;width:32px;padding-top:1px}
.r-route-row b{font-weight:700;color:#222;word-break:break-word}
.kr-full-price-block{border:1.5px solid #111;border-radius:5px;padding:7px;margin:5px 0}
.kr-full-price-row{display:flex;justify-content:space-between;gap:6px;padding:3px 0;font-size:9px}
.kr-full-price-row:not(:last-child){border-bottom:1px dashed #ddd}
.kr-full-price-row span{color:#444}
.kr-full-price-row b{font-weight:900;color:#111}
.kr-full-ea-row{background:#f0fdf4;margin:0 -7px;padding:4px 7px}
.kr-full-ea-row b{color:#15803d}
.kr-full-kk-row{background:#eff6ff;margin:0 -7px;padding:4px 7px}
.kr-full-kk-row b{color:#1d4ed8}

.r-sign{border-top:1px dashed #bbb;margin-top:7px;padding-top:7px}
.r-sign-line{border-bottom:1px solid #111;margin:18px 0 4px;height:20px}
.r-sign-lbl{font-size:7px;color:#555;text-align:center}
.r-storno{border:2.5px solid #ef4444;color:#ef4444;font-weight:950;text-align:center;padding:6px;border-radius:5px;transform:rotate(-1.5deg);margin:6px 0;font-size:12px;letter-spacing:.04em}

/* QR-Code GROSS – für zuverlässiges Scannen */
.r-digital{display:grid;grid-template-columns:42mm 1fr;gap:6px;align-items:start;border-top:1.5px dashed #bbb;margin-top:7px;padding-top:7px}
.r-qr-wrap{flex-shrink:0}
.r-qr{width:40mm;height:40mm;border:2px solid #fff;box-shadow:0 0 0 1.5px #bbb;display:block;border-radius:2px}
.r-qr-zoom-hint{font-size:6.5px;color:#888;text-align:center;margin-top:3px;font-weight:700}
.r-digital-info{font-size:7.5px;color:#222;line-height:1.5}
.r-digital-title{font-size:8.5px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#333;margin-bottom:4px}
.r-digital-line{display:flex;gap:3px;align-items:baseline;font-size:7.5px;word-break:break-all}
.r-digital-line span{flex-shrink:0;font-size:9px}
.r-digital-code{margin-top:3px}
.r-digital-code strong{font-family:'Courier New',monospace;font-size:13px;font-weight:950;color:#111;background:#f0f0f0;border-radius:3px;padding:1px 4px;letter-spacing:.06em}
.r-contact-btns{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin-top:5px}
.r-cta{display:block;text-align:center;font-size:7px;font-weight:800;padding:4px 4px;border-radius:4px;text-decoration:none}
.r-cta-wa{background:#dcfce7;color:#166534;border:1px solid #86efac}
.r-cta-call{background:#dbeafe;color:#1e3a8a;border:1px solid #93c5fd}
.r-cta-star{background:#fef3c7;color:#92400e;border:1px solid #fcd34d;margin-top:3px;grid-column:1/-1}
.r-reward-block{background:#fff8e1;border:2px dashed #d4a017;border-radius:8px;padding:8px 10px;margin-top:8px;text-align:center}
.r-reward-title{font-size:10px;font-weight:900;color:#8a6500;margin-bottom:4px}
.r-reward-code{font-size:18px;font-weight:900;letter-spacing:1px;color:#111;font-family:monospace}
.r-reward-detail{font-size:9px;font-weight:700;color:#444;margin-top:3px}
.r-reward-hint{font-size:7.5px;color:#777;margin-top:3px;line-height:1.4}
.r-thanks{text-align:center;font-size:9px;font-weight:800;margin:6px 0 0;color:#111;border-top:1px dashed #ddd;padding-top:5px}

/* Print */
.printbody{background:#fff!important}
.printbody .receipt-page{display:block}
.printbody .receipt{box-shadow:none;border:0;margin:0;border-radius:0}
@page{size:80mm auto;margin:0}
@media print{
  html,body{width:80mm;margin:0!important;padding:0!important;background:#fff!important}
  .top,.foot,.no-print,.receipt-actions,.adminbar,.done-actions{display:none!important}
  .wrap{width:80mm!important;margin:0!important;padding:0!important}
  .receipt-page{display:block!important;width:80mm!important}
  .receipt{width:80mm!important;max-width:80mm!important;box-shadow:none!important;border:0!important;border-radius:0!important;margin:0!important;padding:4mm 4mm 18mm 4mm!important}
  .r-qr{width:38mm!important;height:38mm!important}
  .r-digital{grid-template-columns:40mm 1fr!important}
  .r-qr-wrap{width:40mm!important}
  .r-sign-line{border-bottom:1px solid #000!important}
  /* Gezielter Schutz NUR für besonders empfindliche Bereiche (QR-Code, Unterschriftsfeld,
     Preisblöcke), damit diese bei längeren Quittungen (z.B. Krankenfahrt-Vollbericht mit
     vielen Zeilen) nicht mitten im Element über eine Seitengrenze hinweg "zerschnitten"
     werden. Betrifft NICHT die generelle @page-Höhe (die bleibt unverändert "auto", wie in
     allen früheren funktionierenden Versionen). */
  .r-digital, .r-qr-wrap, .r-sign, .r-amount, .kr-full-price-block{
    page-break-inside:avoid!important; break-inside:avoid!important;
  }
}

/* ══════ RESPONSIVE ══════ */
@media(max-width:760px){
  .done-layout{grid-template-columns:1fr}
  .receipt-actions{grid-template-columns:repeat(3,1fr)}
  .stats{grid-template-columns:1fr 1fr}
  .type-tabs{grid-template-columns:1fr}
  .type-tab{padding:12px 14px}
  .tab-icon{font-size:20px!important}
  .tab-sub{display:none}
  .price-grid{grid-template-columns:1fr 1fr}
  .grid2{grid-template-columns:1fr}
  .ea-price-row{grid-template-columns:1fr}
  .kr-price-row{grid-template-columns:1fr}
  .send-grid{grid-template-columns:1fr}
  .filters{gap:5px}
}
@media(max-width:480px){
  .price-grid{grid-template-columns:1fr}
  .price-big{font-size:32px!important;min-height:68px}
  .stats{grid-template-columns:1fr}
  .receipt-actions{grid-template-columns:1fr 1fr}
  .action-card.primary{grid-column:1/-1}
  .top{height:auto;padding:10px 12px;flex-wrap:wrap}
  .home-code{font-size:28px!important;min-height:68px}
  .find-code-input{font-size:24px!important}
  /* Vorschlagsliste IMMER direkt unter dem Eingabefeld – NICHT am unteren Bildschirmrand
     fixiert. Das vorherige position:fixed+bottom-Verhalten ließ die Liste weit weg vom
     Eingabefeld erscheinen (verzögert wirkend, unzuverlässige Auswahl, da Nutzer naturgemäß
     direkt unter dem Feld tippen, nicht am Bildschirmrand). */
  .ac-drop{max-height:50vh}
  .ac-item{font-size:15px;padding:13px 14px}
}

/* ── View layout with send panel ── */
.view-layout{display:grid;grid-template-columns:1fr minmax(280px,320px);gap:16px;align-items:start;max-width:1100px;margin:0 auto}
.view-send-panel{padding:18px;position:sticky;top:80px}
@media(max-width:800px){.view-layout{grid-template-columns:1fr}.view-send-panel{order:-1;position:static}}

/* ── Footer DASSOUKI ── */
.foot-dev{opacity:.7;font-size:11px}
.foot-dev-link{color:var(--y);text-decoration:none;font-weight:800}
.foot-dev-link:hover{text-decoration:underline}

/* ── Quick notes dropdown ── */
.quick-notes-wrap{margin-top:4px}
.qn-select{font-size:13px!important;padding:8px 10px!important}

/* ── Business Card auf Quittung ── */
.r-bizcard{margin:5px 0}
.r-bizcard-divider{display:flex;align-items:center;gap:6px;margin:4px 0;font-size:7px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:#888}
.r-bizcard-divider::before,.r-bizcard-divider::after{content:'';flex:1;height:1px;background:#ddd}
.r-bizcard-body{background:#fafafa;border:1px solid #e5e5e5;border-radius:4px;padding:5px 6px}
.r-bizcard-brand{font-size:11px;font-weight:900;color:#111}
.r-bizcard-name{font-size:9px;color:#333}
.r-bizcard-detail{font-size:8px;color:#444;line-height:1.4}
.r-bizcard-taxid{font-size:7px;color:#555;font-weight:800;margin-top:2px}
.r-bizcard-taxid-box{
  display:inline-block;font-size:9px;color:#111;font-weight:900;
  margin-top:5px;padding:3px 8px;background:#fef3c7;
  border:1.5px solid #fbbf24;border-radius:5px;letter-spacing:.02em;
}
.r-bizcard-contact{font-size:7px;color:#666;border-top:1px dashed #ddd;margin-top:4px;padding-top:3px;font-style:italic;line-height:1.4}

/* ── Logs filter ── */
.filters input[type=date]{min-width:120px}

/* ══════ BUSINESS CARD – Querformat-Anzeige, vertikaler Druck ══════ */
.bizcard-page{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:calc(100vh - 60px);padding:24px 16px;background:#eef0f3}
.biz-toolbar{background:#111827;padding:12px 20px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;position:sticky;top:0;z-index:50}

/* Bildschirm: zwei Spalten nebeneinander */
.bc-landscape{
  background:#fff; color:#111;
  width:100%; max-width:720px;
  border-radius:14px;
  box-shadow:0 10px 40px rgba(0,0,0,.18);
  display:grid; grid-template-columns:1.2fr 1fr;
  overflow:hidden;
  border:1px solid #e2e2e2;
}
.bc-col{padding:18px 20px; display:flex; flex-direction:column}
.bc-col-left{background:#fff; border-right:1px dashed #ddd; gap:9px}
.bc-col-right{background:#fafafa; justify-content:space-between; align-items:center; text-align:center; gap:12px}

/* Zentrale-Block (immer oben, fix, vom Fahrer nicht änderbar) */
.bc-zentrale-block{display:flex; align-items:center; gap:10px; border-bottom:2px solid #111; padding-bottom:9px; margin-bottom:2px}
.bc-logo{width:34px; height:34px; object-fit:contain; border-radius:7px; flex-shrink:0}
.bc-z-brand{font-size:16px; font-weight:950; color:#111; line-height:1.15}

/* Fahrer-Identifikation: Taxi-Nr / Name / Kennzeichen */
.bc-id-block{display:flex; flex-direction:column; gap:4px}
.bc-id-row{display:flex; align-items:baseline; gap:8px}
.bc-id-lbl{font-size:8px; font-weight:900; letter-spacing:.07em; color:#888; text-transform:uppercase; min-width:54px; flex-shrink:0}
.bc-id-val{font-size:12px; font-weight:800; color:#222}
.bc-id-taxi .bc-id-val{font-size:19px; font-weight:950; color:#111}
.bc-id-name{font-size:14px}

/* Direkte Kontaktbuttons des Fahrers */
.bc-direct-contact{display:grid; grid-template-columns:1fr 1fr; gap:6px; margin-top:2px}
.bc-direct-btn{
  display:flex; align-items:center; justify-content:center; gap:4px;
  font-size:10.5px; font-weight:900;
  padding:7px 6px; border-radius:7px;
  text-decoration:none; text-align:center;
}
.bc-direct-call{background:#111; color:#fff}
.bc-direct-wa{background:#25d366; color:#fff}

/* Über mich */
.bc-about{
  font-size:10px; color:#444; line-height:1.5; font-style:italic;
  background:#f8f9fb; border-left:3px solid #f5c842; border-radius:0 6px 6px 0;
  padding:6px 9px; margin-top:2px;
}

/* Arbeitszeiten kompakt-intelligent */
.bc-hours-block{background:#fffbea; border:1px solid #fde68a; border-radius:7px; padding:7px 10px; margin-top:2px}
.bc-hours-title{font-size:8px; font-weight:900; text-transform:uppercase; letter-spacing:.05em; color:#92400e; margin-bottom:4px}
.bc-hours-row{display:flex; justify-content:space-between; font-size:9.5px; color:#444; padding:1px 0}
.bc-hours-row b{color:#111; font-weight:800}

/* Google-Bewertung – generisch (Fahrer & Zentrale) */
.bc-review-btn{
  display:block; text-align:center;
  background:#fef3c7; color:#92400e; border:1px solid #fcd34d;
  font-size:9.5px; font-weight:800;
  padding:6px 8px; border-radius:7px;
  text-decoration:none; margin-top:2px;
}
.bc-review-zentrale{
  background:#eff6ff; color:#1e3a8a; border-color:#bfdbfe;
  margin-top:8px; width:100%;
}

/* Trenner mit Beschriftung */
.bc-divider-line{display:flex; align-items:center; gap:6px; font-size:7.5px; font-weight:900; text-transform:uppercase; letter-spacing:.07em; color:#999; margin-top:4px}
.bc-divider-line::before,.bc-divider-line::after{content:''; flex:1; height:1px; background:#ddd}

/* Business Card Taxiunternehmen */
.bc-biz{background:#f7f7f8; border:1px solid #e5e5e5; border-radius:8px; padding:8px 10px; display:flex; flex-direction:column; gap:1px}
.bc-biz-brand{font-size:12.5px; font-weight:900; color:#111}
.bc-biz-company{font-size:10px; color:#333; font-weight:700}
.bc-biz-detail{font-size:9px; color:#555; line-height:1.4}
.bc-biz-phone{font-weight:900; color:#111; font-size:10.5px}
.bc-biz-taxid{font-size:8px; color:#777; font-weight:800; margin-top:3px}
.bc-contact-note{font-size:7.5px; color:#888; font-style:italic; line-height:1.4; margin-top:5px; padding-top:5px; border-top:1px dashed #ddd}

/* Zusätzliche Hinweise / Notizen */
.bc-notes-block{display:flex; flex-direction:column; gap:2px; margin-top:2px}
.bc-note-item{font-size:8.5px; color:#15803d; font-weight:700}

/* Rechte Spalte: Bestellblock (Zentrale) */
.bc-order-block{display:flex; flex-direction:column; align-items:center; gap:7px; width:100%}
.bc-order-title{font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; color:#666}
.bc-call-big{
  display:block; width:100%;
  font-size:15px; font-weight:950;
  padding:11px 8px; border-radius:9px;
  text-decoration:none; letter-spacing:.005em;
  text-align:center; line-height:1.3;
}
.bc-wa-big{background:#25d366; color:#fff; box-shadow:0 4px 14px rgba(37,211,102,.35)}
.bc-call-row{
  display:block; width:100%; background:#111; color:#fff;
  font-size:12.5px; font-weight:800;
  padding:7px 8px; border-radius:8px;
  text-decoration:none; text-align:center;
}
.bc-order-hint{font-size:9.5px; color:#444; line-height:1.4; padding:0 4px}
.bc-order-hint strong{color:#111}

/* QR-Block: GROSS für den Fahrgast, klar zum Scannen, klickbar für Zoom */
.bc-qr-block{display:flex; flex-direction:column; align-items:center; gap:6px}
/* Fahrer-Foto über dem Bizcard-QR-Code */
.bc-qr-photo-wrap{display:flex;flex-direction:column;align-items:center;gap:5px;margin-bottom:6px}
.bc-qr-photo{width:96px;height:96px;object-fit:cover;border-radius:50%;border:3px solid #fff;box-shadow:0 4px 16px rgba(0,0,0,.28)}
.bc-qr-photo-name{font-size:10px;font-weight:900;color:#222;text-align:center;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bc-qr-img{
  width:150px; height:150px; border:3px solid #fff; box-shadow:0 0 0 2px #ccc;
  border-radius:4px; cursor:pointer; transition:transform .15s;
}
.bc-qr-img:hover{transform:scale(1.04)}
.bc-qr-cap{font-size:8.5px; color:#777; font-weight:700; text-align:center; max-width:160px; line-height:1.35}
.bc-qr-zoom-hint{
  font-size:9px; font-weight:800; color:#1e3a8a; background:#eff6ff;
  border:1px solid #bfdbfe; border-radius:6px; padding:4px 10px;
  cursor:pointer; margin-top:2px;
}

/* ══════ REVIEW-QR-KARTE (Druckformat, unterstützt auch Modus "beide") ══════ */
.rv-qr-card{break-inside:avoid}
.rv-qr-header{background:linear-gradient(135deg,#0d1117,#1a2438);padding:16px 18px;display:flex;align-items:center;gap:12px}
.rv-qr-logo-wrap{flex-shrink:0}
.rv-qr-logo{width:38px;height:38px;object-fit:contain;border-radius:8px}
.rv-qr-driver-photo{width:48px;height:48px;object-fit:cover;border-radius:50%;border:2px solid rgba(245,200,66,.5);flex-shrink:0}
.rv-qr-brand{color:#fff;font-weight:900;font-size:14px;line-height:1.2}
.rv-qr-drivername{color:rgba(255,255,255,.55);font-size:11px;margin-top:2px}
.rv-qr-body{padding:20px;text-align:center;background:#fff}
.rv-qr-headline{color:#111;font-weight:800;font-size:13px;margin-bottom:14px;line-height:1.4}
.rv-qr-wrap{position:relative;display:inline-block;margin:0 auto}
.rv-qr-img{width:220px;height:220px;border:2px solid #ddd;border-radius:10px;cursor:pointer;display:block}
.rv-qr-pulse{position:absolute;inset:-6px;border-radius:16px;border:2px solid rgba(245,200,66,.6);animation:rvPulse 2.4s ease-in-out infinite;pointer-events:none}
@keyframes rvPulse{0%,100%{transform:scale(1);opacity:.7}50%{transform:scale(1.04);opacity:.2}}
.rv-qr-steps{display:flex;gap:0;margin-top:14px;justify-content:center}
.rv-qr-step{display:flex;flex-direction:column;align-items:center;gap:4px;padding:0 10px;font-size:10px;font-weight:700;color:#555;border-right:1px solid #e5e7eb}
.rv-qr-step:last-child{border-right:none}
.rv-qr-step-num{width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,#f5c842,#ffe376);color:#0d1400;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:center}
.rv-qr-footer{background:#f9fafb;padding:10px 18px;display:flex;justify-content:center;gap:10px;font-size:10px;font-weight:700;color:#9ca3af}
@media print{
  .rv-qr-pulse{display:none}
  .rv-qr-img{cursor:default}
}

/* QR-Vollbild-Overlay (Zoom zum einfachen Scannen) */
.qr-zoom-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.92);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  z-index:9999; opacity:0; visibility:hidden; transition:opacity .2s;
  cursor:pointer; gap:16px;
}
.qr-zoom-overlay.open{opacity:1; visibility:visible}
.qr-zoom-img{
  width:min(85vw,85vh); height:min(85vw,85vh);
  background:#fff; border-radius:12px; padding:16px;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
}
.qr-zoom-hint{color:#fff; font-size:13px; font-weight:700; opacity:.8}

/* Save-contact Hinweis unter der Karte (Bildschirm only) */
.bc-save-contact-hint{width:100%; max-width:720px}

/* ── Responsive Bildschirm ── */
@media(max-width:680px){
  .bc-landscape{grid-template-columns:1fr}
  .bc-col-left{border-right:0; border-bottom:1px dashed #ddd}
  .bc-qr-img{width:180px; height:180px}
}

/* ── DRUCK: 80mm Thermodrucker – Blöcke VERTIKAL gestapelt, jeweils volle Breite ── */
@media print{
  .biz-toolbar, .no-print{display:none!important}
  html,body{background:#fff!important; margin:0!important; padding:0!important}
  .bizcard-page{padding:0!important; min-height:auto!important; background:#fff!important; display:block!important}
  .bc-landscape{
    width:100%!important; max-width:none!important;
    display:flex!important; flex-direction:column!important; /* untereinander statt nebeneinander */
    box-shadow:none!important; border:0!important; border-radius:0!important;
  }
  .bc-col{padding:10px 12px!important; width:100%!important}
  .bc-col-left{border-right:0!important; border-bottom:2px dashed #999!important; page-break-after:avoid}
  .bc-col-right{background:#fff!important}
  /* QR beim Drucken besonders groß für zuverlässiges Scannen vom Thermopapier */
  .bc-qr-img{width:160px!important; height:160px!important; box-shadow:none!important; border:2px solid #000!important; cursor:default}
  .bc-qr-cap{font-size:10px!important; font-weight:800!important; color:#000!important}
  .bc-call-big{font-size:14px!important; padding:9px!important}
  .bc-call-row{font-size:11px!important}
  .bc-z-brand{font-size:15px!important}
}
/* Querformat-Druckseite für die Business Card (breites Layout passt besser quer aufs Band) */
@page bizcard-landscape { size: landscape; margin: 4mm; }
.bizcard-page{ page: bizcard-landscape; }

/* ══════ MUSIK CARD ══════ */
.musik-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 60px);background:linear-gradient(135deg,#0d0d0d,#1a1a2e);padding:20px}
.musik-card{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f1535 100%);border:2px solid rgba(245,200,66,.3);border-radius:20px;width:min(380px,100%);overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.musik-header{padding:24px 24px 16px;text-align:center}
.musik-taxi-badge{display:inline-block;border:2px solid var(--y);color:var(--y);font-size:11px;font-weight:900;letter-spacing:.15em;padding:3px 12px;border-radius:4px;margin-bottom:12px}
.musik-title{font-size:36px;font-weight:950;color:#fff;line-height:1.1;margin-bottom:8px}
.musik-scannen{color:var(--y)}
.musik-sub{font-size:13px;color:#aaa;line-height:1.5}
.musik-qr-wrap{background:rgba(255,255,255,.05);padding:20px;text-align:center}
.musik-note-icon{font-size:24px;margin-bottom:8px}
.musik-qr-hint{font-size:11px;color:#aaa;margin-bottom:14px;line-height:1.4}
.musik-qr-box{background:#fff;border-radius:12px;padding:10px;display:inline-block;box-shadow:0 4px 20px rgba(0,0,0,.4);page-break-inside:avoid;break-inside:avoid}
.musik-qr{width:180px;height:180px;display:block}
.musik-link-clickable{
  display:block; margin-top:14px; padding:11px 16px;
  background:rgba(245,200,66,.12); border:1.5px solid rgba(245,200,66,.4);
  border-radius:10px; color:var(--y); font-size:12px; font-weight:800;
  text-decoration:none; word-break:break-all; transition:background .15s;
}
.musik-link-clickable:hover{ background:rgba(245,200,66,.2); }
.musik-powered{font-size:10px;color:rgba(245,200,66,.7);margin-top:10px;font-weight:700;letter-spacing:.05em}
.musik-footer{background:rgba(0,0,0,.3);padding:14px 20px;display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;font-size:12px;font-weight:700;text-align:center}
.musik-note-deco{font-size:16px;color:var(--y)}
.musik-share-box{ max-width:380px; margin:16px auto 0; }
@media print{
  .biz-toolbar{display:none!important}
  .musik-page{min-height:auto;padding:0;background:#fff!important;width:80mm!important}
  .musik-card{box-shadow:none;width:100%;max-width:74mm!important;border:2px solid #333;border-radius:10px}
  .musik-header{background:#111}
  .musik-title,.musik-scannen{color:#111!important}
  .musik-qr{width:60mm!important;height:60mm!important}
}
/* ── Driver Profile Fields ── */
.prof-field{display:flex;flex-direction:column;gap:0}
.prof-field-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.fi-hidden{opacity:.45;border-style:dashed!important}

/* ── Musik page muziek toolbar ── */
@media print{
  body.musik-print-mode .biz-toolbar{display:none!important}
}

/* ── Driver Profile: section dividers & weekly hours grid ── */
.prof-section-divider{
  display:flex;align-items:center;gap:10px;
  font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;
  color:var(--y);margin:4px 0 2px;
}
.prof-section-divider::before,.prof-section-divider::after{
  content:'';flex:1;height:1px;background:var(--brd);
}
.hours-grid{display:grid;gap:7px}
.hours-row{display:grid;grid-template-columns:90px 1fr;gap:10px;align-items:center}
.hours-day{font-size:12px;font-weight:700;color:var(--muted)}
.hours-input{font-size:13px!important;padding:9px 12px!important}
@media(max-width:480px){
  .hours-row{grid-template-columns:1fr}
  .hours-day{font-size:11px}
}

/* ══════ DISCOUNT / TIP BOXES (Quittungsformular) ══════ */
.discount-box{
  background:rgba(96,165,250,.06); border:1px solid rgba(96,165,250,.18);
  border-radius:11px; padding:13px 14px; margin-top:12px;
}

/* ══════ Live-Vorschau: Fahrpreis → Rabatt → MwSt. ══════ */
.price-breakdown{
  background:rgba(22,201,110,.05); border:1px solid rgba(22,201,110,.2);
  border-radius:11px; padding:12px 14px; margin-top:12px; display:grid; gap:6px;
}
.pb-row{display:flex; justify-content:space-between; align-items:center; font-size:13px}
.pb-row span{color:var(--muted)}
.pb-row b{font-weight:800; color:var(--txt)}
.pb-discount span, .pb-discount b{color:#fca5a5}
.pb-subtotal{border-top:1px dashed var(--brd); padding-top:8px; margin-top:2px}
.pb-subtotal span, .pb-subtotal b{color:#6ee7b7; font-size:14px; font-weight:900}

/* ══════ RECEIPT: Discount/Tip breakdown ══════ */
.r-discount-block{background:#fef9f0;border:1px solid #fde9c8;border-radius:5px;padding:5px 7px;margin:5px 0}
.r-discount-row span{color:#b45309}
.r-discount-row b{color:#b45309;font-weight:900}
.r-tip-block{background:#fffbea;border:1px solid #fde68a;border-radius:5px;padding:5px 7px;margin:5px 0}
.r-tip-row span{color:#92400e;font-weight:800}
.r-tip-row b{color:#92400e;font-weight:900}

/* ══════ ABRECHNUNG: Preview grid (Neue Abrechnung Seite) ══════ */
.abr-preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.abr-preview-grid > div{
  background:rgba(255,255,255,.04); border:1px solid var(--brd); border-radius:9px;
  padding:10px 12px; display:flex; justify-content:space-between; align-items:center;
}
.abr-preview-grid > div span{font-size:12px;color:var(--muted)}
.abr-preview-grid > div b{font-size:14px;font-weight:900}
.abr-highlight{background:rgba(22,201,110,.1)!important;border-color:rgba(22,201,110,.3)!important}
.abr-highlight b{color:#6ee7b7}
@media(max-width:560px){.abr-preview-grid{grid-template-columns:1fr}}

/* ══════ ABRECHNUNG: Print receipt (Schichtzettel) ══════ */
.abr-receipt{width:80mm}
.abr-section-title{
  font-size:8px; font-weight:900; text-transform:uppercase; letter-spacing:.06em;
  color:#888; margin:8px 0 3px; padding-bottom:2px; border-bottom:1px solid #ddd;
}

/* ══════ DRIVER DASHBOARD: zweistufige Aktionsleiste ══════ */
.driver-primary-row{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:10px; margin-bottom:12px;
}
.driver-primary-btn{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:6px; padding:18px 10px; border-radius:16px; min-height:96px;
  text-decoration:none; font-weight:900; font-size:13px;
  border:1.5px solid var(--brd); transition:transform .15s, box-shadow .15s, opacity .15s;
  -webkit-tap-highlight-color:transparent; touch-action:manipulation;
}
.driver-primary-btn span{font-size:28px}
.driver-primary-btn:hover{transform:translateY(-2px)}
.driver-primary-btn:active{transform:scale(.96); opacity:.85}
.driver-primary-receipt{
  background:linear-gradient(135deg,var(--y),var(--y2)); color:#0d1400; border-color:transparent;
  box-shadow:0 6px 20px rgba(245,200,66,.25);
}
.driver-primary-biz{
  background:rgba(96,165,250,.14); border-color:rgba(96,165,250,.32); color:var(--blue);
}
.driver-primary-music{
  background:rgba(168,85,247,.14); border-color:rgba(168,85,247,.32); color:#c084fc;
}
.driver-secondary-row{
  display:flex; gap:7px; flex-wrap:wrap; margin-bottom:16px;
  padding-top:10px; border-top:1px solid var(--brd);
}
.driver-secondary-row .btn{opacity:.85}
.driver-secondary-row .btn:hover{opacity:1}

/* ══════ DRIVER: Live-Schicht-Status-Banner ══════ */
.shift-status-banner{
  display:flex; align-items:center; gap:12px;
  background:linear-gradient(135deg,rgba(22,201,110,.12),rgba(22,201,110,.05));
  border:1px solid rgba(22,201,110,.25); border-radius:14px;
  padding:13px 16px; margin-bottom:16px;
}
.shift-status-icon{font-size:24px; flex-shrink:0}
.shift-status-text{font-size:13px; color:#d1fae5; line-height:1.4}
.shift-status-text strong{color:#6ee7b7}

/* ══════ ABRECHNUNG: Zähler-Reset-Hinweis ══════ */
.shift-reset-note{
  display:flex; align-items:center; gap:8px; justify-content:center;
  font-size:12px; color:var(--muted); margin-top:14px;
  padding-top:14px; border-top:1px dashed var(--brd);
}

/* ══════ ABRECHNUNG: Schicht-Navigation (vor/zurück zwischen Schichten) ══════ */
.shift-nav-bar{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  margin-bottom:14px; max-width:560px;
}
.shift-nav-current{ font-size:12px; font-weight:900; color:var(--muted); white-space:nowrap; }

/* ══════ DRIVER: Schicht-Zusammenfassung statt Einzelfahrten ══════ */
.shift-summary-card{
  background:rgba(255,255,255,.04); border:1px solid var(--brd); border-radius:16px;
  padding:18px; margin-bottom:16px;
}
.shift-summary-live{ border-color:rgba(22,201,110,.3); background:rgba(22,201,110,.05); }
.shift-summary-closed{ border-color:rgba(96,165,250,.25); background:rgba(96,165,250,.04); }
.shift-summary-empty{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:8px; padding:28px 18px; color:var(--muted); font-size:13px; }
.shift-summary-header{ display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
.shift-summary-badge{ font-size:13px; font-weight:900; }
.shift-summary-date{ font-size:12px; color:var(--muted); font-weight:700; }
.shift-summary-meta{ font-size:12px; color:var(--muted); margin-bottom:10px; }
.shift-summary-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(90px,1fr)); gap:10px; margin-top:8px;
}
.shift-summary-grid > div{
  background:rgba(0,0,0,.18); border-radius:11px; padding:10px 12px;
}
.shift-summary-grid small{ display:block; color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; margin-bottom:3px; }
.shift-summary-grid b{ font-size:17px; font-weight:900; }
.shift-summary-highlight{ background:rgba(245,200,66,.13)!important; }
.shift-summary-highlight b{ color:var(--y); }

/* ══════ OTP / 2FA ══════ */
.otp-panel{max-width:380px}
.otp-input{
  font-size:32px!important; font-weight:900; text-align:center; letter-spacing:.3em;
  padding:14px 10px!important; font-family:monospace;
}
.otp-countdown-wrap{display:flex; justify-content:center; margin:6px 0 10px}
.otp-countdown{
  font-size:13px; font-weight:800; color:var(--muted);
  background:rgba(255,255,255,.05); border:1px solid var(--brd);
  border-radius:99px; padding:6px 16px;
}
.otp-countdown #otpCountdownVal{color:var(--y); font-weight:900}
.otp-countdown.otp-expired{ color:#fca5a5; border-color:rgba(239,68,68,.3); background:rgba(239,68,68,.08); }
.otp-countdown.otp-expired #otpCountdownVal{ color:#fca5a5; }

/* ══════ DRIVER: Einzelfahrten innerhalb der Schicht-Zusammenfassung ══════ */
.shift-trips-list{ margin-top:14px; padding-top:12px; border-top:1px dashed var(--brd); }
.shift-trips-title{ font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); margin-bottom:8px; }
.shift-trip-row{
  display:flex; align-items:center; gap:8px; padding:8px 10px;
  background:rgba(0,0,0,.15); border-radius:9px; margin-bottom:5px;
  text-decoration:none; color:var(--txt); font-size:12px; transition:background .15s;
}
.shift-trip-row:hover{ background:rgba(255,255,255,.06); }
.shift-trip-time{ font-weight:800; color:var(--y); flex-shrink:0; font-size:11px; }
.shift-trip-route{ flex:1; color:var(--muted); overflow:hidden; white-space:nowrap; font-size:11px; }
.shift-trip-price{ font-weight:900; flex-shrink:0; }
.shift-trip-pay{ font-size:10px; color:var(--muted); background:rgba(255,255,255,.06); border-radius:6px; padding:2px 6px; flex-shrink:0; }
@media(max-width:480px){
  .shift-trip-route{ display:none; }
}

/* ══════ ABRECHNUNG: Schicht-Zeiten gerundet ══════ */
.shift-times-box{
  display:flex; gap:14px; flex-wrap:wrap; align-items:center;
  background:rgba(255,255,255,.04); border:1px solid var(--brd); border-radius:10px;
  padding:10px 14px; margin:10px 0; font-size:13px;
}
.shift-times-box small{ color:var(--muted); font-size:11px; }

/* ══════ SUCHE: Rechtlicher Hinweis zur Datenspeicherung (elegant) ══════ */
.find-legal-notice-elegant{
  display:flex; gap:14px; align-items:flex-start;
  background:linear-gradient(135deg,rgba(245,200,66,.08),rgba(245,200,66,.02));
  border:1px solid rgba(245,200,66,.22); border-radius:16px;
  padding:18px 20px; margin-top:18px; max-width:460px; width:100%;
  box-shadow:0 8px 28px rgba(0,0,0,.18);
}
.find-legal-notice-top{
  margin-top:0; margin-bottom:18px;
  border-color:rgba(245,200,66,.3);
  background:linear-gradient(135deg,rgba(245,200,66,.1),rgba(245,200,66,.03));
}
.find-legal-elegant-icon{
  font-size:26px; flex-shrink:0; margin-top:1px;
  filter:drop-shadow(0 2px 6px rgba(245,200,66,.3));
}
.find-legal-elegant-body{ flex:1; }
.find-legal-elegant-title{
  font-size:13px; font-weight:900; color:#fde68a;
  letter-spacing:.02em; margin-bottom:6px;
}
.find-legal-elegant-body p{ font-size:12px; line-height:1.65; color:var(--muted); margin:0 0 8px; }
.find-legal-elegant-body p:last-child{ margin-bottom:0; }
.find-legal-elegant-body strong{ color:#fde68a; font-weight:800; }
.find-legal-elegant-tip{
  background:rgba(245,200,66,.07); border-radius:9px; padding:9px 11px;
  border-left:2px solid rgba(245,200,66,.4);
}

/* ══════ SUCHE: Hinweis bei nicht gefundener Quittung (Ablauf-Vermutung) ══════ */
.find-notfound-expiry-hint{
  margin-top:14px; padding:11px 14px; border-radius:11px;
  background:rgba(96,165,250,.07); border:1px solid rgba(96,165,250,.2);
  font-size:11.5px; line-height:1.55; color:var(--muted); text-align:left;
}

/* ══════ DRIVER: Musik-Link-Karte mit direktem Öffnen-Button ══════ */
.music-link-card{
  display:flex; align-items:center; gap:12px;
  background:linear-gradient(135deg,rgba(168,85,247,.1),rgba(168,85,247,.04));
  border:1px solid rgba(168,85,247,.25); border-radius:14px;
  padding:13px 15px; margin-bottom:16px;
}
.music-link-icon{ font-size:24px; flex-shrink:0; }
.music-link-info{ flex:1; min-width:0; }
.music-link-title{ font-size:13px; font-weight:900; color:#c084fc; }
.music-link-url{ font-size:11px; color:var(--muted); margin-top:1px; word-break:break-all; }
.music-link-open-btn{
  flex-shrink:0; background:rgba(168,85,247,.18); border:1px solid rgba(168,85,247,.4);
  color:#c084fc; font-weight:900; font-size:12px; padding:8px 14px; border-radius:10px;
  text-decoration:none; transition:background .15s;
}
.music-link-open-btn:hover{ background:rgba(168,85,247,.3); }

/* ══════ Bearbeitungssperre-Countdown ══════ */
.edit-lock-countdown{
  max-width:680px; margin:0 auto 12px;
  background:rgba(245,200,66,.08); border:1px solid rgba(245,200,66,.25);
  border-radius:10px; padding:10px 14px; font-size:13px; color:#fde68a;
}
.edit-lock-countdown strong{ color:var(--y); font-size:15px; }

/* ══════ FREENOW: Visuell verbundener, eigenständiger Block ══════ */
.freenow-block{
  margin-top:14px; border-radius:14px; overflow:hidden;
  background:linear-gradient(135deg,rgba(94,23,235,.1),rgba(168,85,247,.05));
  border:1.5px solid rgba(168,85,247,.3);
}
.freenow-block-header{
  display:flex; align-items:center; gap:10px; padding:12px 14px;
  background:rgba(94,23,235,.12); border-bottom:1px solid rgba(168,85,247,.2);
}
.freenow-icon{ font-size:22px; flex-shrink:0; }
.freenow-title{ font-size:13px; font-weight:900; color:#c084fc; }
.freenow-sub{ font-size:10.5px; color:var(--muted); margin-top:1px; }
.freenow-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); gap:8px; padding:12px 14px; }
.freenow-grid > div{ background:rgba(0,0,0,.15); border-radius:10px; padding:9px 11px; }
.freenow-grid span{ display:block; font-size:10px; color:var(--muted); font-weight:700; margin-bottom:2px; }
.freenow-grid b{ font-size:15px; font-weight:900; color:#e9d5ff; }
.freenow-tip-cell{ background:rgba(168,85,247,.12)!important; border:1px solid rgba(168,85,247,.25); }
.freenow-tip-cell b{ color:#c084fc; }
.freenow-tip-cell small{ display:block; font-size:8.5px; color:var(--muted); font-weight:400; margin-top:1px; }

/* ══════ ZUVERLÄSSIGE AUFSCHLÜSSELUNG NACH ZAHLUNGSART ══════ */
.payment-breakdown-block{ margin-top:14px; }
.payment-breakdown-title{
  font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.05em;
  color:var(--muted); margin-bottom:8px;
}
.payment-breakdown-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:8px; }
.payment-breakdown-item{
  display:flex; align-items:center; gap:6px; flex-wrap:wrap;
  background:rgba(255,255,255,.04); border:1px solid var(--brd); border-radius:10px;
  padding:9px 11px;
}
.payment-breakdown-label{ font-size:11px; font-weight:800; color:var(--txt); flex:1; }
.payment-breakdown-count{ font-size:10px; color:var(--muted); font-weight:700; }
.payment-breakdown-sum{ font-size:14px; font-weight:900; width:100%; margin-top:2px; }

/* ══════ SCHICHT-BESTÄTIGUNGS-MODAL ══════ */
.shift-confirm-overlay{
  position:fixed; inset:0; z-index:9000;
  background:rgba(0,0,0,.65); backdrop-filter:blur(3px);
  display:flex; align-items:center; justify-content:center; padding:20px;
}
.shift-confirm-box{
  background:var(--surf); border:1px solid var(--brd); border-radius:18px;
  padding:26px 22px; max-width:360px; width:100%; text-align:center;
  box-shadow:0 20px 60px rgba(0,0,0,.5);
}
.shift-confirm-box h3{ margin:0 0 8px; font-size:18px; }
.shift-confirm-text{ font-size:13px; color:var(--muted); margin-bottom:16px; line-height:1.5; }
.shift-confirm-box .fl{ text-align:left; margin-bottom:6px; }
.shift-confirm-box .fi{ text-align:center; font-weight:900; font-size:16px; }
.shift-confirm-actions{ display:flex; gap:10px; margin-top:14px; }
.shift-confirm-actions .btn{ flex:1; justify-content:center; }

/* ══════ EINSTELLUNGEN: WORDPRESS-STYLE TABS ══════ */
.settings-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:2px solid var(--brd);margin-bottom:22px}
.settings-tab{background:none;border:none;border-bottom:3px solid transparent;color:var(--muted);font-size:13.5px;font-weight:700;padding:11px 16px;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap;margin-bottom:-2px;display:flex;align-items:center;gap:6px}
.settings-tab:hover{color:var(--txt)}
.settings-tab.active{color:var(--y);border-bottom-color:var(--y)}
.settings-panel{display:none;animation:settingsPanelIn .3s ease}
.settings-panel.active{display:block}
@keyframes settingsPanelIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media (max-width:640px){
  .settings-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .settings-tab{font-size:12.5px;padding:10px 12px}
}
