/* dineReserve - Main Stylesheet */

:root {
    --dr-primary: #e74c3c;
    --dr-primary-dark: #c0392b;
    --dr-dark: #2c3e50;
    --dr-light: #f8f9fa;
    --bs-link-color: #000;
    --bs-link-color-rgb: 0, 0, 0;
    --bs-link-hover-color: #e74c3c;
    --bs-link-hover-color-rgb: 231, 76, 60;
}
a { color: var(--bs-link-color); }
a:hover { color: var(--bs-link-hover-color); }

body {
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    color: #333;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

main {
    flex: 1;
}

/* Navbar */
.navbar-brand {
    font-size: 1.4rem;
}

/* Hero */
.hero-section {
    background: linear-gradient(135deg, var(--dr-dark) 0%, #1a252f 100%);
}

/* Primary button override */
.btn-primary {
    background-color: var(--dr-primary);
    border-color: var(--dr-primary);
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: var(--dr-primary-dark);
    border-color: var(--dr-primary-dark);
}

.btn-outline-primary {
    color: var(--dr-primary);
    border-color: var(--dr-primary);
}

.btn-outline-primary:hover {
    background-color: var(--dr-primary);
    border-color: var(--dr-primary);
}

/* Cards */
.card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    border: none;
    border-radius: 0.75rem;
    overflow: hidden;
}

.card:hover {
    transform: translateY(-3px);
    box-shadow: 0 0.5rem 1.5rem rgba(0,0,0,0.15) !important;
}

/* Rating stars */
.bi-star-fill,
.bi-star-half,
.bi-star {
    font-size: 0.9rem;
}

/* Forms */
.form-control:focus {
    border-color: var(--dr-primary);
    box-shadow: 0 0 0 0.2rem rgba(231, 76, 60, 0.25);
}

/* Footer */
footer {
    margin-top: auto;
}

footer a:hover {
    color: var(--dr-primary) !important;
}

/* Badges */
.badge {
    font-weight: 500;
}

/* Price range display */
.price-range {
    color: #27ae60;
    font-weight: 600;
}

/* Reservation form */
.time-slot-btn {
    cursor: pointer;
    transition: all 0.2s ease;
}

.time-slot-btn:hover,
.time-slot-btn.active {
    background-color: var(--dr-primary) !important;
    color: white !important;
    border-color: var(--dr-primary) !important;
}

/* Star rating input */
.star-rating-input {
    display: flex;
    flex-direction: row-reverse;
    justify-content: flex-end;
}

.star-rating-input input {
    display: none;
}

.star-rating-input label {
    cursor: pointer;
    font-size: 1.5rem;
    color: #ddd;
    padding: 0 2px;
}

.star-rating-input label:hover,
.star-rating-input label:hover ~ label,
.star-rating-input input:checked ~ label {
    color: #f1c40f;
}

/* Status badges */
.status-unverified { background-color: #e67e22; }
.status-pending { background-color: #f39c12; }
.status-confirmed { background-color: #27ae60; }
.status-rejected { background-color: #e74c3c; }
.status-cancelled { background-color: #95a5a6; }
.status-completed { background-color: #2980b9; }
.status-no_show { background-color: #8e44ad; }
.status-approved { background-color: #27ae60; }
.status-suspended { background-color: #e74c3c; }

/* ============================================
   Frontend Responsive
   ============================================ */
@media (max-width: 767.98px) {
    .container { padding-left: 0.75rem; padding-right: 0.75rem; }
    h1 { font-size: 1.5rem; }
    h2 { font-size: 1.25rem; }
    h3 { font-size: 1.1rem; }
    .card-body { padding: 0.75rem; }
    .btn { min-height: 44px; }
    .btn-sm { min-height: 38px; }
    /* Time slot buttons: larger touch targets */
    .time-slot-btn { min-width: 70px; min-height: 44px; font-size: 0.9rem; }
    /* Restaurant logo on detail */
    .restaurant-logo-detail { width: 48px !important; height: 48px !important; }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
    .btn-sm { min-height: 40px; }
}
