/* ==========================================================================
   pacht.de Pachtbörse – pb.css
   Namespace .pb-, Tokens in :root, mobile-first, Breakpoints 600 / 900 / 1200
   Keine IDs fürs Styling, keine Inline-Styles. BEM-artig: block__element--modifier
   ========================================================================== */

:root {
  /* Farben: Logo-Blau als Primärfarbe, warmes Grau, Akzent für Kauf-Buttons */
  --pb-blue-900: #0f1f6b;
  --pb-blue-800: #1330a8;
  --pb-blue-700: #1637cc;
  --pb-blue-600: #1f48ff;
  --pb-blue-100: #e3e9ff;
  --pb-blue-50:  #f3f5ff;
  --pb-orange-800: #9a3412;
  --pb-orange-700: #c2410c;
  --pb-orange-100: #fde8dc;
  --pb-warm-900: #1f1d1a;
  --pb-warm-800: #33302b;
  --pb-warm-700: #5c574f;
  --pb-warm-600: #6f695f;
  --pb-warm-500: #8a8378;
  --pb-warm-300: #d6cfc4;
  --pb-warm-200: #e8e3db;
  --pb-warm-100: #f4f1ec;
  --pb-warm-50:  #faf8f5;
  --pb-green-800: #14532d;
  --pb-green-700: #1f6b3e;
  --pb-green-100: #dcf0e3;
  --pb-green-50:  #f0f8f3;
  --pb-teal-800: #0f5f59;
  --pb-teal-100: #d5efec;
  --pb-red-800: #7a1a14;
  --pb-red-700: #8f1d17;
  --pb-red-600: #b3261e;
  --pb-red-100: #f9e3e1;
  --pb-red-50:  #fbeceb;
  --pb-amber-900: #5a3f00;
  --pb-amber-800: #6b4a00;
  --pb-amber-600: #b7860b;
  --pb-amber-300: #e9d59a;
  --pb-amber-100: #fbf0d2;
  --pb-amber-50:  #fdf7e3;
  --pb-white: #fff;

  /* Semantische Farben */
  --pb-text: var(--pb-warm-900);
  --pb-text-muted: var(--pb-warm-700);
  --pb-text-subtle: var(--pb-warm-600);
  --pb-bg: var(--pb-white);
  --pb-bg-soft: var(--pb-warm-50);
  --pb-bg-muted: var(--pb-warm-100);
  --pb-border: var(--pb-warm-200);
  --pb-border-strong: var(--pb-warm-300);
  --pb-primary: var(--pb-blue-600);
  --pb-primary-hover: var(--pb-blue-700);
  --pb-primary-text: var(--pb-blue-700);
  --pb-primary-soft: var(--pb-blue-100);
  --pb-primary-tint: var(--pb-blue-50);
  --pb-accent: var(--pb-orange-700);
  --pb-accent-hover: var(--pb-orange-800);
  --pb-danger: var(--pb-red-600);
  --pb-success: var(--pb-green-700);
  --pb-focus: #0b3ccc;
  --pb-footer-bg: var(--pb-warm-900);

  /* Abstände */
  --pb-space-1: 4px;
  --pb-space-2: 8px;
  --pb-space-3: 12px;
  --pb-space-4: 16px;
  --pb-space-5: 24px;
  --pb-space-6: 32px;
  --pb-space-7: 48px;
  --pb-space-8: 64px;

  /* Radius */
  --pb-radius-sm: 4px;
  --pb-radius: 8px;
  --pb-radius-lg: 12px;
  --pb-radius-pill: 999px;

  /* Schrift */
  --pb-font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --pb-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --pb-fs-xs: 0.75rem;
  --pb-fs-sm: 0.875rem;
  --pb-fs-md: 1rem;
  --pb-fs-lg: 1.125rem;
  --pb-fs-xl: 1.375rem;
  --pb-fs-2xl: 1.75rem;
  --pb-fs-3xl: 2.25rem;
  --pb-lh: 1.5;
  --pb-lh-tight: 1.2;

  /* Schatten */
  --pb-shadow-sm: 0 1px 2px rgba(31, 29, 26, 0.06), 0 1px 3px rgba(31, 29, 26, 0.08);
  --pb-shadow-md: 0 4px 12px rgba(31, 29, 26, 0.08), 0 2px 4px rgba(31, 29, 26, 0.06);
  --pb-shadow-lg: 0 16px 40px rgba(31, 29, 26, 0.18);

  /* Layout */
  --pb-container: 1200px;
  --pb-container-narrow: 560px;
  --pb-container-medium: 820px;
}

/* --------------------------------------------------------------------------
   Basis
   -------------------------------------------------------------------------- */
.pb-body {
  margin: 0;
  font-family: var(--pb-font);
  font-size: var(--pb-fs-md);
  line-height: var(--pb-lh);
  color: var(--pb-text);
  background: var(--pb-bg);
  -webkit-text-size-adjust: 100%;
  text-wrap: pretty;
}
.pb-body *,
.pb-body *::before,
.pb-body *::after { box-sizing: border-box; }
.pb-body :focus-visible {
  outline: 3px solid var(--pb-focus);
  outline-offset: 2px;
}
:where(.pb-body) a { color: var(--pb-primary-text); text-decoration: underline; text-underline-offset: 0.15em; text-decoration-thickness: 1px; }
:where(.pb-body) a:hover { color: var(--pb-blue-900); }
.pb-body [hidden] { display: none !important; }
.pb-body img, .pb-body svg { max-width: 100%; }
:where(.pb-body) h1, :where(.pb-body) h2, :where(.pb-body) h3, :where(.pb-body) h4 { line-height: var(--pb-lh-tight); font-weight: 600; letter-spacing: -0.01em; margin: 0; }
:where(.pb-body) p { margin: 0; }

.pb-h1 { font-size: var(--pb-fs-2xl); }
.pb-h2 { font-size: var(--pb-fs-xl); }
.pb-h3 { font-size: var(--pb-fs-lg); }
.pb-h4 { font-size: var(--pb-fs-md); }
@media (min-width: 600px) {
  .pb-h1 { font-size: var(--pb-fs-3xl); }
  .pb-h2 { font-size: var(--pb-fs-2xl); }
}

.pb-skip {
  position: absolute; left: 8px; top: -100px; z-index: 100;
  padding: 8px 12px; background: var(--pb-warm-900); color: #fff; border-radius: var(--pb-radius);
}
.pb-skip:focus { top: 8px; }

