/* css/manager.css — AZB-Verwaltung. Übernommen aus der Fahrschul-Software (css/manager.css), Farbe Bordeaux. */

:root {
  color-scheme: light dark;
  --akz:#7b1d2e; --akz-d:#5e1522;
  --gut:#0a7d33; --schlecht:#b3261e; --gut-bg:#e5f4ea; --warn-bg:#fbe9e7;
  --bg:#eceff3; --fg:#1b2330; --karte:#fff; --linie:#cfd5df; --linie-stark:#b9c1cd; --grau:#697585;
  --th:#eef1f5; --side:#ffffff; --top:#7b1d2e; --top-fg:#ffffff;
  --topbar-h:52px; --content-top:var(--topbar-h); --side-w:220px;
  --schatten:0 1px 2px rgba(20,30,55,.05), 0 2px 10px rgba(20,30,55,.045);
  --fs:15px;               /* Grundgröße - über die Dichte-Umschaltung steuerbar */
}
:root[data-dichte="kompakt"] { --fs:13px; }
:root[data-dichte="gross"]   { --fs:16.5px; }

@media (prefers-color-scheme: dark) {
  :root {
    --bg:#0f131a; --fg:#e7ebf1; --karte:#161b23; --linie:#2b333f; --linie-stark:#3a444f; --grau:#8b96a5;
    --akz:#e8909e; --th:#1e2530; --side:#141a22; --top:#3a0f18; --top-fg:#fbecef;
    --gut-bg:#16281c; --warn-bg:#2c1b1a;
    --schatten:0 1px 2px rgba(0,0,0,.3), 0 2px 12px rgba(0,0,0,.25);
  }
}

