/* =========================================
   CONFIGURACION GENERAL
========================================= */
* {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

*::selection {
  color: #f5f7ff;
  background: #495b94;
}

html,
body {
  min-height: 100%;
}

body {
  margin: 0;
  min-height: 100vh;
  color: #1f2a44;
  background:
    linear-gradient(
      135deg,
      #f8f9fc 0%,
      #f4f6ff 18%,
      rgba(120, 135, 255, 0.24) 32%,
      rgba(86, 150, 255, 0.28) 52%,
      rgba(160, 110, 255, 0.26) 74%,
      #e7e9ff 100%
    );
  background-attachment: fixed;
  background-repeat: no-repeat;
}

html.index-protected body,
html.login-protected body {
  visibility: hidden;
}

html.index-protected.auth-ok body,
html.login-protected.auth-ok body {
  visibility: visible;
}


/* =========================================
   MODAL OVERLAY SPINNER
========================================= */
.modal-local-overlay {
  position: absolute;
  inset: 0;
  z-index: 5000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgb(30 41 59 / 32%);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.modal-local-overlay-card {
  width: 110px;
  height: 110px;
  border-radius: 22px;
  border: 1px solid #dbe3f7;
  background: rgb(248 250 255 / 92%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.modal-local-overlay .meta-spinner-login {
  width: 56px;
  height: 56px;
}

/* =========================================
   LAYOUT BASE
========================================= */
.app-shell,
.view {
  min-height: 100vh;
}

.view {
  width: 100%;
}

.view-app {
  display: flex;
  flex-direction: column;
}

.contenido {
  width: min(1200px, calc(100% - 32px));
  margin: 0 auto;
  padding: 20px 0 28px;
}

/* =========================================
   TOPBAR / NAVEGACION
========================================= */
.topbar-nav {
  background: #f8f9fd;
  border: 1px solid #dbe0ef;
  padding: 12px 14px;
}

.topbar-container {
  width: 1200px;
  padding: 0;
}

.topbar-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #2a3556;
  text-decoration: none;
  font-weight: 700;
}

.topbar-brand:hover {
  color: #2a3556;
}

.topbar-brand-logo {
  width: 42px;
  object-fit: cover;
}

.topbar-brand-text {
  font-family: 'Viga', sans-serif;
  font-size: 1.35rem;
  line-height: 1;
}

.topbar-toggler {
  border: 1px solid #d3dbf0;
  border-radius: 12px;
  padding: 6px 10px;
}

.topbar-toggler:focus {
  box-shadow: none;
}

.topbar-links {
  align-items: center;
  gap: 6px;
}

.topbar-divider-item {
  display: inline-flex;
  align-items: center;
  pointer-events: none;
}

.barra-vertical {
  display: inline-block;
  width: 1px;
  height: 40px;
  margin: 0 10px;
  vertical-align: middle;
  background: linear-gradient(to bottom, rgb(216 216 216), rgba(150, 150, 150, 0.9), rgb(216 216 216));
  border-radius: 999px;
}

.barra-separadora {
  display: inline-block;
  width: 1px;
  height: 40px;
  margin: 0 10px;
  vertical-align: middle;
  background: linear-gradient(to bottom, rgb(248 249 253), rgba(150, 150, 150, 0.9), rgb(248 249 253));
  border-radius: 999px;
}

.inventario-filter-helper {
  color: orangered;
  text-align: center;
  background-color: rgb(255, 248, 235);
  padding: 4px 8px;
  border-radius: 999px;
}

.topbar-link {
  color: #5f6a89;
  font-weight: 400;
  border-radius: 10px;
  padding: 8px 14px;
  transition: background-color 0.25s ease, color 0.25s ease;
}

.topbar-link:hover,
.topbar-link.active {
  color: #234694;
  background: #e9efff;
}

.topbar-user {
  margin-left: auto;
}

.email-user {
  font-size: 0.6rem;
  color: #7b86a4;
}

.data-recipe-history-range-clear{
  border-radius: 0 14px 14px 0 !important;
}

.topbar-user-btn {
  border: 1px solid #d3dbf0;
  border-radius: 12px;
  min-height: 44px;
  min-width: 44px;
  color: #2a4ea3;
  font-size: 1.2rem;
  background: #eff3ff;
  transition: background-color 0.25s ease, color 0.25s ease;
}

.topbar-user-btn:hover {
  background: #dbe5ff;
  color: #1f3e8a;
}

.topbar-user-btn:focus,
.topbar-user-btn:active {
  box-shadow: none;
}

.topbar-user-menu {
  min-width: 230px;
  border: 1px solid #dbe0ef;
  border-radius: 16px;
  padding: 12px;
}

.topbar-user-name {
  margin: 0 0 10px;
  color: #55607f;
  font-size: 0.92rem;
}

/* =========================================
   CONTENIDO HOME
========================================= */
.header-content {
  border-radius: 24px 24px 0 0;
  background: #d8d8d8;
  border: 1px solid #dbe0ef;
  border-bottom: none;
  padding: 15px 15px;
  width: 100%;
  margin: 0 auto;
}

.home-content {
  border-radius: 0 0 24px 24px;
  background: #f8f9fd;
  border: 1px solid #dbe0ef;
  border-top: none;
  padding: 10px 15px;
  width: 100%;
  margin: 0 auto;
  min-height: 50vh;
}

.home-title {
  font-size: clamp(1.3rem, 5vw, 1.8rem);
  font-weight: 700;
  margin-bottom: 8px;
}

.home-text {
  margin-bottom: 0;
  color: #55607f;
}

.home-actions-scroll {
  display: flex;
  gap: 10px;
}

.home-action-btn {
  border-radius: 14px;
  border: 1px solid #d7def2;
  color: #3b4b73;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  padding: 10px 14px;
  white-space: nowrap;
}

.home-action-btn:hover {
  border-color: #c5cfe9;
  color: #2b3d67;
  background: #f9faff;
}

.icon-lila {
  color: #8b5cf6;
}

.icon-green {
  color: #10b981;
}

.icon-orange {
  color: #ff8a2a;
}

.icon-gray {
  color: #8e97ad;
}

.icon-blue {
  color: #4b78e8;
}

/* =========================================
   FOOTER
========================================= */
.app-footer {
  width: 100%;
  padding: 0 16px 16px;
  display: flex;
  justify-content: center;
}

.app-footer-white {
  background: #ffffff;
  border: 1px solid #dbe0ef;
  padding: 18px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 14px;
}

.footer-main {
  width: min(1200px, 100%);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}

.footer-brand-block {
  display: flex;
  align-items: center;
  gap: 12px;
}

.footer-brand-logo {
  width: 46px;
  object-fit: cover;
}

.footer-brand-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: #2a3556;
}

.footer-brand-text {
  margin: 2px 0 0;
  color: #5f6a89;
  font-size: 0.88rem;
}

.footer-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.session-countdown {
  font-weight: 400;
}

.footer-support {
  width: auto;
  max-width: none;
}

.footer-divider {
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, rgba(190, 202, 235, 0), rgba(190, 202, 235, 1), rgba(190, 202, 235, 0));
}

.footer-legal,
.footer-copy {
  margin: 0;
  text-align: center;
  color: #5a6482;
  font-size: 0.82rem;
  line-height: 1.55;
}

.footer-legal a,
.footer-copy a {
  color: #2a4ea3;
  text-decoration: none;
  transition: color 0.25s ease;
}

.footer-legal a:hover,
.footer-copy a:hover {
  color: #1f7ae8;
}

.footer-mail {
  display: inline-flex;
  margin-left: 6px;
  font-size: 1rem;
}

/* =========================================
   LOGIN
========================================= */
.view-login {
  padding: 16px;
}

.login-card {
  position: relative;
  width: min(100%, 420px);
  border-radius: 24px;
  background: #f7f8fb;
  border: 1px solid #d8deef;
  padding: 24px 16px;
}

.login-brand {
  margin-bottom: 20px;
}

.brand-image {
  width: 64px;
  max-width: 100%;
  height: auto;
}

.brand-title {
  margin-top: 8px;
  margin-bottom: 0;
  font-family: 'Viga', sans-serif;
  font-size: clamp(1.8rem, 8vw, 2.2rem);
  letter-spacing: 0.02em;
  color: #495b94;
}

.brand-light {
  font-weight: 400;
}

.brand-bold {
  font-weight: 800;
}

.login-card-content {
  transition: filter 0.35s ease, opacity 0.35s ease;
}

.login-form {
  width: 100%;
}

.login-support {
  margin-top: 14px;
  display: flex;
  justify-content: center;
  align-items: center;
}

#loginCard input {
  min-height: 56px !important;
}

