/* ── Превоз · слика на картичка + мапа на седишта (30.08.2026) ──────────────
   Оди со busrail.js. Мобилен прв: мрежата на седишта е ≤300px широка, копче
   на седиште ≥40px високо (палец-тест), нема хоризонтален скрол. */

/* слика на картичката со резултат */
.sv-bus-img { position: relative; margin: -4px 0 10px; border-radius: 12px;
  overflow: hidden; aspect-ratio: 16 / 10; background: #fff3e8; }
.sv-bus-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sv-bus-seatchip { position: absolute; left: 8px; bottom: 8px;
  background: rgba(255,255,255,0.92); color: #b34700; font-weight: 700;
  font-size: 0.72rem; padding: 3px 9px; border-radius: 999px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.15); }

/* мапа на седишта во дијалогот */
.sv-seatmap { border: 1px solid var(--brand-border, #eee); border-radius: 14px;
  padding: 12px; margin: 4px 0 6px; background: var(--brand-input-bg, #fafafa); }
.sv-sm-head { font-weight: 800; font-size: 0.95rem; color: var(--brand-text, #222);
  display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.sv-sm-opt { font-weight: 600; font-size: 0.72rem; color: var(--brand-accent, #f57c00); }
.sv-sm-note { font-size: 0.72rem; color: var(--brand-text-muted, #888); margin: 4px 0 10px; }
.sv-sm-load { font-size: 0.8rem; color: var(--brand-text-muted, #888); padding: 8px 0; }

.sv-sm-deck { max-width: 300px; margin: 0 auto; border: 2px solid var(--brand-border, #ddd);
  border-radius: 18px 18px 10px 10px; padding: 10px 10px 12px; background: #fff; }
.sv-sm-front { text-align: center; font-size: 0.68rem; color: var(--brand-text-muted, #999);
  border-bottom: 1px dashed var(--brand-border, #ddd); padding-bottom: 6px; margin-bottom: 8px; }
.sv-sm-row { display: flex; gap: 6px; margin-bottom: 6px; justify-content: center; }
.sv-sm-aisle { width: 22px; flex: 0 0 22px; }
.sv-sm-row5 { gap: 4px; }

.sv-seat { flex: 1 1 0; min-width: 42px; min-height: 40px; border-radius: 8px 8px 5px 5px;
  border: 1.5px solid var(--brand-accent, #f57c00); background: #fff;
  color: var(--brand-accent, #f57c00); font-weight: 700; font-size: 0.7rem;
  cursor: pointer; padding: 0; line-height: 1; touch-action: manipulation; }
.sv-seat.is-sel { background: var(--brand-accent, #f57c00); color: #fff;
  box-shadow: 0 2px 8px rgba(245,124,0,0.4); }
.sv-seat.is-taken { border-color: #ccc; background: #e6e6e6; color: #aaa; cursor: not-allowed; }
.sv-seat.is-held { border-color: #b9b9b9; background: repeating-linear-gradient(
    45deg, #eee, #eee 4px, #e0e0e0 4px, #e0e0e0 8px); color: #999; cursor: not-allowed; }
.sv-seat:disabled { opacity: 0.9; }

.sv-sm-legend { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 10px;
  font-size: 0.68rem; color: var(--brand-text-muted, #888); align-items: center; }
.sv-sm-legend span { display: inline-flex; align-items: center; gap: 4px; }
.sv-seat.is-demo { flex: 0 0 16px; min-width: 16px; min-height: 14px; height: 14px;
  pointer-events: none; border-radius: 4px; }

.sv-sm-sum { margin-top: 10px; font-size: 0.8rem; color: var(--brand-text, #333);
  background: rgba(245,124,0,0.07); border-radius: 10px; padding: 8px 10px; }
.sv-sm-sum b { color: var(--brand-accent, #f57c00); }

/* жива бројка: капацитет по дестинација + слободни (30.08 v2) */
.sv-sm-avail { font-size: 0.78rem; color: var(--brand-text, #333); margin: 0 0 8px;
  background: rgba(245,124,0,0.06); border-radius: 8px; padding: 6px 9px; }
.sv-sm-avail b { color: var(--brand-accent, #f57c00); }
