/* FBBT 0.8.31 – öffentliche Fahrtkarten mit kompakten Vereinswappen */
.ab-public-trip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch;grid-auto-rows:1fr}
.ab-public-trip-card{position:relative;display:flex;flex-direction:column;min-width:0;height:100%;overflow:hidden;background:linear-gradient(180deg,#0b1724 0%,#050b12 100%);border:1px solid rgba(94,150,198,.38);border-radius:20px;box-shadow:0 15px 34px rgba(4,15,25,.2);color:#f4f8fb}
.ab-public-trip-card::before{content:"";position:absolute;z-index:1;top:0;left:0;right:0;height:5px;border-radius:20px 20px 0 0;background:#d4a72c}
.ab-public-trip-card.is-published::before{background:#3dae68}.ab-public-trip-card.is-cancelled::before{background:#d85757}.ab-public-trip-card.is-soldout::before{background:#df7e32}.ab-public-trip-card.is-past::before{background:#7c8792}
.ab-public-trip-status{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:18px 16px 8px}
.ab-public-trip-status__label{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:rgba(226,167,53,.16);border:1px solid rgba(226,167,53,.35);color:#ffd879;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.is-published .ab-public-trip-status__label{background:rgba(61,174,104,.16);border-color:rgba(61,174,104,.38);color:#8ee2ad}.is-cancelled .ab-public-trip-status__label{background:rgba(216,87,87,.16);border-color:rgba(216,87,87,.38);color:#ff9f9f}.is-soldout .ab-public-trip-status__label{background:rgba(223,126,50,.16);border-color:rgba(223,126,50,.4);color:#ffc187}.is-past .ab-public-trip-status__label{background:rgba(124,135,146,.18);border-color:rgba(124,135,146,.4);color:#d0d6dc}
.ab-public-trip-status__schedule{color:#a9bbc9;font-size:.75rem;font-weight:700;text-align:right}
.ab-public-fixture-crests{display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);align-items:start;gap:5px;padding:4px 13px 8px}
.ab-public-club{text-align:center;min-width:0}.ab-public-club__image{position:relative;width:60px;height:68px;margin:0 auto 4px;display:flex;align-items:center;justify-content:center}.ab-public-club__fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--crest-accent);clip-path:polygon(50% 0,94% 14%,88% 67%,79% 84%,50% 100%,21% 84%,12% 67%,6% 14%)}.ab-public-club__fallback::before{content:"";position:absolute;inset:3px;background:linear-gradient(180deg,var(--crest-top),var(--crest-bottom));clip-path:inherit}.ab-public-club__fallback span{position:relative;z-index:1;color:var(--crest-accent);font-size:1rem;font-weight:900;letter-spacing:.03em}.ab-public-club__image img{position:absolute;inset:0;z-index:2;width:100%;height:100%;display:block;object-fit:contain}.ab-public-club__name{min-height:2.15em;color:#dce8f2;font-size:.68rem;font-weight:700;line-height:1.12;overflow-wrap:anywhere}.ab-public-fixture-versus{align-self:center;color:#d0a52b;font-size:1.08rem;font-weight:900;text-align:center}
.ab-public-trip-fixture{padding:13px 16px;text-align:center;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}.ab-public-trip-fixture h3{margin:0;color:#fff;font-size:.98rem;line-height:1.35}.ab-public-trip-fixture__competition{margin-top:5px;color:#9fb4c7;font-size:.78rem;font-weight:700}
.ab-public-trip-details{display:grid;gap:8px;padding:14px 16px}.ab-public-trip-details>div{display:grid;grid-template-columns:74px minmax(0,1fr);gap:8px;align-items:start}.ab-public-trip-details span{color:#8fa6ba;font-size:.76rem;font-weight:700}.ab-public-trip-details strong{color:#f1f6fa;font-size:.82rem;line-height:1.35;overflow-wrap:anywhere}.ab-public-trip-details__fanclub strong{display:flex;align-items:center;gap:8px}.ab-public-fanclub-logo{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:0 0 30px;border-radius:8px;background:#fff;border:1px solid rgba(255,255,255,.24);overflow:hidden;padding:3px;box-sizing:border-box}.ab-public-fanclub-logo img{width:100%;height:100%;display:block;object-fit:contain}.ab-public-fanclub-logo__initials{color:#173d69;font-size:.68rem;font-weight:900}
.ab-public-trip-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:0 16px 14px}.ab-public-trip-stats>div{padding:9px 5px;border-radius:11px;background:rgba(255,255,255,.06);text-align:center;border:1px solid rgba(255,255,255,.07)}.ab-public-trip-stats span{display:block;color:#91a8bc;font-size:.64rem;font-weight:700;line-height:1.1}.ab-public-trip-stats strong{display:block;margin-top:4px;color:#fff;font-size:1.04rem}.ab-public-trip-stats .is-green strong{color:#7ee29d}.ab-public-trip-stats .is-yellow strong{color:#ffd36c}.ab-public-trip-stats .is-red strong{color:#ff8686}
.ab-public-trip-occupancy{padding:0 16px 14px}.ab-public-trip-occupancy>div:first-child{display:flex;justify-content:space-between;color:#91a8bc;font-size:.72rem}.ab-public-trip-occupancy strong{color:#dce8f2}.ab-public-trip-bar{height:7px;margin-top:6px;border-radius:999px;background:rgba(255,255,255,.11);overflow:hidden}.ab-public-trip-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#397bb5,#75acd8)}
.ab-public-trip-actions{display:grid;gap:8px;margin-top:auto;padding:13px 16px 16px;border-top:1px solid rgba(255,255,255,.1)}.ab-public-trip-actions .ab-public-trip-cta{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:42px;padding:9px 12px;border-radius:10px;background:#f2c230;border:1px solid #f2c230;color:#111820!important;text-decoration:none;font-size:.8rem;font-weight:800;text-align:center;box-shadow:0 8px 20px rgba(242,194,48,.22);transition:background-color .18s ease,border-color .18s ease,transform .18s ease}.ab-public-trip-actions .ab-public-trip-cta:hover,.ab-public-trip-actions .ab-public-trip-cta:focus{background:#ffd654;border-color:#ffd654;color:#080c10!important;text-decoration:none;transform:translateY(-1px)}.ab-public-trip-actions .ab-public-trip-cta:focus-visible{outline:3px solid rgba(255,214,84,.42);outline-offset:2px}.ab-public-trip-actions .ab-public-trip-cta.is-disabled{background:rgba(124,135,146,.18);border-color:rgba(175,188,199,.35);color:#c9d3dc!important;box-shadow:none;pointer-events:none}
.ab-public-trip-card .ab-price{color:#f1f6fa!important;font-size:.82rem;white-space:normal}.ab-public-trip-card .ab-price--compact{max-width:none;overflow:visible;font-size:.82rem}
@media(max-width:1180px){.ab-public-trip-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.ab-public-trip-grid{grid-template-columns:1fr}.ab-public-trip-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ab-public-club__image{width:56px;height:63px}}
@media(max-width:390px){.ab-public-trip-details>div{grid-template-columns:66px minmax(0,1fr)}}

/* FBBT 0.9.00 – kompakte Fahrtbewertung direkt an der Fahrtkarte */
.ab-trip-rating-wrap{padding:0 16px 13px}.ab-trip-rating{position:relative;display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:9px 11px;border-radius:12px;background:rgba(224,170,16,.09);border:1px solid rgba(224,170,16,.32);color:#f5f8fb!important;text-decoration:none!important}.ab-trip-rating:hover,.ab-trip-rating:focus{background:rgba(224,170,16,.15);border-color:rgba(224,170,16,.52)}.ab-trip-rating__stars{color:#f2c230;font-size:1rem;letter-spacing:.02em}.ab-trip-rating strong{font-size:.82rem}.ab-trip-rating small{color:#a8bac9;font-size:.7rem}.ab-trip-rating__test{padding:2px 6px;border-radius:999px;background:#fff1b8;color:#664d03;font-size:.62rem;font-weight:900}.ab-trip-rating__tooltip{position:absolute;z-index:20;left:8px;right:8px;bottom:calc(100% + 7px);display:none;padding:9px 10px;border-radius:10px;background:#fff;color:#173d69;box-shadow:0 8px 24px rgba(0,0,0,.24);font-size:.7rem;line-height:1.35}.ab-trip-rating__tooltip em{display:block;margin-top:4px;color:#55718b;font-style:normal;font-weight:800}.ab-trip-rating:hover .ab-trip-rating__tooltip,.ab-trip-rating:focus .ab-trip-rating__tooltip{display:block}

/* FBBT 0.9.06 – klarere öffentliche Fahrtkarten */
.ab-price-potential{display:block;margin-top:3px;color:#8fb8df;font-size:.68rem;font-weight:700}
.ab-next-price{display:block;margin-top:4px;color:#f2c230;font-size:.68rem;font-weight:800}
.ab-public-trip-stats--compact{grid-template-columns:1fr!important}
.ab-public-trip-stats--compact>div{display:flex;align-items:center;justify-content:space-between;text-align:left;padding:10px 12px}
.ab-public-trip-stats--compact span,.ab-public-trip-stats--compact strong{display:inline;margin:0}

/* FBBT 0.9.59 – ausverkaufte Fahrten unübersehbar mit Wartelisten-CTA */
.ab-public-soldout-banner{margin:0 16px 14px;padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,#a81f24,#d23b34);border:1px solid rgba(255,210,210,.45);box-shadow:0 9px 22px rgba(168,31,36,.24);text-align:center}.ab-public-soldout-banner strong{display:block;color:#fff;font-size:1.08rem;font-weight:950;letter-spacing:.09em}.ab-public-soldout-banner span{display:block;margin-top:3px;color:#ffe7e7;font-size:.72rem;font-weight:800}.ab-public-trip-actions .ab-public-trip-cta.is-waitlist{background:#d93636;border-color:#ee5a53;color:#fff!important;box-shadow:0 8px 20px rgba(217,54,54,.28)}.ab-public-trip-actions .ab-public-trip-cta.is-waitlist:hover,.ab-public-trip-actions .ab-public-trip-cta.is-waitlist:focus{background:#ef4b43;border-color:#ff756e;color:#fff!important}.ab-public-trip-actions .ab-public-trip-cta.is-disabled.is-soldout{background:rgba(168,31,36,.30);border-color:rgba(255,129,123,.45);color:#ffd8d5!important}

.ab-public-cancelled-banner{margin:14px 0 4px;padding:16px 18px;border-radius:16px;background:linear-gradient(135deg,#8f171d,#cf3434);border:1px solid #ea6666;box-shadow:0 10px 24px rgba(143,23,29,.18);color:#fff;text-align:center}.ab-public-cancelled-banner strong{display:block;font-size:1.28rem;font-weight:950;letter-spacing:.12em}.ab-public-cancelled-banner span{display:block;margin-top:5px;color:#ffe8e8;font-weight:750}

.ab-public-waitlist-count{margin:0 16px 12px;padding:8px 11px;border:1px solid rgba(230,173,55,.45);border-radius:12px;background:rgba(255,244,214,.96);color:#664500;font-size:.78rem;font-weight:800}.ab-public-waitlist-count strong{font-weight:950}.ab-public-waitlist-count span{font-weight:700}
