/* PR-Fashion · Hängeetikett: weißer Karton, schwarze Präzisionstypografie, Haarlinien, ein Akzent. */

@font-face { font-family: "Bodoni Moda"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/bodoni-moda-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Bodoni Moda"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/bodoni-moda-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Jost"; font-style: normal; font-weight: 300; font-display: swap; src: url("fonts/jost-latin-300-normal.woff2") format("woff2"); }
@font-face { font-family: "Jost"; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/jost-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Jost"; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/jost-latin-500-normal.woff2") format("woff2"); }

:root {
  --paper: #ffffff;
  --paper-2: #f7f6f3;
  --ink: #111111;
  --ink-2: #4a4744;
  --muted: #6f6a64;
  --rule: #e6e3de;
  --rule-strong: #111111;
  --accent: #8a4b24;
  --accent-soft: #f4ece6;
  --up: #2f5d3a;
  --down: #8a2a1f;
  --serif: "Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;
  --sans: "Jost", "Futura", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  /* Stufenleiter: 11 · 13 · 14 · 16 · 20 · 28 · 40 */
  --t-label: 11px;
  --t-small: 13px;
  --t-body: 14px;
  --t-lead: 16px;
  --t-h3: 20px;
  --t-h2: 28px;
  --t-h1: 40px;
  --track: .14em;
  --ease: cubic-bezier(.16, 1, .3, 1);
  color-scheme: light;
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  background: var(--paper);
  color: var(--ink);
  font: 400 var(--t-body)/1.55 var(--sans);
  font-variant-numeric: tabular-nums lining-nums;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
::selection { background: var(--ink); color: var(--paper); }
:focus-visible { outline: 1px solid var(--accent); outline-offset: 3px; }
* { scrollbar-width: thin; scrollbar-color: #cfcac3 transparent; }
a { color: inherit; text-underline-offset: .25em; text-decoration-thickness: 1px; }
h1, h2, h3 { margin: 0; font-weight: 400; }

/* Versal-Label: die Etikett-Stimme */
.label, .card-head h2, .kpi h2, th, .nav-group, .form label, .filters label, .tag, .env-badge, .delta {
  font-family: var(--sans); font-size: var(--t-label); font-weight: 500;
  letter-spacing: var(--track); text-transform: uppercase;
}

/* ---------- Gerüst ---------- */
.shell { display: flex; min-height: 100vh; }
.sidebar {
  width: 232px; flex: 0 0 232px; background: var(--paper-2);
  border-right: 1px solid var(--rule);
  display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; overflow-y: auto;
}
.brand { display: block; padding: 34px 28px 30px; text-decoration: none; }
.wordmark { display: block; font-family: var(--serif); font-size: 19px; font-weight: 500; letter-spacing: .3em; text-transform: uppercase; color: var(--ink); }
.logo { display: block; width: 160px; height: auto; }
.logo-auth { width: 220px; }
.wordmark-sub { display: block; margin-top: 12px; font-size: var(--t-label); letter-spacing: var(--track); text-transform: uppercase; color: var(--muted); }
nav { padding: 0 16px 24px; flex: 1; }
.nav-group { color: var(--muted); padding: 26px 12px 8px; }
.nav-item {
  display: flex; justify-content: space-between; align-items: baseline; gap: 8px;
  padding: 6px 12px; color: var(--ink-2); text-decoration: none; font-size: var(--t-small); letter-spacing: .02em;
  transition: color .2s var(--ease);
}
a.nav-item:hover { color: var(--ink); }
.nav-item.active { color: var(--ink); font-weight: 500; }
.nav-item.active > span:first-child { border-bottom: 1px solid var(--ink); padding-bottom: 1px; }
.nav-item.disabled { color: #8e8881; cursor: default; }
.nav-item .count { font-size: var(--t-label); color: var(--muted); font-weight: 400; }
.sidebar-foot { padding: 18px 28px 26px; font-size: var(--t-label); letter-spacing: .06em; color: var(--muted); border-top: 1px solid var(--rule); }

.main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.topbar { display: flex; align-items: center; justify-content: flex-end; gap: 24px; padding: 18px 56px; border-bottom: 1px solid var(--rule); }
.menu-btn { display: none; margin-right: auto; background: none; border: 0; padding: 4px 0; cursor: pointer; color: var(--ink); }
.menu-btn span, .menu-btn span::before, .menu-btn span::after { display: block; width: 22px; height: 1px; background: currentColor; position: relative; content: ""; }
.menu-btn span::before { position: absolute; top: -6px; }
.menu-btn span::after { position: absolute; top: 6px; }
.env-badge { color: var(--accent); }
.content { padding: 56px 56px 96px; max-width: 1360px; width: 100%; }

/* ---------- Seitenkopf ---------- */
.page-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; margin-bottom: 48px; }
.page-head h1 { font-family: var(--serif); font-size: var(--t-h1); line-height: 1.1; letter-spacing: -.01em; }
.page-meta { margin: 12px 0 0; color: var(--muted); font-size: var(--t-small); letter-spacing: .02em; }
.page-aside { font-size: var(--t-small); color: var(--ink-2); }
.page-aside a { color: var(--ink); }

/* ---------- Kennzahlen als Etikett-Zeile ---------- */
.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--rule-strong); border-bottom: 1px solid var(--rule); margin-bottom: 64px; }
.kpi { padding: 22px 28px 24px; border-left: 1px solid var(--rule); }
.kpi:first-child { border-left: 0; padding-left: 0; }
.kpi h2 { color: var(--muted); }
.kpi .value { font-family: var(--serif); font-size: var(--t-h1); line-height: 1; margin: 16px 0 14px; letter-spacing: -.01em; white-space: nowrap; }
.kpi .cmp { margin: 0; font-size: var(--t-small); color: var(--muted); }
.delta { margin-right: 6px; letter-spacing: .02em; }
.delta.up { color: var(--up); }
.delta.down { color: var(--down); }
.delta.neutral { color: var(--ink-2); }

/* ---------- Abschnitte (keine Karten: Linie oben, viel Weiß) ---------- */
.grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 64px 56px; }
.card { border-top: 1px solid var(--rule-strong); padding-top: 20px; min-width: 0; }
.span-2 { grid-column: span 2; }
.card-head { margin-bottom: 24px; }
.card-head h2 { color: var(--ink); }
.card-head .muted { display: block; margin-top: 8px; }
.muted { color: var(--muted); font-size: var(--t-small); }
.small { font-size: var(--t-label); }
.footnote { margin: 18px 0 0; font-size: var(--t-small); color: var(--muted); }

/* Saisonverlauf */
.bars { display: flex; align-items: flex-end; gap: 20px; height: 240px; padding-top: 24px; border-bottom: 1px solid var(--ink); }
.bar-col { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; min-width: 0; position: relative; }
.bar { width: 100%; max-width: 26px; background: var(--ink); transition: opacity .2s var(--ease); }
.bars:hover .bar { opacity: .35; }
.bars .bar-col:hover .bar { opacity: 1; }
.bar-col.current .bar { background: var(--accent); }
.bar-val { font-size: var(--t-label); color: var(--muted); margin-bottom: 8px; white-space: nowrap; letter-spacing: .04em; }
.bar-label { position: absolute; bottom: -28px; font-size: var(--t-small); color: var(--ink-2); }
.bar-col.current .bar-label { color: var(--accent); font-weight: 500; }
.bars + .footnote { margin-top: 44px; }

/* Listen */
.rank, .follow { list-style: none; margin: 0; padding: 0; }
.rank li { padding: 12px 0 14px; }
.follow li { padding: 13px 0; border-bottom: 1px solid var(--rule); }
.rank li:first-child, .follow li:first-child { padding-top: 0; }
.rank-row { display: flex; align-items: baseline; gap: 12px; }
.rank-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rank-val { font-size: var(--t-small); color: var(--ink-2); white-space: nowrap; }
.share { height: 1px; background: var(--rule); margin-top: 10px; }
.share span { display: block; height: 1px; background: var(--ink); }
.dot { display: inline-block; width: 8px; height: 8px; flex: 0 0 8px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.15); vertical-align: 1px; }
.follow li { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.follow li > div { min-width: 0; display: flex; flex-direction: column; gap: 2px; }

/* Tabellen */
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: var(--t-small); }
th { text-align: left; color: var(--muted); padding: 0 16px 12px 0; border-bottom: 1px solid var(--ink); white-space: nowrap; }
td { padding: 13px 16px 13px 0; border-bottom: 1px solid var(--rule); vertical-align: baseline; }
tbody tr { transition: background .2s var(--ease); }
tbody tr:hover td { background: var(--paper-2); }
.r { text-align: right; }
th.r:last-child { padding-right: 0; }
td.r:last-child { padding-right: 0; }
td.r + td.r, th.r + th.r { padding-left: 20px; }
.nowrap { white-space: nowrap; }
.mono { letter-spacing: .04em; }
.row-link { cursor: pointer; }
.row-link a { text-decoration: none; font-weight: 500; }
.row-link:hover a { text-decoration: underline; }

