:root{
  --purple-900:#2a0f46;--purple-800:#3b1563;--purple-700:#50207a;--purple-600:#6a2fa3;--purple-500:#8445c4;
  --purple-300:#c9a6ef;--purple-100:#f1e9fb;--purple-50:#f8f4fd;
  --lime-500:#a6e22e;--lime-400:#b8e94a;--lime-200:#e3f7b8;--lime-100:#f1fbdc;
  --ink:#231a33;--muted:#7a7289;--line:#efeaf4;--bg:#f6f3fa;--card:#fff;
  --green:#1f9d55;--red:#d0384f;--amber:#c98a12;
  --radius:12px;--shadow:0 1px 2px rgba(40,15,70,.04),0 1px 8px rgba(40,15,70,.03);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg);font-size:13.5px;font-weight:400;line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:'cv11','ss03'}
b,strong,th{font-weight:500}
h1,h2,h3,h4{font-weight:600}
.k-val,.price,.grand,.net,.num,.tbl td,.pay-sum b,.ind b,.change b,.po-total b,.sugg b{font-variant-numeric:tabular-nums}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
.demo-bar{background:var(--purple-900);color:#d9c6ef;text-align:center;font-size:12px;padding:5px 12px}
.shell{display:grid;grid-template-columns:212px minmax(0,1fr);min-height:calc(100vh - 26px)}

/* sidebar */
.side{background:linear-gradient(180deg,#3a145f 0%,#2a0d47 60%,#250b40 100%);color:#efe6fa;padding:22px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;align-items:center;gap:10px;font-family:Quicksand,Inter,system-ui,sans-serif;font-size:22px;font-weight:700;letter-spacing:-.2px;padding:0 6px 20px}
.lemon{width:34px;height:34px;background:url('icons/logo-128.png') center/contain no-repeat;display:inline-block;flex:none}
.role{display:flex;align-items:center;gap:8px;width:100%;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:10px;color:#fff;padding:9px 12px;margin-bottom:16px}
.role .crown{color:#f2c94c}.role .chev{margin-left:auto;opacity:.7}
nav a{display:flex;align-items:center;gap:11px;padding:8px 11px;white-space:nowrap;border-radius:9px;color:#d9cbea;margin:1px 0;font-weight:400;font-size:13px}
nav a:hover{background:rgba(255,255,255,.06)}
nav a.on{background:var(--purple-600);color:#fff;box-shadow:0 4px 14px rgba(0,0,0,.2)}
nav a .ic{width:20px;text-align:center;opacity:.9}
.help{margin-top:auto;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:11px;padding:16px;position:relative;overflow:hidden}
.help:after{content:"";position:absolute;right:-40px;bottom:-40px;width:120px;height:120px;border-radius:50%;background:var(--lime-400);opacity:.22}
.help p{font-size:12px;color:#cdbbe0;margin:6px 0 12px}
.help-ico{font-size:18px;margin-bottom:6px}
.ghost-light{background:transparent;border:1px solid rgba(255,255,255,.6);color:#fff;border-radius:8px;padding:8px 10px;width:100%;font-size:12px;position:relative;z-index:1}

/* topbar */
.main-col{min-width:0}
.topbar{display:flex;align-items:center;gap:16px;padding:9px 24px;background:rgba(255,255,255,.7);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.menu-btn{display:none;background:none;border:0;font-size:22px}
.search{flex:1;max-width:520px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:7px 12px}
.search input{border:0;outline:0;flex:1;min-width:0;background:transparent}
.search kbd{font-size:11px;border:1px solid var(--line);border-radius:6px;padding:2px 6px;color:var(--muted)}
.top-right{margin-left:auto;display:flex;align-items:center;gap:18px}
.bell{background:none;border:0;font-size:18px;position:relative}
.bell i{position:absolute;right:-2px;top:0;width:8px;height:8px;border-radius:50%;background:var(--lime-500)}
.user{display:flex;align-items:center;gap:10px}
.user small{display:block;color:var(--muted);font-size:12px}
.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--purple-500),var(--purple-800));color:#fff;display:grid;place-items:center;font-weight:600;font-size:13px}

/* layout */
main{padding:18px 22px 36px}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.hello{color:var(--muted);margin:0 0 2px}
h1{font-size:23px;letter-spacing:-.4px;margin:0;font-weight:600}
.sub{color:var(--muted);margin-top:4px}
.chip-btn{background:#fff;border:1px solid var(--line);border-radius:9px;padding:7px 12px;display:inline-flex;gap:7px;align-items:center;font-weight:400;font-size:13px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px;margin-bottom:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;min-width:0}
.kpi .k-head{display:flex;gap:10px;align-items:center;font-weight:500;font-size:13px;min-height:34px}
.kpi .k-ic{width:28px;height:28px;border-radius:9px;background:var(--lime-100);display:grid;place-items:center;flex:none}
.kpi .k-val{font-size:clamp(17px,1.4vw,21px);font-weight:500;margin:10px 0 6px;letter-spacing:-.5px;white-space:nowrap}
.delta{display:inline-block;font-size:12px;font-weight:600;border-radius:6px;padding:2px 6px}
.up{background:var(--lime-100);color:#3c7a05}.down{background:#ffe6ea;color:var(--red)}
.vs{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.row2{display:grid;grid-template-columns:1.8fr 1fr;gap:16px;margin-bottom:16px}
.row3{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:16px;margin-bottom:16px}
@media (min-width:1201px){.row3.wide1{grid-template-columns:1.8fr 1fr 1fr}}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.card-h h3{display:flex;align-items:center;gap:9px;font-size:14.5px;font-weight:500;margin:0;letter-spacing:-.1px}
.card-h .hi{width:26px;height:26px;border-radius:9px;background:var(--purple-100);display:grid;place-items:center;font-size:14px}
.legend{display:flex;gap:14px;font-size:12px;color:var(--muted)}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:middle}
.outline-btn{background:#fff;border:1px solid var(--purple-300);color:var(--purple-700);border-radius:9px;padding:7px 12px;font-weight:500;font-size:12px}
.outline-btn:hover{background:var(--purple-50)}
svg text{font-family:Inter,system-ui,sans-serif}

/* donut */
.donut-wrap{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.donut-legend{flex:1;min-width:150px}
.donut-legend div{display:flex;justify-content:space-between;padding:7px 0;font-size:13px}

/* plans */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.plan{border:1px solid var(--line);border-radius:10px;padding:12px;position:relative}
.plan.best{border-color:var(--lime-400);background:var(--lime-100)}
.plan .tag{position:absolute;top:-9px;right:8px;background:var(--lime-400);font-size:10px;font-weight:600;border-radius:6px;padding:2px 6px}
.plan b{display:block;font-size:17px;margin:8px 0 2px}
.plan small{color:var(--muted);font-size:11px}
.plan .n{display:block;margin-top:10px;font-size:12px;color:var(--muted)}
.kv{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}
.kv:last-child{border:0}
.kv b{font-weight:600}
.status-ok{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;background:var(--lime-100);color:#3c7a05;border-radius:6px;padding:3px 8px}
.status-ok:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green)}
.checks{list-style:none;padding:0;margin:10px 0 14px;font-size:12px;color:var(--muted)}
.checks li{padding:4px 0}.checks li:before{content:"✓ ";color:var(--green);font-weight:600}

/* tables */
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{background:transparent;color:var(--muted);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.05em;text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
.tbl td{padding:9px 10px;border-bottom:1px solid var(--line)}
.tbl-wrap{overflow-x:auto}
.rest{display:flex;align-items:center;gap:10px}
.rest .logo{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:17px;flex:none}
.rest small{display:block;color:var(--muted);font-size:11px}
.badge{display:inline-block;font-size:11px;font-weight:500;border-radius:6px;padding:3px 8px;background:var(--purple-100);color:var(--purple-700)}
.badge.lime{background:var(--lime-100);color:#3c7a05}
.badge.amber{background:#fff3d6;color:#8a5a00}
.badge.blue{background:#e6effc;color:#2c5aa0}
.dots{background:none;border:0;font-size:18px;color:var(--muted)}

/* flow */
.flow{display:grid;grid-template-columns:repeat(5,1fr);gap:22px;position:relative}
.step{border-radius:11px;padding:14px;position:relative;border:1px solid var(--line)}
.step:not(:last-child):after{content:"→";position:absolute;right:-17px;top:50%;transform:translateY(-50%);color:var(--muted)}
.step .s-n{font-size:24px;font-weight:600;margin:6px 0}
.step .s-t{font-weight:500;font-size:13px}
.s1{background:var(--purple-50)}.s2{background:#fff8e6}.s3{background:#f0f9e4}.s4{background:#f3eefb}.s5{background:var(--lime-100);border-color:var(--lime-400)}
.progress{height:8px;border-radius:8px;background:var(--line);overflow:hidden;margin:10px 0 4px}
.progress i{display:block;height:100%;background:var(--lime-500)}
.quick{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.quick button{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 8px;text-align:center}
.quick button:hover{border-color:var(--purple-300)}
.quick b{display:block;margin:6px 0 4px}
.quick small{color:var(--muted);font-size:11px}
.quick .qi{font-size:20px}
.seg{display:inline-flex;background:var(--purple-50);border-radius:9px;padding:3px}
.seg button{border:0;background:transparent;padding:5px 12px;border-radius:7px;font-size:12px}
.seg button.on{background:#fff;box-shadow:var(--shadow);font-weight:500}
.net{display:flex;justify-content:space-between;align-items:center;background:var(--lime-200);border-radius:10px;padding:12px;margin-top:8px;font-weight:600}

/* PDV */
.pdv{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px}
.cats{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:12px}
.cats button{background:#fff;border:1px solid var(--line);border-radius:10px;min-width:86px;padding:10px 8px;font-size:12px;display:flex;flex-direction:column;align-items:center;gap:4px}
.cats button.on{background:var(--lime-200);border-color:var(--lime-400);font-weight:600}
.cats .ci{font-size:20px}
.products{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:12px}
.prod{background:#fff;border:1px solid var(--line);border-radius:11px;padding:8px;display:flex;flex-direction:column}
.prod .img{height:92px;border-radius:10px;display:grid;place-items:center;font-size:46px;position:relative}
.prod .fav{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:12px;border:0}
.prod .fav.on{color:var(--purple-600)}
.prod h4{margin:8px 2px 0;font-size:13px;line-height:1.25}
.prod .sku{font-size:10px;color:var(--muted);margin:2px}
.prod .price{font-weight:600;margin:6px 2px 8px}
.add-btn{margin-top:auto;background:var(--lime-400);border:0;border-radius:8px;padding:7px;font-weight:600;font-size:12px}
.add-btn:hover{background:var(--lime-500)}
.order-card{position:sticky;top:76px}
.order-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.order-tags span{border:1px solid var(--line);border-radius:8px;padding:5px 8px;font-size:11px}
.line{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px}
.qty button{background:none;border:0;width:26px;height:26px;font-size:15px}
.qty span{min-width:18px;text-align:center;font-size:13px}
.line small{display:block;color:var(--muted);font-size:11px}
.totals{background:var(--purple-50);border-radius:10px;padding:10px 12px;margin-top:12px}
.totals .kv{border:0;padding:6px 0}
.grand{display:flex;justify-content:space-between;background:var(--lime-200);border-radius:10px;padding:10px 12px;margin-top:6px;font-weight:600;font-size:16px}
.primary{background:var(--purple-700);color:#fff;border:0;border-radius:10px;padding:11px;width:100%;font-weight:500;font-size:14px;margin-top:12px}
.primary:hover{background:var(--purple-600)}
.primary:disabled{opacity:.45;cursor:not-allowed}
.pay{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.pay button{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 4px;font-weight:500;font-size:12px}
.pay button.on{background:var(--lime-200);border-color:var(--lime-400)}
.pay .pi{display:block;font-size:18px;margin-bottom:4px}
.buffet{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.bt{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.bt button{border:0;border-radius:10px;padding:10px;background:var(--purple-50);font-weight:500}
.bt button.on{background:var(--lime-400)}
.field label{display:block;font-size:11.5px;font-weight:500;color:#4b4359;margin-bottom:4px}
.field input{width:100%;border:1px solid #e4ddec;border-radius:8px;padding:8px 10px;background:#fff;font-weight:400}
.field input:focus,.sel:focus,textarea:focus{outline:0;border-color:var(--purple-500);box-shadow:0 0 0 3px var(--purple-100)}
.field input[readonly]{background:var(--lime-100);font-weight:600}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.item-val{display:flex;justify-content:space-between;background:var(--purple-50);border-radius:9px;padding:10px;margin:10px 0;font-size:13px}
.item-val b{font-size:15px}
.ok-badge{display:inline-flex;align-items:center;gap:6px;background:var(--lime-100);border:1px solid var(--lime-400);border-radius:10px;padding:8px 12px;font-weight:500;color:#3c7a05}

/* Mesa / cliente */
.mesa{display:grid;grid-template-columns:360px minmax(0,1fr);gap:24px;align-items:start}
.phone{background:#111;border-radius:42px;padding:12px;box-shadow:0 20px 50px rgba(40,10,70,.25);max-width:360px}
.screen{background:#fff;border-radius:32px;overflow:hidden;height:700px;display:flex;flex-direction:column}
.ph-head{background:linear-gradient(135deg,var(--purple-800),var(--purple-600));color:#fff;padding:18px 18px 46px;position:relative}
.ph-head .brand{font-size:20px;padding:0}
.ph-head .lemon{width:24px;height:24px}
.ph-hello{background:#fff;color:var(--ink);border-radius:12px;margin:-34px 14px 0;padding:12px 14px;position:relative;box-shadow:var(--shadow)}
.ph-hello b{font-size:20px}
.ph-hello p{margin:4px 0 0;font-size:12px;color:var(--muted)}
.ph-body{flex:1;overflow:auto;padding:12px 14px}
.ph-cats{display:flex;gap:6px;overflow-x:auto;margin-bottom:10px}
.ph-cats button{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:9px;padding:6px 10px;font-size:12px}
.ph-cats button.on{background:var(--lime-200);border-color:var(--lime-400);font-weight:600}
.ph-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ph-item{border:1px solid var(--line);border-radius:10px;padding:8px}
.ph-item .img{height:70px;border-radius:9px;display:grid;place-items:center;font-size:38px}
.ph-item h5{margin:6px 0 2px;font-size:12px}
.ph-item p{margin:0;font-size:10px;color:var(--muted);min-height:26px}
.ph-item .row{display:flex;justify-content:space-between;align-items:center;margin-top:6px}
.ph-item b{font-size:13px}
.plus{width:26px;height:26px;border-radius:8px;border:0;background:var(--lime-400);font-weight:600}
.ph-cart{border-top:1px solid var(--line);padding:12px 14px;background:#fff}
.ph-cart .lines{font-size:12px;max-height:84px;overflow:auto;margin:6px 0}
.ph-cart .lines div{display:flex;justify-content:space-between;padding:2px 0}
.ph-actions{display:grid;grid-template-columns:1fr 1.3fr;gap:8px;margin-top:8px}
.ph-actions button{border-radius:10px;padding:10px 6px;font-weight:600;font-size:12px;border:1px solid var(--line);background:#fff}
.ph-actions .go{background:var(--lime-400);border-color:var(--lime-400)}
.track-hero{display:flex;align-items:center;gap:26px;background:var(--lime-200);border-radius:12px;padding:26px;margin-bottom:16px}
.track-hero .cloche{font-size:56px}
.track-hero h2{margin:0;font-size:26px;color:var(--purple-900)}
.track-hero p{margin:4px 0 0;font-size:16px}
.track-hero.wait{background:var(--purple-50)}
.timeline{display:flex;justify-content:space-between;position:relative;margin:10px 20px 18px}
.timeline:before{content:"";position:absolute;left:30px;right:30px;top:20px;height:3px;background:var(--purple-300)}
.tl{text-align:center;position:relative;z-index:1;flex:1}
.tl .c{width:42px;height:42px;border-radius:50%;margin:0 auto 6px;display:grid;place-items:center;background:#fff;border:2px solid var(--line);font-weight:600}
.tl.done .c{background:var(--lime-400);border-color:var(--lime-400)}
.tl b{display:block;font-size:13px}.tl small{color:var(--muted);font-size:12px}
.ti{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}
.ti .img{width:44px;height:44px;border-radius:9px;display:grid;place-items:center;font-size:24px;background:var(--purple-50)}
.ti small{display:block;color:var(--muted)}
.ti b.v{margin-left:auto}
.empty{color:var(--muted);text-align:center;padding:24px}

.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--purple-900);color:#fff;border-radius:10px;padding:12px 18px;opacity:0;pointer-events:none;transition:.25s;z-index:50;max-width:calc(100% - 32px)}
.toast.show{opacity:1;transform:translateX(-50%)}

@media (max-width:1200px){
  .row3{grid-template-columns:1fr 1fr}.row3>:first-child{grid-column:1/-1}
  .quick{grid-template-columns:repeat(3,1fr)}
  .flow{grid-template-columns:repeat(3,1fr)}.step:after{display:none}
}
@media (max-width:900px){
  .shell{grid-template-columns:1fr}
  .side{position:fixed;left:0;top:0;z-index:20;width:260px;transform:translateX(-100%);transition:.25s}
  .side.open{transform:none}
  .menu-btn{display:block}
  .user div:last-child,.search kbd{display:none}
  .row2,.row3,.mesa,.buffet{grid-template-columns:1fr}
  .phone{margin:0 auto}
  main{padding:16px}
  .topbar{padding:10px 16px}
}
@media (max-width:560px){
  h1{font-size:24px}
  .flow{grid-template-columns:1fr 1fr}
  .plans{grid-template-columns:1fr}
  .quick{grid-template-columns:repeat(2,1fr)}
  .track-hero{flex-direction:column;text-align:center;padding:18px}
  .timeline{margin:10px 0 18px}
  .fg{grid-template-columns:1fr}
  .phone{border-radius:0;padding:0;background:none;box-shadow:none}
  .screen{border-radius:12px;border:1px solid var(--line)}
}

/* ---- v2: login, KDS, mesas, caixa, cliente QR ---- */
body.login .side, body.login .topbar, body.public .side, body.public .topbar{display:none}
body.login .shell, body.public .shell{grid-template-columns:1fr}
.login-wrap{min-height:80vh;display:grid;place-items:center}
.login-card{width:100%;max-width:380px;padding:28px}
.login-card h1{margin:18px 0 4px}
.login-card .field{margin-top:14px}
.brand.dark{color:var(--purple-800);padding:0}
.role{cursor:default}
.sel,.sel-mini{border:1px solid var(--line);border-radius:9px;padding:8px;background:#fff;width:100%}
.sel-mini{width:auto;padding:2px 6px;margin-left:6px}
.prod .img{background:var(--purple-50)}
.ph-item .img,.ti .img{background:var(--purple-50)}
.notice{margin-top:12px;padding:12px;border-radius:11px;background:#fff6df;border:1px solid #f0d99c;font-size:13px}
.notice.ok{background:var(--lime-100);border-color:var(--lime-400)}
.badge.red{background:#ffe2e6;color:var(--red)}
.mini{border:0;border-radius:8px;padding:7px 10px;font-size:12px;font-weight:600;background:var(--purple-700);color:#fff;white-space:nowrap}
.mini:hover{background:var(--purple-600)}
.mini.ghost{background:#fff;color:var(--purple-700);border:1px solid var(--purple-300)}
.mini.danger{background:var(--red)}
.mini:disabled{opacity:.5}
.mini-link{font-size:12px;color:var(--purple-700);font-weight:500}
.actions-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.kds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.kds-col{border-radius:12px;padding:12px;min-height:300px;border:1px solid var(--line)}
.kds-col h3{margin:4px 4px 12px;font-size:16px;display:flex;justify-content:space-between}
.kds-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:10px;box-shadow:var(--shadow)}
.kds-card.late{border-color:var(--red);box-shadow:0 0 0 2px #ffd2da}
.kds-card ul{margin:8px 0;padding-left:16px;font-size:14px}
.kds-card li small{display:block;color:var(--amber)}
.row-b{display:flex;justify-content:space-between;align-items:center;gap:8px}
.call{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.call small{display:block;color:var(--muted);font-size:12px}
.call.ready b{color:#3c7a05}
.tables{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.tcard{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:6px}
.tcard small{color:var(--muted)}
.tcard.occ{background:var(--lime-100);border-color:var(--lime-400)}
hr{border:0;border-top:1px solid var(--line);margin:16px 0}
@media (max-width:900px){.kds{grid-template-columns:1fr}.top-right #logoutBtn{padding:6px 8px}}
.row2.even{grid-template-columns:1fr 1fr}
@media (max-width:900px){.row2.even{grid-template-columns:1fr}}
.call > div{min-width:0}
.pdv>*,.row2>*,.row3>*,.mesa>*{min-width:0}

/* ---- v3: suporte ---- */
.support-bar{position:sticky;top:0;z-index:15;background:var(--lime-400);color:var(--purple-900);font-size:13px;padding:8px 16px;display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}
.support-bar[hidden]{display:none}
.tk-item{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px}
.tk-item.on{border-color:var(--purple-500);background:var(--purple-50)}
.tk-item small{color:var(--muted)}
.chat{display:flex;flex-direction:column;gap:8px;max-height:420px;overflow:auto;padding:10px;background:var(--purple-50);border-radius:10px;margin-bottom:10px}
.bubble{max-width:80%;padding:9px 12px;border-radius:11px;background:#fff;border:1px solid var(--line);font-size:13.5px}
.bubble p{margin:0;white-space:pre-wrap}
.bubble small{display:block;margin-top:4px;color:var(--muted);font-size:11px}
.bubble.me{align-self:flex-end;background:var(--purple-700);color:#fff;border-color:var(--purple-700)}
.bubble.me small{color:#e6d8f5}
.bubble.sys{align-self:center;background:none;border:0;color:var(--muted);font-size:12px;text-align:center}
.reply{display:flex;gap:8px;align-items:flex-end}
.reply textarea,.stack textarea{flex:1;border:1px solid var(--line);border-radius:10px;padding:9px 10px;font:inherit;width:100%}
.stack{display:grid;gap:12px}
/* Sessão de suporte: ações de dinheiro somem (o servidor também bloqueia). */
body.support-mode #openCash,body.support-mode #closeCash,body.support-mode [data-mov],body.support-mode [data-pay],body.support-mode [data-sim],body.support-mode [data-cancel],body.support-mode #rfReq,body.support-mode [data-approve],body.support-mode #finish,body.support-mode #pay,body.support-mode #recvBox{display:none!important}
body.support-mode #payFloat,body.support-mode [data-refund],body.support-mode [data-ret],body.support-mode [data-citem],body.support-mode [data-reject],body.support-mode .methods,body.support-mode .pay-box [type=submit]{display:none!important}

/* ---------- botões e utilidades ---------- */
.btn-main{background:var(--purple-700);color:#fff;border:0;border-radius:10px;padding:9px 15px;font-weight:500;font-size:13.5px;display:inline-flex;align-items:center;justify-content:center;gap:8px}
.btn-main:hover{background:var(--purple-600)}
.btn-main:disabled{opacity:.45;cursor:not-allowed}
.btn-main.big{width:100%;padding:12px;font-size:15px;margin-top:10px}
.btn-main.danger{background:var(--red)}
.btn-main kbd,.outline-btn kbd{background:rgba(255,255,255,.18);border:0;color:inherit}
kbd{font:500 10.5px/1 ui-monospace,monospace;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:2px 5px;background:#fff;color:var(--muted)}
.outline-btn kbd{background:var(--purple-50);color:var(--purple-700)}
.danger-o{border-color:#f1b6c0;color:var(--red)}.danger-o:hover{background:#fff1f3}
.link{background:none;border:0;padding:0;color:var(--purple-700);font-weight:500;text-decoration:underline;text-underline-offset:2px}
.hint{font-size:12px;color:var(--muted);margin:8px 0 0}
.neg{color:var(--red)}
.nowrap{white-space:nowrap}
.badge.red{background:#ffe6ea;color:var(--red)}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 11px;font-size:12px;font-weight:500}
.chip:hover{border-color:var(--purple-300);background:var(--purple-50)}
.dot-ok{color:var(--green)}.dot-no{color:var(--red)}
.center{justify-content:center}
.sel{min-height:38px}
:focus-visible{outline:2px solid var(--purple-500);outline-offset:2px}

/* ---------- janelas ---------- */
.modal-bg{position:fixed;inset:0;background:rgba(30,10,50,.45);z-index:50;display:grid;place-items:center;padding:16px;animation:fadeIn .12s ease}
.modal{background:#fff;border-radius:14px;box-shadow:0 24px 70px rgba(30,10,60,.35);width:min(460px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden}
.modal.wide{width:min(620px,100%)}
.modal-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px 10px}
.modal-h h3{margin:0;font-size:15.5px;font-weight:600}
.modal .x{background:none;border:0;font-size:16px;color:var(--muted);width:32px;height:32px;border-radius:8px}
.modal .x:hover{background:var(--purple-50)}
.modal-b{padding:4px 18px 14px;overflow:auto}
.modal-b .field{margin-bottom:10px}
.modal-err{margin:0 18px 10px;padding:9px 12px;border-radius:10px;background:#ffe6ea;color:#9b1c31;font-size:13px}
.modal-f{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--line);background:var(--purple-50)}
.drawer-bg{place-items:stretch end;padding:0}
.modal.drawer{width:min(560px,100%);max-height:none;height:100vh;border-radius:18px 0 0 18px;animation:slideIn .18s ease}
@keyframes fadeIn{from{opacity:0}}
@keyframes slideIn{from{transform:translateX(40px);opacity:.4}}
@media (prefers-reduced-motion:reduce){.modal-bg,.modal.drawer{animation:none}}
.cam{width:100%;border-radius:10px;background:#000;aspect-ratio:4/3;object-fit:cover}
.tbl.keys td{padding:7px 8px}.tbl.keys td:first-child{white-space:nowrap;width:1%}

/* ---------- recebimento ---------- */
.pay-sum{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.pay-sum>div{background:var(--purple-50);border-radius:10px;padding:10px 12px}
.pay-sum small{display:block;color:var(--muted);font-size:11px;font-weight:500}
.pay-sum b{font-size:19px;letter-spacing:-.3px}
.pay-sum .falta{background:var(--lime-200)}
.tenders{display:grid;gap:6px;margin-bottom:12px}
.tender{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:13px}
.tender>span:first-child{flex:1;min-width:140px}
.methods{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:12px}
.methods button{position:relative;background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:12px 4px 10px;font-weight:500;font-size:12px}
.methods button.on{background:var(--lime-200);border-color:var(--lime-500)}
.methods .pi{display:block;font-size:20px;margin-bottom:4px}
.methods kbd{position:absolute;top:5px;left:6px;padding:1px 4px}
.notes{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 10px}
.notes button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 10px;font-weight:600;font-size:12px}
.notes button:hover{background:var(--lime-100);border-color:var(--lime-400)}
.change{display:flex;justify-content:space-between;align-items:center;background:var(--purple-900);color:#fff;border-radius:10px;padding:12px 14px;font-weight:500}
.change b{font-size:22px;color:var(--lime-400)}
.pay-done{text-align:center;padding:10px 0 4px}
.pay-done .ok-ic{width:64px;height:64px;border-radius:50%;background:var(--lime-400);display:grid;place-items:center;font-size:32px;font-weight:600;margin:0 auto 8px}
.pay-done h2{margin:0 0 6px}
.pay-done .troco{font-size:18px;margin:6px 0}.pay-done .troco b{font-size:28px;color:var(--purple-700)}

/* ---------- PDV ---------- */
.pdv{grid-template-columns:minmax(0,1fr) 400px;align-items:start}
.pdv-cat{padding:14px}
.scan{display:flex;gap:8px;margin-bottom:12px}
.scan-in{flex:1;display:flex;align-items:center;gap:8px;border:1.5px solid var(--purple-300);border-radius:10px;padding:0 12px;background:#fff}
.scan-in:focus-within{border-color:var(--purple-600);box-shadow:0 0 0 4px var(--purple-100)}
.scan-in input{flex:1;border:0;outline:0;padding:10px 0;font-size:14px;min-width:0;background:transparent}
.cats button{min-width:auto;padding:8px 12px;flex-direction:row;white-space:nowrap;font-weight:500}
.products{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;max-height:calc(100vh - 290px);overflow:auto;padding:2px}
.prod{position:relative;text-align:left;border:1.5px solid var(--line);border-radius:13px;padding:8px;display:flex;flex-direction:column;gap:2px;background:#fff;min-height:150px}
.prod:hover,.prod:focus-visible{border-color:var(--lime-500);background:var(--lime-100)}
.prod:active{transform:scale(.98)}
.prod .img{height:62px;border-radius:9px;background:var(--purple-50);display:grid;place-items:center;font-size:34px;margin-bottom:4px}
.prod .nm{font-weight:400;font-size:12.5px;line-height:1.3;flex:1}
.prod .price{font-weight:600;font-size:15px}.prod .price small{font-weight:500;color:var(--muted);font-size:11px}
.prod .sku{font-size:10px;color:var(--muted)}
.order-card{padding:14px;position:sticky;top:76px;display:flex;flex-direction:column;max-height:calc(100vh - 140px)}
.mode{display:grid;grid-template-columns:repeat(5,1fr);margin-bottom:10px}
.mode button{padding:8px 4px;font-weight:500;font-size:13px}
#modeFields .field{margin-bottom:8px}
#modeFields .fg{gap:8px}
.order-card .lines{flex:1;overflow:auto;min-height:90px;margin:2px -4px 0;padding:0 4px}
.order-card .line{grid-template-columns:auto 1fr auto auto;gap:8px;padding:8px 6px;border-radius:9px;border-bottom:1px solid var(--line)}
.order-card .line.sel{background:var(--lime-100);box-shadow:inset 3px 0 0 var(--lime-500)}
.line .ln{background:none;border:0;text-align:left;padding:0;min-width:0}
.line .ln b{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.line .ln small{color:var(--muted)}
.line .rm{background:none;border:0;color:var(--muted);width:26px;height:26px;border-radius:7px}
.line .rm:hover{background:#ffe6ea;color:var(--red)}
.qty.kgq{border:0;font-size:18px;padding:0 4px}
.totals .link{text-decoration:none;font-weight:500;color:var(--ink)}
.pay-cta{font-size:17px}
.pdv-2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.pdv-2 .outline-btn{padding:10px 6px}
.keybar{position:sticky;bottom:0;margin:14px -24px -40px;padding:8px 24px;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted);z-index:4}
.keybar span{display:inline-flex;gap:4px;align-items:center}

/* ---------- pedidos ---------- */
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px;padding:12px}
.filters .sel{width:auto;min-width:150px}
.search.sm{flex:1;min-width:220px;max-width:none;padding:7px 10px}
.list-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.tbl.hover tbody tr{cursor:pointer}
.tbl.hover tbody tr:hover,.tbl.hover tbody tr:focus-visible{background:var(--purple-50)}
.seg b{background:var(--red);color:#fff;border-radius:999px;font-size:10px;padding:1px 6px;margin-left:4px}
.seg b:empty{display:none}
.od-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.od-info{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;background:var(--purple-50);border-radius:10px;padding:12px;margin-bottom:6px}
.od-info small{display:block;font-size:11px;color:var(--muted);font-weight:500}
.od-info a{color:var(--purple-700);text-decoration:underline}
.od h4{margin:16px 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.oi{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}
.oi small{display:block;color:var(--muted);font-size:11px}
.oi.cancelled b{text-decoration:line-through;color:var(--muted)}
.oi-act{grid-column:1/-1;display:flex;gap:6px}.oi-act:empty{display:none}
.od-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}

/* ---------- delivery ---------- */
.dboard{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px}
.dcol{border-radius:12px;padding:10px;border:1px solid var(--line);min-height:300px;background:#fff}
.dcol h3{margin:4px 4px 10px;font-size:14px;display:flex;justify-content:space-between;align-items:center}
.d-kitchen{background:#fff8e6}.d-ready{background:var(--lime-100)}.d-route{background:var(--purple-50)}.d-back{background:#fff1f3}.d-done{background:#f6f6f8}
.dcard{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px;box-shadow:var(--shadow);font-size:13px}
.dcard.late{border-color:var(--red);box-shadow:0 0 0 2px #ffd2da}
.dcard .row-b{display:flex;justify-content:space-between;align-items:center;gap:6px}
.dc-name{margin:4px 0 2px;font-weight:500}
.dc-name a{color:var(--purple-700)}
.dc-addr{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}

@media (max-width:1200px){.pdv{grid-template-columns:minmax(0,1fr) 330px}.products{grid-template-columns:repeat(auto-fill,minmax(125px,1fr))}}
@media (max-width:900px){.pdv{grid-template-columns:1fr}.order-card{position:static;max-height:none}.products{max-height:none}}
/* Barra "Finalizar" só quando o carrinho fica abaixo dos produtos. */
.pay-float{display:none}
.pay-lock{margin:6px 0 0;font-size:12px;color:var(--muted);text-align:center}
body:not(.support-mode) .pay-lock{display:none}
/* Total e botões sempre visíveis no fim do carrinho; o resto rola por cima. */
.order-card{overflow:auto}
.order-card .pay-foot{position:sticky;bottom:-14px;margin:0 -14px -14px;padding:0 14px 14px;background:var(--card);z-index:2}
@media (max-width:900px){.order-card{overflow:visible}.order-card .pay-foot{position:static;margin:0;padding:0}}
@media (max-width:900px){.pay-float:not([hidden]){display:flex;align-items:center;justify-content:center;gap:6px;position:fixed;left:16px;right:16px;bottom:16px;z-index:15;padding:14px;font-size:16px;box-shadow:0 10px 30px rgba(40,10,70,.3)}.pdv{padding-bottom:70px}}
@media (max-width:900px){.keybar{display:none}.dboard{grid-template-columns:repeat(5,minmax(240px,82vw))}}
@media (max-width:560px){
  .methods{grid-template-columns:repeat(3,1fr)}
  .pay-sum b{font-size:16px}
  .od-info{grid-template-columns:1fr}
  .hide-sm{display:none}
  .products{grid-template-columns:repeat(2,1fr)}
  .modal-bg{padding:0;place-items:end stretch}
  .modal,.modal.wide{width:100%;border-radius:18px 18px 0 0;max-height:92vh}
  .modal.drawer{border-radius:0}
  .filters .sel{flex:1}
}
@media (max-width:560px){.topbar{gap:8px}.search{min-width:0;padding:8px 10px}.top-right{gap:8px}.bell{padding:0}}

/* ---------- produtos e ficha técnica ---------- */
.num{text-align:right;white-space:nowrap}
.tbl th.num{text-align:right}
.num small{color:var(--muted);font-size:11px}
.prods-tbl tr.off td{opacity:.55}
.pname{font-weight:500}
.cats button small{color:var(--muted);font-weight:500;margin-left:4px}
.check{display:flex;align-items:center;gap:8px;font-size:13px;margin:4px 0 0}
.modal.drawer.xl{width:min(820px,100%)}
.sheet-sec{border:1px solid var(--line);border-radius:11px;padding:14px;margin-bottom:12px}
.sheet-sec h4{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.sec-h{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.sec-h h4{margin:0}
.g4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.g4 .field{margin:0}
.span2{grid-column:span 2}.span4{grid-column:1/-1}
.sheet-sec textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px;font:inherit;resize:vertical}
.ind{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:12px}
.ind>div{background:var(--purple-50);border-radius:10px;padding:10px}
.ind small{display:block;font-size:11px;color:var(--muted);font-weight:500}
.ind b{font-size:17px;letter-spacing:-.3px;white-space:nowrap}
.ind .good{background:var(--lime-200)}.ind .bad{background:#ffe6ea}.ind .bad b{color:var(--red)}
.ind-warn{grid-column:1/-1;margin:0;font-size:12px;color:var(--red);font-weight:500}
.tbl.recipe td{padding:6px 8px;vertical-align:middle}
.tbl.recipe tfoot td{font-weight:600;background:var(--lime-100);padding:10px 8px}
.tbl.recipe .sel{min-width:190px}
.qin{display:inline-flex;align-items:center;gap:4px}
.qin input{width:84px;border:1px solid var(--line);border-radius:8px;padding:7px 8px;text-align:right}
.qin em{font-style:normal;color:var(--muted);font-size:12px;width:22px;text-align:left}
.price-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.price-row .field{margin:0;width:200px}
.sugg{background:var(--lime-200);border-radius:10px;padding:6px 14px}
.sugg small{display:block;font-size:11px;color:var(--muted);font-weight:500}.sugg b{font-size:18px}
@media (max-width:760px){.g4{grid-template-columns:1fr 1fr}.ind{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:560px){.ind{grid-template-columns:1fr 1fr}.tbl.recipe .sel{min-width:140px}.price-row .field{width:100%}}
.tbl.recipe .rm{background:none;border:0;color:var(--muted);width:28px;height:28px;border-radius:7px}
.tbl.recipe .rm:hover{background:#ffe6ea;color:var(--red)}

/* ---------- adicionais e combos ---------- */
.prod .img{position:relative}
.prod .tag{position:absolute;right:5px;bottom:5px;font:600 10px/1 Inter,sans-serif;font-style:normal;background:var(--purple-700);color:#fff;border-radius:6px;padding:3px 6px}
.combo-inc{background:var(--purple-50);border-radius:10px;padding:8px 10px;font-size:13px;font-weight:500;margin:0 0 10px}
.ph-item .combo-inc{font-size:10px;padding:4px 6px;margin:4px 0 0}
fieldset.og{border:1.5px solid var(--line);border-radius:11px;padding:6px 12px 10px;margin:0 0 10px}
fieldset.og.ok{border-color:var(--lime-500)}
fieldset.og legend{display:flex;gap:8px;align-items:center;padding:0 6px}
.og-rule{font-size:11px;font-weight:500;color:var(--muted);background:var(--purple-50);border-radius:6px;padding:2px 6px}
.og-rule.req{background:#fff3d6;color:#8a5a00}
fieldset.og.ok .og-rule.req{background:var(--lime-200);color:#3c7a05}
.opt{display:flex;align-items:center;gap:10px;padding:9px 6px;border-bottom:1px solid var(--line);cursor:pointer;font-size:14px}
.opt:last-child{border-bottom:0}
.opt input{width:18px;height:18px;accent-color:var(--purple-700);flex:none}
.opt span{flex:1}
.opt span small{display:block;color:var(--muted);font-size:11px}
.opt em{font-style:normal;font-weight:600;color:var(--purple-700);font-size:13px}
.opt em.free{color:var(--muted);font-weight:500}
.opt:has(input:disabled){opacity:.45;cursor:not-allowed}
.opt:has(input:checked){background:var(--lime-100)}
.opt.sm{padding:5px 6px;font-size:13px;border:0;display:inline-flex;margin-right:6px}
.po-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--purple-50);border-radius:10px;padding:10px 12px}
.qty.big-q button{width:36px;height:36px;font-size:20px}
.qty.big-q span{min-width:28px;font-size:16px;font-weight:600}
.po-total{text-align:right}.po-total small{display:block;font-size:11px;color:var(--muted);font-weight:500}.po-total b{font-size:20px}
.kds-card li small.k-opt{color:var(--purple-700);font-weight:500}
.kds-card li small.k-combo{color:var(--muted)}
.ph-opt{display:block;font-size:10px;color:var(--muted)}
.og-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 12px}
.og-pick .opt{border:1px solid var(--line);border-radius:10px}
.lp-cat{padding:6px 0;border-bottom:1px solid var(--line)}
.lp-cat>b{display:block;font-size:12px;color:var(--muted);margin-bottom:2px}
.tbl.recipe .in{width:100%;min-width:130px;border:1px solid var(--line);border-radius:8px;padding:7px 8px}
.tbl.recipe .num-in{width:84px;min-width:0;text-align:right}
.tbl.recipe .qn{width:60px;border:1px solid var(--line);border-radius:8px;padding:7px 8px;text-align:right}
.o-ref{display:flex;gap:6px;align-items:center;margin-top:6px}
.o-ref .sel{min-width:150px}

/* ---------- mesas, comandas e conta ---------- */
.mode button{display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 1px;font-size:11.5px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mode button span{font-size:15px}
.tab-info{background:var(--lime-100);border:1px solid var(--lime-200);border-radius:9px;padding:7px 10px;font-size:12px;margin:-2px 0 8px}
.tab-kpis{display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--muted);margin-bottom:6px}
.tab-kpis b{color:var(--ink);font-weight:600}
.sec-t{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:18px 0 8px}
.tbl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.tbl-tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;min-height:92px;box-shadow:var(--shadow)}
.tbl-tile .tt-l{font-weight:500;font-size:13.5px}
.tbl-tile b{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:2px}
.tbl-tile small{color:var(--muted);font-size:11.5px}
.tbl-tile.free{background:transparent;border-style:dashed;box-shadow:none}
.tbl-tile.free:hover{border-color:var(--lime-500);background:var(--lime-100)}
.tbl-tile.busy{border-color:var(--purple-300);background:var(--purple-50)}
.tbl-tile.busy .tt-l{color:var(--purple-700)}
.tbl-tile.settled{border-color:var(--lime-400);background:var(--lime-100)}
.tbl-tile:hover{transform:translateY(-1px)}
.tab-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px;font-size:13px;color:var(--muted)}
.tab-meta .link{text-decoration:none}
.ind.tab-ind{grid-template-columns:repeat(4,minmax(0,1fr))}
.tab-order{border:1px solid var(--line);border-radius:11px;padding:8px 10px;margin-bottom:8px}
.tab-order.off{opacity:.5}
.to-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.to-h small{color:var(--muted);flex:1}
.to-i{display:flex;align-items:baseline;gap:8px;padding:4px 0;font-size:13px;border-top:1px dashed var(--line)}
.to-i span:first-child{flex:1}
.to-i small{display:block;color:var(--muted);font-size:11px}
.to-i.cancelled{text-decoration:line-through;color:var(--muted)}
.tab-h4{margin:14px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:500}
.split-seg{display:flex;margin-bottom:10px}
.split-seg button{flex:1;padding:7px}
.split-box{display:flex;align-items:center;gap:14px;background:var(--purple-50);border-radius:12px;padding:10px 12px;margin-bottom:12px}
.split-box small{display:block;color:var(--muted)}
.split-items{max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:2px 8px;margin-bottom:12px}
.opt.paid{opacity:.5}
@media (max-width:560px){.ind.tab-ind{grid-template-columns:1fr 1fr}.tbl-grid{grid-template-columns:repeat(2,1fr)}}
.pm-card{margin-top:16px}
.pm-tbl tr.off td{opacity:.5}
.pm-tbl .ord{display:inline-flex;align-items:center;gap:4px}
.pm-tbl .ord .mini{padding:3px 7px}
b.req{color:var(--red);font-weight:500;font-size:11px}
.find-bar{display:flex;gap:8px;align-items:flex-end;margin-bottom:10px}
.find-bar .scan-in{flex:1}
.find-bar .sel{width:auto;min-width:170px}
.find-bar .fqty{width:72px;margin:0}
.find-list{max-height:52vh;overflow:auto;border:1px solid var(--line);border-radius:10px}
.find-tbl th{position:sticky;top:0;background:#fff;z-index:1}
.find-tbl tbody tr{cursor:pointer}
.find-tbl tbody tr:hover td{background:var(--purple-50)}
.find-tbl tbody tr.on td{background:var(--lime-100)}
.find-tbl tbody tr.on td:first-child{box-shadow:inset 3px 0 0 var(--lime-500)}
.find-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px}
@media (max-width:560px){.find-bar{flex-wrap:wrap}.find-bar .sel{flex:1}}
.modal.xw{width:min(900px,100%)}
.find-tbl td:first-child,.find-tbl td:nth-child(2),.find-tbl th{white-space:nowrap}
.tbl small.block,small.block{display:block}
.methods{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}
.scan-in{min-width:0}
@media (max-width:560px){
  .scan .chip-btn kbd{display:none}
  .scan .chip-btn{padding:7px 10px}
  .find-tbl th:nth-child(2),.find-tbl td:nth-child(2),.find-tbl th:nth-child(4),.find-tbl td:nth-child(4){display:none}
  .find-foot{flex-wrap:wrap}
}

/* ---------- favoritos, mais vendidos, espera e modo foco ---------- */
.prod .fav{position:absolute;top:6px;left:6px;z-index:2;width:26px;height:26px;display:grid;place-items:center;border-radius:8px;background:rgba(255,255,255,.85);color:#b9b1c7;font-size:15px;line-height:1}
.prod .fav:hover{color:var(--amber);background:#fff}
.prod .fav.on{color:#e0a106}
.prod .rank{position:absolute;top:6px;right:6px;z-index:2;font-size:10.5px;font-weight:600;background:#fff3d6;color:#8a5a00;border-radius:7px;padding:2px 6px}
.cats button small{color:var(--muted);font-size:11px}
.park-btn b{background:var(--purple-700);color:#fff;border-radius:999px;font-size:11px;font-weight:600;padding:0 6px;min-width:18px;text-align:center}
.park-btn b:empty{display:none}
.chip-btn.on{background:var(--purple-700);color:#fff;border-color:var(--purple-700)}
.park-list{display:flex;flex-direction:column;gap:8px;max-height:56vh;overflow:auto}
.park-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px}
.park-row small{display:block;color:var(--muted);font-size:12px}
.park-row .park-items{font-size:11.5px;margin-top:2px}

/* Modo foco: só o PDV na tela (com ou sem a tela cheia do navegador). */
body.pdv-focus .side,body.pdv-focus .topbar,body.pdv-focus .demo-bar,body.pdv-focus .support-bar{display:none}
body.pdv-focus .shell{grid-template-columns:1fr;min-height:100vh}
body.pdv-focus main{padding:12px 16px 0}
body.pdv-focus .pdv-head{margin-bottom:10px}
body.pdv-focus .pdv-head h1{font-size:19px}
body.pdv-focus .products{max-height:calc(100vh - 230px);grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
body.pdv-focus .order-card{top:12px;max-height:calc(100vh - 70px)}
body.pdv-focus .keybar{margin:10px -16px 0}
body.pdv-focus .keybar{position:fixed;left:0;right:0;bottom:0;margin:0}

/* ---------- CPF e cliente no PDV ---------- */
.cpf-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.cpf-in{flex:1;display:flex;align-items:center;gap:8px;border:1px solid #e4ddec;border-radius:9px;padding:0 10px;background:#fff}
.cpf-in:focus-within{border-color:var(--purple-500);box-shadow:0 0 0 3px var(--purple-100)}
.cpf-in input{flex:1;border:0;outline:0;padding:8px 0;min-width:0;font-variant-numeric:tabular-nums;letter-spacing:.02em;background:transparent}
.cust-box{border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:10px;background:var(--purple-50)}
.cust-box.bad{background:#ffe6ea;border-color:#f6c1cb;color:var(--red);font-size:12.5px}
.cust-box.new{background:var(--lime-100);border-color:var(--lime-200)}
.cust-box.new b,.cust-box.new small{display:block}
.cust-box.new small{color:var(--muted);font-size:12px;margin:2px 0 6px}
.cust-box.new input{width:100%;border:1px solid #e4ddec;border-radius:8px;padding:7px 9px;background:#fff}
.cust-h{display:flex;align-items:center;gap:10px}
.cust-h b{display:block;font-weight:500}
.cust-h small{color:var(--muted);font-size:11.5px}
.cust-av{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--purple-500),var(--purple-800));color:#fff;font-size:12px;font-weight:600;flex:none}
.cust-top{margin-top:8px}
.cust-top>small{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}
.cust-top>div{display:flex;flex-wrap:wrap;gap:5px}
.cust-top .chip{background:#fff;font-weight:400;font-size:12px;padding:5px 9px}
.cust-top .chip em{font-style:normal;color:var(--purple-700);font-weight:600;margin-left:2px}
@media (max-width:560px){.cpf-in kbd{display:none}}

/* ---------- modo offline ---------- */
.net-pill{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:500;background:#fff;white-space:nowrap}
.net-pill i{width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 0 3px #ffd7de;animation:netBlink 1.6s infinite}
.net-pill.off{background:#fff1f3;border-color:#f6c1cb;color:#9b1c31}
.net-pill.sync{background:var(--lime-100);border-color:var(--lime-400);color:#3c7a05}
.net-pill.err{background:#fff3d6;border-color:#f0d99c;color:#8a5a00}
@keyframes netBlink{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.net-pill i{animation:none}}
.warn-t{color:var(--amber)!important}
body.is-offline .pay-cta{background:var(--purple-800)}
@media (max-width:560px){.net-pill{padding:5px 9px;font-size:11.5px}}
.kprint{border:0;background:none;padding:0 2px;font-size:13px;cursor:pointer;opacity:.7}
.kprint:hover{opacity:1}

/* Caixa dentro do PDV */
.cash-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 12px;padding:10px 14px;border-radius:12px;background:#fff6df;border:1px solid #f0d99c;font-size:13.5px}
.cash-bar span{flex:1;min-width:200px}
.cash-bar label{display:flex;align-items:center;gap:8px;font-size:13px}
.cash-bar input{width:100px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;font:inherit}
.cash-bar .btn-main{padding:9px 16px}
#cashLink{text-decoration:none;color:inherit;font:inherit}

/* Entregas e retiradas */
.dboard.c3{grid-template-columns:repeat(3,minmax(240px,1fr))}
.dcard.picked{border-color:var(--purple-600);box-shadow:0 0 0 2px var(--purple-100)}
.dsel{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-bottom:4px}
.dsel-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;margin:-4px 2px 10px;font-size:12.5px}
.dc-cv{font-size:12.5px;margin:6px 0 2px;display:flex;gap:6px;align-items:center}
.dgroup{display:flex;justify-content:space-between;align-items:baseline;gap:6px;margin:4px 2px 6px;font-size:13px}
.dgroup small{color:var(--muted)}
.cv-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.cv-opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:10px 12px;border:1.5px solid var(--line);border-radius:12px;background:var(--card);cursor:pointer}
.cv-opt:hover,.cv-opt.on{border-color:var(--purple-600);background:var(--purple-50)}
.cv-opt small{color:var(--muted);font-size:11.5px}.cv-opt small.busy{color:#b7791f}.cv-opt small.free{color:#2f855a}
.cv-opt.add{border-style:dashed}
.dispatch-list{display:grid;gap:4px;font-size:13px;max-height:160px;overflow:auto}
.dispatch-list small{display:block;color:var(--muted)}
tr.off td{opacity:.55}

/* Pedidos */
.day-nav{display:flex;align-items:center;gap:6px}
.day-nav input{border:1px solid var(--line);border-radius:9px;padding:7px 9px;font:inherit;background:var(--card);color:inherit}
.day-nav .chip-btn{padding:6px 11px}
.type-chips{display:flex;flex-wrap:wrap;gap:6px;flex-basis:100%}
.tchip{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 12px;font:inherit;font-size:13px;cursor:pointer}
.tchip b{font-weight:600;color:var(--muted);margin-left:2px}
.tchip.on{background:var(--purple-700);border-color:var(--purple-700);color:#fff}.tchip.on b{color:#e9dcff}
.o-ind{margin:12px 0 8px}
.pay-sum-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 8px;font-size:13px}
.pay-pill{display:inline-block;border-radius:7px;background:var(--purple-50);padding:2px 7px;margin:0 4px 3px 0;font-size:12px;white-space:nowrap}
.pay-pill.pend{background:#fff3d6}
.pay-pill.big{padding:5px 10px;font-size:12.5px;background:var(--card);border:1px solid var(--line)}
.pay-pill small{color:var(--muted)}
.otag{display:inline-block;border-radius:7px;padding:3px 8px;font-size:12px;font-weight:500;white-space:nowrap;background:var(--lime-100)}
.otag.delivery{background:#fff1d6;color:#8a5300}.otag.takeout{background:#e3f4ff;color:#0b5a8a}.otag.table,.otag.comanda{background:var(--purple-50);color:var(--purple-700)}
.otbl td small{display:block;color:var(--muted);font-size:11.5px;margin:0}
.otbl td.addr{max-width:220px}
.otbl td.who{min-width:130px}
.otbl small.due{color:#b45309}
.otbl .num{text-align:right;white-space:nowrap}
@media (max-width:560px){.day-nav{flex-basis:100%}.day-nav input{flex:1}}

/* Pedidos: barra, ações rápidas, seleção, comparação, período e quadro ao vivo */
.o-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 4px}
.o-bar .grow{flex:1}
.o-bar[hidden]{display:none}
.presets{display:flex;flex-wrap:wrap;gap:6px;margin-left:6px}
.otbl th.ck,.otbl td.ck{width:28px;padding-right:0}
.otbl tr.sel td{background:var(--lime-100)}
.otbl td.qas{white-space:nowrap;min-width:172px}
.qa{border:1px solid var(--line);background:var(--card);border-radius:8px;width:30px;height:30px;font-size:14px;cursor:pointer;margin:0 2px 2px 0;padding:0}
.qa:hover{border-color:var(--purple-600);background:var(--purple-50)}
.qa.pay{background:var(--lime-200);border-color:var(--lime-500)}
.qa:disabled{opacity:.5}
.bulk{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;margin:0 0 10px;border-radius:10px;background:var(--purple-50)}
.bulk[hidden]{display:none}
.o-ind>div{position:relative}
.cmp{display:block;font-style:normal;font-size:11.5px;font-weight:600;margin-top:2px}
.cmp.up{color:#2f855a}.cmp.down{color:var(--red)}
.cmp-note{margin:-2px 0 10px;font-size:12px}
.o-charts{margin-bottom:12px}
.bars{display:flex;align-items:flex-end;gap:3px;height:140px;padding-top:6px}
.bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;min-width:6px}
.bar i{display:block;width:100%;background:linear-gradient(180deg,var(--purple-600),var(--purple-300));border-radius:4px 4px 0 0;min-height:2px}
.bar small{font-size:9.5px;color:var(--muted);margin-top:3px}
.live{display:grid;grid-template-columns:repeat(5,minmax(210px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px}
.lcol{background:var(--purple-50);border-radius:12px;padding:10px;min-height:280px}
.lcol.done{background:var(--lime-100)}
.lcol h3{margin:2px 4px 10px;font-size:14px;display:flex;justify-content:space-between;align-items:center}
.lcard{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:10px;margin-bottom:8px;font-size:13px;cursor:pointer;box-shadow:var(--shadow)}
.lcard .row-b{display:flex;justify-content:space-between;align-items:center;gap:6px}
.lcard.late{border-color:var(--red);box-shadow:0 0 0 2px #ffd2da}
.lcard.new{animation:newPulse 1.2s ease 3;border-color:var(--lime-500)}
@keyframes newPulse{50%{box-shadow:0 0 0 5px var(--lime-200)}}
.lc-who{margin:5px 0 3px;font-weight:500}
.lc-items{font-size:12px;color:var(--muted);margin-bottom:6px;line-height:1.4}
.timer{font-size:12px;color:var(--muted)}.timer.late{color:var(--red);font-weight:600}
.lcard .actions-row{margin-top:8px;gap:6px}
.lcard.mini-c{padding:8px;box-shadow:none}
.ai-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;max-height:260px;overflow:auto;margin-top:10px}
.ai-p{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:8px 10px;border:1.5px solid var(--line);border-radius:11px;background:var(--card);cursor:pointer;font:inherit;font-size:12.5px}
.ai-p:hover{border-color:var(--lime-500);background:var(--lime-100)}
.ai-p span{font-size:20px}.ai-p small{color:var(--muted)}
.ed-type{margin-bottom:12px}
@media (prefers-reduced-motion:reduce){.lcard.new{animation:none}}
@media (max-width:900px){.live{grid-template-columns:repeat(5,minmax(240px,82vw))}}
@media (max-width:560px){.o-bar .grow{display:none}.presets{margin:6px 0 0}}

/* Pedidos: histórico, WhatsApp, agendados e atalhos */
.o-hist{list-style:none;margin:6px 0 0;padding:0 0 0 6px;border-left:2px solid var(--purple-100)}
.o-hist li{display:flex;gap:10px;align-items:flex-start;padding:6px 0 6px 4px;position:relative;font-size:13px}
.o-hist li.mark{color:var(--muted)}
.o-hist .h-ic{width:26px;height:26px;border-radius:50%;background:var(--purple-50);display:grid;place-items:center;flex:none;margin-left:-20px;font-size:13px}
.o-hist small{display:block;color:var(--muted);font-size:11.5px;margin-top:1px}
.wa-tpl{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.wa-tpl .chip.on{background:var(--purple-700);border-color:var(--purple-700);color:#fff}
#waText{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px;font:inherit;resize:vertical}
.qa.wa{background:#e7f8ee;border-color:#9fdcb8}
.sched-tag{color:#b45309 !important;font-weight:500}
.sched-row{margin-top:2px}
.sched-day{margin-bottom:12px}
.sched-o{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:10px 6px;border-top:1px solid var(--line);cursor:pointer}
.sched-o:hover{background:var(--purple-50)}
.sched-o .sc-time{font-size:18px;color:var(--purple-700)}
.sched-o .sc-side{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.sched-o .actions-row{grid-column:2/-1;gap:6px}
.sched-o .block{display:block;margin:2px 0 0}
.tbl.keys td{padding:6px 8px}.tbl.keys td:first-child{white-space:nowrap;width:120px}
.otbl tr[data-open]:focus{outline:2px solid var(--purple-600);outline-offset:-2px}
@media (max-width:560px){.sched-o{grid-template-columns:52px minmax(0,1fr)}.sched-o .sc-side{grid-column:2;align-items:flex-start;flex-direction:row;flex-wrap:wrap}}

/* Resumo dos pagamentos (Pedidos) */
.psum{margin-bottom:12px;padding:12px 14px}
.ps-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.ps-cats>div{border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.ps-cats small{display:block;font-size:11.5px;color:var(--muted)}
.ps-cats b{font-size:15px}
.ps-cats em{display:block;font-style:normal;font-size:11px;color:var(--muted)}
.ps-cats .zero{opacity:.5}
.ps-cats .term{background:#fff7e6;border-color:#f3d7a0}
.ps-tot{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);font-size:13px}
.ps-tot .neg{color:var(--red)}
.ps-tot .pend b{color:#b45309}
.ps-tot small{color:var(--muted)}

/* Painel do restaurante */
.dash-head .actions-row{flex-wrap:wrap}
.alerts{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 14px}
.alert{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:9px 12px;font:inherit;font-size:13px;cursor:pointer;text-align:left}
.alert b{font-weight:600;color:var(--purple-700);white-space:nowrap}
.alert.bad{background:#fff0f2;border-color:#f6c0ca}.alert.warn{background:#fff7e6;border-color:#f3d7a0}.alert.info{background:var(--purple-50);border-color:var(--purple-100)}
.alert.ok{cursor:default;background:var(--lime-100);border-color:var(--lime-200)}
.dkpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.dk{padding:14px}
.dk-h{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:500;color:var(--muted)}
.dk-v{font-size:clamp(17px,1.5vw,22px);font-weight:600;letter-spacing:-.4px;margin:8px 0 4px;white-space:nowrap;font-variant-numeric:tabular-nums}
.dk .vs{font-size:11.5px;color:var(--muted)}
.cmp-chip{display:inline-block;font-size:11.5px;font-weight:600;border-radius:6px;padding:1px 6px;background:var(--purple-50);color:var(--muted)}
.cmp-chip.up{background:#e6f6ec;color:#2f855a}.cmp-chip.down{background:#ffe6ea;color:var(--red)}
.dgrid{display:grid;gap:14px;margin-bottom:14px}
.dgrid.g21{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.dgrid.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.dgrid.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.legend{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted)}
.lg-bar{display:inline-block;width:10px;height:10px;border-radius:2px;background:#8b5cf6;margin-left:6px}
.lg-line{display:inline-block;width:16px;border-top:2.5px dashed #a6e22e;margin-left:8px}
.lv-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px}
.lv-flow>div{background:var(--purple-50);border-radius:10px;padding:8px 4px;text-align:center}
.lv-flow b{display:block;font-size:20px}.lv-flow small{font-size:11px;color:var(--muted)}
.lv-late{margin:0 0 8px;padding:6px 10px;border-radius:8px;background:#fff0f2;color:var(--red);font-size:12.5px;font-weight:500}
.hb{margin-bottom:9px}
.hb-l{display:flex;justify-content:space-between;gap:8px;font-size:13px}
.hb-t{height:8px;border-radius:5px;background:var(--purple-50);margin-top:4px;overflow:hidden}
.hb-t i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,var(--purple-600),var(--purple-300))}
.hb small{font-size:11px;color:var(--muted)}
.kv.mt{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
.neg{color:var(--red)}
.margin-ring{--p:0;width:118px;height:118px;border-radius:50%;margin:4px auto 12px;display:grid;place-items:center;align-content:center;background:radial-gradient(closest-side,var(--card) 76%,transparent 77%),conic-gradient(var(--purple-600) calc(var(--p)*1%),var(--purple-50) 0)}
.margin-ring b{font-size:22px}.margin-ring small{font-size:11px;color:var(--muted)}
@media (max-width:1200px){.dkpis{grid-template-columns:repeat(3,minmax(0,1fr))}.dgrid.g3{grid-template-columns:1fr 1fr}}
@media (max-width:900px){.dgrid.g21,.dgrid.g2,.dgrid.g3{grid-template-columns:1fr}}
@media (max-width:560px){.dkpis{grid-template-columns:1fr 1fr}.lv-flow{grid-template-columns:repeat(2,1fr)}}

/* PIN do gerente, bloqueio e troca de operador */
.modal.pin{width:min(360px,100%)}
.pin-box{display:grid;gap:10px;justify-items:center}
.pin-in{width:100%;text-align:center;font-size:28px;letter-spacing:10px;border:1.5px solid var(--purple-300);border-radius:12px;padding:10px;font-family:inherit}
.pin-pad{display:grid;grid-template-columns:repeat(3,72px);gap:8px}
.pin-pad button{height:56px;border-radius:12px;border:1px solid var(--line);background:var(--card);font-size:20px;font-weight:500;cursor:pointer}
.pin-pad button:active{background:var(--purple-50)}
.pin-pad [data-pk="✓"]{background:var(--purple-700);color:#fff;border-color:var(--purple-700)}
.lock-bg{position:fixed;inset:0;z-index:100;background:linear-gradient(135deg,#2a0f47,#5b2a8c);display:grid;place-items:center;padding:16px;overflow:auto}
.lock-card{background:var(--card);border-radius:20px;padding:24px;width:min(460px,100%);text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.lock-logo{font-size:34px}.lock-card h2{margin:6px 0 2px}
.lock-ops{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:14px 0}
.lock-ops button{display:flex;flex-direction:column;align-items:center;gap:3px;border:1.5px solid var(--line);background:var(--card);border-radius:14px;padding:10px 12px;min-width:86px;cursor:pointer;font:inherit}
.lock-ops button.on{border-color:var(--purple-600);background:var(--purple-50)}
.lock-ops .avatar{width:38px;height:38px;font-size:13px}
.lock-ops small{font-size:11px;color:var(--muted)}
.lock-foot{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:12px}.lock-foot .btn-main{width:100%}
.u-menu{display:grid;gap:8px}.u-menu .outline-btn{width:100%;text-align:left}

/* PDV: happy hour, desconto por item, botões ligados */
.prod .price s{color:var(--muted);font-weight:400;font-size:11.5px}
.hh-tag{display:inline-block;font-style:normal;font-size:10px;font-weight:600;color:#b45309;background:#fff3d6;border-radius:6px;padding:1px 6px;margin-top:2px}
.ln-disc{font-style:normal;color:var(--red);font-weight:600}
.ds-scope,.pr-kind{margin-bottom:12px}
.chip-btn.on{background:var(--purple-700);color:#fff;border-color:var(--purple-700)}
.scale-read{width:100%;margin:6px 0}
.chip.ck{display:inline-flex;align-items:center;gap:5px;cursor:pointer}
#prProd{width:100%;margin-top:8px}

/* Modo touch: alvos grandes para dedo */
body.touch .products{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
body.touch .prod{min-height:180px;padding:12px}
body.touch .prod .img{height:80px;font-size:44px}
body.touch .prod .nm{font-size:14.5px}
body.touch .prod .price{font-size:17px}
body.touch .cats button{padding:12px 16px;font-size:15px}
body.touch .order-card .line{padding:12px 8px}
body.touch .qty button{width:40px;height:40px;font-size:20px}
body.touch .pay-cta{padding:18px;font-size:19px}
body.touch .pdv-2 .outline-btn{padding:14px 8px}
body.touch .keybar{display:none}
body.touch .mode button{padding:10px 2px}
body.touch .modal .btn-main,body.touch .modal .outline-btn{min-height:46px}
body.touch .methods button{min-height:64px}

/* Tela do cliente */
body.display{background:#1d0b33}
body.display .shell,body.display main{display:block;padding:0;margin:0}
body.display #view{min-height:100vh;color:#fff}
.cd{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);min-height:100vh}
.cd-list{padding:32px 36px;overflow:auto}
.cd-list h2{margin:0 0 18px;font-size:26px;color:#d9f99d}
.cd-it{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:12px;align-items:baseline;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:22px}
.cd-it .q{color:#c4b5fd;font-weight:600}.cd-it small{display:block;font-size:15px;color:#c9bde0}.cd-it .v{font-variant-numeric:tabular-nums}
.cd-side{background:#2d1250;padding:32px;display:flex;flex-direction:column;gap:10px;font-size:20px}
.cd-side .kv{display:flex;justify-content:space-between}
.cd-side .neg{color:#fda4af}
.cd-total{margin-top:auto;background:#a3e635;color:#1d0b33;border-radius:18px;padding:22px}
.cd-total small{display:block;font-size:18px;font-weight:600}.cd-total b{font-size:56px;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.cd-pay{background:rgba(255,255,255,.08);border-radius:16px;padding:16px}.cd-pay .big b{font-size:30px;color:#fde68a}
.cd-method{margin:6px 0 0;color:#c9bde0;font-size:16px}
.cd-idle,.cd-thanks{min-height:100vh;display:grid;place-content:center;justify-items:center;text-align:center;gap:6px;padding:24px}
.cd-logo,.cd-ok{font-size:90px}.cd-idle h1,.cd-thanks h1{font-size:54px;margin:0}.cd-idle p,.cd-thanks p{font-size:24px;color:#e9dcff}
.cd-thanks b{color:#a3e635}
.cd-promo{margin-top:12px;background:#fde68a;color:#1d0b33;border-radius:14px;padding:12px 22px;font-size:24px;font-weight:600}
@media (max-width:800px){.cd{grid-template-columns:1fr}.cd-it{font-size:18px}}
body.display .demo-bar,body.display .support-bar,body.display .side,body.display .topbar{display:none}

/* Financeiro */
.fin-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin:4px 0 10px;scrollbar-width:thin}
.fin-tabs button{white-space:nowrap;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:8px 14px;font:inherit;font-size:13px;cursor:pointer}
.fin-tabs button.on{background:var(--purple-700);border-color:var(--purple-700);color:#fff}
#fBar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
#fBar .grow{flex:1}
.o-ind em{display:block;font-style:normal;font-size:11px;color:var(--muted);margin-top:2px}
.flowc{display:flex;align-items:flex-end;gap:3px;height:170px;padding-top:6px}
.fc{flex:1;display:flex;align-items:flex-end;gap:1px;height:100%;position:relative;min-width:6px}
.fc i{flex:1;display:block;border-radius:3px 3px 0 0;min-height:1px}
.fc i.in{background:#7c3aed}.fc i.out{background:#f87171}
.fc small{position:absolute;bottom:-16px;left:50%;transform:translateX(-50%);font-size:9px;color:var(--muted)}
.flowc{margin-bottom:16px}
.lg-bar.out{background:#f87171}
.xml-drop{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px;border:1.5px dashed var(--purple-300);border-radius:12px;margin-bottom:12px}
.xml-drop label{cursor:pointer}
.note-items .sel{min-width:150px}
.conv{display:flex;align-items:center;gap:4px;font-size:12px;white-space:nowrap}.conv input{width:70px;border:1px solid var(--line);border-radius:7px;padding:5px}
tr.rec td{background:#f0fbe6}
small.block{display:block}

/* Clientes */
.cu-head{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-start;margin-bottom:12px}
.cu-head h2{margin:0;font-size:20px}.cu-head .sub{margin:2px 0 6px;font-size:12.5px}
.cu-av{width:54px;height:54px;border-radius:50%;background:var(--purple-700);color:#fff;display:grid;place-items:center;font-size:19px;font-weight:600;flex:none}
.cu-tags{display:flex;flex-wrap:wrap;gap:4px}
.cu-act{margin-left:auto}
.cu-tabs{display:flex;flex-wrap:wrap;margin-bottom:12px}
.cu-body h4{margin:14px 0 6px}
.cu-body .kv[data-co]{cursor:pointer}.cu-body .kv[data-co]:hover{background:var(--purple-50)}
.minibars{display:flex;align-items:flex-end;gap:4px;height:110px}
.minibars>div{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}
.minibars i{display:block;width:100%;background:var(--purple-300);border-radius:4px 4px 0 0;min-height:2px}.minibars i.top{background:var(--purple-700)}
.minibars small{font-size:9.5px;color:var(--muted);margin-top:3px}
.cmp-card{margin:8px 0;padding:12px}.cmp-card.open{border-color:#f6c0ca}.cmp-card p{margin:6px 0}
.cmp-card .row-b{display:flex;justify-content:space-between;align-items:center;gap:8px}
.pager{display:flex;justify-content:center;align-items:center;gap:10px;padding-top:10px}
.g4 .span4{grid-column:1/-1}

/* Fornecedores e espelho da nota */
.minibars.tall{height:140px}
.mirror{border:1px solid var(--ink,#333);border-radius:4px;margin-top:12px;background:#fff;color:#111;font-size:12px}

/* Mapa do salão */
.fl-areas{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 10px}
.fl-leg{display:flex;flex-wrap:wrap;gap:4px 12px;margin-left:auto;font-size:12px;color:var(--muted);align-items:center}
.fl-leg i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:4px;vertical-align:-2px}
.floor{position:relative;height:clamp(380px,62vh,640px);border-radius:16px;background:var(--card);border:1px solid var(--line);
  background-image:radial-gradient(var(--purple-100) 1px,transparent 1px);background-size:22px 22px;overflow:hidden;margin-bottom:16px}
.floor.editing{outline:2px dashed var(--purple-300);outline-offset:-6px}
.ft{position:absolute;width:clamp(70px,8.5%,104px);aspect-ratio:1;border-radius:14px;border:2px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font:inherit;cursor:pointer;touch-action:none;box-shadow:var(--shadow);padding:2px}
.ft.round{border-radius:50%}.ft.rect{aspect-ratio:1.7;width:clamp(100px,12%,150px)}
.ft b{font-size:18px;line-height:1}.ft small{font-size:10.5px;color:inherit;opacity:.85;line-height:1.15}
.ft i{position:absolute;font-style:normal;font-size:11px;border-radius:8px;padding:1px 5px}
.ft-ready{top:-9px;right:-9px;background:var(--lime-500);color:#1d0b33}.ft-bill{top:-9px;left:-9px;background:#f59e0b;color:#fff}
.ft.free,.fl-leg .free{background:#fff;border-color:#cfe9b4}.ft.free{color:#3f6212}
.ft.busy,.fl-leg .busy{background:var(--purple-700);border-color:var(--purple-700);color:#fff}
.ft.bill,.fl-leg .bill{background:#f59e0b;border-color:#d97706;color:#fff}
.ft.idle,.fl-leg .idle{background:#ef4444;border-color:#dc2626;color:#fff}
.ft.settled,.fl-leg .settled{background:var(--lime-200);border-color:var(--lime-500);color:#1d0b33}
.ft.joined{background:var(--purple-50);border-style:dashed;color:var(--purple-700)}
.ft.off{opacity:.45}
.floor.editing .ft{cursor:grab;background:#fff;color:var(--purple-700);border-color:var(--purple-300)}
.tbl-tile.bill{box-shadow:0 0 0 2px #f59e0b}.tt-bill{color:#b45309;font-weight:600}
.tab-joined{margin:-4px 0 10px;font-size:13px}
.mv-items{max-height:260px;overflow:auto;display:grid;gap:4px;margin-bottom:10px}
.cmd-scan{margin-bottom:10px}
.chips.payer{display:flex;flex-wrap:wrap;gap:8px}.chips.payer .chip{font-size:14px;padding:10px 14px}

/* Modo garçom (celular) */
body.waiter main{padding-bottom:40px}
.g-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.g-head h1{font-size:22px;margin:0}
.g-alert{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;text-align:left;border:0;border-radius:12px;padding:12px 14px;margin-bottom:6px;font:inherit;font-size:14px;cursor:pointer}
.g-alert.call{background:#fde68a}.g-alert.ready{background:var(--lime-200)}.g-alert.bill{background:#fed7aa}.g-alert.idle{background:#fecaca}
.g-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px;margin-top:10px}
.g-t{position:relative;min-height:96px;border-radius:16px;border:2px solid var(--line);background:var(--card);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:inherit;cursor:pointer}
.g-t b{font-size:17px}.g-t span{font-weight:600}.g-t small{font-size:11px;opacity:.85}.g-t i{position:absolute;top:4px;right:6px;font-style:normal}
.g-t.busy{background:var(--purple-700);color:#fff;border-color:var(--purple-700)}.g-t.bill{background:#f59e0b;color:#fff;border-color:#d97706}.g-t.idle{background:#ef4444;color:#fff;border-color:#dc2626}.g-t.settled{background:var(--lime-200)}.g-t.joined{border-style:dashed}
.g-total{display:flex;align-items:baseline;justify-content:space-between;gap:8px;background:var(--purple-50);border-radius:14px;padding:14px 16px;margin-bottom:10px}.g-total b{font-size:24px}
.g-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.g-actions .big{grid-column:1/-1;padding:16px;font-size:18px}
.g-order{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px}.g-order.ready{border-color:var(--lime-500);box-shadow:0 0 0 2px var(--lime-200)}
.g-order .row-b{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px}.g-order .btn-main{width:100%;margin-top:8px;padding:12px}
.g-it{font-size:14px;padding:3px 0}.g-it small{display:block;color:var(--muted);font-size:12px}
.modal.g-pick .ai-grid{max-height:44vh}.g-cart{margin-top:10px;font-size:13px}.g-cart .chip{display:inline-flex;gap:6px;margin:4px 4px 0 0}
@media (max-width:560px){.g-actions{grid-template-columns:1fr}.floor{height:70vh}}

/* Cardápio digital da mesa (QR) */
body.qr{background:#f6f2fb}
body.qr main{padding:0;max-width:640px;margin:0 auto}
.qm{min-height:100vh;padding-bottom:90px;background:#f6f2fb}
.qm-h{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;background:linear-gradient(135deg,#3b1466,#7c3aed);color:#fff}
.qm-h small{opacity:.85;font-size:12px}.qm-h h1{margin:0;font-size:22px;color:#fff}
.qm-acts{display:flex;gap:6px}.qm-acts button{border:0;border-radius:999px;padding:8px 12px;background:rgba(255,255,255,.18);color:#fff;font:inherit;font-size:13px}
.qm-search{padding:12px 16px 4px}.qm-search input{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font:inherit;font-size:15px;background:#fff}
.qm-cats{position:sticky;top:64px;z-index:4;display:flex;gap:6px;overflow-x:auto;padding:8px 16px;background:#f6f2fb;scrollbar-width:none}
.qm-cats button{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 14px;font:inherit;font-size:14px}
.qm-cats button.on{background:#3b1466;color:#fff;border-color:#3b1466}
.qm-list{display:grid;gap:10px;padding:8px 16px}
.qm-it{display:grid;grid-template-columns:64px minmax(0,1fr) 36px;gap:12px;align-items:center;text-align:left;border:0;border-radius:16px;background:#fff;padding:12px;box-shadow:0 2px 10px rgba(40,10,70,.06);font:inherit;color:inherit}
.qm-em{width:64px;height:64px;border-radius:14px;background:#f3ecfc;display:grid;place-items:center;font-size:34px}
.qm-tx b{display:block;font-size:15.5px}.qm-tx small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px;line-height:1.35}
.qm-tx i{display:inline-block;font-style:normal;font-size:10.5px;font-weight:600;border-radius:6px;padding:1px 6px;margin:3px 4px 0 0}.qm-top{background:#ffedd5;color:#c2410c}.qm-pr{background:#fef3c7;color:#b45309}
.qm-price{display:block;margin-top:6px}.qm-price b{display:inline;font-size:15px;color:#3b1466}.qm-price s{color:var(--muted);font-size:12px}
.qm-plus{width:36px;height:36px;border-radius:50%;background:#a3e635;display:grid;place-items:center;font-size:20px;font-weight:700;color:#1d0b33}
.qm-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:14px;width:min(608px,calc(100% - 32px));display:flex;align-items:center;gap:12px;border:0;border-radius:16px;padding:16px 18px;background:#3b1466;color:#fff;font:inherit;font-size:16px;box-shadow:0 12px 30px rgba(40,10,70,.35);z-index:6}
.qm-bar span{background:#a3e635;color:#1d0b33;border-radius:8px;padding:2px 8px;font-weight:700}.qm-bar b{margin-left:auto}
.qm-sheet{padding:14px 16px}.qm-sheet h2{margin:6px 0 12px}
.qm-back{border:0;background:none;color:#5b2a8c;font:inherit;font-weight:600;padding:4px 0}
.qm-line{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#fff;border-radius:14px;padding:12px;margin-bottom:8px}
.qm-line small{display:block;color:var(--muted);font-size:12px}.qm-line span{display:block;margin-top:4px;font-weight:600}
.qm-qty{display:flex;align-items:center;gap:10px}.qm-qty button{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:18px}
.qm-sum{background:#fff;border-radius:14px;padding:12px 14px;margin:12px 0}.qm-sum>div{display:flex;justify-content:space-between;padding:4px 0}.qm-sum .t b{font-size:20px}
.qm-name{display:block;font-size:13px;color:var(--muted);margin-bottom:12px}.qm-name input{display:block;width:100%;margin-top:4px;border:1px solid var(--line);border-radius:12px;padding:12px;font:inherit;background:#fff}
.qm-send{width:100%;border:0;border-radius:16px;padding:16px;background:#3b1466;color:#fff;font:inherit;font-size:16px;font-weight:600}.qm-send:disabled{opacity:.6}
.qm-note{font-size:12px;color:var(--muted);text-align:center;margin:10px 0}
.qm-ord{background:#fff;border-radius:14px;padding:12px;margin-bottom:8px;border-left:4px solid #a78bfa}.qm-ord small{display:block;font-size:13px;margin-top:3px}
.qm-ord .row-b{display:flex;justify-content:space-between;gap:8px;font-size:13px}.qm-ord .v{display:block;text-align:right;margin-top:6px}
.qm-ord.wait{border-color:#f59e0b}.qm-ord.ready{border-color:#a3e635;background:#f7fee7}.qm-ord.bad{border-color:#ef4444;opacity:.8}.qm-ord.done{border-color:#cbd5e1}
.qr-err{text-align:center;padding:60px 20px}.qe-ic{font-size:60px}
/* Aviso de pedidos do QR no topo */
.qr-bell{border:0;border-radius:999px;padding:7px 12px;background:#a3e635;color:#1d0b33;font:inherit;font-size:13px;font-weight:600;cursor:pointer;animation:newPulse 1.4s ease infinite}
.qr-bell[hidden]{display:none}
.qr-ord{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px}.qr-ord .row-b{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
@media (prefers-reduced-motion:reduce){.qr-bell{animation:none}}

/* PDV: atalhos em grupos e menu do terminal */
.pdv-tools { gap: 10px; flex-wrap: wrap; }
.pdv-tools .tool-g { display: flex; gap: 6px; padding-left: 10px; border-left: 1px solid var(--line); }
.pdv-tools .tool-g:first-child { padding-left: 0; border-left: 0; }
.term-wrap { position: relative; }
.term-menu { position: absolute; right: 0; top: calc(100% + 6px); z-index: 40; min-width: 210px; background: var(--card); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 32px rgba(0,0,0,.14); padding: 6px; display: grid; }
.term-menu[hidden] { display: none; }
.term-menu button { text-align: left; background: none; border: 0; padding: 10px 12px; border-radius: 8px; font: inherit; color: inherit; cursor: pointer; }
.term-menu button:hover, .term-menu button.on { background: var(--purple-50); }
@media (max-width: 900px) { .term-menu { right: auto; left: 0; } }

/* Caixa */
.cx-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.cx-hero{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px;background:linear-gradient(120deg,var(--purple-50),var(--lime-100))}
.cx-hero > div:first-child{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cx-hero b{font-size:17px}.cx-hero small{color:var(--muted)}
.cx-dot{width:11px;height:11px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(31,157,85,.18)}
.cx-acts{display:flex;gap:8px;flex-wrap:wrap}
.cx-kpis .k-val small{font-size:13px}
.cx-alert{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:12px;background:#fff3d6;border:1px solid #f0d99c;margin-bottom:12px;font-size:14px}
.cx-alert .btn-main{margin-left:auto}
.cx-feed{max-height:460px;overflow:auto;margin:0 -4px;padding:0 4px}
.cx-mv{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.cx-mv:last-child{border-bottom:0}
.cx-mv small{display:block;color:var(--muted);font-size:12px}
.cx-mv > b{font-variant-numeric:tabular-nums;white-space:nowrap}
.cx-mv.out > b{color:var(--red)}
.cx-ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--purple-50);font-size:14px}
.cx-mv.t-supply .cx-ic,.cx-mv.t-opening .cx-ic{background:var(--lime-100)}
.cx-mv.t-withdrawal .cx-ic,.cx-mv.t-refund .cx-ic{background:#ffe6ea}
.cx-bar{position:relative;display:flex;justify-content:space-between;padding:8px 0 12px;font-size:14px}
.cx-bar i{position:absolute;left:0;bottom:4px;height:5px;width:var(--w);border-radius:3px;background:var(--purple-500)}
.cx-bar::after{content:'';position:absolute;left:0;right:0;bottom:4px;height:5px;border-radius:3px;background:var(--purple-50);z-index:-1}
.cx-open{display:flex;gap:18px;align-items:flex-start;padding:22px}
.cx-open h2{margin:0 0 4px}
.cx-open-ic{font-size:34px;width:64px;height:64px;border-radius:16px;background:var(--lime-100);display:grid;place-items:center;flex:none}
.cx-reasons{display:flex;flex-wrap:wrap;gap:6px}
.cx-reasons .chip-btn.on{background:var(--purple-700);color:#fff;border-color:var(--purple-700)}
.cx-den{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;margin-top:10px}
.cx-den[hidden]{display:none}
.cx-coin{display:grid;gap:4px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:13px}
.cx-coin.note{background:var(--lime-100)}
.cx-coin span{font-weight:600}
.cx-coin input{width:100%;font-size:16px;text-align:center}
.cx-coin small{color:var(--muted);min-height:15px;font-size:11px}
.cx-count{display:flex;gap:8px 14px;align-items:baseline;flex-wrap:wrap;margin-top:12px;padding:12px;border-radius:12px;background:var(--purple-50)}
.cx-count b{font-size:18px;margin-right:12px}
.cx-warn{padding:10px;border-radius:10px;background:#ffe6ea;color:var(--red);font-weight:500;margin:0 0 8px}
.cx-filt label{display:flex;gap:6px;align-items:center;font-size:13px}
.k-val.neg{color:var(--red)}
@media (max-width:700px){.cx-open{flex-direction:column}.cx-acts{width:100%}.cx-acts button{flex:1}}

/* Loja, esgotados e estoque */
.store-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid var(--line);background:#fff;font:inherit;font-size:13px;cursor:pointer}
.store-chip i{width:10px;height:10px;border-radius:50%;background:var(--green)}
.store-chip.off{background:#fff3d6;border-color:#f0d99c}
.store-chip.off i{background:var(--red)}
.hr-row{display:flex;gap:6px 14px;align-items:center;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--line)}
.hr-row .check{min-width:110px;margin:0}
.hr-t{display:inline-flex;gap:6px;align-items:center;font-size:13px}
.hr-t input{padding:5px 6px;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:13px}
.so-list{max-height:52vh;overflow:auto}
.so-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}
.so-row.off{color:var(--muted)}
.prod.off{opacity:.55;filter:grayscale(.7)}
.prod .tag.sold{background:var(--red);color:#fff}
.st-acts{white-space:nowrap;text-align:right}
.qm-it.off{opacity:.55}
.qm-sold{color:var(--red)}
.qm-closed{margin:10px 12px;padding:12px;border-radius:12px;background:#fff3d6;border:1px solid #f0d99c;font-size:14px}

.logo-img{display:inline-block;width:1em;height:1em;object-fit:contain;vertical-align:middle}
.qm-it[disabled]{cursor:not-allowed}
.qm-it[disabled]>:last-child{opacity:.35}

/* Nome da marca: letra arredondada e inclinada; "Food" em verde-limão */
.wm{display:inline-block;transform:skewX(-10deg);white-space:nowrap}
.wm b{font-weight:700;color:#b6f20a}
.brand.dark .wm b{color:#62a800}
.update-bar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:9000;max-width:calc(100vw - 32px);padding:12px 18px;border:0;border-radius:12px;background:var(--purple-800);color:#fff;font:inherit;font-size:14px;font-weight:500;box-shadow:0 10px 30px rgba(40,15,70,.35);cursor:pointer}

/* Pedidos: previsão, visões, ficha e painel da TV */
.eta{display:inline-block;margin-top:3px;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:600;background:var(--lime-100);color:#3c7a05;white-space:nowrap}
.eta.risk{background:#fff3d6;color:#8a5a00}.eta.late{background:#ffe2e6;color:var(--red)}
.eta-alert{margin:0 0 12px;padding:10px 12px;border-radius:11px;background:#fff3d6;border:1px solid #f0d99c;font-size:13px}.eta-alert .link{margin-right:6px}
.o-times{margin-top:-6px}.cmp{font-style:normal}
.o-views{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;align-items:center}
.o-views .tchip.hot-bad b{color:var(--red)}.o-views .tchip.hot-amber b{color:#8a5a00}
.o-views .sv{display:inline-flex;align-items:center}.sv-x{border:0;background:none;color:var(--muted);cursor:pointer;font-size:11px;padding:2px 4px}
.o-adv{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;padding-top:8px;border-top:1px solid var(--line)}
.o-adv[hidden]{display:none}.o-adv label{display:inline-flex;align-items:center;gap:5px}.o-adv input{width:80px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;font:inherit}
.od-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.od-hero .od-badges{margin-bottom:4px}
.od-total{text-align:right;flex:none}.od-total small{display:block;font-size:11px;color:var(--muted)}.od-total b{font-size:24px;letter-spacing:-.5px}
.od-steps{display:flex;list-style:none;margin:0 0 12px;padding:0;overflow-x:auto}
.od-steps li{flex:1;min-width:62px;position:relative;text-align:center;font-size:11px;color:var(--muted);padding-top:18px}
.od-steps li::before{content:'';position:absolute;top:6px;left:-50%;width:100%;height:2px;background:var(--line)}.od-steps li:first-child::before{display:none}
.od-steps i{position:absolute;top:0;left:50%;margin-left:-7px;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--line);z-index:1}
.od-steps b{display:block;font-weight:600}.od-steps small{display:block;font-size:10.5px}.od-steps em{display:block;font-style:normal;font-size:10px;color:var(--purple-600);min-height:12px}
.od-steps li.done{color:var(--ink)}.od-steps li.done::before{background:var(--purple-600)}.od-steps li.done i{background:var(--purple-600);border-color:var(--purple-600)}
.od-steps li.next i{border-color:var(--purple-600);box-shadow:0 0 0 3px var(--purple-100)}
.od-steps.off li.done::before,.od-steps.off li.done i{background:var(--muted);border-color:var(--muted)}
.od-main{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
body.tv{background:#1d0a33}
.tv{min-height:100vh;display:flex;flex-direction:column;color:#fff;background:linear-gradient(160deg,#3a145f,#1d0a33);padding:2vh 3vw;box-sizing:border-box}
.tv header{display:flex;align-items:center;gap:16px;margin-bottom:2vh}.tv header img{height:7vh}.tv header h1{font-family:Quicksand,Inter,sans-serif;font-size:4.5vh;margin:0;flex:1}
.tv-clock{font-size:4vh;font-weight:600}.tv header button{padding:10px 16px;border-radius:10px;border:0;background:#b6f20a;color:#1d0a33;font-weight:700;cursor:pointer}
.tv-cols{flex:1;display:grid;grid-template-columns:1fr 1.25fr;gap:2vw;min-height:0}.tv section{background:#ffffff14;border-radius:20px;padding:2vh 1.5vw;overflow:hidden}
.tv section.ready{background:#b6f20a1f;box-shadow:inset 0 0 0 2px #b6f20a66}.tv h2{margin:0 0 2vh;font-size:3.6vh}
.tv-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(20vh,1fr));gap:1.4vh}
.tv-card{background:#ffffff1a;border-radius:14px;padding:1.4vh;text-align:center}.tv-card b{display:block;font-size:6vh;line-height:1.1}.tv-card span{font-size:2.6vh;opacity:.85}
.tv-card.done{background:#b6f20a;color:#1d0a33}.tv-card.done span{opacity:1;font-weight:600}.tv-card.new{animation:newPulse 1.2s ease 4}.tv-empty{font-size:3vh;opacity:.6}
@media (max-width:700px){.tv-cols{grid-template-columns:1fr}.od-total b{font-size:20px}}
body.tv .demo-bar,body.tv .support-bar{display:none}
body.tv main,body.tv .main,body.tv #view{padding:0;margin:0;max-width:none}

/* Funcionários */
.av{width:32px;height:32px;border-radius:50%;background:var(--purple-100);color:var(--purple-700);display:inline-grid;place-items:center;font-size:12px;font-weight:700;flex:none}
.av-row{display:inline-flex;align-items:center;gap:8px}.mono{font-family:ui-monospace,Menlo,monospace;letter-spacing:.04em}
.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:2px 12px}.mod-grid[hidden]{display:none}
.org{overflow-x:auto;padding:6px 0 10px}.org ul{display:flex;justify-content:center;gap:12px;padding:18px 0 0;margin:0;list-style:none;position:relative}.org>ul{padding-top:0}
.org li{position:relative;padding:18px 6px 0;text-align:center;display:flex;flex-direction:column;align-items:center}.org>ul>li{padding-top:0}
.org li::before{content:'';position:absolute;top:0;left:0;right:0;border-top:2px solid var(--line)}.org li:first-child::before{left:50%}.org li:last-child::before{right:50%}.org li:only-child::before{display:none}.org>ul>li::before{display:none}
.org li::after{content:'';position:absolute;top:0;left:50%;height:18px;border-left:2px solid var(--line)}.org>ul>li::after{display:none}
.org ul ul::before{content:'';position:absolute;top:0;left:50%;height:18px;border-left:2px solid var(--line)}
.org-n{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:118px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--card);font:inherit;cursor:pointer}
.org-n:hover{border-color:var(--purple-500)}.org-n small{color:var(--muted);font-size:11px}.org-n b{font-size:13px}
.tbl.scale td{vertical-align:top;min-width:92px}.shift{display:block;width:100%;margin-bottom:3px;padding:3px 4px;border:0;border-radius:6px;background:var(--purple-100);color:var(--purple-700);font:inherit;font-size:11.5px;cursor:pointer}.shift.add{background:none;color:var(--muted);border:1px dashed var(--line)}
.shift:not(.add):hover{background:#ffe2e6;color:var(--red)}
.pt-clock{font-size:34px;font-weight:600}.pt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.pt-card{display:flex;flex-direction:column;align-items:center;gap:3px;padding:16px 10px;border:1px solid var(--line);border-radius:14px;background:var(--card);font:inherit;cursor:pointer}.pt-card[disabled]{opacity:.5;cursor:not-allowed}
.pt-card.in{border-color:var(--lime-500);background:var(--lime-100)}.pt-card small{color:var(--muted);font-size:12px}.pt-card em{font-style:normal;font-size:12px;font-weight:600}
.mod-acts{display:flex;gap:14px;margin-bottom:6px;font-size:12.5px}.mod-acts[hidden]{display:none}
.on-url{display:flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:9px;overflow:hidden}.on-url span{padding:0 8px;color:var(--muted);background:var(--purple-50);align-self:stretch;display:flex;align-items:center;font-size:13px}.on-url input{border:0;flex:1;min-width:0}
.pic{display:grid;place-items:center;position:relative;overflow:hidden;border:1px dashed var(--line);border-radius:12px;background:var(--purple-50);color:var(--muted);font-size:13px;cursor:pointer}.pic img{width:100%;height:100%;object-fit:cover;display:block}.pic.logo,.pic.prod-pic{width:110px;height:110px}.pic.cover{width:100%;height:110px}
.prod .img img,.qm-em img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.prod .img{overflow:hidden}.qm-em{overflow:hidden}
