/* 3rd Wave's look on top of the shared core (loaded after app.css).
   Part 1: every rule where 3rd Wave's own app differs from the core's design system (its colors, type and tweaks), taken from
   scratchpad/projects/restaurant-growth-suite/third-wave-cafe/owner-app/app.css.
   Part 2: 3rd Wave's brand layer (src/layer.css in the same folder), unchanged. Ink #13302E anchors, wave teal #167D77 is the action color,
   sunset orange #F2683C means "needs you", sun yellow #FFC845 is the small accent. */
@font-face{font-family:"DM Sans";src:url(assets/fonts/dmsans-latin.woff2) format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:"Titan One";src:url(assets/fonts/titanone-latin.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Yellowtail";src:url(assets/fonts/yellowtail-latin.woff2) format("woff2");font-display:swap}
:root{
  --bg:#F3F8F6;--surface:#fff;--panel:#E7F1EE;--panel-2:#D7E8E4;--line:#DDEBE8;--line-2:#BFD8D3;
  --ink:#13302E;--ink-2:#45625F;--ink-3:#5B7774;
  --red:#167D77;--red-ink:#0F625D;--red-soft:#DFF1EE;--red-line:#A8D5CF;
  --navy:#13302E;--navy-2:#1C4440;--navy-soft:#E1EFEC;
  --green:#1F7A4D;--green-ink:#17603C;--green-soft:#E1F2E8;
  --amber:#8A5C0A;--amber-soft:#FBEFD6;
  --cream:#FFF7E8;
  --sans:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--serif:"DM Sans",system-ui,sans-serif;--display:"Titan One","Arial Rounded MT Bold",ui-rounded,system-ui,sans-serif;
  --r:16px;--r-c:12px;--r-t:8px;
  --e1:0 1px 2px rgba(19,48,46,.06),0 6px 16px -6px rgba(19,48,46,.10);
  --e2:0 2px 4px rgba(19,48,46,.06),0 18px 36px -14px rgba(19,48,46,.22);
  --e3:0 8px 16px rgba(19,48,46,.10),0 32px 64px -20px rgba(19,48,46,.35);
  --gut:16px;--bar-h:64px;--rail:232px;--demo-h:44px;
  --spring:cubic-bezier(.34,1.56,.64,1);--out:cubic-bezier(.22,1,.36,1);
}
.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:45;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--bar-h) + env(safe-area-inset-bottom));padding:0 max(4px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(4px,env(safe-area-inset-left));background:#fff;box-shadow:0 -1px 0 var(--line),0 -10px 28px -14px rgba(19,48,46,.22)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 20px;border:0;border-radius:var(--r-c);background:var(--red);color:#fff;font:700 16px/1 var(--sans);text-decoration:none;cursor:pointer;box-shadow:0 1px 2px rgba(15,98,93,.3),0 8px 16px -8px rgba(22,125,119,.55);transition:transform .14s var(--out),background .15s,box-shadow .15s;-webkit-tap-highlight-color:transparent}
.btn.navy{background:var(--navy);box-shadow:0 1px 2px rgba(19,48,46,.3),0 8px 16px -8px rgba(19,48,46,.55)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(19,48,46,.14)}
select{-webkit-appearance:none;appearance:none;padding-right:40px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2313302E' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 15px center}
.money:focus-within{border-color:var(--navy);box-shadow:0 0 0 3px rgba(19,48,46,.14)}
.switch i::after{content:"";position:absolute;left:3px;top:3px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(19,48,46,.3);transition:transform .28s var(--spring)}
.sheet-backdrop{position:fixed;inset:0;background:rgba(19,48,46,.5);z-index:60}
.al-item.ok{box-shadow:inset 0 0 0 1.5px #A8D5CF,var(--e1)}
.alert-box{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;background:var(--red-soft);color:#7A2E12;padding:12px 14px;border-radius:var(--r-c);font-size:15px}
.toast-undo{background:none;border:0;color:#FFC845;font:700 15px/1 var(--sans);min-height:44px;padding:0 6px;cursor:pointer}
:root{
  --bg:#F3F8F6;--surface:#fff;--panel:#E7F1EE;--panel-2:#D7E8E4;--line:#DDEBE8;--line-2:#BFD8D3;
  --ink:#13302E;--ink-2:#45625F;--ink-3:#5B7774;--navy-2:#1C4440;--navy-3:#0B201E;--navy-soft:#E1EFEC;
  --red-bright:#FFC845;
  --e1:0 0 0 1px rgba(19,48,46,.06),0 1px 2px rgba(19,48,46,.06),0 10px 24px -14px rgba(19,48,46,.22);
  --e2:0 0 0 1px rgba(19,48,46,.07),0 2px 6px rgba(19,48,46,.08),0 24px 44px -20px rgba(19,48,46,.36);
  --e3:0 0 0 1px rgba(19,48,46,.08),0 10px 20px rgba(19,48,46,.12),0 36px 72px -24px rgba(19,48,46,.45);
  --e-navy:0 1px 0 rgba(255,255,255,.08) inset,0 18px 36px -18px rgba(8,30,28,.75);
  --out:cubic-bezier(.23,1,.32,1);
}
.btn{background:linear-gradient(180deg,#1B8C85,#136E69);box-shadow:0 1px 0 rgba(255,255,255,.22) inset,0 1px 2px rgba(10,70,66,.4),0 10px 18px -10px rgba(22,125,119,.7);transition:transform .14s var(--out),box-shadow .16s var(--out),filter .16s}
@media (hover:hover){.btn:hover{background:linear-gradient(180deg,#1B8C85,#136E69);filter:brightness(1.06);transform:translateY(-1px)}.btn.ghost:hover,.btn.navy:hover{filter:none}}
.btn.navy{background:linear-gradient(180deg,var(--navy-2),var(--navy));box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 10px 18px -10px rgba(19,48,46,.7)}
.btn.ghost{background:#fff;box-shadow:inset 0 0 0 1.5px var(--line-2),0 1px 2px rgba(19,48,46,.05)}
.btn.ghost:hover{background:#F6FBFA}
.chips button[aria-pressed="true"],.filters button[aria-pressed="true"],.reasons button[aria-pressed="true"],.sect-chips button[aria-pressed="true"]{background:var(--navy);color:#fff;box-shadow:0 8px 14px -8px rgba(19,48,46,.7)}
.home-band{background:radial-gradient(90% 140% at 100% 0,rgba(22,125,119,.2),transparent 60%),linear-gradient(160deg,var(--navy-2),var(--navy) 55%,var(--navy-3));color:#fff;padding:14px 0 22px}
.todo-lead{background:linear-gradient(170deg,#F47B50,#E85F33);box-shadow:0 1px 0 rgba(255,255,255,.2) inset,0 22px 36px -20px rgba(232,95,51,.85);color:#fff}
.t-card.photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,30,28,0) 30%,rgba(8,30,28,.88))}
.acct-ico{position:relative;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:#fff;background:var(--navy);box-shadow:0 8px 14px -8px rgba(19,48,46,.5)}
.acct-ico.m-google{background:#fff;box-shadow:inset 0 0 0 1px var(--line),0 8px 14px -8px rgba(19,48,46,.3)}
.al-controls .chips button[aria-pressed="true"]{background:var(--red);box-shadow:0 8px 14px -8px rgba(22,125,119,.9)}
.dash-hero{background:radial-gradient(70% 100% at 100% 0,rgba(22,125,119,.22),transparent 60%),linear-gradient(160deg,var(--navy-2),var(--navy) 60%,var(--navy-3));color:#fff;box-shadow:var(--e-navy);padding:20px}
.fn-bar .s0{background:#A9D6CF}
.fn-bar .s1{background:#6BB5AB}
.fn-bar .s2{background:#2F8F86}
.spark-bar{fill:#A9D3CC}
.spark-bar{fill:#7DBDB4}
.acct-ico{box-shadow:0 8px 14px -8px rgba(19,48,46,.45)}
@media (hover:hover){.ai-btn:hover{background:#CDE5E0}}

/* ===== 3rd Wave layer ===== */
:root{--alert:#F2683C;--alert-ink:#9E3B16;--alert-soft:#FDEBE2;--alert-line:#F7C3AC;--sun:#FFC845;--pink:#D12E62;--foam:#92CECD}
/* Titan One has one weight: never fake-bold it, never shout it in capitals */
.display,.app-head h1.display,.band-txt .display,.t-card.navy .big,.site-strip h4,.tent-ask,.stamp,.pf-name,.nl-h{font-weight:400!important;text-transform:none!important;letter-spacing:0}
.script{font:400 1.25em/1 "Yellowtail",cursive;color:var(--sun);letter-spacing:0}
.demo-tag{background:var(--sun);color:var(--ink)}
body{caret-color:var(--red)}
::selection{background:var(--sun);color:var(--ink)}

/* alerts and "needs you" use sunset orange; ink text on it, never white */
.pill.new{background:var(--alert-soft);color:var(--alert-ink)}
.pill.transfer{background:var(--amber-soft);color:var(--amber)}
.badge,.side-nav a[aria-current="page"] .badge{background:var(--alert);color:var(--ink)}
.wait.late{color:var(--alert-ink)}.wait.late::before{background:var(--alert)}
.al-tag.hit{background:var(--alert);color:var(--ink)}
.al-item.no,.al-list .al-item.no{box-shadow:inset 4px 0 0 var(--alert)!important}
.side-nav a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--sun)}
.t86-name em,.dish-line em{color:var(--alert-ink);background:var(--alert-soft)}

/* section header art: the section's own icon on a soft tile, so the picture always means the section */
/* section badge: a glossy 3rd Wave tile (teal glass, sun wave, white icon) with real depth */
.head-ill{flex:none;position:relative;overflow:hidden;width:64px;height:64px;border-radius:calc(var(--r) + 4px);display:grid;place-items:center;color:#fff;
  background:radial-gradient(120% 90% at 28% 12%,#3FB5AC 0%,#1C8E87 38%,#13605C 78%,#0E4744 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -10px 18px rgba(8,40,38,.35),0 12px 22px -12px rgba(19,48,46,.55),0 2px 5px rgba(19,48,46,.14)}
.head-ill::before{content:"";position:absolute;inset:-30% -10% auto -10%;height:70%;background:radial-gradient(closest-side,rgba(255,255,255,.38),rgba(255,255,255,0));pointer-events:none}
.head-ill .hw{position:absolute;left:-8%;right:-8%;bottom:-2px;height:24%;pointer-events:none}
.head-ill .hw path:first-child{fill:#FFC845;opacity:.95}.head-ill .hw path:last-child{fill:#F2683C;opacity:.9}
.head-ill svg:not(.hw){position:relative;width:36px;height:36px;z-index:1;filter:drop-shadow(0 2px 2px rgba(6,32,30,.35));transform:translateY(-4px)}
.head-ill svg .tone{opacity:.9;fill:#FFC845}
@media (min-width:900px){.head-ill{width:84px;height:84px}.head-ill svg:not(.hw){width:46px;height:46px}}
.app-head h1{font:400 34px/1.05 var(--display);color:var(--ink)}
@media (min-width:900px){.app-head h1{font-size:42px}}
@media (max-width:899.98px){.app-head h1{font-size:30px}.head-ill{width:56px;height:56px}.head-ill svg:not(.hw){width:32px;height:32px}}
.empty-state .es-ico{width:72px;height:72px;border-radius:var(--r);display:grid;place-items:center;background:var(--navy-soft);color:var(--red)}
.empty-state .es-ico svg{width:40px;height:40px}.empty-state .es-ico svg .tone{opacity:.3;fill:var(--foam)}

/* Home band: ink field, sun glow, the badge's wave as the seam */
.home-band{position:relative;background:radial-gradient(70% 120% at 100% 0,rgba(242,104,60,.28),transparent 60%),radial-gradient(60% 90% at 0 100%,rgba(22,125,119,.45),transparent 70%),linear-gradient(160deg,var(--navy-2),var(--navy) 55%,var(--navy-3));padding-bottom:46px}
.home-band .seam{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:34px;display:block}.home-band .seam path{fill:var(--bg)}
.home-band .home-top img{width:150px}
.band-txt .greet{font:600 19px/1.2 var(--sans)}.band-txt .greet .script{font-size:1.45em;margin-left:2px}
.band-txt .display{font-size:44px;line-height:1.02}.band-txt .display em{color:var(--sun)}
@media (min-width:900px){.home-band{padding-bottom:58px}.band-txt .display{font-size:60px}.home-band .seam{height:46px}}
.home-grid{margin-top:4px}
.todo-lead{background:linear-gradient(170deg,#F47B50,#E85F33);color:var(--ink);box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 22px 36px -20px rgba(232,95,51,.8)}
.todo-lead .todo-ico{background:rgba(19,48,46,.12);color:var(--ink)}
.todo-lead small,.todo-lead em{color:rgba(19,48,46,.82)}.todo-lead .go{color:var(--ink)}
.todo .todo-ico{background:var(--navy-soft);color:var(--red)}
.todo-ico svg .tone{opacity:.28}
.alldone{background:#fff;color:var(--ink);box-shadow:var(--e1);padding:12px}
.tonight{grid-auto-rows:minmax(168px,auto)}
.t-card .tc-ico{width:48px;height:48px;border-radius:var(--r-c);display:grid;place-items:center;background:var(--navy-soft);color:var(--red)}
.t-card .tc-ico svg{width:28px;height:28px}.t-card .tc-ico svg .tone{opacity:.28}
.t-card.add,.t-card.hours-card{background:#fff;padding:14px;justify-content:space-between;align-items:flex-start;gap:8px}
.t-card.hours-card .tc-b,.t-card.add .tc-b{display:grid;gap:3px;padding:0}
.t-card.hours-card b{font:700 16px/1.25 var(--sans)}.t-card.hours-card small{font:500 14px/1.3 var(--sans);color:var(--ink-2)}
.t-card.hours-card.closed{background:var(--alert-soft)}.t-card.hours-card.closed .tc-ico{background:var(--alert);color:var(--ink)}
.t-card.navy .big{color:var(--sun)}

/* stats on a dark band: ink, not teal, so the teal buttons stay the one thing to press */
.stat-band,.dash-hero,.dash-compare .dc-us,.al-controls{background:radial-gradient(70% 120% at 100% 0,rgba(22,125,119,.35),transparent 65%),linear-gradient(160deg,var(--navy-2),var(--navy))}
.dash-hero{background:radial-gradient(70% 100% at 100% 0,rgba(242,104,60,.26),transparent 60%),radial-gradient(60% 80% at 0 100%,rgba(22,125,119,.4),transparent 70%),linear-gradient(160deg,var(--navy-2),var(--navy) 60%,var(--navy-3))}
.fn-bar .s1{background:#6FB3AC}.fn-bar .s2{background:#2F8F86}.fn-bar .s3{background:var(--red)}
.why-bar i{background:var(--red)}.spark path{stroke:var(--red)}.spark circle{fill:var(--alert)}.spark-bar.on{fill:var(--red)}
.al-controls .chips button[aria-pressed="true"]{background:var(--sun);color:var(--ink);box-shadow:none}
.chips button[aria-pressed="true"],.filters button[aria-pressed="true"],.sect-chips button[aria-pressed="true"],.seg button[aria-pressed="true"]{background:var(--navy);color:#fff}
.ai-btn{background:var(--navy-soft);color:var(--ink)}.ai-btn svg{width:18px;height:18px;color:var(--alert)}.ai-btn svg .tone{opacity:.35}
@media (hover:hover){.ai-btn:hover{background:#D3E9E5}}
.post-body .ai-btn{justify-self:start}
.btn svg .tone{opacity:.3}
.actions>.btn span{min-width:0}

/* calls: what they wanted on the left, what the agent did on the right */
.thread{display:grid;gap:8px}
.text-back{background:var(--navy-soft)}
.text-in{background:linear-gradient(160deg,var(--navy-2),var(--navy));max-width:92%}
.text-in small{opacity:.78}

/* reviews */
.big-rating{display:flex;align-items:center;gap:14px;margin-top:12px}
.big-rating b{font:400 54px/1 var(--display);color:var(--ink)}
.big-rating span{display:grid;gap:2px}.big-rating .stars{font-size:20px}.big-rating small{color:var(--ink-2);font-size:14px}
.stars{color:#E9A800}
.nfc-spot{display:grid;justify-items:center;gap:2px;color:var(--red);font-size:12px;font-weight:700}
.tent-face::before{border-color:var(--foam)}
.tap-card{background:linear-gradient(160deg,var(--navy-2),var(--navy))}
.tap-card.photo-tag{background-size:cover;background-position:center}
.tap-logo{width:96px;filter:none}

/* hours & listings */
.closed-card.is-closed{box-shadow:inset 4px 0 0 var(--alert),var(--e1)}
.hours-edit{display:grid;gap:10px}
.hrow{display:grid;grid-template-columns:76px minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:center}
.hrow b{font:700 15px/1.2 var(--sans)}.hrow span{color:var(--ink-2);font-weight:600}
.lst{list-style:none;margin:10px 0 0;padding:0}
.lst-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:start;padding:14px 0}
.lst-row+.lst-row{border-top:1px solid var(--line)}
.lst-row .pill,.lst-row .btn{align-self:start}
.lst-txt b{display:block;font:700 16px/1.25 var(--sans)}.lst-txt small{display:block;color:var(--ink-2);font-size:14px}
.lst-hours{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:6px;font:600 13.5px/1.35 var(--sans);color:var(--ink-2);font-variant-numeric:tabular-nums}
.lst-hours .diff{color:var(--alert-ink);text-decoration:underline;text-decoration-color:var(--alert);text-decoration-thickness:2px;text-underline-offset:3px}
/* official brand marks (Simple Icons paths of each company's logo, brand colors) */
.acct-ico.m-yelp{background:#FF1A1A;color:#fff}.acct-ico.m-yelp svg{width:62%;height:62%}
.acct-ico.m-square{background:#fff;color:#000;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.06)}.acct-ico.m-square svg{width:58%;height:58%}
.acct-ico.m-site{background:#fff;padding:0;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(19,48,46,.1)}.acct-ico.m-site img{width:100%;height:100%;object-fit:cover;display:block}
.acct-ico.m-claude{background:#D97757;color:#fff}.acct-ico.m-claude svg{width:58%;height:58%}
.acct-ico.m-elevenlabs{background:#000;color:#fff}.acct-ico.m-elevenlabs svg{width:52%;height:52%}.acct-ico.m-phone{background:linear-gradient(145deg,#1B8C85,#0F625D)}
.acct-ico.m-mail{background:linear-gradient(145deg,#F47B50,#D9552A)}

/* specials & 86 */
.wk-list{list-style:none;margin:0;padding:0;display:grid}
.wk-card{display:flex;align-items:center;gap:12px;padding:12px 0}.wk-card+.wk-card{border-top:1px solid var(--line)}
.wk-card img{width:56px;height:56px;border-radius:var(--r-c);object-fit:cover;flex:none}
.wk-card span{flex:1;min-width:0;display:grid;gap:2px}.wk-card b{font:700 16px/1.25 var(--sans)}.wk-card small{color:var(--ink-2);font-size:14px}
.wk-card.off img{filter:grayscale(1);opacity:.6}.wk-card.off b{color:var(--ink-2)}
.dish-pic{font:700 19px/1 var(--display);color:var(--red);background:var(--navy-soft)}
.pane-86 .src{margin-top:12px}
.preview{margin-top:20px}
.site-strip{background:linear-gradient(160deg,var(--navy-2),var(--navy))}
.site-today{display:inline-flex;align-items:center;gap:8px;font:700 14px/1.2 var(--sans);color:var(--sun);margin-bottom:8px}
.site-today .dot,.site-hours .dot{width:9px;height:9px;border-radius:50%;background:#5BD08F;box-shadow:0 0 0 3px rgba(91,208,143,.25)}
.site-today.closed{color:#FFB08F}.site-today.closed .dot,.site-hours.closed .dot{background:var(--alert);box-shadow:0 0 0 3px rgba(242,104,60,.3)}
.site-strip h4{font-size:26px}
.sp-card div{grid-template-columns:minmax(0,1fr) auto}.sp-card span{font-weight:700;font-variant-numeric:tabular-nums}
.ev-line{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;padding:5px 0;font-size:15px}.ev-line+.ev-line{border-top:1px solid var(--line)}
.ev-date{font-weight:700;color:var(--ink-2)}.ev-line.now{font-weight:700}.ev-line.now .ev-date{color:var(--red)}
.dish-line.out{display:flex;align-items:center;flex-wrap:wrap;gap:4px 0}.dish-line s{text-decoration-thickness:2px;text-decoration-color:var(--alert);color:var(--ink-2)}
@media (min-width:1100px){.preview .site-strip,.preview .site-events,.preview .site-fullmenu{margin-top:0}.preview #site-preview{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:stretch}}

/* receipts */
.rc-row.to-check{box-shadow:inset 4px 0 0 var(--alert),var(--e1)}
.rc-cat{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:12px}
.rc-cat .field label{font:600 13.5px/1.2 var(--sans);color:var(--ink-2)}
.cat-bars{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:12px}
.cb-row{display:flex;justify-content:space-between;gap:10px;font:600 14.5px/1.25 var(--sans)}.cb-row b{font-variant-numeric:tabular-nums}
.cat-bar{margin-top:6px;height:10px;border-radius:5px;background:var(--panel)}.cat-bar i{display:block;height:100%;border-radius:5px;background:var(--red);transform-origin:left}
.steps{margin:10px 0 0;padding-left:20px;display:grid;gap:8px;font-size:15px}
.steps li::marker{font-weight:700;color:var(--red)}

/* big orders */
.req-thumb{border-radius:var(--r-c)}
#detail-pane .empty-state{padding:56px 20px}
.detail-head .display{font-family:var(--sans)!important;font-weight:700!important}

/* celebration */
.cele-card img{width:96px;height:96px;object-fit:contain}
.cele-check{background:var(--red)}

/* the guest website stand-in */
.site{padding-bottom:24px}
.site-hero{position:relative;min-height:360px;display:grid;place-items:center;overflow:hidden;color:#fff;text-align:center}
.site-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.site-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(19,48,46,.35),rgba(19,48,46,.75));z-index:1}
.site-hero-in{position:relative;z-index:2;display:grid;justify-items:center;gap:14px;padding:32px var(--gut) 56px}
.site-logo{width:min(300px,70vw)}
.site-hours{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--r-c);background:rgba(19,48,46,.6);font:700 15px/1.2 var(--sans)}
.site-order{min-width:200px}
.site-hero .seam{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:40px;z-index:2}.site-hero .seam path{fill:var(--bg)}
.site-block{margin-top:16px}
.hours-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:16px;font-variant-numeric:tabular-nums}
.hours-table th{text-align:left;font-weight:700;padding:10px 0}.hours-table td{text-align:right;padding:10px 0}.hours-table tr+tr th,.hours-table tr+tr td{border-top:1px solid var(--line)}
.site .wz-top{margin-bottom:12px}
body[data-view="site"] .demo-foot{margin-top:8px}

/* phones: one column, comfortable thumbs */
@media (max-width:619.98px){.hrow{grid-template-columns:64px minmax(0,1fr) auto minmax(0,1fr);gap:6px}.rc-cat{grid-template-columns:minmax(0,1fr)}.rc-cat .btn{width:100%}.lst-row{grid-template-columns:36px minmax(0,1fr)}.lst-row>.pill,.lst-row>.btn{grid-column:2;justify-self:start}.lst-row .acct-ico{width:36px;height:36px}}

/* round 2 fixes */
@media (min-width:900px){.band-row{grid-template-columns:minmax(0,1.15fr) minmax(360px,520px)}.band-txt .display{font-size:54px}}
.band-txt .display{text-wrap:balance}
.stars{white-space:nowrap}
.dash-funnel{display:flex;flex-direction:column}.dash-funnel .fn{flex:1;align-content:space-evenly}
.dash-time{display:flex;flex-direction:column}.dash-time .dt-pair{flex:1;align-content:center}.dt-note{display:block;margin-top:8px;font:500 13.5px/1.35 var(--sans);color:var(--ink-2)}
@media (min-width:620px){.acct-txt small{grid-column:2/3}}
.hol-list{list-style:none;margin:0;padding:0;display:grid}
.hol-list li{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:12px 0}.hol-list li+li{border-top:1px solid var(--line)}
.hol-name b{display:block;font:700 16px/1.25 var(--sans)}.hol-name small{color:var(--ink-2);font-size:14px}
.hol-list .seg button{padding:0 10px;font-size:14.5px}
@media (min-width:620px){.hol-list li{grid-template-columns:minmax(0,1fr) auto;align-items:center}}
/* allergens: 150 items read as a tidy directory, two or three across on big screens */
@media (min-width:1100px){.al-list{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1px;background:var(--line)}.al-list>li{background:#fff}.al-list>li+li{border-top:0}}
@media (min-width:1500px){.al-list{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
/* connection rows: title and text sit together, logo and status centered on the pair */
@media (min-width:620px){.acct-list li{grid-template-rows:auto auto;align-content:center;row-gap:2px}.acct-txt b{align-self:end}.acct-txt small{align-self:start;margin-top:0}.acct-ico,.acct-list .pill{align-self:center}}
.head-ill svg.hw{width:116%;height:24%}
.demo-card .actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* ===== v4: quieter, more crafted (Emil Kowalski's rules) ===== */
:root{--ease-out:cubic-bezier(.23,1,.32,1);--ease-drawer:cubic-bezier(.32,.72,0,1)}
.toast{display:flex;align-items:center;gap:8px;transition:opacity .2s var(--ease-out),transform .24s var(--ease-out)}
.toast-ok{flex:none;color:#7FE0B5}
/* numbers never jitter */
b,.dh-num,.em-count,.band-stats b,.ds-row b,.pill,.badge,.money input,.lst-hours,.hours-table td,.fn-row b,.why-list b{font-variant-numeric:tabular-nums}
/* big type gets tighter tracking; body copy stays readable width */
.app-head h1,.home-band h1.display,.sub-display{letter-spacing:-.02em}
.item-sub,.src,.al-note{max-width:65ch}
/* custom section art (only when it exists) */
.head-art{flex:none;width:72px;height:72px;object-fit:contain}
@media (min-width:900px){.head-art{width:96px;height:96px}}
.head-ill{display:none}
/* hover only where a real pointer exists */
@media (hover:none){.t-card:hover,.todo a:hover,.btn:hover,.lst-row:hover,.post:hover,.dash-card:hover{transform:none}}

/* ===== Email ===== */
.em-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.em-opt{position:relative;cursor:pointer}
.em-opt input{position:absolute;opacity:0;pointer-events:none}
.em-opt span{display:grid;grid-template-columns:52px minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:10px;border-radius:var(--r-c);background:var(--bg);box-shadow:inset 0 0 0 1.5px transparent;transition:box-shadow .15s ease,background .15s ease,transform .14s var(--ease-out)}
.em-opt span:active{transform:scale(.98)}
.em-opt img{grid-row:1/3;width:52px;height:52px;border-radius:calc(var(--r-c) - 4px);object-fit:cover}
.em-opt b{align-self:end;font:700 15px/1.25 var(--sans)}
.em-opt small{align-self:start;color:var(--ink-2);font-size:13.5px}
.em-opt input:checked+span{background:#fff;box-shadow:inset 0 0 0 2px var(--red),0 6px 16px -10px rgba(19,48,46,.4)}
.em-opt input:focus-visible+span{outline:3px solid #FFC845;outline-offset:2px}
.em-when{flex-wrap:nowrap}
.check-row{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-c);background:var(--bg);cursor:pointer}
.check-row input{width:20px;height:20px;margin-top:2px;accent-color:var(--red);flex:none}
.check-row b{display:block;font:700 15px/1.3 var(--sans)}.check-row small{display:block;color:var(--ink-2);font-size:13.5px;margin-top:2px}
#em-week-warn{margin-top:10px;color:#A3471F;font-weight:600}
.em-count{display:block;font:400 44px/1 var(--display);color:var(--navy);letter-spacing:-.02em;margin-top:6px}
.em-src{list-style:none;margin:14px 0 0;padding:0;display:grid}
.em-src li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:14.5px}
.em-list{list-style:none;margin:0;padding:0;display:grid}
.em-list li{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0}
.em-list li+li{border-top:1px solid var(--line)}
.em-list img{width:44px;height:44px;border-radius:calc(var(--r-c) - 4px);object-fit:cover}
.em-li-txt b{display:block;font:700 15px/1.3 var(--sans);overflow-wrap:anywhere}.em-li-txt small{display:block;color:var(--ink-2);font-size:13.5px;margin-top:2px}
/* the email preview: what guests actually get */
.em-prev{border-radius:var(--r);background:#E9EEED;padding:14px;box-shadow:inset 0 0 0 1px rgba(19,48,46,.08)}
.em-from{display:grid;gap:2px;padding:4px 6px 12px;font-size:14px}.em-from span{color:var(--ink-2);overflow-wrap:anywhere}
.em-body{max-width:520px;margin:0 auto;background:#fff;border-radius:calc(var(--r) - 4px);overflow:hidden;box-shadow:0 1px 2px rgba(19,48,46,.08),0 12px 28px -18px rgba(19,48,46,.45)}
.em-logo{display:block;height:34px;margin:18px auto 14px}
.em-photo{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.em-txt{padding:18px 22px 4px;font:400 16px/1.55 var(--sans);color:var(--ink)}.em-txt p{margin:0 0 12px;overflow-wrap:anywhere}
.em-btn{display:block;margin:6px 22px 20px;padding:13px;border-radius:var(--r-c);background:var(--red);color:#fff;text-align:center;font-weight:700;text-decoration:none}
.em-foot{margin:0;padding:14px 22px 18px;border-top:1px solid var(--line);font-size:12.5px;line-height:1.5;color:var(--ink-2)}
/* guest site: email sign-up */
.join-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}
.join-row .field{margin:0}.join-row .field label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.join-row .btn{height:52px;white-space:nowrap}
@media (max-width:619.98px){.join-row{grid-template-columns:minmax(0,1fr)}.em-when{flex-wrap:wrap}.em-pick{grid-template-columns:minmax(0,1fr)}}

/* ===== v5: email letter + composer ===== */
@media (min-width:1024px){.em-layout{grid-template-columns:minmax(0,1fr) minmax(360px,420px)}.em-layout .side-grid{position:static}}
.em-prev{padding:16px}
.em-from{grid-template-columns:minmax(0,1fr);gap:4px}
.em-mast{display:grid;justify-items:center;gap:6px;padding:20px 22px 16px;background:var(--cream)}
.em-mast .em-logo{height:70px;margin:0}
.em-mast span{font-size:12.5px;color:var(--ink-2)}
.em-photo{aspect-ratio:16/10}
.em-kicker{margin:0 0 6px;font:700 12px/1.2 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:#C8562F}
.em-h{margin:0 0 12px;font:400 26px/1.15 var(--display);letter-spacing:-.02em;color:var(--navy);overflow-wrap:anywhere}
.em-txt{padding:22px 24px 6px}
.em-deal{margin:4px 24px 14px;padding:14px 16px;border-radius:var(--r-c);background:var(--red-soft);display:grid;gap:2px}
.em-deal b{font:700 16px/1.3 var(--sans);color:var(--red-ink)}.em-deal span{font-size:14px;color:var(--ink-2)}
.em-btn{margin:0 24px 22px}
.em-more{padding:18px 24px 6px;border-top:1px solid var(--line)}
.em-more-grid{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:12px;margin-bottom:14px}
.em-more-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-t);display:block;margin-bottom:8px}
.em-more-grid b{display:block;font:700 14px/1.3 var(--sans)}.em-more-grid small{color:var(--ink-2);font-size:12.5px}
.em-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}
.em-ph{position:relative;aspect-ratio:1;border:0;padding:0;border-radius:var(--r-c);overflow:hidden;background:var(--panel);cursor:pointer;box-shadow:inset 0 0 0 1.5px var(--line-2);transition:transform .14s var(--ease-out),box-shadow .15s ease}
.em-ph:active{transform:scale(.97)}
.em-ph img{width:100%;height:100%;object-fit:cover;display:block}
.em-ph[aria-pressed="true"]{box-shadow:0 0 0 3px var(--red)}
.em-ph[aria-pressed="true"]::after{content:"";position:absolute;right:6px;top:6px;width:22px;height:22px;border-radius:50%;background:var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}
.em-up{display:grid;place-content:center;justify-items:center;gap:4px;color:var(--red-ink);font:700 13px/1 var(--sans);background:var(--red-soft);box-shadow:inset 0 0 0 1.5px var(--red-line)}
.em-up input{position:absolute;inset:0;opacity:0;cursor:pointer}
.em-up svg{width:26px;height:26px}
#em-form .actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
#em-form select{width:100%}
@media (max-width:619.98px){.em-txt,.em-more{padding-left:18px;padding-right:18px}.em-deal{margin-left:18px;margin-right:18px}.em-btn{margin-left:18px;margin-right:18px}.em-more-grid{grid-template-columns:minmax(0,1fr)}.em-more-grid>div{display:grid;grid-template-columns:72px minmax(0,1fr);column-gap:12px;align-items:center}.em-more-grid img{grid-row:1/3;margin:0}.em-h{font-size:22px}}
/* the full-color 3D logo from 3rdwavecafe.com in the rail and on the phone home band */
.side-brand img{width:176px;height:auto;display:block;margin:0 auto;filter:drop-shadow(0 6px 14px rgba(0,0,0,.35))}
.home-top img,.home-band .home-top img{width:120px;height:auto;filter:drop-shadow(0 4px 10px rgba(0,0,0,.35))}

/* ===== v5: menu editor ===== */
.mn-list{list-style:none;margin:0;padding:0}
.mn-list li{display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 16px;border-top:1px solid var(--line)}
.mn-list .dish-pic{width:44px;height:44px}
.mn-txt b{display:block;font:700 15.5px/1.3 var(--sans);overflow-wrap:anywhere}
.mn-txt small{display:block;color:var(--ink-2);font-size:13.5px;line-height:1.35;overflow-wrap:anywhere}
.mn-price{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.mn-list li.mn-editing{display:block;padding:14px 16px;background:var(--bg)}
.mn-form .money{width:100%}
.mn-form .actions{display:flex;flex-wrap:wrap;gap:10px}
.mn-del{color:#A3471F;box-shadow:inset 0 0 0 1.5px #E9C2B0}
@media (max-width:619.98px){.mn-list li{grid-template-columns:44px minmax(0,1fr) auto;row-gap:6px}.mn-list li>.btn{grid-column:2/4;justify-self:start}}
/* the menu on the guest website */
.site-fullmenu details{border-top:1px solid var(--line)}
.site-fullmenu details:first-child{border-top:0}
.site-fullmenu summary{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:14px 2px;cursor:pointer;font:700 17px/1.3 var(--sans);list-style:none}
.site-fullmenu summary::-webkit-details-marker{display:none}
.site-fullmenu summary small{font:500 13.5px/1 var(--sans);color:var(--ink-2)}
.site-fullmenu ul{list-style:none;margin:0 0 12px;padding:0}
.site-fullmenu li{display:flex;justify-content:space-between;gap:14px;padding:8px 2px}
.site-fullmenu li b{display:block;font-weight:600}.site-fullmenu li small{display:block;color:var(--ink-2);font-size:13.5px}
.site-fullmenu li em{font-style:normal;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.site-fullmenu li.out b{text-decoration:line-through;color:var(--ink-2)}.site-fullmenu li.out em{color:#A3471F}

/* ===== v5: posts week at a glance ===== */
.pw{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:12px}
.pw-day{display:grid;grid-template-rows:auto 1fr;gap:6px;min-width:0}
.pw-day>b{font:700 13px/1 var(--sans);color:var(--ink-2);text-align:center}
.pw-day.today>b{color:var(--red-ink)}
.pw-slot{position:relative;display:block;aspect-ratio:4/5;border-radius:var(--r-c);overflow:hidden;background:var(--panel);text-decoration:none;color:inherit}
.pw-slot img{width:100%;height:100%;object-fit:cover;display:block}
.pw-slot span{position:absolute;left:6px;right:6px;bottom:6px;padding:3px 6px;border-radius:6px;font:700 11.5px/1.25 var(--sans);text-align:center;background:rgba(255,255,255,.92)}
.pw-slot.draft span{color:var(--amber)}.pw-slot.approved span{color:var(--green-ink)}
.pw-slot.empty{display:grid;place-content:center;justify-items:center;gap:4px;border:1.5px dashed var(--line-2);background:transparent;color:var(--red-ink);font:700 12.5px/1.2 var(--sans);cursor:pointer;width:100%;padding:0}
.pw-slot.empty svg{width:22px;height:22px}
.pw-slot.empty:active{transform:scale(.97)}
.pw-key{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;font-size:13.5px;color:var(--ink-2)}
.pw-key i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:-1px}
@media (max-width:619.98px){.pw{gap:5px}.pw-slot span{display:none}.pw-slot.empty span{display:block;position:static;background:none;padding:0}.pw-slot.empty{font-size:0}.pw-slot.empty svg{width:18px;height:18px}.pw-slot.draft::after,.pw-slot.approved::after{content:"";position:absolute;right:5px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 2px #fff}.pw-slot.approved::after{background:var(--green)}}
.np-form .fields{margin-top:0}
@media (max-width:1023.98px){.em-layout #em-review{order:2}}

.big-rating .stars,.big-rating .stars span{display:inline}
.mn-form input[type=file]{width:100%;font:500 14px/1.3 var(--sans);color:var(--ink-2);padding:6px 0}
.mn-form input[type=file]::file-selector-button{margin-right:12px;padding:10px 16px;border:0;border-radius:var(--r-c);background:var(--red-soft);color:var(--red-ink);font:700 14px/1 var(--sans);cursor:pointer;box-shadow:inset 0 0 0 1.5px var(--red-line)}
.g86-toggle>span{text-align:left}

/* bottom bar counts: sunset orange with ink numbers (the core paints them navy, which hid the ink number) */
.bottom-nav .badge,.more-btn .badge{background:var(--alert);color:var(--ink)}