/* ---------- Formulare & Aktionen ---------- */
.form { display: grid; gap: 22px; max-width: 440px; }
.form label { display: grid; gap: 8px; color: var(--muted); }
.form label.check { display: flex; align-items: center; gap: 10px; text-transform: none; letter-spacing: .01em; font-size: var(--t-small); font-weight: 400; color: var(--ink-2); }
input[type=text], input[type=email], input[type=password], input[type=date], input[type=datetime-local], input:not([type]), select {
  font: 400 var(--t-lead)/1.4 var(--sans); color: var(--ink); background: transparent;
  border: 0; border-bottom: 1px solid #bdb7b0; border-radius: 0; padding: 8px 0 9px; width: 100%;
  text-transform: none; letter-spacing: .01em; transition: border-color .2s var(--ease);
}
select { appearance: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23111' stroke-width='1'/%3E%3C/svg%3E") no-repeat right 2px center; padding-right: 20px; }
input:hover, select:hover { border-bottom-color: var(--ink); }
input:focus, select:focus { outline: none; border-bottom: 1px solid var(--accent); box-shadow: 0 1px 0 var(--accent); }
input[type=checkbox] { accent-color: var(--ink); width: 15px; height: 15px; }
input::placeholder { color: #8e8881; }

.btn, .btn-primary {
  display: inline-block; font: 500 var(--t-label)/1 var(--sans); letter-spacing: var(--track); text-transform: uppercase;
  padding: 15px 26px; border: 1px solid var(--ink); border-radius: 0; cursor: pointer; text-decoration: none;
  background: transparent; color: var(--ink); transition: background .2s var(--ease), color .2s var(--ease);
}
.btn:hover { background: var(--ink); color: var(--paper); }
.btn:disabled { opacity: .35; cursor: not-allowed; background: transparent; color: var(--ink); }
.btn-primary { background: var(--ink); color: var(--paper); justify-self: start; }
.btn-primary:hover { background: #2b2b2b; }
.btn-danger { color: var(--down); border-color: var(--down); }
.btn-danger:hover { background: var(--down); color: var(--paper); }
.actions { display: grid; gap: 12px; justify-items: start; margin-bottom: 18px; }
.actions form { margin: 0; }

.flash { padding: 14px 18px; margin-bottom: 32px; font-size: var(--t-small); border: 1px solid var(--rule); background: var(--paper); color: var(--ink); }
.flash-success { border-color: var(--up); color: var(--up); }
.flash-error { border-color: var(--down); color: var(--down); }
.flash-info { border-color: var(--accent); color: var(--accent); }

.tag { white-space: nowrap; color: var(--ink-2); }
.tag::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 8px; vertical-align: 1px; background: currentColor; }
.tag-ok { color: var(--up); }
.tag-warn { color: var(--down); }
.tag-info { color: var(--accent); }
.tag-off { color: var(--muted); }

.tabs { display: flex; gap: 32px; margin-bottom: 40px; border-bottom: 1px solid var(--rule); }
.tabs a { padding: 0 0 12px; text-decoration: none; color: var(--muted); font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; border-bottom: 1px solid transparent; margin-bottom: -1px; }
.tabs a.active { color: var(--ink); border-bottom-color: var(--ink); }
.filters { display: flex; flex-wrap: wrap; gap: 28px; align-items: flex-end; margin-bottom: 28px; }
.filters label { display: grid; gap: 6px; color: var(--muted); min-width: 160px; }
.pager { display: flex; gap: 20px; align-items: center; margin-top: 28px; }

/* ---------- Benutzermenü ---------- */
.usermenu { position: relative; }
.usermenu summary { list-style: none; display: flex; align-items: center; gap: 12px; cursor: pointer; font-size: var(--t-small); color: var(--ink-2); }
.usermenu summary::-webkit-details-marker { display: none; }
.usermenu summary:hover .uname { color: var(--ink); }
.avatar { width: 30px; height: 30px; border: 1px solid var(--ink); display: grid; place-items: center; font: 500 10px/1 var(--sans); letter-spacing: .08em; color: var(--ink); }
.usermenu-pop { position: absolute; right: 0; top: calc(100% + 12px); z-index: 30; min-width: 250px; background: var(--paper); border: 1px solid var(--ink); box-shadow: 0 12px 32px rgba(17,17,17,.08); padding: 8px 0; }
.usermenu-head { padding: 10px 18px 14px; font-size: var(--t-small); border-bottom: 1px solid var(--rule); margin-bottom: 6px; word-break: break-all; }
.usermenu-head small { display: block; margin-top: 4px; font-size: var(--t-label); letter-spacing: var(--track); text-transform: uppercase; color: var(--muted); }
.usermenu-pop a, .usermenu-pop button { display: block; width: 100%; text-align: left; padding: 10px 18px; border: 0; background: none; color: var(--ink); font: 400 var(--t-small)/1.4 var(--sans); text-decoration: none; cursor: pointer; }
.usermenu-pop a:hover, .usermenu-pop button:hover { background: var(--paper-2); }
.usermenu-pop form { margin: 0; }

/* ---------- Login-Seiten: weiße Etikett-Spalte links, Foto rechts ---------- */
.auth-body { min-height: 100vh; background: var(--paper); }
.auth-split { min-height: 100vh; display: grid; grid-template-columns: minmax(440px, 36%) 1fr; }
.auth-card { display: flex; flex-direction: column; min-height: 100vh; padding: 48px 64px 32px; position: relative; z-index: 1; background: var(--paper); }
.auth-brand { display: flex; flex-direction: column; gap: 10px; }
.auth-brand .wordmark-sub { margin-top: 14px; }
.auth-main { flex: 1; display: flex; flex-direction: column; justify-content: center; width: 100%; max-width: 360px; padding: 48px 0; }
@media (max-height: 760px) and (min-width: 761px) { .auth-card { padding-top: 32px; padding-bottom: 24px; } .auth-main { padding: 28px 0; } .auth-card h1 { font-size: 44px; } .auth-card .muted { margin-bottom: 28px; } }
.auth-card h1 { font-family: var(--serif); font-size: 52px; line-height: 1.02; letter-spacing: -.015em; margin: 0 0 18px; }
.auth-card .muted { margin: 0 0 44px; font-size: var(--t-small); line-height: 1.6; }
.auth-card .form { max-width: none; }
.auth-card .btn-primary { width: 100%; text-align: center; padding: 17px; margin-top: 12px; }
.auth-links { margin: 28px 0 0; font-size: var(--t-small); }
.auth-links a { color: var(--ink-2); }
.auth-foot { margin-top: auto; font-size: var(--t-label); line-height: 1.8; letter-spacing: var(--track); text-transform: uppercase; color: var(--muted); border-top: 1px solid var(--rule); padding-top: 20px; }
.auth-visual { position: relative; margin: 0; overflow: hidden; background: #e8e2d8; }
.auth-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 78% 50%; animation: auth-photo 2.4s var(--ease) both, auth-drift 40s ease-in-out 2.4s infinite alternate; }
.auth-visual::after { content: ""; position: absolute; inset: 0 auto 0 0; width: 1px; background: var(--ink); transform-origin: top; animation: auth-line 1.4s var(--ease) .3s both; }
.auth-brand, .auth-main > *, .auth-foot { animation: auth-rise .9s var(--ease) both; }
.auth-main > :nth-child(1) { animation-delay: .15s; } .auth-main > :nth-child(2) { animation-delay: .25s; }
.auth-main > :nth-child(3) { animation-delay: .35s; } .auth-main > :nth-child(4) { animation-delay: .45s; }
.auth-main > :nth-child(5) { animation-delay: .55s; } .auth-foot { animation-delay: .7s; }
@keyframes auth-photo { from { opacity: 0; transform: scale(1.12); } to { opacity: 1; transform: scale(1.04); } }
@keyframes auth-drift { from { transform: scale(1.04) translateX(0); } to { transform: scale(1.09) translateX(-1.5%); } }
@keyframes auth-line { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@keyframes auth-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* ---------- Farbbild am Kunden ---------- */
.colorprint { border-top: 1px solid var(--rule-strong); padding-top: 18px; margin: -24px 0 64px; }
.cp-head { display: flex; align-items: baseline; gap: 20px; flex-wrap: wrap; margin-bottom: 18px; }
.cp-head .link-back { margin-left: auto; }
.cp-bar { display: flex; gap: 2px; height: 14px; }
.cp-bar a { display: block; min-width: 3px; transition: opacity .2s var(--ease); }
.cp-bar:hover a { opacity: .35; }
.cp-bar:hover a:hover { opacity: 1; }
.cp-bar a.cp-light, .cp-legend i.cp-light { box-shadow: inset 0 0 0 1px #d9d4cc; }
.cp-bar a.cp-multi, .cp-legend i.cp-multi { background: repeating-linear-gradient(135deg, #8f8a83 0 1.5px, #ece8e1 1.5px 5px) !important; }   /* Muster statt Farbe: mehrfarbige Artikel */
.cp-bar-main { height: 28px; }
.cp-legend { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 16px 0 0; padding: 0; font-size: var(--t-small); color: var(--ink-2); }
.cp-legend li { display: flex; align-items: center; gap: 8px; }
.cp-legend i { width: 8px; height: 8px; display: inline-block; }
.cp-legend b { font-weight: 500; color: var(--ink); }
.cp-seasons { margin-top: 28px; border-top: 1px solid var(--rule); }
.cp-season { display: grid; grid-template-columns: 72px 1fr 80px; align-items: center; gap: 20px; padding: 10px 0; border-bottom: 1px solid var(--rule); }
.cp-season-code { font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; }
.cp-season-n { text-align: right; font-size: var(--t-small); color: var(--muted); }
.cp-bar-thin { height: 8px; }

/* ---------- Kunden: Einstieg ohne Liste ---------- */
.cl-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 56px; align-items: stretch; border-top: 1px solid var(--rule-strong); padding-top: 40px; margin-bottom: 72px; }
.cl-search { display: flex; flex-direction: column; justify-content: center; padding: 8px 0 24px; }
.cl-search .label { color: var(--muted); margin-bottom: 18px; }
.cl-search-row { display: flex; align-items: flex-end; gap: 16px; border-bottom: 1px solid var(--ink); }
.cl-search-row input { flex: 1; min-width: 0; border: 0; padding: 6px 0 14px; font: 400 var(--t-h2)/1.2 var(--serif); background: transparent; color: var(--ink); }
.cl-search-row input::placeholder { color: #b5afa7; }
.cl-search-row input:focus { outline: none; }
.cl-search-row:focus-within { border-bottom-color: var(--accent); }
.cl-search-row .btn-primary { margin-bottom: 10px; }
.cl-hint { margin: 18px 0 0; font-size: var(--t-small); color: var(--muted); line-height: 1.7; }
.cl-all { margin: 10px 0 0; }
.cl-visual { margin: 0; position: relative; min-height: 280px; overflow: hidden; background: #e8e2d8; }
.cl-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 40% 60%; animation: auth-photo 1.6s var(--ease) both; }
.cl-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 56px; }
.cl-col { border-top: 1px solid var(--rule-strong); padding-top: 18px; }
.cl-col-meta { margin: 6px 0 14px; min-height: 2.6em; }
.cl-list { list-style: none; margin: 0; padding: 0; }
.cl-list li { border-top: 1px solid var(--rule); }
.cl-list a { display: block; padding: 13px 0; text-decoration: none; color: var(--ink); transition: padding .2s var(--ease); }
.cl-list a:hover { padding-left: 8px; }
.cl-name { display: block; font-size: var(--t-lead); line-height: 1.3; }
.cl-sub { display: block; margin-top: 3px; font-size: var(--t-small); color: var(--muted); }
.cl-more { display: inline-block; margin-top: 16px; }
.cl-none { padding: 13px 0; border-top: 1px solid var(--rule); }

/* ---------- Startseite „Mein Tag“ ---------- */
.home-head h1 { font-size: 44px; }
.home { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); gap: 64px; margin-bottom: 72px; align-items: start; }
.home-sec-head { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; border-top: 1px solid var(--rule-strong); padding-top: 18px; margin-bottom: 8px; }
.home-sec-head .link-back { margin-left: auto; }
.home-empty { border-top: 1px solid var(--rule); padding: 40px 0 32px; max-width: 520px; }
.home-empty-title { font: 400 var(--t-h3)/1.3 var(--serif); margin: 0 0 10px; }
.ag-day { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 24px; border-top: 1px solid var(--rule); padding: 16px 0; }
.ag-date { display: flex; flex-direction: column; gap: 2px; padding-top: 2px; }
.ag-dn { font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; }
.ag-dd { font-size: var(--t-small); color: var(--muted); }
.ag-today .ag-dn, .ag-overdue .ag-dn { color: var(--accent); }
.ag-overdue .ag-dn { color: var(--down); }
.ag-items { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.ag-items a, .ag-items li > div { display: grid; gap: 2px; text-decoration: none; color: var(--ink); }
.ag-items a:hover .ag-title { text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 1px; }
.ag-kind { font-size: var(--t-label); letter-spacing: .06em; color: var(--muted); }
.ag-title { font-size: var(--t-lead); line-height: 1.35; }
.ag-sub { font-size: var(--t-small); color: var(--ink-2); }
.todo-list { list-style: none; margin: 0; padding: 0; }
.todo-list li { border-top: 1px solid var(--rule); }
.todo-list li:first-child { border-top: 0; }
.todo-list a { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 16px; align-items: baseline; padding: 16px 0; text-decoration: none; color: var(--ink); }
.todo-n { font: 400 var(--t-h2)/1 var(--serif); text-align: left; }
.todo-what { display: block; font-size: var(--t-body); }
.todo-sub { display: block; margin-top: 2px; font-size: var(--t-small); color: var(--muted); }
.todo-list a:hover .todo-what { text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 1px; }
.home-none { padding: 16px 0; }
.home-recent { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; }
.feed { list-style: none; margin: 0; padding: 0; }
.feed li { border-top: 1px solid var(--rule); }
.feed li:first-child { border-top: 0; }
.feed a { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 16px; padding: 12px 0; text-decoration: none; color: var(--ink); }
.feed-main { grid-column: 1; font-size: var(--t-body); }
.feed-sub { grid-column: 1; font-size: var(--t-small); color: var(--muted); }
.feed-date { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: var(--t-small); color: var(--muted); }
.feed a:hover .feed-main { text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 1px; }

/* ---------- Einstiege Lieferanten, Marken, Aufträge, Ansprechpartner (03.10.) ---------- */
.sw-search { display: flex; align-items: baseline; gap: 20px; flex-wrap: wrap; border-top: 1px solid var(--rule-strong); border-bottom: 1px solid var(--rule); padding: 18px 0 14px; margin-bottom: 40px; }
.sw-search .label { color: var(--muted); }
.sw-search input { flex: 1; min-width: 200px; border: 0; background: transparent; font: 400 var(--t-h3)/1.3 var(--serif); color: var(--ink); padding: 0; }
.sw-search input::placeholder { color: #b5afa7; }
.sw-search input:focus { outline: none; }
.sw-search:focus-within { border-bottom-color: var(--accent); }

/* Markenwand (Lieferanten): Kollektionsfoto, darunter Logo und Eckdaten */
.brand-wall { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 32px; }
.bw-tile { display: block; text-decoration: none; color: var(--ink); }
.bw-media { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; background: var(--paper-2); display: flex; align-items: center; justify-content: center; }
.bw-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease), filter .4s var(--ease); filter: saturate(.85); }
.bw-tile:hover .bw-media img { transform: scale(1.035); filter: saturate(1); }
.bw-media .bw-biglogo { width: auto; height: auto; max-width: 62%; max-height: 38%; object-fit: contain; mix-blend-mode: multiply; filter: none; }
.bw-tile:hover .bw-media .bw-biglogo { transform: none; }
.bw-bigname { font: 400 var(--t-h2)/1.15 var(--serif); text-align: center; padding: 0 24px; }
.bw-body { display: grid; gap: 4px; padding-top: 16px; border-top: 1px solid var(--ink); margin-top: 14px; }
.bw-logo { height: 34px; width: auto; max-width: 62%; object-fit: contain; object-position: left center; mix-blend-mode: multiply; margin-bottom: 6px; }
.bw-name { font: 400 var(--t-h3)/1.25 var(--serif); margin-bottom: 4px; }
.bw-meta { font-size: var(--t-small); color: var(--ink-2); }
.bw-brands { font-size: var(--t-small); color: var(--muted); }
.bw-silent { margin-top: 56px; padding-top: 16px; border-top: 1px solid var(--rule); font-size: var(--t-small); color: var(--muted); }
.bw-silent .label { margin-right: 14px; }
.bw-silent a { color: var(--ink-2); }

/* Logowand (Marken): kompakt, nur Zeichen */
.logo-wall { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--rule-strong); border-left: 1px solid var(--rule); }
.lw-tile { display: flex; flex-direction: column; justify-content: space-between; aspect-ratio: 4 / 3; padding: 20px; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); text-decoration: none; color: var(--ink); transition: background .2s var(--ease); }
.lw-tile:hover { background: var(--paper-2); }
.lw-mark { flex: 1; display: flex; align-items: center; justify-content: center; }
.lw-mark img { max-width: 72%; max-height: 64px; object-fit: contain; mix-blend-mode: multiply; filter: grayscale(1); opacity: .85; transition: filter .3s var(--ease), opacity .3s var(--ease); }
.lw-tile:hover .lw-mark img { filter: none; opacity: 1; }
.lw-name { font: 400 var(--t-h3)/1.2 var(--serif); text-align: center; }
.lw-cap { display: grid; gap: 2px; font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; }
.lw-cap span { font-weight: 400; letter-spacing: .02em; text-transform: none; font-size: var(--t-small); color: var(--muted); }
.lw-cap em { font-style: normal; color: var(--down); }

/* Aufträge: Suche links, Saisons rechts */
.or-hero { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, 1fr); gap: 64px; border-top: 1px solid var(--rule-strong); padding-top: 32px; margin-bottom: 72px; }
.or-search { display: flex; flex-direction: column; justify-content: center; }
.or-search .label { color: var(--muted); margin-bottom: 18px; }
.or-seasons ul { list-style: none; margin: 12px 0 16px; padding: 0; }
.or-seasons li { border-top: 1px solid var(--rule); }
.or-seasons li:last-child { border-bottom: 1px solid var(--rule); }
.or-seasons li a { display: grid; grid-template-columns: minmax(84px, max-content) minmax(0, 1fr) auto; align-items: baseline; gap: 16px; padding: 10px 0; text-decoration: none; color: var(--ink); }
.or-code { font: 400 var(--t-h3)/1 var(--serif); white-space: nowrap; }
.or-note { font-size: var(--t-small); color: var(--muted); }
.or-n { font-size: var(--t-small); color: var(--ink-2); }
.or-seasons li.current .or-code, .or-seasons li.current .or-note { color: var(--accent); }
.or-seasons li a:hover .or-code { text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
.or-flag { color: var(--down); }

/* Ansprechpartner: Register A–Z */
.ct-search { margin-bottom: 0; border-bottom: 0; }
.abc { display: grid; grid-template-columns: repeat(13, minmax(0, 1fr)); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule-strong); margin-bottom: 64px; }
.abc a, .abc .abc-off { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 14px 0 12px; font: 400 40px/1 var(--serif); text-decoration: none; color: var(--ink); transition: background .2s var(--ease), color .2s var(--ease); }
.abc a span { font: 400 var(--t-label)/1 var(--sans); color: var(--muted); letter-spacing: .04em; }
.abc a:hover { background: var(--ink); color: var(--paper); }
.abc a:hover span { color: #cfcac3; }
.abc .abc-off { color: #d6d1ca; }
.ct-roles .todo-n { font-size: var(--t-h3); }

/* Berichte: Journal mit Aufmacher */
.jr-lead { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; border-top: 1px solid var(--rule-strong); padding: 36px 0 48px; margin-bottom: 8px; }
.jr-kicker { color: var(--accent); margin: 0 0 18px; }
.jr-lead-title { font: 400 44px/1.08 var(--serif); letter-spacing: -.01em; margin: 0 0 18px; }
.jr-lead-title a, .jr-title a { color: var(--ink); text-decoration: none; }
.jr-lead-title a:hover, .jr-title a:hover { text-decoration: underline; text-underline-offset: .15em; text-decoration-thickness: 1px; }
.jr-byline { font-size: var(--t-small); color: var(--muted); margin: 0; }
.jr-byline a { color: var(--ink-2); }
.jr-lead-body p:first-child { font: 400 var(--t-lead)/1.75 var(--sans); color: var(--ink-2); margin: 0 0 20px; }
.jr-lead-body p:first-child::first-letter { font: 400 3.4em/.8 var(--serif); float: left; padding: 6px 10px 0 0; color: var(--ink); }
.jr-actions { margin: 0; }
.jr-list { border-top: 1px solid var(--rule-strong); }
.jr-item { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 32px; padding: 26px 0; border-bottom: 1px solid var(--rule); }
.jr-date { display: flex; flex-direction: column; gap: 4px; }
.jr-day { font: 400 var(--t-h1)/1 var(--serif); }
.jr-mon { font-size: var(--t-label); letter-spacing: var(--track); text-transform: uppercase; color: var(--muted); }
.jr-title { font: 400 var(--t-h3)/1.3 var(--serif); margin: 0 0 6px; }
.jr-meta { font-size: var(--t-small); color: var(--muted); margin: 0 0 10px; }
.jr-excerpt { font-size: var(--t-body); line-height: 1.7; color: var(--ink-2); margin: 0; max-width: 72ch; }

/* Dokumente: Ablage */
.dk-ablage { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(240px, 1fr); gap: 64px; margin-bottom: 64px; }
.dk-faecher, .dk-bezug { border-top: 1px solid var(--rule-strong); padding-top: 18px; }
.dk-faecher ul { list-style: none; margin: 10px 0 0; padding: 0; }
.dk-faecher li { border-bottom: 1px solid var(--rule); }
.dk-faecher li a { display: grid; grid-template-columns: 140px minmax(0, 1fr); align-items: baseline; gap: 20px; padding: 18px 0; text-decoration: none; color: var(--ink); }
.dk-n { font: 400 var(--t-h1)/1 var(--serif); }
.dk-cat { font-size: var(--t-lead); }
.dk-cat span { display: block; font-size: var(--t-small); color: var(--muted); margin-top: 3px; }
.dk-faecher li a:hover .dk-cat { text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 1px; }
.dk-bezug > a { display: flex; align-items: baseline; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--rule); text-decoration: none; color: var(--ink); }
.dk-bn { font: 400 var(--t-h2)/1 var(--serif); min-width: 90px; }
.dk-hint { margin-top: 18px; }
.dk-feed a { grid-template-columns: 52px minmax(0, 1fr) auto; }
.dk-ext { grid-column: 1; grid-row: 1 / span 2; align-self: center; justify-self: start; font-size: 10px; font-weight: 500; letter-spacing: .1em; border: 1px solid var(--ink); padding: 5px 6px 4px; line-height: 1; }
.dk-feed .feed-main, .dk-feed .feed-sub { grid-column: 2; }
.dk-feed .feed-date { grid-column: 3; }

/* ---------- Responsiv ---------- */
@media (max-width: 1180px) {
  .jr-lead, .dk-ablage { grid-template-columns: 1fr; gap: 32px; }
  .brand-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .logo-wall { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .or-hero { grid-template-columns: 1fr; gap: 40px; }
  .cl-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kpi:nth-child(3) { border-left: 0; padding-left: 0; }
  .kpi:nth-child(n+3) { border-top: 1px solid var(--rule); }
  .grid { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
}
@media (max-width: 760px) {
  .sidebar { position: fixed; left: 0; top: 0; z-index: 40; transform: translateX(-100%); transition: transform .3s var(--ease); }
  .sidebar.open { transform: none; box-shadow: 0 0 0 100vmax rgba(17,17,17,.25); }
  .menu-btn { display: block; }
  .topbar { padding: 14px 16px; gap: 16px; }
  .content { padding: 32px 16px 64px; }
  .page-head { margin-bottom: 32px; }
  .page-head h1 { font-size: var(--t-h2); }
  .kpi { padding: 18px 0 18px 16px; }
  .kpi:nth-child(odd) { padding-left: 0; border-left: 0; }
  .kpi .value { font-size: var(--t-h2); }
  .grid { gap: 48px; }
  .bars { gap: 8px; height: 190px; }
  .bar-val { font-size: 9px; letter-spacing: 0; }
  .uname { display: none; }
  .auth-split { grid-template-columns: 1fr; grid-template-rows: 34vh auto; }
  .auth-visual { order: -1; }
  .auth-visual::after { inset: auto 0 0 0; width: auto; height: 1px; transform-origin: left; animation-name: auth-line-x; }
  .auth-card { min-height: 0; padding: 32px 20px 24px; }
  .auth-main { padding: 40px 0; }
  .auth-card h1 { font-size: 40px; }
  .cp-season { grid-template-columns: 56px 1fr 64px; gap: 12px; }
  .cl-hero { grid-template-columns: 1fr; gap: 24px; padding-top: 24px; margin-bottom: 48px; }
  .cl-visual { order: -1; min-height: 160px; }
  .cl-search-row input { font-size: var(--t-h3); }
  .cl-cols { grid-template-columns: 1fr; gap: 40px; }
  .home, .home-recent { grid-template-columns: 1fr; gap: 48px; }
  .brand-wall { grid-template-columns: 1fr; gap: 40px; }
  .logo-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lw-tile { padding: 14px; aspect-ratio: auto; min-height: 150px; gap: 12px; }
  .abc { grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .abc a, .abc .abc-off { font-size: 28px; }
  .sw-search input { font-size: var(--t-lead); }
  .jr-lead-title { font-size: var(--t-h2); }
  .jr-item { grid-template-columns: 64px minmax(0, 1fr); gap: 16px; }
  .jr-day { font-size: var(--t-h2); }
  .dk-faecher li a { grid-template-columns: 96px minmax(0, 1fr); gap: 12px; }
  .dk-n { font-size: var(--t-h2); }
  .home-head h1 { font-size: var(--t-h2); }
  .ag-day { grid-template-columns: 1fr; gap: 8px; }
  .ag-date { flex-direction: row; gap: 10px; align-items: baseline; }
  .cp-head .link-back { margin-left: 0; }
}
@keyframes auth-line-x { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

/* ---------- Listen: Filter, Sortierung, Leere ---------- */
.filterbar { display: grid; grid-template-columns: minmax(200px, 2fr) repeat(5, minmax(0, 1fr)) auto; gap: 24px; align-items: end; margin-bottom: 40px; padding-bottom: 28px; border-bottom: 1px solid var(--rule); }
.filterbar label { display: grid; gap: 6px; color: var(--muted); font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; min-width: 0; }
.filterbar select, .filterbar input { font-size: var(--t-body); }
input[type=search], input[type=tel] { font: 400 var(--t-lead)/1.4 var(--sans); color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid #bdb7b0; border-radius: 0; padding: 8px 0 9px; width: 100%; letter-spacing: .01em; }
input[type=search]:focus, input[type=tel]:focus { outline: none; border-bottom: 1px solid var(--accent); box-shadow: 0 1px 0 var(--accent); }
input[type=search]::-webkit-search-cancel-button { filter: grayscale(1); }
.filter-actions { display: flex; align-items: center; gap: 18px; white-space: nowrap; }
.link-reset, .link-back { font-size: var(--t-small); color: var(--ink-2); }
th a.sort { text-decoration: none; color: inherit; }
th a.sort:hover { color: var(--ink); }
th a.sort-asc::after, th a.sort-desc::after { content: ""; display: inline-block; width: 5px; height: 5px; margin-left: 7px; border: solid var(--ink); border-width: 0 1px 1px 0; transform: translateY(-2px) rotate(45deg); }
th a.sort-asc::after { transform: translateY(1px) rotate(-135deg); }
th a.sort-asc, th a.sort-desc { color: var(--ink); }
table.list td { padding-top: 15px; padding-bottom: 15px; }
.empty { padding: 72px 0; border-top: 1px solid var(--ink); }
.empty h2 { font-family: var(--serif); font-size: var(--t-h3); margin-bottom: 10px; }

/* ---------- Detailseite ---------- */
.head-actions { display: flex; align-items: center; gap: 24px; }
.stack { display: grid; gap: 64px; align-content: start; min-width: 0; }
.grid > .stack { grid-template-columns: minmax(0, 1fr); }
.facts { display: grid; grid-template-columns: max-content 1fr; gap: 10px 20px; margin: 0; font-size: var(--t-small); }
.facts dt { color: var(--muted); font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; padding-top: 2px; }
.facts dd { margin: 0; overflow-wrap: anywhere; }
.facts a, .person-links a, .address a { text-decoration: none; border-bottom: 1px solid var(--rule); }
.facts a:hover, .person-links a:hover { border-bottom-color: var(--ink); }
.note { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--rule); font-size: var(--t-small); }
.note p { margin: 8px 0 0; color: var(--ink-2); }
.address { padding: 0 0 16px; }
.address + .address { padding-top: 16px; border-top: 1px solid var(--rule); }
.address p { margin: 6px 0 0; font-size: var(--t-small); line-height: 1.6; }
.people { list-style: none; margin: 0; padding: 0; }
.people li { padding: 14px 0; border-bottom: 1px solid var(--rule); display: grid; gap: 3px; }
.people li:first-child { padding-top: 0; }
.person-links { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 4px; }
.label.primary { color: var(--accent); margin-left: 6px; }
.supplier-rows { list-style: none; margin: 0 0 20px; padding: 0; }
.supplier-rows li { padding: 14px 0; border-bottom: 1px solid var(--rule); display: grid; gap: 4px; }
.supplier-rows li:first-child { padding-top: 0; }
.scn { display: flex; align-items: baseline; gap: 12px; margin-top: 6px; color: var(--muted); font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; }
.scn input { font-size: var(--t-small); padding: 4px 0 5px; max-width: 160px; }
.scn input:placeholder-shown { border-bottom-style: dashed; }
.overdue { color: var(--down); }
.inline { display: inline; margin: 0; }
.link-btn { background: none; border: 0; padding: 0; font: 500 var(--t-label)/1 var(--sans); letter-spacing: var(--track); text-transform: uppercase; color: var(--ink); cursor: pointer; border-bottom: 1px solid var(--ink); padding-bottom: 2px; }
.link-btn:hover { color: var(--accent); border-color: var(--accent); }
.disclose { margin-top: 20px; }
.disclose summary { cursor: pointer; list-style: none; font: 500 var(--t-label)/1 var(--sans); letter-spacing: var(--track); text-transform: uppercase; color: var(--ink-2); display: inline-block; padding-bottom: 3px; border-bottom: 1px solid var(--rule); }
.disclose summary::-webkit-details-marker { display: none; }
.disclose summary:hover { color: var(--ink); border-color: var(--ink); }
.disclose[open] summary { margin-bottom: 20px; color: var(--ink); border-color: var(--ink); }

/* Aufträge je Saison */
.season-rows { list-style: none; margin: 0 0 32px; padding: 0; }
.season-rows li { display: grid; grid-template-columns: minmax(56px, max-content) 1fr 130px 110px; gap: 16px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--rule); font-size: var(--t-small); }
.sr-code { font-weight: 500; }
.sr-bar { height: 1px; background: var(--rule); position: relative; }
.sr-bar span { position: absolute; left: 0; top: -1px; height: 3px; background: var(--ink); }
.season-rows li.current .sr-code { color: var(--accent); }
.season-rows li.current .sr-bar span { background: var(--accent); }
.sr-n { text-align: right; white-space: nowrap; }
.sr-val { text-align: right; white-space: nowrap; }

/* Verlauf */
.compose { display: grid; gap: 14px; padding-bottom: 32px; margin-bottom: 8px; border-bottom: 1px solid var(--rule); }
textarea { font: 400 var(--t-body)/1.6 var(--sans); color: var(--ink); background: var(--paper-2); border: 1px solid transparent; border-radius: 0; padding: 12px 14px; width: 100%; resize: vertical; text-transform: none; letter-spacing: .01em; }
textarea:focus { outline: none; border-color: var(--accent); background: var(--paper); }
.compose-row { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-end; }
.compose-row label { display: grid; gap: 6px; color: var(--muted); font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; min-width: 150px; flex: 1; }
.compose-row .btn-primary { flex: 0 0 auto; }
.segmented { display: flex; flex-wrap: wrap; gap: 0; border: 1px solid var(--ink); width: max-content; max-width: 100%; }
.segmented label { position: relative; }
.segmented input { position: absolute; opacity: 0; pointer-events: none; }
.segmented span { display: block; padding: 9px 16px; font: 500 var(--t-label)/1 var(--sans); letter-spacing: var(--track); text-transform: uppercase; cursor: pointer; border-left: 1px solid var(--ink); transition: background .2s var(--ease), color .2s var(--ease); }
.segmented label:first-child span { border-left: 0; }
.segmented input:checked + span { background: var(--ink); color: var(--paper); }
.segmented input:focus-visible + span { outline: 1px solid var(--accent); outline-offset: 2px; }
.timeline { list-style: none; margin: 0; padding: 0; }
.timeline li { padding: 20px 0; border-bottom: 1px solid var(--rule); }
.tl-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: baseline; }
.tl-subject { margin-top: 8px; font-weight: 500; }
.tl-body { margin-top: 6px; color: var(--ink-2); max-width: 72ch; font-size: var(--t-small); line-height: 1.65; }

/* ---------- Bearbeiten ---------- */
.edit-form { max-width: 920px; }
.form-section { display: grid; grid-template-columns: 220px 1fr; gap: 24px 48px; padding: 28px 0 36px; border-top: 1px solid var(--rule); }
.form-section:first-of-type { border-top-color: var(--ink); }
.form-section > h2 { color: var(--ink); padding-top: 4px; }
.form-section > .check { grid-column: 2; display: flex; align-items: center; gap: 10px; font-size: var(--t-small); color: var(--ink-2); }
.fields { grid-column: 2; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 28px; }
.fields label { display: grid; gap: 8px; color: var(--muted); font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; min-width: 0; }
.fields .w-2 { grid-column: span 2; }
.fields .w-3 { grid-column: 1 / -1; }
.addr-fields.is-same { display: none; }
.chips { grid-column: 2; border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.chip input { position: absolute; opacity: 0; pointer-events: none; }
.chip span { display: inline-block; padding: 7px 12px; border: 1px solid var(--rule); font-size: var(--t-small); cursor: pointer; transition: border-color .2s var(--ease), background .2s var(--ease), color .2s var(--ease); }
.chip span:hover { border-color: var(--ink); }
.chip input:checked + span { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.chip input:focus-visible + span { outline: 1px solid var(--accent); outline-offset: 2px; }
.form-foot { display: flex; align-items: center; gap: 28px; padding-top: 28px; border-top: 1px solid var(--ink); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

@media (max-width: 1180px) {
  .filterbar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .filterbar .search-field { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .filterbar { grid-template-columns: 1fr 1fr; gap: 18px; }
  .filter-actions { grid-column: 1 / -1; }
  .form-section { grid-template-columns: 1fr; gap: 16px; }
  .form-section > .check, .fields, .chips { grid-column: 1; }
  .fields { grid-template-columns: 1fr 1fr; }
  .fields .w-2 { grid-column: 1 / -1; }
  .season-rows li { grid-template-columns: 44px 1fr 96px; }
  .sr-n { display: none; }
  .head-actions { width: 100%; justify-content: space-between; }
  table.list th:nth-child(3), table.list td:nth-child(3), table.list th:nth-child(5), table.list td:nth-child(5) { display: none; }
}

/* ---------- Modul: Lieferanten & Marken ---------- */
.filterbar-short { grid-template-columns: minmax(240px, 2fr) repeat(2, minmax(160px, 1fr)) auto; }
.scn-filter { margin: 0 0 16px; font-size: var(--t-small); }
.scn-filter:empty { display: none; }
.scn-input { font-size: var(--t-small); padding: 2px 0 3px; max-width: 180px; }
.scn-input:placeholder-shown { border-bottom-style: dashed; }
.list-scn td { padding-top: 8px; padding-bottom: 8px; }
.list-scn th.r, .list-scn td.r, .list-suppliers th.r, .list-suppliers td.r, .list-brands th.r, .list-brands td.r { padding-right: 28px; }
.facts + .address { margin-top: 22px; }
.form-row { margin-top: 20px; }
.form-wide { max-width: 680px; }
.procs .disclose { margin-top: 14px; }
.sub-head { color: var(--ink); margin: 0 0 18px; }
.comm-rec { margin-bottom: 48px; }
.diff-open { color: var(--accent); }
.diff-over { color: var(--down); }
.comm-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 56px; }
.comm-cols > section { border-top: 1px solid var(--rule); padding-top: 18px; min-width: 0; }
.comm-cols .people form.inline { margin-top: 4px; }
.color-field { display: flex; align-items: end; gap: 12px; }
.color-field input[type=text] { flex: 1; min-width: 0; text-transform: uppercase; }
input[type=color] { width: 32px; height: 28px; padding: 0; border: 1px solid var(--rule); border-radius: 0; background: var(--paper); cursor: pointer; flex: 0 0 32px; }
input[type=color]::-webkit-color-swatch-wrapper { padding: 2px; }
input[type=color]::-webkit-color-swatch { border: 0; border-radius: 0; }
input[type=color]::-moz-color-swatch { border: 0; border-radius: 0; }
@media (max-width: 1180px) {
  .filterbar-short { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .filterbar-short { grid-template-columns: 1fr 1fr; }
  .comm-cols { grid-template-columns: 1fr; }
  table.list-scn th:nth-child(5), table.list-scn td:nth-child(5) { display: table-cell; }
  table.list-scn th:nth-child(2), table.list-scn td:nth-child(2), table.list-scn th:nth-child(4), table.list-scn td:nth-child(4) { display: none; }
  table.list-suppliers th:nth-child(2), table.list-suppliers td:nth-child(2), table.list-suppliers th:nth-child(4), table.list-suppliers td:nth-child(4) { display: none; }
}

/* ---------- Modul: Kürzel strukturiert (1b) ---------- */
.filterbar-tags { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.filterbar-tags .search-field { grid-column: span 2; }
.filterbar-tags .filter-actions { grid-column: 1 / -1; }
.chip-groups { grid-column: 2; display: grid; gap: 24px; }
.chip-group { grid-column: auto; }
.chip-group legend { padding: 0; margin: 0 0 12px; color: var(--muted); }
@media (max-width: 1180px) {
  .filterbar-tags { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .filterbar-tags .search-field { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .filterbar-tags { grid-template-columns: 1fr 1fr; }
  .chip-groups { grid-column: 1; }
  /* Kundenliste: 3 PLZ und 5 Betreuung blendet die allgemeine table.list-Regel aus, hier zusätzlich 6 Letzter Auftrag */
  table.list-customers th:nth-child(5), table.list-customers td:nth-child(5), table.list-customers th:nth-child(6), table.list-customers td:nth-child(6) { display: none; }
}

/* ---------- Modul: Ansprechpartner & Filialen ---------- */
.filterbar-contacts .filter-actions { grid-column: 1 / -1; flex-wrap: wrap; white-space: normal; }
.filterbar .check-inline { display: flex; align-items: center; gap: 10px; text-transform: none; letter-spacing: .01em; font-size: var(--t-small); font-weight: 400; color: var(--ink-2); cursor: pointer; }
.cell-sub { display: block; margin-top: 2px; }
.reach { overflow-wrap: anywhere; }
.reach a { text-decoration: none; border-bottom: 1px solid var(--rule); }
.reach a:hover { border-bottom-color: var(--ink); }
.fields .check-field .check { display: flex; align-items: center; gap: 10px; padding: 8px 0 9px; text-transform: none; letter-spacing: .01em; font-size: var(--t-body); font-weight: 400; color: var(--ink); }
.firm-picker { grid-column: 2; display: grid; gap: 18px; min-width: 0; }
.firm-picker .chips, .firm-picker .fields { grid-column: auto; }
.firm-picker [hidden] { display: none !important; }
.firm-hint { margin: 0; }
.firm-search { display: grid; gap: 4px; max-width: 460px; }
.firm-search label { display: grid; gap: 8px; color: var(--muted); font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; }
.firm-results { list-style: none; margin: 0; padding: 0; }
.firm-results li { border-bottom: 1px solid var(--rule); }
.firm-results li.muted { border: 0; padding: 10px 0; }
.firm-results button { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; width: 100%; padding: 10px 8px; background: none; border: 0; border-radius: 0; text-align: left; font: inherit; color: var(--ink); cursor: pointer; transition: background .2s var(--ease); }
.firm-results button:hover, .firm-results button:focus-visible { background: var(--paper-2); }
.resp-rows { grid-column: 2; display: grid; gap: 18px; min-width: 0; }
.resp-row { grid-column: auto; }
.resp-row + .resp-row { border-top: 1px solid var(--rule); padding-top: 18px; }
.resp-rows > .muted, .resp-empty { margin: 0; }
.resp-empty { grid-column: 2; }
.trash-row { margin-top: 40px; }
.trash-facts { max-width: 520px; }
.card-foot { margin: 20px 0 0; }
.branches { list-style: none; margin: 0; padding: 0; }
.branches > li { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 40px; padding: 22px 0; border-bottom: 1px solid var(--rule); }
.branches > li:first-child { padding-top: 0; }
.branch-main { display: grid; gap: 6px; align-content: start; min-width: 0; }
.branch-addr, .branch-areas { margin: 0; font-size: var(--t-small); }
.branch-areas .label { color: var(--muted); margin-right: 6px; }
.branch-resp { min-width: 0; }
.branch-resp .people li:first-child { padding-top: 0; }
.branch-resp .people li:last-child { border-bottom: 0; padding-bottom: 0; }
.branch-foot { display: flex; flex-wrap: wrap; align-items: baseline; gap: 20px 28px; margin-top: 24px; }
.branch-foot .disclose { margin-top: 0; }
.people li.trash-item { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.birthdays-head { margin-top: 36px; }
@media (max-width: 760px) {
  .firm-picker, .resp-rows, .resp-empty { grid-column: 1; }
  .branches > li { grid-template-columns: 1fr; }
  .resp-row label:last-child { grid-column: 1 / -1; }
  /* Ansprechpartnerliste: 3 Rollen und 5 Sortiment blendet die allgemeine table.list-Regel aus, hier zusätzlich 4 Abteilung */
  table.list-contacts th:nth-child(4), table.list-contacts td:nth-child(4) { display: none; }
}

/* ---------- Modul: Aufträge ---------- */
.filterbar-orders { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.filterbar-orders .search-field { grid-column: span 2; }
.filterbar-orders .check-inline { align-self: end; padding-bottom: 9px; }
.filterbar-orders .filter-actions { grid-column: 1 / -1; }
.list-orders tfoot td { padding-top: 16px; padding-bottom: 16px; border-top: 1px solid var(--ink); border-bottom: 0; font-weight: 500; }
.list-orders tfoot .label { color: var(--muted); }
.list-orders .cell-sub { max-width: 220px; }
.list-orders td a { text-decoration: none; border-bottom: 1px solid var(--rule); }
.list-orders td a:hover { border-bottom-color: var(--ink); }
.nowrap-dot { white-space: nowrap; }
.m-only { display: none; }
.check-list ul { margin: 10px 0 0; padding-left: 18px; }
.check-list li + li { margin-top: 4px; }
.check-list .label { color: var(--accent); }
.check-list .check { display: flex; align-items: center; gap: 10px; margin-top: 14px; color: var(--ink); font-size: var(--t-small); cursor: pointer; }
.small-note { margin: 10px 0 0; color: var(--ink-2); }
.cust-picker { display: grid; min-width: 0; }
.cust-picker [hidden] { display: none !important; }
.cust-picker .firm-search { max-width: none; }
.order-hint { margin: -16px 0 56px; font-size: var(--t-small); }
.order-hint a { color: var(--ink); }
@media (max-width: 1180px) {
  .filterbar-orders { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .filterbar-orders .search-field { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .filterbar-orders { grid-template-columns: 1fr 1fr; }
  /* Auftragsliste mobil: Auftragsnr., Kunde, Wert, Prüfung (Stück nur am Desktop und im CSV) */
  table.list-orders th:nth-child(3), table.list-orders td:nth-child(3) { display: table-cell; }
  table.list-orders th:nth-child(1), table.list-orders td:nth-child(1), table.list-orders th:nth-child(4), table.list-orders td:nth-child(4),
  table.list-orders th:nth-child(6), table.list-orders td:nth-child(6), table.list-orders th:nth-child(7), table.list-orders td:nth-child(7),
  table.list-orders th:nth-child(8), table.list-orders td:nth-child(8) { display: none; }
  table.list-orders th:nth-child(10), table.list-orders td:nth-child(10) { display: none; }
  .list-orders .cell-sub { display: none; }
  .list-orders .cell-sub.m-only { display: block; margin-top: 6px; }
  .order-hint { margin: 0 0 40px; }
}

/* ---------- Modul: Auftragsprotokoll (Reiter im Detail) ---------- */
.tabs .tab-n { color: var(--muted); margin-left: 6px; }
.order-log > p { margin-bottom: 16px; }

/* ---------- Modul: Stammdaten (Saisons, Rubriken, Kürzel, Kontakt-Kategorien) ---------- */
.master-form { margin-bottom: 64px; }
.field-hint { grid-column: 2; margin: 0; }
.master-grid { margin-top: 0; }
.master-add { margin: 0 0 40px; max-width: 720px; }
.kz-group .master-add { margin: 24px 0 0; }
.master-danger { border-top: 1px solid var(--rule); padding-top: 20px; max-width: 920px; display: grid; gap: 16px; justify-items: start; }
.alias-add { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--rule); }
.alias-empty, .intro-note { max-width: 72ch; color: var(--ink-2); font-size: var(--t-small); line-height: 1.65; margin: 0; }
.intro-note { margin: -24px 0 40px; }
.kz-group { margin-bottom: 64px; border-top: 1px solid var(--ink); padding-top: 20px; }
.kz-group .card-head .muted { max-width: 72ch; }
.card-head .kz-n { display: inline; margin-left: 8px; font-weight: 400; letter-spacing: .02em; }
.list-seasons tr.current td:first-child a { color: var(--accent); }
a.plain { text-decoration: none; border-bottom: 1px solid var(--rule); }
a.plain:hover { border-bottom-color: var(--ink); }
.kk-move form + form { margin-left: 16px; }
.link-btn:disabled { color: var(--muted); border-bottom-color: var(--rule); cursor: default; }
.kk-short { flex: 0 1 140px; min-width: 110px; }
@media (max-width: 760px) {
  .field-hint { grid-column: 1; }
  .intro-note { margin-top: -12px; }
  table.list-seasons th:nth-child(5), table.list-seasons td:nth-child(5), table.list-seasons th:nth-child(6), table.list-seasons td:nth-child(6) { display: none; }
  table.list-kz th:nth-child(4), table.list-kz td:nth-child(4) { display: none; }
}

/* ---------- Modul: Profilfotos (Benutzer) ---------- */
.avatar { border: 0; border-radius: 50%; overflow: hidden; flex: none; background: var(--rule); color: var(--ink-2); font: 500 var(--t-label)/1 var(--sans); letter-spacing: .04em; }
.avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.avatar-s { width: 26px; height: 26px; }
.avatar-m { width: 32px; height: 32px; }
.avatar-l { width: 112px; height: 112px; font: 400 var(--t-h2)/1 var(--serif); letter-spacing: 0; }
.who { display: inline-flex; align-items: center; gap: 10px; vertical-align: middle; }
.avatar-edit { display: grid; gap: 24px; justify-items: start; }
.avatar-actions { display: grid; gap: 14px; min-width: 0; width: 100%; }
.avatar-upload { display: grid; gap: 16px; justify-items: start; }
.avatar-upload label { display: grid; gap: 10px; width: 100%; font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; color: var(--muted); }
.avatar-upload input[type=file] { width: 100%; font: 400 var(--t-small)/1.4 var(--sans); color: var(--ink-2); text-transform: none; letter-spacing: 0; }
.avatar-upload input[type=file]::file-selector-button { margin-right: 14px; padding: 8px 14px; border: 1px solid var(--rule); background: var(--paper); color: var(--ink); font: 500 var(--t-label)/1 var(--sans); letter-spacing: var(--track); text-transform: uppercase; cursor: pointer; transition: border-color .2s var(--ease); }
.avatar-upload input[type=file]::file-selector-button:hover { border-color: var(--ink); }
.avatar-actions .small-note { margin: 0; max-width: 46ch; }
td .who { white-space: nowrap; margin-right: 14px; }
@media (max-width: 760px) {
  .avatar-l { width: 88px; height: 88px; }
}
dd.team { display: flex; flex-wrap: wrap; gap: 8px 18px; }

/* ---------- Modul: Aktivitäten & Wiedervorlagen ---------- */
.nav-item .count-due { color: var(--down); font-weight: 500; }
.act-type { color: var(--ink); }
.tl-meta .tl-edit { margin-left: auto; font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; color: var(--ink-2); text-decoration: none; border-bottom: 1px solid var(--rule); }
.tl-meta .tl-edit:hover { color: var(--ink); border-bottom-color: var(--ink); }
.tl-more summary { cursor: pointer; list-style: none; }
.tl-more summary::-webkit-details-marker { display: none; }
.tl-more[open] > summary { display: none; }
.more-link { color: var(--ink); font-weight: 500; border-bottom: 1px solid var(--ink); white-space: nowrap; }
.tl-more summary:hover .more-link { color: var(--accent); border-bottom-color: var(--accent); }
.due-today { color: var(--accent); }
.followups-open { padding-bottom: 28px; margin-bottom: 28px; border-bottom: 1px solid var(--rule); }
.followups-open .follow .small + .small { margin-top: 4px; }
.followups-open .footnote { margin-top: 14px; }
.compose .sub-head { margin-bottom: 4px; }
.wv-n { margin-left: 6px; font-weight: 400; letter-spacing: .02em; color: var(--muted); }
.due-now { margin: 0 0 64px; border-top: 1px solid var(--ink); padding-top: 20px; }
.due-list { max-width: 920px; }
.due-list .rank-val { white-space: nowrap; }
.wv-group { margin-bottom: 56px; border-top: 1px solid var(--ink); padding-top: 20px; }
.wv-head { color: var(--ink); margin: 0 0 8px; }
.wv-ueberfaellig .wv-head { color: var(--down); }
.wv-list { list-style: none; margin: 0; padding: 0; }
.wv-list > li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 360px); gap: 12px 40px; padding: 18px 0; border-bottom: 1px solid var(--rule); scroll-margin-top: 80px; }
.wv-title { font-weight: 500; }
.wv-meta { margin-top: 4px; }
.wv-note { margin: 8px 0 0; max-width: 72ch; color: var(--ink-2); }
.wv-note.muted { color: var(--muted); }
.wv-actions { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: baseline; justify-content: flex-end; }
.wv-actions .disclose { margin-top: 0; }
.wv-more[open] { flex-basis: 100%; }
.wv-more[open] summary { margin-bottom: 16px; }
.wv-forms { display: grid; gap: 22px; }
.wv-form { display: grid; gap: 10px; justify-items: start; }
.wv-form label { display: grid; gap: 8px; width: 100%; color: var(--muted); font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; }
.wv-row { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: flex-end; width: 100%; }
.wv-row label { width: auto; flex: 1 1 140px; }
.wv-date input { min-width: 0; }
.link-danger { color: var(--down); border-bottom-color: var(--down); }
.link-danger:hover { color: var(--down); border-bottom-color: var(--down); }
.filterbar-acts { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.filterbar-acts .search-field { grid-column: span 2; }
.filterbar-acts .check-inline { align-self: end; padding-bottom: 9px; }
.filterbar-acts .filter-actions { grid-column: 1 / -1; }
.list-acts .act-text { max-width: 46ch; }
.act-type-field { border: 0; margin: 0; padding: 0; min-width: 0; }
.act-type-field legend { padding: 0; margin-bottom: 10px; color: var(--muted); }
.act-log, .contact-acts { margin-top: 64px; padding-top: 20px; border-top: 1px solid var(--ink); }
.contact-acts { max-width: 920px; }
@media (max-width: 1180px) {
  .filterbar-acts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .filterbar-acts .search-field { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .filterbar-acts { grid-template-columns: 1fr 1fr; }
  .wv-list > li { grid-template-columns: 1fr; }
  .wv-actions { justify-content: flex-start; }
  .due-now { margin-bottom: 48px; }
  table.list-acts th:nth-child(4), table.list-acts td:nth-child(4), table.list-acts th:nth-child(6), table.list-acts td:nth-child(6) { display: none; }
}
input[type=datetime-local] { min-width: 0; }
@media (max-width: 760px) {
  .compose-row label { flex: 1 1 100%; }
  .compose .segmented { width: 100%; }
  .compose .segmented label { flex: 1 1 auto; }
  .compose .segmented span { padding: 9px 8px; text-align: center; }
}

/* ---------- Modul: Berichte & Kurznotizen ---------- */
.cust-note { margin: -16px 0 56px; padding: 20px 0 24px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--rule); max-width: 920px; }
.cust-note-empty { padding: 16px 0; border-top-color: var(--rule); }
.cust-note-empty .disclose { margin-top: 0; }
.cust-note-head { display: flex; flex-wrap: wrap; gap: 4px 16px; align-items: baseline; margin-bottom: 10px; }
.cust-note-head .label { color: var(--ink); }
.cust-note-text { font-size: var(--t-lead); line-height: 1.6; max-width: 72ch; overflow-wrap: anywhere; }
.cust-note-form { display: grid; gap: 14px; max-width: 720px; }
.cust-note-actions { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; }
.report-season { display: flex; align-items: baseline; margin-top: 32px; }
.card-head + .report-season { margin-top: 0; }
.report-season.current { color: var(--accent); }
.tl-meta .tl-links { margin-left: auto; display: inline-flex; gap: 16px; }
.tl-links .tl-edit { margin-left: 0; }
.tl-subject a { text-decoration: none; border-bottom: 1px solid var(--rule); }
.tl-subject a:hover { border-bottom-color: var(--ink); }
.report-attach-hint { margin: 8px 0 0; }
.report-foot { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; }
.report-attach { margin: 0 0 32px; max-width: 920px; padding: 12px 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); font-size: var(--t-small); }
.report-read { max-width: 920px; margin-top: 32px; }
.report-text { max-width: 72ch; line-height: 1.65; overflow-wrap: anywhere; }
.form-hint { margin: -8px 0 0; }
.filterbar-reports { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.filterbar-reports .search-field { grid-column: span 2; }
.filterbar-reports .check-inline { align-self: end; padding-bottom: 9px; }
.filterbar-reports .filter-actions { grid-column: 1 / -1; }
.list-reports .report-cell { max-width: 52ch; }
.list-reports .row-links a + a { margin-left: 16px; }
@media (max-width: 1180px) {
  .filterbar-reports { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .filterbar-reports .search-field { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .filterbar-reports { grid-template-columns: 1fr 1fr; }
  .cust-note { margin: -8px 0 40px; }
  .tl-meta .tl-links { margin-left: 0; flex-basis: 100%; }
  table.list-reports th:nth-child(2), table.list-reports td:nth-child(2), table.list-reports th:nth-child(5), table.list-reports td:nth-child(5),
  table.list-reports th:nth-child(6), table.list-reports td:nth-child(6) { display: none; }
}
/* Druckansicht eines Berichts (bericht-bearbeiten.php?druck=1) */
.print-body { background: var(--paper); }
.print-bar { display: flex; justify-content: space-between; align-items: center; gap: 24px; max-width: 760px; margin: 0 auto; padding: 24px 16px; border-bottom: 1px solid var(--rule); }
.print-doc { max-width: 760px; margin: 0 auto; padding: 48px 16px 64px; }
.print-head { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 14px; border-bottom: 1px solid var(--ink); margin-bottom: 40px; }
.print-head .label { color: var(--muted); }
.print-doc h1 { font-family: var(--serif); font-size: var(--t-h2); line-height: 1.2; margin-bottom: 24px; }
.print-facts { display: grid; grid-template-columns: max-content 1fr; gap: 8px 24px; margin: 0 0 36px; padding: 16px 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); font-size: var(--t-small); }
.print-facts dt { color: var(--muted); font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; padding-top: 2px; }
.print-facts dd { margin: 0; }
.print-text { font-size: var(--t-body); line-height: 1.7; overflow-wrap: anywhere; }
.print-note { margin: 28px 0 0; font-size: var(--t-small); color: var(--ink-2); }
.print-foot { margin-top: 56px; padding-top: 12px; border-top: 1px solid var(--rule); font-size: var(--t-label); color: var(--muted); }
@media print {
  @page { margin: 18mm 16mm; }
  .print-bar { display: none; }
  .print-doc { max-width: none; padding: 0; }
  .print-text { font-size: 11pt; }
  .print-head, .print-facts, .print-foot { break-inside: avoid; }
}

/* ---------- Modul: Dokumentenablage ---------- */
.inline-form { display: inline; }
.doc-list { list-style: none; margin: 0 0 24px; padding: 0; }
.doc-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 24px; padding: 12px 0; border-bottom: 1px solid var(--rule); }
.doc-list .doc-title { font-weight: 500; overflow-wrap: anywhere; }
.doc-list .doc-meta { grid-column: 1; }
.doc-list .doc-actions { grid-column: 2; grid-row: 1 / span 2; align-self: center; white-space: nowrap; }
.doc-list .doc-actions .inline-form { margin-left: 16px; }
.doc-upload { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 16px 24px; align-items: end; }
.doc-upload .doc-hint { grid-column: 1 / -1; margin: 0; }
.doc-upload input[type=file] { max-width: 100%; }
.filterbar-docs { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.filterbar-docs .search-field { grid-column: span 2; }
.filterbar-docs .check-inline { align-self: end; padding-bottom: 9px; }
.filterbar-docs .filter-actions { grid-column: 1 / -1; }
.list-docs .doc-cell { max-width: 48ch; overflow-wrap: anywhere; }
.list-docs .row-links > * + * { margin-left: 16px; }
@media (max-width: 1180px) {
  .filterbar-docs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .filterbar-docs .search-field { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .doc-upload { grid-template-columns: 1fr; }
  .doc-list li { grid-template-columns: 1fr; }
  .doc-list .doc-actions { grid-column: 1; grid-row: auto; }
  .doc-list .doc-actions .inline-form { margin-left: 12px; }
}

/* ---------- Modul: CSV-Import & Export ---------- */
.btn-primary:disabled { opacity: .35; cursor: not-allowed; }
.import-step { border-top: 1px solid var(--ink); padding-top: 20px; margin-bottom: 56px; }
.import-step > .label { display: block; margin-bottom: 8px; }
.import-sum { margin: 12px 0 24px; display: flex; flex-wrap: wrap; gap: 24px; font-size: var(--t-small); }
.import-sub { margin: 40px 0 12px; }
.import-hint { margin: 0; text-transform: none; letter-spacing: .01em; font-weight: 400; }
.import-map { display: grid; gap: 24px; justify-items: start; margin-top: 24px; }
.import-map-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px 28px; width: 100%; }
.import-map-grid label { display: grid; gap: 6px; min-width: 0; }
.import-col { font-size: var(--t-small); color: var(--ink); overflow-wrap: anywhere; }
.import-map-grid select { font-size: var(--t-body); }
.list-import td { max-width: 28ch; overflow-wrap: anywhere; }
.list-import tr.import-dup td, .list-import tr.import-error td { color: var(--ink-2); }
.import-foot { flex-wrap: wrap; margin-top: 32px; }
.import-foot form { margin: 0; }
@media (max-width: 1180px) {
  .import-map-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .import-map-grid { grid-template-columns: 1fr; }
  .import-foot { gap: 16px; }
}
@media (max-width: 760px) {
  /* die allgemeine Listenregel blendet Spalte 3 und 5 aus – in der Import-Vorschau werden alle Spalten gebraucht */
  table.list.list-import th:nth-child(n), table.list.list-import td:nth-child(n) { display: table-cell; }
}
@media (max-width: 760px) {
  /* Mobil-Check Modul 8: mehrere Knöpfe im Seitenkopf brechen um statt rechts aus dem Bild zu laufen */
  .page-head .head-actions { flex-wrap: wrap; justify-content: flex-start; gap: 12px 16px; }
}
@media (max-width: 760px) {
  /* Dokumente-Filter: drei Spalten waren mobil zu breit (Datumsfeld lief rechts hinaus) */
  .filterbar-docs { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  /* Import-Vorschau mobil: Werte nicht mitten im Wort umbrechen, Tabelle scrollt waagerecht (table-wrap) */
  .list-import td { overflow-wrap: normal; white-space: nowrap; }
  .list-import td:nth-child(2) { white-space: normal; min-width: 150px; }
}

/* ---------- Modul: Rechte Admin-Bereiche (Modul 9) ---------- */
.master-facts { max-width: 920px; margin-bottom: 24px; }
@media (max-width: 760px) {
  /* Lieferantenliste ohne Umsatzspalten (Rolle user): Status steht dann in Spalte 5 und bleibt mobil sichtbar */
  table.list-suppliers.no-totals th:nth-child(5), table.list-suppliers.no-totals td:nth-child(5) { display: table-cell; }
  /* Kunden & Kd.-Nr. am Lieferanten ohne Spalte Aufträge: Kd.-Nr. steht in Spalte 4 */
  table.list-scn.no-totals th:nth-child(4), table.list-scn.no-totals td:nth-child(4) { display: table-cell; }
  table.list-scn.no-totals th:nth-child(5), table.list-scn.no-totals td:nth-child(5) { display: none; }
  /* Saisonliste ohne Aufträge/Wert: Code, Bezeichnung, Aliase (Spalte 5) */
  table.list-seasons.no-totals th:nth-child(4), table.list-seasons.no-totals td:nth-child(4) { display: none; }
  table.list-seasons.no-totals th:nth-child(5), table.list-seasons.no-totals td:nth-child(5) { display: table-cell; }
}

/* ---------- Modul: Altbelege aus Scopewire (Modul 10) ---------- */
.list-orders .order-beleg { letter-spacing: normal; }
@media (max-width: 760px) {
  .list-orders .cell-sub.order-beleg { display: block; margin-top: 6px; }
}

/* ---------- Modul: Kundennummern beim Lieferanten (Modul 13) ---------- */
.scn textarea { font-size: var(--t-small); padding: 4px 8px; max-width: 200px; min-height: 0; line-height: 1.5; text-transform: none; letter-spacing: .04em; }
.scn textarea:placeholder-shown { background: var(--paper); border-bottom: 1px dashed var(--rule); }
.scn-nr { display: inline-block; margin-right: 10px; white-space: nowrap; }
.scn-nr:last-child { margin-right: 0; }
.scn-show { text-transform: none; }
.scn-hit { display: block; margin-top: 2px; color: var(--accent); font-size: var(--t-small); }
.list-scn .scn-input { max-width: 260px; width: 100%; }

/* ---------- Modul: Auftragspositionen (Modul 14) ---------- */
.list-pos td { vertical-align: top; }
.list-pos tfoot td { border-top: 1px solid var(--ink); padding-top: 10px; font-weight: 500; }
.pos-sizes { min-width: 140px; }
.pos-size { display: inline-block; margin-right: 10px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pos-size:last-child { margin-right: 0; }
.pos-note { margin: 0 0 16px; }
.cust-tabs { margin-top: 8px; }
.filterbar-pos { grid-template-columns: repeat(4, minmax(0, 1fr)) auto; }
.pos-total { margin: -16px 0 28px; }
.pos-help { max-width: 760px; margin-bottom: 32px; }
.pos-maint { margin-bottom: 48px; }
.pos-maint .label .muted { margin-left: 8px; }
.maint-form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.maint-form select, .maint-form input[type=text] { max-width: 220px; }
@media (max-width: 760px) {
  .filterbar-pos { grid-template-columns: 1fr 1fr; }
  .filterbar-pos .filter-actions { grid-column: 1 / -1; }
  /* Positionen und Pflegelisten brauchen alle Spalten: Tabelle scrollt waagerecht statt Spalten auszublenden */
  table.list-pos th:nth-child(3), table.list-pos td:nth-child(3), table.list-pos th:nth-child(5), table.list-pos td:nth-child(5),
  table.list-maint th:nth-child(3), table.list-maint td:nth-child(3),
  table.list-pos-groups th:nth-child(3), table.list-pos-groups td:nth-child(3), table.list-pos-groups th:nth-child(5), table.list-pos-groups td:nth-child(5),
  table.list-pos-articles th:nth-child(3), table.list-pos-articles td:nth-child(3), table.list-pos-articles th:nth-child(5), table.list-pos-articles td:nth-child(5) { display: table-cell; }
  .list-pos td, .list-maint td { white-space: nowrap; }
  .list-pos td:nth-child(2), .list-maint td:first-child { white-space: normal; min-width: 160px; }
}
#positionen { margin-top: 48px; }

/* ---------- Modul: MCP-Zugang (profil.php) ---------- */
.mcp-token { word-break: break-all; user-select: all; }

/* ---------- Modul: Beleg-Eingang (belege.php, beleg.php) ---------- */
.inbox-upload { margin: 0 0 40px; }
.inbox-drop { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 140px; padding: 28px;
  border: 1px dashed var(--ink-2); text-align: center; cursor: pointer; transition: background .2s ease-out, border-color .2s ease-out; }
.inbox-drop:hover, .inbox-drop.is-over { background: var(--paper-2); border-color: var(--accent); }
.inbox-drop-title { font-size: var(--t-lead); }
.inbox-drop input[type=file] { max-width: 100%; font-size: var(--t-small); }
.inbox-upload-foot { display: flex; justify-content: flex-end; align-items: center; gap: 24px; margin-top: 16px; flex-wrap: wrap; }
.inbox-review { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: start; }
.inbox-review > *, .inbox-form, .inbox-form .form-section > * { min-width: 0; }
.inbox-pdf-col { position: sticky; top: 16px; }
.inbox-pdf { width: 100%; height: calc(100vh - 140px); min-height: 520px; border: 1px solid var(--rule); background: var(--paper-2); }
.inbox-form .fields { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.inbox-form .form-section { grid-template-columns: 1fr; }
.fld-state { float: right; font-weight: 500; }
.fld-state::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 6px; vertical-align: 1px; background: currentColor; }
.fld-sicher .fld-state { color: var(--up); }
.fld-unsicher .fld-state { color: var(--accent); }
.fld-fehlt .fld-state { color: var(--down); }
.fld-manuell .fld-state { color: var(--ink-2); }
.fld-sicher input, .fld-sicher select { border-bottom-color: var(--up); }
.fld-unsicher input, .fld-unsicher select { border-bottom-color: var(--accent); }
.fld-fehlt input, .fld-fehlt select { border-bottom-color: var(--down); }
.inbox-hints { border-top: 1px solid var(--ink); padding-top: 12px; margin-bottom: 32px; }
.inbox-hints ul { margin: 8px 0 0; padding-left: 18px; }
.inbox-hint-plausi, .inbox-mismatch { color: var(--accent); }
.list-inbox-pos input { width: 100%; min-width: 4em; font-size: var(--t-small); }
.list-inbox-pos input.inbox-code { width: 5em; }
.list-inbox-pos td { vertical-align: top; }
.list-inbox-pos td, .list-inbox-diff td { position: relative; }   /* sr-only-Texte bleiben in der scrollbaren Tabelle */
.list-inbox-pos td:nth-child(4), .list-inbox-pos td:nth-child(5) { width: 4.5em; }
.list-inbox-pos td:nth-child(6) { width: 6.5em; }
.list-inbox-pos td:nth-child(7) { width: 2.5em; }
.list-inbox-pos th, .list-inbox-pos td { padding-left: 6px; padding-right: 6px; }
.inbox-pos-new input { border-bottom-style: dashed; }
.inbox-merge p { margin: 0 0 12px; }
.inbox-actions { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }
.inbox-discard { margin-top: 56px; border-top: 1px solid var(--ink); padding-top: 12px; display: flex; gap: 20px; align-items: end; flex-wrap: wrap; }
.inbox-discard label { flex: 1 1 260px; }
@media (max-width: 1100px) {
  .inbox-review { grid-template-columns: 1fr; }
  .inbox-pdf-col { position: static; }
  .inbox-pdf { height: 70vh; }
}
@media (max-width: 760px) {
  .inbox-form .fields { grid-template-columns: 1fr; }
  .inbox-pdf-col { display: none; }   /* mobil: PDF über „PDF öffnen“ im Kopf */
  .list-inbox-pos { min-width: 640px; }
  table.list.list-inbox td:nth-child(3), table.list.list-inbox th:nth-child(3), table.list.list-inbox td:nth-child(5), table.list.list-inbox th:nth-child(5) { display: none; }
  table.list.list-inbox-pos td:nth-child(3), table.list.list-inbox-pos th:nth-child(3), table.list.list-inbox-pos td:nth-child(5), table.list.list-inbox-pos th:nth-child(5) { display: table-cell; }
  table.list.list-inbox-diff td:nth-child(3), table.list.list-inbox-diff th:nth-child(3) { display: table-cell; }
}

/* ---------- Modul: Sprachnotiz über Claude (26) ---------- */
.label.act-voice { margin-left: 10px; color: var(--ink-2); }
.tl-transcript { margin-top: 8px; max-width: 72ch; }
.tl-transcript summary { cursor: pointer; list-style: none; display: inline-block; color: var(--muted); border-bottom: 1px solid var(--rule); }
.tl-transcript summary::-webkit-details-marker { display: none; }
.tl-transcript summary:hover { color: var(--ink); border-bottom-color: var(--ink); }
.tl-transcript > div { margin-top: 8px; padding-left: 14px; border-left: 1px solid var(--rule); color: var(--ink-2); font-size: var(--t-small); line-height: 1.65; }
.list-acts .tl-transcript { margin-top: 4px; }
.list-acts .label.act-voice { display: block; margin: 4px 0 0; white-space: nowrap; }

/* ---------- Modul: Videos ---------- */
.video-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 56px 48px; }
.video-item { border-top: 1px solid var(--rule-strong); padding-top: 20px; min-width: 0; }
.video-inline { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; background: var(--paper-2); }
.video-thumb { position: relative; display: block; aspect-ratio: 16 / 9; background: var(--paper-2); overflow: hidden; }
.video-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; transition: opacity 200ms var(--ease); }
.video-thumb:hover img { opacity: .88; }
.video-dur { position: absolute; right: 0; bottom: 0; padding: 4px 10px; background: var(--paper); color: var(--ink); font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); }
.video-body { padding-top: 18px; }
.video-line { display: flex; align-items: baseline; gap: 16px; margin-bottom: 8px; }
.video-nr { font: 400 var(--t-h3)/1 var(--serif); }
.video-title { font-size: var(--t-h3); font-weight: 400; line-height: 1.3; margin: 0 0 4px; }
.video-title a { color: var(--ink); text-decoration: none; }
.video-title a:hover { text-decoration: underline; }
.video-sub { color: var(--ink-2); margin: 0 0 6px; }
.video-status-text { font-size: var(--t-small); color: var(--muted); margin: 0 0 10px; }
.video-desc { max-width: 72ch; line-height: 1.65; margin: 0 0 12px; }
.video-detail { display: grid; gap: 32px; max-width: 1120px; }
.video-player { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; background: var(--ink); }
.video-detail-text { border-top: 1px solid var(--rule-strong); padding-top: 18px; }
.video-status { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; margin: 0 0 12px; }
.video-status .video-status-text { margin: 0; }
@media (max-width: 760px) {
  .video-grid { grid-template-columns: 1fr; gap: 40px; }
}

/* ---------- Modul 28: Startseite – Diese Woche, Seit deinem letzten Besuch ---------- */
.home-week { margin-bottom: 64px; }
.home-week .home-sec-head { margin-bottom: 0; }
.home-week .week-kpis { border-top: 0; margin-bottom: 0; }
.home-week .kpi h3 { font-family: var(--sans); font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; color: var(--muted); }
.home-week .kpi .value a { color: var(--ink); text-decoration: none; }
.home-week .kpi .value a:hover { text-decoration: underline; text-underline-offset: .12em; text-decoration-thickness: 1px; }
.home-week .kpi .value span { color: var(--muted); }
.home-since { grid-column: 1 / -1; }
.since-list { list-style: none; margin: 0; padding: 12px 0 0; display: flex; flex-wrap: wrap; gap: 8px 40px; font-size: var(--t-body); }
.since-list a { color: var(--ink); text-decoration: none; }
.since-list a:hover { text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 1px; }
.since-list li { color: var(--ink-2); }
.since-n { font: 400 var(--t-h3)/1 var(--serif); color: var(--ink); margin-right: 4px; }
@media (max-width: 760px) {
  .home-week { margin-bottom: 48px; }
  .since-list { flex-direction: column; gap: 10px; }
}

/* ---------- Modul: 29 Super-Admin + Funktionsschalter ---------- */
.home-scope { margin-top: 8px; }
.home-superadmin { margin: 64px 0 0; padding-top: 18px; border-top: 1px solid var(--rule); font-size: var(--t-small); color: var(--muted); }
.home-superadmin .tag { margin-right: 10px; }
.feat-intro { max-width: 760px; margin: 0 0 32px; }
.list-features td { vertical-align: top; }
.list-features td.small { color: var(--ink-2); max-width: 420px; }
.list-features form { margin: 0; }
.feat-history { margin-top: 64px; }
.feat-history h2 { font: 400 var(--t-h3)/1.3 var(--serif); margin: 0 0 16px; }
.home-recent.home-recent-single { grid-template-columns: 1fr; }
@media (max-width: 760px) {
  table.list.list-features td:nth-child(2), table.list.list-features th:nth-child(2) { display: none; }
  /* mobil: Status steckt im Knopf („Freigeben“ / „Zurücknehmen“) */
  table.list.list-features td:nth-child(3), table.list.list-features th:nth-child(3) { display: none; }
  .list-features .btn { padding-left: 10px; padding-right: 10px; }
  /* ohne Rollen-Spalten (kontakt_plus) rücken Erreichbar/Geburtstag auf Spalte 3/4 – sichtbar halten */
  table.list.list-contacts-basic th:nth-child(n), table.list.list-contacts-basic td:nth-child(n) { display: table-cell; }
}

/* ---------- Modul: Drucken (Modul 20) ---------- */
.print-only { display: none; }
@media print {
  @page { size: A4 landscape; margin: 14mm 12mm 16mm;
    @bottom-right { content: "Seite " counter(page) " von " counter(pages); font: 8pt var(--sans); color: var(--muted); } }
  html, body { background: var(--paper); }
  .sidebar, .topbar, .menu-btn, .filterbar, .head-actions, .pager, .tabs, .flash:not(.print-limit), .cl-hero, .cl-cols,
  .content form, .content button, .btn, .btn-primary, .link-back, .row-links { display: none !important; }
  .shell, .main { display: block; margin: 0; padding: 0; }
  .content { max-width: none; padding: 0; margin: 0; }
  .print-only { display: block; }
  .print-brand { display: grid; grid-template-columns: auto 1fr; gap: 2px 16px; align-items: end; padding-bottom: 8px; margin-bottom: 12px; border-bottom: 1px solid var(--rule-strong); }
  .print-brand .logo { grid-row: 1 / span 3; height: 36px; width: auto; }
  .print-brand-title { font-family: var(--serif); font-size: 16pt; }
  .print-brand-meta, .print-filters { font-size: 8pt; color: var(--ink-2); }
  .page-head { margin: 0 0 8px; }
  .page-head h1 { display: none; }
  .page-meta { font-size: 8pt; }
  .table-wrap { overflow: visible !important; }
  table.list { width: 100%; font-size: 8pt; border-collapse: collapse; }
  table.list th, table.list td { display: table-cell !important; padding: 3px 6px; white-space: normal !important; overflow-wrap: anywhere; }
  table.list thead { display: table-header-group; }
  table.list tfoot { display: table-footer-group; }
  table.list tr { break-inside: avoid; }
  table.list td.row-links, table.list th.row-links, table.list .row-links { display: none !important; }
  a { color: inherit; text-decoration: none; }
  h2, h3 { break-after: avoid; }
  section { break-inside: auto; }
}

/* Modul 30: Marken am Kunden */
.list-cbrands th.cb-cur { color: var(--accent); }
.list-cbrands td:first-child { min-width: 180px; }
/* Frühere Kollektionen (07.10.): Text statt Kachel */
.bw-former .bw-former-y { color: var(--muted); }
.bw-former + .bw-silent { margin-top: 20px; }

/* ---------- Modul 37: Saison-Orderzeiträume ---------- */
#orderzeitraum .facts + .period-suggest, #orderzeitraum .alias-empty + .period-suggest { margin-top: 18px; }
.period-suggest { margin: 0; font-size: var(--t-small); color: var(--ink-2); line-height: 1.65; }
.period-suggest .link-btn { margin-left: 8px; }
.period-form { margin-top: 20px; }
.period-form + p { margin-top: 10px; }
.period-form ~ form.inline { display: block; margin-top: 16px; }
.period-overlap .small { display: block; margin-top: 4px; }
.period-check-head { margin: 28px 0 8px; }
.season-hint, .season-origin { display: block; margin-top: 4px; text-transform: none; letter-spacing: 0; font-weight: 400; }
@media (max-width: 760px) {
  table.list-seasons th.col-period, table.list-seasons td.col-period { display: none; }
}

/* ---------- Modul: Einkaufsverbände (Modul 38) ---------- */
.pg-fields { grid-column: 2; border: 0; margin: 0; padding: 0; min-width: 0; }
.pg-fields > legend { margin: 0 0 12px; padding: 0; }
.pg-list { display: grid; gap: 12px; }
.pg-fields .field-hint { margin-top: 12px; }
.pg-row { display: grid; grid-template-columns: 180px minmax(0, 260px); align-items: center; gap: 8px 24px; }
.pg-row .check { display: flex; align-items: center; gap: 10px; font-size: var(--t-body); color: var(--ink); cursor: pointer; }
.pg-member { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; }
.pg-member input { flex: 1; min-width: 120px; }
.pg-form { display: grid; gap: 12px; }
.pg-form .pg-row { grid-template-columns: 120px minmax(0, 1fr); }
.pg-form .card-foot { margin-top: 4px; }
@media (max-width: 760px) {
  .pg-fields { grid-column: 1; }
  .pg-row, .pg-form .pg-row { grid-template-columns: 1fr; gap: 6px; }
}

/* ---------- Modul: Konditionen (Modul 36) ---------- */
.cond-group + .cond-group { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--rule); }
.cond-group .sub-head { margin: 0 0 12px; }
.cond-group .sub-head a { text-decoration: none; border-bottom: 1px solid var(--rule); }
.cond-std { color: var(--muted); }
.cond-std dd { color: var(--muted); }
.cond-nostd { margin: 0; }
.cond-list { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 12px; }
.cond-dev { padding-left: 12px; border-left: 1px solid var(--accent); }
.cond-dev.cond-expired { border-left-color: var(--rule); }
.cond-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; }
.cond-amount { font-weight: 500; color: var(--ink); }
.cond-text { margin: 8px 0 0; font-size: var(--t-small); color: var(--ink); overflow-wrap: anywhere; }
.cond-meta { margin: 8px 0 0; }
.cond-form { display: grid; gap: 12px; }
.cond-form label { display: grid; gap: 6px; color: var(--muted); font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; }
.cond-form .card-foot { margin-top: 4px; }

/* ---------- Modul: Merkfelder (Modul 35) ---------- */
.memo-text { margin: 0; font-size: var(--t-body); line-height: 1.6; overflow-wrap: anywhere; }
.memo-meta { margin: 8px 0 0; }
.memo-form { display: grid; gap: 12px; }
.memo-form label { display: grid; gap: 6px; color: var(--muted); font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; }
.memo-form label > input, .memo-form label > select { text-transform: none; letter-spacing: normal; font-size: var(--t-body); color: var(--ink); }
.memo-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; }
.memo-dates { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.memo-dates > li + li { padding-top: 16px; border-top: 1px solid var(--rule); }
.memo-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.memo-day { font-family: var(--serif); font-size: var(--t-h3); line-height: 1; color: var(--ink); min-width: 3.2em; }
.memo-title { font-weight: 500; color: var(--ink); overflow-wrap: anywhere; }
.memo-edit { margin-top: 10px; }
.memo-edit .memo-form + form.inline { display: block; margin-top: 14px; }
.memo-trash { margin: 16px 0 0; }
.ag-mark { margin-left: 6px; }
.home-memo { margin-bottom: 48px; }

/* ---------- Modul: Beleg-Eingang Prüfergebnis (Antwort-Mail = Prüfansicht) ---------- */
.inbox-summary-head { margin: 8px 0 0; font-weight: 500; }
.inbox-summary ul { list-style: none; padding-left: 0; }
.inbox-summary li { padding: 4px 0; border-bottom: 1px solid var(--rule); }
.inbox-summary li .tag { display: inline-block; min-width: 72px; font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }

/* ---------- Modul: Dashboard je Kunde (Modul 39, Entwurf, Schalter kunde_dashboard) ---------- */
.kd { margin-bottom: 64px; }
.kd-tools { margin: 0 0 10px; text-align: right; font-size: var(--t-label); font-weight: 500; letter-spacing: var(--track); text-transform: uppercase; }
.kd-tools a { color: var(--muted); }
.kd-kpis { margin-bottom: 40px; }
.kd-kpis .kpi { padding: 18px 24px 20px; }
.kd-kpis .kpi:first-child { padding-left: 0; }
.kd-kpis .value { font-size: var(--t-h2); margin: 12px 0 10px; }
.kd-kpis .value.kd-over { color: var(--down); }
.kd-kpis .cmp { overflow-wrap: anywhere; }
.kd-kpis .delta { white-space: nowrap; }
.kd-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 56px; }
.kd-span { grid-column: span 2; }
.kd-full { grid-column: 1 / -1; }
.kd-aside { display: grid; gap: 40px; align-content: start; min-width: 0; }
.kd-block { border-top: 1px solid var(--rule-strong); padding-top: 18px; min-width: 0; }
.kd-block > .label { margin: 0; color: var(--ink); }
.kd-sub { margin: 8px 0 14px; }
.kd-chart { display: block; overflow: visible; }
.kd-chart rect { fill: var(--ink); transition: opacity 200ms var(--ease, ease-out); }
.kd-chart .kd-cur rect { fill: var(--accent); }
.kd-chart:hover g rect { opacity: .3; }
.kd-chart g:hover rect { opacity: 1; }
.kd-chart text { font-family: var(--sans); font-size: var(--t-label); fill: var(--ink-2); }
.kd-chart .kd-code { fill: var(--muted); font-weight: 500; letter-spacing: .14em; }
.kd-chart .kd-cur .kd-code, .kd-chart .kd-cur .kd-val { fill: var(--accent); }
.kd-chart .kd-base { stroke: var(--rule); stroke-width: 1; }
.kd-list { list-style: none; margin: 14px 0 0; padding: 0; }
.kd-list li { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--rule); font-size: var(--t-small); overflow-wrap: anywhere; }
.kd-list li.kd-more { display: block; }
.kd-when { color: var(--muted); }
.kd-matrix { margin-top: 14px; }
.kd-matrix th.cb-cur { color: var(--accent); }
.kd-matrix td:first-child { min-width: 160px; }
.kd-matrix td a { text-decoration: none; border-bottom: 1px solid var(--rule); }
.kd-facts { margin-top: 14px; }
@media (min-width: 1181px) {
  .kd-kpis.kd-n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kd-kpis.kd-n5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 1180px) {
  .kd-kpis .kpi:nth-child(odd) { border-left: 0; padding-left: 0; }
  .kd-grid { grid-template-columns: 1fr; gap: 40px; }
  .kd-span, .kd-full { grid-column: auto; }
}
@media (max-width: 760px) {
  .kd-kpis .kpi { padding: 16px 0 16px 16px; }
  .kd-kpis .kpi:nth-child(odd) { padding-left: 0; }
  .kd-list li { grid-template-columns: 88px minmax(0, 1fr); }
}
@media print {
  .kd-tools { display: none; }
  .kd-matrix tr { break-inside: avoid; }
  @page kd { size: A4 portrait; margin: 12mm 12mm 14mm; }
  html:has(.kd-printview) body { page: kd; }
  .kd-printview { margin: 0; font-size: 8pt; }
  .kd-printview .kd-kpis { grid-template-columns: repeat(5, minmax(0, 1fr)); margin-bottom: 14px; }
  .kd-printview .kd-kpis.kd-n1, .kd-printview .kd-kpis.kd-n2, .kd-printview .kd-kpis.kd-n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kd-printview .kd-kpis.kd-n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .kd-printview .kd-kpis .kpi { padding: 8px 10px; border-top: 0; }
  .kd-printview .kd-kpis .kpi, .kd-printview .kd-kpis .kpi:nth-child(odd) { border-left: 1px solid var(--rule); border-top: 0; }
  .kd-printview .kd-kpis .kpi:first-child { padding-left: 0; border-left: 0; }
  .kd-printview .kd-kpis .value { font-size: 15pt; margin: 6px 0; }
  .kd-printview .kd-kpis .cmp { font-size: 7.5pt; }
  .kd-printview .kd-grid { grid-template-columns: 1fr 1fr; gap: 14px 24px; }
  .kd-printview .kd-span, .kd-printview .kd-full { grid-column: 1 / -1; }
  .kd-printview .kd-aside { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; gap: 14px 24px; }
  .kd-printview .kd-block { padding-top: 8px; break-inside: avoid; }
  .kd-printview .kd-sub { margin: 4px 0 6px; }
  .kd-printview .kd-matrix { font-size: 7.5pt; margin-top: 6px; }
  .kd-printview .kd-matrix th, .kd-printview .kd-matrix td { padding: 2px 5px; }
  .kd-printview .kd-list li { padding: 4px 0; font-size: 8pt; }
  .kd-printview .footnote { font-size: 7pt; margin-top: 6px; }
}

/* ---------- Modul: Live/Dev (D4, vorbereitet 10.10.) ---------- */
.dev-banner { position: sticky; top: 0; z-index: 50; padding: 8px 24px; background: var(--accent); color: var(--paper); font-size: var(--t-small); letter-spacing: .01em; }
.dev-banner strong { font-weight: 500; letter-spacing: var(--track); margin-right: 12px; }
.livedev-state { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 8px 24px; margin: 0 0 32px; padding-top: 16px; border-top: 1px solid var(--rule); }
.livedev-state dt { color: var(--muted); font-size: var(--t-small); }
.livedev-state dd { margin: 0; }
.livedev-form { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; margin-bottom: 32px; }
.livedev-form label.check { display: flex; align-items: center; gap: 10px; font-size: var(--t-small); color: var(--ink-2); }
.livedev-log { margin: 0; padding: 16px 0; border-top: 1px solid var(--rule); font: 400 var(--t-small)/1.6 var(--sans); color: var(--ink-2); white-space: pre-wrap; word-break: break-word; }
.feat-livedev { margin-top: 64px; }
.feat-livedev h2 { font: 400 var(--t-h3)/1.3 var(--serif); margin: 0 0 16px; }
@media (max-width: 760px) {
  .livedev-state { grid-template-columns: 1fr; gap: 4px; }
  .dev-banner { padding: 8px 16px; }
}

/* ---------- Modul: 40 Funktionen mit Schiebereglern ---------- */
.feat-group { margin-top: 64px; }
.page-head + .feat-group, .flash + .feat-group { margin-top: 24px; }
.feat-group h2 { font: 400 var(--t-h3)/1.3 var(--serif); margin: 0 0 16px; padding-top: 18px; border-top: 1px solid var(--ink); }
.feat-hint { display: block; margin-top: 6px; max-width: 560px; font-size: var(--t-label); line-height: 1.5; color: var(--muted); }
.feat-hint.is-open { color: var(--accent); }
.sw-form { display: inline-flex; flex-direction: column; align-items: flex-end; gap: 2px; margin: 0; }
.sw { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; min-width: 44px; padding: 0 2px; margin: -12px 0;
  background: none; border: 0; cursor: pointer; color: var(--muted);
  font: 500 var(--t-label)/1 var(--sans); letter-spacing: var(--track); text-transform: uppercase; }
.sw-track { position: relative; flex: none; width: 40px; height: 20px; border: 1px solid var(--ink); border-radius: 2px; background: var(--paper);
  transition: background-color 200ms ease-out, border-color 200ms ease-out; }
.sw-knob { position: absolute; top: 3px; left: 3px; width: 12px; height: 12px; background: var(--ink); transition: transform 200ms ease-out, background-color 200ms ease-out; }
.sw-text { min-width: 24px; text-align: left; }
.sw[aria-checked="true"] { color: var(--accent); }
.sw[aria-checked="true"] .sw-track { background: var(--accent); border-color: var(--accent); }
.sw[aria-checked="true"] .sw-knob { transform: translateX(20px); background: var(--paper); }
.sw:hover:not(:disabled) .sw-track { border-color: var(--accent); }
.sw[aria-busy="true"] { cursor: progress; }
.sw:disabled { cursor: not-allowed; }
.sw:disabled .sw-track { border-color: var(--rule); background: var(--paper-2); }
.sw:disabled .sw-knob { background: var(--rule); }
.sw-msg { font-size: var(--t-small); color: var(--up); text-align: right; }
.sw-msg:empty { display: none; }
.sw-msg.is-error { color: var(--down); }
.sw-lock { display: block; margin-top: 4px; font-size: var(--t-small); color: var(--muted); text-align: right; }
.list-settings td { vertical-align: top; }
.list-settings td.small { max-width: 260px; }
.ki-facts { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; margin: 8px 0 0; font-size: var(--t-label); }
.ki-facts dt { color: var(--muted); }
.ki-facts dd { margin: 0; color: var(--ink-2); }
@media (prefers-reduced-motion: reduce) { .sw-track, .sw-knob { transition: none; } }
@media (max-width: 760px) {
  /* Systemschalter/KI: Zeilen untereinander statt Spalten, Regler bleibt sichtbar */
  table.list.list-settings thead { display: none; }
  table.list.list-settings tr { display: block; padding: 12px 0; border-bottom: 1px solid var(--rule); }
  table.list.list-settings th:nth-child(n), table.list.list-settings td:nth-child(n) { display: block; border: 0; padding: 4px 0; max-width: none; text-align: left; }
  .list-settings .sw-form { align-items: flex-start; }
  .list-settings .sw-msg, .list-settings .sw-lock { text-align: left; }
  .ki-facts { grid-template-columns: 1fr; }
  .ki-facts dd { margin-bottom: 4px; }
}
