/* Picagem Essenza — v2.0.0 · design profissional, mobile-first.
   Estética "consola de operações": paleta sóbria, bordas finas, sombras discretas,
   raios medidos, tipografia de sistema; alvos de toque ≥48px.
   (Nomes de classes preservados — só o visual mudou.) */
:root{
  color-scheme:light;
  --bg:#f3f5f9; --surface:#ffffff; --surface-2:#f5f7fb;
  --border:#e2e6ee; --border-2:#edf0f6; --hair:#e8ebf2;
  --txt:#101728; --txt-2:#3a4456; --muted:#596375; --faint:#667085;
  --primary:#4f46e5; --primary-d:#4338ca; --primary-tint:#eef0fe; --primary-bd:#cdd2fb;
  --entrada:#0a8f5f; --entrada-tint:#e9f7f0; --entrada-d:#077a51; --entrada-bd:#b6e6d2;
  --saida:#d6294e; --saida-tint:#fdeef1; --saida-d:#b21e41; --saida-bd:#f4c4cf;
  --primary-solid:#4338ca; --entrada-solid:#077a51; --saida-solid:#a91d3d; --on-solid:#ffffff;
  --amber:#c2790c; --amber-tint:#fbf3e4;
  --radius:14px; --radius-sm:10px; --radius-xs:8px;
  --shadow:0 1px 1px rgba(16,23,40,.04), 0 1px 3px rgba(16,23,40,.07);
  --shadow-md:0 2px 6px rgba(16,23,40,.08), 0 6px 16px rgba(16,23,40,.07);
  --shadow-lg:0 10px 30px rgba(16,23,40,.18);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%}
body{
  background:var(--bg); color:var(--txt);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-feature-settings:"cv05","ss01";
  display:flex; flex-direction:column; min-height:100dvh;
  padding-bottom:env(safe-area-inset-bottom);
  overscroll-behavior:none; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  font-size:17px;
}
button{font-family:inherit;cursor:pointer;border:none;color:inherit;min-height:52px}
input,select{font-family:inherit;font-size:16px}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px}

