:root{--blue:#1e88e5;--blue-d:#1565c0;--green:#2ecc71;--bg:#eef4fb;--ink:#16324f}
.pos-toast{position:fixed;left:12px;right:12px;top:calc(12px + env(safe-area-inset-top, 0px));bottom:auto;transform:translateY(calc(-100% - 16px));opacity:0;z-index:80;max-width:420px;margin:0 auto;background:#fff;color:#0f2744;border:1px solid #d7e3f0;padding:12px 16px;border-radius:12px;font-weight:700;box-shadow:0 8px 20px rgba(15,39,68,.12);transition:transform .25s ease,opacity .25s ease;pointer-events:none}
.pos-toast.on{transform:translateY(0);opacity:1}
.pos-paid-ok{padding:28px 16px;text-align:center}
.pos-paid-title{font-weight:800;font-size:1.35rem;margin:0 0 14px;color:#16a34a}
.pos-print-btn{background:#0f172a;color:#fff;border:0;padding:12px 22px;border-radius:10px;font-weight:800;cursor:pointer}
.pos-check{display:flex;gap:8px;align-items:center;margin:8px 0;font-weight:700}
.pos-chat-name{width:100%;margin:8px 0;padding:8px 10px;border:1px solid #cfd8e3;border-radius:8px}
.pos-chat-bar{display:grid;gap:8px;padding:8px 12px 0}
.pos-chat-bar[hidden]{display:none !important}
.pos-chat-bar .pos-mini{width:100%}
.pos-chat-wa{display:block;text-align:center;text-decoration:none;margin-top:8px;background:#16a34a !important}
.pos-cust-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;cursor:pointer}
.pos-cust-row b{display:block}
.pos-cust-row span{color:#64748b;font-size:.85rem}
.pos-chat-url{word-break:break-all;font-size:12px;margin:8px 0 0}
.pos-chat-link{font-size:12px;word-break:break-all;margin:4px 0 8px;color:#1565c0}
.pos-chat-confirm{display:flex;gap:8px;align-items:center;margin:8px 0}
.pos-chat-code{width:88px;padding:8px;border:1px solid #cfd8e3;border-radius:8px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
body.pos-chatlist .pos-grid{grid-template-columns:1fr}
body.pos-chatlist .pos-ticket{display:none}
.pos-chat-panel{padding:14px 14px 28px}
.pos-chat-card{display:flex;gap:12px;background:#fff;border:1px solid #e8eef5;border-radius:14px;padding:14px;margin:0 0 12px}
.pos-chat-num{font-weight:800;font-size:1.15rem;color:#1e88e5;min-width:2.2rem}
.pos-chat-body{flex:1;min-width:0}
.pos-chat-pop{text-align:center}
.pos-chat-pop-name{font-weight:800;font-size:1.25rem;margin:8px 0}
.pos-chat-pop-url{word-break:break-all;color:#1565c0;font-size:.92rem;margin:0 0 16px}
*{box-sizing:border-box}
body{margin:0;font-family:Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}
.pos-login-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(#1e88e5,#0d47a1)}
body.pos-welcome{display:block;background:#f6f7f8;color:#1c1c1c;min-height:100dvh}
.pos-welcome-form{min-height:100dvh;max-width:480px;margin:0 auto;padding:36px 22px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;box-sizing:border-box;background:#f6f7f8}
.pos-welcome-form h1{margin:12px 0 28px;font-size:2rem;line-height:1.15;font-weight:800;letter-spacing:-.03em;color:#1a1a1a}
.pos-welcome-form label{margin:16px 0 0;font-size:.95rem;font-weight:650;color:#3a3a3a}
.pos-welcome-form label span{color:#e11d48}
.pos-welcome-form input{width:100%;margin:6px 0 0;padding:10px 2px 12px;border:0;border-bottom:1px solid #c8ccd1;border-radius:0;background:transparent;font:inherit;font-size:1.05rem;color:#1a1a1a}
.pos-welcome-form .pos-otp-choices{max-height:min(42vh,320px);overflow-y:auto;margin-top:8px;padding:4px 2px 8px;border-bottom:1px solid #e5e7eb;-webkit-overflow-scrolling:touch}
.pos-welcome-form .pos-otp-choice,.pos-welcome-form .pos-otp-choice--suspended{display:flex;align-items:center;gap:8px;margin-top:10px;font-weight:550;flex-wrap:wrap;max-width:100%}
.pos-welcome-form .pos-otp-choice-main{display:flex;align-items:center;gap:8px;flex:1;min-width:0;margin:0;font:inherit;font-weight:550}
.pos-welcome-form .pos-otp-choice input,.pos-welcome-form .pos-otp-choice-main input{width:auto;margin:0;padding:0;border:0;flex:0 0 auto}
.pos-welcome-form .pos-otp-choice-text{flex:1;min-width:0;line-height:1.35;overflow-wrap:anywhere}
.pos-welcome-form .pos-otp-choice--suspended .pos-otp-choice-text{text-decoration:line-through;color:#6b7280;opacity:.7}
.pos-welcome-form .pos-otp-choice--suspended .pos-otp-choice-main input{opacity:.55}
.pos-welcome-form .pos-otp-badge{font-size:.72rem;font-weight:750;letter-spacing:.02em;text-transform:uppercase;color:#9a3412;background:#ffedd5;border-radius:999px;padding:3px 8px;flex:0 0 auto}
.pos-welcome-form .pos-otp-info{flex:0 0 auto;width:22px;height:22px;margin:0;padding:0;border:1.5px solid #1e88e5;border-radius:50%;background:#fff;color:#1e88e5;font:700 12px/20px system-ui,sans-serif;text-align:center;cursor:pointer;box-shadow:none}
.pos-welcome-form .pos-otp-info:hover,.pos-welcome-form .pos-otp-info:focus-visible{background:#1e88e5;color:#fff;outline:none}
.pos-welcome-form button.pos-otp-info{width:22px;min-width:22px;padding:0;border-radius:50%;font-size:12px;font-weight:700;line-height:20px}
.pos-suspend-pop{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}
.pos-suspend-pop[hidden]{display:none!important}
.pos-suspend-pop-backdrop{position:absolute;inset:0;background:rgba(22,50,79,.45)}
.pos-suspend-pop-card{position:relative;z-index:1;width:100%;max-width:min(420px,100%);max-height:min(92vh,720px);overflow:auto;background:#fff;border:1px solid #d7e3f0;border-radius:18px;padding:24px 18px 18px;box-shadow:0 12px 32px rgba(22,50,79,.18);text-align:center;box-sizing:border-box;-webkit-overflow-scrolling:touch}
.pos-suspend-pop-mark{width:56px;height:56px;margin:0 auto 12px;border-radius:14px;background:linear-gradient(160deg,#1e88e5,#1565c0);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:20px}
.pos-suspend-pop-store{margin:0 0 6px;font-size:.82rem;font-weight:700;color:#1e88e5;overflow-wrap:anywhere}
.pos-suspend-pop-card h2{margin:0 0 8px;font-size:1.1rem;font-weight:800;color:#16324f;line-height:1.3}
.pos-suspend-pop-card p{margin:0 0 16px;line-height:1.55;font-size:14px;color:#3b5570;overflow-wrap:anywhere}
.pos-suspend-pop-btn{display:block;width:100%;padding:13px 14px;border-radius:12px;background:#1e88e5;color:#fff!important;text-decoration:none;font-weight:800;font-size:15px;box-sizing:border-box}
.pos-suspend-pop-btn:active{background:#1565c0}
.pos-suspend-pop-hint{margin-top:12px;font-size:12px;color:#7a8fa8;line-height:1.4}
.pos-suspend-pop-close{display:block;width:100%;margin-top:10px;padding:10px;border:0;border-radius:10px;background:transparent;color:#5c6370;font:650 14px system-ui,sans-serif;cursor:pointer}
body.pos-suspend-pop-open{overflow:hidden}
.pos-welcome-form input:focus{outline:none;border-bottom-color:#1a1a1a}
.pos-welcome-hint{margin:6px 0 4px;color:#6b7280;font-size:.82rem;line-height:1.35}
.pos-welcome-form .pos-err{margin-top:12px}
.pos-welcome-gap{flex:1;min-height:28px}
.pos-welcome-form button{width:100%;margin:0;padding:16px 18px;border:0;border-radius:999px;background:#d5d8dc;color:#fff;font:inherit;font-size:1.12rem;font-weight:650}
.pos-welcome-form button.is-ready{background:#008c45}
a.pos-welcome-reg{display:block;margin-top:12px;text-align:center;color:#008c45;font-weight:750;text-decoration:none;font-size:1.05rem}
.pos-welcome-links{display:flex;gap:18px;justify-content:center;align-items:center;margin-top:12px;flex-wrap:wrap}
.pos-welcome-links a.pos-welcome-reg{display:inline;margin-top:0}
.pos-ok{margin-top:12px;padding:10px 12px;border-radius:10px;background:#e8f7ee;color:#166534;font-weight:650}
.hide{display:none!important}
.pos-welcome-legal{margin:16px 0 0;text-align:center;color:#5c6370;font-size:.92rem;line-height:1.45;overflow-wrap:anywhere}
.pos-welcome-legal a{color:#00880d;font-weight:750;text-decoration:underline}
.pos-login-card{background:#fff;padding:28px;border-radius:16px;width:min(420px,92vw);display:grid;gap:8px}
.pos-login-card h1{margin:0}
.pos-login-card input,.pos-login-card button{padding:10px;border-radius:8px;border:1px solid #cfd8e3}
.pos-login-card button{background:var(--blue);color:#fff;border:0;font-weight:700}
.pos-err{color:#c0392b}
.pos-top{display:flex;align-items:center;gap:12px;background:var(--blue);color:#fff;padding:10px 14px;position:relative;padding-top:max(10px,env(safe-area-inset-top))}
.pos-role{font-size:.78rem;opacity:.85;text-transform:capitalize;border:1px solid rgba(255,255,255,.35);padding:2px 8px;border-radius:999px}
.pos-top nav{display:flex;gap:6px;flex:1;align-items:center}
.pos-top button,.pos-top a{background:transparent;border:0;color:#fff;padding:8px 12px;border-radius:8px;cursor:pointer;text-decoration:none;font:inherit}
.pos-top button.on,.pos-top button:hover,.pos-top a:hover{background:rgba(255,255,255,.2)}
.pos-burger{display:none;width:42px;height:42px;align-items:center;justify-content:center;font-size:1.35rem;line-height:1;flex-shrink:0}
.pos-nav-out{display:none}
.pos-wait-hint{margin:8px 0 0;font-size:.78rem;color:#64748b;line-height:1.35}
.pos-settle{width:100%;margin:10px 0 0;background:#e67e22;color:#fff;border:0;padding:14px;font-size:1.05rem;font-weight:800;border-radius:10px;cursor:pointer}
.pos-settle.is-off,.pos-settle-row.is-off{background:#94a3b8;color:#fff;cursor:not-allowed}
.pos-settle-row{background:#e67e22;color:#fff;border:0;border-radius:8px;padding:6px 10px;font-weight:800;cursor:pointer;margin-left:8px}
.pos-deliv{background:#16a34a;color:#fff;border:0;border-radius:8px;padding:4px 8px;font-weight:800;cursor:pointer}
.pos-pay.is-off{background:#94a3b8;cursor:not-allowed}
.pos-badge.ready{background:#ccfbf1;color:#0f766e}
.pos-grid{display:grid;grid-template-columns:minmax(280px,38%) 1fr;min-height:calc(100vh - 52px)}
.pos-ticket{background:#fff;display:flex;flex-direction:column;border-right:1px solid #d7e3f0}
.pos-ticket[hidden],#panelStokies[hidden]{display:none !important}
body.pos-stokies .pos-grid{grid-template-columns:1fr}
body.pos-stokies .pos-ticket{display:none !important}
body.pos-stokies .pos-burger{display:flex}
body.pos-stokies .pos-out-desk{display:none}
body.pos-stokies .pos-nav-out{display:block}
body.pos-stokies .pos-top nav{
  display:none;position:absolute;top:100%;left:0;right:0;z-index:40;
  flex-direction:column;align-items:stretch;gap:0;
  background:#0f2744;padding:8px 10px 12px;box-shadow:0 12px 24px rgba(15,23,42,.2)
}
body.pos-stokies .pos-top nav.open{display:flex}
body.pos-stokies .pos-top nav button,body.pos-stokies .pos-top nav a{
  text-align:left;padding:14px 12px;border-radius:10px;font-weight:700
}
#panelStokies.pos-xs{padding:0;background:#f4f6f9;min-height:calc(100dvh - 56px);padding-bottom:80px;position:relative}
#panelStokies .xs-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px 14px 4px}
#panelStokies .xs-stat{background:#fff;border-radius:12px;padding:10px 8px;text-align:center;box-shadow:0 1px 4px rgba(15,39,68,.06)}
#panelStokies .xs-stat em{display:block;font-style:normal;font-size:1.1rem;font-weight:800;color:#0f2744}
#panelStokies .xs-stat span{font-size:.68rem;color:#64748b}
#panelStokies .xs-pad{padding:8px 14px 20px}
#panelStokies .xs-card{display:flex;gap:12px;align-items:center;background:#fff;border-radius:14px;padding:12px;margin:8px 0;box-shadow:0 1px 4px rgba(15,39,68,.06);cursor:pointer}
#panelStokies .xs-card img,#panelStokies .xs-ph{width:56px;height:56px;border-radius:12px;object-fit:cover;background:#e2e8f0;flex-shrink:0}
#panelStokies .xs-card b{display:block;color:#0f2744}
#panelStokies .xs-card .sub{font-size:.82rem;color:#64748b}
#panelStokies .xs-badge{display:inline-block;background:#e11d48;color:#fff;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:800;margin-top:4px;margin-right:4px}
#panelStokies .xs-badge.ok{background:#16a34a}
#panelStokies .xs-badge.warn{background:#f59e0b}
#panelStokies .xs-nav{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid #e2e8f0;display:flex;z-index:30;padding-bottom:env(safe-area-inset-bottom)}
#panelStokies .xs-nav button{flex:1;border:0;background:none;padding:10px 4px 8px;font-size:.72rem;color:#94a3b8;font-weight:700}
#panelStokies .xs-nav button.on{color:#e11d48}
#panelStokies .xs-nav button span{display:block;font-size:1.15rem;line-height:1.2}
#panelStokies .xs-search{width:100%;padding:12px 14px;border:0;border-radius:12px;background:#fff;box-shadow:0 1px 4px rgba(15,39,68,.06);margin:8px 0;font-size:1rem;box-sizing:border-box}
#panelStokies .xs-sheet{position:fixed;inset:0;background:#fff;z-index:50;display:flex;flex-direction:column;transform:translateY(100%);transition:.25s}
#panelStokies .xs-sheet.on{transform:none}
#panelStokies .xs-sheet-top{background:#e11d48;color:#fff;padding:12px 14px;display:flex;align-items:center;gap:10px;padding-top:max(12px,env(safe-area-inset-top))}
#panelStokies .xs-sheet-top button{border:0;background:none;color:#fff;font-weight:700}
#panelStokies .xs-sheet-body{flex:1;overflow:auto;padding:16px}
#panelStokies .xs-sheet-body input,#panelStokies .xs-sheet-body select{width:100%;padding:12px;border:1px solid #e2e8f0;border-radius:10px;margin:6px 0 12px;box-sizing:border-box}
#panelStokies .xs-save{width:100%;background:#0f2744;color:#fff;border:0;border-radius:999px;padding:14px;font-weight:800;font-size:1rem}
#panelStokies .xs-hero{background:#fff;border-radius:16px;padding:16px;margin-bottom:16px;text-align:center}
#panelStokies .xs-hero img{max-width:180px;max-height:180px;border-radius:12px}
#panelStokies .line{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f1f5f9}
#panelStokies h3.sec{margin:14px 4px 6px;font-size:.95rem;color:#0f2744}
body.pos-go{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
body.pos-go .pos-top{display:none !important}
body.pos-home .pos-grid,body.pos-go.pos-chatlist .pos-grid,body.pos-go.pos-stokies .pos-grid{grid-template-columns:1fr}
body.pos-home .pos-ticket{display:none !important}
.gh-top{display:flex;align-items:center;gap:10px;padding:10px 12px;padding-top:max(10px,env(safe-area-inset-top));background:#f4f6f9;position:sticky;top:0;z-index:35}
.gh-search-wrap{flex:1;position:relative}
.gh-search-wrap input{width:100%;border:0;background:#fff;border-radius:999px;padding:12px 16px;font:inherit;box-shadow:0 1px 4px rgba(15,39,68,.08);box-sizing:border-box}
.gh-hints{position:absolute;left:0;right:0;top:110%;background:#fff;border-radius:14px;box-shadow:0 10px 28px rgba(15,39,68,.16);z-index:40;overflow:hidden}
.gh-hints button{display:block;width:100%;text-align:left;border:0;background:#fff;padding:12px 14px;font:inherit;cursor:pointer}
.gh-hints button:hover{background:#f1f5f9}
.gh-people{width:44px;height:44px;border:0;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(15,39,68,.08);font-size:1.2rem;cursor:pointer}
#panelHome{padding:8px 14px 24px;background:#f4f6f9;min-height:calc(100dvh - 140px)}
.gh-wallet{background:#fff;border-radius:18px;padding:14px 16px;display:flex;align-items:center;gap:12px;box-shadow:0 1px 4px rgba(15,39,68,.06);margin:4px 0 16px}
.gh-wallet-ico{width:40px;height:40px;border-radius:12px;background:#ecfdf5;display:grid;place-items:center;font-size:1.2rem}
.gh-wallet b{display:block;font-size:1.25rem;color:#0f2744}
.gh-wallet small{color:#64748b}
.gh-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 8px;margin:8px 0 18px}
.gh-tile{border:0;background:none;cursor:pointer;font:inherit;color:#0f2744}
.gh-tile i{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 6px;border-radius:18px;font-size:1.45rem;font-style:normal;background:#fff;box-shadow:0 1px 4px rgba(15,39,68,.08)}
.gh-tile span{display:block;font-size:.72rem;font-weight:700;line-height:1.15}
#panelScanOrder{padding:8px 14px 24px;background:#f4f6f9;min-height:calc(100dvh - 140px)}
#panelScanOrder[hidden]{display:none !important}
.scan-back{border:0;background:none;color:#e11d48;font-weight:800;padding:8px 0 12px;cursor:pointer;font:inherit}
.scan-card{background:#fff;border-radius:18px;padding:16px;box-shadow:0 1px 4px rgba(15,39,68,.06);max-width:420px}
.scan-card h2{margin:0 0 8px;color:#0f2744}
.scan-card p{margin:0;color:#475569;line-height:1.45}
.scan-card label{display:block;font-weight:700;margin:14px 0 6px;color:#0f2744}
.scan-card select,.scan-card input{width:100%;box-sizing:border-box;padding:12px;border:1px solid #e2e8f0;border-radius:12px;font:inherit;font-weight:700;background:#fff}
.scan-slip .slip-store{font-size:1.35rem;font-weight:800;margin:8px 0 4px}
.scan-slip .slip-addr{color:#334155;font-size:.95rem;margin:0 0 14px;line-height:1.4}
.scan-slip .slip-meta{font-size:1.15rem;font-weight:700;margin:4px 0}
.scan-slip .slip-scan{margin-top:14px;font-weight:800;letter-spacing:.08em}
.addon-row{display:grid;grid-template-columns:1fr 110px 36px;gap:6px;margin:6px 0}
.addon-row input{width:100%;box-sizing:border-box;padding:8px;border:1px solid #e2e8f0;border-radius:8px}
.addon-del{border:0;border-radius:8px;background:#fee2e2;font-weight:800;cursor:pointer}
.pos-line-extra{display:block;font-weight:500;color:#64748b;font-size:.78rem}
#addonAdd{margin:6px 0 12px}
.scan-print{width:100%;margin-top:14px;border:0;background:#0f2744;color:#fff;border-radius:999px;padding:14px;font-weight:800;font-size:1rem;cursor:pointer}
#scanQrBox{display:flex;justify-content:center;margin-top:16px}
#scanQrBox img,#scanQrBox canvas{width:220px;height:220px}
.scan-url{word-break:break-all;font-size:.8rem;margin-top:10px !important}
.scan-print-sheet{position:fixed;inset:0;z-index:80;background:#f4f6f9;overflow:auto;padding:12px 14px 28px;padding-top:max(12px,env(safe-area-inset-top))}
.scan-print-sheet .scan-card{margin:0 auto;text-align:center}
.scan-print-sheet .scan-card img{width:280px;height:280px;max-width:100%}
body.pos-go.pos-scanorder .pos-grid{grid-template-columns:1fr}
body.pos-go.pos-scanorder .pos-ticket{display:none !important}
.gh-tile[hidden]{display:none !important}
.gh-sec{margin:8px 2px 6px;font-size:.95rem;color:#0f2744}
.gh-dock{position:fixed;left:0;right:0;bottom:0;z-index:45;background:#fff;border-top:1px solid #e2e8f0;display:flex;padding-bottom:max(8px, env(safe-area-inset-bottom, 0px))}
.gh-dock button{flex:1;border:0;background:none;padding:8px 4px 6px;font-size:.7rem;font-weight:700;color:#94a3b8}
.gh-dock button.on{color:#e11d48}
.gh-dock button em{display:block;font-style:normal;font-size:1.2rem;line-height:1.25}
body.pos-go #panelPesanan,body.pos-go #panelLunas{background:#f4f6f9;min-height:0}
body.pos-go #panelLunas{padding-top:4px}
#payModal[hidden]{display:none !important}
body.pos-stokies .gh-dock{display:flex}
body.pos-stokies #panelStokies .xs-nav{bottom:64px}
body.pos-stokies #panelStokies.pos-xs{padding-bottom:148px}
.xs-dupe{position:fixed;inset:0;z-index:80;background:rgba(15,39,68,.55);display:none;align-items:center;justify-content:center;padding:18px}
.xs-dupe.on{display:flex}
.xs-dupe-card{width:min(420px,94vw);background:#0f2744;color:#fff;border-radius:18px;padding:20px 16px;max-height:80dvh;overflow:auto}
.xs-dupe-card h3{margin:0 0 10px}
.xs-dupe-card p{margin:0 0 10px;line-height:1.4}
.xs-dupe-card .row{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.15);font-size:.9rem}
.xs-dupe-card button{width:100%;margin-top:8px;border:0;border-radius:12px;padding:12px;font-weight:800}
.xs-dupe-yes{background:#e11d48;color:#fff}
.xs-dupe-no{background:#fff;color:#0f2744}
.pos-help,.stk-help{padding:16px 14px 90px;background:#f4f6f9;min-height:calc(100dvh - 120px)}
.pos-help h2,.stk-help h2{margin:0 0 8px;color:#0f2744}
.help-card{background:#fff;border-radius:16px;padding:12px;margin:12px 0;box-shadow:0 1px 4px rgba(15,39,68,.06)}
.help-card video{width:100%;border-radius:12px;background:#0f2744;max-height:52vh;object-fit:cover}
.help-card h3{margin:10px 0 4px;color:#0f2744;font-size:1.02rem}
.help-card p{margin:0;color:#475569;line-height:1.45;font-size:.92rem}
#panelHelp[hidden]{display:none !important}
.pos-ticket-head{padding:12px 14px;font-weight:700;border-bottom:1px solid #eef}
#lines{flex:1;overflow:auto;padding:8px 12px}
.pos-line{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #f1f5f9}
.pos-line-name{flex:1}
.pos-line-ops{display:flex;align-items:center;gap:4px}
.pos-line-ops button{width:28px;height:28px;border:1px solid #cfd8e3;background:#fff;border-radius:8px;font-weight:800;cursor:pointer;line-height:1}
.pos-line-ops button[data-rm]{color:#c0392b;border-color:#f5c6cb}
.pos-order-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.pos-order-lines{margin-top:8px;font-size:.9rem}
.pos-order-line{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 0}
.pos-void{background:#fff;color:#c0392b;border:1px solid #f5c6cb;border-radius:8px;padding:6px 10px;font-weight:700;cursor:pointer}
.pos-cat-chip{display:inline-flex;align-items:center;gap:6px}
.pos-cat-chip .pos-cat-x,.pos-cat-chip .pos-cat-e{background:rgba(255,255,255,.25);border:0;color:#fff;width:22px;height:22px;border-radius:6px;font-weight:800;cursor:pointer;line-height:1;padding:0}
.pos-kind-row{display:grid;grid-template-columns:52px 1fr auto auto auto;gap:8px;align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px}
.pos-confirm{margin:0 12px 8px;padding:10px 12px;background:#fff7ed;border:1px solid #fdba74;border-radius:12px}
.pos-confirm[hidden]{display:none !important}
.pos-confirm-title{margin:0 0 6px;font-size:.82rem;font-weight:800;color:#9a3412}
.pos-confirm ul{margin:0;padding:0 0 0 18px}
.pos-confirm li{margin:2px 0;font-weight:700;color:#0f2744}
.pos-confirm-sent{margin:8px 0 0;font-size:.78rem;color:#0f766e;font-weight:700}
.pos-confirm-btn{width:100%;margin:10px 0 0;background:#0f766e;color:#fff;border:0;padding:14px;font-size:1.02rem;font-weight:800;border-radius:10px;cursor:pointer}
.pos-confirm-note{margin:8px 0 0;font-size:.78rem;color:#9a3412;line-height:1.35}
#printOrderAsk.pos-modal{z-index:85}
.pos-print-ask h2{margin:0 0 8px;font-size:1.15rem;line-height:1.35;color:#0f2744}
.pos-print-ask-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pos-print-ask-actions .pos-confirm-btn{margin:0}
.pos-print-ask-actions #printOrderNo,.pos-print-ask-actions #paidPrintNo{background:#fff;color:#0f2744;border:1px solid #cfd8e3;font-weight:800;border-radius:10px;padding:14px;font-size:1.02rem;cursor:pointer}
#paidPrintAsk.pos-modal{z-index:86}
#paidPrintAsk .pos-print-ask p{margin:0;color:#334155}
.kitchen-print-sheet,.paid-print-sheet{display:none}
@media print {
  body.pos-printing-order > *:not(#kitchenPrintSheet){display:none !important}
  body.pos-printing-order #kitchenPrintSheet{display:block !important;padding:12px;font-family:sans-serif;color:#000}
  body.pos-printing-order #kitchenPrintSheet h1{margin:0 0 6px;font-size:1.4rem}
  body.pos-printing-order #kitchenPrintSheet ul{margin:10px 0;padding-left:18px;font-size:1.15rem}
  body.pos-printing-order .kitchen-print-tag{font-weight:800;letter-spacing:.08em}
  body.pos-printing-paid > *:not(#paidPrintSheet){display:none !important}
  body.pos-printing-paid #paidPrintSheet{display:block !important;padding:12px;font-family:sans-serif;color:#000}
  body.pos-printing-paid #paidPrintSheet h1{margin:0 0 6px;font-size:1.4rem}
  body.pos-printing-paid #paidPrintSheet ul{margin:10px 0;padding-left:18px;font-size:1.05rem}
  body.pos-printing-paid .kitchen-print-tag{font-weight:800;letter-spacing:.08em}
}
.pos-line-hold,.pos-line-kds{display:block;font-style:normal;font-size:.68rem;font-weight:800}
.pos-line-hold{color:#c2410c}
.pos-line-kds{color:#0f766e}
.pos-ticket-foot{padding:10px 12px 0;border-top:1px solid #eef}
.pos-pay{width:100%;margin:10px 0 0;background:var(--green);color:#fff;border:0;padding:16px;font-size:1.4rem;font-weight:800;border-radius:0;cursor:pointer}
.pos-menu{padding:12px}
.pos-search{display:flex;gap:8px;align-items:center}
.pos-search input{flex:1;width:100%;padding:10px;border-radius:10px;border:1px solid #cfd8e3}
.pos-mini{border:0;background:var(--blue);color:#fff;padding:10px 12px;border-radius:10px;font-weight:700;cursor:pointer;white-space:nowrap}
.pos-floor-wrap,.pos-orders{padding:12px;min-height:calc(100vh - 52px)}
.pos-floor-head{font-weight:700;margin:0 0 10px}
.pos-floor-wrap .pos-mini{margin:0 0 10px}
.pos-floor{
  position:relative;width:100%;min-height:460px;height:calc(100vh - 120px);
  background:#f4e6cf;
  background-image:linear-gradient(rgba(0,0,0,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.06) 1px,transparent 1px);
  background-size:28px 28px;
  border:1px solid #e0d0b4;border-radius:14px;overflow:hidden
}
.pos-floor-edit{min-height:420px;height:52vh;touch-action:none;overflow:hidden}
.pos-floor-tools{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.pos-floor-tools button,.pos-save{background:var(--blue);color:#fff;border:0;font-weight:700}
.pos-tbl{
  position:absolute;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;text-align:center;
  background:transparent;border:0;font-weight:800;font-size:.82rem;cursor:grab;color:#111;
  user-select:none;touch-action:none;padding:0;line-height:1.15;
  min-width:56px;min-height:64px
}
.pos-tbl-icon{position:relative;flex:1;min-height:0}
.pos-tbl-svg{width:100%;height:100%;display:block;overflow:visible}
.pos-tbl-svg *{fill:currentColor}
.pos-tbl.dragging{cursor:grabbing;z-index:5}
.pos-tbl-name{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-size:.68rem;font-weight:800;color:#fff;max-width:72%;line-height:1.1;
  pointer-events:none;text-shadow:0 1px 2px rgba(0,0,0,.4)
}
.pos-tbl-st{flex:0 0 auto;font-size:.62rem;font-weight:800;color:#0f2744;line-height:1.2;margin-top:1px;text-transform:lowercase}
.pos-tbl.st-empty{color:#111}
.pos-tbl.st-customer{color:#e11d48}
.pos-tbl.st-order{color:#facc15}
.pos-tbl.st-delivery{color:#f97316}
.pos-tbl.st-payment,.pos-tbl.st-paid{color:#16a34a}
.pos-tbl.st-order .pos-tbl-name{color:#111;text-shadow:none}
.pos-tbl.on{z-index:3}
.pos-tbl.on .pos-tbl-icon::after{
  content:"";position:absolute;inset:-4px;border:3px solid #e11d48;border-radius:14px;pointer-events:none
}
.pos-legend{display:flex;flex-wrap:wrap;gap:10px;align-items:center;font-size:.82rem;margin:0 0 10px;color:#64748b}
.pos-legend span[class^="lg-"]{display:inline-block;width:12px;height:12px;border-radius:3px;border:0;vertical-align:-1px}
.lg-empty{background:#111}
.lg-customer{background:#e11d48}
.lg-order{background:#facc15}
.lg-delivery{background:#f97316}
.lg-payment{background:#16a34a}
.pos-badge{display:inline-block;font-size:.72rem;font-weight:800;padding:2px 8px;border-radius:999px;margin-left:6px}
.pos-badge.wait{background:#fff8e1;color:#b45309}
.pos-badge.open{background:#fff3e8;color:#c2410c}
.pos-badge.paid{background:#e8f8f0;color:#15803d}
.pos-order{background:#fff;border:1px solid #d7e3f0;border-radius:12px;padding:12px;margin:0 0 8px;cursor:pointer}
.pos-prod-form label{display:flex;flex-direction:column;gap:4px;font-size:.82rem;font-weight:700;min-width:140px;flex:1}
.pos-prod-form label input,.pos-prod-form label select{font-weight:500}
.pos-file input{padding:6px}
.pos-layout-card{width:min(980px,96vw)}
.pos-set-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.pos-set-tabs button{background:#e8eef5;border:0;font-weight:700}
.pos-set-tabs button[hidden]{display:none !important}
.pos-set-tabs button.on{background:var(--blue);color:#fff}
.pos-stock-list{display:grid;gap:8px;max-height:50vh;overflow:auto}
.pos-stock-row{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px}
.pos-stock-row b{font-size:.92rem}
.pos-card.out{opacity:.45}
.pos-card .pos-edit{font-size:.72rem;color:#64748b;padding-bottom:8px;display:block}
.pos-grid-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:12px}
.pos-card{background:#fff;border-radius:12px;overflow:hidden;border:1px solid #d7e3f0;cursor:pointer;text-align:center}
.pos-card img{width:100%;height:84px;object-fit:cover;background:#e3f2fd}
.pos-card b{display:block;padding:6px 6px 0;font-size:.85rem}
.pos-card span{display:block;padding:0 6px 8px;color:var(--blue-d);font-weight:700}
.pos-cats{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.pos-cats button{border:0;background:var(--blue);color:#fff;padding:10px 14px;border-radius:10px;cursor:pointer}
.pos-cats button.on{background:var(--blue-d)}
.pos-modal{position:fixed;inset:0;background:rgba(15,23,42,.45);display:grid;place-items:center;z-index:20}
.pos-modal[hidden]{display:none !important}
#setModal.pos-modal{background:#f4f6f9;place-items:stretch;z-index:40}
#setModal .pos-modal-card{width:100%;max-width:none;height:100dvh;max-height:100dvh;border-radius:0;overflow:auto;padding:14px 14px 32px;box-sizing:border-box}
.pos-modal-card{background:#fff;padding:18px;border-radius:14px;width:min(420px,92vw);display:grid;gap:8px}
#setModal [hidden]{display:none !important}
#setPaneAn{color:#e2e8f0}
#setPaneAn .mail-x-head{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
#setPaneAn .mail-x-head h3{margin:0;color:#f8fafc}
#setPaneAn .mail-x-head .muted{color:#94a3b8}
#setPaneAn .mail-x-head select{width:100%;padding:10px;border-radius:10px;border:1px solid #334155;background:#0f172a;color:#f8fafc}
#setPaneAn .mail-mon-grid{display:grid;grid-template-columns:1fr;gap:12px}
#setPaneAn .mail-mon-card{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:12px 14px 10px;min-height:180px}
#setPaneAn .mail-mon-card h4{margin:0;font-size:.95rem;font-weight:650;color:#e2e8f0}
#setPaneAn .mail-mon-total{font-size:1.35rem;font-weight:700;color:#f8fafc;margin:4px 0 6px;word-break:break-word}
#setPaneAn .mail-mon-legend{font-size:.78rem;color:#38bdf8;margin-top:4px}
#setPaneAn .mail-mon-empty{border:1px dashed #475569;border-radius:10px;color:#94a3b8;padding:18px 12px;text-align:center;font-size:.88rem;margin-top:18px}
#setPaneAn .mail-spark{width:100%;height:104px;display:block}
#setPaneAn .mail-spark-t{fill:#64748b;font-size:10px}
#setPaneAn .pos-bars{display:grid;gap:8px;margin-top:10px}
#setPaneAn .pos-bar-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(64px,1.4fr) auto;gap:8px;align-items:center}
#setPaneAn .pos-bar-name{font-size:.78rem;color:#cbd5e1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#setPaneAn .pos-bar-track{height:8px;background:#334155;border-radius:99px;overflow:hidden}
#setPaneAn .pos-bar-fill{height:8px;background:#38bdf8;border-radius:99px}
#setPaneAn .pos-bar-val{font-size:.72rem;color:#94a3b8;white-space:nowrap}
.pos-office{display:grid;gap:10px}
.pos-office .card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:12px}
.pos-office h4{margin:0 0 6px}
.pos-office .row{display:flex;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px solid #f1f5f9}
.pos-bar{height:10px;background:#e2e8f0;border-radius:99px;overflow:hidden}
.pos-bar span{display:block;height:100%;background:#008c45}
.pos-set-tabs{display:flex;flex-wrap:wrap;gap:6px}
.pos-set-tabs button{border-radius:999px}
.pos-wide{width:min(720px,94vw);max-height:90vh;overflow:auto}
.pos-modal-card button{padding:10px;border-radius:8px;border:1px solid #cfd8e3;cursor:pointer}
.pos-inline,.pos-prod-form{display:flex;flex-wrap:wrap;gap:8px}
.pos-inline input,.pos-prod-form input,.pos-prod-form select{padding:8px;border:1px solid #cfd8e3;border-radius:8px}
.qris-page{margin:0;min-height:100vh;min-height:100dvh;background:#f6f1ea;color:#1a1a1a;display:grid;place-items:start center;font-family:Segoe UI,Arial,sans-serif;padding:18px 14px env(safe-area-inset-bottom)}
.qris-wrap{width:min(440px,100%);display:grid;gap:16px;justify-items:center}
.qris-pill{display:inline-flex;align-items:center;gap:8px;background:#fff;color:#c45c12;font-weight:800;padding:10px 18px;border-radius:999px;box-shadow:0 4px 16px rgba(196,92,18,.12);font-size:.95rem}
.qris-dot{width:10px;height:10px;border-radius:50%;background:#e67e22;box-shadow:0 0 0 0 rgba(230,126,34,.55);animation:qrpulse 1.6s infinite}
.qris-dot.off{background:#c0392b;animation:none}
.qris-card{width:100%;background:#fff;border-radius:22px;padding:22px 20px 18px;box-shadow:0 10px 32px rgba(28,25,23,.08);display:grid;justify-items:center;gap:12px}
.qris-brand{display:flex;align-items:center;justify-content:center;width:100%;padding:0 6px 8px;border-bottom:0}
.qris-brand img,.qris-logo{height:48px;width:auto;max-width:100%;object-fit:contain}
.qris-merchant{margin:6px 0 0;font-size:1.15rem;font-weight:800;letter-spacing:.06em;text-align:center;text-transform:uppercase}
.qris-code{background:#fff;padding:8px;display:grid;place-items:center}
.qris-code img,.qris-code canvas,.qris-code table{max-width:100%;height:auto}
.qris-satu{margin:4px 0 0;font-weight:900;letter-spacing:.08em;font-size:1.02rem;text-align:center}
.qris-cek{margin:0;color:#6b7280;font-size:.82rem;text-align:center}
.qris-detail{width:100%;background:#fff;border-radius:16px;padding:16px 18px;color:#16324f}
.qris-detail h2{margin:0 0 8px;font-size:1.05rem}
.qris-detail table{width:100%;border-collapse:collapse}
.qris-detail td{padding:8px 0;border-bottom:1px solid #eef}
.qris-detail .tot{font-weight:800;font-size:1.15rem}
.qris-empty{text-align:center;padding:36px 12px;color:#444}
.pos-modal-card .qris-pill{margin:0 auto 10px}
.pos-qris-shell{background:#1e88e5;color:#fff;padding:16px}
.pos-qris-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:10px}
.pos-qris-shell .qr-board{margin-top:8px}
.pos-remote-wait,.pos-paid-ok{width:100%;background:#fff;color:#16324f;border-radius:16px;padding:28px 18px;text-align:center;margin-top:8px}
.pos-remote-wait .qris-brand{background:#fff;display:flex;justify-content:center;margin-bottom:12px}
.pos-wait-title,.pos-paid-title{font-size:1.25rem;font-weight:800;margin:0 0 8px}
.pos-remote-wait .pos-pay{margin-top:18px;min-width:220px}
.pos-paid-title{color:#15803d}
.pos-wait-sub{margin:0;color:#475569}
.qr-body{margin:0;min-height:100vh;min-height:100dvh;background:#1e88e5;color:#fff;display:grid;place-items:center;font-family:Segoe UI,Arial,sans-serif;padding:env(safe-area-inset-top) 12px env(safe-area-inset-bottom)}
.qr-shell{width:min(1100px,96vw);display:grid;gap:14px}
.qr-head{display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:700}
.qr-head b{font-size:1.15rem}
.qr-live-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#b9f6ca;margin-left:8px;box-shadow:0 0 0 0 rgba(185,246,202,.8);animation:qrpulse 1.6s infinite}
.qr-live-dot.off{background:#ffcdd2;animation:none}
@keyframes qrpulse{0%{box-shadow:0 0 0 0 rgba(185,246,202,.7)}70%{box-shadow:0 0 0 10px rgba(185,246,202,0)}100%{box-shadow:0 0 0 0 rgba(185,246,202,0)}}
.qr-empty,.qr-wait{font-size:1.25rem;text-align:center;padding:48px 16px}
.qr-empty small,.qr-wait small{display:block;margin-top:10px;opacity:.85;font-size:.9rem}
.qr-wait{display:grid;justify-items:center;gap:14px}
.qr-wait .qris-brand{background:#fff;border-radius:12px;padding:10px 14px}
.qr-wait p{margin:0;font-weight:800}
.qr-board[hidden],.qr-empty[hidden],.qr-wait[hidden],.qr-paid[hidden],.qr-review[hidden],
.qr-board.is-off,#payPane.is-off,#waitPane.is-off,#paidPane.is-off,#reviewPane.is-off{display:none !important}
.qr-review{display:flex;flex-direction:column;width:100%;min-height:min(78dvh,720px);background:#fff;color:#16324f;border-radius:16px;padding:22px 18px 18px;box-sizing:border-box}
.qr-review h2{margin:0 0 10px;font-size:1.55rem}
.qr-review table{width:100%;border-collapse:collapse;flex:1}
.qr-review td{padding:12px 0;border-bottom:1px solid #e8eef5;font-size:1.05rem}
.qr-review .tot{font-weight:800;font-size:1.25rem}
.qr-confirm{width:100%;margin-top:18px;background:#1e88e5;color:#fff;border:0;padding:16px;font-size:1.15rem;font-weight:800;border-radius:12px;cursor:pointer}
.qr-board{display:grid;grid-template-columns:1fr 1fr;width:100%;background:#fff;color:#16324f;border-radius:16px;overflow:hidden;min-height:min(70vh,560px)}
.qr-left{background:#1e88e5;color:#fff;display:grid;place-items:center;padding:24px 18px;text-align:center;gap:10px}
.qr-left .qris-brand{background:#fff;border-radius:12px;padding:10px 14px;width:auto;max-width:100%}
.qr-left .qris-logo,.qr-left .qris-brand img{height:44px;width:auto;max-width:100%;object-fit:contain}
.qr-left .qris-merchant{color:#fff;margin:4px 0 0}
.qr-left .qris-satu{color:#fff}
.qr-left .qris-cek{color:rgba(255,255,255,.88)}
.qr-left #qrbox,.qr-left .qris-code{background:#fff;padding:12px;border-radius:12px}
.qr-left #qrbox img,.qr-left #qrbox canvas,.qr-left #qrbox table,.qr-left .qris-code img,.qr-left .qris-code canvas,.qr-left .qris-code table{max-width:100%;height:auto}
.qr-right{padding:20px}
.qr-right table{width:100%;border-collapse:collapse}
.qr-right td{padding:8px 0;border-bottom:1px solid #eef}
.qr-right .tot{font-weight:800;font-size:1.2rem}
.qr-table{margin:0 0 8px;color:#1565c0;font-weight:700}
.qr-paid{text-align:center;padding:48px 16px;background:#fff;color:#16324f;border-radius:16px}
.qr-paid h2{margin:0 0 8px;color:#2ecc71}
.hub-body{margin:0;min-height:100vh;background:linear-gradient(#e3f2fd,#eef4fb);color:#16324f;font-family:Segoe UI,Arial,sans-serif}
.hub-hero{max-width:920px;margin:0 auto;padding:36px 18px 8px}
.hub-kicker{text-transform:uppercase;letter-spacing:.12em;color:#1565c0;font-weight:800;margin:0 0 6px}
.hub-hero h1{margin:0 0 8px;font-size:clamp(1.6rem,4vw,2.4rem)}
.hub-grid{max-width:920px;margin:0 auto;padding:12px 18px 48px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.hub-card{background:#fff;border-radius:16px;padding:18px;box-shadow:0 8px 24px rgba(21,101,192,.08);display:grid;gap:8px}
.hub-card h2{margin:0}
.hub-meta{color:#64748b;font-size:.85rem}
.hub-dl{display:inline-block;background:#1e88e5;color:#fff;text-decoration:none;font-weight:800;padding:12px 16px;border-radius:10px;text-align:center}
.hub-help ol{margin:0;padding-left:18px;display:grid;gap:8px}
.hub-help a{color:#1565c0}
@media(max-width:1024px){
  .pos-burger{display:flex}
  .pos-out-desk{display:none}
  .pos-nav-out{display:block}
  .pos-top nav{
    display:none;position:absolute;top:100%;left:0;right:0;z-index:40;
    flex-direction:column;align-items:stretch;gap:0;
    background:#1565c0;padding:8px 10px 12px;box-shadow:0 12px 24px rgba(15,23,42,.2)
  }
  .pos-top nav.open{display:flex}
  .pos-top nav button,.pos-top nav a{
    text-align:left;padding:14px 12px;border-radius:10px;font-weight:700
  }
  .pos-grid{min-height:calc(100dvh - 56px)}
  .pos-floor{min-height:320px;height:min(52vh,420px)}
}
@media(max-width:800px){
  .pos-grid,.qr-board{grid-template-columns:1fr}
  .qr-body .qr-board{min-height:min(78dvh,720px);background:#1e88e5}
  .qr-body.qr-phone-pay .qr-right{display:none !important}
  .qr-body.qr-phone-pay .qr-left{padding:18px 12px 24px;min-height:min(78dvh,720px)}
  .qr-body.qr-phone-pay .qr-left #qrbox,.qr-body.qr-phone-pay .qr-left .qris-code{padding:14px}
  .qr-left{order:2}
  .qr-right{order:1}
  .pos-ticket{border-right:0;border-bottom:1px solid #d7e3f0;max-height:none}
  #lines{max-height:28vh}
  .pos-pay{font-size:1.2rem;padding:14px;border-radius:10px;margin-bottom:8px}
  .pos-menu,.pos-floor-wrap,.pos-orders{padding:10px}
  .pos-grid-items{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}
  .pos-card img{height:72px}
  .pos-top strong{font-size:.95rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .pos-modal-card{width:min(420px,96vw);max-height:88dvh}
}
@media(min-width:801px){
  .qr-board{min-height:70vh}
  .qr-body #reviewPane,.qr-review{display:none !important}
  .qr-body.qr-chat-hold #reviewPane,
  .qr-body.qr-chat-hold .qr-review{
    display:flex !important;
    max-width:560px;
    margin:0 auto;
    min-height:auto;
  }
}

/* print beside pay + settlements (2026-09-26) */
.pos-pay-row{display:flex;gap:8px;align-items:stretch;margin-top:10px;width:100%}
.pos-pay-row .pos-pay{margin:0;flex:1;min-width:0}
.pos-print-side{background:#0f172a;color:#fff;border:0;padding:16px 12px;font-weight:800;border-radius:0;cursor:pointer;min-width:72px;text-align:center;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;font-size:1rem}
.pos-print-side:hover{filter:brightness(1.08)}
.pos-wa-side{background:#128c7e}
.pos-print-side[hidden],.pos-wa-side[hidden],#ticketWaBtn[hidden],#ticketPrintBtn[hidden]{display:none!important}
.pos-settlement-block{margin-top:18px;padding-top:14px;border-top:1px solid #e2e8f0}
.pos-settle-actions{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.pos-settle-actions .pos-pay{margin:0}
@media (max-width:720px){
  .pos-print-side{padding:14px 10px;font-size:.95rem;border-radius:10px}
  .pos-pay-row{gap:6px}
}

/* Setting tiles and Order categories (home-style) */
#panelProduk{background:#f4f6f9}
#grid[hidden],#cats[hidden],#catBack[hidden],#catHead[hidden]{display:none !important}
.ord-board{display:grid;grid-template-columns:repeat(4,1fr);gap:16px 8px;margin:8px 0 18px}
.ord-cat-wrap{position:relative;text-align:center}
.ord-cat{border:0;background:none;cursor:pointer;font:inherit;color:#0f2744;padding:0;width:100%}
#panelProduk .pos-search{flex-wrap:wrap}
#panelProduk .pos-search input{min-width:0;width:auto;flex:1 1 140px}
.ord-cat i{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 6px;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 1px 4px rgba(15,39,68,.08);font-style:normal;font-size:1.6rem}
.ord-cat img{width:100%;height:100%;object-fit:cover;display:block}
.ord-cat span{display:block;font-size:.72rem;font-weight:700;line-height:1.15}
.ord-cat-cam{position:absolute;top:-4px;left:calc(50% + 16px);width:28px;height:28px;border:0;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(15,39,68,.16);cursor:pointer;padding:0;line-height:28px;z-index:2}
.ord-back{border:0;background:#fff;color:#0f2744;font-weight:800;border-radius:999px;padding:8px 14px;margin:8px 0;box-shadow:0 1px 4px rgba(15,39,68,.08);cursor:pointer}
.kind-thumb{width:44px;height:44px;border-radius:12px;object-fit:cover;background:#fff;display:grid;place-items:center;overflow:hidden}
.pos-photo-actions{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
.pos-photo-actions button{background:#fff;border:1px solid #d7e3f0;border-radius:12px;padding:10px 12px;font-weight:800;cursor:pointer}
.pos-photo-preview{width:96px;height:96px;object-fit:cover;border-radius:16px;background:#fff;box-shadow:0 1px 4px rgba(15,39,68,.08)}
.photo-pick{position:fixed;inset:0;z-index:90;background:rgba(15,39,68,.45);display:grid;place-items:center;padding:18px}
.photo-pick[hidden]{display:none !important}
.photo-pick-card{width:min(360px,92vw);background:#fff;border-radius:18px;padding:16px;display:grid;gap:8px}
.photo-pick-card p{margin:0 0 4px;font-weight:800;color:#0f2744}
.photo-pick-card button{border:0;border-radius:12px;padding:14px;font-weight:800;background:#0f2744;color:#fff;cursor:pointer}
.photo-pick-card #photoNo{background:#e8eef5;color:#0f2744}
#setModal .pos-modal-card{background:#f4f6f9;padding-bottom:calc(92px + env(safe-area-inset-bottom))}
#setModal .pos-set-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:16px 8px;margin:12px 0 8px}
#setModal.set-in-pane .pos-set-tabs{display:none !important}
#setModal .pos-set-tabs button,
#setModal .pos-set-tabs button.on{border:0;background:none;color:#0f2744;border-radius:0;padding:4px 2px;box-shadow:none}
#setModal .pos-set-tabs button i{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 6px;border-radius:18px;font-size:1.45rem;font-style:normal;background:#fff;box-shadow:0 1px 4px rgba(15,39,68,.08)}
#setModal .pos-set-tabs button span{display:block;font-size:.72rem;font-weight:700;line-height:1.15}
#setBack{justify-self:start;border:0;background:#fff;color:#0f2744;font-weight:800;border-radius:999px;padding:8px 14px;box-shadow:0 1px 4px rgba(15,39,68,.08);cursor:pointer}
#setModal:not(.set-in-pane) #setBack{display:none !important}
#setModal.set-in-pane [id^="setPane"]{background:#fff;border-radius:16px;padding:12px}
@media (max-width:420px){
  .ord-board,#setModal .pos-set-tabs{grid-template-columns:repeat(3,1fr)}
  .ord-cat i{width:64px;height:64px}
}
#menuPickBtn{background:#fff;color:#1565c0;border:1.5px solid #90caf9}
#menuPickBtn[hidden],#menuPickModal[hidden],#menuPickBack[hidden],#menuPickMove[hidden],#menuPickFilter[hidden]{display:none !important}
#menuPickModal.pos-modal{z-index:70}
#menuPickModal .pos-modal-card{
  width:min(520px,96vw);max-height:88dvh;display:flex;flex-direction:column;overflow:hidden;align-content:stretch
}
#menuPickLead{margin:0;color:#334155}
#menuPickFilter{width:100%;box-sizing:border-box;border:1.5px solid #90caf9;border-radius:12px;padding:12px;font-size:1rem}
#menuPickBody{flex:1;overflow:auto;min-height:120px}
#menuPickBody .ord-board{grid-template-columns:repeat(3,1fr)}
.menu-pick-tools{display:flex;justify-content:flex-end;margin:0 0 8px}
.menu-pick-tools button{border:0;background:none;color:#1565c0;font-weight:800;cursor:pointer;padding:6px 0}
.menu-pick-list{display:flex;flex-direction:column;gap:8px}
.menu-pick-row{
  display:flex;align-items:center;gap:10px;text-align:left;width:100%;
  background:#fff;border:1.5px solid #d6e4f5;border-radius:12px;padding:10px;cursor:pointer;font-weight:700;color:#0f2744
}
.menu-pick-row.on{border-color:#1e88e5;background:#e8f2fb}
.menu-pick-row img,.menu-pick-ph{width:48px;height:48px;border-radius:10px;object-fit:cover;background:#f4f6f9;flex:none;display:grid;place-items:center}
.menu-pick-row .nm{flex:1;min-width:0}
.menu-pick-row .pr{color:#1565c0;white-space:nowrap}
.menu-pick-row .ck{width:22px;height:22px;border-radius:6px;border:1.5px solid #90caf9;display:grid;place-items:center;color:#1e88e5;flex:none}
#menuPickNote{min-height:1.2em;text-align:center;font-weight:700;margin:0}
#menuPickNote.is-ok{color:#15803d}
#menuPickNote.is-bad{color:#b45309}
.menu-pick-foot{display:flex;flex-direction:column;gap:8px;flex:none}
.menu-pick-foot button{border-radius:12px;padding:14px;font-weight:800;cursor:pointer}
#menuPickMove{background:#1e88e5;color:#fff;border:0}
#menuPickClose{background:#e8eef5;color:#0f2744;border:0}
@media (max-width:520px){
  #panelProduk .pos-search{display:grid;grid-template-columns:1fr}
  #panelProduk .pos-search .pos-mini{width:100%;box-sizing:border-box}
  #menuPickModal.pos-modal{place-items:stretch;background:#f4f6f9}
  #menuPickModal .pos-modal-card{width:100%;max-width:none;height:100dvh;max-height:100dvh;border-radius:0}
}
@media (max-width:380px){
  #menuPickBody .ord-board{grid-template-columns:repeat(2,1fr)}
}

/* One-page QRIS (national red corners) and paid receipt */
#posQrisPage[hidden],#posReceiptPage[hidden],#posQrisActions[hidden],#posQrisAlt[hidden],
#posQrisCash[hidden],#posQrisCard[hidden],#posQrisPill[hidden],#posQrisBoard[hidden],
#posPaidOk[hidden],#posRemoteWait[hidden],#posCashWait[hidden],#posCardWait[hidden]{display:none !important}
#payModal.pos-qris-full{background:#e8f2fb;place-items:stretch;z-index:60;padding:0}
#payModal.pos-qris-full .pos-modal-card,
#payModal.pos-qris-full .pos-modal-card.pos-wide{
  width:100% !important;max-width:none !important;height:100dvh;max-height:100dvh !important;
  border-radius:0;background:transparent;padding:0;overflow:auto;box-shadow:none;gap:0
}
.pos-qris-page{
  min-height:100dvh;background:#e8f2fb;color:#16324f;display:flex;flex-direction:column;align-items:center;
  padding:0 18px calc(24px + env(safe-area-inset-bottom));box-sizing:border-box
}
.pos-qris-bar{
  width:calc(100% + 36px);margin:0 -18px 16px;background:linear-gradient(#1e88e5,#1565c0);color:#fff;
  display:flex;align-items:center;gap:8px;padding:14px 8px;font-weight:800;font-size:1.15rem
}
#posQrisBack{
  width:40px;height:40px;border:0;background:transparent;color:#fff;font-size:2rem;line-height:1;
  padding:0;cursor:pointer
}
.pos-qris-kicker{margin:6px 0 0;font-weight:700;color:#1565c0;font-size:.95rem}
.pos-qris-rp{margin:0;font-size:2.5rem;font-weight:900;color:#1565c0;letter-spacing:-.03em}
.pos-qris-logo{height:52px;margin-top:12px}
.pos-qris-name{margin:10px 0 6px;font-size:1.05rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;text-align:center}
.pos-qris-frame{position:relative;display:grid;place-items:center;margin:8px auto 0;padding:26px;background:#fff}
.qris-br{position:absolute;width:58px;height:58px;border-color:#ED1C24;border-style:solid;border-width:0;pointer-events:none}
.qris-br-tr{top:0;right:0;border-top-width:12px;border-right-width:12px}
.qris-br-bl{bottom:0;left:0;border-bottom-width:12px;border-left-width:12px}
.pos-qris-frame .qris-code{background:#fff;padding:0}
.pos-qris-making{margin:48px 24px;color:#64748b;font-weight:700}
.pos-qris-wait{margin:22px 0 0;font-weight:800;color:#64748b;display:flex;align-items:center;gap:8px}
.pos-qris-alt{display:flex;gap:8px;margin:16px 0 0}
.pos-qris-alt button{border:0;background:transparent;color:#1565c0;font-weight:800;text-decoration:underline;cursor:pointer;padding:8px}
#payModal.pos-qris-full.pos-receipt-on .pos-modal-card,
#payModal.pos-qris-full.pos-receipt-on .pos-modal-card.pos-wide{
  overflow:hidden;display:flex;flex-direction:column
}
.pos-receipt-page{
  min-height:100dvh;height:100%;background:#e8f1fb;display:flex;flex-direction:column;
  padding:0;box-sizing:border-box;gap:0
}
#payModal.pos-qris-full.pos-receipt-on .pos-receipt-page{flex:1;min-height:0;height:auto;max-height:none}
.pos-receipt-paper{
  flex:1;min-height:0;overflow:auto;background:#fff;color:#0f172a;
  margin:12px auto 0;border-radius:12px;padding:18px 16px;
  box-shadow:0 8px 24px rgba(15,23,42,.08);
  width:min(440px, calc(100% - 24px));max-width:440px;align-self:center;box-sizing:border-box
}
.pos-receipt-paper h2{margin:0 0 4px;text-align:center;font-size:1.25rem}
.pos-receipt-paper p{margin:2px 0;text-align:center;color:#334155}
.pos-receipt-paper hr{border:0;border-top:1px dashed #cbd5e1;margin:10px 0}
.pos-receipt-paper table{width:100%;border-collapse:collapse;margin:8px 0 10px}
.pos-receipt-paper td{padding:7px 0;border-bottom:1px dashed #e2e8f0;text-align:left;vertical-align:top}
.pos-receipt-paper td:last-child{text-align:right;font-weight:800;white-space:nowrap}
.pos-receipt-paper .sub,.pos-receipt-paper .tot{display:flex;justify-content:space-between;text-align:left;margin:4px 0}
.pos-receipt-paper .tot{font-size:1.15rem;font-weight:900;color:#0f172a;margin-top:8px}
.pos-receipt-paper .st{margin-top:10px;font-weight:800;color:#15803d}
.pos-receipt-actions{
  flex:none;display:grid;grid-template-columns:1fr 1fr;gap:10px;
  width:min(440px,100%);margin:0 auto;box-sizing:border-box;
  padding:12px 12px calc(14px + env(safe-area-inset-bottom));background:#e8f1fb
}
.pos-receipt-actions .mail-note{grid-column:1 / -1;margin:0;min-height:0;text-align:center;color:#15803d;font-weight:700}
.pos-receipt-actions .mail-note:empty{display:none}
#payModal .pos-receipt-actions button{
  border-radius:12px;font-weight:800;cursor:pointer;font-size:1rem;letter-spacing:.06em;text-transform:uppercase
}
#receiptPrint,#receiptEmail,#receiptWa{
  background:#fff;color:#1565c0;border:1.5px solid #90caf9;
  min-height:84px;padding:10px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px
}
#receiptDone{
  grid-column:1 / -1;background:#1e88e5;color:#fff;border:0;min-height:64px;padding:16px 8px;font-size:1.05rem
}
.rc-ico{display:block;width:28px;height:28px;background:currentColor}
.rc-print{
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M19 8h-1V3H6v5H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zM8 5h8v3H8V5zm8 14H8v-4h8v4zm2-6a1 1 0 1 1 0-2 1 1 0 0 1 0 2z'/></svg>") center / contain no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M19 8h-1V3H6v5H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zM8 5h8v3H8V5zm8 14H8v-4h8v4zm2-6a1 1 0 1 1 0-2 1 1 0 0 1 0 2z'/></svg>") center / contain no-repeat
}
.rc-mail{
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4-8 5L4 8V6l8 5 8-5v2z'/></svg>") center / contain no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4-8 5L4 8V6l8 5 8-5v2z'/></svg>") center / contain no-repeat
}
#receiptMailModal[hidden],#receiptMailPick[hidden],#receiptMailList[hidden]{display:none !important}
.pos-receipt-actions.has-wa{grid-template-columns:1fr 1fr 1fr}
#receiptWa[hidden],#receiptWaModal[hidden]{display:none !important}
#receiptWa.soon{opacity:.6}
#receiptWa.soon span::after{content:" (segera hadir)";display:block;font-size:.7rem;letter-spacing:0;text-transform:none}
.rc-wa{
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 18.2c-1.5 0-3-.4-4.3-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8-.2-.1-.4-.1-.6.1l-.8 1c-.1.2-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.3-.4.7-1.4.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5c-.2 0-.4.1-.7.3-.2.3-.9.9-.9 2.2s.9 2.5 1 2.7c.1.2 1.8 2.8 4.4 3.9 1.6.7 2.3.8 3.1.6.5-.1 1.5-.6 1.7-1.2.2-.6.2-1.1.2-1.2-.1-.2-.3-.2-.6-.4z'/></svg>") center / contain no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 18.2c-1.5 0-3-.4-4.3-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8-.2-.1-.4-.1-.6.1l-.8 1c-.1.2-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.3-.4.7-1.4.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5c-.2 0-.4.1-.7.3-.2.3-.9.9-.9 2.2s.9 2.5 1 2.7c.1.2 1.8 2.8 4.4 3.9 1.6.7 2.3.8 3.1.6.5-.1 1.5-.6 1.7-1.2.2-.6.2-1.1.2-1.2-.1-.2-.3-.2-.6-.4z'/></svg>") center / contain no-repeat
}
#receiptWaModal.pos-modal{z-index:90}
#receiptWaModal .pos-modal-card{width:min(420px,92vw)}
#receiptWaModal input{width:100%;box-sizing:border-box;border:1.5px solid #90caf9;border-radius:12px;padding:14px;font-size:1rem;color:#0f2744;margin-bottom:8px}
#receiptWaSend{background:#16a34a;color:#fff;border:0}
#receiptMailModal.pos-modal{z-index:90}
#receiptMailModal .pos-modal-card{width:min(420px,92vw)}
#receiptMailModal input{
  width:100%;box-sizing:border-box;border:1.5px solid #90caf9;border-radius:12px;
  padding:14px;font-size:1rem;color:#0f2744
}
.pos-mail-sendrow{display:flex;gap:8px}
.pos-mail-sendrow button{flex:1;border-radius:12px;padding:14px;font-weight:800;cursor:pointer}
#receiptMailSend{background:#1e88e5;color:#fff;border:0}
#receiptMailPick{background:#fff;color:#1565c0;border:1.5px solid #90caf9}
.pos-mail-list{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto}
.pos-mail-list button{
  text-align:left;background:#fff;color:#0f2744;border:1px solid #d6e4f5;border-radius:10px;padding:12px;font-weight:700;cursor:pointer
}
#receiptMailPopNote{min-height:1.2em;text-align:center;color:#15803d;font-weight:700;margin:0}
#receiptMailClose{background:#e8eef5;color:#0f2744;border:0;border-radius:12px;padding:12px;font-weight:800}
#settlementModal[hidden]{display:none !important}
#settlementModal.pos-modal{z-index:80}
#settlementModal .pos-settle-actions{display:flex;flex-direction:column;gap:8px}
#settlementPrint,#settlementEmail{
  background:#fff;color:#1565c0;border:1.5px solid #90caf9;border-radius:12px;padding:14px;font-weight:800
}
#settlementCancel{background:#e8eef5;color:#0f2744;border:0;border-radius:12px;padding:12px;font-weight:800}
#settlementNote{min-height:1.2em;text-align:center;color:#15803d;font-weight:700;margin:0}

/* info popover: beat .pos-welcome-form button { width:100% } */
.pos-welcome-form button.pos-otp-info{width:22px;min-width:22px;max-width:22px;height:22px;margin:0;padding:0;border:1.5px solid #1e88e5;border-radius:50%;background:#fff;color:#1e88e5;font-size:12px;font-weight:700;line-height:19px;box-shadow:none}
.pos-welcome-form button.pos-otp-info:hover,.pos-welcome-form button.pos-otp-info:focus-visible{background:#1e88e5;color:#fff}
.pos-suspend-pop-close{width:100%;background:transparent;color:#5c6370;border-radius:10px;padding:10px;font-size:14px;font-weight:650}

/* suspend popover buttons must beat .pos-welcome-form button */
.pos-welcome-form .pos-suspend-pop-close,
.pos-suspend-pop .pos-suspend-pop-close{
  width:100%!important;margin-top:10px!important;padding:10px!important;
  border:0!important;border-radius:10px!important;
  background:transparent!important;color:#5c6370!important;
  font-size:14px!important;font-weight:650!important;line-height:1.3!important;
  box-shadow:none!important
}
.pos-welcome-form .pos-otp-info,
.pos-welcome-form button.pos-otp-info{
  width:22px!important;min-width:22px!important;max-width:22px!important;height:22px!important;
  margin:0!important;padding:0!important;border:1.5px solid #1e88e5!important;border-radius:50%!important;
  background:#fff!important;color:#1e88e5!important;font-size:12px!important;font-weight:700!important;
  line-height:19px!important;box-shadow:none!important
}
.pos-welcome-form button.pos-otp-info:hover,
.pos-welcome-form button.pos-otp-info:focus-visible{background:#1e88e5!important;color:#fff!important}

