/* ===========================================================================
   Zeiterfassung – App-Styles
   In der Designsprache des Webshops „Folientechnik Obermann" (Navy/Gold,
   Sora/Montserrat/Roboto). Backend-Charakter: dunkle Navy-Sidebar, sachliche
   Flächen, runde Gold-Primary-Buttons, Glas-/Gradient-Akzente.
   =========================================================================== */
:root{
  --navy:#0d3e68;   --navy900:#06243f;   --navy700:#0a3358;
  --gold:#f69d15;   --gold300:#ffc869;   --gold600:#e08c0a;
  --green:#61ce70;
  --ink:#1c2531;    --muted:#5d6b7a;     --line:#e3e8ee;
  --paper:#eef2f7;  --card:#ffffff;
  --ok:#3aa64a;     --err:#d9534f;       --warn:#e08c0a;
  --accent:#f69d15; --accent-dk:#e08c0a;
  --disp:'Sora','Montserrat',sans-serif;
  --head:'Montserrat',sans-serif;
  --body:'Roboto',system-ui,sans-serif;
  --r:12px; --r-lg:18px; --pill:999px;
  --sh:0 10px 28px -14px rgba(13,62,104,.35);
  --sh-sm:0 2px 8px rgba(13,62,104,.07);
}
*{box-sizing:border-box;}
body.app{margin:0;display:grid;grid-template-columns:264px 1fr;min-height:100vh;
  font-family:var(--body);background:var(--paper);color:var(--ink);line-height:1.6;}
h1,h2,h3{font-family:var(--disp);color:var(--navy);letter-spacing:-.01em;margin:0 0 .6em;font-weight:800;}
h1{font-size:1.7rem;} h2{font-size:1.25rem;font-weight:700;} h3{font-size:1.05rem;}
a{color:var(--accent-dk);text-decoration:none;}
::selection{background:var(--gold);color:#fff;}

/* ---- Sidebar -------------------------------------------------------- */
/* Feste Platzierung statt Verlass auf die Reihenfolge.
   Am 03.09.2026 stand auf firmen.php die Seitenleiste in der breiten und der
   Inhalt in der schmalen Spalte. Bei einem Raster, das seine Kinder nur nach
   Reihenfolge einsortiert, genügt dafür ein einziges unerwartetes Element vor
   der Seitenleiste — eine Fehlermeldung, eine Ausgabe vor dem Kopf, ein
   Byte-Order-Zeichen. Mit ausdrücklicher Platzierung ist das folgenlos: Die
   beiden Spalten sitzen, wo sie sitzen sollen, und alles Unerwartete landet
   in der nächsten Zeile statt die Anordnung zu verschieben. */
body.app > .side{grid-column:1;grid-row:1;}
body.app > .main{grid-column:2;grid-row:1;}

.side{background:linear-gradient(180deg,var(--navy),var(--navy900));color:#c7d6e6;display:flex;
  flex-direction:column;gap:1.3rem;padding:1.4rem 1.1rem;position:sticky;top:0;height:100vh;}
.side__brand{display:flex;align-items:center;gap:.7rem;color:#fff;flex:none;}
.side__mark{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;flex:none;
  font-family:var(--disp);font-weight:800;font-size:1.25rem;color:#3a2400;
  background:linear-gradient(135deg,var(--gold300),var(--gold) 60%,var(--gold600));
  box-shadow:0 10px 22px -8px rgba(246,157,21,.6);}
.side__brandtext strong{display:block;font-family:var(--head);font-weight:800;font-size:1.02rem;color:#fff;line-height:1.15;}
.side__badge{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--head);font-weight:700;
  font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold300);margin-top:.15rem;}
/* Firmen-Wechsler des Super-Admins */
.side__ctx{display:flex;flex-direction:column;gap:.25rem;margin:.2rem 0 .1rem;padding:.5rem .55rem;border-radius:10px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);flex:none;}
.side__ctx label{font-family:var(--head);font-weight:700;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.7);}
.side__ctx select{width:100%;padding:.35rem .45rem;border-radius:7px;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.18);color:#fff;font:inherit;font-size:.86rem;}
.side__ctx select option{color:#111;}
.side__ctx--fremd{border-color:var(--gold300);box-shadow:inset 3px 0 0 var(--gold300);}
.side__nav{display:flex;flex-direction:column;gap:.25rem;margin-top:.3rem;
  flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent;
  margin-right:-.35rem;padding-right:.35rem;}
.side__nav::-webkit-scrollbar{width:8px;}
.side__nav::-webkit-scrollbar-track{background:transparent;}
.side__nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:8px;}
.side__nav::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.34);}
.side__nav a{display:flex;align-items:center;gap:.6rem;color:#c7d6e6;padding:.7rem .85rem;border-radius:10px;
  font-family:var(--head);font-weight:600;font-size:.92rem;transition:background .2s,color .2s;position:relative;}
