.loyalty-emblem{display:block;width:100%;height:100%;filter:drop-shadow(0 7px 8px #17243624);}
.loyalty-admin{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:40px;padding:10px 0 30px;align-items:start;}
.loyalty-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3,#76808e);}
.loyalty-editor h2{font-size:clamp(22px,3vw,32px);letter-spacing:-1px;line-height:1.15;max-width:420px;margin:14px 0 26px;}
.loyalty-designs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:26px;}
.loyalty-designs button{appearance:none;min-width:0;background:var(--surface,#f6f8fb);border:1px solid var(--line,#dce2ea);border-radius:16px;padding:14px 8px 10px;cursor:pointer;color:inherit;transition:transform .25s,background .25s,box-shadow .25s;}
.loyalty-designs button:hover{transform:translateY(-4px);}
.loyalty-designs button[aria-pressed=true]{border-color:#3888d6;background:var(--blue-100,#e8f3ff);box-shadow:0 0 0 2px #3888d61c;}
.loyalty-designs svg{height:78px;margin:0 auto 12px;}
.loyalty-designs span{font:600 11px/1.2 system-ui;}
.loyalty-settings{display:grid;gap:18px;}
.loyalty-settings label,.movement-filters label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:600;}
.loyalty-settings input,.movement-filters input,.movement-filters select{box-sizing:border-box;width:100%;min-width:0;border:1px solid var(--line,#dce2ea);background:var(--surface,#fff);color:inherit;height:44px;border-radius:10px;padding:0 12px;font:inherit;}
.loyalty-settings>button{justify-self:start;}
.loyalty-status{min-height:20px;font-size:12px;color:var(--ink-3,#76808e);}
.loyalty-preview{border:1px solid var(--line,#e0e5ec);border-radius:24px;padding:22px;text-align:center;background:radial-gradient(ellipse at 50% 20%,#c9def833,transparent 70%),var(--surface,#fff);}
.loyalty-preview-head{display:flex;justify-content:space-between;align-items:center;color:var(--ink-3,#76808e);font-size:9px;letter-spacing:.1em;}
.loyalty-demo-label{padding:5px 8px;border-radius:6px;background:#d7e7f340;color:var(--blue,#2574bd);}
.loyalty-hero{width:142px;height:142px;margin:22px auto 16px;}
.loyalty-preview h3{margin:0;font-size:19px;letter-spacing:-.5px;}
.loyalty-prize{font-size:13px;color:var(--ink-3,#76808e);min-height:32px;line-height:1.5;}
.loyalty-slots{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:22px 0 16px;}
.loyalty-slot{display:block;width:38px;height:40px;opacity:.17;filter:grayscale(1);}
.loyalty-slot.is-earned{opacity:1;filter:none;}
.loyalty-slot.is-new{animation:loyaltyStamp .6s cubic-bezier(.16,1,.3,1) both;}
.loyalty-progress{font-size:13px;font-weight:650;margin:16px 0;}
.loyalty-reset{display:block;border:0;background:none;color:var(--ink-3,#76808e);font:inherit;font-size:11px;cursor:pointer;margin:12px auto 0;}
.loyalty-live-entry{display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:16px;border:1px solid var(--line,#dce2ea);background:linear-gradient(110deg,#d5e7f51c,#eddfb51c);color:inherit;text-align:left;width:100%;cursor:pointer;margin-bottom:20px;}
.loyalty-live-entry .entry-emblem{width:56px;height:56px;flex-shrink:0;}
.loyalty-live-entry strong{display:block;font-size:17px;}.loyalty-live-entry small{display:block;opacity:.65;font-size:12px;margin-top:4px;}
.loyalty-live-entry .entry-arrow{margin-left:auto;font-size:22px;}
.stamp-modal .sm-slots{flex-wrap:wrap;}.stamp-modal .sm-slots .slot{width:36px;height:38px;}
.stamp-modal .sm-slots .slot.on{animation:loyaltyStamp .55s cubic-bezier(.16,1,.3,1);}
.app .inv-recipe-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:30px;margin-bottom:24px;}
.app .recipe-total{text-align:right;display:flex;flex-direction:column;gap:6px;min-width:135px;}
.app .recipe-total small{font-size:11px;color:var(--ink-3);}.app .recipe-total strong{font-size:24px;letter-spacing:-.5px;}.app #recStatus{font-size:11px;color:var(--ink-3);min-height:14px;}
.app .recipe-builder{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px;}
.app .recipe-add-row{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;align-items:end;gap:14px;}.app .recipe-add-row>.btn{margin-bottom:14px;}
.app .recipe-line-qty{display:flex;align-items:center;gap:8px;}.app .recipe-line-qty input{width:90px!important;padding:0 10px!important;background-image:none!important;}.app .recipe-line-qty>span{font-size:11px;opacity:.6;}
.app .inv-recipe li{display:grid;grid-template-columns:36px minmax(0,1fr) 120px 80px 32px;align-items:center;gap:12px;padding-block:18px;}
.movement-filters{display:grid;grid-template-columns:minmax(0,1fr) 150px 160px;gap:14px;margin:22px 0;}
@keyframes loyaltyStamp{0%{transform:translateY(-28px) scale(1.6) rotate(-18deg);opacity:0}65%{transform:translateY(2px) scale(.92) rotate(3deg)}100%{transform:none;opacity:1}}
@media(max-width:720px){.loyalty-admin{grid-template-columns:1fr;gap:20px;}.loyalty-designs{gap:7px;}.loyalty-designs svg{height:60px;}.app .recipe-add-row{grid-template-columns:1fr 115px;}.app .recipe-add-row>.btn{grid-column:1/-1;justify-self:end;}.app .recipe-builder{padding:16px;}.app .inv-recipe li{grid-template-columns:32px minmax(0,1fr) 32px;}.app .recipe-line-qty{grid-column:2;grid-row:auto;}.app .inv-recipe-cost{grid-column:2;font-size:12px;}.app .inv-recipe li>button{grid-column:3;grid-row:1/3;}.movement-filters{grid-template-columns:1fr 1fr;}.movement-filters label:first-child{grid-column:1/-1;}.app .inv-recipe-form{gap:14px;}.app .recipe-total{min-width:100px;}}
@media(prefers-reduced-motion:reduce){.loyalty-slot.is-new,.stamp-modal .slot.on{animation:none;}.loyalty-designs button{transition:none;}}
.demo-head #demoBusiness{width:200px;flex:0 0 200px;max-width:100%}
.app #invEmojiPop{position:absolute;right:auto;margin:0;z-index:100;overscroll-behavior:contain;}
.app #invSell[hidden]{display:none!important;}
.app #invSheet .emoji-field{position:static;}
.shift-correction{position:fixed;inset:0;margin:auto;width:min(460px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 24px 80px #0006;}.shift-correction::backdrop{background:#06102480;backdrop-filter:blur(4px);}.shift-correction form{display:grid;gap:16px;}.shift-correction label{display:grid;gap:8px;font-size:12px;}.shift-correction input{width:100%;min-width:0;}.shift-correction p{font-size:12px;color:var(--ink-3);}.shift-correction form>div{display:flex;justify-content:flex-end;gap:10px;}#shiftCorrectionError{font-size:12px;color:var(--red);}.app .shift-time-row{flex-wrap:wrap;}

/* Recipes: choose a plate, tap its ingredients, then save once. */
.app .recipe-setup-link{display:flex;align-items:center;gap:16px;width:100%;padding:18px 20px;margin:0 0 24px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;font:inherit;transition:border-color .2s,transform .2s;}
.app .recipe-setup-link:hover{border-color:var(--blue);transform:translateY(-1px);}
.app .recipe-setup-icon{font-size:28px;}
.app .recipe-setup-link strong{display:block;font-size:15px;font-weight:650;}
.app .recipe-setup-link small{display:block;font-size:12px;line-height:1.5;color:var(--ink-3);margin-top:4px;}
.app .recipe-setup-action{margin-left:auto;white-space:nowrap;font-size:12px;font-weight:650;color:var(--blue);}
.app .recipe-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:28px;align-items:start;}
.app .recipe-menu{min-width:0;}
.app .recipe-workspace input{font-size:16px;min-width:0;width:100%;}
.app .recipe-search{display:block;margin-bottom:12px;}
.app .recipe-dishes{display:grid;gap:6px;max-height:640px;overflow:auto;}
.app .recipe-dish{display:flex;align-items:center;gap:12px;min-width:0;padding:14px 12px;border:1px solid transparent;border-radius:12px;text-align:left;background:none;color:var(--ink);font:inherit;cursor:pointer;}
.app .recipe-dish[aria-pressed=true]{background:var(--sel-2);border-color:var(--line);}
.app .recipe-dish:hover{background:var(--sel-2);border-color:var(--blue);color:var(--blue);}
.app .recipe-dish-face{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;font-size:25px;}
.app .recipe-dish-face img{width:36px;height:36px;object-fit:cover;border-radius:9px;}
.app .recipe-dish b{display:block;font-size:13px;line-height:1.4;overflow-wrap:anywhere;}
.app .recipe-dish small{display:block;margin-top:4px;font-size:11px;line-height:1.4;}
.app .recipe-dish .is-ready,.app #recStatus[data-state=saved]{color:var(--green,#23834b);}
.app .recipe-dish .is-pending{color:var(--ink-3);}
.app .recipe-editor{min-width:0;}
.app .recipe-assist{display:flex;align-items:center;gap:12px;margin-bottom:14px;font-size:12px;color:var(--ink-3);}.app .recipe-assist>span{flex:1;}.app .recipe-kind{display:flex;align-items:center;gap:12px;font-size:12px;margin-bottom:18px;}.app .recipe-kind select{width:auto;max-width:100%;}.app .recipe-pack{display:grid;gap:18px;border:1px solid var(--line);padding:22px;border-radius:18px;background:var(--surface);}.app .recipe-pack label{display:grid;gap:8px;font-size:12px;}.app .recipe-pack p,.app #recPackStatus{font-size:13px;color:var(--ink-3);}.app .recipe-pack details summary{font-size:12px;cursor:pointer;margin-bottom:12px;}.app .recipe-qty-control select{width:76px;padding-left:8px!important;}.app .recipe-workspace .inv-name input{font-size:14px;}
@media(max-width:720px){.app .recipe-assist,.app .recipe-kind{flex-wrap:wrap;}.app .recipe-kind select{width:100%;}.app .recipe-pack{padding:16px;}.app .recipe-assist>span{flex-basis:100%;}}
.app .recipe-editor-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;}
.app .recipe-eyebrow{font-size:11px;color:var(--ink-3);}
.app .recipe-editor-head h3{margin-top:6px;font-size:23px;line-height:1.25;letter-spacing:-.6px;}
.app .recipe-workspace .recipe-total{min-width:100px;flex-shrink:0;}
.app .recipe-workspace .recipe-total strong{font-size:23px;}
.app .recipe-workspace .recipe-builder{padding:0;overflow:hidden;}
.app .recipe-workspace .inv-recipe{padding:4px 20px;}
.app .recipe-workspace .inv-recipe li{grid-template-columns:30px minmax(70px,1fr) 140px 32px;gap:12px;padding:18px 0;position:relative;}
.app .recipe-workspace .inv-recipe li .inv-thumb{width:30px;height:30px;font-size:23px;}
.app .recipe-workspace .inv-recipe .inv-name b{font-size:14px;}
.app .recipe-workspace .recipe-line-qty{display:block;grid-column:3;grid-row:auto;}
.app .recipe-qty-label{display:block;font-size:10px!important;opacity:1!important;color:var(--ink-3);margin-bottom:6px;}
.app .recipe-qty-control{display:flex;align-items:center;gap:8px;}
.app .recipe-qty-control>span{font-size:12px;color:var(--ink-3);}
.app .recipe-workspace .recipe-line-qty input{width:104px!important;height:42px;padding:8px 10px!important;appearance:textfield;-moz-appearance:textfield;}
.app .recipe-workspace input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0;}
.app .recipe-workspace .inv-recipe-cost{grid-column:2;grid-row:auto;font-size:11px;margin-top:-14px;color:var(--ink-3);}
.app .recipe-workspace .inv-recipe li>button{grid-column:4;grid-row:1/3;align-self:center;}
.app .recipe-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 20px;color:var(--ink-3);text-align:center;font-size:13px;}
.app .recipe-empty>span:first-child{font-size:30px;}
.app .recipe-empty strong{font-size:16px;color:var(--ink);}
.app .recipe-pantry{padding:20px;border-top:1px solid var(--line);}
.app .recipe-pantry>label{display:block;margin-bottom:10px;font-size:13px;font-weight:650;}
.app .recipe-ingredients{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:220px;overflow:auto;margin-top:12px;}
.app .recipe-ingredients button{display:flex;align-items:center;gap:9px;padding:12px;min-width:0;min-height:58px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);text-align:left;font:inherit;cursor:pointer;transition:border-color .2s,background .2s;}
.app .recipe-ingredients button:hover:not(:disabled){border-color:var(--blue);background:var(--sel-2);}
.app .recipe-ingredients button:disabled{opacity:.5;cursor:default;}
.app .recipe-ingredients b{display:block;font-size:12px;overflow-wrap:anywhere;}
.app .recipe-ingredients small{display:block;color:var(--ink-3);font-size:11px;margin-top:3px;}
.app .recipe-add-mark{margin-left:auto;font-size:20px;color:var(--blue);}
.app .recipe-new-ingredient{margin-top:14px;background:none;border:0;padding:6px 0;color:var(--blue);font:600 12px inherit;cursor:pointer;}
.app .recipe-savebar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-top:1px solid var(--line);}
.app .recipe-savebar .btn{flex-shrink:0;}
.app .recipe-savebar #recStatus{font-size:12px;line-height:1.5;}
.app #recStatus[data-state=error]{color:var(--red);}
.app .recipe-no-match{grid-column:1/-1;font-size:12px;color:var(--ink-3);padding:14px 4px;}
.app .recipe-workspace [hidden],.app .recipe-setup-link[hidden]{display:none!important;}
.app .recipe-workspace button:focus-visible{outline:2px solid var(--blue);outline-offset:3px;}
/* Native select arrows keep a real gutter, including the inventory sheet. */
.app [data-panel=inventory] select{appearance:none!important;padding-right:42px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23818b98' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")!important;background-position:right 14px center!important;background-repeat:no-repeat!important;background-size:16px!important;}
@media(max-width:1000px){.app .recipe-layout{grid-template-columns:190px minmax(0,1fr);gap:18px;}.app .recipe-ingredients{grid-template-columns:1fr;}}
@media(max-width:720px){
 .app .recipe-setup-link{padding:16px;flex-wrap:wrap;gap:10px;}.app .recipe-setup-link>span:nth-child(2){flex:1;min-width:180px;}.app .recipe-setup-action{margin-left:38px;}
 .app .recipe-layout{grid-template-columns:minmax(0,1fr);gap:20px;}.app .recipe-dishes{display:flex;overflow-x:auto;max-height:none;padding-bottom:6px;scroll-snap-type:x proximity;}.app .recipe-dish{flex:0 0 200px;scroll-snap-align:start;}.app .recipe-editor-head{gap:10px;margin-bottom:16px;}.app .recipe-editor-head h3{font-size:20px;}.app .recipe-workspace .recipe-total strong{font-size:20px;}
 .app .recipe-workspace .inv-recipe{padding:0 14px;}.app .recipe-workspace .inv-recipe li{grid-template-columns:26px minmax(0,1fr) 32px;gap:10px;}.app .recipe-workspace .recipe-line-qty{grid-column:2;}.app .recipe-workspace .inv-recipe-cost{grid-column:2;margin-top:0;}.app .recipe-workspace .inv-recipe li>button{grid-column:3;grid-row:1/4;}.app .recipe-pantry{padding:16px;}.app .recipe-ingredients{grid-template-columns:repeat(2,minmax(0,1fr));}.app .recipe-ingredients button{padding:10px;}.app .recipe-savebar{padding:16px;flex-direction:column;align-items:stretch;gap:12px;}.app .recipe-savebar .btn{width:100%;}
}
@media(prefers-reduced-motion:reduce){.app .recipe-setup-link,.app .recipe-ingredients button{transition:none;}}

.loyalty-walkthrough{margin-top:24px;border:1px solid var(--line);border-radius:20px;padding:24px;background:var(--surface)}
.loyalty-walkthrough>header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;}
.loyalty-walkthrough h3{margin:6px 0;font-size:24px;letter-spacing:-.04em;}
.loyalty-walkthrough p{color:var(--ink-3);font-size:13px;line-height:1.6;}
.loyalty-tour-actions{display:flex;gap:8px;flex-wrap:wrap;flex-shrink:0;}
.loyalty-tour-viewport{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--surface);}
.loyalty-dashboard-frame{position:absolute;left:0;top:0;border:0;max-width:none;transform-origin:0 0;transition:transform 1.2s cubic-bezier(.22,1,.36,1);background:var(--surface);}
.loyalty-tour-caption{margin-bottom:0;}
@media(max-width:760px){.loyalty-walkthrough{padding:12px;}.loyalty-walkthrough>header{align-items:flex-start;flex-direction:column;}.loyalty-tour-actions .btn{min-height:44px;}}
@media(prefers-reduced-motion:reduce){.loyalty-dashboard-frame{transition:none;}}
