/* Partnerbereich (/partner). Nutzt dazu lp.css für Kopf, Karten und Schluss. */
.pt-top { position: sticky; top: 0; z-index: 60; background: var(--nacht); color: #fff; }
.pt-top-inner { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 66px; }
.pt-top .brand { color: #fff; font-size: 1.2rem; }
.pt-top .brand svg { width: 36px; height: 36px; }
.pt-badge { font: 800 .72rem var(--f-body); font-style: normal; text-transform: uppercase; letter-spacing: .08em; padding: 4px 9px; border-radius: 99px; background: var(--sonne); color: var(--nacht); }
.pt-nav { display: flex; align-items: center; gap: 2px; flex-wrap: wrap; }
.pt-nav a, .pt-out { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: 11px; color: #d5dbf0; text-decoration: none; font-weight: 700; font-size: .95rem; background: none; border: 0; cursor: pointer; font-family: var(--f-body); }
.pt-nav a:hover, .pt-out:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.pt-nav a[aria-current="page"] { background: #fff; color: var(--nacht); }
.pt-nav form { margin: 0; }
.pt-guest { display: flex; align-items: center; gap: 14px; }
.pt-login { color: #fff; font-weight: 700; text-decoration: none; display: inline-flex; gap: 6px; align-items: center; }
.pt-hero-login { font-weight: 700; color: var(--c-dark); }
.pt .flash-wrap { margin-top: 16px; }

.pt-rates { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 20px; }
.pt-rate { position: relative; background: #fff; border-radius: 24px; padding: 24px; box-shadow: 0 0 0 1px var(--line), 0 20px 40px -30px rgba(26, 33, 64, .5); border-top: 8px solid var(--c); }
.pt-rate h3 { margin: 10px 0 0; }
.pt-rate-ic { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: var(--c-soft); color: var(--c-dark); }
.pt-rate-ic .ic { width: 28px; height: 28px; }
.pt-rate-big { font: 800 3.2rem/1 var(--f-display); color: var(--c-dark); margin: 8px 0 6px; letter-spacing: -.03em; }
.pt-rate-ex { margin: 12px 0 0; padding: 10px 12px; border-radius: 12px; background: var(--sonne-soft); font-weight: 700; }
.pt-note { margin-top: 16px; font-size: .95rem; }

.pt-split { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 32px; align-items: start; }
.pt-side h1 { margin-top: 8px; }
.kompi-pt-side { width: 150px; height: 156px; }
.kompi-pt-mini { width: 92px; height: 96px; flex: none; display: block; margin: 0 auto; }
.pt-welcome .kompi-pt-mini { margin: 0; }
.pt-card { padding: clamp(18px, 3vw, 28px); }
.pt-card h2 { font-size: 1.25rem; margin: 8px 0 0; }
.pt-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.pt-narrow { max-width: 820px; }
.pt-narrow .pt-card + .pt-card { margin-top: 20px; }

.pt-dash h1 { margin-bottom: 8px; }
.pt-welcome { display: flex; gap: 18px; align-items: center; margin-bottom: 20px; }
.pt-welcome h1 { margin: 0 0 4px; }
.pt-welcome p { margin: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pt-code { font-family: var(--f-display); letter-spacing: .04em; padding: 2px 10px; border-radius: 8px; background: var(--sonne-soft); color: var(--nacht); }
.pt-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; margin: 0 0 20px; }
.pt-kpi { display: grid; gap: 2px; background: #fff; border-radius: 18px; padding: 16px 18px; box-shadow: 0 0 0 1px var(--line); }
.pt-kpi small { color: var(--muted); font-weight: 700; }
.pt-kpi b { font: 800 2rem/1.1 var(--f-display); color: var(--nacht); }
.pt-kpi span { font-size: .88rem; }
.pt-kpi-money { background: var(--nacht); color: #c6cce0; box-shadow: none; }
.pt-kpi-money small { color: #aab3d0; } .pt-kpi-money b { color: var(--sonne); }
.pt-grid2 { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 20px; margin-bottom: 20px; }
.pt-box { padding: 18px 20px; }
.pt-box h2 { font-size: 1.15rem; margin: 0 0 12px; }
.pt-box h3 { font-size: 1rem; margin: 18px 0 8px; }
.pt-chart { display: flex; align-items: flex-end; gap: 3px; height: 140px; padding: 8px 0; border-bottom: 2px solid var(--line); }
.pt-chart span { flex: 1; height: 100%; display: flex; align-items: flex-end; }
.pt-chart i { display: block; width: 100%; height: max(3px, var(--h)); border-radius: 4px 4px 1px 1px; background: linear-gradient(var(--tinte-hell), var(--tinte)); }
.pt-chart-axis { display: flex; justify-content: space-between; font-size: .8rem; color: var(--muted); margin-top: 4px; }
.pt-top-list, .pt-rate-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pt-top-list li, .pt-rate-list li { display: flex; justify-content: space-between; gap: 10px; padding: 8px 12px; border-radius: 12px; background: #f6f7fb; }
.pt-rate-list span { display: inline-flex; gap: 8px; align-items: center; }
.pt-st-pending { background: var(--sonne-soft); color: #8a5a00; } .pt-st-approved { background: var(--blau-soft); color: var(--blau-dark); }
.pt-st-paid { background: var(--gruen-soft); color: var(--gruen-dark); } .pt-st-cancelled { background: var(--grau-soft); color: var(--grau-dark); text-decoration: line-through; }

.pt-own { margin: 18px 0 8px; }
.pt-builder { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.pt-builder input { grid-column: 1 / -1; }
.pt-builder code { word-break: break-all; padding: 10px 12px; border-radius: 12px; background: #f6f7fb; font-size: .88rem; }
.pt-group-h { margin: 30px 0 12px; font-size: 1.35rem; }
.pt-links { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 14px; }
.pt-link { background: #fff; border-radius: 18px; padding: 14px 16px; box-shadow: 0 0 0 1px var(--line); border-left: 6px solid var(--c); min-width: 0; }
.pt-link.sub { background: #fbfbfe; }
.pt-link-head { display: flex; justify-content: space-between; gap: 8px; align-items: center; }
.pt-link p { margin: 4px 0 10px; font-size: .9rem; }
.pt-link-row { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 8px; align-items: center; margin-top: 6px; }
.pt-link-row small { color: var(--muted); font-weight: 700; }
.pt-link-row code { font-size: .8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 6px 8px; border-radius: 8px; background: #f6f7fb; }
.pt-qr { margin-top: 8px; }
.pt-qr summary { cursor: pointer; font-weight: 700; color: var(--c-dark); font-size: .9rem; display: inline-flex; gap: 6px; align-items: center; }
.pt-qr .hq { display: block; width: 150px; height: 150px; margin: 10px 0 4px; }
.pt-qr .hq svg { width: 100%; height: 100%; }

.pt-files { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 16px; margin-top: 16px; }
.pt-file { margin: 0; background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 0 0 1px var(--line); }
.pt-file-img { aspect-ratio: 1; background: repeating-conic-gradient(#f1f3f8 0 25%, #fff 0 50%) 50% / 20px 20px; display: grid; place-items: center; }
.pt-file-img img, .pt-file-img video { max-width: 100%; max-height: 100%; object-fit: contain; }
.pt-file figcaption { display: grid; gap: 4px; padding: 10px 12px; }
.pt-file figcaption b { font-size: .85rem; word-break: break-all; }
.pt-snips { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 14px; }
.pt-snip { padding: 16px; }
.pt-snip p { font-size: .95rem; }
.pt-terms h2 { font-size: 1.3rem; margin-top: 1.4em; }

@media (max-width: 960px) {
  .pt-rates, .pt-split, .pt-grid2 { grid-template-columns: minmax(0, 1fr); }
  .pt-nav span { display: none; }
  .pt-nav a, .pt-out { padding: 9px; }
}
@media (max-width: 640px) {
  .pt-top-inner { flex-wrap: wrap; padding-block: 8px; }
  .pt-top .brand span { display: none; }
  .pt-guest .pt-login span { display: none; }
  body.pt { padding-bottom: 0; }
}
