/* Boa Fruta · Fábrica — RAL 2000 (laranja) e RAL 9010 (branco) */
:root{
  color-scheme:light;
  --bg:#F1ECE1;--surface:#FFFFFF;--surface2:#E8E1D2;--ink:#231A10;--muted:#6B5F50;--line:#D9D0BF;
  --leaf:#ED760E;--leaf-ink:#1F1408;--leaf-t:#A44D00;--gold:#C98A12;--gold-soft:#F6E6C4;
  --ok:#2F7D4F;--warn:#9A6414;--warn-soft:#F7EACB;--bad:#B8412C;--bad-soft:#F6DCD5;
  --s1:#E6A92E;--s2:#8A6532;--s3:#4F97AD;--s4:#B8412C;
  --display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --body:"Barlow",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html,body{margin:0}
[hidden]{display:none!important}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.45;padding-bottom:env(safe-area-inset-bottom,0px)}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.num{font-variant-numeric:tabular-nums}
.mono{font-family:var(--mono);font-size:.92em;letter-spacing:.01em}

.top{position:sticky;top:0;z-index:5;background:var(--leaf);color:var(--leaf-ink);
  padding:calc(10px + env(safe-area-inset-top,0px)) 16px 10px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.brand{font-family:var(--display);font-weight:700;font-size:1.35rem;letter-spacing:.02em;text-transform:uppercase;display:flex;gap:10px;align-items:baseline}
.brand small{font-family:var(--body);font-weight:500;font-size:.85rem;text-transform:none;letter-spacing:0;opacity:.8}
.top .sp{flex:1}
.who{font-weight:600}
.topbtn{background:transparent;border:1.5px solid currentColor;border-radius:6px;padding:6px 12px;min-height:40px;font-weight:600}
.proto{background:var(--gold-soft);color:var(--ink);font-size:.85rem;padding:8px 16px;border-bottom:1px solid var(--line)}

main{padding:20px 16px 48px;max-width:1180px;margin:0 auto}
h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:.01em;margin:0;text-wrap:balance}
h1{font-size:2rem}
h2{font-size:1.35rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600}
.lbl{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}

/* entrada */
.login{max-width:720px;margin:24px auto;display:flex;flex-direction:column;gap:18px}
.login .logo{font-family:var(--display);font-weight:700;font-size:2.6rem;text-transform:uppercase;line-height:1}
.login .logo span{color:var(--leaf-t)}
.users{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.user{background:var(--surface);border:2px solid var(--line);border-radius:12px;padding:20px 14px;font-family:var(--display);font-size:1.5rem;font-weight:600;text-align:left}
.user small{display:block;font-family:var(--body);font-size:.8rem;color:var(--muted);font-weight:500}
.user:hover{border-color:var(--leaf)}
.pinbox{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:16px;max-width:380px;width:100%;margin:0 auto}
.dots{display:flex;gap:12px;justify-content:center;min-height:22px}
.dots i{width:18px;height:18px;border-radius:50%;border:2px solid var(--ink)}
.dots i.on{background:var(--ink)}
.pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pad button{min-height:64px;border-radius:10px;border:1.5px solid var(--line);background:var(--bg);font-family:var(--display);font-size:1.8rem;font-weight:600}
.pad button:active{background:var(--surface2)}

.home{display:grid;grid-template-columns:1.25fr 1fr;gap:28px;align-items:start}
@media (max-width:900px){.home{grid-template-columns:1fr}}
.col{display:flex;flex-direction:column;gap:14px}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:520px){.tiles{grid-template-columns:1fr}}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px;text-align:left;
  display:flex;flex-direction:column;gap:6px;min-height:150px;transition:border-color .15s,transform .15s}
.tile:hover{border-color:var(--leaf);transform:translateY(-1px)}
.tile b{font-family:var(--display);font-size:1.6rem;font-weight:700;line-height:1.1}
.tile span{color:var(--muted);font-size:.95rem}
.tile .flow{margin-top:auto;font-style:normal;font-family:var(--mono);font-size:.78rem;color:var(--leaf-t);background:var(--surface2);padding:4px 8px;border-radius:4px;align-self:flex-start}
.scanrow{display:flex;gap:10px;flex-wrap:wrap}

.list{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.grp{padding:10px 14px 4px;font-size:.8rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em;background:var(--surface2)}
.row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--line);width:100%;background:none;border-left:0;border-right:0;border-bottom:0;text-align:left;flex-wrap:wrap}
button.row:hover{background:var(--surface2)}
.row .grow{flex:1;min-width:120px}
.row .q{font-weight:600}
.row.void{opacity:.55;text-decoration:line-through}
.empty{padding:14px;color:var(--muted)}
.org{font-size:.72rem;font-weight:600;padding:2px 7px;border-radius:99px;border:1px solid var(--line);color:var(--muted)}
.org-DOP{border-color:var(--gold);color:var(--warn)}
.org-BIO{border-color:var(--ok);color:var(--ok)}
.pill{font-size:.75rem;font-weight:600;padding:3px 9px;border-radius:99px;background:var(--surface2);color:var(--muted);white-space:nowrap}
.pill.wait{background:var(--warn-soft);color:var(--warn)}
.pill.bad{background:var(--bad-soft);color:var(--bad)}