/* ---------- header (slate sóbrio, hairline de luz) ---------- */
header{
  display:flex;align-items:center;gap:11px;
  padding:calc(12px + env(safe-area-inset-top)) 16px 12px;
  background:linear-gradient(180deg,#141c2e 0%,#0f1626 100%);
  color:#fff;position:sticky;top:0;z-index:10;
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 1px 12px rgba(15,23,42,.22);
  border-bottom:1px solid rgba(255,255,255,.06);
}
header .brand{width:34px;height:34px;border-radius:10px;flex:none;
  background:linear-gradient(160deg,#5b53ea,#4338ca);
  display:flex;align-items:center;justify-content:center;font-size:17px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), 0 2px 8px rgba(67,56,202,.4)}
header .title{font-weight:700;font-size:18px;flex:1;letter-spacing:-.01em;color:#f1f4f9}
header .dot{width:8px;height:8px;border-radius:50%;background:var(--faint);flex:none;box-shadow:0 0 0 3px rgba(255,255,255,.06)}
header .dot.online{background:#34d399;box-shadow:0 0 0 3px rgba(52,211,153,.16)}
header .dot.offline{background:#fb7185;box-shadow:0 0 0 3px rgba(251,113,133,.16)}
header select{
  background:rgba(255,255,255,.08);color:#e6eaf1;border:1px solid rgba(255,255,255,.14);
  border-radius:9px;padding:8px 11px;max-width:40vw;min-height:48px;font-weight:600;font-size:16px;
  -webkit-appearance:none;appearance:none
}

/* ---------- seletor de modo (segmented) ---------- */
.modebar{display:flex;gap:8px;padding:14px 14px 0}
.modebar button{
  flex:1;padding:15px 6px;font-size:16px;font-weight:700;letter-spacing:.02em;
  background:var(--surface);color:var(--muted);border:1px solid var(--border);
  border-radius:12px;transition:transform .08s, box-shadow .15s, background .15s, color .15s;
  display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:var(--shadow)
}
.modebar button .mi{font-size:18px;filter:grayscale(.6);opacity:.75;transition:filter .15s,opacity .15s}
.modebar button:active{transform:scale(.98)}
.modebar button.on-entrada{background:var(--entrada-solid);color:var(--on-solid);border-color:var(--entrada-d);box-shadow:0 2px 8px rgba(10,143,95,.28)}
.modebar button.on-saida{background:var(--saida-solid);color:var(--on-solid);border-color:var(--saida-d);box-shadow:0 2px 8px rgba(214,41,78,.28)}
.modebar button.on-entrada .mi,.modebar button.on-saida .mi{filter:none;opacity:1}
.modehint{text-align:center;color:var(--muted);font-size:16px;padding:9px 12px 0;font-weight:600;letter-spacing:.005em}

/* ---------- vistas ---------- */
main{flex:1;display:flex;flex-direction:column;min-height:0;padding:14px;width:100%;max-width:760px;margin:0 auto}
.view{display:none;flex-direction:column;gap:13px;min-height:0;flex:1}
.view.active{display:flex}

/* ---------- estado operacional do scanner ---------- */
.scan-status{display:flex;align-items:center;gap:13px;min-height:72px;padding:13px 15px;
  border:2px solid var(--primary-bd);border-radius:var(--radius);background:var(--primary-tint);
  color:var(--primary-d);box-shadow:var(--shadow);transition:background .15s,border-color .15s,color .15s}
.scan-status .status-icon{display:flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;
  border-radius:50%;background:var(--surface);font-size:28px;font-weight:800;border:2px solid currentColor}
.scan-status strong{display:block;font-size:20px;line-height:1.15;letter-spacing:-.01em}
.scan-status small{display:block;margin-top:4px;color:var(--txt-2);font-size:16px;line-height:1.3;font-weight:550}
.scan-status.pending{background:var(--amber-tint);border-color:#e8bd72;color:var(--amber)}
.scan-status.success{background:var(--entrada-tint);border-color:var(--entrada);color:var(--entrada-d)}
.scan-status.error{background:var(--saida-tint);border-color:var(--saida);color:var(--saida-d)}

/* ---------- câmara ---------- */
.camera-wrap{
  position:relative;border-radius:var(--radius);overflow:hidden;background:#0b1220;
  aspect-ratio:3/4;max-height:46dvh;box-shadow:var(--shadow-md);border:1px solid var(--border)
}
.camera-wrap.saida{box-shadow:inset 0 0 0 2px var(--saida), var(--shadow-md)}
.camera-wrap.entrada{box-shadow:inset 0 0 0 2px var(--entrada), var(--shadow-md)}
video{width:100%;height:100%;object-fit:cover;display:block;background:#0b1220}
.reticle{position:absolute;inset:22% 7%;pointer-events:none;box-shadow:0 0 0 100vmax rgba(11,18,32,.40)}
.reticle .cnr{position:absolute;width:28px;height:28px;border:2.5px solid rgba(255,255,255,.92);border-radius:4px}
.reticle .tl{top:-1px;left:-1px;border-right:none;border-bottom:none}
.reticle .tr{top:-1px;right:-1px;border-left:none;border-bottom:none}
.reticle .bl{bottom:-1px;left:-1px;border-right:none;border-top:none}
.reticle .br{bottom:-1px;right:-1px;border-left:none;border-top:none}
.reticle .scanline{position:absolute;left:2px;right:2px;height:2px;border-radius:3px;
  background:linear-gradient(90deg,transparent,rgba(165,180,252,.95),transparent);box-shadow:0 0 10px #818cf8;
  animation:scan 2s ease-in-out infinite}
@keyframes scan{0%{top:6%}50%{top:92%}100%{top:6%}}
.cam-controls{position:absolute;left:0;right:0;bottom:0;display:flex;gap:8px;padding:12px;justify-content:center;
  background:linear-gradient(transparent,rgba(11,18,32,.5))}
.cam-controls button{
  background:rgba(255,255,255,.96);color:#101728;border-radius:10px;
  padding:11px 17px;font-size:16px;font-weight:700;backdrop-filter:blur(8px);box-shadow:var(--shadow)
}
.cam-controls button:disabled{opacity:.45}
.cam-msg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  text-align:center;padding:24px;color:#c3cbd9;font-size:16px;line-height:1.55}
.cam-msg b{color:#fff;font-weight:600}

/* ---------- tags ---------- */
.tag{font-size:16px;font-weight:700;padding:4px 10px;border-radius:7px;background:var(--surface-2);
  border:1px solid var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.tag.seur{background:var(--primary-tint);border-color:var(--primary-bd);color:var(--primary-d)}
.tag.ontime{background:#f4f2fe;border-color:#ddd6fe;color:#6d28d9}
.tag.gls{background:#fbf3e4;border-color:#f0d9a6;color:#9a6207}
.tag.sending{background:#e8f8f4;border-color:#a7e8da;color:#0c7460}
.tag.rlr{background:#eef2f9;border-color:#d2dcec;color:#3a4456}
.tag.desconhecida{background:#f4f6fa;border-color:#e1e6ef;color:#6b7585}
.tag.vol{background:var(--primary-tint);border-color:var(--primary-bd);color:var(--primary-d)}
.tag.entrada{background:var(--entrada-tint);border-color:var(--entrada-bd);color:var(--entrada-d)}
.tag.saida{background:var(--saida-tint);border-color:var(--saida-bd);color:var(--saida-d)}

/* ---------- lista viva de picados ---------- */
.scanlist{overflow:auto;display:flex;flex-direction:column;gap:7px;flex:1;min-height:60px;-webkit-overflow-scrolling:touch}
.row.just-added{animation:rowin .6s ease-out}
@keyframes rowin{0%{background:var(--entrada-tint);transform:translateY(-5px);opacity:.4}100%{transform:none;opacity:1}}

/* ---------- janela Confirmar / Cancelar (bottom sheet) ---------- */
.modal{position:fixed;inset:0;z-index:55;display:none;align-items:flex-end;justify-content:center;background:rgba(10,15,28,.5);backdrop-filter:blur(3px)}
.modal.show{display:flex;animation:fadein .15s}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.modal .sheet{width:100%;max-width:520px;background:var(--surface);border-radius:22px 22px 0 0;
  padding:9px 20px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -12px 40px rgba(16,23,40,.26);
  animation:sheetup .22s cubic-bezier(.2,.8,.2,1);max-height:92dvh;overflow:auto;border-top:1px solid var(--hair)}
@keyframes sheetup{from{transform:translateY(100%)}to{transform:none}}
.sheet .grab{width:40px;height:4px;border-radius:999px;background:#dfe4ee;margin:3px auto 15px}
.cf-mode{display:inline-block;font-size:16px;font-weight:700;letter-spacing:.05em;padding:6px 12px;border-radius:7px;color:var(--on-solid);background:var(--primary-solid)}
.cf-mode.entrada{background:var(--entrada-solid)} .cf-mode.saida{background:var(--saida-solid)}
.cf-track{font-size:24px;font-weight:700;word-break:break-all;font-variant-numeric:tabular-nums;letter-spacing:-.01em;
  margin:12px 0 10px;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--radius-sm);padding:12px 14px}
.cf-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}

/* banner informativo (multi-caixa = normal) / alerta (5 caixas usadas) */
.cf-warn{background:var(--primary-tint);border:1px solid var(--primary-bd);color:var(--primary-d);
  border-radius:var(--radius-sm);padding:12px 14px;font-size:16px;font-weight:600;
  line-height:1.5;margin-bottom:12px}
.cf-warn.alert{background:var(--saida-tint);border-color:var(--saida-bd);color:var(--saida-d)}

/* ----- cartão da data prevista de entrega (Leroy Merlin) ----- */
.lm-card{display:flex;align-items:center;gap:12px;margin-bottom:12px;
  background:var(--entrada-tint);border:1px solid var(--entrada-bd);
  border-radius:var(--radius-sm);padding:11px 13px}
.lm-card .lm-ico{width:38px;height:38px;border-radius:9px;flex:none;display:flex;align-items:center;justify-content:center;
  font-size:19px;background:#fff;border:1px solid var(--entrada-bd)}
.lm-card .lm-body{min-width:0;flex:1}
  .lm-card .lm-h{font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--entrada-d)}
.lm-card .lm-when{font-size:19px;font-weight:700;color:#0a5e3f;letter-spacing:-.01em;line-height:1.25;font-variant-numeric:tabular-nums}
  .lm-card .lm-ord{font-size:16px;color:var(--muted);font-weight:500;margin-top:2px;font-variant-numeric:tabular-nums}

/* ----- conferência de volumes da guia: "caixa 2 de 3" (2026-08-01) ----- */
.cf-vol{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;
  background:var(--surface-2);border:1px solid var(--border-2);
  border-radius:var(--radius-sm);padding:11px 13px}
.cf-vol .v-ico{width:38px;height:38px;border-radius:9px;flex:none;display:flex;
  align-items:center;justify-content:center;font-size:19px;
  background:var(--surface);border:1px solid var(--border-2)}
.cf-vol .v-body{min-width:0;flex:1}
.cf-vol .v-h{font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.cf-vol .v-big{font-size:22px;font-weight:800;letter-spacing:-.015em;line-height:1.25;
  font-variant-numeric:tabular-nums;color:var(--txt)}
.cf-vol .v-sub{font-size:16px;color:var(--muted);font-weight:500;margin-top:2px}
.cf-vol.falta{background:var(--amber-tint);border-color:color-mix(in srgb,var(--amber) 40%,transparent)}
.cf-vol.falta .v-big,.cf-vol.falta .v-h{color:var(--amber)}
.cf-vol.completa{background:var(--entrada-tint);border-color:var(--entrada-bd)}
.cf-vol.completa .v-big,.cf-vol.completa .v-h{color:var(--entrada-d)}
.cf-vol.excedida{background:var(--saida-tint);border-color:var(--saida-bd)}
.cf-vol.excedida .v-big,.cf-vol.excedida .v-h{color:var(--saida-d)}
.cf-vol .v-caixas{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.cf-vol .v-cx{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;
  padding:0 7px;border-radius:var(--radius-xs);font-size:16px;font-weight:800;
  font-variant-numeric:tabular-nums;background:var(--entrada-tint);color:var(--entrada-d);
  border:1px solid var(--entrada-bd)}
.cf-vol .v-cx.falta{background:transparent;color:var(--muted);border:1px dashed var(--border);font-weight:700}
.cf-vol .v-cx.agora{background:var(--primary-solid);color:var(--on-solid);border-color:var(--primary-d)}
.cf-vol .v-cx.extra{background:var(--saida-tint);color:var(--saida-d);border-color:var(--saida-bd)}

/* ----- seletores Palete / Caixa (saídas) ----- */
.cf-sel{display:flex;flex-direction:column;gap:12px;margin:2px 0 6px}
.sel-group{display:flex;flex-direction:column;gap:7px}
.sel-label{font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
/* wrap: guias grandes (10, 15 volumes) passam a várias linhas em vez de
   espremer os botões abaixo do alvo de toque */
.sel-row{display:flex;flex-wrap:wrap;gap:7px}
.sel-btn{
  position:relative;flex:1 0 52px;min-width:52px;height:52px;border-radius:11px;
  background:var(--surface-2);border:1px solid var(--border);
  font-size:19px;font-weight:700;color:var(--txt-2);
  transition:transform .07s, background .12s, box-shadow .12s, border-color .12s;
  font-variant-numeric:tabular-nums
}
.sel-btn:active{transform:scale(.94)}
.sel-btn.sel{background:var(--primary-solid);border-color:var(--primary-d);color:var(--on-solid);
  box-shadow:0 2px 8px rgba(79,70,229,.32)}
.sel-btn.used{background:var(--saida-tint);border-color:var(--saida-bd);color:var(--saida-d)}
.sel-btn.used.sel{background:var(--saida-solid);border-color:var(--saida-d);color:var(--on-solid);
  box-shadow:0 2px 8px rgba(214,41,78,.32)}
.sel-btn .used-dot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;
  background:var(--saida);box-shadow:0 0 0 2px #fff}

.cf-when{color:var(--muted);font-size:16px;font-weight:600}
.cf-actions{display:flex;gap:10px;margin-top:18px}
.cf-actions button{flex:1;padding:16px 8px;border-radius:12px;font-size:17px;font-weight:700;transition:filter .12s}
.cf-cancel{flex:.65;background:var(--surface-2);color:var(--txt-2);border:1px solid var(--border)}
.cf-ok{background:var(--entrada-solid);color:var(--on-solid);box-shadow:0 2px 10px rgba(10,143,95,.3)}
.cf-ok:active{filter:brightness(.95)}
.cf-ok:disabled{background:#e6e9f0;color:var(--faint);box-shadow:none}

/* ---------- entrada manual ---------- */
.manual{display:flex;gap:8px}
.manual input{flex:1;min-width:0;min-height:58px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:13px;color:var(--txt);box-shadow:var(--shadow);font-size:17px}
.manual input::placeholder{color:var(--faint)}
.manual input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-tint)}
.manual button{background:var(--primary-solid);color:var(--on-solid);border-radius:var(--radius-sm);padding:0 20px;font-weight:700;font-size:17px;box-shadow:0 2px 8px rgba(79,70,229,.26)}
.manual button:active{filter:brightness(.95)}
.section-label{color:var(--muted);font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin:4px 2px -5px}

/* ---------- saídas de palete ---------- */
.pcard{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:16px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow)}
.pe-fields{display:flex;flex-direction:column;gap:11px}
.pe-field{display:flex;flex-direction:column;gap:6px}
.pe-field span{font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.pe-field input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:13px;color:var(--txt);width:100%;min-height:52px;-webkit-appearance:none;appearance:none}
.pe-field input::placeholder{color:var(--faint)}
.pe-field input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-tint)}
#pe-save{border:none}

/* ---------- histórico ---------- */
.stats{display:flex;gap:9px}
.stat{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:13px 10px 11px;text-align:center;box-shadow:var(--shadow)}
.stat i{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;font-style:normal;font-size:14px;margin-bottom:5px}
.stat.ent i{background:var(--entrada-tint)} .stat.sai i{background:var(--saida-tint)} .stat.dup i{background:var(--amber-tint)}
.stat b{display:block;font-size:24px;font-weight:700;letter-spacing:-.02em;line-height:1.15}
.stat.ent b{color:var(--entrada)} .stat.sai b{color:var(--saida)} .stat.dup b{color:var(--amber)}
.stat span{font-size:16px;line-height:1.2;color:var(--muted);text-transform:uppercase;letter-spacing:.02em;font-weight:650}
.histbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.histbar select,.histbar input{background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:11px;color:var(--txt);box-shadow:var(--shadow);min-height:52px;font-size:16px}
.histbar input[type=search]{flex:1;min-width:120px}
.histlist{overflow:auto;display:flex;flex-direction:column;gap:7px;flex:1;-webkit-overflow-scrolling:touch}
.row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:13px 14px;display:flex;gap:12px;align-items:center;box-shadow:var(--shadow);min-height:60px}
.row.dup{border-color:var(--saida-bd);background:var(--saida-tint)}
.row .ico{flex:none;width:34px;height:34px;border-radius:9px;background:var(--surface-2);border:1px solid var(--border-2);
  display:flex;align-items:center;justify-content:center;font-size:16px}
.row.dup .ico{background:#fbe3e8;border-color:var(--saida-bd)}
.row .body{flex:1;min-width:0}
.row .t{font-size:18px;font-weight:650;word-break:break-all;font-variant-numeric:tabular-nums;letter-spacing:-.005em}
.row .s{font-size:16px;line-height:1.35;color:var(--muted);margin-top:4px;font-weight:500;overflow-wrap:anywhere}
.row .del{flex:none;min-width:52px;background:none;border:none;color:var(--faint);font-size:16px;line-height:1;padding:9px;border-radius:9px;align-self:center}
.row .del:active{background:var(--surface-2)}
.row .del.armed{background:var(--saida-tint);color:var(--saida-d);font-size:16px;font-weight:700;padding:9px 12px}
.btn-block{display:block;width:100%;min-height:56px;background:var(--primary-solid);padding:16px;border-radius:var(--radius-sm);font-weight:700;text-align:center;font-size:17px;text-decoration:none;color:var(--on-solid);box-shadow:0 2px 10px rgba(79,70,229,.26)}

/* ---------- diagnóstico ---------- */
.diag p{color:var(--txt-2);font-size:16px;line-height:1.55}
.diag pre{background:#0f1626;color:#e2e8f0;border-radius:var(--radius-sm);padding:14px;overflow:auto;font-size:16px;white-space:pre-wrap;word-break:break-all;box-shadow:var(--shadow);font-family:ui-monospace,Menlo,monospace}
.engine{font-size:16px;color:var(--muted)}
.engine b{color:var(--txt-2)}

/* ---------- navegação inferior ---------- */
nav{display:flex;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);
  border-top:1px solid var(--border);box-shadow:0 -1px 10px rgba(16,23,40,.05);
  padding-bottom:env(safe-area-inset-bottom);position:sticky;bottom:0;z-index:45}
nav button{flex:1;padding:8px 1px 7px;background:none;color:var(--muted);font-size:16px;line-height:1.05;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-weight:700;letter-spacing:-.015em;min-height:70px;min-width:0}
nav button .ic{font-size:22px;line-height:1;opacity:.65;padding:4px 14px;border-radius:999px;transition:background .15s,opacity .15s;min-width:52px}
nav button.active{color:var(--primary-d)}
nav button.active .ic{opacity:1;background:var(--primary-tint)}

/* ---------- menu Mais ---------- */
.more-backdrop{display:none;position:fixed;inset:0;z-index:39;background:rgba(7,10,18,.48);backdrop-filter:blur(2px);border-radius:0}
.more-backdrop.show{display:block}
.more-menu{position:fixed;z-index:40;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));
  max-width:640px;margin:0 auto;padding:18px;background:var(--surface);border:1px solid var(--border);
  border-radius:20px;box-shadow:var(--shadow-lg);opacity:0;transform:translateY(18px);pointer-events:none;
  transition:opacity .16s,transform .16s;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.more-menu.show{opacity:1;transform:none;pointer-events:auto}
.more-menu h2{grid-column:1/-1;margin:0 2px 3px;font-size:20px;letter-spacing:-.015em}
.more-item{min-height:76px;padding:12px;border:1px solid var(--border);border-radius:13px;background:var(--surface-2);
  color:var(--txt);text-decoration:none;display:grid;grid-template-columns:36px 1fr;grid-template-rows:auto auto;
  column-gap:9px;text-align:left;align-content:center;font:inherit}
.more-item>span{grid-row:1/3;align-self:center;display:flex;align-items:center;justify-content:center;width:36px;height:36px;
  border-radius:10px;background:var(--primary-tint);color:var(--primary-d);font-size:21px;font-weight:800}
.more-item strong{font-size:16px;line-height:1.2}
.more-item small{color:var(--muted);font-size:16px;line-height:1.25;margin-top:4px}
.more-item:active{background:var(--primary-tint);border-color:var(--primary-bd)}

/* ---------- alarme de duplicado (ecrã inteiro) ---------- */
.overlay{position:fixed;inset:0;z-index:50;display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;background:var(--saida-solid);color:var(--on-solid);animation:pulse 1.2s ease-in-out infinite}
.overlay.show{display:flex}
@keyframes pulse{0%,100%{background:#d6294e}50%{background:#a11b3b}}
.overlay .x{width:96px;height:96px;border-radius:50%;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;font-size:50px;box-shadow:0 0 0 14px rgba(255,255,255,.06)}
.overlay h1{font-size:29px;margin:20px 0 6px;font-weight:800;letter-spacing:.01em}
.overlay .info{font-size:16px;opacity:.95;word-break:break-all;line-height:1.5}
.overlay .info b{font-variant-numeric:tabular-nums}
.overlay .when{margin-top:12px;font-size:16px;font-weight:600;background:rgba(0,0,0,.22);padding:9px 15px;border-radius:10px}
.overlay .actions{display:flex;gap:11px;margin-top:28px;width:100%;max-width:440px}
.overlay .actions button{flex:1;padding:17px 8px;border-radius:13px;font-size:16.5px;font-weight:700;box-shadow:var(--shadow-lg)}
.overlay .ignore{background:#fff;color:var(--saida-solid)}
.overlay .force{background:#16203a;color:#fff}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);background:#141c2e;color:#fff;padding:14px 20px;border-radius:11px;font-size:16px;font-weight:650;opacity:0;transition:opacity .2s,transform .2s;z-index:60;pointer-events:none;max-width:90vw;text-align:center;box-shadow:var(--shadow-lg)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(-4px)}
.toast.err{background:var(--saida-solid)}
.hidden{display:none!important}

/* ==================== etiquetas (impressão RLR) ==================== */
.etq-hint { color: var(--muted); font-size: 1rem; line-height: 1.45; margin: 6px 0 10px; }
.etq-manual input { font-size: 1.5rem; text-align: center; letter-spacing: .05em; }
.etq-head { font-size: 1.05rem; margin-bottom: 2px; word-break: break-all; }
.etq-head .tag { margin-left: 6px; }
.etq-cli { color: var(--muted); font-size: 1rem; margin-bottom: 6px; }
.etq-line { font-size: 1.05rem; font-weight: 600; margin: 6px 0; }
.etq-wait { font-size: 1rem; padding: 8px 0; }
.etq-progress { display: flex; gap: 6px; margin: 10px 0 4px; }
.etq-dot { flex: 1; height: 12px; border-radius: 6px;
           background: var(--surface-2); border: 1px solid var(--border); }
.etq-dot.done { background: #16a34a; border-color: #15803d; }
.etq-dot.fila { background: #f59e0b; border-color: #d97706; animation: etqpulse .9s infinite alternate; }
@keyframes etqpulse { from { opacity: 1; } to { opacity: .45; } }
.etq-pick, .etq-retry { margin-top: 8px; }

/* ---------- modo escuro automático ---------- */
@media (prefers-color-scheme:dark){
  :root{
    color-scheme:dark;
    --bg:#090d14;--surface:#111827;--surface-2:#182132;
    --border:#2a3547;--border-2:#222c3d;--hair:#263143;
    --txt:#f3f4f6;--txt-2:#d2d8e2;--muted:#b7c0cd;--faint:#98a3b3;
    --primary:#818cf8;--primary-d:#c7d2fe;--primary-tint:#23264b;--primary-bd:#454b82;
    --entrada:#34d399;--entrada-tint:#0d2f28;--entrada-d:#6ee7b7;--entrada-bd:#17624f;
    --saida:#fb7185;--saida-tint:#3a1722;--saida-d:#fda4af;--saida-bd:#793044;
    --primary-solid:#4f46e5;--entrada-solid:#08724d;--saida-solid:#a91d3d;--on-solid:#ffffff;
    --amber:#fbbf24;--amber-tint:#34280d;
    --shadow:0 1px 2px rgba(0,0,0,.32);--shadow-md:0 4px 16px rgba(0,0,0,.35);--shadow-lg:0 18px 42px rgba(0,0,0,.5);
  }
  header{background:linear-gradient(180deg,#151d2b,#0d1420)}
  header select{background:#202a3a;color:#f3f4f6}
  nav{background:rgba(17,24,39,.96)}
  .row.dup .ico{background:var(--saida-tint);border-color:var(--saida-bd)}
  .lm-card .lm-ico{background:var(--surface)}
  .lm-card .lm-when{color:var(--entrada-d)}
  .sel-btn .used-dot{box-shadow:0 0 0 2px var(--surface)}
  .scan-status.pending{border-color:#8a6818}
}

@media (max-width:420px){
  header{padding-left:12px;padding-right:12px}
  header .title{font-size:16px}
  header select{max-width:36vw;padding-left:8px;padding-right:8px}
  .more-menu{grid-template-columns:1fr}
  .more-menu h2{grid-column:1}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