.side__nav a .ic{width:1.1rem;text-align:center;opacity:.85;}
.side__nav a:hover{background:rgba(255,255,255,.07);color:#fff;}
.side__nav a.active{background:rgba(246,157,21,.16);color:#fff;box-shadow:inset 3px 0 0 var(--gold);}
.side__sep{font-family:var(--head);font-weight:700;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;
  color:#7e97b1;padding:.9rem .85rem .2rem;}
.side__count{margin-left:auto;background:var(--gold);color:#3a2400;font-size:.72rem;font-weight:800;
  min-width:1.35rem;height:1.35rem;border-radius:var(--pill);display:inline-grid;place-items:center;padding:0 .35rem;}
.dot-live{width:.55rem;height:.55rem;border-radius:50%;background:var(--green);margin-left:auto;
  box-shadow:0 0 0 0 rgba(97,206,112,.6);animation:pulse 2.4s infinite;}
.side__foot{margin-top:auto;flex:none;font-size:.82rem;color:#90a6bd;display:flex;flex-direction:column;gap:.8rem;
  border-top:1px solid rgba(255,255,255,.1);padding-top:1.1rem;}
.side__foot strong{color:#fff;font-family:var(--head);}

/* ---- Main + Topbar -------------------------------------------------- */
.main{display:flex;flex-direction:column;min-width:0;}
.topbar{background:#fff;border-bottom:1px solid var(--line);padding:.85rem 2rem;display:flex;align-items:center;
  gap:1rem;position:sticky;top:0;z-index:20;}
.topbar__burger{display:none;background:none;border:none;font-size:1.4rem;color:var(--navy);cursor:pointer;line-height:1;}
.topbar__title{font-family:var(--disp);font-weight:800;color:var(--navy);font-size:1.12rem;
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.topbar__right{margin-left:auto;display:flex;align-items:center;gap:.65rem;flex:none;}
.topsuche{margin:0;}
.topsuche input{width:230px;padding:.5rem .8rem;border:1.5px solid var(--line);border-radius:999px;
  font:inherit;font-size:.9rem;background:#f8fafc;transition:width .15s ease,border-color .15s ease;}
.topsuche input:focus{outline:none;width:300px;border-color:var(--gold);background:#fff;
  box-shadow:0 0 0 4px rgba(246,157,21,.16);}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.suchtreffer{display:block;padding:.7rem .9rem;border:1px solid var(--line);border-radius:10px;
  margin-bottom:.5rem;text-decoration:none;color:inherit;}
.suchtreffer:hover{border-color:var(--gold);background:#fffdf7;}
.suchtreffer__art{font-family:var(--head);font-size:.72rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.03em;color:var(--muted);}
.suchtreffer__titel{font-weight:600;color:var(--navy);}
.suchtreffer__zeile{font-size:.85rem;color:var(--muted);}
.topbar__clock{font-family:var(--disp);font-weight:800;font-size:1.05rem;color:var(--navy);white-space:nowrap;
  background:#eaf0f7;border:1px solid #d6e2ee;padding:.3rem .85rem;border-radius:var(--pill);letter-spacing:.02em;}
.topbar__logout{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;cursor:pointer;
  font-family:var(--head);font-weight:700;font-size:.86rem;color:var(--navy);background:#fff;
  border:1.5px solid var(--line);padding:.5rem .9rem;border-radius:var(--pill);
  transition:background .2s,color .2s,border-color .2s;}
.topbar__logout:hover{background:var(--err);color:#fff;border-color:var(--err);}
.topbar__logout .ic{font-size:1.05rem;line-height:1;}
.content{padding:2rem;flex:1;}
.content-foot{padding:1.2rem 2rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;
  flex-wrap:wrap;gap:.5rem;color:var(--muted);font-size:.8rem;background:#fff;}

/* ---- Buttons -------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  background:linear-gradient(135deg,var(--gold300),var(--gold) 55%,var(--gold600));color:#3a2400;border:none;
  padding:.7rem 1.3rem;font:700 .9rem/1 var(--head);border-radius:var(--pill);cursor:pointer;
  box-shadow:0 10px 22px -10px rgba(246,157,21,.6);transition:transform .15s,box-shadow .15s,filter .2s;}
.btn:hover{transform:translateY(-1px);filter:saturate(1.05);}
.btn--sm{padding:.45rem .85rem;font-size:.8rem;}
.btn--block{width:100%;padding:.85rem 1.3rem;}
.btn--ghost{background:#fff;border:1.5px solid var(--line);color:var(--navy);box-shadow:none;}
.btn--ghost:hover{background:var(--navy);color:#fff;border-color:var(--navy);}
.btn--danger{background:var(--err);color:#fff;box-shadow:none;}
.btn--danger:hover{background:#b73b37;}
.btn--out{background:linear-gradient(135deg,#ff8f6b,var(--err));color:#fff;box-shadow:0 10px 22px -10px rgba(217,83,79,.6);}
.btn--xl{padding:1.05rem 2.4rem;font-size:1.1rem;border-radius:var(--pill);}
.btn--logout{background:rgba(255,255,255,.08);border:1.4px solid rgba(255,255,255,.25);color:#fff;box-shadow:none;}
.btn--logout:hover{background:#fff;color:var(--navy);}

/* ---- Greeting / Pagehead ------------------------------------------- */
.greeting{margin-bottom:1.6rem;}
.greeting h1{margin-bottom:.15em;}
.greeting__sub{color:var(--muted);font-size:.95rem;margin:0;}
.pagehead{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;}
.pagehead p{color:var(--muted);margin:.2rem 0 0;}

/* ---- Dashboard ------------------------------------------------------ */
.dash-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:1.3rem;margin-bottom:1.4rem;}
.dash-grid--mgr{grid-template-columns:1fr 1fr;}
.clockcard{background:radial-gradient(70% 90% at 85% -10%,rgba(246,157,21,.28),transparent 60%),
    linear-gradient(155deg,var(--navy),var(--navy900));color:#fff;border-radius:var(--r-lg);padding:2rem;
  display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:var(--sh);position:relative;overflow:hidden;}
.clockcard--in{box-shadow:0 20px 44px -18px rgba(97,206,112,.5);}
.clockcard__status{display:inline-flex;align-items:center;gap:.5rem;font-size:.92rem;color:#cfe0f0;font-family:var(--head);}
.clockcard__status strong{color:#fff;}
.clockcard__big{font-family:var(--disp);font-weight:800;font-size:3.4rem;letter-spacing:.02em;margin:.6rem 0 1.1rem;
  color:#fff;font-variant-numeric:tabular-nums;}
.clockcard__form{margin:0;}
.clockcard__hint{color:#9fb6cd;font-size:.78rem;margin:1rem 0 0;}
.pulse{width:.7rem;height:.7rem;border-radius:50%;background:var(--green);display:inline-block;
  box-shadow:0 0 0 0 rgba(97,206,112,.6);animation:pulse 2.4s infinite;}
.pulse--off{background:#9fb6cd;animation:none;}
.pulse--sm{width:.55rem;height:.55rem;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(97,206,112,.55);}70%{box-shadow:0 0 0 9px rgba(97,206,112,0);}100%{box-shadow:0 0 0 0 rgba(97,206,112,0);}}
.statpanel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.5rem;
  display:flex;flex-direction:column;justify-content:center;gap:1.1rem;box-shadow:var(--sh-sm);}
.statpanel__item{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding-bottom:1.1rem;border-bottom:1px solid var(--line);}
.statpanel__item:last-child{border-bottom:none;padding-bottom:0;}
.statpanel__num{font-family:var(--disp);font-weight:800;font-size:2rem;color:var(--navy);line-height:1;font-variant-numeric:tabular-nums;}
.statpanel__lbl{color:var(--muted);font-size:.84rem;text-transform:uppercase;letter-spacing:.05em;font-family:var(--head);font-weight:600;}

/* ---- Panels --------------------------------------------------------- */
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.5rem;box-shadow:var(--sh-sm);margin-bottom:1.4rem;}
.panel__head{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem;}
.panel__head h2{margin:0;}
.panel__count{margin-left:auto;background:#eef2f7;color:var(--muted);font-family:var(--disp);font-weight:800;
  min-width:1.9rem;height:1.9rem;border-radius:var(--pill);display:inline-grid;place-items:center;padding:0 .5rem;font-size:.95rem;}
.panel__count--alert{background:#fff4e2;color:var(--accent-dk);}
.panel__link{margin-left:auto;font-family:var(--head);font-weight:700;font-size:.85rem;color:var(--accent-dk);}
.muted{color:var(--muted);}
.livelist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.2rem;}
.livelist li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem .2rem;border-bottom:1px solid var(--line);}
.livelist li:last-child{border-bottom:none;}
.livelist__name{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--head);font-weight:600;color:var(--ink);}
.livelist__meta{color:var(--muted);font-size:.82rem;text-align:right;}

/* ---- Tabellen ------------------------------------------------------- */
.table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-sm);}
.table th,.table td{padding:.8rem 1.1rem;text-align:left;border-bottom:1px solid var(--line);font-size:.92rem;}
.table th{background:#f7f9fc;text-transform:uppercase;font-size:.72rem;letter-spacing:.05em;color:var(--muted);font-family:var(--head);font-weight:700;}
.table tr:last-child td{border-bottom:none;}
.table th a.th-sort{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:.2rem;white-space:nowrap;}
.table th a.th-sort:hover{color:var(--navy);}
.table th.is-sorted a.th-sort{color:var(--navy);}
.table th.num a.th-sort{justify-content:flex-end;width:100%;}
.table tbody tr:hover{background:#fafcfe;}
.table .num{text-align:right;font-variant-numeric:tabular-nums;}
.row-off{opacity:.55;}
.tag{display:inline-block;padding:.2rem .65rem;border-radius:var(--pill);font-size:.72rem;font-weight:700;font-family:var(--head);white-space:nowrap;}
.tag--on{background:#e8f7ec;color:var(--ok);}
.tag--off{background:#eef2f7;color:var(--muted);}
.tag--muted{background:#eef2f7;color:var(--muted);border:1px solid var(--line);}
.tag--open{background:#e7f0fb;color:var(--navy);}
.tag--wait{background:#fff4e2;color:var(--accent-dk);}
.tag--cancel{background:#fdeded;color:var(--err);}
.tag--role{background:#efe7fb;color:#6b3fb0;}
.cell-note{color:var(--muted);font-size:.85rem;}
.note-reject{color:var(--err);font-size:.82rem;display:block;margin-top:.15rem;}
.cell-actions{white-space:nowrap;vertical-align:middle;}
.cell-actions>*{vertical-align:middle;}
.cell-actions .btn{margin-right:.4rem;}
.cell-actions .btn:last-child{margin-right:0;}
.inline-form{display:inline;margin:0;}
.self-tag{font-size:.7rem;color:var(--muted);font-style:italic;margin-left:.35rem;}

/* ---- Monatsleiste --------------------------------------------------- */
.monthbar{display:flex;align-items:center;gap:1rem;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);padding:.8rem 1.1rem;margin-bottom:1.3rem;box-shadow:var(--sh-sm);flex-wrap:wrap;}
.monthbar__current{font-family:var(--disp);font-weight:800;color:var(--navy);font-size:1.1rem;}
.monthbar__total{margin-left:auto;font-family:var(--head);font-weight:700;color:var(--navy);
  background:#eaf0f7;border:1px solid #d6e2ee;padding:.4rem .9rem;border-radius:var(--pill);}

/* ---- Genehmigungs-Karten ------------------------------------------- */
.approve-list{display:flex;flex-direction:column;gap:1rem;}
.approve-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.3rem;
  box-shadow:var(--sh-sm);display:flex;gap:1.3rem;flex-wrap:wrap;align-items:flex-start;border-left:4px solid var(--gold);}
.approve-card__main{flex:1;min-width:240px;}
.approve-card__top{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-bottom:.5rem;}
.approve-card__top strong{font-family:var(--head);font-weight:700;color:var(--navy);font-size:1.02rem;}
.approve-card__date{display:block;color:var(--muted);font-size:.8rem;margin-top:.6rem;}
.approve-card__times{display:flex;gap:1.2rem;flex-wrap:wrap;font-family:var(--head);color:var(--ink);font-size:.92rem;}
.approve-card__times span{color:var(--muted);}
.approve-card__times b{color:var(--ink);font-weight:700;}
.approve-card__dur{color:var(--navy)!important;font-weight:800!important;}
.approve-card__reason{margin:.7rem 0 0;color:var(--ink);font-style:italic;}
.approve-card__actions{min-width:240px;}
.approve-form{display:flex;flex-direction:column;gap:.6rem;margin:0;}
.approve-form__note{width:100%;padding:.6rem .75rem;border:1.5px solid var(--line);border-radius:10px;
  font:inherit;background:#fff;min-height:62px;resize:vertical;}
.approve-form__note:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(246,157,21,.16);}
.approve-form__btns{display:flex;gap:.6rem;}

/* ---- Formulare ------------------------------------------------------ */
.form{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1.8rem;max-width:720px;box-shadow:var(--sh-sm);}
.form-row{margin-bottom:1.2rem;}
.form-row label{display:block;font-family:var(--head);font-weight:600;font-size:.85rem;margin-bottom:.4rem;color:var(--navy);}
.form-row input,.form-row textarea,.form-row select{width:100%;padding:.7rem .8rem;border:1.5px solid var(--line);
  border-radius:10px;font:inherit;background:#fff;transition:border-color .2s,box-shadow .2s;}
.form-row input:focus,.form-row textarea:focus,.form-row select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(246,157,21,.16);}
.form-row textarea{min-height:90px;resize:vertical;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;}
.form-actions{display:flex;gap:.7rem;margin-top:1.3rem;flex-wrap:wrap;}
.hint{color:var(--muted);font-size:.8rem;margin-top:.3rem;}
.check{display:flex;align-items:center;gap:.55rem;}
.check input{width:auto;}
.check label{margin:0;}

/* ---- Flash ---------------------------------------------------------- */
.flash{padding:.85rem 1.1rem;border-radius:10px;margin:0 0 1.2rem;border-left:4px solid;font-size:.9rem;}
.flash--info{background:#eaf0f7;border-color:var(--navy);}
.flash--ok{background:#e8f7ec;border-color:var(--ok);}
.flash--error{background:#fdeded;border-color:var(--err);}

/* ---- Login ---------------------------------------------------------- */
.login-wrap{grid-column:1/-1;display:grid;place-items:center;min-height:100vh;padding:2rem 1rem;
  background:radial-gradient(60% 90% at 82% -10%,rgba(246,157,21,.28),transparent 60%),
    radial-gradient(50% 60% at 0% 110%,rgba(110,193,228,.16),transparent 60%),
    linear-gradient(155deg,var(--navy),var(--navy900));}
.login-card{background:var(--card);border-radius:20px;padding:2.3rem;width:min(400px,100%);
  box-shadow:0 30px 60px -20px rgba(0,0,0,.45);border-top:4px solid var(--gold);}
.login-card .brand-mark{width:56px;height:56px;margin:0 auto;border-radius:15px;display:grid;place-items:center;
  font-family:var(--disp);font-weight:800;font-size:1.5rem;color:#3a2400;
  background:linear-gradient(135deg,var(--gold300),var(--gold) 60%,var(--gold600));box-shadow:0 16px 34px -8px rgba(246,157,21,.6);}
.login-card h1{text-align:center;font-size:1.5rem;margin:.8rem 0 .2rem;}
.login-card .sub{text-align:center;color:var(--muted);font-size:.88rem;margin-bottom:1.4rem;}
.login-badge{display:block;text-align:center;margin-bottom:1.2rem;}
.login-badge span{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--head);font-weight:700;font-size:.66rem;
  letter-spacing:.14em;text-transform:uppercase;color:#06243f;background:var(--gold);padding:.25rem .7rem;border-radius:var(--pill);}
.login-hint{text-align:center;color:var(--muted);font-size:.8rem;margin-top:1.3rem;}

/* ---- Responsive ----------------------------------------------------- */
@media (max-width:860px){
  body.app{grid-template-columns:1fr;}
  /* Einspaltig: Die feste Platzierung von oben muss hier zurückgenommen
     werden, sonst bliebe der Inhalt in einer zweiten, nicht vorhandenen Spalte. */
  body.app > .side,body.app > .main{grid-column:1;}
  body.app > .main{grid-row:1;}
  .side{position:fixed;z-index:60;width:260px;height:100vh;left:-280px;transition:left .25s ease;box-shadow:0 0 60px rgba(0,0,0,.4);}
  .side.is-open{left:0;}
  .topbar__burger{display:block;}
  .dash-grid,.dash-grid--mgr{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .content{padding:1.3rem;}
  .topbar{padding:.85rem 1.3rem;}
}

/* Tabellen auf schmalen Geräten horizontal scrollbar machen */
@media (max-width:680px){
  .panel{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .table{width:auto;min-width:100%;white-space:nowrap;}
  .table td.cell-note{white-space:normal;min-width:180px;}
  .pagehead{align-items:flex-start;}
  .pagehead h1{font-size:1.45rem;}

  /* Breite Listen klappen stattdessen zu Karten um: je Zeile eine Karte,
     je Zelle eine Zeile aus Beschriftung und Wert. Voraussetzung ist ein
     data-label an den <td>; ohne das bleibt es beim Schieben. */
  .table--karten{white-space:normal;width:100%;min-width:0;border-collapse:separate;border-spacing:0 .6rem;}
  .table--karten thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
  .table--karten tr{display:block;border:1px solid var(--line);border-radius:12px;padding:.7rem .9rem;background:var(--card);}
  .table--karten tr:hover{background:var(--card);}
  .table--karten td{display:flex;gap:.8rem;align-items:baseline;border:none;padding:.22rem 0;white-space:normal;}
  .table--karten td::before{content:attr(data-label);flex:0 0 42%;color:var(--muted);
    font-family:var(--head);font-weight:600;font-size:.76rem;text-transform:uppercase;letter-spacing:.02em;}
  .table--karten td:empty{display:none;}
  .table--karten td[data-label=""]::before{display:none;}
  .table--karten td.cell-actions{flex-wrap:wrap;justify-content:flex-start;padding-top:.6rem;}
  .table--karten td.cell-actions::before{flex-basis:100%;margin-bottom:.3rem;}
  .table--karten .num{text-align:left;}
}

/* Smartphones: Topbar verschlanken, Texte/Spalten reduzieren */
@media (max-width:560px){
  .topbar__clock{display:none;}
  .topsuche input{width:150px;}
  .topsuche input:focus{width:180px;}
  .topbar__logout-txt{display:none;}
  .topbar__logout{padding:.5rem .65rem;}
  .content{padding:1rem;}
  .panel{padding:1.1rem;}
  .btn{padding:.65rem 1.05rem;}
  h1{font-size:1.4rem;}
  .table--perm th.perm-col,.table--perm td.perm-col{width:64px;}
}

@media (max-width:480px){
  .contract-grid{grid-template-columns:1fr;}
  .exportmeta{grid-template-columns:1fr;}
  .form-actions{flex-direction:column;align-items:stretch;}
  .form-actions .btn{width:100%;}
}

/* ---- Vertrag & Überstunden (Dashboard) ----------------------------- */
.contract-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;}
.cstat{background:#f7f9fc;border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;display:flex;
  flex-direction:column;gap:.35rem;}
.cstat__num{font-family:var(--disp);font-weight:800;font-size:1.5rem;color:var(--navy);line-height:1;font-variant-numeric:tabular-nums;}
.cstat__lbl{color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;font-family:var(--head);font-weight:600;}
.cstat--accent .cstat__num{color:var(--accent-dk);}
.cstat--plus{background:#eefaf0;border-color:#cdeccf;}
.cstat--plus .cstat__num{color:var(--ok);}
.cstat--minus{background:#fdeeee;border-color:#f3cccc;}
.cstat--minus .cstat__num{color:var(--err);}

/* Vorzeichen-Werte in Tabellen */
.num-plus{color:var(--ok);font-weight:700;}
.num-minus{color:var(--err);font-weight:700;}

/* ---- Steuerberater-Export ------------------------------------------ */
.exportbar{display:flex;align-items:flex-end;gap:1rem;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);padding:1.1rem 1.2rem;margin-bottom:1.3rem;box-shadow:var(--sh-sm);flex-wrap:wrap;}
.exportbar__field{display:flex;flex-direction:column;gap:.4rem;}
.exportbar__field label{font-family:var(--head);font-weight:600;font-size:.8rem;color:var(--navy);}
.exportbar__field select,.exportbar__field input{padding:.6rem .7rem;border:1.5px solid var(--line);border-radius:10px;
  font:inherit;background:#fff;min-width:230px;}
.exportbar__field select:focus,.exportbar__field input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(246,157,21,.16);}
.exportmeta{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem 1.4rem;}
.exportmeta>div{display:flex;flex-direction:column;gap:.2rem;padding:.2rem 0;}
.exportmeta__lbl{color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;font-family:var(--head);font-weight:600;}
.exportmeta>div>span:last-child{font-size:1.05rem;color:var(--ink);}

@media (max-width:860px){
  .contract-grid{grid-template-columns:1fr 1fr;}
  .exportmeta{grid-template-columns:1fr 1fr;}
  .exportbar__field select,.exportbar__field input{min-width:0;width:100%;}
  .exportbar__field{width:100%;}
}

/* ---- Abwesenheiten: Farben & Dots ---------------------------------- */
.lv-dot{display:inline-block;width:.72rem;height:.72rem;border-radius:3px;vertical-align:middle;margin-right:.15rem;
  background:#9aa6b6;flex:0 0 auto;}
.lv-dot.lv--urlaub{background:#3fbf7f;}
.lv-dot.lv--krank{background:#e0556b;}
.lv-dot.lv--sonder{background:#6e7bd6;}
.lv-dot.lv--gleit{background:#f0a52a;}
.lv-dot.lv--unbez{background:#8a94a6;}
.lv-dot.lv--pendleg{background:repeating-linear-gradient(45deg,#cbd5e1,#cbd5e1 3px,#fff 3px,#fff 6px);border:1px solid var(--line);}
.lv-dot.lv--holleg{background:#fdf0e0;border:1px solid #f3d9b5;}

/* Abwesenheits-Tags (helle Variante) */
.tag.lv--urlaub{background:#e3f6ec;color:#1d7d4f;}
.tag.lv--krank{background:#fde7eb;color:#b23a4d;}
.tag.lv--sonder{background:#e9ebfb;color:#46509e;}
.tag.lv--gleit{background:#fdf0db;color:#a96a08;}
.tag.lv--unbez{background:#eef1f5;color:#5d6b7a;}

.infolist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem;}
.infolist li{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--ink);}

/* ---- Team-Kalender -------------------------------------------------- */
.cal-scroll{overflow-x:auto;}
.cal{border-collapse:collapse;width:100%;font-size:.8rem;}
.cal th,.cal td{border:1px solid var(--line);}
.cal__name{position:sticky;left:0;z-index:2;background:#fff;text-align:left;padding:.45rem .7rem;white-space:nowrap;
  font-family:var(--head);font-weight:600;color:var(--ink);min-width:160px;}
.cal thead .cal__name{background:#f7f9fc;}
.cal__day{width:1.6rem;min-width:1.6rem;padding:.25rem 0;text-align:center;background:#f7f9fc;}
.cal__wd{display:block;font-size:.58rem;color:var(--muted);line-height:1;}
.cal__dn{display:block;font-weight:700;color:var(--navy);font-size:.72rem;line-height:1.3;}
.cal__day--we,.cal__c--we{background:#eef2f7;}
.cal__day--hol,.cal__c--hol{background:#fdf0e0;}
.cal__c{height:1.75rem;padding:0;}
.cal__c.lv--urlaub{background:#3fbf7f;}
.cal__c.lv--krank{background:#e0556b;}
.cal__c.lv--sonder{background:#6e7bd6;}
.cal__c.lv--gleit{background:#f0a52a;}
.cal__c.lv--unbez{background:#8a94a6;}
.cal__c.is-pending{position:relative;}
.cal__c.is-pending::after{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(45deg,rgba(255,255,255,.65),rgba(255,255,255,.65) 3px,transparent 3px,transparent 6px);}
.cal-legend{display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;margin-top:1rem;font-size:.8rem;color:var(--muted);}
.cal-legend span{display:inline-flex;align-items:center;gap:.35rem;}
.calwrap{overflow:hidden;}

/* ---- Gehalt --------------------------------------------------------- */
.salary-form{display:flex;align-items:center;gap:.4rem;}
.salary-input{width:120px;padding:.45rem .55rem;border:1.5px solid var(--line);border-radius:8px;font:inherit;text-align:right;}
.salary-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(246,157,21,.16);}

/* ---------------------------------------------------------------------------
   Rechte-Matrix (Bausteine) – Toggle-Schalter
   --------------------------------------------------------------------------- */
.table--perm th.perm-col,
.table--perm td.perm-col { text-align: center; width: 124px; vertical-align: middle; }
.table--perm td strong { font-family: var(--head); color: var(--navy); }

.switch { position: relative; display: inline-block; width: 46px; height: 26px; }
.switch input { opacity: 0; width: 0; height: 0; }
.switch__slider { position: absolute; inset: 0; cursor: pointer; background: #cfd8e3;
  border-radius: 999px; transition: background .2s; }
.switch__slider::before { content: ""; position: absolute; height: 20px; width: 20px;
  left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: transform .2s;
  box-shadow: 0 1px 3px rgba(0,0,0,.25); }
.switch input:checked + .switch__slider { background: var(--gold); }
.switch input:checked + .switch__slider::before { transform: translateX(20px); }
.switch input:focus-visible + .switch__slider { box-shadow: 0 0 0 3px rgba(246,157,21,.32); }

/* ---------------------------------------------------------------------------
   Auftrags-Kennzahlen (Statuskacheln)
   --------------------------------------------------------------------------- */
.statcard{display:flex;flex-direction:column;gap:.15rem;text-decoration:none;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:1rem 1.2rem;transition:border-color .15s,transform .15s,box-shadow .15s;}
.statcard:hover{border-color:var(--gold);transform:translateY(-1px);box-shadow:var(--sh);}
.statcard__num{font-family:var(--disp);font-weight:800;font-size:1.7rem;color:var(--navy);line-height:1;}
.statcard__label{font-family:var(--head);font-size:.82rem;font-weight:700;color:var(--muted);
  text-transform:uppercase;letter-spacing:.03em;}

/* Auftrags-Statuskacheln: responsives Auto-Fit-Raster (alle Bildschirme) */
.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.9rem;}
@media (max-width:420px){ .statgrid{grid-template-columns:repeat(2,1fr);} }

/* ---------------------------------------------------------------------------
   Persönliche Benachrichtigungen (Dashboard)
   --------------------------------------------------------------------------- */
.notify-panel{border-left:4px solid var(--gold);}
.notify-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem;}
.notify-item{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;flex-wrap:wrap;
  padding:.7rem .9rem;border-radius:10px;background:#f3f6fb;border-left:4px solid var(--line);}
.notify-item--success{border-left-color:var(--green);}
.notify-item--warning{border-left-color:#e0972b;}
.notify-item.is-unread{background:#fff7e9;font-weight:600;}
.notify-item__msg{color:var(--ink);}
.notify-item__time{color:var(--muted);font-size:.82rem;white-space:nowrap;}

/* ---------------------------------------------------------------------------
   Datei-Anhänge (Auftragserfassung)
   --------------------------------------------------------------------------- */
.is-hidden{display:none;}
.filelist{list-style:none;margin:0 0 .8rem;padding:0;display:flex;flex-direction:column;gap:.4rem;}
.filelist__item{display:flex;align-items:center;gap:.6rem;padding:.5rem .7rem;background:var(--card);
  border:1px solid var(--line);border-radius:10px;}
.filelist__ic{flex:none;opacity:.7;}
.filelist__name{flex:1;min-width:0;color:var(--navy);font-weight:600;text-decoration:none;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;}
.filelist__name:hover{text-decoration:underline;}
.filelist__meta{flex:none;color:var(--muted);font-size:.8rem;}
.filelist__del{flex:none;border:none;background:#fbe9e9;color:#b3261e;width:26px;height:26px;border-radius:7px;
  cursor:pointer;font-size:.8rem;line-height:1;transition:background .15s;}
.filelist__del:hover{background:#f3c7c4;}

.dropzone{position:relative;border:2px dashed var(--line);border-radius:var(--r-lg);background:#f7f9fc;
  padding:1.4rem 1rem;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;}
.dropzone:hover{border-color:var(--gold);}
.dropzone.is-drag{border-color:var(--gold);background:#fff7e9;}
.dropzone__input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;}
.dropzone__hint{margin:0;font-weight:600;color:var(--navy);}
.dropzone__link{color:var(--accent-dk,#b3760a);text-decoration:underline;}
.dropzone__sub{margin:.2rem 0 0;font-size:.8rem;color:var(--muted);}
.dropzone__list{list-style:none;margin:.7rem 0 0;padding:0;display:flex;flex-direction:column;gap:.35rem;
  position:relative;z-index:2;}
.dz-file{display:flex;align-items:center;gap:.5rem;justify-content:space-between;background:#fff;
  border:1px solid var(--line);border-radius:8px;padding:.35rem .6rem;font-size:.85rem;}
.dz-file__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);}
.dz-file__x{border:none;background:transparent;color:#b3261e;cursor:pointer;font-size:.85rem;line-height:1;flex:none;}

/* zugewiesene Aufträge (Mitarbeiter-Dashboard) */
.assign-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem;}
.assign-item{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;padding:.6rem .8rem;background:var(--card);
  border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:10px;text-decoration:none;
  transition:background .12s,border-color .12s;}
.assign-item:hover{background:#fff7e9;border-color:var(--gold);}
.assign-item__no{font-family:var(--head);font-weight:700;color:var(--navy);}
.assign-item__title{flex:1;min-width:0;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.assign-item__meta{color:var(--muted);font-size:.82rem;}

/* Hervorgehobener Panel-Akzent (z. B. „Mir zugewiesene Aufträge") */
.panel--accent{border-left:4px solid var(--gold);}

/* ---------------------------------------------------------------------------
   Auftrags-Detailansicht
   --------------------------------------------------------------------------- */
.pagehead__actions{display:flex;gap:.6rem;flex-wrap:wrap;}
.tagrow{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.2rem;}
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.1rem 1.6rem;}
.info-cell{display:flex;flex-direction:column;gap:.25rem;padding:.7rem .9rem;background:#f7f9fc;
  border:1px solid var(--line);border-radius:10px;}
.info-cell__label{font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);}
.info-cell__value{font-size:1.02rem;font-weight:700;color:var(--navy);}
.prewrap{white-space:pre-wrap;color:var(--ink);margin:0;line-height:1.55;}
@media (max-width:680px){ .detail-grid{grid-template-columns:1fr;gap:0;} }

/* anklickbare Tabellenzeilen */
.row-link{cursor:pointer;transition:background .12s;}
.row-link:hover{background:#f3f6fb;}

/* --- Aufträge: Fristen, Hinweise, Aktionsreihen (Feature-Erweiterung) --- */
.tag--danger{background:#fbe7e6;color:var(--err);}
.btnrow{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-top:.4rem;}
.btn--success{background:linear-gradient(135deg,#5cc26b,var(--ok) 60%,#2f8f3e);color:#fff;}
.req{color:var(--err);font-weight:700;}
ul.tight{margin:.4rem 0 0;padding-left:1.1rem;}
ul.tight li{margin:.15rem 0;}
.notice{border:1px solid var(--line);border-radius:var(--r);padding:.8rem 1rem;margin:0 0 1rem;background:#fff;}
.notice--warn{border-left:4px solid var(--warn);background:#fff8ee;}
.notice--ok{border-left:4px solid var(--ok);background:#f1faf3;}
.notice--info{border-left:4px solid var(--navy);background:#f3f7fb;}
.notice strong{color:var(--navy);}

/* Primärzelle einer klickbaren Zeile: als Link nutzbar, optisch unaufdringlich */
.cell-main{color:var(--navy);text-decoration:none;}
.cell-main:hover,.cell-main:focus{text-decoration:underline;}
.row-link:focus-within{outline:2px solid var(--gold);outline-offset:-2px;}

/* Volle Breite im Manager-Grid (z. B. Backup-Verlauf) */
.panel--wide{grid-column:1 / -1;}

/* --- Einwahl in ein Mitarbeiterkonto ------------------------------------ */
/* Bewusst auffällig und dauerhaft: Wer vergisst, dass er fremd unterwegs
   ist, legt Einträge unter falschem Namen an. */
.einwahlleiste{
    position:fixed;left:0;right:0;top:0;z-index:200;
    background:#7c2d12;color:#fff;
    border-bottom:2px solid #ea580c;
    box-shadow:0 2px 10px rgba(0,0,0,.25);
}
.einwahlleiste__innen{
    display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;
    padding:.55rem 1.1rem;font-size:.93rem;
}
.einwahlleiste__punkt{color:#fdba74;animation:einwahlpuls 2s ease-in-out infinite;}
@keyframes einwahlpuls{0%,100%{opacity:1}50%{opacity:.35}}
.einwahlleiste form{margin-left:auto;}
.einwahlleiste .btn{background:#fff;color:#7c2d12;border-color:#fff;font-weight:700;}
.einwahlleiste .btn:hover{background:#ffedd5;}
.app--einwahl{padding-top:46px;}
.app--einwahl .side{top:46px;}
@media (prefers-reduced-motion:reduce){
    .einwahlleiste__punkt{animation:none;}
}

/* --- Wochenfortschritt --------------------------------------------------
   Der Balken zeigt das Verhältnis von geleisteter zu geschuldeter Zeit; die
   Zahlen darunter nennen es genau. */
.woche{
  grid-column:1/-1;margin-top:.35rem;
  background:linear-gradient(180deg,#fbfcfe,#f4f7fb);
  border:1px solid var(--line);border-left:4px solid var(--navy);
  border-radius:var(--r);padding:1.15rem 1.3rem;
}
.woche--fertig{border-left-color:var(--ok);background:linear-gradient(180deg,#f4fcf5,#eefaf0);}
.woche--eng{border-left-color:var(--err);background:linear-gradient(180deg,#fef7f6,#fdeeed);}
.woche__kopf{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap;margin-bottom:.15rem;}
.woche__zahl{
  font-family:var(--disp);font-weight:800;font-size:1.75rem;line-height:1;
  color:var(--navy);font-variant-numeric:tabular-nums;
}
.woche--fertig .woche__zahl{color:var(--ok);}
.woche--eng .woche__zahl{color:var(--err);}
.woche__wort{font-family:var(--head);font-weight:600;color:var(--muted);font-size:.95rem;}
.woche__zeitraum{margin-left:auto;color:var(--muted);font-size:.82rem;font-variant-numeric:tabular-nums;}
.woche__balken{
  position:relative;height:12px;border-radius:var(--pill);
  background:#e6ecf3;margin:.85rem 0 .6rem;overflow:hidden;
}
.woche__fuell{
  position:absolute;inset:0 auto 0 0;border-radius:var(--pill);
  background:linear-gradient(90deg,var(--navy700),var(--navy));
  transition:width .6s cubic-bezier(.22,.61,.36,1);
}
.woche--fertig .woche__fuell{background:linear-gradient(90deg,#3aa64a,#61ce70);}
.woche--eng .woche__fuell{background:linear-gradient(90deg,#b8433f,var(--err));}
.woche__fuss{display:flex;gap:.5rem 1.6rem;flex-wrap:wrap;color:var(--muted);font-size:.9rem;}
.woche__fuss b{color:var(--ink);font-variant-numeric:tabular-nums;}
@media (prefers-reduced-motion:reduce){.woche__fuell{transition:none;}}

/* --- Kachel mit Zusatzzeile --------------------------------------------- */
.cstat__sub{
  color:var(--muted);font-size:.76rem;line-height:1.35;
  font-variant-numeric:tabular-nums;margin-top:.1rem;
}
.cstat--plus .cstat__sub,.cstat--minus .cstat__sub{opacity:.85;}

/* Hinweis, wenn die Woche rechnerisch nicht mehr zu schaffen ist. */
.woche__warnung{
  padding:.65rem .85rem;border-radius:9px;
  background:#fdf3f2;border:1px solid #f3c6c4;color:#8f2f2b;font-size:.86rem;
}

/* --- Erläuterung unter dem Zeitkonto -------------------------------------
   Die drei Aussagen — Rechenweg, Fehltage, Bezugszeitraum — sind eigenständig
   und brauchen Luft. Zuvor hingen sie über <br> aneinander und lasen sich als
   ein einziger langer Absatz. */
.vertragshinweis{
  margin-top:1.15rem;padding-top:1rem;border-top:1px solid var(--line);
  display:flex;flex-direction:column;gap:.55rem;
}
.vertragshinweis p{
  margin:0;color:var(--muted);font-size:.84rem;line-height:1.65;max-width:104ch;
}
.vertragshinweis strong{color:var(--ink);}
.vertragshinweis__fehl{
  color:#8a4b09;background:#fdf6ec;border:1px solid #f2dcc0;
  border-radius:8px;padding:.5rem .75rem;
}
.vertragshinweis__fehl strong{color:#8a4b09;}
.vertragshinweis__quelle{font-size:.8rem;opacity:.85;}
.vertragshinweis__lohn{
  margin-top:.9rem;padding-top:.85rem;border-top:1px dashed var(--line);
  font-size:.84rem;color:var(--muted);
}

/* ---- Sprungziel nach dem Zurückspringen ------------------------------
   Wer aus einer Liste heraus etwas geöffnet hat und zurückkommt, soll die
   Stelle nicht suchen müssen. Ein kurzes Aufleuchten zeigt sie, ohne die
   Zeile dauerhaft einzufärben – nach knapp drei Sekunden ist alles wieder
   wie zuvor. Kein Rot, kein Grün: Das ist keine Wertung, nur ein Hinweis. */
.zf-sprungziel{animation:zf-sprung 2.6s ease-out 1;}
.zf-sprungziel > td:first-child,
.zf-sprungziel.panel{border-left:3px solid var(--gold);}
@keyframes zf-sprung{
  0%   {background:rgba(212,160,23,.30);}
  25%  {background:rgba(212,160,23,.22);}
  100% {background:transparent;}
}
@media (prefers-reduced-motion:reduce){
  /* Ohne Bewegung: einmal kurz stehen lassen statt ausblenden. */
  .zf-sprungziel{animation:none;background:rgba(212,160,23,.16);}
}

/* ---- Abwesenheit eintragen (Team-Kalender) ---------------------------- */
/* Namen sehen aus wie Namen, verraten aber beim Überfahren, dass sie mehr
   können: das Plus erscheint erst dann, damit die Liste ruhig bleibt. */
.cal__namelink{display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  color:inherit;text-decoration:none;border-radius:6px;margin:-.2rem -.35rem;padding:.2rem .35rem;}
.cal__namelink:hover,.cal__namelink:focus-visible{background:#f3f6fa;color:var(--navy);}
.cal__plus{display:inline-grid;place-items:center;width:1.25rem;height:1.25rem;border-radius:var(--pill);
  background:var(--gold);color:#fff;font-weight:800;font-size:.85rem;line-height:1;
  opacity:0;transform:scale(.7);transition:opacity .15s ease,transform .15s ease;}
.cal__namelink:hover .cal__plus,.cal__namelink:focus-visible .cal__plus{opacity:1;transform:none;}
@media (hover:none){ .cal__plus{opacity:.85;transform:none;} }  /* Tablet: kein Überfahren */

/* Freie Arbeitstage laden zum Klicken ein – dezent, erst beim Überfahren. */
.cal__c--frei{cursor:pointer;}
.cal__c--frei:hover{background:#fff4e0;box-shadow:inset 0 0 0 2px var(--gold);}

/* Nach dem Speichern wird die Zeile kurz umrandet – nicht eingefärbt, denn
   die frisch eingetragenen Tage sollen in ihrer eigenen Farbe zu sehen sein.
   Nur der Name bekommt einen Farbhauch. */
.cal tr{scroll-margin-top:6rem;}
.cal__zeile--neu > td{animation:zf-zeile 3s ease-out 1;}
.cal__zeile--neu > td.cal__name{animation:zf-zeile 3s ease-out 1, zf-sprung 3s ease-out 1;}
@keyframes zf-zeile{
  0%,55% {box-shadow:inset 0 2px 0 var(--gold), inset 0 -2px 0 var(--gold);}
  100%   {box-shadow:inset 0 2px 0 transparent, inset 0 -2px 0 transparent;}
}
@media (prefers-reduced-motion:reduce){
  .cal__zeile--neu > td,.cal__zeile--neu > td.cal__name{animation:none;
    box-shadow:inset 0 2px 0 var(--gold), inset 0 -2px 0 var(--gold);}
}

/* Fenster */
.abw-dialog{border:none;border-radius:var(--r-lg);padding:0;width:min(560px,calc(100vw - 32px));
  max-height:calc(100vh - 32px);overflow:auto;color:var(--ink);
  box-shadow:0 24px 60px rgba(6,36,63,.28);}
.abw-dialog::backdrop{background:rgba(6,36,63,.45);backdrop-filter:blur(2px);}
.abw-dialog[open]:not(:modal){position:static;display:block;margin:1.2rem 0;width:auto;max-width:640px;
  box-shadow:0 0 0 1px var(--line);}   /* ohne Skript: im Seitenfluss */
.abw-dialog__form{padding:1.3rem 1.4rem 1.2rem;}
.abw-dialog__kopf{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.9rem;}
.abw-dialog__kopf h2{margin:0;font-size:1.15rem;color:var(--navy);}
.abw-dialog__zu{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:var(--pill);
  color:var(--muted);text-decoration:none;font-size:1.4rem;line-height:1;}
.abw-dialog__zu:hover{background:#f3f6fa;color:var(--ink);}
.abw-dialog__hinweis{margin:.4rem 0 0;}
.abw-dialog__fuss{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1rem;}

/* Arten als Chips in den Farben des Kalenders – wer „Krankheit“ wählt,
   sieht schon hier das Rot, das nachher in der Zeile steht. */
.abw-arten{border:none;padding:0;margin:0 0 .9rem;display:flex;flex-wrap:wrap;gap:.45rem;}
.abw-arten legend{font-weight:600;font-size:.85rem;color:var(--ink);margin-bottom:.45rem;padding:0;}
.abw-art{position:relative;cursor:pointer;}
.abw-art input{position:absolute;opacity:0;pointer-events:none;}
.abw-art__chip{display:inline-flex;align-items:center;gap:.35rem;padding:.42rem .75rem;border-radius:var(--pill);
  border:1.5px solid var(--line);background:#fff;font-size:.88rem;font-weight:600;color:var(--ink);
  transition:border-color .12s ease,background .12s ease;}
.abw-art:hover .abw-art__chip{border-color:#c9d3de;}
.abw-art input:checked + .abw-art__chip{border-color:var(--navy);background:#f0f5fa;color:var(--navy);}
.abw-art input:focus-visible + .abw-art__chip{outline:2px solid var(--gold);outline-offset:2px;}

/* Von/Bis bleiben auf jeder Breite nebeneinander – zwei Daten gehören zusammen. */
.abw-dialog .form-grid{grid-template-columns:1fr 1fr;gap:.8rem;}
@media (max-width:560px){ .abw-dialog__form{padding:1.1rem 1rem 1rem;} }

/* ---- Tagesansicht einer Abwesenheit ----------------------------------- */
/* Belegte Tage: Die ganze Zelle ist der Link – kein Suchen nach einem
   winzigen Ziel, auch nicht mit dem Finger am iPad. */
.cal__c{position:relative;}
.cal__link{position:absolute;inset:0;display:block;border-radius:2px;z-index:1;}
.cal__c.is-pending::after{pointer-events:none;}   /* Schraffur darf den Klick nicht schlucken */
.cal__link:hover,.cal__link:focus-visible{box-shadow:inset 0 0 0 2px var(--navy);outline:none;}
/* Stornowunsch offen: gestrichelter Rahmen – der Urlaub gilt noch, aber
   es steht eine Entscheidung aus. */
.cal__c.is-storno::before{content:"";position:absolute;inset:3px;border:1.5px dashed rgba(255,255,255,.95);
  border-radius:2px;pointer-events:none;}

.tag--storno{background:#fff1e0;color:#9a4b00;border:1px dashed #e9a254;}
.approve-card__storno{margin:.35rem 0 0;font-size:.86rem;color:var(--ink);}

.abw-detail{width:min(620px,calc(100vw - 32px));}
.abw-detail h2{display:flex;align-items:center;gap:.5rem;}
.abw-detail h3{margin:0 0 .5rem;font-size:.92rem;color:var(--navy);}
.abw-detail__fakten{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem .9rem;margin:0 0 1rem;}
.abw-detail__fakten > div{background:#f7f9fc;border:1px solid var(--line);border-radius:var(--r);padding:.55rem .7rem;}
.abw-detail__fakten > div:nth-child(n+4){grid-column:1/-1;}   /* Anmerkung, Stornowunsch: volle Breite */
.abw-detail__fakten dt{font-size:.72rem;color:var(--muted);font-weight:600;margin-bottom:.15rem;}
.abw-detail__fakten dd{margin:0;font-weight:600;color:var(--ink);}
.abw-detail__storno{background:#fff8ef !important;border-color:#f1c78f !important;}
.abw-detail__hinweis{margin:0 0 1rem;padding:.7rem .85rem;border-radius:var(--r);background:#f0f5fa;
  border-left:3px solid var(--navy);font-size:.88rem;line-height:1.45;color:var(--ink);}
.abw-detail__block{border:1px solid var(--line);border-radius:var(--r);padding:.8rem .9rem;margin:0 0 .7rem;}
.abw-detail__block--haupt{border-color:#f1c78f;background:#fffaf2;}
.abw-detail__block--irrtum{border-style:dashed;}
.abw-detail__block summary{cursor:pointer;font-weight:600;color:var(--navy);list-style:revert;}
.abw-detail__block[open] summary{margin-bottom:.6rem;}
.abw-detail__block form{display:flex;flex-direction:column;gap:.55rem;align-items:flex-start;}
.abw-detail__block .form-grid{width:100%;grid-template-columns:1fr 1fr;gap:.6rem;}
.abw-detail__notiz{width:100%;}
.abw-detail__knoepfe{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.1rem;}
.abw-detail__erkl{margin:0;font-size:.85rem;color:var(--muted);line-height:1.45;}
.abw-detail__haken{display:flex;gap:.5rem;align-items:flex-start;font-size:.88rem;font-weight:600;}
.abw-detail__haken input{margin-top:.2rem;}
.abw-detail__verlauf{margin-top:1rem;}
.abw-detail__verlauf ol{list-style:none;margin:0;padding:0 0 0 .9rem;border-left:2px solid var(--line);}
.abw-detail__verlauf li{position:relative;padding:.1rem 0 .55rem;font-size:.85rem;line-height:1.4;}
.abw-detail__verlauf li::before{content:"";position:absolute;left:-1.23rem;top:.45rem;width:.55rem;height:.55rem;
  border-radius:50%;background:#fff;border:2px solid var(--navy);}
.abw-detail__verlauf time{display:block;font-size:.74rem;color:var(--muted);}
.abw-detail__verlauf strong{margin-right:.3rem;}
.abw-detail__weitere{margin-top:.8rem;}
.abw-detail__weitere ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem;}
.abw-detail__weitere li{display:flex;align-items:center;justify-content:space-between;gap:.6rem;font-size:.86rem;}
.abw-detail__weitere a{color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;gap:.35rem;}
.abw-detail__weitere a:hover{color:var(--navy);text-decoration:underline;}
@media (max-width:560px){ .abw-detail__fakten{grid-template-columns:1fr 1fr;} }
.lv-dot.lv--stornoleg{background:#3fbf7f;outline:1.5px dashed #9a4b00;outline-offset:-3px;}

/* Mitarbeiterseite: Stornierung beantragen */
.note-storno{display:block;font-size:.76rem;color:var(--muted);margin-top:.2rem;}
.storno-wunsch{position:relative;display:inline-block;}
.storno-wunsch > summary{list-style:none;cursor:pointer;}
.storno-wunsch > summary::-webkit-details-marker{display:none;}
.storno-wunsch__form{position:absolute;right:0;top:calc(100% + .35rem);z-index:30;width:min(320px,80vw);
  background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 12px 30px rgba(6,36,63,.16);
  padding:.8rem;display:flex;flex-direction:column;gap:.5rem;text-align:left;}

/* Freie Eingabefelder außerhalb von .form-row (Tagesansicht, Stornowunsch)
   sehen aus wie alle anderen Felder. */
.abw-detail__notiz,.storno-wunsch__form input[type=text]{
  width:100%;padding:.6rem .75rem;border:1.5px solid var(--line);border-radius:10px;font:inherit;font-size:.9rem;
  background:#fff;color:var(--ink);}
.abw-detail__notiz:focus,.storno-wunsch__form input[type=text]:focus{outline:none;border-color:var(--gold);
  box-shadow:0 0 0 4px rgba(246,157,21,.16);}

/* Mitarbeiterliste: Austritt eintragen (aufklappbar) */
.ma-austritt{display:inline-block;position:relative;}
.ma-austritt > summary{list-style:none;cursor:pointer;}
.ma-austritt > summary::-webkit-details-marker{display:none;}
.ma-austritt[open] > form{position:absolute;right:0;top:calc(100% + 4px);z-index:20;width:270px;display:flex;flex-direction:column;gap:.45rem;
  background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.75rem;box-shadow:var(--sh);text-align:left;white-space:normal;}
.ma-austritt label{display:flex;flex-direction:column;gap:.25rem;font-weight:600;font-size:.85rem;}

/* Firmenverwaltung */
.firmen-form .form-abschnitt{font-family:var(--head);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  margin:1.4rem 0 .6rem;padding-top:1rem;border-top:1px solid var(--line);}
.firmen-form .form-abschnitt:first-of-type{margin-top:.2rem;padding-top:0;border-top:0;}
.form-grid--plz{grid-template-columns:7.5rem 1fr;gap:.8rem;}
.farbfeld{display:inline-block;width:22px;height:22px;border-radius:6px;vertical-align:middle;border:1px solid var(--line);}
.dom-zeile{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin:.1rem 0;}
.dom-liste{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.6rem;margin:.2rem 0 .8rem;}
.dom-karte{border:1px solid var(--line);border-radius:10px;padding:.6rem .75rem;display:flex;flex-direction:column;gap:.3rem;background:var(--paper);}
.dom-karte .btn{align-self:flex-start;}
.kontingent-anzeige{display:flex;align-items:center;gap:.6rem;padding-top:.45rem;}
.kontingent-balken{flex:1;max-width:220px;height:8px;border-radius:99px;background:var(--line);overflow:hidden;}
.kontingent-balken span{display:block;height:100%;background:var(--accent);}
@media (max-width:720px){.form-grid--plz{grid-template-columns:1fr 2fr;}}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.firmen-form .form-row .hint{display:block;}

/* Abmelden als Formular (POST statt Link) */
.abmelden-form{display:inline;margin:0;}
.side__foot .abmelden-form .btn{width:100%;}

/* ---- Abrechnung & Abo (stripe.php, abo.php) -------------------------- */
.kv{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem;margin:0 0 1rem;}
.kv dt{color:var(--muted);font-size:.9rem;}
.kv dd{margin:0;overflow-wrap:anywhere;}
.abo-zahlen{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem;margin:0 0 1rem;}
.abo-zahlen>div{border:1px solid var(--line);border-radius:var(--r);padding:.7rem .9rem;background:var(--paper);}
.abo-zahlen__wert{display:block;font-family:var(--disp);font-weight:800;font-size:1.35rem;color:var(--navy);font-variant-numeric:tabular-nums;}
.abo-zahlen__lbl{display:block;font-size:.82rem;color:var(--muted);}
.abo-plaetze{margin:0 0 1.1rem;}
.abo-plaetze label{display:block;margin-bottom:.35rem;}
.abo-plaetze__zeile{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;}
.abo-plaetze .hint{display:block;margin-top:.3rem;}
.abo-tarife{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1rem;}
.abo-tarif{border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.2rem;background:var(--card);display:flex;flex-direction:column;}
.abo-tarif--aktuell{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;}
.abo-tarif h3{margin:0 0 .3rem;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;}
.abo-tarif__preis{font-family:var(--disp);font-weight:800;font-size:1.3rem;color:var(--navy);margin:0;}
.abo-tarif__preis small{font-family:var(--body);font-weight:400;font-size:.85rem;color:var(--muted);}
.abo-tarif ul{margin:.6rem 0 1rem;padding-left:1.1rem;font-size:.92rem;flex:1;}
.abo-tarif form{margin-top:auto;}
.abo-weiter{margin:0;min-height:100vh;display:grid;place-items:center;background:var(--paper);font-family:var(--body);color:var(--ink);}
.abo-weiter__box{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:2rem 2.2rem;text-align:center;box-shadow:var(--sh);max-width:420px;}
.abo-feld{font:inherit;font-size:.95rem;padding:.45rem .6rem;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);}
.abo-feld:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);}
.abo-feld--zahl{width:5.5rem;}
.abo-feld--betrag{width:6rem;text-align:right;}
.table .inline-form .abo-feld{margin-right:.3rem;}

/* ---- Material & Arbeitsnachweis --------------------------------------- */
.nw-zwischen{font-size:1rem;margin:1rem 0 .6rem;}
.nw-tabelle td,.nw-tabelle th{vertical-align:middle;}
.nw-material-form{margin:.4rem 0 1.2rem;}
.nw-material-zeile{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;}
.nw-feld{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--muted);}
.nw-feld input,.nw-feld select{font:inherit;font-size:.95rem;padding:.45rem .6rem;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);}
.nw-feld--menge input{width:5.5rem;}
.nw-feld--bez{flex:1;min-width:200px;}
.nw-wahl{align-items:flex-start;padding:.45rem 0;border-bottom:1px solid var(--line);}
.nw-wahl input{margin-top:.3rem;}
.nw-wahl small{display:block;}
.nw-fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.6rem;}
.nw-foto{position:relative;display:block;border:1px solid var(--line);border-radius:10px;overflow:hidden;aspect-ratio:4/3;background:var(--paper);cursor:pointer;}
.nw-foto img{width:100%;height:100%;object-fit:cover;display:block;}
.nw-foto input{position:absolute;top:.4rem;left:.4rem;width:1.2rem;height:1.2rem;}
.nw-summe{font-size:.75rem;overflow-wrap:anywhere;}
.nw-unterschrift{max-width:320px;max-height:120px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:.4rem;margin:.4rem 0 1rem;display:block;}

/* Kundenansicht (Unterschrift auf dem Tablet, ohne Navigation) */
body.kundenansicht{margin:0;background:var(--paper);font-family:var(--body);color:var(--ink);line-height:1.55;}
.kd{max-width:860px;margin:0 auto;padding:1.4rem 1rem 3rem;}
.kd-kopf{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;border-top:6px solid var(--kd-farbe,#0d3e68);background:#fff;
  border-radius:0 0 14px 14px;padding:1.1rem 1.3rem;margin-bottom:1rem;box-shadow:var(--sh-sm);}
.kd-firma{display:block;font-family:var(--disp);font-size:1.25rem;color:var(--kd-farbe,#0d3e68);}
.kd-klein{display:block;font-size:.85rem;color:var(--muted);}
.kd-titel{text-align:right;font-family:var(--disp);font-weight:800;font-size:1.25rem;}
.kd-titel span{display:block;font-size:.9rem;color:var(--muted);font-weight:600;}
.kd-block{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.3rem;margin-bottom:1rem;}
.kd-block h2{font-size:1.05rem;margin:0 0 .6rem;display:flex;justify-content:space-between;gap:1rem;}
.kd-zwei{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.kd-lbl{display:block;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.kd-summe{font-size:.9rem;font-weight:600;color:var(--muted);}
.kd-liste{margin:.3rem 0 0;padding-left:1.2rem;}
.kd-tabelle{width:100%;border-collapse:collapse;font-size:.95rem;}
.kd-tabelle td{padding:.35rem .4rem;border-bottom:1px solid var(--line);}
.kd-tabelle .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;}
.kd-feld{display:block;margin-bottom:.8rem;}
.kd-feld span{display:block;font-weight:600;font-size:.9rem;margin-bottom:.25rem;}
.kd-feld input,.kd-feld textarea{width:100%;font:inherit;font-size:1.05rem;padding:.65rem .8rem;border:1px solid var(--line);border-radius:10px;}
.kd-pad{position:relative;height:220px;border:2px dashed #b9c4d0;border-radius:14px;background:#fff;touch-action:none;}
.kd-pad canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair;touch-action:none;border-radius:12px;}
.kd-pad__linie{position:absolute;left:8%;right:8%;bottom:26%;border-bottom:1.5px solid #c9d2dc;pointer-events:none;}
.kd-pad__hinweis{position:absolute;left:8%;bottom:12%;font-size:.85rem;color:#9aa7b5;pointer-events:none;}
.kd-pad.ist-bemalt .kd-pad__hinweis{display:none;}
.kd-pad__aktionen{display:flex;justify-content:flex-end;margin:.4rem 0 .8rem;}
.kd-check{display:flex;gap:.6rem;align-items:flex-start;font-size:1rem;margin:.4rem 0 .8rem;}
.kd-check input{width:1.4rem;height:1.4rem;margin-top:.1rem;flex:none;}
.kd-aktionen{display:flex;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin-top:1rem;}
.kd-aktionen .btn{min-height:52px;padding-inline:1.4rem;font-size:1.02rem;}
@media (max-width:640px){.kd-zwei{grid-template-columns:1fr;}.kd-kopf{flex-direction:column;}.kd-titel{text-align:left;}}
.abo-check{align-items:flex-start;margin:0 0 .7rem;font-size:.92rem;}
.abo-check input{margin-top:.3rem;flex:none;}
.form-actions + .dash-grid{margin-top:1.4rem;}

/* ---- Angebote & Rechnungen ------------------------------------------ */
.bl-neu{display:flex;gap:.5rem;flex-wrap:wrap;}
.bl-kennzahlen{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.8rem;margin:0 0 1.2rem;}
.bl-kennzahlen>div{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:.8rem 1rem;font-size:.85rem;color:var(--muted);}
.bl-kennzahlen span{display:block;font-family:var(--disp);font-weight:800;font-size:1.3rem;color:var(--navy);font-variant-numeric:tabular-nums;}
.bl-kennzahlen .bl-warn span{color:var(--err);}
.bl-tabs{display:flex;gap:.3rem;flex-wrap:wrap;margin:0 0 1rem;border-bottom:1px solid var(--line);}
.bl-tabs a{padding:.55rem .9rem;border-radius:10px 10px 0 0;color:var(--muted);font-weight:600;border:1px solid transparent;border-bottom:0;margin-bottom:-1px;}
.bl-tabs a[aria-current="page"]{background:var(--card);color:var(--navy);border-color:var(--line);}
.bl-suche{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap;}
.bl-suche input{flex:1;min-width:200px;font:inherit;padding:.5rem .7rem;border:1px solid var(--line);border-radius:10px;}
.bl-katalog{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-bottom:.8rem;}
.bl-katalog select{flex:1;min-width:240px;font:inherit;padding:.45rem .6rem;border:1px solid var(--line);border-radius:10px;}
.bl-pos td{vertical-align:top;padding:.35rem .35rem;}
.bl-pos select,.bl-pos input,.bl-pos textarea{font:inherit;font-size:.9rem;padding:.4rem .5rem;border:1px solid var(--line);border-radius:8px;background:#fff;width:100%;}
.bl-pos textarea{min-width:240px;min-height:2.3rem;resize:vertical;}
.bl-pos td.num input{text-align:right;min-width:5.5rem;}
.bl-pos select[name="p_art[]"]{min-width:7.2rem;}
.bl-pos select[name="p_ust[]"]{min-width:4.8rem;}
.bl-pos select[name="p_einheit[]"]{min-width:5.2rem;}
.bl-pos [data-zeile-summe]{white-space:nowrap;padding-top:.7rem;font-variant-numeric:tabular-nums;}
.bl-summen{margin-left:auto;max-width:340px;display:flex;flex-direction:column;gap:.3rem;}
.bl-summen div{display:flex;justify-content:space-between;gap:1rem;font-variant-numeric:tabular-nums;}
.bl-summen__gesamt{border-top:2px solid var(--ink);padding-top:.35rem;font-size:1.1rem;}
.bl-loeschen{margin-top:.6rem;}
.bl-aktionen{display:flex;gap:.4rem;flex-wrap:wrap;}
.bl-zahlung{margin-top:.8rem;}
/* Bereiche (Branchenprofile) */
.bereich-karten{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem;margin:0 0 1rem;}
.bereich-karte{display:flex;flex-direction:column;gap:.35rem;padding:.9rem 1rem;border:1px solid var(--line);border-radius:var(--r);background:#fff;color:inherit;text-decoration:none;}
.bereich-karte:hover{border-color:var(--navy);}
.bereich-karte--aktiv{border-color:var(--navy);box-shadow:0 0 0 2px rgba(13,62,104,.15);}
.bereich-karte__fuss{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:auto;padding-top:.3rem;}
.bereich-zeile{border-top:1px solid var(--line);padding-top:.7rem;}
.bereich-info{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;}
/* Eingangsrechnungen */
.er-upload .form-grid{align-items:start;}
.er-kopf{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;}
.er-kopf h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 .3rem;}
.er-notizen{border-top:1px solid var(--line);margin-top:.8rem;padding-top:.6rem;font-size:.9rem;color:var(--muted);}
@media (max-width:720px){.er-kopf{grid-template-columns:1fr;}}
/* Nachkalkulation */
.nk-zahlen{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;margin:.2rem 0 1rem;}
.nk-zahlen>div{border:1px solid var(--line);border-radius:var(--r);padding:.6rem .8rem;background:#fff;}
.nk-zahlen span{display:block;font-size:1.25rem;font-weight:700;color:var(--navy);}
.nk-zahlen .nk-gut span{color:var(--ok);}
.nk-zahlen .nk-schlecht span{color:var(--err);}
.nk-balken{height:8px;border-radius:4px;background:#eef2f7;overflow:hidden;margin-top:.3rem;}
.nk-balken>span{display:block;height:100%;background:var(--navy);}
.nk-balken--ueber>span{background:var(--err);}
.nk-tabelle td.num,.nk-tabelle th.num{white-space:nowrap;}
/* Ausbau Angebote & Rechnungen: Kalkulation, Briefpapier */
.kk{border:1px solid var(--line,#dfe5ec);border-radius:10px;padding:.8rem 1rem;margin:.8rem 0;}
.kk legend{font-weight:600;padding:0 .3rem;}
.kk-ergebnis{margin:.4rem 0;font-variant-numeric:tabular-nums;}
.bp-logo{margin:.6rem 0;padding:.6rem;border:1px dashed var(--line,#dfe5ec);border-radius:10px;background:#fff;display:inline-block;}
.bp-logo img{display:block;max-width:240px;max-height:90px;height:auto;}
.bp-platzhalter{margin:.8rem 0;}
.bp-platzhalter summary{cursor:pointer;font-weight:600;}
.bl-pos:has(input[name="p_rabatt[]"]) textarea{min-width:190px;}
.bl-pos:has(input[name="p_rabatt[]"]) td.num input{min-width:4.6rem;}
.bl-pos:has(input[name="p_rabatt[]"]) td.num input[name="p_rabatt[]"]{min-width:3.4rem;max-width:4rem;}
/* Zahlungsabgleich */
.za-kopf{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.6rem;}
.za-tab td{vertical-align:top;}
.za-text{min-width:16rem;max-width:30rem;}
.za-betrag{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums;}
.za-ein{color:#1f7a3f;}
.za-aus{color:#a8321f;}
.za-ziel{min-width:18rem;}
.za-vorschlag{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:0 0 .4rem;}
.za-hand summary{cursor:pointer;font-size:.9rem;color:var(--muted,#5d6b7a);}
.za-hand__form{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin:.4rem 0;}
.za-hand__form select{max-width:22rem;}
/* Baustelle: Aufmaß */
.am-pos{padding:1rem 1.1rem;}
.am-pos__kopf{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.6rem;}
.am-in{padding:.5rem .6rem;border:1.5px solid var(--line);border-radius:8px;font:inherit;background:#fff;min-width:0;}
.am-in--nr{width:4.5rem;}
.am-in--bez{flex:1 1 16rem;font-weight:600;}
.am-in--text{width:100%;}
.am-in--n{width:100%;text-align:right;font-variant-numeric:tabular-nums;}
.am-in--f{width:100%;}
.am-summe{margin-left:auto;font-size:1.05rem;color:var(--navy);white-space:nowrap;font-variant-numeric:tabular-nums;}
/* Rechenzeilen als Raster: breit eine Zeile, schmal zwei (Bauteil + Ergebnis, darunter die Maße) */
.am-tabelle,.design-modern .am-pos .am-tabelle{display:block;border:0;border-radius:0;box-shadow:none;background:none;white-space:normal;min-width:0;width:100%;}
.am-tabelle thead,.am-tabelle tbody{display:block;}
.am-tabelle tr{display:grid;grid-template-columns:minmax(8rem,2.2fr) repeat(4,minmax(3.4rem,1fr)) minmax(6rem,1.8fr) 2.2rem minmax(4.6rem,auto) 2rem;gap:.35rem;align-items:center;
  padding:.35rem 0;border-bottom:1px solid var(--line);}
.am-tabelle th,.am-tabelle td,.design-modern .am-pos .am-tabelle th,.design-modern .am-pos .am-tabelle td{padding:0;border:0;background:none;}
.am-tabelle thead tr{border-bottom:1px solid var(--line);padding-bottom:.4rem;}
.am-tabelle thead th{font-size:.72rem;}
.am-tabelle td.am-erg,.am-tabelle th.num{text-align:right;}
.am-tabelle td.am-erg{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums;}
@media (max-width:1180px){
  .am-tabelle thead{display:none;}
  .am-tabelle tr{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(0,1.7fr) 2.2rem;grid-template-areas:"t t t t e w" "a l b h f x";padding:.6rem 0;}
  .am-tabelle td:nth-child(1){grid-area:t;} .am-tabelle td:nth-child(2){grid-area:a;} .am-tabelle td:nth-child(3){grid-area:l;}
  .am-tabelle td:nth-child(4){grid-area:b;} .am-tabelle td:nth-child(5){grid-area:h;} .am-tabelle td:nth-child(6){grid-area:f;}
  .am-tabelle td:nth-child(7){grid-area:x;} .am-tabelle td:nth-child(8){grid-area:e;} .am-tabelle td:nth-child(9){grid-area:w;justify-self:end;}
}
@media (max-width:560px){
  .am-tabelle tr{grid-template-columns:repeat(4,minmax(0,1fr)) 2.2rem;grid-template-areas:"t t t t w" "a l b h x" "f f f e e";}
}
.am-zeile--fehler td,.am-zeile--fehler .am-in{background:#fff3f2;border-color:#e6a19c;}
.am-zeile--fehler td.am-erg{color:var(--err);}
.am-abzug label{display:inline-flex;align-items:center;gap:.2rem;font-weight:700;color:var(--err);cursor:pointer;}
.am-weg{border:0;background:none;color:var(--muted);font-size:1.25rem;line-height:1;cursor:pointer;padding:.2rem .4rem;border-radius:6px;}
.am-weg:hover{background:#f3f6fb;color:var(--err);}
.am-aktionen{position:sticky;bottom:0;background:var(--paper);padding:.7rem 0;z-index:5;box-shadow:0 -8px 16px -12px rgba(13,62,104,.35);}
.am-lesen__kopf{display:flex;justify-content:space-between;gap:1rem;margin:1.1rem 0 .4rem;font-size:1rem;}
.am-lesen__kopf span{color:var(--navy);white-space:nowrap;}
/* Baustelle: Berichte */
.bs-aktionen{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-top:.8rem;}
.bs-zwischen{margin:1.1rem 0 .5rem;font-size:1rem;color:var(--navy);}
.bs-wetter{display:flex;flex-wrap:wrap;gap:.4rem;margin:.2rem 0 .8rem;}
.bs-chip{display:inline-flex;cursor:pointer;position:relative;}
.bs-chip input{position:absolute;opacity:0;pointer-events:none;}
.bs-chip span{padding:.45rem .8rem;border:1.5px solid var(--line);border-radius:var(--pill);background:#fff;font-size:.9rem;}
.bs-chip input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff;}
.bs-chip input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px;}
.bs-chip--io input:checked+span{background:var(--ok);border-color:var(--ok);}
.bs-chip--nio input:checked+span{background:var(--err);border-color:var(--err);}
.bs-chip--na input:checked+span{background:var(--muted);border-color:var(--muted);}
.bs-tabelle input,.bs-tabelle select{width:100%;padding:.45rem .55rem;border:1.5px solid var(--line);border-radius:8px;font:inherit;}
.bs-tabelle input.bs-kurz,.bs-kurz{max-width:6rem;}
.bs-mangel{display:grid;grid-template-columns:1fr 12rem 10rem auto;gap:.5rem;align-items:start;margin-bottom:.5rem;}
.bs-mangel textarea,.bs-mangel input{width:100%;padding:.5rem .6rem;border:1.5px solid var(--line);border-radius:8px;font:inherit;}
.bs-pruef{display:grid;grid-template-columns:minmax(12rem,1fr) auto minmax(10rem,16rem);gap:.6rem;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--line);}
.bs-pruef__wahl{display:flex;gap:.3rem;flex-wrap:wrap;}
.bs-pruef__bem{padding:.45rem .6rem;border:1.5px solid var(--line);border-radius:8px;font:inherit;}
.bs-sigs{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;}
.bs-sig .kd-pad{height:180px;}
.bs-sig__leeren{position:absolute;top:.4rem;right:.4rem;}
.bs-sig-bilder{display:flex;flex-wrap:wrap;gap:.8rem;}
.bs-ergebnis{padding:.7rem .9rem;border-radius:10px;background:#eef8f0;border-left:4px solid var(--ok);font-weight:600;}
.bs-ergebnis--abgenommen_maengel{background:#fff7ea;border-left-color:var(--warn);}
.bs-ergebnis--verweigert{background:#fff3f2;border-left-color:var(--err);}
.bs-muster{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem;}
.bs-muster__karte{display:flex;flex-direction:column;gap:.4rem;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:.9rem;}
.bs-mitglieder{border:1px solid var(--line);border-radius:10px;padding:.6rem .9rem;margin:.6rem 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.1rem .8rem;}
.bs-mitglieder legend{font-weight:600;padding:0 .3rem;}
.bs-mitte{text-align:center;}
.bs-kolonne{display:inline-flex;align-items:center;gap:.4rem;padding:.2rem .6rem;border-radius:var(--pill);background:#f3f6fb;border-left:4px solid var(--k,#2f6f9f);font-weight:600;font-size:.88rem;}
.bs-punkt{display:inline-block;width:.6rem;height:.6rem;border-radius:50%;background:var(--k,#2f6f9f);margin-right:.35rem;vertical-align:middle;}
.bs-link{width:100%;margin-top:.5rem;padding:.5rem .6rem;border:1.5px solid var(--line);border-radius:8px;font:inherit;font-size:.85rem;background:#fff;}
.bs-rueck{list-style:none;margin:.3rem 0 .8rem;padding:0;}
.bs-rueck li{padding:.45rem .2rem;border-bottom:1px solid var(--line);font-size:.92rem;}
.bs-rueck li.ist-neu{background:#fff7ea;}
.bs-portal-neu{margin-top:1rem;}
.bs-mappe{border-bottom:1px solid var(--line);padding:.4rem 0;}
.bs-mappe summary{cursor:pointer;font-weight:600;}
.bs-mappe ul{margin:.4rem 0 .4rem 1.1rem;padding:0;}
.bs-summe td{font-weight:700;}
.bs-monat{min-width:5.5rem;text-align:center;}
/* Baustelle: Projektchat */
.chat{max-height:460px;overflow-y:auto;display:flex;flex-direction:column;gap:.6rem;padding:.2rem .2rem .6rem;}
.chat__nachricht{max-width:82%;align-self:flex-start;background:#f3f6fb;border-radius:12px 12px 12px 4px;padding:.55rem .8rem;}
.chat__nachricht--eigen{align-self:flex-end;background:#e7f0fa;border-radius:12px 12px 4px 12px;}
.chat__nachricht p{margin:.25rem 0 0;}
.chat__kopf{display:flex;align-items:center;gap:.4rem;font-size:.85rem;}
.chat__weg{border:0;background:none;color:var(--muted);cursor:pointer;font-size:1rem;padding:0 .2rem;}
.chat__bild{display:block;max-width:260px;max-height:220px;border-radius:8px;margin-top:.35rem;}
.chat__form textarea{width:100%;padding:.6rem .7rem;border:1.5px solid var(--line);border-radius:10px;font:inherit;}
.chat__leiste{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem;align-items:center;margin-top:.4rem;}
/* Baustelle: Berichtsheft */
.bh-wochen{list-style:none;margin:0 0 1rem;padding:0;max-height:520px;overflow-y:auto;}
.bh-wochen a{display:grid;grid-template-columns:1fr auto;gap:.1rem .6rem;padding:.5rem .6rem;border-radius:8px;text-decoration:none;color:inherit;}
.bh-wochen a small{grid-column:1;color:var(--muted);}
.bh-wochen a .tag{grid-row:1/3;grid-column:2;align-self:center;}
.bh-wochen li.ist-aktiv a{background:#e7f0fa;}
.bh-gesamt{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:.88rem;}
.bh-gesamt input{padding:.35rem .5rem;border:1.5px solid var(--line);border-radius:8px;font:inherit;}
.bh-entscheid{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line);}
/* Kundenportal */
.portal-titel{margin:.2rem 0;}
.portal-termin{font-size:1.25rem;font-weight:700;color:var(--kd-farbe,var(--navy));margin:.2rem 0 .6rem;}
.portal-form{display:flex;flex-direction:column;gap:.6rem;align-items:flex-start;}
.portal-form .kd-feld{width:100%;}
.portal-wunsch{width:100%;}
.portal-wunsch summary{cursor:pointer;color:var(--muted);margin:.3rem 0;}
@media (max-width:700px){
  .bs-mangel{grid-template-columns:1fr;}
  .bs-pruef{grid-template-columns:1fr;}
  .chat__nachricht{max-width:95%;}
  .am-summe{margin-left:0;}
  .am-aktionen{position:static;box-shadow:none;}
}
/* Eingabefelder in Zeilenformularen der Baustellen-Module */
.bs-inline select,.bs-inline input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.bs-aktionen select,.bs-aktionen input:not([type=checkbox]):not([type=radio]):not([type=hidden]){
  padding:.55rem .7rem;border:1.5px solid var(--line);border-radius:10px;font:inherit;background:#fff;max-width:100%;}
.bs-inline{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;}

/* ---------------------------------------------------------------------------
   Tagwerkstatt-Verwaltung (Super-Admin ohne gewählte Firma)
   --------------------------------------------------------------------------- */
.app .side__mark.side__mark--logo{background:none;box-shadow:none;padding:0;border-radius:11px;}
.app .side__mark--logo svg{display:block;width:100%;height:100%;}
.side__plattform{margin:.2rem 1rem .6rem;}
.side__plattform-btn{width:100%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#fff;
  border-radius:10px;padding:.45rem .6rem;font:600 .8rem var(--head);cursor:pointer;text-align:left;}
.side__plattform-btn:hover,.side__plattform-btn:focus-visible{background:rgba(255,255,255,.16);outline:none;}
.app--plattform .topsuche{display:none;}
.plattform-kz{margin-bottom:1.3rem;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));}
.statcard--warn{border-color:var(--warn);}
.statcard--warn .statcard__num{color:var(--warn);}
.plattform-liste{list-style:none;margin:0;padding:0;display:grid;gap:.45rem;}
.plattform-liste li{padding:.55rem .75rem;border-radius:10px;background:var(--paper);border-left:4px solid var(--navy);font-size:.92rem;}
.plattform-liste__warn{border-left-color:var(--warn) !important;}
.plattform-rueckrufe{margin-bottom:.5rem;}
.plattform-rueckrufe li{display:flex;justify-content:space-between;align-items:flex-start;gap:.6rem;}
.plattform-rueckrufe__text{display:block;margin-top:.15rem;overflow-wrap:anywhere;}
.plattform-firmen__aktion{white-space:nowrap;}
.plattform-firmen__aktion .inline-form{display:inline-block;margin-right:.3rem;}
.plattform-firmen tr.is-inaktiv td{opacity:.65;}
.abo-hinweis--gesperrt{border-left-color:var(--err);}

/* ---------------------------------------------------------------------------
   Registrierung neuer Kunden (öffentlich)
   --------------------------------------------------------------------------- */
body.reg-seite{display:block;}
.reg-wrap{min-height:100vh;padding:1.2rem 1rem 2.5rem;
  background:radial-gradient(60% 70% at 85% 0%,rgba(255,255,255,.12),transparent 60%),
    radial-gradient(50% 60% at 0% 100%,rgba(0,0,0,.25),transparent 60%),linear-gradient(150deg,var(--navy),var(--navy900));}
.reg-kopf{max-width:860px;margin:0 auto 1.2rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;}
.reg-kopf .btn--ghost{color:#fff;border-color:rgba(255,255,255,.35);}
.reg-marke{display:flex;align-items:center;gap:.6rem;color:#fff;font:800 1.15rem var(--disp);}
.reg-marke svg{width:40px;height:40px;}
.reg-karte{max-width:860px;margin:0 auto;background:var(--card);border-radius:24px;padding:2.2rem 2.2rem 1.8rem;box-shadow:0 30px 70px -30px rgba(0,0,0,.55);}
.reg-karte--schmal{max-width:540px;}
.reg-karte h1{margin-bottom:.2rem;}
.reg-karte .sub{color:var(--muted);margin:0 0 1.3rem;}
.reg-form fieldset{border:0;border-top:1px solid var(--line);margin:0;padding:1.2rem 0 .3rem;}
.reg-form legend{font:800 .82rem var(--head);text-transform:uppercase;letter-spacing:.06em;color:var(--navy);padding:0 .5rem 0 0;}
.reg-reihe{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0 1rem;align-items:start;}
.reg-plz{max-width:120px;}
.reg-tarife{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:.7rem;margin:.4rem 0 1.1rem;}
.reg-tarif{position:relative;display:flex;flex-direction:column;gap:.2rem;padding:.9rem 1rem .9rem 2.6rem;border:1.5px solid var(--line);border-radius:14px;cursor:pointer;transition:border-color .15s,box-shadow .15s;}
.reg-tarif input{position:absolute;left:1rem;top:1.05rem;width:auto;margin:0;accent-color:var(--gold);}
.reg-tarif:has(input:checked){border-color:var(--gold);box-shadow:0 0 0 4px rgba(246,157,21,.14);}
.reg-tarif--empfohlen::after{content:"Beliebt";position:absolute;right:.8rem;top:-.62rem;font:700 .68rem var(--head);text-transform:uppercase;letter-spacing:.05em;background:var(--gold);color:#3a2400;border-radius:999px;padding:.1rem .5rem;}
.reg-tarif__name{font:800 1.05rem var(--disp);color:var(--navy);}
.reg-tarif__preis{font-size:.86rem;font-weight:600;}
.reg-tarif__claim{font-size:.82rem;color:var(--muted);}
.reg-summe{display:flex;flex-direction:column;justify-content:center;padding:.8rem 1rem;border-radius:14px;background:var(--paper);margin-bottom:1.2rem;}
.reg-summe strong{font:800 1.6rem var(--disp);color:var(--navy);line-height:1.2;}
.reg-summe span{font-size:.82rem;color:var(--muted);}
.reg-adresse{display:flex;align-items:stretch;border:1.5px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;}
.reg-adresse span{display:flex;align-items:center;padding:0 .7rem;background:var(--paper);color:var(--muted);font-size:.9rem;white-space:nowrap;}
.reg-adresse input{border:0 !important;border-radius:0 !important;box-shadow:none !important;min-width:0;flex:1;}
.reg-adresse:focus-within{border-color:var(--gold);box-shadow:0 0 0 4px rgba(246,157,21,.16);}
.reg-zustimmung .check{align-items:flex-start;margin:.35rem 0;font-size:.93rem;}
.reg-zustimmung .check input{margin-top:.3rem;}
.reg-absenden{margin-top:1rem;font-size:1.02rem;padding:.9rem 1rem;}
.reg-fuss{text-align:center;margin-top:.7rem;}
.reg-falle{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden;}
.reg-schritte{list-style:none;padding:0;margin:0 0 1.3rem;display:grid;gap:.55rem;}
.reg-schritte li{padding:.55rem .8rem .55rem 2.2rem;border-radius:10px;background:var(--paper);position:relative;font-size:.94rem;}
.reg-schritte li::before{position:absolute;left:.75rem;top:.55rem;font-weight:800;}
.reg-schritte li.is-fertig::before{content:"✓";color:var(--ok);}
.reg-schritte li.is-laeuft::before{content:"…";color:var(--warn);}
.reg-recht{max-width:860px;margin:1.2rem auto 0;text-align:center;}
/* Kurzformular der Registrierung (10/2026) */
.reg-karte--kurz{max-width:620px;}
.reg-form--kurz .form-row{margin-bottom:.95rem;}
.reg-form--kurz label small{font-weight:500;color:var(--muted);}
.reg-adresse-zeile{display:block;margin-top:.3rem;overflow-wrap:anywhere;}
.reg-adresse-zeile strong{color:var(--navy);}
.reg-reihe--ort{grid-template-columns:120px 1fr;}
.reg-form--kurz .reg-zustimmung{border-top:1px solid var(--line);padding-top:1rem;margin-top:.4rem;}
.reg-weiter__titel{font-size:1.05rem;margin:1.6rem 0 .6rem;}
.reg-weiter{margin:0 0 1rem;padding-left:1.3rem;display:grid;gap:.55rem;font-size:.94rem;}
.reg-weiter li::marker{font-weight:800;color:var(--navy);}
.reg-anruf{margin-top:.6rem;}
.reg-karte .reg-zustimmung a,.reg-karte .hint a,.reg-weiter a{text-decoration:underline;text-underline-offset:2px;}
@media (max-width:420px){.reg-reihe--ort{grid-template-columns:100px 1fr;}}
.reg-recht a{color:rgba(255,255,255,.75);}
@media (max-width:600px){
  .reg-karte{padding:1.5rem 1.1rem 1.3rem;border-radius:18px;}
  .reg-adresse{flex-wrap:wrap;}
  .reg-adresse span:last-child{width:100%;padding:.35rem .7rem;}
}
.reg-reihe--adresse{grid-template-columns:minmax(0,2fr) 110px minmax(0,1.4fr);}
.reg-reihe--adresse .reg-plz{max-width:none;}
.reg-zustimmung .check span{flex:1;}
@media (max-width:600px){ .reg-reihe--adresse{grid-template-columns:1fr;} }
@media (max-width:700px){
  .plattform-firmen thead{display:none;}
  .plattform-firmen,.plattform-firmen tbody{display:block;width:100%;}
  .plattform-firmen tr{display:grid;grid-template-columns:1fr 1fr;gap:.35rem .8rem;padding:.8rem .7rem;border-bottom:1px solid var(--line);}
  .app .table.plattform-firmen td{display:block;border:0 !important;padding:0 !important;white-space:normal;min-width:0;overflow-wrap:anywhere;}
  .plattform-firmen td[data-label]::before{content:attr(data-label);display:block;font:700 .68rem var(--head);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);}
  .plattform-firmen td:first-child,.plattform-firmen td[data-label="Adresse"],.plattform-firmen td[data-label="Tarif & Abo"],.plattform-firmen td[data-label="Status"],.plattform-firmen__aktion{grid-column:1 / -1;}
  .plattform-firmen td:first-child::before{display:none;}
  .plattform-firmen__aktion{padding-top:.3rem !important;}
}

/* ---------------------------------------------------------------------------
   Baukasten (Module selbst zusammenstellen)
   --------------------------------------------------------------------------- */
.bk__module{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.6rem;}
.bk-modul{position:relative;display:flex;flex-direction:column;gap:.15rem;padding:.75rem .9rem .75rem 2.5rem;border:1.5px solid var(--line);border-radius:12px;cursor:pointer;background:#fff;transition:border-color .15s,box-shadow .15s;}
.bk-modul input[type=checkbox]{position:absolute;left:.9rem;top:.95rem;width:auto;margin:0;accent-color:var(--gold);}
.bk-modul:has(input:checked){border-color:var(--gold);box-shadow:0 0 0 3px rgba(246,157,21,.12);}
.bk-modul--pflicht{cursor:default;background:var(--paper);}
.bk-modul__kopf{display:flex;justify-content:space-between;gap:.6rem;align-items:baseline;flex-wrap:wrap;}
.bk-modul__name{font:700 .95rem var(--head);color:var(--navy);}
.bk-modul__name small{font:600 .7rem var(--head);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-left:.3rem;}
.bk-modul__preis{font-size:.82rem;font-weight:700;color:var(--ink);white-space:nowrap;}
.bk-modul__text{font-size:.8rem;color:var(--muted);line-height:1.45;}
.bk-modul__text em{font-style:normal;color:var(--warn);}
.bk__summe{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin:.8rem 0 .2rem;font-size:.9rem;color:var(--muted);}
.bk__summe strong{color:var(--navy);font-size:1.05rem;margin-left:.25rem;}
.bk__tipp{margin:.5rem 0 0;padding:.55rem .8rem;border-radius:10px;background:rgba(246,157,21,.12);font-size:.86rem;}
.reg-baukasten{margin:0 0 1.1rem;padding:1rem;border:1px dashed var(--line);border-radius:14px;transition:opacity .2s;}
.reg-baukasten.is-aus{display:none;}
.reg-baukasten__titel{margin:0 0 .7rem;}
.reg-tarif--individuell{border-style:dashed;}
.reg-summe [data-reg-formel]{font-size:.78rem;}
.abo-baukasten{margin-top:.6rem;}
.abo-tarife .abo-tarif--individuell{grid-column:1 / -1;min-width:0;}
.abo-tarif--individuell .bk{margin:.4rem 0 .6rem;}

/* ---- Registrierung: Schritte, Probezeit ------------------------------------ */
.reg-stepper{list-style:none;display:flex;gap:.4rem;margin:0 0 1.3rem;padding:0;flex-wrap:wrap;}
.reg-stepper li{display:flex;align-items:center;gap:.45rem;padding:.35rem .8rem .35rem .4rem;border-radius:999px;background:var(--paper);color:var(--muted);font:600 .8rem var(--head);}
.reg-stepper li span{display:grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:50%;background:#fff;border:1.5px solid var(--line);font-size:.75rem;}
.reg-stepper li.is-aktiv{background:rgba(246,157,21,.14);color:var(--navy);}
.reg-stepper li.is-aktiv span{border-color:var(--gold);background:var(--gold);color:#3a2400;}
.reg-stepper li.is-fertig{color:var(--navy);}
.reg-stepper li.is-fertig span{border-color:var(--ok);background:var(--ok);color:#fff;}
.reg-legende-hinweis{margin:-.2rem 0 .6rem;}
/* Probezeit-Anzeige in der oberen Leiste */
.probe-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;border-radius:999px;background:rgba(246,157,21,.14);color:var(--navy);font:700 .8rem var(--head);white-space:nowrap;text-decoration:none;border:1px solid rgba(246,157,21,.35);}
.probe-pill:hover{background:rgba(246,157,21,.24);}
.probe-pill--knapp{background:rgba(217,83,79,.12);border-color:rgba(217,83,79,.4);}
@media (max-width:640px){.probe-pill__lang{display:none;}}
/* Stempelkarte nach der Probezeit */
.stempelkarte{text-align:center;}
.stempelkarte__uhr{font:800 2.6rem var(--disp);color:var(--navy);font-variant-numeric:tabular-nums;margin:.6rem 0 .2rem;}
.stempelkarte__status{margin:0 0 1rem;color:var(--muted);}
.stempelkarte__hinweis{text-align:left;margin-top:1.2rem;}
.stempelkarte__abmelden{margin-top:.6rem;}

/* Rechnungen an Abonnenten, Pause */
.stempelkarte__aktionen{display:flex;gap:.5rem;flex-wrap:wrap;margin:.7rem 0 0;}
.abo-pause .form-actions{margin-top:.7rem;}
.abo-rechnungen{display:grid;gap:1rem;}
.abo-rechnung-mail{max-width:640px;}
.abo-rechnung-mail label{display:block;font-weight:600;margin-bottom:.3rem;}
.abo-rechnung-mail__zeile{display:flex;gap:.5rem;flex-wrap:wrap;}
.abo-rechnung-mail__zeile input{flex:1 1 240px;min-width:0;}
.abo-rechnung-mail .hint{display:block;margin-top:.3rem;}
.abo-rechnungen__liste td.num,.abo-rechnungen__liste th.num,.prech-liste td.num,.prech-liste th.num{text-align:right;white-space:nowrap;}
.prech-filter{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-end;margin:0 0 1rem;}
.prech-filter label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem;color:var(--muted);}
.prech-filter input,.prech-filter select,.prech-aktion input,.abo-rechnung-mail input{padding:.55rem .7rem;border:1.5px solid var(--line);border-radius:10px;font:inherit;font-size:.9rem;background:#fff;color:var(--ink,#1c2531);min-width:0;}
.prech-filter input:focus,.prech-filter select:focus,.prech-aktion input:focus,.abo-rechnung-mail input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(246,157,21,.16);}
.prech-liste td:first-child strong,.abo-rechnungen__liste td:first-child strong{white-space:nowrap;}
.prech-liste .plattform-firmen__aktion{white-space:nowrap;}
.prech-aktion[open]{display:block;}
.prech-aktion{display:inline-block;position:relative;}
.prech-aktion>summary{list-style:none;cursor:pointer;}
.prech-aktion>summary::-webkit-details-marker{display:none;}
.prech-aktion[open]>form{margin-top:.5rem;padding:.7rem;border:1px solid var(--line,#dde3ea);border-radius:10px;background:var(--card,#fff);display:grid;gap:.4rem;min-width:260px;text-align:left;}
.prech-aktion label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem;}
.prech-aktion label.check{flex-direction:row;align-items:center;}
.prech-schnell{display:flex;flex-wrap:wrap;gap:.4rem;margin:.2rem 0 .6rem;}
.prech-trenner{border:0;border-top:1px solid var(--line,#dde3ea);margin:1.2rem 0;}
.prech-anbieter__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:0 1rem;}
.prech-anbieter__breit{grid-column:1/-1;}
.plattform-kulanz{margin-top:.3rem;}

/* Rechnung aus Auftrag */
.ra-fehler{margin:.4rem 0 0 1.1rem;padding:0;}
.ra-quellen{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.7rem;}
.ra-quelle{display:flex;gap:.7rem;align-items:flex-start;padding:.8rem .9rem;border:1.5px solid var(--line);border-radius:12px;cursor:pointer;background:var(--card);}
.ra-quelle input{margin-top:.25rem;accent-color:var(--gold);width:auto;}
.ra-quelle.is-an{border-color:var(--gold);background:rgba(246,157,21,.06);}
.ra-adresse{margin:.2rem 0 .6rem;line-height:1.5;}
.ra-ergaenzen{margin:.4rem 0 1rem;}
.ra-ergaenzen>summary{cursor:pointer;font-weight:600;color:var(--navy);}
.ra-neu{margin-bottom:1rem;}
.ra-null{border-color:var(--err,#c0392b)!important;background:#fff5f4;}
.ra-zusatz{margin:1rem 0;}
.ra-hinweis{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;}
.ra-hinweis strong{margin-right:.2rem;}
.ra-hint{margin:-.4rem 0 1rem;}

/* Rechte nach Bereichen */
.rechte-modul{border-top:1px solid var(--line);padding-top:.7rem;margin-bottom:.7rem;}
.rechte-modul.is-ohne-basis{background:#fff8ec;border-radius:10px;padding:.7rem .8rem;}
.rechte-modul.is-ohne-basis .rechte-braucht{background:#fde2b8;color:#8a4b00;}
.rechte-vorwahl{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.9rem;padding-top:.9rem;border-top:1px solid var(--line);}
.rechte-vorwahl label{font-weight:600;color:var(--navy);}
.rechte-vorwahl select{padding:.45rem .6rem;border:1.5px solid var(--line);border-radius:10px;font:inherit;background:#fff;}
.rechte-vorwahl .hint{flex-basis:100%;}
.rechte-kat{margin:1.1rem 0 .4rem;font:700 .8rem var(--head);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);}
.rechte-andere>summary{cursor:pointer;list-style:revert;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
.rechte-andere__titel{font:700 1.05rem var(--head);color:var(--navy);}
.rechte-andere[open]>summary{margin-bottom:.6rem;}
.rechte-andere--flach{margin-top:1.2rem;border-top:1px solid var(--line);padding-top:.8rem;}
.ra-abschluss{display:flex;flex-wrap:wrap;gap:.8rem 1.2rem;align-items:center;justify-content:space-between;border-left:4px solid var(--gold);}
.ra-abschluss__text{display:flex;flex-direction:column;gap:.25rem;flex:1 1 320px;}
.ra-abschluss__text strong{color:var(--navy);font-size:1.02rem;}
.ra-abschluss__text span{color:var(--muted);font-size:.9rem;}
.ra-abschluss__aktionen{display:flex;flex-wrap:wrap;gap:.5rem;}
.ra-abschluss--frisch{background:linear-gradient(135deg,rgba(246,157,21,.12),rgba(246,157,21,.03));animation:ra-auf .5s ease-out;}
.ra-abschluss--frisch .ra-abschluss__knopf{font-size:1rem;padding:.75rem 1.3rem;}
@keyframes ra-auf{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.ra-abschluss--frisch{animation:none;}}
.ra-listenknopf{white-space:nowrap;}
.bereich-tarife{margin:1rem 0;}
.bereich-tarife .hint{margin-left:.3rem;font-size:.75rem;}
.bereich-zeile--aus{opacity:.72;}
.bereich-zeile--aus:hover,.bereich-zeile--aus:focus-within{opacity:1;}
.bereich-zeile .tag{margin-left:.25rem;}
.bereich-vergleich th.is-aktiv,.bereich-vergleich td.is-aktiv{background:rgba(246,157,21,.07);}
.bereich-vergleich tr.is-aktiv td:first-child{box-shadow:inset 3px 0 0 var(--gold);}
.bereich-vergleich td{vertical-align:top;min-width:150px;}

/* Sprung zu „Meine Aufgaben“ im Auftrag + Aufgaben-Status */
.aufgabe-sprung{color:inherit;text-decoration:none;font-weight:inherit;}
.aufgabe-sprung:hover,.aufgabe-sprung:focus-visible{color:var(--navy);text-decoration:underline;text-underline-offset:2px;}
.livelist li.aufgabe-sprung-zeile{cursor:pointer;border-radius:8px;transition:background .15s;}
.livelist li.aufgabe-sprung-zeile:hover{background:#f5f8fc;}
#task-rows tr[id^="aufgabe-"]{scroll-margin-top:96px;}
#task-rows tr.task--ziel>td{background:#fff8e8 !important;box-shadow:inset 0 2px 0 var(--accent),inset 0 -2px 0 var(--accent);}
#task-rows tr.task--ziel>td:first-child{box-shadow:inset 3px 2px 0 var(--accent),inset 0 -2px 0 var(--accent);}
#task-rows tr:target>td{animation:aufgabe-blink 1.6s ease-out 1;}
@keyframes aufgabe-blink{0%,35%{background:#ffe9bf;}100%{background:transparent;}}
.task-status{font-weight:600;border-radius:6px;}
.task-status--in_bearbeitung{background:#e8f7ec;color:var(--ok);border-color:#b7e3c3;}
.task-status--wartet{background:#efe7fb;color:#6b3fb0;border-color:#d5c4f2;}
.task-status--erledigt{background:#eef2f7;color:var(--muted);}
.task-status-seit{display:block;font-size:.72rem;margin-top:.15rem;white-space:nowrap;}
@media (prefers-reduced-motion:reduce){#task-rows tr:target>td{animation:none;}}

/* Sicherheitsfreigabe (erneute Anmeldung vor empfindlichen Änderungen) */
.freigabe-box{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:0 0 1rem;padding:.75rem 1rem;border-radius:12px;
  background:#fff7e6;border:1px solid #f3d29a;color:#7a4b00;}
.freigabe-box > span:nth-child(2){flex:1;min-width:220px;}
.freigabe-box form{margin:0;}
.freigabe-box--frei{background:#ecfdf3;border-color:#b7e3c3;color:#14532d;}
.freigabe-box__ic{font-size:1.25rem;line-height:1;}
.freigabe-feld{border:0;padding:0;margin:0;min-width:0;}
.freigabe-feld:disabled :is(input,select,textarea,button,.btn){opacity:.55;cursor:not-allowed;}
.inline-form .freigabe-feld{display:inline;}
.freigabe-link{font-size:.8rem;font-weight:600;margin-left:.4rem;}
textarea[readonly][title]{background:#f6f7f9;color:var(--muted);}
.freigabe-pill{display:inline-flex;align-items:center;gap:.25rem;padding:.3rem .65rem;border-radius:999px;font-size:.78rem;font-weight:700;
  background:#ecfdf3;color:#166534;border:1px solid #b7e3c3;text-decoration:none;white-space:nowrap;}
.freigabe-pill:hover{background:#dcfce7;}
@media (max-width:720px){.freigabe-pill__lang{display:none;}}
.freigabe-panel{max-width:560px;}
.freigabe-panel__kopf{display:flex;gap:.8rem;align-items:flex-start;margin-bottom:1rem;}
.freigabe-panel__schloss{font-size:1.8rem;line-height:1;}
.freigabe-form input[name="code"]{letter-spacing:.2em;font-variant-numeric:tabular-nums;max-width:12rem;}

/* App-Kopplung per QR-Code */
.app-qr{width:240px;height:240px;flex:0 0 auto;margin:0;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px;box-sizing:border-box;display:flex;align-items:center;justify-content:center}
.app-qr svg{width:100%;height:100%;display:block}
.app-verbinden{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;padding:.9rem 1rem}
.app-verbinden__reihe{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}
.app-verbinden__schritte{margin:0;padding-left:1.2rem;line-height:1.7;font-size:.95rem;flex:1 1 220px}
.app-verbinden__alternativ{margin-top:.9rem;border-top:1px solid #bbf7d0;padding-top:.6rem}
.app-verbinden__alternativ>summary{cursor:pointer;font-size:.9rem;color:var(--muted,#667085)}

/* Feedback & Wünsche (Kunden) */
.fb-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:1.4rem;align-items:start}
.fb-form{max-width:none;margin:0}
.fb-arten{border:0;padding:0;margin:0 0 1.1rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
.fb-arten legend{font-weight:600;margin-bottom:.5rem;padding:0}
.fb-art{position:relative;display:block;cursor:pointer}
.fb-art input{position:absolute;opacity:0;inset:0;margin:0}
.fb-art__karte{display:flex;flex-direction:column;gap:.1rem;height:100%;padding:.75rem .8rem;border:1.5px solid var(--line);border-radius:var(--r);background:#fff;transition:border-color .15s,box-shadow .15s}
.fb-art__karte .hint{line-height:1.35}
.fb-art__ic{font-size:1.35rem;line-height:1}
.fb-art:hover .fb-art__karte{border-color:#c3ccd8}
.fb-art input:checked + .fb-art__karte{border-color:var(--navy);box-shadow:0 0 0 3px rgba(13,62,104,.12)}
.fb-art input:focus-visible + .fb-art__karte{outline:2px solid var(--accent);outline-offset:2px}
.fb-wahl,.fb-sterne-feld{border:0;padding:0;margin:0}
.fb-wahl legend,.fb-sterne-feld legend{font-weight:600;padding:0;margin-bottom:.35rem}
.fb-wahl .check{margin:.15rem 0}
.fb-sterne{display:inline-flex;flex-direction:row-reverse;gap:.15rem}
.fb-sterne input{position:absolute;opacity:0;width:1px;height:1px}
.fb-sterne label{font-size:1.9rem;line-height:1;color:#cfd6df;cursor:pointer;margin:0;transition:color .1s}
.fb-sterne label:hover,.fb-sterne label:hover ~ label,.fb-sterne input:checked ~ label{color:var(--gold)}
.fb-sterne input:focus-visible + label{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.fb-liste{list-style:none;margin:0;padding:0}
.fb-eintrag{padding:.8rem 0;border-top:1px solid var(--line)}
.fb-eintrag:first-child{border-top:0;padding-top:.2rem}
.fb-eintrag__kopf{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.15rem}
.fb-eintrag:target{background:#fff8ea;margin:0 -.8rem;padding-left:.8rem;padding-right:.8rem;border-radius:10px}
.fb-text{white-space:normal;margin:.35rem 0 0;overflow-wrap:anywhere}
.fb-antwort{margin-top:.55rem;padding:.6rem .8rem;border-left:3px solid var(--navy);background:#f2f6fb;border-radius:0 10px 10px 0}
@media (max-width:980px){.fb-layout{grid-template-columns:1fr}}
@media (max-width:560px){.fb-arten{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Kundenfeedback (Super-Admin) */
.kf-filter{flex-wrap:wrap}
.kf-liste tr.kf-neu td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.kf-liste tr.kf-aktiv{background:#f2f6fb}
.kf-sterne{color:var(--gold);letter-spacing:.05em;white-space:nowrap}
.kf-detail{margin-bottom:1.2rem}
.kf-detail__grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:1.6rem}
.kf-meta{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 .7rem}
.kf-text{background:#f7f9fc;border:1px solid var(--line);border-radius:var(--r);padding:.85rem 1rem;margin-bottom:.5rem;overflow-wrap:anywhere}
.kf-geraet{font-size:.78rem;overflow-wrap:anywhere}
.kf-bearbeiten{margin-top:1rem;max-width:none}
.kf-kunde{background:#f7f9fc;border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.1rem}
.kf-kunde h3{margin:.2rem 0 .5rem}
.kf-kunde h3 + dl{margin-top:0}
.kf-kunde dl{display:grid;grid-template-columns:auto 1fr;gap:.25rem .8rem;margin:0 0 1rem}
.kf-kunde dt{color:var(--muted);font-size:.86rem}
.kf-kunde dd{margin:0;overflow-wrap:anywhere}
.kf-balken{list-style:none;margin:0 0 .4rem;padding:0}
.kf-balken li{margin:.45rem 0}
.kf-balken a{display:flex;justify-content:space-between;gap:.6rem;color:var(--ink);font-size:.92rem}
.kf-balken__wert{font-weight:700;color:var(--navy)}
.kf-balken__bar{display:block;height:6px;background:#edf1f6;border-radius:99px;overflow:hidden;margin-top:.2rem}
.kf-balken__bar > span{display:block;height:100%;background:var(--navy);border-radius:99px}
.kf-w0{width:3%}.kf-w10{width:10%}.kf-w20{width:20%}.kf-w30{width:30%}.kf-w40{width:40%}.kf-w50{width:50%}
.kf-w60{width:60%}.kf-w70{width:70%}.kf-w80{width:80%}.kf-w90{width:90%}.kf-w100{width:100%}
.kf-zwischen{margin-top:1.2rem}
.kf-export{flex-wrap:wrap;gap:.5rem}
@media (max-width:980px){.kf-detail__grid{grid-template-columns:1fr}}
.fb-wahl .check,.fb-form > .check{font-family:var(--body);font-weight:400;color:var(--ink);text-transform:none;letter-spacing:normal}
.fb-form > .check{margin:.2rem 0 .4rem}
.kf-info{margin:.1rem 0 1rem}

/* Wartung & Ankündigung */
.wartung-hinweis{display:block}
.wartung-hinweis__ic{font-size:1.05em}
.wartung-pill{background:#fff4e2;color:#9a4b00;border-color:#f3c98b}
.wartung-pill--aktiv{background:#fbe7e6;color:var(--err);border-color:#f1b3b0}
.wartung-karte{text-align:left}
.wm-status{margin-bottom:1.2rem}
.wm-status--laeuft{border:2px solid #f1b3b0}
.wm-daten{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem;margin:0 0 1rem}
.wm-daten dt{color:var(--muted);font-size:.9rem}
.wm-daten dd{margin:0;overflow-wrap:anywhere}
.wm-aktionen{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:1rem;align-items:start}
.wm-aktionen fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:.45rem}
.wm-zeile{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.wm-zeile input{max-width:16rem}
.wm-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 1rem}
.wm-form .check{margin:.35rem 0}
.wm-knoepfe{gap:.6rem;flex-wrap:wrap}
.wm-liste{margin:0;padding-left:1.1rem;line-height:1.55}
.wm-liste li{margin:.3rem 0}
@media (max-width:980px){.wm-grid{grid-template-columns:1fr 1fr}.wm-aktionen{grid-template-columns:1fr}}
@media (max-width:560px){.wm-grid{grid-template-columns:1fr}}

/* Steuerbüro */
.stb-monat{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}
.stb-monat select{width:auto;min-width:14rem}
.stb-vorschau td.num,.stb-vorschau th.num{white-space:nowrap}
.stb-erstellen{margin-top:1.2rem;border-top:1px solid var(--line);padding-top:1rem}
.stb-inhalte{border:0;padding:0;margin:0 0 .6rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem 1.2rem}
.stb-inhalte legend{font-weight:600;margin-bottom:.4rem;padding:0}
.stb-inhalte .is-aus{opacity:.6}
.stb-knoepfe{gap:.6rem;flex-wrap:wrap}
.stb-tag{width:auto;display:inline-block;padding:.2rem .4rem;margin:0 .2rem}
.stb-lohnarten td{vertical-align:middle}
.stb-la{max-width:6.5rem}
.stb-hinweis{margin-bottom:1rem}
@media (max-width:700px){.stb-inhalte{grid-template-columns:1fr}}

/* Kunde mit Probeabo anlegen (Super-Admin) */
.kunde-slug{display:flex;align-items:center;gap:.3rem}
.kunde-slug input{flex:1 1 auto;min-width:0}
.kunde-slug span{color:var(--muted);white-space:nowrap;font-size:.9rem}
.subdomain-status{transition:color .15s}
.subdomain-status--gut{color:var(--ok,#067647)}
.subdomain-status--warn{color:var(--warn,#b54708)}
.kunde-mehr{margin:.8rem 0 .2rem}
.kunde-mehr>summary{cursor:pointer;color:var(--muted);font-size:.9rem;margin-bottom:.6rem}
.kunde-daten{display:grid;grid-template-columns:minmax(9rem,max-content) 1fr;gap:.45rem 1.2rem;margin:0 0 1rem}
.kunde-daten dt{color:var(--muted);font-size:.88rem}
.kunde-daten dd{margin:0}
.kunde-aktionen{flex-wrap:wrap;gap:.5rem;margin-bottom:.6rem}
@media (max-width:700px){.kunde-daten{grid-template-columns:1fr}.kunde-daten dt{margin-top:.4rem}}
/* Raumscans (App, LiDAR) */
.rs-tabelle td.num,.rs-tabelle th.num{text-align:right;white-space:nowrap}
.rs-dateien{white-space:normal}
.rs-datei{display:inline-flex;gap:.2rem;align-items:center;margin:0 .25rem .25rem 0}
.rs-datei .inline-form{display:inline}
.rs-loeschen{padding-inline:.45rem}

/* Sicheres Passwort erzeugen (erste Anmeldung, Registrierung) */
.pw-erzeugen{margin:.2rem 0 1rem}
.pw-erzeugen[hidden],.pw-erzeugen__ergebnis[hidden]{display:none}
.pw-erzeugen__ergebnis{margin-top:.6rem;padding:.7rem .8rem;border:1px solid var(--line);border-radius:10px;background:#f7f9fb;
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.pw-erzeugen__text{flex:1 1 14rem;font-size:1rem;letter-spacing:.04em;word-break:break-all;user-select:all;cursor:text;
  background:#fff;border:1px solid var(--line);border-radius:8px;padding:.45rem .6rem}
.pw-erzeugen__status{flex-basis:100%;margin:0;font-size:.85rem;color:var(--muted)}
.pw-erzeugen__status.is-ok{color:#12805c}
/* Registrierung: automatisch gebildete Adresse und Anmeldung */
.reg-adresse-vorschau{display:flex;flex-wrap:wrap;align-items:baseline;gap:.15rem;font-size:1.05rem;padding:.75rem .9rem;
  border:1px dashed var(--line);border-radius:10px;background:#f7f9fb;word-break:break-all}
.reg-adresse-vorschau strong{color:var(--navy)}
.reg-anmeldung-feld,.reg-anmeldung-feld[readonly]{background:#f2f5f8 !important;color:var(--muted) !important}
.reg-adresse-hinweis{margin:.45rem 0 0}
/* Firmen → Benutzer (Super-Admin) */
.benutzer-liste{list-style:none;margin:0 0 1rem;padding:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.benutzer-liste__eintrag{padding:.8rem 1rem;border-top:1px solid var(--line)}
.benutzer-liste__eintrag:first-child{border-top:0}
.benutzer-liste__eintrag.is-inaktiv{background:#f8fafc}
.benutzer-liste__kopf{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}
.benutzer-liste__name .tag{margin-left:.35rem;vertical-align:middle}
.benutzer-liste__aendern{margin-top:.5rem}
.benutzer-liste__aendern summary{cursor:pointer;font-size:.88rem;color:var(--navy);font-weight:600}
.benutzer-liste__aendern form{margin-top:.6rem;padding:.8rem;border:1px solid var(--line);border-radius:10px;background:#fbfcfd}
.benutzer-liste__aendern .check,.benutzer-neu__form .check{margin:.3rem 0}
.benutzer-neu>summary{list-style:none;display:inline-flex}
.benutzer-neu>summary::-webkit-details-marker{display:none}
.benutzer-neu[open]>summary{margin-bottom:.8rem}
.benutzer-neu__titel{margin:1rem 0 .35rem;font-size:.95rem}
.benutzer-neu__passwort{margin-top:.5rem}

/* ---- Plantafel (plantafel.php) ---------------------------------------
   Mehrere Wochen nebeneinander: Projekte oben, Mitarbeiter darunter. Jede
   Zeile ist ein eigenes Raster mit denselben Spalten (Beschriftung + Tage),
   Balken liegen per grid-column auf den Tagen, Bahnen untereinander. */
.flash--warn{background:#fff7e6;border-color:var(--warn);}
.pt-zeitraum{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .7rem;margin:0 0 1rem;font-size:.88rem;}
.pt-zeitraum label{font:600 .8rem/1 var(--head);color:var(--navy);}
.pt-zeitraum input,.pt-zeitraum select{padding:.42rem .55rem;border:1.5px solid var(--line);border-radius:8px;font:inherit;background:#fff;color:var(--ink);}
.pt-zeitraum__links{margin-left:auto;}
.pt-huelle{position:relative;}
.pt{--label:236px;background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh-sm);border:1px solid var(--line);overflow:hidden;margin-bottom:1.2rem;}
.pt__scroll{overflow:auto;max-height:calc(100vh - 230px);min-height:280px;overscroll-behavior:contain;}
.pt__raster{width:100%;min-width:calc(var(--label) + var(--tage) * var(--tagbreite));}
.pt__kopf,.pt__zeile{display:grid;grid-template-columns:var(--label) repeat(var(--tage),minmax(0,1fr));}
.pt__kopf{position:sticky;top:0;z-index:6;background:var(--card);border-bottom:2px solid var(--line);grid-template-rows:auto auto auto;}
.pt__ecke{grid-column:1;grid-row:1/4;position:sticky;left:0;z-index:2;background:var(--card);display:flex;flex-direction:column;justify-content:flex-end;
  padding:.45rem .75rem;border-right:1px solid var(--line);line-height:1.25;}
.pt__ecke-zeit{font:700 .82rem/1.2 var(--head);color:var(--navy);}
.pt__ecke-zs{font-size:.7rem;color:var(--muted);}
.pt__monat{grid-row:1;font:700 .74rem/1 var(--head);color:var(--navy);padding:.45rem .5rem .15rem;white-space:nowrap;overflow:hidden;border-left:1px solid var(--line);}
.pt__kw{grid-row:2;font-size:.66rem;color:var(--muted);padding:.1rem .5rem .2rem;border-left:1px solid var(--line);white-space:nowrap;overflow:hidden;}
.pt__kopftag{grid-row:3;text-align:center;font-size:.66rem;padding:.2rem 0 .35rem;color:var(--muted);border-left:1px solid #edf1f6;line-height:1.15;position:relative;}
.pt__kopftag b{display:block;width:1.65rem;height:1.65rem;line-height:1.65rem;margin:.1rem auto 0;border-radius:50%;font:700 .8rem/1.65rem var(--head);color:var(--ink);}
.pt__kopftag.is-frei{background:#f6f8fb;}
.pt__kopftag.is-frei b{color:#98a2b3;}
.pt__kopftag.is-feiertag,.pt__kopftag.is-feiertag b{color:var(--err);}
.pt__kopftag.is-heute b{background:var(--gold);color:#fff;}
.pt__ft{position:absolute;top:.15rem;right:.15rem;font-size:.55rem;color:var(--err);}
.pt--eng .pt__wt{display:none;}
.pt--eng .pt__kopftag b{width:1.4rem;height:1.4rem;line-height:1.4rem;font-size:.72rem;}

.pt__abschnitt{background:#f7f9fc;border-bottom:1px solid var(--line);padding:.55rem 0;}
.pt__abschnitt-titel{position:sticky;left:0;display:inline-flex;align-items:center;gap:.45rem;padding:0 .8rem;
  font:700 .74rem/1 var(--head);letter-spacing:.06em;text-transform:uppercase;color:var(--navy);}
.pt__zahl{display:inline-block;min-width:1.35rem;padding:.12rem .38rem;border-radius:var(--pill);background:#e7eef7;color:var(--navy);font:700 .68rem/1.2 var(--head);text-align:center;letter-spacing:0;}
.pt__plus{display:inline-grid;place-items:center;width:1.5rem;height:1.5rem;border-radius:7px;background:var(--navy);color:#fff;font-size:.9rem;line-height:1;}
.pt__plus:hover{background:var(--gold);}
.pt__leer{padding:.8rem;color:var(--muted);font-size:.85rem;border-bottom:1px solid var(--line);}

.pt__zeile{position:relative;border-bottom:1px solid #edf1f6;grid-template-rows:34px;}
.pt__zeile--person{grid-template-rows:repeat(var(--bahnen,1),32px);}
.pt__zeile--gruppe{grid-template-rows:26px;background:#fbfcfe;}
.pt__zeile.is-ich .pt__label{box-shadow:inset 3px 0 0 var(--gold);}
.pt__zeile.is-ziel{background:rgba(246,157,21,.07);}
.pt__label{grid-column:1;grid-row:1/-1;position:sticky;left:0;z-index:4;background:var(--card);display:flex;align-items:center;gap:.45rem;
  padding:.2rem .65rem;border-right:1px solid var(--line);min-width:0;font-size:.82rem;}
.pt__zeile--gruppe .pt__label{background:#fbfcfe;font:700 .76rem/1.2 var(--head);color:var(--navy);}
.pt__punkt{width:10px;height:10px;border-radius:3px;background:var(--farbe,#94a3b8);flex:none;}
.pt__avatar{width:26px;height:26px;border-radius:50%;background:#e7eef7;color:var(--navy);display:grid;place-items:center;font:700 .66rem/1 var(--head);flex:none;}
.pt__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--ink);}
.pt__vor{display:inline-block;padding:0 .3rem;border-radius:4px;background:#fef3c7;color:#92400e;font:700 .6rem/1.4 var(--head);vertical-align:middle;}
.pt__ptitel{display:flex;flex-direction:column;min-width:0;color:var(--ink);line-height:1.2;}
.pt__pzeile{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pt__nr{color:var(--muted);font-weight:700;font-size:.74rem;}
.pt__ptitel small{color:var(--muted);font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pt__ptitel:hover .pt__pzeile{color:var(--accent-dk);}
.pt__griff{cursor:grab;touch-action:none;color:#98a2b3;font-size:1rem;line-height:1;padding:.2rem .1rem;user-select:none;-webkit-user-select:none;}
.pt__griff:hover{color:var(--navy);}

.pt__zelle{grid-row:1/-1;border-left:1px solid #edf1f6;min-width:0;}
.pt__zelle.is-frei{background:#f6f8fb;}
.pt__zelle.is-feiertag{background:#fdf1f1;}
.pt__zelle.is-heute{background:rgba(246,157,21,.08);box-shadow:inset 1px 0 0 rgba(246,157,21,.55),inset -1px 0 0 rgba(246,157,21,.55);}
a.pt__zelle{display:block;position:relative;}
a.pt__zelle:hover{background:rgba(13,62,104,.06);}
a.pt__zelle:hover::after{content:"+";position:absolute;inset:0;display:grid;place-items:center;color:var(--navy);opacity:.45;font-weight:700;}
.pt__belegung{display:grid;place-items:center;font:600 .62rem/1 var(--head);color:var(--muted);}
.pt__belegung.is-voll{color:#166534;background:#e9f9ee;}
.pt__belegung.is-halb{color:#92400e;background:#fff8e6;}
.pt__belegung.is-frei-k{color:#be123c;}
.pt--eng .pt__belegung{font-size:.55rem;}

.pt__abw{grid-row:1/-1;z-index:1;display:grid;place-items:center;margin:2px 1px;border-radius:6px;background:#fff7ed;border:1px dashed #fdba74;font-size:.9rem;line-height:1;}
.pt__abw.is-beantragt{opacity:.6;background:repeating-linear-gradient(-45deg,#fff7ed 0 5px,#fff 5px 10px);}
.pt__abw.is-halb{align-self:start;height:calc(50% - 2px);}

.pt__balken{grid-row:1;position:relative;z-index:2;display:flex;align-items:center;gap:.3rem;margin:3px 2px;padding:0 .45rem;min-width:0;overflow:hidden;
  border-radius:7px;background:#eef2f7;background:color-mix(in srgb,var(--farbe) 15%,#fff);border:1px solid #d0d7e2;border-color:color-mix(in srgb,var(--farbe) 40%,#fff);
  border-left:4px solid var(--farbe);color:#1f2937;font-size:.75rem;font-weight:600;line-height:1.1;white-space:nowrap;text-decoration:none;
  user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:box-shadow .15s,transform .15s;}
.pt__balken:hover{box-shadow:0 4px 12px -6px rgba(13,62,104,.45);color:#111827;}
.pt__balken--projekt{background:var(--farbe);border-color:transparent;border-left-color:rgba(0,0,0,.2);color:#fff;}
.pt__balken--projekt:hover{color:#fff;}
.pt__balken.is-aenderbar{cursor:grab;}
.pt__balken.is-implizit{background:repeating-linear-gradient(-45deg,#fff 0 6px,#f3f5f9 6px 12px);border-style:dashed;border-left-style:solid;font-weight:500;color:#475467;}
.pt__balken.is-konflikt{outline:2px solid var(--err);outline-offset:-2px;}
.pt__balken.is-erledigt{opacity:.5;}
.pt__balken.is-erledigt .pt__txt{text-decoration:line-through;}
.pt__balken.is-vorher{border-top-left-radius:0;border-bottom-left-radius:0;border-left-style:dotted;}
.pt__balken.is-nachher{border-top-right-radius:0;border-bottom-right-radius:0;}
.pt__balken.is-gezogen{opacity:.35;}
.pt__sym{flex:none;font-size:.82rem;}
.pt__zeit{flex:none;font-weight:700;font-size:.68rem;opacity:.85;}
.pt__txt{overflow:hidden;text-overflow:ellipsis;min-width:0;}
.pt__txt small{font-weight:500;opacity:.7;}
.pt__warn{flex:none;color:var(--err);}
.pt__kante{position:absolute;top:0;bottom:0;width:9px;cursor:ew-resize;touch-action:none;z-index:1;}
.pt__kante--l{left:-2px;}
.pt__kante--r{right:0;}
.pt__kante::after{content:"";position:absolute;top:25%;bottom:25%;left:3px;width:3px;border-radius:2px;background:currentColor;opacity:0;transition:opacity .15s;}
.pt__balken:hover .pt__kante::after{opacity:.45;}
.pt__vorschau{grid-row:1/-1;z-index:3;margin:2px 1px;border:2px dashed var(--navy);border-radius:7px;background:rgba(13,62,104,.08);pointer-events:none;}
.pt__vorschau.is-ungueltig{border-color:var(--err);background:rgba(217,83,79,.08);}

.pt-ablage{border-bottom:1px solid var(--line);padding:.55rem .8rem;background:#fbfcfe;}
.pt-ablage summary{cursor:pointer;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.85rem;}
.pt-ablage__titel{font:700 .8rem/1.2 var(--head);color:var(--navy);}
.pt-ablage__zahl{display:inline-block;min-width:1.35rem;padding:.1rem .38rem;border-radius:var(--pill);background:var(--gold);color:#fff;font:700 .68rem/1.2 var(--head);text-align:center;}
.pt-ablage__tipp{color:var(--muted);font-size:.75rem;}
.pt-ablage__liste{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem;}
.pt-chip{display:inline-flex;align-items:center;gap:.3rem;max-width:300px;padding:.25rem .6rem .25rem .3rem;border-radius:var(--pill);border:1px solid var(--line);
  border-left:4px solid var(--farbe);background:#fff;color:var(--ink);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pt-chip:hover{border-color:var(--farbe);}

.pt-legende{display:flex;flex-wrap:wrap;gap:.35rem 1rem;padding:.6rem .8rem;border-top:1px solid var(--line);background:#fbfcfe;font-size:.74rem;color:var(--muted);}
.pt-legende i{display:inline-block;width:1.4rem;height:.7rem;border-radius:3px;vertical-align:middle;margin-right:.2rem;}
.pt-legende__strich{border:1px dashed #98a2b3;background:repeating-linear-gradient(-45deg,#fff 0 4px,#eef1f5 4px 8px);}
.pt-legende__konflikt{border:2px solid var(--err);}
.pt-legende__heute{background:rgba(246,157,21,.25);}
.pt-legende__tipp{flex-basis:100%;color:var(--ink);}

.pt-toast{position:fixed;left:50%;bottom:1.4rem;transform:translateX(-50%);z-index:1200;max-width:min(560px,calc(100vw - 32px));padding:.7rem 1rem;
  border-radius:12px;background:var(--navy);color:#fff;font-size:.86rem;box-shadow:var(--sh);}
.pt-toast.is-warn{background:#9a3412;}
.pt-toast.is-fehler{background:var(--err);}
.pt-geist{position:fixed;z-index:1100;pointer-events:none;padding:.3rem .6rem;border-radius:8px;background:var(--navy);color:#fff;font-size:.78rem;
  box-shadow:var(--sh);transform:translate(14px,14px);white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis;}
body.pt-zieht,body.pt-zieht *{cursor:grabbing !important;user-select:none !important;}
.pt-dialog .pt-form{margin:0;box-shadow:none;border:0;}
.pt-dialog .pt-form .form-grid{grid-template-columns:1fr 1fr;gap:0 .9rem;}
.pt-form__breit{grid-column:1/-1;}
.pt-form__fehler{color:var(--err);font-weight:600;margin:.4rem 0 0;}
.pt-form__weg{display:flex;justify-content:flex-end;margin-top:.6rem;}
.pt-dialog__zu{position:absolute;top:.8rem;right:.9rem;z-index:2;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
@media (max-width:720px){
  .pt{--label:132px;}
  .pt__scroll{max-height:72vh;}
  .pt__label{padding:.2rem .4rem;font-size:.76rem;}
  .pt__avatar{display:none;}
  .pt-zeitraum__links{margin-left:0;flex-basis:100%;}
  .pt-dialog .pt-form .form-grid{grid-template-columns:1fr;}
}

/* ---- Firmendaten: Planungsansicht (Kalender oder Plantafel) ---------- */
.pa-wahl{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:.8rem 0 1rem;}
.pa-karte{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;text-align:left;padding:1rem;border:2px solid var(--line);border-radius:var(--r);
  background:#fff;cursor:pointer;font:inherit;color:var(--ink);transition:border-color .15s,box-shadow .15s,transform .15s;}
.pa-karte:hover{border-color:var(--gold300);box-shadow:var(--sh-sm);transform:translateY(-1px);}
.pa-karte.is-aktiv{border-color:var(--gold);box-shadow:0 0 0 4px rgba(246,157,21,.14);}
.pa-karte__titel{font:700 1rem/1.2 var(--head);color:var(--navy);}
.pa-karte__text{font-size:.84rem;color:var(--muted);line-height:1.45;}
.pa-karte__status{margin-top:auto;padding:.2rem .6rem;border-radius:var(--pill);background:#f1f4f8;font:700 .72rem/1.3 var(--head);color:var(--navy);}
.pa-karte.is-aktiv .pa-karte__status{background:var(--gold);color:#fff;}
.pa-karte__bild{display:grid;width:100%;height:64px;border-radius:9px;background:#f6f8fb;padding:6px;gap:3px;margin-bottom:.3rem;}
.pa-karte__bild--kalender{grid-template-columns:repeat(7,1fr);}
.pa-karte__bild--kalender i{background:#fff;border-radius:3px;border:1px solid #e6ebf2;}
.pa-karte__bild--kalender i.an{background:#dbeafe;border-color:#93c5fd;}
.pa-karte__bild--tafel{grid-template-columns:repeat(8,1fr);grid-auto-rows:1fr;}
.pa-karte__bild--tafel i{grid-column:calc(var(--l) + 1)/span var(--b);background:var(--f);border-radius:4px;opacity:.85;}
.pa-zuschnitt{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .8rem;}
.pa-zuschnitt label{font:600 .85rem/1.2 var(--head);color:var(--navy);}
.pa-zuschnitt select{padding:.55rem .7rem;border:1.5px solid var(--line);border-radius:10px;font:inherit;max-width:100%;background:#fff;}
.pa-zuschnitt__vorschau{font-weight:600;}
@media (max-width:720px){.pa-wahl{grid-template-columns:1fr;}}

/* ---- Projekte in der Plantafel: Kreisdiagramm, Aufträge, Schublade ---- */
.pt-ring{display:block;flex:none;}
.pt-ring circle{fill:none;stroke-width:4.2;}
.pt-ring__grund{stroke:#e6eaf0;}
.pt-ring__wert{stroke:#16a34a;stroke-linecap:round;transition:stroke-dasharray .6s ease;}
.pt-ring--knapp .pt-ring__wert{stroke:#d97706;}
.pt-ring--ueber .pt-ring__wert{stroke:#dc2626;}
.pt-ring--leer .pt-ring__wert{stroke:#94a3b8;}
.pt-ring__ueber{stroke:#fca5a5;stroke-width:3;stroke-linecap:round;}
.pt-ring__zahl{font:800 8.4px/1 var(--head);fill:var(--ink);text-anchor:middle;}
.pt-ring__unter{font:600 3.6px/1 var(--head);fill:var(--muted);text-anchor:middle;letter-spacing:.02em;}
.pt__ring{display:inline-flex;align-items:center;gap:.15rem;flex:none;}
.pt__ringzahl{font:700 .6rem/1 var(--head);color:var(--muted);min-width:1.9rem;}
.pt--eng .pt__ringzahl{display:none;}
.pt__auf{flex:none;width:1.25rem;height:1.25rem;border:0;border-radius:5px;background:#eef2f7;color:var(--navy);font-size:.7rem;line-height:1;cursor:pointer;padding:0;}
.pt__auf:hover{background:#dde6f1;}
.pt__zeile--auftrag{background:#fcfdfe;}
.pt__label--unter{padding-left:1.6rem;}
.pt__label--unter .pt__pzeile{font-weight:500;}
.pt__balken--unter{background:#eef2f7;background:color-mix(in srgb,var(--farbe) 22%,#fff);color:#1f2937;border-color:color-mix(in srgb,var(--farbe) 45%,#fff);border-left-color:var(--farbe);}
.pt__balken--unter:hover{color:#111827;}
.pt__ohne{grid-row:1;align-self:center;padding-left:.6rem;color:var(--muted);font-size:.74rem;font-style:italic;z-index:1;pointer-events:none;}
.pt__mit{flex:none;margin-left:auto;padding:0 .3rem;border-radius:var(--pill);background:rgba(255,255,255,.75);color:var(--navy);font:700 .62rem/1.5 var(--head);}
.pt__plus{display:inline-flex;align-items:center;width:auto;height:auto;padding:.22rem .55rem;border-radius:7px;background:var(--navy);color:#fff;font:700 .68rem/1.2 var(--head);letter-spacing:0;text-transform:none;}
.pt__plus--leise{background:#e7eef7;color:var(--navy);}
.pt__plus--leise:hover{color:#fff;}
.pt__kopftag.is-fokus b{box-shadow:0 0 0 2px var(--navy);}
.pt__kopftag.is-heute.is-fokus b{box-shadow:none;}
.pt-legende__ring{border-radius:50% !important;width:.75rem !important;height:.75rem !important;border:3px solid #16a34a;border-right-color:#e6eaf0;}
.pt--kompakt{--label:190px;margin-bottom:0;box-shadow:none;}
.pt--kompakt .pt__scroll{max-height:none;min-height:0;}

/* Schublade: Projektübersicht rechts neben der Tafel (die Tafel bleibt sichtbar) */
.pt-schublade{position:fixed;top:0;right:0;bottom:0;z-index:950;width:min(820px,100vw);background:var(--paper);box-shadow:-18px 0 40px -18px rgba(6,36,63,.45);
  transform:translateX(100%);transition:transform .22s ease;display:flex;flex-direction:column;}
.pt-schublade.is-offen{transform:none;}
.pt-schublade__kopf{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem .9rem;background:var(--card);border-bottom:1px solid var(--line);}
.pt-schublade__ganz{font-weight:600;font-size:.85rem;}
.pt-schublade__zu{width:2.2rem;height:2.2rem;border:0;border-radius:var(--pill);background:#eef2f7;color:var(--ink);font-size:1.3rem;line-height:1;cursor:pointer;}
.pt-schublade__zu:hover{background:#dde6f1;}
.pt-schublade__inhalt{flex:1;overflow:auto;padding:1rem 1.1rem 2rem;overscroll-behavior:contain;}
.pt-schublade__laedt{color:var(--muted);padding:2rem 0;text-align:center;}
@media (prefers-reduced-motion:reduce){.pt-schublade{transition:none;}.pt-ring__wert{transition:none;}}

/* Projektübersicht */
.pj-zurueck{margin:0 0 .6rem;font-weight:600;}
.pj{--farbe:#2563eb;}
.pj-kopf{display:flex;gap:.8rem;align-items:flex-start;margin-bottom:1rem;}
.pj-kopf__punkt{width:14px;height:14px;border-radius:4px;background:var(--farbe);margin-top:.5rem;flex:none;}
.pj-kopf__art{margin:0;font:600 .78rem/1.3 var(--head);color:var(--muted);display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;}
.pj-kopf__titel{margin:.1rem 0 .15rem;font-size:1.55rem;line-height:1.2;}
.pj-kopf__unter{margin:0;color:var(--muted);font-size:.9rem;}
.pj-chip{display:inline-block;padding:.08rem .5rem;border-radius:var(--pill);font:700 .7rem/1.4 var(--head);}
.pj-chip--gut{background:#e9f9ee;color:#166534;}
.pj-karten{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.8rem;margin-bottom:1.1rem;}
.pj-karte{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:.9rem 1rem;box-shadow:var(--sh-sm);border-top:4px solid #cbd5e1;min-width:0;}
.pj-karte--laeuft{border-top-color:var(--farbe);}
.pj-karte--zukunft{border-top-color:#8b5cf6;}
.pj-karte--wer{border-top-color:#0ea5e9;}
.pj-karte--gut{border-top-color:#16a34a;}
.pj-karte--knapp{border-top-color:#d97706;}
.pj-karte--ueber{border-top-color:#dc2626;}
.pj-karte__frage{margin:0 0 .35rem;font:700 .72rem/1.2 var(--head);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);}
.pj-karte__gross{margin:0;font:800 1.2rem/1.25 var(--disp);color:var(--navy);}
.pj-karte__klein{margin:.2rem 0 0;color:var(--muted);font-size:.84rem;}
.pj-karte__satz{margin:.35rem 0 0;font-size:.84rem;color:var(--ink);}
.pj-karte--ueber .pj-karte__gross{color:#b91c1c;}
.pj-zeitbalken{height:7px;border-radius:var(--pill);background:#eef2f7;margin-top:.65rem;overflow:hidden;}
.pj-zeitbalken span{display:block;height:100%;border-radius:inherit;background:var(--farbe);}
.pj-avatare{display:flex;flex-wrap:wrap;gap:.3rem;margin:.55rem 0 0;}
.pj-avatar{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e0f2fe;color:#075985;font:700 .7rem/1 var(--head);border:2px solid #fff;box-shadow:0 0 0 1px #bae6fd;}
.pj-avatar.is-ich{background:var(--gold);color:#fff;box-shadow:0 0 0 1px var(--gold);}
.pj-stunden{display:flex;gap:.9rem;align-items:center;}
.pj-stunden .pt-ring circle{stroke-width:3.4;}
.pj-stunden__text{min-width:0;}
.pj-abschnitt{margin:0 0 1.2rem;}
.pj-abschnitt>h2{font-size:1.05rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.55rem;}
.pj-abschnitt>h2 small{font:400 .8rem/1.3 var(--body);}
.pj-auftraege{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.7rem;}
.pj-auftrag{display:flex;flex-direction:column;gap:.25rem;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--farbe);border-radius:var(--r);padding:.75rem .85rem;color:var(--ink);box-shadow:var(--sh-sm);}
a.pj-auftrag:hover{border-color:var(--gold300);border-left-color:var(--farbe);transform:translateY(-1px);transition:transform .15s;}
.pj-auftrag__kopf{display:flex;justify-content:space-between;align-items:center;gap:.5rem;}
.pj-auftrag__nr{font:700 .74rem/1.2 var(--head);color:var(--muted);}
.pj-auftrag__titel{font-weight:700;margin:0;}
.pj-auftrag__meta,.pj-auftrag__std{font-size:.78rem;color:var(--muted);}
.pj-auftrag__text{margin:.3rem 0;font-size:.9rem;color:var(--ink);}
.pj-auftrag__ort{margin:.2rem 0;font-size:.88rem;}
.pj-auftrag__aufgaben-titel{margin:.5rem 0 .2rem;font:700 .78rem/1.2 var(--head);color:var(--navy);}
.pj-minibalken{display:block;height:6px;border-radius:var(--pill);background:#eef2f7;overflow:hidden;margin-top:.25rem;}
.pj-minibalken span{display:block;height:100%;background:#16a34a;border-radius:inherit;}
.pj-auftrag--knapp .pj-minibalken span{background:#d97706;}
.pj-auftrag--ueber .pj-minibalken span{background:#dc2626;}
.pj-aufgaben{list-style:none;margin:0;padding:0;display:grid;gap:.2rem;font-size:.88rem;}
.pj-aufgaben li span{display:inline-block;width:1.2rem;color:var(--muted);}
.pj-aufgaben li.is-erledigt{color:var(--muted);text-decoration:line-through;}
.pj-aufgaben small{color:var(--muted);}
.pj-gemeinsam{list-style:none;margin:0;padding:0;display:grid;gap:.4rem;}
.pj-gemeinsam li{display:grid;grid-template-columns:6.5rem 4.5rem 1fr;align-items:center;gap:.5rem;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.45rem .7rem;}
.pj-gemeinsam__tag{font-weight:700;color:var(--navy);}
.pj-gemeinsam__zeit{color:var(--muted);font-size:.85rem;}
.pj-gemeinsam__wer{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap;font-size:.86rem;}
.pj-gemeinsam__wer .pj-avatar{width:26px;height:26px;font-size:.62rem;}
.pj-gemeinsam__wer span:last-child{margin-left:.3rem;}
.pj-details{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:.7rem .9rem;margin-bottom:.7rem;}
.pj-details summary{cursor:pointer;font:700 .9rem/1.3 var(--head);color:var(--navy);}
.pj-details[open] summary{margin-bottom:.7rem;}
.pj-reihe{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.5rem 0;}
.pj-reihe input,.pj-reihe select{padding:.5rem .65rem;border:1.5px solid var(--line);border-radius:9px;font:inherit;min-width:12rem;flex:1;}
.pj-auswahl{border:1px solid var(--line);border-radius:10px;padding:.6rem .8rem;max-height:240px;overflow:auto;display:grid;gap:.3rem;margin:0 0 .8rem;}
.pj-auswahl legend{font:700 .8rem/1.2 var(--head);color:var(--navy);padding:0 .3rem;}
.pj-loeschen{margin-top:.6rem;display:flex;justify-content:flex-end;}
@media (max-width:720px){
  .pj-gemeinsam li{grid-template-columns:5.5rem 1fr;}
  .pj-gemeinsam__wer{grid-column:1/-1;}
  .pt-schublade{width:100vw;}
  .pt--kompakt{--label:120px;}
}
.pt__zeile[hidden],.pt-schublade[hidden]{display:none;}
.pj-karten{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-template-areas:"stunden wann" "stunden wer";}
.pj-karte--wann{grid-area:wann;}
.pj-karte--wer{grid-area:wer;}
.pj-karte--stunden{grid-area:stunden;display:flex;flex-direction:column;}
.pj-karte--stunden .pj-stunden{flex:1;}
.pj-karte--stunden .pj-karte__gross{font-size:1.45rem;}
@media (max-width:720px){.pj-karten{grid-template-columns:1fr;grid-template-areas:"wann" "wer" "stunden";}}
.auftrag-projekt{margin:.3rem 0 0;font-weight:600;}
.pj-leer{background:var(--card);border:1px dashed #cbd5e1;border-radius:var(--r);padding:1rem;color:var(--muted);}.pj-leer p{margin:0 0 .6rem;}
/* Zeit neutral (blau) – Farbe als Warnsignal nur bei den Stunden */
.pj-karte--laeuft{border-top-color:#2563eb;}
.pj-zeitbalken span{background:#2563eb;}
.pj-karte--vorbei{border-top-color:#64748b;}
.benutzer-liste__knoepfe{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.benutzer-appschluessel{margin:0 0 1rem;padding:1rem;border:2px solid var(--navy);border-radius:12px;background:#f5f8fc}
.appstore-demo__reihe{display:flex;gap:1.5rem;flex-wrap:wrap;align-items:flex-start}
.appstore-demo__daten{flex:1 1 340px;margin:0}
.appstore-demo__knoepfe{display:flex;flex-direction:column;gap:.5rem;flex:0 0 auto}
.appstore-demo__knoepfe .btn{width:100%}
.appstore-demo__hinweis{margin-top:1rem}
.appstore-demo__hinweis summary{cursor:pointer;font-weight:600;color:var(--navy)}
.auftrag-doppelt{margin-top:.6rem;padding:.75rem .9rem;border:1px solid #fcd34d;background:#fffbeb;border-radius:10px}
.auftrag-doppelt[hidden]{display:none}
.auftrag-doppelt__titel{margin:0 0 .4rem;font-weight:700;color:#92400e}
.auftrag-doppelt__liste{list-style:none;margin:0 0 .4rem;padding:0}
.auftrag-doppelt__liste li{padding:.35rem 0;border-top:1px dashed #fde68a}
.auftrag-doppelt__liste li:first-child{border-top:0}
.auftrag-doppelt__liste a{font-weight:600}
.auftrag-doppelt__meta{display:block;font-size:.82rem;color:var(--muted,#64748b)}
.auftrag-doppelt .hint{margin:.25rem 0 0}
/* Aufträge: eine Liste, oben die Sicht */
.auftrag-sichten{display:flex;gap:.4rem;flex-wrap:wrap;padding:.3rem;background:#eef2f6;border-radius:12px;width:max-content;max-width:100%}
.auftrag-sicht{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .95rem;border-radius:9px;font-weight:700;color:var(--muted,#475569);text-decoration:none;min-height:42px}
.auftrag-sicht:hover{background:#fff;color:var(--navy)}
.auftrag-sicht.is-aktiv{background:var(--navy);color:#fff;box-shadow:0 2px 6px rgba(15,23,42,.18)}
.auftrag-sicht__zahl{min-width:1.6rem;padding:.05rem .45rem;border-radius:999px;background:rgba(15,23,42,.08);font-size:.82rem;text-align:center}
.auftrag-sicht.is-aktiv .auftrag-sicht__zahl{background:rgba(255,255,255,.22)}
.auftrag-sichten__info{margin:.55rem 0 .9rem;color:var(--muted,#64748b);font-size:.9rem}
.auftrag-ersteller{display:block;white-space:nowrap;font-size:.76rem;color:var(--muted,#64748b);font-weight:500;margin-top:.15rem}
.auftrag-stern{font-size:.85em}
.auftrag-leer{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding:.6rem 0}
.auftrag-leer p{margin:0 .5rem 0 0;color:var(--muted,#64748b);width:100%}
@media (max-width:600px){.auftrag-sichten{width:100%}.auftrag-sicht{flex:1 1 auto;justify-content:center;padding:.5rem .6rem}}
/* Handy: langer Zurück-Knopf in der Kopfleiste kürzt sich, statt die Seite zu verbreitern */
@media (max-width:600px){
  .topbar>.topbar__zurueck{min-width:0;flex:0 1 auto;max-width:34vw;overflow:hidden;text-overflow:ellipsis}
  .topbar>.topbar__right{flex:1 1 auto;min-width:0;justify-content:flex-end}
  .topbar__right>.topsuche{flex:0 1 auto;min-width:0}
  .topbar__right>.topsuche input,.topbar__right>.topsuche input:focus{width:100%;max-width:150px;min-width:64px}
}
.auftrag-doppelt__aus{margin-top:.5rem}
.auftrag-doppelt__ok{margin:0;color:#166534;font-weight:600}
/* Geschützte Formularzeilen (Sicherheitsfreigabe) behalten den Zeilenabstand */
.form-row.freigabe-feld{margin-bottom:1.2rem}

/* ---- Wetter am Einsatzort (Außenaufträge) ---------------------------------- */
.notice--error{border-left:4px solid var(--err);background:#fdf0f0;}
.notice--error strong{color:#8f1d1a;}
.wetter .notice p{margin:.15rem 0;}
.wetter .notice ul{margin:.35rem 0 .1rem;padding-left:1.1rem;}
.wetter .notice li{margin:.2rem 0;}
.wetter-warnung__zeit{font-weight:600;font-size:.88rem;}
.wetter-hinweis--hinweis{color:var(--ink);}
.wetter__ort{font-family:inherit;font-weight:600;font-size:.8rem;}
.wetter__unter{font-size:.8rem;margin:.6rem 0 .4rem;text-transform:uppercase;letter-spacing:.05em;}
.wetter-tage{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:.5rem;margin-bottom:.6rem;}
.wetter-tag{border:1px solid var(--line);border-radius:10px;padding:.55rem .6rem;background:#f9fbfd;display:flex;flex-direction:column;gap:.15rem;min-width:0;}
.wetter-tag--plan{background:#fff;border-color:#c9d6e5;}
.wetter-tag--warn{border-color:#f3b8a5;background:#fff5f1;}
.wetter-tag__text{font-size:.78rem;font-weight:700;color:var(--muted);text-transform:capitalize;}
.wetter-tag__wert{font-size:1.25rem;font-weight:800;line-height:1.2;}
.wetter-tag__sub{font-size:.74rem;color:var(--muted);line-height:1.3;}
.wetter-jetzt{margin:.4rem 0 .6rem;}
.wetter-umschalten{margin:.3rem 0 0;}
.wetter-umschalten .btn{margin-left:.4rem;vertical-align:baseline;}
.wetter__quelle{margin-top:.6rem;}
.wetter-banner{margin:.2rem 0 1rem;}
.wetter-banner p{margin:0;}
.wetter-marke{font-size:.7rem;margin-left:.3rem;cursor:help;white-space:nowrap;}
.wetter-marke--warnung{background:#fde8e2;color:#8f2d14;border:1px solid #f3b8a5;}
.wetter-marke--hinweis{background:#fff4dc;color:#7a4b00;border:1px solid #f4d9a0;}
.wetter-tag-im-freien{background:#e7f3ff;color:#1d4f80;}
.wetter-wahl{margin-top:.2rem;}

/* --- Datenübernahme (import-plancraft.php, kunden-import.php) ------------- */
.ip-schritte{list-style:none;counter-reset:ip;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem;margin:0 0 1.2rem;padding:0;}
.ip-schritte li{counter-increment:ip;background:#f6f8fb;border:1px solid var(--line);border-radius:var(--r);padding:.8rem 1rem .8rem 3rem;position:relative;font-size:.9rem;}
.ip-schritte li::before{content:counter(ip);position:absolute;left:.9rem;top:.75rem;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--navy);color:#fff;font-weight:700;display:grid;place-items:center;font-size:.8rem;}
.ip-schritte strong{display:block;color:var(--navy);}
.ip-schritte span{color:var(--muted);}
.ip-upload{display:flex;flex-direction:column;gap:.6rem;}
.ip-datei{display:flex;flex-direction:column;gap:.35rem;}
.ip-datei input[type=file]{padding:1rem;border:2px dashed var(--line);border-radius:var(--r);background:#fbfcfe;width:100%;}
.ip-details{margin-top:1rem;}
.ip-details summary{cursor:pointer;font-weight:600;color:var(--navy);}
.ip-details ul{margin:.6rem 0 0;padding-left:1.2rem;line-height:1.55;}
.ip-kopf{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:.8rem;}
.ip-kopf h2{margin:0;}
.ip-bereiche{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:.6rem;margin:.4rem 0 1rem;}
.ip-bereich{display:flex;flex-direction:column;gap:.1rem;padding:.7rem .85rem;border:1px solid var(--line);border-radius:var(--r);background:var(--card);color:var(--muted);font-size:.82rem;text-decoration:none;}
.ip-bereich strong{color:var(--navy);font-size:.95rem;margin-bottom:.15rem;}
.ip-bereich b{color:var(--ink);font-variant-numeric:tabular-nums;}
.ip-bereich:hover{border-color:var(--navy);}
.ip-bereich.is-aktiv{border-color:var(--navy);box-shadow:inset 0 -3px 0 var(--navy);}
.ip-bereich.has-konflikt{border-color:#f1b5b1;}
.ip-konflikt,.ip-konflikt b{color:var(--err);}
.ip-ok{color:var(--ok);}
.ip-kontrollen{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;}
.ip-kontrollen li{padding:.45rem .7rem;border-radius:8px;}
.ip-kontrollen .is-ok{background:#eef9f0;}
.ip-kontrollen .is-fehler{background:#fdeded;color:var(--err);}
.ip-start-uebernahme{border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem;}
.ip-fortschritt{list-style:none;margin:0 0 .8rem;padding:0;display:flex;flex-direction:column;gap:.3rem;}
.ip-fortschritt li{display:flex;align-items:center;gap:.5rem;color:var(--muted);}
.ip-punkt{width:.8rem;height:.8rem;border-radius:50%;border:2px solid var(--line);flex:none;}
.ip-fortschritt .is-aktiv{color:var(--ink);font-weight:600;}
.ip-fortschritt .is-aktiv .ip-punkt{border-color:var(--navy);border-top-color:transparent;animation:ip-dreh .8s linear infinite;}
.ip-fortschritt .is-fertig{color:var(--ink);}
.ip-fortschritt .is-fertig .ip-punkt{background:var(--ok);border-color:var(--ok);}
.ip-fortschritt .is-fehler{color:var(--err);}
.ip-fortschritt .is-fehler .ip-punkt{background:var(--err);border-color:var(--err);}
.ip-ergebnis{color:var(--muted);font-weight:400;font-size:.85rem;}
@keyframes ip-dreh{to{transform:rotate(360deg);}}
@media (prefers-reduced-motion:reduce){.ip-fortschritt .is-aktiv .ip-punkt{animation:none;border-top-color:var(--navy);}}
.ip-balken{height:10px;border-radius:var(--pill);background:#e6ecf3;overflow:hidden;margin:0 0 .6rem;}
.ip-balken__fuell{height:100%;background:var(--navy);transition:width .4s ease;}
.ip-meldung{min-height:1.2em;margin:.2rem 0 .4rem;}
.ip-meldung.is-fehler{color:var(--err);}
.ip-filter{display:flex;gap:.35rem;flex-wrap:wrap;margin:0 0 .8rem;}
.ip-filter a{padding:.3rem .7rem;border:1px solid var(--line);border-radius:var(--pill);font-size:.85rem;color:var(--muted);text-decoration:none;}
.ip-filter a span{font-variant-numeric:tabular-nums;color:var(--ink);margin-left:.15rem;}
.ip-filter a[aria-current]{background:var(--navy);border-color:var(--navy);color:#fff;}
.ip-filter a[aria-current] span{color:#fff;}
.ip-tabelle .ip-hinweis{font-size:.85rem;color:var(--muted);max-width:46rem;}
.ip-tabelle .ip-konflikt td{background:#fff7f7;}
tr.is-aktuell td{background:#f3f7fc;}
@media (max-width:640px){
  .ip-tabelle thead{display:none;}
  .ip-tabelle tr{display:block;padding:.55rem 0;border-bottom:1px solid var(--line);}
  .ip-tabelle td{display:block;border:0;padding:.12rem .8rem;}
  .ip-tabelle td:empty{display:none;}
}
.import-badge{display:inline-block;margin-left:.35rem;background:#fff4e2;color:var(--accent-dk);border:1px solid #f4d9a0;border-radius:var(--pill);padding:.05rem .5rem;font-size:.72rem;font-weight:600;white-space:nowrap;vertical-align:middle;}
.import-herkunft{display:inline-block;background:#eef2f7;color:var(--muted);border-radius:var(--pill);padding:.05rem .5rem;font-size:.72rem;white-space:nowrap;}
.bl-original{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .7rem;margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--line);}
.bl-original label{font-weight:600;margin:0;}
.bl-original input[type=file]{max-width:100%;}
.bl-original .hint{flex-basis:100%;}
.bl-volltext{margin-top:.8rem;}
.bl-volltext summary{cursor:pointer;color:var(--navy);font-weight:600;}
.bl-volltext pre{white-space:pre-wrap;font:inherit;font-size:.85rem;background:#f6f8fb;border:1px solid var(--line);border-radius:8px;padding:.7rem .9rem;max-height:28rem;overflow:auto;margin:.5rem 0 0;}
.kz-mehr>summary{cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .8rem;}
.kz-mehr>summary::-webkit-details-marker{display:none;}
.kz-mehr>summary h2{margin:0;display:inline;}
.kz-mehr>summary h2::before{content:'▸ ';color:var(--muted);}
.kz-mehr[open]>summary h2::before{content:'▾ ';}
.kz-mehr[open]>summary{margin-bottom:.8rem;}
.kz-kanal{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.8rem;}
.kz-kanal input[name=kanal_wert]{flex:1;min-width:200px;}
.phase-badge{display:inline-block;margin-left:.3rem;padding:.08rem .55rem;border-radius:var(--pill);font-size:.75rem;font-weight:600;white-space:nowrap;
  color:var(--phase,#64748b);background:color-mix(in srgb,var(--phase,#64748b) 12%,#fff);border:1px solid color-mix(in srgb,var(--phase,#64748b) 35%,#fff);}
.phasen-liste .phase-farbe{width:2.4rem;height:2rem;padding:0;border:1px solid var(--line);border-radius:6px;background:none;}
.auftrag-phase-wahl{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:-.4rem 0 1rem;}
.auftrag-phase-wahl label{margin:0;font-weight:600;color:var(--muted);font-size:.85rem;}
.kat-ordner{list-style:none;margin:0 0 .6rem;padding:0;font-size:.9rem;line-height:1.7;}
.bl-suche select{font:inherit;padding:.45rem .6rem;border:1px solid var(--line);border-radius:10px;}
.bl-vorlagen{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;margin:0 0 .8rem;}
.bl-vorlagen label{display:flex;align-items:center;gap:.5rem;margin:0;font-size:.88rem;color:var(--muted);}
.bl-vorlagen select{font:inherit;padding:.35rem .5rem;border:1px solid var(--line);border-radius:8px;max-width:22rem;}
