:root {
  --b: #C45B2C;
  --bd: #823A1D;
  --bh: var(--bd);
  --bg: #F7F4F1;
  --line: #E8D9D0;
  --txt: #30231D;
  --mute: #76665D;
  --bad: #C62828;
  --ok: #2E7D5B;
  --aviso: #98512A;
  --warn: #FBF5EF;
  --sel: #F6E2D4;
  --p: var(--b);
  --pd: var(--bd);
  --pl: var(--sel);
  --fondo: var(--bg);
  --borde: var(--line);
  --ing: #2F5566;
  --bad-bg: #FBEAEA;
  --ok-strong: #1F6B4A;
  --ok-bg: #E3F1EA;
  --brand-deep: #3A241B;
  --neutral-bg: #EEE7E2;
  --neutral: #766C66;
  --neutral-deep: #555;
  --surface-soft: #FBF8F5;
  --bad-border: #E8B4B4;
  --bad-soft: #F0CACA;
  --bad-softer: #F8E0E0;
  --surface: #fff;
  --warning-bg-soft: #FFF2DF;
  --warning: #D67820;
  --warning-border: #E9C78F;
  --warning-bg: #FFF6EA;
  --warning-border-soft: #F0DDBD;
  --warning-strong: #9E4D19;
  --warning-soft: #FFE7D3;
  --warning-light: #FFF4CC;
  --warning-alt: #7A5F00;
  --warning-yellow: #E0B000;
  --warning-text: #6B3E00;
  --warning-muted: #8A8A8A;
  --ok-border: #BFE0CF;
  --line-soft: #EAE2DC;
  --ok-hover: #256B4D;
  --report-soft: #F5ECE6;
}

