.pbb-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pbb-form label{display:flex;flex-direction:column}
.pbb-terms-label{flex-direction:row;align-items:center;gap:8px}
.pbb-required{color:#d00;margin-left:4px}
.pbb-available{grid-column:1/-1;margin-bottom:8px}
.pbb-soldout{grid-column:1/-1;margin-bottom:8px;color:#d32f2f;font-weight:700}
.pbb-form .pbb-soldout.pbb-soldout-waitlist{color:#d32f2f!important;font-weight:800!important}
.pbb-result{grid-column:1/-1;margin-top:8px}
.pbb-stop-time{grid-column:1/-1;margin:4px 0 8px;color:#333;font-weight:600}
.pbb-stops-table{width:100%;border-collapse:collapse}
.pbb-stops-table th,.pbb-stops-table td{border:1px solid #ddd;padding:8px;text-align:left}
.pbb-stops-table thead{background:#f7f7f7}
.pbb-terms-modal{position:fixed;inset:0;z-index:9999}
.pbb-terms-overlay{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.pbb-terms-content{position:relative;max-width:800px;margin:5% auto;background:#fff;color:#000000;padding:16px;border-radius:6px;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.pbb-terms-close{position:absolute;right:10px;top:10px;background:transparent;border:0;font-size:22px;line-height:1;cursor:pointer}
.pbb-confetti-overlay{position:fixed;inset:0;z-index:99999;pointer-events:none}
.pbb-confetti-overlay canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.pbb-confetti-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.pbb-confetti-message{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#ff0000;padding:0;border-radius:0;font-size:clamp(36px,10vw,96px);font-weight:800;line-height:1.1;text-align:center;z-index:2}

@media (max-width: 767px){
  .pbb-form{grid-template-columns:1fr}
  .pbb-terms-label{flex-wrap:wrap}
  .pbb-form button{grid-column:1/-1;width:100%}
}

.pbb-photo-upload{display:block}
.pbb-photo-upload-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}
.pbb-photo-upload-form label{display:flex;flex-direction:column}
.pbb-photo-ref-row{grid-column:1/-1;display:flex;gap:12px;align-items:stretch}
.pbb-photo-ref-field{flex:1 1 auto}
.pbb-photo-ref-field input{width:100%}
.pbb-photo-verify{flex:0 0 auto;white-space:nowrap}
.pbb-photo-verify-result,.pbb-photo-upload-result{grid-column:1/-1;margin-top:8px}
.pbb-photo-upload-success{margin:10px 0 0}
.pbb-photo-upload-fields{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pbb-photo-upload-submit{grid-column:1/-1}
.pbb-photo-manage{grid-column:1/-1;margin-top:10px}
.pbb-photo-manage-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px}
.pbb-photo-manage-title{font-weight:700}
.pbb-photo-manage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:10px}
.pbb-photo-item{position:relative}
.pbb-photo-item-link{display:block}
.pbb-photo-item-img{width:100%;height:auto;display:block}
.pbb-photo-delete-one{position:absolute;right:8px;top:8px;background:#d32f2f;color:#fff;border:0;border-radius:4px;padding:6px 10px;cursor:pointer}
.pbb-photo-manage-empty{grid-column:1/-1}
.pbb-photo-manage-result{grid-column:1/-1;margin-top:8px}
.pbb-photo-upload-overlay{position:fixed;inset:0;z-index:99998;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.55);backdrop-filter:blur(2px)}
.pbb-photo-upload-overlay-panel{width:min(420px,92vw);background:#111;color:#fff;border-radius:14px;padding:18px 18px 16px;box-shadow:0 18px 60px rgba(0,0,0,.45)}
.pbb-photo-upload-overlay-title{font-weight:700;font-size:16px;margin:0 0 12px}
.pbb-photo-upload-progress{height:10px;background:rgba(255,255,255,.14);border-radius:999px;overflow:hidden}
.pbb-photo-upload-progress-bar{height:100%;background:linear-gradient(90deg,#00c853,#00bfa5);border-radius:999px;width:0%}
.pbb-photo-upload-progress-text{margin-top:10px;font-size:13px;opacity:.9}
body.pbb-no-scroll{overflow:hidden}
.pbb-trip-photos-heading{margin:18px 0 10px}
.pbb-trip-photos-grid{display:grid;grid-template-columns:repeat(var(--pbb-trip-photo-cols,3),minmax(0,1fr));gap:12px}
.pbb-trip-photo-link{display:block}
.pbb-trip-photo-img{width:100%;height:auto;display:block}

@media (max-width: 767px){
  .pbb-photo-upload-form{grid-template-columns:1fr}
  .pbb-photo-ref-row{flex-direction:column}
  .pbb-photo-verify{width:100%}
  .pbb-photo-upload-fields{grid-template-columns:1fr}
  .pbb-photo-manage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pbb-trip-photos-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
