:root { color-scheme: light; --coffee:#5f402f; --cream:#f7f3ee; --ink:#251d19; --muted:#746a64; --line:#ded6cf; --danger:#a02f2f; }
* { box-sizing:border-box; }
body { margin:0; background:var(--cream); color:var(--ink); font:15px/1.5 system-ui,-apple-system,sans-serif; }
a { color:var(--coffee); }
.topbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.5rem; background:#fff; border-bottom:1px solid var(--line); }
.topbar a { text-decoration:none; font-weight:600; }
.container { width:min(1100px,calc(100% - 2rem)); margin:2rem auto; }
.narrow { width:min(460px,calc(100% - 2rem)); margin:8vh auto; }
.card { background:#fff; border:1px solid var(--line); border-radius:12px; padding:1.25rem; box-shadow:0 8px 24px rgba(45,31,22,.05); margin-bottom:1rem; }
.grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.full { grid-column:1/-1; }
label { display:block; font-weight:650; margin-bottom:.35rem; }
input,select { width:100%; padding:.7rem .75rem; border:1px solid #bfb6ae; border-radius:7px; background:#fff; }
textarea { width:100%; min-height:11rem; padding:.75rem; border:1px solid #bfb6ae; border-radius:7px; resize:vertical; font:inherit; }
.rich-text-toolbar { display:flex; flex-wrap:wrap; gap:.35rem; padding:.45rem; border:1px solid #bfb6ae; border-bottom:0; border-radius:8px 8px 0 0; background:#f7f3ee; }
.rich-text-toolbar button { padding:.4rem .58rem; color:var(--coffee); background:#fff; border:1px solid var(--line); font-size:.78rem; }
.rich-text-editor { min-height:12rem; padding:.8rem; border:1px solid #bfb6ae; border-radius:0 0 8px 8px; background:#fff; outline:none; overflow:auto; }
.rich-text-editor:focus { border-color:var(--coffee); box-shadow:0 0 0 2px rgba(95,64,47,.14); }
.rich-text-editor h2,.rich-text-editor h3 { margin:.5rem 0; }
.rich-text-editor p { margin:.45rem 0; }
button,.button { display:inline-block; padding:.7rem 1rem; border:0; border-radius:7px; color:#fff; background:var(--coffee); font-weight:700; cursor:pointer; text-decoration:none; }
.button.secondary { color:var(--coffee); background:#eee8e2; }
.actions { display:flex; flex-wrap:wrap; gap:.65rem; align-items:center; }
.notice { border-radius:8px; padding:.75rem 1rem; margin-bottom:1rem; background:#e7f6ea; color:#1d6330; }
.error { background:#fae7e7; color:#842525; }
.muted { color:var(--muted); }
.vendor-introduction>:first-child { margin-top:0; }
.vendor-introduction>:last-child { margin-bottom:0; }
.vendor-introduction h2 { font-size:1.15rem; }
.vendor-introduction h3 { font-size:1rem; }
.vendor-introduction blockquote { margin:.7rem 0; padding-left:1rem; border-left:3px solid var(--coffee); }
.staff-page { min-height:100vh; display:flex; flex-direction:column; }
.staff-page .container { flex:1; display:flex; flex-direction:column; }
.staff-page .vendor-footer { margin-top:auto; margin-bottom:0; }
.device-details { display:grid; grid-template-columns:max-content 1fr; gap:.6rem 1rem; }
.device-details dt { font-weight:700; }
.device-details dd { margin:0; overflow-wrap:anywhere; }
.enrollment-key { display:block; padding:1rem; border:1px dashed var(--coffee); border-radius:8px; background:#fff9e8; font-size:1rem; overflow-wrap:anywhere; user-select:all; }
.danger-button { background:var(--danger); }
table { width:100%; border-collapse:collapse; background:#fff; }
.table-wrap { overflow-x:auto; }
th,td { padding:.75rem; text-align:left; border-bottom:1px solid var(--line); }
.badge { display:inline-block; border-radius:999px; padding:.2rem .55rem; background:#e7f6ea; color:#1d6330; font-size:.8rem; font-weight:700; }
.badge.suspended { background:#fae7e7; color:#842525; }
.queue-tabs { display:flex; gap:.5rem; overflow-x:auto; padding:.3rem 0 1rem; margin-bottom:.5rem; }
.queue-tab { display:flex; align-items:center; gap:.45rem; flex:0 0 auto; padding:.65rem .85rem; border:1px solid var(--line); border-radius:999px; background:#fff; text-decoration:none; font-weight:700; }
.queue-tab span { min-width:1.5rem; padding:.05rem .4rem; border-radius:999px; text-align:center; background:#eee8e2; font-size:.8rem; }
.queue-tab.active { color:#fff; background:var(--coffee); border-color:var(--coffee); }
.queue-tab.active span { color:var(--coffee); background:#fff; }
.payment-badge { display:inline-block; border-radius:999px; padding:.22rem .6rem; font-size:.78rem; font-weight:900; letter-spacing:.035em; }
.payment-badge.paid { color:#146c2e; background:#dff5e5; border:1px solid #83d49a; }
.payment-badge.unpaid { color:#9b2020; background:#fde5e5; border:1px solid #ef9a9a; }
.payment-badge.counter { color:#875800; background:#fff0c7; border:1px solid #e8bd58; }
.vendor-toolbar { justify-content:space-between; margin-bottom:1rem; }
.vendor-toolbar h1 { margin:0; }
.vendor-toolbar p { margin:.2rem 0 0; }
.vendor-list { padding:0; overflow:hidden; }
.vendor-table th { padding:.75rem 1rem; background:#faf8f5; color:var(--muted); font-size:.75rem; text-transform:uppercase; letter-spacing:.04em; }
.vendor-table td { padding:1rem; vertical-align:middle; }
.vendor-name { font-size:1rem; }
.integration-state { display:inline-flex; align-items:center; gap:.4rem; color:var(--muted); font-size:.82rem; white-space:nowrap; }
.integration-state:before { content:""; width:.5rem; height:.5rem; flex:0 0 auto; border-radius:50%; background:#c8c0b9; }
.integration-state.configured { color:#1d6330; }
.integration-state.configured:before { background:#43a962; }
.integration-stack { display:flex; flex-wrap:wrap; gap:.3rem .65rem; }
.vendor-actions { display:flex; justify-content:flex-end; gap:.4rem; white-space:nowrap; }
.vendor-actions .button { padding:.45rem .65rem; font-size:.78rem; }
.staff-queue { font-size:14px; line-height:1.35; }
.staff-queue .topbar { padding:.55rem .8rem; }
.staff-queue .container { width:min(1180px,calc(100% - 1rem)); margin:.65rem auto; }
.fulfilment-head { justify-content:space-between; margin-bottom:.35rem; }
.fulfilment-head h1 { margin:0; font-size:1.2rem; }
.fulfilment-head p { margin:.05rem 0 0; font-size:.75rem; }
.fulfilment-head .button { padding:.45rem .65rem; font-size:.8rem; }
.staff-queue .queue-tabs { gap:.3rem; padding:.15rem 0 .5rem; margin:0; scrollbar-width:thin; }
.staff-queue .queue-tab { gap:.3rem; padding:.38rem .55rem; border-radius:8px; font-size:.8rem; }
.staff-queue .queue-tab span { min-width:1.2rem; padding:0 .3rem; font-size:.72rem; }
.staff-queue .order-card { padding:.65rem .75rem; margin-bottom:.45rem; border-radius:8px; box-shadow:0 2px 8px rgba(45,31,22,.04); }
.order-heading { justify-content:space-between; flex-wrap:nowrap; gap:.5rem; }
.order-heading h2 { margin:.2rem 0 0; font-size:1rem; line-height:1.15; }
.order-total { white-space:nowrap; font-size:1rem; }
.staff-queue .badge,.staff-queue .payment-badge { padding:.12rem .4rem; font-size:.67rem; }
.order-items { margin:.4rem 0; font-size:.82rem; line-height:1.25; }
.order-actions { gap:.35rem; }
.order-actions button { padding:.42rem .65rem; border-radius:6px; font-size:.78rem; }
.section-kicker { margin:0 0 .25rem; color:var(--coffee); font-size:.72rem; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.product-admin .vendor-toolbar h1 { margin:0; font-size:2.2rem; }
.product-group { margin:2rem 0; }
.product-group-head { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:.7rem; border-bottom:1px solid var(--line); }
.product-group-head h2 { margin:0 0 .55rem; }
.product-group-head span { margin-bottom:.65rem; color:var(--muted); font-size:.8rem; }
.product-admin-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.product-admin-card { display:grid; grid-template-columns:1fr auto; gap:.9rem; align-items:start; margin:0; }
.product-admin-card h3,.product-admin-card p { margin:0; }
.product-admin-card .button { grid-column:2; grid-row:1; padding:.5rem .75rem; font-size:.8rem; }
.variant-chips { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:.4rem; }
.variant-chips span { padding:.34rem .55rem; border:1px solid var(--line); border-radius:999px; background:#faf8f5; color:var(--muted); font-size:.76rem; }
.variant-chips strong { color:var(--ink); }
.product-form-shell { max-width:780px; }
.product-form-shell>.actions { margin-bottom:1rem; }
.product-form-shell>.actions h1 { margin:0; }
.product-form { padding:1.5rem; }
.option-editor { margin:1.5rem 0; padding-top:1.25rem; border-top:1px solid var(--line); }
.option-editor-head { display:flex; justify-content:space-between; align-items:start; gap:1rem; margin-bottom:1rem; }
.option-editor-head h2,.option-editor-head p { margin:0; }
.variant-row { display:grid; grid-template-columns:minmax(0,1fr) 140px auto; gap:.55rem; align-items:center; margin-bottom:.55rem; }
.variant-row .button { padding:.68rem .8rem; }
@media (max-width:700px) { .grid { grid-template-columns:1fr; } .full { grid-column:auto; } .topbar { align-items:flex-start; } }
@media (max-width:760px) { .vendor-toolbar { align-items:center; flex-wrap:nowrap; } .vendor-list { border:0; background:transparent; box-shadow:none; } .vendor-table thead { display:none; } .vendor-table,.vendor-table tbody,.vendor-table tr,.vendor-table td { display:block; width:100%; } .vendor-table tr { margin-bottom:.65rem; padding:.8rem; border:1px solid var(--line); border-radius:10px; background:#fff; } .vendor-table td { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.35rem 0; border:0; } .vendor-table td:before { content:attr(data-label); color:var(--muted); font-size:.7rem; font-weight:750; text-transform:uppercase; letter-spacing:.04em; } .vendor-table td:first-child { padding-top:0; } .vendor-table td:first-child:before { display:none; } .vendor-actions { flex-wrap:wrap; justify-content:flex-end; } }
@media (max-width:700px) { .staff-queue .topbar { align-items:center; } .staff-queue .container { width:calc(100% - .6rem); margin:.35rem auto; } .fulfilment-head { flex-wrap:nowrap; } .fulfilment-head p { display:none; } .staff-queue .queue-tabs { position:sticky; top:0; z-index:5; background:var(--cream); } .staff-queue .order-card { padding:.55rem .6rem; } .order-items { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; } .order-actions { display:grid; grid-template-columns:minmax(0,1fr) auto; } .order-actions button { width:100%; padding:.48rem .55rem; } }
@media (max-width:700px) { .product-admin-grid { grid-template-columns:1fr; } .product-admin-card { grid-template-columns:1fr; } .product-admin-card .button { grid-column:auto; grid-row:auto; width:max-content; } .variant-row { grid-template-columns:1fr 100px; } .variant-row .button { grid-column:1/-1; width:max-content; } }

.receipt-trigger { cursor:pointer; transition:border-color .15s,box-shadow .15s,transform .15s; }
.receipt-trigger:hover,.receipt-trigger:focus-visible { border-color:var(--coffee); box-shadow:0 10px 28px rgba(45,31,22,.12); outline:0; transform:translateY(-1px); }
.receipt-hint { display:block; margin:.25rem 0 .55rem; color:var(--coffee); font-size:.72rem; font-weight:800; }
.receipt-dialog { width:min(440px,calc(100% - 24px)); max-height:calc(100vh - 24px); padding:0; border:0; border-radius:4px; background:transparent; box-shadow:0 26px 80px #0007; }
.receipt-dialog::backdrop { background:#10231dc4; backdrop-filter:blur(5px); }
.receipt-paper { position:relative; padding:30px 27px 25px; overflow:hidden; background:#fffefa; color:#201d1a; font-family:"Courier New",monospace; box-shadow:inset 0 0 35px #7a64450a; }
.receipt-paper:after { content:""; position:absolute; right:0; bottom:-5px; left:0; height:10px; background:linear-gradient(135deg,transparent 5px,#fffefa 0) 0 0/10px 10px repeat-x; }
.receipt-close { position:absolute; top:10px; right:10px; width:34px; height:34px; display:grid; place-items:center; padding:0; border-radius:50%; background:#eee8e2; color:#3b312b; font:700 1.3rem/1 system-ui; }
.receipt-paper header { display:flex; flex-direction:column; align-items:center; padding:5px 35px 12px; text-align:center; }
.receipt-paper header strong { font-size:1.18rem; text-transform:uppercase; letter-spacing:.08em; }
.receipt-paper header span { margin-top:4px; font-weight:800; }
.receipt-paper header small { margin-top:3px; opacity:.62; }
.receipt-rule { height:1px; margin:10px 0; border-top:1px dashed #6d655f; }
.receipt-customer { margin:12px 0; font-weight:800; }
.receipt-lines { margin:0; padding:0; list-style:none; }
.receipt-lines li { display:flex; justify-content:space-between; gap:14px; padding:9px 0; border-bottom:1px dotted #bdb5ae; }
.receipt-lines li div { display:flex; min-width:0; flex-direction:column; }
.receipt-lines li span { margin-top:2px; opacity:.66; font-size:.8rem; }
.receipt-lines li>strong { white-space:nowrap; }
.receipt-total { display:flex; justify-content:space-between; align-items:center; font-size:1.15rem; text-transform:uppercase; }
.receipt-paper footer { display:flex; justify-content:space-between; align-items:center; margin-top:20px; }
.receipt-paper footer small { font-style:italic; opacity:.65; }
@media(max-width:480px){.receipt-paper{padding:25px 20px 22px}.receipt-dialog{max-height:calc(100vh - 12px)}}
.table-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:18px}.table-admin-card{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.table-admin-card h2{margin:.45rem 0 0}.table-qr{width:150px;height:150px;align-self:center;border-radius:10px}.table-admin-card form{margin:0}.table-url{max-width:100%;overflow-wrap:anywhere}.receipt-note{color:#7b321f!important;font-weight:800;font-style:italic}
.cashup-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:18px;align-items:start}.cashup-layout aside{display:grid;gap:14px}.cashup-layout aside .card{margin:0}.cashup-balance{font-size:1.25rem;color:var(--green,#155c43)}.tab-round{padding:14px 0;border-bottom:1px solid #dfe4df}.tab-round:last-child{border:0}.tab-round ul{list-style:none;margin:8px 0 0;padding:0}.tab-round li{display:flex;justify-content:space-between;gap:15px;padding:7px 0}.tab-round li em{display:block;color:#8a3b27;font-weight:700}.cashup-summary dl{margin:0}.cashup-summary dl div,.payment-history div{display:flex;justify-content:space-between;gap:12px;padding:8px 0}.cashup-summary dt,.cashup-summary dd{margin:0}.cashup-total{border-top:1px solid #dfe4df;font-size:1.08rem;font-weight:900}.payment-history div{border-bottom:1px solid #dfe4df}@media(max-width:800px){.cashup-layout{grid-template-columns:1fr}.cashup-balance{font-size:1rem}}
.checkbox-row{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#faf9f6}.checkbox-row input{width:18px;height:18px;margin:2px 0 0;flex:0 0 auto}.checkbox-row span{display:grid;gap:2px}.checkbox-row small{color:var(--muted);font-weight:400}
.report-filter{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin:14px 0}.report-filter label{display:grid;gap:5px;font-size:.78rem;font-weight:800}.report-filter input{min-width:145px}.report-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}.report-metric{padding:16px}.report-metric span{display:block;color:var(--muted);font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.report-metric strong{display:block;margin-top:5px;font-size:1.35rem}.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.report-table-wrap{overflow:auto}.report-table{width:100%;border-collapse:collapse;font-size:.84rem}.report-table th,.report-table td{padding:9px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.report-table th{color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.report-table td:last-child,.report-table th:last-child{text-align:right}.report-section h2{margin-top:0}.report-section.full{grid-column:1/-1}@media(max-width:760px){.report-metrics{grid-template-columns:repeat(2,1fr)}.report-grid{grid-template-columns:1fr}.report-section.full{grid-column:auto}.report-filter{align-items:stretch}.report-filter label,.report-filter button{width:100%}}
.vendor-portal-nav{display:flex;align-items:center;justify-content:center;gap:4px;margin-left:auto}.topbar .vendor-portal-nav a{padding:7px 10px;border-radius:7px;color:var(--muted);font-size:.8rem}.topbar .vendor-portal-nav a:hover,.topbar .vendor-portal-nav a.active{background:var(--coffee);color:#fff}@media(max-width:700px){.topbar{flex-wrap:wrap}.vendor-portal-nav{order:3;width:100%;justify-content:flex-start;overflow-x:auto;padding-top:5px;border-top:1px solid var(--line)}.topbar .vendor-portal-nav a{white-space:nowrap}}
.table-status-summary{display:flex;gap:8px;margin:12px 0}.table-status-summary>div{display:flex;align-items:center;gap:12px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}.table-status-summary strong{font-size:1.1rem}.table-state{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.table-state.available{background:#dff3e5;color:#176239}.table-state.busy{background:#ffe0d6;color:#9a321b}.table-state.disabled{background:#e9e7e5;color:#645e5a}.table-card-busy{border:2px solid #df765b;box-shadow:0 8px 22px rgba(154,50,27,.12);cursor:pointer}.table-card-busy:hover{transform:translateY(-1px)}.table-admin-card h2 a{color:inherit;text-decoration:none}.ongoing-bill{display:grid;gap:1px;margin-top:10px;padding:10px 12px;border-radius:9px;background:#fff0eb;color:#722915}.ongoing-bill span{font-size:.7rem;font-weight:850;text-transform:uppercase}.ongoing-bill strong{font-size:1.25rem}.ongoing-bill small{color:#8b5142}@media(max-width:520px){.table-status-summary{display:grid;grid-template-columns:repeat(2,1fr)}.table-status-summary>div{justify-content:space-between}}
.staff-login-url{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem}