.mc-caja-modal { width: min(480px, calc(100vw - 32px)); max-height: 90vh; overflow-y: auto; padding: 24px; border: 1px solid var(--line); border-radius: 12px; color: var(--txt); background: var(--surface); box-shadow: 0 16px 50px #0003; }
.mc-caja-modal::backdrop { background: #30231d80; }
.mc-caja-modal h2 { font-size: 19px; line-height: 1.4; letter-spacing: normal; }
.mc-caja-modal p, .mc-caja-modal small { line-height: 1.5; }
.mc-caja-modal small { display: block; margin-top: 8px; color: var(--mute); }
.mc-caja-modal input { min-height: 42px; }
.mc-caja-acciones { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 20px; }
.cons-alertas { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; }
.cons-alerta { padding: 12px 16px; border: 1px solid var(--warning-border); border-radius: 8px; background: var(--warning-bg); color: var(--warning-strong); }
.cons-alerta.es-vencida { border-color: var(--bad-border); background: var(--bad-bg); color: var(--bad); }
.cons-page .cons-confirmacion { display: flex; gap: 10px; align-items: flex-start; margin-top: 18px; }
.cons-page .cons-confirmacion input { min-width: 18px; width: 18px; margin-top: 2px; }
.cons-page input[readonly], .cons-page input:disabled { background: var(--surface-soft); color: var(--mute); }
.rotacion-orden,.dona-filtro { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 12px 0; }
.dona-filtro label { display: block; margin-bottom: 6px; }
.rotacion-orden select,.dona-filtro select { width: auto; min-width: 190px; padding: 9px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); color: var(--txt); }
.rotacion-barras { list-style: none; margin: 14px 0 6px; padding: 0; display: grid; gap: 8px; }
.rotacion-barras li { display: grid; grid-template-columns: minmax(110px,240px) 1fr 56px; align-items: center; gap: 12px; }
.rb-nombre { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rb-pista { height: 18px; border-radius: 4px; background: var(--neutral-bg); overflow: hidden; }
.rb-barra { display: block; height: 100%; border-radius: 4px; }
.rb-valor { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
@media (max-width: 560px) { .rotacion-barras li { grid-template-columns: 1fr 56px; gap: 4px 10px; } .rb-nombre { grid-column: 1 / -1; } }
#rotacion-leyenda { list-style: none; padding: 0; margin: 14px 0; display: flex; flex-wrap: wrap; gap: 8px 22px; }
#rotacion-leyenda li,#dona-leyenda li { display: flex; align-items: center; gap: 10px; }
.dona-cuerpo { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin: 16px 0; }
#dona-grafico { width: min(100%,260px); }
#dona-grafico svg { display: block; width: 100%; }
#dona-leyenda { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.dona-centro-valor { font-size: 24px; font-weight: 700; fill: var(--txt); }
.dona-centro-texto { font-size: 13px; fill: var(--mute); }
.rotacion-color { width: 14px; height: 14px; border-radius: 3px; flex-shrink: 0; }
#mc-caja-msg:empty { display: none; }
#mc-caja-msg.e { background: var(--bad-bg); border: 1px solid var(--bad-border); color: var(--bad); padding: 12px; border-radius: 6px; }

/* Panel del primer flujo central. Mantiene la paleta y los componentes compartidos. */
.central-page { max-width: 1250px; margin: 0 auto; padding: 24px; }
.central-login { max-width: 560px; }
.central-page.central-login form { display: block; }
.central-login input { margin: 8px 0 16px; }
.central-page form { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 12px 0; }
.central-page form[hidden] { display: none; }
.central-page [hidden] { display: none !important; }
.central-page summary { cursor: pointer; padding: 12px 0; font-weight: 600; color: var(--bd); }
.central-page label { display: flex; flex-direction: column; gap: 6px; flex: 1 1 170px; }
.central-page :is(input,select) { min-width: 0; width: 100%; padding: 10px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
.central-page button { padding: 10px 15px; border: 1px solid var(--b); border-radius: 8px; background: var(--b); color: var(--surface); cursor: pointer; }
.central-page button:disabled { opacity: .5; cursor: default; }
.central-page table { width: 100%; border-collapse: collapse; }
.central-page :is(th,td) { padding: 10px; text-align: left; border-bottom: 1px solid var(--line); }
.central-page .table-wrap { overflow-x: auto; }
.central-page td:first-child { overflow-wrap: anywhere; }

/* Entregas, liquidaciones e informe de consignaciones. */
.cons-page { max-width: 1400px; margin: 0 auto; padding: 24px; }
.cons-toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: 14px; margin-bottom: 16px; }
.cons-toolbar > :first-child { flex: 1; min-width: 220px; }
.cons-page h1 { margin: 0; }
.cons-page h2 { margin: 0 0 16px; }
.cons-page .card { margin-bottom: 20px; padding: 22px; }
.cons-help, .cons-page small { color: var(--mute); line-height: 1.6; }
.cons-help { margin: 8px 0 20px; }
.cons-page label { display: block; margin: 12px 0 6px; }
.cons-page input, .cons-page select, .cons-page textarea { width: 100%; min-width: 100px; padding: 10px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); color: var(--txt); }
.cons-page button { border: 1px solid var(--b); border-radius: 8px; padding: 10px 16px; background: var(--surface); color: var(--bd); cursor: pointer; font-weight: 600; }
.cons-page button.p { background: var(--b); color: var(--surface); }
.cons-page button:disabled { cursor: default; opacity: .5; }
.cons-page button:hover:not(:disabled) { background: var(--sel); color: var(--bd); }
.cons-page button.p:hover:not(:disabled) { background: var(--bd); color: #fff; }
.cons-page :is(button,input,select,textarea,a):focus-visible { outline: 2px solid var(--bd); outline-offset: 3px; }
.cons-table { overflow-x: auto; margin: 14px 0; }
.cons-table table { width: 100%; border-collapse: collapse; }
.cons-table :is(th,td) { padding: 12px 10px; text-align: left; border-bottom: 1px solid var(--line); }
.cons-table th { background: var(--surface-soft); font-weight: 600; }
.cons-doc { overflow-wrap: anywhere; min-width: 125px; max-width: 260px; font-size: 12px; }
.cons-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: 16px; margin-bottom: 16px; }
.cons-actions { display: flex; justify-content: flex-end; gap: 12px; flex-wrap: wrap; margin-top: 20px; }
.cons-page fieldset { border: 1px solid var(--line); border-radius: 8px; margin-top: 20px; padding: 16px; }
.cons-total { font-size: 19px; font-weight: 650; color: var(--bd); }
.cons-evento { border-top: 1px solid var(--line); padding: 14px 0; }
.cons-evento summary { cursor: pointer; font-weight: 600; }
@media (max-width: 650px) { .cons-page { padding: 14px; } .cons-page .card { padding: 14px; } .cons-table table { min-width: 650px; } }

* { box-sizing: border-box; }
html { min-width: 320px; }
body { margin: 0; background: var(--bg); color: var(--txt); font: 14px "Segoe UI", Tahoma, sans-serif; }
:root { --titlebar-h: 0px; }
/* Ventana sin marco (Windows): la barra es fija y el contenido se desplaza debajo de ella. */
body.has-titlebar { --titlebar-h: 46px; padding-top: var(--titlebar-h); }
@media print { .desktop-titlebar { display: none; } body.has-titlebar { --titlebar-h: 0px; padding-top: 0; } }
button, input, select, textarea { font: inherit; }
a { color: var(--b); font-weight: 600; }
.desktop-titlebar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  display: flex;
  height: 46px;
  align-items: stretch;
  border-bottom: 1px solid rgba(255,255,255,.14);
  background: rgba(39,25,19,.76);
  color: #fff;
  -webkit-backdrop-filter: blur(12px) saturate(130%);
  backdrop-filter: blur(12px) saturate(130%);
  user-select: none;
}
.desktop-titlebar-drag {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  align-items: center;
  padding: 0 18px;
  color: rgba(255,255,255,.94);
  font-size: 13px;
  font-weight: 650;
  letter-spacing: .01em;
  cursor: default;
}
.desktop-titlebar .desktop-window-button {
  box-sizing: border-box;
  margin: 0;
  box-shadow: none;
  display: flex;
  flex: 0 0 48px;
  width: 48px;
  height: 45px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(255,255,255,.92);
  cursor: default;
}
.desktop-titlebar .desktop-window-button:hover { background: rgba(255,255,255,.13); color: #fff; }
.desktop-titlebar .desktop-window-button.close:hover { background: #C42B1C; color: #fff; }
.desktop-titlebar .desktop-window-button svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }
.desktop-titlebar .desktop-window-button .window-icon-restore, .desktop-titlebar .desktop-window-button.is-maximized .window-icon-maximize { display: none; }
.desktop-titlebar .desktop-window-button.is-maximized .window-icon-restore { display: block; }
main { max-width: 1100px; margin: 0 auto; padding: 18px; }
h1 { margin: 0 0 14px; color: var(--b); font-size: 18px; }
h2 { margin: 0 0 10px; color: var(--b); font-size: 13px; letter-spacing: .05em; }
.card { margin-bottom: 14px; padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.hidden { display: none !important; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 6px 8px; border-bottom: 1px solid var(--line); text-align: left; }
th { color: var(--mute); font-size: 12px; }
td.n, th.n { text-align: right; white-space: nowrap; }
.vacio { padding: 14px; color: var(--mute); text-align: center; }
.tag { padding: 2px 8px; border-radius: 10px; font-size: 12px; font-weight: 600; }
label { display: block; margin-bottom: 3px; color: var(--mute); font-size: 12px; font-weight: 600; }
input, select { width: 100%; padding: 7px 8px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); }
button { padding: 8px 14px; border: 1px solid var(--b); border-radius: 6px; background: #fff; color: var(--b); font-family: inherit; font-size: 14px; font-weight: 600; white-space: nowrap; cursor: pointer; }
button.p { background: var(--b); color: #fff; }
button.p:hover:not(:disabled) { background: var(--bd); }
button.d { border-color: var(--bad); color: var(--bad); }
button.s { padding: 3px 9px; font-size: 12px; }
button:disabled { opacity: .5; cursor: default; }
#msg { min-height: 20px; margin: 0 0 8px; color: var(--bad); font-weight: 600; white-space: pre-line; }
#msg.e, .e { color: var(--bad); }
#msg.o, .o { color: var(--ok); }
#estado { min-height: 22px; margin: 0 0 10px; color: var(--ok-strong); font-weight: 600; }
#estado.error { color: var(--bad); }
#msg.o, #estado.o, .msg.o {
  min-height: 0;
  margin: 0 0 10px;
  padding: 10px 14px;
  border: 1px solid var(--ok-border);
  border-radius: 6px;
  background: var(--ok-bg);
  color: var(--ok-strong);
}
#msg.e, #estado.e, .msg.e {
  min-height: 0;
  margin: 0 0 10px;
  padding: 10px 14px;
  border: 1px solid var(--bad-border);
  border-radius: 6px;
  background: var(--bad-bg);
  color: var(--bad);
}
.mc-dialog { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(58,36,27,.45); }
.mc-dialog[hidden] { display: none; }
.mc-dialog-card { width: min(440px, 100%); padding: 20px; border-radius: 10px; background: #fff; color: var(--txt); box-shadow: 0 10px 40px rgba(0,0,0,.3); font-size: 14px; }
.mc-dialog-card p { margin: 0 0 16px; line-height: 1.45; white-space: pre-line; }
.mc-dialog-actions { display: flex; justify-content: flex-end; gap: 10px; }
.mc-dialog-actions button { padding: 8px 16px; }
.mc-dialog-actions button.p { background: var(--b); color: #fff; }
.mc-dialog-actions button.p:hover { background: var(--bd); }

.app-shell { position: relative; z-index: 5; color: #fff; }
.app-topbar { background: var(--brand-deep); color: #fff; }
.app-topbar-main {
  display: flex;
  align-items: center;
  gap: 18px;
  min-height: 46px;
  max-width: 1480px;
  margin: 0 auto;
  padding: 4px 22px;
}
.app-brand { display: inline-flex; align-items: center; gap: 10px; color: #fff !important; text-decoration: none; min-width: 0; }
.app-brand-name { color: #fff; font-size: 19px; line-height: 1; font-weight: 750; letter-spacing: -.025em; white-space: nowrap; }
.app-account { display: flex; align-items: center; gap: 20px; margin-left: auto; min-width: 0; font-size: 13px; }
.app-user { display: flex; flex-direction: column; gap: 2px; min-width: 0; color: #fff; }
.app-user-name { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-user-role { color: #c9c4c1; font-size: 11px; }
.app-account-link, .app-logout { color: #f4efec !important; font-weight: 600; text-decoration: none; white-space: nowrap; }
.app-account-link:hover, .app-logout:hover { color: #fff !important; text-decoration: underline; text-underline-offset: 3px; }
.app-account form { margin: 0; }
.app-logout { background: none; border: 0; padding: 4px 0; cursor: pointer; font-size: inherit; }
.app-menu-toggle { display: none; }

.app-navigation {
  display: flex;
  align-items: stretch;
  gap: 2px;
  min-height: 74px;
  padding: 0 max(16px, calc((100% - 1440px) / 2));
  overflow-x: auto;
  background: var(--b);
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.45) transparent;
}
.app-navigation::-webkit-scrollbar { height: 5px; }
.app-navigation::-webkit-scrollbar-thumb { background: rgba(255,255,255,.4); border-radius: 4px; }
.app-nav-link {
  display: flex;
  flex: 0 0 auto;
  min-width: 92px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 11px 15px 9px;
  border: 0;
  border-bottom: 4px solid transparent;
  border-radius: 0;
  background: transparent;
  color: #fff !important;
  text-align: center;
  text-decoration: none !important;
  font-size: 13px;
  font-weight: 650;
  transition: background-color .15s ease, border-color .15s ease;
}
.app-nav-group-toggle { cursor: pointer; }
.app-nav-group-toggle[aria-expanded="true"] { background: rgba(43,37,34,.16); }
.app-nav-chevron {
  display: inline-block;
  width: 7px;
  height: 7px;
  margin: 0 0 3px 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: transform .15s ease;
}
.app-nav-group-toggle[aria-expanded="true"] .app-nav-chevron { margin-bottom: -1px; transform: rotate(225deg); }
.app-nav-link svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.app-nav-link:hover, .app-nav-link:focus-visible { background: rgba(43,37,34,.18); }
.app-nav-link.is-active { background: var(--bd); border-bottom-color: #fff; }
.app-nav-link:focus-visible, .app-menu-toggle:focus-visible, .app-logout:focus-visible { outline: 2px solid #fff; outline-offset: -4px; }
.app-subnavigation {
  display: flex;
  min-height: 47px;
  align-items: stretch;
  padding: 0 max(16px, calc((100% - 1440px) / 2));
  overflow-x: auto;
  border-bottom: 1px solid var(--line);
  background: var(--surface-soft);
  scrollbar-width: thin;
}
.app-subnavigation[hidden], .app-subnav-group[hidden] { display: none; }
.app-subnav-group { display: flex; flex: 0 0 auto; align-items: stretch; gap: 4px; }
.app-subnav-link {
  display: inline-flex;
  align-items: center;
  padding: 9px 14px 7px;
  border-bottom: 3px solid transparent;
  color: var(--mute);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}
.app-subnav-link:hover, .app-subnav-link:focus-visible { background: var(--sel); color: var(--bd); }
.app-subnav-link.is-active {
  border: 1px solid var(--line);
  border-bottom: 3px solid var(--b);
  border-radius: 7px 7px 2px 2px;
  background: var(--sel);
  color: var(--bd);
  font-weight: 700;
  box-shadow: 0 2px 6px rgba(58,36,27,.08);
}
.app-subnav-link:focus-visible { outline: 2px solid var(--b); outline-offset: -3px; }

@media (max-width: 760px) {
  .app-topbar-main { min-height: 48px; gap: 12px; padding: 4px 14px; }
  .app-menu-toggle {
    display: flex;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border: 1px solid rgba(255,255,255,.32);
    border-radius: 6px;
    background: transparent;
    color: #fff;
    cursor: pointer;
  }
  .app-menu-toggle span { display: block; width: 19px; height: 2px; border-radius: 2px; background: currentColor; }
  .app-brand-name { font-size: 18px; }
  .app-account { gap: 12px; font-size: 12px; }
  .app-user-role, .app-help-link { display: none; }
  .app-navigation { display: none; min-height: 0; padding: 8px 10px 12px; overflow: visible; }
  .app-navigation.is-open { display: grid; grid-template-columns: repeat(3, minmax(78px, 1fr)); }
  .app-nav-link { min-width: 0; min-height: 70px; padding: 8px 5px 6px; font-size: 12px; }
  .app-nav-link svg { width: 24px; height: 24px; }
  .app-subnavigation { display: none; min-height: 0; padding: 0 8px; }
  .app-navigation.is-open + .app-subnavigation:not([hidden]) { display: flex; }
  .app-subnav-group { flex-wrap: wrap; gap: 0; }
  .app-subnav-link { padding: 10px 11px 8px; font-size: 12px; }
}
@media (max-width: 440px) {
  .app-topbar-main { gap: 8px; padding-inline: 10px; }
  .app-brand { gap: 7px; }
  .app-brand-name { font-size: 17px; }
  .app-account { gap: 9px; }
  .app-user-name { max-width: 90px; }
  .app-account-link { font-size: 11px; }
  .app-logout { font-size: 11px; }
}
.app-login-logo { display: block; width: 90px; height: 140px; object-fit: contain; margin: 0 auto 20px; }
.central-login > h1, .central-login > h1 + p { text-align: center; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
/* Controles de período y sugerencias opcionales de palabras. */
.rotacion-filtro{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:16px 0}
.rotacion-filtro>div{min-width:170px;flex:0 1 220px}
.rotacion-filtro label{display:block;margin-bottom:6px}
.mc-sugerencias{position:fixed;z-index:10000;padding:10px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 22px #0002;box-sizing:border-box;max-height:210px;overflow:auto}
.mc-sugerencias[hidden]{display:none}
.mc-sugerencias small{display:block;color:var(--mute);margin-bottom:7px}
.mc-sugerencias button{display:inline-block;margin:3px;padding:6px 10px;font-size:.9rem;min-height:34px}
.mc-sugerencias button{white-space:normal;text-align:left;overflow-wrap:anywhere;max-width:100%}
.mc-lista-fija{max-height:65vh;overflow:auto!important;position:relative;isolation:isolate;scrollbar-gutter:stable}
.mc-lista-fija:focus-visible{outline:2px solid var(--b);outline-offset:3px}
.mc-lista-fija thead{position:sticky;top:0;z-index:3;background:var(--surface,#fff);box-shadow:0 2px 0 var(--line)}
.mc-lista-fija thead th{background:var(--surface,#fff);padding-top:11px;padding-bottom:11px;color:var(--txt)}
/* Las listas de captura crecen con la página; las de consulta conservan paneles fijos. */
[data-lista-editable]{max-height:none!important;overflow-x:auto;overflow-y:visible}
.mc-producto-buscar{width:100%;min-width:220px;box-sizing:border-box}
.mc-productos-panel{position:fixed;z-index:10000;box-sizing:border-box;overflow:auto;padding:6px;background:var(--surface,#fff);color:var(--txt);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #0002;overscroll-behavior:contain}
.mc-productos-panel[hidden]{display:none}
.mc-productos-aviso{font-size:12px;color:var(--mute);padding:8px 10px;line-height:1.5}
.mc-producto-opcion{padding:11px 12px;border-radius:6px;cursor:pointer;overflow-wrap:anywhere;line-height:1.45}
.mc-producto-opcion.is-active{background:var(--sel);color:var(--bd);box-shadow:inset 3px 0 var(--b)}
@media print{.mc-lista-fija{max-height:none;overflow:visible!important}.mc-lista-fija thead{position:static;box-shadow:none}}
.cons-resumen{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}
.cons-resumen>div{padding:12px;background:var(--bg);border:1px solid var(--line);border-radius:8px}
.cons-resumen small,.cons-resumen strong,#cons-lista td small{display:block}
.cons-resumen strong{font-size:20px;margin-top:6px}#cons-lista td{vertical-align:middle;padding-top:12px;padding-bottom:12px}
#cons-lista td small{margin-top:5px;color:var(--mute)}.cons-estado{display:inline-block;border-radius:20px;padding:5px 9px;background:var(--bg);font-weight:600;white-space:nowrap}
.cons-estado.vencida{background:var(--bad-bg);color:var(--bad)}.cons-estado.hoy,.cons-estado.proxima{background:var(--warn);color:var(--bd)}.cons-estado.al_dia,.cons-estado.completada{background:var(--ok-bg);color:var(--ok-strong)}
.cons-fila-vencida{box-shadow:inset 3px 0 var(--bad)}@media(max-width:650px){.cons-resumen{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cons-avisos{margin:12px 0 18px}.cons-avisos>summary{cursor:pointer;color:var(--bd);font-weight:600;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}

/* Controles operativos compartidos. */
.mc-volver-arriba{position:fixed;right:24px;bottom:24px;z-index:1200;width:46px;height:46px;padding:0;border-radius:50%;background:var(--b);color:#fff;border:1px solid var(--bd);font-size:26px;line-height:1;box-shadow:0 4px 14px #0003;cursor:pointer}
.mc-volver-arriba:hover{background:var(--bd)}.mc-volver-arriba[hidden]{display:none}
.mc-caja-confirmacion{padding:12px;background:var(--warn);border:1px solid var(--line);border-radius:8px;font-weight:600}
.cons-estado.liquidada,.cons-semaforo.verde{background:var(--ok-bg);color:var(--ok-strong)}
.cons-estado.pendiente,.cons-semaforo.amarillo{background:#fff4cf;color:#735500}
.cons-estado.anulada,.cons-semaforo.rojo{background:var(--bad-bg);color:var(--bad)}
.cons-semaforo{padding:10px 14px;border-radius:8px;border:1px solid var(--line)}

.cons-resumen .cons-semaforo :is(strong,small){color:inherit}

/* Consignaciones: un registro, dos indicadores y detalle progresivo (11.42). */
.cons-cabecera { align-items:center; margin-bottom:24px; }
.cons-cabecera h1 { font-size:28px; line-height:1.25; }
.cons-cabecera .cons-help { margin:6px 0 0; }
.cons-page h3 { font-size:15px; margin:26px 0 12px; }
.cons-indicadores { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-bottom:20px; }
.cons-indicador { padding:20px 24px; border:1px solid var(--line); border-radius:10px; background:var(--surface); }
.cons-indicador small,.cons-indicador strong,.cons-indicador span { display:block; }
.cons-indicador strong { font-size:27px; margin:8px 0; overflow-wrap:anywhere; }
.cons-indicador .cons-help { margin:0; font-size:13px; }
.cons-indicador-pendiente { border-left:4px solid var(--warning-yellow); }
.cons-filtros { align-items:end; }
.cons-filtros > :last-child { flex:0 1 260px; }
.cons-filtros input,.cons-filtros select { min-height:44px; }
.cons-seleccionada > td { background:var(--sel); }
.cons-seleccionada > td:first-child { box-shadow:inset 4px 0 var(--b); }
#cons-lista .cons-doc { min-width:170px; max-width:none; }
#cons-lista .cons-doc > strong { display:block; margin-bottom:8px; }
#cons-lista .cons-doc .cons-estado { font-size:12px; }
.cons-mercaderia > summary { cursor:pointer; color:var(--bd); font-weight:650; font-size:16px; }
.cons-mercaderia > summary span { font-size:13px; font-weight:400; color:var(--mute); }
.cons-detalle-acciones { display:flex; gap:8px; flex-wrap:wrap; max-width:700px; }
.cons-cronologia { display:flex; flex-wrap:wrap; gap:18px 34px; padding:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.cons-cronologia small,.cons-cronologia strong { display:block; }
.cons-cronologia p { margin:0; }
.cons-totales-linea { display:flex; flex-wrap:wrap; gap:16px 40px; padding:18px 0; }
.cons-totales-linea strong,.cons-totales-linea small { display:block; }
.cons-totales-linea strong { margin-top:4px; }
.cons-avance { min-width:150px; max-width:220px; }
.cons-avance svg { display:block; width:100%; height:8px; border-radius:4px; overflow:hidden; }
.cons-avance-vendido { fill:var(--ok); }.cons-avance-devuelto { fill:var(--line); }.cons-avance-pendiente { fill:var(--warning-yellow); }
.cons-page .cons-texto-error { color:var(--bad); }
.cons-entrega-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:24px; align-items:start; }
.cons-entrega-campos { min-width:0; }
.cons-entrega-resumen { position:sticky; top:24px; }
.cons-entrega-resumen .card { padding:24px; }
.cons-entrega-resumen h2 { text-transform:uppercase; letter-spacing:1px; font-size:13px; line-height:1.6; }
.cons-entrega-resumen dl { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); margin:0 0 24px; }
.cons-entrega-resumen dt,.cons-entrega-resumen dd { padding:12px 0; margin:0; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.cons-entrega-resumen dt { color:var(--mute); }.cons-entrega-resumen dd { text-align:right; font-weight:600; }
.cons-entrega-resumen button { width:100%; margin-bottom:10px; min-height:46px; }
.cons-entrega-resumen small { display:block; margin-top:10px; }
.cons-paso { display:flex; gap:12px; align-items:center; font-size:18px; }
.cons-paso span { display:inline-flex; flex:none; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; background:var(--b); color:white; font-size:16px; }
.cons-page .cons-paso + .cons-help { margin-left:44px; }
#cons-entrega-lineas td:nth-child(2) { min-width:220px; }
#cons-entrega-lineas td:nth-child(3) { min-width:140px; }
#cons-entrega-lineas input { min-width:110px; }
@media(max-width:1050px) { .cons-entrega-layout { grid-template-columns:minmax(0,1fr); } .cons-entrega-resumen { position:static; } .cons-entrega-resumen .card { max-width:none; } }
@media(max-width:650px) { .cons-indicadores { grid-template-columns:minmax(0,1fr); gap:10px; } .cons-indicador { padding:16px; } .cons-cabecera h1 { font-size:23px; } .cons-cabecera > button { width:100%; } .cons-filtros > :last-child { flex:1 1 100%; } .cons-entrega-layout { gap:0; } .cons-cabecera { gap:12px; } }

.cons-page .cons-cabecera h1,.cons-page h2,.cons-page h3 { color:var(--txt); letter-spacing:normal; }
#cons-entrega > .cons-toolbar > :first-child { flex:none; min-width:0; width:auto; }
#cons-entrega > .cons-toolbar > div { flex:1; min-width:220px; }

/* Restauración Excel: acciones y estado junto al archivo seleccionado. */
.mc-excel-pasos { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px;margin-top:18px; }
.mc-excel-pasos > section { min-width:0;border:1px solid var(--line);border-radius:9px;padding:20px;background:var(--surface); }
.mc-excel h3 { font-size:17px;color:var(--txt);margin:0 0 16px; }
.mc-excel-exportar { display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:18px 0; }
.mc-excel-archivo { overflow-wrap:anywhere;font-weight:600;line-height:1.6; }
.mc-excel-resumen { display:grid;grid-template-columns:minmax(0,1fr) auto;margin:12px 0 20px; }
.mc-excel-resumen dt,.mc-excel-resumen dd { padding:7px 0;margin:0;border-bottom:1px solid var(--line); }
.mc-excel-resumen dd { text-align:right;font-weight:650; }
#excelImportar { width:100%;margin-top:16px;min-height:46px; }
#excel-web-bloque { margin-top:24px;padding:24px;scroll-margin-top:24px; }
#excel-web-bloque > h3 { color:var(--b);font-size:1rem;letter-spacing:.04em; }
#excel-web-confirmar { width:100%;margin-top:16px;min-height:46px; }
#excel-web-estado,#excel-web-resultado { line-height:1.6;overflow-wrap:anywhere; }
#excel-web-estado { white-space:pre-line; }
#excel-web-estado[data-advertencia="1"] { background:#fff4d6;color:#765600;border:1px solid #e6c66a;border-radius:8px;padding:12px 14px; }
#excelEstado,#excelResultado { line-height:1.6;overflow-wrap:anywhere; }
#excelEstado:empty { display:none; }
.mc-excel [aria-busy="true"] { cursor:progress; }
@media(max-width:800px) { .mc-excel-pasos { grid-template-columns:minmax(0,1fr);gap:14px; } }

/* Confirmaciones de operaciones: verde uniforme; navegación conserva la marca. */
button.mc-confirmar { background:var(--ok)!important;border-color:var(--ok)!important;color:var(--surface)!important; }
button.mc-confirmar:hover:not(:disabled) { background:var(--ok-hover)!important;border-color:var(--ok-hover)!important; }
button.mc-confirmar:focus-visible { outline:3px solid var(--ok-border);outline-offset:3px; }
.cons-entrega-acciones { grid-column:1/-1;display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap; }
.cons-entrega-acciones button { min-height:46px; }
.cons-guia { max-width:1000px;margin:24px auto;padding:20px; }
.cons-guia .card { padding:30px; }.cons-guia h1 { margin:10px 0; }
.cons-guia-acciones { display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px; }
.cons-guia-datos { display:grid;grid-template-columns:minmax(160px,1fr) 2fr;gap:10px 20px; }
.cons-guia-datos dd { margin:0;font-weight:600; }.cons-guia-datos dt { color:var(--mute); }
.cons-guia-firmas { display:flex;gap:50px;flex-wrap:wrap;margin:50px 0 20px; }
@media print {
 body:has(.cons-guia) :is(.app-shell,.desktop-titlebar,.mc-volver-arriba,.cons-guia-acciones) { display:none!important; }
 body:has(.cons-guia) { background:white;padding:0; }
 .cons-guia { margin:0;padding:0;max-width:none; }.cons-guia .card { border:0;padding:0;box-shadow:none; }
 .cons-guia .cons-table { overflow:visible; }.cons-guia .mc-lista-fija { max-height:none!important;overflow:visible!important; }
 .cons-guia thead { display:table-header-group;position:static; }.cons-guia tr { break-inside:avoid; }
}

.btnArchivo[aria-disabled="true"] { opacity:.55;cursor:default;pointer-events:none; }

.cons-guia .cons-doc { max-width:none; }

/* Registro único y ampliación con cantidades incrementales (11.46). */
.cons-detalle-acciones { max-width:none;margin-bottom:18px;align-items:center; }
.cons-detalle-acciones a { display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;padding:10px 16px;text-decoration:none;background:var(--surface); }
.cons-detalle-acciones a:hover { background:var(--sel); }
.cons-registro-acciones { display:flex;flex-direction:column;gap:7px;min-width:145px; }
.cons-registro-card #cons-registro-titulo { margin-top:22px; }
.cons-entrega-layout.es-ampliacion { grid-template-columns:minmax(0,1fr); }
.cons-entrega-layout.es-ampliacion .cons-entrega-resumen { position:static;max-width:560px;width:100%;justify-self:end; }
#cons-entrega-lineas td:nth-child(6) { min-width:150px; }
#cons-entrega-lineas td:nth-child(3) { min-width:85px; }
/* B3.4: el detalle de devolución ocupa una fila completa antes de motivo y reembolso. */
.central-page #b34-formulario>.table-wrap,.central-page #b34-formulario>p{flex-basis:100%;width:100%}
.central-page #b34-formulario>label{flex:1 1 260px}

/* B3.5: formularios de consignación y diálogo de caja sin abandonar el borrador. */
.central-page .b35-ancho,.central-page #b35-pago,.central-page #b35-cliente { flex-basis:100%;width:100%;box-sizing:border-box;min-width:0 }
.central-page #b35-pago,.central-page #b35-cliente { display:flex;flex-wrap:wrap;gap:16px;align-items:end;border:1px solid var(--line);border-radius:10px;padding:16px }
.central-page #b35-cliente.hidden { display:none }
.central-page #b35-pago label,.central-page #b35-cliente label { flex:1 1 220px }
#b35-liq-lineas input { min-width:110px } #b35-liq-lineas td:first-child { min-width:180px }
#b35-entrega-lineas td:first-child { min-width:210px } #b35-entrega-lineas input { min-width:130px }
#b35-avisos { display:flex;flex-wrap:wrap;gap:8px;padding:12px }
#b35-avisos button { text-align:left } #b35-lista small,#b35-liq-lineas small { display:block;color:var(--mute);margin-top:4px }
#b35-caja-dialogo { border:1px solid var(--line);border-radius:14px;max-width:540px;width:calc(100% - 48px);padding:24px;background:var(--surface);color:var(--txt) }
#b35-caja-dialogo::backdrop { background:rgba(36,25,18,.45) } #b35-caja-dialogo form { margin-bottom:0 }
@media print { .cons-guia-acciones,.mc-volver-arriba { display:none!important } .cons-guia main,.cons-guia .card { max-width:none;box-shadow:none } .cons-guia table { width:100% } }

/* Editor común de consignaciones: no hereda la fila flexible del panel central. */
#ce-panel #ce-form,#ic-dialogo #ic-form { display:block;margin:12px 0 0 }
#ce-panel #ce-datos { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0 }
#ce-panel #ce-datos>div { min-width:0 }
#ce-panel label,#ic-dialogo label { display:block;flex:none;margin:12px 0 6px }
#ce-panel input:not([type=checkbox]),#ce-panel select,#ce-panel textarea,#ic-dialogo input { box-sizing:border-box;width:100%;min-width:0 }
#ce-panel #ce-creditos { display:block;margin:16px 0;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--bg) }
#ce-panel #ce-creditos label { display:flex;flex-direction:row;align-items:flex-start;gap:10px;margin:0 0 6px }
#ce-panel #ce-creditos input { width:auto;flex:0 0 auto;margin:3px 0 0 }
#ce-panel #ce-creditos small { display:block;margin-left:24px;color:var(--mute) }
#ce-panel .hidden { display:none!important }
#ce-panel .cons-actions,#ic-dialogo .cons-actions { display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:20px }
#ic-dialogo { border:1px solid var(--line);border-radius:14px;max-width:560px;width:calc(100% - 48px);padding:24px;background:var(--surface);color:var(--txt) }
#ic-dialogo::backdrop { background:rgba(36,25,18,.45) }
@media(max-width:700px) { #ce-panel #ce-datos { grid-template-columns:1fr } }

/* Formularios de fechas, adelantos e importes de consignación. */
#ca-form,#ce-form{display:block;max-width:none;margin-top:12px}
#ca-form .cons-grid,#ce-form .cons-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
#ca-form label,#ce-form label{display:block;margin:12px 0 6px}
#ca-form input,#ca-form select,#ce-form input{box-sizing:border-box;width:100%;min-width:0}
#ca-panel .cons-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;margin-top:20px}
.cons-numero,#cons-entrega-lineas td.cons-numero{min-width:2.5rem;width:2.5rem;font-variant-numeric:tabular-nums;font-weight:700;color:var(--mute)}
.cons-importes{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:20px 0}
.cons-importes>div{padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--bg);min-width:0}
.cons-importes small,.cons-importes strong{display:block}.cons-importes strong{margin-top:6px;font-size:20px;font-variant-numeric:tabular-nums}
.cons-importes>div:last-of-type{background:var(--success-bg,#e5f2eb);border-color:var(--success-border,#badccb);color:var(--ok)}
.cons-importes>p{grid-column:1/-1;margin:0;font-size:14px;font-weight:400;color:var(--mute)}
#ca-resumen{margin:20px 0;padding:18px;background:var(--bg);box-shadow:none}#ca-resumen details{margin-top:18px}#ca-panel,#ce-panel{scroll-margin-top:180px}
#ca-resumen .cons-table{background:white}#ca-caja{margin-top:16px}
@media(max-width:650px){#ca-form .cons-grid,#ce-form .cons-grid{grid-template-columns:1fr}.cons-importes{grid-template-columns:1fr 1fr}.cons-importes strong{font-size:18px}}

.mc-producto-opcion .mc-producto-stock{display:block;font-size:.85em;color:var(--mute);margin-top:4px;font-weight:400}
