.pwbox { position: relative; display: block; }
@media (max-width: 59.99rem) {
  .dock[data-n="2"] { grid-template-columns: repeat(2, 1fr); }
  .dock[data-n="3"] { grid-template-columns: repeat(3, 1fr); }
  .dock[data-n="4"] { grid-template-columns: repeat(4, 1fr); }
  .dock[data-n="5"] { grid-template-columns: 1fr 1fr 1.35fr 1fr 1fr; }
}
.fachliste { list-style: none; margin: .6rem 0 0; padding: 0; }
.fachliste li > button, .fachliste li > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .15rem .8rem; align-items: baseline; width: 100%; padding: .7rem .35rem; border: 0; border-bottom: 1px solid var(--line); background: none; color: inherit; font: inherit; text-align: left; }
.fachliste li > button, .fachliste li > a.zeile { cursor: pointer; }
.fachliste li > a.zeile { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .15rem .8rem; align-items: baseline; padding: .7rem .35rem; border-bottom: 1px solid var(--line); color: inherit; text-decoration: none; }
.fachliste li > a.zeile:hover, .fachliste li > a.zeile:focus-visible { background: var(--firn); }
.fachliste li > button:hover, .fachliste li > button:focus-visible { background: var(--firn); }
.fachliste b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; letter-spacing: .02em; }
.fachliste .menge { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.fachliste .menge.neg { color: var(--signal); font-weight: 700; }
.fachliste .menge.warn { color: var(--amber); font-weight: 700; }
.fachliste .sub { grid-column: 1 / -1; color: var(--muted); font-size: .85rem; }
.fachliste.info b { white-space: normal; overflow-wrap: anywhere; grid-column: 1 / -1; }
.fachliste.info b a { color: inherit; }
.panel .fachliste + h3 { margin-top: 1.4rem; }
.belegleiste { margin-bottom: 1rem; }
.beleg { max-width: 52rem; margin: 0 auto; padding: 2.5rem 2.5rem 2rem; background: #fff; color: #000; border: 1px solid var(--line); font-size: .95rem; line-height: 1.45; }
.beleg h2 { margin: 2rem 0 1rem; font-size: 1.3rem; }
.beleg-kopf { text-align: right; font-size: .85rem; }
.beleg-adressen { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem; margin-top: 2rem; }
.beleg-anschrift small { display: block; font-size: .7rem; text-decoration: underline; color: #444; }
.beleg-anschrift p { margin: .4rem 0 0; }
.beleg-daten { display: grid; grid-template-columns: auto auto; gap: .1rem .9rem; margin: 0; font-size: .85rem; }
.beleg-daten dt { color: #444; }
.beleg-daten dd { margin: 0; font-weight: 700; }
.beleg-tabelle { width: 100%; border-collapse: collapse; }
.beleg-scroll { overflow-x: auto; }
@media print { .beleg-scroll { overflow: visible; } }
.beleg-tabelle th, .beleg-tabelle td { padding: .45rem .4rem; border-bottom: 1px solid #ccc; text-align: left; vertical-align: top; }
.beleg-tabelle th { font-size: .8rem; border-bottom: 2px solid #000; }
.beleg-tabelle th:last-child, .beleg-tabelle td:last-child { text-align: right; font-variant-numeric: tabular-nums; }
.beleg-tabelle tfoot td { font-weight: 700; border-bottom: 0; border-top: 2px solid #000; }
.beleg-tabelle td:first-child { white-space: nowrap; }
.beleg-marke { display: block; font-size: .78rem; color: #555; }
.beleg-rechnung { margin-top: 1.5rem; font-size: .85rem; }
.beleg-empfang { display: grid; grid-template-columns: auto minmax(8rem, 1fr); gap: .2rem 1rem; align-items: end; margin-top: 3rem; font-size: .85rem; }
.beleg-empfang .linie { border-bottom: 1px solid #000; height: 1.6rem; }
.beleg-empfang small { grid-column: 2; color: #555; }
.beleg-fuss { margin-top: 3rem; padding-top: .6rem; border-top: 1px solid #ccc; font-size: .72rem; color: #444; text-align: center; }
.beleg-stempel { margin: 0 0 1rem; padding: .5rem .8rem; border: 2px solid var(--signal); color: var(--signal); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; display: inline-block; }
@media (max-width: 40rem) { .beleg { padding: 1.2rem 1rem; } .beleg-adressen { grid-template-columns: 1fr; } }
@media print { .beleg { border: 0; padding: 0; max-width: none; font-size: 10pt; } }
.raster { width: 100%; border-collapse: collapse; margin: .4rem 0 1rem; }
.raster th, .raster td { padding: .4rem .45rem; border-bottom: 1px solid var(--line); text-align: right; font-variant-numeric: tabular-nums; }
.raster thead th { font-size: .8rem; color: var(--muted); font-weight: 650; }
.raster tbody th, .raster thead th:first-child { text-align: left; }
.raster td.neg { color: var(--signal); font-weight: 700; }
.raster td.anz { width: 6.5rem; padding-right: 0; }
.raster td.anz input { text-align: right; }
.fachliste .pill { grid-column: 1 / -1; justify-self: start; }
.fachliste li.off b, .fachliste li.off .menge { color: var(--muted); }
@media print { body.staff { padding: 0; } .labels { gap: 2mm; } }
.fachliste li > button:disabled { cursor: default; opacity: .6; }
.scancard { margin-top: .9rem; }
.zweispalt { display: grid; gap: 0 1rem; }
@media (min-width: 60rem) { .zweispalt { grid-template-columns: 1fr 1fr; align-items: start; } }
.scancard h3 { margin: .2rem 0 .35rem; }
.scancard .grid2 h3 { letter-spacing: .02em; }
.pruefmeldungen { grid-column: 1 / -1; margin: .3rem 0 0; padding-left: 1.1rem; font-size: .85rem; }
.pruefmeldungen li { margin: .15rem 0; overflow-wrap: anywhere; }
.pruefmeldungen b { white-space: normal; }
