.tbl-app{margin:0;min-height:100dvh;background:#eef4fb;color:#16324f;font-family:Segoe UI,Arial,sans-serif;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
.tbl-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:#1e88e5;color:#fff;padding:12px 12px}
.tbl-top strong{font-size:1.05rem}
.tbl-locked{font-weight:800;background:rgba(255,255,255,.2);padding:6px 12px;border-radius:999px}
.tbl-select{flex:1;min-width:120px;border:0;border-radius:10px;padding:10px 12px;font-weight:700;color:#16324f}
.tbl-gate-body,.tbl-gate{margin:0;min-height:100dvh;background:#1e88e5;display:flex;align-items:center;justify-content:center;padding:24px 16px;font-family:Segoe UI,Arial,sans-serif}
.tbl-gate[hidden]{display:none !important}
.tbl-gate-card{width:min(420px,100%);background:#fff;color:#16324f;border-radius:4px;padding:22px;box-shadow:0 12px 32px rgba(15,23,42,.18)}
.tbl-gate-card h1{margin:0 0 6px;font-size:1.7rem}
.tbl-gate-card p{margin:0 0 14px;color:#64748b;line-height:1.4}
.tbl-gate-store{font-weight:800;color:#16324f !important}
.tbl-gate-card label{display:block;font-weight:700;margin:8px 0 4px}
.tbl-gate-card input,.tbl-gate-card select{width:100%;box-sizing:border-box;border:0;border-bottom:2px solid #cfd8e3;padding:10px 4px;font:inherit;margin-bottom:6px}
.tbl-gate-card input:focus,.tbl-gate-card select:focus{outline:0;border-bottom-color:#1e88e5}
.tbl-gate-err{color:#c0392b;min-height:1.2em;margin:4px 0 8px !important}
.tbl-gate-card button{width:100%;border:0;background:#1e88e5;color:#fff;font-weight:800;padding:14px;border-radius:4px;cursor:pointer;margin-top:8px}
.tbl-ticket{background:#fff;padding:12px 14px 8px}
.tbl-ticket .tbl-line{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid #f1f5f9}
.tbl-line-name{flex:1;font-weight:650}
.tbl-line-ops{display:flex;align-items:center;gap:4px}
.tbl-line-ops button{width:28px;height:28px;border:1px solid #cfd8e3;background:#fff;border-radius:8px;font-weight:800;cursor:pointer;line-height:1}
.tbl-line-ops button[data-rm]{color:#c0392b;border-color:#f5c6cb}
.tbl-foot{padding:10px 0 6px}
.tbl-sub{font-weight:700;margin-bottom:6px}
.tbl-status{margin:0 0 8px;min-height:1.35em;text-align:center;font-weight:800;font-size:1.02rem}
.tbl-status.proses{color:#c45c12;animation:tblPulse 1.35s ease-in-out infinite}
.tbl-status.siap{color:#15803d;animation:tblPulse 1.35s ease-in-out infinite}
@keyframes tblPulse{0%,100%{opacity:1;transform:translateY(0)}50%{opacity:.45;transform:translateY(-3px)}}
.tbl-payrow{display:flex;align-items:center;gap:10px}
.tbl-total{font-weight:800;font-size:1.15rem;white-space:nowrap}
.tbl-pay{flex:1;background:#2ecc71;color:#fff;border:0;padding:14px 12px;font-size:1.05rem;font-weight:800;border-radius:10px;cursor:pointer}
.tbl-pay:disabled{opacity:.85}
.tbl-menu{padding:12px}
.tbl-search{width:100%;padding:10px 12px;border-radius:10px;border:1px solid #cfd8e3;margin-bottom:12px}
.tbl-qris{min-height:100dvh;background:#1e88e5;color:#fff;display:grid;place-items:center;padding:18px 12px;gap:12px}
.tbl-qris .qris-brand{background:#fff;border-radius:12px;padding:10px 14px}
.tbl-qris .qris-merchant{color:#fff;margin:0}
.tbl-qris #qrbox{background:#fff;padding:14px;border-radius:12px}
.tbl-paid{min-height:100dvh;display:grid;place-items:center;text-align:center;background:#fff;color:#16324f;padding:24px}
.tbl-paid h2{color:#2ecc71;margin:0 0 8px}
.tbl-app #orderPane[hidden],.tbl-app #payPane[hidden],.tbl-app #paidPane[hidden]{display:none !important}