.support-link {
  display: flex;
  gap: 8px;
  width: fit-content;
  border-radius: 12px;
  padding: 6px 10px;
  text-decoration: none;
  color: #6a7492;
  font-size: 0.8rem;
  border: 1px solid transparent;
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.support-link:hover {
  background: #eef3ff;
  color: #2a4ea3;
  border-color: #cfd8f4;
}

.support-icon {
  width: 22px;
  height: 22px;
}

.login-overlay {
  position: absolute;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
}

.login-card.is-loading .login-card-content {
  filter: blur(4px);
  opacity: 0.5;
  pointer-events: none;
}

.login-card.is-loading .login-overlay {
  display: flex;
}

/* =========================================
   MODAL
========================================= */
.ios-modal {
  border-radius: 22px;
  border: 1px solid #dbe0ef;
  background: #f8f9fd;
}

.ios-modal-header {
  border-bottom: 1px solid #e4e8f4;
  padding: 16px 18px;
}

.ios-modal-title {
  color: #2a3556;
  font-size: 1.2rem;
  font-weight: 700;
}

.ios-modal-close {
  border-radius: 10px;
}

.ios-modal-close:focus {
  box-shadow: none;
}

.ios-modal-body {
  min-height: 300px;
  padding: 18px;
}

.ingredientes-loading,
.ingredientes-empty,
.ingredientes-data {
  min-height: 260px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
}

.ingredientes-empty-text {
  margin: 0;
  color: #5a6482;
}

.ingredientes-modal .ios-modal-body {
  min-height: 65vh;
  overflow: auto;
}

.ingredientes-data {
  width: 100%;
  height: 100%;
  align-items: stretch;
  justify-content: flex-start;
  text-align: left;
}

.ingredientes-toolbar {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 16px;
  align-items: center;
  justify-content: space-between;
}

.ingredientes-search-group {
  max-width: 420px;
  width: 100%;
}

.ingredientes-search-icon {
  border: 0;
  border-right: 1px solid #d2d8e8;
  background: transparent;
  color: #7d87a4;
}

.ingredientes-search-input {
  border: 0;
}

.familias-circles {
  width: 100%;
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding-bottom: 6px;
  margin-bottom: 18px;
}

.family-circle-wrap {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.family-circle-actions {
  display: flex;
  gap: 4px;
}

.family-circle-item {
  border: 0;
  background: transparent;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  min-width: 86px;
  color: #55607f;
}

.family-circle-thumb {
  width: 90px;
  height: 90px;
  border-radius: 999px;
  border: 1px solid #d6deef;
  overflow: hidden;
  background: #eef2fd;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.family-circle-count {
  position: absolute;
  /* bottom: 6px; */
  left: -5px;
  min-width: 24px;
  height: 24px;
  text-align: end;
  border-radius: 0 5px 5px 0;
  /* border: 1px solid #8a939d; */
  background: linear-gradient(135deg, #ff4747, #dc0b49);
  color: #ffffff;
  font-size: 0.8rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  padding: 0 4px;
  z-index: 3;
  padding-left: 10px;
  box-shadow: 0 4px 10px rgba(23, 37, 84, 0.25);
}

.family-circle-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.thumb-loading {
  position: absolute;
  inset: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #eef2fd;
}

.thumb-loading .meta-spinner-login {
  width: 22px;
  height: 22px;
}

.thumb-image {
  opacity: 0;
  transition: opacity 0.2s ease;
}

.thumb-image.is-loaded {
  opacity: 1;
}

.family-circle-name {
  font-size: 0.78rem;
  text-transform: capitalize;
  text-align: center;
}

.family-circle-item.is-active .family-circle-thumb {
  border-color: #dc0b49 !important;
  border: 2px solid;
}

.family-circle-item:focus,
.family-circle-item:focus-visible {
  outline: none;
  box-shadow: none;
}

/* =========================================
   MODAL INGREDIENTES (LISTADO / SCROLL)
========================================= */
.ingredientes-list {
  width: 100%;
  display: grid;
  gap: 10px;
  max-height: 46vh;
  overflow-y: auto;
  padding-right: 6px;
  padding-bottom: 8px;
}

.ingredientes-list.has-scroll-hint::after {
  content: '↓ Deslizá para ver más ingredientes';
  position: sticky;
  bottom: -10px;
  left: 0;
  right: 0;
  display: block;
  text-align: center;
  font-size: 0.78rem;
  font-weight: 600;
  color: #7048e9;
  background: linear-gradient(to bottom, rgba(242, 245, 252, 0), rgb(236 231 255));
  padding: 10px 0 4px;
  margin-top: -28px;
  pointer-events: none;
}

.ingrediente-card {
  border: 1px solid #dbe0ef;
  background: #fdfdff;
  border-radius: 16px;
  padding: 12px;
  display: flex;
  gap: 10px;
  align-items: center;
}

.ingrediente-avatar {
  width: 75px;
  height: 75px;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid #d6deef;
  background: #eff2fb;
  flex-shrink: 0;
  position: relative;
}

.ingrediente-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ingrediente-main {
  flex: 1;
  min-width: 0;
}

.ingrediente-name {
  margin: 0;
  font-weight: 700;
  color: #2a3556;
  text-transform: capitalize;
}

.ingrediente-meta,
.ingrediente-description {
  margin: 2px 0 0;
  color: #5f6a89;
  font-size: 0.85rem;
}

.ingrediente-meta {
  text-transform: capitalize;
}

.ingrediente-dates {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 3px 0 0;
  color: #7b86a4;
  font-size: 0.72rem;
}

.ingrediente-dates i {
  margin-right: 4px;
}

.ingrediente-description {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ingrediente-actions {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ingrediente-action,
.family-manage-btn {
  border: 1px solid #d3dbf0;
  background: #eef3ff;
  color: #2a4ea3;
  border-radius: 10px;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ingrediente-empty-list {
  border: 1px dashed #d2d9ed;
  border-radius: 16px;
  padding: 18px;
  text-align: center;
  color: #60708f;
}

.swal2-popup.ios-alert.ingredientes-alert {
  max-width: 720px;
}

.ingrediente-form-grid {
  display: grid;
  gap: 12px;
  text-align: left;
}

.ingrediente-form-grid label {
  display: block;
  margin-bottom: 6px;
  font-size: 0.86rem;
  color: #566180;
  font-weight: 600;
}

.image-preview-circle {
  width: 130px;
  height: 130px;
  border-radius: 999px;
  border: 1px solid #d4ddf1;
  margin: 0 auto;
  overflow: hidden;
  background: #edf2fd;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.image-preview-circle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* =========================================
   SELECTOR / PREVIEW DE IMAGEN
========================================= */
.image-preview-overlay {
  position: absolute;
  inset: 0;
  background: rgba(248, 250, 255, 0.72);
  display: flex;
  align-items: center;
  justify-content: center;
}

.image-preview-overlay img {
  width: 74px;
  height: 74px;
  object-fit: contain;
}

.ai-generate-btn {
  width: 100%;
  border-radius: 12px;
  border: 1px solid #d2daf1;
  background: #eef3ff;
  color: #2a4ea3;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.ai-generate-btn img {
  width: 30px;
  height: 30px;
  object-fit: contain;
}

.ai-alert-note {
  border: 1px solid #f0cfcf;
  background: #fff2f2;
  color: #945454;
  border-radius: 12px;
  padding: 10px;
  font-size: 0.83rem;
}

/* SweetAlert layout fix */

.ingredientes-saving-alert .swal2-html-container,
.swal2-html-container.ingredientes-saving-html {
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  max-height: none !important;
}

.swal2-popup.ingredientes-alert .swal2-html-container {
  width: 100%;
}

.swal2-popup.ingredientes-alert :is(.swal2-input, .swal2-file, .swal2-textarea, .swal2-select) {
  margin: 0;
  width: 100%;
}

.step-block:first-child {
  border-top: 0;
  padding-top: 0;
}

.step-block + .step-block {
  margin-top: 12px;
}

.step-title {
  margin: 0 0 8px;
  color: #3f4f78;
  font-size: 0.98rem;
  font-weight: 700;
}

.step-content {
  display: grid;
  gap: 10px;
}

.family-inline-create {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
}

.family-inline-create .ios-btn-secondary {
  max-width: 180px;
}

.custom-measure-wrap {
  display: grid;
  grid-template-columns: 1fr 140px;
  gap: 8px;
}

.image-method-buttons {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.image-method-btn {
  border: 1px solid #d4ddf1;
  border-radius: 12px;
  background: #f3f6ff;
  color: #425381;
  min-height: 42px;
  padding: 8px 12px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.image-method-btn.is-active {
  background: #e1eaff;
  border-color: #99b2ef;
  color: #2a4ea3;
}

.image-method-btn img {
  width: 24px;
  height: 24px;
  object-fit: contain;
}

.image-method-btn i,
.ai-generate-btn i {
  font-size: 1rem;
}

.image-file-input {
  min-height: 0;
  height: auto;
  padding: 6px 10px;
  border-radius: 12px;
  border: 1px solid #d2d8e8;
  background: #f2f4fa;
}

.image-file-input::file-selector-button {
  border: 0;
  border-radius: 10px;
  padding: 8px 12px;
  background: #e3eafc;
  color: #2a4ea3;
  margin-right: 10px;
}

.image-placeholder-circle {
  width: 100%;
  height: 100%;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ece6ff;
  color: #7048e8;
}

.family-circle-thumb-placeholder,
.ingrediente-avatar-placeholder {
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ece6ff;
  color: #7048e8;
}

.image-placeholder-circle i,
.family-circle-thumb-placeholder i,
.ingrediente-avatar-placeholder i {
  font-size: 2.2rem;
}

.image-placeholder-circle-2 i {
  font-size: 2.5rem;
}

.image-placeholder-circle-2 {
  width: 100%;
  height: 100%;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ece6ff;
  color: #6f46eb;
  border: 1px solid #d8ccff;
}

/* =========================================
   COMPONENTES IOS (INPUTS/BOTONES/ALERT)
========================================= */
.ios-input,
.ios-input-group {
  border-radius: 14px;
  border: 1px solid #d2d8e8;
  background: #f2f4fa;
}

.ios-input {
  border-radius: 14px;
  color: #3a4564;
}

.ios-input:focus {
  border-color: #9caad2;
  background: #f7f9ff;
  box-shadow: none;
}

.ios-input::placeholder {
  color: #7d87a4;
}

.ios-input-group > .ios-input {
  border: 0;
  min-height: 48px;
}

.ios-toggle-pass {
  border: 0;
  border-left: 1px solid #d2d8e8;
  border-radius: 0 14px 14px 0;
  background: transparent;
  color: #2d7df0;
  min-width: 48px;
  transition: background-color 0.25s ease, color 0.25s ease;
}

.ios-toggle-pass:hover {
  background: #e9edf8;
  color: #1f7ae8;
}

.ios-toggle-pass:focus,
.ios-toggle-pass:active {
  box-shadow: none;
}

.ios-btn {
  border: 0;
  border-radius: 14px;
  min-height: 48px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: background-color 0.25s ease, color 0.25s ease, opacity 0.25s ease;
}

.ios-btn:hover {
  opacity: 0.94;
}

.ios-btn:focus,
.ios-btn:active {
  box-shadow: none;
}

.ios-btn-primary {
  background: #1f7ae8;
  color: #fff;
}

.ios-btn-primary:hover {
  background: #166ad0;
  color: #fff;
}

.ios-btn-primary[disabled] {
  opacity: 0.75;
}

.ios-btn-success {
  background: #34c759;
  color: #fff;
}

.ios-btn-success:hover {
  background: #28b14a;
  color: #fff;
}

.ios-btn-warning {
  background: #ff9f0a;
  color: #fff;
}

.ios-btn-warning:hover {
  background: #e88f05;
  color: #fff;
}

.ios-btn-secondary {

  width: 100%;
  max-width: 320px;
  background: #e6ebfa;
  color: #2a4ea3;
}

.ios-btn-secondary:hover {
  background: #d6def6;
  color: #1f3e8a;
}

.swal2-popup.ios-alert {
  border-radius: 22px;
  border: 1px solid #dce3f5;
  background: #f8f9fd;
  padding: 1.4rem;
}

.text-center {
  text-align: center;
}

.swal2-title.ios-alert-title {
  color: #2a3556;
  font-size: 1.4rem;
  margin-bottom: 0.4rem;
}

.swal2-html-container.ios-alert-text {
  color: #5a6482;
  font-size: 0.98rem;
  margin-top: 0;
  padding: 0 !important;
}

.swal2-popup.produccion-confirm-alert .swal2-html-container {
  padding: 0 !important;
}

.swal2-popup.ios-alert.informes-alert .swal2-html-container {
  padding: 0 !important;
  text-align: center;
}

.swal2-popup.ios-alert.informes-alert .swal2-textarea {
  margin: 0 !important;
  width: 100% !important;
  min-height: 120px;
}

.swal2-popup.ios-alert.informes-alert .swal2-select,
.swal2-popup.ios-alert.informes-alert .swal2-input,
.swal2-popup.ios-alert.informes-alert .swal2-file {
  margin: 0 0 10px !important;
  width: 100% !important;
}

.swal2-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  width: 100%;
}

.swal2-actions .ios-btn {
  min-width: 150px;
  margin: 0;
}

/* =========================================
   SPINNERS Y ANIMACIONES
========================================= */
.meta-spinner {
  width: 20px;
  height: 20px;
  animation: spin 0.8s linear infinite;
}

.meta-spinner-login {
  width: 80px;
  height: 80px;
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

.report-notify-wrap {
  border: 1px solid #d7e1f7;
  border-radius: 16px;
  padding: 14px;
  margin-bottom: 12px;
  background: #f7faff;
  display: grid;
  gap: 10px;
}

.report-notify-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.report-notify-title {
  margin: 0;
  color: #2f4d8a;
  font-weight: 700;
}

.report-notify-save-btn .meta-spinner-login {
  width: 18px;
  height: 18px;
}

.report-notify-check {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  color: #36507f;
}

.report-notify-check input {
  width: 18px;
  height: 18px;
  accent-color: #1976d2;
}

.notify-specific-users-list {
  display: grid;
  gap: 8px;
  max-height: 190px;
  overflow: auto;
  padding-right: 4px;
}

.notify-user-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 6px 10px;
  border-radius: 12px;
  border: 1px solid #d8e2f7;
  background: #ffffff;
}

.notify-user-main {
  display: flex;
  align-items: center;
  gap: 10px;
}

.notify-user-text {
  display: grid;
  line-height: 1.2;
}

.notify-user-text strong {
  color: #2f4572;
}

.notify-user-text small {
  color: #6e7fa5;
}

.ios-notify-stack {
  position: fixed;
  right: 14px;
  bottom: 14px;
  z-index: 2500;
  display: grid;
  gap: 10px;
  width: min(360px, calc(100vw - 28px));
}

.ios-notify-card {
  background: #ffffff;
  border: 1px solid #dce5f8;
  border-radius: 16px;
  padding: 12px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 10px;
  transform: translateY(20px);
  opacity: 0;
  transition: transform 0.24s ease, opacity 0.24s ease;
}

.ios-notify-card.is-visible {
  transform: translateY(0);
  opacity: 1;
}

.ios-notify-card.is-leaving {
  transform: translateX(14px);
  opacity: 0;
}

.ios-notify-icon-wrap {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #edf3ff;
  color: #2e63be;
}

.ios-notify-card.type-success .ios-notify-icon-wrap {
  background: #e9f8ef;
  color: #1f9d50;
}

.ios-notify-card.type-error .ios-notify-icon-wrap {
  background: #ffeef0;
  color: #cc3f52;
}

.ios-notify-card.type-warning .ios-notify-icon-wrap {
  background: #fff4e7;
  color: #bd6b1c;
}

.ios-notify-content strong {
  display: block;
  color: #2a3e67;
  margin-bottom: 2px;
}

.ios-notify-content p {
  margin: 0;
  color: #5f729b;
  font-size: 0.9rem;
}

.ios-notify-close {
  border: none;
  background: transparent;
  color: #7990bb;
  padding: 0;
}

/* =========================================
   RESPONSIVE
========================================= */
@media (max-width: 991.98px) {
  .topbar-links {
    margin-top: 12px;
    margin-bottom: 8px;
  }

  .topbar-user {
    display: flex;
    align-items: end;
    justify-content: end;
  }

  .topbar-user-menu {
    margin-top: 8px;
  }

  .footer-main {
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
  }

  .footer-actions {
    width: 100%;
    justify-content: stretch;
  }

  .footer-actions .ios-btn,
  .footer-actions .support-link {
    width: 100%;
    justify-content: center;
    max-width: none;
  }
}

@media (max-width: 768px) {
  .contenido {
    width: calc(100%);
    padding-top: 16px;
  }

  .header-content,
  .home-content {
    padding: 10px 15px;
    border-radius: 0;
  }

  .home-actions-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }

  .home-actions-scroll::-webkit-scrollbar {
    height: 5px;
  }

  .home-actions-scroll::-webkit-scrollbar-thumb {
    background: #cfd8f4;
    border-radius: 999px;
  }

  .ingredientes-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .ingredientes-search-group {
    max-width: none;
  }

  .ingrediente-card {
    align-items: flex-start;
  }

  .ingrediente-actions {
    margin-left: auto;
  }

  .family-inline-create {
    grid-template-columns: 1fr;
  }

  .family-inline-create .ios-btn-secondary {
    max-width: none;
  }

  .custom-measure-wrap {
    grid-template-columns: 1fr;
  }

  .app-footer {
    padding: 0 12px 12px;
  }

  .app-footer-white {
    padding: 14px;
  }
}

@media (min-width: 768px) {
  .login-card {
    padding: 28px;
  }

  .brand-image {
    width: 78px;
  }

  .swal2-actions {
    flex-wrap: nowrap;
  }
}

/* =========================================
   INFORMES BROMATOLÓGICOS
========================================= */
.informes-modal .ios-modal-body {
  min-height: 75vh;
  max-height: 80vh;
  overflow: hidden;
}

.informes-loading,
.informes-data {
  min-height: 260px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 12px;
}

.informes-data {
  align-items: stretch;
  justify-content: flex-start;
}

.informes-toolbar {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 12px;
}

.informes-users-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
  max-height: 180px;
  overflow: auto;
  padding-right: 4px;
}

.user-card {
  border: 1px solid #dbe0ef;
  background: #fdfdff;
  border-radius: 16px;
  padding: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.user-avatar-thumb {
  width: 52px;
  height: 52px;
  border-radius: 999px;
  border: 1px solid #d6deef;
  overflow: hidden;
  background: #eef2fd;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  font-weight: 700;
  color: #40517d;
}

.user-avatar-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.user-main h6 {
  margin: 0;
  color: #2a3556;
  font-weight: 700;
}

.user-main p {
  margin: 2px 0 0;
  color: #5f6a89;
  font-size: 0.85rem;
}

.informe-meta-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.editor-wrap {
  border: 1px solid #dbe0ef;
  border-radius: 16px;
  background: #fdfdff;
  margin-bottom: 12px;
}

.editor-toolbar-scroll {
  width: 100%;
}

.editor-toolbar {
  border-bottom: 1px solid #e4e8f4;
  padding: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.editor-btn,
.editor-select {
  border: 1px solid #d3dbf0;
  border-radius: 10px;
  background: #eef3ff;
  color: #2a4ea3;
  min-height: 34px;
  padding: 4px 10px;
}

.informe-editor {
  min-height: 220px;
  padding: 12px;
  outline: none;
  color: #2a3556;
}

.informe-editor:empty::before {
  content: 'Escribí aquí el informe bromatológico...';
  color: #8a96b7;
}

.importance-wrap {
  margin-bottom: 14px;
}

.importance-range {
  width: 100%;
  accent-color: #ff6b3d;
  background: linear-gradient(90deg, #e63946 0%, #f4a261 50%, #34c759 100%);
  height: 12px;
  border-radius: 999px;
  appearance: none;
}

.attachments-wrap {
  border: 1px solid #dbe0ef;
  border-radius: 16px;
  padding: 10px;
  background: #fdfdff;
}

.attachments-grid {
  margin-top: 10px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 10px;
}

.attachment-card {
  border: 1px solid #d3dbf0;
  border-radius: 12px;
  background: #eef3ff;
  width: 100%;
  aspect-ratio: 1;
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #2a4ea3;
}

.attachment-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.attachment-image.is-loaded {
  opacity: 1;
}

.attachment-loader {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #eef3ff;
}

.attachment-loader .meta-spinner-login {
  width: 44px;
  height: 44px;
}

.attachment-doc {
  flex-direction: column;
  gap: 6px;
  padding: 6px;
  text-align: center;
}

.attachment-doc i {
  font-size: 1.8rem;
}

.attachment-doc span {
  font-size: 0.74rem;
  word-break: break-word;
}

.informes-empty {
  border: 1px dashed #d2d9ed;
  border-radius: 12px;
  padding: 12px;
  text-align: center;
  color: #60708f;
}

.image-viewer-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-bottom: 12px;
}

.viewer-stage {
  min-height: min(62vh, 680px);
  border: 1px solid #dbe0ef;
  border-radius: 16px;
  background: #f7f9ff;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: relative;
}

.viewer-stage.is-document {
  overflow: auto;
}

.viewer-stage.is-image {
  cursor: grab;
}

.viewer-stage.is-image.is-dragging {
  cursor: grabbing;
}

#viewerImage {
  max-width: 100%;
  max-height: 100%;
  transform-origin: center center;
  cursor: grab;
  user-select: none;
  touch-action: none;
  -webkit-user-drag: none;
}

#viewerImage.is-dragging {
  cursor: grabbing;
}

.user-initials-preview {
  font-weight: 700;
  color: #2a4ea3;
  font-size: 1.7rem;
}

@media (max-width: 768px) {
  .informe-meta-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================
   INFORMES UI FIXES
========================================= */
#informesModal .modal-dialog {
  align-items: flex-start;
  min-height: calc(100% - 1rem);
}

.informes-modal .ios-modal-body {
  min-height: auto;
  max-height: calc(100vh - 170px);
  overflow-y: auto;
  overflow-x: hidden;
  padding-bottom: 18px;
}

.editor-wrap,
.editor-preview-wrap,
.attachments-wrap {
  width: 100%;
}

.editor-toolbar {
  align-items: center;
}

.editor-btn {
  min-width: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
}

.editor-btn.is-active {
  background: #dce8ff;
  border-color: #8fb0ef;
  color: #1f5fc4;
}

.editor-select {
  min-width: 108px;
  text-align: left;
  text-align-last: left;
}

.editor-color-wrap {
  border: 1px solid #d3dbf0;
  border-radius: 10px;
  background: #eef3ff;
  color: #2a4ea3;
  min-height: 34px;
  padding: 0 10px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.editor-color-input {
  width: 24px;
  height: 24px;
  border: 0;
  padding: 0;
  background: transparent;
}

.emoji-picker-wrap {
  position: relative;
}

.emoji-panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: 290px;
  max-height: 180px;
  overflow: auto;
  border: 1px solid #d7def1;
  border-radius: 12px;
  background: #f8faff;
  padding: 8px;
  display: none;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 6px;
  z-index: 5;
}

.emoji-panel.is-open {
  display: grid;
}

.emoji-btn {
  border: 1px solid #d4ddf1;
  background: #eef3ff;
  border-radius: 999px;
  min-height: 30px;
}

.informe-editor {
  min-height: 240px;
}

.informe-editor:empty::before {
  content: attr(data-placeholder);
}

.editor-preview-wrap {
  border: 1px solid #dbe0ef;
  border-radius: 16px;
  background: #fdfdff;
  padding: 10px;
  margin-bottom: 12px;
}

.editor-preview-title {
  margin: 0 0 8px;
  font-weight: 700;
  color: #3f4f78;
}

.informe-preview {
  border: 1px dashed #d2d9ed;
  border-radius: 12px;
  min-height: 88px;
  padding: 10px;
  color: #344668;
}

.importance-range {
  background: linear-gradient(90deg, #34c759 0%, #f4a261 55%, #e63946 100%);
  height: 14px;
}

.importance-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #1f7aec;
  border: 0;
}

.importance-range::-moz-range-thumb {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #1f7aec;
  border: 0;
}

.importance-label {
  margin-top: 8px;
  font-weight: 700;
  color: #3f4f78;
}

.attachments-grid .informes-empty {
  grid-column: 1 / -1;
  width: 100%;
}

.image-viewer-controls {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.image-viewer-controls .ios-btn {
  min-height: 48px;
  font-size: 1.1rem;
}

.image-viewer-controls .fa-chevron-left,
.image-viewer-controls .fa-chevron-right {
  transform: none !important;
}

.swal2-popup.informes-user-form-alert .swal2-html-container {
  width: 100%;
  text-align: left;
}

.swal2-popup.informes-user-form-alert :is(.swal2-input, .swal2-file, .swal2-textarea, .swal2-select) {
  margin: 0;
  width: 100%;
}

@media (max-width: 768px) {
  .informes-modal .ios-modal-body {
    max-height: calc(100vh - 120px);
  }

  .image-viewer-controls {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .image-viewer-controls.image-viewer-controls-inventario {
    grid-template-columns: 1fr 1fr;
  }

  .emoji-panel {
    left: 0;
    right: auto;
    width: min(290px, 85vw);
  }
}

/* =========================================
   INFORMES UI FIXES V2
========================================= */
.informes-users-list {
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
  margin-bottom: 14px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 0 4px 8px 0;
  scrollbar-width: thin;
}

.informes-users-list.has-scroll-hint::after {
   content: none;
   display: none;
}

.informe-user-circle-wrap {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 250px;
  min-width: 250px;
  flex: 0 0 250px;
}

.informe-user-circle {
  border: 1px solid #dbe0ef;
  background: #fdfdff;
  border-radius: 16px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
}

.informe-user-item-icon {
  color: #5f6a89;
  font-size: 0.92rem;
}

.informe-user-main {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.informe-user-main .email-user {
  display: block;
  margin-top: 2px;
  max-width: 100%;
  font-size: 0.72rem;
  color: #7b86a4;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.informe-user-main h6 {
  margin: 0;
  color: #2a3556;
  font-weight: 700;
}

.informe-user-main p {
  margin: 2px 0 0;
  color: #5f6a89;
  font-size: 0.85rem;
}

.informe-user-actions {
  display: flex;
  gap: 6px;
  justify-content: center;
}

.informes-saving-alert .swal2-html-container {
  overflow: hidden;
  margin: 0;
}

.informes-saving-spinner {
  min-height: 110px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.swal2-popup.informes-key-alert .swal2-input.informes-key-input {
  border-radius: 14px;
  border: 1px solid #d2d8e8;
  background: #f2f4fa;
  color: #3a4564;
  min-height: 50px;
}

.swal2-popup.informes-key-alert .swal2-input.informes-key-input:focus {
  box-shadow: none;
  border-color: #9caad2;
  background: #f7f9ff;
}

.swal2-popup.informes-clear-alert {
  padding: 1.5rem;
}

.swal2-popup.informes-clear-alert .swal2-html-container {
  margin: 0.6rem 0 0.3rem;
}

.swal2-popup.informes-clear-alert .swal2-actions {
  justify-content: center;
  gap: 10px;
  margin-top: 0.8rem;
}

.swal2-popup.informes-clear-alert .swal2-actions .ios-btn {
  width: auto;
  max-width: none;
  min-width: 150px;
}

.swal2-popup.informes-clear-alert .swal2-confirm {
  background: #1f7ae8;
  color: #fff;
}

.swal2-popup.informes-clear-alert .swal2-deny {
  background: #e6ebfa;
  color: #2a4ea3;
}

.swal2-popup.informes-clear-alert .swal2-cancel {
  background: #ff3b30;
  color: #fff;
}

@media (max-width: 768px) {
  .barra-vertical {
    display: none;
  }

  .topbar-divider-item {
    display: none;
  }

  .informe-user-circle-wrap {
    width: 250px;
    min-width: 250px;
    flex: 0 0 250px;
  }

  .informe-user-actions {
    justify-content: flex-start;
  }

  .editor-toolbar-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }

  .editor-toolbar {
    flex-wrap: nowrap;
    width: max-content;
    min-width: 100%;
  }

  .editor-toolbar-scroll::-webkit-scrollbar {
    height: 5px;
  }

  .editor-toolbar-scroll::-webkit-scrollbar-thumb {
    background: #cfd8f4;
    border-radius: 999px;
  }
}

.editor-plain-text {
  color: #000000;
  background: transparent;
  font-weight: 400;
  font-style: normal;
  text-decoration: none;
}

/* =========================================
   INFORMES LISTADO HOME
========================================= */
.informes-home-content {
  min-height: 56vh;
}

.informes-board-loading {
  min-height: 42vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.informes-board-spinner {
  width: 92px;
  height: 92px;
}

.informes-board-empty {
  min-height: 42vh;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px dashed #cdd6ee;
  border-radius: 18px;
  color: #5a6a8d;
  font-size: 1.1rem;
  font-weight: 600;
  background: #f7f9ff;
}

.informes-cards-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.informe-card {
  border: 1px solid #dbe0ef;
  border-radius: 18px;
  background: #fcfdff;
  padding: 12px;
  transition: transform 0.25s ease, border-color 0.25s ease;
}

.informe-card:hover {
  transform: scale(1.015);
  border-color: #9bb5ec;
}

.informe-card-head,
.informe-card-meta,
.informe-card-user,
.informe-card-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.informe-card-preview {
  margin: 10px 0;
  border: 1px dashed #d4dcef;
  border-radius: 12px;
  padding: 10px;
  max-height: 170px;
  overflow: auto;
}

.informe-card-comments.has-comments {
  color: #1f7ae8;
  font-weight: 700;
}

.informe-card-actions {
  margin-top: 10px;
  flex-wrap: wrap;
  justify-content: flex-start;
}

.informes-pagination {
  margin-top: 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}

.flatpickr-day {
  position: relative;
}

.flatpickr-report-badge {
  position: absolute;
  bottom: 2px;
  right: 2px;
  min-width: 16px;
  height: 16px;
  border-radius: 999px;
  background: #ff3b30;
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.report-viewer-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 10px;
}

.report-viewer-content {
  border: 1px dashed #d2d9ed;
  border-radius: 12px;
  padding: 12px;
  margin-bottom: 10px;
  max-height: 45vh;
  overflow: auto;
  text-align: start;
}

@media (min-width: 768px) {
  .informes-cards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1100px) {
  .informes-cards-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* =========================================
   INFORMES BOARD REFINES
========================================= */
#openFilterInformesBtn i {
  color: #ff8a2a;
}

#clearFilterInformesBtn i {
  color: #8e97ad;
}

.informes-home-content {
  background: #f4f6fc;
}

.informes-board-empty {
  border-style: dashed;
  border-color: #bfcdee;
}

.informe-card {
  background: #ffffff;
  border-color: #d3ddf3;
  border-radius: 20px;
  padding: 14px;
}

.informe-card-date {
  font-size: 0.88rem;
  color: #4d5f88;
}

.informe-card-comments {
  font-size: 0.82rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.informe-card-comments.has-comments {
  color: #159947;
}

.informe-card-comments.no-comments {
  color: #7f8db0;
}

.informe-card-meta {
  justify-content: flex-start;
  flex-wrap: wrap;
}

.informe-attach-chip {
  border: 1px solid #d5dff4;
  background: #f6f8ff;
  color: #49608f;
  border-radius: 999px;
  min-height: 30px;
  padding: 4px 10px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
  font-size: 0.82rem;
}

.importance-chip {
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 0.82rem;
  font-weight: 700;
}

.importance-ok { background: #ddf7e8; color: #0e8f42; }
.importance-normal { background: #e7eefc; color: #2b569e; }
.importance-warn { background: #fff1da; color: #b26c11; }
.importance-high { background: #ffe7d4; color: #cc5d00; }
.importance-critical { background: #ffe1df; color: #c92a24; }

.informe-card-user {
  justify-content: flex-start;
  gap: 10px;
  margin-top: 8px;
}

.informe-card-user .user-avatar-thumb {
  width: 48px;
  height: 48px;
}

.informe-card-user-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.informe-card-user-text strong {
  color: #263557;
  line-height: 1.2;
}

.informe-card-user-text small {
  color: #7483a7;
}

.informe-card-actions {
  align-items: center;
}

.informe-card-actions .ios-btn-primary {
  flex: 1;
}

.informe-icon-btn {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  border: 1px solid #d3ddf3;
  background: #eff3ff;
  color: #2f5fb0;
}

.informe-icon-btn.danger {
  color: #c42e2e;
  background: #fff1f1;
  border-color: #f1d1d1;
}

.informe-icon-btn:hover {
  background: #e2ebff;
}

.informes-filter-calendar {
  margin-top: 6px;
  z-index: 50;
}

.report-viewer .attachments-grid {
  grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
}

.report-viewer-content-wrap {
  overflow-x: auto;
}

.report-comments-wrap {
  margin-top: 12px;
  border-top: 1px solid #dbe2f3;
  padding-top: 10px;
}

.report-comments-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.report-comments-wrap h6 {
  margin-bottom: 0;
  font-weight: 700;
}

.report-comments-thread {
  display: grid;
  gap: 8px;
}

.report-comment-item {
  border: 1px solid #d7def1;
  border-radius: 12px;
  padding: 8px 10px 8px 12px;
  background: #f8faff;
  text-align: left;
  border-left: 4px solid var(--comment-accent, #2f6fd6);
}

.report-comment-head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.report-comment-head small {
  color: #7886a8;
}

.report-comment-text {
  margin: 6px 0;
  color: #2a3556;
}

.report-comment-replies {
  margin-top: 8px;
  padding-left: 10px;
  border-left: 2px dashed rgba(74, 104, 170, 0.45);
  display: grid;
  gap: 8px;
}

.report-comment-reply-btn {
  border: 1px solid #ccd8f5;
  background: #eef3ff;
  color: #325ea9;
  border-radius: 10px;
  padding: 4px 10px;
  font-weight: 600;
  font-size: 0.8rem;
  margin-left: 0;
}

.report-comment-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.report-comment-reply-btn.is-danger {
  border-color: #f3c7cd;
  background: #fff1f3;
  color: #b23d4d;
}

.report-comment-item[data-comment-level="0"] .report-comment-text {
  color: #2a3556;
}

.report-comment-item[data-comment-level]:not([data-comment-level="0"]) {
  background: #f3f6ff;
}

.report-comment-item[data-comment-level]:not([data-comment-level="0"]) .report-comment-text {
  color: #415174;
}

.report-inline-comment-form {
  margin: 10px 0 12px;
  display: grid;
  gap: 8px;
  border: 1px solid #d8e3f8;
  border-radius: 14px;
  padding: 10px;
  background: #f9fbff;
}

.report-inline-comment-form .swal2-textarea,
.report-inline-comment-form .swal2-input {
  margin: 0;
}

.report-inline-comment-reply {
  font-size: 0.82rem;
  font-weight: 600;
  color: #355288;
}

#inlineSendCommentBtn .meta-spinner-login {
  width: 18px;
  height: 18px;
}

.report-viewer-meta-actions {
  width: 100%;
  display: flex;
  justify-content: flex-end;
}

.report-resend-btn {
  width: auto;
  max-width: none;
  min-height: 36px;
  border-radius: 999px;
  padding: 8px 14px;
  font-size: 0.92rem;
  gap: 6px;
}

.report-resend-wrap .swal2-textarea {
  margin: 0;
}

.report-comment-form label {
  margin-bottom: 6px;
  color: #4f5f84;
}

.report-edit-wrap .report-editor-scroll {
  overflow-x: auto;
}

.report-edit-attachments .attachment-card {
  position: relative;
}

.remove-attachment-btn {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  border: 1px solid #e9bfd0;
  background: #fff1f4;
  color: #c7345b;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.report-edit-toolbar {
  margin-bottom: 10px;
}

#clearFilterInformesBtn {
  position: relative;
  z-index: 120;
  order: -1;
}

.report-comment-item.is-reply .report-comment-head strong {
  font-size: 0.95rem;
}

.report-edit-add-btn {
  background: #fff4e8;
  border-color: #f6c18a;
  color: #b76307;
}

.report-edit-add-btn:hover {
  background: #ffe8d0;
  border-color: #eba45f;
  color: #9b4f00;
}

.remove-attachment-btn.is-danger {
  border-color: #f0b4c6;
  background: #fff1f6;
  color: #ce3b6a;
}

@media (max-width: 768px) {
  .report-comments-head {
    gap: 6px;
  }

  .report-comments-wrap h6 {
    min-width: 0;
  }

  .report-comments-title-text {
    display: none;
  }

  .report-add-comment-btn {
    padding-inline: 10px;
    min-width: auto;
  }
}

.informe-print-chip {
  border: 1px solid #d5dff4;
  background: #f4f7ff;
  color: #2f5fb0;
  border-radius: 999px;
  min-height: 30px;
  min-width: 30px;
  padding: 4px 9px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.informe-print-chip:hover {
  background: #e8efff;
  color: #234a96;
}

.attachment-delete-confirm {
  position: absolute;
  inset: auto 4px 4px 4px;
  display: flex;
  gap: 4px;
  z-index: 4;
}

.attachment-delete-btn {
  flex: 1;
  border-radius: 999px;
  min-height: 24px;
  border: 1px solid #d3dcf1;
  font-size: 0.67rem;
  font-weight: 700;
  padding: 2px 4px;
  background: #eef3ff;
  color: #345d9f;
  white-space: nowrap;
}

.attachment-delete-btn.yes {
  border-color: #efb6c7;
  background: #fff1f6;
  color: #c73567;
}

.icon-orangered {
  color: orangered;
}

/* =========================================
   MODAL RECETAS
========================================= */
.recetas-modal .ios-modal-body {
  max-height: min(74vh, 760px);
  position: relative;
}

.recetas-modal .modal-dialog {
  width: min(100%, calc(100vw - 24px));
  margin-inline: auto;
}

.recetas-list {
  display: grid;
  gap: 12px;
  max-height: 56vh;
  overflow: auto;
  padding-right: 4px;
}

.recetas-list.has-scroll-hint::after {
  content: '↓ Deslizá para ver más recetas';
  position: sticky;
  bottom: 0px;
  left: 0;
  right: 0;
  display: block;
  text-align: center;
  font-size: 0.78rem;
  font-weight: 600;
  color: #7048e9;
  background: linear-gradient(to bottom, rgba(242, 245, 252, 0), rgb(236 231 255));
  padding: 10px 0 4px;
  margin-top: -28px;
  pointer-events: none;
}

.receta-card {
  align-items: flex-start;
}

.receta-thumb-wrap {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  border: 1px solid #d8e1f6;
  background: #edf2fd;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: relative;
}

.receta-thumb {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  opacity: 0;
  transition: opacity .18s ease;
}

.receta-thumb.is-loaded,
.recipe-suggest-avatar.is-loaded,
.recipe-inline-avatar.is-loaded {
  opacity: 1;
}

.receta-card-meta {
  color: #5b6f9a;
  font-size: 0.85rem;
  margin: 0;
}

.receta-card-ingredients {
  margin-top: 2px;
  color: #687ca8;
  font-size: 0.78rem;
  line-height: 1.35;
}

.receta-card-dates {
  margin-top: 4px;
}

.receta-name {
  margin-bottom: 2px;
}

.recetas-editor-header {
  margin-bottom: 10px;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 12px;
  padding: 4px 2px 2px;
}

.recetas-editor-kicker {
  margin: 0;
  color: #6073a0;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 700;
}

.recetas-editor-title {
  color: #24468e;
  font-weight: 800;
}

.recetas-editor-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.recipe-step-card {
  background: #fbfcff;
  border-radius: 14px;
  text-align: start !important;
}

.recipe-step-number {
  width: 24px;
  height: 24px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #e8efff;
  color: #2f57b0;
  margin-right: 8px;
}

.recipe-description-lg {
  min-height: 92px;
  resize: vertical;
}

.recipe-step-card .form-label {
  margin: 0; 
  color: #4f5f84; 
  font-weight: 500;
  font-size: 1rem;
}

.recipe-highlight-field {
  border: 1px solid #cfe0ff;
  border-radius: 12px;
  background: #f4f8ff;
  padding: 10px;
}

.recipe-subsection-title {
  margin: 0;
  color: #4762a7;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-weight: 700;
}

.recipe-fields-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.recipe-field {
  min-width: 0;
}

.recipe-field-half {
  flex: 1 1 calc(50% - 6px);
}

.recipe-field-full {
  flex: 1 1 100%;
}

.recipe-highlight-field .form-label {
  font-weight: 700;
  color: #2f57b0;
}

.recipe-highlight-field .form-label i {
  margin-right: 6px;
}

.recipe-table-wrap {
  width: 100%;
  max-width: 100%;
  border: 1px solid #cfdcf8;
  border-radius: 14px 14px 0 0;
  overflow: hidden;
  margin-top: 10px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
}

.recipe-table-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}

.recipe-table {
  width: 100%;
  min-width: 100%;
  font-size: 0.92rem;
  border-collapse: separate;
  border-spacing: 0;
}

.recipe-table th,
.recipe-table td {
  border-bottom: 1px solid #ecf1ff;
  padding: 8px;
  vertical-align: middle;
}

.recipe-table thead th {
  background: #eef4ff;
  color: #294f9f;
  font-weight: 800;
}

.recipe-table thead th:first-child {
  border-top-left-radius: 12px;
}

.recipe-table thead th:last-child {
  border-top-right-radius: 12px;
}

.recipe-table tbody tr {
  background: #ffffff;
}

.recipe-table tbody tr:nth-child(even) {
  background: #f7faff;
}

.recipe-table tbody tr.is-comment {
  background: #fff5e8;
}

.recipe-table tbody tr.is-monography {
  background: #ffeef0;
}

.recipe-monography-toolbar {
  margin-bottom: 8px;
}

.recipe-monography-editor {
  min-height: 140px;
  border: 1px solid #f2cfd6;
  border-radius: 12px;
  background: #fff8f9;
}

.recipe-monography-editor:empty::before {
  content: attr(data-placeholder);
  color: #9c6a74;
}
.recipe-monography-manual-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;}
.recipe-monography-manual-name{font-size:.75rem;color:#5e6a8b;background:#f2f5ff;border:1px solid #d6def5;padding:4px 8px;border-radius:999px;}

.recipe-table tbody tr.is-dragging {
  opacity: 0.55;
}

.recipe-table tbody tr.drag-over {
  outline: 2px dashed #4d74cf;
  outline-offset: -2px;
  background-color: #a8d2fb;
}

.recipe-table-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.recipe-table-action-btn {
  min-width: 180px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 12px;
  min-height: 42px;
  border: 1px solid #d4def4;
  font-weight: 700;
}

.recipe-table-action-btn-primary {
  background: #2d7de0;
  border-color: #2d7de0;
  color: #fff;
}

.recipe-table-action-btn-primary:hover {
  background: #2a73cd;
  color: #fff;
}

.recipe-table-action-btn-neutral {
  background: #eef3ff;
  border-color: #d4def4;
  color: #2f56ad;
}

.recipe-table-action-btn-neutral:hover {
  background: #e4ecff;
}

.recipe-table-action-btn-monography {
  background: #ffeef0;
  border-color: #f3ccd3;
  color: #b3475a;
}

.recipe-table-action-btn-monography:hover {
  background: #ffe3e7;
}

/* =========================================
   RECETAS · NUTRICIÓN IA
========================================= */
.recipe-nutrition-step {
  border-color: #e7dcff;
  background: #fcf9ff;
}

.recipe-highlight-field-nutrition {
  border-color: #dfd1ff;
  background: #f7f1ff;
}

.recipe-nutrition-declaration-grid,
.recipe-nutrition-household-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.recipe-nutrition-ai-actions {
  display: grid;
  gap: 8px;
}

.recipe-nutrition-ai-btn {
  width: 100%;
  max-width: none;
}

.recipe-nutrition-ai-btn img {
  width: 26px;
  height: 26px;
  object-fit: contain;
}

.recipe-nutrition-ai-disclaimer {
  margin: 0;
  padding: 6px 10px;
  border-radius: 10px;
  background: #eef4ff;
  border: 1px solid #c8dafd;
  color: #28457f;
  font-size: 0.84rem;
  line-height: 1.35;
}

.recipe-nutrition-ai-stale {
  color: #b91c1c;
  font-weight: 800;
  font-size: 0.88rem;
  text-align: center;
}

.recipe-nutrition-ai-preview.is-stale {
  border-color: #dc2626;
  background: #fff5f5;
}

.recipe-nutrition-ai-preview.is-disabled {
  opacity: 0.95;
}

.recipe-nutrition-ai-table {
  border-radius: 10px;
  width: 100%;
  max-width: 100%;
}

.recipe-nutrition-ai-table,
.recipe-nutrition-ai-table * {
  max-width: 100%;
  box-sizing: border-box;
}

.recipe-nutrition-ai-table table {
  width: 100% !important;
  table-layout: fixed;
}

.recipe-nutrition-ai-table td,
.recipe-nutrition-ai-table th,
.recipe-nutrition-ai-table p,
.recipe-nutrition-ai-table span {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.recipe-nutrition-ai-table img {
  height: auto;
}

.recipe-nutrition-ai-table[contenteditable="true"] {
  outline: 2px dashed #d7dff2;
  outline-offset: 4px;
}

.recipe-nutrition-ai-table.is-locked {
  pointer-events: none;
  opacity: 0.85;
}

.recipe-nutrition-ai-help {
  margin: 8px 0 0;
  color: hsl(3, 100%, 31%);
  background-color: rgb(253 232 232);
  font-size: 0.82rem;
  text-align: center;
  border-radius: 10px;
  padding: 6px 10px;
}

.recipe-nutrition-ai-preview {
  margin-top: 8px;
  border: 1px dashed #cdbaf8;
  background: #fff;
  border-radius: 12px;
  padding: 12px;
  overflow-x: hidden;
}

.recipe-nutrition-ai-empty {
  margin: 0;
  color: #66739a;
}

.recipe-nutrition-product-meta h6 {
  margin: 0;
  color: #223a71;
  font-weight: 800;
}

.recipe-nutrition-product-meta p {
  margin: 4px 0 10px;
  color: #4f5f86;
  text-align: center;
}

.recipe-nutrition-front-labels{
  flex-direction: column;
  display: flex;
  align-items: center;
}

.recipe-nutrition-front-labels h6 {
  margin: 12px 0 8px;
  color: #223a71;
  font-weight: 800;
}

/* =========================================
   RECETAS · ETIQUETADO FRONTAL
========================================= */

.recipe-octagons-wrap {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: flex-start;
}

.recipe-front-rectangles {
  display: flex;
  gap: 10px;
  margin-top: 10px;
  flex-wrap: wrap;
}

.recipe-octagon,
.recipe-front-rectangle {
  position: relative;
  color: #fff;
  text-align: center;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-family: Arial, Helvetica, sans-serif;
  box-sizing: border-box;
}

/* =========================
   OCTÁGONOS
   Sin borde blanco
========================= */
.recipe-octagon {
  width: 112px;
  min-width: 112px;
  height: 112px;
  min-height: 112px;
  padding: 10px 8px 8px;
  background: #111111;
  clip-path: polygon(
    26% 0%,
    74% 0%,
    100% 26%,
    100% 74%,
    74% 100%,
    26% 100%,
    0% 74%,
    0% 26%
  );
  border: none;
  outline: none;
  box-shadow: none;
}

/* =========================
   RECTÁNGULOS
   Con borde blanco
========================= */
.recipe-front-rectangle {
  min-width: 236px;
  min-height: 78px;
  padding: 8px 12px;
  background: #111111;
  border: 3px solid #ffffff;
  outline: 2px solid #1d1d1d;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18);
}

/* =========================
   TIPOGRAFÍA
========================= */
.recipe-octagon-title,
.recipe-front-rectangle-title {
  font-size: 0.95rem;
  line-height: 0.95;
  font-weight: 900;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  margin: 0;
}

.recipe-octagon-ministry {
  margin-top: 5px;
  font-size: 0.58rem;
  line-height: 1;
  font-weight: 700;
  text-transform: none;
}

/* Si también usás ministry dentro de rectángulos */
.recipe-front-rectangle .recipe-octagon-ministry,
.recipe-front-rectangle .recipe-front-rectangle-ministry {
  margin-top: 5px;
  font-size: 0.58rem;
  line-height: 1;
  font-weight: 700;
  text-transform: none;
}

/* =========================
   COMPACTO
========================= */
.recipe-octagons-wrap.is-compact {
  gap: 6px;
}

.recipe-octagons-wrap.is-compact .recipe-octagon {
  width: 88px;
  min-width: 88px;
  height: 88px;
  min-height: 88px;
  padding: 7px 6px;
}

.recipe-front-rectangles.is-compact {
  gap: 6px;
  margin-top: 6px;
}

.recipe-front-rectangles.is-compact .recipe-front-rectangle {
  min-width: 174px;
  min-height: 60px;
  padding: 6px 8px;
}

.recipe-octagons-wrap.is-compact .recipe-octagon-title,
.recipe-front-rectangles.is-compact .recipe-front-rectangle-title {
  font-size: 0.66rem;
  line-height: 0.92;
}

.recipe-octagons-wrap.is-compact .recipe-octagon-ministry,
.recipe-front-rectangles.is-compact .recipe-front-rectangle .recipe-octagon-ministry,
.recipe-front-rectangles.is-compact .recipe-front-rectangle .recipe-front-rectangle-ministry {
  font-size: 0.44rem;
  margin-top: 4px;
}

.recipe-nutrition-front-empty {
  margin: 0;
  color: #5d6b90;
}

.recipe-ai-static-gif {
  width: 80px;
  height: 80px;
  object-fit: contain;
  animation: none !important;
}

/* =========================================
   RECETAS · TARJETA NUTRICIONAL
========================================= */
.recipe-nutrition-label-card {
  width: min(340px, 100%);
  margin: 0 auto;
  border: 2px solid #2f2f2f;
  padding: 10px;
  background: #ffffff;
  font-family: 'Roboto', 'Arial', sans-serif;
  color: #1f1f1f;
}

.recipe-nutrition-label-card h3 {
  margin: 0 0 4px;
  text-align: center;
  letter-spacing: 0.14em;
  font-size: 1rem;
  font-weight: 800;
}

.recipe-nutrition-product-name {
  margin: 0 0 8px;
  text-align: center;
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
}

.recipe-nutrition-serving,
.recipe-nutrition-subtitle,
.recipe-nutrition-dv,
.recipe-nutrition-micros,
.recipe-nutrition-footnote {
  margin: 0;
}

.recipe-nutrition-serving {
  font-size: 0.95rem;
  font-weight: 600;
}

.recipe-nutrition-bar {
  height: 12px;
  background: #000;
  margin: 8px 0;
}

.recipe-nutrition-subtitle {
  font-weight: 800;
  font-size: 1.1rem;
}

.recipe-nutrition-two-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 4px;
  font-size: 0.98rem;
}

.recipe-nutrition-rule {
  border-top: 2px solid #4b4b4b;
  margin: 8px 0;
}

.recipe-nutrition-dv {
  text-align: right;
  font-weight: 700;
}

.recipe-nutrition-table-fixed {
  width: 100%;
  border-collapse: collapse;
  font-size: 1rem;
}

.recipe-nutrition-table-fixed td {
  border-top: 1px solid #848484;
  padding: 4px 0;
}

.recipe-nutrition-table-fixed td:last-child {
  text-align: right;
  font-weight: 700;
}

.recipe-nutrition-table-fixed .indent {
  padding-left: 18px;
}

.recipe-nutrition-micros {
  margin-top: 8px;
  font-size: 0.95rem;
  font-weight: 600;
}

.recipe-nutrition-footnote {
  margin-top: 8px;
  font-size: 0.82rem;
  line-height: 1.3;
}

.recipe-image-layout {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 12px;
  align-items: center;
}

.recipe-image-preview {
  width: 120px;
  height: 120px;
}

.recipe-image-inputs {
  display: grid;
  gap: 10px;
}

.recipe-editor-actions {
  display: flex;
  justify-content: flex-end;
}

.recipe-ing-autocomplete {
  position: relative;
  z-index: 30;
}

/* =========================================
   SUGERENCIAS Y AUTOCOMPLETE (RECETAS)
========================================= */
.recipe-suggest-floating {
  position: absolute;
  max-height: 220px;
  overflow: auto;
  border: 1px solid #d7e2f7;
  border-radius: 12px;
  background: #fff;
  z-index: 1200;
}

.recipe-ing-autocomplete .recipe-suggest-floating {
  top: calc(100% + 6px);
  left: 0;
  width: max(100%, 220px);
  min-width: 220px;
}

.recipe-suggest-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  border: none;
  background: transparent;
  padding: 9px 10px;
  text-align: left;
}

.recipe-suggest-item:hover {
  background: #f0f5ff;
}

.recipe-suggest-create {
  border-top: 1px solid #e9efff;
  color: #2b53a7;
  font-weight: 700;
}

.recipe-suggest-avatar {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid #d4def5;
  background: #f2f6ff;
  opacity: 0;
  transition: opacity .18s ease;
}

.recipe-suggest-avatar-wrap {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  overflow: hidden;
  border: 1px solid #d4def5;
  background: #edf2fd;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.recipe-suggest-avatar-wrap .image-placeholder-circle-2 {
  width: 100%;
  height: 100%;
  border: 0;
}

.recipe-ing-input-wrap {
  display: grid;
  grid-template-columns: 30px 1fr;
  align-items: center;
  gap: 8px;
}

.recipe-inline-avatar-wrap {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  overflow: hidden;
  border: 1px solid #d4def5;
  background: #edf2fd;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.recipe-inline-avatar {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity .18s ease;
}

.recipe-inline-avatar-wrap .image-placeholder-circle-2,
.receta-thumb-wrap .image-placeholder-circle-2 {
  width: 100%;
  height: 100%;
  border: 0;
}

.recipe-small-placeholder {
  width: 100%;
  height: 100%;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ece6ff;
  color: #6f46eb;
}

.recipe-small-placeholder i {
  font-size: 0.92rem;
}

.recipe-inline-avatar-wrap .thumb-loading,
.receta-thumb-wrap .thumb-loading,
.recipe-suggest-avatar-wrap .thumb-loading {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #edf2fd;
}

.recipe-ai-input {
  margin-top: 4px;
}

.image-field-block {
  display: grid;
  gap: 6px;
}

.swal-stack-fields {
  display: grid;
  gap: 10px;
}

.swal2-popup.produccion-secure-alert :is(.swal2-input, .swal2-file, .swal2-textarea, .swal2-select) {
  margin: 0;
  width: 100%;
}

.swal2-popup.produccion-secure-alert .swal-stack-fields {
  gap: 8px;
}

.inventario-total-banner{
  display: flex;
  gap: 5px;
  align-items: center;
  background-color: rgb(244 238 254);
  padding: 5px 10px;
  border-radius: 12px;
}

.inventario-total-banner small{
  color: rgb(110 80 177);
}

.inventario-total-banner strong {
  color: rgb(110 80 177);
  font-size: 20px;
  font-weight: 900;
}

@media (max-width: 768px) {
  .recetas-editor-form,
  .recipe-step-card,
  .recipe-highlight-field,
  .recipe-field,
  .recipe-nutrition-ai-preview,
  .recipe-nutrition-ai-table {
    min-width: 0;
  }

  .recetas-modal .modal-dialog {
    width: 100%;
    max-width: 100%;
    margin: 0;
  }

  .recetas-modal .modal-content {
    border-radius: 0;
    border-inline: 0;
  }

  .recetas-modal .ios-modal-header,
  .recetas-modal .ios-modal-body {
    padding-inline: 12px;
  }

  .recetas-modal .ios-modal-body {
    overflow-x: hidden;
  }

  .recipe-field-half {
    flex: 1 1 100%;
  }

  .recipe-table-wrap,
  .recipe-table-scroll,
  .recipe-table-actions {
    min-width: 0;
  }

  .recipe-table-scroll .recipe-table {
    min-width: 720px;
  }

  .recipe-table-actions {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    justify-content: stretch;
  }

  .recipe-table-action-btn {
    width: 100%;
    min-width: 0;
  }

  .recipe-nutrition-declaration-grid,
  .recipe-nutrition-household-grid,
  .recipe-nutrition-two-cols {
    grid-template-columns: 1fr;
  }

  .recipe-nutrition-label-card {
    width: 100%;
    max-width: 100%;
    padding: 8px;
  }

  .recipe-ing-autocomplete .recipe-suggest-floating {
    width: max(100%, 240px);
    min-width: 240px;
    max-width: calc(100vw - 84px);
  }
}

.recipe-row-actions {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* =========================================
   RECETAS / IMPRESION
========================================= */
.receta-print-actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 8px;
  margin: 6px 0 8px;
}

.receta-print-btn {
  border-radius: 10px;
  min-height: 30px;
  width: fit-content;
  flex: 0 0 auto;
  white-space: nowrap;
  padding: 4px 8px;
  font-size: 0.69rem;
  line-height: 1.1;
  gap: 6px;
}

.receta-print-btn i {
  font-size: 0.72rem;
}

.receta-print-btn[disabled] {
  opacity: 0.55;
  cursor: not-allowed;
}

.recipe-print-render-host {
  position: fixed;
  left: 0;
  top: 0;
  opacity: 0;
  pointer-events: none;
  z-index: -1;
}

.recipe-print-render-root {
  background: #ffffff;
  border: 1px solid #e4e8f4;
  border-radius: 12px;
  padding: 12px;
  width: 380px;
}

.recipe-print-render-root.mode-front {
  width: 420px;
}

.recipe-print-nutrition .recipe-nutrition-label-card {
  width: 100%;
  max-width: 100%;
}

.recipe-print-front .recipe-octagons-wrap,
.recipe-print-front .recipe-front-rectangles {
  justify-content: center;
}

.recipe-print-panel {
  display: grid;
  gap: 12px;
}

.recipe-print-loading {
  display: grid;
  gap: 10px;
  justify-items: center;
  text-align: center;
}

.recipe-print-loading p {
  margin: 0;
}

.recipe-print-loading-container {
  margin: 0 auto !important;
  padding: 0 !important;
  overflow: hidden !important;
  max-height: none !important;
}

.recipe-print-loader {
  width: 54px;
  height: 54px;
}

.recipe-print-controls {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 10px;
}

.recipe-print-field {
  display: grid;
  gap: 6px;
  text-align: left;
}

.recipe-print-field span {
  font-size: 0.78rem;
  font-weight: 700;
  color: #455681;
}

.recipe-print-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  text-align: left;
}

.recipe-print-meta strong,
.recipe-print-meta span {
  background: #eef2ff;
  border: 1px solid #d4dcf4;
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 0.73rem;
  color: #3b4b73;
}

.recipe-print-preview-wrap {
  border: 1px solid #dbe0ef;
  border-radius: 16px;
  background: #f7f9ff;
  padding: 10px;
  max-height: 58vh;
  overflow: auto;
}

.recipe-print-preview-canvas {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 10px;
  background: #ffffff;
}

.receta-front-inline {
  margin-top: 6px;
}

.recipe-print-alert .swal2-actions {
  gap: 12px;
}

.recipe-print-alert .swal2-actions .ios-btn {
  position: relative;
}

.recipe-print-alert .swal2-actions .ios-btn:last-child::before {
  content: '';
  position: absolute;
  left: -7px;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 24px;
  background: #c8d2ef;
}

/* =========================================
   INVENTARIO
========================================= */
.inventario-toolbar {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  margin-bottom: 12px;
}

.inventario-toolbar-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  overflow: visible;
}

.inventario-status-filters {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 4px 2px 10px;
  scrollbar-width: thin;
}

.inventario-status-btn {
  border: 1px solid #d6def3;
  border-radius: 999px;
  background: #f4f7ff;
  color: #31579f;
  min-height: 34px;
  padding: 6px 12px;
  white-space: nowrap;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  font-size: 0.8rem;
  font-weight: 700;
}

.inventario-status-btn strong {
  font-size: 0.72rem;
}

.inventario-status-btn.is-active {
  outline: 2px solid #b3c6ef;
}

.inventario-status-btn.tone-danger { background: #ffecef; color: #c4314f; border-color: #ffc4cc; }
.inventario-status-btn.tone-warning { background: #fff3e2; color: #b86a08; border-color: #ffd7a1; }
.inventario-status-btn.tone-success { background: #e7f8ee; color: #128a43; border-color: #b8eac8; }
.inventario-status-btn.tone-info { background: #eaf1ff; color: #285ac7; border-color: #c8d9ff; }

.inventario-list.has-scroll-hint::after {
  content: '↓ Deslizá para ver más ingredientes';
  position: sticky;
  bottom: 0;
  left: 0;
  right: 0;
  display: block;
  text-align: center;
  font-size: 0.78rem;
  font-weight: 600;
  color: #7048e9;
  background: linear-gradient(to bottom, rgba(242, 245, 252, 0), rgb(236 231 255));
  padding: 10px 0 4px;
  margin-top: -28px;
  pointer-events: none;
}

.inventario-card {
  align-items: flex-start;
}

.inventario-card.is-selected {
  border-color: #99b3ea;
}

.inventario-card.status-never {
  background: #f1f3f8;
  border-color: #d6dbe8;
}

.inventario-card.status-empty {
  background: #fff2f2;
  border-color: #ffc8c8;
}

.inventario-card.status-low {
  background: #fff5e8;
  border-color: #ffd7a6;
}

.inventario-card.status-good {
  background: #f5fbf5;
  border-color: #cceacc;
}

.inventario-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.inventario-status-badge {
  font-size: 0.74rem;
  border-radius: 999px;
  border: 1px solid #cfdaef;
  padding: 4px 10px;
  color: #2a4f9b;
  background: #edf2ff;
}

.inventario-stock-line {
  margin: 6px 0 0;
  display: block;
  color: #4c5e86;
}

.inventario-stock-line strong {
  color: #1f4ea5;
  font-size: 18px;
}

.inventario-stock-unit {
  font-size: 0.78rem;
  font-weight: 700;
  color: #1f4ea5;
  margin-left: 4px;
}

.inventario-stock-line > span {
  display: block;
  margin-top: 2px;
}

.inventario-expiring-list {
  margin-top: 6px;
  display: grid;
  gap: 2px;
}

.inventario-expiring-line {
  margin: 0;
  font-size: 0.75rem;
  color: #4f6596;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 2px 0;
}

.inventario-expiring-line strong {
  color: #2a4f9b;
}

.inventario-expiring-line.is-soon span {
  color: #b56f08;
  font-weight: 700;
}

.inventario-expiring-line.is-expired span {
  color: #c62c45;
  font-weight: 700;
}

.inventario-stock-real-line {
  display: block;
  margin-top: 2px;
  font-weight: 700;
  color: #0e8f42;
}

.inventario-expiring-list-editor {
  margin-top: 0;
}

.inventario-stock-line-expired strong {
  color: #b42338;
}

.inventario-stock-line-expired .inventario-stock-unit,
.inventario-stock-line-expired > span {
  color: #b42338;
  font-weight: 700;
}

.inventario-stock-line-expired em {
  color: #b42338;
  font-style: normal;
  font-weight: 700;
}

.inventario-actions-row {
  margin-top: 8px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.toolbar-scroll-x {
  display: flex;
  gap: 8px;
  align-items: center;
  overflow: visible;
  white-space: nowrap;
  padding-bottom: 4px;
}

.toolbar-scroll-x > * {
  flex: 0 0 auto;
}

.inventory-production-actions {
  gap: 8px;
}

.inventory-production-action-btn {
  min-height: 38px;
  border-radius: 14px;
  font-size: 0.88rem;
  font-weight: 700;
  padding: 8px 14px;
}

.inventory-production-action-btn.is-main {
  background: #34c759;
  border: 1px solid #34c759;
  color: #fff;
}

.inventory-production-action-btn.is-main:hover {
  background: #28b14a;
  color: #fff;
}

.inventory-production-action-btn.is-view {
  background: #1f7ae8;
  border: 1px solid #1f7ae8;
  color: #fff;
}

.inventory-production-action-btn.is-view:hover {
  background: #166ad0;
  color: #fff;
}

.inventory-production-action-btn.is-threshold {
  background: #eceef3;
  color: #555c68;
  border: 1px solid #d6d8de;
}

.inventory-production-action-btn.is-threshold:hover {
  background: #dee4f0;
  color: #434f6a;
}

.inventory-production-action-btn.is-inventory {
  background: #ff8a2a;
  border: 1px solid #ff8a2a;
  color: #fff;
}

.inventory-production-action-btn.is-inventory:hover {
  background: #ef7c1e;
  border-color: #ef7c1e;
  color: #fff;
}

.inventario-actions-row .ios-btn {
  width: fit-content;
  max-width: none;
}

.inventario-threshold-btn {
  min-height: 34px;
  padding: 6px 10px;
  font-size: 0.78rem;
  border-radius: 5px;
}

.inventory-production-action-btn.inventario-threshold-btn {
  min-height: 38px;
  padding: 8px 14px;
  font-size: 0.88rem;
  border-radius: 14px;
}

.inventario-actions-row .inventario-threshold-btn:not(.inventory-production-action-btn) {
  min-height: 34px;
  background-color: #edf3ff;
  color: #2a4ea3;
  padding: 6px 10px;
  font-size: 0.78rem;
  border-radius: 12px;
  font-size: 0.82rem;
  border: 1px solid #d3dbf0;
}

.inventario-actions-row .inventario-threshold-btn:not(.inventory-production-action-btn):hover {
  background-color: #dce7ff;
  color: #1f3e8a;
  cursor: pointer;
}

.inventario-threshold-btn i {
  font-size: 0.76rem;
}

.inventario-no-photo-btn {
  min-height: 30px;
  border-radius: 999px;
  font-size: 0.73rem;
  padding: 4px 9px;
}

.inventario-icon-only-btn {
  min-width: 36px;
  width: 36px;
  padding: 0;
}

.inventario-editor-product {
  text-align: center;
}

.inventario-editor-photo {
  display: flex;
  justify-content: center;
  margin-bottom: 8px;
  background-image: url("https://i.postimg.cc/SxTLsN2M/Ingredientes.png");
  background-size: cover;
  background-position: center;
  padding: 6px 10px;
  border-radius: 12px 12px 0 0;
}

.inventario-editor-photo .ingrediente-avatar {
  width: 88px;
  height: 88px;
}

.inventario-editor-name {
  color: #ff8a2a;
  font-weight: 800;
  margin: 0;
}

.inventario-editor-meta {
  margin: 4px 0 10px;
  color: #58709d;
}

.inventario-lot-grid {
  display: grid;
  grid-template-columns: minmax(220px, auto) 1fr;
  gap: 8px 12px;
  align-items: center;
}

.inventario-lot-separator {
  margin-top: 12px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.inventario-lot-separator select {
  max-width: 120px;
}

.inventario-lot-subtitle {
  margin: 10px 0 6px;
  font-size: 0.84rem;
  color: #516898;
  font-weight: 700;
}

.inventario-lot-order {
  min-height: 42px;
  border: 1px dashed #cfdaf2;
  border-radius: 12px;
  background: #f8faff;
  padding: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.inventario-token-chip {
  border: 1px solid #c6d8ff;
  background: #edf3ff;
  color: #355baf;
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 0.8rem;
  font-weight: 700;
}

.inventario-token-chip.is-dragging {
  opacity: 0.6;
}

.inventario-lot-preview-wrap {
  margin-top: 10px;
}

.inventario-lot-preview {
  display: block;
  border: 1px solid #d5e0f7;
  background: #f5f8ff;
  border-radius: 10px;
  padding: 6px 10px;
  color: #24468e;
}

/* =========================================
   RESPONSIVE INVENTARIO
========================================= */
@media (max-width: 991.98px) {
  .inventario-toolbar {
    grid-template-columns: 1fr;
  }

  .inventario-toolbar-actions {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .inventario-toolbar-actions .ios-btn {
    width: fit-content;
    max-width: none;
  }

  .inventario-lot-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================
   INVENTARIO AJUSTES V2
========================================= */
.inventario-stock-line.is-zero strong {
  color: #cc3f52;
  font-size: 18px;
}

.inventario-stock-line.is-zero .inventario-stock-unit {
  color: #cc3f52;
}

.inventario-threshold-btn {
  width: fit-content;
  max-width: none;
}

.inventario-view-btn {
  width: fit-content;
  max-width: none;
}

.inventario-product-head-v2 {
  border: 1px dashed #cdd9f2;
  border-radius: 18px;
  padding: 14px;
  background: #f8faff;
}

.inventario-product-copy {
  display: grid;
  gap: 4px;
}

.inventario-editor-kicker {
  margin: 0;
  margin-top: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.75rem;
  color: #6e7fa5;
}

.inventario-editor-photo .ingrediente-avatar {
  width: 96px;
  height: 96px;
  border: 3px solid #34c759;
}

.inventario-editor-name {
  font-size: 1.45rem;
  color: #1f3e8a;
}

.inventario-editor-meta {
  margin: 0;
}

.inventario-editor-measure {
  margin: 0;
  color: #6c7ea8;
  font-size: 0.88rem;
}

.inventario-stat-card.is-danger strong {
  color: #cc3f52;
}

.inventario-check-grid {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}

.inventario-check-row {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #36507f;
  font-weight: 600;
}

.inventario-check-row input {
  width: 18px;
  height: 18px;
}

.inventario-weekly-bulk-alert {
  width: min(1100px, 96vw);
}

.inventario-weekly-bulk-alert .swal2-html-container {
  padding: 0 !important;
}

.inventario-weekly-config-btn {
  white-space: nowrap;
}

.inventario-weekly-bulk-wrap {
  text-align: left;
}

.inventario-weekly-bulk-intro {
  margin: 0 0 12px;
  color: #566684;
  text-align: center;
}

.inventario-weekly-bulk-list {
  display: grid;
  gap: 10px;
  max-height: 62vh;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 4px;
}

.inventario-weekly-row {
  border: 1px solid #c9daf5;
  border-radius: 16px;
  padding: 8px;
  background: #f5f9ff;
  display: grid;
  gap: 8px;
}

.inventario-weekly-row.is-perishable {
  border-color: #b9e8cb;
  background: #ecfaf2;
}

.inventario-weekly-row.is-non-perishable {
  border-color: #c7d9ff;
  background: #edf4ff;
}

.inventario-weekly-product-head {
  display: flex;
  gap: 10px;
  align-items: center;
  min-width: 0;
}

.inventario-weekly-product-head > div {
  min-width: 0;
  flex: 1;
}

.inventario-weekly-thumb-wrap {
  width: 54px;
  height: 54px;
  border-radius: 999px;
  border: 1px solid #d2dbef;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #edf2ff;
  color: #355899;
}

.inventario-weekly-thumb-wrap .thumb-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.inventario-weekly-thumb-wrap .thumb-loading,
.inventario-weekly-thumb-wrap .thumb-loading .meta-spinner {
  width: 100%;
  height: 100%;
}

.inventario-weekly-bulk-alert .swal2-actions .ios-btn {
  width: auto;
  max-width: none;
  min-width: 160px;
}

.inventario-weekly-bulk-alert .swal2-actions .inventario-weekly-cancel-btn {
  min-width: 120px;
}

.swal2-popup.inventario-edit-entry-alert .swal2-input,
.swal2-popup.inventario-edit-entry-alert .swal2-select,
.swal2-popup.inventario-edit-entry-alert .swal2-file {
  margin: 0 !important;
}

.inventario-weekly-product-head h6 {
  margin: 0;
  color: #26395d;
}

.inventario-weekly-product-head p {
  margin: 1px 0 0;
  color: #60739d;
  font-size: 0.78rem;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: break-word;
  max-width: 100%;
}

.inventario-weekly-grid {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 6px 10px;
  align-items: center;
}

.inventario-weekly-grid .inventario-check-row span {
  overflow-wrap: anywhere;
}

.inventario-weekly-rotation {
  color: #36507f;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}

.inventario-weekly-rotation .swal2-input {
  margin: 0;
  min-height: 38px;
  max-width: 115px;
}

@media (max-width: 768px) {
  .inventario-weekly-grid {
    grid-template-columns: 1fr;
  }
}

.inventario-check-row-compact {
  font-size: 0.9rem;
  font-weight: 600;
}

.inventario-internal-switch-wrap {
  padding-top: 2px;
}

.inventario-inline-fields {
  margin-top: 8px;
}

.inventario-token-placeholder {
  border: 1px dashed #cbd8f3;
  border-radius: 12px;
  color: #657ca8;
  padding: 10px;
  width: 100%;
  text-align: center;
}

.inventario-token-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: grab;
}

.inventario-token-chip.drag-over {
  border: 1px dashed #7da1ea;
  background: #eef4ff;
}

.inventario-config-badge.is-muted {
  background: #eff3ff;
  color: #6b7ea9;
}

.inventario-table-head.enhanced {
  display: grid;
  gap: 10px;
  margin-bottom: 10px;
}

.inventario-table-range {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.inventario-pagination.enhanced {
  margin-top: 10px;
  border-top: 1px solid #d9e2f6;
  padding-top: 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.inventario-period-board {
  margin-top: 0;
  border: 1px solid #dbe4f7;
  border-radius: 16px;
  padding: 12px;
  background: #fbfcff;
}

.inventario-period-filters {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 10px;
  align-items: center;
}

.inventario-period-actions-scroll {
  width: 100%;
}

.inventario-period-filters #inventarioGlobalClearBtn, .inventario-period-filters #produccionGlobalClearBtn {
  border-radius: 5px !important;
}

#inventarioGlobalRange,
#produccionGlobalRange {
  grid-column: 1 / -1;
  min-width: 0;
}

.inventario-period-filters:has(#inventarioGlobalClearBtn:not(.d-none)) #inventarioGlobalRange,
.inventario-period-filters:has(#produccionGlobalClearBtn:not(.d-none)) #produccionGlobalRange {
  grid-column: 1 / 6;
}

#inventarioGlobalClearBtn,
#produccionGlobalClearBtn {
  grid-column: 6;
  justify-self: end;
}

#inventarioGlobalApplyBtn,
#produccionGlobalApplyBtn,
#inventarioGlobalExpandBtn,
#produccionGlobalExpandBtn,
#inventarioGlobalExcelBtn,
#produccionGlobalExcelBtn,
.inventario-period-divider,
#inventarioGlobalPrintBtn,
#inventarioGlobalSheetBtn,
#produccionGlobalPrintBtn {
  grid-row: 2;
}

#inventarioGlobalRange,
#produccionGlobalRange {
  flex: 1 1 100%;
  min-width: 0;
}

#inventarioGlobalRange, #produccionGlobalRange {
  border-radius: 5px !important;
}

.inventario-period-divider {
  width: 1px;
  height: 30px;
  background: #ccd7ef;
  align-self: center;
}

.inventario-table-compact-wrap {
  overflow-x: auto;
}

.inventario-table-compact {
  min-width: 760px;
}

.inventario-table-compact th {
  font-size: 0.72rem;
  padding: 7px 8px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  text-align: center;
  font-weight: 800;
  color: #284a93;
  white-space: nowrap;
}

.inventario-table-compact td {
  font-size: 0.9rem;
  padding: 7px 8px;
  text-align: start;
  font-weight: 700;
  color: #2f426d;
  white-space: nowrap;
}

.inventario-provider-cell {
  font-weight: 400 !important;
}

.inventario-table-compact tbody tr:nth-child(odd) {
  background: #f6f9ff;
}

.inventario-table-compact tbody tr:nth-child(even) {
  background: #edf3ff;
}

.inventario-table-compact tbody tr.is-even-row > td {
  background: white !important;
  border-bottom: 1px solid #e1e9f5 !important;
}

.inventario-table-compact tbody tr.is-odd-row > td {
  background: #f7faff !important;
  border-bottom: 1px solid #e1e9f5 !important;
}

.inventario-table-compact tbody td:nth-child(3) {
  color: #1f8a44;
}

.inventario-table-compact tbody td:nth-child(4) {
  color: #2f5fb0;
}

.inventario-field-feedback {
  display: block;
  margin-top: 6px;
  font-size: 0.76rem;
  color: #6f7f9f;
}

.inventario-field-feedback.is-error {
  color: #c4314f;
  font-weight: 700;
}

.image-viewer-controls.image-viewer-controls-inventario {
  grid-template-columns: 2fr repeat(4, minmax(0, 1fr));
}

.image-viewer-modal .ios-modal-body {
  max-height: calc(100vh - 120px);
  overflow: hidden;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 12px;
}


@media (max-width: 991.98px) {
  .inventario-pagination.enhanced {
    flex-direction: row;
    justify-content: center;
    gap: 8px;
    flex-wrap: nowrap;
  }

  .inventario-pagination.enhanced span {
    min-width: 120px;
    text-align: center;
  }

  .inventario-pagination.enhanced .inventario-page-btn {
    min-width: 40px;
    padding-inline: 10px;
  }
}

.inventario-head-action {
  flex: 1;
  width: 100%;
  max-width: none;
}

.inventario-product-head-stats {
  display: grid;
  gap: 8px;
}

.inventario-collapse-head-styled {
  margin-bottom: 5px;
  width: 100%;
  border: 1px solid #d8e1f5;
  border-radius: 16px;
  background: #f7faff;
  color: #2a3f70;
  min-height: 46px;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.inventario-collapse-summary {
  color: #6c7ea9;
  font-size: 0.9rem;
}

.inventario-day-kg {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 1px;
  background: #2e7fe6;
  color: #fff;
  border-radius: 12px;
  width: fit-content;
  font-size: 0.56rem;
  line-height: 1;
  padding: 2px 4px;
  pointer-events: none;
  text-wrap: nowrap;
}

.inventario-day-kg.is-mixed {
  background: #10b981;
}

.flatpickr-day {
  position: relative;
}

.flatpickr-day.today {
    border-color: #ff4747;
    background-color: #ff1010;
    color: white;
    font-weight: 700;
}

.inventario-period-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

#inventarioGlobalLoading {
  min-height: 150px;
}

.swal2-popup.ios-alert .swal2-deny:not(.ios-btn-deny-critical) {
  background: #e6ebfa !important;
  color: #2a4ea3 !important;
}

.swal2-popup.ios-alert .swal2-deny.ios-btn-deny-critical {
  background: #ff4d4f !important;
  color: #fff !important;
}

.inventario-card.status-never .inventario-status-badge {
  background: #eceff7;
  border-color: #d5dcec;
  color: #516187;
}

.inventario-card.status-empty .inventario-status-badge {
  background: #ffecef;
  border-color: #ffc4cc;
  color: #c4314f;
}

.inventario-card.status-low .inventario-status-badge {
  background: #fff3e2;
  border-color: #ffd7a1;
  color: #b86a08;
}

.inventario-card.status-good .inventario-status-badge {
  background: #e7f8ee;
  border-color: #b8eac8;
  color: #128a43;
}

.inventario-save-inline {
  margin-top: 12px;
  justify-content: flex-end;
}

.inventario-add-bulk-btn {
  background: #1fb35f;
  border-color: #1fb35f;
  color: #fff;
}

.inventario-add-bulk-btn:hover {
  background: #17934d;
  border-color: #17934d;
  color: #fff;
}

#saveInventorySpinner {
  width: 22px;
  height: 22px;
}

.inventario-product-head-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.inventario-product-head-stats .inventario-stat-card {
  min-width: 180px;
}

.inventario-head-action {
  width: fit-content;
  max-width: none;
  flex: 0 0 auto;
}

.inventario-history-toolbar {
  display: grid;
  gap: 8px;
}

.inventario-page-btn {
  min-width: 44px;
  padding-inline: 12px;
}

.inventario-entry-actions {
  display: inline-flex;
  gap: 6px;
}

.inventario-entry-actions .inventario-delete-btn{
  border-radius: 5px !important;
}

.inventario-table-head.enhanced #inventarioEntriesSearch {
  border-color: #d2d8e8;
  background: #f2f4fa;
}

.inventario-collapse-summary {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
  max-width: 60%;
}

.inventario-print-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-start;
}

.inventario-selector-row {
  justify-content: flex-start;
  width: 100%;
}

.inventario-bulk-table-wrap {
  margin-top: 10px;
}

.inventario-bulk-table thead th {
  background: #e8eefb;
  color: #36569b;
  font-weight: 700;
  border-bottom: 1px solid #d1ddf5;
}

.inventario-bulk-main-row td {
  vertical-align: middle;
}

.inventario-bulk-main-row .recipe-ing-input-wrap {
  grid-template-columns: 32px 1fr;
  gap: 12px;
}

.inventario-bulk-main-row .recipe-inline-avatar-wrap {
  width: 24px;
  height: 24px;
}

.inventario-bulk-main-row .recipe-small-placeholder i {
  font-size: 0.7rem;
}

.inventario-bulk-unit-cell {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) minmax(125px, auto);
  gap: 8px;
  align-items: center;
}

.inventario-bulk-secondary-row td {
  border-top: 0;
  padding-top: 2px;
  padding-bottom: 10px;
}

.inventario-bulk-row-extras {
  display: inline-flex;
  gap: 12px;
  flex-wrap: wrap;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid #d7def2;
  background: #f6f8ff;
}

@media (max-width: 991.98px) {
  .inventario-bulk-unit-cell {
    grid-template-columns: 1fr;
  }
}

.inventario-expand-btn {
  background: #ff8a2a;
  border: 1px solid #ff8a2a;
  color: #fff;
}

.inventario-expand-btn:hover {
  background: #ef7c1e;
  border-color: #ef7c1e;
  color: #fff;
}

.inventario-step-icon {
  margin-right: 6px;
  color: #4a5f8f;
  font-size: 0.92rem;
}

.inventario-stock-grid {
  border: 1px solid #dbe4f8;
  border-radius: 14px;
  background: #fbfcff;
  padding: 12px;
}

.inventario-stock-grid .form-label {
  color: #425681;
  font-weight: 700;
}

.inventario-upload-dropzone {
  width: 100%;
  min-height: 64px;
  border: 1px dashed #b8c9ee;
  border-radius: 12px;
  background: #f5f8ff;
  color: #3b5da7;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 700;
  font-size: 0.9rem;
  cursor: pointer;
  text-align: center;
  padding: 12px;
}

.inventario-upload-dropzone.is-dragging {
  border-color: #5e7de8;
  background: #eaf1ff;
}

.inventario-hidden-file-input {
  display: none;
}

.inventario-file-feedback {
  display: block;
  margin-top: 6px;
  color: #5f6f94;
  font-size: 0.8rem;
  text-align: center;
}

#imageViewerModal {
  z-index: 3200;
}

.modal-backdrop.inventory-image-backdrop {
  z-index: 3190;
}

.inventario-expand-btn {
  background: #ff8a2a;
  border: 1px solid #ff8a2a;
  color: #fff;
}

.inventario-expand-btn:hover {
  background: #ef7c1e;
  border-color: #ef7c1e;
  color: #fff;
}

.inventario-step-icon {
  margin-right: 6px;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #315aa6;
  font-size: 0.72rem;
}

.inventario-row-tone.is-even-row {
  background: #f7faff !important;
}

.inventario-row-tone.is-odd-row {
  background: #eaf1ff !important;
}

#imageViewerModal {
  z-index: 3200;
}

.modal-backdrop.inventory-image-backdrop {
  z-index: 3190;
}

.inventario-print-photo-wrap {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid #d4def5;
  background: #edf2fd;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 34px;
  position: relative;
}

.inventario-print-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.inventario-config-badge {
  display: inline-flex;
  align-items: center;
  border: 1px solid #cddaf5;
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 0.78rem;
  color: #31579f;
  background: #edf3ff;
  white-space: nowrap;
}

.inventario-day-kg {
  bottom: -3px;
  background: #d93a4f;
}

#inventarioEditor {
  overflow-x: hidden;
}

#inventarioEditor .inventario-table-compact {
  min-width: 980px;
  table-layout: auto;
}

#inventarioEditor .inventario-table-compact th,
#inventarioEditor .inventario-table-compact td {
  white-space: nowrap;
}

.inventario-product-head-stats .inventario-stat-card:first-child {
  border-color: #cfd9f1;
  background: #f5f7fd;
}

.inventario-product-head-stats .inventario-stat-card:first-child small {
  font-size: 0.8rem;
  letter-spacing: 0.02em;
  color: #4a5e8f;
  font-weight: 700;
}

.inventario-product-head-stats .inventario-stat-card:first-child strong {
  font-size: 1.35rem;
  color: #7a5ce6;
  font-weight: 800;
}

#inventarioOpenPeriodFilterBtn span {
  white-space: nowrap;
}

.swal2-popup .swal-stack-fields .swal2-input + .swal2-input {
  margin-top: 10px;
}

.ios-btn-danger {
  background: #ff3b30;
  color: #fff;
}

.ios-btn-danger:hover {
  background: #e02c22;
  color: #fff;
}

@media (max-width: 991.98px) {
  .inventario-table-range {
    grid-template-columns: 1fr;
  }

  .inventario-history-toolbar {
    grid-template-columns: 1fr;
  }

  .inventario-print-row {
    justify-content: flex-start;
  }

  .toolbar-scroll-x {
    width: 100%;
  }

  .inventario-period-actions-scroll {
    width: 100%;
    max-width: 100%;
  }

  .inventario-collapse-head-styled {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .inventario-collapse-summary {
    max-width: 100%;
    justify-content: flex-start;
  }

  .inventario-expand-btn {
    display: none;
  }

  #inventarioGlobalRange,
  #produccionGlobalRange {
    grid-column: 1 / -1;
  }

  #inventarioGlobalClearBtn,
  #produccionGlobalClearBtn {
    grid-column: 1 / -1;
    justify-self: start;
  }

  #inventarioGlobalApplyBtn,
  #produccionGlobalApplyBtn,
  #inventarioGlobalExpandBtn,
  #produccionGlobalExpandBtn,
  #inventarioGlobalExcelBtn,
  #produccionGlobalExcelBtn,
  #inventarioGlobalPrintBtn,
  #inventarioGlobalSheetBtn,
  #produccionGlobalPrintBtn,
  #produccionGlobalMassPlanillasBtn,
  .inventario-period-divider {
    grid-row: auto;
  }

  .inventario-period-divider {
    display: none;
  }
}

.inventario-invoice-textarea {
  min-height: 44px;
  resize: vertical;
}

#inventarioEntriesRange {
  border-color: #9cb3e7;
  background: #f7f9ff;
}

.viewer-stage #viewerStageSpinner .meta-spinner-login {
  width: 88px;
  height: 88px;
}

.inventario-config-badge.is-secondary {
  background: #eef1f8;
  color: #6e7f9f;
  border-color: #d9deeb;
}

#inventarioEntriesSearch::-webkit-search-cancel-button {
  -webkit-appearance: searchfield-cancel-button;
  cursor: pointer;
}

.inventario-delete-btn {
  background: #f44336;
  border: 1px solid #f44336;
  color: white;
}

.inventario-delete-btn:hover {
  background: #ce372c;
  color: white;
}

.inventario-period-filters .inventario-delete-btn{
  border-radius: 5px !important;
}

.inventario-stat-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.inventario-head-actions-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.inventario-day-kg {
  bottom: -5px;
  background: #6f5be6;
  padding: 2px 4px;
  font-size: 0.6rem;
}

.inventario-product-head-stats {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

/* =========================================
   MODAL PRODUCCIÓN
========================================= */
.home-action-btn-success {
  border-color: #b9e5c8;
  background: #e8f8ef;
  color: #1f8d49;
}

.home-action-btn-success:hover {
  border-color: #93d9ad;
  background: #dcf4e6;
  color: #16733a;
}

.produccion-data {
  width: 100%;
}

.produccion-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.produccion-toolbar-actions {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.produccion-toolbar-actions .ios-btn,
.inventario-toolbar-actions .ios-btn {
  width: fit-content;
  max-width: none;
}

.produccion-history-btn {
  width: auto;
  max-width: none;
  background: #ff8a2a;
  border: 1px solid #f2c08a;
  color: #fff;
  transition: all 0.25s ease;
}

.produccion-history-btn:hover {
  background: #ef8025;
  border-color: #ffc78f;
  color: white;
  cursor: pointer;
}

.produccion-dispatch-btn {
  width: fit-content;
  max-width: none;
  white-space: nowrap;
  background: #1f7ae8;
  border: 1px solid #1f7ae8;
  color: #fff;
}

.produccion-dispatch-btn span,
.produccion-history-btn span {
  white-space: nowrap;
}

.produccion-dispatch-btn:hover {
  background: #166ad0;
  color: #fff;
  border: 1px solid #1f7ae8;
}

.produccion-product-history-btn {
  width: auto;
  border: 1px solid #f2c08a;
  background: #ff8a2a;
  color: #fff;
  font-weight: 600;
  font-size: 0.86rem;
  padding: 2px 9px;
  line-height: 1.1;
  border-radius: 999px;
  text-decoration: none;
}

.produccion-product-history-btn:hover {
  background: #ef7c1e;
  color: #fff;
}

.produccion-product-history-btn {
  width: auto;
  border: 0;
  background: transparent;
  color: #6f7ea6;
  font-weight: 600;
  font-size: 0.86rem;
  padding: 0;
  line-height: 1.1;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.produccion-product-history-btn:hover {
  background: transparent;
  color: #2d4578;
}

.swal2-popup.produccion-recipe-history-alert .swal2-html-container {
  padding: 0 !important;
  margin: 0 !important;
  text-align: left !important;
}

.swal2-popup.produccion-recipe-history-alert .swal2-actions {
  margin-top: 10px;
}

.swal2-popup.produccion-recipe-history-alert.is-expanded {
  width: 96vw !important;
  max-width: 96vw !important;
}

.produccion-recipe-history-modal {
  padding: 10px 12px 0;
}

.produccion-recipe-history-modal .is-movement-in td {
  background: #ecfdf3;
  color: #111827;
  font-weight: 400;
}

.produccion-recipe-history-modal .is-movement-out td {
  background: #fff1f2;
  color: #111827;
  font-weight: 400;
}

.produccion-recipe-history-modal .movement-type-in,
.produccion-recipe-history-modal .movement-code-in {
  color: #17803d;
  font-weight: 700;
}

.produccion-recipe-history-modal .movement-type-out,
.produccion-recipe-history-modal .movement-code-out {
  color: #b4232a;
  font-weight: 700;
}

.produccion-recipe-history-modal .movement-qty-in {
  color: #17803d;
  font-weight: 700;
}

.produccion-recipe-history-modal .movement-qty-out {
  color: #b4232a;
  font-weight: 700;
}

.produccion-recipe-history-modal .inventario-table-compact-wrap.is-expanded {
  max-height: 70vh;
}

@media (max-width: 768px) {
  .produccion-recipe-history-modal {
    padding: 8px 8px 0;
  }

  .swal2-popup.produccion-recipe-history-alert {
    width: 96vw !important;
  }
}

.produccion-umbral-global-btn,
.produccion-umbral-btn {
  width: fit-content;
  max-width: none;
}

.produccion-umbral-btn {
  background: #f4f7ff;
  border: 1px solid #d6def3;
  color: #2a3f70;
  border-radius: 14px;
}

.produccion-umbral-btn:hover {
  background: #eaf1ff;
  color: #223760;
}

.produccion-responsable-wrap {
  display: grid;
  line-height: 1.2;
}

.produccion-responsable-wrap strong {
  color: #2d497e;
}

.produccion-responsable-wrap small {
  color: #6a7a9d;
  font-size: 0.74rem;
}

.produccion-vto-cell {
  color: #8a4b12 !important;
  font-weight: 800 !important;
}

.produccion-trace-v2 {
  display: grid;
  gap: 12px;
  text-align: left;
}

.produccion-trace-summary,
.produccion-trace-ingredient {
  border: 1px solid #dbe4f8;
  border-radius: 14px;
  background: #f8fbff;
  padding: 12px;
  margin-bottom: 10px;
}

.produccion-trace-ingredients {
  display: grid;
  gap: 10px;
  overflow: auto;
}

.produccion-trace-ingredient header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.produccion-trace-ingredient h6 {
  margin: 0;
  color: #2b416f;
}

.produccion-trace-ingredient small {
  color: #5a6f97;
}

.produccion-trace-lots {
  display: grid;
  gap: 8px;
}

.produccion-trace-lot-card {
  border: 1px solid #dce5f8;
  border-radius: 12px;
  background: #ffffff;
  padding: 10px;
  display: grid;
  gap: 8px;
}

.produccion-trace-lot-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.produccion-trace-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 12px;
}

.produccion-trace-grid p {
  margin: 0;
  display: grid;
  gap: 2px;
}

.produccion-trace-grid strong {
  color: #5d7098;
  font-size: 0.74rem;
  text-transform: uppercase;
}

.produccion-trace-grid span {
  color: #27457d;
  font-weight: 700;
}

.produccion-trace-managers {
  margin-top: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.produccion-trace-chip {
  border: 1px solid #d3ddf3;
  border-radius: 999px;
  background: #eef3ff;
  color: #2f4f8b;
  padding: 4px 10px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.produccion-trace-chip small {
  color: #6f80a6;
  font-size: 0.72rem;
}

@media (max-width: 991.98px) {
  .produccion-toolbar-actions {
    width: 100%;
    justify-content: flex-end;
    flex-wrap: nowrap;
  }
}

.produccion-list {
  max-height: 60vh;
}

.produccion-list.has-scroll-hint::after {
  content: '↓ Deslizá para ver más producciones';
  position: sticky;
  bottom: 0;
  left: 0;
  right: 0;
  display: block;
  text-align: center;
  font-size: 0.78rem;
  font-weight: 600;
  color: #7048e9;
  background: linear-gradient(to bottom, rgba(242, 245, 252, 0), rgb(236 231 255));
  padding: 10px 0 4px;
  margin-top: -28px;
  pointer-events: none;
}

.produccion-card {
  border-width: 1px;
}

.produccion-card.tone-success {
  border-color: #bce8cc;
  background: #f7fdf9;
}

.produccion-card.tone-warning {
  border-color: #f6d49d;
  background: #fffaf3;
}

.produccion-card.tone-danger {
  border-color: #f3c3c9;
  background: #fff8f9;
}

.produccion-row-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.produccion-chip {
  border-radius: 999px;
  border: 1px solid #d3ddf3;
  padding: 4px 10px;
  font-size: 0.78rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.produccion-chip.tone-success { color: #148d44; background: #eaf9f0; border-color: #b5e7c5; }
.produccion-chip.tone-warning { color: #b06c08; background: #fff3e2; border-color: #ffd6a4; }
.produccion-chip.tone-danger { color: #bd2e45; background: #ffedf0; border-color: #f6bfca; }

.produccion-semaforo {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: currentColor;
}

.produccion-last-line {
  margin: 3px 0 0;
  font-size: 0.8rem;
  color: #60739f;
}

.produccion-last-line.produccion-last-line-expired {
  color: #b42338;
  font-weight: 700;
}

.produccion-last-line.produccion-last-line-expired i,
.produccion-last-line.produccion-last-line-expired strong {
  color: #b42338;
}

.produccion-progress-wrap {
  margin-top: 8px;
  display: grid;
  gap: 8px;
}

.produccion-progress-wrap small {
  color: #38558f;
  font-weight: 600;
}

.produccion-progress-bar {
  width: 100%;
  height: 18px;
  border-radius: 999px;
  background: #e2eafc;
  overflow: hidden;
  border: 1px solid #d4def5;
}

.produccion-progress-bar span {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #ff9f0a 0%, #ff7a00 100%);
}

.produccion-progress-bar span.is-success {
  background: linear-gradient(90deg, #30d158 0%, #34c759 100%);
}

.produccion-progress-bar span.is-warning {
  background: linear-gradient(90deg, #ffb340 0%, #ff8a00 100%);
}

.produccion-progress-bar span.is-danger {
  background: linear-gradient(90deg, #ff5e57 0%, #ff3b30 100%);
}

.produccion-stats-line {
  margin-top: 4px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.produccion-stat-block {
  display: grid;
  gap: 2px;
}

.produccion-stat-block small {
  color: #5b6d95;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: .03em;
  font-weight: 700;
}

.produccion-stat-block strong {
  font-size: 1.35rem;
  line-height: 1.1;
  color: #1f3f82;
}

.produccion-stat-block.is-stock-up small,
.produccion-stat-block.is-stock-up strong {
  color: #1f8a48;
}

.produccion-stat-block.is-stock-down small,
.produccion-stat-block.is-stock-down strong {
  color: #b8353f;
}

.produccion-stat-sep {
  width: 1px;
  align-self: stretch;
  background: #d5dff5;
}

.produccion-checks-head {
  margin-top: 8px;
  color: #38558f;
  font-size: 0.78rem;
  font-weight: 700;
}

.produccion-checks-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}

.produccion-dispatch-filter {
  border-radius: 5px !important;
}

.produccion-dispatch-head .step-title {
  margin-right: auto;
}

.dispatch-client-alert .swal2-html-container,
.dispatch-vehicle-alert .swal2-html-container {
  padding: 0 !important;
  text-align: left !important;
}



.weekly-range-alert :is(.swal2-input, .swal2-select, .swal2-file) {
  margin: 0 0 10px !important;
  width: 100% !important;
  max-width: 100% !important;
}

.dispatch-locality-alert .swal2-html-container {
  padding: 0 !important;
}

.dispatch-locality-alert :is(.swal2-input, .swal2-select) {
  margin: 8px 0 10px !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}


.dispatch-client-alert .swal-stack-fields {
  display: grid;
  gap: 10px;
}

.dispatch-client-preview {
  display: flex;
  justify-content: center;
  margin: 0 0 12px;
}

.dispatch-client-preview-avatar {
  width: 100px;
  height: 100px;
  font-size: 2.5rem;
  font-weight: 800;
}

.dispatch-client-alert :is(.swal2-input, .swal2-select, .swal2-file),
.dispatch-vehicle-alert :is(.swal2-input, .swal2-select, .swal2-file) {
  margin: 0 0 10px !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}

.dispatch-vehicle-alert .inventario-upload-dropzone {
  margin-bottom: 10px;
}

.recipe-suggest-item small.text-danger {
  color: #c23b45 !important;
  font-weight: 700;
}

.produccion-dispatch-create .dispatch-products-table,
.produccion-dispatch-create .recipe-table-wrap {
  overflow-x: auto;
  overflow-y: hidden;
}

.produccion-dispatch-create .recipe-table {
  min-width: 920px;
}

.dispatch-product-input-wrap {
  grid-template-columns: 34px minmax(180px, 1fr);
}

.dispatch-products-table th:nth-child(2),
.dispatch-products-table td:nth-child(2) {
  width: 130px;
}

.dispatch-product-input-wrap .recipe-inline-avatar {
  object-fit: contain;
  padding: 2px;
  background: #fff;
}

.dispatch-product-input-wrap .recipe-inline-avatar-wrap {
  width: 34px;
  height: 34px;
}

.dispatch-product-table-icon {
  font-size: 1rem;
}

.dispatch-product-row-icon {
  font-size: 1rem !important;
  line-height: 1;
}

.dispatch-product-placeholder {
  color: #6f46eb;
}

.dispatch-product-search-input {
  min-width: 180px;
}

.dispatch-actions-row {
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.dispatch-comment-row td {
  background: #fff8ef !important;
}

.dispatch-proof-row td {
  background: #fff1f4 !important;
  border-top: 1px solid #f3ccd6 !important;
}

.dispatch-proof-name {
  margin: 6px 0 0;
  color: #8f3b4f;
  font-size: 0.8rem;
  font-weight: 700;
}

.dispatch-proof-drop {
  min-height: 52px;
  border-color: #f0b4c3;
  background: #fff6f8;
  color: #a13e58;
}

.dispatch-proof-expiry-cell {
  color: #a13e58;
  font-weight: 700;
}

.dispatch-comment-row input {
  border-color: #f3d6ae;
  background: #fff;
}

.dispatch-comment-textarea {
  min-height: 84px;
  resize: vertical;
}

.dispatch-stock-cell,
.dispatch-lot-cell,
.dispatch-expiry-cell {
  font-size: 0.9rem;
  line-height: 1.35;
  vertical-align: top;
  word-break: break-word;
}

.dispatch-expiry-cell.is-danger {
  color: #b42338;
  font-weight: 700;
}

.dispatch-expiry-text-danger {
  color: #b42338;
  font-weight: 800;
}

.dispatch-expired-row td {
  background: #fff0f3 !important;
  border-top: 1px solid #f2b9c5 !important;
}

.dispatch-expired-copy {
  margin: 0;
  color: #ad1f3a;
  font-size: 0.82rem;
  font-weight: 700;
}

.dispatch-expired-actions {
  margin-top: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dispatch-stock-block {
  display: block;
}

.dispatch-uses-label {
  color: #2f5fb0;
}

.dispatch-uses-value {
  color: #7a5ce6;
  font-weight: 800;
}

.dispatch-lot-cell {
  font-weight: 700;
  font-size: 0.84rem;
  color: #34486f;
}

.dispatch-managers-search-group {
  margin-bottom: 10px;
}

.dispatch-managers-search-group .ingredientes-search-icon {
  border-right: 1px solid #d2d8e8;
}

.dispatch-vehicle-actions {
  margin-top: 8px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.dispatch-vehicle-tone {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  display: inline-flex;
  margin-top: 4px;
}

.dispatch-vehicle-tone.tone-success { background: #1f9d50; }
.dispatch-vehicle-tone.tone-warning { background: #b86a08; }
.dispatch-vehicle-tone.tone-danger { background: #c4314f; }
.dispatch-vehicle-tone.tone-neutral { background: #7d87a4; }

.dispatch-vehicles-manager-list {
  display: grid;
  gap: 10px;
  max-height: 60vh;
  overflow: auto;
}

.dispatch-vehicle-manager-card {
  border: 1px solid #d9e3f8;
  border-radius: 12px;
  background: #fff;
  padding: 10px;
}

.dispatch-vehicle-manager-card p,
.dispatch-vehicle-manager-card small {
  margin: 0;
}

.dispatch-vehicle-manager-card small {
  color: #627497;
}

.dispatch-vehicle-manager-actions {
  margin-top: 8px;
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}

.dispatch-vehicle-manager-card.tone-success { border-color: #bbe6c8; background: #ecfaf2; }
.dispatch-vehicle-manager-card.tone-warning { border-color: #f3d4ad; background: #fff4e7; }
.dispatch-vehicle-manager-card.tone-danger { border-color: #f2b4c0; background: #ffecef; }

.dispatch-client-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
  min-height: 30px;
  flex-wrap: wrap;
}

.dispatch-client-head-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-left: auto;
}

.dispatch-client-helper {
  color: #6f7fa2;
  font-size: 0.78rem;
  font-weight: 600;
}

.dispatch-quick-client-btn {
  min-height: 34px;
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 0.78rem;
  max-width: none;
  width: auto;
}



.dispatch-clients-manager-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.dispatch-clients-manager-search {
  flex: 1 1 320px;
  margin-bottom: 0;
}

.dispatch-clients-edit-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.dispatch-clients-edit-head .inventario-period-head {
  margin-bottom: 0;
}


.dispatch-client-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid #d7dff2;
  border-radius: 14px;
  background: #f8faff;
  margin-bottom: 8px;
}

.dispatch-client-row-main {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.dispatch-client-row-main small {
  display: block;
  color: #6f7fa2;
  text-align: center;
}

.dispatch-client-row .dispatch-client-suggest-avatar {
  width: 42px;
  height: 42px;
  font-weight: 700;
  border-radius: 999px;
}

.produccion-dispatch-floating-suggest {
  max-height: 260px;
  overflow-y: auto;
}

.produccion-dispatch-floating-suggest .user-avatar-thumb {
  width: 38px !important;
  height: 38px !important;
  font-size: 0.85rem !important;
}

.produccion-dispatch-floating-suggest .dispatch-client-suggest-avatar {
  width: 42px !important;
  height: 42px !important;
  font-size: 0.95rem !important;
}

.produccion-dispatch-ok {
  color: #1f8a48;
  font-weight: 700;
}

.produccion-dispatch-missing {
  color: #b8353f;
  font-weight: 700;
}

.produccion-check-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 0.74rem;
  border: 1px solid #d4def4;
  background: #eef3ff;
  color: #35538d;
  font-weight: 600;
}

.produccion-check-item.is-ok {
  border-color: #bfe7cf;
  background: #ebf9f1;
  color: #138243;
}

.produccion-check-item.is-missing {
  border-color: #f2c8d0;
  background: #fff0f3;
  color: #b53c53;
}

.produccion-check-item.is-expired {
  border-color: #ffd6a4;
  background: #fff4e4;
  color: #b26b08;
}

.produccion-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.produccion-badge {
  border-radius: 999px;
  border: 1px solid #f0c3c9;
  background: #fff1f3;
  color: #b23d4d;
  padding: 2px 8px;
  font-size: 0.72rem;
  font-weight: 700;
}

.produccion-badge.is-warning {
  border-color: #ffd7a4;
  background: #fff4e4;
  color: #b26b08;
}

.produccion-badge.is-danger {
  border-color: #f2b7c4;
  background: #ffecef;
  color: #be2f48;
}

.produccion-missing-list {
  margin-top: 8px;
  display: grid;
  gap: 4px;
}

.produccion-missing-list p,
.produccion-ok-line,
.produccion-error {
  margin: 0;
  font-size: 0.8rem;
  color: #4c5f88;
}

.produccion-error {
  color: #b23d4d;
  font-weight: 600;
}

.produccion-actions-row {
  margin-top: 10px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.produccion-main-btn,
.produccion-to-inventario-btn {
  width: fit-content;
  max-width: none;
  min-height: 40px;
  padding: 8px 12px;
}

.produccion-to-inventario-btn {
  background: #ff9f0a;
  color: #fff;
}

.produccion-to-inventario-btn:hover {
  background: #e58d05;
  color: #fff;
}

.produccion-editor-header {
  margin-bottom: 10px;
}

.produccion-head-box {
  border: 1px dashed #cdd9f2;
  border-radius: 18px;
  padding: 12px;
  background: #f8faff;
  margin-bottom: 12px;
}

.produccion-hero-wrap {
  width: 100%;
  height: 140px;
  border-radius: 14px;
  overflow: hidden;
  position: relative;
  margin-bottom: 0;
  border: 1px solid #d6ddf3;
}

.produccion-hero-bg {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.produccion-hero-avatar {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 8px;
  width: 96px;
  height: 96px;
  border-radius: 999px;
  border: 3px solid #34c759;
  overflow: hidden;
  background: #eff4ff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.produccion-head-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.produccion-umbral-alert {
  max-width: 540px;
  border-radius: 20px;
}

.swal2-popup.ios-alert.produccion-umbral-alert {
  border-radius: 22px;
}

.produccion-umbral-alert .swal2-html-container {
  margin-top: 0.4rem;
  text-align: left;
}

.produccion-umbral-form {
  display: grid;
  gap: 8px;
}

.produccion-umbral-form label {
  margin: 0;
  color: #4f5f84;
  font-weight: 500;
}

.produccion-umbral-alert .swal2-input.ios-input {
  margin: 0;
  width: 100%;
  border-radius: 16px;
}

.produccion-head-icon {
  width: 15px;
  height: 15px;
  object-fit: contain;
  filter: invert(35%) sepia(67%) saturate(1712%) hue-rotate(206deg) brightness(90%) contrast(90%);
}

.produccion-max-line {
  margin: 0;
  color: #178c46;
  font-weight: 700;
}

.produccion-qty-grid {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
}

.produccion-qty-help {
  margin: 8px 0 0;
  color: #5f6f94;
  font-size: 0.83rem;
}

.produccion-confirm-summary {
  display: grid;
  gap: 6px;
}

.produccion-confirm-summary p {
  margin: 0;
  color: #3a4f7f;
}

.produccion-confirm-summary strong {
  color: #273f70;
}

.produccion-confirm-vto {
  color: #8a4b12;
  font-weight: 700;
}

.produccion-confirm-total {
  color: #1f7ae8;
  font-weight: 800;
  font-size: 1.4rem;
  line-height: 1.1;
}

.produccion-confirm-card {
  background: #f6f9ff;
  border: 1px solid #dce6fb;
  border-radius: 14px;
  padding: 10px;
}

.produccion-confirm-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 6px;
}

.produccion-confirm-icon {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #1f7ae8;
  background: #e8f1ff;
  border: 1px solid #cfe0ff;
  font-size: 1.05rem;
}

.produccion-confirm-kicker {
  margin: 0;
  font-weight: 800;
  color: #26467d;
  font-size: 0.85rem;
}

.produccion-confirm-note {
  margin: 0;
  color: #5f6f94;
  font-size: 0.78rem;
}

.produccion-trace-date {
  color: #1f6fd6;
  font-weight: 700;
}

.produccion-trace-expiry {
  color: #b14f10;
  font-weight: 700;
}

.produccion-trace-badge {
  color: #8e2f40;
  font-weight: 700;
}

.swal2-popup.produccion-confirm-alert .swal2-icon.swal2-question {
  display: none !important;
}

.produccion-fefo-note {
  margin: 8px 0 0;
  margin-bottom: 10px;
  border: 1px solid #cde0ff;
  border-radius: 12px;
  background: #f1f7ff;
  color: #33558f;
  padding: 10px 12px;
  font-size: 0.83rem;
}

.produccion-fefo-note strong {
  color: #1f4ea0;
}

.produccion-fefo-note span {
  color: #26467d;
  font-weight: 700;
}

.produccion-detail-grid {
  display: grid;
  gap: 8px;
}

.produccion-detail-row {
  border: 1px solid #d7e2f7;
  border-radius: 12px;
  background: #f8fbff;
  padding: 6px 10px;
  display: grid;
  gap: 2px;
}

.produccion-detail-row strong {
  color: #2b416f;
}

.produccion-detail-row span,
.produccion-detail-row small {
  color: #576b95;
  font-size: 0.82rem;
}

.produccion-detail-row.is-missing {
  border-color: #efc2cc;
  background: #fff4f6;
}

@media (max-width: 768px) {
  .produccion-trace-grid {
    grid-template-columns: 1fr;
  }

  .produccion-stats-line {
    align-items: flex-start;
  }

  .produccion-stat-sep {
    display: none;
  }

  .produccion-qty-grid {
    grid-template-columns: 1fr;
  }

  .produccion-main-btn,
  .produccion-to-inventario-btn,
  .produccion-umbral-btn,
  .produccion-umbral-global-btn {
    width: 100%;
    max-width: none;
  }

  .produccion-hero-wrap {
    height: 130px;
  }

  .produccion-hero-avatar {
    width: 84px;
    height: 84px;
  }

  .produccion-lote-row {
    grid-template-columns: 1fr;
  }

  .produccion-lote-adjuntos-row {
    flex-wrap: wrap;
  }
}

/* =========================================
   PRODUCCIÓN ETAPA 2
========================================= */
.produccion-reserva-timer {
  margin: 4px 0 0;
  color: #9a5a11;
  font-weight: 700;
  font-size: 0.82rem;
}

.produccion-managers-grid {
  display: grid;
  gap: 8px;
  max-height: 180px;
  overflow: auto;
  width: 100%;
}

.produccion-managers-actions {
  margin-bottom: 8px;
}

.produccion-user-check {
  border: 1px solid #d9e3f8;
  border-radius: 12px;
  background: #f8fbff;
  padding: 6px 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  color: #334b7b;
  font-weight: 600;
}

.produccion-user-check input {
  width: 18px;
  height: 18px;
}

.produccion-empty-users {
  margin: 0;
  color: #627497;
}

.produccion-lotes-wrap {
  display: grid;
  gap: 10px;
}

.produccion-lote-group {
  border: 1px solid #d8e2f7;
  border-radius: 14px;
  background: #f8fbff;
  padding: 10px;
  display: grid;
  gap: 8px;
}

.produccion-lote-group.is-missing {
  border-color: #f2c2c9;
  background: #fff7f8;
}

.produccion-lote-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.produccion-lote-head-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.produccion-lote-toggle-btn {
  min-height: 34px;
  width: auto;
  max-width: none;
  border-radius: 999px;
  padding: 6px 12px;
}

.produccion-lote-main {
  display: flex;
  gap: 10px;
  align-items: center;
}

.produccion-lote-main h6 {
  margin: 0;
  color: #2b416f;
}

.produccion-loading-alert .ios-alert-title {
  font-size: 1.35rem;
}

.produccion-lote-main p {
  margin: 2px 0 0;
  color: #5a6f97;
  font-size: 0.82rem;
}

.produccion-lote-main p span {
  color: #7d88a3;
}

.produccion-needs-label {
  color: #5f7197;
  font-weight: 600;
}

.produccion-needs-value {
  color: #158346;
  font-weight: 800;
  font-size: 1.03rem;
}

.produccion-available-value {
  color: #7a859f !important;
  font-weight: 600;
}

.produccion-available-value strong {
  font-weight: 800;
}

.produccion-lote-main p em {
  color: #b53c53;
  font-style: normal;
  font-weight: 700;
}

.produccion-lote-ingredient-image {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid #d2dcf2;
  object-fit: cover;
  background: #eff3ff;
}

.produccion-merge-icon {
  width: 20px;
  height: 20px;
  filter: invert(39%) sepia(63%) saturate(980%) hue-rotate(193deg) brightness(91%) contrast(88%);
}

.produccion-lote-rows {
  display: grid;
  gap: 6px;
}

.produccion-lote-rows.is-collapsed {
  display: none;
}

.produccion-lote-row {
  border: 1px solid #dce5f8;
  border-radius: 10px;
  background: #ffffff;
  padding: 10px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 12px;
  font-size: 0.82rem;
  color: #425684;
}

.produccion-lote-row > div {
  overflow: hidden;
  text-overflow: ellipsis;
}

.produccion-lote-row strong {
  color: #28467f;
}

.produccion-lote-key,
.produccion-provider-key {
  color: #37588f;
}

.produccion-lote-value {
  color: #204f9b;
  font-weight: 700;
}

.produccion-expiry-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 22px;
  border-radius: 999px;
  padding: 1px 8px;
  font-size: 0.7rem;
  font-weight: 700;
  border: 1px solid transparent;
}

.produccion-expiry-badge.is-ok {
  color: #138243;
  background: #e9f8ef;
  border-color: #bbe6c8;
}

.produccion-expiry-badge.is-warning {
  color: #a86b10;
  background: #fff4e2;
  border-color: #f8d8ad;
}

.produccion-expiry-badge.is-danger {
  color: #b63c52;
  background: #fff0f3;
  border-color: #f3c5ce;
}

.produccion-expiry-badge.is-unknown {
  color: #637292;
  background: #eef2fb;
  border-color: #d5ddee;
}

.produccion-lote-adjuntos-row {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.produccion-lote-adjuntos-btn {
  min-height: 28px;
  width: auto;
  max-width: none;
  border-radius: 999px;
  padding: 3px 10px;
  font-size: 0.75rem;
}

.produccion-lote-separator {
  border: 0;
  border-top: 1px dashed #d5dff2;
  margin: 0;
}

.produccion-lote-row.tone-soon {
  border-color: #f2d5ab;
  background: #fff9ef;
}

.produccion-lote-empty {
  margin: 0;
  color: #7c8db2;
  font-size: 0.82rem;
}

.produccion-lote-global-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.produccion-lote-global-actions .ios-btn {
  width: auto;
  max-width: none;
  min-height: 38px;
}

.produccion-drafts-wrap {
  border: 1px solid #d8e2f7;
  border-radius: 14px;
  background: #f8fbff;
  padding: 10px;
  margin-bottom: 12px;
}

.produccion-drafts-grid {
  display: grid;
  gap: 8px;
}

.produccion-draft-card {
  border: 1px solid #d6e1f7;
  border-radius: 12px;
  background: #ffffff;
  padding: 6px 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.produccion-draft-card strong {
  display: block;
  color: #2d497e;
}

.produccion-draft-card small {
  display: block;
  color: #6a7a9d;
}

.produccion-draft-actions {
  display: inline-flex;
  gap: 8px;
}

.produccion-draft-actions .ios-btn {
  width: auto;
  max-width: none;
  min-height: 34px;
  border-radius: 10px;
}

.produccion-final-actions {
  margin-top: 10px;
  display: flex;
  flex-wrap: wrap;
  justify-content: end;
  gap: 8px;
}

.produccion-final-actions .ios-btn {
  width: fit-content;
  max-width: none;
}

@media (max-width: 768px) {
  .produccion-final-actions .ios-btn {
    width: 100%;
    max-width: none;
  }
}

/* =========================================
   PRODUCCIÓN ETAPA 2 FIXES UI
========================================= */
.produccion-editor .recipe-step-card {
  margin-bottom: 12px;
}

.produccion-editor .recipe-step-card:last-child {
  margin-bottom: 0;
}

.produccion-user-check {
  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: center;
  width: 100%;
}

.produccion-user-check .user-avatar-thumb {
  width: 54px;
  height: 54px;
  border-radius: 999px;
  border: 1px solid #d2dcf2;
  background: #eef2fd;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  flex-shrink: 0;
}

.produccion-user-check .user-avatar-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.produccion-user-text {
  display: grid;
  gap: 1px;
  line-height: 1.2;
}

.produccion-user-text strong {
  color: #2b416f;
}

.produccion-user-text small {
  color: #627497;
  font-size: 0.76rem;
}

.produccion-lote-group,
.produccion-lote-row,
.produccion-lote-head,
.produccion-lote-main {
  width: 100%;
  max-width: 100%;
}

.produccion-merge-icon {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px;
  min-height: 20px;
  flex-shrink: 0;
  object-fit: contain;
  display: inline-block;
}

.produccion-max-line strong {
  color: #178c46;
  font-size: 1.15rem;
  font-weight: 800;
}

.produccion-max-line {
  background-color: #eaf9f0;
  padding: 8px 12px;
  border-radius: 12px;
  width: fit-content;
  color: #178c46;
}

/* =========================================
   INVENTARIO / PRODUCCIÓN TRACE UI
========================================= */
.inventario-available-line {
  color: #6c7a98;
  font-size: 0.78rem;
  font-weight: 600;
}

.inventario-expired-strike {
  text-decoration: line-through;
  opacity: 0.72;
}

.inventario-trace-row td {
  background: #f8ecee !important;
  border-top: 1px dashed #b82646 !important;
  color: #810c0c;
  font-size: 0.82rem;
}

.inventario-resolution-row td {
  background: #eaf1ff !important;
  border-top: 1px dashed #0c40a8 !important;
  color: #002a73;
  font-size: 0.82rem;
}

.inventario-internal-use-row td {
  background: #fff2e3 !important;
  border-top: 1px dashed #ef8f27 !important;
  font-size: 0.82rem;
}

#copyIngredientIdBtn {
  border-radius: 0 14px 14px 0 !important;
}

.produccion-dispatch-table-center th,
.produccion-dispatch-table-center td {
  text-align: center;
  vertical-align: middle;
}

.produccion-dispatch-table-center .inventario-trace-main {
  justify-content: center;
}

.produccion-dispatch-table-center .inventario-trace-row td,
.produccion-dispatch-table-center .inventario-internal-use-row td {
  color: #1f2a44;
}

.produccion-dispatch-table-center .inventario-internal-use-row td {
  text-align: center;
}

.inventario-internal-meta {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}

.inventario-internal-meta small {
  color: #9a4f0a;
  font-weight: 600;
}

.inventario-internal-no-trace {
  color: #9a4f0a;
  font-size: 0.74rem;
  font-weight: 600;
}

tr.inventario-row-tone:has(.inventario-expiry-days-badge.is-danger) > td {
  background: #fff4d1 !important;
}

.inventario-expired-badge {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #a3162f;
  background: #ffd5df;
  border: 1px solid #f3a5b6;
}

.inventario-expiry-days-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  margin-top: 2px;
  border-radius: 999px;
  font-size: 0.66rem;
  font-weight: 700;
  color: #fff;
}

.inventario-expiry-days-badge.is-success {
  background: linear-gradient(90deg, #30d158 0%, #34c759 100%);
}

.inventario-expiry-days-badge.is-warning {
  background: linear-gradient(90deg, #ffb340 0%, #ff8a00 100%);
}

.inventario-expiry-days-badge.is-danger {
  background: linear-gradient(90deg, #ff5e57 0%, #ff3b30 100%);
}

.inventario-expiry-days-badge.is-neutral {
  background: #8e97ad;
}

.inventario-resolution-badge {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  color: #2156b8;
  background: #e7efff;
  border: 1px solid #bdd0ff;
}

.produccion-lote-expired-help {
  grid-column: 1 / -1;
  color: #b42338;
  font-size: 0.82rem;
}

.produccion-lote-expired-actions {
  grid-column: 1 / -1;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.produccion-resolve-qty-wrap {
  text-align: center;
}

.produccion-resolve-qty-wrap .swal2-input {
  margin-left: auto;
  margin-right: auto;
}

.inventario-trace-main {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.inventario-trace-avatar {
  width: 24px;
  height: 24px;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid #d6deef;
  background: #eef2fd;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.inventario-trace-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.inventario-trace-avatar .thumb-loading .meta-spinner-login {
  width: 16px;
  height: 16px;
}

.inventario-trace-label {
  font-weight: 700;
  color: #465a88;
}

.inventario-trace-icon {
  width: 18px;
  height: 18px;
  color: #5b7ec8;
  flex-shrink: 0;
}

.inventario-trace-kilos {
  color: #d31233 !important;
  font-weight: 800;
}

.inventario-available-line.is-zero {
  color: #cc3f52;
  text-decoration: line-through;
}

.produccion-visualizar-btn {
  background: #edf3ff;
  color: #2a4ea3;
  width: fit-content;
}

.produccion-recipe-history {
  border: 1px solid #d8e2f7;
  border-radius: 14px;
  padding: 10px;
  background: #fbfdff;
}

/* =========================================
   AJUSTES UX INVENTARIO/PRODUCCIÓN (REVISION)
========================================= */
.inventario-trace-toolbar {
  justify-content: flex-start;
}

.inventario-trace-toolbar .inventario-period-divider {
  margin-right: 2px;
}

.produccion-actions-row .produccion-visualizar-btn,
.produccion-visualizar-btn {
  width: fit-content;
  max-width: none;
  min-height: 40px;
}

.produccion-umbral-btn {
  width: fit-content;
  max-width: none;
  min-height: 40px;
  border-radius: 16px;
  border: 1px solid #dcdcdc;
  background: #ececef;
  color: #4d4f57;
  font-size: 16px;
  font-weight: 700;
  padding: 8px 14px;
}

.produccion-umbral-btn i {
  color: #666a73;
}

.produccion-umbral-btn:hover {
  background: #e2e3e8;
  color: #3f424a;
}

.produccion-actions-row .inventory-production-action-btn.is-threshold {
  min-height: 38px;
  border-radius: 14px;
  font-size: 0.88rem;
  font-weight: 700;
  padding: 8px 14px;
  background: #eceef3;
  color: #555c68;
  border: 1px solid #d6d8de;
}

.produccion-actions-row .inventory-production-action-btn.is-threshold i {
  color: inherit;
}

.produccion-actions-row .inventory-production-action-btn.is-threshold:hover {
  background: #dee4f0;
  color: #434f6a;
}

.swal2-popup.ios-alert.produccion-umbral-alert {
  max-width: 520px;
}

.produccion-umbral-alert .swal2-html-container {
  text-align: center;
}

.produccion-umbral-alert .swal2-actions {
  justify-content: center;
}

.produccion-umbral-alert .swal2-input.ios-input {
  margin-inline: auto;
  text-align: center;
}

.produccion-company-logo-preview-wrap {
  display: flex;
  justify-content: center;
}

.produccion-company-logo-preview {
  width: 120px;
  height: 120px;
  border-radius: 999px;
  border: 1px solid #d6def3;
  background: #eef3ff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: #6280bf;
  font-size: 1.8rem;
}

.produccion-company-logo-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.produccion-company-logo-loading {
  width: 100%;
  height: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.produccion-company-logo-spinner {
  width: 42px;
  height: 42px;
}

.viewer-document {
  width: 100%;
  min-height: 72vh;
  border: 0;
  border-radius: 12px;
  background: #fff;
}

.produccion-config-form {
  text-align: left;
}

.produccion-config-section {
  background: linear-gradient(180deg, #f9fbff 0%, #f3f7ff 100%);
}

.produccion-config-toggle {
  border: 1px solid #ced8f1;
}

.swal2-popup.produccion-umbral-alert .inventario-collapse-head-styled {
  flex-direction: row;
  align-items: center;
  gap: 10px;
}

.swal2-popup.produccion-umbral-alert .produccion-config-toggle > span:first-child {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.swal2-popup.produccion-umbral-alert .inventario-collapse-summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: auto;
}

.produccion-config-actions {
  display: flex;
  justify-content: flex-end;
  margin: 10px 0;
}

.produccion-rne-file-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
}

.produccion-rne-upload-loading {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  border: 1px solid #d7e2fb;
  background: #f5f8ff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.produccion-rne-history-wrap {
  margin-top: 12px;
  border-top: 1px dashed #c9d7f5;
  padding-top: 10px;
}

.produccion-rne-history {
  max-height: 150px;
  overflow-y: auto;
  padding-right: 4px;
}

.produccion-rne-history-item {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
  border: 1px solid #dbe4fa;
  border-radius: 12px;
  padding: 10px;
  background: #fff;
  margin-bottom: 8px;
}

.produccion-rne-history-item > div {
  flex: 1;
  text-align: left;
}

.produccion-rne-history-item p {
  margin: 0;
  font-size: 0.84rem;
  color: #455a8a;
}

.produccion-rne-history-empty {
  color: #6f7f9f;
  margin: 0;
}

.produccion-trace-alert {
  background: #f9fbff;
}

.swal2-popup.produccion-trace-alert .swal2-html-container {
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  text-align: left;
}

.produccion-trace-apple-viewer {
  border: 1px solid #dfe6f8;
  border-radius: 16px;
  padding: 12px;
  background-image: radial-gradient(circle at 1px 1px, rgba(117, 136, 180, 0.16) 1px, transparent 0);
  background-size: 18px 18px;
  background-color: #f5f8ff;
}

.produccion-trace-ingredient-avatar {
  width: 42px;
  height: 42px;
  min-width: 42px;
  min-height: 42px;
  flex: 0 0 42px;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid #d2dcf2;
  background: #eef3ff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #4c69a5;
}

.produccion-trace-ingredient-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* =========================================
   TRAZABILIDAD · DIAGRAMA IOS
========================================= */

.produccion-trace-diagram-wrap {
  max-height: 68vh;
  overflow: auto;
  border: 1px solid #d2def6;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.72);
  touch-action: pan-x pan-y;
}

.produccion-trace-diagram {
  min-width: 100%;
  padding: 14px;
  transform-origin: top left;
}

.produccion-trace-toolbar-zoom {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  padding: 6px;
  border: 1px solid #dbe5f8;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(4px);
}

.produccion-trace-toolbar-zoom .inventario-threshold-btn {
  min-width: 36px;
  height: 36px;
  padding: 0;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.produccion-trace-zoom-value {
  display: flex;
  justify-content: center;
  align-items: center;
  min-width: 58px;
  text-align: center;
  font-weight: 800;
  color: #2f4f8b;
  background: #eef3ff;
  border: 1px solid #d7e2f8;
  border-radius: 10px;
  padding: 4px 8px;
  min-height: 36px;
}

.produccion-trace-ingredient-card {
  border: 1px solid #dbe4f8;
  border-radius: 14px;
  background: #f8fbff;
  padding: 8px;
}

.produccion-trace-ingredient-card header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 6px;
}

.produccion-trace-ingredient-head-main {
  display: flex;
  align-items: center;
  gap: 8px;
}

.produccion-trace-ingredient-index {
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
  flex: 0 0 24px;
  border-radius: 999px;
  background: #dfeaff;
  color: #284782;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 0.75rem;
}

.produccion-trace-ingredient-head-main h6 {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.produccion-trace-ingredients {
  gap: 14px;
  padding-right: 4px;
}

.produccion-trace-ingredient-card {
  background: #fbfdff;
  padding: 8px;
}

.produccion-trace-lot-card {
  background: #fff;
  border-color: #d6e1f8;
  padding: 8px;
}

.produccion-trace-ingredient-card .inventario-threshold-btn {
  flex-shrink: 0;
}

.produccion-trace-ingredient-card .inventario-threshold-btn span {
  white-space: nowrap;
}

.produccion-trace-card-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.produccion-trace-card-actions .inventario-no-photo-btn,
.produccion-trace-card-actions .inventario-threshold-btn {
  margin: 0;
}

.produccion-trace-used-badge {
  border: 1px solid #d7e2f8;
  border-radius: 999px;
  background: #edf3ff;
  color: #355995;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 4px 8px;
}

.produccion-trace-mermaid-wrap {
  border: 2px dashed #c7d5f1;
  border-radius: 16px;
  background-image: radial-gradient(circle at 1px 1px, rgba(117, 136, 180, 0.16) 1px, transparent 0);
  background-size: 18px 18px;
  background-color: #fbfcff;
  margin-bottom: 14px;
  overflow: hidden;
}

.produccion-trace-mermaid {
  min-height: 260px;
  overflow: hidden;
  touch-action: none;
  cursor: grab;
  user-select: none;
}

.produccion-trace-mermaid-loading {
  min-height: 240px;
  display: grid;
  place-items: center;
  gap: 10px;
  text-align: center;
  color: #53658c;
}

.produccion-trace-mermaid-loading .meta-spinner-login {
  width: 58px;
  height: 58px;
}

.produccion-trace-mermaid-loading p {
  margin: 0;
  font-weight: 600;
}

.produccion-trace-fallback-diagram {
  display: grid;
  gap: 10px;
  text-align: left;
}

.produccion-trace-fallback-flow {
  display: flex;
  align-items: stretch;
  gap: 8px;
  flex-wrap: wrap;
}

.produccion-trace-fallback-node {
  border: 1px solid #d3def4;
  border-radius: 12px;
  background: #f4f8ff;
  padding: 6px 10px;
  min-width: 150px;
  display: grid;
  gap: 2px;
  flex: 1 1 160px;
}

.produccion-trace-fallback-node small {
  color: #667aa5;
  font-size: 0.72rem;
  text-transform: uppercase;
}

.produccion-trace-fallback-node strong {
  color: #234684;
}

.produccion-trace-fallback-node span {
  color: #5f729b;
  font-size: 0.8rem;
}

.produccion-trace-fallback-arrow {
  align-self: center;
  color: #5578ba;
  font-weight: 800;
  font-size: 1rem;
}

.produccion-trace-fallback-meta {
  border: 1px solid #dbe4f8;
  border-radius: 12px;
  background: #fbfdff;
  padding: 6px 10px;
}

.produccion-trace-fallback-meta p {
  margin: 0;
  color: #395487;
  font-size: 0.84rem;
}

.produccion-trace-fallback-list {
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 6px;
}

.produccion-trace-fallback-list li {
  color: #2e487d;
  display: grid;
  gap: 2px;
}

.produccion-trace-fallback-list li span {
  color: #5f729b;
  font-size: 0.82rem;
}

.produccion-trace-mermaid.is-dragging {
  cursor: grabbing;
}

.produccion-trace-mermaid .mermaid {
  min-width: 640px;
  width: max-content;
  font-size: 14px;
}

.produccion-trace-mermaid svg {
  max-width: none;
  height: auto;
  display: block;
}

@media (max-width: 768px) {
  .toolbar-scroll-x,
  .produccion-toolbar-actions,
  .inventario-toolbar-actions {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    flex-wrap: nowrap;
  }

  .toolbar-scroll-x::-webkit-scrollbar,
  .produccion-toolbar-actions::-webkit-scrollbar,
  .inventario-toolbar-actions::-webkit-scrollbar {
    height: 5px;
  }

  .toolbar-scroll-x::-webkit-scrollbar-thumb,
  .produccion-toolbar-actions::-webkit-scrollbar-thumb,
  .inventario-toolbar-actions::-webkit-scrollbar-thumb {
    background: #cfd8f4;
    border-radius: 999px;
  }

  .dispatch-actions-row {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .dispatch-actions-row .recipe-table-action-btn,
  .dispatch-actions-row .ios-btn {
    width: 100%;
    max-width: none;
    justify-content: center;
  }

  .dispatch-vehicle-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .dispatch-vehicle-actions .ios-btn {
    width: 100%;
    max-width: none;
    justify-content: center;
  }

  .dispatch-client-head {
    flex-direction: column;
    align-items: flex-start;
  }

  .swal2-popup.produccion-umbral-alert {
    width: min(96vw, 560px) !important;
    padding: 1rem 0.8rem 0.95rem;
  }

  .swal2-popup.produccion-umbral-alert .swal2-html-container {
    padding-inline: 0;
  }

  .swal2-popup.produccion-umbral-alert .inventario-collapse-head-styled {
    flex-direction: row;
    align-items: center;
  }

  .swal2-popup.produccion-umbral-alert .produccion-config-actions .ios-btn {
    width: 100%;
    max-width: none;
    justify-content: center;
  }

  .produccion-rne-file-row {
    grid-template-columns: 1fr;
  }

  .produccion-trace-fallback-arrow {
    width: 100%;
    text-align: center;
  }

  .produccion-trace-diagram {
    padding: 10px;
  }

  .produccion-trace-toolbar-zoom {
    width: fit-content;
    max-width: 100%;
    margin-inline: auto;
    justify-content: center;
    gap: 6px;
    padding: 6px;
  }

  .produccion-trace-zoom-value {
    display: flex;
    justify-content: center;
    align-items: center;
    min-width: 52px;
    padding: 4px 6px;
    font-size: 0.86rem;
    min-height: 36px;
  }

  .produccion-trace-lot-head {
    flex-direction: column;
    align-items: flex-start;
  }

  .produccion-trace-grid {
    grid-template-columns: 1fr;
  }

  .produccion-trace-ingredient-card header {
    flex-direction: column;
    align-items: stretch;
  }

  .produccion-trace-ingredient-card .inventario-threshold-btn {
    width: 100%;
    justify-content: center;
  }

  .produccion-trace-mermaid .mermaid {
    min-width: 320px;
  }
}

.produccion-rne-spinner{width:24px;height:24px;}

.receta-rnpa-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0;}
.receta-rnpa-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:700;border:1px solid #cfd8f0;background:#eef3ff;color:#30508f;}
.receta-rnpa-badge.is-pending,.receta-rnpa-badge.is-danger{background:#ffecef;border-color:#f2b4c0;color:#a6324a;}
.receta-rnpa-badge.is-warning{background:#fff4e7;border-color:#f3d4ad;color:#9a621d;}
.receta-rnpa-badge.is-ok{background:#e9f8ef;border-color:#b6e4c4;color:#1f8a48;}
.receta-rnpa-days{font-size:.75rem;color:#5f6a89;display:inline-flex;align-items:center;gap:4px;}
.receta-rnpa-days.is-warning{color:#9a621d;font-weight:700;}
.receta-rnpa-days.is-danger{color:#a6324a;font-weight:700;}
.receta-rnpa-days.is-ok{color:#1f8a48;font-weight:700;}
.recetas-rnpa-filters{display:flex;gap:8px;overflow-x:auto;flex-wrap:nowrap;padding:4px 2px 12px;scrollbar-width:thin;}
.recetas-rnpa-filters .inventario-status-btn:disabled{opacity:.45;cursor:not-allowed;}
.recipe-rnpa-block{border:1px solid #dbe3f6;border-radius:14px;padding:10px;background:#f8faff;}
.recipe-rnpa-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.recipe-rnpa-actions{grid-column:1 / -1;display:flex;justify-content:flex-start;}
@media (max-width:768px){.recipe-rnpa-grid{grid-template-columns:1fr;}}

.inventario-collapse-head-styled i.bi{margin-right:6px;color:#466ab3;}
.inventario-collapse-head-styled{transition:background-color .2s ease,border-color .2s ease;}
.inventario-collapse-head-styled:hover{background:#eef4ff;border-color:#c9d8f7;}
.inventario-collapse-head-styled.is-open{background:#e9f1ff;border-color:#b7caf2;}
.produccion-rne-expiry-alert{display:flex;align-items:center;gap:8px;border-radius:12px;padding:10px 12px;margin-bottom:10px;border:1px solid #f1d3ab;background:#fff4e5;color:#9a5e16;font-weight:600;}
.produccion-rne-expiry-alert.is-danger{border-color:#f2b4c0;background:#ffecef;color:#a6324a;}
.produccion-rne-expiry-alert.is-ok{border-color:#b6e4c4;background:#e9f8ef;color:#1f8a48;}
.produccion-rne-expiry-alert i{font-size:1rem;}
.produccion-rne-expiry-alert.is-collapsible {
  width: 100%;
  cursor: pointer;
  justify-content: space-between;
  text-align: left;
}

.produccion-rne-expiry-text,
.produccion-rne-expiry-collapse-meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.produccion-rne-expiry-collapse-meta strong {
  min-width: 24px;
  text-align: center;
}

.produccion-rne-expiry-collapse-meta i {
  transition: transform 0.2s ease;
}

.produccion-rne-expiry-alert.is-collapsible.is-open .produccion-rne-expiry-collapse-meta i {
  transform: rotate(180deg);
}

.produccion-modal-rne-badges{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:8px;}
.produccion-modal-rne-badge{display:inline-flex;align-items:center;gap:6px;border:1px solid #d7def2;background:#eef3ff;color:#30508f;border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:700;}
.produccion-modal-rne-badge.is-warning{background:#fff4e7;border-color:#f3d4ad;color:#9a621d;}
.produccion-modal-rne-badge.is-danger{background:#ffecef;border-color:#f2b4c0;color:#a6324a;}
.produccion-modal-rne-badge.is-ok{background:#e9f8ef;border-color:#b6e4c4;color:#1f8a48;}

/* =========================================
   INVENTARIO · RNE PROVEEDORES
========================================= */
.inventario-rne-alert {
    /* border: 1px solid #d8e2f7; */
    /* border-radius: 14px; */
    /* background: #f7faff; */
    /* padding: 10px; */
    margin-bottom: 10px;
}

.inventario-rne-alert-title {
  margin: 0 0 8px;
  color: #35518e;
  font-weight: 700;
  display: inline-flex;
  gap: 6px;
  align-items: center;
}

.inventario-rne-alert-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.inventario-rne-alert-badge {
  min-width: 20px;
  height: 20px;
  border-radius: 999px;
  background: #ff3b30;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  margin-left: 4px;
  padding: 4px 4px;
}

.inventario-provider-rne-list {
  display: grid;
  gap: 10px;
  max-height: 54vh;
  overflow: auto;
  padding-right: 4px;
}

.inventario-provider-card {
  border: 1px solid #dbe3f6;
  border-radius: 14px;
  background: #fff;
  padding: 10px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
}

.inventario-provider-avatar {
  width: 56px;
  height: 56px;
  border-radius: 999px;
  border: 1px solid var(--provider-avatar-border, #d4def4);
  background: var(--provider-avatar-bg, #eef3ff);
  color: var(--provider-avatar-color, #2f57b0);
  font-weight: 800;
  font-size: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

.inventario-provider-avatar .thumb-image,
.inventario-provider-editor-avatar .thumb-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  padding: 0;
  background: #f7f9ff;
}

.swal2-popup.inventario-provider-rne-alert {
  width: min(960px, 94vw) !important;
}

.inventario-provider-rne-html,
#inventarioProviderRneManagerRoot {
  min-height: min(68vh, 620px);
}

#inventarioProviderRneList {
  min-height: min(45vh, 420px);
}

.inventario-provider-avatar .thumb-loading {
  z-index: 2;
}

.inventario-provider-avatar .thumb-loading .meta-spinner-login {
  width: 24px;
  height: 24px;
}

.inventario-provider-editor-avatar {
  width: 72px;
  height: 72px;
  border-radius: 999px;
  border: 1px solid #d6deef;
  background: #eef2fd;
  color: #2f57b0;
  font-size: 1rem;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}

.inventario-provider-editor-avatar .thumb-loading {
  background: #eef2fd;
}

.inventario-provider-editor-avatar .meta-spinner {
  width: 26px;
  height: 26px;
}

.inventario-provider-head {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
}

.inventario-provider-badges {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.inventario-provider-state {
  margin: 6px 0 0;
  color: #5e6f94;
  font-size: 0.85rem;
}

.inventario-provider-line {
  margin: 6px 0 0;
  color: #3f527f;
  font-size: 0.86rem;
}

.inventario-provider-editor-top {
  display: flex;
  justify-content: flex-start;
  margin-bottom: 10px;
}


.inventario-rne-number-area {
  resize: none;
  overflow: hidden;
  min-height: 44px;
  line-height: 1.4;
  padding-top: 10px;
  padding-bottom: 10px;
}

.inventario-rne-alert-toggle {
  width: 100%;
  border: 1px solid #d5def2;
  background: #fff;
  color: #37548d;
  border-radius: 12px;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 12px;
  margin: 8px 0 10px;
  font-weight: 600;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.inventario-rne-alert-toggle:hover {
  background: #edf3ff;
  border-color: #c4d3f4;
  color: #2e4d8a;
}

.inventario-rne-alert-toggle i {
  transition: transform 0.2s ease;
}

.inventario-rne-alert-toggle.is-open i {
  transform: rotate(180deg);
}

.inventario-rne-expiry-board {
  max-height: 168px;
  overflow-y: auto;
  padding-right: 4px;
  display: grid;
  gap: 10px;
}

.inventario-rne-expiry-group h6 {
  margin: 0 0 6px;
  color: #3e5586;
  font-size: 0.84rem;
}

.inventario-rne-expiry-row {
  border: 1px solid #dbe4fa;
  margin-bottom: 5px;
  border-radius: 11px;
  background: #f8fbff;
  padding: 7px 10px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  font-size: 0.83rem;
}

.inventario-rne-expiry-row strong {
  color: #2f4678;
}

.inventario-rne-expiry-row span {
  color: #5a6f99;
}

.inventario-rne-expiry-row.is-warning {
  border-color: #f3d4ad;
  background: #fff4e7;
}

.inventario-rne-expiry-row.is-danger {
  border-color: #f2b4c0;
  background: #ffecef;
}

.inventario-provider-meta {
  margin: 3px 0 0;
  color: #56688f;
  font-size: 0.83rem;
}

.inventario-provider-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

/* =========================================
   INVENTARIO · RNE · AJUSTES UX
========================================= */
.swal2-popup.inventario-provider-rne-alert,
.swal2-popup.inventario-provider-form-alert,
.swal2-popup.produccion-umbral-alert {
  border-radius: 24px;
  border: 1px solid #d8e1f5;
  background: linear-gradient(180deg, #f8fbff 0%, #f3f6fd 100%);
}

.swal2-popup.inventario-provider-rne-alert .swal2-html-container,
.swal2-popup.inventario-provider-form-alert .swal2-html-container,
.swal2-popup.produccion-umbral-alert .swal2-html-container {
  margin-top: 8px;
  text-align: left;
}

@media (min-width: 769px) {
  .swal2-popup.inventario-provider-rne-alert .swal2-html-container {
    padding: 4px 2px 6px !important;
    font-size: 1rem;
    overflow: visible;
  }
}

.swal2-popup.inventario-provider-rne-alert .inventario-threshold-btn {
  padding: 6px 10px;
  min-height: 34px;
}

.dispatch-vehicle-replace-wrap {
  margin-top: 6px;
}

.dispatch-vehicles-search-group {
  margin-bottom: 8px;
}

.dispatch-vehicles-manager-list {
  max-height: min(58vh, 420px);
  overflow-y: auto;
  padding-right: 4px;
}


.swal2-popup.inventario-provider-rne-alert :is(.swal2-input, .swal2-file, .swal2-textarea, .swal2-select),
.swal2-popup.inventario-provider-form-alert :is(.swal2-input, .swal2-file, .swal2-textarea, .swal2-select),
.swal2-popup.produccion-umbral-alert :is(.swal2-input, .swal2-file, .swal2-textarea, .swal2-select) {
  width: 100%;
  margin: 0;
  font-size: 0.98rem;
}

.inventario-rne-alert-inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.inventario-rne-inline-title,
.inventario-rne-inline-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 999px;
  border: 1px solid #d5e0f4;
  background: #fff;
  padding: 5px 11px;
  font-size: 0.78rem;
  color: #466095;
}

.inventario-rne-inline-title {
  font-weight: 700;
  color: #2f4f90;
  background: #edf3ff;
}

.inventario-rne-inline-item.is-info {
  color: #245f96;
}

.inventario-rne-inline-item.is-warning {
  color: #9a621d;
  border-color: #f3d4ad;
  background: #fff4e7;
}

.inventario-rne-inline-item.is-danger {
  color: #a6324a;
  border-color: #f2b4c0;
  background: #ffecef;
}

.inventario-provider-manager-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.inventario-provider-manager-kicker {
  margin: 0;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #6f7fa2;
}

.inventario-provider-manager-copy {
  margin: 2px 0 0;
  color: #4f628f;
  font-size: 0.9rem;
}

.inventario-provider-create-fab {
  border-radius: 12px;
  min-height: 42px;
  gap: 8px;
}

.inventario-provider-form-html {
  text-align: left;
}

.inventario-provider-form-html .form-label {
  margin: 0;
  color: #405783;
}

.inventario-provider-form-html small {
  color: #667797;
  margin-top: 2px;
}

.inventario-provider-meta-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 8px;
}

.inventario-provider-meta {
  margin: 0;
  border: 1px solid #dce5f7;
  border-radius: 11px;
  background: #f8fbff;
  padding: 7px 9px;
  display: grid;
  gap: 2px;
}

.inventario-provider-meta span {
  font-size: 0.71rem;
  color: #6c7a99;
  text-transform: uppercase;
}

.inventario-provider-meta strong {
  color: #2f4678;
  font-size: 0.9rem;
}

.inventario-provider-meta-helper {
  border: 0;
  background: transparent;
  padding: 0;
  margin-top: 8px;
}

.produccion-config-toggle {
  box-shadow: none;
}

.produccion-config-actions {
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

.produccion-rne-history-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.ios-btn.ios-icon-btn {
  width: 38px;
  min-width: 38px;
  min-height: 38px;
  justify-content: center;
  padding: 0;
}

@media (max-width: 768px) {
  .inventario-provider-manager-head {
    flex-direction: column;
  }

  .inventario-provider-create-fab {
    width: 100%;
    justify-content: center;
  }

  .inventario-provider-meta-grid {
    grid-template-columns: 1fr;
  }

  .produccion-rne-history-item {
    flex-direction: column;
  }

  .produccion-rne-history-actions {
    width: 100%;
    justify-content: flex-start;
  }
}

/* =========================================
   PLANILLA DE PRODUCCIÓN
========================================= */
.planilla-toolbar {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 10px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}

.planilla-card {
  border: 2px dashed #c9d1e8;
  border-radius: 16px;
  background: #fff;
  padding: 10px;
  display: grid;
  gap: 8px;
  color: #111827;
  text-transform: uppercase;
}

.planilla-print-a4 {
  max-width: 1120px;
  margin: 0 auto;
}

.planilla-card-header {
  text-align: center;
  border: 1px solid #c9d1e8;
  padding: 6px;
}

.planilla-card-header h2 {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 800;
}

.planilla-card-header p {
  margin: 2px 0 0;
  font-size: 0.95rem;
  font-weight: 700;
}

.planilla-summary-grid {
  border: 1px solid #c9d1e8;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
}

.planilla-summary-item {
  border: 1px solid #c9d1e8;
  padding: 6px;
  display: grid;
  gap: 2px;
}

.planilla-summary-item strong {
  font-size: 0.74rem;
  color: #374151;
}

.planilla-summary-item span {
  font-size: 0.95rem;
  font-weight: 700;
}

.planilla-product-hero {
  border: 1px solid #c9d1e8;
  padding: 6px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.planilla-product-hero h3 {
  margin: 0;
  font-size: 2rem;
  font-weight: 800;
}

.planilla-product-hero p {
  margin: 2px 0 0;
  font-size: 0.9rem;
}

.planilla-avatar {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 1px solid #c9d1e8;
  background: #f5f7fb;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.planilla-avatar-lg {
  width: 62px;
  height: 62px;
}

.planilla-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.planilla-formula-card {
  border: 1px solid #c9d1e8;
  padding: 6px;
}

.planilla-formula-card h3 {
  margin: 0 0 6px;
  text-align: center;
  font-size: 1.02rem;
  font-weight: 800;
}

.planilla-table-scroll {
  overflow-x: auto;
}

.planilla-table {
  width: 100%;
  min-width: 920px;
  border-collapse: collapse;
}

.planilla-table th,
.planilla-table td {
  border: 1px solid #c9d1e8;
  padding: 6px;
  font-size: 1rem;
  vertical-align: middle;
  background: #fff;
}

.planilla-table th {
  background: #111827;
  color: #fff;
  font-size: 0.8rem;
}

.planilla-ingredient-main {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.planilla-kpis-grid {
  border: 1px solid #c9d1e8;
  padding: 6px;
  display: grid;
  gap: 4px;
}

.planilla-kpis-grid p {
  margin: 0;
  font-size: 0.92rem;
}

.planilla-footer-grid {
  border: 1px solid #c9d1e8;
  padding: 8px;
}

.planilla-qr-card {
  display: grid;
  place-items: center;
  gap: 8px;
  text-align: center;
}

.planilla-qr-note {
  margin: 0;
  font-size: 1.06rem;
  line-height: 1.45;
}

.produccion-trace-card-actions {
  margin-top: 10px;
}

.public-trace-spinner {
  min-height: 100vh;
  display: grid;
  place-items: center;
}

.public-trace-spinner .meta-spinner-login {
  width: 90px;
  height: 90px;
}

@media (max-width: 768px) {
  .planilla-toolbar .ios-btn {
    width: 100%;
    max-width: none;
  }

  .planilla-summary-grid {
    grid-template-columns: 1fr;
  }

  .planilla-product-hero h3 {
    font-size: 1rem;
  }
}

.planilla-modal {
  width: min(98vw, 1280px) !important;
}

.planilla-toolbar {
  justify-content: center;
}

.planilla-toolbar .ios-btn {
  min-width: 230px;
  justify-content: center;
}

.planilla-product-hero-no-image {
  justify-content: start;
}

.planilla-footer-grid-single {
  display: block;
}

.public-trace-planilla-row {
  margin-top: 14px;
  display: flex;
  justify-content: start;
}

.public-open-planilla-btn {
  min-width: 240px;
  justify-content: center;
}

@media print {
  body {
    background: #fff !important;
  }

  .planilla-print-a4 {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 6px !important;
    gap: 6px !important;
    border-radius: 0;
  }

  .planilla-summary-grid {
    grid-template-columns: 1fr 1fr !important;
  }

  .planilla-table {
    min-width: 0 !important;
  }

  .planilla-table th,
  .planilla-table td {
    font-size: 10px !important;
    padding: 4px !important;
  }

  .planilla-qr-note {
    font-size: 13px !important;
  }
}

/* =========================================
   PLANILLA - PROGRESO Y VISOR PUBLICO
========================================= */
.planilla-progress-wrap {
  display: grid;
  gap: 8px;
}

.planilla-progress-bar {
  height: 10px;
  border-radius: 999px;
  background: #e4e8f5;
  overflow: hidden;
}

.planilla-progress-bar span {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #2f6ecf 0%, #6c85dd 55%, #9a8cf0 100%);
  transition: width 0.2s ease;
}

.planilla-progress-text {
  margin: 0;
  font-size: 0.9rem;
  color: #415780;
  text-align: center;
}

.public-viewer-wrap {
  display: grid;
  gap: 8px;
}

.public-viewer-stage {
  min-height: min(72vh, 640px);
  border: 1px solid #d8def0;
  border-radius: 14px;
  background: #f8f9fd;
  overflow: hidden;
  display: grid;
  place-items: center;
}

.public-viewer-image,
.public-viewer-doc {
  width: 100%;
  height: min(72vh, 640px);
  border: 0;
  object-fit: contain;
  background: #ffffff;
}

.public-viewer-footer {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

/* =========================================
   TRAZABILIDAD PUBLICA
========================================= */
.produccion-trace-mermaid {
  position: relative;
}

.produccion-trace-mermaid-overlay {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgb(210 220 243 / 82%);
  color: #2e4d8f;
  display: grid;
  place-content: center;
  gap: 8px;
  text-align: center;
  font-weight: 700;
  font-size: 1.5rem;
  z-index: 5;
}

.produccion-trace-mermaid-overlay i {
  font-size: 3rem;
}

@media (max-width: 768px) {
  .public-trace-ingredients-scroll {
    grid-auto-columns: minmax(250px, 86vw);
  }

  .public-trace-footer {
    width: calc(100% - 20px);
  }
}

/* =========================================
   INVENTARIO · AJUSTES UX 2026
========================================= */
.inventario-status-divider {
  align-self: center;
  height: 24px;
}

.inventario-provider-search,
.inventario-weekly-search {
  max-width: none;
  margin-bottom: 10px;
}

.inventario-provider-suggest-placeholder {
  background: #edf2ff;
}

.inventario-provider-suggest-icon {
  font-size: 1rem !important;
  line-height: 1;
}

.inventario-bulk-list {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}

.inventario-bulk-row {
  border: 1px solid #dbe0ef;
  border-radius: 14px;
  background: #fdfdff;
  padding: 10px;
  display: grid;
  gap: 8px;
}

.inventario-bulk-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

@media (max-width: 768px) {
  .dispatch-client-head-actions {
    width: 100%;
    justify-content: flex-start;
  }
}

.weekly-production-sheet {
  display: grid;
  gap: 16px;
}

.weekly-sheet-block {
  border: 1px solid #d9e0f3;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}

.weekly-sheet-block h3,
.weekly-sheet-block h4 {
  text-align: center;
  margin: 0;
  font-weight: 800;
  padding: 6px 10px;
}

.weekly-sheet-block h3 {
  border-bottom: 1px solid #d9e0f3;
}

.weekly-sheet-block h4 {
  border-bottom: 1px solid #d9e0f3;
}

.weekly-sheet-table { width: 100%; border-collapse: collapse; table-layout: fixed; }

.weekly-sheet-table th,
.weekly-sheet-table td {
  border: 1px solid #2f2f2f;
  padding: 4px;
  text-align: center;
  vertical-align: middle;
  font-size: 0.9rem;
  line-height: 1.15;
}

.weekly-sheet-table th.th-cat { background: #1d7a2f; color: #fff; }
.weekly-sheet-table th.th-day { background: #136fb6; color: #fff; }
.weekly-sheet-table th.th-total { background: #08266e; color: #fff; }
.weekly-sheet-table td.is-missing { background: #f4dfe2; }
.weekly-sheet-table td.is-ok { background: #e9edf2; }
.weekly-sheet-table .weekly-total { font-weight: 800; }

.weekly-product-cell {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  justify-content: flex-start;
  text-align: left;
}

.weekly-product-cell img {
  width: 24px;
  height: 24px;
  border-radius: 999px;
  object-fit: cover;
}

/* =========================================
   INVENTARIO · AUTO EGRESOS
========================================= */
.inventario-auto-egreso-row td {
  background: #fff6ea !important;
  border-bottom: 1px dashed #f0be7a !important;
}

.inventario-auto-egreso-badge {
  background: #ffe9cf;
  border-color: #f0be7a;
  color: #92551c;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}


.swal2-popup.inventario-expand-alert {
  width: 96vw !important;
  max-width: 96vw !important;
}

.swal2-popup.inventario-expand-alert .swal2-html-container {
  max-height: 78vh;
  overflow: auto;
}

.swal2-popup.inventario-expand-alert .inventario-table-compact-wrap {
  max-height: 70vh;
}

.produccion-expired-max-help {
  color: #b45309;
  font-weight: 700;
  font-size: 0.85rem;
}

.produccion-max-values {
  display: inline-flex;
  flex-direction: column;
  gap: 2px;
  align-items: flex-start;
}

.produccion-max-base {
  text-decoration: line-through;
}

.produccion-max-adjusted {
  color: #ff8a2a !important;
  margin-top: 0 !important;
  line-height: 1.05;
}


.produccion-card.tone-expired {
  border-color: #f1cf9a;
  background: #fff8ee;
}

.produccion-chip.tone-expired {
  color: #a86409;
  background: #fff1df;
  border-color: #f3d2a5;
}

.produccion-progress-wrap.is-expired-only small {
  color: #9f5b00;
}

.produccion-progress-bar span.is-expired {
  background: linear-gradient(90deg, #ffb85c 0%, #ff8a00 100%);
}

.produccion-max-expired-only {
  color: #c4314f !important;
}
