﻿:root{
  --bg:#EFF1F5;--surf:#fff;--surf2:#F5F6F9;
  --acc:#1E8A47;--acc-d:rgba(30,138,71,.1);--acc-b:rgba(30,138,71,.28);
  --dark:#12451f;--txt:#12451f;--muted:#6b7280;
  --brd:rgba(18,69,31,.15);--faint:rgba(0,0,0,.06);
  --red:#dc2626;--red-d:rgba(220,38,38,.09);
  --warn:#b45309;--warn-d:rgba(180,83,9,.08);
  /* Status-Ton "In Abwicklung" (amber/gold) */
  --info:#b7791f;--info-d:rgba(202,138,4,.14);--info-b:rgba(202,138,4,.32);
  /* Kräftigere Zell-Füllungen für Status-Matrizen (Auswertung) */
  --st-warn-fill:rgba(180,83,9,.16);--st-info-fill:rgba(202,138,4,.20);
  --st-red-fill:rgba(220,38,38,.14);--st-acc-fill:rgba(30,138,71,.18);
  --shadow:0 2px 12px rgba(18,38,58,.09);
  /* Semantische Font-Größen */
  --fs-xxs:.68rem;   /* Labels, Tabellen-Kopf, Hint-Texte */
  --fs-xs:.75rem;    /* Badges, Meta, kleine Tabelleninhalte */
  --fs-sm:.82rem;    /* Tabelleninhalte, sekundärer Text */
  --fs-base:.88rem;  /* Formulareingaben, Standardtext */
  --fs-md:.95rem;    /* Buttons, Betonung */
  --fs-lg:1.1rem;    /* Abschnitts-Titel */
  --fs-xl:1.35rem;   /* View-Überschriften */
  --fs-xxl:1.5rem;   /* Auth-Titel, große KPIs */
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{overflow-x:hidden}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--txt);min-height:100vh}

