/* Layout: barra superior com marca, abas e estado da conexão; coluna de trabalho larga; editores em duas colunas. */
:root{
  --bg:#FAF6F5; --surface:#FFFFFF; --sunk:#F4ECEA; --ink:#2A1416; --muted:#7A6567; --line:#EADCD9;
  --wine:#520F13; --wine-soft:#F4E5E4; --btn:#520F13; --btn-ink:#FBF1EF;
  --ok:#2E7550; --ok-soft:#E3F1E8; --warn:#A3561A; --warn-soft:#F8EADC; --bad:#A12A2F; --bad-soft:#F7E1E2;
  --info:#2F5D8A; --info-soft:#E2ECF6;
  --paper:#FFFFFF; --paper-ink:#1B1213; --paper-line:#D9CFCD;
  --f-display:"Playfair Display", Georgia, "Times New Roman", serif;
  --f-body:"Montserrat", "Helvetica Neue", Arial, sans-serif;
  --r:10px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#170E10; --surface:#21161A; --sunk:#2A1C20; --ink:#F2E8E6; --muted:#B19FA1; --line:#3A2A2E;
  --wine:#E7A9AD; --wine-soft:#3A2024; --btn:#C9767D; --btn-ink:#170E10;
  --ok:#7CC79C; --ok-soft:#1F3328; --warn:#E3A66E; --warn-soft:#3A2A1C; --bad:#F08A8F; --bad-soft:#3A1E21;
  --info:#8DB8E3; --info-soft:#1C2A38; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#170E10; --surface:#21161A; --sunk:#2A1C20; --ink:#F2E8E6; --muted:#B19FA1; --line:#3A2A2E;
  --wine:#E7A9AD; --wine-soft:#3A2024; --btn:#C9767D; --btn-ink:#170E10;
  --ok:#7CC79C; --ok-soft:#1F3328; --warn:#E3A66E; --warn-soft:#3A2A1C; --bad:#F08A8F; --bad-soft:#3A1E21;
  --info:#8DB8E3; --info-soft:#1C2A38; color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:14px;line-height:1.5}
.num,td.n{font-variant-numeric:tabular-nums}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--wine);outline-offset:2px}
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--surface);border-bottom:1px solid var(--line)}
.top-in{max-width:1240px;margin:0 auto;padding-inline:20px;display:flex;align-items:center;gap:20px;min-height:62px;flex-wrap:wrap}
.brand{display:flex;align-items:baseline;gap:10px}
.brand b{font-family:var(--f-display);font-weight:500;font-size:24px;letter-spacing:6px;color:var(--wine)}
.brand span{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}
nav.tabs{display:flex;gap:4px;flex:1;flex-wrap:wrap}
nav.tabs button{background:none;border:0;padding:8px 14px;border-radius:999px;cursor:pointer;color:var(--muted);font-weight:500}
nav.tabs button[aria-current="page"]{background:var(--wine-soft);color:var(--wine)}
.conn{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.conn i{width:8px;height:8px;border-radius:50%;background:var(--muted);display:inline-block}
.conn.ok i{background:var(--ok)}.conn.bad i{background:var(--bad)}.conn.busy i{background:var(--warn)}
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);padding:8px 14px;border-radius:8px;cursor:pointer;font-weight:500;white-space:nowrap}
.btn:hover{border-color:var(--wine)}
.btn.primary{background:var(--btn);color:var(--btn-ink);border-color:var(--btn)}
.btn.small{padding:5px 10px;font-size:12.5px}
.btn.ghost{background:none;border-color:transparent;color:var(--muted)}
.btn.danger{color:var(--bad)}
.btn:disabled{opacity:.5;cursor:not-allowed}
main{max-width:1240px;margin:0 auto;padding-inline:20px;padding-block:24px 64px;display:flex;flex-direction:column;gap:20px}
h1{font-family:var(--f-display);font-weight:500;font-size:30px;margin:0;text-wrap:balance}
h2{font-family:var(--f-display);font-weight:500;font-size:20px;margin:0}
h3{font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-weight:600}
.eyebrow{font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted);font-weight:600}
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.note{font-size:12.5px;color:var(--muted);background:var(--sunk);border-radius:8px;padding:8px 12px;max-width:560px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.stat{background:var(--surface);padding:14px 18px;display:flex;flex-direction:column;gap:2px}
.stat strong{font-size:20px;font-weight:600}
@media (max-width:720px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);min-width:0}
.panel-h{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.panel-b{padding:18px}
.tablewrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;min-width:820px}
th{text-align:left;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);font-weight:600;padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:0}
td.n,th.n{text-align:right;white-space:nowrap}
tr.click{cursor:pointer}tr.click:hover td{background:var(--sunk)}
tr.sel td{background:var(--wine-soft)}
.prod{display:flex;align-items:center;gap:12px;min-width:220px}
.th{width:44px;height:55px;border-radius:6px;object-fit:cover;flex:none;background:var(--sunk);display:inline-flex;align-items:center;justify-content:center;font-family:var(--f-display);color:var(--wine);font-size:15px;border:1px solid var(--line)}
.th.sm{width:32px;height:40px;font-size:12px}
.stack{display:flex}.stack .th{margin-right:-10px;box-shadow:0 0 0 2px var(--surface)}
.pname{font-weight:600}
.sub{font-size:12px;color:var(--muted)}
.chip{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;padding:2px 8px;border-radius:999px;background:var(--sunk);margin:2px 4px 2px 0;white-space:nowrap}
.chip i{font-style:normal;font-weight:700;color:var(--wine)}
.chip.zero{opacity:.55}
.cat{font-size:10.5px;letter-spacing:1px;font-weight:600;color:var(--wine);background:var(--wine-soft);padding:2px 7px;border-radius:4px;text-transform:uppercase}
.pix{color:var(--wine);font-weight:600}
.pill{display:inline-block;font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px;white-space:nowrap}
.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}
.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.info{background:var(--info-soft);color:var(--info)}
.pill.wine{background:var(--wine-soft);color:var(--wine)}.pill.mute{background:var(--sunk);color:var(--muted)}
.search{width:min(320px,100%);padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.filters{display:flex;gap:6px;flex-wrap:wrap}
.filters button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 12px;font-size:12.5px;cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--btn);color:var(--btn-ink);border-color:var(--btn)}
.filters b{font-weight:700;margin-left:4px}
.grid2{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:900px){.grid2{grid-template-columns:minmax(0,1fr)}}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.fields .full{grid-column:1/-1}
@media (max-width:520px){.fields{grid-template-columns:minmax(0,1fr)}}
label.f{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:var(--muted)}
label.f input,label.f select,label.f textarea{padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font-weight:500;font-size:14px;color:var(--ink);min-width:0}
label.f input[readonly]{background:var(--sunk)}
.hint{font-weight:400;font-size:11.5px}
.photos{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.photos .ph{width:84px;height:105px;border-radius:8px;border:1px solid var(--line);background:var(--sunk);overflow:hidden;position:relative}
.photos .ph img{width:100%;height:100%;object-fit:cover}
.photos .ph button{position:absolute;top:4px;right:4px;border:0;border-radius:50%;width:22px;height:22px;background:var(--surface);color:var(--bad);cursor:pointer;font-size:12px}
.calc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.calc div{background:var(--sunk);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column}
.calc span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-weight:600}
.calc b{font-size:17px}
.calc .big{grid-column:1/-1;background:var(--wine-soft)}
.calc .big b{font-family:var(--f-display);font-size:24px;color:var(--wine);font-weight:500}
.pick{display:flex;flex-wrap:wrap;gap:6px}
.pick button{border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:4px 11px;font-size:12px;cursor:pointer}
.pick button[aria-pressed="true"]{background:var(--btn);color:var(--btn-ink);border-color:var(--btn)}
.pick button:disabled{opacity:.5;cursor:not-allowed}
.varrows{margin-top:16px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.varrow{display:grid;grid-template-columns:minmax(0,1fr) 110px 92px 36px;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line)}
.varrow:last-child{border-bottom:0}
.varrow.headrow{background:var(--sunk);font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:600}
.varrow input{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);text-align:right}
.icon{background:none;border:0;cursor:pointer;color:var(--bad);font-size:16px;padding:4px;border-radius:6px}
.icon:disabled{color:var(--muted);opacity:.4;cursor:not-allowed}
.empty{padding:22px;text-align:center;color:var(--muted)}
.actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;align-items:center}
.err{color:var(--bad);font-size:12.5px;font-weight:600}
.banner{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;border-radius:var(--r);padding:14px 18px;background:var(--ok-soft)}
.banner.warn{background:var(--warn-soft)}.banner.bad{background:var(--bad-soft)}.banner.info{background:var(--info-soft)}
.adj{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.adj input{width:70px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);text-align:right}
.adj select{padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg)}
.mv-in{color:var(--ok);font-weight:600}.mv-out{color:var(--bad);font-weight:600}
.ogrid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:980px){.ogrid{grid-template-columns:minmax(0,1fr)}}
.sticky{position:sticky;top:calc(80px + env(safe-area-inset-top,0px))}
.items{display:flex;flex-direction:column}
.item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.item:last-child{border-bottom:0}
.tot{display:flex;flex-direction:column;gap:4px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.tot div{display:flex;justify-content:space-between;gap:10px}
.tot .grand{font-size:18px;font-weight:700;padding-top:6px}
.track{display:flex;margin:4px 0 2px;overflow-x:auto}
.track span{flex:1;min-width:84px;text-align:center;font-size:10.5px;font-weight:600;color:var(--muted);padding-top:14px;position:relative}
.track span::before{content:"";position:absolute;top:3px;left:50%;width:10px;height:10px;border-radius:50%;background:var(--line);transform:translateX(-50%)}
.track span::after{content:"";position:absolute;top:7px;left:calc(50% + 7px);right:calc(-50% + 7px);height:2px;background:var(--line)}
.track span:last-child::after{display:none}
.track span.done{color:var(--ink)}.track span.done::before,.track span.done::after{background:var(--ok)}
.track span.cur::before{background:var(--btn);box-shadow:0 0 0 3px var(--wine-soft)}
.kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;font-size:13px;margin:0}
.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:500}
.hist{font-size:12.5px;color:var(--muted);display:flex;flex-direction:column;gap:3px}
.pdv{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:980px){.pdv{grid-template-columns:minmax(0,1fr)}}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.pc{border:1px solid var(--line);border-radius:8px;background:var(--surface);overflow:hidden;display:flex;flex-direction:column}
.pc .img{aspect-ratio:4/5;width:100%;background:var(--sunk);display:flex;align-items:center;justify-content:center;font-family:var(--f-display);color:var(--wine);font-size:26px}
.pc .img img{width:100%;height:100%;object-fit:cover;display:block}
.pc .b{padding:8px 10px;display:flex;flex-direction:column;gap:6px}
.pc .nm{font-size:12.5px;font-weight:600;line-height:1.25}
.vbtns{display:flex;flex-wrap:wrap;gap:4px}
.vbtns button{font-size:11px;border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:3px 7px;cursor:pointer}
.vbtns button:hover{border-color:var(--wine)}
.vbtns button:disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.cart .item{grid-template-columns:auto minmax(0,1fr) auto auto}
.qty{display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.qty button{background:var(--bg);border:0;width:26px;height:26px;cursor:pointer}
.qty span{min-width:24px;text-align:center;font-weight:600}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:6px 10px;font-size:12.5px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--btn);color:var(--btn-ink);border-color:var(--btn)}
.lgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:20px;align-items:start}
@media (max-width:900px){.lgrid{grid-template-columns:minmax(0,1fr)}}
.lsel{max-height:620px;overflow:auto}
.lprod{padding:10px 18px;border-bottom:1px solid var(--line);display:flex;gap:12px}
.lprod > div{flex:1;min-width:0}
.lvar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:3px 0;font-size:13px}
.lvar input{width:58px;padding:4px 6px;border:1px solid var(--line);border-radius:6px;background:var(--bg);text-align:right}
.opts{display:flex;gap:14px;flex-wrap:wrap;align-items:center;font-size:13px}
.opts label{display:flex;gap:6px;align-items:center;cursor:pointer}
.sheet{background:var(--sunk);border-radius:8px;padding:16px;display:flex;flex-wrap:wrap;gap:3mm;min-height:200px;align-content:flex-start;overflow:auto}
.lab{background:var(--paper);color:var(--paper-ink);border:1px dashed var(--paper-line);border-radius:2px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center;overflow:hidden}
.lab.s40{width:40mm;height:25mm;padding:1.4mm 1.6mm}.lab.s50{width:50mm;height:30mm;padding:1.8mm 2mm}
.lab .lg{font-family:var(--f-display);letter-spacing:2.4px;font-size:7.5pt;color:#520F13;line-height:1}
.lab .ln{font-size:5.6pt;font-weight:600;line-height:1.15;max-height:2.3em;overflow:hidden;text-transform:uppercase}
.lab .lv{font-size:5.2pt;color:#5a4a4b;line-height:1.1}
.lab .lp{font-size:9.5pt;font-weight:700;line-height:1}
.lab .lx{font-size:5.4pt;font-weight:600;color:#520F13;line-height:1}
.lab svg{width:90%;height:5.2mm;display:block}
.lab .lc{font-size:4.6pt;letter-spacing:.6px;line-height:1}
.lab.s50 .lg{font-size:9pt}.lab.s50 .ln{font-size:6.6pt}.lab.s50 .lv{font-size:6pt}.lab.s50 .lp{font-size:12pt}.lab.s50 .lx{font-size:6.4pt}.lab.s50 svg{height:6.5mm}.lab.s50 .lc{font-size:5.2pt}
.progress{height:6px;background:var(--sunk);border-radius:999px;overflow:hidden}
.progress i{display:block;height:100%;background:var(--btn);transition:width .2s}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:999px;font-weight:500;font-size:13px;z-index:20;max-width:calc(100% - 32px);text-align:center}
@media (prefers-reduced-motion:no-preference){.toast{animation:up .25s ease-out}@keyframes up{from{transform:translate(-50%,8px);opacity:0}}}

/* login e configurações */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding-inline:16px;padding-block:32px}
.login-card{width:min(400px,100%);background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:32px 28px;display:flex;flex-direction:column;gap:16px}
.login-card .brand{justify-content:center;flex-direction:column;align-items:center;gap:4px}
.login-card .brand b{font-size:34px}
.cfg{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.upl{display:inline-flex}
.upl input{display:none}
@media (max-width:640px){.top-in{gap:10px;padding-block:8px}.brand b{font-size:20px}#btnNovo,#btnVenda{padding:6px 10px;font-size:12.5px}nav.tabs{order:3;width:100%;overflow-x:auto;flex-wrap:nowrap}h1{font-size:24px}}
