/* Event Booking Pro – Public Styles */
.ebp-wrapper {
    max-width: 640px;
    margin: 0 auto 40px;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.ebp-event-info { margin-bottom: 20px; }
.ebp-title { font-size: 1.6rem; margin: 0 0 8px; }
.ebp-description { color: #555; margin-bottom: 12px; }
.ebp-meta { display: flex; gap: 18px; flex-wrap: wrap; color: #666; font-size: 0.9rem; margin-bottom: 16px; }

/* Capacity bar */
.ebp-capacity-bar { margin-bottom: 20px; }
.ebp-bar-track { background: #e9ecef; border-radius: 999px; height: 10px; overflow: hidden; margin-bottom: 8px; }
.ebp-bar-fill  { background: #27ae60; height: 100%; border-radius: 999px; transition: width .4s; }
.ebp-bar-fill.full { background: #e74c3c; }
.ebp-capacity-text { display: flex; gap: 10px; flex-wrap: wrap; }

/* Tags */
.ebp-tag { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 0.78rem; font-weight: 600; }
.ebp-tag.available  { background: #d4edda; color: #155724; }
.ebp-tag.full       { background: #f8d7da; color: #721c24; }
.ebp-tag.waitlist   { background: #fff3cd; color: #856404; }
.ebp-tag.active     { background: #cce5ff; color: #004085; }
.ebp-tag.checkedin  { background: #d4edda; color: #155724; }

/* Honeypot — completely hidden from real users */
.ebp-hp {
    position: absolute !important;
    left: -9999px !important;
    top: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Form */
.ebp-form { background: #fff; border: 1px solid #dee2e6; border-radius: 10px; padding: 28px; box-shadow: 0 2px 12px rgba(0,0,0,.06); }
.ebp-row  { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 520px) { .ebp-row { grid-template-columns: 1fr; } }
.ebp-field { margin-bottom: 16px; }
.ebp-field label { display: block; font-weight: 600; margin-bottom: 5px; font-size: .9rem; color: #333; }
.ebp-field input, .ebp-field select, .ebp-field textarea {
    width: 100%; padding: 9px 12px; border: 1px solid #ced4da; border-radius: 6px;
    font-size: .95rem; box-sizing: border-box; transition: border-color .2s, box-shadow .2s;
}
.ebp-field input:focus, .ebp-field select:focus, .ebp-field textarea:focus {
    outline: none; border-color: #4a90d9; box-shadow: 0 0 0 3px rgba(74,144,217,.15);
}
.ebp-field textarea { min-height: 90px; resize: vertical; }
.req { color: #e74c3c; }

/* Error state on fields */
.ebp-field-error {
    border-color: #e74c3c !important;
    box-shadow: 0 0 0 3px rgba(231,76,60,.12) !important;
}

/* Captcha field */
.ebp-captcha-field { background: #f8f9ff; border: 1px solid #dde2f0; border-radius: 8px; padding: 14px 16px; }
.ebp-captcha-hint  { color: #888; font-size: .8rem; margin: 4px 0 0; }

/* Field hint (sub-label) */
.ebp-field-hint { font-weight: 400; color: #888; font-size:.8rem; margin-left:4px; }

/* Guest count select */
.ebp-guest-select { background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M0 0l6 8 6-8z' fill='%23555'/%3E%3C/svg%3E") no-repeat right 12px center; appearance:none; -webkit-appearance:none; }

/* Submit button */
.ebp-btn {
    display: block; width: 100%; padding: 13px; background: #2c3e50; color: #fff;
    border: none; border-radius: 8px; font-size: 1rem; font-weight: 600;
    cursor: pointer; margin-top: 8px; transition: background .2s, transform .1s;
    letter-spacing: .3px;
}
.ebp-btn:hover    { background: #1a252f; transform: translateY(-1px); }
.ebp-btn:active   { transform: translateY(0); }
.ebp-btn:disabled { background: #adb5bd; cursor: not-allowed; transform: none; }

/* Loading spinner in button */
.ebp-spinner {
    display: inline-block; width: 14px; height: 14px;
    border: 2px solid rgba(255,255,255,.4); border-top-color: #fff;
    border-radius: 50%; animation: ebp-spin .6s linear infinite;
    vertical-align: middle; margin-right: 6px;
}
@keyframes ebp-spin { to { transform: rotate(360deg); } }

/* Notices */
.ebp-notice { padding: 12px 16px; border-radius: 6px; margin-bottom: 16px; font-size: .9rem; }
.ebp-error   { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
.ebp-success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.ebp-warning { background: #fff3cd; color: #856404; border: 1px solid #ffeeba; }

/* Inline message (appears inside form after button) */
.ebp-message {
    margin-top: 14px; padding: 14px 18px; border-radius: 8px; font-weight: 500; font-size: .95rem;
}
.ebp-msg-success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.ebp-msg-error   { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