/* ── NAV ── */
nav{background:#12451f;padding:.8rem 1.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;row-gap:.4rem;position:sticky;top:0;z-index:100;box-shadow:0 2px 16px rgba(0,0,0,.2)}
.nav-left{display:flex;align-items:center;gap:.9rem}
.nav-mcg{display:flex;align-items:center;gap:7px;cursor:pointer}
.nav-bar{width:4px;height:24px;background:rgba(255,255,255,.6);border-radius:2px}
.nav-letters{font-family:'EB Garamond',serif;font-weight:800;font-size:1.25rem;color:#fff;letter-spacing:.2px}
.nav-title{font-size:.8rem;color:rgba(255,255,255,.65);font-family:'EB Garamond',serif}
.nav-right{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:.7rem}
.nav-btn{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.85);border-radius:7px;padding:.35rem .85rem;font-size:.8rem;font-family:'DM Sans',sans-serif;cursor:pointer;transition:all .15s}
.nav-btn:hover{background:rgba(255,255,255,.2)}
.nav-btn.primary{background:var(--acc);border-color:var(--acc);color:#fff}
.nav-btn.primary:hover{filter:brightness(1.1)}
.nav-user{font-size:.78rem;color:rgba(255,255,255,.6)}

/* ── LAYOUT ── */
.view{display:none}.view.active{display:block}
.container{max-width:1100px;margin:0 auto;padding:1.5rem 1.2rem}

/* ── AUTH ── */
.auth-wrap{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;padding:1rem}
.auth-card{background:var(--surf);border-radius:16px;padding:2.6rem 2.8rem;width:100%;max-width:480px;box-shadow:var(--shadow)}
.auth-logo{display:flex;align-items:center;gap:8px;margin-bottom:1.6rem}
.auth-bar{width:4px;height:28px;background:var(--acc);border-radius:2px}
.auth-mcg{font-family:'EB Garamond',serif;font-weight:700;font-size:1.5rem;color:var(--dark)}
.auth-sub{font-size:.75rem;color:var(--muted);margin-top:1px}
.auth-tabs{display:flex;border-bottom:2px solid var(--faint);margin-bottom:1.5rem}
.auth-tab{flex:1;text-align:center;padding:.6rem;font-size:.85rem;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s}
.auth-tab.active{color:var(--acc);border-bottom-color:var(--acc);font-weight:600}
.field{display:flex;flex-direction:column;gap:.32rem;margin-bottom:.85rem}
.field label{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.7px;font-weight:500}
.field input,.field select{background:var(--surf2);border:1.5px solid var(--brd);border-radius:7px;color:var(--txt);padding:.55rem .8rem;font-family:'DM Sans',sans-serif;font-size:.88rem;outline:none;transition:border-color .2s;width:100%}
.field input:focus,.field select:focus{border-color:var(--acc)}
.bday-row{display:flex;gap:.5rem;flex-wrap:wrap}
.bday-row input{flex:1 1 80px;min-width:0}
.role-select{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.role-opt{border:1.5px solid var(--brd);border-radius:8px;padding:.75rem;cursor:pointer;text-align:center;transition:all .15s}
.role-opt:hover{border-color:var(--acc-b)}
.role-opt.active{border-color:var(--acc);background:var(--acc-d)}
.role-opt .r-icon{font-size:1.4rem;margin-bottom:.3rem}
.role-opt .r-label{font-size:.8rem;font-weight:600}
.role-opt .r-sub{font-size:.65rem;color:var(--muted)}
.btn{width:100%;background:var(--acc);border:none;border-radius:9px;color:#fff;font-family:'EB Garamond',serif;font-size:.9rem;font-weight:700;padding:.82rem;cursor:pointer;transition:filter .2s,background-color .2s;touch-action:manipulation;-webkit-tap-highlight-color:transparent;margin-top:.5rem}
.btn:hover{filter:brightness(1.08)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.secondary{background:transparent;border:1.5px solid var(--brd);color:var(--muted)}
.btn.secondary:hover{border-color:var(--acc-b);color:var(--acc)}
.btn.danger{background:var(--red-d);border:1.5px solid rgba(220,38,38,.3);color:var(--red)}
.pw-wrap{position:relative}
.pw-wrap input{padding-right:2.6rem;width:100%;box-sizing:border-box}
.pw-toggle{position:absolute;right:.55rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:.95rem;color:var(--muted);padding:.2rem;line-height:1}
.pw-toggle:hover{color:var(--acc)}
.auth-err{background:var(--red-d);border:1px solid rgba(220,38,38,.3);border-radius:7px;padding:.6rem .8rem;font-size:.8rem;color:var(--red);margin-bottom:.8rem;display:none}
.auth-err.show{display:block}

/* ── SHARED CARD ── */
.card{background:var(--surf);border:1.5px solid var(--faint);border-radius:12px;box-shadow:var(--shadow)}

/* ── DASHBOARD ── */
.dash-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}
.dash-header h1{font-family:'EB Garamond',serif;font-size:1.5rem;font-weight:700;color:var(--dark)}
.tabs{display:flex;gap:.5rem;margin-bottom:1.2rem;flex-wrap:wrap}
.tab{padding:.4rem .9rem;border-radius:20px;font-size:.78rem;cursor:pointer;border:1.5px solid var(--brd);color:var(--muted);transition:all .15s;white-space:nowrap}
.tab.active{background:var(--acc-d);border-color:var(--acc-b);color:var(--acc);font-weight:600}
/* Admin-Panel: kompaktere Tabs, einzeilig ohne Scrollen */
#admin-body .tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:.35rem;padding-bottom:2px;margin-bottom:1.5rem}
#admin-body .tabs::-webkit-scrollbar{display:none}
#admin-body .tab{padding:.35rem .7rem;font-size:.74rem;flex-shrink:0}
.report-list{display:flex;flex-direction:column;gap:.75rem}
.report-card{background:var(--surf);border-radius:12px;padding:1.1rem 1.2rem;border:1.5px solid var(--faint);box-shadow:var(--shadow);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.report-card:hover{border-color:var(--acc-b);transform:translateY(-1px)}
.rc-left{}
.rc-title{font-weight:600;font-size:.92rem;color:var(--dark);margin-bottom:.2rem}
.rc-meta{font-size:.74rem;color:var(--muted)}
.rc-right{display:flex;align-items:center;gap:.6rem;flex-shrink:0}
.btn-delete-draft{background:none;border:none;cursor:pointer;font-size:1rem;opacity:.4;padding:.2rem;transition:opacity .15s;line-height:1}
.btn-delete-draft:hover{opacity:1}
.btn-copy-draft{background:none;border:none;cursor:pointer;font-size:.85rem;padding:.1rem .3rem;border-radius:4px;color:var(--muted);opacity:.6;transition:all .15s;line-height:1}
.btn-copy-draft:hover{color:var(--acc);opacity:1}
.rc-amount{font-family:'EB Garamond',serif;font-weight:700;font-size:1.1rem;color:var(--dark)}
.badge{font-size:.65rem;font-weight:600;padding:.2rem .6rem;border-radius:20px;text-transform:uppercase;letter-spacing:.5px}
.badge.draft{background:rgba(107,114,128,.1);color:#6b7280}
.badge.submitted{background:rgba(180,83,9,.1);color:var(--warn)}
.badge.approved{background:var(--acc-d);color:var(--acc)}
.badge.rejected{background:var(--red-d);color:var(--red)}
.badge.paid{background:#e8f5e9;color:#2e7d32}
.badge.expense-only{background:rgba(107,114,128,.1);color:#6b7280;text-transform:none;white-space:nowrap}
.empty-state{text-align:center;padding:3rem 1rem;color:var(--muted)}
.empty-state .e-icon{font-size:2.5rem;margin-bottom:.8rem}
.empty-state h3{font-size:1rem;margin-bottom:.4rem;color:var(--dark)}
.empty-state p{font-size:.82rem}

/* ── FORM ── */
.form-topbar{background:var(--surf);border-bottom:1px solid var(--faint);padding:.8rem 1.2rem;display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;position:sticky;top:60px;z-index:90;box-shadow:var(--shadow)}
.form-topbar-left{display:flex;align-items:center;gap:.8rem}
.form-title-input{font-family:'EB Garamond',serif;font-size:1rem;font-weight:700;color:var(--dark);background:var(--surf2);border:1.5px solid var(--brd);border-radius:7px;padding:.3rem .65rem;outline:none;min-width:200px;transition:border-color .2s}
.form-title-input:focus{border-color:var(--acc)}
.form-title-input::placeholder{color:var(--muted);opacity:.55;font-weight:400}
.save-status{font-size:.68rem;color:var(--muted)}
.form-topbar-right{display:flex;gap:.5rem;align-items:center}
.tb-btn{background:var(--surf2);border:1.5px solid var(--brd);color:var(--muted);border-radius:7px;padding:.38rem .8rem;font-size:.78rem;font-family:'DM Sans',sans-serif;cursor:pointer;transition:all .15s;white-space:nowrap}
.tb-btn:hover{border-color:var(--acc-b);color:var(--acc)}
.tb-btn.green{background:var(--acc);border-color:var(--acc);color:#fff;font-weight:600}
.tb-btn.green:hover{filter:brightness(1.08)}
.tb-btn.danger{background:rgba(220,38,38,.09);border-color:rgba(220,38,38,.22);color:var(--red)}
.tb-btn.danger:hover{background:rgba(220,38,38,.2);border-color:rgba(220,38,38,.4);color:var(--red)}

.lb-dropzone{border:2px dashed var(--brd);border-radius:10px;padding:1.5rem 1rem;text-align:center;color:var(--muted);font-size:.85rem;cursor:pointer;transition:all .15s}
.lb-dropzone:hover{border-color:var(--acc-b);color:var(--acc)}
.lb-dropzone.drag-over{border-color:var(--acc);background:rgba(30,138,71,.06);color:var(--acc)}
section{background:var(--surf);border-radius:12px;border:1px solid var(--faint);box-shadow:var(--shadow);padding:1.35rem;margin-bottom:.7rem;overflow:hidden}
.section-title{display:flex;align-items:center;gap:.7rem;margin-bottom:.7rem}
.section-num{font-family:'EB Garamond',serif;font-size:.78rem;font-weight:800;color:var(--acc);background:var(--acc-d);border:1px solid var(--acc-b);border-radius:5px;padding:.18rem .42rem}
.section-title h2{font-family:'EB Garamond',serif;font-size:1.1rem;font-weight:800;color:var(--dark);line-height:1.4;overflow:visible}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.55rem .8rem}
.grid-2 .field{margin-bottom:0}
/* Grid-Reihe erbt den Feld-Rhythmus, wenn darunter weitere Felder folgen (z. B. PZT-Modals) */
.grid-2:has(+ .field),.grid-2:has(+ .grid-2){margin-bottom:.85rem}
@media(max-width:540px){.grid-2{grid-template-columns:1fr}}
input[type=text],input[type=number],input[type=date],select,textarea{background:var(--surf2);border:1.5px solid var(--brd);border-radius:7px;color:var(--txt);padding:.52rem .78rem;font-family:'DM Sans',sans-serif;font-size:.86rem;outline:none;transition:border-color .2s;width:100%;-webkit-appearance:none;appearance:none}
input:focus,select:focus{border-color:var(--acc)}
input::placeholder{color:var(--muted);opacity:.55}
select option{background:var(--surf)}
.date-wrap{position:relative}
.date-wrap input[type=date]{padding-right:2.2rem;cursor:pointer;border-color:var(--acc-b);background:var(--acc-d)}
.date-wrap input[type=date]::-webkit-calendar-picker-indicator{opacity:0;position:absolute;right:0;top:0;width:100%;height:100%;cursor:pointer}
.date-wrap::after{content:'📅';position:absolute;right:.6rem;top:50%;transform:translateY(-50%);font-size:.82rem;pointer-events:none}
.date-wrap input.flatpickr-input,.date-wrap input.form-control{padding-right:2.2rem;cursor:pointer;border-color:var(--acc-b);background:var(--acc-d)}
.flatpickr-day.selected,.flatpickr-day.selected:hover{background:var(--acc);border-color:var(--acc)}
.flatpickr-weekwrapper .flatpickr-weekday{color:var(--acc)}
.flatpickr-weeks{box-shadow:none}
span.flatpickr-weekday{color:var(--acc);font-weight:600}
.flatpickr-week-number{font-weight:600;color:var(--acc)}
.date-hint{font-size:.58rem;color:var(--acc);font-weight:400;text-transform:none;letter-spacing:0}
.calc-display{background:var(--acc-d);border:1.5px solid var(--acc-b);border-radius:7px;padding:.52rem .78rem;font-size:.86rem;color:var(--acc);font-weight:600}
.cbx-group{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:.7rem}
.cbx{display:flex;align-items:center;gap:.38rem;font-size:.78rem;cursor:pointer}
.cbx input[type=checkbox]{width:auto;padding:0;accent-color:var(--acc)}
.per-diem-card{background:var(--surf2);border:1.5px solid var(--acc-b);border-radius:10px;margin-top:.9rem;overflow:hidden;display:none}
.per-diem-card.visible{display:block}
.pd-head{display:flex;justify-content:space-between;align-items:center;padding:.55rem .8rem;background:var(--acc-d);border-bottom:1px solid var(--acc-b);flex-wrap:wrap;gap:.2rem}
.pd-head-title{font-size:.74rem;font-weight:700;color:var(--acc)}
.pd-head-rate{font-size:.65rem;color:var(--muted)}
.pd-body{padding:.8rem}
.pd-rows{border-top:1px solid var(--faint);padding-top:.6rem;display:flex;flex-direction:column;gap:.15rem}
.pd-row{display:flex;justify-content:space-between;font-size:.77rem;color:var(--muted)}
.pd-row.strong{color:var(--txt);font-weight:600}
.pd-row.net{color:var(--acc);font-weight:700;font-size:.8rem}
.pd-row.deduct{color:var(--warn)}
.pd-div{height:1px;background:var(--faint);margin:.3rem 0}
.meal-box{margin-top:.8rem;padding:.7rem;background:var(--warn-d);border:1px solid rgba(180,83,9,.25);border-radius:8px}
.meal-box-title{font-size:.65rem;font-weight:700;color:var(--warn);text-transform:uppercase;letter-spacing:.6px;margin-bottom:.5rem}
.meal-row{display:grid;grid-template-columns:1fr auto auto;gap:.45rem;align-items:center;margin-bottom:.35rem}
.meal-row label{font-size:.76rem}
.meal-hint{font-size:.63rem;color:var(--muted);text-align:right;white-space:nowrap}
.meal-stepper{display:flex;align-items:stretch;border:1.5px solid var(--brd);border-radius:7px;overflow:hidden;height:32px}
.meal-stepper button{background:var(--surf2);border:none;border-right:1px solid var(--brd);padding:0 .45rem;cursor:pointer;font-size:1rem;color:var(--muted);transition:all .15s;flex-shrink:0}
.meal-stepper button:last-child{border-right:none;border-left:1px solid var(--brd)}
.meal-stepper button:hover{background:var(--acc-d);color:var(--acc)}
.meal-stepper input{border:none;text-align:center;font-size:.82rem;width:34px;padding:0;background:var(--surf);-moz-appearance:textfield;font-family:'DM Sans',sans-serif}
.meal-stepper input::-webkit-outer-spin-button,.meal-stepper input::-webkit-inner-spin-button{-webkit-appearance:none}
.transport-block{background:var(--surf2);border:1.5px solid var(--brd);border-radius:9px;margin-bottom:.5rem;overflow:hidden}
.tr-head{padding:.5rem .7rem;border-bottom:1px solid var(--faint);display:flex;flex-direction:column;gap:.38rem}
.tr-row1{display:flex;gap:.42rem;align-items:center}
.tr-row2{display:flex;gap:.42rem;align-items:center}
.tr-type-sel{flex:0 0 140px;font-size:.79rem}
.tr-desc-inp{flex:1;min-width:0;font-size:.79rem}
.tr-body{padding:.4rem .7rem .5rem}
.tr-body:empty{padding:0}
.tr-body .field{margin-bottom:.2rem}
.tr-amt-slot{flex:1;min-width:0}
.tr-amt-slot input{font-size:.81rem!important}
.km-row{display:flex;gap:.42rem}
.km-row .field{flex:1;min-width:0}
.km-input-group{display:flex;gap:.3rem}
.km-cbx-row{display:flex;gap:.5rem;align-items:center;margin-top:.15rem}
.km-cbx-row .rt-cbx{flex:1}
.km-cbx-row .field{flex:0 0 110px}
.btn-calc{flex-shrink:0;background:var(--acc-d);border:1.5px solid var(--acc-b);color:var(--acc);border-radius:7px;padding:.52rem .85rem;font-size:.78rem;font-family:'DM Sans',sans-serif;cursor:pointer;white-space:nowrap;transition:all .15s;font-weight:500}
.btn-calc:hover{background:var(--acc-b)}
.km-meta{display:flex;flex-direction:column;gap:.15rem;margin-top:.25rem}
.rt-cbx{display:flex;align-items:center;gap:.32rem;font-size:.74rem;color:var(--muted);cursor:pointer;justify-content:center}
.rt-cbx input[type=checkbox]{accent-color:var(--acc)}
.km-err{font-size:.68rem;color:var(--red);margin-top:.32rem}
.acc-head-row{display:grid;grid-template-columns:115px 115px 1fr 90px 34px 34px;gap:.42rem;padding:0 .1rem;margin-bottom:.28rem}
.acc-head-row span{font-size:.61rem;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}
.acc-block{background:var(--surf2);border:1.5px solid var(--brd);border-radius:9px;margin-bottom:.48rem;padding:.55rem .7rem;display:grid;grid-template-columns:115px 115px 1fr 90px 34px 34px;gap:.42rem;align-items:center}
.acc-block input{font-size:.81rem}
.exp-head{display:grid;grid-template-columns:105px 1fr 95px 34px 34px;gap:.42rem;padding:0 .1rem;margin-bottom:.28rem}
.exp-head span{font-size:.61rem;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}
.exp-block{display:grid;grid-template-columns:105px 1fr 95px 34px 34px;gap:.42rem;align-items:center;margin-bottom:.48rem;background:var(--surf2);border:1.5px solid var(--brd);border-radius:9px;padding:.45rem .6rem}
.exp-block input,.exp-block select{font-size:.81rem}
.exp-cat{border:1.5px solid var(--brd);border-radius:6px;background:var(--surf);color:var(--txt);padding:.32rem .4rem;min-width:0}
.bew-fields{display:none;grid-column:1/-1;grid-template-columns:160px 1fr;gap:.4rem .6rem;padding:.4rem .5rem .45rem;background:rgba(30,138,71,.06);border:1.5px solid var(--acc-b);border-radius:7px;margin-top:.15rem;align-items:center}
.bew-fields input{font-size:.8rem;border:1.5px solid var(--brd);border-radius:6px;padding:.32rem .5rem;background:var(--surf);width:100%}
.bew-hint{grid-column:1/-1;font-size:.68rem;color:var(--muted);line-height:1.4}
.btn-remove{background:rgba(220,38,38,.09);border:1.5px solid rgba(220,38,38,.22);color:var(--red);border-radius:6px;width:32px;height:32px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}
.btn-remove:hover{background:rgba(220,38,38,.2)}
.btn-add{background:transparent;border:1.5px dashed var(--acc-b);color:var(--acc);border-radius:7px;padding:.42rem .82rem;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:.78rem;transition:all .15s;display:inline-flex;align-items:center;gap:.28rem;margin-bottom:.32rem}
.btn-add:hover{background:var(--acc-d);border-style:solid}
.cost-line{display:flex;justify-content:space-between;font-size:.79rem;color:var(--muted);padding:.42rem .12rem;margin-top:.22rem;border-top:1px solid var(--faint)}
.cost-line .amt{color:var(--txt);font-weight:600}
.summary-box{background:var(--acc-d);border:1.5px solid var(--acc-b);border-radius:10px;padding:1rem 1.1rem;margin-top:.7rem;margin-bottom:.7rem;overflow:hidden}
.sum-row{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;font-size:.85rem;padding:.35rem 0;border-bottom:1px solid rgba(30,138,71,.12)}
.sum-row:last-child{border:none}
.sum-row span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sum-row .a,.sum-row #sum-grand{white-space:nowrap;flex-shrink:0}
.sum-grand-row{
  display:flex!important;flex-direction:row!important;justify-content:space-between!important;
  align-items:baseline;
  margin-top:.3rem;padding-top:.35rem;
  border:none!important
}
.sum-grand-row>span:first-child{
  font-family:'EB Garamond',serif;font-size:1.15rem;font-weight:700;color:var(--acc);
  min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.sum-grand-row #sum-grand{
  font-family:'EB Garamond',serif;font-size:1.15rem;font-weight:700;
  color:var(--acc);white-space:nowrap;flex-shrink:0;margin-left:.5rem
}
/* Letztes sum-row vor hr braucht keine eigene Trennlinie */
.sum-row:has(+ hr.sum-divider){border-bottom:none!important}
.sum-divider{border:none;border-top:2px solid var(--acc-b);margin:.25rem 0 0}
.sum-total-lbl{font-size:.78rem;color:var(--muted)}
.sum-fk-lbl{font-size:.78rem;color:var(--muted)}
#sum-total{color:var(--muted)!important;font-weight:500!important}
.sum-row .a{font-weight:500;color:var(--dark)}

/* ── APPROVAL ── */
.approval-card{background:var(--surf);border-radius:14px;padding:1.8rem;max-width:620px;margin:1rem auto;box-shadow:var(--shadow)}
.approval-card h2{font-family:'EB Garamond',serif;font-size:1.35rem;font-weight:700;margin-bottom:1rem}
.info-row{display:flex;justify-content:space-between;padding:.4rem 0;font-size:.84rem;border-bottom:1px solid var(--faint)}
.info-row span:first-child{color:var(--muted)}
.sig-upload-zone{border:1.5px dashed var(--brd);border-radius:8px;min-height:70px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--surf2);transition:all .15s;overflow:hidden}
.sig-upload-zone:hover{border-color:var(--acc-b);background:var(--acc-d)}
.sig-upload-zone img{max-height:60px;max-width:100%;object-fit:contain;padding:4px}
.sig-upload-zone.has-sig{border-color:var(--acc-b);background:var(--acc-d)}
.status-banner{border-radius:10px;padding:1rem 1.2rem;text-align:center;font-weight:600;margin-bottom:1rem}
.status-banner.approved{background:var(--acc-d);color:var(--acc)}
.status-banner.rejected{background:var(--red-d);color:var(--red)}

/* ── Profile Modal ── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem}
.modal-box{background:var(--surf);border-radius:14px;padding:1.8rem;width:100%;max-width:420px;box-shadow:0 8px 40px rgba(0,0,0,.2);max-height:90vh;overflow-y:auto}
.modal-box h3{font-family:'EB Garamond',serif;font-size:1.2rem;font-weight:600;margin-bottom:1.2rem;color:var(--dark)}
.modal-close{float:right;background:none;border:none;font-size:1.3rem;line-height:1;cursor:pointer;color:var(--muted);margin:-.5rem -.5rem 0 0;width:2.75rem;height:2.75rem;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .15s}
.modal-close:hover{background:rgba(0,0,0,.06);color:var(--txt)}
/* Beleg button */
.btn-beleg{background:var(--surf2);border:1.5px solid var(--brd);color:var(--muted);border-radius:6px;width:32px;height:32px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}
.btn-beleg:hover{border-color:var(--acc-b);color:var(--acc)}
.btn-beleg.attached{background:var(--acc-d);border-color:var(--acc-b);color:var(--acc)}
/* Signature */
.sig-section{margin-top:1.2rem;padding-top:1rem;border-top:1px solid var(--faint)}
.sig-zone{border:1.5px dashed var(--brd);border-radius:8px;min-height:72px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--surf2);transition:all .15s;overflow:hidden;position:relative}
.sig-zone:hover{border-color:var(--acc-b);background:var(--acc-d)}
.sig-zone img{max-height:60px;max-width:100%;object-fit:contain;padding:4px}
.sig-zone.has-sig{border-color:var(--acc-b);background:var(--acc-d)}
.nav-user{font-size:.78rem;color:rgba(255,255,255,.6);cursor:pointer;text-decoration:underline;text-decoration-color:rgba(255,255,255,.2)}
.nav-user:hover{color:rgba(255,255,255,.9)}


/* Beleg button mit Dateiname (Desktop) */
.beleg-wrap{position:relative;display:flex;align-items:center;gap:.4rem}
.beleg-filename{font-size:.7rem;color:var(--acc);max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}
@media(max-width:640px){.beleg-filename{display:none}}
.btn-beleg.attached{position:relative}
.btn-beleg.attached::after{content:'';position:absolute;top:-3px;right:-3px;width:9px;height:9px;background:var(--acc);border:2px solid var(--surf);border-radius:50%}
.btn-beleg.uploading{opacity:.6;pointer-events:none}
.beleg-row{margin-top:.4rem;padding:.4rem .6rem;background:var(--acc-d);border-radius:6px;display:flex;align-items:center;gap:.5rem;font-size:.78rem}
.beleg-row a{color:var(--acc);text-decoration:none;font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.beleg-row a:hover{text-decoration:underline}
.beleg-row .b-size{font-size:.68rem;color:var(--muted)}
.status-banner{border-radius:10px;padding:.9rem 1.1rem;margin-bottom:1.2rem;font-size:.85rem;display:flex;align-items:flex-start;gap:.7rem}
.status-banner .b-icon{font-size:1.1rem;flex-shrink:0;line-height:1}
.status-banner.approved{background:var(--acc-d);color:var(--acc);border:1px solid var(--acc-b)}
.status-banner.submitted{background:var(--warn-d);color:var(--warn);border:1px solid rgba(180,83,9,.25)}
.status-banner.rejected{background:var(--red-d);color:var(--red);border:1px solid rgba(220,38,38,.3)}
.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-bottom:.6rem}
.review-grid .lbl{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.review-grid .val{font-size:.88rem;font-weight:500;margin-bottom:.4rem}
@media(max-width:540px){.review-grid{grid-template-columns:1fr}}
.review-section{background:var(--surf2);border-radius:8px;padding:.9rem 1rem;margin-bottom:.7rem;border:1px solid var(--faint)}
.review-section h4{font-family:'EB Garamond',serif;font-size:.78rem;color:var(--acc);text-transform:uppercase;letter-spacing:.6px;margin-bottom:.5rem;border-bottom:1px solid var(--acc-b);padding-bottom:.3rem}
.review-tbl{width:100%;border-collapse:collapse;font-size:.78rem}
.review-tbl th{text-align:left;padding:.35rem .5rem;background:var(--dark);color:#fff;font-size:.7rem;font-weight:600}
.review-tbl td{padding:.35rem .5rem;border-bottom:1px solid var(--faint)}
.review-tbl tr:last-child td{border-bottom:none}
.review-tbl .right{text-align:right}
.read-only-overlay input,.read-only-overlay select,.read-only-overlay button.btn-add,.read-only-overlay button.btn-remove,.read-only-overlay button.btn-beleg,.read-only-overlay button.btn-calc{pointer-events:none;opacity:.75}
.read-only-overlay input[type=date]{background:var(--faint)!important}


/* Status banners */
.status-bar{border-radius:8px;padding:.65rem 1rem;margin-bottom:1rem;font-size:.82rem;font-weight:500;display:flex;align-items:center;gap:.6rem}
.status-bar.approved{background:var(--acc-d);border:1px solid var(--acc-b);color:var(--acc)}
.status-bar.submitted{background:rgba(180,83,9,.08);border:1px solid rgba(180,83,9,.2);color:var(--warn)}
.status-bar.rejected{background:var(--red-d);border:1px solid rgba(220,38,38,.25);color:var(--red)}
/* Beleg filename */
.beleg-name{font-size:.62rem;color:var(--acc);max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:none}
.beleg-filename{font-size:.6rem;color:var(--acc);max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:middle}
.btn-beleg.attached{background:var(--acc-d);border-color:var(--acc-b);position:relative}
.btn-beleg.attached::after{content:'✓';position:absolute;top:-5px;right:-5px;background:var(--acc);color:#fff;border-radius:50%;width:14px;height:14px;font-size:9px;line-height:14px;text-align:center;font-weight:700}
.btn-beleg.uploading{opacity:.6}
@media(max-width:640px){.beleg-name,.beleg-filename{display:none!important}}
/* Review view */
.review-section{background:var(--surf);border-radius:10px;border:1px solid var(--faint);margin-bottom:.9rem;overflow:hidden}
.review-section-head{background:var(--surf2);padding:.5rem .9rem;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--acc);border-bottom:1px solid var(--faint)}
.review-table{width:100%;border-collapse:collapse}
.review-table td{padding:.45rem .9rem;font-size:.82rem;border-bottom:1px solid var(--faint);vertical-align:top}
.review-table td.lbl{color:var(--muted);width:42%;font-size:.78rem}
.review-table td.val-r .rv-sub{display:block;text-align:right;color:var(--muted);font-weight:400}
/* pb-Platzhalter nur noch in Header-Rows, nicht in rv-total */
.rv-total>.rv-c-pay:empty{display:none}
.review-table tr:last-child td{border:none}
.review-table th{background:var(--dark);color:#fff;font-size:.72rem;padding:.35rem .9rem;text-align:left}
.review-table td.val-r{text-align:right;font-size:.82rem}
.rv-tbl-sum td{border-top:1px solid var(--faint);font-weight:600}
.rv-tbl-net td{border-top:2px solid var(--acc-b);color:var(--acc);font-weight:700}
/* rv-sub: Projekt/Kunde unter Reisezweck */
.rv-sub{display:block;font-size:.73rem;color:var(--muted);margin-top:.2rem}
/* ── rv-list: Fahrtkosten / Übernachtung / Ausgaben ── */
.rv-list{padding:0}
.rv-header,.rv-item,.rv-total{display:flex;align-items:center;padding:.4rem .9rem}
.rv-header{background:var(--dark)}
.rv-header .rv-c{font-size:.68rem;color:#fff;font-weight:600;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}
.rv-item{border-bottom:1px solid var(--faint)}
.rv-item:last-of-type{border-bottom:none}
/* Desktop: feste Spaltenbreiten — breit genug für vollständige Titel */
.rv-c{font-size:.82rem;padding:0 .3rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rv-c-type  {flex:0 0 148px} /* "Verkehrsmittel" = 14 Zeichen */
.rv-c-period{flex:0 0 172px} /* "13.04.2026 – 16.04.2026" */
.rv-c-desc  {flex:1;min-width:0;white-space:normal;line-height:1.3;overflow:visible}
.rv-c-detail{flex:0 0 130px;color:var(--muted);font-size:.76rem;white-space:normal} /* "120 km ×2 × 0,30 €" */
.rv-c-beleg {flex:0 0 40px;text-align:center;padding:0}
.rv-c-pay   {flex:0 0 74px;text-align:center} /* "Zahlung" = 7 Zeichen */
.rv-c-amt   {flex:0 0 85px;text-align:right;font-weight:600} /* "1.234,56 €" */
.rv-badge{font-size:.63rem;border-radius:4px;padding:.1rem .35rem;font-weight:600;white-space:nowrap}
.rv-badge.fk{background:rgba(30,138,71,.12);color:var(--acc)}
.rv-badge.priv{background:var(--surf2);color:var(--muted)}
.rv-badge.expense-only{background:rgba(30,138,71,.12);color:var(--acc);margin-left:.4rem}
.rv-total{border-top:2px solid var(--faint);font-size:.82rem;font-weight:600}
.rv-total-lbl{flex:1}
.rv-total strong{flex:0 0 82px;text-align:right}
.rv-empty{font-size:.8rem;color:var(--muted);font-style:italic;padding:.55rem .9rem;margin:0}
.rv-beleg-thumb{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:4px;overflow:hidden;text-decoration:none;background:var(--surf2);border:1px solid var(--brd);color:var(--muted);font-size:.9rem;transition:all .15s}
.rv-beleg-thumb:hover{border-color:var(--acc-b);color:var(--acc)}
.rv-beleg-thumb img{width:100%;height:100%;object-fit:cover}
.rv-beleg-missing{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:14px;background:var(--warn-d);color:var(--warn);font-size:.85rem}

/* Mobile ≤640px: CSS-Grid → saubere 2-Spalten-Cards */
@media(max-width:640px){
  .rv-header{display:none}
  /* pb-Platzhalter (leere rv-c-pay in rv-total) auf Mobile ausblenden */
  .rv-total>.rv-c-pay:empty{display:none}

  /* Fahrtkosten & Übernachtung: Typ/Zeitraum oben, Beschreibung unten */
  .rv-list--tr .rv-item,
  .rv-list--acc .rv-item{
    display:grid;
    grid-template-columns:1fr auto auto;
    grid-template-rows:auto auto auto;
    padding:.55rem .9rem;gap:.05rem .4rem;align-items:baseline
  }
  .rv-list--tr .rv-c,.rv-list--acc .rv-c{padding:0;white-space:normal;overflow:visible}
  .rv-list--tr .rv-c-type,.rv-list--acc .rv-c-period{grid-column:1;grid-row:1;font-weight:600;font-size:.84rem}
  .rv-list--tr .rv-c-beleg,.rv-list--acc .rv-c-beleg{grid-column:2;grid-row:1;justify-self:end}
  .rv-list--tr .rv-c-amt,.rv-list--acc .rv-c-amt{grid-column:3;grid-row:1;font-weight:700;font-size:.86rem;text-align:right}
  .rv-list--tr .rv-c-desc,.rv-list--acc .rv-c-desc{grid-column:1;grid-row:2;font-size:.78rem;color:var(--muted)}
  .rv-list--tr .rv-c-pay,.rv-list--acc .rv-c-pay{grid-column:3;grid-row:2;text-align:right}
  .rv-list--tr .rv-c-detail{grid-column:1/-1;grid-row:3;font-size:.72rem;color:var(--muted);font-style:italic}
  .rv-list--tr .rv-c-detail:empty{display:none}

  /* Ausgaben: Beschreibung + Betrag in Zeile 1, Badge in Zeile 2 */
  .rv-list--exp .rv-item{
    display:grid;
    grid-template-columns:1fr auto auto;
    grid-template-rows:auto auto;
    padding:.5rem .9rem;gap:.05rem .4rem;align-items:baseline
  }
  .rv-list--exp .rv-c{padding:0;white-space:normal;overflow:visible}
  .rv-list--exp .rv-c-desc{grid-column:1;grid-row:1;font-size:.82rem;font-weight:500}
  .rv-list--exp .rv-c-beleg{grid-column:2;grid-row:1;justify-self:end}
  .rv-list--exp .rv-c-amt{grid-column:3;grid-row:1;font-weight:700;font-size:.86rem;text-align:right}
  .rv-list--exp .rv-c-pay{grid-column:3;grid-row:2;text-align:right}

  .rv-total{padding:.45rem .9rem;flex-wrap:wrap}
  .rv-total strong{flex:0 0 auto}
}
.review-grand{background:var(--acc-d);border:1.5px solid var(--acc-b);border-radius:8px;padding:.75rem 1rem;display:flex;justify-content:space-between;align-items:center;margin:.9rem 0}
.review-grand .lbl{font-size:.9rem;font-weight:600;color:var(--dark)}
.review-grand .amt{font-family:Syne,sans-serif;font-size:1.2rem;font-weight:800;color:var(--acc)}
.review-sig-area{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin-top:.9rem}
.review-sig-box{border:1px solid var(--brd);border-radius:8px;padding:.6rem;min-height:70px;background:var(--surf2)}
.review-sig-box img{max-height:60px;max-width:100%;object-fit:contain}
.review-sig-lbl{font-size:.65rem;color:var(--muted);margin-top:.3rem}


/* ── OCR Correction Modal ── */
.ocr-box{background:var(--surf);border-radius:14px;width:min(94vw,900px);max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 48px rgba(0,0,0,.25)}
.ocr-header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.2rem;border-bottom:1px solid var(--faint);flex-shrink:0}
.ocr-header h3{font-family:'EB Garamond',serif;font-size:1.2rem;font-weight:700;color:var(--dark)}
.ocr-body{display:grid;grid-template-columns:1fr 320px;flex:1;overflow:hidden}
@media(max-width:660px){.ocr-body{grid-template-columns:1fr;overflow-y:auto}}
.ocr-preview{background:#111;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;position:relative;min-height:200px}
.ocr-preview canvas{max-width:100%;max-height:100%;object-fit:contain;cursor:crosshair}
.ocr-preview-hint{position:absolute;bottom:6px;left:0;right:0;text-align:center;font-size:.62rem;color:rgba(255,255,255,.5);pointer-events:none}
.ocr-no-preview{color:rgba(255,255,255,.4);font-size:.85rem;text-align:center;padding:2rem}
.ocr-fields{padding:1.2rem;overflow-y:auto;display:flex;flex-direction:column;gap:.7rem;border-left:1px solid var(--faint)}
.ocr-field-row{cursor:pointer;border-radius:8px;padding:.5rem .6rem;transition:background .15s;border:2px solid transparent}
.ocr-field-row:hover{background:var(--acc-d)}
.ocr-field-row.highlighted{border-color:var(--acc-b);background:var(--acc-d)}
.ocr-field-row label{font-size:.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;font-weight:600;display:flex;align-items:center;gap:.3rem;margin-bottom:.25rem;cursor:pointer}
.ocr-field-row input,.ocr-field-row select{width:100%;background:var(--surf);border:1.5px solid var(--brd);border-radius:6px;padding:.42rem .65rem;font-family:'DM Sans',sans-serif;font-size:.88rem;color:var(--txt);outline:none}
.ocr-field-row input:focus,.ocr-field-row select:focus{border-color:var(--acc)}
.ocr-pin{font-size:.8rem;cursor:pointer;opacity:.6;transition:opacity .15s}
.ocr-pin:hover,.ocr-field-row:hover .ocr-pin{opacity:1}
.ocr-confidence{font-size:.6rem;padding:.12rem .4rem;border-radius:10px;font-weight:600}
.ocr-conf-ok{background:var(--acc-d);color:var(--acc)}
.ocr-conf-warn{background:rgba(180,83,9,.1);color:var(--warn)}
.ocr-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;padding-top:.8rem;border-top:1px solid var(--faint)}
.ocr-hint{font-size:.7rem;color:var(--muted);text-align:center;margin-bottom:.3rem}


/* ── PAY TOGGLE ── */
.pay-toggle{display:flex;gap:.5rem;align-items:center;margin:.3rem 0 .1rem;flex-wrap:wrap}
.pay-opt{display:flex;align-items:center;gap:.3rem;font-size:.72rem;color:var(--muted);cursor:pointer;padding:.2rem .5rem;border-radius:5px;border:1px solid var(--faint);white-space:nowrap}
.pay-opt input{accent-color:var(--acc)}
.pay-opt:has(input:checked){border-color:var(--acc-b);background:var(--acc-d);color:var(--acc)}
/* ── REPORT CARD PROJECT ── */
.rc-project{font-size:.72rem;color:var(--muted);margin-top:.15rem;display:flex;align-items:center;flex-wrap:wrap;gap:.35rem}
.rc-billable-badge{display:inline-block;font-size:.66rem;font-weight:700;color:var(--acc);background:var(--acc-d);border:1px solid var(--acc-b);border-radius:4px;padding:.05rem .35rem;white-space:nowrap}
/* ── GOBD BANNER ── */
.gobd-banner{background:var(--acc-d);border:1px solid var(--acc-b);border-radius:8px;padding:.7rem 1rem;margin-bottom:1rem;font-size:.82rem;color:var(--acc);font-weight:600}

/* ── PAY TOGGLE POSITIONING ── */
/* Transport: toggle zwischen tr-head und tr-body — einrücken + Trennlinie */
.transport-block>.pay-toggle{padding:.15rem .7rem .25rem;border-top:1px solid var(--faint);margin:0}
/* Accommodation + Expenses: toggle als volle Gitterzeile unterhalb der Hauptzeile */
.acc-block .pay-toggle{grid-column:1/-1;margin:.1rem 0 0;padding:.1rem 0}
.exp-block .pay-toggle{grid-column:1/-1;margin:.1rem 0 0;padding:.1rem 0}
.exp-block .bew-fields{grid-column:1/-1}

/* ══════════════════════════════════════════════════════════
   MOBILE  ≤ 640 px
   ══════════════════════════════════════════════════════════ */

/* Nav */
@media(max-width:640px){
  nav{padding:.5rem .85rem}
  .nav-title{display:none}
  .nav-right{gap:.35rem}
  .nav-btn{padding:.28rem .52rem;font-size:.7rem}
  .nav-user{max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem}
}

/* Container */
@media(max-width:640px){
  .container{padding:1rem .75rem}
}

/* Dashboard header */
@media(max-width:640px){
  .dash-header{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}
  .dash-header h1{font-size:1.1rem}
}

/* Report cards: stack on small screens */
@media(max-width:480px){
  .report-card{flex-direction:column;align-items:flex-start;gap:.55rem;padding:.85rem .95rem}
  .rc-right{width:100%;justify-content:space-between}
}

/* Form topbar */
@media(max-width:640px){
  .form-topbar{top:49px;padding:.5rem .75rem;gap:.4rem}
  .form-topbar-left{flex:1 1 100%;min-width:0}
  .form-topbar-right{flex:1 1 100%;justify-content:flex-end}
  .form-title-input{min-width:0;flex:1;font-size:.88rem}
  .save-status{display:none}
}

/* Sections */
@media(max-width:640px){
  section{padding:.9rem .85rem;border-radius:10px}
}

/* Accommodation block: from fixed grid to flex-wrap */
@media(max-width:640px){
  .acc-head-row{display:none}
  .acc-block{
    display:flex;flex-wrap:wrap;gap:.45rem;
    padding:.6rem;align-items:center
  }
  .acc-block .date-wrap{flex:0 0 calc(50% - .25rem);min-width:0}
  .acc-block .acc-loc{flex:1 1 100%}
  .acc-block .acc-cost{flex:1 1 80px;min-width:70px}
  .acc-block .beleg-wrap{flex:0 0 auto;margin-left:auto}
  .acc-block .btn-remove{flex:0 0 auto}
  .acc-block .pay-toggle{flex:0 0 100%;margin:0;grid-column:unset}
}

/* Expense block */
@media(max-width:640px){
  .exp-head{display:none}
  .exp-block{grid-template-columns:1fr 72px 34px 34px;gap:.35rem}
  .exp-block .exp-cat{grid-column:1/-1}
  .exp-block .pay-toggle{grid-column:1/-1}
  .bew-fields{grid-template-columns:1fr}
}

/* Transport: km-meta */
@media(max-width:640px){
  .km-meta{grid-template-columns:1fr 1fr;gap:.4rem}
  .rt-cbx{grid-column:1 / -1;justify-content:flex-start}
  .km-row{gap:.35rem}
  .tr-type-sel{width:120px}
}

/* Summary box */
@media(max-width:640px){
  .summary-box{padding:.8rem .9rem}
  .sum-row{font-size:.82rem}
  .sum-row:last-child{font-size:.95rem}
}

/* Modals */
@media(max-width:480px){
  .modal-overlay{padding:.5rem}
  .modal-box{padding:1.3rem 1rem;border-radius:10px;max-height:95vh;overflow-y:auto}
}

/* Per-diem card */
@media(max-width:640px){
  .meal-row{grid-template-columns:1fr 50px auto}
  .pd-body{padding:.65rem}
}

/* Review — Mobile */
@media(max-width:640px){
  .review-sig-area{grid-template-columns:1fr}
  .approval-card{padding:1.2rem .95rem;margin:.5rem}

  /* Mehrspaltige Tabellen (Fahrtkosten, Übernachtung, Ausgaben) horizontal scrollbar */
  .review-section{overflow-x:auto}

  /* Gesamtzeile kompakter */
  .review-grand{flex-direction:column;align-items:flex-start;gap:.2rem}
  .review-grand .amt{font-size:1.05rem}
}

/* Admin tables: horizontal scroll */
@media(max-width:640px){
  .admin-table-wrap,
  [style*="overflow-x:auto"]{overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* ── Nav: kurze Button-Labels auf sehr kleinen Screens ── */
@media(max-width:480px){
  /* Benutzername als kleines Kreis-Icon zeigen statt Text */
  .nav-user{
    display:inline-flex!important;max-width:none;font-size:0;
    width:28px;height:28px;background:rgba(255,255,255,.15);
    border-radius:50%;align-items:center;justify-content:center;flex-shrink:0
  }
  .nav-user::after{content:'👤';font-size:.82rem}
  .nav-long{display:none}
  #nav-admin-btn{font-size:.68rem;padding:.28rem .42rem}
}

/* ── Transport-Block: 2-Zeilen-Struktur handled Mobile — nur minimal anpassen ── */
@media(max-width:640px){
  .tr-type-sel{flex:0 0 110px}
  .tr-head{gap:.28rem}
}

/* ── Tagegeld: Meal-Box auf sehr kleinen Screens ── */
@media(max-width:480px){
  .meal-row{grid-template-columns:1fr auto}
  .meal-hint{display:none}
  .pd-body{padding:.5rem}
}

/* ── Admin-Tabellen: Desktop-Kopfzeile ── */
.admin-tbl th{background:var(--dark);color:#fff;padding:.55rem .9rem;text-align:left;font-size:.72rem;font-weight:600}
.admin-tbl th:first-child{border-radius:10px 0 0 0}
.admin-tbl th:last-child{border-radius:0 10px 0 0}
.admin-tbl th.c{text-align:center}

/* ── Admin-Tabellen: Card-Format auf Mobile ── */
@media(max-width:640px){
  .admin-tbl{border:none!important;box-shadow:none!important}
  .admin-tbl thead{display:none}
  .admin-tbl tbody tr,.admin-tbl tfoot tr{
    display:block;background:var(--surf);border:1.5px solid var(--faint);
    border-radius:10px;margin-bottom:.6rem;padding:.55rem .7rem;
    box-shadow:var(--shadow);position:relative
  }
  /* Summenzeile (tfoot, z.B. "Gesamt") optisch von den Datensätzen absetzen */
  .admin-tbl tfoot tr{background:var(--surf2);font-weight:600}
  .admin-tbl td{
    display:flex;justify-content:space-between;align-items:center;
    padding:.28rem 0!important;font-size:.82rem!important;border:none!important;
    border-bottom:1px solid var(--faint)!important
  }
  .admin-tbl td:last-child{border-bottom:none!important}
  .admin-tbl td::before{
    content:attr(data-label);
    font-size:.67rem;font-weight:600;color:var(--muted);
    text-transform:uppercase;letter-spacing:.5px;flex-shrink:0;margin-right:.5rem
  }
  .admin-tbl td[data-label=""]::before{display:none}
  .admin-tbl td[data-label=""]{justify-content:flex-end;gap:.4rem}

  /* Klickbare Sektions-Kopfzeile (z.B. Monatsgruppe, ein einzelnes colspan-td mit
     Pfeil+Titel+Badges) darf NICHT durch das generische Label/Wert-Flex-Layout der
     Datenzeilen laufen — sonst reißt justify-content:space-between die Inline-Kinder
     (Pfeil, Titel, Badges) weit auseinander. Eigene, einfache Block-Darstellung. */
  .admin-tbl tr.sec-header-row{
    background:var(--surf2)!important;border-radius:8px;margin-bottom:.4rem;
    padding:.6rem .8rem;box-shadow:none
  }
  .admin-tbl tr.sec-header-row td{
    display:block!important;padding:0!important;border:none!important
  }
  .admin-tbl tr.sec-header-row td::before{display:none!important}
}

/* ── BENUTZERHANDBUCH ─────────────────────────────────────────────────────── */
.help-layout{display:grid;grid-template-columns:230px 1fr;gap:2rem;align-items:start}
.help-nav{
  display:block;
  position:sticky;top:72px;max-height:calc(100vh - 90px);overflow-y:auto;
  background:var(--surf);border:1.5px solid var(--faint);border-radius:13px;
  box-shadow:0 1px 6px rgba(0,0,0,.06);padding:.4rem 0;
}
.help-nav-group{margin-bottom:.1rem}
.help-nav-group+.help-nav-group{border-top:1px solid var(--faint);margin-top:.3rem;padding-top:.3rem}
.help-nav-title{font-size:.62rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.9px;padding:.45rem .9rem .2rem}
.help-nav a{
  display:block;
  padding:.36rem .85rem .36rem .75rem;
  font-size:.79rem;color:#4b5563;text-decoration:none;
  border-left:3px solid transparent;
  transition:background .12s,color .12s,border-color .12s;
}
/* Ellipsis nur auf Desktop, wo Sidebar-Breite fix ist */
@media(min-width:861px){
  .help-nav a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .help-nav a.indent{padding-left:1.5rem;font-size:.76rem;color:#6b7280}
  .help-nav a.indent.active{color:var(--acc)}
}
.help-nav a:hover{background:var(--acc-d);color:var(--dark)}
.help-nav a.active{
  border-left-color:var(--acc);background:rgba(30,138,71,.07);
  color:var(--acc);font-weight:600;
}
.help-body{min-width:0}
.help-body h2{font-size:1.15rem;font-weight:700;color:var(--dark);margin:2.4rem 0 .6rem;padding-bottom:.45rem;border-bottom:1.5px solid var(--faint);scroll-margin-top:80px}
.help-body h2:first-child{margin-top:0}
.help-body h3{font-size:.95rem;font-weight:700;color:var(--dark);margin:1.4rem 0 .45rem;scroll-margin-top:80px}
.help-body h4{font-size:.85rem;font-weight:700;color:#374151;margin:1rem 0 .35rem}
.help-body p,.help-body ul,.help-body ol{font-size:.86rem;color:#374151;line-height:1.65;margin-bottom:.65rem}
.help-body ul,.help-body ol{padding-left:1.4rem}
.help-body li{margin-bottom:.25rem}
.help-section{margin-bottom:2.8rem;scroll-margin-top:72px}
.help-section-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.8rem;padding-bottom:.5rem;border-bottom:1.5px solid var(--faint)}
.help-section-icon{font-size:1.3rem;line-height:1}
.help-section-title{font-size:1.1rem;font-weight:700;color:var(--dark);margin:0}
.help-text{font-size:.86rem;color:#374151;line-height:1.65;margin-bottom:.7rem}

/* Schritt-Nummern */
.help-steps{display:flex;flex-direction:column;gap:.55rem;margin:.7rem 0 .9rem}
.help-step{display:grid;grid-template-columns:26px 1fr;gap:.55rem;align-items:start}
.help-step-num{width:24px;height:24px;border-radius:50%;background:var(--acc);color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:.15rem}
.help-step-text{font-size:.84rem;color:#374151;line-height:1.55;padding-top:.15rem}
.help-step-text strong{color:var(--dark)}

/* Callout-Boxen */
.help-callout{display:flex;gap:.55rem;padding:.6rem .8rem;border-radius:9px;font-size:.81rem;line-height:1.5;margin:.55rem 0}
.help-callout.tip{background:#f0faf4;border-left:3px solid var(--acc);color:#1a5c35}
.help-callout.warn{background:#fff8f0;border-left:3px solid #e07000;color:#7a3a00}
.help-callout.info{background:#f0f5ff;border-left:3px solid #4a7fe0;color:#1a3a7a}
.help-callout-icon{flex-shrink:0;margin-top:.05rem}

/* Inline-Tipp-Boxen (verwendet in help.js) */
.help-tip{padding:.55rem .8rem;border-radius:9px;font-size:.81rem;line-height:1.5;margin:.55rem 0;background:#f0faf4;border-left:3px solid var(--acc);color:#1a5c35}
.help-tip.warn{background:#fff8f0;border-left-color:#e07000;color:#7a3a00}

/* Querverweise zwischen Abschnitten */
.help-xref{font-size:.78rem;color:var(--muted);margin:.4rem 0 .9rem;padding:.35rem .7rem;background:var(--bg);border-radius:7px;border-left:2px solid var(--faint)}
.help-xref a{color:var(--acc);text-decoration:none;font-weight:500}
.help-xref a:hover{text-decoration:underline}

/* Mockup-Karten */
.hmk{background:var(--surf);border:1.5px solid var(--faint);border-radius:11px;overflow:hidden;box-shadow:var(--shadow);margin:.65rem 0;font-family:'DM Sans',sans-serif;position:relative}
.hmk::after{content:'Beispiel';position:absolute;top:.38rem;right:.65rem;font-size:.58rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.4px;opacity:.65}
.hmk-bar{background:var(--dark);color:#fff;padding:.42rem .8rem;font-size:.73rem;font-weight:600;display:flex;align-items:center;gap:.4rem}
.hmk-bar-acc{background:var(--acc);color:#fff;padding:.4rem .8rem;font-size:.73rem;font-weight:600}
.hmk-row{display:grid;grid-template-columns:135px 1fr;padding:.38rem .8rem;border-bottom:1px solid var(--faint);gap:.5rem;align-items:center}
.hmk-row:last-child{border-bottom:none}
.hmk-lbl{font-size:.7rem;color:var(--muted);font-weight:500}
.hmk-val{font-size:.81rem;color:var(--dark)}
.hmk-mono{font-family:monospace;font-size:.76rem!important;letter-spacing:.5px}
.hmk-full{padding:.42rem .8rem;font-size:.81rem;color:var(--dark);border-bottom:1px solid var(--faint)}
.hmk-full:last-child{border-bottom:none}
.hmk-2col{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding:.4rem .8rem;border-bottom:1px solid var(--faint)}
.hmk-sub-lbl{font-size:.68rem;color:var(--muted);margin-bottom:.18rem}
.hmk-sub-val{font-size:.79rem;color:var(--dark);font-weight:400}

/* Status-Badges */
.hmk-badge{display:inline-flex;align-items:center;gap:.22rem;padding:.18rem .55rem;border-radius:20px;font-size:.7rem;font-weight:600;white-space:nowrap}
.hmk-badge.draft{background:#f0f0f0;color:#555}
.hmk-badge.submitted{background:#fff8e1;color:#7a5500}
.hmk-badge.approved{background:#e8f5e9;color:#1a5c35}
.hmk-badge.rejected{background:#ffebee;color:#b71c1c}
.hmk-badge.paid{background:#e8f5e9;color:#2e7d32}

/* Report-Karten (Dashboard-Mockup) */
.hmk-report-card{background:var(--surf);border:1.5px solid var(--faint);border-radius:9px;padding:.5rem .75rem;display:grid;grid-template-columns:1fr auto;gap:.15rem .8rem;align-items:center}
.hmk-report-title{font-size:.85rem;font-weight:600;color:var(--dark)}
.hmk-report-meta{font-size:.7rem;color:var(--muted)}

/* Status-Fluss */
.help-flow{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin:.7rem 0;padding:.75rem .9rem;background:var(--bg);border-radius:10px}
.help-flow-step{text-align:center}
.help-flow-arrow{color:var(--muted);font-size:1rem;line-height:1}
.help-flow-label{font-size:.65rem;color:var(--muted);margin-top:.2rem;text-align:center}

/* Tabelle */
.help-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:.5rem 0 .8rem}
.help-table-wrap .help-table{margin:0}
.help-table{width:100%;border-collapse:collapse;font-size:.81rem;margin:.5rem 0 .8rem;border-radius:9px;overflow:hidden;border:1.5px solid var(--faint)}
.help-table thead tr{background:var(--dark);color:#fff}
.help-table th{padding:.4rem .75rem;text-align:left;font-weight:600;font-size:.71rem}
.help-table td{padding:.4rem .75rem;border-bottom:1px solid var(--faint);color:var(--dark)}
.help-table tbody tr:last-child td{border-bottom:none}
.help-table tbody tr:nth-child(even){background:var(--bg)}

@media(max-width:640px){
  .help-layout{grid-template-columns:1fr;gap:1rem}
  .help-nav{
    position:sticky;top:52px;z-index:9;
    display:flex;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:.35rem;
    max-height:none;border-radius:0;
    border-left:none;border-right:none;border-top:none;border-bottom:1px solid var(--faint);
    padding:.45rem .9rem;margin:0;box-shadow:0 2px 6px rgba(0,0,0,.06);
    scrollbar-width:none;
  }
  .help-nav::-webkit-scrollbar{display:none}
  /* Unterlinks ausblenden — nur Hauptsektionen als Chips */
  .help-nav a.indent{display:none!important}
  .help-nav a{
    display:inline-flex;align-items:center;
    flex-shrink:0;border-radius:20px;border-left:none;
    padding:.32rem .9rem;font-size:.8rem;font-weight:500;
    background:var(--bg);color:#4b5563;
    white-space:nowrap;overflow:visible;text-overflow:clip;
  }
  .help-nav a.active{background:rgba(30,138,71,.12);border-left:none;color:var(--acc);font-weight:600}
  .help-body h2,.help-body h3{scroll-margin-top:115px}
}

/* ── HANDBUCH V4: Rollen-Banner, Akkordeon, Modul-Karten ─────────────────────── */
.help-rolebar{
  display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;
  background:linear-gradient(90deg,var(--acc-d),transparent);
  border:1px solid var(--faint);border-left:3px solid var(--acc);
  border-radius:10px;padding:.6rem .85rem;margin-bottom:1.3rem;
  font-size:.82rem;color:#1a5c35;line-height:1.4;
}
.help-rolebar strong{color:var(--dark)}

/* Akkordeon-Abschnitte (Wikipedia-Stil: einzeln auf-/zuklappbar) */
.help-acc{
  border:1.5px solid var(--faint);border-radius:13px;background:var(--surf);
  margin-bottom:1rem;overflow:hidden;scroll-margin-top:120px;
  box-shadow:0 1px 4px rgba(0,0,0,.04);
}
.help-acc-head{
  display:flex;align-items:center;gap:.65rem;width:100%;
  background:none;border:none;cursor:pointer;text-align:left;
  font-family:inherit;padding:.9rem 1.05rem;transition:background .12s;
}
.help-acc-head:hover{background:var(--bg)}
.help-acc-icon{font-size:1.25rem;line-height:1;flex-shrink:0}
.help-acc-head h2{
  font-size:1.1rem;font-weight:700;color:var(--dark);
  margin:0;padding:0;border:none;flex:1;scroll-margin-top:120px;
}
.help-acc-chevron{font-size:1.15rem;color:var(--muted);transition:transform .22s;flex-shrink:0}
.help-acc.open .help-acc-chevron{transform:rotate(180deg)}
.help-acc-body{padding:0 1.15rem 1.05rem;display:none}
.help-acc.open .help-acc-body{display:block;animation:helpFade .18s ease}
@keyframes helpFade{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.help-acc-body>h3:first-child,.help-acc-body>p:first-child{margin-top:.2rem}
.help-body h3{scroll-margin-top:120px}

/* Drei Modul-Karten im Einstiegsabschnitt */
.help-cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin:.9rem 0}
.help-modcard{
  display:flex;gap:.6rem;align-items:flex-start;
  padding:.7rem .8rem;background:var(--bg);border:1px solid var(--faint);
  border-radius:10px;font-size:.82rem;line-height:1.5;color:#374151;
}
.help-modcard-ic{font-size:1.45rem;line-height:1;flex-shrink:0}
@media(max-width:700px){.help-cards3{grid-template-columns:1fr}}

.help-foot{margin-top:1.6rem;padding-top:1rem;border-top:1px solid var(--faint);
  font-size:.8rem;color:var(--muted);text-align:center}

/* Echte Screenshots: unsichtbar, bis eine Bilddatei existiert (onload blendet ein) */
.help-shot{margin:.8rem 0;display:block}
.help-shot[hidden]{display:none}
.help-shot img{display:block;width:100%;height:auto;border:1.5px solid var(--faint);
  border-radius:11px;box-shadow:0 2px 10px rgba(0,0,0,.08)}
.help-shot figcaption{font-size:.74rem;color:var(--muted);text-align:center;margin-top:.4rem;font-style:italic}

/* ── STATISTIK ── */
@media(max-width:700px){
  #v-stats .container>div[style*="grid-template-columns:2fr"]{grid-template-columns:1fr!important}
}

/* ─── Stundenerfassung ───────────────────────────────────────── */
.tt-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.tt-cal-header{font-size:.68rem;font-weight:600;text-align:center;color:var(--muted);padding:.3rem 0}
.tt-day{min-height:72px;border-radius:8px;padding:.35rem .4rem;cursor:pointer;
  border:1.5px solid transparent;background:var(--surf);position:relative;
  font-size:.72rem;transition:background .15s}
.tt-day:hover{background:var(--acc-d)}
.tt-day.weekend{background:var(--surf2);color:var(--muted);cursor:default}
.tt-day.holiday{background:rgba(180,83,9,.09)}
.tt-day.today{border-color:var(--dark)!important;border-width:2px}
.tt-day.plus{border-left:3px solid var(--acc)}
.tt-day.minus{border-left:3px solid var(--red)}
.tt-day.other-month{opacity:.25;pointer-events:none}
.tt-day-num{font-weight:600;font-size:.8rem;color:var(--dark)}
.tt-day.weekend .tt-day-num{color:var(--muted)}
.tt-day-entry{font-size:.65rem;color:var(--acc);margin-top:.15rem}
.tt-day-absenz{display:inline-block;font-size:.6rem;background:var(--acc-d);
  color:var(--acc);padding:.1rem .3rem;border-radius:4px;margin-top:.15rem}
.tt-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin-bottom:1rem}
.tt-kpi{background:var(--surf);border:1.5px solid var(--brd);border-radius:10px;
  padding:.65rem .8rem;text-align:center}
.tt-kpi-val{font-family:'EB Garamond',serif;font-size:1.4rem;font-weight:700;color:var(--dark)}
.tt-kpi-val.pos{color:var(--acc)}
.tt-kpi-val.neg{color:var(--red)}
.tt-kpi-lbl{font-size:.65rem;color:var(--muted);margin-top:.1rem;text-transform:uppercase;letter-spacing:.04em}
.tt-month-nav{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}
.tt-month-title{font-family:Syne,sans-serif;font-weight:700;font-size:1.05rem;color:var(--dark);flex:1}
.tt-year-table{width:100%;border-collapse:collapse;font-size:.82rem}
.tt-year-table th{text-align:left;padding:.5rem .6rem;border-bottom:2px solid var(--brd);
  font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap}
.tt-year-table td{padding:.45rem .6rem;border-bottom:1px solid var(--faint);vertical-align:middle}
.tt-year-table tfoot td{font-weight:700}
.tt-year-table tr:hover td{background:var(--surf2)}
.tt-progress-bar{height:6px;background:var(--brd);border-radius:3px;overflow:hidden;min-width:70px}
.tt-progress-fill{height:100%;background:var(--acc);border-radius:3px;transition:width .3s}
@media(max-width:640px){
  .tt-kpis{grid-template-columns:repeat(2,1fr)}
  .tt-day{min-height:52px;padding:.25rem .3rem}
  .tt-day-num{font-size:.72rem}
  .tt-year-table th:nth-child(n+5),.tt-year-table td:nth-child(n+5){display:none}
}
@media(max-width:420px){
  .tt-cal{gap:2px}
  .tt-day{min-height:42px;padding:.2rem}
  .tt-day-entry,.tt-day-absenz{display:none}
}

/* ─── Container-Tiers ────────────────────────────────────────────── */
.container--mid    { max-width:960px }
.container--narrow { max-width:760px }
.container--wide   { max-width:1200px }

/* ─── Zeitspannen-Zeile (mehrere Von/Bis pro Tag) ────────────────── */
.tt-seg-row{display:flex;gap:.42rem;align-items:end;flex-wrap:wrap;margin-bottom:.55rem}
.tt-seg-row .field{flex:0 0 128px;min-width:0;margin-bottom:0}
.tt-seg-row .btn-remove{margin-bottom:1px}

/* ─── Live-Bar im Modal ──────────────────────────────────────────── */
.tt-live-bar{display:flex;gap:.8rem;padding:.6rem .85rem;background:var(--surf2);
  border-radius:8px;margin-bottom:1rem;font-size:var(--fs-sm);flex-wrap:wrap}

/* ─── Stoppuhr ───────────────────────────────────────────────────── */
.tt-stoppuhr-live{font-variant-numeric:tabular-nums;color:var(--acc);font-weight:700;
  font-size:var(--fs-md);letter-spacing:.05em}
.tt-stoppuhr-btn.active{background:var(--red)!important;border-color:var(--red)!important;color:#fff!important}

/* ─── Gleitzeit-Alerts ───────────────────────────────────────────── */
.tt-alert{border-radius:8px;padding:.55rem .9rem;font-size:var(--fs-sm);margin-bottom:.75rem;line-height:1.5}
.tt-alert.warn  {background:var(--warn-d);color:var(--warn);border:1px solid var(--warn)}
.tt-alert.danger{background:var(--red-d); color:var(--red); border:1px solid var(--red)}

/* ─── Absenz-Badges ──────────────────────────────────────────────── */
.abs-badge{display:inline-block;font-size:var(--fs-xxs);padding:.15rem .45rem;
  border-radius:10px;font-weight:600;line-height:1.4}
.abs-badge.pending {background:var(--warn-d);color:var(--warn)}
.abs-badge.approved{background:var(--acc-d); color:var(--acc)}
.abs-badge.rejected{background:var(--red-d); color:var(--red)}

/* ─── Team-Jahresübersicht ───────────────────────────────────────── */
/* Legende (geteilt von Timeline + Raster) */
.tt-legend{display:flex;flex-wrap:wrap;gap:.45rem .9rem;margin-top:.85rem;
  padding:.5rem .75rem;background:var(--surf2);border-radius:8px}
.tt-legend-item{display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;color:var(--muted)}
.tt-legend-dot{width:11px;height:11px;border-radius:3px;display:inline-block;flex:0 0 auto}

/* Farb-Swatches im Profil (Auswahl aus USER_COLOR_PALETTE) */
.p-color-swatches{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.3rem}
.p-color-swatch{width:24px;height:24px;border-radius:50%;border:2px solid transparent;
  cursor:pointer;padding:0;box-shadow:inset 0 0 0 1px var(--brd)}
.p-color-swatch.active{border-color:var(--dark);box-shadow:0 0 0 2px var(--surf),0 0 0 3px var(--dark)}

/* Ansicht 1 — Timeline/Balken */
.tt-tl-head{display:flex;margin-bottom:.4rem}
.tt-tl-head .tt-tl-track{display:flex;background:none}
.tt-tl-head .tt-tl-track>span{flex:1 1 0;text-align:center;font-size:.6rem;
  color:var(--muted);text-transform:uppercase;letter-spacing:.02em}
.tt-tl-row{display:flex;align-items:stretch;height:26px;margin-bottom:3px}
.tt-tl-name{flex:0 0 120px;display:flex;align-items:center;padding-right:.5rem;
  font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tt-tl-track{position:relative;flex:1 1 auto;background:var(--surf2);
  border-radius:4px;overflow:hidden}
.tt-tl-grid{position:absolute;inset:0;display:flex}
.tt-tl-grid>span{flex:1 1 0;border-right:1px solid var(--faint)}
.tt-tl-grid>span:last-child{border-right:none}
.tt-tl-bar{position:absolute;top:3px;bottom:3px;border-radius:3px;min-width:2px;cursor:default}
@media(max-width:640px){.tt-tl-name{flex:0 0 80px;font-size:.68rem}}

/* Ansicht 2 — Mini-Kalender-Raster */
.tt-yr-wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}
@media(max-width:900px){.tt-yr-wrap{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.tt-yr-wrap{grid-template-columns:repeat(2,1fr)}}
.tt-yr-month{background:var(--surf);border:1px solid var(--brd);border-radius:8px;padding:.45rem}
.tt-yr-mname{font-size:.7rem;font-weight:700;color:var(--dark);text-align:center;
  margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.04em}
.tt-yr-wd{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;margin-bottom:2px}
.tt-yr-wd>span{font-size:.5rem;color:var(--muted);text-align:center}
.tt-yr-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}
.tt-yr-day{position:relative;font-size:.55rem;line-height:1;text-align:center;
  padding:.2rem 0;border-radius:2px;color:var(--muted);min-height:1.15rem}
.tt-yr-day.empty{background:none}
.tt-yr-day.we{background:var(--surf2)}
.tt-yr-day.busy{color:#fff;font-weight:600}
.tt-yr-more{position:absolute;top:-3px;right:-2px;font-size:.45rem;line-height:1.3;
  background:var(--dark);color:#fff;border-radius:50%;min-width:.85rem;display:inline-block}

/* ─── Kalender V2 ────────────────────────────────────────────────── */
.tt-day-abs-pending {outline:1.5px dashed var(--warn);outline-offset:-1px}
.tt-day-abs-approved{border-left:3px solid #7c3aed!important}
.tt-day.locked{opacity:.65;cursor:not-allowed!important}
.tt-day.locked::after{content:'🔒';position:absolute;top:2px;right:3px;font-size:.52rem}

/* ─── Tabs wrapping (für Admin mit vielen Tabs) ───────────────────── */
.tabs{flex-wrap:wrap}

/* ─── Empty-State einheitlich ────────────────────────────────────── */
.empty-state{text-align:center;padding:2.5rem 1rem;color:var(--muted)}
.empty-state .e-icon{font-size:2.5rem;margin-bottom:.75rem}
.empty-state h3{font-family:Syne,sans-serif;font-weight:700;font-size:1.05rem;color:var(--dark);margin-bottom:.4rem}
.empty-state p{font-size:var(--fs-sm);line-height:1.55}

/* ─── Modul-Switcher (bereits vorhanden, Farben vereinheitlicht) ─── */
.module-nav{display:flex;gap:.4rem;margin-bottom:1.25rem}
.module-btn{background:var(--surf2);border:1.5px solid var(--brd);color:var(--muted);
  border-radius:8px;padding:.42rem 1.1rem;font-size:var(--fs-sm);font-family:'DM Sans',sans-serif;
  font-weight:500;cursor:pointer;transition:all .15s}
.module-btn:hover{background:var(--acc-d);border-color:var(--acc-b);color:var(--acc)}
.module-btn.active{background:var(--dark);border-color:var(--dark);color:#fff;cursor:default}


/* ─── Nav-Logo ───────────────────────────────────────────────────── */
.nav-logo-wrap{cursor:pointer;display:flex;align-items:center;padding:2px 0;position:relative}
.nav-news-dot{display:none;position:absolute;top:-2px;right:-6px;width:9px;height:9px;border-radius:50%;background:var(--red,#dc2626);border:1.5px solid var(--dark)}
.nav-logo-img{height:36px;width:auto;display:block}

/* ─── Login-Redesign ─────────────────────────────────────────────── */
.auth-logo-real{text-align:center;margin-bottom:1rem}
.auth-logo-real img{height:56px;width:auto}
.auth-divider{width:88px;height:3px;background:linear-gradient(90deg,var(--dark),var(--acc));border-radius:2px;margin:.8rem auto 1rem}
.auth-tagline{font-family:'Syne',sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:center;margin-bottom:1.8rem}

/* ─── Home-Screen ────────────────────────────────────────────────── */
#v-home{position:relative}
#home-confetti-canvas{position:absolute;inset:0;pointer-events:none;z-index:5}
.home-hero{background:linear-gradient(135deg,#12451f 0%,#1b5e2c 60%,#1E8A47 100%);padding:.85rem 1.75rem;display:flex;align-items:center;justify-content:space-between}
#home-ticker{background:rgba(18,69,31,.08);border-bottom:1px solid rgba(18,69,31,.15);overflow:hidden;white-space:nowrap;padding:.4rem 0}
.home-ticker-track{display:inline-block;padding-left:100%;font-size:.82rem;font-weight:500;color:#12451f;animation:mcg-marquee 18s linear infinite}
@keyframes mcg-marquee{from{transform:translateX(0)}to{transform:translateX(-100%)}}
.home-hero-name{font-family:'EB Garamond',serif;font-size:1.4rem;font-weight:700;color:#fff;margin-bottom:.15rem}
.home-hero-sub{font-size:.8rem;color:rgba(255,255,255,.6)}
.home-avatar{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.18);border:1.5px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;font-family:'EB Garamond',serif;font-weight:700;color:#fff;font-size:1.05rem;flex-shrink:0}
.home-body{background:var(--bg);padding:1.75rem 1.75rem 1.25rem}
.home-section-lbl{font-family:'Syne',sans-serif;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin-bottom:.85rem}
.home-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-bottom:1.25rem}
.home-card{background:var(--surf);border-radius:14px;border:1.5px solid var(--faint);box-shadow:var(--shadow);cursor:pointer;transition:all .2s;overflow:hidden}
.home-card:hover{border-color:var(--acc-b);transform:translateY(-2px);box-shadow:0 8px 28px rgba(18,38,58,.1)}
.home-card-top{padding:1.3rem 1.4rem .9rem}
.home-card-icon-row{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.7rem}
.home-card-icon{font-size:2rem;line-height:1}
.home-card-title{font-family:'EB Garamond',serif;font-size:clamp(1rem,2vw,1.35rem);font-weight:700;color:var(--dark);margin-bottom:.25rem}
.home-card-sub{font-size:.78rem;color:var(--muted);line-height:1.5}
.home-card-divider{height:1px;background:var(--faint);margin:0 1.4rem}
/* KPIs dürfen bei schmaler Kachel umbrechen → jede KPI bekommt dann volle Breite,
   Labels passen komplett (statt 3 gequetschte Spalten mit zerhackten Wörtern).
   Breite Kachel: flex-basis erlaubt weiterhin 3 nebeneinander. */
.home-card-kpis{padding:.85rem 1.4rem;display:flex;flex-wrap:wrap;column-gap:1.2rem;row-gap:.55rem}
.home-kpi{flex:1 1 4.5rem;min-width:0}
.home-kpi-val{font-family:'EB Garamond',serif;font-size:clamp(0.75rem,1.6vw,1.2rem);font-weight:700;color:var(--dark);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-kpi-val.orange{color:var(--warn)}
.home-kpi-val.red{color:var(--red)}
.home-kpi-val.green{color:var(--acc)}
.home-kpi-lbl{font-family:'Syne',sans-serif;font-size:.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:.12rem;overflow-wrap:break-word}
.home-card-btn-row{padding:.1rem 1.4rem 1.2rem;display:flex;gap:.5rem;flex-wrap:wrap}
/* flex-basis groß genug, dass zwei Labels nicht in eine zu schmale Zeile gequetscht
   und abgeschnitten werden — passt nicht beides nebeneinander, bricht die Zeile um
   und jeder Button nimmt die volle Kachelbreite ein (Text immer vollständig).
   Kein overflow:hidden mehr, damit nie abgeschnitten wird. */
.home-card-btn{flex:1 1 11rem;display:flex;align-items:center;justify-content:space-between;gap:.4rem;background:var(--dark);color:#fff;padding:.55rem .95rem;border-radius:8px;font-size:.82rem;font-weight:500;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;transition:filter .15s;white-space:normal;text-align:left;line-height:1.2}
.home-card-btn:hover{filter:brightness(1.1)}
.home-card-btn.btn-ein{flex:0 0 auto;background:var(--acc);justify-content:center;gap:.4rem}
.home-card-btn.btn-aus{flex:0 0 auto;background:var(--red,#dc2626);justify-content:center;gap:.4rem}
/* Posteingang + Pinnwand nebeneinander (40/60) */
.home-split{display:flex;gap:1.1rem;align-items:flex-start;margin-bottom:1.25rem}
.home-split > #home-inbox{flex:0 0 60%;min-width:0}
.home-split > #home-board{flex:1 1 auto;min-width:0}
#home-inbox:empty{display:none}
.home-panel{background:var(--surf);border-radius:14px;border:1.5px solid var(--faint);box-shadow:var(--shadow);padding:.8rem 1.25rem 1.05rem;overflow:hidden}
.home-panel:empty{display:none}
.home-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;min-height:2.3rem;border-bottom:1px solid var(--faint);padding-bottom:.45rem;margin-bottom:.55rem}
.home-panel-title{font-family:'EB Garamond',serif;font-size:1rem;font-weight:700;color:var(--dark)}
/* Pinnwand-Header: Meta (Titel+Pager) + Compose (Input+Button) nebeneinander */
.board-head{align-items:stretch}
.board-head-meta{display:flex;align-items:center;gap:.5rem}
.board-head-meta .home-panel-title{flex:1}
.board-head-compose{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}
.board-head-compose #board-input{flex:1;min-width:0}
.home-todo-list{display:flex;flex-direction:column;gap:.55rem}
/* ── Posteingang ─────────────────────────────────────────────────────────── */
.inbox-section-lbl{font-family:'Syne',sans-serif;font-size:.6rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:.5rem .2rem .15rem}
.inbox-item{display:flex;align-items:center;gap:.6rem;padding:.42rem .4rem;border-radius:8px;cursor:pointer;font-size:.82rem;transition:background .12s}
.inbox-item:hover{background:var(--surf2)}
.inbox-item-icon{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:.85rem;flex-shrink:0}
.inbox-icon-rk{background:rgba(180,83,9,.1)}
.inbox-icon-rk-rej{background:rgba(220,38,38,.1)}
.inbox-icon-abs{background:rgba(30,138,71,.12)}
.inbox-icon-tt{background:rgba(30,138,71,.12)}
.inbox-icon-pzt{background:rgba(0,100,180,.1)}
.inbox-icon-todo{background:var(--surf2)}
.inbox-item-body{flex:1;min-width:0}
.inbox-item-title{font-size:.82rem;font-weight:500;color:var(--dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inbox-item-sub{font-size:.7rem;color:var(--muted)}
.inbox-item-arr{font-size:.8rem;color:var(--muted);flex-shrink:0}
.inbox-empty{font-size:.78rem;color:var(--muted);text-align:center;padding:.9rem 0}
.inbox-tab-bar{display:flex;border-bottom:1px solid var(--faint);margin:0 -1.25rem .55rem;padding:0 1.25rem;background:var(--surf2);border-top:1px solid var(--faint)}
.inbox-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:.3rem;padding:.5rem .3rem;font-size:.72rem;font-weight:500;color:var(--muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-family:'DM Sans',sans-serif;transition:color .12s;white-space:nowrap}
.inbox-tab:hover:not(.active){color:var(--dark)}
.inbox-tab.active{color:var(--acc);border-bottom:2px solid var(--acc);font-weight:600;background:var(--surf)}
.inbox-tab-badge{font-size:.6rem;font-weight:700;border-radius:20px;padding:.05rem .38rem;background:rgba(249,115,22,.12);color:#c2410c}
.inbox-tab-badge.active{background:rgba(30,138,71,.12);color:var(--acc)}
.inbox-tab-content{min-height:80px;max-height:380px;overflow-y:auto;overflow-x:hidden}
/* ── Globale Suche ────────────────────────────────────────────────────────── */
.srch-overlay{align-items:flex-start;padding-top:8vh}
.srch-box{max-width:640px;width:96vw;padding:0;overflow:hidden}
.srch-input-row{display:flex;align-items:center;gap:.5rem;padding:.85rem 1.1rem;border-bottom:1px solid var(--faint)}
.srch-input{flex:1;border:none;outline:none;font-size:1rem;background:transparent;color:var(--txt);font-family:'DM Sans',sans-serif}
.srch-results{max-height:58vh;overflow-y:auto;padding:.4rem 0}
.srch-group-lbl{font-family:'Syne',sans-serif;font-size:.62rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:.5rem 1.1rem .2rem}
.srch-item{display:flex;align-items:center;gap:.65rem;padding:.5rem 1.1rem;cursor:pointer;transition:background .1s}
.srch-item:hover,.srch-item.srch-focused{background:var(--surf2)}
.srch-item-icon{font-size:.9rem;width:28px;text-align:center;flex-shrink:0}
.srch-item-body{flex:1;min-width:0}
.srch-item-title{font-size:.84rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srch-item-title mark{background:var(--acc-d);color:var(--acc);border-radius:3px;padding:0 2px;font-style:normal}
.srch-item-meta{font-size:.71rem;color:var(--muted)}
.srch-item-badge{font-size:.65rem;font-family:'Syne',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.15rem .5rem;border-radius:8px;flex-shrink:0}
.srch-item-arr{font-size:.75rem;color:var(--muted);flex-shrink:0}
.srch-empty{text-align:center;padding:2.5rem 1rem;font-size:.85rem;color:var(--muted)}
.srch-footer{display:flex;gap:.9rem;padding:.55rem 1.1rem;border-top:1px solid var(--faint);font-size:.7rem;color:var(--muted)}
.srch-kbd{background:var(--surf2);border:1px solid var(--brd);border-radius:4px;padding:.05rem .35rem;font-size:.68rem;font-family:'DM Sans',sans-serif}
.home-board-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.home-note{background:var(--surf2);border:1px solid var(--faint);border-radius:9px;padding:.6rem .8rem}
.home-note.ann{background:#f0f7f2;border:1px solid #c6dfc8;border-left:4px solid var(--acc)}
.home-show-all{margin-top:.7rem;background:none;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:.72rem;color:var(--acc);padding:.1rem;font-weight:500}
.home-show-all:hover{text-decoration:underline}
.home-quick{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1.25rem}
.home-quick-item{flex:1;min-width:160px;background:var(--surf);border-radius:10px;border:1.5px solid var(--faint);padding:.65rem .95rem;display:flex;align-items:center;gap:.6rem;cursor:pointer;box-shadow:0 1px 6px rgba(18,38,58,.05);transition:all .15s}
.home-quick-item:hover{border-color:var(--acc-b)}
.home-quick-icon{font-size:1.1rem;flex-shrink:0}
.home-quick-label{font-size:.82rem;font-weight:500;color:var(--dark)}
.home-quick-sub{font-size:.68rem;color:var(--muted)}
.home-footer{text-align:center;font-size:.75rem;color:var(--muted)}
.home-footer a{color:var(--muted);text-decoration:none;cursor:pointer;transition:color .15s}
.home-footer a:hover{color:var(--dark)}
.home-footer span{margin:0 .4rem;color:var(--faint)}
/* Karte-Badge */
.home-card-badge{font-family:'Syne',sans-serif;font-size:.6rem;font-weight:700;padding:.2rem .55rem;border-radius:10px;text-transform:uppercase;letter-spacing:.04em}
.home-card-badge.orange{background:rgba(180,83,9,.1);color:var(--warn)}
.home-card-badge.amber{background:var(--info-d);color:var(--info)}
.home-card-badge.red{background:var(--red-d);color:var(--red)}
.home-card-badge.green{background:var(--acc-d);color:var(--acc)}
/* ── PZT Tag-Chips (Mehrere-Tage-Modal) ── */
.pzt-day-chip{padding:.3rem .15rem;border-radius:7px;border:2px solid var(--brd);background:var(--surf2);cursor:pointer;text-align:center;transition:border-color .12s,background .12s;-webkit-user-select:none;user-select:none}
.pzt-chip-wt{font-size:.6rem;color:var(--muted);line-height:1.2}
.pzt-chip-d{font-size:.85rem;font-weight:500;line-height:1.3}
.pzt-day-chip.we{opacity:.4}
.pzt-day-chip.booked{border-color:var(--acc-b)}
.pzt-day-chip.selected{background:var(--acc-d);border-color:var(--acc)}
.pzt-day-chip.selected .pzt-chip-d{font-weight:700}
.pzt-day-chip.selected.we{opacity:.75}
/* Kacheln: Abstände kompakter bei schmalem 3-Spalten-Layout */
@media(max-width:900px){
  .home-card-sub{font-size:.72rem}
  .home-card-kpis{padding:.7rem 1rem;gap:.6rem}
  .home-card-btn{font-size:.76rem;padding:.5rem .75rem}
  .home-card-top{padding:1rem 1rem .75rem}
  .home-card-btn-row{padding:.1rem 1rem 1rem}
}
/* Mobile: Kacheln einzeilig → clamp-Basis zu klein, auf Vollgröße zurück */
@media(max-width:640px){
  .home-cards{grid-template-columns:1fr}
  .home-split{flex-direction:column;align-items:stretch}
  .home-split > #home-inbox{flex:1 1 auto}
  .home-board-grid{grid-template-columns:1fr}
  .board-head{flex-direction:column;gap:.4rem}
  .board-head-compose{width:100%}
  .home-body{padding:1rem .85rem .9rem}
  .home-quick-item{min-width:140px}
  .home-hero-name{font-size:1.35rem}
  .home-card-title{font-size:1.35rem}
  .home-card-sub{font-size:.78rem}
  .home-kpi-val{font-size:1.2rem}
  .home-card-btn{font-size:.82rem;padding:.55rem .95rem}
  .home-card-top{padding:1.3rem 1.4rem .9rem}
  .home-card-kpis{padding:.85rem 1.4rem}
  .home-card-btn-row{padding:.1rem 1.4rem 1.2rem}
}

/* ─── Help-Badges (inline im Handbuch) ───────────────────────────── */
.help-badge{display:inline-block;font-size:.68rem;font-weight:600;padding:.15rem .45rem;border-radius:10px}
.help-badge.ok  {background:var(--acc-d);color:var(--acc)}
.help-badge.warn{background:var(--warn-d);color:var(--warn)}
.help-badge.err {background:var(--red-d);color:var(--red)}

/* ─── Admin Home: Viewport-füllendes Layout ──────────────────────────── */
/* .active im Selektor nötig: reiner ID-Selektor wäre spezifischer als .view.active
   und würde die View auch anzeigen, wenn eine andere View gerade aktiv ist. */
#v-admin-home.active{
  height:calc(100dvh - 52px);   /* 52px = Nav-Höhe */
  display:flex;flex-direction:column;overflow:hidden
}
.admin-home-header{
  background:linear-gradient(135deg,#12451f 0%,#1b5e2c 60%,#1E8A47 100%);
  padding:.75rem 1.75rem;
  display:flex;align-items:center;justify-content:space-between;flex-shrink:0
}
.admin-home-title{
  font-family:'EB Garamond',serif;font-size:1.25rem;font-weight:700;color:#fff
}
.admin-home-sub{font-size:.72rem;color:rgba(255,255,255,.55);margin-top:.1rem}
.admin-home-body{
  background:var(--bg);
  padding:1rem 1.75rem .75rem;
  flex:1;min-height:0;
  display:flex;flex-direction:column
}

/* ─── Admin Dashboard: Grid füllt verfügbare Höhe ───────────────────── */
#admin-dashboard-cards{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  grid-auto-rows:1fr;
  gap:.7rem;
  flex:1;min-height:0
}
#admin-dashboard-cards > .home-card{
  min-height:130px;
  display:flex;flex-direction:column
}
#admin-dashboard-cards .home-card-top{padding:1rem 1rem .65rem}
#admin-dashboard-cards .home-card-icon-row{margin-bottom:.45rem}
#admin-dashboard-cards .home-card-sub{line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#admin-dashboard-cards .home-card-divider{margin:0 1rem}
#admin-dashboard-cards .home-card-kpis{padding:.55rem 1rem;flex:1}
#admin-dashboard-cards .home-card-btn-row{padding:.1rem 1rem .8rem;margin-top:auto}
#admin-dashboard-cards .home-card-btn{padding:.42rem .8rem}
@media(max-width:1100px){
  #admin-dashboard-cards{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:640px){
  #admin-dashboard-cards{grid-template-columns:repeat(2,1fr);gap:.5rem}
  #admin-dashboard-cards > .home-card{min-height:110px}
}
@media(max-width:400px){
  #admin-dashboard-cards{grid-template-columns:1fr}
}

/* ── Board Reactions ─────────────────────────────── */
.home-note{position:relative}
.home-board-grid{gap:1.5rem .6rem}
.bd-post-wrap{position:relative}
.bd-reactions{position:absolute;bottom:-.52rem;left:.35rem;display:flex;flex-wrap:wrap;gap:.25rem;align-items:center;max-width:calc(100% - .4rem);z-index:1}
.bd-reaction-chip{display:inline-flex;align-items:center;gap:.18rem;font-size:.78rem;padding:.09rem .38rem;border-radius:20px;border:1px solid rgba(0,0,0,.09);background:var(--surf);cursor:pointer;transition:box-shadow .12s;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.bd-reaction-chip span{font-size:.62rem;color:var(--muted);font-weight:500}
.bd-reaction-chip:hover{box-shadow:0 2px 7px rgba(0,0,0,.18)}
.bd-reaction-chip.self{background:#edf7f1;border-color:var(--acc-b);box-shadow:0 1px 5px rgba(30,138,71,.15)}
.bd-reaction-chip.self span{color:var(--acc)}
.bd-react-trigger{position:absolute;bottom:.45rem;right:.45rem;width:1.65rem;height:1.65rem;border-radius:50%;border:1.5px solid var(--brd);background:var(--surf);cursor:pointer;font-size:.88rem;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .15s,border-color .12s,box-shadow .12s;line-height:1;padding:0}
.home-note:hover .bd-react-trigger{opacity:1;pointer-events:auto}
.bd-react-trigger:hover{border-color:var(--acc);box-shadow:0 1px 6px rgba(30,138,71,.18)}
.bd-emoji-picker{display:flex;gap:.15rem;padding:.35rem .45rem;background:var(--surf);border:1.5px solid var(--brd);border-radius:12px;box-shadow:0 4px 18px rgba(0,0,0,.13)}
.bd-emoji-btn{font-size:1.25rem;padding:.18rem .28rem;border:none;background:transparent;cursor:pointer;border-radius:7px;transition:background .1s,transform .1s;line-height:1}
.bd-emoji-btn:hover{background:var(--acc-d);transform:scale(1.15)}

/* ── PZT Hauptansicht – Mobile ───────────────────────────────────── */
@media(max-width:640px){
  .pzt-main-layout{flex-direction:column}
  .pzt-sidebar{width:100%!important;min-width:0!important;flex-shrink:1}
}

/* ── Statistik Charts – Mobile ───────────────────────────────────── */
@media(max-width:640px){
  .stats-charts-grid{grid-template-columns:1fr!important}
}

/* ── GEFÜHRTE TOUR (Tutorial) ────────────────────────────────────── */
.tour-scrim{position:fixed;inset:0;z-index:300;background:transparent;transition:background .2s;pointer-events:none}
.tour-highlight{position:fixed;z-index:301;border-radius:8px;border:2px solid var(--acc);
  box-shadow:0 0 0 9999px rgba(18,38,58,.55);pointer-events:none;
  transition:top .25s ease,left .25s ease,width .25s ease,height .25s ease}
.tour-highlight--pulse{animation:tourPulse .45s ease}
@keyframes tourPulse{
  0%{box-shadow:0 0 0 9999px rgba(18,38,58,.55),0 0 0 0 rgba(30,138,71,.6)}
  100%{box-shadow:0 0 0 9999px rgba(18,38,58,.55),0 0 0 14px rgba(30,138,71,0)}
}
.tour-tooltip{position:fixed;z-index:302;background:var(--surf);border-radius:14px;
  box-shadow:0 8px 40px rgba(0,0,0,.25);padding:1.1rem 1.3rem;max-width:320px;
  font-family:'DM Sans',sans-serif}
.tour-tooltip--center{top:50%!important;left:50%!important;transform:translate(-50%,-50%)}
.tour-tooltip--sheet{left:0!important;right:0!important;top:auto!important;bottom:0!important;
  max-width:none;border-radius:14px 14px 0 0;transform:none}
.tour-tooltip-step{font-size:var(--fs-xxs);color:var(--muted);margin-bottom:.3rem;
  letter-spacing:.02em;text-transform:uppercase}
.tour-tooltip h4{font-family:'EB Garamond',serif;font-size:var(--fs-lg);font-weight:700;
  color:var(--dark);margin-bottom:.4rem}
.tour-tooltip p{font-size:var(--fs-sm);color:var(--txt);line-height:1.45;margin-bottom:.8rem}
.tour-tooltip-buttons{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}
.tour-btn{background:var(--acc);border:none;border-radius:7px;color:#fff;font-size:var(--fs-sm);
  font-weight:600;padding:.45rem .9rem;cursor:pointer;transition:filter .15s;
  font-family:'DM Sans',sans-serif}
.tour-btn:hover{filter:brightness(1.08)}
.tour-btn.secondary{background:transparent;border:1.5px solid var(--brd);color:var(--muted)}
.tour-btn.quit{background:transparent;color:var(--muted);font-size:var(--fs-xxs);
  text-decoration:underline;padding:.2rem;white-space:nowrap}
/* Tutorial-Auswahl (Picker) */
.tour-pick-list{display:flex;flex-direction:column;gap:.5rem}
.tour-pick{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;text-align:left;
  width:100%;background:var(--surf2);border:1.5px solid var(--brd);border-radius:10px;
  padding:.7rem .9rem;cursor:pointer;transition:all .15s;font-family:'DM Sans',sans-serif}
.tour-pick:hover{border-color:var(--acc);background:var(--acc-d)}
.tour-pick-label{font-weight:600;color:var(--dark);font-size:var(--fs-md)}
.tour-pick-sub{font-size:var(--fs-xs);color:var(--muted)}

/* ── Konto-Switcher ─────────────────────────────────────────────────────── */
#nav-account-switch{position:relative}
.asw-menu{position:absolute;top:calc(100% + 6px);right:0;background:var(--surf);border:1px solid var(--brd);
  border-radius:9px;box-shadow:0 6px 20px rgba(0,0,0,.18);min-width:220px;z-index:500;overflow:hidden}
.asw-item{padding:.55rem .85rem;font-size:.8rem;color:var(--dark);cursor:pointer;display:flex;
  justify-content:space-between;align-items:center;gap:.6rem;border-bottom:1px solid var(--brd)}
.asw-item:last-child{border-bottom:none}
.asw-item:hover{background:var(--surf2)}
.asw-item.active{font-weight:600;background:var(--surf2)}
.asw-role{font-size:.7rem;color:var(--muted);white-space:nowrap}
.asw-add{color:var(--acc);font-weight:500}

/* Konto-Switcher-Menü auf sehr schmalen Screens: vom Trigger lösen und
   am Viewport verankern, da rechtsbündige Trigger-Position variiert
   und ein trigger-relatives Menü sonst über den linken Rand hinausragen kann */
@media(max-width:480px){
  .asw-menu{position:fixed;top:52px;left:.7rem;right:.7rem;min-width:0;width:auto;
    max-height:calc(100vh - 64px);overflow-y:auto}
}

/* ══════════════════════════════════════════════════════════
   TOUCH-GERÄTE: größere Tipp-Ziele unabhängig von der Breite
   (gilt für Touch-Primary-Geräte, nicht für Maus/Trackpad,
   damit die Desktop-Dichte unverändert bleibt)
   ══════════════════════════════════════════════════════════ */
@media(pointer:coarse){
  .btn-remove,.btn-beleg{width:40px;height:40px}
  .rv-beleg-thumb,.rv-beleg-missing{width:36px;height:36px}
  .p-color-swatch{width:32px;height:32px}
  .p-color-swatches{gap:.55rem}
  .pw-toggle{padding:.5rem}
  .meal-stepper{height:40px}
  .meal-stepper button{padding:0 .6rem}
  .tab{padding:.55rem 1rem}
  #admin-body .tab{padding:.5rem .85rem}
  .nav-btn{padding:.55rem .7rem}
}
