:root { --brand: #e23744; }
body.app-body { background: #f4f5f7; }
.auth-body { background: linear-gradient(135deg, #fff1f2, #f4f5f7); }
.sidebar { width: 250px; flex: 0 0 250px; min-height: 100vh; position: sticky; top: 0; height: 100vh; overflow-y: auto; }
@media (max-width: 991.98px) { .sidebar { height: auto; position: fixed; } }
.sidebar .nav-link { color: rgba(255,255,255,.75); border-radius: 8px; padding: .5rem .75rem; font-size: .93rem; }
.sidebar .nav-link:hover { color: #fff; background: rgba(255,255,255,.08); }
.sidebar .nav-link.active { color: #fff; background: var(--brand); }
.main-content { min-width: 0; }
.card { border: 0; box-shadow: 0 1px 3px rgba(0,0,0,.06); border-radius: 12px; }
.stat-card .stat-value { font-size: 1.6rem; font-weight: 700; }
.stat-card .stat-label { color: #6c757d; font-size: .85rem; }
.stat-card i { font-size: 1.8rem; opacity: .25; }
.table > :not(caption) > * > * { vertical-align: middle; }
.thumb { width: 48px; height: 48px; object-fit: cover; border-radius: 8px; background: #eee; }
.food-dot { display: inline-flex; width: 14px; height: 14px; border: 1.5px solid; border-radius: 3px; align-items: center; justify-content: center; vertical-align: middle; flex: none; }
.food-dot span { width: 6px; height: 6px; border-radius: 50%; }
.btn-brand { background: var(--brand); color: #fff; border-color: var(--brand); }
.btn-brand:hover { filter: brightness(.92); color: #fff; }

/* Live orders board */
.order-card { border-left: 5px solid #ccc; transition: box-shadow .2s; }
.order-card.st-placed { border-left-color: #dc3545; animation: pulse 1.5s infinite; }
.order-card.st-accepted { border-left-color: #0d6efd; }
.order-card.st-preparing { border-left-color: #ffc107; }
.order-card.st-ready { border-left-color: #0dcaf0; }
.order-card.st-served { border-left-color: #198754; }
@keyframes pulse { 0%,100% { box-shadow: 0 0 0 0 rgba(220,53,69,.35); } 50% { box-shadow: 0 0 0 8px rgba(220,53,69,0); } }
.order-items li { padding: 2px 0; border-bottom: 1px dashed #eee; }
.order-items li:last-child { border-bottom: 0; }
.call-chip { animation: pulse 1.5s infinite; }
.sound-off-banner { position: fixed; bottom: 16px; right: 16px; z-index: 1050; }

/* Kitchen display */
.kds-body { background: #111; color: #eee; }
.kds-card { background: #1e1e1e; color: #eee; border-radius: 12px; border-top: 6px solid #666; }
.kds-card.late { border-top-color: #ffc107; }
.kds-card.very-late { border-top-color: #dc3545; }
.kds-card .kds-item { font-size: 1.15rem; padding: 4px 0; border-bottom: 1px solid #333; }
.kds-card .kds-note { color: #ffc107; font-size: .9rem; }

/* Floor map */
.table-tile { border-radius: 12px; padding: 14px 8px; text-align: center; color: #fff; min-height: 90px; display: flex; flex-direction: column; justify-content: center; text-decoration: none; }
.table-tile.free { background: #198754; }
.table-tile.busy { background: #fd7e14; }
.table-tile.billing { background: #dc3545; }
.table-tile:hover { color: #fff; filter: brightness(.95); }

/* QR print sheet */
.qr-sheet { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px; }
.qr-card { background: #fff; border: 2px dashed #ccc; border-radius: 14px; padding: 16px; text-align: center; page-break-inside: avoid; }
.qr-card .qr-box { display: inline-block; padding: 8px; background: #fff; }
.qr-card h4 { margin: 4px 0; }
@media print {
  .no-print, .sidebar, nav.navbar { display: none !important; }
  body.app-body { background: #fff; }
  .main-content { padding: 0 !important; }
  .qr-card { border: 1px solid #999; }
}

/* Thermal bill */
.bill-paper { width: 302px; margin: 0 auto; background: #fff; font-family: 'Courier New', monospace; font-size: 12px; padding: 10px; color: #000; }
.bill-paper table { width: 100%; font-size: 12px; }
.bill-paper .line { border-top: 1px dashed #000; margin: 6px 0; }
@media print { @page { size: 80mm auto; margin: 0; } .bill-paper { width: 100%; } }