.form{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.back{background:none;border:0;color:var(--muted);padding:6px 0;align-self:flex-start;font-weight:500}
.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:16px}
.step{display:flex;gap:12px;align-items:baseline}
.step i{font-style:normal;font-family:var(--display);font-weight:700;font-size:1.1rem;background:var(--leaf);color:var(--leaf-ink);border-radius:50%;width:28px;height:28px;display:inline-grid;place-items:center;flex:none}
.step h3{font-size:1.3rem}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label{font-weight:600;font-size:.95rem}
.field small{color:var(--muted);font-size:.82rem}
.inp{display:flex;align-items:stretch;border:2px solid var(--line);border-radius:8px;background:var(--bg);overflow:hidden}
.inp:focus-within{border-color:var(--leaf)}
.inp input{border:0;background:transparent;padding:12px;min-width:0;flex:1;font-size:1.5rem;font-family:var(--display);font-weight:600;font-variant-numeric:tabular-nums}
.inp input:focus{outline:none}
.inp em{font-style:normal;padding:0 12px;display:grid;place-items:center;color:var(--muted);font-weight:600;background:var(--surface2)}
.txt{border:2px solid var(--line);border-radius:8px;background:var(--bg);padding:12px;min-height:52px;width:100%;min-width:0}
.txt:focus{outline:none;border-color:var(--leaf)}
.lotpick{display:flex;gap:8px}
.lotpick select{flex:1}
.scanbtn{border:2px solid var(--leaf);background:var(--surface);color:var(--leaf-t);border-radius:8px;padding:0 14px;font-weight:600;white-space:nowrap}
.seg{display:flex;flex-wrap:wrap;gap:8px}
.seg button{border:2px solid var(--line);background:var(--bg);border-radius:8px;padding:12px 16px;min-height:52px;font-weight:600;text-align:left}
.seg button small{display:block;font-weight:400;color:var(--muted);font-size:.8rem}
.seg button[aria-pressed="true"]{border-color:var(--leaf);background:var(--leaf);color:var(--leaf-ink)}
.seg button[aria-pressed="true"] small{color:inherit;opacity:.85}

.split{display:flex;height:34px;border-radius:6px;overflow:hidden;background:var(--surface2)}
.legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 16px}
.legend div{display:flex;gap:8px;align-items:center}
.legend s{width:12px;height:12px;border-radius:3px;flex:none;text-decoration:none;display:inline-block}
.legend b{font-family:var(--display);font-size:1.25rem;font-weight:600}
.legend span{color:var(--muted);font-size:.85rem}
.big{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.big b{font-family:var(--display);font-size:2.4rem;font-weight:700;line-height:1}
.msg{padding:10px 14px;border-radius:8px;font-weight:500}
.msg.bad{background:var(--bad-soft);color:var(--bad)}
.msg.warn{background:var(--warn-soft);color:var(--warn)}
.msg.ok{background:var(--surface2);color:var(--ok)}

.tbl-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;min-width:560px}
th,td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
th{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600}
td.r,th.r{text-align:right}
td .inp input{font-size:1.15rem;padding:8px;width:100%}
td .inp{max-width:150px;margin-left:auto}
td select.txt{min-height:40px;padding:6px 8px;font-size:.85rem}
.alloc{font-size:.8rem;color:var(--muted)}
.alloc.bad{color:var(--bad);font-weight:600}

.go{background:var(--leaf);color:var(--leaf-ink);border:0;border-radius:10px;padding:18px 24px;font-family:var(--display);font-size:1.5rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;width:100%;text-align:center;text-decoration:none;display:block}
.go:disabled{opacity:.35;cursor:not-allowed}
.btn2{background:var(--surface);border:2px solid var(--line);border-radius:10px;padding:14px 20px;font-weight:600;text-align:center;text-decoration:none;color:var(--ink);display:block}
.btn2.danger{border-color:var(--bad);color:var(--bad)}
.btns{display:flex;gap:12px;flex-wrap:wrap}
.btns>*{flex:1;min-width:180px}

.lots{display:flex;flex-wrap:wrap;gap:10px}
.lotchip{border:2px solid var(--leaf);border-radius:10px;padding:12px 16px;background:var(--surface);text-align:left;display:flex;flex-direction:column;gap:2px}
.lotchip .mono{font-size:1.15rem;font-weight:500;color:var(--leaf-t)}
.lotchip span{font-size:.85rem;color:var(--muted)}
.mv-in{color:var(--ok);font-weight:600}
.mv-out{color:var(--bad);font-weight:600}

.tree{list-style:none;margin:0;padding-left:0}
.tree ul{list-style:none;margin:0;padding-left:22px;border-left:2px solid var(--line);margin-left:10px}
.tree li{padding:6px 0}
.node{display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center;background:none;border:0;padding:4px 0;text-align:left}
.node .mono{color:var(--leaf-t);font-weight:500;text-decoration:underline;text-underline-offset:3px}
.node span{color:var(--muted);font-size:.9rem}
.note{font-size:.88rem;color:var(--muted)}

.dlg{position:fixed;inset:0;z-index:20;background:rgba(0,0,0,.6);display:grid;place-items:center;padding:16px}
.dlg-box{background:var(--surface);color:var(--ink);border-radius:14px;padding:22px;max-width:540px;width:100%;max-height:100%;overflow:auto;display:flex;flex-direction:column;gap:16px}
.dlg-box h3{font-size:1.5rem}
.dlg-box dl{display:grid;grid-template-columns:1fr auto;gap:10px 16px;margin:0}
.dlg-box dt{color:var(--muted)}
.dlg-box dd{margin:0;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.dlg-box .tot{border-top:1px solid var(--line);padding-top:10px}
.vid{position:relative;background:#000;border-radius:10px;overflow:hidden;aspect-ratio:4/3;max-width:100%}
.vid video{width:100%;height:100%;object-fit:cover;display:block}
.vid::after{content:"";position:absolute;inset:18%;border:3px solid var(--leaf);border-radius:12px}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
