:root { --pq-navy:#031a7a; --pq-dark:#1f2a30; --pq-bg:#eceff4; }
body { background: var(--pq-bg); font-size: .9rem; }
body.guest { display:flex; align-items:center; justify-content:center; min-height:100vh; }
.guest-card { width:100%; max-width:400px; margin:16px; }

.app { display:flex; min-height:100vh; }
.sidebar { width:220px; background:var(--pq-dark); color:#cfd6dc; flex:0 0 auto; transition:width .15s; }
.sidebar .brand { height:48px; display:flex; align-items:center; gap:10px; padding:0 16px; color:#fff; font-weight:600; background:#161f24; }
.sidebar .brand i { font-size:1.4rem; }
.sidebar .nav-link { color:#cfd6dc; display:flex; align-items:center; gap:12px; padding:12px 18px; }
.sidebar .nav-link:hover, .sidebar .nav-link.active { background:#2b3941; color:#fff; }
.sidebar .nav-link i { font-size:1.1rem; }
.app.collapsed .sidebar { width:52px; }
.app.collapsed .sidebar .label { display:none; }
.app.collapsed .sidebar .brand, .app.collapsed .sidebar .nav-link { padding-left:15px; }

.main { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; }
.topbar { height:48px; background:var(--pq-navy); display:flex; align-items:center; padding:0 16px; }
.content { padding:16px; }

.card-accent { border-top:2px solid var(--pq-navy); }
.card-header { font-weight:500; }

.badge-status { font-weight:500; min-width:72px; }
.receipt-frame { width:100%; height:420px; border:1px solid #ccc; background:#fff; }
.stat { background:#fff; border:1px solid #dde2e8; border-radius:6px; padding:12px; }
.stat .num { font-size:1.8rem; font-weight:600; line-height:1; }
.stat .lbl { color:#6b7580; font-size:.8rem; }
#lpBanner[data-state="ok"] { background:#d1e7dd; border-color:#badbcc; color:#0f5132; }
#lpBanner[data-state="error"] { background:#f8d7da; border-color:#f5c2c7; color:#842029; }
#lpBanner[data-state="paused"] { background:#fff3cd; border-color:#ffecb5; color:#664d03; }
table.dataTable td { vertical-align: middle; }
div.dt-buttons { margin-bottom: .5rem; }

@media (max-width: 768px) {
  .sidebar { position:fixed; z-index:1030; height:100vh; left:-220px; }
  .app.menu-open .sidebar { left:0; }
  .app.collapsed .sidebar { width:220px; }
  .app.collapsed .sidebar .label { display:inline; }
}
