/* Preferito 8.0 · on top of V7 */

/* task 3 · the payment sheet never scrolls sideways */
.sheet.v7sheet{overflow-x:hidden;overscroll-behavior-x:none}
.v7sheet>*{max-width:100%}
.v7bubble{white-space:normal;max-width:88%;text-align:center}

/* task 6 · welcome page: no empty space before « powered by » */
body:not(.has-nav) main.phone:has(> .hero){min-height:0;padding-bottom:12px}

/* task 1 · the card opens inside its own box, smaller */
.v7methods .v7cardbox{margin:-12px 0 4px;border-top:0;border-radius:0 0 16px 16px}
.v7methods .v7m.on[data-v7m="card"]{border-bottom-left-radius:0;border-bottom-right-radius:0}
.v7persp{width:min(220px,74%)}
.v7front{padding:10px 12px}
.v7persp .v7num{font-size:12px}
.v7persp .v7bot{font-size:8px}
.v7persp .v7chip{transform:scale(.8);transform-origin:left center}

/* task 2 · holographic card */
.v7front{background:linear-gradient(120deg,#4A1A3B 0%,#7D3566 28%,#B66A9C 45%,#E9A9C6 52%,#9C6BD0 60%,#5B2148 85%)}
.v8holo{position:absolute;inset:-20%;pointer-events:none;mix-blend-mode:screen;opacity:.75;
  background:radial-gradient(circle at var(--hx,50%) var(--hy,40%),rgba(255,255,255,.55),transparent 38%),
    linear-gradient(105deg,transparent 30%,rgba(255,220,250,.35) 45%,rgba(190,170,255,.3) 52%,transparent 66%),
    repeating-linear-gradient(45deg,rgba(255,255,255,.07) 0 2px,transparent 2px 7px);
  background-size:100% 100%,220% 100%,auto;animation:v8holo 4.5s ease-in-out infinite}
.v7card.v8tilt .v8holo{animation:none;background-position:center,calc(var(--hx,50%)*1.6 - 30%) 0,0 0}
@keyframes v8holo{0%,100%{background-position:center,110% 0,0 0}50%{background-position:center,-10% 0,0 0}}
@media (prefers-reduced-motion:reduce){.v8holo{animation:none}}

/* task 14 · owner dashboard: buttons with their text */
.v7otop .v7rb.v8lab{width:auto;padding:0 14px 0 11px;gap:7px;border-radius:999px;font-weight:700;font-size:13px;display:inline-flex;align-items:center;white-space:nowrap}
.v7otop .v7rb.v8lab .bd{display:none}
@media (max-width:420px){.v7otop .v7rb.v8lab{padding:0 10px;font-size:12px}}

/* task 13 · call the assistant */
.v8call{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#5B2148,#8E3B70);color:#fff;border-radius:22px;padding:16px 18px;box-shadow:0 12px 26px rgba(91,33,72,.25);flex-wrap:wrap}
.v8callic{width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.16);display:grid;place-items:center;flex:none;animation:v8ring 2.4s ease-in-out infinite}
@keyframes v8ring{0%,70%,100%{transform:rotate(0)}75%{transform:rotate(-12deg)}80%{transform:rotate(12deg)}85%{transform:rotate(-8deg)}90%{transform:rotate(6deg)}}
.v8callt{flex:1;min-width:200px;display:flex;flex-direction:column;gap:2px}.v8callt small{font-size:11.5px;font-weight:700;opacity:.75;letter-spacing:.5px;text-transform:uppercase}.v8callt b{font-family:var(--display);font-size:20px}.v8callt span{font-size:13px;opacity:.85}
.v8callbtn{background:#fff;color:#5B2148;border-radius:999px;padding:13px 20px;font-weight:800;font-size:15px;text-decoration:none;white-space:nowrap}
.v8callbtn.off{background:rgba(255,255,255,.2);color:#fff;font-weight:600;font-size:13px}
@media (prefers-reduced-motion:reduce){.v8callic{animation:none}}

/* task 19 · Réglages: sticky bar */
.v8setbar{position:sticky;top:0;z-index:20;background:var(--ground,#F6F4F1);margin:6px -4px 8px;padding:10px 4px 8px;border-bottom:1px solid var(--line,#E6E0E4)}
.v8setrow{display:flex;align-items:center;gap:12px}
.v8back{height:44px;padding:0 16px;border-radius:999px;background:#fff;border:1.5px solid var(--ink,#17141A);font-weight:800;font-size:14px;white-space:nowrap}
.v8sett{display:flex;flex-direction:column;min-width:0}.v8sett small{font-size:12px;color:var(--soft,#6B6470);font-weight:600}.v8sett small button{font:inherit;color:var(--v7-prune,#5B2148);text-decoration:underline;padding:0}
.v8sett b{font-family:var(--display);font-size:22px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v8settabs{display:flex;gap:6px;margin-top:10px;overflow-x:auto;scrollbar-width:none}
.v8settabs button{flex:none;height:36px;padding:0 14px;border-radius:999px;background:#fff;border:1.5px solid var(--line,#E6E0E4);font-weight:700;font-size:13px}
.v8settabs button[aria-pressed="true"]{background:var(--v7-prune,#5B2148);border-color:var(--v7-prune,#5B2148);color:#fff}
.v7setbar{display:none}

/* task 8 · Preferito page in the tiles style, clean switches */
.v7adm .sw11{width:52px!important;min-width:52px;height:30px!important;padding:0!important;border:0!important;border-radius:999px!important;background:#D9D2D7!important;box-shadow:none!important}
.v7adm .sw11 i{top:3px;left:3px;width:24px;height:24px}
.v7adm .sw11[aria-checked="true"]{background:var(--v7-prune,#5B2148)!important}
.v7adm .sw11[aria-checked="true"] i{left:25px}
.v8chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px}
.v8chips button{height:38px;padding:0 14px;border-radius:999px;background:#fff;border:1.5px solid var(--line,#E6E0E4);font-weight:700;font-size:13px}
.v8chips button[aria-pressed="true"]{background:var(--v7-prune,#5B2148);color:#fff;border-color:var(--v7-prune,#5B2148)}
.v8lab{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:700;color:var(--soft,#6B6470);margin:6px 0}
.v8lab input,.v8lab select,.v8row input{height:44px;border:1.5px solid var(--line,#E1DADF);border-radius:12px;padding:0 12px;font-size:15px;background:#fff;color:var(--ink,#17141A)}
.v8row{display:flex;gap:8px}.v8row input{flex:1;min-width:0}.v8row .btn{width:auto;padding:0 16px;height:44px}

/* task 23 · a bigger Preferito logo on the staff screens */
.khead .wordmark svg,.v7admhead .wordmark svg{height:32px;width:auto}
.khead .wordmark{font-size:32px}
@media (max-width:600px){.khead .wordmark svg{height:26px}}

/* ===== task 20 · white header, tabs with icons and red badges ===== */
.v8bd{position:absolute;top:-7px;right:-9px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#FF3B30;color:#fff;font:800 11px/19px Arial,sans-serif;font-style:normal;text-align:center;border:2px solid #fff;box-shadow:0 2px 6px rgba(255,59,48,.4)}
.v8bd.jump{animation:v8jump .6s cubic-bezier(.3,1.8,.5,1),v8pulse 1s ease-out 3}
@keyframes v8jump{0%{transform:scale(.3)}100%{transform:scale(1)}}
@keyframes v8pulse{0%{box-shadow:0 0 0 0 rgba(255,59,48,.45)}100%{box-shadow:0 0 0 10px rgba(255,59,48,0)}}
@media (prefers-reduced-motion:reduce){.v8bd.jump{animation:none}}
body.v8floor .khead{background:#fff;color:var(--ink,#17141A);box-shadow:0 1px 0 var(--line,#E6E0E4),0 6px 18px rgba(23,20,26,.05)}
body.v8floor .khead .kstats span{color:var(--soft,#6B6470)}
body.v8floor .khead .kround{background:#F3EEF1;color:var(--ink,#17141A)}
.khead .ktabs.v8tabs{background:#F3EEF1;border-radius:16px;padding:5px;gap:4px;display:flex}
.khead .ktabs.v8tabs button{position:relative;display:flex;align-items:center;gap:8px;height:44px;padding:0 16px;border-radius:12px;color:var(--soft,#6B6470);font-weight:700;font-size:14px;background:transparent}
.khead .ktabs.v8tabs button[aria-pressed="true"]{background:var(--v7-prune,#5B2148);color:#fff;box-shadow:0 6px 14px rgba(91,33,72,.25)}
.v8ti{position:relative;display:inline-grid;place-items:center}
.v8chat{position:relative;width:44px;height:44px;border-radius:50%;background:#F3EEF1;color:var(--ink,#17141A);display:inline-grid;place-items:center;flex:none}
.v7otop .v8chat{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.08)}
#chatfab{display:none!important}
/* phone: the tabs go to a bar at the bottom */
@media (max-width:700px){
  body.v8floor .khead .ktabs.v8tabs{position:fixed;left:0;right:0;bottom:0;z-index:35;margin:0;border-radius:0;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-top:1px solid var(--line,#E6E0E4);padding:6px 6px calc(8px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:repeat(4,1fr)}
  body.v8floor .khead .ktabs.v8tabs button{flex-direction:column;gap:2px;height:54px;padding:4px 0;font-size:11px;background:transparent!important;box-shadow:none!important;color:#8A828E}
  body.v8floor .khead .ktabs.v8tabs button[aria-pressed="true"]{color:var(--v7-prune,#5B2148)}
  body.v8floor .khead .ktabs.v8tabs button[aria-pressed="true"] .v8ti{background:#F3E7EE;border-radius:12px;padding:3px 12px}
  body.v8floor main.wide,body.v8floor #app>main{padding-bottom:96px}
  body.v8floor #v61alert,body.v8floor #v6mute{bottom:calc(84px + env(safe-area-inset-bottom,0px))!important}
}

/* ===== task 4 · tables as tiles ===== */
.v8tiles>section{min-width:0}
.v8tbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.v8tbar .seg{margin:0}.v8tbar .sp{flex:1}
.btn.v8sm{width:auto;height:44px;padding:0 16px;font-size:14px}
.v8figs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:10px}
.v8figs div{background:#fff;border-radius:16px;padding:12px 14px;min-width:0}
.v8figs small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--soft,#6B6470)}
.v8figs b{font-family:var(--display);font-size:22px;white-space:nowrap}
.v8figs .or b{color:#C9711A}
.v8leg{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--soft,#6B6470);margin:2px 0 12px}
.v8leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.v8leg i.busy{background:var(--v7-prune,#5B2148)}.v8leg i.ready{background:#2EA05B}.v8leg i.bill{background:#F28C28}.v8leg i.book{background:#9C6BD0}.v8leg i.free{border:1.5px dashed #BDB4BA}
.v8grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.v8t{position:relative;border-radius:16px;padding:12px 12px 12px 14px;min-height:96px;background:#fff;border:1.5px solid #E6E0E4;display:flex;flex-direction:column;gap:2px;cursor:pointer;text-align:left}
.v8t .n{font-family:var(--display);font-size:24px;line-height:1.1}
.v8t small{font-size:11.5px;color:var(--soft,#6B6470)}
.v8t .a{font-family:var(--mono,monospace);font-weight:800;font-size:15px;margin-top:4px}
.v8t.free{border-style:dashed;background:#FBFAF8}.v8t.free .n{color:#BDB4BA}.v8t.free small{color:#A69EA4}
.v8t.busy,.v8t.ready,.v8t.bill,.v8t.paid{box-shadow:inset 4px 0 0 var(--bar,#5B2148)}
.v8t.busy{border-color:var(--v7-prune,#5B2148)}
.v8t.ready{--bar:#2EA05B;border-color:#2EA05B;background:#F1FAF4}
.v8t.bill{--bar:#F28C28;border-color:#F28C28;background:#FFF6EC}
.v8t.paid{--bar:#2EA05B;border-color:#2EA05B}
.v8t.book{border:1.5px dashed #9C6BD0;background:#F8F3FD}
.v8t.sel{outline:3px solid #E9A9C6;outline-offset:2px;z-index:5}
.v8t .old{color:#C63B2F;font-style:normal;font-weight:700}
.v8pill{position:absolute;top:10px;right:10px;font:700 10px Arial,sans-serif;padding:3px 7px;border-radius:20px;background:#F3EEF1;color:var(--v7-prune,#5B2148)}
.v8pill.gr{background:#2EA05B;color:#fff}.v8pill.or{background:#F28C28;color:#fff}.v8pill.bk{background:#9C6BD0;color:#fff}
.v8tb{margin-top:6px;align-self:flex-start;height:32px;padding:0 12px;border-radius:10px;background:#2E7A4B;color:#fff;font-weight:700;font-size:12px}
.v8pop{position:absolute;left:-4px;top:calc(100% + 6px);z-index:30;width:250px;background:#17141A;color:#fff;border-radius:16px;padding:14px;box-shadow:0 14px 30px rgba(0,0,0,.3);cursor:default}
.v8pop b{display:block;font-size:14px;margin-bottom:8px}
.v8cv{display:flex;flex-wrap:wrap;gap:5px}
.v8cv button{width:36px;height:36px;border-radius:10px;background:#2B2630;color:#fff;font-weight:700}
.v8cv button[aria-pressed="true"]{background:#E9A9C6;color:#17141A}
.v8go{margin-top:10px;width:100%;height:44px;border-radius:12px;background:#E9A9C6;color:#17141A;font-weight:800;font-size:14px}
@media (max-width:700px){.v8figs{grid-template-columns:1fr 1fr}.v8grid{grid-template-columns:repeat(3,1fr)}.v8t{min-height:84px;padding:10px}.v8t .n{font-size:20px}.v8pop{width:min(250px,80vw)}}

/* ===== task 17 · right panel with tabs ===== */
.v8sidetabs{display:flex;gap:3px;background:#ECE6EA;border-radius:14px;padding:4px;margin-bottom:10px;position:sticky;top:8px;z-index:3}
.v8sidetabs button{flex:1;height:38px;border-radius:11px;font-weight:700;font-size:12.5px;color:var(--soft,#6B6470);display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}
.v8sidetabs button[aria-pressed="true"]{background:#fff;color:var(--ink,#17141A);box-shadow:0 2px 6px rgba(0,0,0,.1)}
.v8sidetabs i{font-style:normal;font:700 10.5px Arial,sans-serif;background:#fff;border-radius:9px;padding:1px 6px}
.v8sidetabs button[aria-pressed="true"] i{background:var(--v7-prune,#5B2148);color:#fff}
.v8sidetabs i.hot{background:#F28C28!important;color:#fff}
aside.v8tabbed>.panel{display:none}
aside.v8tabbed>.panel.v8on{display:block}

/* ===== task 18 · the till made for tablet ===== */
.till .tl-field[data-tt]{background:#17141A;color:#fff;border-radius:20px;padding:16px 20px;display:flex;flex-direction:column;align-items:flex-start;position:relative;border:0}
.till .tl-field[data-tt] small{color:#BDB4BA;letter-spacing:1px;text-transform:uppercase;font-size:11px}
.till .tl-field[data-tt] b{font-size:42px;color:#fff}
.v8other{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);border-radius:12px;padding:10px 14px;font-weight:700;font-size:13px}
.till .tl-quick button{height:48px;font-size:14px}
.till .tl-methods{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.till .tl-methods button{min-height:84px;border-radius:18px;font-size:14px;font-weight:800;flex-direction:column;gap:6px}
.till .tl-methods button[data-v2tm="cash"],.till .tl-methods button[data-v2tm="tpe"]{grid-column:span 2;min-height:96px;flex-direction:row;font-size:18px;color:#fff;border:0}
.till .tl-methods button[data-v2tm="cash"]{background:#2E7A4B}
.till .tl-methods button[data-v2tm="tpe"]{background:var(--v7-prune,#5B2148)}
.till .tl-methods button[data-v2tm="cash"] svg,.till .tl-methods button[data-v2tm="tpe"] svg{width:30px;height:30px}
.till .tl-methods button:disabled{opacity:.45}
@media (max-width:600px){.till .tl-methods{grid-template-columns:1fr 1fr}.till .tl-field[data-tt] b{font-size:34px}}
.v8tbar .seg.tmode{display:inline-flex;flex-wrap:nowrap;flex:none;width:auto}
.v8tbar .seg.tmode button{white-space:nowrap;padding:0 14px}
body.v8floor .khead .kav{color:#fff}
body.v8floor .khead .v7who{background:#F3EEF1;color:var(--ink,#17141A)}

/* ===== task 15 · choices on dishes ===== */
.v8chs{display:flex;flex-direction:column;gap:14px;margin:4px 0 6px}
.v8chh{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}
.v8chh b{font-family:var(--display);font-size:17px}.v8chh small{font-size:12px;font-weight:700;color:var(--soft,#6B6470)}
.v8cho{display:flex;flex-direction:column;gap:8px}
.v8cho button{display:flex;align-items:center;gap:12px;min-height:52px;padding:0 14px;border-radius:14px;background:#fff;border:1.5px solid var(--line,#E6E0E4);text-align:left;font-weight:700;font-size:15px}
.v8cho button .rd{width:22px;height:22px;border-radius:50%;border:2px solid #BDB4BA;flex:none;position:relative}
.v8cho button[aria-pressed="true"]{border-color:var(--v7-prune,#5B2148);background:#FBF6F9}
.v8cho button[aria-pressed="true"] .rd{border-color:var(--v7-prune,#5B2148)}
.v8cho button[aria-pressed="true"] .rd::after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--v7-prune,#5B2148)}
.v8cho .nm{flex:1}.v8cho em{font-style:normal;font-size:13px;color:var(--soft,#6B6470)}
.v8shake{animation:v8shake .4s}
@keyframes v8shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.v8optrow{display:grid;grid-template-columns:1fr 92px auto auto;gap:6px;align-items:center}
.v8optrow input{height:44px;border:1.5px solid var(--line,#E1DADF);border-radius:12px;padding:0 10px;font-size:15px;min-width:0}
.v8optrow button{height:44px;padding:0 10px;border-radius:12px;background:#F3EEF1;font-weight:700;font-size:12px}
.v8optrow button[aria-pressed="true"]{background:#FFE9D6;color:#C9711A}

/* ===== task 22 · chat ===== */
.v8chatsheet{max-width:560px;width:100%;display:flex;flex-direction:column;gap:10px;max-height:92vh}
.v8chlist{flex:1;min-height:240px;max-height:52vh;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:4px 2px;background:#F6F4F1;border-radius:16px;padding:12px}
.v8day{align-self:center;font-size:11.5px;font-weight:700;color:var(--soft,#6B6470);background:#fff;border-radius:999px;padding:3px 10px;margin:6px 0;text-transform:capitalize}
.v8msg{display:flex;align-items:flex-end;gap:8px;max-width:86%}
.v8msg.me{align-self:flex-end;flex-direction:row-reverse}
.v8msg .av{width:28px;height:28px;border-radius:50%;background:#2EA05B;color:#fff;display:grid;place-items:center;font-weight:800;font-size:12px;flex:none}
.v8msg .av.r-kitchen{background:#C9711A}.v8msg .av.r-manager{background:var(--v7-prune,#5B2148)}
.v8msg .bub{background:#fff;border-radius:18px 18px 18px 6px;padding:8px 12px;display:flex;flex-direction:column;gap:4px;box-shadow:0 1px 2px rgba(0,0,0,.06);min-width:0}
.v8msg.me .bub{background:var(--v7-prune,#5B2148);color:#fff;border-radius:18px 18px 6px 18px}
.v8msg .bub small{font-weight:800;font-size:11.5px;color:var(--v7-prune,#5B2148)}
.v8msg .bub span{font-size:14.5px;line-height:1.4;overflow-wrap:anywhere}
.v8msg .bub em{font-style:normal;font-size:10.5px;opacity:.6;align-self:flex-end}
.v8msg .bub img{display:block;max-width:100%;max-height:220px;border-radius:12px;object-fit:cover}
.v8msg .tg,.v8draft,.v8pl{display:flex;flex-wrap:wrap;gap:5px}
.v8tag{height:28px;padding:0 10px;border-radius:999px;font-weight:700;font-size:12px;background:#F3EEF1;color:var(--v7-prune,#5B2148);border:0}
.v8tag.ready{background:#E3F4EA;color:#2E7A4B}.v8tag.bill{background:#FFE9D6;color:#C9711A}.v8tag.book{background:#EFE6FA;color:#7A4CB8}.v8tag.team{background:#17141A;color:#fff}
.v8msg.me .v8tag{background:rgba(255,255,255,.18);color:#fff}
.v8draft{align-items:center;background:#F6F4F1;border-radius:12px;padding:6px}
.v8draft .ph{position:relative}.v8draft .ph img{width:54px;height:54px;object-fit:cover;border-radius:10px;display:block}
.v8draft .ph button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;background:#17141A;color:#fff;font-size:11px}
.v8pick{background:#fff;border:1.5px solid var(--line,#E6E0E4);border-radius:14px;padding:8px;display:flex;flex-direction:column;gap:8px}
.v8pick input{height:40px;border:1.5px solid var(--line,#E1DADF);border-radius:10px;padding:0 10px;font-size:14px}
.v8pl{max-height:140px;overflow-y:auto}
.v8chin{display:flex;align-items:center;gap:6px}
.v8chin input{flex:1;min-width:0;height:46px;border:1.5px solid var(--line,#E1DADF);border-radius:999px;padding:0 16px;font-size:15px}
.v8plus{width:42px;height:42px;border-radius:50%;background:#F3EEF1;display:grid;place-items:center;font-weight:800;font-size:17px;cursor:pointer;flex:none}
.v8send{width:46px;height:46px;border-radius:50%;background:var(--v7-prune,#5B2148);color:#fff;font-size:17px;flex:none}
.v8empty{margin:auto;text-align:center;display:flex;flex-direction:column;gap:4px;color:var(--soft,#6B6470);font-size:28px}.v8empty b{font-size:15px;color:var(--ink,#17141A)}.v8empty span{font-size:13px}

/* ===== task 18 · cash window: big buttons ===== */
.tillpop .tl-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.tillpop .tl-quick button{height:58px;font-size:16px;font-weight:800;border-radius:14px}
.tillpop .tl-change{background:#E3F4EA;border-radius:18px;padding:14px 18px}.tillpop .tl-change b{font-size:36px;color:#1F6B3D}
.tillpop .tl-go{height:60px;font-size:17px;border-radius:18px;background:#2E7A4B}
@media (max-width:600px){.tillpop .tl-quick{grid-template-columns:repeat(2,1fr)}}

/* ===== task 5 · one style on every staff page (except the owner's dashboard) ===== */
.khead{background:#fff;color:var(--ink,#17141A);box-shadow:0 1px 0 var(--line,#E6E0E4),0 6px 18px rgba(23,20,26,.05)}
.khead .kstats span{color:var(--soft,#6B6470)}
.khead .kround{background:#F3EEF1;color:var(--ink,#17141A)}
.khead .kav{color:#fff}
.khead .ktabs.stn{background:#F3EEF1;border-radius:16px;padding:5px}
.khead .ktabs.stn button{color:var(--soft,#6B6470);border-radius:12px}
.khead .ktabs.stn button[aria-pressed="true"]{background:var(--v7-prune,#5B2148);color:#fff}
.kbody .panel,.wide .panel{background:#fff;border-radius:20px;border:1px solid var(--line,#ECE6EA);box-shadow:none}
.kbody .ksub{font-family:var(--display)}
.khead .v7who .kav,.v7otop .v7who .kav{color:#fff!important}

/* ======================= Preferito 8.1 ======================= */
/* task 1 · description in the choice window */
.v81desc{display:flex;flex-direction:column;gap:8px;margin:2px 0 4px}
.v81desc p{margin:0;font-size:15px;line-height:1.5;color:var(--soft,#6B6470)}
/* task 2 · menu-only tables: nothing to order on the dish page */
body.menu-only .dish-sheet .add-row,body.menu-only .dish-sheet label[for="dnote"],body.menu-only .dish-sheet .xgrid,body.menu-only .splus,body.menu-only [data-add],body.menu-only .xs-foot{display:none!important}
/* task 4 · « Appeler le serveur » switched off */
body.v7off-calls #callfab,body.v7off-calls .callfab{display:none!important}
/* task 5b · the assistant band */
.v81ia{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#2B1024,#5B2148 60%,#8E3B70);color:#fff;border-radius:22px;padding:16px 18px;margin:10px 0 14px;box-shadow:0 12px 26px rgba(43,16,36,.25);flex-wrap:wrap}
.v81wave{display:flex;align-items:center;gap:3px;height:40px;flex:none}
.v81wave i{width:4px;border-radius:3px;background:#E9A9C6;animation:v81w 1.1s ease-in-out infinite alternate}
@keyframes v81w{from{transform:scaleY(.45)}to{transform:scaleY(1)}}
.v81iat{flex:1;min-width:170px;display:flex;flex-direction:column;gap:1px}
.v81iat small{font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;opacity:.7}.v81iat b{font-family:var(--display);font-size:20px}.v81iat span{font-size:12.5px;opacity:.85}
.v81call{background:#fff;color:#5B2148;border-radius:999px;padding:12px 20px;font-weight:800;font-size:15px;text-decoration:none;white-space:nowrap}
.v81call.off{background:rgba(255,255,255,.18);color:#fff;font-size:13px;font-weight:600}
@media (prefers-reduced-motion:reduce){.v81wave i{animation:none}}
/* task 7 · the bank card: the whole card scales together */
.v7persp{width:300px!important;max-width:none;transform:scale(.74);transform-origin:top center;margin:0 auto -49px!important}
.v7front{padding:14px 16px!important}
.v7persp .v7num{font-size:inherit}.v7persp .v7bot{font-size:inherit}.v7persp .v7chip{transform:none}
#v7holder{display:block;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:340px){.v7persp{transform:scale(.66);margin-bottom:-64px!important}}
/* task 9 · « Plan de salle · Tuiles · Liste » on one line everywhere */
.seg.tmode{display:inline-flex!important;flex-wrap:nowrap!important;width:auto!important;max-width:100%}
.seg.tmode button{white-space:nowrap;padding:0 14px;flex:none}
@media (max-width:380px){.seg.tmode button{padding:0 9px;font-size:12.5px}}
/* task 8 · filters and pages for the tiles */
.v81filt{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:10px}
.v81filt button{height:36px;padding:0 12px;border-radius:999px;background:#fff;border:1.5px solid var(--line,#E6E0E4);font-weight:700;font-size:13px}
.v81filt button i{font-style:normal;font-size:11px;background:#F3EEF1;border-radius:9px;padding:1px 6px;margin-left:3px}
.v81filt button[aria-pressed="true"]{background:var(--v7-prune,#5B2148);color:#fff;border-color:var(--v7-prune,#5B2148)}
.v81filt button[aria-pressed="true"] i{background:rgba(255,255,255,.2)}
.v81filt input{margin-left:auto;width:130px;height:36px;border:1.5px solid var(--line,#E1DADF);border-radius:999px;padding:0 12px;font-size:14px}
.v81pg{display:flex;gap:6px;justify-content:center;margin-top:12px;flex-wrap:wrap}
.v81pg button{height:36px;padding:0 14px;border-radius:999px;background:#fff;border:1.5px solid var(--line,#E6E0E4);font:700 13px var(--mono,monospace)}
.v81pg button[aria-pressed="true"]{background:#17141A;color:#fff;border-color:#17141A}
/* tasks 11, 12 · takeaway card */
.v81card{display:flex;flex-direction:column;gap:10px;border:2px solid transparent}
.v81card.now{border-color:var(--v7-prune,#5B2148)}
.v81h{display:flex;align-items:center;gap:10px}.v81h b{font-size:22px}.v81h .nm{font-weight:800;font-size:16px}.v81h .sp{flex:1}.v81h small{font-size:12px;color:var(--soft,#6B6470)}
.v81steps{display:flex;align-items:center}
.v81st{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:#A69EA4;flex:none}
.v81st i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:11px;background:#F3EEF1}
.v81st.done{color:#2E7A4B}.v81st.done i{background:#2EA05B;color:#fff}
.v81st.cur{color:var(--v7-prune,#5B2148)}.v81st.cur i{background:var(--v7-prune,#5B2148);color:#fff;box-shadow:0 0 0 4px #F3E7EE}
.v81ln{flex:1;height:2px;background:#ECE6EA;margin:0 6px;min-width:10px}.v81ln.done{background:#2EA05B}
.v81pay{border-radius:12px;padding:8px 12px;font-weight:800;font-size:13px}.v81pay.warn{background:#FFE9D6;color:#C9711A}.v81pay.ok{background:#E3F4EA;color:#2E7A4B}
.v81items{list-style:none;margin:0;padding:10px 12px;background:#F6F4F1;border-radius:14px;display:flex;flex-direction:column;gap:6px}
.v81items li{display:flex;gap:10px;font-size:15px}.v81items b{font-family:var(--mono,monospace);width:28px;flex:none}.v81items small{display:block;color:var(--soft,#6B6470);font-size:12px}.v81items small.red{color:#C63B2F;font-weight:700}
.v81tot{display:flex;justify-content:space-between;font-weight:800}.v81tot b{font-size:18px}
.v81big{height:58px;border-radius:16px;color:#fff;font-weight:800;font-size:16px;width:100%}.v81big.cash{background:#2E7A4B}.v81big.ink{background:#17141A}
.v81hint{margin:0;text-align:center;font-size:12px;color:var(--soft,#6B6470)}
.v81help{display:flex;gap:8px}.v81help button{flex:1;height:40px;border:1.5px solid var(--line,#E1DADF);border-radius:12px;font-weight:700;font-size:12.5px;background:#fff}
.v81slide{position:relative;display:block;height:60px;border-radius:30px;background:linear-gradient(90deg,#2EA05B var(--p,0%),var(--v7-prune,#5B2148) var(--p,0%));overflow:hidden}
.v81slide span{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-weight:800;font-size:15px;pointer-events:none;padding-left:40px}
.v81slide input{-webkit-appearance:none;appearance:none;position:absolute;inset:0;width:100%;height:100%;margin:0;background:transparent;z-index:2;cursor:grab}
.v81slide input::-webkit-slider-thumb{-webkit-appearance:none;width:50px;height:50px;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%235B2148' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E") center no-repeat;box-shadow:0 2px 6px rgba(0,0,0,.2)}
.v81slide input::-moz-range-thumb{width:50px;height:50px;border-radius:50%;background:#fff;border:0}
.v81row{display:flex;align-items:center;gap:10px;background:#fff;border-radius:14px;padding:10px 14px;font-size:13px}.v81row .sp{flex:1}.v81ok{background:#E3F4EA;color:#2E7A4B;border-radius:20px;padding:3px 9px;font-weight:700;font-size:11px}
/* task 13 · the pickup ticket */
.v81tk{align-self:stretch;background:#FFFDF8;color:#17141A;border-radius:22px;padding:16px 18px;text-align:left;display:flex;flex-direction:column;gap:6px;box-shadow:0 14px 30px rgba(0,0,0,.25)}
.v81tk .lab{font:700 10.5px var(--sans,Arial);letter-spacing:1.2px;color:#6B6470}
.v81tk .nr{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.v81tk .no{font:800 52px var(--mono,monospace);letter-spacing:-2px;color:#5B2148;line-height:1}.v81tk .nm{font-weight:800;font-size:19px;text-align:right}
.v81tk .perf{border-top:2px dashed #E0D6C6;margin:8px -18px;position:relative}
.v81tk .perf::before,.v81tk .perf::after{content:"";position:absolute;top:-10px;width:18px;height:18px;border-radius:50%;background:#3A1E26}.v81tk .perf::before{left:-9px}.v81tk .perf::after{right:-9px}
.v81tk .stp{display:flex;gap:6px}.v81tk .stp div{flex:1;text-align:center;font-size:11px;font-weight:700;color:#2E7A4B}.v81tk .stp i{display:block;height:5px;border-radius:3px;background:#2EA05B;margin-bottom:4px}
.v81tk .li{display:flex;justify-content:space-between;gap:10px;font-size:14px}.v81tk .li b{font-family:var(--mono,monospace)}.v81tk .li small{color:#6B6470}
.v81tk .py{font-weight:700;font-size:12.5px}.v81tk .py.ok{color:#2E7A4B}.v81tk .py.warn{color:#C9711A}
.ready-screen .eyebrow,.ready-screen [class*="sugg"] small,.ready-screen [class*="sugg"] p{color:#F3D3E2!important;text-shadow:0 1px 4px rgba(0,0,0,.5)}
/* task 14 · no empty space at the bottom of guest pages */
main.phone{min-height:0!important;padding-bottom:24px}
body.has-nav main.phone{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))!important}
body:has(#cartbar) main.phone{padding-bottom:150px!important}
/* task 15 · a bigger, centred logo on guest screens */
.track-top{display:grid!important;grid-template-columns:44px 1fr auto;align-items:center;gap:8px;min-height:52px}
.track-top>.wordmark{grid-column:2;justify-self:center}
.track-top>.wordmark:first-child{grid-column:1 / span 2;justify-self:start}
.track-top .wordmark svg,.mhead .wordmark svg,.hero-top .wordmark svg{height:30px;width:auto}
.track-top .wordmark img.v7rlogo,.mhead .wordmark img.v7rlogo{height:34px!important;max-width:60vw;object-fit:contain}
/* task 10c · the guest's bill in the receipt style */
main.track .recap{background:#FFFDF8;border:0;border-radius:18px 18px 0 0;padding:16px 18px 22px;font-family:inherit;position:relative;box-shadow:0 8px 20px rgba(23,20,26,.06);
  -webkit-mask:radial-gradient(circle 7px at 50% 100%,#0000 98%,#000) 0 0/16px 100% repeat-x;mask:radial-gradient(circle 7px at 50% 100%,#0000 98%,#000) 0 0/16px 100% repeat-x}
main.track .recap>div:first-child::before{content:none}
main.track .recap .mono{font-weight:700}
main.track .recap>div[style*="height:1px"]{background:none!important;border-top:1.5px dashed #E0D6C6;height:0!important}
.v81sp{flex:1}
.v81ia{align-self:stretch;width:100%;box-sizing:border-box}
