:root { --brand: #173f3a; --accent: #d69e2e; }
body { background: #f4f6f5; color: #17211f; min-height: 100vh; }
.navbar { background: var(--brand) !important; }
.btn-primary { background: var(--brand); border-color: var(--brand); }
.hero { background: linear-gradient(135deg, #173f3a, #28685f); color: white; }
.card { border-radius: 1rem; }
button, .btn, .form-control { min-height: 44px; }
.restaurant-table { --table-color: #198754; --table-soft: #eef9f2; display: flex; flex-direction: column; padding: .5rem .4rem 1rem; }
.table-occupied { --table-color: #dc3545; --table-soft: #fff0f1; }
.table-payment_pending { --table-color: #fd7e14; --table-soft: #fff5e9; }
.table-reserved { --table-color: #0d6efd; --table-soft: #edf5ff; }
.table-out_of_service { --table-color: #6c757d; --table-soft: #f0f1f2; }
.table-stage { position: relative; min-height: 220px; display: flex; align-items: center; justify-content: center; padding: 30px 36px; }
.tabletop { width: 100%; min-height: 160px; position: relative; z-index: 2; border: 5px solid var(--table-color); border-radius: 38px; background: linear-gradient(145deg, #fff, var(--table-soft)); box-shadow: 0 12px 24px rgba(20, 48, 43, .13), inset 0 0 0 1px rgba(255,255,255,.8); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1rem; text-align: center; }
.tabletop::after { content: ""; position: absolute; inset: 8px; border: 1px solid color-mix(in srgb, var(--table-color) 30%, transparent); border-radius: 27px; pointer-events: none; }
.chair { position: absolute; z-index: 1; width: 58px; height: 25px; border: 4px solid var(--table-color); background: var(--table-soft); box-shadow: 0 5px 10px rgba(20,48,43,.12); }
.chair-top { top: 10px; left: 50%; transform: translateX(-50%); border-radius: 14px 14px 6px 6px; }
.chair-bottom { bottom: 10px; left: 50%; transform: translateX(-50%); border-radius: 6px 6px 14px 14px; }
.chair-left, .chair-right { width: 25px; height: 58px; top: 50%; transform: translateY(-50%); }
.chair-left { left: 10px; border-radius: 14px 6px 6px 14px; }
.chair-right { right: 10px; border-radius: 6px 14px 14px 6px; }
.table-status-label { position: absolute; top: 13px; right: 15px; border-radius: 999px; background: var(--table-color); color: white; padding: .2rem .6rem; font-size: .7rem; font-weight: 800; letter-spacing: .04em; }
.table-kicker { color: #66736f; text-transform: uppercase; font-size: .72rem; letter-spacing: .14em; font-weight: 700; }
.table-number { margin: 0; font-size: 3rem; line-height: 1; font-weight: 800; color: #17211f; }
.table-name { font-size: .8rem; font-weight: 700; }
.table-session { margin-top: .45rem; font-size: .82rem; color: #4e5b58; }
.table-action { padding: 0 2.25rem; margin-top: -.1rem; }
.restaurant-table .btn { border-radius: 999px; box-shadow: 0 5px 12px rgba(20,48,43,.1); }
.product-button { min-height: 150px; border: 0; border-radius: 1rem; background: white; padding: 1rem; box-shadow: 0 .2rem .8rem rgba(0,0,0,.08); display: flex; flex-direction: column; justify-content: center; gap: .35rem; position: relative; }
.product-button:hover { outline: 3px solid var(--accent); transform: translateY(-1px); }
.product-button .favorite { position: absolute; top: .5rem; right: .75rem; color: var(--accent); }
.product-button small { color: #61706c; }
.cart-panel { position: sticky; top: 1rem; }
.quantity-minus, .quantity-plus { min-width: 44px; }
.ticket-card { background: white; border-radius: 1rem; padding: 1.25rem; border-top: 6px solid #6c757d; box-shadow: 0 .3rem 1rem rgba(0,0,0,.08); }
.ticket-new { border-color: #dc3545; }
.ticket-preparing { border-color: #fd7e14; }
.ticket-ready { border-color: #198754; }

.theme-toggle { min-width: 82px; }

[data-theme="dark"] {
  --brand: #102d2a;
  --accent: #f0b84b;
}
[data-theme="dark"] body { background: #111715; color: #edf4f1; }
[data-theme="dark"] .navbar { background: #0b2522 !important; border-bottom: 1px solid #29413d; }
[data-theme="dark"] .card,
[data-theme="dark"] .ticket-card,
[data-theme="dark"] .product-button,
[data-theme="dark"] .modal-content,
[data-theme="dark"] .list-group-item { background-color: #1b2422; color: #edf4f1; }
[data-theme="dark"] .text-secondary,
[data-theme="dark"] .form-text,
[data-theme="dark"] .product-button small { color: #aab8b4 !important; }
[data-theme="dark"] .tabletop {
  background: linear-gradient(145deg, #202b28, color-mix(in srgb, var(--table-soft) 22%, #18211f));
  box-shadow: 0 12px 24px rgba(0, 0, 0, .34), inset 0 0 0 1px rgba(255,255,255,.06);
}
[data-theme="dark"] .chair { background: #202b28; box-shadow: 0 5px 10px rgba(0,0,0,.3); }
[data-theme="dark"] .table-kicker,
[data-theme="dark"] .table-session { color: #b6c3bf; }
[data-theme="dark"] .table-number { color: #f7fbf9; }
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select {
  background-color: #131b19;
  border-color: #45534f;
  color: #f4f8f6;
}
[data-theme="dark"] .form-control::placeholder { color: #83918d; }
[data-theme="dark"] .table { --bs-table-bg: transparent; --bs-table-color: #edf4f1; --bs-table-border-color: #3b4845; }
[data-theme="dark"] .btn-outline-dark { color: #edf4f1; border-color: #87948f; }
[data-theme="dark"] .btn-outline-dark:hover { color: #111715; background: #edf4f1; }
[data-theme="dark"] .bg-white { background-color: #1b2422 !important; }
[data-theme="dark"] .alert-info { --bs-alert-bg: #17323a; --bs-alert-color: #d7f2f7; --bs-alert-border-color: #28515b; }
[data-theme="dark"] .alert-warning { --bs-alert-bg: #3a3019; --bs-alert-color: #fff0c2; --bs-alert-border-color: #6b5729; }
.invoice-document { max-width: 900px; }
@media print {
  .navbar, .invoice-actions { display: none !important; }
  body { background: white !important; color: black !important; }
  main.container { max-width: none; padding: 0 !important; }
  .invoice-document { box-shadow: none !important; color: black !important; }
  .invoice-document .card-body { background: white !important; color: black !important; }
}