.pb-visually-hidden {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* --------------------------------------------------------------------------
   Icons (Lucide-Sprite)
   -------------------------------------------------------------------------- */
.pb-icon {
  width: 1.25em; height: 1.25em; flex-shrink: 0;
  fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round;
  vertical-align: -0.25em;
}
.pb-icon--sm { width: 1em; height: 1em; }
.pb-icon--lg { width: 1.75em; height: 1.75em; }

/* --------------------------------------------------------------------------
   Layout
   -------------------------------------------------------------------------- */
.pb-container { width: 100%; max-width: var(--pb-container); margin-inline: auto; padding-inline: var(--pb-space-4); }
.pb-container--narrow { max-width: var(--pb-container-narrow); margin-inline: auto; }
.pb-container--medium { max-width: var(--pb-container-medium); margin-inline: auto; }
@media (min-width: 600px) { .pb-container { padding-inline: var(--pb-space-5); } }

.pb-main { padding-block: var(--pb-space-5) var(--pb-space-7); }
.pb-main--flush { padding-top: 0; }
.pb-main--flush > .pb-container > .pb-section:first-child { margin-top: var(--pb-space-7); }

.pb-section { margin-top: var(--pb-space-7); }
.pb-section:first-child { margin-top: 0; }
.pb-section__head {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between;
  gap: var(--pb-space-2) var(--pb-space-4); margin-bottom: var(--pb-space-4);
}
.pb-section__title { font-size: var(--pb-fs-xl); }
.pb-section__lead { color: var(--pb-text-muted); max-width: 70ch; margin-top: var(--pb-space-2); }
.pb-section__more { font-size: var(--pb-fs-sm); font-weight: 600; display: inline-flex; align-items: center; gap: 4px; }

.pb-grid { display: grid; gap: var(--pb-space-4); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) {
  .pb-grid--2, .pb-grid--3, .pb-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
  .pb-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pb-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
  .pb-grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (min-width: 600px) and (max-width: 1199px) {
  .pb-grid--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.pb-layout { display: grid; gap: var(--pb-space-6); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) {
  .pb-layout--sidebar { grid-template-columns: 280px minmax(0, 1fr); align-items: stretch; }
  .pb-layout--detail { grid-template-columns: minmax(0, 1fr) 340px; align-items: start; }
  .pb-layout--account { grid-template-columns: 220px minmax(0, 1fr); align-items: start; }
  .pb-layout--split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: stretch; }
  .pb-layout--messages { grid-template-columns: 320px minmax(0, 1fr); align-items: start; }
}

.pb-stack { display: grid; gap: var(--pb-space-4); }
.pb-stack--sm { gap: var(--pb-space-2); }
.pb-stack--lg { gap: var(--pb-space-6); }
.pb-cluster { display: flex; flex-wrap: wrap; gap: var(--pb-space-2); align-items: center; }
.pb-cluster--between { justify-content: space-between; }
.pb-cluster--end { justify-content: flex-end; }
.pb-sticky { position: static; }
@media (min-width: 900px) { .pb-sticky { position: sticky; top: var(--pb-space-4); } }

/* --------------------------------------------------------------------------
   Header (Logo-Platz, Menüstruktur der Bestandsseite plus Börse)
   -------------------------------------------------------------------------- */
.pb-header { background: #fff; border-bottom: 1px solid var(--pb-border); position: relative; z-index: 30; }
.pb-header__inner { display: flex; align-items: center; gap: var(--pb-space-3); min-height: 64px; }
.pb-logo { display: inline-flex; align-items: center; flex-shrink: 0; }
.pb-logo img { display: block; height: 30px; width: auto; }
@media (min-width: 600px) { .pb-logo img { height: 36px; } }

.pb-header__actions { margin-left: auto; display: flex; align-items: center; gap: var(--pb-space-2); }
.pb-header__actions .pb-btn__label { display: none; }
.pb-header__actions .pb-header__search { display: none; }
.pb-header__cta { min-height: 36px; padding: 6px 12px; font-size: var(--pb-fs-sm); }
@media (min-width: 600px) {
  .pb-header__actions .pb-btn__label { display: inline; }
  .pb-header__actions .pb-header__search { display: inline-flex; }
  .pb-header__cta { min-height: 44px; padding: 10px 18px; font-size: var(--pb-fs-md); }
}

.pb-nav__toggle { order: 3; }
.pb-nav {
  display: none; position: absolute; top: 100%; left: 0; right: 0;
  background: #fff; border-bottom: 1px solid var(--pb-border); box-shadow: var(--pb-shadow-md);
  padding: var(--pb-space-2) var(--pb-space-4) var(--pb-space-4);
  max-height: calc(100vh - 64px); overflow-y: auto;
}
.pb-nav.is-open { display: block; }
.pb-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.pb-nav__item { position: relative; }
.pb-nav__link {
  display: flex; align-items: center; gap: 4px; padding: 12px; min-height: 44px;
  color: var(--pb-text); text-decoration: none; font-weight: 500; border-radius: var(--pb-radius);
}
.pb-nav__link:hover { background: var(--pb-bg-muted); color: var(--pb-text); }
.pb-nav__link--current { color: var(--pb-primary-text); box-shadow: inset 3px 0 0 var(--pb-primary); }
.pb-nav__link .pb-icon { width: 16px; height: 16px; color: var(--pb-text-subtle); }
.pb-nav__sub { list-style: none; margin: 0; padding: 0 0 var(--pb-space-2) var(--pb-space-4); }
.pb-nav__sublink {
  display: block; padding: 10px 12px; min-height: 44px; color: var(--pb-text-muted); text-decoration: none; border-radius: var(--pb-radius);
}
.pb-nav__sublink:hover { background: var(--pb-bg-muted); color: var(--pb-text); }
.pb-nav__divider { border-top: 1px solid var(--pb-border); margin: var(--pb-space-2) 0; }
@media (min-width: 900px) {
  .pb-header .pb-nav__toggle { display: none; }
  .pb-header__inner { flex-wrap: wrap; }
  .pb-nav {
    display: block; position: static; background: none; border: 0; box-shadow: none; overflow: visible; max-height: none;
    order: 5; flex: 1 1 100%; border-top: 1px solid var(--pb-border); margin: 0; padding: 0;
  }
  .pb-nav__list { flex-direction: row; flex-wrap: wrap; gap: 2px; align-items: center; }
  .pb-nav__link { padding: 10px 12px; }
  .pb-nav__link--current { box-shadow: inset 0 -3px 0 var(--pb-primary); border-radius: 0; }
  .pb-nav__sub {
    display: none; position: absolute; top: 100%; left: 0; z-index: 40; min-width: 240px;
    background: #fff; border: 1px solid var(--pb-border); border-radius: var(--pb-radius); box-shadow: var(--pb-shadow-md); padding: var(--pb-space-2);
  }
  .pb-nav__item:hover > .pb-nav__sub,
  .pb-nav__item:focus-within > .pb-nav__sub { display: block; }
  .pb-nav__divider { border-top: 0; border-left: 1px solid var(--pb-border); height: 24px; margin: 0 var(--pb-space-2); }
}
@media (min-width: 1200px) {
  .pb-header__inner { flex-wrap: nowrap; }
  .pb-nav { order: 0; flex: 0 1 auto; min-width: 0; border-top: 0; margin-left: var(--pb-space-3); }
  .pb-nav__list { flex-wrap: nowrap; }
  .pb-nav__link { padding: 10px 10px; white-space: nowrap; }
  .pb-nav__link--current { border-radius: var(--pb-radius) var(--pb-radius) 0 0; }
  .pb-header__actions { flex-shrink: 0; }
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.pb-footer { background: var(--pb-footer-bg); color: #fff; margin-top: var(--pb-space-8); padding-block: var(--pb-space-7) var(--pb-space-5); font-size: var(--pb-fs-sm); }
.pb-footer a { color: #fff; }
.pb-footer a:hover { color: var(--pb-warm-300); }
.pb-footer .pb-logo { display: inline-flex; padding: 6px 10px; background: #fff; border-radius: var(--pb-radius); }
.pb-footer__grid { display: grid; gap: var(--pb-space-5); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .pb-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 900px) { .pb-footer__grid { grid-template-columns: 1.4fr repeat(3, minmax(0, 1fr)); } }
.pb-footer__title { font-size: var(--pb-fs-sm); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--pb-warm-300); margin-bottom: var(--pb-space-3); }
.pb-footer__title a { color: var(--pb-warm-300); text-decoration: none; }
.pb-footer__title a:hover { color: #fff; text-decoration: underline; }
.pb-footer__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.pb-footer__about { color: var(--pb-warm-300); max-width: 36ch; }
.pb-footer__about .pb-logo { margin-bottom: var(--pb-space-3); }
.pb-footer__about .pb-logo img { height: 24px; }
.pb-footer__bottom {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--pb-space-2) var(--pb-space-4);
  margin-top: var(--pb-space-6); padding-top: var(--pb-space-4); border-top: 1px solid var(--pb-warm-800); color: var(--pb-warm-300);
}
.pb-footer__legal-btn { font: inherit; font-weight: 600; }

/* --------------------------------------------------------------------------
   Breadcrumbs
   -------------------------------------------------------------------------- */
.pb-crumbs { font-size: var(--pb-fs-sm); color: var(--pb-text-muted); margin-bottom: var(--pb-space-4); }
.pb-crumbs__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 6px; }
.pb-crumbs__item + .pb-crumbs__item::before { content: "›"; margin-right: 6px; color: var(--pb-warm-500); }
.pb-crumbs__link { color: var(--pb-text-muted); text-decoration: none; }
.pb-crumbs__link:hover { color: var(--pb-text); text-decoration: underline; }
.pb-crumbs__current { color: var(--pb-text); }

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.pb-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 44px; padding: 10px 18px; border: 1px solid transparent; border-radius: var(--pb-radius);
  font: inherit; font-weight: 600; font-size: var(--pb-fs-md); line-height: 1.25; text-decoration: none; cursor: pointer;
  color: var(--pb-text); background: transparent; white-space: nowrap;
  transition: background-color 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s;
}
.pb-btn .pb-icon { width: 20px; height: 20px; }
.pb-btn:hover { text-decoration: none; }
.pb-btn--primary { background: var(--pb-primary); color: #fff; }
.pb-btn--primary:hover { background: var(--pb-primary-hover); color: #fff; }
.pb-btn--secondary { background: #fff; border-color: var(--pb-border-strong); color: var(--pb-text); }
.pb-btn--secondary:hover { border-color: var(--pb-warm-500); background: var(--pb-bg-soft); color: var(--pb-text); }
.pb-btn--ghost { color: var(--pb-text); }
.pb-btn--ghost:hover { background: var(--pb-bg-muted); color: var(--pb-text); }
.pb-btn--buy { background: var(--pb-accent); color: #fff; }
.pb-btn--buy:hover { background: var(--pb-accent-hover); color: #fff; }
.pb-btn--danger { background: #fff; border-color: var(--pb-red-600); color: var(--pb-red-700); }
.pb-btn--danger:hover { background: var(--pb-red-50); color: var(--pb-red-800); }
.pb-btn--danger-solid { background: var(--pb-red-600); color: #fff; }
.pb-btn--danger-solid:hover { background: var(--pb-red-700); color: #fff; }
.pb-btn--inverted { background: #fff; color: var(--pb-text); }
.pb-btn--inverted:hover { background: var(--pb-warm-100); color: var(--pb-text); }
.pb-btn--link { padding: 0; min-height: 0; border-radius: 2px; color: var(--pb-primary-text); text-decoration: underline; text-underline-offset: 0.15em; font-weight: 500; }
.pb-btn--link:hover { color: var(--pb-blue-900); text-decoration: underline; }
.pb-btn--sm { min-height: 36px; padding: 6px 12px; font-size: var(--pb-fs-sm); }
.pb-btn--sm .pb-icon { width: 16px; height: 16px; }
.pb-btn--lg { min-height: 52px; padding: 14px 26px; font-size: var(--pb-fs-lg); }
.pb-btn--block { width: 100%; }
.pb-btn--icon { padding: 0; width: 44px; }
.pb-btn--icon.pb-btn--sm { width: 36px; }
.pb-btn[disabled], .pb-btn[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; }
.pb-btn--loading .pb-icon { animation: pb-spin 1s linear infinite; }
.pb-btn__label { display: inline; }
.pb-btn-group { display: flex; flex-wrap: wrap; gap: var(--pb-space-2); }
.pb-btn-group--stack { flex-direction: column; }
.pb-btn-group--stack .pb-btn { width: 100%; }

/* --------------------------------------------------------------------------
   Formulare
   -------------------------------------------------------------------------- */
.pb-form { display: grid; gap: var(--pb-space-5); }
.pb-field { display: grid; gap: 6px; align-content: start; }
.pb-label { font-weight: 600; font-size: var(--pb-fs-sm); }
.pb-label__opt { font-weight: 400; color: var(--pb-text-muted); }
.pb-input, .pb-select, .pb-textarea {
  width: 100%; min-height: 44px; padding: 10px 12px;
  border: 1px solid var(--pb-border-strong); border-radius: var(--pb-radius);
  font: inherit; color: var(--pb-text); background: #fff;
}
.pb-input::placeholder, .pb-textarea::placeholder { color: var(--pb-warm-600); }
.pb-input:focus, .pb-select:focus, .pb-textarea:focus { border-color: var(--pb-primary); }
.pb-input[disabled], .pb-select[disabled], .pb-textarea[disabled], .pb-input[readonly] { background: var(--pb-bg-muted); color: var(--pb-text-muted); }
.pb-select {
  appearance: none; padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%235c574f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center; background-size: 20px;
}
.pb-textarea { min-height: 128px; resize: vertical; line-height: var(--pb-lh); }
.pb-input--sm, .pb-select--sm { min-height: 36px; padding: 6px 10px; font-size: var(--pb-fs-sm); }
.pb-input--code { font-family: var(--pb-font-mono); letter-spacing: 0.08em; }
.pb-hint { font-size: var(--pb-fs-sm); color: var(--pb-text-muted); }
.pb-error { font-size: var(--pb-fs-sm); color: var(--pb-red-700); font-weight: 500; display: flex; gap: 6px; align-items: flex-start; }
.pb-error .pb-icon { width: 16px; height: 16px; margin-top: 3px; }
.pb-field--invalid .pb-input, .pb-field--invalid .pb-select, .pb-field--invalid .pb-textarea { border-color: var(--pb-red-600); box-shadow: 0 0 0 1px var(--pb-red-600); }
.pb-field--valid .pb-input { border-color: var(--pb-green-700); }
.pb-input-group { display: flex; }
.pb-input-group .pb-input { flex: 1 1 auto; min-width: 0; border-radius: var(--pb-radius) 0 0 var(--pb-radius); }
.pb-input-group .pb-select { width: auto; flex: 0 0 auto; min-width: 128px; border-left: 0; border-radius: 0 var(--pb-radius) var(--pb-radius) 0; }
.pb-input-group .pb-input-group__addon {
  display: inline-flex; align-items: center; padding: 0 12px; border: 1px solid var(--pb-border-strong); border-left: 0;
  border-radius: 0 var(--pb-radius) var(--pb-radius) 0; background: var(--pb-bg-muted); color: var(--pb-text-muted); font-size: var(--pb-fs-sm); white-space: nowrap;
}
.pb-input-group .pb-btn { border-radius: 0 var(--pb-radius) var(--pb-radius) 0; }
.pb-input-group .pb-input-group__num { flex: 1 1 auto; min-width: 0; display: flex; }
.pb-input-group .pb-input-group__num[hidden] + .pb-select { border-left: 1px solid var(--pb-border-strong); border-radius: var(--pb-radius); flex: 1 1 auto; }
.pb-input-wrap { position: relative; }
.pb-input-wrap .pb-input { padding-right: 48px; }
.pb-input-wrap__btn { position: absolute; right: 2px; top: 2px; bottom: 2px; width: 40px; min-height: 0; padding: 0; border-radius: 6px; }

.pb-check { display: flex; gap: 10px; align-items: flex-start; font-size: var(--pb-fs-md); cursor: pointer; }
.pb-check--sm { font-size: var(--pb-fs-sm); }
.pb-check__input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--pb-primary); flex-shrink: 0; cursor: pointer; }
.pb-check__text { min-width: 0; }
.pb-check-group { display: grid; gap: 10px; }
.pb-check-group--inline { display: flex; flex-wrap: wrap; gap: 10px 20px; }
.pb-field--invalid .pb-check__input { outline: 2px solid var(--pb-red-600); outline-offset: 1px; border-radius: 3px; }

.pb-choice {
  position: relative; display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px;
  border: 1px solid var(--pb-border-strong); border-radius: var(--pb-radius); background: #fff; cursor: pointer;
}
.pb-choice:hover { border-color: var(--pb-warm-500); }
.pb-choice:has(.pb-check__input:checked) { border-color: var(--pb-primary); background: var(--pb-primary-tint); box-shadow: 0 0 0 1px var(--pb-primary); }
.pb-choice:has(.pb-check__input:focus-visible) { outline: 3px solid var(--pb-focus); outline-offset: 2px; }
.pb-choice:has(.pb-check__input:focus-visible) .pb-check__input { outline: none; }
.pb-choice__body { flex: 1 1 auto; min-width: 0; display: grid; gap: 2px; }
.pb-choice__title { font-weight: 600; }
.pb-choice__desc { font-size: var(--pb-fs-sm); color: var(--pb-text-muted); }
.pb-choice__aside { margin-left: auto; font-weight: 600; white-space: nowrap; }
.pb-choice-group { display: grid; gap: 10px; }
@media (min-width: 600px) { .pb-choice-group--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.pb-fieldset { border: 0; padding: 0; margin: 0; min-width: 0; display: grid; gap: var(--pb-space-3); }
.pb-legend { font-weight: 600; padding: 0; margin: 0 0 var(--pb-space-1); font-size: var(--pb-fs-md); }
.pb-legend--lg { font-size: var(--pb-fs-lg); }
.pb-form-row { display: grid; gap: var(--pb-space-4); }
@media (min-width: 600px) {
  .pb-form-row--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pb-form-row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pb-form-row--plz { grid-template-columns: 140px minmax(0, 1fr); }
}
.pb-form-section { display: grid; gap: var(--pb-space-4); padding-top: var(--pb-space-5); border-top: 1px solid var(--pb-border); }
.pb-form-section__title { font-size: var(--pb-fs-lg); }
.pb-form-actions {
  display: flex; flex-wrap: wrap; gap: var(--pb-space-3); justify-content: space-between; align-items: center;
  padding-top: var(--pb-space-4); border-top: 1px solid var(--pb-border);
}
.pb-form-actions__right { display: flex; flex-wrap: wrap; gap: var(--pb-space-2); margin-left: auto; }
.pb-form-status:empty { display: none; }
.pb-required-note { font-size: var(--pb-fs-sm); color: var(--pb-text-muted); }

.pb-typeahead { position: relative; }
.pb-typeahead__list {
  position: absolute; top: 100%; left: 0; right: 0; z-index: 20; margin: 4px 0 0; padding: 4px; list-style: none;
  background: #fff; border: 1px solid var(--pb-border); border-radius: var(--pb-radius); box-shadow: var(--pb-shadow-md); max-height: 240px; overflow-y: auto;
}
.pb-typeahead__item { padding: 10px 12px; border-radius: var(--pb-radius-sm); cursor: pointer; display: flex; justify-content: space-between; gap: 12px; }
.pb-typeahead__item:hover, .pb-typeahead__item[aria-selected="true"] { background: var(--pb-primary-tint); }
.pb-typeahead__item small { color: var(--pb-text-muted); }

progress.pb-progress { appearance: none; -webkit-appearance: none; width: 100%; height: 8px; border: 0; border-radius: var(--pb-radius-pill); overflow: hidden; background: var(--pb-warm-200); display: block; }
progress.pb-progress::-webkit-progress-bar { background: var(--pb-warm-200); border-radius: var(--pb-radius-pill); }
progress.pb-progress::-webkit-progress-value { background: var(--pb-primary); border-radius: var(--pb-radius-pill); }
progress.pb-progress::-moz-progress-bar { background: var(--pb-primary); border-radius: var(--pb-radius-pill); }
progress.pb-progress--warning::-webkit-progress-value { background: var(--pb-amber-600); }
progress.pb-progress--warning::-moz-progress-bar { background: var(--pb-amber-600); }
progress.pb-progress--muted::-webkit-progress-value { background: var(--pb-warm-500); }
progress.pb-progress--muted::-moz-progress-bar { background: var(--pb-warm-500); }

/* Dropzone */
.pb-dropzone {
  position: relative; display: grid; gap: var(--pb-space-2); justify-items: center; text-align: center;
  padding: var(--pb-space-6) var(--pb-space-4); border: 2px dashed var(--pb-border-strong); border-radius: var(--pb-radius-lg); background: var(--pb-bg-soft);
}
.pb-dropzone.is-dragover { border-color: var(--pb-primary); background: var(--pb-primary-tint); }
.pb-dropzone .pb-icon { width: 32px; height: 32px; color: var(--pb-warm-500); }
.pb-dropzone__text { font-weight: 600; }
.pb-dropzone__hint { font-size: var(--pb-fs-sm); color: var(--pb-text-muted); }
.pb-dropzone__input:focus-visible ~ .pb-dropzone__btn { outline: 3px solid var(--pb-focus); outline-offset: 2px; }
.pb-files { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--pb-space-2); }
.pb-file { display: flex; gap: 12px; align-items: center; padding: 10px 12px; border: 1px solid var(--pb-border); border-radius: var(--pb-radius); background: #fff; }
.pb-file__thumb { width: 64px; height: 48px; border-radius: var(--pb-radius-sm); overflow: hidden; flex-shrink: 0; }
.pb-file__thumb .pb-photo { min-height: 0; font-size: 0; }
.pb-file__thumb .pb-photo .pb-icon { width: 18px; height: 18px; }
.pb-file__name { font-weight: 500; flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pb-file__meta { font-size: var(--pb-fs-xs); color: var(--pb-text-muted); }
.pb-file--title { border-color: var(--pb-primary); }

/* --------------------------------------------------------------------------
   Badges
   -------------------------------------------------------------------------- */
.pb-badge {
  display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: var(--pb-radius-pill);
  font-size: var(--pb-fs-xs); font-weight: 600; line-height: 1.5; white-space: nowrap; letter-spacing: 0.01em;
  background: var(--pb-warm-100); color: var(--pb-warm-700); border: 1px solid transparent;
}
.pb-badge .pb-icon { width: 13px; height: 13px; stroke-width: 2.5; }
.pb-badge--angebot { background: var(--pb-blue-100); color: var(--pb-blue-800); }
.pb-badge--gesuch { background: var(--pb-teal-100); color: var(--pb-teal-800); }
.pb-badge--top { background: var(--pb-amber-100); color: var(--pb-amber-800); }
.pb-badge--gewerblich { background: var(--pb-warm-200); color: var(--pb-warm-900); }
.pb-badge--privat { background: #fff; border-color: var(--pb-border-strong); color: var(--pb-warm-700); }
.pb-badge--verified { background: var(--pb-green-50); color: var(--pb-green-800); }
.pb-badge--pending { background: var(--pb-amber-50); color: var(--pb-amber-900); border-color: var(--pb-amber-300); }
.pb-badge--active { background: var(--pb-green-100); color: var(--pb-green-800); }
.pb-badge--expired { background: var(--pb-warm-200); color: var(--pb-warm-700); }
.pb-badge--rejected { background: var(--pb-red-100); color: var(--pb-red-800); }
.pb-badge--draft { background: #fff; border: 1px dashed var(--pb-border-strong); color: var(--pb-warm-700); }
.pb-badge--danger { background: var(--pb-red-600); color: #fff; }
.pb-badge--count { background: var(--pb-primary); color: #fff; padding: 0 7px; min-width: 20px; justify-content: center; }
.pb-badges { display: flex; flex-wrap: wrap; gap: 6px; }

/* --------------------------------------------------------------------------
   Foto-Platzhalter (Prototyp: Kategorie-Tönung + Lucide-Icon statt Bild)
   -------------------------------------------------------------------------- */
.pb-photo {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  width: 100%; height: 100%; min-height: 120px; color: var(--pb-warm-600); font-size: var(--pb-fs-xs);
  background-color: var(--pb-warm-100);
  background-image: repeating-linear-gradient(135deg, transparent 0 14px, rgba(31, 29, 26, 0.04) 14px 28px);
}
.pb-photo .pb-icon { width: 28px; height: 28px; color: var(--pb-warm-500); stroke-width: 1.5; }
.pb-photo--energie { background-color: #f3efdf; }
.pb-photo--landwirtschaft { background-color: #e7efe2; }
.pb-photo--gastronomie-hotellerie { background-color: #f2e8e3; }
.pb-photo--gewerbe { background-color: #e6e9ee; }
.pb-photo--freizeit { background-color: #e2eee9; }
.pb-photo--wohnen-grundstuecke { background-color: #efe9df; }
.pb-photo--expired { filter: grayscale(1); opacity: 0.7; }

/* --------------------------------------------------------------------------
   Cards (Inserate)
   -------------------------------------------------------------------------- */
.pb-card {
  position: relative; display: flex; flex-direction: column; background: #fff;
  border: 1px solid var(--pb-border); border-radius: var(--pb-radius-lg); overflow: hidden;
  transition: box-shadow 0.15s, border-color 0.15s;
}
.pb-card:hover { box-shadow: var(--pb-shadow-md); border-color: var(--pb-border-strong); }
.pb-card:focus-within { box-shadow: var(--pb-shadow-md); }
.pb-card--top { border-color: var(--pb-amber-300); }
.pb-card--expired { opacity: 0.85; }
.pb-card__media { display: block; aspect-ratio: 4 / 3; background: var(--pb-bg-muted); position: relative; text-decoration: none; color: inherit; }
.pb-card__body { padding: var(--pb-space-4); display: grid; gap: var(--pb-space-2); align-content: start; flex: 1 1 auto; }
.pb-card__badges { display: flex; flex-wrap: wrap; gap: 6px; }
.pb-card__title { font-size: var(--pb-fs-lg); font-weight: 600; line-height: 1.3; }
.pb-card__link { color: var(--pb-text); text-decoration: none; }
.pb-card__link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.pb-card__link:hover { color: var(--pb-primary-text); }
.pb-card__loc { display: flex; align-items: center; gap: 6px; color: var(--pb-text-muted); font-size: var(--pb-fs-sm); }
.pb-card__loc .pb-icon { width: 16px; height: 16px; }
.pb-card__dist { color: var(--pb-text-muted); white-space: nowrap; flex-shrink: 0; }
.pb-card__dist::before { content: "·"; margin: 0 4px; }
.pb-card__facts { display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 0; }
.pb-card__fact { display: flex; flex-direction: column; }
.pb-card__fact dt { font-size: var(--pb-fs-xs); color: var(--pb-text-muted); }
.pb-card__fact dd { margin: 0; font-weight: 600; font-variant-numeric: tabular-nums; }
.pb-card__price { font-size: var(--pb-fs-lg); font-weight: 700; color: var(--pb-text); }
.pb-card__footer { display: flex; justify-content: space-between; gap: 8px; align-items: center; font-size: var(--pb-fs-xs); color: var(--pb-text-muted); margin-top: auto; padding-top: var(--pb-space-1); }
.pb-card__fav {
  position: absolute; top: 8px; right: 8px; z-index: 2; width: 40px; height: 40px; min-height: 0; padding: 0;
  border-radius: 50%; background: rgba(255, 255, 255, 0.94); border: 1px solid var(--pb-border); color: var(--pb-text-muted);
}
.pb-card__fav:hover { color: var(--pb-accent); background: #fff; }
.pb-card__fav[aria-pressed="true"] { color: var(--pb-accent); }
.pb-card__fav[aria-pressed="true"] .pb-icon { fill: currentColor; }
.pb-card__fav .pb-icon { width: 20px; height: 20px; }
.pb-card__excerpt { font-size: var(--pb-fs-sm); color: var(--pb-text-muted); display: none; }
@media (min-width: 600px) {
  .pb-card--row { flex-direction: row; }
  .pb-card--row .pb-card__media { width: 260px; flex-shrink: 0; aspect-ratio: auto; min-height: 190px; }
  .pb-card--row .pb-card__body { padding: var(--pb-space-4) var(--pb-space-5); }
  .pb-card--row .pb-card__excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
}
.pb-card--compact .pb-card__media { aspect-ratio: 16 / 9; }
.pb-card--compact .pb-card__body { padding: var(--pb-space-3); gap: 6px; }
.pb-card--compact .pb-card__title { font-size: var(--pb-fs-md); }

/* Ratgeber-Artikelkarte (Startseite, Ratgeber-Kategorieseite) */
.pb-card__kicker { font-size: var(--pb-fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--pb-primary-text); }
.pb-card--post .pb-card__media { aspect-ratio: 16 / 9; }
.pb-card--post .pb-card__excerpt { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pb-card--post .pb-card__title { font-size: var(--pb-fs-md); }

/* Gesuch-Karte ohne Foto */
.pb-card--gesuch .pb-card__media { display: none; }
.pb-card--gesuch { border-left: 4px solid var(--pb-teal-800); }
.pb-card--gesuch .pb-card__badges { padding-right: 48px; }

/* Panel */
.pb-panel { background: #fff; border: 1px solid var(--pb-border); border-radius: var(--pb-radius-lg); padding: var(--pb-space-5); }
.pb-panel--soft { background: var(--pb-bg-soft); }
.pb-panel--tint { background: var(--pb-primary-tint); border-color: var(--pb-blue-100); }
.pb-panel--sm { padding: var(--pb-space-4); }
.pb-panel__title { font-size: var(--pb-fs-lg); margin-bottom: var(--pb-space-3); }
.pb-panel__title--sm { font-size: var(--pb-fs-md); }

/* --------------------------------------------------------------------------
   Kategorie-Kacheln, Teaser, CTA
   -------------------------------------------------------------------------- */
.pb-tile {
  display: flex; gap: 14px; align-items: center; padding: var(--pb-space-4); min-height: 76px;
  border: 1px solid var(--pb-border); border-radius: var(--pb-radius-lg); background: #fff; text-decoration: none; color: var(--pb-text);
  transition: border-color 0.15s, box-shadow 0.15s;
}
.pb-tile:hover { border-color: var(--pb-primary); box-shadow: var(--pb-shadow-sm); color: var(--pb-text); }
.pb-tile__icon { width: 44px; height: 44px; flex-shrink: 0; border-radius: 10px; background: var(--pb-primary-tint); color: var(--pb-primary-text); display: grid; place-items: center; }
.pb-tile__icon .pb-icon { width: 22px; height: 22px; }
.pb-tile__body { display: grid; gap: 2px; min-width: 0; }
.pb-tile__name { font-weight: 600; line-height: 1.3; }
.pb-tile__count { font-size: var(--pb-fs-sm); color: var(--pb-text-muted); }
.pb-tile__subs { display: none; font-size: var(--pb-fs-xs); color: var(--pb-text-subtle); margin-top: 2px; }
@media (min-width: 600px) { .pb-tile__subs { display: block; } }
.pb-tile--sub { min-height: 0; padding: 12px 14px; }
.pb-tile--sub .pb-tile__name { font-size: var(--pb-fs-sm); }
.pb-tile--current { border-color: var(--pb-primary); background: var(--pb-primary-tint); }

.pb-teaser {
  display: flex; gap: 14px; align-items: flex-start; padding: var(--pb-space-3);
  border: 1px solid var(--pb-border); border-radius: var(--pb-radius-lg); background: #fff; text-decoration: none; color: var(--pb-text);
}
.pb-teaser:hover { border-color: var(--pb-border-strong); box-shadow: var(--pb-shadow-sm); color: var(--pb-text); }
.pb-teaser__img { width: 96px; height: 72px; flex-shrink: 0; border-radius: var(--pb-radius); overflow: hidden; text-decoration: none; }
.pb-teaser__img .pb-photo { min-height: 0; font-size: 0; }
.pb-teaser__img .pb-photo .pb-icon { width: 22px; height: 22px; }
.pb-teaser__kicker { font-size: var(--pb-fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--pb-primary-text); }
.pb-teaser__title { font-weight: 600; line-height: 1.3; margin-top: 2px; font-size: var(--pb-fs-md); }
.pb-teaser__meta { font-size: var(--pb-fs-xs); color: var(--pb-text-muted); margin-top: 4px; }
.pb-teaser--list { border: 0; padding: 0; border-radius: 0; }
.pb-teaser--list:hover { box-shadow: none; }

.pb-linklist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pb-linklist__link { display: flex; gap: 10px; align-items: flex-start; text-decoration: none; color: var(--pb-text); font-weight: 500; }
.pb-linklist__link:hover { color: var(--pb-primary-text); text-decoration: underline; }
.pb-linklist__link .pb-icon { width: 18px; height: 18px; margin-top: 3px; color: var(--pb-text-subtle); }

.pb-cta { background: var(--pb-warm-900); color: #fff; border-radius: var(--pb-radius-lg); padding: var(--pb-space-6); display: grid; gap: var(--pb-space-4); align-content: start; }
.pb-cta__title { font-size: var(--pb-fs-xl); }
.pb-cta__text { color: var(--pb-warm-300); }
.pb-cta__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: var(--pb-fs-sm); }
.pb-cta__list li { display: flex; gap: 8px; align-items: flex-start; }
.pb-cta__list .pb-icon { width: 18px; height: 18px; margin-top: 2px; color: var(--pb-amber-300); }
.pb-cta__actions { display: flex; flex-wrap: wrap; gap: var(--pb-space-2); }
.pb-cta .pb-btn--ghost { color: #fff; }
.pb-cta .pb-btn--ghost:hover { background: rgba(255, 255, 255, 0.12); color: #fff; }
.pb-cta__note { font-size: var(--pb-fs-xs); color: var(--pb-warm-300); }
.pb-cta__note a { color: #fff; }

/* Hero */
.pb-hero { background: var(--pb-primary-tint); border-bottom: 1px solid var(--pb-blue-100); padding-block: var(--pb-space-6) var(--pb-space-6); }
.pb-hero__title { font-size: var(--pb-fs-2xl); max-width: 24ch; }
.pb-hero__lead { color: var(--pb-text-muted); max-width: 60ch; margin-top: var(--pb-space-2); font-size: var(--pb-fs-lg); }
.pb-hero__switch { margin-bottom: var(--pb-space-4); }
.pb-hero__links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--pb-space-4); }
.pb-hero--start .pb-hero__title { max-width: 28ch; }
@media (min-width: 900px) { .pb-hero { padding-block: var(--pb-space-7); } .pb-hero__title { font-size: var(--pb-fs-3xl); } }

/* Segmented Switch (Angebote/Gesuche) */
.pb-segment { display: inline-flex; padding: 3px; background: #fff; border: 1px solid var(--pb-border-strong); border-radius: var(--pb-radius-pill); }
.pb-segment__item { display: inline-flex; align-items: center; min-height: 36px; padding: 0 16px; border-radius: var(--pb-radius-pill); font-weight: 600; font-size: var(--pb-fs-sm); color: var(--pb-text-muted); text-decoration: none; }
.pb-segment__item:hover { color: var(--pb-text); }
.pb-segment__item[aria-current="page"] { background: var(--pb-warm-900); color: #fff; }

/* Suchleiste */
.pb-searchbar {
  display: grid; gap: var(--pb-space-3); padding: var(--pb-space-4); margin-top: var(--pb-space-5);
  background: #fff; border: 1px solid var(--pb-border); border-radius: var(--pb-radius-lg); box-shadow: var(--pb-shadow-sm);
}
.pb-searchbar .pb-field { gap: 4px; }
.pb-searchbar__submit { align-self: end; }
@media (min-width: 600px) { .pb-searchbar { grid-template-columns: 1fr 1fr; } .pb-searchbar__submit { grid-column: span 2; } }
@media (min-width: 900px) { .pb-searchbar { grid-template-columns: 1.1fr 1fr 1.5fr auto; align-items: end; } .pb-searchbar__submit { grid-column: auto; } }

/* --------------------------------------------------------------------------
   Filter & Ergebnisliste
   -------------------------------------------------------------------------- */
.pb-filters__toggle { display: inline-flex; }
.pb-filters { display: none; }
.pb-filters.is-open { display: grid; }
.pb-filters {
  gap: var(--pb-space-5); align-content: start; padding: var(--pb-space-5);
  background: #fff; border: 1px solid var(--pb-border); border-radius: var(--pb-radius-lg);
}
.pb-filters__head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.pb-filters__title { font-size: var(--pb-fs-lg); }
.pb-filters__reset { font-size: var(--pb-fs-sm); }
.pb-filters__footer { display: grid; gap: var(--pb-space-2); }
.pb-range { display: grid; grid-template-columns: 1fr 1fr; gap: var(--pb-space-2); }
@media (min-width: 900px) {
  .pb-filters__toggle { display: none; }
  .pb-filters { display: grid; }
  .pb-filters__footer .pb-filters__close { display: none; }
}
.pb-results__bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--pb-space-3); margin-bottom: var(--pb-space-4); }
.pb-results__count { font-weight: 600; }
.pb-results__count small { font-weight: 400; color: var(--pb-text-muted); }
.pb-results__sort { display: flex; align-items: center; gap: 8px; font-size: var(--pb-fs-sm); }
.pb-results__sort .pb-select { width: auto; }
.pb-results__list { display: grid; gap: var(--pb-space-4); }
.pb-results__group { font-size: var(--pb-fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--pb-text-muted); margin: var(--pb-space-2) 0 calc(-1 * var(--pb-space-2)); }
.pb-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: var(--pb-space-4); }
.pb-chips--flush { margin-bottom: 0; }
.pb-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border: 1px solid var(--pb-border-strong); border-radius: var(--pb-radius-pill); font-size: var(--pb-fs-sm); background: #fff; }
.pb-chip__remove { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; margin: -4px -6px -4px 0; border: 0; border-radius: 50%; background: none; color: var(--pb-text-muted); cursor: pointer; padding: 0; }
.pb-chip__remove:hover { background: var(--pb-bg-muted); color: var(--pb-text); }
.pb-chip__remove .pb-icon { width: 14px; height: 14px; }
.pb-chip--link { text-decoration: none; color: var(--pb-text); }
.pb-chip--link:hover { border-color: var(--pb-primary); color: var(--pb-primary-text); }
.pb-chip--current { background: var(--pb-warm-900); border-color: var(--pb-warm-900); color: #fff; }

/* --------------------------------------------------------------------------
   Tabellen & Faktenblock
   -------------------------------------------------------------------------- */
.pb-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--pb-border); border-radius: var(--pb-radius-lg); }
.pb-table { width: 100%; border-collapse: collapse; font-size: var(--pb-fs-sm); }
.pb-table th, .pb-table td { padding: 12px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--pb-border); }
.pb-table thead th { background: var(--pb-bg-soft); font-weight: 600; color: var(--pb-text-muted); white-space: nowrap; font-size: var(--pb-fs-xs); text-transform: uppercase; letter-spacing: 0.04em; }
.pb-table tbody tr:last-child td { border-bottom: 0; }
.pb-table tbody tr:hover td { background: var(--pb-bg-soft); }
.pb-table--striped tbody tr:nth-child(even) td { background: var(--pb-bg-soft); }
.pb-table--plain { font-size: var(--pb-fs-md); }
.pb-table .pb-num, .pb-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pb-table .pb-actions { white-space: nowrap; text-align: right; }
.pb-table__row-link { color: var(--pb-text); font-weight: 600; text-decoration: none; }
.pb-table__row-link:hover { text-decoration: underline; color: var(--pb-primary-text); }
.pb-table tfoot td { font-weight: 600; background: var(--pb-bg-soft); }

.pb-facts { width: 100%; border-collapse: collapse; font-size: var(--pb-fs-md); }
.pb-facts th, .pb-facts td { padding: 10px 0; border-bottom: 1px solid var(--pb-border); vertical-align: top; text-align: left; }
.pb-facts th { width: 44%; font-weight: 500; color: var(--pb-text-muted); padding-right: var(--pb-space-3); }
.pb-facts td { font-weight: 500; }
.pb-facts tr:last-child th, .pb-facts tr:last-child td { border-bottom: 0; }
.pb-facts caption { text-align: left; font-weight: 600; font-size: var(--pb-fs-lg); padding-bottom: var(--pb-space-3); }
@media (min-width: 600px) { .pb-facts th { width: 38%; } }
.pb-facts--sm { font-size: var(--pb-fs-sm); }
.pb-facts--sm th, .pb-facts--sm td { padding: 6px 0; }

.pb-dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px var(--pb-space-5); margin: 0; font-size: var(--pb-fs-sm); }
.pb-dl dt { color: var(--pb-text-muted); }
.pb-dl dd { margin: 0; font-weight: 500; }

/* --------------------------------------------------------------------------
   Tabs & Subnavigation
   -------------------------------------------------------------------------- */
.pb-tabs { display: flex; gap: 2px; border-bottom: 1px solid var(--pb-border); overflow-x: auto; scrollbar-width: none; margin-bottom: var(--pb-space-5); }
.pb-tabs::-webkit-scrollbar { display: none; }
.pb-tab {
  appearance: none; background: none; border: 0; border-bottom: 3px solid transparent; margin-bottom: -1px;
  padding: 12px 14px; min-height: 44px; font: inherit; font-weight: 500; color: var(--pb-text-muted); cursor: pointer; white-space: nowrap;
  display: inline-flex; align-items: center; gap: 8px; text-decoration: none;
}
.pb-tab:hover { color: var(--pb-text); background: var(--pb-bg-soft); }
.pb-tab[aria-selected="true"], .pb-tab[aria-current="page"] { color: var(--pb-primary-text); border-bottom-color: var(--pb-primary); font-weight: 600; }
.pb-tab .pb-badge { font-size: 0.6875rem; }
.pb-tabpanel:focus { outline: none; }

.pb-subnav { display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; border-bottom: 1px solid var(--pb-border); margin-bottom: var(--pb-space-5); }
.pb-subnav::-webkit-scrollbar { display: none; }
.pb-subnav__link {
  display: inline-flex; align-items: center; gap: 10px; padding: 12px 14px; min-height: 44px; white-space: nowrap;
  border-bottom: 3px solid transparent; margin-bottom: -1px; color: var(--pb-text-muted); text-decoration: none; font-weight: 500;
}
.pb-subnav__link .pb-icon { width: 18px; height: 18px; display: none; }
.pb-subnav__link:hover { color: var(--pb-text); background: var(--pb-bg-soft); }
.pb-subnav__link[aria-current="page"] { color: var(--pb-primary-text); border-bottom-color: var(--pb-primary); font-weight: 600; }
.pb-subnav__link .pb-badge { margin-left: auto; }
@media (min-width: 900px) {
  .pb-subnav { flex-direction: column; border-bottom: 0; margin-bottom: 0; overflow: visible; gap: 2px; }
  .pb-subnav__link { border-bottom: 0; margin: 0; border-radius: var(--pb-radius); padding: 10px 12px; }
  .pb-subnav__link .pb-icon { display: inline-block; }
  .pb-subnav__link[aria-current="page"] { background: var(--pb-primary-tint); }
}

/* --------------------------------------------------------------------------
   Stepper
   -------------------------------------------------------------------------- */
.pb-stepper { list-style: none; margin: 0 0 var(--pb-space-5); padding: 0; display: flex; }
.pb-stepper__step { flex: 1 1 0; position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; font-size: var(--pb-fs-xs); color: var(--pb-text-muted); min-width: 0; }
.pb-stepper__step::before { content: ""; position: absolute; top: 15px; right: 50%; width: 100%; height: 2px; background: var(--pb-border); }
.pb-stepper__step:first-child::before { display: none; }
.pb-stepper__num {
  position: relative; z-index: 1; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center;
  border: 2px solid var(--pb-border-strong); background: #fff; font-weight: 600; color: var(--pb-text-muted);
}
.pb-stepper__num .pb-icon { width: 16px; height: 16px; stroke-width: 3; }
.pb-stepper__label { display: none; line-height: 1.3; }
.pb-stepper__link { color: inherit; text-decoration: none; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.pb-stepper__link:hover .pb-stepper__label { text-decoration: underline; }
.pb-stepper__step--done .pb-stepper__num { background: var(--pb-primary); border-color: var(--pb-primary); color: #fff; }
.pb-stepper__step--done::before { background: var(--pb-primary); }
.pb-stepper__step--current { color: var(--pb-text); font-weight: 600; }
.pb-stepper__step--current .pb-stepper__num { border-color: var(--pb-primary); color: var(--pb-primary-text); }
.pb-stepper__step--current::before { background: var(--pb-primary); }
.pb-stepper__mobile { font-size: var(--pb-fs-sm); color: var(--pb-text-muted); margin: calc(-1 * var(--pb-space-3)) 0 var(--pb-space-5); text-align: center; }
.pb-stepper__mobile strong { color: var(--pb-text); }
@media (min-width: 600px) {
  .pb-stepper__label { display: block; }
  .pb-stepper__mobile { display: none; }
}

/* --------------------------------------------------------------------------
   Alerts, Toasts, Leerzustand, Spinner
   -------------------------------------------------------------------------- */
.pb-alert { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border: 1px solid; border-radius: var(--pb-radius); font-size: var(--pb-fs-sm); background: var(--pb-bg-soft); border-color: var(--pb-border); color: var(--pb-text); }
.pb-alert .pb-icon { width: 20px; height: 20px; margin-top: 1px; }
.pb-alert__body { display: grid; gap: 4px; min-width: 0; flex: 1 1 auto; }
.pb-alert__title { font-weight: 600; font-size: var(--pb-fs-md); }
.pb-alert__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.pb-alert--info { background: var(--pb-blue-50); border-color: var(--pb-blue-100); color: var(--pb-blue-900); }
.pb-alert--info .pb-icon { color: var(--pb-blue-700); }
.pb-alert--success { background: var(--pb-green-50); border-color: var(--pb-green-100); color: var(--pb-green-800); }
.pb-alert--success .pb-icon { color: var(--pb-green-700); }
.pb-alert--warning { background: var(--pb-amber-50); border-color: var(--pb-amber-300); color: var(--pb-amber-900); }
.pb-alert--warning .pb-icon { color: var(--pb-amber-800); }
.pb-alert--error { background: var(--pb-red-50); border-color: #f1c4c0; color: var(--pb-red-800); }
.pb-alert--error .pb-icon { color: var(--pb-red-700); }
.pb-alert a { color: inherit; font-weight: 600; }
.pb-alert--lg { padding: var(--pb-space-5); font-size: var(--pb-fs-md); }

.pb-toasts { position: fixed; left: var(--pb-space-4); right: var(--pb-space-4); bottom: var(--pb-space-4); z-index: 200; display: grid; gap: 8px; pointer-events: none; }
@media (min-width: 600px) { .pb-toasts { left: auto; width: 380px; } }
.pb-toast {
  pointer-events: auto; display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px;
  background: var(--pb-warm-900); color: #fff; border-radius: var(--pb-radius); box-shadow: var(--pb-shadow-lg); font-size: var(--pb-fs-sm);
  animation: pb-toast-in 0.2s ease-out;
}
.pb-toast .pb-icon { width: 20px; height: 20px; flex-shrink: 0; }
.pb-toast--success .pb-icon { color: #8fd6a8; }
.pb-toast--error .pb-icon { color: #f7a8a2; }
.pb-toast__text { flex: 1 1 auto; }
.pb-toast__close { margin: -6px -6px -6px 0; background: none; border: 0; color: inherit; width: 32px; height: 32px; border-radius: var(--pb-radius-sm); cursor: pointer; display: grid; place-items: center; padding: 0; }
.pb-toast__close:hover { background: rgba(255, 255, 255, 0.12); }
.pb-toast__close .pb-icon { width: 16px; height: 16px; }
@keyframes pb-toast-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.pb-empty {
  display: grid; gap: var(--pb-space-3); justify-items: center; text-align: center; padding: var(--pb-space-7) var(--pb-space-5);
  border: 1px dashed var(--pb-border-strong); border-radius: var(--pb-radius-lg); background: var(--pb-bg-soft);
}
.pb-empty .pb-icon { width: 40px; height: 40px; color: var(--pb-warm-500); stroke-width: 1.5; }
.pb-empty__title { font-size: var(--pb-fs-xl); }
.pb-empty__text { color: var(--pb-text-muted); max-width: 48ch; }
.pb-empty__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--pb-space-2); margin-top: var(--pb-space-1); }
.pb-empty--sm { padding: var(--pb-space-5); gap: var(--pb-space-2); }
.pb-empty--sm .pb-empty__title { font-size: var(--pb-fs-lg); }
.pb-empty--sm .pb-icon { width: 28px; height: 28px; }

.pb-spinner { width: 40px; height: 40px; border: 4px solid var(--pb-warm-200); border-top-color: var(--pb-primary); border-radius: 50%; animation: pb-spin 0.8s linear infinite; }
.pb-spinner--sm { width: 20px; height: 20px; border-width: 3px; }
@keyframes pb-spin { to { transform: rotate(360deg); } }
.pb-skeleton { background: linear-gradient(90deg, var(--pb-warm-100) 25%, var(--pb-warm-200) 50%, var(--pb-warm-100) 75%); background-size: 200% 100%; animation: pb-shimmer 1.4s infinite; border-radius: var(--pb-radius-sm); color: transparent; }
.pb-skeleton--line { height: 14px; }
.pb-skeleton--title { height: 22px; width: 70%; }
.pb-skeleton--media { aspect-ratio: 4 / 3; border-radius: 0; }
@keyframes pb-shimmer { to { background-position: -200% 0; } }

/* Status-/Erfolgsseiten */
.pb-status { display: grid; gap: var(--pb-space-4); justify-items: center; text-align: center; padding: var(--pb-space-6) 0; }
.pb-status__icon { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: var(--pb-green-100); color: var(--pb-green-800); }
.pb-status__icon .pb-icon { width: 32px; height: 32px; }
.pb-status__icon--info { background: var(--pb-blue-100); color: var(--pb-blue-800); }
.pb-status__icon--warning { background: var(--pb-amber-100); color: var(--pb-amber-800); }
.pb-status__icon--error { background: var(--pb-red-100); color: var(--pb-red-800); }
.pb-status__icon--muted { background: var(--pb-warm-100); color: var(--pb-warm-700); }
.pb-status__title { font-size: var(--pb-fs-2xl); justify-self: stretch; }
.pb-status__text { color: var(--pb-text-muted); max-width: 52ch; justify-self: stretch; margin-inline: auto; }
.pb-status__code { font-family: var(--pb-font-mono); font-size: var(--pb-fs-sm); color: var(--pb-text-muted); }
.pb-status .pb-btn-group { justify-content: center; }
.pb-status .pb-list { text-align: left; }

/* --------------------------------------------------------------------------
   Pagination
   -------------------------------------------------------------------------- */
.pb-pagination { margin-top: var(--pb-space-6); }
.pb-pagination__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; }
.pb-pagination__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 4px; min-width: 44px; min-height: 44px; padding: 0 12px;
  border-radius: var(--pb-radius); color: var(--pb-text); text-decoration: none; font-weight: 500; border: 1px solid transparent;
}
.pb-pagination__link:hover { background: var(--pb-bg-muted); color: var(--pb-text); }
.pb-pagination__link[aria-current="page"] { background: var(--pb-warm-900); color: #fff; }
.pb-pagination__link--disabled { color: var(--pb-warm-500); pointer-events: none; }
.pb-pagination__ellipsis { display: inline-flex; align-items: center; min-height: 44px; padding: 0 6px; color: var(--pb-text-muted); }
.pb-pagination__info { text-align: center; font-size: var(--pb-fs-sm); color: var(--pb-text-muted); margin-top: var(--pb-space-2); }

/* --------------------------------------------------------------------------
   Modal (natives <dialog>)
   -------------------------------------------------------------------------- */
.pb-modal { border: 0; border-radius: var(--pb-radius-lg); padding: 0; width: min(560px, calc(100vw - 32px)); max-height: calc(100vh - 32px); box-shadow: var(--pb-shadow-lg); background: #fff; color: var(--pb-text); }
.pb-modal--wide { width: min(880px, calc(100vw - 32px)); }
.pb-modal::backdrop { background: rgba(31, 29, 26, 0.55); }
.pb-modal__head { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--pb-space-4); padding: var(--pb-space-5) var(--pb-space-5) 0; }
.pb-modal__title { font-size: var(--pb-fs-xl); }
.pb-modal__body { padding: var(--pb-space-4) var(--pb-space-5); display: grid; gap: var(--pb-space-4); }
.pb-modal__foot { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--pb-space-2); padding: 0 var(--pb-space-5) var(--pb-space-5); }

/* --------------------------------------------------------------------------
   Detailseite
   -------------------------------------------------------------------------- */
.pb-gallery { display: grid; gap: var(--pb-space-2); }
.pb-gallery__main { position: relative; aspect-ratio: 16 / 9; border-radius: var(--pb-radius-lg); overflow: hidden; background: var(--pb-bg-muted); }
.pb-gallery__main .pb-photo .pb-icon { width: 40px; height: 40px; }
.pb-gallery__count { position: absolute; bottom: 12px; right: 12px; padding: 4px 10px; border-radius: var(--pb-radius-pill); background: rgba(31, 29, 26, 0.75); color: #fff; font-size: var(--pb-fs-xs); font-weight: 600; }
.pb-gallery__badges { position: absolute; top: 12px; left: 12px; }
.pb-gallery__thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--pb-space-2); }
.pb-gallery__thumb { aspect-ratio: 4 / 3; border-radius: var(--pb-radius); overflow: hidden; border: 2px solid transparent; padding: 0; background: var(--pb-bg-muted); cursor: pointer; }
.pb-gallery__thumb .pb-photo { min-height: 0; font-size: 0; }
.pb-gallery__thumb .pb-photo .pb-icon { width: 18px; height: 18px; }
.pb-gallery__thumb[aria-current="true"] { border-color: var(--pb-primary); }
.pb-gallery__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, 0.94); border: 1px solid var(--pb-border); padding: 0; min-height: 0; }
.pb-gallery__nav--prev { left: 12px; }
.pb-gallery__nav--next { right: 12px; }

.pb-detail__head { display: grid; gap: var(--pb-space-2); margin: var(--pb-space-5) 0; }
.pb-detail__title { font-size: var(--pb-fs-2xl); }
.pb-detail__meta { display: flex; flex-wrap: wrap; gap: 6px 16px; color: var(--pb-text-muted); font-size: var(--pb-fs-sm); }
.pb-detail__meta span { display: inline-flex; align-items: center; gap: 6px; }
.pb-detail__meta .pb-icon { width: 16px; height: 16px; }
.pb-keyfacts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pb-space-4); padding: var(--pb-space-4); background: var(--pb-bg-soft); border: 1px solid var(--pb-border); border-radius: var(--pb-radius-lg); margin: 0; }
@media (min-width: 600px) { .pb-keyfacts { grid-template-columns: repeat(4, minmax(0, 1fr)); padding: var(--pb-space-5); } }
.pb-keyfact { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pb-keyfact dt { font-size: var(--pb-fs-xs); color: var(--pb-text-muted); text-transform: uppercase; letter-spacing: 0.05em; }
.pb-keyfact dd { margin: 0; font-size: var(--pb-fs-lg); font-weight: 700; line-height: 1.2; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
@media (min-width: 1200px) { .pb-keyfact dd { font-size: var(--pb-fs-xl); } }
.pb-keyfact--price dd { color: var(--pb-primary-text); }
.pb-keyfact__sub { font-size: var(--pb-fs-xs); color: var(--pb-text-muted); font-weight: 400; display: block; }
.pb-detail__actions { display: grid; gap: var(--pb-space-2); grid-template-columns: minmax(0, 1fr); margin-top: var(--pb-space-4); }
@media (min-width: 600px) { .pb-detail__actions { grid-template-columns: minmax(0, 1fr) auto; } }
.pb-detail__actions + .pb-hint { margin-top: var(--pb-space-3); font-size: var(--pb-fs-xs); }
.pb-detail__section { margin-top: var(--pb-space-6); display: grid; gap: var(--pb-space-3); }
.pb-detail__section-title { font-size: var(--pb-fs-xl); }
.pb-prose { max-width: 72ch; }
.pb-prose p { margin: 0 0 1em; }
.pb-prose p:last-child { margin-bottom: 0; }
.pb-prose ul { margin: 0 0 1em; padding-left: 1.2em; }
.pb-prose h2 { font-size: var(--pb-fs-xl); margin: 1.5em 0 0.5em; }
.pb-prose h3 { font-size: var(--pb-fs-lg); margin: 1.25em 0 0.5em; }
.pb-prose table { width: 100%; border-collapse: collapse; margin: 0 0 1em; font-size: var(--pb-fs-sm); }
.pb-prose th, .pb-prose td { padding: 8px 10px; border: 1px solid var(--pb-border); text-align: left; }
.pb-prose th { background: var(--pb-bg-soft); }
.pb-doclist { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--pb-space-2); }
.pb-doc { display: flex; gap: 12px; align-items: center; padding: 12px 14px; border: 1px solid var(--pb-border); border-radius: var(--pb-radius); text-decoration: none; color: var(--pb-text); background: #fff; }
.pb-doc:hover { border-color: var(--pb-primary); color: var(--pb-text); }
.pb-doc .pb-icon { width: 22px; height: 22px; color: var(--pb-primary-text); }
.pb-doc__name { font-weight: 600; flex: 1 1 auto; min-width: 0; }
.pb-doc__meta { font-size: var(--pb-fs-xs); color: var(--pb-text-muted); white-space: nowrap; }
.pb-provider { display: grid; gap: var(--pb-space-3); }
.pb-provider__head { display: flex; gap: 12px; align-items: center; }
.pb-provider__avatar { width: 48px; height: 48px; border-radius: 50%; background: var(--pb-primary-tint); color: var(--pb-primary-text); display: grid; place-items: center; font-weight: 700; flex-shrink: 0; }
.pb-provider__name { font-weight: 600; }
.pb-provider__since { font-size: var(--pb-fs-xs); color: var(--pb-text-muted); }
.pb-provider__imprint { font-size: var(--pb-fs-sm); color: var(--pb-text-muted); border-top: 1px solid var(--pb-border); padding-top: var(--pb-space-3); }
.pb-provider__imprint strong { color: var(--pb-text); display: block; margin-bottom: 4px; font-weight: 600; }
.pb-detail__report { font-size: var(--pb-fs-sm); color: var(--pb-text-muted); display: inline-flex; gap: 6px; align-items: center; }
.pb-detail__report .pb-icon { width: 16px; height: 16px; }
.pb-detail__aside { display: grid; gap: var(--pb-space-4); align-content: start; }
.pb-detail__id { font-size: var(--pb-fs-xs); color: var(--pb-text-muted); }
.pb-safety { font-size: var(--pb-fs-sm); color: var(--pb-text-muted); display: grid; gap: 8px; }
.pb-safety li { display: flex; gap: 8px; }
.pb-safety .pb-icon { width: 16px; height: 16px; margin-top: 3px; flex-shrink: 0; }
.pb-safety ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }

/* --------------------------------------------------------------------------
   Konto: Inseratszeilen, Nachrichten
   -------------------------------------------------------------------------- */
.pb-listing-row { display: grid; gap: var(--pb-space-3); padding: var(--pb-space-4); border: 1px solid var(--pb-border); border-radius: var(--pb-radius-lg); background: #fff; }
.pb-listing-row__thumb { width: 100%; aspect-ratio: 4 / 3; border-radius: var(--pb-radius); overflow: hidden; }
.pb-listing-row__thumb .pb-photo { min-height: 0; }
.pb-listing-row__body { display: grid; gap: 8px; min-width: 0; align-content: start; }
.pb-listing-row__title { font-size: var(--pb-fs-lg); }
.pb-listing-row__title a { color: var(--pb-text); text-decoration: none; }
.pb-listing-row__title a:hover { color: var(--pb-primary-text); text-decoration: underline; }
.pb-listing-row__meta { font-size: var(--pb-fs-sm); color: var(--pb-text-muted); display: flex; flex-wrap: wrap; gap: 4px 14px; }
.pb-listing-row__runtime { display: grid; gap: 6px; font-size: var(--pb-fs-sm); color: var(--pb-text-muted); }
.pb-listing-row__actions { display: flex; flex-wrap: wrap; gap: 8px; align-content: start; }
@media (min-width: 600px) {
  .pb-listing-row { grid-template-columns: 140px minmax(0, 1fr); }
  .pb-listing-row__actions { grid-column: 1 / -1; }
}
@media (min-width: 1200px) {
  .pb-listing-row { grid-template-columns: 140px minmax(0, 1fr) auto; }
  .pb-listing-row__actions { grid-column: auto; flex-direction: column; align-items: stretch; }
}
.pb-listing-row--rejected { border-color: #f1c4c0; }

.pb-threads { list-style: none; margin: 0; padding: 0; border: 1px solid var(--pb-border); border-radius: var(--pb-radius-lg); overflow: hidden; background: #fff; }
.pb-thread { display: grid; gap: 4px; padding: 14px 16px; border-bottom: 1px solid var(--pb-border); text-decoration: none; color: var(--pb-text); position: relative; }
.pb-threads li:last-child .pb-thread { border-bottom: 0; }
.pb-thread:hover { background: var(--pb-bg-soft); color: var(--pb-text); }
.pb-thread__top { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.pb-thread__name { font-weight: 600; }
.pb-thread__time { font-size: var(--pb-fs-xs); color: var(--pb-text-muted); white-space: nowrap; }
.pb-thread__subject { font-size: var(--pb-fs-sm); color: var(--pb-text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pb-thread__preview { font-size: var(--pb-fs-sm); color: var(--pb-text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pb-thread--unread .pb-thread__preview, .pb-thread--unread .pb-thread__subject { color: var(--pb-text); font-weight: 500; }
.pb-thread--unread::before { content: ""; position: absolute; left: 6px; top: 22px; width: 6px; height: 6px; border-radius: 50%; background: var(--pb-primary); }
.pb-thread--active { background: var(--pb-primary-tint); }
.pb-conversation { display: grid; gap: var(--pb-space-3); border: 1px solid var(--pb-border); border-radius: var(--pb-radius-lg); background: #fff; }
.pb-conversation__head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; align-items: center; padding: var(--pb-space-4); border-bottom: 1px solid var(--pb-border); }
.pb-conversation__title { font-size: var(--pb-fs-md); }
.pb-conversation__ref { font-size: var(--pb-fs-sm); color: var(--pb-text-muted); }
.pb-conversation__tools { display: flex; gap: 6px; }
.pb-chat { display: grid; gap: var(--pb-space-3); padding: var(--pb-space-4); background: var(--pb-bg-soft); max-height: 520px; overflow-y: auto; }
.pb-msg { max-width: 85%; justify-self: start; display: grid; gap: 6px; }
.pb-msg__bubble { padding: 10px 14px; border-radius: 12px 12px 12px 4px; background: #fff; border: 1px solid var(--pb-border); font-size: var(--pb-fs-sm); }
.pb-msg__meta { font-size: var(--pb-fs-xs); color: var(--pb-text-muted); }
.pb-msg--own { justify-self: end; }
.pb-msg--own .pb-msg__bubble { background: var(--pb-primary-soft); border-color: transparent; border-radius: 12px 12px 4px 12px; }
.pb-msg--own .pb-msg__meta { text-align: right; }
.pb-msg__attach { display: inline-flex; gap: 6px; align-items: center; padding: 6px 10px; border-radius: var(--pb-radius); background: #fff; border: 1px solid var(--pb-border); font-size: var(--pb-fs-xs); text-decoration: none; color: var(--pb-text); }
.pb-msg__attach .pb-icon { width: 14px; height: 14px; }
.pb-msg--system { max-width: 100%; justify-self: center; text-align: center; font-size: var(--pb-fs-xs); color: var(--pb-text-muted); }
.pb-composer { display: grid; gap: var(--pb-space-2); padding: var(--pb-space-4); border-top: 1px solid var(--pb-border); }
.pb-composer__tools { display: flex; justify-content: space-between; gap: 8px; align-items: center; flex-wrap: wrap; }

/* --------------------------------------------------------------------------
   Kasse: Pläne, Bestellübersicht
   -------------------------------------------------------------------------- */
.pb-plan { position: relative; display: grid; gap: var(--pb-space-3); padding: var(--pb-space-5); background: #fff; border: 1px solid var(--pb-border); border-radius: var(--pb-radius-lg); align-content: start; }
.pb-plan--recommended { border-color: var(--pb-primary); box-shadow: 0 0 0 1px var(--pb-primary); }
.pb-plan--current { border-color: var(--pb-green-700); }
.pb-plan__flag { position: absolute; top: -12px; left: var(--pb-space-4); }
.pb-plan__name { font-size: var(--pb-fs-lg); font-weight: 600; }
.pb-plan__for { font-size: var(--pb-fs-sm); color: var(--pb-text-muted); margin-top: -8px; }
.pb-plan__price { font-size: var(--pb-fs-2xl); font-weight: 700; line-height: 1.1; font-variant-numeric: tabular-nums; }
.pb-plan__price small { display: block; font-size: var(--pb-fs-xs); font-weight: 400; color: var(--pb-text-muted); margin-top: 4px; }
.pb-plan__features { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: var(--pb-fs-sm); }
.pb-plan__features li { display: flex; gap: 8px; align-items: flex-start; }
.pb-plan__features .pb-icon { width: 16px; height: 16px; margin-top: 3px; color: var(--pb-green-700); }
.pb-plan__features .pb-icon--no { color: var(--pb-warm-500); }
.pb-plan__action { margin-top: auto; }
.pb-summary { display: grid; gap: var(--pb-space-4); }
.pb-summary__table { width: 100%; border-collapse: collapse; }
.pb-summary__table th, .pb-summary__table td { padding: 10px 0; text-align: left; border-bottom: 1px solid var(--pb-border); vertical-align: top; font-weight: 400; }
.pb-summary__table th { color: var(--pb-text-muted); width: 40%; padding-right: var(--pb-space-3); }
.pb-summary__table .pb-num { font-weight: 600; }
.pb-summary__total th, .pb-summary__total td { border-bottom: 0; border-top: 2px solid var(--pb-warm-900); font-size: var(--pb-fs-lg); font-weight: 700; color: var(--pb-text); padding-top: 14px; }
.pb-summary__vat { font-size: var(--pb-fs-xs); color: var(--pb-text-muted); font-weight: 400; }
.pb-legal-box { border: 1px solid var(--pb-border); border-radius: var(--pb-radius); padding: var(--pb-space-4); font-size: var(--pb-fs-sm); color: var(--pb-text-muted); max-height: 220px; overflow-y: auto; background: var(--pb-bg-soft); }
.pb-legal-box h3 { font-size: var(--pb-fs-sm); margin: 0 0 6px; color: var(--pb-text); }
.pb-legal-box p { margin: 0 0 8px; }
.pb-payment-methods { display: flex; flex-wrap: wrap; gap: 6px; }
.pb-payment-methods .pb-badge { background: #fff; border-color: var(--pb-border-strong); }

/* --------------------------------------------------------------------------
   Rechnung (HTML, druckbar A4)
   -------------------------------------------------------------------------- */
.pb-invoice { max-width: 210mm; margin-inline: auto; background: #fff; border: 1px solid var(--pb-border); padding: 16mm 14mm; font-size: 0.8125rem; line-height: 1.45; color: var(--pb-text); }
@media (min-width: 600px) { .pb-invoice { padding: 20mm 18mm; } }
.pb-invoice__head { display: flex; justify-content: space-between; gap: var(--pb-space-5); align-items: flex-start; margin-bottom: 14mm; }
.pb-invoice address { font-style: normal; }
.pb-invoice__logo img { height: 28px; }
.pb-invoice__issuer { text-align: right; color: var(--pb-text-muted); font-size: 0.75rem; }
.pb-invoice__parties { display: grid; gap: var(--pb-space-5); grid-template-columns: minmax(0, 1fr); margin-bottom: 10mm; }
@media (min-width: 600px) { .pb-invoice__parties { grid-template-columns: 1fr 1fr; } }
.pb-invoice__sender { font-size: 0.6875rem; color: var(--pb-text-muted); border-bottom: 1px solid var(--pb-border); padding-bottom: 4px; margin-bottom: 8px; }
.pb-invoice__meta { display: grid; grid-template-columns: auto 1fr; gap: 3px 16px; margin: 0; font-size: 0.8125rem; align-content: start; }
.pb-invoice__meta dt { color: var(--pb-text-muted); }
.pb-invoice__meta dd { margin: 0; font-weight: 500; text-align: right; }
.pb-invoice__title { font-size: 1.375rem; font-weight: 700; margin-bottom: 4px; }
.pb-invoice__subtitle { color: var(--pb-text-muted); margin-bottom: 8mm; }
.pb-invoice__items { width: 100%; border-collapse: collapse; margin-bottom: 6mm; }
.pb-invoice__items th, .pb-invoice__items td { padding: 8px 6px; text-align: left; border-bottom: 1px solid var(--pb-border); vertical-align: top; }
.pb-invoice__items thead th { border-bottom: 2px solid var(--pb-warm-900); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--pb-text-muted); }
.pb-invoice__items .pb-num { text-align: right; }
.pb-invoice__items tfoot td { border-bottom: 0; }
.pb-invoice__items tfoot .pb-invoice__grand td { border-top: 2px solid var(--pb-warm-900); font-weight: 700; font-size: 0.9375rem; padding-top: 10px; }
.pb-invoice__desc { color: var(--pb-text-muted); font-size: 0.75rem; }
.pb-invoice__note { margin-bottom: 4mm; }
.pb-invoice__foot { margin-top: 14mm; padding-top: 4mm; border-top: 1px solid var(--pb-border); font-size: 0.6875rem; color: var(--pb-text-muted); display: grid; gap: 4px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .pb-invoice__foot { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; } }
.pb-invoice--storno .pb-invoice__title { color: var(--pb-red-700); }
.pb-invoice__stamp { display: inline-block; padding: 4px 10px; border: 2px solid var(--pb-red-700); color: var(--pb-red-700); border-radius: var(--pb-radius-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.6875rem; margin-bottom: 8px; }
.pb-invoice-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--pb-space-2); margin-bottom: var(--pb-space-4); max-width: 210mm; margin-inline: auto; }

/* --------------------------------------------------------------------------
   Moderation
   -------------------------------------------------------------------------- */
.pb-mod-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--pb-space-3); margin-bottom: var(--pb-space-5); }
.pb-mod-preview { display: grid; gap: var(--pb-space-4); }
.pb-mod-preview__media { border-radius: var(--pb-radius-lg); overflow: hidden; aspect-ratio: 16 / 9; }
.pb-age { font-variant-numeric: tabular-nums; }
.pb-age--overdue { color: var(--pb-red-700); font-weight: 600; }
.pb-kpis { display: grid; gap: var(--pb-space-3); grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: var(--pb-space-5); }
@media (min-width: 900px) { .pb-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.pb-kpi { padding: var(--pb-space-4); border: 1px solid var(--pb-border); border-radius: var(--pb-radius-lg); background: #fff; display: grid; gap: 2px; }
.pb-kpi__label { font-size: var(--pb-fs-xs); color: var(--pb-text-muted); text-transform: uppercase; letter-spacing: 0.05em; }
.pb-kpi__value { font-size: var(--pb-fs-2xl); font-weight: 700; line-height: 1.1; font-variant-numeric: tabular-nums; }
.pb-kpi__value--warn { color: var(--pb-red-700); }

/* --------------------------------------------------------------------------
   Ratgeber-Artikel mit eingebettetem Block
   -------------------------------------------------------------------------- */
.pb-article { max-width: 760px; margin-inline: auto; }
.pb-article__kicker { font-size: var(--pb-fs-sm); font-weight: 600; color: var(--pb-primary-text); text-transform: uppercase; letter-spacing: 0.06em; }
.pb-article__title { font-size: var(--pb-fs-2xl); margin: var(--pb-space-2) 0 var(--pb-space-3); }
.pb-article__meta { font-size: var(--pb-fs-sm); color: var(--pb-text-muted); margin-bottom: var(--pb-space-5); }
.pb-article__hero { aspect-ratio: 16 / 9; border-radius: var(--pb-radius-lg); overflow: hidden; margin-bottom: var(--pb-space-5); }
.pb-article .pb-prose { max-width: none; font-size: var(--pb-fs-lg); }
@media (min-width: 600px) { .pb-article__title { font-size: var(--pb-fs-3xl); } }
.pb-embed { margin: var(--pb-space-6) 0; padding: var(--pb-space-5); border: 1px solid var(--pb-border); border-radius: var(--pb-radius-lg); background: var(--pb-bg-soft); display: grid; gap: var(--pb-space-4); }
.pb-embed__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--pb-space-2) var(--pb-space-4); }
.pb-embed__title { font-size: var(--pb-fs-xl); }
.pb-embed__hint { font-size: var(--pb-fs-xs); color: var(--pb-text-muted); }
.pb-toc { border: 1px solid var(--pb-border); border-radius: var(--pb-radius-lg); padding: var(--pb-space-4) var(--pb-space-5); background: var(--pb-bg-soft); margin: 0 0 var(--pb-space-5); }
.pb-toc__title { font-size: var(--pb-fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--pb-text-muted); margin-bottom: var(--pb-space-2); }
.pb-toc__list { margin: 0; padding-left: 1.4em; display: grid; gap: 6px; font-size: var(--pb-fs-md); }
.pb-toc__list a { color: var(--pb-text); text-decoration: none; }
.pb-toc__list a:hover { color: var(--pb-primary-text); text-decoration: underline; }
.pb-prose h2[id], .pb-prose h3[id] { scroll-margin-top: 80px; }
.pb-article__foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--pb-space-2) var(--pb-space-4); margin-top: var(--pb-space-6); padding-top: var(--pb-space-4); border-top: 1px solid var(--pb-border); font-size: var(--pb-fs-sm); color: var(--pb-text-muted); }
.pb-article .pb-section { margin-top: var(--pb-space-7); }

/* --------------------------------------------------------------------------
   Utilities (sparsam)
   -------------------------------------------------------------------------- */
.pb-muted { color: var(--pb-text-muted); }
.pb-small { font-size: var(--pb-fs-sm); }
.pb-xs { font-size: var(--pb-fs-xs); }
.pb-strong { font-weight: 600; }
.pb-text-center { text-align: center; }
.pb-nowrap { white-space: nowrap; }
.pb-mt-2 { margin-top: var(--pb-space-2); }
.pb-mt-4 { margin-top: var(--pb-space-4); }
.pb-mt-5 { margin-top: var(--pb-space-5); }
.pb-mt-6 { margin-top: var(--pb-space-6); }
.pb-mb-4 { margin-bottom: var(--pb-space-4); }
.pb-mb-5 { margin-bottom: var(--pb-space-5); }
.pb-divider { border: 0; border-top: 1px solid var(--pb-border); margin: var(--pb-space-5) 0; }
.pb-list { margin: 0; padding-left: 1.2em; display: grid; gap: 6px; }
.pb-list--check { list-style: none; padding: 0; }
.pb-list--check li { display: flex; gap: 8px; align-items: flex-start; }
.pb-list--check .pb-icon { width: 18px; height: 18px; margin-top: 3px; color: var(--pb-green-700); }
.pb-code { font-family: var(--pb-font-mono); font-size: 0.875em; background: var(--pb-bg-muted); padding: 1px 6px; border-radius: var(--pb-radius-sm); }
.pb-inline-icon { display: inline-flex; align-items: center; gap: 6px; }
.pb-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--pb-primary-tint); color: var(--pb-primary-text); display: grid; place-items: center; font-weight: 700; font-size: var(--pb-fs-sm); flex-shrink: 0; }
.pb-page-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: var(--pb-space-3); margin-bottom: var(--pb-space-5); }
.pb-page-head__title { font-size: var(--pb-fs-2xl); max-width: 30ch; }
.pb-page-head__lead { color: var(--pb-text-muted); margin-top: var(--pb-space-2); max-width: 70ch; }

/* --------------------------------------------------------------------------
   Prototyp-Hilfen (nur index.html / Komponentenseite, nicht fürs Plugin)
   -------------------------------------------------------------------------- */
.pb-proto-bar { background: var(--pb-warm-900); color: #fff; font-size: var(--pb-fs-xs); padding: 6px 0; }
.pb-proto-bar__inner { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; }
.pb-proto-bar a { color: #fff; }
.pb-proto-bar__label { color: var(--pb-warm-300); }
.pb-proto-section { padding-block: var(--pb-space-6); border-top: 1px solid var(--pb-border); }
.pb-proto-section:first-of-type { border-top: 0; }
.pb-proto-section__title { font-size: var(--pb-fs-xl); margin-bottom: var(--pb-space-4); display: flex; align-items: baseline; gap: 12px; }
.pb-proto-section__title code { font-size: var(--pb-fs-xs); font-weight: 400; color: var(--pb-text-muted); font-family: var(--pb-font-mono); }
.pb-proto-demo { display: grid; gap: var(--pb-space-4); padding: var(--pb-space-5); border: 1px dashed var(--pb-border-strong); border-radius: var(--pb-radius-lg); }
.pb-proto-demo--row { display: flex; flex-wrap: wrap; gap: var(--pb-space-3); align-items: center; }
.pb-proto-demo--soft { background: var(--pb-bg-soft); }
.pb-proto-label { font-size: var(--pb-fs-xs); color: var(--pb-text-muted); font-family: var(--pb-font-mono); }
.pb-proto-grid { display: grid; gap: var(--pb-space-4); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .pb-proto-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pb-proto-swatches { display: grid; gap: var(--pb-space-2); grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
.pb-proto-swatch { display: grid; gap: 6px; font-size: var(--pb-fs-xs); }
.pb-proto-swatch__chip { height: 48px; border-radius: var(--pb-radius); border: 1px solid var(--pb-border); }
.pb-proto-swatch__chip--primary { background: var(--pb-primary); }
.pb-proto-swatch__chip--primary-hover { background: var(--pb-primary-hover); }
.pb-proto-swatch__chip--primary-soft { background: var(--pb-primary-soft); }
.pb-proto-swatch__chip--accent { background: var(--pb-accent); }
.pb-proto-swatch__chip--text { background: var(--pb-text); }
.pb-proto-swatch__chip--muted { background: var(--pb-text-muted); }
.pb-proto-swatch__chip--border { background: var(--pb-border); }
.pb-proto-swatch__chip--bg-soft { background: var(--pb-bg-soft); }
.pb-proto-swatch__chip--success { background: var(--pb-green-700); }
.pb-proto-swatch__chip--danger { background: var(--pb-red-600); }
.pb-proto-swatch__chip--warning { background: var(--pb-amber-600); }
.pb-proto-swatch__chip--footer { background: var(--pb-footer-bg); }
.pb-proto-icons { display: grid; gap: var(--pb-space-2); grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); }
.pb-proto-icon { display: grid; gap: 6px; justify-items: center; padding: 10px 4px; border: 1px solid var(--pb-border); border-radius: var(--pb-radius); font-size: 0.6875rem; color: var(--pb-text-muted); font-family: var(--pb-font-mono); text-align: center; word-break: break-all; }
.pb-proto-icon .pb-icon { width: 22px; height: 22px; color: var(--pb-text); }
.pb-proto-type { display: grid; gap: var(--pb-space-3); }
.pb-proto-type__row { display: grid; gap: 4px; padding-bottom: var(--pb-space-3); border-bottom: 1px solid var(--pb-border); }
.pb-proto-type__row:last-child { border-bottom: 0; }

.pb-proto-index { display: grid; gap: var(--pb-space-5); }
.pb-proto-screen { display: grid; gap: var(--pb-space-3); padding: var(--pb-space-4); border: 1px solid var(--pb-border); border-radius: var(--pb-radius-lg); background: #fff; }
@media (min-width: 900px) { .pb-proto-screen { grid-template-columns: 260px minmax(0, 1fr); align-items: start; } }
.pb-proto-screen__shot { display: block; aspect-ratio: 16 / 10; border-radius: var(--pb-radius); overflow: hidden; border: 1px solid var(--pb-border); background: var(--pb-bg-muted); }
.pb-proto-screen__shot img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.pb-proto-screen__title { font-size: var(--pb-fs-lg); display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: baseline; }
.pb-proto-screen__num { color: var(--pb-text-muted); font-weight: 400; }
.pb-proto-screen__purpose { color: var(--pb-text-muted); font-size: var(--pb-fs-sm); }
.pb-proto-screen__files { display: flex; flex-wrap: wrap; gap: 6px; }
.pb-proto-screen__states { font-size: var(--pb-fs-sm); }
.pb-proto-screen__states dt { display: inline; color: var(--pb-text-muted); }
.pb-proto-screen__states dd { display: inline; margin: 0; }
.pb-proto-todo { color: var(--pb-text-muted); font-style: italic; }
.pb-proto-viewer { position: fixed; inset: 0; z-index: 300; background: rgba(31, 29, 26, 0.92); display: none; flex-direction: column; }
.pb-proto-noscroll { overflow: hidden; }
.pb-proto-mobil { background: var(--pb-warm-100); margin: 0; display: grid; place-items: start center; min-height: 100vh; }
.pb-proto-mobil__frame { width: 375px; height: 100vh; border: 0; background: #fff; box-shadow: var(--pb-shadow-lg); }
.pb-proto-viewer.is-open { display: flex; }
.pb-proto-viewer__bar { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; padding: 10px 16px; color: #fff; font-size: var(--pb-fs-sm); }
.pb-proto-viewer__bar .pb-btn { color: #fff; border-color: rgba(255, 255, 255, 0.3); background: transparent; }
.pb-proto-viewer__bar .pb-btn:hover, .pb-proto-viewer__bar .pb-btn[aria-pressed="true"] { background: rgba(255, 255, 255, 0.15); color: #fff; }
.pb-proto-viewer__bar .pb-btn[aria-pressed="true"] { border-color: #fff; }
.pb-proto-viewer__file { font-family: var(--pb-font-mono); color: var(--pb-warm-300); }
.pb-proto-viewer__stage { flex: 1 1 auto; overflow: auto; display: flex; justify-content: center; padding: 0 16px 16px; }
.pb-proto-viewer__frame { width: 100%; height: 100%; border: 0; background: #fff; border-radius: var(--pb-radius) var(--pb-radius) 0 0; transition: width 0.2s; }
.pb-proto-viewer--mobile .pb-proto-viewer__frame { width: 375px; border-radius: var(--pb-radius); }

/* --------------------------------------------------------------------------
   Druck
   -------------------------------------------------------------------------- */
@media print {
  @page { size: A4; margin: 14mm; }
  .pb-body { background: #fff; color: #000; }
  .pb-header, .pb-footer, .pb-proto-bar, .pb-toasts, .pb-invoice-toolbar, .pb-print-hide, .pb-skip { display: none !important; }
  .pb-main { padding: 0; }
  .pb-invoice { border: 0; padding: 0; max-width: none; font-size: 10.5pt; }
  .pb-body a { color: inherit; text-decoration: none; }
}
