:root{
  --brand:#E73B4C; --brand-d:#C92D3D; --brand-l:#FDECEE;
  --ink:#1F2430; --ink2:#363D4D; --mute:#6B7280; --line:#E5E7EB; --bg:#F5F5F5; --card:#fff;
  --ok:#16A34A; --ok-l:#DCFCE7; --warn:#D97706; --warn-l:#FEF3C7; --info:#2563EB; --info-l:#DBEAFE;
  --bad:#DC2626; --bad-l:#FEE2E2; --violet:#7C3AED; --violet-l:#EDE9FE;
  --r:10px; --sh:0 1px 2px rgba(0,0,0,.06),0 2px 8px rgba(0,0,0,.05);
  font-family:Montserrat,"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-size:14px}
a{color:var(--brand);text-decoration:none}
button{font:inherit;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{margin:0}
.muted{color:var(--mute)} .small{font-size:12px} .bold{font-weight:700} .right{text-align:right} .center{text-align:center}
.row{display:flex;gap:8px;align-items:center} .row.wrap{flex-wrap:wrap} .grow{flex:1} .col{display:flex;flex-direction:column;gap:8px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px} .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:800px){.grid2,.grid3,.grid4{grid-template-columns:1fr}}
.hide{display:none!important}

/* botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);background:#fff;color:var(--ink);
  padding:8px 14px;border-radius:8px;font-weight:600;white-space:nowrap;transition:.15s}
.btn:hover{border-color:#d6d3d1;background:#fafaf9}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff} .btn.primary:hover{background:var(--brand-d)}
.btn.outline{border-color:var(--brand);color:var(--brand)} .btn.outline:hover{background:var(--brand-l)}
.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff} .btn.bad{background:#fff;border-color:var(--bad);color:var(--bad)}
.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}
.btn.sm{padding:5px 10px;font-size:12px;border-radius:7px} .btn.icon{padding:7px 9px}
.btn.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.seg{display:inline-flex;background:#EEECEA;border-radius:9px;padding:3px;gap:2px}
.seg button{border:0;background:transparent;padding:6px 12px;border-radius:7px;font-weight:600;color:var(--ink2)}
.seg button.on{background:#fff;color:var(--brand);box-shadow:var(--sh)}
.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:99px;font-size:12px;font-weight:600;background:#EEECEA;color:var(--ink2)}
.chip.ok{background:var(--ok-l);color:var(--ok)} .chip.bad{background:var(--bad-l);color:var(--bad)} .chip.warn{background:var(--warn-l);color:var(--warn)}
.chip.info{background:var(--info-l);color:var(--info)} .chip.brand{background:var(--brand-l);color:var(--brand)} .chip.violet{background:var(--violet-l);color:var(--violet)}
.badge{display:inline-flex;min-width:20px;height:20px;padding:0 6px;border-radius:99px;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;background:var(--brand)}

/* formulários */
label.f{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--ink2)}
.in,select.in,textarea.in{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff;outline:none;font-size:14px}
.in:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-l)}
textarea.in{min-height:70px;resize:vertical}
.switch{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
.switch input{display:none}
.switch i{width:38px;height:22px;border-radius:99px;background:#D6D3D1;position:relative;transition:.2s;flex:none}
.switch i:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.switch input:checked+i{background:var(--ok)} .switch input:checked+i:after{left:19px}
.opt{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.opt:last-child{border-bottom:0} .opt b{display:block} .opt span{font-size:12px;color:var(--mute)}

/* layout ERP */
.app{display:flex;height:100vh}
.side{width:240px;flex:none;background:#15171C;color:#C9CDD4;display:flex;flex-direction:column;overflow:auto;transition:.2s;border-right:1px solid #0B0C0F}
.side .logo{padding:16px 16px 8px;display:flex;align-items:center;justify-content:space-between}
.side .logo img{height:30px;filter:none}
.side .logo .lw{color:#fff}
.side .store{margin:6px 12px 10px;border-radius:10px;font-size:12px}
.side .store b{display:block;font-size:13px;color:#fff;margin-bottom:6px;border:1px solid #2A2E36;background:#1D2027;border-radius:8px;padding:8px 10px}
.side .store .btn{background:#1D2027!important;color:#E5E7EB!important;border-color:#2A2E36!important;font-size:11px}
.side .store .btn:hover{background:#2A2E36!important}
.side nav{padding:4px 8px 12px;flex:1}
.side .grp{margin:2px 0}
.side .it{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:#C9CDD4;cursor:pointer;font-weight:500}
.side .it:hover{background:#22252C;color:#fff}
.side .it.on{color:#fff;background:var(--brand)}
.side .it.on svg{stroke:#fff}
.side .grp.open>.it[data-toggle]{color:#fff}
.side .it svg{width:19px;height:19px;flex:none}
.side .it .chev{margin-left:auto;transition:.2s;opacity:.6}
.side .grp.open .chev{transform:rotate(90deg)}
.side .sub{display:none;padding-left:28px}
.side .grp.open .sub{display:block}
.side .sub .it{padding:7px 10px;font-size:13px}
.side .foot{padding:12px 16px;font-size:11px;color:#8B919C;border-top:1px solid #2A2E36}
.side .foot a{color:#F87171}
.main{flex:1;display:flex;flex-direction:column;min-width:0}
.top{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#fff;border-bottom:1px solid var(--line);flex-wrap:wrap}
.top .burger{display:none}
.content{flex:1;overflow:auto;padding:16px}
.page-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.page-h h1{font-size:20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;box-shadow:var(--sh)}
.card+.card{margin-top:12px}
.card h3{font-size:15px;margin-bottom:4px}
.card .sub{color:var(--mute);font-size:12px;margin-bottom:12px}
.search{position:relative}
.search input{padding-left:32px}
.search:before{content:"";position:absolute;left:10px;top:50%;width:14px;height:14px;transform:translateY(-50%);
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2378716C' stroke-width='2.5'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat center/contain}
@media(max-width:900px){
  .side{position:fixed;z-index:50;height:100%;left:-260px}
  .side.show{left:0;box-shadow:0 0 0 2000px rgba(0,0,0,.4)}
  .top .burger{display:inline-flex}
  .content{padding:10px}
}

/* tabelas */
.tbl{width:100%;border-collapse:collapse;background:#fff}
.tbl th{text-align:left;font-size:12px;color:var(--mute);font-weight:600;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr.click:hover td{background:#FAFAF9;cursor:pointer}
.tbl-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--r)}

/* kanban */
.kanban{display:grid;grid-template-columns:repeat(4,minmax(260px,1fr));gap:12px;height:100%;overflow-x:auto}
.kcol{display:flex;flex-direction:column;min-height:0;background:transparent}
.kcol .kh{padding:8px 12px;border-radius:8px;border:1px solid}
.kcol .kh .t{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px}
.kcol .kh .v{font-size:12px;font-weight:600;margin-top:2px}
.kcol .kb{padding:8px 0;overflow:auto;flex:1;display:flex;flex-direction:column;gap:8px}
.k-analise .kh{background:#FDECEE;border-color:#F5B5BC;color:#E73B4C} .k-analise .badge{background:#E73B4C}
.k-preparo .kh{background:#FFF4E5;border-color:#F8D49E;color:#E28A17} .k-preparo .badge{background:#F0A030}
.k-pronto .kh{background:#EAF1FF;border-color:#B7CBF3;color:#1F4FD1} .k-pronto .badge{background:#3D6FE0}
.k-entrega .kh{background:#E9F8EE;border-color:#A6DDB7;color:#15803D} .k-entrega .badge{background:#1FA34A}
.ocard{background:#fff;border-radius:10px;padding:10px 12px;box-shadow:var(--sh);border:1px solid var(--line);cursor:pointer;position:relative}
.ocard:hover{border-color:#D6D3D1}
.ocard .l1{display:flex;justify-content:space-between;align-items:center;gap:6px}
.ocard .code{font-weight:800;font-size:15px}
.ocard .name{font-weight:600;margin:4px 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ocard .meta{font-size:12px;color:var(--mute);display:flex;gap:8px;flex-wrap:wrap}
.ocard .acts{display:flex;gap:6px;margin-top:8px}
.ocard .acts .btn{flex:1}
.ocard.new{animation:pulse 1.2s infinite}
.ocard.late{border-left:4px solid var(--bad)}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(231,59,76,.45)}50%{box-shadow:0 0 0 6px rgba(231,59,76,0)}}
.empty{color:var(--mute);text-align:center;padding:30px 10px;font-size:13px}

/* modal / gaveta */
.ov{position:fixed;inset:0;background:rgba(28,25,23,.5);z-index:100;display:flex;align-items:center;justify-content:center;padding:16px}
.modal{background:#fff;border-radius:14px;width:100%;max-width:560px;max-height:calc(100vh - 32px);display:flex;flex-direction:column;box-shadow:0 20px 50px rgba(0,0,0,.3)}
.modal.lg{max-width:900px} .modal.xl{max-width:1280px;height:calc(100vh - 32px)}
.modal .mh{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}
.modal .mh h2{font-size:17px}
.modal .mb{padding:18px;overflow:auto;flex:1}
.modal .mf{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.x{border:0;background:transparent;font-size:22px;line-height:1;color:var(--mute);padding:4px 8px;border-radius:6px}
.x:hover{background:var(--bg)}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(520px,100%);background:#fff;z-index:101;display:flex;flex-direction:column;box-shadow:-10px 0 40px rgba(0,0,0,.2)}
.toasts{position:fixed;bottom:16px;right:16px;z-index:300;display:flex;flex-direction:column;gap:8px}
.toast{background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px;box-shadow:var(--sh);max-width:360px;animation:tin .2s}
.toast.err{background:var(--bad)} .toast.ok{background:var(--ok)}
@keyframes tin{from{transform:translateY(10px);opacity:0}}

/* novo pedido */
.np{display:grid;grid-template-columns:1fr 1fr;height:100%;min-height:0}
.np .left{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;padding:14px}
.np .right{display:flex;flex-direction:column;min-height:0}
.np .right .scroll{overflow:auto;flex:1}
.plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;overflow:auto;padding-top:10px;align-content:start}
.pitem{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff;text-align:left;display:flex;flex-direction:column;gap:4px}
.pitem:hover{border-color:var(--brand)}
.pitem .pn{font-weight:600} .pitem .pp{color:var(--ok);font-weight:700}
.sec{border-left:4px solid var(--line);border-bottom:1px solid var(--line)}
.sec .sh{display:flex;align-items:center;gap:8px;padding:12px 14px;font-weight:700;cursor:pointer}
.sec .sb{padding:0 14px 14px}
.sec.c1{border-left-color:#F0441A}.sec.c2{border-left-color:#F59E0B}.sec.c3{border-left-color:#78716C}.sec.c4{border-left-color:#A855F7}.sec.c5{border-left-color:#3B82F6}.sec.c6{border-left-color:#16A34A}
.cartline{display:flex;gap:8px;align-items:flex-start;padding:8px 0;border-bottom:1px dashed var(--line)}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px}
.qty button{border:0;background:transparent;width:28px;height:28px;font-weight:700;color:var(--brand)}
.qty span{min-width:22px;text-align:center;font-weight:700}
@media(max-width:900px){.np{grid-template-columns:1fr;overflow:auto}.np .left{max-height:none}}

/* notinha (prévia) */
.paper{background:#fff;border:1px solid var(--line);box-shadow:var(--sh);margin:0 auto;padding:10px 8px 24px;color:#000;
  background-image:linear-gradient(#fff,#fff);position:relative}
.paper:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:8px;
  background:linear-gradient(-45deg,transparent 6px,#fff 0),linear-gradient(45deg,transparent 6px,#fff 0);background-size:12px 12px}
.paper .pl{white-space:pre-wrap;word-break:break-word;line-height:1.15}
.paper .lr{display:flex;justify-content:space-between;gap:8px;align-items:flex-end}
.paper .sep{border-top:1px dashed #000;margin:4px 0}
.paper .sep.eq{border-top:2px solid #000}
.paper.esc{font-family:"Courier New",Consolas,monospace}
.stylegrid{width:100%;border-collapse:collapse}
.stylegrid td,.stylegrid th{padding:6px 4px;border-bottom:1px solid var(--line);font-size:12px}
.stylegrid .in{padding:5px 6px;font-size:13px}

/* KPI */
.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px;box-shadow:var(--sh)}
.kpi .k{font-size:12px;color:var(--mute);font-weight:600} .kpi .v{font-size:22px;font-weight:800;margin-top:4px}
.bars{display:flex;align-items:flex-end;gap:4px;height:160px;padding-top:10px}
.bars .b{flex:1;background:var(--brand);border-radius:4px 4px 0 0;min-height:2px;position:relative}
.bars .b:hover{background:var(--brand-d)}
.hbar{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:13px}
.hbar .tr{flex:1;background:var(--bg);border-radius:4px;height:10px;overflow:hidden}
.hbar .fl{height:100%;background:var(--brand);border-radius:4px}

/* login */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 20%,#FDECEE,#F5F5F5 60%);padding:16px}
.login .box{background:#fff;border-radius:16px;padding:28px;width:100%;max-width:380px;box-shadow:0 20px 60px rgba(0,0,0,.4)}
.login img{height:44px;margin-bottom:18px;color:var(--ink)}

@media print{
  body *{visibility:hidden} .printable,.printable *{visibility:visible} .printable{position:absolute;left:0;top:0;width:100%}
}

/* ===== padrão visual das telas (cabeçalho, abas sublinhadas, gaveta lateral) ===== */
.content.white{background:#fff}
.ph{margin-bottom:16px}.ph .row{align-items:flex-start}
.ph h1{font-size:22px;font-weight:700}.ph .phs{color:var(--mute);font-size:13px;margin-top:2px}
.utabs{display:flex;gap:18px;border-bottom:1px solid var(--line);margin:14px 0 18px;overflow-x:auto}
.utabs button,.utabs a{border:0;background:none;padding:8px 0;font-weight:500;color:var(--ink2);border-bottom:2px solid transparent;white-space:nowrap;font-size:14px;cursor:pointer}
.utabs .on{color:var(--ink);border-bottom-color:var(--brand);font-weight:600}
.vnav{display:flex;flex-direction:column;gap:2px;min-width:170px}
.vnav button{border:0;background:none;text-align:left;padding:7px 10px;border-radius:6px;color:var(--ink2);font-weight:500}
.vnav button.on{background:var(--brand-l);color:var(--brand)}
.ov.dside{justify-content:flex-end;padding:0}
.modal.dside{max-width:440px;height:100vh;max-height:100vh;border-radius:0;animation:slin .18s}
.modal.dside.lg{max-width:620px}
.modal.dside .mh{flex-direction:column;align-items:flex-start;position:relative;border-bottom:0;padding-bottom:4px}
.modal.dside .mh .lbl{font-size:11px;color:var(--mute)} .modal.dside .mh .x{position:absolute;right:10px;top:8px}
.modal.dside .mf .btn.primary{background:#16A34A;border-color:#16A34A}
@keyframes slin{from{transform:translateX(40px);opacity:0}}
.fcard{border:1px solid var(--line);border-radius:8px;margin-bottom:14px}
.fcard>.opt,.fcard>.fr{padding:12px 16px}.fcard>.fr+.fr,.fcard>.opt+.fr,.fcard>.fr+.opt{border-top:1px solid var(--line)}
.fcard .opt{border-bottom:1px solid var(--line)}.fcard .opt:last-child{border-bottom:0}
.fsec{font-weight:700;font-size:15px;margin:10px 0 8px}
.info-b{background:#EFF6FF;border:1px solid #BFDBFE;border-radius:8px;padding:10px 14px;font-size:13px;color:#1E3A8A}
.warn-b{background:#FFFBEB;border:1px solid #FCD34D;border-radius:8px;padding:10px 14px;font-size:13px;color:#78350F}
.stat4{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:12px}
.stat4>div{padding:12px 14px;border-right:1px solid var(--line)}.stat4>div:last-child{border-right:0;background:#EEF2F7}
.stat4 .k{font-size:12px;color:var(--mute)}.stat4 .v{font-size:17px;font-weight:700}
@media(max-width:800px){.stat4{grid-template-columns:1fr 1fr}}
.cmdk{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:400;display:flex;justify-content:center;padding-top:12vh}
.cmdk .box{background:#fff;width:min(560px,94vw);border-radius:12px;box-shadow:0 20px 50px rgba(0,0,0,.3);overflow:hidden;align-self:flex-start}
.cmdk input{border:0;border-bottom:1px solid var(--line);width:100%;padding:14px 16px;font-size:15px;outline:none}
.cmdk .it{padding:10px 16px;cursor:pointer;display:flex;justify-content:space-between}.cmdk .it.on,.cmdk .it:hover{background:var(--brand-l)}
.topsearch{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;color:var(--mute);font-size:13px;cursor:pointer;min-width:260px}
.topsearch kbd{margin-left:auto;font-size:11px;border:1px solid var(--line);border-radius:4px;padding:0 5px}
.stars{display:flex;gap:6px;justify-content:center}.stars button{border:0;background:none;font-size:34px;cursor:pointer;color:#D1D5DB}.stars button.on{color:#F59E0B}

/* cards dentro de grades não herdam o espaçamento de pilha */
.grid2>.card,.grid3>.card,.grid4>.card{margin-top:0}
/* ilhas */
.isl-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:stretch}
@media(max-width:1000px){.isl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.isl-grid{grid-template-columns:1fr}}
.isl{border:1px solid var(--line);border-radius:10px;background:#fff;display:flex;flex-direction:column;min-width:0}
.isl .ih{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:9px 9px 0 0;border-bottom:1px solid var(--line)}
.isl .ih b{font-size:15px}.isl .ib{padding:12px;display:flex;flex-direction:column;gap:8px;flex:1}
.isl .dot{width:10px;height:10px;border-radius:50%;flex:none}
.isl .ord{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:#fff}
.isl.off{opacity:.55}

/* ===== v2: correções e novos recursos ===== */
/* mapa nunca passa por cima de modais (Leaflet usa z-index 400–1000) */
#rmap{position:relative;z-index:0;isolation:isolate}
.ov{z-index:2000} .drawer{z-index:2001} .cmdk{z-index:3000} .toasts{z-index:3500}

/* menu lateral recolhível (igual ao Brendi) */
.side .colbtn{width:26px;height:26px;border-radius:50%;border:1px solid #2A2E36;background:#1D2027;color:#C9CDD4;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex:none;padding:0}
.side .colbtn:hover{background:#2A2E36;color:#fff}
.side .colbtn svg{width:14px;height:14px;transition:.2s}
.side .logo .mini{display:none;height:30px}
.app.collapsed .side{width:68px;overflow-x:hidden}
.app.collapsed .side .logo{flex-direction:column;gap:8px;padding:12px 8px 8px}
.app.collapsed .side .logo .full{display:none} .app.collapsed .side .logo .mini{display:block}
.app.collapsed .side .colbtn svg{transform:rotate(180deg)}
.app.collapsed .side .store{display:none}
.app.collapsed .side .it{justify-content:center;padding:10px 0}
.app.collapsed .side .it>span,.app.collapsed .side .it .chev{display:none}
.app.collapsed .side .sub{display:none!important}
.app.collapsed .side .foot{display:none}
.app.collapsed .side .cashmini{display:flex}
.side .cashmini{display:none;justify-content:center;margin:4px 0 6px}
.side .flyout{position:fixed;background:#1D2027;border:1px solid #2A2E36;border-radius:10px;padding:6px;z-index:1500;min-width:200px;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.side .flyout .ttl{font-size:11px;color:#8B919C;padding:4px 10px 6px;font-weight:600;text-transform:uppercase}
.side .flyout .it{justify-content:flex-start!important;padding:8px 10px!important}
@media(max-width:900px){.app.collapsed .side{width:240px}.side .colbtn{display:none}}

/* caixa */
.cashbtn{font-weight:700}
.cashbtn.open{background:var(--ok-l);color:var(--ok);border-color:var(--ok)}
.cashbtn.closed{background:var(--bad-l);color:var(--bad);border-color:var(--bad)}
.cashsum .row{padding:6px 0;border-bottom:1px dashed var(--line)}
.cashsum .row:last-child{border-bottom:0}
.cashbig{font-size:26px;font-weight:800}

/* PDV */
.pdv{display:grid;grid-template-columns:1fr 370px;gap:16px;height:100%;min-height:0}
.pdv .pl{display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto;padding-right:4px}
.pdv .box{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 14px}
.pdv .types{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pdv .types .lbl{font-size:11px;font-weight:700;color:var(--mute);letter-spacing:.04em;margin-right:6px}
.pdv .tbtn{border:1px solid var(--line);background:#fff;border-radius:10px;padding:7px 14px;font-weight:600;color:var(--ink2);display:inline-flex;gap:6px;align-items:center;cursor:pointer}
.pdv .tbtn.on{border-color:var(--brand);color:var(--brand);background:var(--brand-l)}
.pdv .cats{display:flex;gap:8px;flex-wrap:wrap}
.pdv .cats button{border:1px solid var(--line);background:#fff;border-radius:99px;padding:6px 16px;font-weight:600;color:var(--ink2);cursor:pointer}
.pdv .cats button.on{background:var(--brand);border-color:var(--brand);color:#fff}
.pdv .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}
.pdv .pc{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;text-align:left;padding:0;transition:.15s}
.pdv .pc:hover{box-shadow:0 6px 18px rgba(0,0,0,.08);transform:translateY(-1px)}
.pdv .pc[disabled]{opacity:.45;cursor:not-allowed;transform:none}
.pdv .pc .ph{aspect-ratio:4/3;background:#F3F4F6 center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:40px;color:#D1D5DB}
.pdv .pc .pb{padding:10px 12px 12px;display:flex;flex-direction:column;gap:6px;flex:1}
.pdv .pc .pn{font-weight:600;font-size:14px;line-height:1.25}
.pdv .pc .pf{display:flex;justify-content:space-between;align-items:flex-end;margin-top:auto}
.pdv .pc .pp{color:#F59E0B;font-weight:700}
.pdv .pc .ps{font-size:11px;color:var(--mute)}
.pdv .pc .tag{align-self:flex-start;background:#FEF3C7;color:#B45309;font-size:11px;font-weight:600;border-radius:6px;padding:2px 6px}
.pdv .cart{background:#fff;border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;min-height:0;max-height:100%;align-self:start;position:sticky;top:0}
.pdv .cart .ch{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);font-weight:700}
.pdv .cart .cl{padding:10px;overflow:auto;min-height:140px;max-height:calc(100vh - 330px);display:flex;flex-direction:column;gap:8px}
.pdv .cart .ci{background:#F3F4F6;border-radius:10px;padding:8px 10px;display:flex;gap:8px;align-items:center}
.pdv .cart .ci .nm{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pdv .cart .ci .pr{color:#F59E0B;font-weight:700;font-size:12px}
.pdv .cart .ci .op{font-size:11px;color:var(--mute)}
.pdv .cart .ft{border-top:1px solid var(--line);padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.pdv .cart .tot{display:flex;justify-content:space-between;align-items:center}
.pdv .cart .tot b{font-size:24px}
.pdv .qty2{display:inline-flex;align-items:center;background:#9CA3AF;border-radius:8px;overflow:hidden;flex:none}
.pdv .qty2 button{border:0;background:transparent;color:#374151;width:26px;height:26px;font-size:16px;cursor:pointer}
.pdv .qty2 span{background:#E5E7EB;min-width:28px;text-align:center;font-weight:700;line-height:26px}
.pdv .closedov{position:absolute;inset:0;background:rgba(255,255,255,.85);display:flex;align-items:center;justify-content:center;z-index:5;border-radius:14px}
@media(max-width:1000px){.pdv{grid-template-columns:1fr}.pdv .cart{position:static}}

/* som */
.sndlist .row{border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.sndlist .row.on{border-color:var(--brand);background:var(--brand-l)}
.np .right{text-align:left} .np .right .cartline .grow{min-width:0}

/* v1.2 — modelos de notinha, seletor de loja, mesas */
.nmodels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.nmodel{border:2px solid var(--line);border-radius:12px;padding:6px;cursor:pointer;background:var(--bg);text-align:center}
.nmodel.on{border-color:var(--brand,#E73B4C);background:#fff5f6}
.nmodel b{font-size:12px;display:block;margin-top:6px}
.nthumb{height:170px;overflow:hidden;background:#fff;border-radius:8px;position:relative}
.nthumb .paper{transform:scale(.55);transform-origin:top left;margin:0;box-shadow:none}
@media(max-width:900px){.nmodels{grid-template-columns:repeat(2,minmax(0,1fr))}}
.lojasel select{flex:1;min-width:0;font-weight:700}
.lojamais{width:38px;padding:0;font-size:20px;line-height:1}
.app.collapsed .lojasel{display:none}
/* v1.2 — nova loja */
.lojatipos{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.lojatipo{border:1.5px solid var(--line);border-radius:12px;padding:14px;display:flex;gap:12px;cursor:pointer;align-items:flex-start}
.lojatipo.on{border-color:var(--brand);background:#fff5f6}.lojatipo .ic{font-size:22px;width:38px;height:38px;border-radius:10px;background:var(--bg);display:grid;place-items:center;flex:none}
@media(max-width:700px){.lojatipos{grid-template-columns:1fr}}
.licbar{position:fixed;top:0;left:0;right:0;z-index:90;background:var(--bad,#dc2626);color:#fff;padding:8px 14px;font-weight:600;text-align:center}.licbar a{color:#fff}
/* mesas (igual ao vídeo) */
.mesas{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--tam,86px),1fr));gap:8px}
.mesa{aspect-ratio:1;border-radius:6px;background:#5f5f63;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;position:relative;user-select:none;transition:transform .08s}
.mesa:hover{transform:scale(1.04)}.mesa small{font-size:10px;opacity:.85;position:absolute;top:6px;letter-spacing:.06em}
.mesa .n{font-size:calc(var(--tam,86px) * .27);font-weight:800}.mesa.oc{background:#16a34a}.mesa.tr{background:#b45309}
.mesa .v{font-size:11px;font-weight:700;position:absolute;bottom:6px}.mesa.chama{animation:gpisca 1s infinite}@keyframes gpisca{50%{background:#E73B4C}}
.cmodal .mb{padding:12px}
.cmd{display:grid;grid-template-columns:270px 1fr;gap:12px;height:100%;min-height:0}
.cesq{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--bg);overflow:auto}
.cesq .lk{display:flex;gap:8px;align-items:center;padding:8px;border-radius:8px;cursor:pointer;font-weight:600;color:var(--ink)}.cesq .lk:hover{background:#e9e9ea}
.citens{border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;min-height:0}
.clista{flex:1;overflow:auto}.cit{display:flex;gap:8px;align-items:center;padding:9px 12px;border-bottom:1px solid #f0f0f0}
.popm{position:fixed;z-index:2600;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.18);padding:6px;min-width:280px}
.popm a{display:block;padding:10px 12px;border-radius:7px;cursor:pointer;text-align:center;color:var(--ink);text-decoration:none}.popm a:hover{background:var(--bg)}.popm hr{border:0;border-top:1px solid var(--line)}
.kgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;overflow:auto;max-height:calc(100vh - 260px);padding:2px}
.kp{border:1px solid var(--line);border-radius:10px;overflow:hidden;cursor:pointer;background:#fff;display:flex;flex-direction:column}.kp:hover{border-color:var(--brand)}.kp.off{opacity:.45;cursor:not-allowed}
.kp .ki{height:80px;background:#4e8f8a center/cover}.kp .kn{padding:6px 8px;font-weight:700;font-size:12px;text-align:center;flex:1}.kp .kv{padding:0 8px 8px;text-align:center;font-size:12px;color:var(--ink2)}
@media(max-width:800px){.cmd{grid-template-columns:1fr}}
.side .store .lojasel select{background:#1D2027;color:#fff;border:1px solid #2A2E36;border-radius:8px;padding:8px 10px;font-size:13px;height:38px}
.side .store .btn.lojamais{background:var(--brand,#E73B4C)!important;color:#fff!important;border:0!important;width:38px;height:38px;font-size:22px;font-weight:700;border-radius:8px}
.side .store .btn.lojamais:hover{filter:brightness(1.1)}
/* PDV — destino mesa/comanda (v1.3) */
.pdv .cart .pdest{padding:10px 12px;border-bottom:1px solid var(--line);background:#F9FAFB}
.pdv .cart .dchip{margin-top:8px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:8px 10px;border-radius:10px;background:#ECFDF5;border:1px solid #A7F3D0}
.pdv .cart .dchip.ab{background:#EFF6FF;border-color:#BFDBFE}
.pdv .cart .dchip b{font-size:15px}.pdv .cart .dchip span{font-size:12px;color:var(--mute);flex:1}
.pdv .cart .dchip a{font-size:12px;font-weight:700;color:var(--brand)}
/* WhatsApp do GERO (v1.3) */
.wa-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:16px;align-items:start}
@media(max-width:1000px){.wa-grid{grid-template-columns:1fr}}
.wa-dot{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:22px;background:var(--bad-l);color:var(--bad);flex:none}
.wa-dot.on{background:var(--ok-l);color:var(--ok)}
.wa-qr{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.wa-qr img{width:240px;height:240px;border-radius:12px;border:1px solid var(--line);background:#fff;padding:6px}
.wa-qr ol{margin:0;padding-left:18px;line-height:1.9;flex:1;min-width:200px}
.wa-chat{display:grid;grid-template-columns:230px 1fr;height:calc(100vh - 190px);min-height:440px;overflow:hidden;padding:0}
@media(max-width:700px){.wa-chat{grid-template-columns:1fr;height:auto}}
.wa-cl{border-right:1px solid var(--line);overflow:auto}
.wa-cl button{display:grid;grid-template-columns:1fr auto;gap:2px 6px;width:100%;text-align:left;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:none;color:inherit}
.wa-cl button span{grid-column:1/-1;font-size:12px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wa-cl button small{color:var(--mute);grid-row:1;grid-column:2}.wa-cl button.on{background:var(--brand-l)}
.wa-th{display:flex;flex-direction:column;min-height:0}
.wa-hd{display:flex;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}
.wa-ms{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:6px;background:var(--bg)}
.wa-m{max-width:78%;padding:8px 10px;border-radius:10px;background:var(--card);box-shadow:var(--sh);align-self:flex-start}
.wa-m.out{align-self:flex-end;background:#DCF8C6;color:#111}.wa-m small{display:block;font-size:10.5px;color:var(--mute);margin-top:3px}

/* ===================== TEMA ESCURO DO PAINEL (v1.3) =====================
   Ativado por <html data-tema="escuro"> — botão ☀️/🌙 no topo do menu lateral (salvo neste navegador). */
html[data-tema=escuro]{color-scheme:dark;--ink:#E7E9EE;--ink2:#C3C8D2;--mute:#8B93A3;--line:#2A2F3A;--bg:#0E1014;--card:#171A21;
  --brand-l:#3a1519;--ok-l:#0f2e1c;--warn-l:#33240a;--info-l:#0f1f3d;--bad-l:#3a1212;--violet-l:#251a3d;--sh:0 1px 2px rgba(0,0,0,.4)}
html[data-tema=escuro] body{background:var(--bg);color:var(--ink)}
html[data-tema=escuro] :is(.btn:not(.primary):not(.ok):not(.bad),.seg button.on,.in,select.in,textarea.in,.top,.tbl,.ocard,.modal,.drawer,.pitem,.kpi,.login .box,.cmdk .box,.isl,.isl .ord,.pdv .box,.pdv .tbtn,.pdv .cats button,.pdv .pc,.pdv .cart,.nmodel.on,.nthumb,.lojatipo.on,.popm,.kp,.fcard,.stat4>div,.mesa:not(.oc),.wa-cl button.on){background:var(--card);color:var(--ink)}
html[data-tema=escuro] :is(.chip,.pdv .cart .ci,.pdv .pc .ph,.pdv .cart .pdest,.tbl tr.click:hover td,.seg,.vnav button.on,.utabs){background:#222733;color:var(--ink)}
html[data-tema=escuro] .content{background:var(--bg)!important}
html[data-tema=escuro] .login{background:radial-gradient(circle at 30% 20%,#2a1216,#0E1014 60%)}
html[data-tema=escuro] .wa-m.out{background:#1f3d2a;color:var(--ink)}
/* 1.4: só a marca do GERO (arquivo do sistema) clareia no tema escuro — logo da loja NUNCA recebe filtro */
html[data-tema=escuro] img[src="/static/img/logo.svg"]:not(.side img){filter:brightness(0) invert(1)}
img.logo-cliente,.lgbox img{filter:none!important;mix-blend-mode:normal!important;opacity:1!important}
html[data-tema=escuro] .ov{background:rgba(0,0,0,.65)}
html[data-tema=escuro] .pdv .cart .dchip{background:#0f2e1c;border-color:#14532d}html[data-tema=escuro] .pdv .cart .dchip.ab{background:#0f1f3d;border-color:#1e3a8a}
.temabtn{border:0;background:rgba(255,255,255,.08);color:#fff;border-radius:8px;width:32px;height:32px;font-size:15px;cursor:pointer}
.side .temabtn{margin-left:auto;margin-right:6px}.app.collapsed .side .temabtn{margin:0}

/* ===== 1.4 — cartão novo do kanban ===== */
.oc2{padding:12px 14px;border-radius:12px}
.oc-l1{display:flex;align-items:center;gap:6px}
.oc-code{color:var(--brand,#E73B4C);font-weight:800;font-size:20px;letter-spacing:.2px;white-space:nowrap}
.oc-tm{color:#E28A17;font-weight:700;font-size:11px;font-variant-numeric:tabular-nums;align-self:flex-start;margin-top:2px}
.oc-tipo{font-size:20px;line-height:1;margin-right:2px}
.oc-ic{border:0;background:none;padding:3px;flex:none;cursor:pointer;border-radius:8px;display:flex}
.oc-ic svg,.oc-mais svg,.oc-cob svg{width:22px;height:22px;fill:none;stroke:var(--ink2,#4B5563);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.oc-ic:hover{background:var(--bg)}
.oc-ago{color:#E28A17;font-size:13px;margin-top:1px}
.oc-l3{display:flex;align-items:baseline;gap:8px;margin-top:10px}.oc-l3 b{font-size:16px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.oc-novo{color:#2563EB;font-size:12px;white-space:nowrap}
.oc-l4{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink2);margin-top:6px}.oc-l4>span{flex:1;min-width:0}
.oc-mais{border:0;background:none;color:var(--brand,#E73B4C);font:600 14px inherit;font-family:inherit;display:flex;align-items:center;gap:4px;cursor:pointer;padding:0;white-space:nowrap}
.oc-mais svg{stroke:var(--brand,#E73B4C);width:18px;height:18px;transition:.2s}.oc-mais.on svg{transform:rotate(180deg)}
.oc-itens{font-size:13px;margin-top:8px;padding:8px 10px;background:var(--bg);border-radius:8px;display:flex;flex-direction:column;gap:4px}.oc-itens.hide{display:none}
.oc-obs{color:var(--bad);font-weight:600;font-size:12px}
.oc-l5{display:flex;align-items:flex-end;gap:8px;margin-top:8px;flex-wrap:wrap}.oc-l5>.grow{flex:1 0 110px}.oc-acts{display:flex;gap:8px;flex:1 1 210px;justify-content:flex-end}
.oc-tot{font-weight:800;font-size:16px}.oc-pg{font-size:13px;color:var(--ink2)}
.oc-cob{white-space:nowrap;display:inline-flex;align-items:center;gap:4px;margin-top:6px;background:#FDE8EA;color:#C81E3A;font-weight:700;font-size:12px;border-radius:999px;padding:3px 9px}
.oc-cob svg{width:15px;height:15px;stroke:#C81E3A}.oc-cob.ok{background:#E7F7EC;color:#15803D}
.oc-btn{border-radius:8px;font:700 15px inherit;font-family:inherit;padding:11px 6px;flex:1 1 0;max-width:120px;min-width:0;cursor:pointer;white-space:nowrap}
.oc-btn.rec{background:#fff;border:1.5px solid #E5484D;color:#E5484D}.oc-btn.rec:hover{background:#FFF1F2}
.oc-btn.av{background:#15803D;border:1.5px solid #15803D;color:#fff}.oc-btn.av:hover{filter:brightness(1.08)}
html[data-tema=escuro] .oc-btn.rec{background:transparent}html[data-tema=escuro] .oc-cob{background:#3a1218;color:#fda4af}html[data-tema=escuro] .oc-cob.ok{background:#12301d;color:#86efac}
/* ===== 1.4 — roteirização: barra de seleção no mapa ===== */
.rsel{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:600;display:flex;align-items:center;gap:14px;background:#2B2B2B;color:#fff;border-radius:8px;padding:8px 8px 8px 16px;box-shadow:0 6px 24px rgba(0,0,0,.35);font-size:14px;white-space:nowrap}
.rsel a{color:#ddd;font-size:12px}.rsel button{border:0;background:none;color:#fff;font:600 14px inherit;font-family:inherit;cursor:pointer;padding:6px 8px;border-radius:6px}
.rsel .rsel-go{color:#7EE2A0}.rsel button:hover{background:rgba(255,255,255,.1)}
.selo-int{flex:none;width:86px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font:800 13px Montserrat,sans-serif;text-align:center;line-height:1.05;padding:4px;background:#fff;border:1px solid var(--line);overflow:hidden}
.selo-int img{max-width:100%;max-height:100%;object-fit:contain;filter:none!important}
/* ===== roteirização: aba Sugestões, pinos e tela de operação (QR Code) ===== */
.rsug{position:absolute;top:56px;left:10px;bottom:10px;width:230px;z-index:550;background:#fff;border-radius:10px;box-shadow:0 4px 18px rgba(0,0,0,.25);display:flex;flex-direction:column;transition:transform .3s ease,opacity .3s;font-family:Montserrat,sans-serif}
.rsug.fechado{transform:translateX(-260px);opacity:0;pointer-events:none}
.rsug-h{display:flex;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}.rsug-h b{flex:1;font-size:15px}.rsug-h button{border:0;background:none;font-size:22px;cursor:pointer;line-height:1;color:var(--ink2)}
.rsug-cfg{font-size:12px;color:var(--ink2);padding:6px 12px;border-bottom:1px solid var(--line)}.rsug-cfg select{font:inherit;border:1px solid var(--line);border-radius:6px;padding:1px 2px}
.rsug-l{overflow:auto;flex:1;padding:6px}
.rsug-l button{display:block;width:100%;text-align:left;border:1px solid transparent;background:none;border-radius:8px;padding:7px 8px;cursor:pointer;font:500 13px Montserrat,sans-serif;color:var(--ink)}
.rsug-l button:hover,.rsug-l button.on{background:#FDECEE;border-color:#e63946}
.rsug-l span{display:inline-block;color:#fff;font-weight:700;font-size:12px;border-radius:5px;padding:2px 7px;margin-right:6px}.rsug-l small{display:block;color:var(--mute);font-size:11px;margin-top:2px}
.rsug-abre{position:absolute;top:56px;left:10px;z-index:540;border:0;background:#e63946;color:#fff;font:700 13px Montserrat,sans-serif;border-radius:8px;padding:8px 12px;box-shadow:0 2px 8px rgba(0,0,0,.25);cursor:pointer}
html[data-tema=escuro] .rsug{background:var(--card)}
body.operacao .side,body.operacao .burger,body.operacao #bDaily,body.operacao #bNew,body.operacao #bDemand,body.operacao #bPause,body.operacao #bEye,body.operacao [data-v="kanban"],body.operacao .cashbtn{display:none!important}
@media(max-width:900px){body.operacao .rgrid{grid-template-rows:62vh 1fr!important}.rsug{width:200px}}
.pitem .pimg{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;margin-bottom:6px;background:#eee}
