/* Mama's Orders - Sweet Mama's website look: cream paper, navy ink,
   diner red, butter yellow, blue gingham. Fonts are self-hosted so the
   app still looks right offline. */
@font-face{font-family:"Alfa Slab One";src:url(/static/fonts/AlfaSlabOne-Regular.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Libre Franklin";src:url(/static/fonts/LibreFranklin-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Libre Franklin";src:url(/static/fonts/LibreFranklin-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Libre Franklin";src:url(/static/fonts/LibreFranklin-700.woff2) format("woff2");font-weight:600 700;font-display:swap}
@font-face{font-family:"Libre Franklin";src:url(/static/fonts/LibreFranklin-800.woff2) format("woff2");font-weight:800 900;font-display:swap}
:root{
  --navy:#1E3160; --navy-2:#2A4178; --royal:#2F5C9E; --sky:#D3E0F2; --sky-2:#EAF0F8;
  --paper:#FBF7EE; --card:#fff; --ink:#1E3160; --ink-2:#4A5878; --rule:#E4DCCB;
  --red:#C8232C; --red-2:#A81C24; --butter:#F6D36B;
  --gold:#F6D36B; --gold-bg:#FDF3D2; --good:#2E7D50; --good-bg:#E5F3EA; --bad:#C8232C; --bad-bg:#FBE7E5;
  --warn:#8A5D00; --warn-bg:#FDF0C8; --r:14px;
  --check:rgba(62,111,176,.55);
  --display:"Alfa Slab One","Rockwell",Georgia,serif;
  --body:"Libre Franklin","Helvetica Neue",Arial,system-ui,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.45 var(--body);overflow-x:clip}
a{color:var(--royal)}
button,input,select,textarea{font:inherit;color:inherit}
.bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;min-height:calc(60px + env(safe-area-inset-top,0px));
  padding:calc(6px + env(safe-area-inset-top,0px)) 16px 6px;
  background:var(--paper);color:var(--ink);border-bottom:1px solid var(--rule)}
.bar::after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:8px;pointer-events:none;
  background-color:#fff;background-image:linear-gradient(90deg,var(--check) 50%,transparent 50%),linear-gradient(var(--check) 50%,transparent 50%);background-size:16px 16px}
.mark{display:flex;align-items:center;gap:10px;font-family:var(--display);font-size:21px;text-decoration:none;color:var(--ink);white-space:nowrap;letter-spacing:.01em}
.mark img{width:46px;height:46px;flex:none}
.mark-t{font-weight:400}
.mark span{color:var(--red)}
.bar-link{margin-left:auto;color:var(--ink);font-weight:700;text-decoration:none;border:2px solid var(--ink);border-radius:99px;padding:6px 14px;font-size:14px}
.bar-link:hover{background:var(--ink);color:var(--paper)}
.gingham{background-color:#fff;background-image:linear-gradient(90deg,var(--check) 50%,transparent 50%),linear-gradient(var(--check) 50%,transparent 50%);background-size:16px 16px}
.pill{margin-left:auto;border:0;border-radius:99px;padding:5px 12px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
.pill-ok{background:var(--sky-2);color:var(--ink)}
.pill-busy{background:var(--sky);color:var(--navy)}
.pill-warn{background:var(--butter);color:#3A2A00}
.pill-bad{background:var(--bad);color:#fff}
.banner{padding:10px 16px;font-size:14px;font-weight:600}
.banner-warn{background:var(--warn-bg);color:#5C4300}
.banner-bad{background:var(--bad-bg);color:#7A1F1F}
.wrap{max-width:980px;margin:0 auto;padding:22px 16px calc(110px + env(safe-area-inset-bottom,0px))}
.loading,.empty{color:var(--ink-2);text-align:center;padding:30px 0}
.h1{font-family:var(--display);font-weight:400;font-size:26px;line-height:1.12;margin:4px 0 10px;color:var(--navy);letter-spacing:.01em}
.h2{font-size:18px;font-weight:700;margin:6px 0 10px}
.sub{color:var(--ink-2);margin:-4px 0 14px}
.muted{color:var(--ink-2);font-weight:400}
.tiny{font-size:12.5px;color:var(--ink-2)}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
.flash,.note{background:var(--sky-2);border:1px solid var(--sky);padding:10px 12px;border-radius:var(--r)}
.card{background:var(--card);border:1px solid var(--rule);border-radius:var(--r);padding:16px;margin:0 0 14px}
.login-logo{display:block;width:132px;height:132px;margin:2px auto 8px}
.card.narrow{max-width:420px;margin:30px auto}
.center{text-align:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:10px 18px;border-radius:99px;
  border:2px solid var(--ink);background:transparent;color:var(--ink);font-weight:700;text-decoration:none;cursor:pointer;transition:background .15s ease,color .15s ease}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn:focus-visible,.bigbtn:focus-visible,a:focus-visible{outline:3px solid var(--butter);outline-offset:3px}
.btn:disabled{opacity:.5;cursor:default}
.btn:disabled:hover{background:transparent;color:var(--ink)}
.btn-primary{background:var(--red);border-color:var(--red);color:#fff}
.btn-primary:hover{background:var(--red-2);border-color:var(--red-2);color:#fff}
.btn-primary:disabled:hover{background:var(--red);color:#fff}
.btn-light{background:#fff}
.btn-light:hover{background:var(--ink)}
.btn-block{width:100%}
.btn-sm{min-height:32px;padding:4px 12px;font-size:13px;border-width:1.5px}
.form{display:flex;flex-direction:column;gap:12px}
.form label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:14px}
.form label.check{flex-direction:row;align-items:center;gap:8px;font-weight:500}
.form input:not([type=checkbox]),.form select,.form textarea,.filters select,.filters input,.toolbar input,.toolbar select{
  min-height:44px;padding:8px 10px;border:1px solid var(--rule);border-radius:10px;background:#fff;font-weight:500;width:100%}
.form input:focus,.form select:focus,.form textarea:focus,.filters input:focus,.filters select:focus,.toolbar input:focus,.toolbar select:focus,
.rep-fields input:focus,.notes textarea:focus,.xq:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(246,211,107,.7)}
input[type=checkbox],input[type=radio]{accent-color:var(--red)}
.hint{font-weight:400;color:var(--ink-2);font-size:12.5px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.span2{grid-column:1/-1}
@media (max-width:560px){.grid2{grid-template-columns:1fr}}
.row-between{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.inline-form{display:flex;flex-direction:row;gap:8px;align-items:center;flex-wrap:wrap}
.inline-form input[name=name]{flex:1;min-width:180px}
pre.code{background:#16244A;color:#EAF0F8;padding:10px 12px;border-radius:10px;overflow:auto;font-size:13px}
.good{color:var(--good)} .bad{color:var(--bad)} .warn{color:var(--warn)}
ul.plain{margin:0;padding-left:18px}

/* ---------- not sent yet */
.banner-bad{background:var(--bad);color:#fff}
.banner-bad a{color:#fff;font-weight:700}
.banner-btn{margin-left:6px;border:2px solid #fff;background:transparent;color:#fff;border-radius:99px;padding:3px 10px;font-weight:700;cursor:pointer}
.unsent-card{background:var(--bad-bg);border:3px solid var(--bad);border-radius:14px;padding:12px 14px;margin:0 0 14px;color:#5E1414}
.unsent-h{font-family:var(--display);font-weight:400;font-size:20px;color:var(--bad);letter-spacing:.02em}
.unsent-card p{margin:6px 0} .unsent-card ul{margin:6px 0 10px;padding-left:20px}
.unsent-tip{font-weight:600}
.btn-danger{background:var(--bad);border-color:var(--red-2);color:#fff}
.btn-danger:hover{background:var(--red-2);color:#fff}
.draft-tag{display:none}

/* ---------- home */
.store-line{font-weight:600;color:var(--ink-2);margin:0 0 10px}
.panel{position:relative;background:var(--card);border:1px solid var(--rule);border-radius:16px;padding:26px 14px 14px;margin:0 0 18px;overflow:hidden}
.panel::before{content:"";position:absolute;left:0;right:0;top:0;height:10px;
  background-color:#fff;background-image:linear-gradient(90deg,var(--check) 50%,transparent 50%),linear-gradient(var(--check) 50%,transparent 50%);background-size:20px 20px}
.panel-h{font-family:var(--display);font-weight:400;font-size:22px;color:var(--ink);margin:0 0 12px;letter-spacing:.01em}
.panel-row{display:flex;gap:10px;flex-wrap:wrap;background:transparent;border:0;box-shadow:none;padding:0;overflow:visible}
.panel-row::before{display:none}
.panel-row .btn{flex:1;min-width:120px;background:var(--card)}
.panel-row .btn:hover{background:var(--ink)}
.grid-btns{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.bigbtn{display:flex;flex-direction:column;gap:3px;padding:14px 14px;border-radius:12px;text-decoration:none;color:var(--navy);
  background:var(--paper);border:2px solid var(--rule);border-bottom:4px solid var(--red);min-height:76px;justify-content:center;transition:border-color .15s ease,transform .15s ease}
.bigbtn:hover{border-color:var(--ink);border-bottom-color:var(--red)}
.bigbtn:active{transform:translateY(1px)}
.bb-title{font-weight:700;font-size:17px;line-height:1.2}
.bb-sub{font-size:13px;color:var(--ink-2)}
.bb-meta{font-size:12.5px;color:var(--red);font-weight:700}
.bigbtn-vendor{align-items:center;text-align:center}
.testmode{background:var(--warn-bg);color:#5C4300;border-radius:10px;padding:8px 12px;font-size:13.5px;font-weight:600}

/* ---------- shared screen chrome */
.screen-head{position:sticky;top:calc(69px + env(safe-area-inset-top,0px));z-index:20;background:var(--paper);padding:6px 0 8px;margin:-6px 0 6px}
.back{display:inline-block;font-weight:700;text-decoration:none;color:var(--red);margin:0 0 2px;padding:4px 0}
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.toolbar input[type=search]{flex:1;min-width:160px;width:auto}
.toolbar select{width:auto}
.progress{font-size:13px;font-weight:700;color:var(--red);white-space:nowrap}
.hint-line{font-size:13.5px;color:var(--ink-2);margin:0 0 10px}
.chk{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;white-space:nowrap}
.seg{display:inline-flex;background:#fff;border:1px solid var(--rule);border-radius:99px;padding:3px;margin:0 0 8px}
.seg button{border:0;background:transparent;padding:8px 14px;border-radius:99px;font-weight:700;color:var(--ink-2);cursor:pointer;min-height:40px}
.seg button.on{background:var(--navy);color:#fff}
.tag{display:inline-block;background:var(--sky-2);color:var(--navy);border-radius:99px;padding:2px 10px;font-size:12.5px;font-weight:600}

/* ---------- count sheet */
.clist{display:flex;flex-direction:column;gap:6px}
.crow{display:flex;align-items:center;gap:12px;background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:8px 10px;position:relative}
.crow.fresh{background:#fff;border-color:#B9D9C4}
.crow.bad{border-color:var(--bad);background:var(--bad-bg)}
.count{width:84px;flex:none;height:52px;text-align:center;font-size:22px;font-weight:700;border:2px solid #B8C3D9;border-radius:10px;background:#fff}
.count:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(246,211,107,.7)}
.crow.blank .count{border-style:dashed}
.cbody{flex:1;min-width:0}
.cname{font-weight:600;line-height:1.25;overflow-wrap:anywhere}
.cmeta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12.5px;color:var(--ink-2);margin-top:2px}
.cmeta .unit{font-weight:700;color:var(--navy);text-transform:lowercase}
.cmeta .cases{color:var(--good);font-weight:600}
.cmeta .vtag{background:var(--sky-2);border-radius:5px;padding:0 6px;color:var(--navy)}
.cat{color:#7F8AA3}
.dot{width:10px;height:10px;border-radius:50%;flex:none;background:var(--rule)}
.dot-ok{background:var(--good)}
.dot-pending{background:var(--gold)}
.done-bar{position:sticky;bottom:calc(10px + env(safe-area-inset-bottom,0px));margin-top:16px}
.done-bar .btn{box-shadow:0 6px 18px rgba(30,49,96,.28);min-height:54px;font-size:17px}

/* ---------- build order */
.ohead,.orow{display:grid;grid-template-columns:minmax(0,1fr) 90px 80px 132px 74px;gap:8px;align-items:center}
.ohead{font-size:12px;font-weight:700;color:var(--ink-2);text-transform:uppercase;letter-spacing:.03em;padding:0 10px 4px;text-align:center}
.ohead span:first-child{text-align:left}
.olist{display:flex;flex-direction:column;gap:6px}
.orow{background:#fff;border:1px solid var(--rule);border-radius:10px;padding:8px 10px}
.orow.ordering{border-color:#EBCB6A;box-shadow:inset 4px 0 0 var(--butter)}
.oname b{display:block;font-weight:600;line-height:1.25;overflow-wrap:anywhere}
.oname .cat{font-size:12.5px}
.ocell{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.ocell .v{font-size:20px;font-weight:700;line-height:1.1}
.ocell .u{font-size:11.5px;color:var(--ink-2);line-height:1.1;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.onh{background:#F3EFE5;border-radius:8px;padding:4px 2px}
.orow.uncounted .onh{background:var(--warn-bg)}
.orow.uncounted .onh .u{color:var(--warn);font-weight:700}
.step{flex-direction:row;gap:4px;background:var(--gold-bg);border-radius:10px;padding:3px}
.step button{width:40px;height:40px;border-radius:9px;border:1px solid #E6C766;background:#fff;font-size:22px;font-weight:700;cursor:pointer;color:var(--navy);line-height:1}
.step button:active{background:var(--gold-bg)}
.adj{min-width:30px;font-weight:700;font-size:17px;color:var(--ink-2)}
.adj.up{color:var(--good)} .adj.down{color:var(--bad)}
.amt .v{font-size:26px;color:#C5BFB2}
.orow.ordering .amt .v{color:var(--navy)}
.orow.ordering .amt{background:var(--gold-bg);border-radius:8px;padding:4px 0}
.totbar{position:fixed;left:0;right:0;bottom:0;z-index:25;border-top:4px solid var(--butter);display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:var(--navy);color:#fff;box-shadow:0 -4px 16px rgba(0,0,0,.18)}
.totbar b{font-size:22px}
.totbar .btn{min-height:48px;font-size:16px;background:var(--red);color:#fff;border-color:var(--red)}
.totbar .btn:hover{background:var(--red-2);border-color:var(--red-2)}
@media (max-width:640px){
  .ohead{display:none}
  .orow{grid-template-columns:1fr 1fr 1.6fr 1fr;grid-template-areas:"n n n n" "h p s a";row-gap:8px}
  .oname{grid-area:n} .onh{grid-area:h} .prop{grid-area:p} .step{grid-area:s;justify-self:center} .amt{grid-area:a}
  .prop .u::before{content:"proposed "}
}

/* ---------- review / report */
.report{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:16px}
.rep-top{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.rep-title{font-family:var(--display);font-size:28px;font-weight:400;margin:0;color:var(--navy)}
.rep-sub{color:var(--ink-2);font-size:14px}
.rep-store{color:var(--ink-2);font-size:14px;text-align:right}
.rep-fields{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0}
.rep-fields label{display:flex;align-items:center;gap:8px;font-weight:600}
.rep-fields input{min-height:42px;padding:6px 10px;border:1px solid var(--rule);border-radius:10px}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl{width:100%;border-collapse:collapse;font-size:14.5px;background:#fff}
.tbl th{background:var(--navy);color:#fff;text-align:left;padding:7px 8px;font-weight:600;white-space:nowrap}
.tbl td{border:1px solid var(--rule);padding:6px 8px;vertical-align:top}
.tbl tbody tr:nth-child(even){background:#FAF6EC}
.tbl .num{text-align:right;white-space:nowrap}
.tbl td.qty{text-align:center;font-weight:700;font-size:16px}
.tbl tfoot td{border:0;padding-top:10px;font-size:16px}
.tbl tr.off{opacity:.5}
#itemsTbl tbody tr{cursor:pointer}
.notes{display:flex;flex-direction:column;gap:4px;font-weight:600;margin:14px 0 0}
.notes textarea{border:1px solid var(--rule);border-radius:10px;padding:8px 10px;font-weight:500}
.notes-box{margin:14px 0 0;padding:10px 12px;background:var(--gold-bg);border-radius:10px}
.rep-actions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:16px}
.rep-actions .btn{flex:1;min-width:140px}
.warn-line{background:var(--warn-bg);color:#5C4300;padding:8px 12px;border-radius:10px;font-size:14px}

/* ---------- sent / history */
.big-ok,.big-wait,.big-bad{width:64px;height:64px;border-radius:50%;margin:8px auto;display:flex;align-items:center;justify-content:center;font-size:34px;font-weight:700;color:#fff}
.big-ok{background:var(--good)} .big-wait{background:var(--butter);color:#3A2A00} .big-bad{background:var(--bad)}
.hrow{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid var(--rule);border-radius:10px;padding:10px 12px;margin:0 0 8px;color:inherit;text-decoration:none}
.hrow.pending{border-color:#E6C766;background:var(--gold-bg)}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.chip{font-size:12px;font-weight:600;border-radius:99px;padding:2px 9px}
.chip-good{background:var(--good-bg);color:var(--good)} .chip-warn{background:var(--warn-bg);color:var(--warn)}
.chip-bad{background:var(--bad-bg);color:var(--bad)} .chip-muted{background:#F1ECE1;color:var(--ink-2)}
.chip-wait{background:#fff;color:var(--ink-2);border:1px dashed #C9BFA9}
.hrow .chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.hrow .chip{white-space:nowrap}

/* ---------- bottom sheet */
.sheet{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-end;justify-content:center}
.sheet-bg{position:absolute;inset:0;background:rgba(20,30,60,.45)}
.sheet-card{position:relative;background:var(--paper);width:100%;max-width:560px;border-radius:18px 18px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom,0px));max-height:85vh;overflow:auto}
.sheet-card .grid-btns{margin:0 0 12px}
/* v1.34.1 close X on sheets */
.sheet-x{position:absolute;top:8px;right:8px;width:40px;height:40px;border:0;border-radius:50%;background:transparent;color:inherit;font-size:28px;line-height:1;cursor:pointer;opacity:.7;z-index:1}
.sheet-x:hover,.sheet-x:focus-visible{opacity:1;background:rgba(127,127,127,.18)}
.sheet-card.has-x > :nth-child(2){padding-right:40px}
.sheet-note{margin:10px 0 0;opacity:.8}

/* ---------- admin */
.admin-tabs{position:fixed;left:0;right:0;bottom:0;display:flex;gap:2px;overflow-x:auto;background:var(--navy);border-top:4px solid var(--butter);padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));z-index:25}
.admin-tabs a{color:#fff;text-decoration:none;font-weight:600;font-size:14px;padding:8px 12px;border-radius:99px;white-space:nowrap}
.admin-tabs a:hover{background:rgba(255,255,255,.12)}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.filters select{width:auto}
.filters input{flex:1;min-width:150px;width:auto}
details.fold summary{cursor:pointer;padding:2px 0;list-style-position:inside}
details.fold[open] summary{margin-bottom:12px}
.status-card{border-left:5px solid var(--butter)}
td.actions form{display:inline-flex;gap:4px;margin:2px 0}
.people{display:flex;flex-direction:column}
.person.off{opacity:.6}
.p-who{display:flex;flex-direction:column;min-width:0}
.p-name{font-size:17px}
.p-email{color:var(--ink-2);overflow-wrap:anywhere}
.person .chips{margin:0}
.person .tiny{margin:6px 0 10px}
.edit-user summary{list-style:none;display:inline-flex;padding:4px 16px}
.edit-user summary::-webkit-details-marker{display:none}
.edit-user[open] summary{margin-bottom:10px}
.edit-user .form{max-width:420px;margin:0 0 6px}
.p-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--rule)}
.p-actions form{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.p-reset input{min-height:32px;padding:4px 10px;border:1px solid var(--rule);border-radius:99px;width:150px}

@media print{
  .bar,.bar::after,.banner,.noprint,.admin-tabs,.totbar,.pill,.sheet,.unsent-card{display:none!important}
  body{background:#fff;font-size:12pt} .wrap{padding:0;max-width:none} .report{border:0;padding:0}
  .screen-head{position:static}
  .tbl th{background:#fff!important;color:#000;border-bottom:2px solid #000}
  .tbl td{border-color:#999} .tbl tbody tr:nth-child(even){background:#fff}
  .tbl tr{break-inside:avoid}
  .rep-fields input{border:0;padding:0;font-weight:700}
  .notes textarea{border:1px solid #999;resize:none}
  .draft-tag{display:inline-block;border:2px solid #000;padding:1px 8px;font-weight:700}
  .tag{background:#fff;border:1px solid #999}
  .table-wrap{overflow:visible}
}

/* ---------- par report / history */
.dl-links{display:flex;gap:8px;flex-wrap:wrap}
.howto p{margin:8px 0;font-size:14.5px}
.tbl.pars{font-size:13.5px}
.tbl.pars th{font-size:12px;white-space:normal;text-align:center;vertical-align:bottom}
.tbl.pars th.grp{border-left:2px solid #fff;text-align:center}
.tbl.pars td{vertical-align:middle}
.tbl.pars tr.vrow td{background:var(--sky-2);font-weight:700;color:var(--navy)}
.tbl.pars td.sugg{background:#FDFBF6;min-width:78px}
.tbl.pars td.sugg.raise{background:var(--bad-bg)}
.tbl.pars td.sugg.lower{background:var(--good-bg)}
.apply{display:inline-flex;align-items:center;gap:5px;cursor:pointer}
.apply input{width:18px;height:18px}
.conf-low{color:var(--bad)} .conf-fair{color:var(--warn)} .conf-good{color:var(--good)}
.apply-bar{position:sticky;bottom:60px;display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:12px;
  background:var(--paper);padding:8px 0}
.tbl.hist{font-size:13.5px}
.tbl.hist tr.zero td{background:var(--bad-bg)}
.hist-cols{align-items:start}

/* ---------- receive */
.rcv-quick{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.rcv-quick .btn{flex:1;min-width:150px}
.rrow{grid-template-columns:minmax(0,1fr) 80px 150px 96px}
.rrow .step input.rin{width:52px;height:40px;text-align:center;font-size:19px;font-weight:700;border:1px solid #E6C766;border-radius:9px;background:#fff}
.rrow.r-ok{border-color:#B9D9C4;box-shadow:inset 4px 0 0 var(--good)}
.rrow.r-short,.rrow.r-bad{border-color:#E8A5A5;background:#FFF6F6;box-shadow:inset 4px 0 0 var(--bad)}
.rrow.r-extra{border-color:#B8C3D9;box-shadow:inset 4px 0 0 var(--royal)}
.rstat .v{font-size:15px;font-weight:700}
.r-ok .rstat .v{color:var(--good);font-size:22px}
.r-short .rstat .v,.r-bad .rstat .v{color:var(--bad)}
.r-extra .rstat .v{color:var(--royal)}
.rq .v{font-size:20px}
.rcv-extra{margin-top:14px}
.hrow .btn-sm{pointer-events:none}
td.qty.bad{color:var(--bad)}
@media (max-width:640px){
  .rrow{grid-template-columns:1fr 1.6fr 1fr;grid-template-areas:"n n n" "q s t"}
  .rrow .oname{grid-area:n} .rrow .rq{grid-area:q} .rrow .step{grid-area:s} .rrow .rstat{grid-area:t}
}

/* ---------- Saturday split */
.split-hint{background:var(--gold-bg);border:1px solid #EBCB6A;border-radius:10px;padding:8px 12px;font-size:14px;margin:0 0 8px}
.ohead.split,.orow.split{grid-template-columns:minmax(0,1fr) 84px 72px 132px 70px 76px}
.ocell.sat{background:var(--sky-2);border-radius:8px;padding:4px 2px}
.satin{width:56px;height:42px;text-align:center;font-size:20px;font-weight:700;border:2px solid #B8C3D9;border-radius:9px;background:#fff}
.satin:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(246,211,107,.7)}
.orow.has-sat .ocell.sat{background:var(--sky)}
.amt .tot{font-size:11px;color:var(--ink-2)}
.sat-tot{font-size:13px;color:var(--butter);font-weight:600}
.rep-sec{font-size:17px;margin:16px 0 6px;color:var(--navy)}
.sat-sec{margin-top:18px;padding-top:6px;border-top:3px dashed #E6C766}
.sat-badge{display:inline-block;margin:6px 0 2px;padding:3px 10px;background:var(--butter);color:#2A1E00;border-radius:6px;font-weight:800;font-size:13px}
@media (max-width:640px){
  .orow.split{grid-template-columns:1fr 1fr 1.6fr 1fr 1fr;grid-template-areas:"n n n n n" "h p s a t"}
  .orow.split .ocell.sat{grid-area:t}
  .orow.split .step button{width:34px}
}
@media print{ .sat-sec{break-before:page;border-top:0} .sat-badge{border:2px solid #000;background:#fff} }

/* ---------- split / individual + optional items */
.split-tag{display:inline-block;margin-left:6px;padding:0 6px;border-radius:5px;background:var(--bad-bg);color:var(--bad);
  font-size:11.5px;font-weight:800;letter-spacing:.04em;vertical-align:middle}
.unit-split{color:var(--bad);letter-spacing:.03em}
.unit-case{color:var(--ink-2)}
.btn-add{background:#fff;border-style:dashed;border-color:var(--red);color:var(--red);white-space:nowrap}
.btn-add:hover{background:var(--red);color:#fff}
.extras{background:var(--sky-2);border:2px dashed #B8C3D9;border-radius:12px;padding:8px;margin:0 0 10px}
.extras-h{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--royal);margin:0 0 6px}
.xrow{display:grid;grid-template-columns:minmax(0,1fr) 132px 36px;gap:8px;align-items:center;background:#fff;border-radius:10px;padding:8px 10px;margin:0 0 6px}
.xrm{width:34px;height:34px;border-radius:50%;border:1px solid var(--rule);background:#fff;font-size:20px;color:var(--bad);cursor:pointer}
.xq{width:100%;min-height:46px;padding:8px 12px;border:2px solid #B8C3D9;border-radius:10px;font-size:17px;margin:0 0 10px}
.xres{max-height:55vh;overflow:auto;margin:0 0 10px}
.xhit{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border:1px solid var(--rule);border-radius:10px;padding:8px 10px;margin:0 0 6px}
.xhit.on-guide{opacity:.6}
.xpick{width:100%;display:flex;flex-direction:column;gap:8px}
.xopts{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.xopts label{display:flex;align-items:center;gap:6px;font-weight:600}
.xqty{width:70px;min-height:40px;text-align:center;font-size:18px;font-weight:700;border:1px solid var(--rule);border-radius:8px}
.seg-sm{margin:0}
.seg-sm button{min-height:36px;padding:6px 12px}
.xadded{color:var(--good);font-weight:700;padding:4px 0}
@media print{ .split-tag{border:1px solid #000;background:#fff;color:#000} .unit-split{color:#000} }
.xrow{grid-template-columns:minmax(0,1fr) auto 36px;grid-template-areas:"n s x"}
.xrow .oname{grid-area:n} .xrow .step{grid-area:s} .xrow .xrm{grid-area:x}
@media (max-width:640px){
  .xrow{grid-template-columns:1fr 36px;grid-template-areas:"n x" "s s"}
  .xrow .step{justify-self:end}
}

/* ---------- small phones */
@media (max-width:360px){ .mark{font-size:18px;gap:8px} .mark img{width:40px;height:40px} }

/* ---------- add-on to a sent order (v1.5.0) */
.addon-cta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  background:var(--card);border:2px solid var(--red);border-radius:var(--r);padding:12px 14px;margin:0 0 12px}
.addon-cta .btn{white-space:nowrap}
.addon-ref{background:var(--card);border:1px solid var(--rule);border-left:5px solid var(--red);border-radius:10px;padding:10px 12px;margin:0 0 14px;font-weight:600}
.addon-pill{display:inline-block;background:var(--red);color:#fff;border-radius:6px;padding:1px 8px;font-weight:800;letter-spacing:.05em;font-size:13px;margin-right:4px}
.addon-badge{display:inline-block;margin:6px 0 2px;padding:4px 12px;background:var(--red);color:#fff;border-radius:6px;font-weight:800;font-size:14px;letter-spacing:.02em}
.addon-badge a{color:#fff}
.chip-addon{background:var(--red);color:#fff}
.addon-adding .xrow{background:var(--paper);border:1px solid var(--rule)}
.addon-adding .empty{padding:10px 0}
.btn.is-off{opacity:.5}
.addon-send{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0 0;padding-top:12px;border-top:1px dashed var(--rule)}
.addon-send .addon-go{min-height:48px;font-size:16px;background:var(--red);border-color:var(--red);color:#fff}
.addon-send .addon-go:hover{background:var(--red-2);border-color:var(--red-2)}
.sheet-lines{margin:6px 0 4px;padding-left:18px;max-height:30vh;overflow:auto}
.sheet-lines li{margin:3px 0}
@media (max-width:520px){ .addon-send .btn{flex:1 1 100%;justify-content:center;text-align:center} }
@media print{ .addon-badge{background:#fff;color:#000;border:2px solid #000} .addon-badge a{color:#000} }
/* toolbar checkbox: not a text box (no 44px height / focus glow) */
.toolbar input[type=checkbox]{min-height:0;width:18px;height:18px;padding:0;border:0;box-shadow:none}

/* ---------- people: per-vendor send permission (v1.6.0) */
.perm-line{margin:8px 0 0;font-size:14px;color:var(--good);font-weight:600}
.perm-box{margin:10px 0 0;padding:10px 12px;background:var(--paper);border:1px solid var(--rule);border-radius:10px}
.perm-box summary{cursor:pointer;font-size:14px}
.perm-form{display:flex;flex-direction:column;gap:2px;margin-top:8px}
.perm-form .btn{align-self:flex-start;margin-top:8px}
.toggle{display:flex;align-items:center;gap:10px;min-height:44px;font-weight:600;cursor:pointer}
.toggle input{position:absolute;opacity:0;width:1px;height:1px}
.tslider{width:46px;height:26px;border-radius:99px;background:#D8D2C4;position:relative;flex:none;transition:background .15s}
.tslider::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .15s}
.toggle input:checked+.tslider{background:var(--good)}
.toggle input:checked+.tslider::after{left:23px}
.toggle input:focus-visible+.tslider{outline:3px solid var(--butter);outline-offset:2px}

/* ---------- bell + notifications + review (v1.6.0) */
.bell{margin-left:auto;position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:var(--ink);text-decoration:none}
.bell:hover{background:var(--sky-2)}
.bell + .pill{margin-left:4px}
.bell-n{position:absolute;top:1px;right:0;min-width:19px;height:19px;padding:0 5px;border-radius:99px;background:var(--red);color:#fff;
  font-size:11.5px;font-weight:800;line-height:19px;text-align:center;border:2px solid var(--paper)}
.alert-row{display:block}
.alert-row.unread{border-color:var(--red);box-shadow:inset 4px 0 0 var(--red)}
.kinds{display:flex;flex-direction:column}
.btns-row{display:flex;gap:8px;flex-wrap:wrap}
.review-panel .panel-h{color:var(--red)}
.bigbtn-review{border-color:var(--red);border-bottom-color:var(--red);background:#fff}
.review-row.pending{border-color:#E6C766;background:var(--gold-bg)}
.review-row.returned{border-color:#E8A5A5;background:#FFF6F6}
.alist{display:flex;flex-direction:column;gap:6px;margin:6px 0 4px}
.arow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;background:#fff;border:1px solid var(--rule);border-radius:10px;padding:8px 10px}
.arow.zero{opacity:.55}
.arow .oname b{display:block;font-weight:600;line-height:1.25;overflow-wrap:anywhere}
.arow .cat{font-size:12.5px}
.aqty{width:58px;height:40px;text-align:center;font-size:19px;font-weight:700;border:1px solid #E6C766;border-radius:9px;background:#fff}
.ap-total{font-size:17px;margin:10px 0 0;text-align:right}
@media (max-width:520px){ .arow{grid-template-columns:1fr} .arow .step{justify-self:end} }
.arow .oname,.arow .ocell{grid-area:auto}
/* v1.7.0 login email */
.form label.toggle{flex-direction:row;align-items:center;gap:10px;font-size:15px}
.form .hint{font-weight:400}
#add-vendors{border:1px solid var(--line,#E4DCCB);border-radius:var(--r,10px);padding:10px 14px 12px;margin:0}
#add-vendors legend{padding:0 6px}
.bad-t{color:var(--bad);font-weight:700} .good-t{color:var(--good);font-weight:700}
.push-nag{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--gold-bg);border:2px solid #E6C766;border-radius:14px;padding:12px 14px;margin:0 0 14px}
.push-nag .btns-row{margin-top:8px}
.push-nag p{margin:6px 0 0}
/* v1.7.3 menu */
.menu-btn{display:flex;align-items:center;gap:6px;margin-left:6px;border:2px solid var(--ink);background:transparent;color:var(--ink);
  border-radius:99px;padding:5px 12px 5px 9px;font:inherit;font-weight:700;font-size:14px;cursor:pointer}
.menu-btn:hover{background:var(--ink);color:var(--paper)}
.bell + .pill + .menu-btn, .pill + .menu-btn{margin-left:6px}
@media (max-width:420px){.menu-btn span{display:none}.menu-btn{padding:6px}}
.menu-who{display:flex;align-items:center;gap:12px;padding:4px 2px 14px;border-bottom:1px solid #E4DCCB;margin-bottom:6px}
.menu-av{width:44px;height:44px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-weight:800;font-size:20px;flex:none}
.menu-list{display:flex;flex-direction:column}
.menu-list a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 6px;min-height:48px;
  border-bottom:1px solid #EFE7D6;color:var(--ink);text-decoration:none;font-weight:700;font-size:17px}
.menu-list a:hover{background:var(--sky-2)}
.menu-list a .tiny{font-weight:400;text-align:right}
#mOut{margin-top:14px}
.menu-logout{border-color:var(--red);color:var(--red);font-size:17px}
.menu-logout:hover{background:var(--red);color:#fff}
.menu-warn{background:var(--bad-bg);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px}
.menu-warn .tiny{color:#7A1F1F}
.bar-link + .bar-out{margin-left:8px;border-color:var(--red);color:var(--red)}
.bar-link + .bar-out:hover{background:var(--red);color:#fff}
@media (max-width:440px){
  .bar{gap:6px}
  .mark{font-size:18px;gap:7px}
  .mark img{width:38px;height:38px}
  .bell{width:36px}
  .menu-btn{flex:none;margin-left:2px}
}
@media (max-width:360px){.mark-t{display:none}}
/* v1.8.0 fix + resend a sent-back order */
.fix-box{background:#FFF6F6;border:1px solid #E8A5A5;border-left:5px solid var(--red);border-radius:var(--r);padding:10px 12px;margin:10px 0}
.fix-box .fix-note{font-size:17px;margin:4px 0}
.note-hist{font-size:14px;opacity:.85}
#apAdd{margin:4px 0 8px}
/* v1.8.0 store location in the header (Stony Brook / Northport) */
.mark .mark-txt{display:flex;align-items:baseline;gap:22px;min-width:0;color:var(--ink)}
.mark .mark-loc{font-family:var(--body);font-size:18px;font-weight:600;color:var(--royal);letter-spacing:0;white-space:nowrap}
.mark .mark-loc:empty,.mark .mark-loc[hidden]{display:none}
@media (max-width:700px){
  .mark .mark-txt{flex-direction:column;align-items:flex-start;gap:0}
  .mark .mark-loc{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;line-height:1.1}
}
@media (max-width:360px){.mark .mark-loc{font-size:13px}}
/* v1.8.1 sign-in page: store name, status messages that don't look like inputs */
.login-store{margin:-6px 0 6px}
.login-store span{display:inline-block;background:var(--navy);color:#fff;font-weight:800;font-size:13px;letter-spacing:.12em;text-transform:uppercase;padding:4px 14px;border-radius:99px}
.signed-out{display:flex;align-items:center;justify-content:center;gap:6px;margin:0 0 12px;padding:6px 0;color:var(--good);font-weight:700;font-size:15px;border-top:1px dashed var(--rule);border-bottom:1px dashed var(--rule)}
.flash-error{background:var(--bad-bg);border-color:#E8A5A5;border-left:5px solid var(--red);color:#7A1F1F;font-weight:600}
/* Chrome autofill paints fields pale blue - keep them white like the rest of the form */
.form input:-webkit-autofill,.form input:-webkit-autofill:hover,.form input:-webkit-autofill:focus{
  -webkit-box-shadow:0 0 0 1000px #fff inset;-webkit-text-fill-color:var(--ink);caret-color:var(--ink);transition:background-color 9999s}
.forgot-line{margin:12px 0 0;font-weight:700}
.forgot-line a{color:var(--royal)}
/* v1.9.0 test-mode orders */
.chip-test{background:#5B6475;color:#fff;letter-spacing:.06em;font-weight:800}
.test-badge{display:inline-block;margin:6px 0 2px;padding:3px 10px;border-radius:6px;background:#5B6475;color:#fff;font-weight:800;font-size:12.5px;letter-spacing:.03em}
.golive-mode{padding:10px 12px;border-radius:var(--r);border:1px solid var(--rule)}
.golive-mode.is-test{background:#EEF0F4;border-color:#C5CAD4}
.golive-mode.is-live{background:var(--good-bg);border-color:#9CCDAF}
.golive-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:8px 0}
.golive-grid h3{margin:0 0 4px;font-size:15px}
.golive-grid ul{margin:0;padding-left:18px}
.golive-grid > div{background:#fff;border:1px solid var(--rule);border-radius:10px;padding:10px 12px}
.golive-grid > div:first-child{border-color:#E8A5A5;background:#FFF8F8}
@media (max-width:600px){.golive-grid{grid-template-columns:1fr}}
.warn-line{background:var(--warn-bg);color:var(--warn);padding:8px 12px;border-radius:10px;font-weight:600}
.golive-form{max-width:420px;margin-top:12px}
/* v1.10.0 scan invoice + purchase ledger */
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:340px){.grid-2{grid-template-columns:1fr}}
.bigbtn-scan{border-bottom-color:var(--royal)}
.vh{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}
.scan-card{display:flex;flex-direction:column;gap:12px}
.scan-card .hint-line{margin:0}
.scan-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.scan-pick{position:relative;justify-content:center;text-align:center;min-height:52px;font-size:17px}
.scan-pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.scan-pages:empty{display:none}
.scan-page{position:relative;background:#fff;border:1px solid var(--rule);border-radius:10px;padding:6px;text-align:center}
.scan-page img{display:block;width:100%;height:140px;object-fit:cover;border-radius:6px;background:#F4F1EA}
.scan-pdf{height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:6px;
  background:var(--sky-2);color:var(--navy);font-weight:800;font-size:22px}
.scan-pdf span{font-size:11px;font-weight:500;word-break:break-all;padding:0 6px}
.scan-cap{font-size:12px;color:var(--ink-2);margin-top:4px}
.scan-x{position:absolute;top:2px;right:2px;width:32px;height:32px;border-radius:50%;border:0;background:rgba(30,49,96,.85);color:#fff;font-size:20px;line-height:1;cursor:pointer}
.scan-more{grid-column:1/-1;margin:0}
.scan-notes{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:14px}
.scan-notes textarea{border:1px solid var(--rule);border-radius:10px;padding:10px;background:#fff;font-weight:400}
.rcv-scan{align-self:flex-start}
.tbl.ledger{font-size:14px}
.tbl.ledger td{vertical-align:middle}
.tbl.ledger tbody tr{cursor:pointer}
.tbl.ledger tbody tr:hover td{background:var(--sky-2)}
.tbl.ledger a{color:var(--navy);font-weight:700;text-decoration:none}
.tbl.ledger .chip{display:inline-block;margin-left:4px;font-size:11px;padding:1px 7px}
.lg-date{white-space:nowrap}
.lg-notes{max-width:220px;color:var(--ink-2);font-size:13px}
.tbl tr.lg-bad td{background:var(--bad-bg)}
.inv-state{padding:12px 14px;margin:0 0 12px;border-left:5px solid var(--rule)}
.inv-state ul{margin:6px 0 10px;padding-left:20px}
.inv-good{border-left-color:var(--good);background:var(--good-bg);color:var(--good);font-weight:600}
.inv-bad{border-left-color:var(--red);background:var(--bad-bg);color:#7A1F1F}
.inv-warn{border-left-color:#E6C766;background:var(--warn-bg);color:#5C4300}
.inv-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;align-items:end}
.inv-form > label:has(textarea),.inv-form > .tiny{grid-column:1/-1}
.inv-form .btn{justify-self:start}
.inv-val{font-weight:400;font-size:16px;color:var(--ink)}
.inv-pages{display:flex;flex-direction:column;gap:10px;margin:0 0 16px}
.inv-page{display:block;width:100%;max-width:900px;border:1px solid var(--rule);border-radius:8px;background:#fff}
.tbl.inv-lines{font-size:13.5px}
.inv-admin{margin-top:16px}
@media (max-width:600px){
  .tbl.ledger{font-size:13px}
  .tbl.ledger th,.tbl.ledger td{padding:6px 5px}
  .tbl.ledger .lg-notes{min-width:130px}
  .tbl.inv-lines{font-size:12.5px}
  .tbl.inv-lines th,.tbl.inv-lines td{padding:5px 4px}
}
.h1 .chip{font-family:var(--body);font-size:12.5px;letter-spacing:0;vertical-align:middle;white-space:nowrap;margin-left:4px}

/* ---------- v1.11.0 tasks, notes, 86 board, auto nudges */
.chip-sky{background:var(--sky);color:var(--navy)}
.chip-crew{background:var(--sky);color:var(--navy)}
.today .row-between{margin-bottom:6px}
.today .panel-h{margin:0}
.today-empty{margin:4px 0 12px}
.today-btns{margin-top:12px}
.bigbtn-86{border-bottom-color:var(--navy)}
.nrow{display:flex;align-items:stretch;gap:10px;background:#fff;border:1px solid var(--rule);border-radius:12px;padding:8px 10px;margin:0 0 8px}
.nrow.late{border-color:#E8B4B0;background:#FFF8F7}
.nrow.done{opacity:.62}
.nrow.done .nbody b{text-decoration:line-through}
.nbody{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:3px;color:inherit;text-decoration:none;padding:4px 0}
.nbody b{font-size:16px;line-height:1.25;overflow-wrap:anywhere}
.nmeta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:12.5px;color:var(--ink-2)}
.tick{flex:none;width:44px;height:44px;align-self:center;border-radius:50%;border:2.5px solid var(--ink);background:#fff;color:#fff;
  font-size:22px;font-weight:800;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.tick:hover{background:var(--sky-2)}
.tick.on{background:var(--good);border-color:var(--good)}
.note-ic{border-style:dashed;color:var(--ink-2);font-size:18px;cursor:default;background:var(--paper)}
.nsec{margin:18px 0 8px}
.nsec .muted{font-size:14px}
.ndue{font-weight:700;margin:0 0 12px}
.ndetails{white-space:normal;overflow-wrap:anywhere}
.nsteps{display:flex;flex-direction:column;gap:2px}
.nstep{display:flex;align-items:center;gap:12px;min-height:48px;padding:6px 4px;border-bottom:1px solid var(--rule);cursor:pointer;font-weight:500}
.nstep:last-child{border-bottom:0}
.nstep input{width:24px;height:24px;flex:none}
.nstep.on>span{color:var(--ink-2);text-decoration:line-through}
.nstep.on>span .tiny{text-decoration:none}
.snooze{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0}
.empty-card{text-align:center}
.seg{display:flex;border:2px solid var(--ink);border-radius:99px;overflow:hidden;margin:0}
.seg label{flex:1;display:block!important;margin:0;cursor:pointer;position:relative}
.seg input{position:absolute;left:0;top:0;opacity:0;width:1px;height:1px;margin:0}
.seg span{display:flex;align-items:center;justify-content:center;min-height:42px;padding:4px 8px;font-weight:700;font-size:14.5px;text-align:center}
.seg label+label span{border-left:2px solid var(--ink)}
.seg input:checked+span{background:var(--ink);color:var(--paper)}
.seg input:focus-visible+span{outline:3px solid var(--butter);outline-offset:-3px}
.nfs{min-width:0;border:1px solid var(--rule);border-radius:12px;padding:10px 12px 12px;margin:0;display:flex;flex-direction:column;gap:10px}
.nfs legend{font-weight:700;font-size:14px;padding:0 4px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.quick{display:flex;flex-wrap:wrap;gap:6px}
.ar-days{display:flex;flex-wrap:wrap;gap:6px}
.daychip{cursor:pointer;display:inline-block!important;position:relative}
.daychip input{position:absolute;left:0;top:0;opacity:0;width:1px;height:1px;margin:0}
.daychip span{display:inline-flex;align-items:center;justify-content:center;min-width:46px;min-height:38px;border:1.5px solid var(--ink);border-radius:99px;font-weight:700;font-size:13.5px;background:#fff}
.daychip input:checked+span{background:var(--navy);color:#fff;border-color:var(--navy)}
.daychip input:focus-visible+span{outline:3px solid var(--butter);outline-offset:2px}
.tag86{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:99px;font-size:11px;font-weight:800;letter-spacing:.04em;vertical-align:1px}
.tag86.out{background:var(--bad);color:#fff}
.tag86.low{background:var(--butter);color:#3A2A00}
.add86{display:flex;flex-direction:column;gap:10px}
.add86 input{min-height:46px;padding:8px 12px;border:1px solid var(--rule);border-radius:10px;background:#fff;width:100%;font-size:16px}
.add86 input:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(246,211,107,.7)}
.e86s{display:flex;flex-direction:column;gap:4px}
.e86s:empty{display:none}
.e86hit{text-align:left;background:var(--sky-2);border:1px solid var(--sky);border-radius:10px;padding:9px 12px;cursor:pointer;font-weight:600}
.e86hit:hover{background:var(--sky)}
.row86{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--rule);border-radius:12px;padding:10px 12px;margin:0 0 8px}
.r86b{flex:1;min-width:0;overflow-wrap:anywhere}
.chip86{flex:none;min-width:56px;min-height:40px;border-radius:99px;border:0;font-weight:800;letter-spacing:.05em;cursor:pointer}
.chip86.out{background:var(--bad);color:#fff}
.chip86.low{background:var(--butter);color:#3A2A00}
.auto-rule.off{opacity:.7;background:#FBF8F1}
.auto-rule .ar-name{font-size:17px}
.auto-rule .ar-days{margin:8px 0}
.ar-times{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 10px}
.ar-times label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:13.5px}
.ar-times input{min-height:42px;padding:6px 10px;border:1px solid var(--rule);border-radius:10px;background:#fff}
.role-pick{min-height:32px;border:1.5px solid var(--ink);border-radius:99px;padding:2px 10px;background:#fff;font-size:13px;font-weight:600}
@media (max-width:420px){.row2,.ar-times{grid-template-columns:1fr}}

/* v1.12 review = full order builder */
.dup-warn{background:var(--warn-bg);border:1px solid #E7B34A;border-radius:10px;padding:10px 12px;margin:8px 0 10px;display:flex;flex-direction:column;gap:6px}
.dup-warn a{font-weight:700}
.dup-row{display:flex;gap:10px;align-items:center;justify-content:space-between}
.dup-chk{display:flex;gap:8px;align-items:flex-start;background:var(--warn-bg);border-radius:8px;padding:8px 10px;margin:8px 0;font-weight:600}
.dup-chk input{margin-top:3px}
.chk.dup-chk{white-space:normal}
.par-note{background:var(--sky-2);border-radius:8px;padding:8px 10px;margin:6px 0;font-size:14px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
#apPars{margin:8px 0 4px}
.btn-danger-ghost{border-color:var(--bad);color:var(--bad);background:#fff}
.btn-danger-ghost:hover{background:var(--bad-bg);color:var(--bad)}
.ap-hint{margin:2px 0 6px}
.report-edit .olist{display:flex;flex-direction:column;gap:6px;margin:4px 0 6px}
.report-edit .ohead{margin-top:6px}
.orow.arev .ocell.amt .aqty{width:62px}
.report-edit{margin-bottom:86px}
@media (max-width:640px){
  .report.report-edit{padding:12px 8px;border-left:0;border-right:0;border-radius:0;margin-left:-8px;margin-right:-8px}
  .orow.arev{grid-template-columns:minmax(0,.9fr) minmax(0,1fr) auto minmax(0,.9fr);column-gap:6px;padding:8px}
  .orow.arev .ocell.amt .aqty{width:50px}
  .orow.arev .step button{width:38px;height:40px}
}
.orow.arev .was{display:block;font-size:12px;font-weight:700;color:var(--bad);margin-top:2px}
.orow.arev.changed{box-shadow:inset 4px 0 0 var(--bad)}
.orow.arev.changed.ordering{box-shadow:inset 4px 0 0 var(--bad);border-color:#EBCB6A}
@media print{ .report-edit .orow.arev:not(.ordering){display:none} }

/* v1.12 pick the pars */
.ps-big{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0 4px}
.ps-btn{min-height:76px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:18px}
.ps-btn .tiny{font-weight:600;color:var(--good)}
.ps-pick{background:var(--sky-2);border-radius:10px;padding:10px 12px;margin:10px 0}
.ps-q{font-weight:700;margin-bottom:6px}
.ps-msg{margin-top:8px;font-size:14px;line-height:1.4}
.ps-msg .btn{display:flex;margin-top:8px}
.ps-msg.ok{color:var(--good);font-weight:700}
.ps-msg.bad{color:var(--bad)}
/* v1.13.0 scans kept out of the ledger as duplicates */
.dup-list{padding:10px 14px;margin:0 0 12px}
.dup-list summary{cursor:pointer;list-style-position:outside}
.dup-list .hrow{padding:8px 0;margin:0;border:0;border-top:1px solid var(--rule);border-radius:0;background:none}
.dup-list .hrow:first-of-type{margin-top:8px}
/* v1.13.1 Create orders buttons: already ordered today / waiting / not sent */
.bigbtn-done{border-bottom-color:var(--good);background:var(--good-bg)}
.bigbtn-done:hover{border-bottom-color:var(--good)}
.bb-done{color:var(--good)}
.bb-wait{color:var(--warn)}
.bigbtn-waiting{border-bottom-color:#E6C766}
.bb-when{font-size:12px;color:var(--ink-2);font-weight:500}
/* v1.14.0 website vendors (Webstaurant): list to copy / text / email */
.chip-web{background:var(--sky);color:var(--navy)}
.web-order{margin:12px 0 14px;padding:12px;background:var(--sky-2);border:1px solid var(--sky);border-radius:var(--r)}
.web-order .h2{margin:0 0 4px}
.weblist{display:block;width:100%;margin:8px 0;padding:10px;border:1px solid var(--rule);border-radius:10px;background:#fff;
  font:13px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;resize:vertical;-webkit-user-select:text;user-select:text}
.web-actions{flex-wrap:wrap}

/* v1.15.0 check in a delivery from its invoice */
.irow{grid-template-columns:minmax(0,1fr) 64px 64px 150px 96px}
.irow .iq .v{color:var(--ink-2)}
.irow .rstat .u{color:var(--warn);font-weight:700;white-space:normal}
.inv-note{font-size:13px;color:var(--ink-2);margin-top:3px;line-height:1.35}
.inv-note b{color:var(--bad)}
.inv-price{color:var(--warn);font-weight:700}
.inv-q{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px;color:var(--ink);font-weight:600}
.inv-q .btn{min-height:32px;padding:4px 14px}
.inv-sum{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.inv-sum .chips{display:flex;flex-wrap:wrap;gap:6px}
.inv-sum .tiny,.inv-sum p{margin:0}
.inv-step .h2{margin:0}
.inv-wait{text-align:center;padding:26px 18px}
.inv-wait .h2{margin:10px 0 6px}
.spin{width:38px;height:38px;margin:0 auto;border-radius:50%;border:4px solid var(--sky);border-top-color:var(--navy);animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation:none;border-top-color:var(--sky)}}
.inv-ordered{margin-top:14px}
.inv-ordered summary{cursor:pointer;font-weight:600}
.inv-ordered ul{margin:8px 0 0;padding-left:18px}
.inv-extras{display:flex;flex-direction:column;gap:8px}
.xinv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,220px);gap:10px;align-items:center;padding:10px 12px}
.xinv b{overflow-wrap:anywhere}
.xinv select{width:100%;min-height:40px;border:1px solid var(--rule);border-radius:9px;background:#fff;padding:4px 8px}
.inv-total{margin:12px 0 0}
.inv-done{margin:10px 0 0}
.inv-done ul{margin:6px 0 0;padding-left:18px}
.inv-why-list{display:flex;flex-direction:column;gap:8px;margin:10px 0 14px}
.inv-why-list input:not([type]){min-height:40px;border:1px solid var(--rule);border-radius:9px;padding:6px 10px;width:100%}
.inv-why{margin-top:8px}
@media (max-width:640px){
  .irow{grid-template-columns:1fr 1fr 1.7fr 1.1fr;grid-template-areas:"n n n n" "q i s t"}
  .irow .oname{grid-area:n} .irow .rq{grid-area:q} .irow .iq{grid-area:i} .irow .step{grid-area:s} .irow .rstat{grid-area:t}
  .xinv{grid-template-columns:1fr}
}
.inv-why-list label.check,.inv-sum label.check{display:flex;gap:8px;align-items:center;font-weight:500}
.inv-why-list input[type=radio],.inv-sum input[type=checkbox]{width:20px;height:20px;flex:none}
/* v1.16.0 Catalog - search + compare (full catalogs are search only) */
.cat-tools{padding:12px}
.cat-sel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cat-sel label{font-size:13px;color:var(--ink-2);display:flex;flex-direction:column;gap:3px;min-width:0}
.cat-sel select{min-height:40px;border:2px solid #B8C3D9;border-radius:10px;padding:4px 8px;font:inherit;font-size:15px;background:#fff;color:var(--ink);min-width:0;width:100%}
@media (max-width:560px){.cat-sel{grid-template-columns:1fr 1fr}.cat-sel label:first-child{grid-column:1/-1}}
.cat-res{margin:10px 0 24px}
.cat-hint{padding:4px 2px}
.cat-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;width:100%;text-align:left;background:#fff;
  border:1px solid var(--rule);border-radius:10px;padding:9px 11px;margin:0 0 6px;font:inherit;color:var(--ink);cursor:pointer}
.cat-row:hover{border-color:#B8C3D9}
.cat-main{min-width:0;flex:1}
.cat-main>b{display:block;overflow-wrap:anywhere}
.cat-tags{margin-top:4px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.cat-price{text-align:right;white-space:nowrap;flex:none}
.cat-det{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin:6px 0 10px}
.cat-det div{display:flex;flex-direction:column;min-width:0}
.cat-det b{overflow-wrap:anywhere}
.cat-acts{display:flex;flex-direction:column;gap:8px;margin-top:10px}
/* v1.16.1 add to order guide - setup steps */
.gs-form select{width:100%;min-height:44px;border:2px solid #B8C3D9;border-radius:10px;padding:4px 8px;font:inherit;font-size:15px;background:#fff;color:var(--ink)}
.gs-step{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px}
.gs-step>div{flex:1;min-width:0}
.gs-step .xq{margin:6px 0}
.gs-n{flex:none;width:26px;height:26px;border-radius:50%;background:var(--navy);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:14px;margin-top:2px}
/* v1.16.2 add-on: explore the full catalog is a second step */
.awide{margin-top:4px}
/* v1.17.0 roles + permissions */
.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.perm-grid .h3{margin:12px 0 2px;font-size:14px;color:var(--navy)}
.perm-grid .toggle.differs{background:var(--warn-bg);border-radius:8px;padding-right:6px}
.tbl-wrap{overflow-x:auto}
.roles-grid td.center{text-align:center}
.roles-grid th{font-size:12px;white-space:normal;text-align:center}
.roles-grid input[type=checkbox]{width:20px;height:20px}
.h3{font-size:15px;margin:14px 0 4px;color:var(--navy)}
.purv-row{padding:6px 0;border-bottom:1px solid var(--rule);gap:8px;flex-wrap:wrap}
/* ---------- v1.17.0 86 board: getting low, on order; invoice search; locations */
.tag86{border:0;cursor:pointer}
.tag86.onord{background:var(--sky);color:var(--navy)}
.row86{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}
.row86:hover{border-color:var(--navy)}
.r86b{display:flex;flex-direction:column;gap:2px}
.r86go{flex:none;font-size:22px;color:var(--ink-2)}
.chip86{display:inline-flex;align-items:center;justify-content:center}
.h2 .chip86{min-height:30px;min-width:46px;font-size:13px;vertical-align:2px}
.onord-t{display:block;font-size:12.5px;font-weight:700;color:var(--navy);background:var(--sky-2);border-radius:6px;padding:2px 8px;margin-top:3px}
.btn-86{background:var(--bad);border-color:var(--bad);color:#fff;min-height:52px;font-size:16px;font-weight:800}
.btn-86:hover{background:var(--red-2);color:#fff}
.btn-low{background:var(--butter);border-color:#E5BE45;color:#3A2A00;min-height:52px;font-size:16px;font-weight:800}
.btn-low:hover{background:#F0C64F;color:#3A2A00}
.e86-go{margin:0}
.e86-acts{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.flag86{display:block;width:100%;text-align:left;font:inherit;font-size:12.5px;margin-top:4px;padding:3px 8px;border-radius:8px;border:0;cursor:pointer;line-height:1.35}
.flag86.out{background:var(--bad-bg);color:var(--bad)}
.flag86.low{background:var(--gold-bg);color:#5C4300}
.flag86 .tiny{color:inherit;opacity:.8}
.e86-banner{background:var(--gold-bg);border:1px solid #E5BE45;border-radius:12px;padding:10px 12px;margin:0 0 12px;font-size:14px;display:flex;flex-direction:column;gap:8px}
.e86-banner .chip86{min-height:26px;min-width:40px;font-size:11px}
.e86-unl{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.e86-note{margin:0 0 8px;font-size:13.5px}
.e86-note a{color:var(--red);text-decoration:none}
.bigbtn-find{border-bottom-color:var(--navy)}
.lg-find{width:100%;margin:8px 0 6px;min-height:46px;font-size:16px}
.inv-hits{margin-top:4px;padding-left:8px;border-left:3px solid var(--butter)}
.menu-stores{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:4px 0 10px}
.menu-stores a{text-decoration:none}
.menu-stores:empty{display:none}   /* v1.41.0 */
.oname .flag86 b{display:inline}
.roles-grid td:first-child{min-width:190px}.roles-grid th:first-child{min-width:190px}
/* v1.17.1 I'm on it; tasks for several people */
.row86wrap{display:flex;gap:8px;align-items:stretch;margin:0 0 8px}
.row86wrap .row86{margin:0;flex:1}
.btn-onit{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:800;white-space:nowrap}
.btn-onit:hover{background:var(--navy-2);color:#fff}
.row86wrap .btn-onit{align-self:center;min-height:44px}
.onit-t{display:block;font-size:12.5px;font-weight:700;color:var(--good);background:var(--good-bg);border-radius:6px;padding:2px 8px;margin-top:3px}
.onit-list{display:flex;flex-direction:column;gap:6px;margin:6px 0 10px;max-height:50vh;overflow:auto}
.pick-people{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.pick-people .tiny{width:100%;margin:0}
.pp{display:inline-flex}
.pp input{position:absolute;opacity:0;pointer-events:none}
.pp > span{border:1px solid var(--rule);border-radius:99px;padding:7px 12px;background:#fff;cursor:pointer;font-weight:600}
.pp input:checked + span{background:var(--navy);border-color:var(--navy);color:#fff}
.pp input:checked + span .tiny{color:#fff}
.pp > span .tiny{margin-left:4px}
.onit-list .btn .tiny{color:inherit;opacity:.75;margin-left:6px}
.pp input:focus-visible + span{outline:3px solid var(--butter)}

/* v1.20.0 Admin hub: the same oval pills as the home screen, with a small hint line */
.admin-hub .panel-row .btn{flex-direction:column;gap:1px;min-height:56px;min-width:160px;text-align:center;line-height:1.2}
.admin-hub .hub-t{font-weight:800}
.admin-hub .hub-m{font-size:12px;font-weight:500;opacity:.75}
.admin-hub .panel-row .btn:hover .hub-m{opacity:.9}
/* v1.21.0 BackOfThe.House: the restaurant leads, with a small backofthe.house mark under it */
.mark .mark-txt{flex-wrap:wrap;row-gap:0}
.mark .mark-bth{display:flex;align-items:center;gap:4px;flex-basis:100%;margin-top:1px;font-family:"Arial Narrow","Roboto Condensed",var(--body);font-size:11px;font-weight:700;letter-spacing:.02em;color:#4A5157;line-height:1}
.mark .mark-bth img{width:12px;height:12px;flex:none}
@media (max-width:700px){.mark .mark-bth{font-size:10px;margin-top:2px;flex-basis:auto}}
@media (max-width:360px){.mark .mark-bth{display:none}}
.login-bth{display:block;width:260px;max-width:82%;height:auto;margin:4px auto 16px}
.login-ws{border-top:1px dashed var(--rule);padding-top:12px;margin:0 0 6px}
.login-ws .login-logo{width:88px;height:88px;margin:0 auto 6px}
.login-biz{font-family:var(--display);font-size:22px;color:var(--navy);margin:0 0 8px;letter-spacing:.01em}

/* v1.22.0 short on delivery + substitutions */
.sub-link{display:block;font-size:12.5px;color:var(--ink-2);margin-top:2px;text-decoration:underline;text-underline-offset:2px}
.sub-link b{color:var(--ink)}
.rrow.r-sub{border-color:#D9C68A;background:#FFFBEE;box-shadow:inset 4px 0 0 #C9A227}
.r-sub .rstat .v{color:#7A5D00}
.short-lines{list-style:none;margin:10px 0;padding:0}
.short-lines li{padding:7px 0;border-bottom:1px solid var(--rule);font-size:15px}
.short-lines li:last-child{border-bottom:0}
.short-lines .cat{font-size:12px;color:var(--ink-2)}
.short-n{display:block;font-size:13.5px;color:var(--bad)}
.short-who{margin:6px 0 10px}
.short-pick{margin:4px 0 0 26px}
.short-box{margin:10px 0 0;padding:10px 12px;border-radius:12px;background:var(--bad-bg);border:1px solid #E8A5A5}
.short-box .btn{margin-top:8px}
.short-card{margin:0 0 12px;border-left:4px solid var(--bad)}
.short-tl{list-style:none;margin:0;padding:0}
.short-tl li{padding:6px 0;border-bottom:1px solid var(--rule);font-size:14px}
.short-tl li:last-child{border-bottom:0}
.sub-link b{display:inline}
.short-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.short-acts .btn{flex:0 1 auto}
.sheet-card p{overflow-wrap:anywhere}

/* v1.23.0 demo sign-in + banner (any theme) */
.demo-bar{background:var(--butter);color:#1F2326;font-weight:700;font-size:13.5px;text-align:center;padding:7px 12px}
/* v1.42.1 demo: get-in-touch everywhere */
.demo-bar{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px}
.demo-cta{display:inline-block;background:#1F2326;color:#fff!important;padding:5px 14px;border-radius:999px;text-decoration:none!important;font-weight:800;white-space:nowrap}
.demo-cta:hover{background:#000}
.cta-card{margin:18px 0 0;padding:20px 18px;border-radius:var(--r);background:#1F2326;color:#fff;text-align:center;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.cta-k{margin:0;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:#F2B705;font-weight:800}
.cta-h{margin:6px 0 8px;font:700 25px/1.15 "Barlow Condensed","Libre Franklin",Arial,sans-serif;color:#fff}
.cta-list{list-style:none;margin:0 0 16px;padding:0;font-size:14.5px;color:#E4E0D8;text-align:left;display:inline-block}
.cta-list li{margin:4px 0}
.cta-list li::before{content:"✓ ";color:#F2B705;font-weight:800}
.cta-btn{display:block;background:#F2B705;color:#1F2326!important;font-weight:800;font-size:17px;padding:14px 16px;border-radius:999px;text-decoration:none!important;transition:transform .12s}
.cta-btn:hover{transform:translateY(-1px);background:#FFC61A}
.cta-note{margin:10px 0 0;font-size:12.5px;color:#BDB8AE}
.menu-cta{background:#FFF4D1;border-radius:10px;font-weight:800}
/* v1.43.1 demo: inventory-control pitch */
.ctl-card{margin:18px 0 0;padding:20px 18px;border-radius:var(--r);background:#fff;border:2px solid #1F2326;color:#1F2326;text-align:center;box-shadow:0 6px 18px rgba(0,0,0,.08)}
.ctl-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px;text-align:left}
.ctl-steps div{background:#FFF4D1;border-radius:12px;padding:10px 12px;border-top:5px solid #F2B705}
.ctl-steps b{display:block;font-size:15px}
.ctl-steps span{display:block;font-size:13.5px;color:#3A3F44;margin-top:3px}
@media (max-width:600px){.ctl-steps{grid-template-columns:1fr}}
/* v1.43.1 demo: big how-to guides block */
.howto-card{display:block;margin:18px 0 0;padding:20px 18px;border-radius:var(--r);background:#FFF4D1;border:2px solid #F2B705;color:#1F2326!important;text-align:center;text-decoration:none!important;box-shadow:0 6px 18px rgba(0,0,0,.10);transition:transform .12s}
.howto-card:hover{transform:translateY(-1px)}
.howto-k{display:block;font-size:12.5px;letter-spacing:.09em;text-transform:uppercase;color:#7A5A00;font-weight:800}
.howto-h{display:block;margin:6px 0 6px;font:700 25px/1.15 "Barlow Condensed","Libre Franklin",Arial,sans-serif;color:#1F2326}
.howto-p{display:block;margin:0 0 14px;font-size:14.5px;color:#3A3F44}
.howto-btn{display:block;background:#1F2326;color:#fff;font-weight:800;font-size:17px;padding:14px 16px;border-radius:999px}
.demo-logins{margin:18px 0 0;padding:14px;border-radius:var(--r);background:var(--gold-bg);border:1px solid var(--butter)}
.demo-h{margin:0 0 10px;font-size:14.5px}
.demo-who{margin:0 0 8px;justify-content:space-between;background:#fff}
/* v1.28.0 bought outside */
.ob-item{padding:8px 0 4px}
.ob-src{margin:4px 0 6px}
.ob-src .chip{border:0;cursor:pointer;font-size:14px;padding:6px 12px}
#obUnit{margin:6px 0 2px}
.form label.ob-chk{display:flex;flex-direction:row;gap:10px;align-items:flex-start;text-align:left;font-weight:600;margin:8px 0}
.form label.ob-chk input{width:22px;height:22px;min-height:0;flex:none;margin-top:2px;padding:0}

/* v1.29.0 first sign-in language picker (English / Español) */
.lang-pick{position:fixed;inset:0;z-index:200;background:rgba(15,20,30,.55);display:flex;align-items:center;justify-content:center;
  padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.lang-card{background:var(--card,#fff);color:var(--ink,#1F2326);border-radius:16px;padding:22px 20px;width:100%;max-width:360px;display:flex;flex-direction:column;gap:10px;box-shadow:0 12px 40px rgba(0,0,0,.25)}
.lang-card .h2{margin:0;line-height:1.15}
.lang-card .h2 span{font-size:.85em;opacity:.75}
.lang-card .btn{font-size:20px;padding:14px}
.login-lang{text-align:center;margin:14px 0 0;font-size:14px}
.login-lang a{margin:0 6px}
.login-lang a.on{font-weight:700;text-decoration:none}
.totbar .btn{white-space:nowrap}

/* v1.30.0 item photos: small photo button next to an item's name, and the pop-up */
.pic-btn{display:inline-flex;align-items:center;justify-content:center;vertical-align:-4px;width:26px;height:22px;margin:0 2px 0 4px;padding:0;
  border:1.5px solid var(--navy);border-radius:7px;background:var(--paper);color:var(--navy);cursor:pointer}
.pic-btn svg{width:16px;height:16px}
.pic-btn:active{background:var(--navy);color:var(--paper)}
.pic-view{margin:0 0 10px}
.pic-view img{display:block;width:100%;max-height:60vh;object-fit:contain;background:#fff;border:1px solid var(--rule);border-radius:12px}
.pic-miss{padding:24px 12px;text-align:center;background:var(--sky-2,#E8EEF7);border-radius:12px;font-weight:600}
.pic-h{margin:0 0 4px}
.pic-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:14px;color:var(--ink-2);margin:0 0 12px}
.pic-meta span:first-child{font-weight:700;color:var(--navy)}
.sheet-card .btn-block + .btn-block{margin-top:8px}
/* v1.32.0 long names + Spanish pill ("Todo mandado") no longer push the menu button off narrow phones */
.bar .mark{min-width:0;flex:0 1 auto}
.bar .mark-txt{min-width:0;overflow:hidden}
.bar .mark-t{overflow:hidden;text-overflow:ellipsis}
.bar .bell,.bar .pill,.bar .menu-btn{flex:none}
@media (max-width:420px){.bar{gap:8px;padding-left:12px;padding-right:12px}}
/* v1.33.0 Toast sales: manager home card, #/sales, par report */
.sales-panel .grid-btns{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.bigbtn.sales-tile{min-height:0;padding:12px;gap:2px}
.sales-tile .st-k{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;opacity:.75}
.sales-tile .st-v{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}
.sales-tile .st-s{font-size:12.5px}
.sales-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.sales-tbl td.num,.sales-tbl th.num{font-variant-numeric:tabular-nums}
.sales-tbl tr.wkend td:first-child{font-weight:600}
.sales-tbl tr.muted td{opacity:.65}
/* v1.33.1 top sellers tiles */
.bigbtn.sales-top{justify-content:flex-start;grid-column:1/-1}
/* v1.51.0 Today / Yesterday / Discounts three across, phones too */
.sales-panel .grid-btns.sales-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.sales-3 .bigbtn.sales-tile:not(.sales-top){padding:10px 8px;min-width:0;overflow:hidden}
@media (max-width:480px){.sales-3 .sales-tile .st-v{font-size:19px}.sales-3 .sales-tile .st-k{font-size:11px;letter-spacing:.02em}.sales-3 .sales-tile .st-s{font-size:11.5px}}
.sales-disc .st-y b{font-variant-numeric:tabular-nums}
.st-list{margin:4px 0 0;padding:0;list-style:none;font-size:14px;line-height:1.45}
.st-list li{display:flex;gap:8px;align-items:baseline}
.st-list li b{min-width:2.2em;text-align:right;font-variant-numeric:tabular-nums}
/* v1.33.2 item sales (tap Top sellers) */
.st-more{font-weight:500;font-size:12px;color:var(--ink-2);margin-left:6px;white-space:nowrap}
.is-step{display:flex;align-items:center;gap:10px;margin:2px 0 8px}
.is-step .btn-sm{min-width:44px;font-size:18px;line-height:1}
.is-step .btn-sm:disabled{opacity:.35}
.is-day{flex:1;text-align:center;font-weight:700}
.is-sum{margin:4px 0 10px}
.is-tbl td:first-child,.is-tbl th:first-child{width:2.2em;color:var(--ink-2)}
/* v1.35.0 install flyer */
.flyer-wrap{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.flyer-card{flex:1 1 320px;max-width:560px}
.flyer-img{display:block;width:100%;height:auto;border-radius:10px;border:1px solid rgba(0,0,0,.12)}
.flyer-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.flyer-people{border:0;padding:0;margin:0 0 10px;display:flex;flex-direction:column;gap:6px}
.flyer-people legend{font-weight:700;margin-bottom:6px}
.linkbtn{background:none;border:0;padding:0 0 0 8px;font:inherit;font-size:.85em;text-decoration:underline;cursor:pointer;color:inherit}
.recount{color:#C8322B;font-weight:700}
/* v1.36.0 On hand editable on the order + review screens */
.ocell.onh-edit{display:flex;flex-direction:column;align-items:center}
.ocell.onh-edit input{width:4.2em;max-width:100%;text-align:center;font:inherit;font-weight:700;padding:6px 4px;border-radius:8px;border:1px solid var(--rule,#cfcac0);background:var(--field,var(--card,#fff));color:inherit}
.ocell.onh-edit input:focus{outline:2px solid var(--accent,#F2B705);outline-offset:1px}
.orow.bad .onh-edit input{border-color:#C8322B;background:#fdecea;color:#1F2326}
.totbar-btns{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.totbar .btn.btn-light{background:transparent;color:inherit;border:2px solid currentColor}
.totbar .btn.btn-light:hover{background:rgba(255,255,255,.12);color:inherit;border-color:currentColor}
@media (max-width:480px){.totbar .btn{min-height:44px;font-size:15px;padding-left:12px;padding-right:12px}}
.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);z-index:60;max-width:min(92vw,520px);background:#1F2326;color:#fff;
  padding:12px 16px;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,.35);font-weight:600;font-size:15px;line-height:1.35;text-align:center;cursor:pointer}
/* v1.38.0 "What's on order?" - the pill on Orders sent, the search, asks for items not on an order */
.find-pill-row{margin:0 0 14px}
.find-pill{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%;min-height:58px;
  border-radius:99px;text-align:center;line-height:1.2;padding:8px 18px;text-decoration:none}
.find-pill .fp-t{display:flex;align-items:center;gap:7px;font-weight:800;font-size:16.5px}
.find-pill .fp-i{flex:none}
.find-pill .fp-m{font-size:12.5px;font-weight:500;opacity:.85}
.find-pill .fp-m b{font-weight:800}
.oores .h2{margin-top:14px}
.oores:empty{display:none}
.oohit .tiny b{color:inherit}
.hrow.oorow .btn-sm{pointer-events:auto}
.req-t{color:var(--warn);font-weight:600}
.oo-other{margin:10px 0 0}
.oo-other .linkbtn{padding:0;font-size:1em;color:var(--royal)}
.oo-ord{padding:10px 14px;margin:0 0 8px}
.oo-ord summary{cursor:pointer;list-style-position:inside}
.oo-lines{margin:8px 0 10px;padding-left:18px;font-size:14px}
.oo-lines li{margin:2px 0}
.reqrow{background:var(--card);border:1px solid var(--rule);border-left:5px solid var(--gold);border-radius:10px;padding:10px 12px;margin:0 0 8px}
.reqrow.hl{box-shadow:0 0 0 3px var(--butter)}
.reqtop{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.reqtop .chip{white-space:nowrap}
.reqacts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.muted-h{opacity:.75;margin-top:18px}
.flagreq{display:block;margin-top:4px;padding:3px 8px;border-radius:8px;font-size:12.5px;line-height:1.35;text-decoration:none;
  background:var(--gold-bg);color:var(--warn)}
.flagreq b{display:inline}
.flagreq .tiny{color:inherit;opacity:.8}
.req-note{margin-top:-2px}
.req-note a{color:var(--warn)}
.ask-q{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:6px 0 8px}
.ask-q label{flex:0 0 120px}
.ask-go{display:flex;flex-direction:column;gap:8px;margin-top:8px}
#askname,#askv,#askqty,#asknote,#reqnote{display:block;width:100%;margin-top:4px;padding:10px 12px;border:1px solid var(--rule);border-radius:10px;background:var(--field,#fff);color:var(--ink);font-size:16px}
#asknote,#reqnote{margin:4px 0 8px}
/* v1.39.0 photos / files on tasks and notes */
.nfiles .h2{margin-bottom:8px}
.nf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 8px}
.nf-grid[hidden]{display:none}
.nf-tile{position:relative;border:1px solid var(--rule);border-radius:10px;overflow:hidden;background:var(--card);min-height:96px}
.nf-img{display:block;height:100%}
.nf-img img{display:block;width:100%;height:110px;object-fit:cover}
.nf-doc a{display:flex;flex-direction:column;gap:3px;padding:10px;height:100%;color:inherit;text-decoration:none}
.nf-ext{display:inline-block;align-self:flex-start;background:var(--navy);color:var(--paper);border-radius:6px;padding:1px 6px;font-size:11px;font-weight:800;letter-spacing:.04em}
.nf-name{font-weight:600;font-size:13.5px;line-height:1.25;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nf-x{position:absolute;top:4px;right:4px;width:30px;height:30px;border-radius:50%;border:0;background:rgba(0,0,0,.62);color:#fff;font-size:19px;line-height:1;cursor:pointer}
.nf-add{display:flex;flex-wrap:wrap;gap:8px}
.nf-add[hidden]{display:none}
.nf-pick{cursor:pointer}
.nf-pend{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:6px}
.nf-pend:empty{display:none}
.nf-pend li{position:relative;display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:1px dashed var(--rule);border-radius:10px;padding:8px 44px 8px 10px;background:var(--card)}
.nf-pend .nf-x{top:50%;transform:translateY(-50%)}
.nf-doc a{padding-right:38px}

/* v1.39.1 copyright / trademark notice - sign-in page and bottom of home */
.legal-foot{max-width:560px;margin:26px auto 10px;padding:12px 16px 0;border-top:1px solid var(--rule);text-align:center;color:var(--ink-2);font-size:11.5px;line-height:1.45}
.legal-foot p{margin:0 0 4px}
.legal-foot .legal-c{font-size:12px}
.legal-foot b{font-weight:700;color:var(--ink-2)}
@media print{.legal-foot{display:none}}

/* v1.40.0 terms of use (first sign-in) */
.terms-card{max-width:640px;margin:22px auto 30px}
.terms-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 4px}
.terms-kicker{margin:0;font-weight:800;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.terms-for{margin:-2px 0 8px;color:var(--ink-2);font-size:14.5px}
.terms-sec{border-top:1px solid var(--rule);padding:10px 0 2px}
.terms-sec .h2{display:flex;align-items:center;gap:8px;font-size:17px;margin:0 0 6px}
.terms-n{flex:none;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--sky);color:var(--navy);font:800 12.5px/1 var(--body)}
.terms-sec p,.terms-sec li{font-size:15px;line-height:1.5;margin:0 0 6px}
.terms-sec ul{margin:0 0 6px;padding-left:20px}
.terms-ver{margin:12px 0 0}
.terms-agree{position:sticky;bottom:0;background:var(--card);margin:14px -4px 0;padding:12px 4px calc(10px + env(safe-area-inset-bottom,0px));border-top:2px solid var(--rule)}
.terms-agree-line{margin:0 0 10px;font-weight:700;font-size:14px;text-align:center}
.terms-agree .btn + .btn{margin-top:8px}
.terms-back{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 0}
.legal-foot .legal-l{margin-top:6px;font-size:12.5px}
.legal-foot .legal-l a{color:var(--royal);font-weight:700}
@media print{.terms-switch,.terms-back,.terms-agree,.bar,.admin-tabs{display:none!important}.terms-card{box-shadow:none;border:0;margin:0;max-width:none}}
.terms-need .admin-tabs,.terms-need .bar-link:not(.bar-out){display:none!important}

/* v1.45.0 order vs delivery */
.chip-zero{background:#EFE6F7;color:#5B2C83}
.vs-tabs{display:flex;gap:4px;background:var(--card);border:1px solid var(--rule);border-radius:99px;padding:3px;margin:4px 0 10px}
.vs-tabs button{flex:1;border:0;background:transparent;padding:8px 6px;border-radius:99px;font-weight:700;color:var(--ink-2);cursor:pointer;min-height:40px;font-size:14px}
.vs-tabs button span{font-weight:400;opacity:.8}
.vs-tabs button.on{background:var(--navy);color:var(--paper)}
.vs-sum{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.vs-sum button.chip{border:0;cursor:pointer;font:inherit;font-size:13px;font-weight:700;padding:5px 10px}
.vs-sum button.chip.on{outline:2px solid var(--navy);outline-offset:1px}
.vs-list{display:flex;flex-direction:column;gap:8px}
.vs-row{border:1px solid var(--rule);border-radius:12px;padding:9px 11px;background:var(--card)}
.vs-row .vs-name{font-size:15px;line-height:1.35}
.vs-row .cat{font-size:12px;color:var(--ink-2)}
.vs-row .chip{font-size:12px;vertical-align:1px}
.vs-missing,.vs-short{border-color:#E8A5A5;background:var(--bad-bg);box-shadow:inset 4px 0 0 var(--bad)}
.vs-zeroed{border-color:#CDB4E3;background:#FAF5FE;box-shadow:inset 4px 0 0 #5B2C83}
.vs-extra,.vs-sub{box-shadow:inset 4px 0 0 var(--warn)}
.vs-not_ordered{opacity:.7}
.vs-nums{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin-top:7px}
.vs-n{display:flex;flex-direction:column;align-items:center;background:var(--sky-2);border-radius:8px;padding:4px 2px;font-weight:700;font-size:15px;min-width:0}
.vs-n i{font-style:normal;font-weight:600;font-size:10.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.vs-n small{font-weight:400;font-size:10px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.vs-adj.neg{background:#FBE7E5;color:var(--bad)} .vs-adj.pos{background:var(--good-bg);color:var(--good)}
.vs-ord{background:var(--card);border:1px solid var(--rule)}
.vs-missing .vs-came,.vs-short .vs-came{background:var(--bad);color:#fff}
.vs-missing .vs-came i,.vs-short .vs-came i{color:#fff}
.vs-zeroed .vs-ord{background:#5B2C83;color:#fff;border-color:#5B2C83}
.vs-zeroed .vs-ord i{color:#fff}
.vs-link{margin-left:4px}
@media (max-width:380px){.vs-n{font-size:14px}.vs-n i{font-size:9.5px}}
/* v1.45.1 */
.vs-top{margin:10px 0 0}
.vs-top .vs-link{margin:0;display:block;text-align:center;white-space:normal;background:var(--navy);color:var(--paper);border-color:var(--navy)}
.vs-acts{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
/* v1.45.3 pick an invoice scanned on its own */
.pick-card{border:2px solid var(--royal)}
.pick-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;width:100%;text-align:left;background:var(--card);color:var(--ink);
  border:1px solid var(--rule);border-radius:12px;padding:10px 12px;margin:8px 0 0;font:inherit;font-size:15px;cursor:pointer}
.pick-row > b{flex:0 1 auto}.pick-row .tiny{flex:1 1 100%;order:2}.pick-row .btn{margin-left:auto}
.pick-card details{margin-top:10px}.pick-card summary{cursor:pointer}
.pick-what{background:var(--sky-2);border-radius:10px;padding:10px 12px;margin:8px 0}
/* v1.46.0 Needs a look */
.look-card .look-why{margin:6px 0;font-weight:600;color:var(--warn)}
.look-card > div > a{color:inherit;text-decoration:none;display:block}

/* v1.48.0 paper count sheet: photos -> check -> fill */
.paper-btn{margin-left:auto}
.spinner{width:38px;height:38px;margin:8px auto 4px;border-radius:50%;border:4px solid var(--rule);border-top-color:var(--red);animation:ppspin .9s linear infinite}
@keyframes ppspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}
.pp-head .pp-facts{font-size:14px;margin-bottom:6px}
.pp-head .warn-line{margin:6px 0}
.pp-thumbs{display:flex;gap:8px;overflow-x:auto;margin-top:8px}
.pp-thumbs img{height:84px;border-radius:8px;border:1px solid var(--rule);display:block}
.pp-h{margin:18px 0 8px}
.pp-h-warn{color:var(--warn)}
.pp-list{display:flex;flex-direction:column;gap:6px}
.pp-row .pp-use{flex:none;display:flex;align-items:center}
.pp-row .pp-use input{width:22px;height:22px;accent-color:var(--navy)}
.pp-body{flex:1;min-width:0}
.pp-name{font-weight:600;line-height:1.25;overflow-wrap:anywhere}
.pp-n{display:inline-block;min-width:24px;font-size:12px;font-weight:700;color:var(--ink-2)}
.pp-meta{font-size:12.5px;color:var(--ink-2);margin-top:2px}
.pp-why{font-size:13px;color:var(--warn);font-weight:600;margin-top:3px}
.crow.pp-unsure{border-color:var(--gold);background:var(--warn-bg)}
.crow.pp-row.bad{border-color:var(--bad);background:var(--bad-bg)}
.pp-pick{margin-top:6px;max-width:100%;padding:6px 8px;border:1.5px solid var(--rule);border-radius:8px;background:var(--field,#fff);color:var(--ink)}
.pp-alt{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:14px 0 24px}

/* ---------- v1.50.0 order-only vendor (Restaurant Depot) + "Get at Depot" */
.ohead.oo,.orow.oo{grid-template-columns:minmax(0,1fr) 132px 74px}
.oo-note{margin:4px 0 0;color:var(--ink-2)}
@media (max-width:640px){
  .orow.oo{grid-template-columns:1fr 1fr;grid-template-areas:"n n" "s a"}
}
.depot-slot{display:block;margin-top:4px}
.depot-slot:empty{display:none}
.btn-depot{min-height:28px;padding:2px 10px;font-size:12.5px;border-width:1.5px;border-color:var(--navy);color:var(--navy);background:#fff}
.depot-tag{font-size:12.5px;font-weight:700;color:var(--navy)}
.orow.moved-depot{background:#f3f6fb}
.orow.moved-depot .amt .v{color:var(--ink-2)}
.linkbtn{background:none;border:0;padding:0 4px;color:var(--red);font:inherit;font-size:12.5px;text-decoration:underline;cursor:pointer}
.depot-from{display:block;font-size:12.5px;font-weight:700;color:var(--navy)}

/* v1.51.0 discount details: who and what */
.dd-chips{display:flex;flex-wrap:wrap;gap:6px}
.dd-chips .chip{border:1px solid currentColor;background:transparent;border-radius:999px;padding:5px 10px;font:inherit;font-size:13px;cursor:pointer;opacity:.8}
.dd-chips .chip.on{opacity:1;font-weight:700;box-shadow:inset 0 0 0 1px currentColor}
.dd-list{list-style:none;margin:0;padding:0}
.dd-row{padding:10px 0;border-bottom:1px solid rgba(0,0,0,.08)}
.dd-row:last-child{border-bottom:0}
.dd-top{display:flex;justify-content:space-between;gap:8px;font-size:13px;opacity:.85}
.dd-amt{font-size:16px;font-variant-numeric:tabular-nums;opacity:1}
.dd-name{margin:2px 0}
.dd-what,.dd-who{overflow-wrap:anywhere}
