/* ===========================================================
   Rosselot Pedido — app interna a la medida
   Cara = mockup_app/index.html (marca Vivie: chocolate, crema,
   rosa, salmón). Tipografía real: Avenir LT Pro self-hosted.
   =========================================================== */

@font-face{
  font-family:"Avenir LT Pro";
  src:url("/fonts/AvenirLTPro-Book.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Avenir LT Pro";
  src:url("/fonts/AvenirLTPro-Roman.woff2") format("woff2");
  font-weight:500;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Avenir LT Pro";
  src:url("/fonts/AvenirLTPro-Medium.woff2") format("woff2");
  font-weight:600;font-style:normal;font-display:swap;
}

:root{
  --bg:#f2eee6; --card:#fffdf9; --ink:#3a2622; --muted:#7c6f66;
  --line:#e8ded0; --accent:#3a2622; --rosa:#cd98a0; --salmon:#f7e1d6;
  --dorado:#c6995a; --gris:#565651; --grp:#e9e1d5;
  --verde:#3f7d5a; --verde-bg:#e0efe3; --azul:#39628f; --azul-bg:#e2ebf6;
  --rojo:#c0392b; --rojo-line:#d33a2c; --rojo-bg:#fdeeec;
  --warn:#b8860b; --warn-line:#e6b800; --warn-bg:#fffbe9;
  --am-bg:#f4e6c8; --am-ink:#8a6a2c; --am-line:#e2c98f;
  --sans:"Avenir LT Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --safe-b:env(safe-area-inset-bottom,0px);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);
  line-height:1.45;-webkit-font-smoothing:antialiased;
  -webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;
}
button{font-family:var(--sans);cursor:pointer}
img{display:block}
[hidden]{display:none !important}

/* ===================== LOGIN ===================== */
.screen-login{
  min-height:100dvh;display:flex;flex-direction:column;align-items:center;
  padding:max(34px,env(safe-area-inset-top)) 22px calc(22px + var(--safe-b));
}
.login-brand{text-align:center;margin:26px 0 8px}
.login-wordmark{height:40px;width:auto;margin:0 auto}
.login-sub{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gris);margin:12px 0 0;font-weight:600}
.login-q{font-weight:600;font-size:22px;margin:34px 0 18px;letter-spacing:-.01em}
.roles{display:flex;flex-direction:column;gap:12px;width:100%;max-width:420px}
.role-btn{
  display:flex;align-items:center;gap:14px;width:100%;padding:14px 16px;
  background:var(--card);border:1px solid var(--line);border-radius:16px;
  text-align:left;box-shadow:0 2px 6px rgba(58,38,34,.06);
  transition:transform .08s ease;
}
.role-btn:active{transform:scale(.985)}
.role-ava{
  flex:none;width:52px;height:52px;border-radius:14px;display:grid;place-items:center;
  font-size:19px;font-weight:700;color:#fff;background:var(--rosa);
}
.role-btn.r-centro .role-ava{background:var(--dorado)}
.role-btn.r-sucursal .role-ava{background:#7f9e86}
.role-btn.r-operaciones .role-ava{background:var(--gris)}
.role-name{font-size:17px;font-weight:600}
.role-desc{font-size:13px;color:var(--muted);margin-top:1px}
.role-arrow{margin-left:auto;color:var(--muted);font-size:20px}
.login-admin{
  margin-top:16px;background:none;border:none;color:var(--muted);
  font-size:13px;text-decoration:underline;padding:8px;
}
.login-foot{margin-top:auto;padding-top:26px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* ===================== PIN ===================== */
.screen-pin{
  min-height:100dvh;display:flex;flex-direction:column;align-items:center;
  padding:max(18px,env(safe-area-inset-top)) 22px calc(26px + var(--safe-b));
}
.pin-back{align-self:flex-start;background:none;border:none;color:var(--muted);font-size:15px;padding:10px 4px}
.pin-head{text-align:center;margin-top:6px}
.pin-mono{height:30px;width:auto;margin:0 auto 14px}
.pin-head h2{font-size:20px;font-weight:600;margin:0}
.pin-sub{color:var(--muted);font-size:14px;margin:6px 0 0}
.pin-dots{display:flex;gap:16px;margin:26px 0 6px;height:18px}
.pin-dots .dot{width:16px;height:16px;border-radius:50%;border:1.8px solid #c3b6a6;background:transparent}
.pin-dots .dot.on{background:var(--accent);border-color:var(--accent)}
.pin-error{color:var(--rojo);font-size:14px;font-weight:600;min-height:20px;margin:4px 0 2px}
.pinpad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;max-width:320px;margin-top:8px}
.pinpad button{
  height:66px;border-radius:16px;border:1px solid var(--line);background:var(--card);
  font-size:26px;font-weight:600;color:var(--ink);box-shadow:0 1px 4px rgba(58,38,34,.06);
}
.pinpad button:active{background:var(--salmon)}
.pinpad .pad-aux{background:transparent;border:none;box-shadow:none;font-size:15px;color:var(--muted)}

/* ===================== APP SHELL ===================== */
.screen-app{min-height:100dvh;display:flex}
.main{
  flex:1;min-width:0;display:flex;flex-direction:column;height:100dvh;
  max-width:560px;margin:0 auto;
}
.appbar{
  background:var(--card);padding:max(8px,env(safe-area-inset-top)) 10px 8px;
  display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--line);
}
.appbar .ico{
  flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  color:var(--muted);font-size:19px;background:none;border:none;
}
.appbar .ico.sync{color:var(--accent)}
.appbar .ico.sync.spin{animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.appbar .brandmark{flex:none;height:18px;width:auto;margin:0 4px}
.appbar .title{flex:1;font-size:18px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.daybar{
  background:var(--card);border-bottom:1px solid var(--line);
  padding:6px 16px;font-size:12.5px;color:var(--muted);
  display:flex;align-items:center;gap:10px;
}
.daybar b{color:var(--ink);font-weight:600}
.vista-toggle{
  margin-left:auto;flex:none;display:inline-flex;border:1px solid var(--line);
  border-radius:999px;overflow:hidden;background:var(--bg);
}
.vista-toggle button{
  border:none;background:transparent;color:var(--muted);font-size:12px;font-weight:600;
  padding:4px 13px;letter-spacing:.02em;
}
.vista-toggle button.on{background:var(--accent);color:#fff}
.summary{background:var(--card);display:flex;border-bottom:1px solid var(--line)}
.summary .s{flex:1;text-align:center;padding:8px 4px;border-right:1px solid var(--line)}
.summary .s:last-child{border-right:0}
.summary .n{font-size:17px;font-weight:700}
.summary .n.warn{color:var(--warn)}
.summary .k{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}

/* ============ ROS-PEDIDO3 · semáforo de las dos sucursales ============
   Vive bajo el resumen, siempre visible para la dueña. Verde solo cuando
   AMBAS tienen su correo fuera; mientras falte una, la barra queda roja. */
.traba-suc{
  background:var(--card);border-bottom:1px solid var(--line);
  padding:8px 14px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;
}
.traba-suc.alerta{background:var(--rojo-bg);border-bottom-color:var(--rojo-line)}
.ts-item{display:flex;align-items:center;gap:7px;font-size:12.5px;line-height:1.3}
.ts-punto{width:9px;height:9px;border-radius:50%;flex:none;background:var(--muted)}
.ts-item.ok .ts-punto{background:var(--verde)}
.ts-item.medio .ts-punto{background:var(--warn-line)}
.ts-item.mal .ts-punto{background:var(--rojo-line)}
.ts-suc{font-weight:700}
.ts-est{color:var(--muted)}
.ts-item.mal .ts-est{color:var(--rojo);font-weight:600}
.ts-item.medio .ts-est{color:var(--warn);font-weight:600}
.ts-nota{flex-basis:100%;font-size:11.5px;color:var(--rojo);font-weight:600}

/* ===================== DECK ===================== */
.deck{flex:1;overflow-y:auto;padding-bottom:10px;-webkit-overflow-scrolling:touch}
.grp{
  display:flex;align-items:center;gap:8px;padding:9px 15px;background:var(--grp);
  color:var(--muted);font-size:12.5px;font-weight:600;letter-spacing:.02em;
  position:sticky;top:0;z-index:2;width:100%;border:none;text-align:left;
}
.grp .chev{font-size:11px}
.grp .cnt{margin-left:auto;font-weight:700;color:var(--ink)}
.grp .cnt.warn{color:var(--warn)}

.card{
  background:var(--card);display:flex;gap:12px;padding:12px 14px;
  border-bottom:1px solid var(--line);align-items:center;position:relative;
}
.card.done{opacity:.62}
.card .foto{
  flex:none;width:64px;height:64px;border-radius:12px;object-fit:cover;
  background:var(--salmon);
}
.card .avatar{
  flex:none;width:64px;height:64px;border-radius:12px;display:grid;place-items:center;
  font-size:17px;font-weight:700;color:#fff;background:var(--rosa);
}

/* ----- modo LISTA (compacto, sin fotos) ----- */
.deck.lista .card{padding:8px 14px;gap:0}
.deck.lista .card .foto,.deck.lista .card .avatar{display:none}
.deck.lista .card .p-name{font-size:14px}
.deck.lista .card .p-sub{font-size:11.5px;margin-top:1px}
.deck.lista .card .p-sug{font-size:11px;margin-top:1px}
.deck.lista .card .right{flex-direction:row;align-items:center;gap:8px}
.deck.lista .qty{min-width:50px;font-size:18px;padding:2px 6px}
.deck.lista .qty .pencil{width:16px;height:16px;font-size:9px;top:-6px;right:-6px}
.card .body{flex:1;min-width:0}
.card .p-name{font-size:15px;font-weight:600;line-height:1.25}
.card .p-sub{font-size:12.5px;color:var(--muted);margin-top:2px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.card .p-sug{font-size:12px;color:var(--am-ink);margin-top:3px;font-style:italic}
.card .p-corr{font-size:12px;color:var(--dorado);font-weight:600;margin-top:3px}
.deck.lista .card .p-corr{font-size:11px;margin-top:1px}
/* ROS-MINMAX1: motivo del sugerido fuera de banda + banda invertida (tono discreto) */
.p-motivo{display:inline-block;font-style:normal;font-size:11px;color:var(--muted);
  background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:1px 7px;margin-left:4px}
.deck.lista .card .p-motivo{font-size:10px;padding:0 6px}
.band-rev{color:var(--muted);font-style:italic}
.card .right{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:6px}

.qty{
  min-width:58px;text-align:center;font-size:22px;font-weight:700;color:var(--ink);
  border:1.5px solid #d8cdbe;border-radius:9px;padding:3px 8px;background:#fdfbf6;
  position:relative;font-family:var(--sans);
}
button.qty{cursor:pointer}
.qty.ro{border-style:dashed;background:transparent;cursor:default}
.qty .pencil{
  position:absolute;top:-7px;right:-7px;width:19px;height:19px;border-radius:50%;
  background:var(--accent);color:#fff;font-size:10px;display:grid;place-items:center;
  box-shadow:0 1px 3px rgba(0,0,0,.25);
}
.qty.out{border-color:var(--rojo-line);color:var(--rojo);background:var(--rojo-bg)}

.chip{font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;white-space:nowrap}
.chip.borrador{background:#ece5da;color:#8c7b70}
.chip.aprobado{background:var(--verde-bg);color:var(--verde)}
.chip.en_produccion{background:var(--azul-bg);color:var(--azul)}
.chip.despachado{background:#ede9e2;color:#a99e91}
.badge-am{
  font-size:10.5px;font-weight:800;letter-spacing:.03em;padding:2px 7px;border-radius:5px;
  background:var(--am-bg);color:var(--am-ink);border:1px solid var(--am-line);
}
.card.sinconteo{background:var(--warn-bg)}
.card.sinconteo::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--warn-line)}
.warn-ico{color:var(--warn);font-size:13px}
.inline-act{
  font-size:11.5px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.03em;
  border:1px solid var(--accent);border-radius:7px;padding:4px 10px;background:#fff;
}
.inline-act:active{background:var(--salmon)}

.deck-empty{padding:60px 30px;text-align:center;color:var(--muted);font-size:15px}
.deck-empty img{height:26px;margin:0 auto 16px;opacity:.5}

/* skeleton */
.skel .card .p-name,.skel .card .p-sub{color:transparent;background:var(--grp);border-radius:5px}
@keyframes pulse{50%{opacity:.55}}
.skel .card{animation:pulse 1.4s ease infinite}

/* ===================== ACTION BAR ===================== */
.actionbar{
  background:var(--card);border-top:1px solid var(--line);
  padding:9px 12px calc(9px + var(--safe-b));
}
.btn-primary{
  width:100%;background:var(--accent);color:#fff;font-size:14.5px;font-weight:700;
  letter-spacing:.03em;border:none;border-radius:10px;padding:14px;
  display:flex;align-items:center;justify-content:center;gap:9px;
  box-shadow:0 3px 8px rgba(58,38,34,.30);
}
.btn-primary:disabled{opacity:.45;box-shadow:none;cursor:default}
.btn-primary.ok{background:var(--verde)}
.ab-note{font-size:11.5px;color:var(--muted);text-align:center;margin-top:6px}
/* ROS-PEDIDO3: lo que FALTA no puede leerse como una nota al pie más. */
.ab-note.falta{
  font-size:12.5px;color:var(--rojo);font-weight:600;line-height:1.4;
  background:var(--rojo-bg);border:1px solid var(--rojo-line);border-radius:10px;
  padding:8px 10px;margin-top:8px;
}
/* ROS-PEDIDO3 · B: armado manual del pedido de mañana (acción secundaria). */
.btn-sec{
  width:100%;background:var(--card);color:var(--accent);font-size:13.5px;font-weight:700;
  border:1px solid var(--line);border-radius:10px;padding:12px;margin-top:8px;
  display:flex;align-items:center;justify-content:center;gap:8px;
}
.btn-sec:disabled{opacity:.5;cursor:default}
.btn-ghost{
  width:100%;background:transparent;color:var(--accent);font-size:14.5px;font-weight:700;
  border:1px solid var(--line);border-radius:10px;padding:14px;
}

/* ===================== SIDERAIL (computadora) ===================== */
.siderail{display:none}

/* ===================== MENÚ MÓVIL ===================== */
.menu-overlay,.sheet-overlay,.confirm-overlay{
  position:fixed;inset:0;background:rgba(58,38,34,.42);z-index:40;
  display:flex;align-items:flex-end;justify-content:center;
}
.menu-sheet{
  background:var(--card);border-radius:18px 18px 0 0;width:100%;max-width:560px;
  padding:16px 16px calc(16px + var(--safe-b));
}
.menu-user{font-size:14px;color:var(--muted);padding:4px 6px 14px;border-bottom:1px solid var(--line);margin-bottom:10px}
.menu-user b{color:var(--ink);font-size:16px;display:block}
.menu-item{
  width:100%;text-align:left;background:none;border:none;font-size:16px;color:var(--ink);
  padding:14px 6px;border-bottom:1px solid var(--line);
}
.menu-item.out{color:var(--rojo)}
.menu-item.cancel{border-bottom:none;color:var(--muted);text-align:center}

/* ===================== HOJA DE EDICIÓN ===================== */
.sheet{
  background:var(--card);border-radius:20px 20px 0 0;width:100%;max-width:560px;
  padding:10px 20px calc(20px + var(--safe-b));box-shadow:0 -8px 30px rgba(58,38,34,.25);
}
.sheet-grip{width:42px;height:5px;border-radius:3px;background:var(--line);margin:4px auto 14px}
.sheet-prod{display:flex;gap:13px;align-items:center;margin-bottom:16px}
.sheet-foto{flex:none;width:56px;height:56px;border-radius:12px;overflow:hidden;background:var(--salmon)}
.sheet-foto img{width:100%;height:100%;object-fit:cover}
.sheet-foto .avatar{width:100%;height:100%;display:grid;place-items:center;font-size:17px;font-weight:700;color:#fff;background:var(--rosa)}
.sheet-name{font-size:17px;font-weight:600;line-height:1.25}
.sheet-band{font-size:13px;color:var(--muted);margin-top:3px}
.stepper{display:flex;gap:12px;align-items:stretch;justify-content:center;margin:6px 0 4px}
.step-btn{
  flex:none;width:72px;border-radius:14px;border:1px solid var(--line);background:var(--bg);
  font-size:30px;font-weight:500;color:var(--ink);
}
.step-btn:active{background:var(--salmon)}
.step-num{
  width:110px;text-align:center;font-size:38px;font-weight:700;color:var(--ink);
  border:1.5px solid #d8cdbe;border-radius:14px;background:#fdfbf6;padding:8px 4px;
  font-family:var(--sans);-moz-appearance:textfield;appearance:textfield;
}
.step-num::-webkit-outer-spin-button,.step-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.sheet-sug{text-align:center;font-size:13px;color:var(--am-ink);font-style:italic;min-height:18px;margin:2px 0 10px}
.am-row{
  display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--line);
  border-radius:14px;background:var(--bg);margin-bottom:16px;
}
.am-label b{font-size:15px;display:block}
.am-label small{font-size:12px;color:var(--muted)}
.switch{position:relative;margin-left:auto;flex:none;width:52px;height:31px;display:inline-block}
.switch input{opacity:0;width:100%;height:100%;margin:0;position:absolute;z-index:2;cursor:pointer}
.switch .knob{
  position:absolute;inset:0;border-radius:999px;background:#d8cdbe;transition:background .15s;
}
.switch .knob::after{
  content:"";position:absolute;top:3px;left:3px;width:25px;height:25px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .15s;
}
.switch input:checked + .knob{background:var(--am-ink)}
.switch input:checked + .knob::after{transform:translateX(21px)}
.sheet-actions{display:flex;gap:10px}
.sheet-actions .btn-ghost{flex:1}
.sheet-actions .btn-primary{flex:1.4}

/* ===================== CONFIRM ===================== */
.confirm-overlay{align-items:center;padding:22px}
.confirm{
  background:var(--card);border-radius:20px;width:100%;max-width:400px;padding:24px 22px;
  box-shadow:0 18px 50px rgba(58,38,34,.35);
}
.confirm h3{margin:0 0 8px;font-size:19px;font-weight:600}
.confirm p{margin:0 0 20px;color:var(--muted);font-size:14.5px}

/* ===================== TUTORIAL ===================== */
.tuto-overlay{
  position:fixed;inset:0;background:rgba(58,38,34,.5);z-index:55;
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.tuto{
  background:var(--card);border-radius:22px;width:100%;max-width:420px;
  padding:26px 24px calc(20px + var(--safe-b));box-shadow:0 18px 50px rgba(58,38,34,.4);
  text-align:center;
}
.tuto-mono{height:26px;width:auto;margin:0 auto 14px}
.tuto-paso h3{margin:0 0 10px;font-size:21px;font-weight:600;letter-spacing:-.01em}
.tuto-paso p{margin:0 0 12px;font-size:15.5px;color:var(--ink);line-height:1.5;text-align:left}
.tuto-paso p b{font-weight:700}
.tuto-demo{
  background:var(--bg);border:1px solid var(--line);border-radius:14px;
  padding:14px;margin:14px 0 4px;pointer-events:none;
}
.tuto-demo .card{border:1px solid var(--line);border-radius:12px;text-align:left}
.tuto-demo .stepper{margin:0;justify-content:center}
.tuto-demo .step-btn{width:56px;height:52px;display:grid;place-items:center;font-size:24px}
.step-num-demo{
  width:84px;display:grid;place-items:center;font-size:30px;font-weight:700;
  border:1.5px solid #d8cdbe;border-radius:12px;background:#fdfbf6;
}
.tuto-demo-cap{font-size:12.5px;color:var(--am-ink);font-style:italic;margin:8px 0 0;text-align:center !important}
.tuto-demo .demo-btn{pointer-events:none}
.tuto-color{display:flex;align-items:flex-start;gap:10px}
.tuto-color .sw{flex:none;width:34px;height:22px;border-radius:6px;margin-top:2px}
.tuto-color .sw.amarillo{background:var(--warn-bg);border-left:4px solid var(--warn-line)}
.tuto-color .sw.rojo{background:var(--rojo-bg);border:1.5px solid var(--rojo-line)}
.tuto-color .sw.gris{background:var(--grp)}
.tuto-dots{display:flex;gap:8px;justify-content:center;margin:16px 0 14px}
.tuto-dots .td{width:9px;height:9px;border-radius:50%;background:var(--line)}
.tuto-dots .td.on{background:var(--accent)}
.side-user .side-out{display:block;width:100%;margin-top:6px}

/* ===================== TOAST / BUSY ===================== */
.toast{
  position:fixed;left:50%;bottom:calc(86px + var(--safe-b));transform:translateX(-50%);
  background:var(--ink);color:#fff;font-size:14px;font-weight:500;padding:11px 18px;
  border-radius:12px;z-index:60;max-width:88%;text-align:center;
  box-shadow:0 6px 20px rgba(0,0,0,.3);
}
.toast.err{background:var(--rojo)}
.busy{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:rgba(242,238,230,.45)}
.spinner{
  width:38px;height:38px;border-radius:50%;border:3.5px solid var(--line);
  border-top-color:var(--accent);animation:spin .8s linear infinite;
}

/* ===================== COMPUTADORA ===================== */
@media (min-width:960px){
  .screen-app{background:var(--bg)}
  .siderail{
    display:flex;flex-direction:column;width:230px;flex:none;background:var(--card);
    border-right:1px solid var(--line);height:100dvh;position:sticky;top:0;
  }
  .side-brand{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:18px 16px 14px;border-bottom:1px solid var(--line)}
  .side-brand img{height:20px;width:auto}
  .side-brand-t{font-size:12.5px;font-weight:700;line-height:1.15}
  .side-brand-t small{display:block;font-weight:500;color:var(--muted);font-size:10.5px;letter-spacing:.02em}
  .side-nav{padding:10px 0;flex:1}
  .nav-item{
    display:flex;align-items:center;gap:11px;padding:12px 16px;font-size:13.5px;color:var(--muted);
    border:none;background:none;width:100%;text-align:left;border-left:3px solid transparent;
  }
  .nav-item .ni{width:20px;text-align:center;font-size:15px}
  .nav-item.active{color:var(--ink);font-weight:700;background:var(--salmon);border-left-color:var(--accent)}
  .nav-item.locked{opacity:.5;cursor:default}
  .nav-item.locked small{margin-left:auto;font-size:10px;text-transform:uppercase;letter-spacing:.04em}
  .side-user{padding:14px 16px calc(14px + var(--safe-b));border-top:1px solid var(--line)}
  .side-user-n{font-size:13.5px;font-weight:600;margin-bottom:8px}
  .side-out{
    background:none;border:1px solid var(--line);border-radius:8px;color:var(--muted);
    font-size:12.5px;padding:6px 14px;
  }
  .main{max-width:none;height:100dvh}
  .appbar{padding:14px 20px}
  .appbar .ico#btn-menu,.appbar .brandmark{display:none}
  .appbar .title{font-size:19px}
  .daybar{padding:8px 22px}
  .summary{justify-content:flex-start}
  .summary .s{flex:none;min-width:130px;padding:10px 18px}
  .deck{padding:16px 22px 20px}
  .deck-inner{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;align-items:start}
  .grp{grid-column:1/-1;border-radius:7px;margin:10px 0 2px;position:static}
  .actionbar{padding:12px 22px}
  .actionbar .btn-primary{max-width:420px;margin:0 auto}
}
@media (max-width:959px){
  .deck-inner{display:block}
}

/* ===================== FERIADO (AR-12/Q-08) ===================== */
.feriado-banner{
  display:flex;gap:9px;align-items:flex-start;
  background:var(--am-bg);border-bottom:1px solid var(--am-line);color:var(--am-ink);
  padding:9px 16px;font-size:12.5px;line-height:1.35;
}
.feriado-banner b{color:var(--am-ink);font-weight:700}
.feriado-banner .fb-ico{flex:none;font-size:15px;line-height:1.2}

/* ===================== SELECTOR DE LOCAL (AR-05) ===================== */
.suc-switch{
  display:flex;gap:8px;background:var(--card);border-bottom:1px solid var(--line);
  padding:8px 16px;
}
.suc-pill{
  flex:1;border:1px solid var(--line);background:var(--bg);color:var(--muted);
  font-size:13px;font-weight:600;padding:7px 10px;border-radius:999px;letter-spacing:.01em;
  transition:transform .08s ease;
}
.suc-pill:active{transform:scale(.98)}
.suc-pill.on{background:var(--accent);color:#fff;border-color:var(--accent)}

/* ===================== GESTIÓN DE ARTÍCULOS (AR-03/AR-09) ===================== */
.catalogo-overlay{
  position:fixed;inset:0;background:rgba(58,38,34,.42);z-index:45;
  display:flex;align-items:flex-end;justify-content:center;
}
.catalogo{
  background:var(--card);border-radius:20px 20px 0 0;width:100%;max-width:560px;
  max-height:92dvh;display:flex;flex-direction:column;
  padding:14px 18px calc(14px + var(--safe-b));box-shadow:0 -8px 30px rgba(58,38,34,.25);
}
.catalogo-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}
.catalogo-head h3{margin:0;font-size:18px;font-weight:600}
.catalogo-sub{margin:3px 0 0;font-size:12.5px;color:var(--muted);line-height:1.35}
.catalogo-head .ico{margin-left:auto;flex:none;background:none;border:none;font-size:20px;color:var(--muted);padding:2px 6px}
.catalogo-add-open{margin-bottom:12px}
.catalogo-form{
  background:var(--bg);border:1px solid var(--line);border-radius:14px;
  padding:12px 13px;margin-bottom:14px;
}
.catalogo-form label{display:block;font-size:12.5px;color:var(--muted);font-weight:600;margin-bottom:9px}
.catalogo-form input[type=text],.catalogo-form input[type=number]{
  width:100%;margin-top:4px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;
  font-family:var(--sans);font-size:15px;color:var(--ink);background:var(--card);font-weight:500;
}
.catalogo-form-row{display:flex;gap:10px}
.catalogo-form-row label{flex:1}
.art-manual-row{
  display:flex;align-items:center;gap:12px;margin:2px 0 12px;
  background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;
}
.art-manual-row span:first-child{display:flex;flex-direction:column}
.art-manual-row small{color:var(--muted);font-weight:400;font-size:11.5px;margin-top:2px}
.catalogo-list{overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1;margin:0 -4px;padding:0 4px}
.cat-loading{padding:30px;text-align:center;color:var(--muted)}
.cat-grupo{margin-bottom:14px}
.cat-grupo-t{
  font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);
  font-weight:700;padding:6px 2px;position:sticky;top:0;background:var(--card);
}
.cat-row{
  display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid var(--line);
}
.cat-row.oculta{opacity:.6}
.cat-info{flex:1;min-width:0}
.cat-nom{font-size:14.5px;font-weight:500;color:var(--ink)}
.cat-meta{font-size:11.5px;color:var(--muted);margin-top:1px}
.cat-act{
  flex:none;border:1px solid var(--rojo-line);color:var(--rojo);background:var(--card);
  font-size:12.5px;font-weight:600;padding:6px 13px;border-radius:999px;
}
.cat-act.restore{border-color:var(--verde);color:var(--verde)}

/* ===================== BUZÓN DE SUGERENCIAS ===================== */
.side-buzon{color:var(--dorado)}
.menu-item.buzon{color:var(--dorado)}
@media (min-width:960px){
  .side-out.side-buzon{color:var(--dorado);border-color:#e4cfa6}
}
.buzon-overlay{
  position:fixed;inset:0;background:rgba(58,38,34,.5);z-index:56;
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.buzon{
  position:relative;background:var(--card);border-radius:22px;width:100%;max-width:440px;
  padding:26px 22px calc(20px + var(--safe-b));box-shadow:0 18px 50px rgba(58,38,34,.4);
  max-height:calc(100dvh - 40px);overflow-y:auto;-webkit-overflow-scrolling:touch;
}
.buzon-x{position:absolute;top:10px;right:10px;background:none;border:none;font-size:20px;color:var(--muted);padding:4px 8px}
.buzon-head{text-align:center;margin-bottom:18px}
.buzon-mono{height:24px;width:auto;margin:0 auto 12px;display:block}
.buzon h3{margin:0 0 8px;font-size:20.5px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
.buzon-lead{margin:0;font-size:14.5px;color:var(--muted);line-height:1.5}
.buzon-lead b{color:var(--ink);font-weight:700}
.buzon-tipos{display:flex;gap:8px;margin-bottom:14px}
.btipo{
  flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;
  border:1.5px solid var(--line);border-radius:14px;background:var(--bg);
  padding:12px 6px;font-size:12.5px;font-weight:600;color:var(--muted);
  transition:transform .08s ease;
}
.btipo:active{transform:scale(.98)}
.btipo .bt-dot{width:12px;height:12px;border-radius:50%;background:var(--line)}
.btipo.idea .bt-dot{background:var(--dorado)}
.btipo.prob .bt-dot{background:var(--rojo)}
.btipo.gusto .bt-dot{background:var(--verde)}
.btipo.on{color:var(--ink);background:var(--card);box-shadow:0 2px 8px rgba(58,38,34,.12)}
.btipo.idea.on{border-color:var(--dorado)}
.btipo.prob.on{border-color:var(--rojo)}
.btipo.gusto.on{border-color:var(--verde)}
.buzon-msg{
  width:100%;border:1.5px solid #d8cdbe;border-radius:14px;background:#fdfbf6;
  padding:13px 14px;font-family:var(--sans);font-size:15.5px;color:var(--ink);
  line-height:1.5;resize:vertical;min-height:96px;
}
.buzon-msg:focus{outline:none;border-color:var(--accent)}
.buzon-count{text-align:right;font-size:11.5px;color:var(--muted);margin:4px 2px 12px}
.buzon-urg{margin-bottom:14px}
.buzon-firma{font-size:12.5px;color:var(--muted);text-align:center;margin:0 0 16px;font-style:italic;min-height:16px}
.buzon-check{
  width:56px;height:56px;border-radius:50%;background:var(--verde-bg);color:var(--verde);
  display:grid;place-items:center;font-size:30px;margin:8px auto 14px;
}
#buzon-done{text-align:center;padding:8px 4px 4px}
.buzon-done-t{margin:0 0 8px}
.buzon-done-msg{margin:0 auto 20px;max-width:320px}
#buzon-done .btn-primary{max-width:220px;margin:0 auto}

/* buzón · pestañas Escribir/Recibidas + lista de recibidas (admin/operaciones) */
.buzon-tabs{display:flex;gap:8px;margin:2px 0 16px}
.btab{
  flex:1;padding:9px 0;border:1px solid var(--line);border-radius:10px;
  background:var(--card);color:var(--muted);font:inherit;font-size:14px;font-weight:600
}
.btab.on{background:var(--accent);border-color:var(--accent);color:#fff}
.buzon-inbox-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.buzon-inbox-head h3{margin:0;font-size:17px;color:var(--ink)}
.buzon-filtros{display:flex;gap:6px}
.bfiltro{
  padding:6px 12px;border:1px solid var(--line);border-radius:999px;
  background:var(--card);color:var(--muted);font:inherit;font-size:12.5px;font-weight:600
}
.bfiltro.on{background:var(--salmon);border-color:var(--rosa);color:var(--ink)}
.buzon-inbox-list{display:flex;flex-direction:column;gap:10px;max-height:52vh;overflow-y:auto;padding-bottom:4px}
.buzon-inbox-msg{font-size:14px;color:var(--muted);text-align:center;margin:18px 6px;line-height:1.5}
.buzon-inbox-msg b{color:var(--ink)}
.buzon-retry{display:block;margin:0 auto;max-width:180px}
.sug-item{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:12px 12px 10px}
.sug-item.resuelta{opacity:.72}
.sug-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}
.sug-tipo{font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--grp);color:var(--ink)}
.sug-tipo.idea{background:var(--azul-bg);color:var(--azul)}
.sug-tipo.prob{background:var(--rojo-bg);color:var(--rojo)}
.sug-tipo.gusto{background:var(--verde-bg);color:var(--verde)}
.sug-urg{font-size:10.5px;font-weight:700;letter-spacing:.04em;padding:2px 7px;border-radius:999px;background:var(--rojo);color:#fff}
.sug-fecha{margin-left:auto;font-size:11.5px;color:var(--muted)}
.sug-quien{font-size:12.5px;color:var(--muted);margin-bottom:6px}
.sug-msg{font-size:14.5px;line-height:1.45;white-space:pre-wrap;word-break:break-word;color:var(--ink)}
.sug-acciones{display:flex;gap:8px;margin-top:10px}
.sug-btn{flex:1;padding:9px 0;font-size:13.5px}
.sug-estado{margin-top:10px;font-size:12.5px;font-weight:600;color:var(--verde)}
.sug-estado.no{color:var(--muted)}

/* ===== E1: Cierre de noche ===== */
.deck-inner.cz{display:flex;flex-direction:column}
.cz-banner{
  background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:10px 14px;margin:10px 12px 2px;font-size:13.5px;color:var(--muted);
}
.cz-banner.conf{background:var(--am-bg);border-color:var(--am-line);color:var(--am-ink)}
.cz-banner.z{background:var(--azul-bg);border-color:var(--azul);color:var(--azul)}
.cz-grp{margin-top:10px}
.cz-row{
  display:flex;align-items:center;gap:10px;background:var(--card);
  border-bottom:1px solid var(--line);padding:10px 14px;
}
.cz-row.done{background:var(--verde-bg)}
.cz-body{flex:1;min-width:0}
.cz-name{font-size:14.5px;font-weight:600;line-height:1.2}
.cz-sub{font-size:12px;color:var(--muted);margin-top:2px}
.cz-right{display:flex;align-items:center;gap:8px;flex:none}
.cz-chip{
  font-size:11px;font-weight:600;border-radius:999px;padding:3px 9px;
  color:var(--muted);background:var(--grp);white-space:nowrap;
}
.cz-chip:empty{display:none}
.cz-chip.ok{background:var(--verde-bg);color:var(--verde);border:1px solid var(--verde)}
.cz-chip.auto{background:var(--bg);color:var(--muted);border:1px dashed var(--line)}
.cz-chip.pend{background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-line)}
.cz-in{
  width:74px;min-height:48px;text-align:center;font:inherit;font-size:19px;font-weight:700;
  color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:10px;
}
.cz-in:focus{outline:2px solid var(--dorado);background:var(--card)}
.cz-cero{
  min-height:48px;padding:0 12px;font:inherit;font-size:12.5px;font-weight:700;
  color:var(--rojo);background:var(--rojo-bg);border:1px solid var(--rojo-line);
  border-radius:10px;cursor:pointer;white-space:nowrap;
}
@media (min-width:960px){
  .deck-inner.cz{max-width:720px;margin:0 auto;width:100%}
  .cz-row{border:1px solid var(--line);border-radius:10px;margin:4px 0}
}

/* ===== v6: tira de venta (dueña/admin) ===== */
.venta-strip{
  background:var(--salmon);border-bottom:1px solid var(--line);
  padding:6px 16px;font-size:12.5px;color:var(--ink);
}
.venta-strip .vs-warn{color:var(--warn);font-weight:700}

/* ===== v6: Producción y despacho (F2) ===== */
.deck-inner.dp{display:flex;flex-direction:column}
.dp-row{
  display:flex;align-items:center;gap:10px;background:var(--card);
  border-bottom:1px solid var(--line);padding:10px 14px;
}
.dp-row.done{opacity:.55;background:var(--verde-bg)}
.dp-body{flex:1;min-width:0}
.dp-l1{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dp-name{font-size:14.5px;font-weight:600;line-height:1.2}
.dp-am{
  font-size:10px;font-weight:800;letter-spacing:.04em;border-radius:6px;padding:2px 6px;
  background:var(--am-bg);color:var(--am-ink);border:1px solid var(--am-line);
}
.dp-am.ok{background:var(--verde-bg);color:var(--verde);border-color:var(--verde)}
.dp-corr{font-size:11px;color:var(--dorado);font-weight:600}
.dp-nota{font-size:12px;color:var(--muted);margin-top:2px}
.dp-right{display:flex;align-items:center;gap:10px;flex:none}
.dp-qty{font-size:21px;font-weight:800;min-width:2ch;text-align:right}
.dp-chip{font-size:11px;font-weight:600;border-radius:999px;padding:3px 9px}
.dp-chip.ok{background:var(--verde-bg);color:var(--verde);border:1px solid var(--verde)}
.dp-go{
  min-height:44px;padding:0 12px;font:inherit;font-size:12.5px;font-weight:700;
  color:var(--accent);background:var(--bg);border:1.5px solid var(--accent);
  border-radius:10px;cursor:pointer;white-space:nowrap;
}
.dp-go:disabled{opacity:.5}
.actionbar .dp-bulk{flex:1}
.actionbar .dp-print{flex:none}
/* ROS-ROLES1 · R1: dos cantidades por línea + estado del comprobante */
.dp-dual{font-size:12.5px;color:var(--muted);margin-top:2px}
.dp-dual b{color:var(--ink);font-weight:700}
.dp-dual.dif b{color:var(--dorado)}
.dp-difpill{display:inline-block;font-size:11px;font-weight:700;color:var(--dorado);
  background:var(--am-bg);border:1px solid var(--am-line);border-radius:999px;padding:0 7px;margin-left:4px}
.dp-qty.ed{position:relative;background:none;border:none;color:var(--ink);cursor:pointer;padding-right:4px}
.dp-qty.dif{color:var(--dorado)}
.dp-qty.ed .pencil{position:relative;top:-8px;left:1px;font-size:10px;color:var(--muted)}
.dp-comp{display:block;margin-top:2px;font-size:11.5px;color:var(--warn);font-weight:600}
.dp-comp.ok{color:var(--verde)}

/* Tarjeta de estado de la orden (buzón 23 jul, Yuris) */
.dp-estado{border:1px solid var(--line);border-radius:12px;background:var(--card);
  padding:10px 14px;margin:0 0 10px;font-size:13px;line-height:1.6;color:var(--ink)}
.dp-estado-t{font-weight:700;font-size:11px;letter-spacing:.05em;text-transform:uppercase;
  color:var(--muted);margin-bottom:4px}
.dp-estado.ok{background:var(--verde-bg);border-color:var(--verde);color:var(--verde);font-size:13.5px}

/* ===== ROS-YURIS (23 jul 2026): pantalla del centro de producción =====
   Dos envíos por línea (AM y PM) con su cantidad, deshacer, y el cajón de
   artículos que Patricia pidió en 0. La columna derecha pasa a apilarse para
   que quepan los dos botones en el teléfono sin romper la fila. */
.dp-right{flex-direction:column;align-items:flex-end;gap:6px}
.dp-envios{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.dp-go-am,.dp-go-pm{min-height:38px;padding:0 10px;font-size:11.5px}
.dp-go-am{border-color:var(--dorado);color:var(--dorado)}
.dp-go.ok{background:var(--verde-bg);border-color:var(--verde);color:var(--verde)}
.dp-go.ok b{font-size:14px}
.dp-undo{min-height:34px;padding:0 8px;font:inherit;font-size:11px;font-weight:600;
  color:var(--muted);background:none;border:1px solid var(--line);border-radius:9px;cursor:pointer;white-space:nowrap}
.dp-undo:hover{color:var(--ink);border-color:var(--ink)}
.dp-otros-item:active{background:var(--grp)}
.dp-falta{font-size:11.5px;font-weight:600;color:var(--warn)}
.dp-falta b{font-size:13px}

/* Cajón "Otros artículos del albarán" */
.dp-otros{margin:14px 0 4px;border-top:1px solid var(--line);padding-top:10px}
.dp-otros-cab{display:flex;align-items:center;justify-content:space-between;width:100%;
  min-height:44px;padding:0 4px;font:inherit;font-size:13px;font-weight:700;color:var(--ink);
  background:none;border:none;cursor:pointer;text-align:left}
.dp-otros-cab .cnt{font-size:11.5px;font-weight:700;color:var(--muted);
  background:var(--grp);border-radius:999px;padding:2px 9px}
.dp-otros-pista{font-size:12px;color:var(--muted);padding:0 4px 6px;line-height:1.4}
/* "Ya está en tu lista": el buscador deja de decir que no existe algo que sí está. */
.dp-otros-ya{font-size:11.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;
  color:var(--muted);padding:8px 4px 4px}
.dp-otros-ya-item{border-style:dashed}
.dp-otros-ya-item .ir{font-size:12.5px;font-weight:700;color:var(--accent)}
/* La fila a la que se saltó parpadea una vez para que la vista la encuentre. */
.dp-row.resaltada{animation:resaltar 2.2s ease-out 1}
@keyframes resaltar{0%,55%{background:var(--grp)}100%{background:transparent}}
/* Atajo al final de la lista (buzón 24 jul, Yuris): mismo cajón, otro extremo. */
.dp-otros-final{display:block;width:100%;min-height:48px;margin:18px 0 6px;padding:0 14px;
  font:inherit;font-size:14px;font-weight:700;color:var(--accent);background:var(--card);
  border:1.5px dashed var(--line);border-radius:12px;cursor:pointer;text-align:center}
.dp-otros-final:hover{border-color:var(--accent);border-style:solid}
.dp-otros-buscar{width:100%;min-height:44px;margin:6px 0 8px;padding:0 12px;font:inherit;font-size:15px;
  color:var(--ink);background:var(--card);border:1.5px solid var(--line);border-radius:10px}
.dp-otros-buscar:focus{outline:none;border-color:var(--accent)}
.dp-otros-lista{display:flex;flex-direction:column;gap:4px;max-height:46vh;overflow-y:auto}
.dp-otros-item{display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-height:44px;padding:0 12px;font:inherit;font-size:14px;color:var(--ink);
  background:var(--card);border:1px solid var(--line);border-radius:10px;cursor:pointer;text-align:left}
.dp-otros-item:hover{border-color:var(--accent)}
.dp-otros-item .mas{font-size:18px;font-weight:800;color:var(--accent);flex:none}
.dp-otros-vacio{font-size:12.5px;color:var(--muted);padding:8px 4px}

/* ROS-YURIS: proponer artículo nuevo (campo libre → correo, no crea catálogo) */
.dp-prop{margin-top:8px;border-top:1px dashed var(--line);padding-top:8px}
.dp-prop-toggle{width:100%;min-height:40px;padding:0 4px;font:inherit;font-size:12.5px;font-weight:600;
  color:var(--dorado);background:none;border:none;cursor:pointer;text-align:left}
.dp-prop-form{margin-top:6px}
.dp-prop-fila{display:flex;gap:6px}
.dp-prop-nombre{flex:1;min-height:44px;padding:0 12px;font:inherit;font-size:15px;color:var(--ink);
  background:var(--card);border:1.5px solid var(--line);border-radius:10px}
.dp-prop-cant{width:74px;min-height:44px;padding:0 10px;font:inherit;font-size:15px;color:var(--ink);
  background:var(--card);border:1.5px solid var(--line);border-radius:10px;text-align:center}
.dp-prop-nombre:focus,.dp-prop-cant:focus{outline:none;border-color:var(--accent)}
.dp-prop-envia{width:100%;min-height:44px;margin-top:6px;font:inherit;font-size:14px;font-weight:700;
  color:var(--card);background:var(--accent);border:none;border-radius:10px;cursor:pointer}
.dp-prop-envia:disabled{opacity:.5}
.dp-prop-pista{font-size:11.5px;color:var(--muted);margin-top:6px;line-height:1.4}
@media (min-width:960px){
  .deck-inner.dp{max-width:720px;margin:0 auto;width:100%}
  .dp-row{border:1px solid var(--line);border-radius:10px;margin:4px 0}
}

/* ===== v6: Supervisión (F4 recortada) ===== */
.deck-inner.sv{display:flex;flex-direction:column;gap:12px;padding:12px}
.sv-vigilancia{
  background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:12px;padding:10px 14px;
}
.sv-vig-t{font-weight:700;color:var(--warn);margin-bottom:4px}
.sv-vig-i{font-size:13px;margin:3px 0}
.sv-ok{
  background:var(--verde-bg);border:1px solid var(--verde);border-radius:12px;
  padding:10px 14px;color:var(--verde);font-weight:600;
}
.sv-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.sv-suc{font-size:16px;font-weight:700;margin-bottom:8px}
.sv-sem{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.sv-pill{
  flex:1;min-width:90px;background:var(--bg);border:1px solid var(--line);border-radius:10px;
  padding:6px 8px;text-align:center;
}
.sv-pill small{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.sv-pill b{font-size:14px}
.sv-pill.ok{background:var(--verde-bg);border-color:var(--verde)}
.sv-pill.ok b{color:var(--verde)}
.sv-pill.mid{background:var(--warn-bg);border-color:var(--warn-line)}
.sv-pill.mid b{color:var(--warn)}
.sv-pill.bad{background:var(--rojo-bg);border-color:var(--rojo-line)}
.sv-pill.bad b{color:var(--rojo)}
.sv-venta{font-size:13.5px;padding:6px 0;border-top:1px dashed var(--line)}
.sv-bloque{border-top:1px dashed var(--line);padding:8px 0 2px;margin-top:4px}
.sv-bt{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
.sv-li{font-size:13px;margin:3px 0}
.sv-li .neg{color:var(--rojo)}
.sv-li .pos{color:var(--verde)}
.sv-mas{font-size:12px;color:var(--muted)}
.sv-chips{display:flex;gap:6px;flex-wrap:wrap}
.sv-chip{
  font-size:12px;background:var(--rojo-bg);color:var(--rojo);border:1px solid var(--rojo-line);
  border-radius:999px;padding:2px 9px;
}
@media (min-width:960px){.deck-inner.sv{max-width:760px;margin:0 auto;width:100%}}

/* ===== v6: imprimible del despacho (la hoja de la pared) ===== */
/* ROS-PDF (23 jul 2026): lo que sale de la impresora del centro.
   Antes salía la pantalla tal cual, a una columna y con aire de app: varias
   hojas para un pedido que cabe en una. Ahora imprime a DOS COLUMNAS, con
   tipografía de documento y una casilla por línea, para que el papel siga
   sirviendo de respaldo cuando en el local no carga la app. */
/* El membrete solo existe en papel: en pantalla ya está el wordmark de la appbar. */
.print-brand{display:none}
@media print{
  @page{size:A4;margin:11mm 10mm 9mm}
  .siderail,.appbar,.actionbar,.suc-switch,.summary,.feriado-banner,
  .menu-overlay,.toast,#busy,.venta-strip{display:none !important}
  /* ROS-MARCA (25 jul): wordmark impreso a la misma altura que en los PDF del
     correo (21pt), para que las tres piezas de papel se lean como una familia. */
  .print-brand{display:block !important;margin:0 0 2pt}
  .print-brand img{display:block;height:21pt;width:auto}
  body{background:#fff;color:#000;font-size:9pt}
  .screen-app,.main{height:auto;max-width:none}
  .deck,.main,.screen-app{overflow:visible;height:auto !important;min-height:0 !important}
  .deck{background:#fff}
  .daybar{border-bottom:1.5pt solid #000;font-size:11pt;color:#000;padding:0 0 3pt}
  .dp-comp{display:none}
  .deck-inner.dp{display:block !important;max-width:none;margin:0;padding:0;
    column-count:2;column-gap:9mm;column-rule:1px solid #c9beb2}
  .grp{background:none;color:#703d21;position:static;padding:3pt 0 1pt;
    font-size:8.5pt;font-weight:700;letter-spacing:.4pt;
    border-bottom:1px solid #c9beb2;break-after:avoid}
  .grp .cnt{color:#8a8078;font-weight:400}
  .dp-row{border:0;border-bottom:1px solid #eee;padding:1pt 0;break-inside:avoid;
    background:none !important;opacity:1 !important;align-items:baseline}
  .dp-row.done{opacity:1 !important}
  .dp-name{font-size:8.5pt;color:#000}
  .dp-dual,.dp-nota,.dp-difpill,.dp-corr{font-size:7pt;color:#8a8078}
  .dp-am{font-size:7pt;background:none;border:0;color:#703d21;font-weight:700}
  .dp-right{flex-direction:row;align-items:baseline;gap:5pt}
  .dp-qty{font-size:9.5pt;font-weight:700;color:#000;padding:0}
  .dp-qty .pencil{display:none}
  .dp-go,.dp-undo,.dp-otros,.dp-falta,.dp-envios,.dp-chip{display:none !important}
  /* Casilla para marcar a mano lo que llegó (el papel es el respaldo). */
  .dp-right::after{content:"\25FB";font-size:10pt;color:#c9beb2}
}

/* v6.1: delta vs semana pasada en la tira y supervisión */
.venta-strip .vs-pos{color:var(--verde);font-weight:600}
.venta-strip .vs-neg{color:var(--rojo);font-weight:600}
.sv-venta .pos{color:var(--verde);font-weight:700}
.sv-venta .neg{color:var(--rojo);font-weight:700}

/* ===================== ROS-OPSAPP1 · F1: Pulso ===================== */
.deck-inner.ops{display:flex;flex-direction:column;gap:12px;padding:12px}
@media (min-width:960px){.deck-inner.ops{max-width:640px;margin:0 auto;width:100%}}
.ops-pills{display:flex;gap:8px}
/* pills de sucursal: reusa el look de .suc-pill existente */

.ops-fresco{color:var(--muted);font-weight:600}
.ops-fresco.ambar{color:var(--warn)}
.ops-fresco.rojo{color:var(--rojo)}

.ops-kpis{display:flex;gap:10px}
.ops-kpi{flex:1;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.ops-kpi-l{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.ops-kpi-b{font-size:26px;font-weight:600;letter-spacing:-.01em;margin-top:2px;line-height:1.1}
.ops-kpi-s{font-size:12px;color:var(--muted);margin-top:3px}

.ops-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.ops-h{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}
.ops-sub{font-size:14px;margin-top:8px}
.ops-sub2{font-size:13px;color:var(--muted);margin-top:4px}
.ops-sub .neg,.ops-sub2 .neg{color:var(--rojo);font-weight:700}
.ops-sub .pos,.ops-sub2 .pos{color:var(--verde);font-weight:700}
.ops-muted{color:var(--muted)}

/* mini-barras de la semana */
.ops-bars{display:flex;align-items:flex-end;gap:6px;height:76px}
.ops-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}
.ops-bar-wrap{width:100%;height:60px;display:flex;align-items:flex-end;justify-content:center}
.ops-bar{width:70%;min-height:4px;background:var(--dorado);border-radius:3px 3px 0 0}
.ops-bar.pico{background:var(--ink)}
.ops-bar.sindato{height:14px;width:70%;background:transparent;border:1.5px dashed var(--line);border-radius:3px}
.ops-bar-x{font-size:10px;color:var(--muted)}

/* barra de composición (formas de pago) */
.ops-mix-box{margin-top:2px}
.ops-mix{display:flex;height:16px;border-radius:8px;overflow:hidden;background:var(--grp)}
.ops-mix-seg{height:100%}
.ops-mix-ef{background:var(--gris)}
.ops-mix-ta{background:var(--dorado)}
.ops-mix-ya{background:var(--azul)}
.ops-mix-pe{background:var(--rosa)}
.ops-mix-leg{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.ops-mix-li{font-size:12px;color:var(--ink);display:inline-flex;align-items:center;gap:5px}
.ops-mix-dot{width:9px;height:9px;border-radius:2px;display:inline-block}
.ops-mix-base{font-size:11px;color:var(--muted);margin-top:6px}

/* avisos */
.ops-avisos{background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:12px;padding:10px 14px}
.ops-av-t{font-weight:700;color:var(--warn);margin-bottom:4px;font-size:13px}
.ops-av-i{font-size:13px;margin:3px 0}

/* ===== ROS-OPSAPP1 F2 · vista Operaciones (Kimberly) ===== */
/* pestañas Ventas | Productos | Inventario */
.ops-tabs{display:flex;gap:6px;background:var(--grp);border-radius:12px;padding:4px}
.ops-tab{flex:1;border:0;background:transparent;border-radius:9px;padding:9px 6px;
  font:inherit;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer}
.ops-tab.on{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.06)}
/* pills de ventana (14d/30d/90d, 7d/14d/30d) */
.ops-winpills{display:flex;gap:8px}
.ops-win{border:1px solid var(--line);background:var(--card);border-radius:999px;
  padding:5px 14px;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer}
.ops-win.on{background:var(--accent);color:#fff;border-color:var(--accent)}
/* filas diarias / mensuales / inventario: main + segunda línea (sin scroll horizontal) */
.ops-drow,.ops-mrow,.ops-irow{padding:9px 2px;border-top:1px solid var(--line)}
.ops-card>.ops-drow:first-of-type,.ops-card>.ops-mrow:first-of-type,.ops-card>.ops-irow:first-of-type{border-top:0}
.ops-drow-top,.ops-mrow-top,.ops-irow-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.ops-drow-d,.ops-irow-p{font-weight:600;font-size:14px}
.ops-mrow-top>span:first-child{font-weight:600;font-size:14px}
.ops-drow-tot,.ops-mrow-top>span:last-child{font-weight:600;font-size:15px;white-space:nowrap}
.ops-irow-d{font-size:12px;color:var(--muted);white-space:nowrap}
.ops-drow-sub,.ops-mrow-sub,.ops-irow-sub{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.5;word-break:break-word}
.ops-drow.sindato .ops-drow-d{color:var(--muted);font-weight:500}
.ops-drow.parcial{background:var(--warn-bg);border-radius:8px;padding-left:8px;padding-right:8px}
.ops-parcial{font-size:11px;font-weight:700;color:var(--warn);text-transform:uppercase;letter-spacing:.04em}
.ops-drow-sub .neg,.ops-mrow-sub .neg,.ops-irow-sub .neg,.ops-irow-d .neg{color:var(--rojo);font-weight:700}
.ops-drow-sub .pos,.ops-mrow-sub .pos,.ops-irow-sub .pos,.ops-irow-d .pos{color:var(--verde);font-weight:700}
/* nota fija / hueco honesto */
.ops-nota{font-size:12px;color:var(--muted);line-height:1.5;padding:2px 2px 0}
/* chips */
.ops-chips{margin-top:8px}
.ops-chip{display:inline-block;font-size:12px;font-weight:600;border-radius:999px;padding:3px 10px}
.ops-chip.rojo{background:var(--rojo-bg);color:var(--rojo);border:1px solid var(--rojo-line)}
/* placeholder "llega pronto" */
.ops-soon{text-align:center}
.ops-soon-t{font-weight:700;font-size:15px;margin-bottom:6px}
.ops-soon-b{font-size:13px;color:var(--muted);line-height:1.5}
/* enlace al Sheet */
.ops-sheetlink{text-align:center;padding:6px 0 2px}
.ops-sheetlink-a{color:var(--dorado);font-weight:600;font-size:14px;text-decoration:none}
.ops-sheetlink-a:active{opacity:.7}
.ops-sheetlink-off{font-size:13px;color:var(--dorado)}

/* ROS-OPSAPP1 F3 · pestaña Productos (cuadro 4) */
.ops-mes{display:flex;align-items:center;gap:8px}
.ops-mes-l{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.ops-mes-sel{flex:1;border:1px solid var(--line);background:var(--card);color:var(--ink);
  border-radius:10px;padding:9px 10px;font:inherit;font-size:14px;-webkit-appearance:none;appearance:none}
/* Banner de mes corto (§6.6): LEY, sin este banner no se pinta un delta de mes corto */
.ops-corto{background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:12px;padding:10px 12px}
.ops-corto-t{font-size:13px;font-weight:700;color:var(--warn);line-height:1.4}
.ops-corto-b{font-size:12px;color:var(--am-ink);margin-top:3px;line-height:1.5}
/* Buscador */
.ops-search{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);
  border-radius:10px;padding:0 10px}
.ops-search-ic{color:var(--muted);font-size:14px}
.ops-search-i{flex:1;border:0;background:transparent;color:var(--ink);font:inherit;font-size:14px;
  padding:10px 0;outline:none;-webkit-appearance:none}
/* Fila de producto con sparkline */
.ops-prow{padding:9px 2px;border-top:1px solid var(--line)}
.ops-card>.ops-prow:first-of-type{border-top:0}
.ops-prow-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.ops-prow-p{font-weight:600;font-size:14px}
.ops-prow-r{font-weight:600;font-size:15px;white-space:nowrap}
.ops-prow-r .neg{color:var(--rojo);font-weight:700}
.ops-prow-r .pos{color:var(--verde);font-weight:700}
.ops-prow-bot{display:flex;align-items:center;gap:10px;margin-top:5px}
.ops-prow-prev{font-size:12px;color:var(--muted)}
.ops-spark{display:block;overflow:visible}
.ops-spark-l{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.ops-spark-d{fill:var(--dorado)}

/* ===== ROS-ROLES1 · R3 · "Mi turno" (marcaje con selfie) ===== */
.cz-chip.warn{background:var(--rojo-bg);color:var(--rojo);border:1px solid var(--rojo-line)}
.deck-inner.turno{display:flex;flex-direction:column;padding:16px;gap:14px;max-width:520px;margin:0 auto}
.turno-estado{
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:22px 18px;text-align:center;box-shadow:0 2px 6px rgba(58,38,34,.06);
}
.turno-estado.dentro,.turno-estado.post_almuerzo{border-color:var(--verde);background:var(--verde-bg)}
.turno-estado.en_almuerzo{border-color:var(--am-line);background:var(--warn-bg)}
.turno-estado.cerrado{background:var(--bg)}
.turno-estado-t{font-size:18px;font-weight:700;margin-bottom:14px}
.turno-aviso{font-size:12.5px;color:var(--warn);margin-bottom:12px}
.turno-btns{display:flex;flex-direction:column;gap:10px}
.turno-btn{
  width:100%;border:none;border-radius:12px;padding:20px;font-size:18px;font-weight:800;
  letter-spacing:.02em;color:#fff;display:flex;align-items:center;justify-content:center;gap:10px;
  box-shadow:0 3px 10px rgba(58,38,34,.28);cursor:pointer;
}
.turno-btn.entrada{background:var(--verde)}
.turno-btn.salida{background:var(--accent)}
.turno-btn.almuerzo{background:var(--azul)}
/* Botón secundario (p. ej. "Salir a almuerzo" bajo "Marcar salida"): discreto. */
.turno-btn.secundario{
  padding:13px;font-size:15px;font-weight:700;color:var(--azul);
  background:var(--card);border:1.5px solid var(--azul);box-shadow:none;
}
/* Resumen del día: los 4 hitos con su hora. */
.turno-hitos{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;
  background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 6px}
.turno-hito{text-align:center;opacity:.5}
.turno-hito.on{opacity:1}
.turno-hito .th-k{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.02em;line-height:1.2}
.turno-hito .th-v{font-size:15px;font-weight:800;color:var(--ink);margin-top:3px}
.turno-hito.on .th-v{color:var(--verde)}
.turno-horas{display:flex;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.turno-horas .s{flex:1;text-align:center;padding:12px 6px;border-right:1px solid var(--line)}
.turno-horas .s:last-child{border-right:0}
.turno-horas .n{font-size:20px;font-weight:800;color:var(--ink)}
.turno-horas .k{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-top:2px}
.turno-nada{padding:22px;text-align:center;color:var(--muted);font-size:13.5px}
.turno-dispositivo{
  margin-top:6px;background:var(--card);border:1px dashed var(--line);border-radius:12px;padding:14px;
}
.turno-dispositivo .td-t{font-size:13px;font-weight:700;margin-bottom:6px}
.turno-dispositivo .td-estado{font-size:12.5px;color:var(--muted);margin-bottom:10px}
.turno-dispositivo .td-estado.ok{color:var(--verde)}
.turno-dispositivo .td-btn{padding:11px}
.dev-field{display:block;font-size:12.5px;color:var(--muted);font-weight:600;margin:10px 0 0}
.dev-field input{
  width:100%;margin-top:5px;font:inherit;font-size:15px;color:var(--ink);
  background:var(--bg);border:1.5px solid var(--line);border-radius:10px;padding:11px 12px;
}

/* cámara */
.cam-overlay{
  position:fixed;inset:0;z-index:60;background:rgba(30,20,18,.55);
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.cam{
  background:var(--card);border-radius:16px;padding:20px;width:100%;max-width:400px;
  box-shadow:0 12px 40px rgba(0,0,0,.3);
}
.cam h3{font-size:17px;font-weight:700;text-align:center}
.cam-hint{font-size:12.5px;color:var(--muted);text-align:center;margin:6px 0 14px}
.cam-frame{
  width:100%;aspect-ratio:4/3;background:#000;border-radius:12px;overflow:hidden;
  display:flex;align-items:center;justify-content:center;margin-bottom:14px;
}
.cam-frame video,.cam-frame img{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
.cam-file-wrap{margin-bottom:14px}
.cam-file-lbl{display:flex;cursor:pointer}
.cam-actions{flex-wrap:wrap}
.cam-actions .btn-ghost,.cam-actions .btn-primary{flex:1;min-width:44%}

/* ============ ROS-ROLES1 R4 · Planilla ============ */
.deck-inner.pl{display:flex;flex-direction:column;gap:12px}
.pl-hoy-acc,.pl-qacc,.pl-qsel{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pl-mini{padding:8px 12px;font-size:14px;border-radius:10px}
.pl-add{align-self:flex-start}
.pl-aviso{font-size:12.5px;color:var(--muted);background:var(--warn-bg);border:1px solid var(--am-line);
  border-radius:10px;padding:8px 12px}
.pl-nada,.pl-emp-m,.pl-msub{color:var(--muted);font-size:13px}
.pl-nada{padding:10px 4px}

/* --- HOY: filas de revisión --- */
.pl-mrow{display:flex;gap:10px;align-items:center;background:var(--card);border:1px solid var(--line);
  border-radius:12px;padding:8px 10px}
.pl-thumb{flex:none;width:48px;height:48px;border-radius:8px;overflow:hidden;background:var(--grp);
  display:grid;place-items:center}
.pl-thumb img{width:100%;height:100%;object-fit:cover}
.pl-thumb-off{font-size:10px;color:var(--muted);text-align:center;padding:2px}
/* R8 · miniatura servida por la app: "Ver foto" (lazy) / "cargando…". */
.pl-thumb-ver{cursor:pointer}
.pl-thumb-cta{font-size:10px;font-weight:700;color:var(--azul);text-align:center;padding:2px}
.pl-thumb-load{font-size:10px;color:var(--muted);text-align:center;padding:2px}
.pl-mbody{flex:1;min-width:0}
.pl-mname{font-weight:700;font-size:14.5px}
.pl-macc{display:flex;gap:6px;flex-wrap:wrap}
.pl-macc button{border-radius:9px;padding:6px 10px;font-size:13px;font-weight:600;border:1px solid var(--line);background:var(--card);cursor:pointer}
.pl-ok{border-color:var(--verde)!important;color:var(--verde)}
.pl-no{border-color:var(--rojo-line)!important;color:var(--rojo)}
.pl-anular{color:var(--muted)}

/* --- QUINCENA: estado + tablero --- */
.pl-estado{font-size:12.5px;font-weight:700;border-radius:20px;padding:4px 12px}
.pl-e-abierta{background:var(--grp);color:var(--gris)}
.pl-e-revisada,.pl-e-enviada{background:var(--azul-bg);color:var(--azul)}
.pl-e-pagada{background:var(--verde-bg);color:var(--verde)}
.pl-grid-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:12px}
.pl-grid{border-collapse:collapse;font-size:12.5px;white-space:nowrap;min-width:100%}
.pl-grid th,.pl-grid td{border:1px solid var(--line);padding:5px 7px;text-align:center}
.pl-grid th{background:var(--grp);font-weight:700;color:var(--ink)}
.pl-grid th small{display:block;font-size:9px;color:var(--muted);font-weight:600}
.pl-sticky{position:sticky;left:0;z-index:2;background:var(--card);text-align:left!important;min-width:104px}
.pl-grid th.pl-sticky{background:var(--grp)}
.pl-name{font-weight:600}
.pl-cell{cursor:pointer;min-width:30px}
.pl-c-trabajado{background:var(--verde-bg);color:var(--verde);font-weight:600}
.pl-c-libre{background:#eef1f4;color:var(--gris)}
.pl-c-incapacidad{background:var(--azul-bg);color:var(--azul);font-weight:700}
.pl-c-sin_justificacion{background:var(--rojo-bg);color:var(--rojo);font-weight:700}
.pl-c-sin_registro{background:var(--warn-bg);color:var(--warn);font-weight:700}
.pl-c-vacio{background:var(--card)}
.pl-cell.pl-tarde{box-shadow:inset 0 -3px 0 var(--warn-line)}
.pl-tot{background:#faf6ef;font-weight:600}
.pl-pagar{color:var(--verde);font-weight:700}
.pl-sinsal{color:var(--muted);font-style:italic}
.pl-legenda{display:flex;flex-wrap:wrap;gap:6px}
.pl-lg{font-size:11px;border-radius:8px;padding:3px 8px}
.pl-tarde-lg{background:var(--card);border:1px solid var(--warn-line);color:var(--warn)}

/* --- celda detalle + formularios (modal) --- */
.pl-modal{max-width:440px;text-align:left}
#pl-body{margin:4px 0 10px}
.pl-cd-h{font-size:15px;margin-bottom:4px}
.pl-cd-l{font-size:13px;color:var(--muted);margin-bottom:8px}
.pl-cd-grp{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:8px 0 4px}
.pl-cd-grp span{display:inline}
.pl-cd-btns{display:flex;flex-wrap:wrap;gap:6px}
.pl-cd-b{border:1px solid var(--line);background:var(--card);border-radius:9px;padding:7px 11px;font-size:13px;font-weight:600;cursor:pointer;color:var(--ink)}
.pl-cd-motivo{width:100%;min-height:40px;margin:2px 0 6px;padding:0 10px;font:inherit;font-size:14px;
  color:var(--ink);background:var(--card);border:1.5px solid var(--line);border-radius:9px}
.pl-cd-motivo:focus{outline:none;border-color:var(--accent)}

/* ===== ROS-APP5 · C: Horarios (sugeridor de Kimberly) ===== */
.hor-nav{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 8px}
.hor-conf{border:1px solid var(--am-line);background:var(--am-bg);color:var(--am-ink);
  border-radius:10px;padding:10px 12px;margin:0 0 10px;font-size:13px;line-height:1.55}
.hor-c{cursor:pointer;font-weight:700;user-select:none}
.hor-A{background:var(--am-bg);color:var(--am-ink)}
.hor-C{background:var(--salmon);color:var(--accent)}
.hor-T{color:var(--muted)}
.hor-L{background:var(--verde-bg);color:var(--verde)}
.hor-flags{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:10px 12px;margin:0 0 10px}
.hor-frow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:7px 0;border-bottom:1px solid var(--line)}
.hor-frow:last-child{border-bottom:none}
.hor-fname{font-size:14px;font-weight:600;min-width:110px}
.hor-fctl{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.hor-tog{border:1px solid var(--line);background:none;color:var(--muted);border-radius:999px;
  padding:5px 12px;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.hor-tog.on{background:var(--verde-bg);border-color:var(--verde);color:var(--verde)}
.hor-sel{font:inherit;font-size:12.5px;color:var(--ink);background:var(--card);
  border:1px solid var(--line);border-radius:9px;padding:5px 8px;min-height:34px}
.pl-form{display:flex;flex-direction:column;gap:8px}
.pl-frow{display:flex;gap:8px}
.pl-frow .pl-fld{flex:1}
.pl-fld{display:flex;flex-direction:column;font-size:12.5px;font-weight:600;color:var(--muted);gap:3px}
.pl-fld input,.pl-fld select{font-size:15px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--ink);font-family:inherit}
.pl-check{flex-direction:row;align-items:center;gap:8px;font-weight:600;color:var(--ink)}
.pl-check input{width:auto}

/* --- EQUIPO --- */
.pl-emp{display:flex;gap:10px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:9px 12px}
.pl-emp.inactiva{opacity:.55}
.pl-emp-body{flex:1;min-width:0}
.pl-emp-n{font-weight:700;font-size:14.5px}
.pl-emp-sal{font-size:12px;color:var(--muted);margin-top:2px}
/* ROS-ROLES1 R5: botones de acción de la fila de empleada (Editar + enrolar/quitar) */
.pl-emp-acc{display:flex;flex-direction:column;gap:6px;flex-shrink:0}

/* ===== ROS-ROLES1 R6 · Pestaña Recetas (BOM) ===== */
.rec-list{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.rec-card{display:flex;flex-direction:column;gap:6px}
.rec-card.falta{background:var(--warn-bg);border-color:var(--warn-line)}
.rec-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rec-name{font-weight:700;font-size:14px}
.rec-badge{font-size:11px;font-weight:700;border-radius:999px;padding:2px 9px;white-space:nowrap}
.rec-badge.falta{background:var(--warn-line);color:#5a4300}
.rec-badge.ok{background:var(--verde-bg);color:var(--verde)}
.rec-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--line)}
.rec-prod{flex:1;font-size:13px}
.rec-cant{font-size:13px;color:var(--accent);white-space:nowrap}
.rec-acc{display:flex;gap:6px;flex-shrink:0}
.rec-mini{font-size:11px;padding:3px 9px;border:1px solid var(--line);background:var(--card);border-radius:999px;color:var(--gris);cursor:pointer}
.rec-mini.danger{color:var(--rojo);border-color:var(--rojo-line)}
.rec-cta{align-self:flex-start;margin-top:4px;font-size:12px;font-weight:700;padding:5px 12px;border:1px dashed var(--am-line);background:transparent;border-radius:999px;color:var(--am-ink);cursor:pointer}
.rec-form{display:flex;flex-direction:column;gap:10px}
.rec-form-ins{font-size:13px;color:var(--gris)}
.rec-field{display:flex;flex-direction:column;gap:4px}
.rec-flabel{font-size:12px;font-weight:600;color:var(--muted)}
.rec-in{font:inherit;font-size:15px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.rec-in[readonly]{background:var(--grp);color:var(--gris)}
.rec-help{font-size:12px;color:var(--muted);line-height:1.4}
.rec-sug{margin-top:12px}
.rec-sug-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px solid var(--line)}
.rec-sug-row:first-of-type{border-top:0}
.rec-sug-row.muted .rec-prod{color:var(--muted)}
.rec-sug .rec-help{margin-top:8px}
/* pill de insumo en la línea del pedido de Patricia */
.p-insumo{display:inline-block;margin-top:3px;font-size:11px;color:var(--am-ink);background:var(--am-bg);border:1px solid var(--am-line);border-radius:999px;padding:1px 8px}
.deck.lista .card .p-insumo{font-size:10px;padding:0 6px}

/* ============ ROS-APP4 · A: tablero "Turnos" (Kimberly) ============ */
.tn-board{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.tn-nota{color:var(--muted);font-size:13px;padding:8px 4px}
.tn-grp{margin-top:6px}
.tn-p{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.tn-row{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;border:0;
  background:none;cursor:pointer;font:inherit;text-align:left}
.tn-dot{flex:none;width:12px;height:12px;border-radius:50%;background:var(--grp)}
.tn-row.en_turno .tn-dot{background:var(--verde)}
.tn-row.almuerzo .tn-dot{background:var(--dorado)}
.tn-row.fuera .tn-dot{background:#b9b2a8}
.tn-nombre{font-weight:700;font-size:14.5px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.tn-est{font-size:12.5px;color:var(--muted);white-space:nowrap}
.tn-row.en_turno .tn-est{color:var(--verde);font-weight:600}
.tn-row.almuerzo .tn-est{color:var(--dorado);font-weight:600}
.tn-det{border-top:1px solid var(--line);padding:8px 12px;display:flex;flex-direction:column;gap:6px}
.tn-mk{display:flex;align-items:center;gap:8px;font-size:13.5px}
.tn-mk-t{color:var(--muted);min-width:130px}
.tn-mk-h{font-variant-numeric:tabular-nums}
.tn-mk-n{font-size:11px;color:var(--muted);background:var(--grp);border-radius:8px;padding:2px 7px}
.tn-thumb{width:40px;height:40px;margin-left:auto}

/* ============ ROS-APP4 · B: aprobación en Planilla ============ */
.pl-aviso-warn{border-color:var(--rojo-line);color:var(--rojo);background:var(--rojo-bg)}
.pl-cell.pl-sinaprob{box-shadow:inset 0 0 0 2px var(--dorado);border-radius:4px}
.pl-sinaprob-lg{color:var(--dorado);font-weight:700}
