body.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0d1116,#1b222b 60%,#2a1a12);padding:1rem}
.login-card{background:#fff;border-radius:20px;padding:2rem;width:min(400px,100%);box-shadow:0 30px 70px rgba(0,0,0,.45)}
.adm{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}
.adm-side{background:var(--ink);color:#c9d1db;padding:1.2rem .9rem;display:flex;flex-direction:column;gap:1.2rem;position:sticky;top:0;height:100vh;overflow:auto}
.adm-side .logo{color:#fff;padding:.2rem .4rem}.adm-side .logo small{color:#8d98a7}
.adm-side nav{display:grid;gap:.15rem}
.adm-side nav a,.adm-side-foot a{display:flex;justify-content:space-between;align-items:center;padding:.62rem .8rem;border-radius:10px;text-decoration:none;font-weight:600;font-size:.93rem;color:#c9d1db}
.adm-side nav a:hover,.adm-side-foot a:hover{background:#1c242e;color:#fff}
.adm-side nav a.active{background:var(--accent);color:#fff}
.cnt{background:#fff;color:var(--ink);border-radius:99px;font-size:.72rem;padding:.05rem .5rem}
.adm-side-foot{margin-top:auto;display:grid;gap:.15rem;border-top:1px solid #262e39;padding-top:.8rem}
.adm-main{min-width:0}
.adm-top{display:flex;align-items:center;gap:1rem;padding:1rem 1.6rem;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.adm-top h1{font-size:1.4rem;margin:0}
.adm-actions{margin-left:auto;display:flex;gap:.5rem;flex-wrap:wrap}
.adm-burger{display:none;background:none;border:0;font-size:1.5rem;cursor:pointer}
.adm-content{padding:1.6rem;max-width:1300px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin-bottom:1.5rem}
.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.2rem;text-decoration:none;box-shadow:var(--shadow);display:block}
.kpi:hover{border-color:var(--accent)}
.kpi .l{font-size:.8rem;color:var(--muted);font-weight:600;display:flex;justify-content:space-between}
.kpi .v{font-size:1.8rem;font-weight:800;letter-spacing:-.03em}
.two{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1.25rem;align-items:start}
.box{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;margin-bottom:1.25rem}
.box>h2{font-size:1rem;margin:0;padding:1rem 1.2rem;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.box .pad{padding:1.2rem}
.bars{display:flex;align-items:end;gap:.4rem;height:140px;padding:1rem 1.2rem .2rem}
.bars div{flex:1;display:flex;flex-direction:column;justify-content:end;align-items:center;height:100%;font-size:.7rem;color:var(--muted)}
.bars i{display:block;width:100%;background:var(--accent);border-radius:6px 6px 0 0;min-height:3px;opacity:.9}
.bars b{color:var(--ink);font-size:.78rem}
.filters{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem;align-items:center}
.filters select,.filters input{width:auto;min-width:140px;padding:.5rem .7rem}
.pill-tabs{display:flex;gap:.3rem;flex-wrap:wrap}
.pill-tabs a{padding:.4rem .9rem;border-radius:99px;text-decoration:none;font-weight:600;font-size:.88rem;background:#fff;border:1.5px solid var(--line)}
.pill-tabs a.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.day-head{background:#f0f2f5;padding:.5rem 1rem;font-weight:700;font-size:.9rem;border-bottom:1px solid var(--line)}
.status-sel{padding:.3rem .5rem;font-size:.85rem;border-radius:8px;width:auto}
.hint{display:block;color:var(--muted);font-size:.8rem;margin-top:.25rem}
.actions-cell{white-space:nowrap;text-align:right}
.btn--danger{background:#fff;color:var(--bad);border-color:#f0c5c7}.btn--danger:hover{background:var(--bad);color:#fff;border-color:var(--bad)}
.thumb-sm{width:54px;height:42px;border-radius:8px;overflow:hidden;flex:0 0 auto}.thumb-sm .ph{font-size:1.3rem;height:100%;aspect-ratio:auto}.thumb-sm img{width:100%;height:100%;object-fit:cover}
.pcell{display:flex;gap:.8rem;align-items:center}
.unread td{font-weight:700;background:#fffbf5}
.form-box{max-width:900px}
.form-box .panel{box-shadow:none}
.stock-low{color:var(--bad);font-weight:700}
.kv{display:grid;grid-template-columns:150px minmax(0,1fr);gap:.4rem 1rem;margin:0}.kv dt{color:var(--muted);font-size:.85rem}.kv dd{margin:0;font-weight:600}
.inline-form{display:inline}
.hours-edit{display:grid;grid-template-columns:130px 110px 110px auto;gap:.5rem;align-items:center;margin-bottom:.5rem}
.msg-body{white-space:pre-wrap;background:#f7f8fa;border-radius:12px;padding:1rem;border:1px solid var(--line)}
@media (max-width:980px){
  .adm{grid-template-columns:minmax(0,1fr)}
  .adm-side{position:fixed;left:0;top:0;bottom:0;width:260px;z-index:60;transform:translateX(-100%);transition:.2s}
  .adm-side.open{transform:none}
  .adm-burger{display:block}
  .two{grid-template-columns:minmax(0,1fr)}
  .adm-content{padding:1rem}
  .hours-edit{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media print{.adm-side,.adm-top .adm-actions,.adm-burger,.filters,.pill-tabs,.btn,.status-sel{display:none!important}.adm{display:block}.adm-top{position:static}}

/* =====================================================================
   ADMIN: MOBILE
   ===================================================================== */
.adm-backdrop{display:none}
.row-cat-new{display:grid;grid-template-columns:90px minmax(0,1fr) 110px auto;gap:.7rem;align-items:end}
.row-cat-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.8rem;align-items:center;border-bottom:1px solid var(--line)}
.row-cat{display:grid;grid-template-columns:70px minmax(0,1fr) 90px auto;gap:.6rem;align-items:center}
.row-closure{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:.6rem;align-items:end}
.row-closure-item{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.4rem 0;border-top:1px solid var(--line)}
.adm-burger{min-width:44px;min-height:44px;border-radius:10px}
.table .v{min-width:0}

@media (max-width:980px){
  .adm-side{height:100vh;height:100dvh;width:min(290px,86vw);box-shadow:none;overscroll-behavior:contain;padding-top:calc(1.2rem + env(safe-area-inset-top))}
  .adm-side.open{box-shadow:0 0 40px rgba(0,0,0,.35)}
  .adm-side nav a,.adm-side-foot a{min-height:46px}
  .adm-backdrop{display:block;position:fixed;inset:0;background:rgba(10,14,19,.55);z-index:55;opacity:0;pointer-events:none;transition:opacity .2s}
  body.nav-open{overflow:hidden}
  body.nav-open .adm-backdrop{opacity:1;pointer-events:auto}
  .adm-top{flex-wrap:wrap;padding:.6rem 1rem;gap:.4rem .7rem;padding-top:calc(.6rem + env(safe-area-inset-top))}
  .adm-top h1{font-size:1.15rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .adm-actions{order:3;margin-left:0;width:100%;flex-wrap:nowrap;overflow-x:auto;padding-bottom:.2rem;scrollbar-width:none}
  .adm-actions::-webkit-scrollbar{display:none}
  .adm-actions:empty{display:none}
  .adm-actions .btn,.adm-actions form{flex:0 0 auto}
  .adm-content{padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom))}
}

@media (max-width:760px){
  input[type=text],input[type=email],input[type=tel],input[type=date],input[type=time],input[type=number],input[type=password],input[type=search],input[type=color],select,textarea{font-size:16px;min-height:46px}
  input[type=color]{padding:.2rem;min-height:46px}
  .btn{min-height:44px}
  .btn--sm{min-height:44px;padding:.55rem 1rem}
  .status-sel{font-size:16px;min-height:44px;padding:.4rem .6rem}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
  .kpi{padding:.9rem}.kpi .l{font-size:.72rem}.kpi .v{font-size:1.45rem}
  .box>h2{padding:.85rem 1rem;flex-wrap:wrap;gap:.5rem}
  .box .pad{padding:1rem}
  .panel{padding:1.1rem}
  .bars{gap:.2rem;padding:1rem .8rem .2rem}.bars div{font-size:.6rem}.bars b{font-size:.68rem}
  .filters{gap:.6rem}
  .filters form{width:100%;flex-wrap:wrap}
  .filters input,.filters select{flex:1 1 100%;width:100%;min-width:0}
  .filters .btn{width:100%}
  .pill-tabs{flex-wrap:nowrap;overflow-x:auto;max-width:100%;margin-inline:-1rem;padding:0 1rem .3rem;scrollbar-width:none}
  .pill-tabs::-webkit-scrollbar{display:none}
  .pill-tabs a{white-space:nowrap;min-height:40px;display:inline-flex;align-items:center}
  .kv{grid-template-columns:minmax(0,1fr);gap:.1rem}.kv dt{margin-top:.5rem}
  .hours-edit{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.5rem}
  .hours-edit strong,.hours-edit .check{grid-column:1/-1}
  .row-cat-new,.row-closure{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .row-cat-new>:last-child,.row-closure>:last-child{grid-column:1/-1}
  .row-cat-new>:last-child .btn,.row-closure>:last-child .btn{width:100%}
  .row-cat-wrap{grid-template-columns:minmax(0,1fr)}
  .row-cat{grid-template-columns:70px minmax(0,1fr)}
  .row-cat .btn{width:100%}
  .row-closure-item{flex-wrap:wrap}
  .form-box .btn,.panel>.btn{width:100%;margin-bottom:.5rem}
  .msg-body{padding:.8rem}
  .login-card{padding:1.5rem}

  /* Listen als Karten: Tabellen MIT Kopfzeile */
  .table-wrap{border:0;box-shadow:none;background:transparent;overflow:visible}
  .table.rs,.table.rs tbody,.table.rs tr,.table.rs td{display:block;width:100%}
  .table.rs thead{display:none}
  .table.rs{background:transparent}
  .table.rs tr{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:.8rem 1rem;margin-bottom:.8rem}
  .table.rs td{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.4rem 0;border:0;text-align:right}
  .table.rs td::before{content:attr(data-l);flex:0 0 auto;max-width:42%;color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;text-align:left}
  .table.rs td[data-l=""]::before,.table.rs td:first-child::before{display:none}
  .table.rs td:first-child{display:block;padding-bottom:.6rem;margin-bottom:.2rem;border-bottom:1px solid var(--line);text-align:left}
  .table.rs td:first-child .v{text-align:left}
  .table.rs td[colspan]{justify-content:flex-end}
  .table.rs td.actions-cell{justify-content:stretch;padding-top:.6rem}
  .table.rs td.actions-cell .v{width:100%;display:flex;gap:.5rem}
  .table.rs td.actions-cell .btn{flex:1}
  .table.rs td .v{min-width:0;overflow-wrap:anywhere}
  .table.rs .pcell{text-align:left}
  .table.rs tr.tot{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;margin:0;padding:.6rem 1rem}
  .table.rs tr.tot td,.table.rs tr.tot td:first-child{display:block;width:auto;border:0;padding:0;margin:0;text-align:left}
  .table.rs tr.tot td::before{display:none}

  /* Listen als Karten: Tabellen OHNE Kopfzeile (Dashboard, Tagesplan) */
  .table.flat,.table.flat tbody{display:block;width:100%}
  .table.flat tr{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .9rem;padding:.8rem 1rem;border-bottom:1px solid var(--line)}
  .table.flat tr:last-child{border-bottom:0}
  .table.flat td{display:block;padding:0;border:0}
  .table.flat td[colspan]{flex:1 1 100%}
  .table.flat td.actions-cell{margin-left:auto}
  .table.flat td.num{text-align:left}
  .table-wrap:has(.table.flat){border:0;box-shadow:none}
}
@media (orientation:landscape) and (max-height:480px){
  .adm-top{position:static}
}

/* FIX: Grid-Überbreite im Admin */
.adm>*,.two>*,.kpis>*,.form-grid>*{min-width:0}
.adm-content{min-width:0}

/* =====================================================================
   ADMIN: Logo, Navigationsgruppen, Kunden-Auswahl, Positions-Editor
   ===================================================================== */
.side-logo{display:flex;flex-direction:column;gap:.3rem;padding:.2rem .4rem;text-decoration:none;color:#8d98a7;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.side-logo img{width:100%;max-width:190px;height:auto}
.brand-logo{display:block;max-width:100%;height:auto}
.login-logo{display:grid;gap:.4rem;justify-items:center;margin-bottom:1.4rem;text-align:center}
.login-logo img{width:210px;height:auto}
.login-logo span{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700}
.nav-group{margin:.9rem .8rem .25rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;color:#6f7b8a;font-weight:700}
.badge--offen,.badge--entwurf{background:#fff1dc;color:#8a4b06}
.badge--in-Arbeit{background:#e8efff;color:#1d4a9a}
.badge--fertig,.badge--abgerechnet{background:#e1f5e9;color:#0d5c34}

.picker-box{position:relative;display:flex;gap:.4rem}
.picker-box input{flex:1 1 auto;min-width:0;width:auto}
.picker-box .btn{flex:0 0 46px;width:46px!important;min-width:46px;padding:0!important;justify-content:center}
.picker-list{position:absolute;z-index:30;left:0;right:0;top:100%;margin-top:.25rem;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.18);max-height:300px;overflow:auto}
.pk-item{display:flex;flex-direction:column;gap:.1rem;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:.7rem .9rem;cursor:pointer;font:inherit;min-height:46px}
.pk-item:hover,.pk-item:focus{background:#f4f6f9}
.pk-item small,.pk-empty{color:var(--muted);font-size:.8rem}
.pk-empty{padding:.8rem .9rem}

.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.55rem 1rem}
.rep-row{border:1px solid var(--line);border-radius:12px;padding:.7rem;margin-bottom:.6rem;background:#fafbfc}
.rr-grid{display:grid;gap:.5rem .6rem;align-items:end;grid-template-columns:130px 78px 84px 100px minmax(0,1fr) 78px 104px 96px 44px}
.rr-grid label{display:block;font-size:.68rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:0}
.rr-grid input,.rr-grid select,.rr-grid textarea{margin-top:.2rem;padding:.5rem .55rem;font-size:.9rem;width:100%}
.rr-grid textarea{resize:vertical;min-height:40px;overflow:hidden;line-height:1.35}
.rr-sum{text-align:right}.rr-sum small{display:block;font-size:.68rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.rr-sum b{display:block;padding:.45rem 0;font-variant-numeric:tabular-nums}
.rr-del{min-width:40px;padding:.5rem}
.rr-wo-item{grid-template-columns:minmax(0,1fr) 150px 44px}
.rr-wo-part{grid-template-columns:80px 130px minmax(0,1fr) 170px 120px 44px}
.rr-wo-work{grid-template-columns:70px minmax(0,1fr) 100px 100px 90px 44px}
.rr-grid>*{min-width:0}
.totals{margin-top:1rem;margin-left:auto;max-width:360px;display:grid;gap:.25rem}
.totals div{display:flex;justify-content:space-between;gap:1rem;padding:.25rem 0;border-bottom:1px dashed var(--line);font-variant-numeric:tabular-nums}
.totals .grand{border-bottom:0;border-top:2px solid var(--ink);margin-top:.3rem;padding-top:.5rem;font-size:1.15rem;font-weight:800}
.mbar-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin:0 0 1.5rem}
.sticky-save{position:sticky;bottom:0;background:linear-gradient(0deg,#f5f6f8 70%,rgba(245,246,248,0));padding:.9rem 0 calc(.6rem + env(safe-area-inset-bottom));z-index:15}
@media (max-width:1100px){
  .rr-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .rr-grid .rr-text{grid-column:1/-1;order:-1}
  .rr-wo-item{grid-template-columns:minmax(0,1fr) 44px}.rr-wo-item .rr-text{grid-column:1/-1}
  .rr-wo-part{grid-template-columns:repeat(3,minmax(0,1fr))}.rr-wo-part .rr-text{grid-column:1/-1}
  .rr-wo-work{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:760px){
  .rr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rr-grid input,.rr-grid select,.rr-grid textarea{font-size:16px;min-height:46px}
  .rr-wo-item,.rr-wo-part,.rr-wo-work{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rr-wo-item .rr-text,.rr-wo-part .rr-text{grid-column:1/-1}
  .rr-del{width:100%;min-height:44px}
  .rr-sum{text-align:left}
  .totals{max-width:none}
  .sticky-save .btn{flex:1}
}

/* Einstellungen: Unternavigation */
.nav-sub{display:grid;gap:.1rem;margin:.1rem 0 .4rem .9rem;padding-left:.6rem;border-left:2px solid #2a323c}
.adm-side nav .nav-sub a{font-size:.85rem;font-weight:500;padding:.45rem .7rem;min-height:40px;color:#9aa4b0}
.adm-side nav .nav-sub a.active{background:#1c242e;color:#fff}
.set-nav{margin-bottom:1.2rem}
.set-wrap{max-width:900px}
@media (max-width:760px){.set-nav{margin-inline:-1rem;padding-inline:1rem}}

/* Bild-Upload */
.img-box{position:relative;width:100%;max-width:420px;border:2px dashed var(--line);border-radius:14px;overflow:hidden;background:#f6f7f9;cursor:pointer;display:grid;place-items:center}
.img-box.drag{border-color:var(--accent);background:var(--accent-l)}
.img-box img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}
.img-box img[hidden]{display:none}
.img-empty{display:grid;gap:.3rem;place-items:center;font-size:2.2rem;color:var(--muted);text-align:center;padding:1rem}.img-empty span{font-size:.85rem;font-weight:600}
.img-actions{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin-top:.6rem}
.img-pick{cursor:pointer}
.cat-card{display:grid;grid-template-columns:200px minmax(0,1fr);gap:1.2rem;padding:1.2rem;border-bottom:1px solid var(--line)}
.cat-card:last-child{border-bottom:0}
.cat-card .img-box{max-width:none}
.cat-card-actions{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-top:.4rem}
.post-thumb{width:84px;height:56px;border-radius:8px;overflow:hidden;background:#eef0f3;flex:0 0 auto}.post-thumb img{width:100%;height:100%;object-fit:cover}
@media (max-width:760px){.cat-card{grid-template-columns:minmax(0,1fr)}.img-box{max-width:none}}
.img-empty[hidden]{display:none}
.howto{background:var(--adm-soft,#f4f6f8);border:1px solid #e1e5ea;border-radius:8px;padding:.6rem .9rem;margin-bottom:1rem}.howto summary{cursor:pointer;font-weight:600}.howto ol{margin:.6rem 0 .2rem 1.1rem;padding:0}.howto li{margin:.3rem 0}.howto code{background:#e9edf1;padding:0 .3rem;border-radius:4px}
input[readonly]{background:#f4f6f8}
/* Fahrzeugschein-Scan */
.scan{border:2px dashed #c9d0d8;border-radius:12px;padding:1rem;margin-bottom:1rem;background:#fafbfc}
.scan-head{display:flex;flex-direction:column;gap:.15rem;margin-bottom:.7rem}
.scan-btns{display:flex;flex-wrap:wrap;gap:.5rem}
.scan-bar{height:8px;background:#e3e7ec;border-radius:99px;margin:.8rem 0 .2rem;overflow:hidden}.scan-bar i{display:block;height:100%;width:0;background:var(--accent,#c8232c);transition:width .25s}
.scan-status{margin-top:.6rem;font-weight:600}.scan-status.ok{color:#166534}.scan-status.warn{color:#92400e}.scan-status.err{color:#b91c1c}
.scan-prev{display:flex;gap:.8rem;align-items:center;margin-top:.8rem}.scan-prev img{width:150px;height:auto;max-height:110px;object-fit:cover;border-radius:8px;border:1px solid #c9d0d8;cursor:zoom-in}
.scan-note{font-size:.8rem;margin:.8rem 0 0}.scan.is-busy .scan-btns{opacity:.5;pointer-events:none}
.scan-filled{background:#fffbe6!important;border-color:#e0b400!important}.scan-warn{background:#fff1d6!important;border-color:#e08a00!important}
.scan-zoom{position:fixed;inset:0;z-index:999;background:rgba(0,0,0,.88);display:flex;align-items:center;justify-content:center;padding:1rem;overflow:auto;cursor:zoom-out}.scan-zoom img{max-width:none;width:min(1600px,200vw);max-height:none}
.scan-cam{position:fixed;inset:0;z-index:999;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;color:#fff;padding:1rem}.scan-cam video{max-width:100%;max-height:70vh;border-radius:10px}.scan-cam-bar{display:flex;gap:.6rem}
.veh-new summary{cursor:pointer;font-weight:700;margin:.4rem 0}
.picker-box input[type=search]::-webkit-search-cancel-button{display:none}
.table td,.table .v{overflow-wrap:anywhere}
@media (max-width:760px){.filters .check,.filters label{flex:1 1 100%;width:100%}.filters .check span{white-space:normal}}

/* Mobile: lange Buttons dürfen umbrechen */
@media (max-width:760px){.btn{white-space:normal;max-width:100%;text-align:center}}

/* Techniker-/Testmodus */
.sandbox-bar{background:#f59e0b;color:#1a1204;text-align:center;font-size:.85rem;line-height:1.35;padding:.45rem 1rem;position:sticky;top:0;z-index:200}
.sandbox-bar a{color:inherit;font-weight:700;text-decoration:underline;margin-left:.5rem}