* { box-sizing:border-box; }
[hidden] { display:none !important; }   /* schlägt auch .raster{display:grid} u. Ä. */
html { font-size:var(--fs); }
html, body { margin:0; }
body {
  background:var(--bg); color:var(--fg);
  font:1rem/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
a { color:var(--akz); text-decoration:none; }
a:hover { text-decoration:underline; }
input[type=checkbox], input[type=radio], input[type=date], input[type=range], select, progress { accent-color:var(--akz); }
/* Basis-Optik fuer Eingabefelder AUSSERHALB von .feld (z.B. einzelne Inline-Eingaben in
   Karten wie der Vergütungs-Korrektur) - .feld input weiter unten ist spezifischer und
   gewinnt dort weiterhin (u.a. width:100%, das hier absichtlich fehlt). */
input[type=text], input[type=number], input[type=email], input[type=password], input[type=search], textarea,
input[type=date], input[type=month], input[type=time] {
  padding:.42rem .55rem; border:1px solid var(--linie-stark); border-radius:7px;
  background-color:var(--karte); color:var(--fg); font:inherit;
}
input[type=text]:focus, input[type=number]:focus, input[type=email]:focus,
input[type=password]:focus, input[type=search]:focus, textarea:focus,
input[type=date]:focus, input[type=month]:focus, input[type=time]:focus { border-color:var(--akz); outline:none; }
h1 { font-size:1.35rem; margin:.2rem 0 .9rem; }
h2 { font-size:1rem; margin:1.5rem 0 .5rem; color:var(--akz);
     border-bottom:1px solid var(--linie); padding-bottom:.25rem; }

/* ---------- Topbar ---------- */
.mtop {
  position:fixed; inset:0 0 auto 0; height:var(--topbar-h); z-index:40;
  display:flex; align-items:center; gap:.8rem; padding:0 1rem;
  background:var(--top); color:var(--top-fg);
}
.mtop a { color:var(--top-fg); }
.mmarke { font-weight:700; letter-spacing:.02em; white-space:nowrap; }
.mspacer { flex:1; }
.mwho { opacity:.9; font-size:.9rem; white-space:nowrap; }
.mabm { font-size:.9rem; border:1px solid rgba(255,255,255,.5); border-radius:7px; padding:.25rem .6rem; }
.mabm:hover { text-decoration:none; background:rgba(255,255,255,.12); }
.mfil { margin:0; }
.mpasswort-band {
  position:fixed; top:var(--topbar-h); left:0; right:0; height:28px; line-height:28px;
  z-index:39; background:var(--schlecht); color:#fff; text-align:center; font-size:.85rem;
}
.mpasswort-band a { color:#fff; text-decoration:underline; font-weight:700; margin-left:.5rem; }
.mpasswort-band a.mpasswort-schliessen { text-decoration:none; font-weight:400; font-size:1.1rem; opacity:.85; margin-left:.8rem; }
body:has(.mpasswort-band) { --content-top:calc(var(--topbar-h) + 28px); }
.mburger { display:none; font-size:1.35rem; cursor:pointer; line-height:1; padding:.1rem .3rem; }

/* ---------- Seitennavigation ---------- */
.mside {
  position:fixed; top:var(--content-top); bottom:0; left:0; width:var(--side-w); z-index:30;
  display:flex; flex-direction:column; padding:.6rem 0;
  background:var(--side); border-right:1px solid var(--linie); overflow-y:auto;
}
.mside a, .mside .folgt {
  display:block; padding:.6rem 1.1rem; font-size:.95rem; color:var(--fg);
  border-left:3px solid transparent;
}
.mside a:hover { background:color-mix(in srgb, var(--akz) 10%, transparent); text-decoration:none; }
.mside a.hier { border-left-color:var(--akz); color:var(--akz); font-weight:600;
                background:color-mix(in srgb, var(--akz) 8%, transparent); }
.mside .folgt { color:var(--grau); opacity:.55; cursor:default; }

/* Abgesetzter Block unten: Schnellwechsel in andere Bereiche (invers) */
.mside-extra { margin-top:auto; padding:.5rem 0 .3rem; border-top:1px solid var(--linie); }
.mside-extra a {
  display:block; margin:.35rem .7rem; padding:.55rem .8rem; border-radius:8px;
  text-align:center; font-size:.9rem; font-weight:600;
  background:var(--akz); color:#fff; border-left:0;
}
.mside-extra a:hover { text-decoration:none; filter:brightness(1.08); background:var(--akz); }
.mside-extra a.mabm-nav { background:var(--schlecht); }
.mside-extra .folgt {
  display:block; margin:.35rem .7rem; padding:.55rem .8rem; border-radius:8px;
  text-align:center; font-size:.9rem; color:var(--grau); opacity:.5;
  border:1px dashed var(--linie);
}

.mbackdrop { display:none; }

/* ---------- Inhalt ---------- */
.mmain { margin:var(--content-top) 0 0 var(--side-w); padding:1.3rem 1.5rem 4rem; }
.mmain.schmal { max-width:820px; }

/* ---------- Karten / Bausteine ---------- */
.karte { background:var(--karte); border:1px solid var(--linie); border-radius:10px;
         padding:.9rem 1.05rem; margin:0 0 1rem; box-shadow:var(--schatten); }
.karte > div:first-child > strong:first-child,
.karte > strong:first-child { display:inline-block; letter-spacing:.01em; }
.hint { color:var(--grau); font-size:.88rem; }
.folgt-box { background:var(--karte); border:1px dashed var(--linie); border-radius:12px;
             padding:1.4rem; color:var(--grau); text-align:center; }
.flash { padding:.6rem .9rem; border-radius:8px; margin:0 0 1rem; }
.flash.ok  { background:var(--gut-bg);  color:var(--gut); }
.flash.bad { background:var(--warn-bg); color:var(--schlecht); }

/* ---------- Buttons ---------- */
.btn { display:inline-block; padding:.55rem 1.05rem; border:0; border-radius:9px;
       background:var(--akz); color:#fff; font-size:.95rem; cursor:pointer; text-decoration:none; }
.btn:hover { text-decoration:none; filter:brightness(1.06); }
.btn.sek { background:transparent; color:var(--akz); border:1px solid var(--linie); }
.btn.warn { background:var(--schlecht); color:#fff; }
.btn:disabled { opacity:.5; cursor:not-allowed; }
.btn:disabled:hover { filter:none; }
/* Bewusst unauffaellig fuer seltene, nicht umkehrbare Aktionen (z.B. Fahrschueler
   endgueltig loeschen) - kein Farbblock, damit sie nicht aus Versehen getroffen werden. */
.btn.mini-gefahr { display:inline; background:none; border:0; padding:0; margin:0;
       color:var(--grau); font-size:.85rem; text-decoration:underline; cursor:pointer; }
.btn.mini-gefahr:hover { color:var(--schlecht); filter:none; }
.btn-reihe { display:flex; flex-wrap:wrap; gap:.6rem; justify-content:space-between; align-items:center; margin-top:1.2rem; }

/* ---------- Tabellen ---------- */
.tabelle-huelle { overflow-x:auto; border:1px solid var(--linie); border-radius:8px; }
table.liste { width:100%; border-collapse:collapse; font-size:.9rem; }
table.liste th, table.liste td { border-bottom:1px solid var(--linie); padding:.42rem .6rem; text-align:left; vertical-align:top; }
table.liste tr:last-child td { border-bottom:0; }
table.liste th { background:var(--th); font-weight:600; white-space:nowrap;
                 border-bottom:2px solid var(--linie-stark); }
table.liste th a { color:inherit; }
table.liste th a:hover { color:var(--akz); text-decoration:none; }
table.liste tr:nth-child(even) td { background:color-mix(in srgb, var(--fg) 3%, transparent); }
table.liste tr:hover td { background:color-mix(in srgb, var(--akz) 9%, transparent); }
table.liste td.num { text-align:right; font-variant-numeric:tabular-nums; }
table.liste th.mitte, table.liste td.mitte { text-align:center; font-variant-numeric:tabular-nums; white-space:nowrap; }
/* Clientseitig sortierbare Tabellenkoepfe (z. B. Leistungen-Tab in der Fahrschueler-Akte) -
   siehe JS in Manager/fahrschueler.php. */
table.sortierbar th[data-sort] { user-select:none; }
table.sortierbar th[data-sort]:hover { color:var(--akz); }
table.sortierbar th[data-sort]::after { content:''; margin-left:.3rem; opacity:.35; }
table.sortierbar th.sort-akt.sort-asc::after { content:'▲'; opacity:1; }
table.sortierbar th.sort-akt.sort-desc::after { content:'▼'; opacity:1; }
/* Eingaben in Tabellen (z. B. Gruppenerfassung, ASF-Teilnehmer) wie .feld-Felder aussehen lassen,
   statt nackter Browser-Standardoptik. */
table.liste input, table.liste select {
  padding:.3rem .45rem; border:1px solid var(--linie-stark); border-radius:6px;
  background-color:var(--karte); color:var(--fg); font:inherit;
}
table.liste select { padding-right:1.7rem; }
table.liste input:focus, table.liste select:focus { border-color:var(--akz); outline:none; }
/* Auswahlfelder ohne .feld-/.liste-Kontext (z. B. direkt neben einem Knopf) trotzdem im App-Stil,
   statt nackter Browser-Optik. Speziellere Regeln (.feld select, table.liste select, .mfil select)
   gewinnen weiterhin. */
select {
  padding:.42rem 1.9rem .42rem .6rem; border:1px solid var(--linie-stark); border-radius:7px;
  background-color:var(--karte); color:var(--fg); font:inherit; line-height:1.3; cursor:pointer;
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='none' stroke='%23888' stroke-width='1.6' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .65rem center;
}
select:focus { border-color:var(--akz); outline:none; }
.betrag-plus  { color:var(--gut); }
.betrag-minus { color:var(--schlecht); }

/* ---------- A–Z / Filterzeile ---------- */
.werkzeugzeile { display:flex; flex-wrap:wrap; gap:.6rem 1rem; align-items:center; margin:0 0 1rem; }
.azleiste { display:flex; flex-wrap:wrap; gap:.15rem; }
.azleiste a { padding:.25rem .5rem; border-radius:6px; font-size:.9rem; color:var(--grau); }
.azleiste a.hier { background:var(--akz); color:#fff; }
.suche input { padding:.5rem .7rem; border:1px solid var(--linie); border-radius:8px;
               background:var(--karte); color:var(--fg); min-width:220px; }

/* ---------- Tabs ---------- */
.tabs { display:flex; flex-wrap:wrap; gap:.2rem; border-bottom:1px solid var(--linie); margin:0 0 1.3rem; }
.tabs a { padding:.6rem .9rem; font-size:.95rem; color:var(--grau); border-bottom:2px solid transparent; }
.tabs a.hier { color:var(--akz); border-bottom-color:var(--akz); font-weight:600; }
.tabs a:hover { text-decoration:none; color:var(--fg); }
/* Formular-Tabs ohne JS: Radiobuttons in Labels */
.tabs label { padding:.6rem .9rem; font-size:.95rem; color:var(--grau); cursor:pointer;
              border-bottom:2px solid transparent; display:inline-flex; align-items:center; }
.tabs label input { position:absolute; opacity:0; width:0; height:0; }
.tabs label:has(input:checked) { color:var(--akz); border-bottom-color:var(--akz); font-weight:600; }
.tabs label.folgt { color:var(--grau); opacity:.5; cursor:default; }
/* Link-Tabs (echte Seiten, kein Formular) mit einem noch nicht erreichbaren Reiter (z. B. ASF-Kurs
   noch nicht ausgewaehlt): wie .tabs a, aber nicht klickbar. */
/* ---------- Formulare ---------- */
.feldgruppe { border:1px solid var(--linie); border-radius:10px; padding:.8rem 1rem 1rem; margin:0 0 1rem; background:var(--karte); box-shadow:var(--schatten); }
.feldgruppe > legend, .feldgruppe > .gtitel { font-weight:700; padding:0 .3rem; color:var(--akz); }
details.klappform > summary { cursor:pointer; list-style:none; user-select:none; }
details.klappform > summary::-webkit-details-marker { display:none; }
details.klappform > summary::before { content:'\25B8'; display:inline-block; margin-right:.45rem; color:var(--grau); transition:transform .15s; }
details.klappform[open] > summary::before { transform:rotate(90deg); }
.raster { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:.75rem 1.1rem; margin-top:.7rem; }
.feld { display:flex; flex-direction:column; gap:.15rem; }
.feld.breit { grid-column:1 / -1; }
.feld label { font-size:.78rem; color:var(--grau); }
.feld label strong { color:var(--fg); }
.feld input, .feld select, .feld textarea {
  padding:.42rem .55rem; border:1px solid var(--linie-stark); border-radius:7px;
  background-color:var(--karte); color:var(--fg); font:inherit; width:100%;
}
.feld select { padding-right:1.9rem; }
.feld input:focus, .feld select:focus, .feld textarea:focus { border-color:var(--akz); outline:none; }
.feld textarea { min-height:5rem; resize:vertical; line-height:1.5; }
.feld .pruef { color:var(--schlecht); font-size:.8rem; }
/* Pflichtfeld mit Fehler: Eingabe selbst auch rot umranden, nicht nur den Text darunter. */
.feld:has(.pruef) input, .feld:has(.pruef) select, .feld:has(.pruef) textarea { border-color:var(--schlecht); }
/* Preis-/Zahlenraster mit unterschiedlich langen Labels: Eingaben unten buendig. */
.raster .feld { justify-content:flex-end; }   /* Eingabefelder einer Reihe unten buendig, auch wenn eine Beschriftung umbricht */

/* Button, der wie ein Link aussieht (z. B. "löschen" in Tabellen). */
.linkbtn { background:none; border:0; padding:0; margin:0; font:inherit; color:var(--akz);
  text-decoration:underline; cursor:pointer; }
.linkbtn:hover { color:var(--schlecht); }
.feld .netto { font-size:.8rem; color:var(--akz); min-height:1em; }
.raster.zwei { grid-template-columns:1fr 1fr; }
@media (max-width:640px) { .raster.zwei { grid-template-columns:1fr; } }
.raster.drei { grid-template-columns:repeat(3,1fr); }
@media (max-width:760px) { .raster.drei { grid-template-columns:1fr 1fr; } }
@media (max-width:480px) { .raster.drei { grid-template-columns:1fr; } }

/* Feldgruppen in zwei Spalten nebeneinander (Preisgruppen); Felder darin
   gestapelt (lange Labels passen). Am Handy eine Spalte. */
.spalten2 { column-count:2; column-gap:1.4rem; }
.spalten2 > .feldgruppe { break-inside:avoid; margin-top:0; }
.spalten2 .raster { grid-template-columns:1fr; }
@media (max-width:820px) { .spalten2 { column-count:1; } }
.dash-grid { display:grid; grid-template-columns:repeat(6, minmax(0,1fr)); gap:.9rem; margin-bottom:1.2rem; align-items:stretch; }
.dash-w1 { grid-column:span 1; }
.dash-w2 { grid-column:span 2; }
.dash-w3 { grid-column:span 3; }
.dash-w6 { grid-column:span 6; }
/* Module in derselben Zeile gleich hoch: die dash-wN-Zelle wird per Grid schon auf die
   Zeilenhoehe gestreckt (align-items:stretch) - ihr direkter Inhalt (meist .karte) muss
   dann selbst noch per Flex auf die volle Zellenhoehe mitgezogen werden. */
.dash-w1, .dash-w2, .dash-w3, .dash-w6 { display:flex; }
.dash-w1 > *, .dash-w2 > *, .dash-w3 > *, .dash-w6 > * { flex:1; margin:0; min-width:0; }
.feld-paar { display:grid; grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr)); gap:.4rem .6rem; }
input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible, button:focus-visible {
  outline:2px solid var(--akz); outline-offset:1px;
}
.checkzeile { display:flex; align-items:center; gap:.6rem; font-size:1.02rem; font-weight:600; }
.checkzeile input[type="checkbox"], .checkzeile input[type="radio"] { width:auto; min-width:1.15em; min-height:1.15em; transform:scale(1.25); transform-origin:left center; }
.checkgruppe { display:flex; flex-wrap:wrap; gap:.5rem 1.3rem; padding-top:.3rem; }
/* ---------- Mobil ---------- */
@media (max-width:900px) {
  .mburger { display:block; }
  .mwho { display:none; }
  .mside {
    transform:translateX(-100%); transition:transform .18s ease;
    box-shadow:0 0 40px rgba(0,0,0,.25);
  }
  .mnav-cb:checked ~ .mside { transform:translateX(0); }
  .mnav-cb:checked ~ .mbackdrop {
    display:block; position:fixed; inset:var(--content-top) 0 0 0; z-index:20;
    background:rgba(0,0,0,.4);
  }
  .mmain { margin-left:0; padding:1.1rem 1rem 4rem; }
  .raster { grid-template-columns:1fr; }
  .dash-w1 { grid-column:span 3; }   /* 2 pro Zeile (6/3=2) */
  .dash-w2, .dash-w3, .dash-w6 { grid-column:span 6; }  /* volle Breite */
}

/* ================================================================
   AZB-Ergänzungen
   ================================================================ */
.mmarke { color:var(--top-fg); }
.mmarke:hover { text-decoration:none; }
.mside-titel { margin:.9rem 1.1rem .2rem; font-size:.72rem; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; color:var(--grau); }

/* Kleine Status-Pillen */
.pill { display:inline-block; font-size:.76rem; line-height:1.4; padding:.05rem .5rem; border-radius:999px;
  border:1px solid var(--linie); color:var(--grau); white-space:nowrap; }
.pill.aktiv, .pill.unterschrieben, .pill.da { border-color:var(--gut); color:var(--gut); }
.pill.schnupper, .pill.versendet, .pill.entschuldigt, .pill.interessent { border-color:#b7791f; color:#b7791f; }
.pill.gekuendigt, .pill.storniert, .pill.fehlt { border-color:var(--schlecht); color:var(--schlecht); }
.pill.akz { border-color:var(--akz); color:var(--akz); }

/* Anmeldung */
body.login { min-height:100vh; display:grid; place-items:center; padding:1rem; }
.login-card { width:100%; max-width:380px; background:var(--karte); border:1px solid var(--linie); border-radius:14px;
  padding:1.6rem 1.5rem; box-shadow:var(--schatten); display:flex; flex-direction:column; gap:.35rem; }
.login-card h1 { color:var(--akz); margin:0 0 .3rem; font-size:1.25rem; }
.login-card input { width:100%; margin-bottom:.5rem; }
.login-card button { margin-top:.4rem; }
.login-card .fehler { color:var(--schlecht); margin:.2rem 0; }

/* Kunststück-Stand (Hab ich / Kann ich / Kann ich sehr gut) als Knopfleiste */
.ks-wahl { display:inline-flex; border:1px solid var(--linie-stark); border-radius:8px; overflow:hidden; }
.ks-wahl label { padding:.25rem .55rem; font-size:.82rem; cursor:pointer; color:var(--grau); white-space:nowrap; }
.ks-wahl label + label { border-left:1px solid var(--linie); }
.ks-wahl input { position:absolute; opacity:0; width:0; height:0; }
.ks-wahl label:has(input:checked) { background:var(--akz); color:#fff; }
.ks-wahl label.s0:has(input:checked) { background:var(--th); color:var(--fg); }

/* Anwesenheit: drei Knöpfe je Kind */
.anw-wahl { display:inline-flex; gap:.3rem; }
.anw-wahl label { border:1px solid var(--linie-stark); border-radius:8px; padding:.3rem .7rem; cursor:pointer; font-size:.9rem; }
.anw-wahl input { position:absolute; opacity:0; width:0; height:0; }
.anw-wahl label.da:has(input:checked)           { background:var(--gut); border-color:var(--gut); color:#fff; }
.anw-wahl label.entschuldigt:has(input:checked) { background:#b7791f; border-color:#b7791f; color:#fff; }
.anw-wahl label.fehlt:has(input:checked)        { background:var(--schlecht); border-color:var(--schlecht); color:#fff; }

/* Vertrag (Ansicht, Druck, Unterschrift) */
.vertrag-blatt { max-width:800px; background:#fff; color:#1b1b1b; border:1px solid var(--linie); border-radius:6px;
  padding:2rem 2.4rem; margin:0 0 1.2rem; line-height:1.5; font-size:.95rem; }
.vertrag-blatt .vkopf { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem;
  border-bottom:2px solid #7b1d2e; padding-bottom:.6rem; margin-bottom:1.2rem; }
.vertrag-blatt .vkopf img { max-height:56px; }
.vertrag-blatt .vschule { color:#7b1d2e; font-weight:700; font-size:1.05rem; }
.vertrag-blatt h1 { color:#7b1d2e; font-size:1.5rem; margin:.2rem 0 1rem; }
.vertrag-blatt p { margin:.55rem 0; }
.vertrag-blatt table.vdaten { width:100%; border-collapse:collapse; margin:.4rem 0 1rem; font-size:.92rem; }
.vertrag-blatt table.vdaten th { text-align:left; font-weight:600; color:#555; width:30%; padding:.2rem .5rem .2rem 0; vertical-align:top; }
.vertrag-blatt table.vdaten td { padding:.2rem 0; border-bottom:1px dotted #bbb; }
.vertrag-blatt .vfoto { border:1px solid #ccc; border-radius:6px; padding:.6rem .8rem; margin:1rem 0; font-size:.9rem; }
.vertrag-blatt .vunter { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:1.8rem; }
.vertrag-blatt .vunter img { max-width:100%; height:70px; object-fit:contain; display:block; }
.vertrag-blatt .vunter .linie { border-top:1px solid #333; padding-top:.2rem; font-size:.8rem; color:#555; }
.vertrag-blatt .vunter .leer { height:70px; }
.vertrag-blatt .vfuss { margin-top:1.6rem; padding-top:.5rem; border-top:1px solid #ccc; font-size:.75rem; color:#666; text-align:center; }
.vertrag-blatt .vpruef { font-size:.7rem; color:#888; margin-top:.4rem; word-break:break-all; }
@media (max-width:640px) {
  .vertrag-blatt { padding:1.1rem 1rem; }
  .vertrag-blatt .vunter { grid-template-columns:1fr; }
}

/* Unterschriftsfeld */
.sig-box { border:2px dashed var(--linie-stark); border-radius:10px; background:#fff; position:relative; touch-action:none; max-width:640px; }
.sig-box canvas { display:block; width:100%; height:200px; cursor:crosshair; }
.sig-box .sig-hinweis { position:absolute; left:.8rem; bottom:.5rem; font-size:.8rem; color:#999; pointer-events:none; }
.sig-leiste { display:flex; gap:.6rem; margin:.4rem 0 1rem; }

@media print {
  .mside, .mtop, .mbackdrop, .mpasswort-band, .tabs, .btn-reihe, .nicht-drucken, .flash { display:none !important; }
  body { background:#fff; }
  .mmain { margin:0; padding:0; }
  .vertrag-blatt { border:0; padding:0; max-width:none; }
}
