/* BookFlow Pro Public CSS */
:root {
    --bfp-primary: #3788d8;
    --bfp-primary-hover: #2a6cb8;
    --bfp-success: #28a745;
    --bfp-warning: #ffc107;
    --bfp-danger: #dc3545;
    --bfp-text: #333;
    --bfp-text-light: #666;
    --bfp-border: #e0e0e0;
    --bfp-bg: #f8f9fa;
    --bfp-radius: 8px;
}

/* Calendar Wrapper */
.bfp-calendar-wrapper { max-width: 100%; margin: 20px 0; }
.bfp-activity-header { margin-bottom: 20px; padding: 20px; background: var(--bfp-bg); border-radius: var(--bfp-radius); }
.bfp-activity-header h3 { margin: 0 0 10px; font-size: 22px; color: var(--bfp-text); }
.bfp-activity-meta { display: flex; gap: 20px; font-size: 14px; color: var(--bfp-text-light); }
.bfp-activity-meta .dashicons { font-size: 16px; width: 16px; height: 16px; margin-right: 5px; vertical-align: middle; }
.bfp-calendar { background: #fff; padding: 20px; border-radius: var(--bfp-radius); box-shadow: 0 2px 8px rgba(0,0,0,0.08); }

/* Booking Form */
.bfp-booking-form { max-width: 500px; }
.bfp-form-group { margin-bottom: 20px; }
.bfp-form-group label { display: block; margin-bottom: 8px; font-weight: 600; color: var(--bfp-text); }
.bfp-form-group input, .bfp-form-group select { width: 100%; padding: 12px 15px; border: 1px solid var(--bfp-border); border-radius: var(--bfp-radius); font-size: 15px; }
.bfp-form-group input:focus, .bfp-form-group select:focus { outline: none; border-color: var(--bfp-primary); box-shadow: 0 0 0 3px rgba(55,136,216,0.1); }

/* Time Slots */
.bfp-time-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; margin-top: 10px; }
.bfp-time-slot { padding: 12px 15px; background: var(--bfp-bg); border: 2px solid transparent; border-radius: var(--bfp-radius); text-align: center; cursor: pointer; transition: all 0.2s; }
.bfp-time-slot:hover { border-color: var(--bfp-primary); }
.bfp-time-slot.selected { background: var(--bfp-primary); color: #fff; border-color: var(--bfp-primary); }
.bfp-time-slot.unavailable { opacity: 0.5; cursor: not-allowed; text-decoration: line-through; }
.bfp-time-slot .slot-time { display: block; font-weight: 600; font-size: 15px; }
.bfp-time-slot .slot-remaining { display: block; font-size: 12px; margin-top: 4px; }
.bfp-time-slot.selected .slot-remaining { color: rgba(255,255,255,0.8); }

/* Buttons */
.bfp-btn { display: inline-block; padding: 12px 25px; background: var(--bfp-primary); color: #fff; border: none; border-radius: var(--bfp-radius); font-size: 15px; font-weight: 600; cursor: pointer; text-decoration: none; transition: all 0.2s; }
.bfp-btn:hover { background: var(--bfp-primary-hover); color: #fff; }
.bfp-btn:disabled { opacity: 0.6; cursor: not-allowed; }
.bfp-btn-outline { background: transparent; border: 2px solid var(--bfp-primary); color: var(--bfp-primary); }
.bfp-btn-outline:hover { background: var(--bfp-primary); color: #fff; }

/* Price Display */
.bfp-price-display { padding: 15px 20px; background: var(--bfp-bg); border-radius: var(--bfp-radius); margin: 20px 0; }
.bfp-price-row { display: flex; justify-content: space-between; margin-bottom: 8px; font-size: 14px; }
.bfp-price-row:last-child { margin-bottom: 0; }
.bfp-price-total { font-size: 18px; font-weight: 700; padding-top: 10px; border-top: 1px solid var(--bfp-border); }

/* Activities List */
.bfp-activities-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.bfp-activity-item { background: #fff; border-radius: var(--bfp-radius); box-shadow: 0 2px 8px rgba(0,0,0,0.08); overflow: hidden; }
.bfp-activity-item img { width: 100%; height: 180px; object-fit: cover; }
.bfp-activity-item .activity-content { padding: 20px; }
.bfp-activity-item h4 { margin: 0 0 10px; font-size: 18px; }
.bfp-activity-item .activity-meta { display: flex; gap: 15px; font-size: 13px; color: var(--bfp-text-light); margin-bottom: 15px; }

/* Status */
.bfp-status { display: inline-block; padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 600; }
.status-pending { background: #fff3cd; color: #856404; }
.status-confirmed { background: #d4edda; color: #155724; }
.status-cancelled { background: #f8d7da; color: #721c24; }
.status-completed { background: #e2e3e5; color: #383d41; }

/* Loading */
.bfp-loading { text-align: center; padding: 40px; color: var(--bfp-text-light); }
.bfp-loading:after { content: ''; display: inline-block; width: 20px; height: 20px; border: 2px solid var(--bfp-border); border-top-color: var(--bfp-primary); border-radius: 50%; animation: bfp-spin 0.8s linear infinite; margin-left: 10px; vertical-align: middle; }
@keyframes bfp-spin { to { transform: rotate(360deg); } }

/* Messages */
.bfp-error { padding: 15px 20px; background: #f8d7da; color: #721c24; border-radius: var(--bfp-radius); }
.bfp-success { padding: 15px 20px; background: #d4edda; color: #155724; border-radius: var(--bfp-radius); }
.bfp-no-availability { padding: 20px; text-align: center; color: var(--bfp-text-light); font-style: italic; }
.bfp-next-available { padding: 15px 20px; background: #e7f5ff; color: #1971c2; border-radius: var(--bfp-radius); }

/* My Account Table */
.woocommerce-account .bfp-status { font-size: 11px; }
.bfp-cancel-booking { font-size: 13px; }

/* Responsive */
@media (max-width: 768px) {
    .bfp-time-slots { grid-template-columns: repeat(2, 1fr); }
    .bfp-activities-list { grid-template-columns: 1fr; }
}
