:root {
    --bs-brand: #111827;
    --bs-accent: #d4a24e;
}

body {
    min-height: 100%;
    display: flex;
    flex-direction: column;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

main { flex: 1 0 auto; }

.bs-navbar {
    background: var(--bs-brand);
}

.bs-navbar .navbar-brand { color: var(--bs-accent) !important; }

.bs-footer {
    background: #f8f9fa;
    border-top: 1px solid #e9ecef;
}

.hero {
    background: linear-gradient(135deg, #111827 0%, #1f2937 60%, #374151 100%);
    color: #fff;
    padding: 4rem 0;
}

.hero h1 { font-weight: 700; }

.shop-card { transition: transform .15s ease, box-shadow .15s ease; }
.shop-card:hover { transform: translateY(-3px); box-shadow: 0 .5rem 1rem rgba(0,0,0,.1); }

.rating-stars { color: var(--bs-accent); }

.slot-btn { min-width: 84px; }

#map { height: 460px; border-radius: .5rem; }

.featured-badge {
    background: var(--bs-accent);
    color: #111;
    font-weight: 600;
}

/* Floating chat widget */
#chat-launcher {
    position: fixed; bottom: 20px; right: 20px; z-index: 1050;
    width: 56px; height: 56px; border-radius: 50%;
    background: var(--bs-accent); color: #111; border: none;
    box-shadow: 0 .5rem 1rem rgba(0,0,0,.2); font-size: 1.4rem;
}
#chat-panel {
    position: fixed; bottom: 88px; right: 20px; z-index: 1050;
    width: 340px; max-width: 92vw; height: 460px; max-height: 70vh;
    background: #fff; border-radius: .75rem; box-shadow: 0 1rem 2rem rgba(0,0,0,.25);
    display: none; flex-direction: column; overflow: hidden;
}
#chat-panel.open { display: flex; }
#chat-header { background: var(--bs-brand); color: #fff; padding: .75rem 1rem; font-weight: 600; }
#chat-messages { flex: 1; overflow-y: auto; padding: .75rem; background: #f8f9fa; }
.chat-msg { margin-bottom: .5rem; padding: .5rem .75rem; border-radius: .5rem; max-width: 85%; }
.chat-msg.user { background: var(--bs-accent); margin-left: auto; }
.chat-msg.assistant { background: #fff; border: 1px solid #e9ecef; }
#chat-form { display: flex; border-top: 1px solid #e9ecef; }
#chat-input { flex: 1; border: none; padding: .6rem .75rem; }
#chat-input:focus { outline: none; }

.kiosk { background:#0b1220; color:#e5e7eb; min-height:100vh; }
.kiosk .slot { border:1px solid #374151; border-radius:.5rem; padding:.75rem; margin:.35rem 0; font-size:1.15rem; }
.kiosk .slot.free { border-color:#10b981; }
.kiosk .slot.booked { background:#1f2937; }
.kiosk .slot.blocked { opacity:.5; }
