:root { color-scheme: light; --ink:#173b50; --text:#243c47; --muted:#667881; --line:#d8e1e5; --paper:#fff; --wash:#f2f6f8; --accent:#246c59; --soft:#e9f3ee; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--text); font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
button,input,textarea { font:inherit; }
button,a,input,textarea { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
button:disabled { cursor:default; opacity:.5; }
a { color:inherit; }
:focus-visible { outline:3px solid #cf8c18; outline-offset:4px; }
.masthead { max-width:1280px; margin:auto; padding:24px 48px; display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:12px; color:var(--ink); text-decoration:none; font-size:22px; font-weight:750; letter-spacing:-.6px; }
.brand-logo { height:44px; width:auto; flex-shrink:0; }
.brand-text { display:block; }
.brand-sub { display:block; font-size:12px; font-weight:500; color:var(--muted); letter-spacing:0; }
.restaurant { font-size:14px; padding:8px 14px; background:var(--wash); border-radius:6px; font-weight:600; }
main { max-width:1184px; margin:auto; padding:24px 0 60px; }
.demo-notice { display:flex; align-items:center; gap:10px; color:#586873; font-size:13px; }
.demo-dot { width:7px; height:7px; border-radius:50%; background:#b27b21; flex-shrink:0; }
.intro { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin:42px 0; }
h1 { color:var(--ink); font-size:clamp(36px,4.4vw,58px); line-height:1.07; letter-spacing:-2px; margin:0 0 20px; font-weight:750; }
.intro p { margin:0; color:var(--muted); max-width:42ch; }
.intro a { font-size:14px; text-underline-offset:5px; white-space:nowrap; }
.intro a span { margin-left:9px; }
h2 { margin:0; font-size:21px; letter-spacing:-.5px; color:var(--ink); }
.order-layout { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr); gap:56px; align-items:start; }
.section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:20px; }
.section-heading>span { color:var(--muted); font-size:13px; }
.category { margin:0; padding:12px 0; font-size:14px; color:var(--muted); font-weight:600; border-bottom:1px solid var(--line); }
.product { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 0; border-bottom:1px solid var(--line); }
.product h3 { margin:0 0 4px; font-size:18px; font-weight:600; letter-spacing:-.3px; }
.product p { margin:0; color:var(--muted); font-size:13px; }
.quantity { display:flex; align-items:center; gap:9px; flex-shrink:0; }
.quantity input { width:84px; text-align:center; padding:10px 5px; min-height:46px; border:1px solid #9fadb5; border-radius:5px; background:var(--paper); }
.quantity span { min-width:18px; color:var(--muted); font-size:14px; }
.order-sheet { background:var(--wash); padding:26px; border-top:4px solid var(--ink); position:sticky; top:20px; }
.sheet-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.sheet-heading>span { font-size:13px; color:var(--muted); }
.summary { list-style:none; padding:0; margin:22px 0; border-bottom:1px solid var(--line); }
.summary li { display:flex; justify-content:space-between; gap:16px; padding:10px 0; }
.summary li:last-child { padding-bottom:22px; }
.summary .empty { font-size:14px; color:var(--muted); min-height:76px; }
.summary strong { white-space:nowrap; font-variant-numeric:tabular-nums; font-weight:600; }
label { display:block; font-size:14px; font-weight:600; margin-top:20px; margin-bottom:8px; }
.optional { font-weight:400; color:var(--muted); margin-left:5px; font-size:12px; }
input[type=date],textarea { width:100%; border:1px solid #b8c6ce; border-radius:5px; padding:10px 12px; min-height:46px; background:var(--paper); color:var(--text); }
textarea { resize:vertical; }
.primary { display:block; width:100%; min-height:50px; padding:12px 20px; margin-top:24px; background:var(--ink); color:white; border:0; border-radius:5px; font-weight:650; }
.primary:hover:not(:disabled) { background:#24576c; }
.quiet { width:100%; min-height:44px; color:#933c31; background:none; border:0; font-size:13px; margin-top:10px; text-decoration:underline; }
.sheet-note { color:var(--muted); font-size:12px; text-align:center; margin-bottom:0; }
.recent { margin-top:64px; padding-top:30px; border-top:1px solid var(--line); }
.text-button { background:none; color:var(--ink); border:0; text-decoration:underline; text-underline-offset:4px; padding:8px; min-height:44px; }
.history-row { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 0; border-bottom:1px solid var(--line); }
.history-row p { margin:0; font-size:14px; color:var(--muted); }
.history-row strong { display:block; font-weight:600; }
.badge { color:var(--accent); background:var(--soft); padding:4px 9px; border-radius:4px; font-size:12px; }
.message { padding:14px 18px; background:#fff4df; border-left:3px solid #b27b21; margin:20px 0; font-size:14px; overflow-wrap:anywhere; }
.late-alert { border-left:6px solid #a52631; background:#fff0ec; color:#692024; font-weight:700; }
.confirmation { background:var(--soft); padding:20px 24px; border-left:4px solid var(--accent); margin:24px 0; }
.confirmation h2 { color:var(--accent); }
.confirmation p { margin-bottom:0; overflow-wrap:anywhere; }
.empty { color:var(--muted); }
footer { max-width:1184px; margin:0 auto; padding:24px 0; border-top:1px solid var(--line); color:var(--muted); display:flex; justify-content:space-between; gap:20px; font-size:13px; }
dialog { border:0; border-radius:10px; padding:30px; width:min(540px,calc(100% - 32px)); max-height:85vh; color:var(--text); }
dialog::backdrop { background:rgba(18,39,52,.48); }
.dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; }
dialog>p { color:var(--muted); font-size:14px; }
.detail-note { overflow-wrap:anywhere; }
[hidden] { display:none!important; }
@media(max-width:1280px) { main,footer { margin-left:48px; margin-right:48px; } }
@media(max-width:850px) { .order-layout { gap:28px; grid-template-columns:minmax(0,1fr) 320px; } .section-heading { align-items:start; flex-direction:column; gap:4px; } }
@media(max-width:680px) {
  .masthead { padding:18px 20px; } main { margin:0; padding:18px 20px 40px; } footer { margin:0 20px; padding:20px 0; }
  .brand { font-size:20px; } .restaurant { font-size:12px; max-width:140px; }
  .intro { margin:30px 0; align-items:start; flex-direction:column; gap:18px; }
  h1 { font-size:42px; letter-spacing:-1.7px; }
  .order-layout { grid-template-columns:1fr; gap:32px; }
  .order-sheet { position:static; padding:22px; }
  .product { padding:20px 0; } .quantity input { width:78px; }
  .section-heading { flex-direction:row; align-items:baseline; }
  .section-heading>span { max-width:120px; text-align:right; }
  .history-row { align-items:start; } .history-row strong { max-width:23ch; }
  footer span { display:none; } dialog { padding:22px; }
}

/* Header controls */
.header-tools { display:flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:flex-end; font-size:14px; }
.header-link { font-weight:600; text-underline-offset:4px; }
.user-name { color:var(--muted); }
.restaurant-select,select { font:inherit; border:1px solid #b8c6ce; border-radius:5px; padding:9px 10px; min-height:44px; background:var(--paper); color:var(--text); }
.language { display:flex; border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.lang-button { background:var(--paper); border:0; padding:8px 11px; min-height:40px; font-size:13px; font-weight:600; color:var(--muted); }
.lang-button[aria-pressed=true] { background:var(--ink); color:white; }

/* Order page */
.search { width:100%; border:1px solid #b8c6ce; border-radius:5px; padding:10px 14px; min-height:48px; margin-bottom:6px; background:var(--paper); }
.product[hidden] { display:none; }
.custom { margin-top:40px; padding-top:24px; border-top:1px solid var(--line); }
.section-lead { color:var(--muted); font-size:14px; margin:6px 0 0; }
.custom-form { display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; }
.field { display:flex; flex-direction:column; }
.field label { margin-top:14px; }
.field.grow { flex:1 1 200px; }
.field input,.inline-add input,.two input,dialog input:not([type=checkbox]) { border:1px solid #b8c6ce; border-radius:5px; padding:10px 12px; min-height:46px; background:var(--paper); width:100%; }
#custom-quantity { width:100px; }
.secondary { min-height:46px; padding:10px 18px; background:var(--paper); color:var(--ink); border:1.5px solid var(--ink); border-radius:5px; font-weight:600; }
.secondary:hover:not(:disabled) { background:var(--wash); }
.hint { background:var(--soft); padding:10px 14px; font-size:14px; margin:12px 0 0; }
.tag { font-style:normal; font-size:11px; color:#8a5a12; background:#fff4df; padding:2px 6px; border-radius:3px; white-space:nowrap; }
.line-right { display:flex; align-items:center; gap:6px; }
.remove { background:none; border:0; color:#933c31; font-size:20px; line-height:1; min-width:36px; min-height:36px; }
.row-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.status-cancelled { color:#933c31; background:#f8e6e3; }
.status-printed,.status-completed { color:var(--muted); background:var(--wash); }
.muted { color:var(--muted); font-size:13px; }

/* Login */
.login-main { display:flex; justify-content:center; }
.login-card { width:min(400px,100%); margin-top:40px; }
.login-card input { width:100%; border:1px solid #b8c6ce; border-radius:5px; padding:10px 12px; min-height:48px; }

/* Admin */
.admin-title { font-size:36px; margin:30px 0 16px; letter-spacing:-1px; }
.tabs { display:flex; gap:4px; border-bottom:1px solid var(--line); overflow-x:auto; }
.tab { background:none; border:0; border-bottom:3px solid transparent; padding:12px 14px; min-height:46px; font-weight:600; color:var(--muted); white-space:nowrap; }
.tab[aria-selected=true] { color:var(--ink); border-bottom-color:var(--ink); }
.panel { padding-top:20px; }
.filters,.toolbar { display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; margin-bottom:18px; }
.toolbar { justify-content:space-between; align-items:center; }
.toolbar .search { max-width:360px; margin:0; }
.table-wrap { overflow-x:auto; }
table.data { width:100%; border-collapse:collapse; font-size:14px; }
table.data th { text-align:left; font-size:12px; color:var(--muted); font-weight:600; padding:8px 10px; border-bottom:2px solid var(--line); white-space:nowrap; }
table.data td { padding:8px 10px; border-bottom:1px solid var(--line); vertical-align:middle; }
table.data td input:not([type=checkbox]) { border:1px solid #b8c6ce; border-radius:4px; padding:6px 8px; min-height:38px; min-width:120px; }
table.data td input.small-number,.small-number { width:80px; min-width:0; }
tr.inactive td { color:var(--muted); background:#fafbfc; }
dialog.wide { width:min(820px,calc(100% - 32px)); }
dialog form label,dialog > div label { margin-top:14px; }
.two { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.help { color:var(--muted); font-size:12px; margin:6px 0 0; }
.check { display:flex; align-items:center; gap:8px; font-weight:500; }
.check input { width:20px; height:20px; }
fieldset { border:1px solid var(--line); border-radius:6px; margin:16px 0 0; padding:8px 14px 12px; }
legend { font-size:14px; font-weight:600; padding:0 6px; }
.checks { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); }
.checks .check { margin-top:8px; }
.inline-add { display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }
.inline-add select,.inline-add input { flex:1 1 180px; width:auto; }
#order-dialog-body > .primary { margin-top:20px; }
#order-dialog-body > .secondary { width:100%; margin-top:10px; }
#order-dialog-body textarea,#order-dialog-body input[type=date],#order-dialog-body > select { width:100%; }

/* Pick list */
.pick-head { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin:30px 0 20px; }
.pick-head h1 { font-size:32px; letter-spacing:-1px; margin:0 0 6px; }
.pick-head .primary { width:auto; margin:0; }
table.pick td { font-size:16px; padding:10px; }
table.pick .box { font-size:22px; width:40px; color:var(--muted); }
table.pick .num { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
table.pick .strong { font-weight:700; }
table.pick tr.divider td { background:var(--wash); font-weight:600; font-size:13px; color:var(--muted); }
#pick-notes { margin-top:24px; }
#pick-notes h2 { font-size:17px; }

@media(max-width:680px) {
  .header-tools { gap:8px; } .user-name { display:none; }
  .two { grid-template-columns:1fr; }
  .admin-title { font-size:28px; }
}
@media print {
  .no-print,.masthead,footer { display:none!important; }
  body.picklist main { margin:0; padding:0; max-width:none; }
  .pick-head { margin:0 0 12px; }
  table.pick td,table.pick th { padding:6px 8px; font-size:13pt; }
  table.pick tr { break-inside:avoid; }
  @page { margin:14mm; }
}

/* Edits, duplicates and the kitchen's merged view */
.status-duplicate { color:#8a5a12; background:#fff4df; font-weight:600; }
.dup-flag { color:#8a5a12; font-weight:600; font-size:13px; white-space:nowrap; }
.strong-line { font-weight:600; color:var(--ink); }
.groups { display:grid; gap:18px; }
.group-card { border:1px solid var(--line); border-radius:8px; padding:18px 20px; }
.group-card.duplicate { border-color:#e0b46a; box-shadow:inset 4px 0 0 #e0b46a; }
.group-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; margin-bottom:10px; }
.group-head h3 { margin:0 0 6px; font-size:18px; color:var(--ink); }
.group-orders { list-style:none; padding:0; margin:14px 0 0; }
.group-orders li { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; padding:8px 0; border-top:1px solid var(--line); font-size:14px; }
.settings-form { max-width:420px; }
.settings-form input { width:100%; border:1px solid #b8c6ce; border-radius:5px; padding:10px 12px; min-height:46px; }
details.history { margin-top:20px; font-size:14px; }
details.history summary { cursor:pointer; font-weight:600; color:var(--ink); }
details.history ul { padding-left:18px; }
details.history li { margin:6px 0; }
#order-editor > .primary { margin-top:20px; }
#order-editor > .secondary,#order-editor > .quiet { width:100%; margin-top:10px; }
#order-editor textarea,#order-editor input[type=date],#order-editor > select { width:100%; }
#order-editor label { margin-top:14px; }
#pick-meta div { margin-top:2px; }
.inline-label { margin:0; font-size:13px; font-weight:500; color:var(--muted); }
#scope { min-height:40px; padding:6px 10px; }

/* Which restaurant you are ordering for */
.restaurant-bar { display:flex; align-items:center; flex-wrap:wrap; gap:10px 16px; position:sticky; top:0; z-index:5; margin:8px 0 18px; padding:12px 16px;
  background:var(--soft); border-left:4px solid var(--accent); border-radius:4px; }
.bar-date { color:var(--ink); font-size:17px; }
.catalog-options { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:12px 0 16px; }
.day-orders { margin:0 0 24px; padding:16px 20px; border:1px solid var(--line); border-left:4px solid var(--accent); border-radius:6px; background:var(--wash); }
.day-orders h2 { margin:0 0 8px; font-size:20px; }
.day-order-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding:10px 0; border-top:1px solid var(--line); }
.check-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:6px 14px; }
.product-visibility { margin:16px 0; border:1px solid var(--line); border-radius:6px; padding:12px; }
.bar-label { font-size:13px; color:var(--muted); }
.bar-name { font-size:22px; color:var(--accent); letter-spacing:-.3px; }
.bar-switch { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-left:auto; }
.secondary.small { min-height:38px; padding:6px 12px; font-size:14px; }
a.secondary { display:inline-flex; align-items:center; text-decoration:none; }

/* A line found in several orders: one table line per order, then the total */
tr.dup-row td { background:#fffaf0; }
tr.dup-first td, tr.dup-extra td { border-bottom:0; }
tr.dup-extra td { font-size:13px; color:#6b4a10; padding-top:2px; padding-bottom:2px; }
tr.dup-extra td:not(.box):first-of-type, tr.dup-extra td:nth-child(1):not(.num) { padding-left:24px; }
.dup-note { font-style:italic; }
tr.dup-total td { border-top:1px dashed #e0b46a; }
table.pick tr.dup-extra td { font-size:14px; }
@media print { tr.dup-row td { background:none; } tr.dup-extra td { color:#000; } }
@media(max-width:680px) { .bar-switch { margin-left:0; } .bar-name { font-size:19px; } }
/* The checkbox belongs to the product: keep it on the first line of a multi-line entry. */
table.pick tr.dup-first td.box { vertical-align:top; }

/* Printer choice and receipt preview */
.printer-choice { display:flex; align-items:center; gap:10px 14px; flex-wrap:wrap; margin:0 0 18px; }
.printer-choice label { margin:0; }
.receipt-panel { margin:24px 0; padding:18px; background:var(--wash); border-radius:8px; }
.receipt-panel h2 { font-size:17px; margin-bottom:12px; }
.receipt-preview { --cols:32; width:calc(var(--cols) * 1ch + 32px); max-width:100%; overflow-x:auto; margin:0 0 16px;
  padding:16px; background:#fff; border:1px solid var(--line); box-shadow:0 2px 6px rgba(0,0,0,.06);
  font:14px/1.45 ui-monospace,"Cascadia Mono",Consolas,monospace; color:#111; white-space:pre; }
.receipt-preview .bold { font-weight:700; }
.receipt-preview .large { font-size:2em; line-height:1.2; }
.print-jobs { margin-top:36px; }
.print-jobs h2 { font-size:18px; margin-bottom:10px; }
.receipt-panel .row-actions { justify-content:flex-start; }
.receipt-panel .row-actions .primary { width:auto; margin:0; }

/* Mascot on the login page */
.login-logo { display:block; width:206px; height:auto; margin:0 auto 8px; }
.login-card h1 { text-align:center; }
@media(max-width:680px) { .brand-logo { height:36px; } .brand { gap:9px; } }
/* The logo on printed pick lists (on screen the header already shows it) */
.pick-logo { display:none; }
@media print { .pick-logo { display:block; height:15mm; width:auto; margin-bottom:3mm; } }
.receipt-preview .receipt-image { display:block; height:auto; image-rendering:pixelated; margin-bottom:6px; }

/* Task-oriented workspace: clear destinations, quiet surfaces and usable touch targets. */
select { font:inherit; max-width:100%; }
[hidden] { display:none !important; }
.signed-in { padding-bottom:24px; }
.masthead { position:relative; padding:18px 32px; gap:24px; }
.work-nav { display:flex; gap:4px; align-self:stretch; align-items:center; }
.work-nav a { padding:12px 14px; text-decoration:none; font-weight:600; border-bottom:3px solid transparent; }
.work-nav a[aria-current=page] { color:var(--accent); border-color:var(--accent); background:var(--soft); }
.skip-link { position:absolute; top:-120px; left:16px; background:white; padding:12px; z-index:30; }
.skip-link:focus { top:6px; }
.account-menu { position:relative; }
.account-menu>summary { cursor:pointer; min-height:44px; padding:10px 4px; max-width:180px; overflow-wrap:anywhere; }
.account-popover { position:absolute; right:0; top:100%; z-index:20; padding:20px; min-width:220px; background:white; border:1px solid var(--line); box-shadow:0 12px 24px #173b501a; }
.account-popover>a,.account-popover>button { display:block; padding:10px 0; }
.account-popover .language { margin:12px 0; }
.workspace { max-width:1080px; padding:40px 24px 72px; }
.page-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:30px; }
h1,.composer h1,.admin-title { font-size:clamp(30px,3vw,42px); line-height:1.16; letter-spacing:-1.2px; }
.page-heading h1 { margin:0 0 12px; }
.page-heading p { max-width:60ch; margin:0; }
.page-heading .primary,.row-actions .primary,.batch-toolbar .primary { width:auto; margin:0; text-decoration:none; text-align:center; }
a.primary { display:inline-flex; justify-content:center; align-items:center; text-decoration:none; }
.primary { background:var(--accent); }
.primary:hover:not(:disabled) { background:#185642; }
.task-list { border-top:1px solid var(--line); }
.restaurant-choice-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:16px; margin-top:28px; }
.restaurant-choice { display:flex; flex-direction:column; gap:12px; padding:24px; border:1px solid var(--line); border-radius:8px; text-decoration:none; background:var(--paper); box-shadow:0 2px 10px #173b5010; }
.restaurant-choice:hover,.restaurant-choice:focus-visible { border-color:var(--accent); background:var(--wash); }
.restaurant-choice strong { font-size:24px; color:var(--ink); }
.attention-item { border:1px solid var(--line); border-left:5px solid var(--accent); padding:14px 18px; margin:12px 0; border-radius:6px; background:var(--paper); }
.attention-warning { border-left-color:#b65d28; }
.attention-item p { margin:8px 0; }
.activity-filters { display:flex; flex-wrap:wrap; align-items:end; gap:10px; }
.activity-filters input,.activity-filters select { flex:1 1 150px; min-width:0; }
.pagination { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:20px 0; }
@media (max-width:640px) { .activity-filters>* { flex-basis:100%; } .pagination { flex-wrap:wrap; } }
.choice-action { margin-top:auto; color:var(--accent); font-weight:700; }
.task-entry { position:relative; display:grid; grid-template-columns:1fr auto; gap:5px 28px; padding:27px 48px 27px 0; border-bottom:1px solid var(--line); text-decoration:none; }
.task-entry:hover { background:var(--wash); }
.task-title { color:var(--ink); font-size:25px; font-weight:650; }
.task-entry .muted { grid-column:1; }
.task-meta { grid-column:2; grid-row:1 / 3; align-self:center; font-size:14px; color:var(--accent); }
.task-arrow { position:absolute; right:12px; top:36%; color:var(--accent); font-size:24px; }
.subsection,.profile-section { margin-top:36px; padding-top:24px; border-top:1px solid var(--line); }
.draft-link { display:block; padding:16px 0; color:var(--accent); }
.filter-bar { display:flex; flex-wrap:wrap; gap:16px; align-items:flex-end; padding:20px; background:var(--wash); margin-bottom:24px; }
.form-field { display:block; margin:0; min-width:130px; flex:1; }
.form-field input:not([type=checkbox]),.form-field select,.form-field textarea { display:block; margin-top:8px; width:100%; min-height:44px; padding:10px; border:1px solid #a6b7be; border-radius:4px; background:white; color:var(--text); }
.filter-bar>a { padding:10px; min-height:44px; }
.work-tabs,.catalog-tabs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; border-bottom:1px solid var(--line); }
.work-tabs a { padding:12px; text-decoration:none; border-bottom:3px solid transparent; }
.work-tabs a[aria-current=page] { border-color:var(--accent); color:var(--accent); font-weight:650; }
.batch-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:16px; padding:16px 0 24px; }
.batch-toolbar>span { margin-right:auto; }
.order-card { display:flex; flex-wrap:wrap; align-items:center; gap:14px; padding:20px 0; border-bottom:1px solid var(--line); }
.order-copy { flex:1; min-width:180px; }
.order-copy p { margin:4px 0; font-size:14px; }
.admin-order-id { overflow-wrap:anywhere; }
.order-title { font-weight:650; font-size:18px; text-decoration:none; }
.order-title:hover { text-decoration:underline; }
.order-note { max-width:55ch; }
.order-select { margin:0; padding:10px; min-height:44px; }
input[type=checkbox] { width:20px; height:20px; accent-color:var(--accent); }
.row-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.row-actions .text-button { display:inline-flex; align-items:center; min-height:44px; padding:8px 10px; }
.group-heading { font-size:16px; margin:28px 0 0; color:var(--muted); }
.success { padding:14px; background:var(--soft); color:#185642; border-left:3px solid var(--accent); }
.certificate-status { max-width:760px; padding:18px 22px; margin:0 0 28px; border:1px solid var(--line); border-left:5px solid var(--ink); background:var(--paper); }
.certificate-status h2 { margin:0 0 10px; }
.certificate-status--good { border-left-color:#287a57; }
.certificate-status--soon,.certificate-status--stale:not(.certificate-status--urgent) { border-left-color:#ae7517; }
.certificate-status--urgent { border:2px solid #a52631; border-left-width:7px; background:#fff5f3; box-shadow:0 0 0 4px #a5263114; }
.certificate-summary { display:flex; align-items:baseline; gap:8px 18px; flex-wrap:wrap; }
.certificate-remaining { color:var(--ink); font-size:clamp(22px,3vw,30px); line-height:1.2; font-weight:750; font-variant-numeric:tabular-nums; letter-spacing:-.5px; }
.certificate-status--good .certificate-remaining { color:#236846; }
.certificate-status--soon .certificate-remaining { color:#85570d; }
.certificate-status--urgent .certificate-remaining { color:#a52631; }
.certificate-status--stale:not(.certificate-status--urgent) .certificate-remaining { color:#85570d; }
.certificate-level { color:var(--muted); font-size:14px; font-weight:650; }
.certificate-status--urgent .certificate-level { color:#a52631; }
.certificate-scale { margin:18px 0 12px; }
.certificate-scale-track { position:relative; height:14px; border-radius:999px; background:linear-gradient(90deg,#b52d36 0%,#c74837 14%,#e5b93f 23%,#e7c54c 48%,#7bad62 58%,#2e805f 75%,#2e805f 100%); }
.certificate-scale-marker { position:absolute; top:50%; left:clamp(10px,var(--certificate-position),calc(100% - 10px)); width:20px; height:20px; border:3px solid var(--ink); border-radius:50%; background:white; transform:translate(-50%,-50%); box-shadow:0 1px 4px #173b5040; }
.certificate-scale-labels { display:flex; justify-content:space-between; gap:12px; margin-top:8px; color:var(--muted); font-size:12px; font-weight:600; }
.certificate-detail { margin:4px 0; font-size:14px; }
.certificate-alert { padding:12px 14px; margin:16px 0 0; background:#fff0dc; color:#713d0a; border-left:4px solid #ae7517; font-weight:600; }
.certificate-status--urgent .certificate-alert { background:#a52631; color:white; border-left:0; font-weight:750; }
.certificate-link { display:inline-block; margin-top:5px; font-size:14px; font-weight:650; text-underline-offset:4px; }
@media(max-width:680px) { .certificate-status { padding:16px; } .certificate-scale-labels { font-size:11px; } }
.order-detail { margin-top:24px; }
.order-detail>label { margin-top:20px; }
.order-detail>.primary { width:auto; }
.stack-form { max-width:600px; display:grid; gap:18px; }
.stack-form h2 { margin-bottom:6px; }
.stack-form .primary { margin-top:0; }
.audit-row { padding:16px 0; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.audit-row p { margin:6px 0; }
.printer-setup { margin:0 0 24px; padding:14px 18px; border:1px solid var(--line); border-left:4px solid var(--accent); background:var(--wash); border-radius:6px; }
.printer-setup summary { cursor:pointer; font-weight:700; min-height:28px; }
.printer-setup ol { margin:14px 0 12px; padding-left:22px; }
.printer-setup li { margin:8px 0; }
.printer-setup-link { display:inline-block; font-weight:700; text-underline-offset:3px; }
.printer-setup .muted { margin:12px 0 0; }
.print-controls { background:var(--wash); padding:20px; margin-bottom:24px; }
.print-controls .check { margin:0; display:flex; gap:8px; align-items:flex-start; }
.print-controls .check input { flex-shrink:0; }
.print-controls .primary { width:auto; }
.print-status { margin:16px 0 8px; }
.receipt-stack { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:28px; align-items:start; }
.receipt-step { min-width:0; border:1px solid var(--line); padding:18px; }
.receipt-step h2 { font-size:18px; overflow-wrap:anywhere; }
.receipt-step summary { cursor:pointer; padding:12px 0; }
.receipt-preview { width:calc(var(--receipt-cols,48)*1ch + 24px); font-size:12px; padding:12px; box-shadow:none; }
.receipt-preview canvas { display:block; max-width:100%; height:auto; margin:0 auto 8px; }
.receipt-large { font-size:2em; line-height:1.25; }
.receipt-bold { font-weight:bold; }
.receipt-wide { font-size:2em; line-height:1; }
.receipt-tall { font-size:1em; line-height:2; transform:scaleY(1.7); transform-origin:center; }
.receipt-align-center { text-align:center; }
.receipt-align-right { text-align:right; }
.receipt-font-b { font-stretch:condensed; letter-spacing:-.08em; }
.receipt-underline { text-decoration:underline; }
.receipt-inverse { background:#111; color:#fff; width:max-content; max-width:100%; }
.receipt-inverse.receipt-align-center { margin-inline:auto; }
.receipt-inverse.receipt-align-right { margin-left:auto; }
.cut-line { border-top:1px dashed var(--line); margin:16px 0 0; padding-top:8px; text-align:center; color:var(--muted); font-size:12px; }
.composer main { padding-left:24px; padding-right:24px; }
.composer .intro { margin:28px 0; align-items:center; }
.delivery-context { max-width:480px; margin-bottom:28px; }
.composer details.custom { padding:14px; margin:12px 0 18px; background:var(--wash); }
.custom>summary { cursor:pointer; font-weight:600; min-height:32px; }
.composer .order-layout { gap:32px; }
.composer .product { padding:16px 0; }
.composer .order-sheet { top:20px; }
.mobile-review { display:none; }
.admin main { padding-left:24px; padding-right:24px; }
.admin .tabs { margin-bottom:16px; }
.admin .tab { min-height:44px; }
.catalog-tabs { padding:10px 0; }
.table-wrap { max-width:100%; overflow-x:auto; }
.danger { color:#983c2b; }
@media(max-width:900px) {
 .masthead { flex-wrap:wrap; gap:12px; }
 .header-tools { margin-left:auto; }
 .work-nav { order:3; width:100%; justify-content:center; }
 .task-entry { grid-template-columns:1fr; }
 .task-meta { grid-column:1; grid-row:auto; margin-top:8px; }
}
@media(max-width:680px) {
 .signed-in { padding-bottom:80px; }
 .masthead { padding:12px 18px; }
 .brand { font-size:19px; }
 .brand-sub { font-size:11px; }
 .header-tools { gap:8px; }
 .work-nav { position:fixed; bottom:0; left:0; right:0; z-index:40; background:white; border-top:1px solid var(--line); padding:4px 8px calc(4px + env(safe-area-inset-bottom)); gap:0; }
 .work-nav a { flex:1; text-align:center; padding:12px 3px; font-size:13px; }
 .account-menu>summary { max-width:140px; font-size:14px; }
 .workspace { padding:28px 18px 48px; }
 .page-heading { flex-wrap:wrap; gap:16px; margin-bottom:24px; }
 .page-heading h1,.composer h1 { font-size:30px; }
 .page-heading .primary { width:100%; }
 .task-title { font-size:23px; }
 .task-entry { padding:22px 36px 22px 0; }
 .filter-bar { padding:14px; gap:14px; }
 .filter-bar .form-field { min-width:calc(50% - 14px); }
 .work-tabs { gap:0; font-size:14px; }
 .work-tabs a { flex:1 1 50%; padding:10px 8px; }
 .batch-toolbar .primary { flex:1; }
 .order-card { gap:10px; }
 .order-card>.row-actions { width:100%; }
 .order-card .badge { max-width:100%; font-size:12px; }
 .order-copy { min-width:170px; }
 .order-select { padding:10px 6px 10px 0; }
 .order-title { font-size:17px; }
 .order-detail .data td { padding:10px 4px; }
 .order-detail .small-number { width:70px; }
 .order-detail .inline-add { flex-wrap:wrap; }
 .order-detail .inline-add>* { max-width:100%; }
 .composer main { padding:18px 18px 120px; }
 .composer .intro { margin-top:6px; }
 .composer .intro>a { display:none; }
 .composer .order-layout { display:flex; flex-direction:column; gap:24px; }
 .composer .order-layout>* { width:100%; }
 .composer .order-sheet { position:static; }
 .mobile-review { display:block; position:fixed; bottom:calc(64px + env(safe-area-inset-bottom)); left:18px; right:18px; width:calc(100% - 36px); margin:0; z-index:35; box-shadow:0 2px 12px #173b5033; }
 .composer .custom-form { flex-wrap:wrap; }
 .composer .custom-form .grow { min-width:100%; }
 .composer .bar-switch { gap:6px; }
 .composer .restaurant { display:none; }
 .receipt-preview { font-size:10px; }
 .admin main { padding:24px 18px 48px; }
 dialog { max-width:calc(100vw - 24px); padding:18px; }
 button,.text-button,.secondary.small { min-height:44px; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; } }
@media print {
 .masthead,.printer-setup,.print-controls,.workspace>.page-heading,.workspace>a,.receipt-step>h2,.receipt-step>p,.receipt-step>.row-actions,.receipt-step summary { display:none !important; }
 .receipt-stack { display:block; }
 .receipt-step { break-after:page; border:0; padding:0; }
 .receipt-preview { font-size:12px; width:auto; border:0; overflow:visible; }
}

.legal-page { max-width: 800px; }
.legal-page h1 { margin-bottom: 24px; }
.legal-page h2 { margin-top: 36px; }
.legal-page p { line-height: 1.65; }
.amendment-table-scroll { overflow-x:auto; margin-block:16px; }
.amendment-table-scroll table { min-width:430px; }
.order-route-options { border:0; padding:0; margin:18px 0; display:grid; gap:10px; }
.order-route-options legend { font-weight:700; margin-bottom:10px; }
.order-route-choice { display:grid; grid-template-columns:24px 1fr; gap:4px 10px;
  align-items:start; padding:12px; border:1px solid var(--line,#d5d9dd); border-radius:10px; cursor:pointer; }
.order-route-choice input { grid-row:span 2; margin-top:4px; }
.order-route-choice small { grid-column:2; display:block; }
.order-route-choice:has(input:checked) { border-color:var(--accent,#173b50); background:rgba(23,59,80,.06); }
.order-route-choice:has(input:disabled) { opacity:.55; cursor:not-allowed; }

.print-run-item,.print-run-removed { display:flex; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid var(--line); }
.print-run-item .draft-link { flex:1; min-width:0; }
.print-run-item button,.print-run-removed button { flex-shrink:0; }
@media (max-width:600px) {
  .print-run-item,.print-run-removed { align-items:stretch; flex-direction:column; gap:0; padding-bottom:12px; }
}

.profile-avatar { display:block; width:112px; height:112px; object-fit:contain; padding:4px; background:var(--wash); border-radius:50%; border:1px solid var(--line); margin:12px 0; }

/* Free-form receipt editor */
.custom-print-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.85fr); gap:32px; align-items:start; }
.custom-print-editor,.custom-print-output { min-width:0; }
.custom-print-editor>h2 { margin-top:28px; }
.custom-print-editor>.row-actions { margin:12px 0 24px; }
.custom-print-blocks { display:grid; gap:14px; margin:18px 0; }
.custom-print-block { border:1px solid var(--line); border-left:4px solid var(--accent); padding:16px 18px 20px; background:var(--paper); }
.custom-print-block.is-active { border-color:var(--accent); background:color-mix(in srgb,var(--paper) 94%,var(--accent)); }
.custom-print-block { scroll-margin-top:24px; }
.custom-print-block-head { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.custom-print-block-head .row-actions { margin-left:auto; }
.custom-print-index { font:600 12px/1 ui-monospace,SFMono-Regular,Consolas,monospace; color:var(--accent); letter-spacing:.08em; }
.custom-print-block h3 { margin:0; font-size:17px; }
.custom-print-block .form-field { margin-top:12px; }
.custom-print-block textarea { min-height:96px; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
.custom-print-block input[type=number],.custom-print-editor input[type=text],.custom-print-editor select {
  width:100%; min-height:46px; padding:9px 12px; border:1px solid #b8c6ce; border-radius:5px; background:var(--paper); color:var(--text);
}
.custom-print-block .check { display:flex; align-items:center; gap:8px; }
.custom-print-block .check input { flex-shrink:0; }
.custom-print-settings { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.custom-print-effects { display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:16px; }
.custom-print-measure { margin:4px 0; color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; }
.custom-print-measure.over-limit { color:#a1261e; font-weight:700; }
.custom-print-palette { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 24px; padding:12px; border:1px dashed var(--line); }
.custom-print-palette button { min-height:40px; }
.custom-print-values { margin:24px 0; padding:18px; background:var(--wash); }
.custom-print-values:empty { display:none; }
.custom-print-assets { margin:24px 0; padding:14px 18px; border:1px solid var(--line); }
.custom-print-assets summary { cursor:pointer; font-weight:650; }
.custom-print-assets input[type=range] { width:100%; margin:14px 0; accent-color:var(--accent); }
.custom-print-image-preview { margin:12px 0; font-size:13px; }
.custom-print-image-preview .receipt-preview { margin-top:8px; }
.custom-print-asset-row { display:flex; align-items:center; justify-content:space-between; gap:8px; border-top:1px solid var(--line); padding:8px 0; }
.custom-print-output { position:sticky; top:18px; padding:22px; background:var(--wash); border-top:4px solid var(--ink); scroll-margin-top:20px; }
.custom-print-output-head { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.custom-print-output-head .text-button { font-size:13px; white-space:nowrap; }
.custom-print-output>.receipt-preview { background:var(--paper); margin:16px auto; overflow-x:auto; }
.custom-print-canvas { white-space:normal; }
.custom-print-canvas-block { position:relative; margin:7px 0; padding:5px 7px; border:1px dashed #a7afb3; border-radius:4px; cursor:pointer; }
.custom-print-canvas-block.is-active { border:2px solid var(--accent); padding:4px 6px; background:#f7fbfc; }
.custom-print-canvas-block:focus-visible,.custom-print-grip:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
.custom-print-canvas-block.drop-before::before,.custom-print-canvas-block.drop-after::after { content:""; position:absolute; left:0; right:0; height:4px; background:var(--accent); z-index:2; }
.custom-print-canvas-block.drop-before::before { top:-7px; }
.custom-print-canvas-block.drop-after::after { bottom:-7px; }
.custom-print-grip { display:block; margin:0 0 3px auto; padding:0; width:48px; min-height:40px; border:1px solid #a7afb3; border-radius:4px; background:#eef3f4; color:#294351; font:700 18px/1 sans-serif; cursor:grab; touch-action:none; }
.custom-print-grip:active { cursor:grabbing; }
.custom-print-canvas-content { white-space:pre; min-height:1.45em; }
.custom-print-canvas-content canvas { image-rendering:pixelated; }
.custom-print-image-placeholder { color:#616f75; font-style:italic; }
.custom-print-canvas-tools { display:none; flex-wrap:wrap; gap:2px 6px; margin-top:8px; padding-top:5px; border-top:1px solid #cfdadd; white-space:normal; }
.custom-print-canvas-tools.is-visible { display:flex; }
.custom-print-canvas-tools button { min-height:40px; padding:4px 7px; font:600 12px/1.2 system-ui,sans-serif; }
.custom-print-align-choice[aria-pressed=true] { color:#fff; background:var(--accent); border-radius:3px; }

.custom-print-editor.canvas-mode .custom-print-block:not(.is-active) { display:none; }
.custom-print-free-palette { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.custom-print-free-palette button { min-height:42px; }
.custom-print-free-paper { position:relative; max-width:576px; margin:14px auto; border:1px solid #b9c4ca; background:#fff; box-shadow:0 2px 12px rgba(0,0,0,.08); overflow:hidden; }
.custom-print-free-paper canvas { display:block; width:100%; height:auto; image-rendering:pixelated; }
.custom-print-free-element { position:absolute; box-sizing:border-box; min-width:0; min-height:0; margin:0; padding:0; border:1px dashed #4a7080; border-radius:2px; background:rgba(13,101,135,.08); touch-action:none; }
.custom-print-free-element.is-active { border:2px solid #006b8b; background:rgba(0,107,139,.12); box-shadow:0 0 0 2px #fff; }
.custom-print-free-element.is-overflow { border-color:#b3261e; }
.custom-print-free-move { position:absolute; inset:0; display:block; width:100%; height:100%; min-height:0; margin:0; padding:0; border:0; background:transparent; cursor:move; touch-action:none; }
.custom-print-free-move:focus-visible,.custom-print-free-resize:focus-visible { outline:3px solid #006b8b; outline-offset:2px; }
.custom-print-free-dimensions { display:none; position:absolute; top:-25px; right:0; padding:2px 5px; border-radius:3px; background:#173b4a; color:#fff; font:600 12px/1.2 system-ui,sans-serif; white-space:nowrap; pointer-events:none; }
.custom-print-free-resize { display:none; position:absolute; right:-8px; bottom:-8px; z-index:3; width:32px; height:32px; min-height:32px; padding:0; border:2px solid #006b8b; border-radius:6px; background:#fff; color:#00516d; font:700 22px/1 system-ui,sans-serif; cursor:nwse-resize; touch-action:none; box-shadow:0 1px 4px rgba(0,0,0,.2); }
.custom-print-free-element.is-active .custom-print-free-resize,.custom-print-free-element.is-active .custom-print-free-dimensions { display:block; }
.custom-print-layer-panel { margin:12px auto; max-width:576px; border:1px solid var(--line); border-radius:5px; background:var(--paper); }
.custom-print-layer-panel summary { padding:10px 12px; cursor:pointer; font-weight:650; }
.custom-print-layer-list { display:grid; gap:5px; max-height:260px; overflow:auto; padding:0 10px 10px; }
.custom-print-layer-choice { width:100%; min-height:38px; padding:7px 10px; border:1px solid var(--line); border-radius:4px; background:var(--paper); color:var(--text); text-align:left; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.custom-print-layer-choice[aria-pressed=true] { border-color:var(--accent); background:#e8f4f4; font-weight:700; }
.custom-print-paper-title { font-weight:650; margin:14px 0 0; }
.custom-print-name-help,.custom-print-draft-label { color:var(--muted); font-size:13px; margin:5px 0 12px; }
.custom-print-output .primary { width:auto; }
@media(max-width:780px) {
  .custom-print-layout { grid-template-columns:1fr; }
  .custom-print-layout.canvas-mode { display:flex; flex-direction:column-reverse; }
  .custom-print-layout.canvas-mode .custom-print-output,
  .custom-print-layout.canvas-mode .custom-print-editor { width:100%; }
  .custom-print-output { position:static; }
  .custom-print-settings { grid-template-columns:1fr; }
  .custom-print-block-head .row-actions { width:100%; justify-content:flex-start; }
}

/* Review proposals stay visually separate from live orders. */
.message-proposal { border-top:1px solid var(--line); margin-top:24px; padding-top:16px; }
.message-proposal h3,.message-proposal h4 { margin-bottom:6px; }
.message-proposal-source { white-space:pre-wrap; overflow-wrap:anywhere; margin:8px 0 18px; padding:12px 16px; border-left:3px solid var(--accent); background:var(--wash); }
.message-proposal-flags { padding-left:22px; color:var(--muted); }
.message-proposal-flags li { margin:4px 0; }

.message-approval { margin-top:18px; padding:18px; background:var(--wash); border-radius:8px; display:grid; gap:12px; }
.message-approval label { display:grid; gap:4px; }
.message-approval label:has(input[type=checkbox]) { display:flex; align-items:flex-start; gap:10px; }
.message-approval-line { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) auto; gap:10px; align-items:end; padding:12px 0; border-top:1px solid var(--line); }
.message-approval-line p { grid-column:1/-1; margin:0; }
.message-approval-line input,.message-approval-line select { width:100%; min-width:0; }
@media(max-width:700px) { .message-approval-line { grid-template-columns:repeat(2,minmax(0,1fr)); } .message-approval-line button { justify-self:start; } }

.message-dismissal { margin-top:14px; padding:14px 18px; border:1px solid var(--line); border-radius:8px; display:grid; gap:10px; }
.message-dismissal label { display:grid; gap:4px; }
.message-dismissal label:has(input[type=checkbox]) { display:flex; align-items:flex-start; gap:10px; }
.message-dismissal button { justify-self:start; }

.custom-print-order-context { margin:18px 0 22px; padding:16px 18px; border:1px solid var(--line); background:var(--wash); }
.custom-print-order-context h2 { margin:0 0 6px; font-size:18px; }
.custom-print-order-context .form-field { display:block; margin-top:12px; }
.custom-print-system-insert { display:flex; flex-wrap:wrap; align-items:end; gap:10px; margin:8px 0 14px; }
.custom-print-system-insert .form-field { flex:1 1 210px; }
.custom-print-system-insert button { min-height:40px; }
.custom-print-save-element,.custom-print-elements { margin:14px 0; padding:12px 14px; border:1px solid var(--line); background:var(--paper); }
.custom-print-save-element summary,.custom-print-elements summary { cursor:pointer; font-weight:650; }
.custom-print-save-element .form-field { display:block; margin:10px 0; }
.custom-print-element-row { display:flex; align-items:center; justify-content:space-between; gap:10px; border-top:1px solid var(--line); padding:7px 0; }
.custom-print-element-row:first-of-type { margin-top:10px; }
.custom-print-free-palette .form-field { min-width:190px; flex:1 1 190px; }
.custom-print-free-palette .form-field select { width:100%; min-height:42px; }
.whatsapp-link { max-width: 42rem; }
.whatsapp-link form { display: grid; gap: .8rem; max-width: 25rem; }
.whatsapp-link form label { display: grid; gap: .4rem; }
.whatsapp-pair-code { display: block; width: max-content; max-width: 100%; margin: 1rem 0; padding: .65rem 1rem; border: 2px solid currentColor; border-radius: .5rem; font-size: clamp(1.5rem, 7vw, 2.5rem); letter-spacing: .2em; overflow-wrap: anywhere; }
