:root{--bg:#241a12;--surface:#34281d;--surface-2:#3f3122;--surface-3:#4a3a28;--ink:#f4ead9;--ink-dim:#cbb99f;--paper:#f7f1e3;--paper-ink:#2a2018;--paper-ink-dim:#6b5c48;--gold:#d6a24a;--gold-dim:#a97e37;--mint:#9dbb8f;--rose:#c97b6a;--line:hsla(38,55%,90%,.12);--font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;--font-sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,sans-serif;--radius:14px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);overflow:hidden;display:flex;flex-direction:column}button,input{font-family:inherit}button{cursor:pointer}::selection{background:var(--gold);color:var(--paper-ink)}.topbar{justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--line);flex-shrink:0}.brand,.topbar{display:flex;align-items:center}.brand{gap:10px}.brand-mark{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--gold),var(--gold-dim) 70%);display:flex;align-items:center;justify-content:center;font-size:16px}.brand-name{font-weight:700;font-size:17px}.brand-sub{font-size:11px;color:var(--ink-dim);font-family:var(--font-mono)}.top-actions{display:flex;gap:8px;align-items:center}.chip-btn{background:var(--surface-2);color:var(--ink);border:1px solid var(--line);padding:9px 14px;border-radius:999px;font-size:13px;font-weight:600}.chip-btn:active{background:var(--surface-3)}.chip-btn.accent{background:var(--gold);color:var(--paper-ink);border-color:transparent}.chip-btn.ghost{background:transparent}.staff-layout{flex:1 1;display:flex;min-height:0}.cats{width:120px;flex-shrink:0;padding:16px 10px;display:flex;flex-direction:column;gap:8px;border-right:1px solid var(--line);overflow-y:auto}.cat-btn{background:transparent;border:1px solid var(--line);color:var(--ink-dim);padding:12px 8px;border-radius:12px;font-size:12.5px;font-weight:600;text-align:center}.cat-btn.active{background:var(--surface-2);color:var(--gold);border-color:var(--gold-dim)}.menu-wrap{flex:1 1;padding:16px 18px;overflow-y:auto;min-width:0}.menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:10px;gap:10px}.item-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 12px;text-align:left;color:var(--ink);position:relative;min-height:78px;display:flex;flex-direction:column;justify-content:space-between;gap:10px}.item-card:active{background:var(--surface-2);transform:scale(.98)}.item-name{font-size:13.5px;font-weight:600;line-height:1.25}.item-price{font-size:13px;color:var(--gold)}.item-price,.item-qty-badge{font-family:var(--font-mono)}.item-qty-badge{position:absolute;top:-7px;right:-7px;background:var(--gold);color:var(--paper-ink);font-weight:700;font-size:12px;min-width:22px;height:22px;border-radius:999px;display:flex;align-items:center;justify-content:center;padding:0 4px}.receipt-col{width:340px;flex-shrink:0;display:flex;flex-direction:column;padding:16px;gap:10px;border-left:1px solid var(--line)}.receipt{background:var(--paper);color:var(--paper-ink);border-radius:2px;flex:1 1;min-height:0;display:flex;flex-direction:column;font-family:var(--font-mono);position:relative;box-shadow:0 10px 24px rgba(0,0,0,.35)}.receipt:after,.receipt:before{content:"";display:block;height:9px;flex-shrink:0;background:radial-gradient(circle at 9px 0,transparent 9px,var(--bg) 9.5px) repeat-x;background-size:18px 18px;background-position:0 -4px}.receipt:after{transform:scaleY(-1)}.receipt-head{padding:14px 18px 8px;text-align:center;border-bottom:1px dashed var(--paper-ink-dim)}.receipt-head .order-no{font-size:20px;font-weight:700;letter-spacing:1px}.receipt-head .order-meta{font-size:10.5px;color:var(--paper-ink-dim);margin-top:2px}.receipt-lines{flex:1 1;overflow-y:auto;padding:10px 18px}.receipt-empty{color:var(--paper-ink-dim);font-size:12.5px;text-align:center;padding:30px 10px}.rline{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:6px 0;border-bottom:1px dotted rgba(42,32,24,.15)}.rline .rqty{color:var(--gold-dim);font-weight:700;width:22px;flex-shrink:0}.rline .rname{flex:1 1}.rline .rprice{flex-shrink:0}.rline .rminus{background:none;border:none;color:var(--rose);font-size:16px;font-weight:700;padding:0 4px}.receipt-extra{padding:6px 18px;font-size:12px;color:var(--paper-ink-dim);border-bottom:1px dashed var(--paper-ink-dim)}.bag-row{display:flex;gap:6px;padding:8px 18px;flex-wrap:wrap}.bag-btn{flex:1 1;min-width:80px;background:transparent;border:1.5px solid var(--paper-ink-dim);color:var(--paper-ink-dim);padding:8px 6px;border-radius:8px;font-family:var(--font-sans);font-weight:600;font-size:11.5px}.bag-btn.selected{border-color:var(--paper-ink);color:var(--paper-ink);background:rgba(42,32,24,.06)}.receipt-totals{padding:8px 18px 4px;border-top:1px dashed var(--paper-ink-dim);font-size:12.5px}.rtotal-row{display:flex;justify-content:space-between;padding:3px 0}.rtotal-row.grand{font-size:16px;font-weight:700;padding-top:6px}.pay-row{display:flex;gap:8px;padding:10px 18px 6px}.pay-btn{flex:1 1;background:transparent;border:1.5px solid var(--paper-ink-dim);color:var(--paper-ink-dim);padding:9px 6px;border-radius:8px;font-family:var(--font-sans);font-weight:700;font-size:12.5px}.pay-btn.selected{border-color:var(--paper-ink);color:var(--paper-ink);background:rgba(42,32,24,.06)}.email-row{padding:2px 18px 14px}.email-input{width:100%;border:1px solid var(--paper-ink-dim);background:hsla(0,0%,100%,.4);border-radius:8px;padding:8px 10px;font-family:var(--font-sans);font-size:12.5px;color:var(--paper-ink)}.email-input::placeholder{color:var(--paper-ink-dim)}.receipt-actions{display:flex;gap:8px}.btn-clear{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-dim);padding:13px;border-radius:12px;font-size:13px;font-weight:600}.btn-confirm{flex:1 1;background:var(--gold);border:none;color:var(--paper-ink);padding:13px;border-radius:12px;font-size:14px;font-weight:700}.btn-confirm:disabled{background:var(--surface-2);color:var(--ink-dim)}.customer-wrap{flex:1 1;display:flex;align-items:center;justify-content:center;padding:30px}.stage{width:100%;max-width:420px;height:100%;max-height:640px;display:flex;flex-direction:column}.idle-msg{text-align:center;color:var(--ink-dim);margin:auto}.idle-msg .big{font-size:26px;font-weight:700;color:var(--ink);margin-bottom:8px}.thankyou{text-align:center;padding:40px 20px;margin:auto}.thankyou .check{width:64px;height:64px;border-radius:50%;background:var(--mint);color:var(--paper-ink);display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 16px}.thankyou .big{font-size:22px;font-weight:700}.thankyou .num{color:var(--gold);font-family:var(--font-mono);font-size:15px;margin-top:6px}.pin-wrap{flex:1 1;display:flex;align-items:center;justify-content:center}.pin-card{text-align:center}.pin-title{font-size:18px;font-weight:700;margin-bottom:4px}.pin-sub{color:var(--ink-dim);font-size:12.5px;margin-bottom:18px}.pin-dots{display:flex;gap:10px;justify-content:center;margin-bottom:20px}.pin-dot{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--ink-dim)}.pin-dot.filled{background:var(--gold);border-color:var(--gold)}.pin-pad{display:grid;grid-template-columns:repeat(3,64px);grid-gap:12px;gap:12px;justify-content:center}.pin-key{width:64px;height:64px;border-radius:50%;background:var(--surface);border:1px solid var(--line);color:var(--ink);font-size:20px;font-weight:600}.pin-key:active{background:var(--surface-2)}.pin-error{color:var(--rose);font-size:12.5px;margin-top:14px;min-height:16px}.admin-wrap{flex:1 1;overflow-y:auto;padding:20px}.admin-section{max-width:720px;margin:0 auto 28px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.admin-section h3{margin:0 0 12px;font-size:15px}.admin-row{display:flex;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}.admin-row input{background:var(--surface-2);border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:8px;font-size:13px}.admin-form{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.admin-form input{background:var(--surface-2);border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:9px 10px;font-size:13px}.link-btn{background:none;border:none;color:var(--ink-dim);text-decoration:underline;font-size:12.5px}.danger{color:var(--rose)}.hist-body{padding:4px;max-height:60vh;overflow-y:auto}table.hist-table{width:100%;border-collapse:collapse;font-size:12.5px}table.hist-table th{text-align:left;color:var(--ink-dim);font-weight:600;padding:6px 4px;border-bottom:1px solid var(--line)}table.hist-table td{padding:8px 4px;border-bottom:1px solid var(--line);font-family:var(--font-mono)}.modal-backdrop{position:fixed;inset:0;background:rgba(20,14,9,.72);z-index:50;display:flex;align-items:center;justify-content:center;padding:20px}.modal-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-width:640px;max-height:82vh;display:flex;flex-direction:column;overflow:hidden}.modal-head{padding:16px 18px;border-bottom:1px solid var(--line);justify-content:space-between}.modal-foot,.modal-head{display:flex;align-items:center}.modal-foot{padding:14px 18px;border-top:1px solid var(--line);gap:10px;flex-wrap:wrap}.close-x{background:none;border:none;color:var(--ink-dim);font-size:20px}