﻿/* Design Tokens */
:root {
    --los-primary: #244C9B;
    --los-primary-hover: #1a3a7a;
    --los-border: #E5E7EB;
    --los-bg-light: #F7F8FA;
    --los-text-dark: #222222;
    --los-text-muted: #666666;
    --los-text-placeholder: #999999;
    --los-danger: #C62828;
    --los-danger-bg: #FFEBEE;
    --los-danger-border: #C62828;
    --los-push-bg: #EFF6FF;
    --los-push-border: #BFDBFE;
    --los-push-title: #1F2937;
}
/* Galerie */
    .lot-gallery { position: relative; }
    .gallery-main {
      width: 100%;
      aspect-ratio: 4/3;
      background: var(--los-bg-light);
      border-radius: 12px;
      border: 1px solid var(--los-border);
      display: flex; align-items: center; justify-content: center;
      color: var(--los-text-placeholder); font-size: 4rem;
      overflow: hidden; position: relative;
      cursor: zoom-in;
    }
    @media (max-width: 991px) {
      .gallery-main { aspect-ratio: 3/4; min-height: 55vw; }
    }
    .gallery-main img { width: 100%; height: 100%; object-fit: contain; }
    /* Gestalteter Fallback bei fehlendem/kaputtem Bild (P1) */
    .gallery-empty {
      position: absolute; inset: 0; display: none;
      flex-direction: column; align-items: center; justify-content: center; gap: .5rem;
      color: var(--los-text-placeholder); text-align: center; padding: 1rem;
    }
    .gallery-empty i { font-size: 3rem; line-height: 1; }
    .gallery-empty span { font-size: .95rem; font-weight: 600; }
    .gallery-main.img-error { cursor: default; }
    .gallery-main.img-error img { display: none; }
    .gallery-main.img-error .gallery-zoom-btn { display: none; }
    .gallery-main.img-error .gallery-empty { display: flex; }
    /* Thumbnail: kaputtes Bild → neutraler Platzhalter statt Alt-Text */
    .gallery-thumb.thumb-empty { background: var(--los-bg-light); }
    .gallery-zoom-btn {
      position: absolute; bottom: .75rem; right: .75rem;
      background: rgba(0,0,0,.5); color: #fff;
      border: none; border-radius: .4rem;
      padding: .35rem .6rem; font-size: .85rem; cursor: pointer;
    }
    .gallery-thumbs {
      display: flex; gap: .5rem; margin-top: .5rem; flex-wrap: wrap;
    }
    .gallery-thumb {
      width: 64px; height: 64px; border-radius: .4rem;
      background: var(--los-bg-light);
      border: 2px solid var(--los-border);
      display: flex; align-items: center; justify-content: center;
      color: var(--los-text-placeholder); font-size: 1.4rem;
      cursor: pointer; overflow: hidden; flex-shrink: 0;
      transition: border-color .15s;
    }
    .gallery-thumb.active { border-color: var(--los-primary); }
    .gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }

    /* 360°-Viewer */
    .viewer360-wrap {
      width: 100%; aspect-ratio: 4/3;
      background: var(--los-bg-light); border-radius: 12px; border: 1px solid var(--los-border);
      display: flex; align-items: center; justify-content: center;
      position: relative; overflow: hidden; cursor: grab; user-select: none;
    }
    .viewer360-wrap:active { cursor: grabbing; }
    .viewer360-wrap img { width: 100%; height: 100%; object-fit: contain; pointer-events: none; opacity: 1; transition: opacity 0.18s ease-in-out; }
    .viewer360-controls {
      position: absolute; bottom: .75rem; left: 50%; transform: translateX(-50%);
      display: flex; gap: .4rem; align-items: center;
      background: rgba(0,0,0,.45); border-radius: 2rem; padding: .25rem .6rem;
    }
    .viewer360-controls button {
      background: none; border: none; color: #fff; font-size: 1.1rem;
      padding: .1rem .35rem; cursor: pointer; line-height: 1;
    }
    .viewer360-controls button:hover { color: #93c5fd; }
    .viewer360-badge {
      position: absolute; top: .6rem; left: .6rem;
      background: rgba(0,0,0,.5); color: #fff;
      font-size: .7rem; font-weight: 700; border-radius: .4rem;
      padding: .2rem .5rem; letter-spacing: .05em;
    }
    /* 360° als erstes Vorschaubild (01.10.2026, ersetzt die Reiter Fotos/360°) */
    .gallery-thumb-360 { position: relative; }
    .gallery-thumb-360-badge {
      position: absolute; inset: auto 0 0 0; text-align: center;
      background: rgba(0,0,0,.6); color: #fff; font-size: .65rem; font-weight: 700; line-height: 1.4;
    }
    .viewer360-wrap .gallery-zoom-btn { z-index: 2; }

    /* Sticky Bid Panel */
    .bid-panel {
      position: sticky;
      top: 80px;
    }
    .bid-panel-card {
      border: 1px solid var(--los-border);
      border-radius: 12px;
      overflow: hidden;
    }
    .bid-panel-header {
      background: var(--los-primary);
      color: #fff;
      padding: .75rem 1.25rem;
      font-weight: 700;
      font-size: .85rem;
      letter-spacing: .04em;
      display: flex; align-items: center; gap: .5rem;
    }
    .bid-current-label { font-size: .75rem; color: var(--los-text-muted); margin-bottom: .15rem; }
    .bid-current-amount {
      font-size: 3rem; font-weight: 700; color: var(--los-primary); line-height: 1;
    }
    .bid-next-label { font-size: .75rem; color: var(--los-text-muted); margin-bottom: .15rem; }
    .bid-next-amount {
      font-size: 1.25rem; font-weight: 700; color: var(--los-text-dark); line-height: 1;
    }
    .bid-steps {
      display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .5rem;
    }
    .bid-step-btn {
      padding: .3rem .7rem; font-size: .8rem; font-weight: 600;
      border: 1px solid var(--los-border);
      border-radius: .4rem; background: #FFFFFF;
      color: var(--los-text-dark); cursor: pointer; transition: background .1s;
    }
    .bid-step-btn:hover, .bid-step-btn.active {
      background: var(--los-primary); color: #fff; border-color: var(--los-primary);
    }
    .btn-bid-submit {
      font-size: 1rem; font-weight: 700; padding: .75rem;
      letter-spacing: .03em;
      background: var(--los-primary); color: #fff; border: none; border-radius: 8px;
      width: 100%; transition: background .2s;
    }
    .btn-bid-submit:hover { background: #1d3f82; color: #fff; }
    .bid-countdown {
      display: flex; align-items: center; gap: .65rem;
      font-weight: 700;
      padding: .7rem .85rem;
      background: #EEF2FF; border: 1px solid #C7D2FE;
      border-radius: .625rem; color: var(--los-primary);
    }
    .bid-countdown.urgent-orange { background: #FFF6E9; border-color: #F0C778; color: #92520C; }
    .bid-countdown.urgent-red { background: var(--los-danger-bg); border-color: var(--los-danger); color: var(--los-danger); }
    .cd-dot {
      width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0;
      background: currentColor; animation: cdPulse 1.4s infinite;
    }
    @keyframes cdPulse { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
    .cd-label {
      font-size: .68rem; font-weight: 700; letter-spacing: .06em;
      text-transform: uppercase; opacity: .8;
    }
    .cd-parts { display: flex; gap: .35rem; flex-wrap: wrap; font-size: 1.15rem; font-weight: 800; letter-spacing: .01em; line-height: 1.2; }
    .cd-part { white-space: nowrap; }
    .cd-end { font-size: .72rem; font-weight: 500; opacity: .75; margin-top: .15rem; }

    /* Trust-Zeile + Proxy-Hinweis im Bid-Panel */
    .bid-trust {
      display: flex; flex-wrap: wrap; gap: .4rem 1rem;
      margin-top: 1rem; padding-top: .85rem;
      border-top: 1px solid #EEF0F4;
    }
    .bid-trust .trust-item i { color: #15803D; }
    .bid-proxy-hint {
      font-size: .72rem; color: #888888; line-height: 1.5; margin-top: .6rem;
    }
    .bid-meta-row {
      display: flex; justify-content: space-between; align-items: center;
      font-size: .8rem; color: var(--los-text-muted);
      padding: .4rem 0; border-bottom: 1px solid var(--los-border);
    }
    .bid-meta-row:last-child { border-bottom: none; }
    .bid-meta-row strong { color: var(--los-text-dark); }

    /* Mobile Los-Navigation (kompakt) */
    /* „Zurück zum Katalog" priorisiert: volle Breite, klar als Button, 44px Touch */
    .mob-los-back {
      display: flex; align-items: center; justify-content: center; gap: .35rem;
      min-height: 44px; padding: .5rem .9rem;
      font-size: .9rem; font-weight: 700; white-space: nowrap;
      color: var(--los-primary); background: var(--los-bg-light);
      border: 1px solid var(--los-border); border-radius: 8px; text-decoration: none;
    }
    .mob-los-back:hover { background: #EEF2FF; border-color: var(--los-primary); color: var(--los-primary); }
    .mob-los-nav {
      display: flex; align-items: stretch; justify-content: space-between; gap: .5rem;
      margin-top: .5rem;
    }
    .mob-los-nav-link {
      display: inline-flex; align-items: center; gap: .25rem;
      min-height: 44px; padding: .4rem .6rem;
      font-size: .85rem; font-weight: 600; color: var(--los-primary);
      text-decoration: none; white-space: nowrap;
      border: 1px solid var(--los-border); border-radius: 8px;
    }
    .mob-los-nav-link.disabled { color: #BBBBBB; pointer-events: none; opacity: .6; }
    .mob-los-nav-pos {
      display: flex; align-items: center; justify-content: center;
      font-size: .8rem; color: var(--los-text-muted); font-weight: 700; text-align: center; flex-shrink: 0;
    }
    /* Mobile Live-Banner (kompakt) */
    .mob-live-banner {
      display: flex; align-items: center; justify-content: space-between; gap: .5rem;
      background: var(--los-danger-bg); border: 1px solid var(--los-danger); border-radius: 8px;
      padding: .45rem .7rem; margin-bottom: .6rem;
      color: var(--los-danger); font-size: .82rem; font-weight: 600; text-decoration: none;
    }
    .mob-live-banner .mob-live-action {
      background: var(--los-danger); color: #fff; border-radius: 6px;
      padding: .25rem .55rem; font-size: .75rem; white-space: nowrap; flex-shrink: 0;
    }
    /* Mobile Basisinfos unter Titel */
    .mob-basisinfo {
      display: flex; flex-wrap: wrap; gap: .25rem 1rem;
      font-size: .82rem; color: var(--los-text-muted);
    }
    .mob-basisinfo strong { color: var(--los-text-dark); }

    /* Auction Meta */
    .auction-meta-bar {
      display: flex; flex-wrap: wrap; gap: .5rem 1rem;
      font-size: .8rem; color: var(--los-text-muted);
      margin-bottom: .75rem;
    }
    .auction-meta-bar span strong { color: var(--los-text-dark); }

    /* Live-Zuschauer (#2a) */
    .lot-live-viewers {
      display: inline-flex; align-items: center; gap: .35rem;
      color: #C62828; font-weight: 600;
    }
    .lot-live-viewers strong { color: #C62828 !important; }
    .lot-live-viewers .lv-dot {
      width: .5rem; height: .5rem; border-radius: 50%;
      background: #C62828; display: inline-block;
      box-shadow: 0 0 0 0 rgba(198,40,40,.5);
      animation: lvPulse 1.8s infinite;
    }
    @keyframes lvPulse {
      0%   { box-shadow: 0 0 0 0 rgba(198,40,40,.5); }
      70%  { box-shadow: 0 0 0 .35rem rgba(198,40,40,0); }
      100% { box-shadow: 0 0 0 0 rgba(198,40,40,0); }
    }

    /* Trust-Elemente */
    .trust-item {
      display: flex; align-items: center; gap: .5rem;
      font-size: .8rem; color: var(--los-text-muted);
    }
    .trust-item i { color: var(--los-primary); font-size: 1rem; }

    /* Detail-Sections */
    .detail-section { margin-bottom: 1.5rem; }
    .detail-section-title {
      font-size: .75rem; font-weight: 700; text-transform: uppercase;
      letter-spacing: .08em; color: var(--los-text-muted);
      margin-bottom: .75rem; padding-bottom: .4rem;
      border-bottom: 2px solid var(--los-primary);
      display: inline-block;
    }
    .condition-badge {
      display: inline-flex; align-items: center; gap: .35rem;
      background: #EEF2FF; border: 1px solid var(--los-primary);
      color: var(--los-primary); border-radius: .4rem;
      padding: .3rem .75rem; font-size: .8rem; font-weight: 600;
      margin-bottom: .75rem;
    }
    .spec-table td { padding: .35rem .5rem; font-size: .875rem; vertical-align: top; }
    .spec-table td:first-child { color: var(--los-text-muted); width: 140px; white-space: nowrap; }
    .spec-table td:last-child { font-weight: 500; color: var(--los-text-dark); }

    /* Bid-Feedback Toast */
    .bid-feedback {
      position: fixed; bottom: 1.5rem; left: 50%; transform: translateX(-50%);
      z-index: 2000; min-width: 280px; max-width: 400px;
      border-radius: .625rem; padding: 1rem 1.25rem;
      box-shadow: 0 8px 24px rgba(0,0,0,.18);
      display: none; align-items: center; gap: .75rem;
      font-weight: 600;
    }
    .bid-feedback.show { display: flex; }
    .bid-feedback.success { background: #d1e7dd; color: #0a3622; border: 1px solid #a3cfbb; }
    .bid-feedback.outbid  { background: #f8d7da; color: #58151c; border: 1px solid #f1aeb5; }

    /* Mobile Sticky Bottom Bar */
    .mobile-bid-bar {
      display: none;
      position: fixed;
      bottom: calc(58px + env(safe-area-inset-bottom));
      left: 0; right: 0; z-index: 1041;
      background: #FFFFFF;
      border-top: 2px solid var(--los-primary);
      padding: .95rem 1rem;
      gap: .75rem; align-items: center;
      box-shadow: 0 -6px 20px rgba(0,0,0,.12);
    }
    .mobile-bid-bar .btn {
      padding-top: .65rem; padding-bottom: .65rem; font-size: 1.02rem;
    }
    @media (max-width: 991px) {
      .mobile-bid-bar { display: flex; }
      .bid-panel { display: none; }
      body { padding-bottom: calc(140px + env(safe-area-inset-bottom)); }
    }
    .mobile-bid-bar .mob-bid-amount {
      font-size: 1.1rem; font-weight: 800; color: var(--los-primary); line-height: 1;
    }
    .mobile-bid-bar .mob-bid-time {
      font-size: .75rem; color: var(--los-text-muted); font-weight: 600;
    }
    .mob-bid-status {
      display: inline-flex; align-items: center; gap: .25rem;
      font-size: .68rem; font-weight: 700; margin-top: .25rem;
      padding: .15rem .45rem; border-radius: .3rem; line-height: 1.3;
    }
    .mob-bid-status--highest { background: #d1fae5; color: #065f46; }
    .mob-bid-status--outbid  { background: #fef3c7; color: #92400e; }

    /* Mobile Gebots-Bottom-Sheet */
    .mobile-bid-sheet-backdrop {
      display: none; position: fixed; inset: 0;
      background: rgba(0,0,0,.45); z-index: 1045;
    }
    .mobile-bid-sheet-backdrop.show { display: block; }
    .mobile-bid-sheet {
      position: fixed; left: 0; right: 0; bottom: 0; z-index: 1046;
      background: #FFFFFF; border-radius: 18px 18px 0 0;
      padding: .75rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom));
      box-shadow: 0 -8px 32px rgba(0,0,0,.18);
      transform: translateY(110%); transition: transform .28s ease;
    }
    .mobile-bid-sheet.show { transform: translateY(0); }
    .msheet-handle {
      width: 40px; height: 4px; border-radius: 2px; background: var(--los-border);
      margin: 0 auto .75rem;
    }
    .msheet-head {
      display: flex; align-items: center; justify-content: space-between;
      font-weight: 700; font-size: 1.05rem; color: var(--los-text-dark); margin-bottom: .9rem;
    }
    .msheet-head span i { color: var(--los-primary); }
    .msheet-close {
      border: none; background: #F3F4F6; color: var(--los-text-muted);
      width: 32px; height: 32px; border-radius: 50%; font-size: 1.1rem;
      display: flex; align-items: center; justify-content: center; cursor: pointer;
    }
    .msheet-info {
      display: flex; justify-content: space-between; gap: 1rem;
      background: var(--los-bg-light); border: 1px solid var(--los-border); border-radius: 10px;
      padding: .65rem .85rem; margin-bottom: 1rem;
    }
    .msheet-info-label { font-size: .7rem; color: #888888; text-transform: uppercase; letter-spacing: .04em; }
    .msheet-info-value { font-size: 1rem; font-weight: 800; color: var(--los-primary); }
    .msheet-label { font-size: .8rem; color: var(--los-text-muted); margin-bottom: .4rem; display: block; }
    .msheet-input-row { display: flex; align-items: stretch; gap: .5rem; margin-bottom: 1rem; }
    .msheet-step {
      flex-shrink: 0; width: 52px; border: 1px solid var(--los-border); background: #fff;
      border-radius: 10px; font-size: 1.4rem; color: var(--los-primary); cursor: pointer;
      display: flex; align-items: center; justify-content: center;
    }
    .msheet-step:active { background: #EEF2FF; }
    .msheet-input-wrap { position: relative; flex: 1; }
    .msheet-input-wrap input {
      width: 100%; height: 100%; border: 1px solid var(--los-border); border-radius: 10px;
      font-size: 1.6rem; font-weight: 800; color: var(--los-text-dark); text-align: center;
      padding: .55rem 1.8rem .55rem .55rem; outline: none;
    }
    .msheet-input-wrap input:focus { border-color: var(--los-primary); }
    .msheet-currency {
      position: absolute; right: .9rem; top: 50%; transform: translateY(-50%);
      font-size: 1.2rem; font-weight: 700; color: #888888;
    }
    .msheet-submit {
      width: 100%; border: none; border-radius: 10px;
      background: var(--los-primary); color: #fff; font-weight: 800; font-size: 1.05rem;
      padding: .85rem; cursor: pointer;
    }
    .msheet-submit:active { background: #1d3f82; }
    @media (min-width: 992px) {
      .mobile-bid-sheet, .mobile-bid-sheet-backdrop { display: none !important; }
    }

    /* Cross Selling â€“ Katalog-Standard (lot-grid + lot-card) */
    .lot-grid { display: grid; gap: 1rem; }
    /* Ã„hnliche Lose â€“ horizontale Scroll-Liste mit grÃ¶ÃŸeren Karten */
    .lot-scroll {
      display: flex; gap: 1rem; overflow-x: auto; padding-bottom: .5rem;
      scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
    }
    .lot-scroll .lot-card {
      flex: 0 0 auto; width: 220px; scroll-snap-align: start;
    }
    @media (max-width: 575px) {
      .lot-scroll .lot-card { width: 60vw; }
    }
    @media (min-width: 1400px) { .lot-grid { grid-template-columns: repeat(5, 1fr); } }
    @media (min-width: 992px) and (max-width: 1399px) { .lot-grid { grid-template-columns: repeat(4, 1fr); } }
    @media (min-width: 576px) and (max-width: 991px) { .lot-grid { grid-template-columns: repeat(2, 1fr); } }
    @media (max-width: 575px) { .lot-grid { grid-template-columns: repeat(2, 1fr); } }
    .lot-card {
      border: 1px solid var(--los-border); border-radius: 12px; overflow: hidden;
      background: #FFFFFF; transition: box-shadow .15s, transform .15s;
      position: relative; cursor: pointer; display: block;
      text-decoration: none; color: inherit;
    }
    .lot-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.08); transform: translateY(-2px); color: inherit; text-decoration: none; }
    .lot-img {
      width: 100%; aspect-ratio: 1/1; background: var(--los-bg-light);
      display: flex; align-items: center; justify-content: center;
      color: var(--los-text-placeholder); font-size: 2.5rem; position: relative; overflow: hidden;
    }
    .lot-img img { width: 100%; height: 100%; object-fit: cover; }
    .lot-nr {
      position: absolute; bottom: .4rem; left: .4rem;
      background: rgba(0,0,0,.55); color: #fff;
      font-size: .7rem; font-weight: 700; padding: .15rem .45rem; border-radius: .3rem;
    }
    .lot-body { padding: .65rem .75rem .75rem; }
    .lot-bid-label { font-size: .68rem; color: #888888; margin-bottom: .05rem; text-transform: uppercase; letter-spacing: .04em; }
    .lot-bid { font-size: 1.1rem; font-weight: 800; color: var(--los-primary); line-height: 1.1; }
    .lot-title { font-size: .8rem; font-weight: 500; line-height: 1.3; color: #555555; margin-bottom: .25rem; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
    .lot-time-small { font-size: .72rem; color: #888888; margin-top: .2rem; }

    /* Lightbox */
    .lightbox-overlay {
      display: none; position: fixed; inset: 0; background: rgba(0,0,0,.92);
      z-index: 3000; align-items: center; justify-content: center;
    }
    .lightbox-overlay.show { display: flex; }
    /* Bühne: Zoom bleibt hier drin, Knöpfe liegen darüber (01.10.2026) */
    .lightbox-buehne {
      position: absolute; inset: 0; overflow: hidden; z-index: 1;
      display: flex; align-items: center; justify-content: center;
    }
    .lightbox-close, .lightbox-prev, .lightbox-next, .lightbox-zoom, .lightbox-counter { z-index: 2; }
    /* Dunkel hinterlegt, damit die Knöpfe auch über hellen, gezoomten Fotos sichtbar bleiben */
    .lightbox-close, .lightbox-prev, .lightbox-next, .lightbox-zoom { background: rgba(0,0,0,.55) !important; box-shadow: 0 0 0 1px rgba(255,255,255,.25); }
    .lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover, .lightbox-zoom:hover { background: rgba(0,0,0,.8) !important; }
    .lightbox-counter { background: rgba(0,0,0,.55); padding: .1rem .6rem; border-radius: 999px; }
    #lightbox-img {
      max-width: 90vw; max-height: 90vh; object-fit: contain; border-radius: .5rem;
      transition: transform .2s; cursor: zoom-in; touch-action: pan-y; user-select: none; -webkit-user-drag: none;
    }
    #lightbox-img.zoomed { cursor: grab; touch-action: none; }
    #lightbox-img.zoomed:active { cursor: grabbing; }
    .lightbox-360 {
      width: min(92vw, calc(88vh * 4 / 3)); max-height: 88vh;
      background: transparent; border: 0; touch-action: none;
    }
    .lightbox-close {
      position: absolute; top: 1rem; right: 1rem;
      background: rgba(255,255,255,.15); color: #fff;
      border: none; border-radius: 50%; width: 2.5rem; height: 2.5rem;
      font-size: 1.2rem; cursor: pointer; display: flex; align-items: center; justify-content: center;
    }
    .lightbox-close:hover { background: rgba(255,255,255,.3); }
    .lightbox-prev, .lightbox-next {
      position: absolute; top: 50%; transform: translateY(-50%);
      background: rgba(255,255,255,.15); color: #fff;
      border: none; border-radius: 50%; width: 2.75rem; height: 2.75rem;
      font-size: 1.4rem; cursor: pointer; display: flex; align-items: center; justify-content: center;
    }
    @media (max-width: 991px) {
      .lightbox-prev, .lightbox-next, .lightbox-close, .lightbox-zoom {
        width: 2.75rem; height: 2.75rem; min-width: 44px; min-height: 44px;
      }
    }
    .lightbox-prev:hover, .lightbox-next:hover { background: rgba(255,255,255,.3); }
    .lightbox-prev { left: 1rem; }
    .lightbox-next { right: 1rem; }
    .lightbox-counter {
      position: absolute; bottom: 1rem; left: 50%; transform: translateX(-50%);
      color: rgba(255,255,255,.7); font-size: .85rem;
    }
    .lightbox-zoom {
      position: absolute; bottom: 1rem; right: 1rem;
      background: rgba(255,255,255,.15); color: #fff;
      border: none; border-radius: 50%; width: 2.5rem; height: 2.5rem;
      font-size: 1.2rem; cursor: pointer; display: flex; align-items: center; justify-content: center;
    }
    .lightbox-zoom:hover { background: rgba(255,255,255,.3); }

    /* Navigation Buttons */
    .btn-nav-prev-next {
      border: 1px solid var(--los-border); color: var(--los-text-dark); background: #fff; border-radius: 8px;
    }
    .btn-nav-prev-next.disabled { color: #999; background: var(--los-bg-light); pointer-events: none; }
    .btn-nav-catalog {
      border: 1px solid var(--los-primary); color: var(--los-primary); background: #fff; border-radius: 8px;
    }

    /* Push-Banner */
    .pwa-push-banner {
      background: var(--los-push-bg); border: 1px solid var(--los-push-border); border-radius: 8px;
    }
    .pwa-push-banner-icon { color: var(--los-primary); }
    .pwa-push-banner-title { color: var(--los-push-title); }

    /* Breadcrumb */
    .breadcrumb-sm { font-size: .8rem; }

    /* Live-Alert */
    .alert-live {
      background: var(--los-danger-bg); border: 1px solid var(--los-danger); border-radius: 8px; color: var(--los-danger);
    }
    .btn-live {
      background: var(--los-danger); color: #fff; border-radius: 8px; font-weight: 600; border: none;
    }

    /* Bid Panel Badges */
    .los-title { font-size: 1.35rem; line-height: 1.3; }
    .los-title-mobile { font-size: 1.25rem; line-height: 1.3; }

    /* SSE Status */
    .sse-status-base { font-size: .85rem; border-radius: 8px; }

    /* Bid Form */
    .bid-input { border-radius: 8px 0 0 8px; font-size: 1rem; font-weight: 700; }
    .bid-input-suffix { border-radius: 0 8px 8px 0; }
    .bid-label { font-size: .75rem; color: #666; margin-bottom: .3rem; display: block; }

    /* Watchlist Button */
    .btn-watchlist {
      border: 1px solid var(--los-primary); color: var(--los-primary); background: #fff;
      border-radius: 8px; font-weight: 600;
    }

    /* Bid Confirm Modal */
    .bid-confirm-overlay {
      display: none; position: fixed; inset: 0; background: rgba(0,0,0,.5);
      z-index: 4000; align-items: center; justify-content: center;
    }
    .bid-confirm-box {
      background: #fff; border-radius: 12px; padding: 2rem;
      max-width: 400px; width: 90%; box-shadow: 0 8px 32px rgba(0,0,0,.2);
    }
    .bid-confirm-title { font-size: 1.1rem; color: #222; }
    .bid-confirm-subtitle { font-size: .85rem; }
    .bid-confirm-amount-label { font-size: .75rem; color: #666; text-transform: uppercase; letter-spacing: .04em; }
    .bid-confirm-amount { font-size: 2.5rem; font-weight: 800; color: var(--los-primary); line-height: 1.1; }
    .btn-confirm-cancel {
      flex: 1; padding: .65rem; border: 1px solid var(--los-border);
      border-radius: 8px; background: #fff; font-weight: 600; cursor: pointer;
    }
    .btn-confirm-submit {
      flex: 1; padding: .65rem; border: none;
      border-radius: 8px; background: var(--los-primary); color: #fff; font-weight: 700; cursor: pointer;
    }

    /* Mobile Sticky Bar Buttons */
    .btn-mob-bid {
      background: var(--los-primary); color: #fff; border: none; border-radius: 8px;
    }
    .btn-mob-bid-ended {
      background: #9CA3AF; color: #fff; border: none; border-radius: 8px;
    }

    /* Auction ended alert */
    .alert-auction-ended { font-size: .85rem; border-radius: 8px; }

    /* Bid Feedback Toast */
    .bid-feedback-icon { font-size: 1.4rem; }
    .bid-feedback-sub { font-size: .8rem; font-weight: 400; opacity: .8; }

    /* SSE Max-Bid Info */
    .sse-maxbid-info { font-size: .75rem; }

    /* Los Position Counter */
    .los-position { font-size: .8rem; }

    /* Live Emoji */
    .live-emoji { font-size: 1rem; }
    .live-emoji-sm { font-size: .9rem; }

    /* Countdown flex */
    .cd-flex-1 { flex: 1; }

    /* Beschreibung */
    .lot-description { line-height: 1.7; }

    /* Gebotshistorie */
    .badge-xs { font-size: .65rem; }
    .bid-history-time { font-size: .72rem; }


/* Leerzustand (kein Foto) für Los-Karten */
.lot-img.is-empty {
    background: #F3F4F6 url('../../assets/img/branding/logo_auktionshalle.svg') no-repeat center center;
    background-size: 55% auto;
    color: #6B7280;
}
.lot-img.is-empty::after {
    content: 'Foto folgt';
    position: absolute;
    bottom: .4rem;
    left: 50%;
    transform: translateX(-50%);
    font-size: .65rem;
    letter-spacing: .02em;
    color: #6B7280;
    background: rgba(255,255,255,.7);
    padding: .05rem .4rem;
    border-radius: .25rem;
}

/* Touch-Targets: btn-sm mindestens 44px auf Touch-Breiten */
@media (max-width: 991px) {
    .btn-sm {
        min-height: 44px;
    }
    .btn-sm.btn-icon,
    .btn-icon.btn-sm {
        min-width: 44px;
    }
}

/* ── Mobil-Audit 2026-09-24 ─────────────────────────────────── */
/* Herz (Beobachten) in der mobilen Gebotsleiste – das Bid-Panel mit dem Beobachten-Button ist mobil ausgeblendet */
.btn-mob-watch {
    flex-shrink: 0;
    width: 44px; height: 44px;
    border: 1px solid var(--los-border); border-radius: 8px;
    background: #fff; color: #4b5563; font-size: 1.35rem;
    display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer; padding: 0;
}
.btn-mob-watch.active { color: #ef4444; border-color: #fecaca; background: #fff5f5; }
.btn-mob-watch:active { background: #EEF2FF; }
@media (max-width: 991px) {
    /* Leiste ~90 px + Bottom-Navigation 60 px (kommt aus dem Layout): 140 px zusätzlich ergaben
       ~200 px Leerraum unter dem Footer. */
    body { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
    .mobile-bid-bar { padding: .7rem .9rem; gap: .6rem; }
    .mobile-bid-bar .btn { padding-left: 1rem; padding-right: 1rem; white-space: nowrap; }
}

/* Kosten im Gebots-Bestätigungsdialog (29.09.2026) */
.bid-confirm-kosten { width: 100%; font-size: .85rem; border-collapse: collapse; }
.bid-confirm-kosten td { padding: .2rem 0; color: var(--bs-secondary-color, #555); }
.bid-confirm-kosten td:last-child { text-align: right; font-variant-numeric: tabular-nums; color: var(--bs-body-color, #222); }
.bid-confirm-kosten .bid-confirm-kosten-summe td { border-top: 1px solid rgba(0,0,0,.15); padding-top: .35rem; font-weight: 700; color: var(--bs-body-color, #222); }

/* Mobile Los-Seite: Bild zuerst (29.09.2026) */
.mob-los-leiste { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.mob-los-leiste-katalog {
  display: inline-flex; align-items: center; gap: .3rem; min-height: 40px; padding: .35rem .75rem;
  font-size: .88rem; font-weight: 700; color: var(--los-primary); text-decoration: none;
  background: var(--los-bg-light); border: 1px solid var(--los-border); border-radius: 8px; white-space: nowrap;
}
.mob-los-leiste-blaettern { display: inline-flex; align-items: center; gap: .25rem; }
.mob-los-leiste-pfeil {
  display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px;
  font-size: 1.35rem; color: var(--los-primary); border: 1px solid var(--los-border); border-radius: 8px; text-decoration: none;
}
.mob-los-leiste-pfeil.disabled { color: #BBBBBB; opacity: .6; }
.mob-los-leiste-pos { font-size: .85rem; font-weight: 700; color: var(--los-text-dark, #1F2937); white-space: nowrap; padding: 0 .15rem; }
.mob-los-leiste-pos small { font-weight: 600; color: var(--los-text-muted); }

/* Wisch-Anzeige im Hauptbild */
.gallery-wisch { position: absolute; left: 0; right: 0; bottom: .6rem; display: flex; flex-direction: column; align-items: center; gap: .35rem; pointer-events: none; }
.gallery-wisch-zahl { position: absolute; left: .6rem; bottom: 0; background: rgba(17, 24, 39, .65); color: #fff; font-size: .75rem; font-weight: 700; padding: .15rem .5rem; border-radius: 999px; }
.gallery-wisch-punkte { display: flex; gap: .3rem; }
.gallery-wisch-punkte i { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.7); box-shadow: 0 0 0 1px rgba(0,0,0,.25); }
.gallery-wisch-punkte i.aktiv { background: var(--los-primary); width: 16px; border-radius: 4px; }
@media (min-width: 992px) { .gallery-wisch-punkte { display: none; } }
@media (max-width: 991px) {
  .gallery-main { aspect-ratio: 1 / 1; min-height: 0; touch-action: pan-y; }
}

/* Mobile Losseite, Runde 2 (29.09.2026) */
@media (max-width: 991px) {
  .gallery-thumbs { display: none; }            /* Wischen + Punkte ersetzen die Vorschaubilder */
  /* … außer mit 360°: dann führen die Vorschaubilder zu den Fotos (Wischen im 360° dreht) */
  .gallery-thumbs.mit-360 { display: flex; flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .viewer360-wrap { aspect-ratio: 1 / 1; touch-action: pan-y; }
  .lightbox-360 { aspect-ratio: auto; height: 80vh; }
  .gallery-zoom-btn { display: none; }          /* Tippen aufs Foto öffnet das Vollbild */
  #mob-los-info { transition: transform .2s, opacity .2s; }
  #mob-los-info.geht-weiter { transform: translateX(-30px); opacity: .4; }
  #mob-los-info.geht-zurueck { transform: translateX(30px); opacity: .4; }
}
.gallery-aktionen { position: absolute; top: .6rem; right: .6rem; display: flex; gap: .45rem; z-index: 3; }
.gallery-aktion {
  width: 42px; height: 42px; border-radius: 50%; border: 0; display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.92); color: var(--los-primary); font-size: 1.3rem; box-shadow: 0 2px 8px rgba(0,0,0,.18); text-decoration: none;
}
.gallery-aktion.active { color: #DC2626; }

/* Livegang-Audit 02.10.2026: Ablauf-Sperre, Registrierungs-Hinweis für Gäste */
.btn-bid-submit:disabled, .btn-mob-bid:disabled { opacity: .55; cursor: not-allowed; }
.bid-register-hint { color: #6B7280; }
.bid-register-hint a { color: var(--los-primary); font-weight: 600; text-decoration: underline; }
