/* My Smile Disposition – gemeinsame Oberfläche (Fahrer-App und Admin-Touren). Design aus dem Fahrer-App-Entwurf; Selektoren sind auf .dsp begrenzt. */
.dsp{--bg:#f6f4ee;--ink:#292721;--muted:#777166;--gold:#ad813b;--line:#e7e1d6;--blue:#e6eef3;--green:#e7efe5}
.dsp, .dsp *{box-sizing:border-box}
.dsp{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.dsp button{font:inherit;cursor:pointer}
.dsp button:disabled{opacity:.45;cursor:default}
.dsp button:focus-visible, .dsp a:focus-visible{outline:3px solid #52748f;outline-offset:3px}
.dsp .app{max-width:520px;margin:auto;padding:24px 18px 100px}
.dsp .brand{display:flex;align-items:center;justify-content:space-between}
.dsp .brand strong{font:700 31px Georgia,serif}
.dsp .pill{font-size:12px;font-weight:650;border-radius:20px;padding:6px 10px;background:#f0e1c6;color:#805d26}
.dsp .intro{font-size:14px;color:var(--muted);margin:8px 0 22px}
.dsp .demo{background:#ece8dc;border-radius:12px;padding:10px 13px;font-size:12px;color:#625b4f;margin-bottom:22px;line-height:1.5}
.dsp .tabs{display:flex;border-bottom:1px solid var(--line);gap:18px;margin-bottom:24px}
.dsp .tab{border:0;background:none;padding:10px 3px 14px;color:var(--muted);font-weight:650}
.dsp .tab.active{border-bottom:3px solid var(--gold);color:#886424}
.dsp .count{border-radius:9px;padding:2px 6px;background:#e9e5da;font-size:12px;margin-left:5px}
.dsp .heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.dsp .heading h1{font-size:24px;letter-spacing:-.5px;margin:0}
.dsp .heading span{font-size:13px;color:var(--muted)}
.dsp .card{background:white;border:1px solid var(--line);border-radius:22px;padding:20px;margin-bottom:16px;box-shadow:0 3px 14px #453c2205}
.dsp .eyebrow{font-size:11px;font-weight:700;letter-spacing:1.2px;color:var(--gold);text-transform:uppercase;margin-bottom:8px}
.dsp .card h2{font-size:21px;margin:0 0 5px}
.dsp .sub{font-size:13px;color:var(--muted);line-height:1.5;margin:0 0 17px}
.dsp .stop{display:grid;grid-template-columns:32px 1fr;gap:11px;padding:15px 0}
.dsp .stop+.stop{border-top:1px solid var(--line)}
.dsp .num{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#f2efe7;font-size:14px;font-weight:700}
.dsp .stop-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.dsp .address{font-size:17px;font-weight:700}
.dsp .town, .dsp .customer{font-size:13px;color:var(--muted);margin-top:3px}
.dsp .status{font-size:11px;font-weight:650;border-radius:16px;padding:5px 8px;white-space:nowrap;background:#f3e6cf;color:#7f5d28}
.dsp .status.underway{background:var(--blue);color:#36586e}
.dsp .status.done{background:var(--green);color:#456443}
.dsp .btn{width:100%;min-height:48px;border-radius:12px;border:1px solid #c5aa7a;background:white;color:#795a28;font-weight:650;padding:12px 15px;display:flex;justify-content:center;align-items:center;gap:9px;margin-top:10px;text-decoration:none}
.dsp .btn.primary{background:var(--gold);color:white;border-color:var(--gold)}
.dsp .btn.secondary{border-color:var(--line);color:var(--ink)}
.dsp .btn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7}
.dsp .stats{display:flex;gap:8px;margin:4px 0 16px}
.dsp .stats span{font-size:12px;background:#f6f3ec;border-radius:8px;padding:7px 9px}
.dsp .note{font-size:12px;color:var(--muted);line-height:1.5;margin:14px 0 0}
.dsp .pay{font-size:13px;font-weight:650;background:#f6f3ec;padding:10px 12px;border-radius:9px;margin:12px 0}
.dsp .pay.paid{background:#edf2e9;color:#456443}
.dsp .remark{font-size:13px;line-height:1.5;color:#625c52;margin:10px 0}
.dsp .actions{display:flex;gap:8px}
.dsp .actions .btn{font-size:13px;min-height:43px;padding:9px}
.dsp .small{border:0;background:none;color:var(--muted);font-size:12px;text-decoration:underline;min-height:40px}
.dsp .footer{text-align:center;color:var(--muted);font-size:12px}
.dsp .empty{text-align:center;padding:28px 10px}
.dsp .empty h2{font-size:23px}
.dsp .check{font-size:34px;color:#668063;margin:8px}
.dsp .done-row{opacity:.7}
.dsp .detail{border-top:1px solid var(--line);padding-top:12px;margin-top:14px}
.dsp .detail summary{font-size:13px;cursor:pointer;color:var(--muted)}
.dsp .list-card .stop{padding:0}
.dsp .list-card .btn{font-size:13px}
.dsp .toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);width:calc(100% - 36px);max-width:484px;padding:14px 17px;background:var(--ink);color:white;border-radius:13px;font-size:13px;box-shadow:0 6px 24px #0002;z-index:20;display:none}
.dsp .toast.show{display:block}
.dsp dialog{width:calc(100% - 36px);max-width:450px;border:1px solid var(--line);border-radius:20px;padding:24px;color:var(--ink);box-shadow:0 12px 60px #0002}
.dsp dialog::backdrop{background:#29272166}
.dsp dialog h2{font-size:22px;margin-top:0}
.dsp dialog p{font-size:14px;color:var(--muted);line-height:1.6}
.dsp dialog .dialog-actions{display:flex;gap:10px}
.dsp .overview{background:#f5f1e9;padding:14px;border-radius:12px;font-size:14px;line-height:1.7}
.dsp .dialog-actions .btn{flex:1}
@media(min-width:750px){.dsp{background:#ede9df}
.dsp .app{margin:30px auto;border:1px solid #ded8cb;border-radius:30px;background:var(--bg);min-height:900px;padding:28px 22px 40px}}
@media(max-width:360px){.dsp .app{padding:18px 12px 70px}
.dsp .card{padding:16px}
.dsp .stop-head{display:block}
.dsp .status{display:inline-block;margin-top:7px}}
.dsp .field{display:block;font-size:14px;font-weight:600;margin:14px 0}
.dsp .field input, .dsp .field select, .dsp .field textarea{display:block;width:100%;font:inherit;font-weight:400;color:var(--ink);background:white;border:1px solid var(--line);border-radius:10px;padding:12px;margin-top:6px;min-height:46px}
.dsp .field textarea{min-height:85px}
.dsp h3{font-size:17px;margin-top:22px}
.dsp .stop-tags{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}
.dsp .supplier-badge{display:inline-block;border-radius:8px;padding:5px 9px;background:#fff0e4;color:#a33b08;border:1px solid #f8bc94;font-size:14px;font-weight:750;white-space:nowrap}
@media(max-width:360px){.dsp .stop-tags{flex-direction:row;align-items:center;flex-wrap:wrap;margin-top:8px}
.dsp .stop-tags .status{margin-top:0}}
.dsp .tour-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px 12px;flex-wrap:wrap;margin-bottom:5px}
.dsp .tour-card-head h2{flex:1 1 130px;margin:0;min-width:0}
.dsp .btn.tour-add-button{flex:0 0 auto;width:auto;min-height:40px;margin:0 0 0 auto;padding:8px 10px;border-radius:10px;font-size:14px;white-space:nowrap;color:#795a28;background:#faf8f2}
.dsp .btn.addition-choice{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:4px}
.dsp .addition-choice strong{font-size:17px}
.dsp .addition-assessment{font-size:14px;color:#456443;font-weight:600;line-height:1.5}
.dsp .addition-assessment.warning{color:#8b611b}
.dsp .addition-demo-note{margin:0 0 14px}
.dsp .confirmation-code{margin:14px 0;padding:12px;background:#faf3e9;border:1px solid #e8d2af;border-radius:12px}
.dsp .confirmation-label{display:block;font-size:14px;color:var(--muted);margin-bottom:7px}
.dsp .confirmation-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.dsp .confirmation-value{font-size:24px;font-weight:800;letter-spacing:.04em;overflow-wrap:anywhere;min-width:0;user-select:all;-webkit-user-select:all}
.dsp .confirmation-copy{background:white;border:1px solid #d8bf97;border-radius:9px;padding:9px 12px;min-height:40px;font-size:14px;font-weight:650;color:#795a28}
.dsp .list-card .stop{display:block}
.dsp .next-stop{background:#faf3e5;border:1px solid #ddbf8b;border-radius:14px;padding:12px;margin:12px 0}
.dsp .next-label{margin-bottom:0}
.dsp .following-stop{padding:4px 0}
.dsp .free-heading{color:var(--muted);font-size:16px}
.dsp .incoming-card{border-color:#d5b77f}
.dsp .demo-controls{margin:0 0 16px}
.dsp .demo-controls summary{font-size:13px;color:var(--muted);cursor:pointer}
.dsp .kitchen-state{color:#6f592d}
.dsp .review-route{margin:14px 0;padding:14px;border-radius:12px;background:#f6f3ec}
.dsp .review-route ol{margin:8px 0 0;padding-left:24px}
.dsp .review-route li{padding:5px 0}
.dsp .return-estimate{padding:12px 14px;margin:0 0 16px;background:#f4efe4;border-radius:12px;line-height:1.5}
.dsp .return-estimate strong{display:block;font-size:15px}
.dsp .return-estimate span{display:block;font-size:12px;color:var(--muted);margin-top:3px}
.dsp .photo-input{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.dsp .overview label.btn{cursor:pointer}
.dsp .overview label.btn:focus-within{outline:3px solid #52748f}
.dsp .overview .note{margin-bottom:12px}

.dsp{color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.35}
.dsp.dsp-page{background:var(--bg);min-height:100vh}
.dsp h1,.dsp h2,.dsp h3,.dsp p{font-family:inherit}
.dsp .tabs{margin-top:4px}
.dsp .banner{background:#f6ecd5;border:1px solid #e3cf9f;color:#6b531f;border-radius:12px;padding:11px 13px;font-size:13px;line-height:1.5;margin:0 0 16px}
.dsp .banner.error{background:#fbe9e6;border-color:#eebdb5;color:#8a2f22}
.dsp .driver-bar{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:13px;color:var(--muted);margin:0 0 14px}
.dsp .driver-bar b{color:var(--ink)}
.dsp .driver-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;background:#6f9b66}
.dsp .driver-dot.busy{background:#c39a45}
.dsp .notice{background:#fff6e5;border:1px solid #ecd29b;border-radius:12px;padding:10px 12px;margin:0 0 12px;font-size:13px;line-height:1.5;color:#5f4a1b}
.dsp .notice .notice-actions{display:flex;gap:8px;margin-top:8px}.dsp .notice .btn{margin-top:0;min-height:38px;font-size:13px;padding:7px 10px}
.dsp .hint{font-size:12px;color:var(--muted);line-height:1.5;margin:8px 0 0}
.dsp .login{max-width:380px;margin:40px auto}.dsp .login .btn{margin-top:18px}
.dsp .stop-time{font-size:12px;color:var(--muted);margin-top:3px}
.dsp .badge-warn{display:inline-block;margin-top:6px;font-size:12px;font-weight:700;color:#8a4a12;background:#fdeed8;border:1px solid #efc78f;border-radius:8px;padding:4px 8px}
.dsp .btn.tight{margin-top:6px}
.dsp .section-label{font-size:12px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);margin:22px 0 10px}
.dsp .link-btn{border:0;background:none;color:var(--muted);font-size:12px;text-decoration:underline;min-height:40px;padding:0 4px}
.dsp .stop-actions .btn{margin-top:8px}
.dsp .return-estimate.overdue{background:#fbe9e6;color:#7e3226}
.dsp .return-estimate.overdue span{color:#8a4a40}
.dsp .return-estimate.unknown{background:#f1eee6}
.dsp .done-tour{opacity:.85}
.dsp .photo-input{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.dsp .overview label.btn{cursor:pointer}.dsp .overview label.btn:focus-within{outline:3px solid #52748f}.dsp .overview .note{margin-bottom:12px}
.dsp .dialog-actions.three{flex-wrap:wrap}.dsp .dialog-actions.three .btn{flex:1 1 100%}

/* Admin: ruhige, einheitliche Reiterleiste (Lieferungen | Aktive Touren). Gilt nur im Admin; die Fahrer-App behält ihre Darstellung. */
.dsp.dsp-admin .tabs{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:4px 0 20px;padding:0;border-bottom:1px solid var(--line);background:none;border-radius:0}
.dsp.dsp-admin .tab{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 8px;margin:0;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;color:var(--muted);font:650 15px/1.2 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;position:relative;white-space:nowrap;min-width:0}
.dsp.dsp-admin .tab.active{color:#886424}
.dsp.dsp-admin .tab.active::after{content:"";position:absolute;left:14%;right:14%;bottom:-1px;height:2px;background:var(--gold);border-radius:2px}
.dsp.dsp-admin .tab .count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin:0;border-radius:10px;background:#eeeadf;color:#6f695c;font-size:12px;font-weight:650;line-height:1}
.dsp.dsp-admin .tab.active .count{background:#f1e6cf;color:#7a5a22}
/* Fahrerverfügbarkeit, Fahrerauswahl beim Start, Fahrername auf der laufenden Tour */
.dsp .duty-row{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:0 0 14px;padding:10px 12px;background:#f6f3ec;border-radius:12px;font-size:13px;line-height:1.5}
.dsp .duty-row .btn{width:auto;margin:0;min-height:38px;font-size:13px;padding:7px 12px}
.dsp .driver-line{font-size:13px;color:var(--muted);margin:-6px 0 12px}
.dsp .who-form{margin:6px 0 0}
.dsp .choice{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;margin:8px 0;cursor:pointer;font-size:14px}
.dsp .choice input{margin-top:3px}.dsp .choice small{display:block;color:var(--muted);font-size:12px;font-weight:400}
.dsp .choice.disabled{opacity:.55;cursor:default}
.dsp .person-name{display:block;width:100%;font:inherit;border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-height:44px;margin:0 0 6px}
