:root {
  --red: #E23B33;
  --red-dark: #b8291f;
  --ink: #1b1f24;
  --ink-soft: #3a4048;
  --green: #157a3d;
  --grey-700: #5a6069;
  --grey-400: #a8aeb6;
  --grey-300: #dcdfe4;
  --grey-100: #f4f5f7;
  --white: #ffffff;
  --radius: 12px;
  --shadow: 0 2px 10px rgba(20, 24, 30, 0.06);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: var(--ink);
  background: var(--grey-100);
  -webkit-font-smoothing: antialiased;
}

.container { max-width: 1060px; margin: 0 auto; padding: 0 20px; }
.hidden { display: none !important; }

/* ---------- Topbar ---------- */
.topbar { background: var(--white); border-bottom: 1px solid var(--grey-300); box-shadow: var(--shadow); }
.topbar-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 20px; }
.brand { display: flex; align-items: center; text-decoration: none; color: inherit; }
.brand img { height: 58px; width: auto; display: block; }
.brand-fallback { display: none; align-items: center; gap: 10px; }
.brand-mark { background: var(--red); color: var(--white); font-weight: 800; font-size: 15px; padding: 9px 11px; border-radius: 8px; }
.brand-text { display: flex; flex-direction: column; line-height: 1.25; }
.brand-text strong { font-size: 15px; }
.brand-text small { font-size: 11.5px; color: var(--grey-700); letter-spacing: 0.4px; }

.cart-toggle {
  display: flex; align-items: center; gap: 9px;
  background: var(--red); border: none; color: var(--white);
  padding: 11px 18px; border-radius: 999px; cursor: pointer;
  font-size: 14px; font-weight: 600;
}
.cart-toggle:hover { background: var(--red-dark); }
.cart-count {
  background: var(--white); color: var(--red); font-size: 12px; font-weight: 800;
  border-radius: 999px; min-width: 21px; height: 21px;
  display: flex; align-items: center; justify-content: center; padding: 0 6px;
}

/* ---------- Hero ---------- */
.hero { padding: 44px 0 8px; }
.hero h1 { font-size: 30px; line-height: 1.2; margin: 0 0 10px; letter-spacing: -0.3px; }
.hero p { color: var(--grey-700); font-size: 15.5px; line-height: 1.55; margin: 0; max-width: 700px; }

/* ---------- Selector ---------- */
.selector-card {
  background: var(--white); border: 1px solid var(--grey-300);
  border-radius: var(--radius); padding: 22px; margin: 26px 0; box-shadow: var(--shadow);
}
.field { display: flex; flex-direction: column; gap: 7px; }
.field label { font-size: 13.5px; font-weight: 700; color: var(--ink-soft); }
.field select, .field input, .field textarea {
  padding: 13px 15px; border: 1px solid var(--grey-300); border-radius: 9px;
  font-size: 15.5px; background: var(--white); color: var(--ink); font-family: inherit;
}
.field select:focus, .field input:focus { outline: none; border-color: var(--red); }

/* ---------- Liquids ---------- */
.liquids { margin: 0 0 26px; }
.liquids h2 { font-size: 19px; margin: 0 0 12px; }
.liquids-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; }
.liquid-card {
  background: var(--white); border: 1px solid var(--grey-300); border-radius: var(--radius);
  padding: 18px 20px; display: flex; align-items: flex-start; gap: 15px; box-shadow: var(--shadow);
}
.liquid-icon { width: 34px; height: 34px; border-radius: 9px; flex: 0 0 auto; position: relative; }
.liquid-icon.oil { background: #fdf1d9; }
.liquid-icon.coolant { background: #e2f0fb; }
.liquid-icon::after {
  content: ""; position: absolute; inset: 9px;
  border-radius: 50% 50% 50% 0; transform: rotate(-45deg);
}
.liquid-icon.oil::after { background: #d99b1c; }
.liquid-icon.coolant::after { background: #2b8fd4; }
.liquid-info { min-width: 0; }
.liquid-info h3 { margin: 0 0 6px; font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.7px; color: var(--red); font-weight: 800; }
.liquid-main { margin: 0; font-size: 17px; font-weight: 700; }
.liquid-main.consult { font-size: 14px; font-weight: 600; color: var(--grey-700); font-style: italic; }
.liquid-sub { margin: 3px 0 0; font-size: 13px; color: var(--grey-700); }

/* ---------- Results ---------- */
.results { margin: 0 0 56px; }
.results-header { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.results-header h2 { margin: 0; font-size: 23px; }
.results-hint { font-size: 12.5px; color: var(--grey-700); }

.parts-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.part-card {
  background: var(--white); border: 1px solid var(--grey-300); border-radius: var(--radius);
  padding: 17px 18px; display: flex; flex-direction: column; gap: 12px; box-shadow: var(--shadow);
}
.part-card h3 { margin: 0; font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.7px; color: var(--red); font-weight: 800; }
.part-note { font-size: 14px; color: var(--grey-700); font-style: italic; margin: 0; }
.part-note.warn { color: var(--red-dark); font-style: normal; font-weight: 600; font-size: 13px; }

.line-item { border-top: 1px solid var(--grey-100); padding-top: 12px; display: flex; flex-direction: column; gap: 9px; }
.line-item:first-of-type { border-top: none; padding-top: 0; }
.li-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.li-code { font-size: 15px; font-weight: 700; letter-spacing: -0.1px; word-break: break-word; }
.li-variant { display: block; font-size: 11px; color: var(--grey-700); font-weight: 600; text-transform: uppercase; letter-spacing: 0.4px; }
.li-price { font-size: 15px; font-weight: 800; color: var(--green); white-space: nowrap; }
.li-price.missing { font-size: 12px; font-weight: 700; color: var(--red-dark); }
.li-controls { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.stepper { display: flex; align-items: center; border: 1px solid var(--grey-300); border-radius: 8px; overflow: hidden; }
.stepper button {
  width: 30px; height: 34px; border: none; background: var(--grey-100);
  cursor: pointer; font-size: 17px; line-height: 1; color: var(--ink-soft);
}
.stepper button:hover { background: var(--grey-300); }
.stepper input { width: 46px; height: 34px; text-align: center; border: none; font-size: 14.5px; font-weight: 700; -moz-appearance: textfield; }
.stepper input::-webkit-outer-spin-button, .stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.stepper input:focus { outline: none; }
.btn-add {
  flex: 1; min-width: 108px; height: 34px; border: 1px solid var(--red); background: var(--white);
  color: var(--red); border-radius: 8px; font-size: 13px; font-weight: 700; cursor: pointer;
}
.btn-add:hover { background: var(--red); color: var(--white); }
.btn-add.in-cart { background: #eef8f1; border-color: var(--green); color: var(--green); }
.li-copy { background: none; border: none; color: var(--grey-700); font-size: 11.5px; cursor: pointer; padding: 0; text-decoration: underline; align-self: flex-start; }
.li-copy:hover { color: var(--red); }

.disclaimer { margin-top: 26px; font-size: 12.5px; line-height: 1.6; color: var(--grey-700); border-top: 1px solid var(--grey-300); padding-top: 16px; }
.empty-state { text-align: center; color: var(--grey-700); padding: 40px 20px 90px; font-size: 14.5px; }
.footer { border-top: 1px solid var(--grey-300); background: var(--white); padding: 18px 0; }
.footer-inner { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; color: var(--grey-700); font-size: 12.5px; }

/* ---------- Buttons ---------- */
.btn-primary { background: var(--red); border: none; color: var(--white); padding: 12px 18px; border-radius: 9px; font-size: 14px; cursor: pointer; font-weight: 700; }
.btn-primary:hover { background: var(--red-dark); }
.btn-secondary { background: var(--white); border: 1px solid var(--grey-300); color: var(--ink); padding: 12px 16px; border-radius: 9px; font-size: 14px; cursor: pointer; font-weight: 600; }
.btn-secondary:hover { border-color: var(--red); color: var(--red); }
.btn-ghost { background: none; border: none; color: var(--grey-700); font-size: 13px; cursor: pointer; text-decoration: underline; }
.btn-ghost:hover { color: var(--red-dark); }
.btn-icon { background: none; border: none; font-size: 26px; cursor: pointer; color: var(--grey-700); line-height: 1; padding: 0 6px; }
.btn-icon:hover { color: var(--red); }

/* ---------- Cart ---------- */
.cart-overlay { position: fixed; inset: 0; background: rgba(16, 20, 26, 0.5); display: flex; justify-content: flex-end; z-index: 100; }
.cart-panel { background: var(--white); width: 100%; max-width: 500px; height: 100%; overflow-y: auto; padding: 22px 24px 30px; display: flex; flex-direction: column; gap: 18px; }
.cart-panel-header { display: flex; align-items: center; justify-content: space-between; }
.cart-panel-header h2 { margin: 0; font-size: 21px; }
.cart-items { display: flex; flex-direction: column; gap: 9px; }
.cart-item { border: 1px solid var(--grey-300); border-radius: 10px; padding: 12px 13px; display: flex; flex-direction: column; gap: 7px; }
.ci-top { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.ci-cat { font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--grey-700); font-weight: 700; }
.ci-code { font-size: 14.5px; font-weight: 700; }
.ci-model { font-size: 11.5px; color: var(--grey-700); }
.ci-line { font-size: 14px; font-weight: 800; white-space: nowrap; }
.ci-line.missing { font-size: 11.5px; color: var(--red-dark); font-weight: 700; }
.ci-bottom { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.ci-unit { font-size: 11.5px; color: var(--grey-700); }
.cart-empty { text-align: center; color: var(--grey-700); font-size: 14px; padding: 34px 10px; border: 1px dashed var(--grey-300); border-radius: 10px; }

.cart-customer h3 { margin: 0 0 10px; font-size: 12px; text-transform: uppercase; letter-spacing: 0.6px; color: var(--grey-700); }
.cart-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 8px; }
.cart-customer input, .cart-customer textarea {
  width: 100%; padding: 10px 12px; border: 1px solid var(--grey-300); border-radius: 8px;
  font-size: 13.5px; font-family: inherit; color: var(--ink);
}
.cart-customer input:focus, .cart-customer textarea:focus { outline: none; border-color: var(--red); }
.cart-customer textarea { resize: vertical; }

.cart-summary { border-top: 1px solid var(--grey-300); padding-top: 16px; margin-top: auto; }
.totals { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.totals-row { display: flex; justify-content: space-between; font-size: 14px; color: var(--ink-soft); }
.totals-row.total { border-top: 1px solid var(--grey-300); padding-top: 9px; margin-top: 3px; font-size: 17px; font-weight: 800; color: var(--ink); }
.cart-note { font-size: 11.5px; line-height: 1.5; color: var(--grey-700); margin: 0 0 10px; }
.cart-actions { display: flex; gap: 9px; align-items: center; flex-wrap: wrap; }

@media (max-width: 560px) {
  .cart-fields { grid-template-columns: 1fr; }
  .hero h1 { font-size: 25px; }
  .cart-toggle-label { display: none; }
}

/* ---------- Print sheet ---------- */
#print-sheet { display: none; }

@media print {
  @page { size: A4; margin: 14mm 14mm 12mm; }
  body { background: var(--white); }
  body > *:not(#print-sheet) { display: none !important; }
  #print-sheet { display: block !important; }

  .ps-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; border-bottom: 2px solid var(--red); padding-bottom: 10px; }
  .ps-head img { height: 40px; width: auto; }
  .ps-brand-txt { font-size: 13px; font-weight: 800; }
  .ps-brand-txt small { display: block; font-weight: 400; font-size: 10px; color: #555; }
  .ps-title { text-align: right; }
  .ps-title h1 { margin: 0; font-size: 17px; letter-spacing: 0.5px; text-transform: uppercase; }
  .ps-title p { margin: 3px 0 0; font-size: 10.5px; color: #444; }

  .ps-meta { display: flex; gap: 26px; flex-wrap: wrap; margin: 12px 0 14px; font-size: 10.5px; }
  .ps-meta div { line-height: 1.5; }
  .ps-meta span { display: block; text-transform: uppercase; letter-spacing: 0.5px; color: #777; font-size: 8.5px; font-weight: 700; }
  .ps-meta strong { font-size: 11px; font-weight: 700; }

  table.ps-table { width: 100%; border-collapse: collapse; font-size: 10.5px; }
  table.ps-table thead th {
    background: #f2f3f5; text-align: left; padding: 6px 7px; font-size: 8.5px;
    text-transform: uppercase; letter-spacing: 0.5px; border-bottom: 1px solid #c9ccd1; color: #333;
  }
  table.ps-table td { padding: 6px 7px; border-bottom: 1px solid #e6e8eb; vertical-align: top; }
  table.ps-table .num { text-align: right; white-space: nowrap; }
  table.ps-table .ref { font-weight: 700; }
  table.ps-table .sub { display: block; font-size: 9px; color: #666; }
  table.ps-table tr { page-break-inside: avoid; }

  .ps-totals { margin-top: 12px; margin-left: auto; width: 54%; font-size: 11px; }
  .ps-totals div { display: flex; justify-content: space-between; padding: 4px 7px; }
  .ps-totals .grand { border-top: 1.5px solid var(--red); margin-top: 3px; padding-top: 6px; font-size: 13.5px; font-weight: 800; }

  .ps-notes { margin-top: 16px; border-top: 1px solid #dcdfe4; padding-top: 8px; font-size: 8.8px; line-height: 1.55; color: #555; }
  .ps-notes strong { color: #333; }
  .ps-obs { margin-top: 10px; font-size: 10px; }
  .ps-obs span { text-transform: uppercase; font-size: 8.5px; letter-spacing: 0.5px; color: #777; font-weight: 700; display: block; }
}

.liquid-products { margin-top: 12px; display: grid; gap: 8px; }
.liquid-product {
  border-top: 1px solid var(--grey-300); padding-top: 9px;
}
.liquid-product .lp-head {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
.liquid-product .lp-name { font-size: 13px; font-weight: 700; color: var(--ink); }
.liquid-product .lp-ref { display: block; margin-top: 2px; font-size: 11px; color: var(--grey-700); }
.liquid-product .lp-price { color: var(--green); font-size: 13px; font-weight: 800; white-space: nowrap; }
.liquid-product .lp-price.missing { color: var(--grey-700); font-weight: 600; font-size: 11.5px; }
.liquid-product .lp-controls {
  display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 7px;
}
.liquid-product .stepper { margin: 0; }
.liquid-product .btn-add {
  padding: 7px 11px; font-size: 12px;
}


/* PVP líquidos mismo verde que artículos */
.liquid-products .li-price {
  color: var(--green) !important;
}


/* Iconos de líquidos */
.liquid-icon-svg {
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: rgba(18, 112, 76, .08);
}
.liquid-icon-svg svg {
  width: 36px;
  height: 36px;
  fill: var(--green);
}
.liquid-icon-svg.coolant-svg {
  background: rgba(18, 112, 76, .08);
}

/* Apoyo al proyecto */
.support-project {
  margin: 34px 0 42px;
}
.support-card {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  padding: 24px;
  border: 1px solid rgba(18, 112, 76, .18);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(18,112,76,.06), rgba(255,255,255,.96));
  box-shadow: 0 10px 28px rgba(0,0,0,.04);
}
.support-icon {
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--green);
  color: white;
  font-size: 24px;
  line-height: 1;
}
.support-copy h2 {
  margin: 0 0 8px;
  font-size: 20px;
}
.support-copy p {
  margin: 0;
  color: var(--grey-700);
  line-height: 1.55;
}
.support-copy .developer-credit {
  margin-top: 10px;
  color: var(--ink);
}
.footer-custom {
  gap: 12px;
  flex-wrap: wrap;
}
@media (max-width: 640px) {
  .support-card { padding: 18px; }
  .liquid-icon-svg { width: 50px; height: 50px; flex-basis: 50px; }
  .liquid-icon-svg svg { width: 31px; height: 31px; }
}


/* Despiece Yanmar */
.exploded-parts { margin: 18px 0 6px; }
.exploded-card {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 20px 22px;
  border: 1px solid rgba(18,112,76,.16);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0,0,0,.035);
}
.exploded-icon {
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  background: rgba(18,112,76,.08);
}
.exploded-icon svg { width: 30px; height: 30px; fill: var(--green); }
.exploded-copy { flex: 1; min-width: 0; }
.eyebrow {
  display: block;
  margin-bottom: 4px;
  color: var(--green);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.exploded-copy h2 { margin: 0 0 5px; font-size: 18px; }
.exploded-copy p { margin: 0; color: var(--grey-700); font-size: 13px; }
.exploded-action { flex: 0 0 auto; }
.exploded-download.disabled,
.paypal-button.disabled {
  cursor: default;
  opacity: .55;
  pointer-events: none;
}

/* PayPal */
.support-actions {
  margin-top: 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.paypal-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 18px;
  border-radius: 10px;
  background: var(--green);
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  font-size: 13px;
}
.support-note { color: var(--grey-700); font-size: 12px; }

/* Buzón de sugerencias */
.suggestions-section { margin: 34px 0 0; }
.suggestions-card {
  padding: 24px;
  border: 1px solid rgba(18,112,76,.16);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(0,0,0,.04);
}
.suggestions-heading {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 18px;
}
.suggestions-icon {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: rgba(18,112,76,.08);
  color: var(--green);
  font-size: 20px;
  font-weight: 900;
}
.suggestions-heading h2 { margin: 0 0 5px; font-size: 20px; }
.suggestions-heading p { margin: 0; color: var(--grey-700); line-height: 1.5; }
.suggestion-form label { display: grid; gap: 7px; }
.suggestion-form label > span {
  font-size: 12px;
  font-weight: 800;
  color: var(--ink);
}
.suggestion-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.suggestion-form input,
.suggestion-form select,
.suggestion-form textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(0,0,0,.14);
  border-radius: 10px;
  padding: 11px 12px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.suggestion-form textarea { resize: vertical; min-height: 120px; }
.suggestion-message { margin-top: 14px; }
.suggestion-footer {
  margin-top: 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
@media (max-width: 700px) {
  .exploded-card { align-items: flex-start; flex-wrap: wrap; }
  .exploded-action { width: 100%; }
  .exploded-action .btn-primary { width: 100%; box-sizing: border-box; }
  .suggestion-grid { grid-template-columns: 1fr; }
}


/* Iconos v2: aceite y refrigerante */
.liquid-icon-svg.icon-v2 svg {
  width: 38px;
  height: 38px;
  fill: var(--green);
}


/* =========================================================
   RESPONSIVE · MÓVIL / TABLET / ESCRITORIO
   La misma web se adapta automáticamente al ancho disponible.
   ========================================================= */

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  overflow-x: hidden;
}

img, svg {
  max-width: 100%;
}

.container {
  width: min(100% - 32px, 1180px);
  margin-left: auto;
  margin-right: auto;
}

/* Tablet */
@media (max-width: 1024px) {
  .container {
    width: min(100% - 28px, 920px);
  }

  .topbar-inner {
    gap: 16px;
  }

  .brand img,
  #brand-logo {
    max-width: 300px;
    height: auto;
  }

  .hero {
    padding-top: 34px;
  }

  .hero h1 {
    font-size: clamp(28px, 4vw, 38px);
    line-height: 1.12;
  }

  .hero p {
    max-width: 760px;
  }

  .liquids-grid {
    grid-template-columns: 1fr 1fr;
    gap: 14px;
  }

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

  .support-card,
  .exploded-card,
  .suggestions-card {
    max-width: 100%;
  }

  .cart-panel {
    width: min(92vw, 520px);
  }
}

/* Móvil */
@media (max-width: 640px) {
  :root {
    --mobile-gap: 14px;
  }

  body {
    font-size: 15px;
  }

  .container {
    width: calc(100% - 24px);
  }

  .topbar {
    position: sticky;
    top: 0;
    z-index: 50;
  }

  .topbar-inner {
    min-height: 72px;
    gap: 10px;
    align-items: center;
  }

  .brand {
    min-width: 0;
    flex: 1 1 auto;
  }

  .brand img,
  #brand-logo {
    width: auto;
    max-width: min(58vw, 230px);
    max-height: 54px;
    object-fit: contain;
    object-position: left center;
  }

  .brand-fallback {
    transform: scale(.9);
    transform-origin: left center;
  }

  .cart-toggle {
    flex: 0 0 auto;
    min-height: 44px;
    padding: 0 12px;
    border-radius: 12px;
    gap: 7px;
  }

  .cart-toggle-label {
    font-size: 12px;
  }

  .cart-count {
    min-width: 22px;
    height: 22px;
    font-size: 12px;
  }

  main.container {
    padding-bottom: 24px;
  }

  .hero {
    padding-top: 24px;
    padding-bottom: 20px;
  }

  .hero h1 {
    font-size: 27px;
    line-height: 1.12;
    letter-spacing: -0.025em;
    margin-bottom: 12px;
  }

  .hero p {
    font-size: 14px;
    line-height: 1.55;
  }

  .selector-card {
    padding: 16px;
    border-radius: 16px;
  }

  .field label {
    font-size: 13px;
  }

  .field select {
    min-height: 50px;
    font-size: 16px; /* evita zoom automático en iPhone */
    padding-left: 14px;
    padding-right: 42px;
  }

  .liquids {
    margin-top: 26px;
  }

  .liquids h2,
  .results-header h2 {
    font-size: 20px;
  }

  .liquids-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .liquid-card {
    padding: 16px;
    border-radius: 16px;
    align-items: flex-start;
    gap: 12px;
  }

  .liquid-icon-svg {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: 13px;
  }

  .liquid-icon-svg.icon-v2 svg,
  .liquid-icon-svg svg {
    width: 30px;
    height: 30px;
  }

  .liquid-info {
    min-width: 0;
    width: 100%;
  }

  .liquid-info h3 {
    font-size: 12px;
    line-height: 1.2;
  }

  .liquid-main {
    font-size: 19px;
  }

  .liquid-sub {
    font-size: 12px;
  }

  .liquid-product {
    padding-top: 12px;
  }

  .liquid-product .lp-head {
    gap: 10px;
    align-items: flex-start;
  }

  .liquid-product .lp-name {
    font-size: 13px;
    line-height: 1.3;
  }

  .liquid-product .lp-price {
    flex: 0 0 auto;
    font-size: 13px;
  }

  .liquid-product .lp-controls {
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    gap: 8px;
    align-items: stretch;
  }

  .stepper {
    width: 100%;
    display: grid;
    grid-template-columns: 36px 1fr 36px;
  }

  .stepper button,
  .stepper input {
    min-height: 42px;
  }

  .stepper input {
    width: 100%;
    min-width: 0;
    font-size: 16px;
  }

  .btn-add,
  .btn-primary,
  .btn-secondary,
  .btn-ghost {
    min-height: 42px;
    touch-action: manipulation;
  }

  .exploded-parts {
    margin-top: 18px;
  }

  .exploded-card {
    padding: 16px;
    border-radius: 16px;
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 12px;
    align-items: start;
  }

  .exploded-icon {
    width: 48px;
    height: 48px;
    flex-basis: 48px;
  }

  .exploded-copy h2 {
    font-size: 17px;
  }

  .exploded-copy p {
    font-size: 12px;
    line-height: 1.4;
  }

  .exploded-action {
    grid-column: 1 / -1;
    width: 100%;
  }

  .exploded-action .btn-primary,
  .exploded-download {
    width: 100%;
    display: flex;
    box-sizing: border-box;
  }

  .results {
    margin-top: 22px;
  }

  .results-header {
    display: block;
    margin-bottom: 12px;
  }

  .results-header h2 {
    margin-bottom: 6px;
  }

  .results-hint {
    display: block;
    font-size: 12px;
    line-height: 1.4;
  }

  .parts-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .part-card {
    padding: 16px;
    border-radius: 16px;
  }

  .part-card h3 {
    font-size: 15px;
  }

  .line-item {
    padding: 12px 0;
  }

  .li-head {
    gap: 8px;
    align-items: flex-start;
  }

  .li-code {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .li-price {
    flex: 0 0 auto;
    font-size: 14px;
  }

  .li-controls {
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    gap: 8px;
  }

  .li-copy {
    min-height: 36px;
  }

  .disclaimer {
    font-size: 11px;
    line-height: 1.45;
  }

  .suggestions-section,
  .support-project {
    margin-top: 24px;
  }

  .suggestions-card,
  .support-card {
    padding: 17px;
    border-radius: 16px;
  }

  .suggestions-heading,
  .support-card {
    gap: 12px;
  }

  .suggestions-heading h2,
  .support-copy h2 {
    font-size: 19px;
  }

  .suggestions-heading p,
  .support-copy p {
    font-size: 13px;
  }

  .suggestion-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .suggestion-form input,
  .suggestion-form select,
  .suggestion-form textarea {
    font-size: 16px; /* evita zoom iOS */
  }

  .suggestion-footer,
  .support-actions {
    align-items: stretch;
  }

  .suggestion-footer .btn-primary,
  .paypal-button {
    width: 100%;
    box-sizing: border-box;
  }

  .support-icon,
  .suggestions-icon {
    width: 40px;
    height: 40px;
    flex-basis: 40px;
  }

  .footer-inner {
    display: grid;
    gap: 6px;
    text-align: center;
    justify-items: center;
    padding-top: 18px;
    padding-bottom: 18px;
    font-size: 11px;
  }

  /* Carrito móvil: ocupa la pantalla completa */
  .cart-overlay {
    align-items: stretch;
  }

  .cart-panel {
    width: 100vw;
    max-width: none;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
    padding-bottom: env(safe-area-inset-bottom);
  }

  .cart-panel-header {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #fff;
    padding-top: max(14px, env(safe-area-inset-top));
  }

  .cart-panel-header h2 {
    font-size: 21px;
  }

  .cart-items {
    padding-left: 14px;
    padding-right: 14px;
  }

  .cart-item {
    padding: 14px 0;
  }

  .ci-top {
    gap: 10px;
  }

  .ci-code {
    overflow-wrap: anywhere;
  }

  .ci-bottom {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
    align-items: center;
  }

  .ci-bottom .stepper {
    min-width: 0;
  }

  .ci-unit {
    grid-column: 1 / -1;
  }

  .cart-customer,
  .cart-summary {
    padding-left: 14px;
    padding-right: 14px;
  }

  .cart-fields {
    grid-template-columns: 1fr;
  }

  .cart-fields input,
  .cart-customer textarea {
    font-size: 16px;
  }

  .cart-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .cart-actions button {
    width: 100%;
  }

  #print-sheet {
    display: none;
  }
}

/* Móviles muy estrechos */
@media (max-width: 390px) {
  .container {
    width: calc(100% - 18px);
  }

  .hero h1 {
    font-size: 24px;
  }

  .cart-toggle-label {
    display: none;
  }

  .cart-toggle {
    width: 46px;
    justify-content: center;
    padding: 0;
  }

  .liquid-product .lp-controls,
  .li-controls {
    grid-template-columns: 1fr;
  }

  .stepper {
    grid-template-columns: 42px 1fr 42px;
  }
}

/* Horizontal móvil */
@media (max-height: 500px) and (orientation: landscape) and (max-width: 900px) {
  .topbar {
    position: static;
  }

  .hero {
    padding-top: 16px;
    padding-bottom: 12px;
  }

  .cart-panel {
    height: 100dvh;
  }
}

/* Respeta usuarios con menos animación */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}


/* Envío de pedido por WhatsApp */
.btn-whatsapp {
  min-height: 42px;
  border: 0;
  border-radius: 10px;
  padding: 0 16px;
  background: #25D366;
  color: #fff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.btn-whatsapp:hover { filter: brightness(.96); }
.btn-whatsapp:active { transform: translateY(1px); }
.wa-icon {
  font-size: 17px;
  line-height: 1;
}
.whatsapp-note {
  margin-top: 10px;
  font-size: 11px;
  line-height: 1.45;
}
@media (max-width: 640px) {
  .btn-whatsapp { width: 100%; box-sizing: border-box; }
}


/* Icono real de WhatsApp */
.btn-whatsapp .wa-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
}
.btn-whatsapp .wa-icon svg {
  width:20px;
  height:20px;
  fill:currentColor;
  display:block;
}


/* =========================================================
   PESTAÑAS PRINCIPALES + BUSCADOR PVP
   ========================================================= */
.tool-tabs {
  display: inline-flex;
  gap: 6px;
  margin: 24px 0 4px;
  padding: 5px;
  border: 1px solid var(--grey-300);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 6px 18px rgba(0,0,0,.035);
}
.tool-tab {
  min-height: 44px;
  border: 0;
  border-radius: 10px;
  padding: 0 16px;
  background: transparent;
  color: var(--ink-soft);
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.tool-tab:hover {
  background: #f5f6f7;
  color: var(--ink);
}
.tool-tab.active {
  background: var(--red);
  color: #fff;
}
.tool-tab-icon {
  width: 18px;
  height: 18px;
  display: inline-flex;
}
.tool-tab-icon svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}

.pvp-view {
  padding-top: 26px;
  min-height: 460px;
}
.pvp-hero {
  max-width: 850px;
  margin-bottom: 24px;
}
.pvp-hero h1 {
  margin: 4px 0 10px;
  font-size: clamp(27px, 3.4vw, 38px);
  line-height: 1.12;
  letter-spacing: -.025em;
}
.pvp-hero p {
  margin: 0;
  max-width: 760px;
  color: var(--grey-700);
  line-height: 1.6;
}

.pvp-search-card {
  position: relative;
  z-index: 8;
  padding: 22px;
  border: 1px solid var(--grey-300);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0,0,0,.04);
}
.pvp-search-label {
  display: block;
  margin-bottom: 9px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 800;
}
.pvp-search-box {
  position: relative;
}
.pvp-search-icon {
  position: absolute;
  left: 15px;
  top: 50%;
  z-index: 2;
  width: 22px;
  height: 22px;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  color: var(--grey-700);
  pointer-events: none;
}
.pvp-search-icon svg {
  width: 21px;
  height: 21px;
  fill: currentColor;
}
#pvp-search {
  width: 100%;
  box-sizing: border-box;
  min-height: 56px;
  border: 1px solid var(--grey-300);
  border-radius: 12px;
  padding: 0 52px 0 48px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: .02em;
}
#pvp-search:focus {
  outline: none;
  border-color: var(--red);
  box-shadow: 0 0 0 3px rgba(226,59,51,.08);
}
.pvp-clear {
  position: absolute;
  right: 10px;
  top: 50%;
  z-index: 4;
  width: 36px;
  height: 36px;
  transform: translateY(-50%);
  border: 0;
  border-radius: 50%;
  background: #f2f3f4;
  color: var(--ink-soft);
  font-size: 23px;
  line-height: 1;
  cursor: pointer;
}
.pvp-clear:hover {
  background: #eceeef;
  color: var(--red);
}

.pvp-suggestions {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 7px);
  z-index: 30;
  max-height: 430px;
  overflow-y: auto;
  border: 1px solid var(--grey-300);
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(0,0,0,.14);
}
.pvp-suggestion {
  width: 100%;
  min-height: 68px;
  border: 0;
  border-bottom: 1px solid #eceef0;
  padding: 11px 14px;
  background: #fff;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.pvp-suggestion:last-child {
  border-bottom: 0;
}
.pvp-suggestion:hover,
.pvp-suggestion.active {
  background: #f7f8f8;
}
.pvp-suggestion-copy {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.pvp-suggestion-copy strong {
  color: var(--ink);
  font-size: 15px;
  letter-spacing: .01em;
}
.pvp-suggestion-copy small {
  color: var(--grey-700);
  font-size: 12.5px;
  line-height: 1.35;
}
.pvp-suggestion-price {
  flex: 0 0 auto;
  color: var(--green);
  font-size: 14px;
  font-weight: 800;
  white-space: nowrap;
}
.pvp-suggestion-price.missing {
  color: var(--red-dark);
  font-size: 11px;
}
.pvp-no-results {
  padding: 18px;
  color: var(--grey-700);
  font-size: 13px;
}

.pvp-search-meta {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin-top: 9px;
  color: var(--grey-700);
  font-size: 11.5px;
}
#pvp-catalog-count {
  white-space: nowrap;
}

.pvp-selected {
  margin-top: 16px;
  padding: 22px;
  border: 1px solid rgba(21,122,61,.22);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(21,122,61,.035), #fff 46%);
  box-shadow: 0 8px 24px rgba(0,0,0,.035);
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 24px;
  align-items: center;
}
.pvp-selected-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 22px;
}
.pvp-selected-head h2 {
  margin: 0 0 6px;
  font-size: 22px;
  letter-spacing: .01em;
}
.pvp-selected-head p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 14px;
  line-height: 1.45;
}
.pvp-selected-price {
  flex: 0 0 auto;
  color: var(--green);
  font-size: 22px;
  font-weight: 900;
  white-space: nowrap;
}
.pvp-selected-price.missing {
  color: var(--red-dark);
  font-size: 14px;
}
.pvp-selected-models {
  margin: 10px 0 0;
  color: var(--grey-700);
  font-size: 11.5px;
  line-height: 1.45;
}
.pvp-selected-actions {
  min-width: 250px;
  display: grid;
  gap: 12px;
}
.pvp-qty-block {
  display: grid;
  gap: 6px;
}
.pvp-qty-block > span {
  color: var(--grey-700);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.pvp-stepper {
  width: 100%;
  display: grid;
  grid-template-columns: 42px 1fr 42px;
}
.pvp-stepper input {
  width: 100%;
  min-width: 0;
}
.pvp-add {
  width: 100%;
}
.pvp-add.in-cart {
  background: var(--green);
}

.pvp-info-note {
  margin-top: 14px;
  padding: 13px 15px;
  border-radius: 12px;
  background: #f5f6f7;
  color: var(--grey-700);
  font-size: 11.5px;
  line-height: 1.5;
}

@media (max-width: 700px) {
  .tool-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
    box-sizing: border-box;
    margin-top: 14px;
  }
  .tool-tab {
    min-width: 0;
    min-height: 48px;
    padding: 0 8px;
    justify-content: center;
    text-align: center;
    font-size: 11.5px;
    line-height: 1.2;
  }
  .pvp-view {
    padding-top: 22px;
  }
  .pvp-hero h1 {
    font-size: 27px;
  }
  .pvp-search-card {
    padding: 16px;
    border-radius: 16px;
  }
  #pvp-search {
    min-height: 52px;
    font-size: 16px;
  }
  .pvp-search-meta {
    display: grid;
    gap: 3px;
  }
  .pvp-suggestions {
    max-height: 360px;
  }
  .pvp-suggestion {
    min-height: 74px;
    gap: 9px;
  }
  .pvp-suggestion-price {
    font-size: 12px;
  }
  .pvp-selected {
    grid-template-columns: 1fr;
    padding: 17px;
    gap: 17px;
  }
  .pvp-selected-head {
    display: grid;
    gap: 10px;
  }
  .pvp-selected-price {
    font-size: 20px;
  }
  .pvp-selected-actions {
    min-width: 0;
  }
}

@media print {
  .tool-tabs,
  #pvp-view {
    display: none !important;
  }
}


/* Identificación de la tarifa en el Buscador PVP */
.pvp-source-badge {
  display: inline-block;
  margin-left: 6px;
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(21,122,61,.08);
  color: var(--green);
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
  vertical-align: middle;
}


/* =========================================================
   SISTEMA DE USUARIOS / LOGIN / ADMIN
   ========================================================= */
body.auth-loading,
body.auth-guest {
  min-height: 100vh;
}
body.auth-loading .protected-content,
body.auth-guest .protected-content {
  display: none !important;
}
body.authenticated #auth-gate {
  display: none !important;
}

.auth-gate {
  min-height: 100vh;
  padding: 42px 18px;
  box-sizing: border-box;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 12% 12%, rgba(226,59,51,.07), transparent 30%),
    linear-gradient(180deg, #f7f8f9, #eef1f3);
}
.auth-shell {
  width: min(100%, 830px);
}
.auth-brand {
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.auth-brand img {
  width: min(320px, 60vw);
  max-height: 82px;
  object-fit: contain;
  object-position: left center;
}
.auth-brand > span {
  color: var(--grey-700);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.auth-card {
  padding: 30px;
  border: 1px solid var(--grey-300);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(0,0,0,.09);
}
.auth-heading h1 {
  margin: 5px 0 10px;
  font-size: clamp(27px, 4vw, 38px);
  line-height: 1.1;
}
.auth-heading p {
  margin: 0;
  max-width: 680px;
  color: var(--grey-700);
  line-height: 1.55;
}
.auth-tabs {
  margin: 25px 0 20px;
  padding: 4px;
  border-radius: 12px;
  background: #f2f3f4;
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.auth-tab {
  min-height: 44px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--ink-soft);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.auth-tab.active {
  background: #fff;
  color: var(--red);
  box-shadow: 0 3px 12px rgba(0,0,0,.07);
}
.auth-form {
  display: grid;
  gap: 15px;
}
.auth-form label {
  display: grid;
  gap: 7px;
}
.auth-form label > span,
.change-password-form label > span {
  font-size: 12px;
  font-weight: 800;
  color: var(--ink);
}
.auth-form input,
.auth-form select,
.change-password-form input {
  width: 100%;
  min-height: 46px;
  box-sizing: border-box;
  border: 1px solid var(--grey-300);
  border-radius: 10px;
  padding: 10px 12px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.auth-form input:focus,
.auth-form select:focus,
.change-password-form input:focus {
  outline: none;
  border-color: var(--red);
  box-shadow: 0 0 0 3px rgba(226,59,51,.07);
}
.password-field {
  position: relative;
}
.password-field input {
  padding-right: 72px;
}
.password-toggle {
  position: absolute;
  right: 7px;
  top: 50%;
  transform: translateY(-50%);
  min-height: 32px;
  border: 0;
  border-radius: 7px;
  padding: 0 9px;
  background: #f2f3f4;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}
.register-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.register-wide {
  grid-column: 1 / -1;
}
.auth-consent {
  grid-template-columns: auto 1fr !important;
  align-items: start;
  gap: 9px !important;
  color: var(--grey-700);
  font-size: 12px;
  line-height: 1.45;
}
.auth-consent input {
  width: 17px;
  min-height: 17px;
  margin-top: 2px;
}
.auth-submit {
  width: 100%;
  min-height: 48px;
}
.auth-help {
  margin: -3px 0 0;
  color: var(--grey-700);
  font-size: 11px;
  line-height: 1.45;
}
.auth-message,
.inline-message {
  margin-bottom: 16px;
  padding: 12px 14px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
}
.auth-message.success,
.inline-message.success { background: #edf8f0; color: #157a3d; }
.auth-message.warning { background: #fff6df; color: #805c00; }
.auth-message.error,
.inline-message.error { background: #fff0ef; color: var(--red-dark); }
.auth-message.info { background: #eef4fa; color: #315b7d; }
.auth-server-warning {
  margin-top: 18px;
  padding: 13px 15px;
  border-radius: 10px;
  background: #fff6df;
  color: #6f5200;
  font-size: 12px;
  line-height: 1.5;
}

/* Cuenta en cabecera */
.topbar-inner {
  position: relative;
}
.account-zone {
  position: relative;
  margin-left: auto;
}
.account-toggle {
  min-height: 44px;
  border: 1px solid var(--grey-300);
  border-radius: 12px;
  padding: 5px 11px 5px 6px;
  background: #fff;
  color: var(--ink);
  display: flex;
  align-items: center;
  gap: 9px;
  cursor: pointer;
}
.account-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(226,59,51,.10);
  color: var(--red);
  font-size: 13px;
  font-weight: 900;
}
.account-copy {
  display: grid;
  text-align: left;
  line-height: 1.15;
}
.account-copy strong {
  max-width: 190px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 11.5px;
}
.account-copy small {
  margin-top: 2px;
  color: var(--green);
  font-size: 9.5px;
  font-weight: 800;
}
.account-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 7px);
  z-index: 100;
  width: 180px;
  padding: 6px;
  border: 1px solid var(--grey-300);
  border-radius: 11px;
  background: #fff;
  box-shadow: 0 14px 35px rgba(0,0,0,.13);
}
.account-menu button {
  width: 100%;
  min-height: 38px;
  border: 0;
  border-radius: 7px;
  padding: 0 10px;
  background: transparent;
  color: var(--ink);
  text-align: left;
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}
.account-menu button:hover { background: #f3f4f5; }

/* Mi cuenta */
.account-overlay {
  position: fixed;
  inset: 0;
  z-index: 250;
  padding: 20px;
  background: rgba(18,22,27,.55);
  display: grid;
  place-items: center;
}
.account-panel {
  width: min(100%, 720px);
  max-height: min(90vh, 820px);
  overflow-y: auto;
  padding: 24px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 28px 80px rgba(0,0,0,.22);
}
.account-panel > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 15px;
}
.account-panel h2 { margin: 3px 0 0; }
.account-profile-data {
  margin-top: 20px;
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 10px;
}
.account-profile-data > div {
  padding: 11px 12px;
  border-radius: 10px;
  background: #f6f7f8;
  display: grid;
  gap: 4px;
}
.account-profile-data span {
  color: var(--grey-700);
  font-size: 9.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.account-profile-data strong {
  font-size: 12px;
  overflow-wrap: anywhere;
}
.account-discount-card {
  margin-top: 14px;
  padding: 14px 16px;
  border: 1px solid rgba(21,122,61,.2);
  border-radius: 12px;
  background: rgba(21,122,61,.055);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.account-discount-card span { color: var(--grey-700); font-size: 12px; }
.account-discount-card strong { color: var(--green); font-size: 24px; }
.change-password-form {
  margin-top: 22px;
  padding-top: 19px;
  border-top: 1px solid var(--grey-300);
  display: grid;
  gap: 12px;
}
.change-password-form h3 { margin: 0 0 3px; }

/* Admin */
.admin-view {
  padding-top: 26px;
  padding-bottom: 20px;
}
.admin-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
}
.admin-header h1 {
  margin: 4px 0 6px;
  font-size: clamp(27px,3.4vw,38px);
}
.admin-header p {
  margin: 0;
  color: var(--grey-700);
}
.admin-stats {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 12px;
}
.admin-stat {
  padding: 16px;
  border: 1px solid var(--grey-300);
  border-radius: 14px;
  background: #fff;
  display: grid;
  gap: 5px;
}
.admin-stat span {
  color: var(--grey-700);
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.admin-stat strong { font-size: 26px; }
.admin-filters {
  margin: 16px 0 12px;
  display: grid;
  grid-template-columns: 1fr 220px;
  gap: 10px;
}
.admin-filters input,
.admin-filters select {
  min-height: 44px;
  border: 1px solid var(--grey-300);
  border-radius: 10px;
  padding: 0 12px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.admin-users {
  display: grid;
  gap: 12px;
}
.admin-user-card {
  padding: 17px;
  border: 1px solid var(--grey-300);
  border-radius: 15px;
  background: #fff;
  display: grid;
  grid-template-columns: minmax(0,1fr) 370px;
  gap: 20px;
}
.admin-user-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.admin-user-title > div { display: grid; gap: 3px; }
.admin-user-title strong { font-size: 16px; }
.admin-user-title span:not(.status-badge) { color: var(--grey-700); font-size: 11px; }
.status-badge {
  flex: 0 0 auto;
  padding: 5px 8px;
  border-radius: 999px;
  font-size: 9.5px;
  font-weight: 900;
  text-transform: uppercase;
}
.status-pending { background: #fff4d6; color: #765500; }
.status-approved { background: #eaf7ee; color: #157a3d; }
.status-disabled { background: #eceeef; color: #555; }
.status-rejected { background: #fff0ef; color: var(--red-dark); }
.admin-user-details {
  margin-top: 13px;
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 9px;
}
.admin-user-details > div {
  display: grid;
  gap: 2px;
}
.admin-user-details span {
  color: var(--grey-700);
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
}
.admin-user-details strong {
  font-size: 11px;
  overflow-wrap: anywhere;
}
.admin-user-controls {
  padding-left: 18px;
  border-left: 1px solid var(--grey-300);
  display: grid;
  grid-template-columns: 1fr 120px;
  gap: 10px;
  align-content: start;
}
.admin-user-controls label {
  display: grid;
  gap: 5px;
}
.admin-user-controls label > span {
  color: var(--grey-700);
  font-size: 9.5px;
  font-weight: 800;
  text-transform: uppercase;
}
.admin-user-controls input,
.admin-user-controls select {
  width: 100%;
  min-height: 39px;
  box-sizing: border-box;
  border: 1px solid var(--grey-300);
  border-radius: 8px;
  padding: 7px 9px;
  background: #fff;
  font: inherit;
  font-size: 12px;
}
.admin-notes { grid-column: 1 / -1; }
.admin-action-row {
  grid-column: 1 / -1;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.admin-self-note {
  grid-column: 1 / -1;
  color: var(--grey-700);
  font-size: 11px;
}
.admin-empty {
  padding: 25px;
  border: 1px dashed var(--grey-300);
  border-radius: 14px;
  color: var(--grey-700);
  text-align: center;
}
.admin-empty.error { color: var(--red-dark); }

/* Descuento */
.discount-row span:last-child {
  color: var(--green);
  font-weight: 800;
}
.ci-line small {
  display: block;
  margin-top: 2px;
  color: var(--grey-700);
  font-size: 9px;
  font-weight: 500;
}
.pvp-selected-price {
  display: grid;
  justify-items: end;
  gap: 2px;
}
.pvp-selected-price small {
  color: var(--grey-700);
  font-size: 10px;
  font-weight: 600;
}
.pvp-selected-price strong {
  color: var(--green);
  font-size: 20px;
}

@media (max-width: 900px) {
  .admin-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin-user-card { grid-template-columns: 1fr; }
  .admin-user-controls {
    padding-left: 0;
    padding-top: 14px;
    border-left: 0;
    border-top: 1px solid var(--grey-300);
  }
}

@media (max-width: 640px) {
  .auth-gate { padding: 18px 10px; align-items: start; }
  .auth-brand { margin-top: 8px; }
  .auth-brand > span { display: none; }
  .auth-card { padding: 18px; border-radius: 17px; }
  .register-grid { grid-template-columns: 1fr; }
  .register-wide { grid-column: auto; }

  .account-copy { display: none; }
  .account-toggle { padding: 5px; }
  .account-zone { margin-left: auto; }

  .account-profile-data { grid-template-columns: 1fr; }

  .admin-header { align-items: flex-start; }
  .admin-header .btn-secondary { flex: 0 0 auto; }
  .admin-stats { grid-template-columns: repeat(2,1fr); }
  .admin-filters { grid-template-columns: 1fr; }
  .admin-user-details { grid-template-columns: 1fr; }
  .admin-user-controls { grid-template-columns: 1fr; }
  .admin-notes, .admin-action-row { grid-column: auto; }
}

@media print {
  #auth-gate,
  .account-overlay,
  #admin-view {
    display: none !important;
  }
}


/* =========================================================
   PERFIL EDITABLE + ADMIN COMPLETO + HISTORIAL DE PEDIDOS
   ========================================================= */
.profile-edit-form {
  margin-top: 18px;
}
.profile-section-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 14px;
}
.profile-section-title h3 {
  margin: 0 0 4px;
  font-size: 17px;
}
.profile-section-title p {
  margin: 0;
  color: var(--grey-700);
  font-size: 11px;
}
.profile-lock-note {
  max-width: 285px;
  color: var(--grey-700);
  font-size: 10px;
  line-height: 1.45;
  text-align: right;
}
.profile-locked-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 9px;
  margin-bottom: 14px;
}
.profile-locked-grid > div {
  padding: 11px 12px;
  border: 1px solid #e2e5e8;
  border-radius: 10px;
  background: #f5f6f7;
  display: grid;
  gap: 4px;
}
.profile-locked-grid span,
.profile-edit-grid label > span {
  color: var(--grey-700);
  font-size: 9.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.profile-locked-grid strong {
  font-size: 11.5px;
  overflow-wrap: anywhere;
}
.profile-locked-grid small {
  color: var(--red-dark);
  font-size: 8.5px;
  font-weight: 800;
  text-transform: uppercase;
}
.profile-edit-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 11px;
}
.profile-edit-grid label {
  display: grid;
  gap: 5px;
}
.profile-edit-grid input,
.profile-edit-grid select {
  width: 100%;
  min-height: 42px;
  box-sizing: border-box;
  border: 1px solid var(--grey-300);
  border-radius: 9px;
  padding: 8px 10px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 12px;
}
.profile-wide {
  grid-column: 1 / -1;
}
.profile-save-row {
  margin-top: 14px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.profile-save-row .inline-message {
  margin: 0;
}

/* Admin v2 */
.admin-user-card-v2 {
  display: block;
}
.admin-user-summary {
  padding-bottom: 13px;
  border-bottom: 1px solid var(--grey-300);
}
.admin-user-mini {
  margin-top: 8px;
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  color: var(--grey-700);
  font-size: 10px;
}
.admin-user-mini b {
  color: var(--ink);
}
.admin-edit-form {
  padding-top: 14px;
}
.admin-edit-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 9px;
}
.admin-edit-grid label {
  display: grid;
  gap: 5px;
}
.admin-edit-grid label > span {
  color: var(--grey-700);
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .035em;
}
.admin-edit-grid input,
.admin-edit-grid select {
  width: 100%;
  min-height: 39px;
  box-sizing: border-box;
  border: 1px solid var(--grey-300);
  border-radius: 8px;
  padding: 7px 9px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 11.5px;
}
.admin-wide {
  grid-column: span 2;
}
.admin-edit-form .admin-action-row {
  margin-top: 12px;
}

/* Historial */
.admin-order-history {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--grey-300);
}
.order-history-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}
.order-history-head h3 {
  margin: 0;
  font-size: 16px;
}
.order-history-head span {
  color: var(--grey-700);
  font-size: 10px;
}
.order-history-list {
  display: grid;
  gap: 8px;
}
.order-history-item {
  border: 1px solid var(--grey-300);
  border-radius: 11px;
  background: #fafbfb;
  overflow: hidden;
}
.order-history-item summary {
  list-style: none;
  padding: 11px 13px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.order-history-item summary::-webkit-details-marker { display: none; }
.order-history-item summary > div:first-child {
  display: grid;
  gap: 3px;
}
.order-history-item summary strong {
  font-size: 12px;
}
.order-history-item summary span {
  color: var(--grey-700);
  font-size: 9.5px;
}
.order-history-total {
  display: grid;
  justify-items: end;
  gap: 2px;
}
.order-history-total strong {
  color: var(--green);
  font-size: 14px !important;
}
.order-history-body {
  padding: 12px 13px 14px;
  border-top: 1px solid var(--grey-300);
  background: #fff;
}
.order-history-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 15px;
  padding-bottom: 10px;
  color: var(--grey-700);
  font-size: 10px;
}
.order-history-customer {
  margin-bottom: 10px;
  padding: 9px 10px;
  border-radius: 8px;
  background: #f5f6f7;
  display: grid;
  gap: 3px;
  color: var(--grey-700);
  font-size: 10px;
}
.order-history-lines {
  display: grid;
}
.order-history-line {
  padding: 8px 0;
  border-bottom: 1px solid #eceeef;
  display: flex;
  justify-content: space-between;
  gap: 12px;
}
.order-history-line:last-child {
  border-bottom: 0;
}
.order-history-line > div {
  display: grid;
  gap: 2px;
}
.order-history-line > div:last-child {
  justify-items: end;
  flex: 0 0 auto;
}
.order-history-line strong {
  font-size: 10.5px;
}
.order-history-line span {
  color: var(--grey-700);
  font-size: 9.5px;
}
.order-history-notes {
  margin-top: 9px;
  padding-top: 9px;
  border-top: 1px solid var(--grey-300);
  color: var(--grey-700);
  font-size: 10px;
}
.order-history-empty {
  padding: 15px;
  border-radius: 9px;
  background: #f5f6f7;
  color: var(--grey-700);
  text-align: center;
  font-size: 11px;
}
.order-history-empty.error {
  background: #fff0ef;
  color: var(--red-dark);
}

@media (max-width: 900px) {
  .profile-locked-grid {
    grid-template-columns: 1fr;
  }
  .admin-edit-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .admin-wide {
    grid-column: span 2;
  }
}

@media (max-width: 640px) {
  .profile-section-title {
    display: grid;
  }
  .profile-lock-note {
    max-width: none;
    text-align: left;
  }
  .profile-edit-grid,
  .admin-edit-grid {
    grid-template-columns: 1fr;
  }
  .profile-wide,
  .admin-wide {
    grid-column: auto;
  }
  .profile-save-row {
    align-items: stretch;
    flex-direction: column;
  }
  .order-history-item summary {
    align-items: flex-start;
  }
}


/* Aprobación de cuentas */
.btn-approve-account {
  min-height: 39px;
  border: 1px solid #157a3d;
  border-radius: 8px;
  padding: 0 15px;
  background: #157a3d;
  color: #fff;
  font: inherit;
  font-size: 11.5px;
  font-weight: 850;
  cursor: pointer;
}
.btn-approve-account:hover { filter: brightness(.96); }
.btn-approve-account:disabled { opacity: .65; cursor: wait; }
.account-active-note {
  min-height: 39px;
  padding: 0 13px;
  border-radius: 8px;
  background: #eaf7ee;
  color: #157a3d;
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 850;
}

/* =========================================================
   PEDIDOS SEPARADOS + RECUPERACIÓN DE CONTRASEÑA
   ========================================================= */
.auth-login-help{margin-top:-3px;display:flex;justify-content:flex-end}.auth-link-button{border:0;padding:4px 0;background:transparent;color:var(--red);font:inherit;font-size:11px;font-weight:800;cursor:pointer}.auth-link-button:hover{text-decoration:underline}.auth-subheading h2{margin:0 0 6px;font-size:22px}.auth-subheading p{margin:0 0 7px;color:var(--grey-700);font-size:12px;line-height:1.5}.auth-back{width:100%}
.btn-order-submit{width:100%;min-height:48px;border:0;border-radius:10px;background:var(--red);color:#fff;font:inherit;font-weight:900;cursor:pointer;box-shadow:0 8px 20px rgba(226,59,51,.16)}.btn-order-submit:hover{filter:brightness(.96)}.btn-order-submit:disabled{opacity:.6;cursor:wait}
.orders-view{padding-top:26px;padding-bottom:22px}.orders-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.orders-page-header h1{margin:4px 0 6px;font-size:clamp(27px,3.4vw,38px)}.orders-page-header p{margin:0;color:var(--grey-700)}
.orders-summary,.admin-orders-stats{margin-top:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-orders-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.orders-summary>div,.admin-orders-stats>div{padding:15px 16px;border:1px solid var(--grey-300);border-radius:13px;background:#fff;display:grid;gap:5px}.orders-summary span,.admin-orders-stats span{color:var(--grey-700);font-size:9.5px;font-weight:800;text-transform:uppercase}.orders-summary strong,.admin-orders-stats strong{font-size:21px}
.admin-orders-filter{margin:13px 0}.admin-orders-filter input{width:100%;min-height:44px;box-sizing:border-box;border:1px solid var(--grey-300);border-radius:10px;padding:0 12px;background:#fff;font:inherit}.orders-list{margin-top:14px;display:grid;gap:12px}.order-card{padding:17px;border:1px solid var(--grey-300);border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(0,0,0,.025)}.order-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.order-ref{color:var(--red);font-size:10px;font-weight:900;letter-spacing:.04em}.order-card-head h3{margin:3px 0;font-size:16px}.order-card-head p{margin:0;color:var(--grey-700);font-size:10.5px}.order-card-total{display:grid;justify-items:end;gap:6px}.order-card-total>strong{color:var(--green);font-size:18px}.order-status-pill{padding:4px 7px;border-radius:999px;background:#eaf7ee;color:var(--green);font-size:9px;font-weight:900;text-transform:uppercase}.order-client-strip{margin-top:12px;padding:9px 10px;border-radius:9px;background:#f5f6f7;display:flex;gap:14px;flex-wrap:wrap;color:var(--grey-700);font-size:9.5px}.order-financials{margin-top:11px;padding:10px 0;border-top:1px solid #eceeef;border-bottom:1px solid #eceeef;display:flex;flex-wrap:wrap;gap:10px 18px;color:var(--grey-700);font-size:10px}.order-financials b{color:var(--ink)}.order-lines-details{margin-top:10px}.order-lines-details>summary{cursor:pointer;color:var(--ink);font-size:11px;font-weight:800}.order-lines-list{margin-top:7px;display:grid}.order-line-row{padding:8px 0;border-bottom:1px solid #eceeef;display:flex;justify-content:space-between;gap:15px}.order-line-row:last-child{border-bottom:0}.order-line-row>div{display:grid;gap:2px}.order-line-row>div:last-child{justify-items:end;flex:0 0 auto}.order-line-row strong{font-size:10.5px}.order-line-row span{color:var(--grey-700);font-size:9.5px}.order-extra{margin-top:9px;padding:9px 10px;border-radius:8px;background:#f7f8f8;display:grid;gap:4px;color:var(--grey-700);font-size:10px}.orders-empty{padding:24px;border:1px dashed var(--grey-300);border-radius:13px;background:#fff;color:var(--grey-700);text-align:center;font-size:11px}.orders-empty.error{color:var(--red-dark);background:#fff3f2}.status-active{background:#eaf7ee;color:#157a3d}.status-blocked{background:#fff0ef;color:var(--red-dark)}
@media(max-width:760px){.orders-page-header{align-items:flex-start}.orders-summary,.admin-orders-stats{grid-template-columns:1fr}.order-card-head{align-items:flex-start}.order-client-strip,.order-financials{display:grid;gap:5px}}


/* =========================================================
   SEPARACIÓN ESTRICTA DE ROLES · 20260827-role-v3
   ========================================================= */
[hidden] { display: none !important; }
body:not(.role-client) .client-only { display: none !important; }
body.role-admin .client-only { display: none !important; }
body:not(.role-admin) .admin-only { display: none !important; }
body.role-client .admin-only { display: none !important; }
body.role-client #admin-view,
body.role-client #admin-orders-view { display: none !important; }
body.role-admin #my-orders-view { display: none !important; }
body.auth-guest .admin-only,
body.auth-guest .client-only,
body.auth-loading .admin-only,
body.auth-loading .client-only { display: none !important; }
.app-version {
  display:inline-block; margin-left:10px; color:#8a9098; font-size:9px; font-weight:700;
  letter-spacing:.03em; white-space:nowrap;
}
.role-security-note {
  margin:10px 0 0; padding:9px 11px; border-radius:9px; background:#f5f6f7;
  color:var(--grey-700); font-size:10px; line-height:1.45;
}


/* =========================================================
   V5 · IVA POR CLIENTE + DIRECCIÓN DE ENVÍO + IMPRESIÓN PEDIDOS
   ========================================================= */
.account-commercial-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.account-commercial-grid .account-discount-card{margin-top:0}.account-vat-card{border-color:rgba(226,59,51,.18);background:rgba(226,59,51,.04)}.account-vat-card strong{color:var(--red)}
.profile-subsection-title{margin:18px 0 9px;padding-top:14px;border-top:1px solid var(--grey-300)}.profile-subsection-title h4{margin:0;font-size:14px}.profile-subsection-title p{margin:4px 0 0;color:var(--grey-700);font-size:10.5px}.profile-shipping-section{margin-top:8px}.shipping-same-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center!important;gap:8px!important;margin:8px 0 12px;font-size:11px;font-weight:700;color:var(--ink)}.shipping-same-check input{width:17px!important;min-height:17px!important;margin:0}.shipping-same-check span{text-transform:none!important;letter-spacing:0!important;font-size:11px!important;color:var(--ink)!important}
.cart-delivery-info{margin-top:10px;padding:10px 12px;border:1px solid rgba(226,59,51,.18);border-radius:10px;background:#fff8f7;display:grid;gap:3px}.cart-delivery-info>span{color:var(--red-dark);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.cart-delivery-info strong{font-size:11px;line-height:1.4}.cart-delivery-info small{color:var(--grey-700);font-size:9px}
.admin-shipping-box{margin-top:12px;padding:12px;border:1px solid var(--grey-300);border-radius:11px;background:#fafbfb}.admin-shipping-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px}.admin-shipping-head strong{font-size:11px}.admin-shipping-head label{display:flex;align-items:center;gap:6px;color:var(--grey-700);font-size:10px}.admin-shipping-head input{width:15px;height:15px}.admin-shipping-fields{padding-top:5px}
.order-delivery-strip{margin:10px 0 0;padding:10px 12px;border-left:3px solid var(--red);border-radius:7px;background:#fff8f7;color:var(--ink);font-size:10.5px;line-height:1.4}.order-card-actions{display:flex;justify-content:flex-end;margin:10px 0}.order-card-actions .btn-secondary{min-height:36px;font-size:11px}
.ps-addresses{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 16px}.ps-addresses>div{padding:10px 12px;border-radius:8px;background:#f5f6f7}.ps-addresses>div.delivery{border:1px solid rgba(226,59,51,.25);background:#fff8f7}.ps-addresses span{display:block;color:#777;font-size:9px;font-weight:800;text-transform:uppercase;margin-bottom:4px}.ps-addresses strong{font-size:11px;line-height:1.4}
@media(max-width:640px){.account-commercial-grid,.ps-addresses{grid-template-columns:1fr}.admin-shipping-head{align-items:flex-start;flex-direction:column}.order-card-actions{justify-content:stretch}.order-card-actions .btn-secondary{width:100%}}


/* =========================================================
   V6 · FLUJO DE PEDIDOS, ESTADOS Y DOCUMENTOS
   ========================================================= */
.orders-summary-v6 { grid-template-columns: repeat(6,minmax(0,1fr)); }
.admin-orders-stats-v6 { grid-template-columns: repeat(6,minmax(0,1fr)); }
.order-status-pill { font-weight:900; }
.order-status-pill.status-submitted { background:#eef2f5; color:#49545e; }
.order-status-pill.status-processing { background:#fff1cc; color:#7a5800; }
.order-status-pill.status-shipped { background:#e9f2ff; color:#245c9b; }
.order-status-pill.status-invoiced { background:#eaf7ee; color:#157a3d; }
.order-card.order-status-processing { border-left:4px solid #d7a600; }
.order-card.order-status-shipped { border-left:4px solid #3e7ec3; }
.order-card.order-status-invoiced { border-left:4px solid #157a3d; }
.order-doc-strip { margin-top:8px; padding:8px 10px; border-radius:8px; background:#f4f7fa; color:#4c5965; font-size:10.5px; }
.order-card-actions { flex-wrap:wrap; }
.order-card-actions .btn-primary,.order-card-actions .btn-secondary { min-height:38px; }
.doc-download { border-color:#bfd3c6 !important; }
@media (max-width:1000px){.orders-summary-v6,.admin-orders-stats-v6{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.orders-summary-v6,.admin-orders-stats-v6{grid-template-columns:repeat(2,1fr)}}

/* V7: email de acceso bloqueado visualmente en administración */
[data-admin-email][readonly]{background:#f2f3f4!important;color:#777!important;cursor:not-allowed;}
.profile-locked-grid-single{grid-template-columns:minmax(240px,360px)!important;}


/* =========================================================
   V8 · FILTROS DE PEDIDOS, CANCELACIONES Y ABONOS
   ========================================================= */
.orders-summary-v8,.admin-orders-stats-v8{grid-template-columns:repeat(auto-fit,minmax(135px,1fr))!important}
.order-filter-card{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;user-select:none}
.order-filter-card:hover{border-color:#b9bec4!important;box-shadow:0 6px 18px rgba(0,0,0,.055);transform:translateY(-1px)}
.order-filter-card.active{border-color:var(--red)!important;box-shadow:0 0 0 2px rgba(226,59,51,.08)}
.order-filter-card.active span{color:var(--red)!important}
.order-filter-card small,.orders-update-card small,.admin-metric-card small{color:var(--grey-700);font-size:8.5px;line-height:1.25;text-transform:none;font-weight:600}
.orders-filter-caption{margin:13px 0 -3px;color:var(--grey-700);font-size:10px;font-weight:700}
.status-stack{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.order-status-pill.status-cancelled{background:#fff0ef;color:var(--red-dark)}
.secondary-status{box-shadow:inset 0 0 0 1px rgba(21,122,61,.15)}
.order-cancel-strip{margin:10px 0 0;padding:10px 12px;border-left:3px solid var(--red);border-radius:7px;background:#fff0ef;color:var(--red-dark);font-size:10.5px}
.order-credit-strip{margin:9px 0 0;padding:9px 10px;border-radius:8px;background:#f6f2ff;color:#4c3d73;font-size:10px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.credit-pill{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:800}
.credit-pending{background:#fff1cc;color:#7a5800}.credit-approved{background:#eaf7ee;color:#157a3d}.credit-rejected{background:#fff0ef;color:var(--red-dark)}
.btn-credit{min-height:38px;border:1px solid #7856a8;border-radius:9px;padding:0 13px;background:#f7f2ff;color:#573b7f;font:inherit;font-size:11px;font-weight:800;cursor:pointer}
.btn-credit:hover{background:#efe6fb}.btn-credit.approve{background:#573b7f;color:#fff}.btn-credit.approve:hover{background:#432e60}
.danger-soft{border-color:#efc5c2!important;color:var(--red-dark)!important;background:#fff8f7!important}
.danger-soft:hover{background:#fff0ef!important}
.order-card.order-status-cancelled{border-left:4px solid var(--red);opacity:.92}
@media(max-width:640px){.orders-summary-v8,.admin-orders-stats-v8{grid-template-columns:repeat(2,minmax(0,1fr))!important}.status-stack{justify-content:flex-start}.order-card-total{justify-items:start}.order-card-head{display:grid}.order-card-actions .btn-credit{width:100%}}


/* =========================================================
   V9 · SOLICITUDES DE ABONO PARCIALES
   ========================================================= */
.credit-request-overlay{position:fixed;inset:0;z-index:400;background:rgba(18,22,27,.62);padding:20px;display:grid;place-items:center}
.credit-request-modal{width:min(100%,820px);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;padding:22px;box-shadow:0 28px 80px rgba(0,0,0,.25)}
.credit-request-modal>header{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;border-bottom:1px solid var(--grey-300);padding-bottom:14px}
.credit-request-modal h2{margin:3px 0 5px}.credit-request-modal header p{margin:0;color:var(--grey-700);font-size:12px}
.credit-modal-invoice{margin:14px 0;padding:11px 13px;border-radius:10px;background:#f5f6f7;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.credit-modal-invoice span{font-size:10px;text-transform:uppercase;color:var(--grey-700);font-weight:800}.credit-modal-invoice strong{font-size:13px}.credit-modal-invoice small{color:var(--grey-700)}
.credit-modal-lines{display:grid;gap:8px}.credit-select-line{display:grid;grid-template-columns:auto minmax(0,1fr) 110px;gap:12px;align-items:center;padding:11px;border:1px solid var(--grey-300);border-radius:11px;background:#fff}.credit-select-line>input{width:18px;height:18px}.credit-select-copy{display:grid;gap:3px}.credit-select-copy strong{font-size:12px}.credit-select-copy span,.credit-select-copy small{font-size:10px;color:var(--grey-700)}.credit-select-qty{display:grid;gap:4px}.credit-select-qty span{font-size:9px;text-transform:uppercase;color:var(--grey-700);font-weight:800}.credit-select-qty input{width:100%;min-height:38px;border:1px solid var(--grey-300);border-radius:8px;padding:6px 8px;box-sizing:border-box}.credit-select-qty input:disabled{background:#f2f3f4;color:#999}
.credit-modal-totals{margin:15px 0 0 auto;width:min(100%,360px);display:grid;gap:6px}.credit-modal-totals>div{display:flex;justify-content:space-between;gap:16px;font-size:11px}.credit-modal-totals .grand{margin-top:4px;padding-top:9px;border-top:2px solid #7856a8;font-size:15px}.credit-request-modal>footer{margin-top:16px;display:flex;justify-content:flex-end;gap:8px}
.credit-management-list{margin:12px 0;display:grid;gap:10px}.credit-request-card{border:1px solid #ddd;border-left:4px solid #c7a541;border-radius:11px;padding:12px;background:#fff}.credit-request-card.credit-approved{border-left-color:#157a3d}.credit-request-card.credit-rejected{border-left-color:#c33}
.credit-request-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.credit-request-head>div:first-child{display:grid;gap:3px}.credit-request-kicker{font-size:9px;text-transform:uppercase;color:var(--grey-700);font-weight:800}.credit-request-head strong{font-size:13px}.credit-request-head small{font-size:9.5px;color:var(--grey-700)}.credit-request-total{display:grid;justify-items:end;gap:2px}.credit-request-total strong{font-size:16px;color:#573b7f}.credit-request-total span{font-size:9.5px;color:var(--grey-700)}
.credit-request-lines{margin-top:10px;border-top:1px solid #eceeef}.credit-request-line{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #eceeef}.credit-request-line>div{display:grid;gap:2px}.credit-request-line>div:last-child{justify-items:end;flex:0 0 auto}.credit-request-line strong{font-size:10.5px}.credit-request-line span{font-size:9.5px;color:var(--grey-700)}.credit-request-summary{display:flex;gap:14px;flex-wrap:wrap;margin-top:9px;font-size:9.5px;color:var(--grey-700)}.credit-request-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
@media(max-width:640px){.credit-request-overlay{padding:8px;align-items:end}.credit-request-modal{border-radius:17px 17px 0 0;max-height:94vh}.credit-select-line{grid-template-columns:auto minmax(0,1fr)}.credit-select-qty{grid-column:2}.credit-request-modal>footer{display:grid;grid-template-columns:1fr 1fr}.credit-request-head{display:grid}.credit-request-total{justify-items:start}}


/* =========================================================
   V11 · DESCUENTO POR TIPO DE PEDIDO
   ========================================================= */
.cart-order-type-box {
  margin: 12px 0 0;
  padding: 15px;
  border: 1px solid var(--grey-300);
  border-radius: 13px;
  background: #fff;
}
.cart-order-type-head h3 { margin: 3px 0 3px; font-size: 15px; }
.cart-order-type-head p { margin: 0 0 12px; color: var(--grey-700); font-size: 10.5px; line-height: 1.4; }
.cart-order-kicker { color: var(--green); font-size: 8.5px; font-weight: 900; letter-spacing: .07em; }
.cart-order-type-options { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cart-order-type-option {
  position: relative; min-width: 0; padding: 12px; border: 1px solid var(--grey-300); border-radius: 11px;
  background: #f8f9fa; cursor: pointer; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 9px; align-items: center;
}
.cart-order-type-option:hover { border-color: #c6cbd0; background: #fff; }
.cart-order-type-option.selected { border-color: var(--red); background: #fff5f4; box-shadow: 0 0 0 2px rgba(226,59,51,.06); }
.cart-order-type-option input { margin: 0; accent-color: var(--red); }
.order-type-copy { display: grid; gap: 3px; min-width: 0; }
.order-type-copy strong { font-size: 11.5px; }
.order-type-copy small { color: var(--grey-700); font-size: 9px; }
.order-type-discount { display: grid; justify-items: end; gap: 1px; color: var(--green); }
.order-type-discount b { font-size: 17px; }
.order-type-discount small { font-size: 8px; text-transform: uppercase; font-weight: 800; }
.cart-order-type-selected { margin-top: 9px; padding: 8px 10px; border-radius: 8px; background: #f2f3f4; color: var(--grey-700); font-size: 9.5px; line-height: 1.35; }
.cart-order-type-selected.selected { background: #edf8f0; color: #157a3d; font-weight: 700; }
.account-commercial-grid-v11 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.account-discount-card small { color: var(--grey-700); font-size: 9px; }
.order-type-strip { margin-top: 9px; padding: 9px 11px; border-radius: 8px; display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 10px; }
.order-type-strip.order-type-urgent { background: #fff3ed; border-left: 3px solid #e56b31; }
.order-type-strip.order-type-stock { background: #edf8f0; border-left: 3px solid #157a3d; }
@media (max-width: 700px) {
  .cart-order-type-options, .account-commercial-grid-v11 { grid-template-columns: 1fr; }
  .cart-order-type-option { grid-template-columns: auto 1fr auto; }
}


/* =========================================================
   V12 · PORTES DE ENVÍO EN TRAMITACIÓN
   ========================================================= */
.cart-shipping-estimate-note{margin:10px 0 0;padding:11px 12px;border-radius:9px;border-left:3px solid #d59b22;background:#fff9e9;color:#6b5317;font-size:10px;line-height:1.45;display:grid;gap:3px}.cart-shipping-estimate-note strong{color:#4d3a0c;font-size:10.5px}.order-shipping-cost-strip{margin-top:8px;padding:9px 11px;border-radius:8px;font-size:10px}.order-shipping-cost-strip.pending{background:#fff8e7;border-left:3px solid #d59b22;color:#6b5317}.order-shipping-cost-strip.estimated{background:#eef6ff;border-left:3px solid #4b86d1;color:#244d7d}.shipping-cost-overlay{position:fixed;inset:0;z-index:420;padding:16px;background:rgba(18,22,27,.6);display:grid;place-items:center}.shipping-cost-modal{width:min(100%,620px);max-height:92vh;overflow:auto;border-radius:18px;background:#fff;padding:22px;box-shadow:0 28px 80px rgba(0,0,0,.24)}.shipping-cost-modal>header{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.shipping-cost-modal h2{margin:4px 0 5px;font-size:23px}.shipping-cost-modal header p{margin:0;color:var(--grey-700);font-size:11px}.shipping-cost-destination{margin-top:16px;padding:11px 12px;background:#fff6f5;border-left:3px solid var(--red);border-radius:8px;display:grid;gap:4px}.shipping-cost-destination span,.shipping-cost-input>span{color:var(--grey-700);font-size:9px;font-weight:800;text-transform:uppercase}.shipping-cost-destination strong{font-size:11px;line-height:1.4}.shipping-cost-input{margin-top:15px;display:grid;gap:6px}.shipping-cost-input>div{position:relative}.shipping-cost-input input{width:100%;box-sizing:border-box;min-height:52px;border:1px solid var(--grey-300);border-radius:10px;padding:8px 44px 8px 12px;font-size:20px;font-weight:700}.shipping-cost-input>div b{position:absolute;right:15px;top:50%;transform:translateY(-50%);font-size:17px}.shipping-cost-input small{color:var(--grey-700);font-size:9.5px}.shipping-cost-breakdown{margin-top:15px;padding:12px 14px;border-radius:10px;background:#f6f7f8;display:grid;gap:8px}.shipping-cost-breakdown>div{display:flex;justify-content:space-between;gap:15px;font-size:11px}.shipping-cost-breakdown .grand{margin-top:3px;padding-top:9px;border-top:2px solid var(--red);font-size:15px}.shipping-cost-modal>footer{margin-top:16px;display:flex;justify-content:flex-end;gap:8px}.credit-shipping-line{background:#f3f8ff;border-color:#cddff4}.credit-request-shipping{background:#f3f8ff}@media(max-width:640px){.shipping-cost-overlay{padding:8px;align-items:end}.shipping-cost-modal{border-radius:17px 17px 0 0;max-height:94vh}.shipping-cost-modal>footer{display:grid;grid-template-columns:1fr 1fr}}


/* =========================================================
   V13 · FILTROS AVANZADOS DE PEDIDOS
   ========================================================= */
.orders-filter-panel {
  margin: 14px 0 12px;
  padding: 17px;
  border: 1px solid var(--grey-300);
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(0,0,0,.025);
}
.orders-filter-panel-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}
.orders-filter-panel-head h3 {
  margin: 3px 0 0;
  font-size: 17px;
}
.orders-clear-filters {
  flex: 0 0 auto;
}
.orders-filter-grid {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 10px;
}
.orders-filter-grid-admin {
  grid-template-columns: repeat(5,minmax(0,1fr));
}
.orders-filter-grid label {
  min-width: 0;
  display: grid;
  gap: 5px;
}
.orders-filter-grid label > span {
  color: var(--grey-700);
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.orders-filter-grid input,
.orders-filter-grid select {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  box-sizing: border-box;
  border: 1px solid var(--grey-300);
  border-radius: 9px;
  padding: 7px 10px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 11.5px;
}
.orders-filter-grid input:focus,
.orders-filter-grid select:focus {
  outline: none;
  border-color: var(--red);
  box-shadow: 0 0 0 3px rgba(226,59,51,.06);
}
.orders-filter-search {
  grid-column: span 2;
}
.orders-filter-footer {
  margin-top: 11px;
  padding-top: 10px;
  border-top: 1px solid #eceeef;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.orders-active-filters {
  color: var(--grey-700);
  font-size: 10.5px;
  line-height: 1.45;
}
.orders-active-filters.has-filters {
  color: var(--ink);
  font-weight: 700;
}
.orders-filter-caption {
  margin: 10px 0 !important;
  color: var(--grey-700);
  font-size: 10.5px;
  font-weight: 700;
}
.orders-pagination {
  margin: 16px 0 2px;
  padding: 10px 12px;
  border: 1px solid var(--grey-300);
  border-radius: 11px;
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
}
.orders-pagination span {
  min-width: 190px;
  color: var(--grey-700);
  font-size: 10.5px;
  text-align: center;
}
.orders-pagination button:disabled {
  opacity: .42;
  cursor: not-allowed;
}
.order-filter-card {
  cursor: pointer;
}
.order-filter-card:focus-visible {
  outline: 3px solid rgba(226,59,51,.18);
  outline-offset: 2px;
}

@media (max-width: 1050px) {
  .orders-filter-grid,
  .orders-filter-grid-admin {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }
  .orders-filter-search {
    grid-column: span 2;
  }
}
@media (max-width: 720px) {
  .orders-filter-panel {
    padding: 13px;
  }
  .orders-filter-panel-head {
    align-items: stretch;
    flex-direction: column;
  }
  .orders-clear-filters {
    width: 100%;
  }
  .orders-filter-grid,
  .orders-filter-grid-admin {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
  .orders-filter-search {
    grid-column: 1 / -1;
  }
  .orders-pagination {
    justify-content: space-between;
    gap: 7px;
  }
  .orders-pagination span {
    min-width: 0;
  }
}
@media (max-width: 470px) {
  .orders-filter-grid,
  .orders-filter-grid-admin {
    grid-template-columns: 1fr;
  }
  .orders-filter-search {
    grid-column: auto;
  }
  .orders-pagination {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .orders-pagination span {
    grid-column: 1 / -1;
    grid-row: 1;
  }
}


/* =========================================================
   V15 · ARTÍCULOS Y SERIES
   ========================================================= */
.admin-page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin:26px 0 18px}.admin-page-heading h1{margin:4px 0 6px;font-size:clamp(28px,3vw,38px)}.admin-page-heading p{margin:0;color:var(--grey-700);max-width:820px;line-height:1.5}
.pvp-selected-detail-grid{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:start}.pvp-selected-media{width:190px;height:160px;border:1px solid var(--grey-300);border-radius:13px;background:#f6f7f8;overflow:hidden;display:grid;place-items:center}.pvp-selected-media img{width:100%;height:100%;object-fit:contain}.pvp-selected-name{margin:3px 0 8px;font-size:17px}.pvp-selected-description{line-height:1.55}
.article-admin-search-card{position:relative;padding:18px;border:1px solid var(--grey-300);border-radius:15px;background:#fff}.article-admin-search-card label{display:block;margin-bottom:7px;font-size:12px;font-weight:800}.article-admin-search-card input{width:100%;min-height:48px;box-sizing:border-box;border:1px solid var(--grey-300);border-radius:10px;padding:0 13px;font:inherit}.article-admin-search-status{margin-top:7px;color:var(--grey-700);font-size:10.5px}.article-admin-suggestions{position:absolute;left:18px;right:18px;top:86px;z-index:30;max-height:430px;overflow:auto;border:1px solid var(--grey-300);border-radius:11px;background:#fff;box-shadow:0 18px 45px rgba(0,0,0,.14)}.article-admin-suggestions button{width:100%;border:0;border-bottom:1px solid #eceeef;padding:10px 12px;background:#fff;display:grid;grid-template-columns:180px 1fr auto;gap:12px;text-align:left;cursor:pointer}.article-admin-suggestions button:hover{background:#f6f7f8}.article-admin-suggestions span{color:var(--grey-700)}.article-admin-suggestions small{color:var(--green);font-weight:800}.article-admin-no-results{padding:16px;color:var(--grey-700)}
.article-admin-editor{margin-top:15px;padding:19px;border:1px solid var(--grey-300);border-radius:16px;background:#fff}.article-admin-editor-head,.article-internal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.article-admin-editor-head h2,.article-internal-head h3{margin:3px 0}.article-admin-public-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;margin-top:18px}.article-admin-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.article-admin-fields label,.article-admin-photo-box{display:grid;gap:5px}.article-admin-fields label span,.article-admin-photo-box .field-title,.article-alt-row label span{font-size:9.5px;font-weight:800;color:var(--grey-700);text-transform:uppercase}.article-admin-fields input,.article-admin-fields textarea,.article-alt-row input,.article-alt-row select{width:100%;box-sizing:border-box;border:1px solid var(--grey-300);border-radius:8px;padding:8px 9px;font:inherit}.article-wide{grid-column:1/-1}.article-photo-preview{height:190px;border:1px dashed var(--grey-300);border-radius:10px;background:#f6f7f8;display:grid;place-items:center;overflow:hidden;color:var(--grey-700)}.article-photo-preview img{width:100%;height:100%;object-fit:contain}.article-admin-photo-box small{color:var(--grey-700)}
.article-internal-section{margin-top:22px;padding-top:18px;border-top:2px solid #eceeef}.article-internal-head p{margin:3px 0;color:var(--grey-700);font-size:11px}.article-alt-list{display:grid;gap:8px;margin-top:13px}.article-alt-row{padding:11px;border:1px solid #e1e4e7;border-radius:11px;background:#f8f9fa;display:grid;grid-template-columns:140px 180px 1fr 120px 110px 1.2fr auto;gap:8px;align-items:end}.article-alt-row label{display:grid;gap:4px}.article-alt-empty{padding:17px;border:1px dashed var(--grey-300);border-radius:10px;color:var(--grey-700);text-align:center}.btn-danger-soft{border:1px solid #efc7c4;border-radius:8px;padding:9px 10px;background:#fff0ef;color:#a62c26;font:inherit;font-size:10px;font-weight:800;cursor:pointer}
.series-help-card{padding:13px 15px;border-radius:11px;background:#f4f6f8;color:var(--grey-700);line-height:1.5}.series-help-card code{background:#fff;padding:2px 5px;border-radius:4px;color:var(--ink)}.document-series-list{display:grid;gap:15px;margin-top:15px}.series-type-card{padding:17px;border:1px solid var(--grey-300);border-radius:15px;background:#fff}.series-type-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.series-type-head h2{margin:2px 0}.series-rows{display:grid;gap:10px}.series-row{padding:13px;border:1px solid #e2e5e8;border-radius:11px;background:#f9fafb}.series-row-top,.series-options,.series-preview{display:flex;align-items:center;justify-content:space-between;gap:12px}.series-default{font-weight:800}.series-fields{display:grid;grid-template-columns:1fr 1fr 2fr 1fr 1fr .7fr;gap:8px;margin:10px 0}.series-fields label{display:grid;gap:4px}.series-fields span{font-size:9px;font-weight:800;color:var(--grey-700);text-transform:uppercase}.series-fields input{min-width:0;width:100%;box-sizing:border-box;border:1px solid var(--grey-300);border-radius:7px;padding:7px 8px;font:inherit}.series-options{justify-content:flex-start;flex-wrap:wrap;color:var(--grey-700);font-size:10px}.series-current{margin-left:auto}.series-preview{margin-top:10px;padding-top:10px;border-top:1px solid #e2e5e8;color:var(--grey-700);font-size:11px}.series-preview strong{color:var(--ink);font-family:monospace;font-size:13px}
@media(max-width:1100px){.article-alt-row{grid-template-columns:repeat(3,minmax(0,1fr))}.alt-observations{grid-column:span 2}.series-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.series-format{grid-column:span 2}}@media(max-width:760px){.admin-page-heading,.article-admin-editor-head,.article-internal-head{flex-direction:column;align-items:stretch}.article-admin-public-grid{grid-template-columns:1fr}.article-admin-fields{grid-template-columns:1fr 1fr}.article-wide{grid-column:1/-1}.article-alt-row{grid-template-columns:1fr 1fr}.alt-observations{grid-column:1/-1}.series-fields{grid-template-columns:1fr 1fr}.series-format{grid-column:1/-1}.pvp-selected-detail-grid{grid-template-columns:1fr}.pvp-selected-media{width:100%;height:220px}}@media(max-width:480px){.article-admin-fields,.article-alt-row,.series-fields{grid-template-columns:1fr}.article-wide,.alt-observations,.series-format{grid-column:auto}.series-row-top,.series-preview{align-items:stretch;flex-direction:column}}


/* V15 · artículos creados manualmente */
.article-origin{display:inline-flex;margin-top:7px;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.02em;background:#f3f4f5;color:#60656b}
.article-origin-custom{background:#fff1ef;color:#a62a25;border:1px solid #f1cdc9}
.article-origin-tariff{background:#f3f4f5;color:#5d6268;border:1px solid #e1e4e7}
.article-custom-badge{display:inline-block;padding:2px 6px;border-radius:999px;background:#fff1ef;color:#a62a25;font-size:9px;font-weight:800}
.admin-articles-view .admin-page-heading{align-items:flex-end}
@media(max-width:720px){.admin-articles-view .admin-page-heading{align-items:stretch;flex-direction:column}#admin-article-create{width:100%}}


/* =========================================================
   V15 · RELOJ DIGITAL GLOBAL + ASISTENTE IA DE ARTÍCULOS
   ========================================================= */
.global-clock{
  position:fixed;left:14px;bottom:14px;z-index:245;
  display:flex;align-items:center;gap:8px;
  padding:7px 10px;border:1px solid rgba(205,209,214,.95);border-radius:11px;
  background:rgba(255,255,255,.94);backdrop-filter:blur(10px);
  box-shadow:0 7px 24px rgba(20,24,28,.10);color:#1b1f24;
  font-variant-numeric:tabular-nums;user-select:none;pointer-events:none;
}
.global-clock-dot{width:6px;height:6px;border-radius:50%;background:var(--red);box-shadow:0 0 0 3px rgba(226,59,51,.10)}
.global-clock-copy{display:grid;line-height:1}
.global-clock-copy strong{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;font-size:12.5px;letter-spacing:.04em}
.global-clock-copy small{margin-top:3px;color:var(--grey-700);font-size:7.5px;font-weight:700;letter-spacing:.08em;text-align:center}

.article-ai-assistant{margin:18px 0;padding:18px;border:1px solid var(--grey-300);border-radius:17px;background:linear-gradient(180deg,#fff 0%,#fbfbfc 100%);box-shadow:0 8px 28px rgba(20,24,28,.045)}
.article-ai-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
.article-ai-title-wrap{display:flex;align-items:flex-start;gap:12px;min-width:0}
.article-ai-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:#fff0ef;color:var(--red);font-size:20px;border:1px solid #f3d4d1}
.article-ai-title-wrap h2{margin:2px 0 4px;font-size:21px}.article-ai-title-wrap p{margin:0;max-width:720px;color:var(--grey-700);font-size:11px;line-height:1.5}
.article-ai-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.article-ai-status{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;background:#f1f3f4;color:#5f6871;font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}
.article-ai-status.ready{background:#edf8f0;color:#17713a}.article-ai-status.offline{background:#fff2ef;color:#a64235}
.article-ai-clear{min-height:30px!important;padding:5px 9px!important;font-size:9px!important}
.article-ai-messages{height:min(310px,42vh);min-height:180px;overflow:auto;padding:14px;border:1px solid #e4e7e9;border-radius:13px;background:#f7f8f9;scroll-behavior:smooth}
.article-ai-message{display:flex;align-items:flex-start;gap:8px;margin:0 0 11px}.article-ai-message:last-child{margin-bottom:0}.article-ai-message.user{justify-content:flex-end}.article-ai-message.user .article-ai-avatar{order:2;background:#272d33;color:#fff}.article-ai-message.user .article-ai-bubble{background:#272d33;color:#fff;border-color:#272d33}
.article-ai-avatar{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:9px;background:var(--red);color:#fff;font-size:8px;font-weight:900;letter-spacing:.04em}
.article-ai-bubble{max-width:min(82%,760px);padding:10px 12px;border:1px solid #e0e3e6;border-radius:4px 12px 12px 12px;background:#fff;color:#252a30;font-size:11px;line-height:1.55;overflow-wrap:anywhere}.article-ai-message.user .article-ai-bubble{border-radius:12px 4px 12px 12px}
.article-ai-message.thinking .article-ai-bubble{color:#737b83;font-style:italic}
.article-ai-sources{margin-top:8px;padding-top:7px;border-top:1px solid #eceeef;display:grid;gap:4px}.article-ai-sources a{color:#44515c;font-size:9px;text-decoration:underline;text-underline-offset:2px}
.article-ai-suggestions{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.article-ai-suggestions button{border:1px solid #dfe2e5;background:#fff;border-radius:999px;padding:6px 9px;color:#4f5962;font:inherit;font-size:9px;cursor:pointer}.article-ai-suggestions button:hover{border-color:#d9a29d;color:#9f342c;background:#fff8f7}
.article-ai-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.article-ai-form textarea{width:100%;min-height:48px;max-height:140px;box-sizing:border-box;resize:vertical;border:1px solid var(--grey-300);border-radius:11px;padding:10px 12px;background:#fff;color:var(--ink);font:inherit;font-size:11px;line-height:1.45}.article-ai-form textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(226,59,51,.07)}.article-ai-form .btn-primary{min-height:48px;padding-inline:17px}
.article-ai-disclaimer{margin:9px 2px 0;color:#767f87;font-size:8.5px;line-height:1.45}.article-ai-disclaimer strong{color:#555d64}
@media(max-width:700px){.global-clock{left:8px;bottom:8px;padding:6px 8px}.global-clock-copy strong{font-size:11px}.article-ai-assistant{padding:13px}.article-ai-head{flex-direction:column}.article-ai-head-actions{width:100%;justify-content:space-between}.article-ai-form{grid-template-columns:1fr}.article-ai-form .btn-primary{width:100%;min-height:42px}.article-ai-bubble{max-width:88%}.article-ai-messages{height:270px}}
@media print{.global-clock,.article-ai-assistant{display:none!important}}


/* =========================================================
   V15 · ACCESO EXTERNO A CHATGPT
   ========================================================= */
.article-chatgpt-launcher{
  margin:18px 0;
  padding:17px 18px;
  border:1px solid var(--grey-300);
  border-radius:17px;
  background:linear-gradient(180deg,#fff 0%,#fbfbfc 100%);
  box-shadow:0 8px 28px rgba(20,24,28,.045);
}
.article-chatgpt-copy{
  display:flex;
  align-items:flex-start;
  gap:12px;
}
.article-chatgpt-icon{
  display:grid;
  place-items:center;
  flex:0 0 38px;
  width:38px;
  height:38px;
  border-radius:12px;
  background:#fff0ef;
  color:var(--red);
  border:1px solid #f3d4d1;
  font-size:20px;
}
.article-chatgpt-copy h2{margin:2px 0 4px;font-size:20px}
.article-chatgpt-copy p{
  margin:0;
  max-width:760px;
  color:var(--grey-700);
  font-size:11px;
  line-height:1.5;
}
.article-chatgpt-compose{
  margin-top:14px;
  padding:12px;
  border:1px solid #e4e7e9;
  border-radius:13px;
  background:#f7f8f9;
}
.article-chatgpt-compose textarea{
  width:100%;
  min-height:58px;
  box-sizing:border-box;
  resize:vertical;
  border:1px solid var(--grey-300);
  border-radius:11px;
  padding:10px 12px;
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-size:11px;
  line-height:1.45;
}
.article-chatgpt-compose textarea:focus{
  outline:none;
  border-color:var(--red);
  box-shadow:0 0 0 3px rgba(226,59,51,.07);
}
.article-chatgpt-suggestions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin:9px 0 11px;
}
.article-chatgpt-suggestions button{
  border:1px solid #dfe2e5;
  background:#fff;
  border-radius:999px;
  padding:6px 9px;
  color:#4f5962;
  font:inherit;
  font-size:9px;
  cursor:pointer;
}
.article-chatgpt-suggestions button:hover{
  border-color:#d9a29d;
  color:#9f342c;
  background:#fff8f7;
}
.article-chatgpt-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.article-chatgpt-actions .btn-primary{min-height:42px}
.article-chatgpt-copy-status{
  color:#4f5962;
  font-size:9.5px;
  font-weight:700;
}
.article-chatgpt-helper{
  margin:9px 2px 0;
  color:#68717a;
  font-size:8.8px;
  line-height:1.45;
}
.article-chatgpt-disclaimer{
  margin:5px 2px 0;
  color:#767f87;
  font-size:8.5px;
  line-height:1.45;
}
.article-chatgpt-disclaimer strong{color:#555d64}
@media(max-width:700px){
  .article-chatgpt-launcher{padding:13px}
  .article-chatgpt-actions{align-items:stretch;flex-direction:column}
  .article-chatgpt-actions .btn-primary{width:100%}
}
@media print{
  .article-chatgpt-launcher{display:none!important}
}


/* =========================================================
   V15 · PRESUPUESTOS Y PERMISOS POR CLIENTE
   ========================================================= */
.pvp-dual-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pvp-add-budget{min-height:42px}.pvp-add-budget.in-cart{border-color:#2e7d4e;color:#23623d;background:#f1faf5}
.admin-budgets-view{padding-bottom:24px}.budget-workspace{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}.budget-builder-card,.budget-history-card{background:#fff;border:1px solid var(--grey-300);border-radius:15px;padding:16px;box-shadow:0 5px 18px rgba(0,0,0,.025)}.budget-summary-card{grid-column:1/-1}.budget-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:13px}.budget-section-head h2{margin:2px 0 0;font-size:18px}.budget-draft-state,.budget-lines-count{font-size:9px;font-weight:800;color:#737b82;background:#f4f5f6;border:1px solid #e2e4e7;border-radius:999px;padding:5px 8px}.budget-client-mode{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.budget-client-mode label{display:flex;gap:7px;align-items:center;border:1px solid #e1e4e7;border-radius:9px;padding:8px 10px;font-size:10.5px;font-weight:700;cursor:pointer}.budget-client-block{margin-bottom:12px}.budget-client-block label,.budget-form-grid label,.budget-commercial-grid label,.budget-notes{display:grid;gap:5px}.budget-client-block label>span,.budget-form-grid label>span,.budget-commercial-grid label>span,.budget-notes>span{font-size:9.5px;text-transform:uppercase;font-weight:800;color:#68717a}.budget-client-block select,.budget-form-grid input,.budget-commercial-grid input,.budget-commercial-grid select,.budget-notes textarea,.budget-history-filter input,.budget-article-search-wrap input{width:100%;box-sizing:border-box;border:1px solid var(--grey-300);border-radius:9px;background:#fff;padding:9px 10px;font:inherit;font-size:11px}.budget-client-summary{margin-top:8px;padding:9px 10px;border-radius:9px;background:#f7f8f9;color:#535d66;font-size:10px;line-height:1.5}.budget-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.budget-field-wide{grid-column:1/-1}.budget-manual-note,.budget-search-help{font-size:9px;color:#737b82;margin:8px 0 0}.budget-commercial-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:13px;padding-top:13px;border-top:1px solid #eceeef}.budget-article-search-wrap{position:relative}.budget-article-suggestions{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:30;background:#fff;border:1px solid #dfe2e5;border-radius:11px;box-shadow:0 12px 30px rgba(0,0,0,.12);max-height:300px;overflow:auto}.budget-article-suggestion{display:flex;width:100%;border:0;border-bottom:1px solid #edf0f2;background:#fff;padding:9px 10px;align-items:center;justify-content:space-between;gap:12px;text-align:left;cursor:pointer}.budget-article-suggestion:hover{background:#fff7f6}.budget-article-suggestion strong{display:block;font-size:11px}.budget-article-suggestion small{display:block;color:#6d757d;font-size:9px;margin-top:2px}.budget-lines{margin-top:12px;display:grid;gap:7px}.budget-line{display:grid;grid-template-columns:minmax(0,1fr) 110px 110px 34px;gap:8px;align-items:center;border:1px solid #e4e7e9;border-radius:10px;padding:9px}.budget-line-copy strong{display:block;font-size:11px}.budget-line-copy small{display:block;color:#707981;font-size:9px;margin-top:2px}.budget-line input{width:100%;box-sizing:border-box;border:1px solid #dfe2e5;border-radius:8px;padding:7px;font:inherit;font-size:10px;text-align:center}.budget-line-price{text-align:right;font-size:10px;font-weight:800}.budget-line-remove{width:34px;height:34px;border-radius:8px;border:1px solid #f1d0cd;background:#fff7f6;color:#a43a32;cursor:pointer}.budget-empty-lines{padding:17px;border:1px dashed #d9dde0;border-radius:10px;color:#727b82;font-size:10px;text-align:center}.budget-totals{margin-left:auto;margin-top:14px;max-width:510px;display:grid;gap:7px}.budget-totals>div{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:11px}.budget-totals strong{font-size:12px}.budget-total-main{border-top:2px solid var(--red);padding-top:10px;margin-top:4px}.budget-total-main span,.budget-total-main strong{font-size:16px;font-weight:800}.budget-save-row{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin-top:15px}.budget-save-row small{color:#717981;font-size:9px}.budget-history-card{margin-top:15px}.budget-history-filter{margin-bottom:10px}.budget-history-list{display:grid;gap:8px}.budget-history-item{border:1px solid #e2e5e7;border-radius:11px;padding:11px 12px}.budget-history-headline{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.budget-history-headline strong{font-size:12px}.budget-history-headline span{font-size:9px;color:#727a81}.budget-history-total{text-align:right}.budget-history-total strong{display:block;font-size:14px}.budget-history-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.budget-history-meta span{font-size:8.5px;background:#f5f6f7;border-radius:999px;padding:4px 7px;color:#5c656c}.budget-history-actions{display:flex;gap:8px;margin-top:9px}.budget-history-lines-detail{margin-top:8px;padding-top:8px;border-top:1px solid #eceeef;font-size:9px;color:#59636b;line-height:1.6}
.client-permissions-panel{margin:12px 0;border:1px solid #dfe2e5;border-radius:12px;background:#fbfbfc}.client-permissions-panel summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;cursor:pointer}.client-permissions-panel summary::-webkit-details-marker{display:none}.client-permissions-panel summary strong{display:block;font-size:11px}.client-permissions-panel summary span:not(.permissions-summary-pill){display:block;color:#737c83;font-size:9px;margin-top:2px}.permissions-summary-pill{white-space:nowrap;background:#eef1f3;border-radius:999px;padding:5px 8px;color:#5c666e;font-size:8.5px;font-weight:800}.client-permissions-groups{padding:0 12px 12px}.permission-group{padding:11px 0;border-top:1px solid #e8eaec}.permission-group h4{margin:0 0 8px;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#4d565d}.permission-switches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.permission-switch{display:grid;grid-template-columns:32px minmax(0,1fr);gap:8px;align-items:start;border:1px solid #e5e7e9;border-radius:9px;padding:8px;background:#fff;cursor:pointer}.permission-switch input{position:absolute;opacity:0;pointer-events:none}.permission-switch-ui{position:relative;width:30px;height:17px;border-radius:999px;background:#c9cdd1;margin-top:2px;transition:.15s}.permission-switch-ui:after{content:'';position:absolute;width:13px;height:13px;border-radius:50%;background:#fff;left:2px;top:2px;box-shadow:0 1px 3px rgba(0,0,0,.18);transition:.15s}.permission-switch input:checked+.permission-switch-ui{background:#2f8a55}.permission-switch input:checked+.permission-switch-ui:after{transform:translateX(13px)}.permission-switch-copy strong{display:block;font-size:9.5px}.permission-switch-copy small{display:block;font-size:8px;color:#778087;line-height:1.35;margin-top:2px}.permissions-live-note{margin:10px 0 0;padding:8px 10px;background:#f1f7f3;border-radius:8px;color:#41604c;font-size:8.7px}
/* Permisos cliente: ocultación de interfaz. Las acciones críticas se validan también en PHP. */
body.role-client.perm-off-access-maintenance #maintenance-view,body.role-client.perm-off-access-maintenance [data-tool-tab="maintenance"]{display:none!important}body.role-client.perm-off-access-article-search #pvp-view,body.role-client.perm-off-access-article-search [data-tool-tab="pvp"]{display:none!important}body.role-client.perm-off-access-orders-panel #my-orders-view,body.role-client.perm-off-access-orders-panel [data-tool-tab="my-orders"]{display:none!important}body.role-client.perm-off-access-cart #cart-toggle,body.role-client.perm-off-access-cart #cart-overlay{display:none!important}body.role-client.perm-off-access-chatgpt #article-chatgpt-launcher{display:none!important}body.role-client.perm-off-access-exploded-parts #exploded-parts{display:none!important}body.role-client.perm-off-allow-place-orders #cart-submit-order{display:none!important}body.role-client.perm-off-allow-cancel-orders [data-order-action="cancel_client"]{display:none!important}body.role-client.perm-off-allow-credit-requests [data-order-action="request_credit_client"]{display:none!important}body.role-client.perm-off-allow-download-order [data-print-order]{display:none!important}body.role-client.perm-off-allow-download-delivery-note [data-download-doc="delivery_note"]{display:none!important}body.role-client.perm-off-allow-download-invoice [data-download-doc="invoice"]{display:none!important}body.role-client.perm-off-allow-download-credit-note [data-download-doc="credit_note"]{display:none!important}body.role-client.perm-off-allow-prepare-email #cart-send{display:none!important}body.role-client.perm-off-allow-prepare-whatsapp #cart-whatsapp{display:none!important}body.role-client.perm-off-allow-print-cart #cart-print{display:none!important}body.role-client.perm-off-show-prices .pvp-selected-price,body.role-client.perm-off-show-prices .pvp-suggestion-price,body.role-client.perm-off-show-prices .part-price,body.role-client.perm-off-show-prices .cart-price,body.role-client.perm-off-show-prices .cart-summary{display:none!important}body.role-client.perm-off-show-discounts #account-discount,body.role-client.perm-off-show-discounts #cart-discount-row,body.role-client.perm-off-show-discounts #cart-order-type-box .order-type-discount,body.role-client.perm-off-show-discounts .account-urgent-card,body.role-client.perm-off-show-discounts .account-stock-card{display:none!important}body.role-client.perm-off-show-vat #cart-vat-label,body.role-client.perm-off-show-vat #cart-iva{visibility:hidden!important}body.role-client.perm-off-show-vat .account-vat-card{display:none!important}body.role-client.perm-off-allow-urgent-orders [data-order-type-card="urgent"]{display:none!important}body.role-client.perm-off-allow-stock-orders [data-order-type-card="stock"]{display:none!important}
@media(max-width:900px){.budget-workspace{grid-template-columns:1fr}.budget-summary-card{grid-column:auto}.budget-commercial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.permission-switches{grid-template-columns:1fr}}@media(max-width:580px){.budget-form-grid,.budget-commercial-grid{grid-template-columns:1fr}.budget-field-wide{grid-column:auto}.budget-line{grid-template-columns:1fr 74px 88px 34px}.budget-history-headline{flex-direction:column}.budget-history-total{text-align:left}}


/* V17 · descuentos de presupuesto por modalidad */
.budget-commercial-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.budget-commercial-grid input[readonly]{background:#f4f5f6;color:#49535b;font-weight:800;cursor:default}
.budget-discount-help{margin:8px 0 0;font-size:9px;color:#68717a;line-height:1.5}
.budget-client-discounts{display:inline-block;margin-top:3px;color:#505a62}
@media(max-width:1050px){.budget-commercial-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* =========================================================
   V17 · SUITE COMERCIAL / CRM / PROCESOS
   ========================================================= */
.crm-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px;margin:14px 0 18px}.crm-stat{background:#fff;border:1px solid var(--grey-300);border-radius:14px;padding:13px 14px;box-shadow:0 5px 18px rgba(20,24,28,.035);display:flex;flex-direction:column;gap:4px}.crm-stat span{font-size:9px;text-transform:uppercase;letter-spacing:.045em;color:var(--grey-700);font-weight:800}.crm-stat strong{font-size:18px;color:var(--ink)}.crm-stat small{font-size:8.8px;color:var(--grey-700)}.crm-stat-grid.compact{grid-template-columns:repeat(auto-fit,minmax(105px,1fr));margin:9px 0}.crm-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.crm-panel{background:#fff;border:1px solid var(--grey-300);border-radius:16px;padding:16px;margin-bottom:14px}.crm-ranking{display:grid;gap:6px}.crm-ranking-row{width:100%;border:1px solid #e5e8ea;background:#fafbfb;border-radius:10px;padding:9px 10px;display:grid;grid-template-columns:1fr auto;gap:3px 10px;text-align:left;color:var(--ink);font:inherit}.crm-ranking-row button{cursor:pointer}.crm-ranking-row span{font-size:10px}.crm-ranking-row strong{font-size:10px}.crm-ranking-row small{grid-column:1/-1;font-size:8.5px;color:#6d747b}.crm-ranking button.crm-ranking-row{cursor:pointer}.crm-ranking button.crm-ranking-row:hover{border-color:#deb3b0;background:#fff7f6}

.quote-status{display:inline-flex!important;align-items:center;justify-content:center;border-radius:999px;padding:4px 8px!important;font-size:8px!important;font-weight:800!important;text-transform:uppercase;letter-spacing:.03em}.quote-status-issued{background:#eef2f5;color:#4f5962}.quote-status-sent{background:#eef5ff;color:#315c8f}.quote-status-accepted{background:#edf8ef;color:#26713c}.quote-status-rejected{background:#fff0ef;color:#a3332c}.quote-status-expired{background:#f3f0eb;color:#7c6848}.quote-status-converted{background:#edf8ef;color:#17642e}.budget-history-status,.budget-status-select{border:1px solid var(--grey-300);background:#fff;border-radius:9px;padding:7px 9px;font:inherit;font-size:9px;color:var(--ink)}.budget-history-filter{display:flex;gap:8px;align-items:center}.budget-history-filter input{flex:1}.budget-history-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.conversion-link{font-size:9px;color:#26713c;background:#edf8ef;border-radius:999px;padding:6px 8px}.client-quote-card details summary{cursor:pointer;font-size:9px;margin-top:8px}

.client-commercial-tools{margin:16px 0;padding:15px;border:1px solid var(--grey-300);background:#fff;border-radius:16px}.commercial-tools-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:12px}.commercial-tools-head h2{margin:2px 0 0;font-size:18px}.commercial-tools-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.commercial-tools-grid>div{background:#f8f9fa;border:1px solid #e7e9eb;border-radius:12px;padding:11px}.commercial-tools-grid h3{font-size:11px;margin:0 0 8px}.commercial-mini-list{display:grid;gap:6px}.commercial-mini-item{width:100%;border:1px solid #e2e5e7;background:#fff;border-radius:9px;padding:8px 9px;text-align:left;display:flex;flex-direction:column;gap:2px;font:inherit;cursor:pointer}.commercial-mini-item.static{cursor:default}.commercial-mini-item strong{font-size:9.5px}.commercial-mini-item span,.commercial-mini-item small{font-size:8.4px;color:#68717a}.commercial-mini-item:hover:not(.static){border-color:#d7aaa6;background:#fff9f8}

.client-assets-panel,.client-permissions-panel{margin-top:12px;border:1px solid #dfe3e5;border-radius:13px;background:#fbfcfc;overflow:hidden}.client-assets-panel summary,.client-permissions-panel summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px}.client-assets-panel summary::-webkit-details-marker,.client-permissions-panel summary::-webkit-details-marker{display:none}.client-assets-panel summary>div,.client-permissions-panel summary>div{display:flex;flex-direction:column;gap:2px}.client-assets-panel summary strong{font-size:10px}.client-assets-panel summary span{font-size:8.5px;color:#6b737b}.client-assets-body{padding:0 13px 13px}.client-asset-row{display:grid;grid-template-columns:1fr .8fr 1fr 1fr 1.4fr auto;gap:7px;align-items:end;border-top:1px solid #eceeef;padding:10px 0}.client-asset-row label{display:flex;flex-direction:column;gap:4px}.client-asset-row label span{font-size:7.8px;font-weight:700;color:#5f676e}.client-asset-row input{width:100%;box-sizing:border-box;border:1px solid #d9dde0;border-radius:8px;padding:7px 8px;font:inherit;font-size:8.8px}.client-assets-empty{padding:10px 0;color:#747c83;font-size:9px}.client-360-launch{margin-top:12px}.client-360-panel{margin-top:9px;border:1px solid #dfe3e5;background:#fff;border-radius:14px;padding:14px}.client-360-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.client-360-head h3{margin:2px 0 0}.client-360-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.client-360-grid section{border:1px solid #e6e9eb;background:#fafbfb;border-radius:11px;padding:10px}.client-360-grid h4{font-size:9.5px;margin:0 0 7px;text-transform:uppercase;letter-spacing:.03em}.mini-data-card{display:flex;flex-direction:column;gap:2px;border-top:1px solid #eceeef;padding:6px 0}.mini-data-card:first-of-type{border-top:0}.mini-data-card strong{font-size:9px}.mini-data-card span,.mini-data-card small{font-size:8px;color:#697178}

.task-editor{border:1px solid #e1e5e7;background:#f8f9fa;border-radius:12px;padding:11px;margin-bottom:10px}.task-edit-grid{display:grid;grid-template-columns:2fr 1fr;gap:9px}.task-edit-grid label{display:flex;flex-direction:column;gap:4px}.task-edit-grid span{font-size:8px;font-weight:700}.task-edit-grid input,.task-edit-grid textarea{border:1px solid #d8dcdf;background:#fff;border-radius:8px;padding:8px;font:inherit;font-size:9px}.task-wide{grid-column:1/-1}.task-edit-actions{display:flex;gap:7px;margin-top:8px}.task-list{display:grid;gap:7px}.task-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #e3e6e8;background:#fbfcfc;border-radius:11px;padding:9px 10px}.task-row>div:first-child{display:flex;flex-direction:column;gap:2px}.task-row strong{font-size:9.5px}.task-row span,.task-row small{font-size:8px;color:#68717a}.task-row.task-done{opacity:.65}.task-row-actions{display:flex;gap:6px}

.article-import-card{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;border:1px solid var(--grey-300);background:#fff;border-radius:16px;padding:15px;margin-bottom:14px}.article-import-card h2{font-size:17px;margin:2px 0 3px}.article-import-card p{font-size:9px;color:#677078;margin:0}.article-import-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.article-import-actions input{font-size:8px;max-width:260px}.article-margin-summary{margin-top:12px}.margin-comparator-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:7px}.margin-comparator-head strong{font-size:9.5px}.margin-comparator-head span{font-size:8.5px;color:#666f77}.margin-comparator-table{display:grid;border:1px solid #e2e5e7;border-radius:10px;overflow:hidden}.margin-row{display:grid;grid-template-columns:1.1fr 1fr .8fr .55fr .85fr .8fr .7fr;gap:8px;padding:7px 8px;border-top:1px solid #eceeef;align-items:center}.margin-row:first-child{border-top:0}.margin-row span{font-size:8px}.margin-header{background:#f4f6f7;font-weight:800;color:#555e66}.margin-row.best-cost{background:#f0f8f1}.margin-row.best-cost span:first-child:after{content:' · mejor coste';font-size:7px;color:#297640}.price-history-list{display:grid;gap:5px}.price-history-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;border-bottom:1px solid #eceeef;padding:6px 0}.price-history-row span,.price-history-row strong,.price-history-row small{font-size:8.4px}

.settings-extra-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.settings-extra-card{border:1px solid var(--grey-300);background:#fff;border-radius:15px;padding:15px}.settings-extra-card h2{margin:2px 0 5px;font-size:17px}.settings-extra-card p{font-size:9px;color:#68717a}.staff-editor{border:1px solid #e1e4e7;background:#f8f9fa;border-radius:11px;padding:10px;margin:9px 0}.staff-new-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.staff-new-grid label,.staff-card>label{display:flex;flex-direction:column;gap:4px}.staff-new-grid span,.staff-card label>span{font-size:8px;font-weight:700}.staff-new-grid input,.staff-new-grid select,.staff-card select{border:1px solid #d8dcdf;border-radius:8px;background:#fff;padding:7px;font:inherit;font-size:8.8px}.staff-editor-actions{display:flex;gap:7px;margin-top:8px}.staff-list{display:grid;gap:8px;margin-top:10px}.staff-card{border:1px solid #e2e5e7;background:#fafbfb;border-radius:11px;padding:10px}.staff-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}.staff-card-head>div{display:flex;flex-direction:column}.staff-card-head strong{font-size:9.5px}.staff-card-head span{font-size:8px;color:#68717a}.staff-permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:8px 0}

.pvp-commercial-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.pvp-commercial-pill{display:inline-flex;border:1px solid #e0e3e5;border-radius:999px;padding:4px 7px;background:#f7f8f9;font-size:8px;color:#596168}.pvp-commercial-pill.available{background:#eef8f0;color:#286c3b}.pvp-commercial-pill.replacement{background:#fff4e8;color:#805526}

@media(max-width:980px){.crm-dashboard-grid,.settings-extra-grid,.client-360-grid{grid-template-columns:1fr}.client-asset-row{grid-template-columns:1fr 1fr}.client-asset-row .asset-notes{grid-column:1/-1}.margin-row{grid-template-columns:1fr 1fr 1fr 1fr}.margin-row span:nth-child(n+5){grid-row:auto}.article-import-card{align-items:stretch;flex-direction:column}.article-import-actions{justify-content:flex-start}}
@media(max-width:650px){.task-edit-grid,.staff-new-grid,.staff-permission-grid{grid-template-columns:1fr}.client-asset-row{grid-template-columns:1fr}.budget-history-filter{flex-direction:column;align-items:stretch}.budget-history-actions>*{width:100%}.margin-comparator-table{overflow-x:auto}.margin-row{min-width:620px}.crm-stat-grid{grid-template-columns:1fr 1fr}}
.budget-margin-summary{margin-top:12px;border:1px dashed #cfd7d3;background:#f8fbf8;border-radius:12px;padding:11px}.budget-margin-head{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center}.budget-margin-head>div{display:flex;flex-direction:column;gap:2px}.budget-margin-head span{font-size:8px;color:#697178}.budget-margin-head strong{font-size:9.5px}.budget-margin-warning{font-size:8px;color:#875b2a;margin:7px 0}.budget-margin-summary details summary{cursor:pointer;font-size:8.5px;margin-top:7px}.budget-margin-lines{display:grid;gap:4px;margin-top:6px}.budget-margin-lines>div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #e5ebe6;padding-top:5px}.budget-margin-lines span,.budget-margin-lines strong{font-size:8px}.commercial-meta-pill{display:inline-flex;border:1px solid #e0e3e5;border-radius:999px;padding:4px 7px;background:#f7f8f9;font-size:8px;color:#596168}.commercial-meta-pill.replacement{background:#fff4e8;color:#805526}
@media(max-width:700px){.budget-margin-head{grid-template-columns:1fr}.budget-margin-lines>div{flex-direction:column;gap:2px}}

/* ===== V19 · Suite comercial y administrativa ===== */
.enterprise-top-tools{display:flex;align-items:center;gap:8px;position:relative;margin-left:auto;margin-right:8px}.enterprise-search-wrap{position:relative;min-width:320px}.enterprise-search-wrap>input{width:100%;height:38px;border:1px solid #d8dde5;border-radius:10px;padding:0 62px 0 12px;background:#fff;font-size:12px}.enterprise-search-wrap>kbd{position:absolute;right:8px;top:8px;border:1px solid #d7dce4;border-radius:6px;padding:3px 6px;background:#f7f8fa;color:#687080;font-size:9px}.enterprise-search-results{position:absolute;z-index:1200;top:44px;left:0;width:min(520px,80vw);max-height:68vh;overflow:auto;background:#fff;border:1px solid #dfe3e9;border-radius:12px;box-shadow:0 18px 50px rgba(10,20,35,.16);padding:8px}.enterprise-search-results section h4{margin:8px 8px 4px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#777}.enterprise-search-results button{width:100%;display:flex;flex-direction:column;gap:2px;text-align:left;border:0;background:transparent;padding:9px 10px;border-radius:8px}.enterprise-search-results button:hover{background:#f4f6f8}.enterprise-search-results strong{font-size:12px}.enterprise-search-results small{font-size:10px;color:#6c7480}.enterprise-bell{position:relative;width:38px;height:38px;border-radius:10px;border:1px solid #d8dde5;background:#fff;cursor:pointer}.enterprise-bell b{position:absolute;right:-5px;top:-6px;min-width:18px;height:18px;border-radius:9px;background:#d71f2b;color:#fff;display:grid;place-items:center;font-size:9px;padding:0 4px}.enterprise-notification-panel{position:absolute;z-index:1250;right:0;top:46px;width:min(410px,92vw);max-height:72vh;overflow:auto;background:#fff;border:1px solid #dfe3e9;border-radius:14px;box-shadow:0 20px 55px rgba(10,20,35,.18);padding:10px}.enterprise-notify-head,.enterprise-notify-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px}.enterprise-notify-head div{display:flex;flex-direction:column}.enterprise-notify-head small{color:#777}.enterprise-notification-panel article{display:flex;flex-direction:column;gap:3px;padding:10px 8px;border-top:1px solid #edf0f3}.enterprise-notification-panel article.read{opacity:.65}.enterprise-notification-panel article strong{font-size:11px}.enterprise-notification-panel article span,.enterprise-notification-panel article small{font-size:10px;color:#666}.enterprise-notify-head button,.enterprise-notify-foot button{border:1px solid #d8dde5;background:#fff;border-radius:8px;padding:6px 8px;font-size:10px}.enterprise-empty{padding:16px;text-align:center;color:#7a818b;font-size:11px}.enterprise-toast{position:fixed;z-index:9999;right:18px;bottom:18px;max-width:420px;padding:12px 16px;border-radius:10px;background:#171b22;color:#fff;box-shadow:0 12px 34px rgba(0,0,0,.25);transform:translateY(20px);opacity:0;pointer-events:none;transition:.2s}.enterprise-toast.show{transform:none;opacity:1}.enterprise-toast.success{background:#166534}.enterprise-toast.error{background:#991b1b}.enterprise-internal-note{border-left:3px solid #e1aa00;padding-left:12px}.budget-line-mini{display:flex;flex-direction:column;gap:2px}.budget-line-mini span{font-size:8px;color:#777}.budget-line-mini input{width:85px}.enterprise-dashboard{margin:18px 0 28px;background:#fff;border:1px solid #e1e5ea;border-radius:16px;padding:16px}.enterprise-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.enterprise-kpis article{padding:14px;border:1px solid #e5e8ec;border-radius:12px;background:#fafbfc;display:flex;flex-direction:column;gap:4px}.enterprise-kpis span{font-size:10px;color:#6b7280}.enterprise-kpis strong{font-size:19px}.enterprise-kpis small{font-size:9px;color:#777}.enterprise-analysis-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0 10px}.enterprise-analysis-toolbar select,.enterprise-analysis-toolbar input{height:34px;border:1px solid #d7dce3;border-radius:8px;padding:0 8px}.enterprise-table{overflow:auto;border:1px solid #e4e7eb;border-radius:10px}.enterprise-table>div{display:grid;grid-template-columns:2fr repeat(5,1fr);gap:8px;padding:8px 10px;border-top:1px solid #edf0f2;font-size:10px;min-width:720px}.enterprise-table>div:first-child{border-top:0}.enterprise-table-head{font-weight:700;background:#f4f6f8}.enterprise-commercial-performance{margin-top:14px}.enterprise-commercial-performance summary{cursor:pointer;font-weight:700}.enterprise-settings-wide{grid-column:1/-1}.enterprise-settings-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.enterprise-settings-form label{display:flex;flex-direction:column;gap:5px;font-size:10px}.enterprise-settings-form .wide{grid-column:1/-1}.enterprise-settings-form textarea{min-height:70px;resize:vertical}.enterprise-settings-form input,.enterprise-settings-form textarea,.settings-extra-card select{border:1px solid #d8dde5;border-radius:8px;padding:8px;background:#fff}.enterprise-inline-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.enterprise-check{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:10px}.enterprise-check small{color:#a16207}.enterprise-session{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #eceff2}.enterprise-session div{display:flex;flex-direction:column}.enterprise-session span,.enterprise-session small{font-size:9px;color:#737b86}.enterprise-select-record{display:flex;align-items:center;gap:5px;font-size:9px;color:#6b7280;margin-bottom:4px}.enterprise-order-tools{margin-top:10px;border-top:1px dashed #d8dde5;padding-top:8px}.enterprise-order-tools summary{cursor:pointer;font-weight:700;font-size:10px}.enterprise-order-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}.enterprise-order-grid textarea{width:100%;min-height:70px}.enterprise-order-grid button,.enterprise-payment-box button{border:1px solid #d6dce3;border-radius:7px;background:#fff;padding:6px 8px;cursor:pointer}.enterprise-timeline{display:flex;flex-direction:column;gap:7px;margin-top:7px}.enterprise-timeline div{display:grid;grid-template-columns:120px 1fr;gap:8px;font-size:9px}.enterprise-timeline time{color:#777}.enterprise-payment-box{display:flex;flex-direction:column;gap:7px}.enterprise-payment-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #eee;padding:4px 0;font-size:9px}.enterprise-bulk-bar{position:sticky;top:6px;z-index:20;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 10px;margin-bottom:10px;border:1px solid #e1e5e9;border-radius:10px;background:rgba(255,255,255,.96);box-shadow:0 5px 16px rgba(0,0,0,.06)}.enterprise-bulk-bar select,.enterprise-bulk-bar button{height:32px;border:1px solid #d8dde5;border-radius:7px;background:#fff;padding:0 8px;font-size:9px}.enterprise-modal{position:fixed;z-index:10000;inset:0;background:rgba(8,13,20,.5);display:grid;place-items:center;padding:20px}.enterprise-modal>section{width:min(760px,96vw);max-height:88vh;overflow:auto;background:#fff;border-radius:16px;padding:16px}.enterprise-modal header{display:flex;justify-content:space-between;align-items:flex-start}.enterprise-modal header button{border:0;background:transparent;font-size:24px;cursor:pointer}.enterprise-attachment{display:flex;justify-content:space-between;gap:10px;padding:9px;border-bottom:1px solid #edf0f2}.enterprise-attachment div:first-child{display:flex;flex-direction:column}.enterprise-attachment small{font-size:9px;color:#777}.enterprise-upload{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid #e8ebee}.enterprise-upload small{width:100%;color:#777}.enterprise-highlight{outline:3px solid rgba(215,31,43,.25);transition:.3s}
@media(max-width:900px){.enterprise-search-wrap{min-width:180px}.enterprise-kpis{grid-template-columns:1fr 1fr}.enterprise-order-grid{grid-template-columns:1fr}.enterprise-settings-form{grid-template-columns:1fr}.enterprise-settings-form .wide{grid-column:auto}.enterprise-top-tools{order:3;width:100%;margin:6px 0}.enterprise-search-wrap{flex:1}.enterprise-table>div{min-width:650px}}
@media(max-width:560px){.enterprise-kpis{grid-template-columns:1fr}.enterprise-search-wrap>kbd{display:none}.enterprise-search-wrap>input{padding-right:10px}}
.enterprise-mandatory-box{margin-top:14px;padding:14px;border:1px solid var(--border,#d8dde5);border-radius:12px;background:rgba(127,127,127,.04)}
.enterprise-mandatory-box>strong{display:block;margin-bottom:8px}
.budget-response-audit{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:10px;padding:9px 11px;border-radius:9px;background:rgba(20,110,72,.07);font-size:12px}
#ent-bulk-article-refs{width:100%;min-height:86px;margin:8px 0}

/* V19 · NOTIFICACIONES WEB PUSH / PWA */
.enterprise-push-status{margin-top:10px;border:1px solid #e2e5e8;border-radius:12px;background:#f8f9fa;padding:11px 12px;font-size:10px;color:#59636c;line-height:1.55}
.enterprise-push-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.enterprise-push-summary strong{font-size:11px;color:#252a2e}
.enterprise-push-device{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid #e7eaec}
.enterprise-push-device:first-of-type{border-top:0}
.enterprise-push-device small{display:block;color:#788088;margin-top:2px}
.enterprise-cron-help{margin-top:10px;padding-top:10px;border-top:1px solid #e1e5e8}
.enterprise-cron-help code{display:block;margin-top:6px;padding:8px 9px;border-radius:8px;background:#fff;border:1px solid #dfe3e6;color:#333;font-size:9px;overflow-wrap:anywhere;word-break:break-all;user-select:all}
@media(max-width:700px){.enterprise-push-device{align-items:flex-start;flex-direction:column}}
/* V20 · Compras */
.purchase-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px}.purchase-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:18px 0}.purchase-kpis article,.purchase-card,.purchase-order-card{background:#fff;border:1px solid #e2e5ea;border-radius:14px;padding:16px}.purchase-kpis span,.purchase-card small,.purchase-order-card small{display:block;color:#69717d;font-size:.82rem}.purchase-kpis strong{display:block;font-size:1.45rem;margin-top:6px}.purchase-section{margin:24px 0}.purchase-section>header{display:flex;align-items:end;justify-content:space-between;margin-bottom:10px}.purchase-table{overflow:auto;border:1px solid #e2e5ea;border-radius:12px}.purchase-table>div{display:grid;grid-template-columns:42px minmax(220px,2fr) repeat(6,minmax(90px,1fr));gap:8px;padding:10px 12px;border-bottom:1px solid #edf0f3;align-items:center;min-width:950px}.purchase-table.history>div{grid-template-columns:150px 1.4fr 1.5fr 70px 120px 120px;min-width:800px}.purchase-table .head{font-weight:700;background:#f6f7f9}.purchase-table small{display:block;color:#737b86}.purchase-card{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.purchase-order-card{margin-bottom:12px}.purchase-order-card header,.purchase-order-card footer{display:flex;justify-content:space-between;gap:8px;align-items:center}.purchase-order-card footer{justify-content:flex-end;margin-top:12px}.purchase-lines{margin-top:10px;border-top:1px solid #eee}.purchase-lines>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid #f0f1f3}.purchase-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.purchase-form-grid label,.purchase-modal>label{display:flex;flex-direction:column;gap:5px}.purchase-form-grid .wide{grid-column:1/-1}.purchase-form-grid input,.purchase-form-grid textarea,.purchase-modal input,.purchase-modal select,.purchase-modal textarea{padding:10px;border:1px solid #ccd2d9;border-radius:8px}.purchase-create-lines>div{display:grid;grid-template-columns:1.5fr .7fr 1fr 1fr;gap:10px;align-items:end;padding:10px 0;border-bottom:1px solid #eee}.purchase-modal footer{margin-top:14px;display:flex;justify-content:flex-end}@media(max-width:760px){.purchase-form-grid{grid-template-columns:1fr}.purchase-form-grid .wide{grid-column:auto}.purchase-create-lines>div{grid-template-columns:1fr 1fr}.purchase-order-card header,.purchase-lines>div{align-items:flex-start;flex-direction:column}}

/* V20 JSON · personalización documental unificada */
.enterprise-doc-intro{margin:8px 0 10px;line-height:1.55}.enterprise-doc-scope{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 14px}.enterprise-doc-scope span{display:inline-flex;align-items:center;border:1px solid #e0e4e9;background:#f7f8fa;border-radius:999px;padding:6px 10px;font-size:9px;font-weight:700}.enterprise-doc-logo-row{display:grid;grid-template-columns:220px 1fr;gap:16px;align-items:center;padding:13px;border:1px solid #e1e5e9;background:#fafbfc;border-radius:12px;margin-bottom:12px}.enterprise-doc-logo-preview{height:105px;background:#fff;border:1px solid #dfe3e8;border-radius:10px;display:flex;align-items:center;justify-content:center;position:relative;padding:12px}.enterprise-doc-logo-preview img{max-width:100%;max-height:72px;object-fit:contain}.enterprise-doc-logo-preview span{position:absolute;left:8px;bottom:6px;font-size:8px;color:#7b838e}.enterprise-doc-file-label{display:flex;flex-direction:column;gap:6px;font-size:10px}.enterprise-doc-file-label small,.enterprise-settings-form label small{font-size:9px;color:#6f7782;line-height:1.4}.enterprise-doc-help{margin:12px 0;padding:12px 14px;border-left:4px solid #e23b33;background:#fff7f6;border-radius:8px;font-size:10px}.enterprise-doc-help ol{margin:7px 0 0 18px;padding:0;line-height:1.55}.enterprise-doc-save-state{display:inline-block;margin-left:10px;font-size:9px;color:#5f6874}.enterprise-settings-form label strong{font-size:10px}.enterprise-settings-form textarea{line-height:1.45}
@media(max-width:700px){.enterprise-doc-logo-row{grid-template-columns:1fr}.enterprise-doc-logo-preview{height:90px}.enterprise-doc-save-state{display:block;margin:8px 0 0}}

/* V20 JSON R2 · submenús y Compras reorganizado */
.module-subnav{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0 18px;padding:7px;background:#fff;border:1px solid #dfe3e8;border-radius:12px;position:sticky;top:58px;z-index:18;box-shadow:0 4px 16px rgba(0,0,0,.03)}
.module-subnav button{border:0;background:transparent;border-radius:8px;padding:9px 12px;font:inherit;font-size:10px;font-weight:800;cursor:pointer;color:#4c5660}.module-subnav button:hover{background:#f4f5f7}.module-subnav button.active{background:var(--red);color:#fff}.module-subpanel.hidden{display:none!important}.admin-purchases-view{padding-bottom:28px}.purchase-page-heading{margin-bottom:0}
.purchase-dashboard-help{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}.purchase-dashboard-help article{background:#fff;border:1px solid #e1e5e9;border-radius:14px;padding:15px;display:flex;flex-direction:column;gap:8px}.purchase-dashboard-help strong{font-size:13px}.purchase-dashboard-help span{font-size:10px;color:#66707b;line-height:1.5;flex:1}.purchase-dashboard-help button{align-self:flex-start}
.purchase-section>header p{margin:4px 0 0;font-size:10px;color:#6b7480;max-width:720px;line-height:1.45}.purchase-manual-note{background:#fff7f6;border-left:4px solid var(--red);padding:10px 12px;border-radius:8px;font-size:10px;line-height:1.5;margin:0 0 14px}.purchase-manual-lines-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0 7px;padding-top:12px;border-top:1px solid #eceff2}.purchase-manual-lines-head small{display:block;color:#737c87;margin-top:2px}.purchase-manual-line{display:grid;grid-template-columns:1.1fr 2fr 80px 110px 90px 36px;gap:7px;align-items:end;padding:9px 0;border-bottom:1px solid #edf0f3}.purchase-manual-line label{display:grid;gap:4px;font-size:9px;font-weight:700;color:#626c77}.purchase-manual-line input{width:100%;box-sizing:border-box}.purchase-manual-line [data-remove-line]{height:38px;border:1px solid #efcecb;background:#fff7f6;color:#a43a32;border-radius:8px;font-size:18px;cursor:pointer}.purchase-modal footer{gap:8px}.purchase-receipt-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.purchase-receipt-grid>section{background:#fff;border:1px solid #e2e5ea;border-radius:14px;padding:14px}.purchase-receipt-grid h3{margin:0 0 10px}.purchase-receipt-grid article{padding:9px 0;border-bottom:1px solid #edf0f3}.purchase-receipt-grid article strong,.purchase-receipt-grid article span,.purchase-receipt-grid article small{display:block}.purchase-receipt-grid article span{font-size:10px;margin-top:2px}.purchase-receipt-grid article small{font-size:9px;color:#707985;margin-top:3px}
@media(max-width:900px){.purchase-dashboard-help{grid-template-columns:1fr}.purchase-manual-line{grid-template-columns:1fr 1.5fr 70px 90px 80px 36px}.purchase-receipt-grid{grid-template-columns:1fr}.module-subnav{position:static}}
@media(max-width:650px){.purchase-manual-line{grid-template-columns:1fr 1fr}.purchase-manual-line .desc{grid-column:1/-1}.purchase-manual-line [data-remove-line]{width:100%}}
.purchase-catalog-picker{margin:12px 0 14px;padding:12px;border:1px solid #dfe3e8;border-radius:10px;background:#f8fafb;position:relative}.purchase-catalog-picker label{display:grid;gap:6px}.purchase-catalog-picker input{width:100%;box-sizing:border-box}.purchase-catalog-picker>small{display:block;margin-top:7px;color:#69717b}.purchase-catalog-results{margin-top:8px;display:grid;gap:5px;max-height:260px;overflow:auto;border-top:1px solid #e2e5e8;padding-top:8px}.purchase-catalog-results button{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(180px,1.5fr) auto;gap:10px;align-items:center;width:100%;text-align:left;border:1px solid #e1e4e8;background:#fff;border-radius:8px;padding:8px 10px;cursor:pointer}.purchase-catalog-results button:hover{border-color:#e23b33;background:#fff8f7}.purchase-catalog-results button small{white-space:nowrap;color:#66707a}.purchase-catalog-results p{margin:4px 0;color:#69717b}@media(max-width:760px){.purchase-catalog-results button{grid-template-columns:1fr}.purchase-catalog-results button small{white-space:normal}}


/* V20 JSON R4 · reorganización de interfaz */
.admin-client-filters{grid-template-columns:minmax(260px,1fr) 190px 260px;align-items:center}.admin-client-list-help{margin:-2px 0 10px;display:flex;justify-content:space-between;gap:12px;color:var(--grey-700);font-size:10px}.admin-client-list-help span:first-child{font-weight:900;color:var(--ink)}.admin-user-card-v2{padding:0;overflow:hidden}.admin-user-card-v2>summary.admin-user-summary{padding:11px 14px;border:0;cursor:pointer;list-style:none;transition:background .15s ease}.admin-user-card-v2>summary.admin-user-summary::-webkit-details-marker{display:none}.admin-user-card-v2>summary.admin-user-summary:hover{background:#f8f9fa}.admin-user-card-v2[open]>summary.admin-user-summary{background:#fafafa;border-bottom:1px solid var(--grey-300)}.admin-user-card-v2 .admin-user-title{align-items:center}.admin-user-card-v2 .admin-user-title strong{font-size:14px}.admin-user-card-v2 .admin-user-mini{margin-top:5px;gap:8px 16px;font-size:9.5px;align-items:center}.admin-user-expand-hint{margin-left:auto;color:var(--red-dark)!important;font-weight:800}.admin-user-card-v2[open] .admin-user-expand-hint{font-size:0}.admin-user-card-v2[open] .admin-user-expand-hint:after{content:'Cerrar ficha ▴';font-size:9.5px}.admin-user-card-v2 .admin-edit-form{padding:15px}.status-active{background:#eaf7ee;color:#157a3d}.status-blocked{background:#eceeef;color:#555}.settings-page-heading{margin-bottom:10px}.settings-subnav{margin-bottom:16px;position:sticky;top:72px;z-index:12;background:#f4f5f6;padding:7px;border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.04)}.settings-extra-grid{align-items:start}.settings-group-panel.hidden{display:none!important}.series-selector-bar{margin:12px 0;padding:12px 14px;border:1px solid var(--grey-300);border-radius:12px;background:#fff;display:flex;align-items:end;justify-content:space-between;gap:14px}.series-selector-bar label{display:grid;gap:5px;min-width:300px}.series-selector-bar label span{font-size:10px;font-weight:900;text-transform:uppercase;color:var(--grey-700)}.series-selector-bar select{min-height:42px;border:1px solid var(--grey-300);border-radius:9px;padding:0 10px;background:#fff;font:inherit}.series-selector-bar small{color:var(--grey-700)}.document-config-tabs{margin:16px 0 12px;display:flex;gap:6px;overflow:auto;padding-bottom:2px}.document-config-tabs button{flex:0 0 auto;border:1px solid var(--grey-300);border-radius:999px;background:#fff;padding:8px 11px;font:inherit;font-size:10px;font-weight:800;cursor:pointer}.document-config-tabs button.active{background:var(--red);border-color:var(--red);color:#fff}.enterprise-doc-shared-note{grid-column:1/-1;padding:11px 13px;border-radius:9px;background:#f5f6f7;color:var(--grey-700);font-size:10px}#enterprise-document-settings-card .enterprise-settings-form.hidden{display:none!important}#admin-dashboard-view .suggestions-section,#admin-dashboard-view .support-project{margin-top:24px}#admin-purchases-view{padding-top:0}
@media(max-width:900px){.admin-client-filters{grid-template-columns:1fr 1fr}.admin-client-filters #admin-search{grid-column:1/-1}.settings-subnav{position:static}}@media(max-width:640px){.admin-client-filters{grid-template-columns:1fr}.admin-client-filters #admin-search{grid-column:auto}.admin-client-list-help{display:grid}.admin-user-mini{display:grid!important;grid-template-columns:1fr 1fr}.admin-user-expand-hint{margin-left:0}.series-selector-bar{display:grid}.series-selector-bar label{min-width:0}}

/* V20 JSON R4 · compras y precios */
.purchase-supplier-inline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.purchase-supplier-inline label{margin:0}.purchase-supplier-inline .btn-secondary{white-space:nowrap;min-height:38px}.sales-price-line{grid-template-columns:1.05fr 2fr 80px 120px 36px}.sales-price-line [data-sale-remove]{height:38px;border:1px solid #efcecb;background:#fff7f6;color:#a43a32;border-radius:8px;font-size:18px;cursor:pointer}@media(max-width:760px){.purchase-supplier-inline{grid-template-columns:1fr}.sales-price-line{grid-template-columns:1fr 1fr}.sales-price-line .desc{grid-column:1/-1}}

/* V20 JSON R6: layout persistente + stock */
html,body{min-height:100%;}
body{min-height:100vh;display:flex;flex-direction:column;}
main.container{flex:1 0 auto;width:100%;}
.footer{margin-top:auto;flex:0 0 auto;}
.permission-hidden{display:none!important;}
.stock-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 180px auto;gap:10px;margin:14px 0}.stock-toolbar input,.stock-toolbar select,.stock-bulk-bar input{min-height:40px;border:1px solid var(--grey-300);border-radius:9px;padding:8px 10px;background:#fff;font:inherit}.stock-bulk-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:#fff;border:1px solid var(--grey-300);border-radius:12px;padding:11px;margin-bottom:12px}.stock-bulk-bar input[type=number]{width:130px}.stock-bulk-bar input[type=text]{min-width:260px;flex:1}.stock-summary{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.stock-summary span{background:#fff;border:1px solid var(--grey-300);border-radius:999px;padding:7px 10px;font-size:10px;font-weight:800}.stock-list{background:#fff;border:1px solid var(--grey-300);border-radius:14px;overflow:auto}.stock-row{display:grid;grid-template-columns:34px minmax(220px,2fr) 90px 90px 90px 90px 130px;gap:8px;align-items:center;padding:9px 12px;border-bottom:1px solid #edf0f3;min-width:850px}.stock-row.head{font-weight:900;background:#f6f7f9;font-size:10px}.stock-row strong{display:block}.stock-row small{display:block;color:#737b86}.stock-number{font-weight:800;text-align:center}.stock-inline{display:flex;gap:5px}.stock-inline input{width:70px;border:1px solid var(--grey-300);border-radius:7px;padding:6px}.stock-inline button{border:1px solid var(--grey-300);background:#fff;border-radius:7px;cursor:pointer}.stock-low{background:#fff9e9}.stock-zero{color:#9b342d}@media(max-width:760px){.stock-toolbar{grid-template-columns:1fr}.stock-bulk-bar{align-items:stretch}.stock-bulk-bar input[type=text],.stock-bulk-bar input[type=number]{width:100%;min-width:0}}

.stock-movements-card{margin-top:12px;background:#fff;border:1px solid var(--grey-300);border-radius:12px;padding:12px}.stock-movements-card summary{font-weight:900;cursor:pointer}.stock-movement{display:grid;grid-template-columns:160px 170px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid #edf0f3;font-size:10px}.stock-movement small{color:#737b86}

/* V20 JSON R6 · stock y trazabilidad */
.stock-toolbar{grid-template-columns:minmax(320px,1fr) 160px auto auto auto}.stock-search-wrap,.stock-issue-search{position:relative}.stock-search-wrap>input{width:100%}.stock-search-results{position:absolute;z-index:80;left:0;right:0;top:calc(100% + 5px);background:#fff;border:1px solid var(--grey-300);border-radius:10px;box-shadow:0 14px 34px rgba(22,28,36,.16);max-height:340px;overflow:auto}.stock-search-results button{width:100%;display:grid;grid-template-columns:150px 1fr auto;gap:8px;text-align:left;align-items:center;border:0;border-bottom:1px solid #edf0f3;background:#fff;padding:10px 12px;cursor:pointer}.stock-search-results button:hover{background:#fff7f6}.stock-search-results span,.stock-search-results small{font-size:10px;color:#68717d}.stock-search-empty{padding:14px;color:#737b86;font-size:10px}.stock-issue-search{margin:12px 0}.stock-issue-search label{display:grid;gap:5px}.stock-issue-search input{padding:10px;border:1px solid #ccd2d9;border-radius:8px}.stock-issue-lines{border:1px solid #e2e5ea;border-radius:10px;margin:10px 0 14px}.stock-issue-line{display:grid;grid-template-columns:1fr 130px 38px;gap:10px;align-items:end;padding:10px;border-bottom:1px solid #edf0f3}.stock-issue-line:last-child{border-bottom:0}.stock-issue-line strong,.stock-issue-line small{display:block}.stock-issue-line small{color:#737b86}.stock-issue-line label{display:grid;gap:4px;font-size:9px;font-weight:700}.stock-issue-line input{padding:8px;border:1px solid #ccd2d9;border-radius:7px}.stock-issue-line button{height:36px;border:1px solid #efcecb;border-radius:7px;background:#fff7f6;color:#a43a32;cursor:pointer}.purchase-needs-table>div{grid-template-columns:42px minmax(220px,2fr) repeat(6,minmax(90px,1fr));}.stock-movement b{font-weight:900}.stock-low{background:#fff9e9}@media(max-width:900px){.stock-toolbar{grid-template-columns:1fr 1fr}.stock-search-wrap{grid-column:1/-1}.stock-search-results button{grid-template-columns:1fr}.stock-issue-line{grid-template-columns:1fr 100px 38px}}@media(max-width:620px){.stock-toolbar{grid-template-columns:1fr}.stock-search-wrap{grid-column:auto}}

/* V20 JSON R7 · navegador completo de artículos */
.article-catalog-browser{margin-top:15px;padding:18px;border:1px solid var(--grey-300);border-radius:16px;background:#fff}
.article-catalog-browser-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}
.article-catalog-browser-head h2{margin:3px 0 4px}.article-catalog-browser-head p{margin:0;color:var(--grey-700);font-size:12px}
.article-catalog-filters{display:grid;grid-template-columns:2fr repeat(5,minmax(130px,1fr)) auto;gap:9px;align-items:end;padding:12px;border:1px solid var(--grey-200);border-radius:12px;background:#f8f9fa}
.article-catalog-filters label{display:grid;gap:5px}.article-catalog-filters label span{font-size:9.5px;font-weight:800;text-transform:uppercase;color:var(--grey-700)}
.article-catalog-filters input,.article-catalog-filters select{width:100%;min-height:38px;box-sizing:border-box;border:1px solid var(--grey-300);border-radius:8px;padding:6px 9px;background:#fff;font:inherit}
.article-catalog-summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 2px 8px;color:var(--grey-700);font-size:11px}.article-catalog-summary strong{color:var(--black)}
.article-catalog-table-wrap{overflow:auto;border:1px solid var(--grey-300);border-radius:12px}
.article-catalog-table{width:100%;border-collapse:collapse;min-width:980px;background:#fff}.article-catalog-table th{position:sticky;top:0;z-index:1;background:#f3f4f5;text-align:left;font-size:9px;text-transform:uppercase;letter-spacing:.02em;padding:9px 10px;border-bottom:1px solid var(--grey-300)}
.article-catalog-table td{padding:8px 10px;border-bottom:1px solid #eceeef;font-size:11px;vertical-align:middle}.article-catalog-table tbody tr:hover{background:#fafafa}.article-catalog-table tbody tr:last-child td{border-bottom:0}
.article-catalog-table td small{display:block;margin-top:2px;color:var(--grey-700);font-size:9.5px}.article-catalog-table .numeric{text-align:right;white-space:nowrap}.article-catalog-table .is-low{background:#fff4dc;color:#7f4c00}
.article-availability-pill,.article-origin-pill{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border-radius:999px;background:#f0f2f3;font-size:9px;font-weight:800;white-space:nowrap}.article-origin-pill.custom{background:#edf8ef;color:#16753a}.article-origin-pill.tariff{background:#f1f3f5;color:#495057}.availability-in_stock{background:#edf8ef;color:#16753a}.availability-low_stock{background:#fff4dc;color:#7f4c00}.availability-on_order{background:#eef4ff;color:#285ea8}.availability-discontinued{background:#f9ecec;color:#9f2d2d}
.article-list-edit{min-height:30px;padding:4px 10px;font-size:10px;white-space:nowrap}
.article-catalog-pagination{display:flex;justify-content:center;align-items:center;gap:7px;margin-top:13px;flex-wrap:wrap}.article-page-buttons{display:flex;gap:5px;align-items:center}.article-page-buttons button{min-width:32px;height:32px;border:1px solid var(--grey-300);border-radius:8px;background:#fff;font:inherit;cursor:pointer}.article-page-buttons button.active{background:var(--red);border-color:var(--red);color:#fff;font-weight:800}.article-page-buttons span{padding:0 3px;color:var(--grey-700)}
@media(max-width:1250px){.article-catalog-filters{grid-template-columns:2fr repeat(3,minmax(135px,1fr))}.article-catalog-filters .wide{grid-column:span 2}}
@media(max-width:760px){.article-catalog-browser-head{flex-direction:column}.article-catalog-filters{grid-template-columns:1fr 1fr}.article-catalog-filters .wide{grid-column:1/-1}.article-catalog-summary{align-items:flex-start;flex-direction:column}.article-catalog-pagination>.btn-ghost{display:none}}
@media(max-width:480px){.article-catalog-filters{grid-template-columns:1fr}.article-catalog-filters .wide{grid-column:auto}}


/* R8 · PEDIDOS COMPACTOS / DESPLEGABLES */
.order-card-collapsible{padding:0;overflow:hidden}
.order-card-collapsible>summary{list-style:none}
.order-card-collapsible>summary::-webkit-details-marker{display:none}
.order-card-summary{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 16px;cursor:pointer;user-select:none}
.order-card-summary:hover{background:#fafbfc}
.order-summary-main{min-width:0;display:grid;gap:2px}
.order-summary-main h3{margin:1px 0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.order-summary-main p{margin:0;color:var(--grey-700);font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.order-card-summary .order-card-total{grid-template-columns:auto;align-items:end;min-width:150px}
.order-card-summary .order-card-total>strong{font-size:15px}
.order-expand-hint{font-size:9px;color:var(--grey-700);font-weight:700}
.order-expand-hint:before{content:'▸ ';font-size:10px}
.order-card-collapsible[open] .order-expand-hint:before{content:'▾ '}
.order-card-collapsible[open] .order-expand-hint{color:var(--red)}
.order-card-expanded{padding:0 16px 16px;border-top:1px solid #eceeef}
.order-card-collapsible[open] .order-card-summary{background:#fbfbfc}
@media(max-width:760px){.order-card-summary{align-items:flex-start}.order-card-summary .order-card-total{min-width:110px}.order-summary-main p{white-space:normal}.order-card-summary .status-stack{justify-content:flex-end}}

/* R9 · emails documentales, autocompletado y medias reales */
.orders-filter-search small{display:block;margin-top:4px;color:var(--grey-700);font-size:8.5px}.article-average-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.article-average-grid>div{border:1px solid var(--grey-300);background:#fff;border-radius:10px;padding:12px;display:grid;gap:4px}.article-average-grid span{font-size:9px;text-transform:uppercase;font-weight:800;color:var(--grey-700)}.article-average-grid strong{font-size:18px}.article-average-grid small{font-size:9px;color:var(--grey-700)}@media(max-width:760px){.article-average-grid{grid-template-columns:1fr}}

/* V20 JSON R10 · Artículos unificados + editor modal + sustituciones */
body.modal-open{overflow:hidden}
.article-editor-dialog{width:min(1180px,96vw)!important;max-height:90vh!important;overflow:auto!important;margin:0!important;padding:20px!important}
.article-editor-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.article-subnav{margin-top:8px}
#article-stock-panel .admin-page-heading{margin-top:0}
.replacement-manager-form{display:grid;grid-template-columns:minmax(240px,1fr) 38px minmax(240px,1fr) auto;gap:10px;align-items:end;padding:14px;border:1px solid var(--grey-200);border-radius:12px;background:#f8f9fa;margin:12px 0}
.replacement-manager-form label{display:grid;gap:5px;position:relative}.replacement-manager-form label>span{font-size:9.5px;font-weight:800;text-transform:uppercase;color:var(--grey-700)}
.replacement-manager-form input{width:100%;box-sizing:border-box;min-height:40px;border:1px solid var(--grey-300);border-radius:8px;padding:7px 10px;background:#fff;font:inherit}
.replacement-arrow{height:40px;display:grid;place-items:center;font-size:24px;font-weight:900;color:var(--red)}
.replacement-help{display:grid;gap:5px;padding:12px 14px;margin-bottom:14px;border-left:3px solid var(--red);background:#fff7f6;border-radius:8px;font-size:11px}.replacement-help strong{font-size:12px}.replacement-help span{color:var(--grey-700)}
.replacement-table{min-width:760px}.replacement-table td:last-child{white-space:nowrap}
@media(max-width:850px){.replacement-manager-form{grid-template-columns:1fr}.replacement-arrow{height:auto;transform:rotate(90deg)}.article-editor-dialog{width:96vw!important;padding:14px!important}}

/* V20 JSON R11 · códigos internos + vista previa de pedidos proveedor */
.purchase-order-meta-preview{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 12px}
.purchase-order-meta-preview>div{border:1px solid #dfe3e8;border-radius:9px;background:#f8fafb;padding:10px 12px;display:flex;flex-direction:column;gap:3px}
.purchase-order-meta-preview span{font-size:11px;font-weight:700;text-transform:uppercase;color:#68727d}
.purchase-order-meta-preview strong{font-size:15px;color:#18212b}
.purchase-order-meta-preview small{font-size:10px;color:#75808a;line-height:1.35}
.purchase-form-grid label small{display:block;margin-top:4px;color:#6c7680;font-size:10px;line-height:1.3}
@media(max-width:700px){.purchase-order-meta-preview{grid-template-columns:1fr}}

/* V20 JSON R12 · stock paginado y control masivo */
.stock-filter-grid{display:grid;grid-template-columns:minmax(260px,2fr) repeat(5,minmax(130px,1fr)) auto auto;gap:9px;align-items:end;margin:14px 0}.stock-filter-grid label{display:grid;gap:5px;font-size:9px;font-weight:800;text-transform:uppercase}.stock-filter-grid label.wide{grid-column:span 2}.stock-filter-grid input,.stock-filter-grid select{min-height:40px;border:1px solid var(--grey-300);border-radius:9px;padding:8px 10px;background:#fff;font:inherit;text-transform:none}.stock-action-row{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:10px}.btn-danger{border:1px solid #df4a42;background:#fff;color:#b4312b;border-radius:9px;padding:9px 12px;font-weight:800;cursor:pointer}.btn-danger:hover{background:#fff1f0}.stock-select-all-results{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:800}.stock-value-positive{color:#147a3c!important}.stock-value-nonpositive{color:#c3322d!important}.stock-pagination{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0}.stock-row{grid-template-columns:var(--stock-grid-columns,34px minmax(250px,2fr) 90px 90px 90px 90px 135px)}.stock-row.stock-low{box-shadow:inset 4px 0 0 #e8b02f}@media(max-width:1200px){.stock-filter-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}.stock-filter-grid label.wide{grid-column:span 2}}@media(max-width:720px){.stock-filter-grid{grid-template-columns:1fr}.stock-filter-grid label.wide{grid-column:auto}.stock-action-row>*{flex:1 1 auto}}

/* =========================================================
   V20 JSON R13 · RESPONSIVE GLOBAL, MENU Y FOOTER
   ========================================================= */

/* Aprovecha mejor el espacio disponible sin perder márgenes cómodos. */
.container{
  width:min(calc(100% - 32px),1320px);
  max-width:1320px;
  margin-inline:auto;
  padding-inline:0;
}
main.container{flex:1 0 auto;width:min(calc(100% - 32px),1320px)}

/* Menú principal centrado en escritorio. */
.tool-tabs{
  display:flex;
  width:max-content;
  max-width:100%;
  margin:24px auto 10px;
  justify-content:center;
  align-items:stretch;
  flex-wrap:wrap;
}
.tool-tab{
  justify-content:center;
  text-align:center;
  white-space:normal;
}

/* El pie es una unidad centrada. */
.footer{
  width:100%;
  margin-top:auto;
  padding:16px 0 14px;
}
.footer-inner.footer-custom{
  width:min(calc(100% - 32px),1320px);
  display:flex;
  justify-content:center;
  align-items:center;
  text-align:center;
  gap:8px 22px;
  margin-inline:auto;
}
.footer-inner.footer-custom>span{flex:0 1 auto;text-align:center}
.app-version{
  display:block;
  width:min(calc(100% - 32px),1320px);
  margin:7px auto 0;
  text-align:center;
  white-space:normal;
  line-height:1.35;
}

/* El reloj no tapa el footer: JS calcula la altura real cuando el pie entra en pantalla. */
.global-clock{
  left:max(12px,env(safe-area-inset-left));
  bottom:max(12px,env(safe-area-inset-bottom));
  transition:bottom .18s ease,transform .18s ease;
}
body.clock-clear-footer .global-clock{
  bottom:calc(var(--footer-visible-height,58px) + 12px + env(safe-area-inset-bottom));
}

/* Protecciones globales ante desbordes. */
.tab-view,.module-subpanel,.purchase-section,.settings-panel,.admin-section,
.admin-view,.admin-orders-view,.admin-articles-view{min-width:0;max-width:100%}
input,select,textarea,button{max-width:100%}
.article-catalog-list,.stock-list,.purchase-needs-table,.purchase-orders-table,
.admin-orders-list,.admin-users-list{max-width:100%}

/* TABLET */
@media(max-width:1100px){
  .container,main.container,.footer-inner.footer-custom,.app-version{width:min(calc(100% - 28px),1000px)}
  .tool-tabs{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
  .tool-tab{padding:8px 9px;min-width:0;min-height:48px;font-size:11px;line-height:1.15}
  .tool-tab-icon{flex:0 0 16px;width:16px;height:16px}.tool-tab-icon svg{width:16px;height:16px}
  .topbar-inner{width:min(calc(100% - 28px),1000px);flex-wrap:wrap;justify-content:center}
  .brand{margin-right:auto}.account-zone{margin-left:auto}
}

/* TABLET PEQUEÑA / MÓVIL GRANDE */
@media(max-width:760px){
  .container,main.container,.footer-inner.footer-custom,.app-version{width:calc(100% - 24px)}
  .topbar{position:sticky;top:0;z-index:90}
  .topbar-inner{width:calc(100% - 20px);padding:10px 0;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}
  .brand{min-width:0;margin:0}.brand img,#brand-logo{max-width:min(45vw,190px);max-height:48px}
  .account-zone{margin:0}.account-copy{display:none}.account-toggle{padding:5px;min-width:44px;justify-content:center}
  .cart-toggle{padding:0 10px;min-width:44px;justify-content:center}.cart-toggle-label{display:none}

  .tool-tabs{grid-template-columns:repeat(3,minmax(0,1fr));margin:12px auto 12px;padding:5px;gap:5px;border-radius:12px}
  .tool-tab{font-size:10px;padding:7px 6px;gap:5px;min-height:50px}
  .tool-tab-icon{display:none}

  .module-subnav{
    position:static;
    display:flex;
    flex-wrap:nowrap;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scrollbar-width:thin;
    justify-content:flex-start;
    padding:6px;
  }
  .module-subnav button{flex:0 0 auto;min-height:40px;padding:8px 11px}

  .admin-page-heading,.purchase-section>header,.orders-page-header,.article-catalog-browser-head{
    align-items:stretch!important;
    flex-direction:column!important;
  }
  .admin-page-heading .btn-primary,.purchase-section>header .btn-primary{width:100%}

  /* Modales utilizables con teclado y barras del navegador móvil. */
  .article-editor-overlay,.purchase-modal-overlay,.account-overlay,.credit-request-overlay,.shipping-cost-overlay{
    padding:8px!important;
    align-items:flex-end!important;
  }
  .article-editor-dialog,.purchase-modal,.account-panel,.credit-request-modal,.shipping-cost-modal{
    width:100%!important;
    max-width:100%!important;
    max-height:calc(100dvh - 16px)!important;
    border-radius:18px 18px 0 0!important;
  }

  /* Footer centrado y reloj por encima del pie en pantallas estrechas. */
  .footer-inner.footer-custom{flex-direction:column;gap:5px;font-size:10.5px}
  .app-version{font-size:8px;margin-top:5px}
  .global-clock{left:8px;padding:5px 7px;transform:scale(.9);transform-origin:left bottom}

  /* Tablas anchas: se desplazan dentro de su bloque, nunca toda la página. */
  .stock-list,.article-catalog-table-wrap,.purchase-needs-table,.purchase-orders-table,
  .purchase-receipts-table,.enterprise-table,.admin-table{overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* MÓVIL */
@media(max-width:520px){
  .container,main.container,.footer-inner.footer-custom,.app-version{width:calc(100% - 18px)}
  .topbar-inner{width:calc(100% - 14px);grid-template-columns:minmax(0,1fr) 42px 42px;gap:5px}
  .brand img,#brand-logo{max-width:min(54vw,170px);max-height:43px}
  .account-toggle,.cart-toggle{min-width:40px;min-height:40px;height:40px}
  .account-avatar{width:29px;height:29px}
  .tool-tabs{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .tool-tab{min-height:46px;font-size:9.5px;padding:6px 5px}
  .hero{padding-top:20px}.hero h1,.admin-page-heading h1{font-size:clamp(24px,8vw,30px)}
  .selector-card,.support-card,.suggestions-card,.purchase-section,.settings-card{padding:14px!important}
  .btn-primary,.btn-secondary{min-height:42px}
  .cart-panel{width:100vw;max-width:none;padding:16px 14px 24px}
  .global-clock-copy strong{font-size:10.5px}.global-clock-copy small{font-size:7px}
}

/* Teléfonos muy estrechos: menú a una columna si hace falta. */
@media(max-width:350px){
  .tool-tabs{grid-template-columns:1fr 1fr}
  .tool-tab{font-size:9px}
  .brand img,#brand-logo{max-width:150px}
}

@media print{
  .tool-tabs,.footer,.global-clock{display:none!important}
}

/* V20 JSON R14 · productividad, vistas personales y auditoría */
.productivity-mount{margin-top:10px}.productivity-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid #dde2e7;border-radius:10px;background:#fafbfc}.productivity-view-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.productivity-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:#35704b}.productivity-toolbar select{min-width:170px}.productivity-toolbar button{white-space:nowrap}.productivity-filter-grid{display:grid;grid-template-columns:minmax(190px,1fr) repeat(3,minmax(120px,auto));gap:8px;align-items:center;margin:10px 0}.compact-page-size{display:inline-flex;align-items:center;gap:6px}.compact-page-size select{min-width:72px}
.productivity-columns-modal .purchase-modal{max-width:620px}.productivity-column-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}.productivity-column-grid label{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #e1e5e9;border-radius:9px;background:#fff}.productivity-column-grid input{width:auto}.productivity-columns-modal footer{display:flex;justify-content:flex-end;gap:8px}
.recent-activity-panel{margin-top:16px}.recent-activity-list{display:grid;gap:0}.activity-item{display:grid;grid-template-columns:12px 1fr;gap:10px;padding:10px 2px;border-bottom:1px solid #edf0f2}.activity-item:last-child{border-bottom:0}.activity-dot{width:8px;height:8px;margin-top:5px;border-radius:50%;background:#25894d}.activity-item strong{display:block;font-size:12px}.activity-item span,.activity-item small{display:block;color:#67717c;font-size:10px;margin-top:2px}.audit-change-list{margin:6px 0 0;padding:6px 8px;background:#f7f8fa;border-radius:7px;list-style:none}.audit-change-list li{display:flex;justify-content:space-between;gap:12px;padding:3px 0;font-size:9px}.audit-change-list li strong{font-size:9px}.audit-change-list li span{text-align:right;color:#56616c}
.audit-settings-card{grid-column:1/-1}.audit-list{display:grid;gap:8px;margin-top:10px}.audit-row{border:1px solid #e0e4e8;border-radius:10px;padding:10px;background:#fff}.audit-row header,.audit-row-meta{display:flex;justify-content:space-between;gap:12px;align-items:center}.audit-row header strong{font-size:12px}.audit-row header span,.audit-row-meta,.audit-row p{font-size:9px;color:#65707b}.audit-row p{margin:6px 0 0}.audit-row-meta{margin-top:4px}.audit-row-meta b{color:#26313b}
.invoice-table-wrap{overflow:auto;border:1px solid #dfe3e7;border-radius:11px;background:#fff}.invoice-table{width:100%;border-collapse:collapse;min-width:980px}.invoice-table th{padding:9px 8px;text-align:left;background:#f5f7f8;font-size:9px;text-transform:uppercase}.invoice-table td{padding:9px 8px;border-top:1px solid #eef0f2;font-size:10px}.invoice-table .numeric{text-align:right}.invoice-pay-status{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:8px;font-weight:800;text-transform:uppercase;background:#eef1f4}.invoice-pay-status.status-paid{background:#e6f6eb;color:#16733b}.invoice-pay-status.status-partial{background:#fff4da;color:#8a6200}.invoice-pay-status.status-pending{background:#fde8e6;color:#a8302a}.invoice-workspace-panel{margin-top:12px}
.article-quick-input{width:88px;min-width:0;padding:7px!important}.article-quick-input.small{width:68px}.article-quick-input.provider{width:120px;margin-right:4px}.article-quick-save{margin-right:4px}.purchase-pending-chip{margin-right:auto;font-size:9px;font-weight:700;color:#59636d}.purchase-order-card footer{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.purchase-order-filters{grid-template-columns:minmax(210px,1fr) repeat(3,minmax(135px,auto))}
.orders-pagination{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:10px}.orders-pagination span{margin-left:auto;font-size:9px;color:#66717c}.orders-pagination button.active{background:#e33f37;color:#fff;border-color:#e33f37}
@media(max-width:900px){.productivity-filter-grid,.purchase-order-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.productivity-toolbar{align-items:flex-start;flex-direction:column}.productivity-column-grid{grid-template-columns:1fr}.article-quick-input.provider{width:105px}}
@media(max-width:600px){.productivity-filter-grid,.purchase-order-filters{grid-template-columns:1fr}.productivity-view-controls{width:100%}.productivity-view-controls select{flex:1;min-width:140px}.productivity-toolbar>button{width:100%}.audit-row header,.audit-row-meta{align-items:flex-start;flex-direction:column;gap:2px}.audit-change-list li{flex-direction:column;gap:1px}.audit-change-list li span{text-align:left}.orders-pagination span{width:100%;margin-left:0}.invoice-table{min-width:820px}}


/* =========================================================
   V20 JSON R15 · LEGIBILIDAD + SEPARACIÓN CATÁLOGO / ALMACÉN
   ========================================================= */
html { font-size: 17px; }
body { font-size: 16px; line-height: 1.48; }
.container, main.container { max-width: 1320px; }

/* Jerarquía tipográfica más legible en escritorio. */
h1, .hero h1, .admin-page-heading h1 { font-size: clamp(29px, 2.15vw, 38px) !important; line-height: 1.12; }
h2, .results-header h2, .purchase-section h2 { font-size: clamp(21px, 1.55vw, 28px) !important; line-height: 1.2; }
h3 { line-height: 1.25; }
p, .admin-page-heading p, .hero p { font-size: 15px; }
.eyebrow, [class*="eyebrow"] { font-size: 11px !important; letter-spacing: .075em; }

/* Navegación y subnavegación. */
.tool-tabs { max-width: 1320px; }
.tool-tab { font-size: 13px !important; min-height: 54px; padding: 10px 13px; }
.module-subnav button, [data-article-subtab], [data-purchase-subtab], [data-settings-tab], [data-budget-subtab] {
  font-size: 12.5px !important; min-height: 42px; padding: 9px 13px !important;
}

/* Formularios: texto y controles claramente visibles. */
label > span, .field-label, .form-label, .stock-filter-grid label span,
.article-catalog-filters label span, .purchase-form label span { font-size: 11px !important; }
input, select, textarea { font-size: 14px !important; min-height: 42px; }
textarea { line-height: 1.45; }
.btn-primary, .btn-secondary { font-size: 13.5px !important; min-height: 42px; padding: 10px 15px; }
.btn-ghost { font-size: 12.5px !important; }

/* Tablas y listados: se acabaron las letras de 8-10px en administración. */
.admin-table th, .article-catalog-table th, .invoice-table th,
.purchase-needs-table th, .purchase-orders-table th, .stock-table th { font-size: 10.5px !important; }
.admin-table td, .article-catalog-table td, .invoice-table td,
.purchase-needs-table td, .purchase-orders-table td, .stock-table td { font-size: 12.5px !important; }
.article-catalog-table strong, .stock-list strong, .purchase-order-card strong { font-size: 13px; }
.article-catalog-table small, .stock-list small, .purchase-order-card small { font-size: 10.5px; }

/* Tarjetas y metadatos. */
.crm-stat span { font-size: 10px !important; }
.crm-stat strong { font-size: 21px !important; }
.crm-stat small { font-size: 10px !important; }
.quote-status, .invoice-pay-status { font-size: 9.5px !important; }
.activity-item strong, .audit-row header strong { font-size: 13px !important; }
.activity-item span, .activity-item small, .audit-row header span, .audit-row-meta, .audit-row p { font-size: 10.5px !important; }

/* Ficha de artículo: stock visible, pero no editable desde Catálogo. */
.article-stock-readonly input[readonly] { background: #f4f6f7; color: #2b333a; font-weight: 800; cursor: default; }
.article-stock-readonly small { display:block; margin:5px 0 8px; color:#68717a; font-size:10.5px; line-height:1.35; }
.article-stock-readonly .btn-secondary { width:100%; }

/* Explica visualmente que Stock es Almacén, no una segunda ficha de artículo. */
#article-stock-panel .admin-page-heading { border-left: 4px solid var(--green); padding-left: 14px; }
#article-stock-panel .admin-page-heading p { max-width: 900px; }

/* Footer y texto auxiliar también legibles. */
.footer-inner.footer-custom { font-size: 12.5px !important; }
.app-version { font-size: 10px !important; }

@media (min-width: 1500px) {
  body { font-size: 17px; }
  .container, main.container, .tool-tabs, .topbar-inner { max-width: 1400px; }
  .tool-tab { font-size: 13.5px !important; }
  input, select, textarea { font-size: 14.5px !important; }
}

@media (max-width: 760px) {
  html { font-size: 16px; }
  body { font-size: 15px; }
  .tool-tab { font-size: 11px !important; min-height: 50px; }
  p, .admin-page-heading p, .hero p { font-size: 14px; }
  input, select, textarea { font-size: 16px !important; } /* evita zoom automático en iPhone */
  .btn-primary, .btn-secondary { font-size: 13px !important; }
  .footer-inner.footer-custom { font-size: 11px !important; }
}


/* R16 · Stock: catálogo completo, autocompletado y selección persistente */
.stock-search-label{position:relative}
.stock-main-search-results{top:calc(100% + 6px);z-index:160;max-height:420px}
.stock-suggestion-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;border-bottom:1px solid #edf0f3;background:#fff}
.stock-suggestion-row:last-child{border-bottom:0}
.stock-search-results .stock-suggestion-main{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(220px,1.7fr) auto;gap:10px;align-items:center;padding:11px 12px;border:0;background:#fff;text-align:left;cursor:pointer;width:100%}
.stock-search-results .stock-suggestion-main:hover{background:#fff7f6}
.stock-search-results .stock-suggestion-main strong{font-size:12px}
.stock-search-results .stock-suggestion-main span{font-size:11px;color:#353b43}
.stock-search-results .stock-suggestion-main small{font-size:10px;color:#737b86;white-space:nowrap}
.stock-search-results .stock-suggestion-select{width:auto;min-width:118px;border:0;border-left:1px solid #edf0f3;background:#fafbfc;padding:8px 11px;font-weight:800;cursor:pointer;color:#b4312b}
.stock-search-results .stock-suggestion-select:hover{background:#fff1f0}
.stock-selected-count{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;background:#f1f3f5;color:#4f5965;font-size:10px;font-weight:900;white-space:nowrap}
.stock-empty-state{display:grid;gap:5px;padding:28px;text-align:center;background:#fff;color:#65707c;border-radius:13px}
.stock-empty-state strong{font-size:15px;color:#252b32}
.stock-empty-state span{font-size:11px}
@media(max-width:760px){
  .stock-suggestion-row{grid-template-columns:1fr}
  .stock-search-results .stock-suggestion-main{grid-template-columns:1fr;gap:3px}
  .stock-search-results .stock-suggestion-select{border-left:0;border-top:1px solid #edf0f3;width:100%}
}

/* R18 · administración editable de mantenimiento y protección de series */
.maintenance-admin-tools{margin:14px 0;padding:16px 18px;border:1px solid #d8e5dd;border-left:4px solid #158044;border-radius:13px;background:#f8fcf9;display:flex;align-items:center;justify-content:space-between;gap:18px}.maintenance-admin-tools.hidden{display:none!important}.maintenance-admin-tools h2{margin:3px 0 5px}.maintenance-admin-tools p{margin:0;color:var(--grey-700)}.maintenance-admin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.maintenance-editor-overlay,.series-pin-overlay{position:fixed;inset:0;background:rgba(20,25,30,.62);z-index:99990;display:flex;align-items:center;justify-content:center;padding:18px;box-sizing:border-box}.maintenance-editor-dialog{width:min(1180px,96vw);max-height:94vh;background:#fff;border-radius:16px;box-shadow:0 20px 70px rgba(0,0,0,.32);display:flex;flex-direction:column;overflow:hidden}.maintenance-editor-head,.maintenance-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid var(--grey-300)}.maintenance-editor-footer{border-top:1px solid var(--grey-300);border-bottom:0;justify-content:flex-end}.maintenance-editor-footer .inline-message{margin-right:auto}.maintenance-editor-head h2{margin:2px 0}.maintenance-editor-head p{margin:4px 0 0;color:var(--grey-700)}.maintenance-editor-scroll{padding:16px 18px;overflow:auto}.maintenance-editor-section{padding:14px 0;border-bottom:1px solid #e7e9eb}.maintenance-editor-section:last-child{border-bottom:0}.maintenance-editor-section h3{margin:0 0 10px}.maintenance-general-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.maintenance-general-grid label,.maintenance-cat-body label{display:grid;gap:5px}.maintenance-general-grid label span,.maintenance-cat-body label span{font-weight:800;font-size:11px}.maintenance-general-grid input,.maintenance-cat-body select,.maintenance-item-row input,.maintenance-liquid-row input{min-height:40px;border:1px solid var(--grey-300);border-radius:8px;padding:7px 9px;font:inherit;box-sizing:border-box;width:100%}.maintenance-pdf-row{display:grid;grid-template-columns:minmax(120px,.5fr) 1fr auto;gap:10px;align-items:center}.maintenance-categories{display:grid;gap:8px}.maintenance-cat-editor{border:1px solid var(--grey-300);border-radius:10px;background:#fff;overflow:hidden}.maintenance-cat-editor summary{cursor:pointer;padding:10px 12px;display:flex;justify-content:space-between;gap:12px;background:#f8f9fa}.maintenance-cat-editor summary span{color:var(--grey-700);font-size:11px}.maintenance-cat-body{padding:12px}.maintenance-items{display:grid;gap:7px;margin:10px 0}.maintenance-item-row{display:grid;grid-template-columns:1.05fr 1.35fr 90px 110px 38px;gap:7px;align-items:center}.maintenance-liquid-row{display:grid;grid-template-columns:1fr .8fr 1.4fr 110px 38px;gap:7px;align-items:center;margin:8px 0}.series-pin-dialog{width:min(460px,94vw);background:#fff;border-radius:15px;padding:22px;box-shadow:0 18px 60px rgba(0,0,0,.32);position:relative}.series-pin-dialog h2{margin:4px 0 8px}.series-pin-dialog p{color:var(--grey-700);line-height:1.5}.series-pin-dialog label{display:grid;gap:6px;margin-top:15px}.series-pin-dialog label span{font-weight:900}.series-pin-dialog input{min-height:46px;border:1px solid var(--grey-300);border-radius:9px;padding:8px 12px;font:inherit;font-size:20px;letter-spacing:5px}.series-pin-dialog small{display:block;margin-top:8px;color:var(--grey-700)}.series-pin-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.series-pin-close{position:absolute;right:10px;top:8px;border:0;background:transparent;font-size:24px;cursor:pointer}.series-pin-dialog .inline-message{margin-top:10px}
@media(max-width:760px){.maintenance-admin-tools{display:grid}.maintenance-admin-actions{justify-content:stretch}.maintenance-admin-actions button{flex:1}.maintenance-editor-overlay{padding:0}.maintenance-editor-dialog{width:100vw;max-height:100vh;height:100vh;border-radius:0}.maintenance-general-grid{grid-template-columns:1fr}.maintenance-pdf-row{grid-template-columns:1fr}.maintenance-item-row{grid-template-columns:1fr 1fr}.maintenance-item-row [data-mi-qty],.maintenance-item-row [data-mi-price]{min-width:0}.maintenance-liquid-row{grid-template-columns:1fr 1fr}.maintenance-item-row .btn-danger-soft,.maintenance-liquid-row .btn-danger-soft{grid-column:2}.maintenance-editor-head,.maintenance-editor-footer{padding:12px}.maintenance-editor-scroll{padding:12px}}

/* =========================================================
   R19 · PÁGINA DE INICIO YANMAR
   ========================================================= */
.home-view{display:grid;gap:24px;padding-bottom:28px}.home-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.5fr);gap:24px;align-items:center;min-height:300px;padding:34px 38px;border-radius:24px;background:linear-gradient(120deg,#17191d 0%,#20242a 48%,#b71f1a 100%);box-shadow:0 18px 48px rgba(25,28,33,.16);color:#fff}.home-hero:after{content:'';position:absolute;right:-120px;top:-170px;width:430px;height:430px;border-radius:50%;border:68px solid rgba(255,255,255,.055)}.home-kicker{display:inline-block;margin-bottom:8px;color:#fff;font-size:11px;font-weight:900;letter-spacing:.14em}.home-hero h1{position:relative;z-index:1;margin:0;max-width:850px;font-size:clamp(30px,3.5vw,50px);line-height:1.04;letter-spacing:-.035em}.home-hero p{position:relative;z-index:1;max-width:760px;margin:16px 0 0;color:#e8eaed;font-size:16px;line-height:1.65}.home-quick-actions{position:relative;z-index:1;display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.home-action{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.09);color:#fff;border-radius:11px;padding:11px 15px;font:inherit;font-size:13px;font-weight:800;cursor:pointer}.home-action:hover{background:rgba(255,255,255,.16)}.home-action.primary{background:#e23b33;border-color:#e23b33}.home-hero-mark{position:relative;z-index:1;justify-self:end;width:235px;height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.2);border-radius:22px;background:rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}.home-hero-mark span{font-size:35px;font-weight:1000;font-style:italic;letter-spacing:-.06em}.home-hero-mark b{margin-top:2px;color:#fff;font-size:18px;letter-spacing:.28em}.home-hero-mark small{margin-top:11px;color:#f4b9b5;font-size:10px;font-weight:800;letter-spacing:.18em}.home-section{min-width:0}.home-section-card{padding:20px;background:#fff;border:1px solid #dfe3e7;border-radius:18px;box-shadow:0 7px 24px rgba(24,28,33,.045)}.home-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:14px}.home-section-head h2{margin:3px 0 0;font-size:24px}.home-section-head p{margin:6px 0 0;color:#66717a;font-size:12px}.home-product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.home-product-card{min-width:0;overflow:hidden;background:#fff;border:1px solid #e1e4e8;border-radius:17px;box-shadow:0 8px 25px rgba(22,26,31,.055);transition:transform .16s ease,box-shadow .16s ease}.home-product-card:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(22,26,31,.09)}.home-product-image{position:relative;height:170px;background:linear-gradient(145deg,#f6f7f8,#eceff1);display:grid;place-items:center;overflow:hidden}.home-product-image img{width:100%;height:100%;object-fit:contain;padding:13px;box-sizing:border-box}.home-product-placeholder{display:flex;flex-direction:column;align-items:center;color:#e23b33;font-weight:1000;font-style:italic;font-size:27px}.home-product-placeholder small{color:#858d95;font-size:9px;letter-spacing:.2em;font-style:normal}.home-product-badge{position:absolute;left:10px;top:10px;background:#181b20;color:#fff;border-radius:999px;padding:5px 9px;font-size:9px;font-weight:900;text-transform:uppercase}.home-product-card.is-promo .home-product-badge{background:#e23b33}.home-product-copy{padding:14px}.home-product-copy>strong{color:#e23b33;font-size:10px;letter-spacing:.035em}.home-product-copy h3{min-height:38px;margin:5px 0 6px;font-size:14px;line-height:1.35}.home-product-copy p{min-height:34px;margin:5px 0;color:#6a747d;font-size:11px;line-height:1.45}.home-product-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.home-product-foot b{font-size:15px}.home-product-foot button{border:0;background:transparent;color:#bd2c26;font-size:10px;font-weight:900;cursor:pointer}.home-split-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.home-mini-product-list{display:grid;gap:7px}.home-moving-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;border:1px solid #e7e9ec;background:#fafbfb;border-radius:12px;padding:8px 10px;text-align:left;cursor:pointer}.home-moving-row:hover{border-color:#efb8b4;background:#fff7f6}.home-moving-thumb{width:42px;height:42px;border-radius:9px;background:#fff;border:1px solid #e5e8ea;display:grid;place-items:center;overflow:hidden}.home-moving-thumb img{width:100%;height:100%;object-fit:contain}.home-moving-thumb b{color:#e23b33;font-size:20px}.home-moving-row strong{display:block;font-size:11px}.home-moving-row small{display:block;color:#6d767e;font-size:10px;margin-top:2px}.home-moving-row em{font-style:normal;font-size:10px;font-weight:900;color:#657078}.home-announcement-list{display:grid;gap:9px}.home-announcement{display:grid;grid-template-columns:5px 1fr;gap:10px;border:1px solid #e3e6e9;border-radius:12px;background:#fafbfb;padding:10px}.home-announcement>span{display:block;border-radius:99px;background:#6c7780}.home-announcement.promo>span{background:#e23b33}.home-announcement.warning>span{background:#e49a25}.home-announcement.success>span{background:#278652}.home-announcement strong{font-size:12px}.home-announcement p{margin:3px 0 0;color:#626d76;font-size:11px;line-height:1.45}.home-system-notifications{margin-top:14px;padding-top:13px;border-top:1px solid #eceeef}.home-system-notifications h3{margin:0 0 8px;font-size:12px}.home-system-notifications article{display:grid;gap:2px;padding:7px 0;border-bottom:1px solid #f0f1f2}.home-system-notifications article strong{font-size:10.5px}.home-system-notifications article span{font-size:10px;color:#6c757d}.home-promotions-section{padding:22px;border-radius:19px;background:linear-gradient(180deg,#fff 0,#fff8f7 100%);border:1px solid #f0d9d7}.home-empty{grid-column:1/-1;padding:18px;border:1px dashed #d8dde1;border-radius:12px;color:#737d85;text-align:center;font-size:11px;background:#fafbfb}.home-community-grid{display:grid;gap:16px}.home-community-grid .suggestions-section,.home-community-grid .support-project{margin:0}.home-settings-panel{padding:0}.home-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.home-settings-promo-card{grid-column:1/-1}.home-settings-field{display:grid;gap:5px;margin-top:10px}.home-settings-field span{font-size:10px;font-weight:900}.home-settings-field input,.home-settings-field textarea,.home-settings-inline input,.home-settings-inline select,#home-announcement-text,#home-promo-text,#home-promo-search{width:100%;box-sizing:border-box;border:1px solid #d8dde1;border-radius:9px;padding:9px 10px;font:inherit}.home-settings-inline{display:grid;grid-template-columns:1fr 180px;gap:8px;margin:9px 0}.home-admin-list{display:grid;gap:7px;margin-top:12px}.home-admin-list article{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #e4e7e9;border-radius:10px;padding:9px 10px}.home-admin-list strong{display:block;font-size:11px}.home-admin-list small{display:block;color:#6e7880;font-size:9px;margin-top:2px}.home-admin-list button{border:1px solid #efc8c5;background:#fff7f6;color:#a43731;border-radius:7px;padding:5px 8px;cursor:pointer}.home-promo-search-wrap{position:relative}.home-promo-suggestions{position:absolute;z-index:80;top:calc(100% + 4px);left:0;right:0;max-height:280px;overflow:auto;background:#fff;border:1px solid #dce0e3;border-radius:11px;box-shadow:0 15px 35px rgba(0,0,0,.13)}.home-promo-suggestions button{display:grid;width:100%;border:0;border-bottom:1px solid #eef0f2;background:#fff;padding:9px 10px;text-align:left;cursor:pointer}.home-promo-suggestions button:hover{background:#fff7f6}.home-promo-suggestions strong{font-size:10.5px}.home-promo-suggestions span{color:#6b757d;font-size:9.5px;margin-top:2px}
@media(max-width:1100px){.home-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-hero{grid-template-columns:1fr}.home-hero-mark{display:none}.home-split-grid{grid-template-columns:1fr}.home-settings-grid{grid-template-columns:1fr}.home-settings-promo-card{grid-column:auto}}
@media(max-width:640px){.home-view{gap:16px}.home-hero{padding:24px 20px;min-height:0;border-radius:18px}.home-hero h1{font-size:31px}.home-hero p{font-size:14px}.home-quick-actions{display:grid;grid-template-columns:1fr}.home-product-grid{grid-template-columns:1fr}.home-product-image{height:190px}.home-section-head{align-items:flex-start;flex-direction:column}.home-section-card,.home-promotions-section{padding:14px}.home-settings-inline{grid-template-columns:1fr}}


/* =========================================================
   V20 JSON R20 · BANNER, MENÚ HORIZONTAL Y PIE LEGAL
   ========================================================= */
@media (min-width: 980px){
  main.container>.tool-tabs{
    width:fit-content!important;
    max-width:min(calc(100vw - 48px),1400px)!important;
    margin:20px auto 14px!important;
    transform:none!important;
    flex-wrap:nowrap!important;
    justify-content:flex-start;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:thin;
    padding:6px 8px;
  }
  main.container>.tool-tabs .tool-tab{
    flex:0 0 auto;
    min-height:48px!important;
    padding:8px 11px!important;
    font-size:11.5px!important;
    white-space:nowrap!important;
  }
  main.container>.tool-tabs .tool-tab-icon{width:16px;height:16px}
  main.container>.tool-tabs .tool-tab-icon svg{width:16px;height:16px}
}
.home-showcase{position:relative;overflow:hidden;min-height:390px;border-radius:26px;background:#14181c;box-shadow:0 18px 48px rgba(25,28,33,.16)}
.home-showcase-track{position:absolute;inset:0}
.home-showcase-slide{position:absolute;inset:0;opacity:0;transform:scale(1.02);transition:opacity .85s ease,transform 5.8s ease;background:#0b0f12;pointer-events:none;overflow:hidden}
.home-showcase-slide.active{opacity:1;transform:scale(1);z-index:2}
.home-showcase-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,12,15,.76) 0%,rgba(8,12,15,.25) 48%,rgba(8,12,15,.08) 100%),linear-gradient(0deg,rgba(0,0,0,.35),transparent 58%)}
.home-showcase-caption{position:absolute;z-index:3;left:38px;bottom:36px;display:grid;gap:6px;max-width:72%;color:#fff;text-shadow:0 2px 13px rgba(0,0,0,.35)}
.home-showcase-caption span{font-size:11px;font-weight:900;letter-spacing:.16em;color:#f4c3c0}
.home-showcase-caption strong{font-size:clamp(28px,3.25vw,48px);line-height:1.04;letter-spacing:-.025em}
.home-showcase-arrow{position:absolute;z-index:6;top:50%;transform:translateY(-50%);width:46px;height:46px;border:1px solid rgba(255,255,255,.38);border-radius:50%;background:rgba(15,18,21,.38);backdrop-filter:blur(5px);color:#fff;font-size:30px;line-height:1;cursor:pointer}
.home-showcase-arrow:hover{background:rgba(226,59,51,.85)}.home-showcase-arrow.prev{left:18px}.home-showcase-arrow.next{right:18px}
.home-showcase-dots{position:absolute;z-index:7;right:28px;bottom:24px;display:flex;gap:8px}.home-showcase-dot{width:9px;height:9px;border:0;border-radius:99px;padding:0;background:rgba(255,255,255,.5);cursor:pointer;transition:width .2s ease,background .2s ease}.home-showcase-dot.active{width:30px;background:#fff}
.home-settings-banner-card{grid-column:1/-1}.home-banner-settings{display:grid;gap:10px;margin-top:12px}.home-banner-setting-row{display:grid;grid-template-columns:34px minmax(260px,2fr) minmax(150px,.7fr) minmax(190px,1fr);gap:9px;align-items:end;padding:10px;border:1px solid #e4e7e9;border-radius:12px;background:#fafbfb}.home-banner-setting-index{width:30px;height:30px;border-radius:9px;background:#e23b33;color:#fff;display:grid;place-items:center;font-weight:900;align-self:center}.home-banner-setting-row label{display:grid;gap:5px}.home-banner-setting-row label span{font-size:10px;font-weight:900}.home-banner-setting-row input{width:100%;box-sizing:border-box}
.legal-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.legal-settings-grid textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:260px}
.footer{background:#e9e8e8!important;border-top:1px solid #dedcdc!important;padding-top:0!important}.footer-legal-nav{display:grid!important;grid-template-columns:repeat(4,1fr);align-items:center;width:min(calc(100% - 32px),1400px)!important;max-width:1400px!important;padding:20px 0 16px;border-bottom:1px solid rgba(0,0,0,.08)}.footer-legal-nav button{appearance:none;border:0;background:transparent;color:#16283c;font:inherit;font-size:13px;cursor:pointer;padding:8px 10px;text-align:center}.footer-legal-nav button:hover{text-decoration:underline;color:#b72d27}.footer-inner.footer-custom{padding-top:12px;color:#5e6267}.app-version{color:#777;padding-bottom:5px}
.legal-overlay{position:fixed;z-index:2400;inset:0;display:grid;place-items:center;padding:24px;background:rgba(13,17,21,.58);backdrop-filter:blur(5px)}.legal-overlay.hidden{display:none!important}.legal-dialog{width:min(900px,calc(100vw - 32px));max-height:min(82vh,850px);overflow:hidden;background:#fff;border-radius:20px;box-shadow:0 30px 90px rgba(0,0,0,.28);display:grid;grid-template-rows:auto minmax(0,1fr)}.legal-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;border-bottom:1px solid #e5e7e9}.legal-dialog h2{margin:3px 0 0}.legal-dialog-content{overflow:auto;padding:24px 26px;color:#2d353c;line-height:1.7;font-size:14px}.legal-rich-text{white-space:normal}.legal-empty{padding:35px;border:1px dashed #d7dce0;border-radius:14px;text-align:center;background:#fafbfb}.legal-empty strong{display:block;font-size:17px}.legal-empty p{margin:7px 0 0;color:#69737b}.modal-open{overflow:hidden}
@media(max-width:1100px){.home-showcase{min-height:340px}.home-showcase-caption{left:30px;bottom:30px;max-width:75%}}
@media(max-width:900px){.home-showcase{min-height:300px}.home-banner-setting-row{grid-template-columns:34px 1fr}.home-banner-setting-row label{grid-column:2}.legal-settings-grid{grid-template-columns:1fr}.footer-legal-nav{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.home-showcase{min-height:250px;border-radius:18px}.home-showcase-caption{left:20px;bottom:22px;max-width:82%}.home-showcase-arrow{width:36px;height:36px}.home-showcase-dots{right:16px;bottom:14px}.footer-legal-nav{grid-template-columns:1fr;padding:12px 0}.footer-legal-nav button{padding:7px}.legal-overlay{padding:10px}.legal-dialog{width:100%;max-height:92vh;border-radius:15px}.legal-dialog-content{padding:18px}.home-banner-setting-row{grid-template-columns:30px 1fr}}

/* V20 JSON R21 · ficha completa de proveedores y certificados bancarios */
.enterprise-modal>section.purchase-modal{width:min(980px,96vw)}
.supplier-form-sections{display:grid;gap:14px;margin-top:14px}
.supplier-form-section{border:1px solid #e2e6ea;border-radius:14px;padding:15px;background:#fbfcfc}
.supplier-form-section h3{margin:0 0 12px;font-size:14px;color:#1e2832}
.supplier-bank-certificate{padding:12px;border:1px dashed #cbd3da;border-radius:10px;background:#fff}
.supplier-cert-list{display:grid;gap:7px;margin-top:9px}
.supplier-cert-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid #e5e8eb;border-radius:9px;background:#f8f9fa}
.supplier-cert-row>div:first-child{display:grid;gap:2px;min-width:0}
.supplier-cert-row strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.supplier-cert-row small,.supplier-cert-empty{font-size:10px;color:#6e7881}
.supplier-cert-row>div:last-child{display:flex;gap:6px;flex:0 0 auto}
.supplier-cert-row button{border:1px solid #d8dde2;border-radius:7px;background:#fff;padding:6px 8px;font-size:10px;cursor:pointer}
.purchase-supplier-card>div{min-width:0}.purchase-supplier-card small{margin-top:3px}
@media(max-width:760px){.supplier-form-section{padding:12px}.supplier-cert-row{align-items:flex-start;flex-direction:column}.supplier-cert-row>div:last-child{width:100%}.supplier-cert-row button{flex:1}}


/* R22 · permisos de cliente añadidos tras ampliación de Inicio y fichas de artículo */
body.role-client.perm-off-show-home-banner .home-showcase{display:none!important}
body.role-client.perm-off-show-home-top-products #home-top-products-section{display:none!important}
body.role-client.perm-off-show-home-movements #home-movements-section{display:none!important}
body.role-client.perm-off-show-home-announcements #home-announcements-section{display:none!important}
body.role-client.perm-off-show-home-promotions .home-promotions-section{display:none!important}
body.role-client.perm-off-access-suggestions .suggestions-section{display:none!important}
body.role-client.perm-off-show-support-project .support-project{display:none!important}
body.role-client.perm-off-show-article-images #pvp-selected-media,
body.role-client.perm-off-show-article-images .home-product-image,
body.role-client.perm-off-show-article-images .home-moving-thumb{display:none!important}
body.role-client.perm-off-show-article-descriptions #pvp-selected-description,
body.role-client.perm-off-show-article-descriptions .home-product-copy p{display:none!important}

body.role-client.perm-off-show-home-movements .home-split-grid,body.role-client.perm-off-show-home-announcements .home-split-grid{grid-template-columns:1fr!important}

/* R23 · exportación, clientes y documentos */
.admin-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.enterprise-report-filters{display:grid;grid-template-columns:1.35fr 1.35fr 1fr 1fr;gap:10px;margin:14px 0}
.enterprise-report-filters label{display:grid;gap:5px}.enterprise-report-filters label span{font-size:10px;font-weight:900}.enterprise-report-filters select,.enterprise-report-filters input{width:100%;box-sizing:border-box}
.admin-create-client-modal{width:min(980px,96vw)!important}.admin-create-client-modal .admin-edit-grid{padding:14px 0}.admin-create-client-modal textarea{width:100%;box-sizing:border-box}
#admin-delivery-panel,#admin-credits-panel{margin-top:12px}
@media(max-width:900px){.enterprise-report-filters{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.enterprise-report-filters{grid-template-columns:1fr}.admin-header-actions{width:100%;justify-content:stretch}.admin-header-actions button{flex:1}}

/* =========================================================
   R24 · RENTABILIDAD COMERCIAL Y MARGEN NETO
   ========================================================= */
.enterprise-profit-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}.enterprise-profit-head h2{margin:3px 0 6px}.enterprise-profit-head p{margin:0;color:#68727c;font-size:11px}.enterprise-traffic-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:10px;font-weight:800}.enterprise-traffic-legend .green{color:#18864b}.enterprise-traffic-legend .amber{color:#b77900}.enterprise-traffic-legend .red{color:#c22f2f}.enterprise-profit-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}.enterprise-net-kpi[data-traffic="green"]{border-color:#a7dbc0;background:#f3fbf6}.enterprise-net-kpi[data-traffic="amber"]{border-color:#ead49c;background:#fffaf0}.enterprise-net-kpi[data-traffic="red"]{border-color:#edb4b4;background:#fff5f5}.enterprise-profit-toolbar{align-items:end}.enterprise-profit-toolbar label{display:grid;gap:4px;font-size:9px;font-weight:800;color:#5d6771}.enterprise-profit-toolbar label select,.enterprise-profit-toolbar label input{min-width:145px}.enterprise-profit-toolbar #ent-profit-client{min-width:230px}.enterprise-semaphore{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:12px 0 15px}.enterprise-semaphore button,.enterprise-semaphore-total{border:1px solid #e1e5e9;border-radius:11px;padding:11px 13px;background:#fff;text-align:left;display:flex;align-items:center;gap:9px}.enterprise-semaphore button{cursor:default}.enterprise-semaphore strong{font-size:20px}.enterprise-semaphore span{font-size:9px;color:#66717a}.enterprise-semaphore .green{border-left:5px solid #2f9b62;background:#f6fbf8}.enterprise-semaphore .amber{border-left:5px solid #d99a21;background:#fffaf0}.enterprise-semaphore .red{border-left:5px solid #d74a4a;background:#fff6f6}.enterprise-semaphore-total{border-left:5px solid #64748b}.enterprise-profit-table>div{grid-template-columns:minmax(180px,2fr) .65fr 1fr 1fr 1fr 1.2fr 1.2fr .8fr;min-width:980px}.enterprise-profit-table .profit-row>span:first-child{display:flex;align-items:center;gap:7px}.traffic-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:0 0 9px;background:#87919a}.traffic-green .traffic-dot{background:#2f9b62}.traffic-amber .traffic-dot{background:#d99a21}.traffic-red .traffic-dot{background:#d74a4a}.enterprise-profit-table small{display:block;color:#7a838b;font-size:8px}.enterprise-low-margin{margin-top:14px;border:1px solid #e4e7ea;border-radius:11px;padding:10px 12px;background:#fafbfb}.enterprise-low-margin summary{cursor:pointer;font-weight:800;font-size:10px}.enterprise-operation-list{display:grid;gap:7px;margin-top:10px}.enterprise-operation-list article{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid #e6e9ec;border-radius:9px;padding:8px 10px;background:#fff}.enterprise-operation-list article div{display:grid;gap:2px}.enterprise-operation-list article strong{font-size:10px}.enterprise-operation-list article small{font-size:8.5px;color:#707982}.enterprise-operation-list article b{font-size:12px}.enterprise-direct-costs{grid-column:1/-1;border:1px solid #e2e6ea;border-radius:10px;padding:11px;background:#fafbfb;display:grid;gap:7px}.enterprise-direct-costs>small{font-size:9px;color:#6e7780}.enterprise-direct-cost-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.enterprise-direct-cost-grid label{display:grid;gap:4px;font-size:9px}.enterprise-direct-cost-grid input{width:100%;box-sizing:border-box;border:1px solid #d6dce3;border-radius:7px;padding:6px 7px;min-height:34px}.enterprise-direct-cost-grid .wide{grid-column:span 2}.enterprise-direct-costs>button{justify-self:start}
@media(max-width:1250px){.enterprise-profit-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.enterprise-direct-cost-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.enterprise-profit-head{display:grid}.enterprise-profit-kpis{grid-template-columns:1fr 1fr}.enterprise-semaphore{grid-template-columns:1fr 1fr}.enterprise-profit-toolbar label,.enterprise-profit-toolbar label select,.enterprise-profit-toolbar label input,.enterprise-profit-toolbar #ent-profit-client{width:100%;min-width:0}.enterprise-profit-toolbar{display:grid;grid-template-columns:1fr 1fr}.enterprise-profit-toolbar button{grid-column:1/-1}.enterprise-direct-cost-grid{grid-template-columns:1fr}.enterprise-direct-cost-grid .wide{grid-column:auto}}
@media(max-width:480px){.enterprise-profit-kpis,.enterprise-semaphore,.enterprise-profit-toolbar{grid-template-columns:1fr}}

/* R25 · rentabilidad: coste desconocido nunca se presenta como margen positivo */
.enterprise-traffic-legend .incomplete{color:#64748b}.enterprise-net-kpi[data-traffic="incomplete"]{border-color:#cbd5e1;background:#f8fafc}.enterprise-semaphore{grid-template-columns:repeat(5,minmax(0,1fr))}.enterprise-semaphore .incomplete{border-left:5px solid #64748b;background:#f8fafc}.traffic-incomplete .traffic-dot{background:#64748b}.traffic-incomplete{background:#f8fafc!important}
@media(max-width:1050px){.enterprise-semaphore{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.enterprise-semaphore{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.enterprise-semaphore{grid-template-columns:1fr}}

/* =========================================================
   V20 SQL R26 ENTERPRISE · SERVICIO / CRM / INTELIGENCIA
   ========================================================= */
.r26-enterprise-view{display:grid;gap:16px;padding:22px 0 34px;min-width:0}.r26-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.r26-online-state{display:flex;align-items:center;gap:8px;min-height:38px;padding:8px 12px;border:1px solid #cfe4d7;border-radius:999px;background:#f4fbf6;color:#18713d;font-size:11px;white-space:nowrap}.r26-online-state>span{width:9px;height:9px;border-radius:50%;background:#25a45b;box-shadow:0 0 0 4px rgba(37,164,91,.12)}.r26-online-state.offline{border-color:#eadab5;background:#fffaf0;color:#94620b}.r26-online-state.offline>span{background:#dda126;box-shadow:0 0 0 4px rgba(221,161,38,.14)}
.r26-subnav{display:flex;gap:6px;overflow:auto;padding:5px;border:1px solid #dde2e6;border-radius:13px;background:#fff;box-shadow:0 5px 18px rgba(24,28,33,.035)}.r26-subnav button{flex:0 0 auto;border:0;border-radius:9px;background:transparent;padding:9px 12px;font:inherit;font-size:11px;font-weight:850;color:#44505a;cursor:pointer}.r26-subnav button:hover{background:#f5f6f7}.r26-subnav button.active{background:#e23b33;color:#fff}.r26-panel{min-width:0;display:grid;gap:15px}.r26-panel.hidden{display:none!important}
.r26-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.r26-toolbar h2{margin:0}.r26-toolbar p{margin:5px 0 0;color:#66717b;font-size:12px}.r26-toolbar>div:last-child{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.r26-filter-row{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding:12px 14px;border:1px solid #e0e4e7;border-radius:13px;background:#fff}.r26-filter-row label{display:grid;gap:4px;min-width:190px}.r26-filter-row label>span{font-size:10px;font-weight:900}.r26-filter-row input,.r26-filter-row select{min-height:38px;border:1px solid #d8dde1;border-radius:8px;padding:7px 9px;background:#fff;font:inherit}
.r26-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.r26-kpi{display:grid;gap:5px;padding:16px;border:1px solid #e0e4e7;border-radius:15px;background:#fff;box-shadow:0 7px 22px rgba(24,28,33,.045);min-width:0}.r26-kpi span{font-size:10px;font-weight:900;color:#6d7780;text-transform:uppercase;letter-spacing:.045em}.r26-kpi strong{font-size:22px;line-height:1.05;color:#1c2329;overflow-wrap:anywhere}.r26-kpi small{font-size:10px;color:#68737c}.r26-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.r26-card{min-width:0;padding:16px;border:1px solid #e0e4e7;border-radius:16px;background:#fff;box-shadow:0 7px 22px rgba(24,28,33,.04)}.r26-card>header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:10px}.r26-card h2,.r26-card h3{margin:2px 0 0}.r26-list{display:grid;gap:7px;min-width:0}.r26-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid #e7eaed;border-radius:11px;background:#fafbfb;min-width:0}.r26-row.actionable{cursor:pointer}.r26-row.actionable:hover{border-color:#efbbb8;background:#fff8f7}.r26-row>div:first-child{min-width:0}.r26-row strong{display:block;font-size:12px;color:#20272d}.r26-row span,.r26-row small{display:block;margin-top:2px;color:#6b757e;font-size:10px;line-height:1.35}.r26-row>small{flex:0 0 auto;text-align:right}.r26-row-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.r26-row-actions button,.r26-table button{border:1px solid #d9dee2;border-radius:7px;background:#fff;padding:5px 7px;color:#39434b;font:inherit;font-size:9.5px;font-weight:800;cursor:pointer}.r26-row-actions button:hover,.r26-table button:hover{border-color:#e5aaa6;color:#ae312b;background:#fff7f6}.r26-empty{padding:20px;border:1px dashed #d7dce0;border-radius:11px;background:#fafbfb;text-align:center;color:#737d85;font-size:11px}
.r26-table-wrap{overflow:auto;border:1px solid #e0e4e7;border-radius:14px;background:#fff}.r26-table{width:100%;border-collapse:collapse;min-width:820px}.r26-table th{padding:9px 10px;border-bottom:1px solid #e2e6e9;background:#f5f7f8;text-align:left;color:#67717b;font-size:9.5px;text-transform:uppercase;letter-spacing:.035em;white-space:nowrap}.r26-table td{padding:10px;border-bottom:1px solid #edf0f2;font-size:11px;vertical-align:top}.r26-table tbody tr:last-child td{border-bottom:0}.r26-table td>small{display:block;margin-top:3px;color:#737c84;font-size:9px}.r26-status{display:inline-flex!important;align-items:center;width:max-content;padding:4px 7px!important;margin:0!important;border-radius:999px!important;background:#eef1f3;color:#59636c!important;font-size:8.5px!important;font-weight:900;text-transform:uppercase}.r26-status.open,.r26-status.active,.r26-status.approved,.r26-status.completed,.r26-status.closed,.r26-status.won{background:#e5f5eb;color:#1c7440!important}.r26-status.in_progress,.r26-status.scheduled,.r26-status.pending,.r26-status.waiting_parts,.r26-status.issued{background:#fff4da;color:#916106!important}.r26-status.rejected,.r26-status.cancelled,.r26-status.lost,.r26-status.overdue{background:#fde9e7;color:#ad332d!important}
.r26-stock-summary{display:grid;grid-template-columns:13px 42px 1fr;align-items:center;gap:8px;padding:10px 12px;border:1px solid #e6e9eb;border-radius:10px}.r26-stock-summary b{font-size:16px}.r26-stock-summary small{color:#68727a}.r26-light{width:11px;height:11px;border-radius:50%}.r26-light.green{background:#2c9b58}.r26-light.amber{background:#e1a526}.r26-light.red{background:#d83d34}.r26-light.blue{background:#397dba}.r26-stock-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:900}.r26-stock-pill.green{background:#e6f5ec;color:#1e7944}.r26-stock-pill.amber{background:#fff3d7;color:#916109}.r26-stock-pill.red{background:#fde9e7;color:#ae332d}.r26-stock-pill.blue{background:#e8f2fb;color:#266693}
.r26-modal{position:fixed;z-index:99995;inset:0;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(17,22,27,.64);backdrop-filter:blur(4px)}.r26-modal-dialog{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(760px,96vw);max-height:94vh;overflow:hidden;border-radius:17px;background:#fff;box-shadow:0 24px 80px rgba(0,0,0,.32)}.r26-modal-dialog.wide{width:min(1120px,97vw)}.r26-modal-dialog>header,.r26-modal-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 17px;border-bottom:1px solid #e2e5e8}.r26-modal-dialog>footer{justify-content:flex-end;border-top:1px solid #e2e5e8;border-bottom:0}.r26-modal-dialog>header h2{margin:2px 0}.r26-modal-dialog>header>[data-r26-close]{border:0;background:transparent;font-size:25px;cursor:pointer}.r26-modal-body{padding:16px 17px;overflow:auto}.r26-modal-msg{margin-right:auto;font-size:10px;color:#65717a}.r26-modal-msg.error{color:#b22f29}.r26-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.r26-form-grid label{display:grid;gap:5px}.r26-form-grid label.wide{grid-column:1/-1}.r26-form-grid label>span{font-size:10px;font-weight:900}.r26-form-grid input,.r26-form-grid select,.r26-form-grid textarea{box-sizing:border-box;width:100%;min-height:40px;border:1px solid #d6dce0;border-radius:8px;padding:8px 9px;background:#fff;font:inherit}.r26-form-grid textarea{min-height:90px;resize:vertical}.r26-form-help{grid-column:1/-1;padding:9px 11px;border-radius:9px;background:#f6f8f9;color:#69737b;font-size:10px;line-height:1.45}
.r26-trace{display:grid;gap:12px}.r26-trace-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px;border-radius:13px;background:#171b20;color:#fff}.r26-trace-head strong{font-size:21px}.r26-trace-head span{display:block;color:#cdd2d6;font-size:10px}.r26-trace-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.r26-trace-stat{padding:11px;border:1px solid #e3e6e9;border-radius:10px;background:#fff}.r26-trace-stat span{display:block;color:#717a82;font-size:9px}.r26-trace-stat strong{display:block;margin-top:3px;font-size:15px}.r26-calendar-item{display:grid;grid-template-columns:115px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 12px;border:1px solid #e2e6e9;border-radius:11px;background:#fff}.r26-calendar-item time{font-size:10px;font-weight:900;color:#b3332d}.r26-calendar-item strong{display:block;font-size:12px}.r26-calendar-item span{display:block;margin-top:2px;font-size:10px;color:#6d767e}.r26-toast{position:fixed;z-index:100000;right:20px;bottom:20px;max-width:390px;padding:11px 14px;border-radius:10px;background:#252a30;color:#fff;box-shadow:0 13px 38px rgba(0,0,0,.24);font-size:11px;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}.r26-toast.show{opacity:1;transform:translateY(0)}.r26-toast.success{background:#227744}.r26-toast.error{background:#ad302b}
@media(max-width:1250px){.r26-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.r26-trace-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.r26-enterprise-view{padding-top:14px}.r26-heading,.r26-toolbar{display:grid}.r26-online-state{width:max-content}.r26-toolbar>div:last-child{justify-content:start}.r26-grid-2,.r26-form-grid{grid-template-columns:1fr}.r26-form-grid label.wide{grid-column:auto}.r26-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.r26-kpi strong{font-size:18px}.r26-filter-row{display:grid}.r26-filter-row label{min-width:0}.r26-modal{padding:0}.r26-modal-dialog,.r26-modal-dialog.wide{width:100vw;max-height:100vh;height:100vh;border-radius:0}.r26-calendar-item{grid-template-columns:1fr}.r26-trace-grid{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.r26-kpi-grid,.r26-trace-grid{grid-template-columns:1fr}}

/* R26 Enterprise · ajustes finales de permisos, valoración y acciones */
.permission-hidden{display:none!important}
.r26-stock-value{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;margin:0 0 9px;border:1px solid #e1e5e8;border-radius:10px;background:#f7f9fa}.r26-stock-value strong{font-size:12px}.r26-stock-value span{font-size:10px;color:#68737c}
.r26-valuation-badge{display:grid;gap:2px;min-width:180px;padding:9px 11px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:rgba(255,255,255,.08);text-align:right}.r26-valuation-badge span,.r26-valuation-badge small{font-size:9px;color:#cdd2d6}.r26-valuation-badge strong{font-size:16px;color:#fff}
.r26-row-actions button.danger,.r26-table button.danger{border-color:#efc4c1;color:#a9342e}.r26-row-actions button.danger:hover,.r26-table button.danger:hover{background:#fff0ef;border-color:#df8882}
@media(max-width:760px){.r26-stock-value{align-items:flex-start;flex-direction:column}.r26-valuation-badge{min-width:0;width:100%;text-align:left}}

/* R33 · Orden de trabajo económica */
.r33-work{display:grid;gap:14px}.r33-inline-select{display:flex;gap:6px}.r33-inline-select select{flex:1}.r33-inline-select button{white-space:nowrap}.r33-section,.r33-summary,.r33-quick-panel{border:1px solid #dfe4e8;border-radius:12px;padding:12px;background:#fff}.r33-section>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.r33-section>header small{display:block;color:#68717e;margin-top:2px}.r33-cost-row,.r33-material-row{display:grid;grid-template-columns:1.4fr 1fr .55fr .7fr auto;gap:7px;align-items:end;padding:8px 0;border-bottom:1px solid #edf0f2}.r33-material-row{grid-template-columns:1fr 2fr .55fr .75fr .65fr .75fr auto}.r33-cost-row label,.r33-material-row label{font-size:10px;font-weight:700;text-transform:uppercase;color:#53606d}.r33-cost-row input,.r33-cost-row select,.r33-material-row input{width:100%;margin-top:3px}.r33-cost-row .grow,.r33-material-row .grow{min-width:0}.r33-search{position:relative;margin-bottom:8px}.r33-search>input{width:100%}.r33-results{position:absolute;z-index:20;left:0;right:0;top:100%;max-height:260px;overflow:auto;background:#fff;border:1px solid #ccd3da;border-radius:8px;box-shadow:0 10px 30px #0002}.r33-results button{display:grid;width:100%;grid-template-columns:1fr 2fr 1fr;text-align:left;padding:8px;border:0;border-bottom:1px solid #eee;background:#fff}.r33-results button:hover{background:#f5f7f8}.r33-summary{background:#f7faf8;border-color:#cbded0}.r33-summary [data-summary]{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.r33-summary [data-summary]>div{padding:8px;background:#fff;border-radius:8px;border:1px solid #e0e6e2}.r33-summary [data-summary] span{display:block;font-size:10px;color:#657064}.r33-summary [data-summary] b{font-size:15px}.r33-summary [data-summary] .total{border:2px solid #207a3a}.r33-quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:8px}.wide-note{grid-column:1/-1;color:#68717e}.purchase-target-badge{margin:4px 0 8px;padding:5px 8px;border-radius:6px;background:#eef7f0;color:#176b32;font-size:11px;font-weight:700}@media(max-width:900px){.r33-material-row,.r33-cost-row,.r33-quick-grid{grid-template-columns:1fr 1fr}.r33-summary [data-summary]{grid-template-columns:1fr 1fr}}

/* R34 */
.r34-work-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.r34-warehouse-tools{display:flex;gap:8px;align-items:center;margin:10px 0}.r34-warehouse-tools input{min-width:320px;flex:1}.article-list-trash{font-size:16px;padding:7px 9px}.r26-modal-dialog{user-select:text}.r26-modal{cursor:default}
/* R34 · Modales: solo cerrar con la X de cabecera */
.r26-modal-dialog>footer [data-r26-close],
.enterprise-modal footer [data-close],
.enterprise-modal footer [data-credit-modal-close],
.purchase-modal>footer [data-close],
.stock-issue-modal>footer [data-close]{display:none!important}

/* R35 · Gestión de empleados */
.employee-view{display:grid;gap:16px;padding-bottom:34px}.employee-heading{align-items:center}.employee-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) 170px 170px auto;gap:10px;align-items:center}.employee-toolbar input,.employee-toolbar select{min-height:42px;border:1px solid var(--grey-300);border-radius:9px;background:#fff;padding:0 11px;font:inherit}.employee-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.employee-kpi{background:#fff;border:1px solid var(--grey-300);border-radius:12px;padding:14px}.employee-kpi span{display:block;font-size:10px;font-weight:900;text-transform:uppercase;color:var(--grey-700)}.employee-kpi strong{display:block;font-size:24px;margin-top:5px}.employee-list{display:grid;gap:10px}.employee-card{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:14px;align-items:center;background:#fff;border:1px solid var(--grey-300);border-radius:13px;padding:13px}.employee-avatar{width:64px;height:64px;border-radius:12px;background:#f1f3f5;display:grid;place-items:center;overflow:hidden;font-weight:900;font-size:22px}.employee-avatar img{width:100%;height:100%;object-fit:cover}.employee-main h3{margin:0 0 4px;font-size:15px}.employee-meta{display:flex;gap:8px 16px;flex-wrap:wrap;color:var(--grey-700);font-size:10px}.employee-hours{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.employee-chip{background:#f4f5f6;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800}.employee-chip.hours{background:#eaf7ee;color:#14733a}.employee-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.employee-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.employee-modal-grid label{display:grid;gap:5px;font-size:10px;font-weight:800}.employee-modal-grid .wide{grid-column:1/-1}.employee-modal-grid input,.employee-modal-grid select,.employee-modal-grid textarea{width:100%;border:1px solid var(--grey-300);border-radius:8px;padding:9px;font:inherit}.employee-section{border-top:1px solid var(--grey-300);padding-top:12px;margin-top:12px}.employee-doc-list{display:grid;gap:7px;margin-top:10px}.employee-doc{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;background:#f7f8f9;border-radius:8px}.employee-labor-list{max-height:240px;overflow:auto}.employee-labor-row{display:grid;grid-template-columns:90px 120px minmax(0,1fr) 70px;gap:8px;padding:7px 0;border-bottom:1px solid #eee;font-size:10px}.employee-photo-preview{width:110px;height:110px;border-radius:12px;background:#f3f4f5;overflow:hidden;display:grid;place-items:center}.employee-photo-preview img{width:100%;height:100%;object-fit:cover}@media(max-width:760px){.employee-toolbar,.employee-kpis,.employee-modal-grid{grid-template-columns:1fr}.employee-card{grid-template-columns:56px 1fr}.employee-avatar{width:52px;height:52px}.employee-actions{grid-column:1/-1;justify-content:flex-start}.employee-modal-grid .wide{grid-column:auto}.employee-labor-row{grid-template-columns:72px 96px 1fr 55px}}

/* =========================================================
   R35.1 · MENÚ PRINCIPAL RESPONSIVE SIN SCROLL HORIZONTAL
   En escritorio el menú ocupa todo el ancho útil y se reparte
   en dos filas equilibradas. Evita la barra horizontal y
   mantiene todos los módulos visibles de un vistazo.
   ========================================================= */
@media (min-width: 1100px){
  main.container>.tool-tabs{
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    gap:7px!important;
    width:100%!important;
    max-width:1320px!important;
    margin:20px auto 16px!important;
    padding:7px!important;
    overflow:visible!important;
    flex-wrap:unset!important;
    justify-content:stretch!important;
    scrollbar-width:none!important;
  }
  main.container>.tool-tabs::-webkit-scrollbar{display:none!important}
  main.container>.tool-tabs .tool-tab{
    width:100%!important;
    min-width:0!important;
    min-height:46px!important;
    padding:8px 9px!important;
    justify-content:center!important;
    text-align:center!important;
    white-space:normal!important;
    line-height:1.2!important;
  }
}

@media (min-width: 760px) and (max-width:1099px){
  main.container>.tool-tabs{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:6px!important;
    width:100%!important;
    max-width:100%!important;
    margin:16px auto 14px!important;
    padding:6px!important;
    overflow:visible!important;
  }
  main.container>.tool-tabs .tool-tab{
    width:100%!important;
    min-width:0!important;
    min-height:44px!important;
    justify-content:center!important;
    text-align:center!important;
    white-space:normal!important;
  }
}


/* =========================================================
   R35.6 · AJUSTES UI: menú horizontal, carrusel alto, empleados e imágenes locales
   ========================================================= */
.employee-profile-head{display:grid;grid-template-columns:150px minmax(0,1fr);gap:22px;align-items:center;margin:-2px 0 18px;padding:18px;border:1px solid var(--grey-300);border-radius:14px;background:linear-gradient(135deg,#fff 0%,#f7f8f9 100%)}
.employee-photo-preview-head{width:140px;height:140px;border-radius:16px;box-shadow:0 8px 24px rgba(0,0,0,.10)}
.employee-profile-head-copy{display:grid;align-content:center;justify-items:start;gap:5px;min-width:0}.employee-profile-head-copy h2{margin:0;font-size:24px}.employee-profile-head-copy p{margin:0 0 7px;color:var(--grey-700)}.employee-profile-head-copy small{display:block;color:var(--grey-700)}
.employee-photo-upload{display:inline-flex!important;margin-top:4px}

.home-showcase{height:clamp(520px,48vw,660px)!important;min-height:520px!important}
.home-banner-setting-row{grid-template-columns:42px 150px minmax(190px,.9fr) minmax(150px,.7fr) minmax(210px,1fr)!important;align-items:center!important}
.home-banner-upload-preview{width:150px;height:92px;border-radius:10px;background:#e9ecef center/cover no-repeat;border:1px solid var(--grey-300);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.home-banner-file-label{align-self:stretch;display:grid!important;align-content:center;gap:6px!important}.home-banner-upload-button{display:inline-flex!important;width:max-content;cursor:pointer}.home-banner-file-label small{font-size:9px;color:var(--grey-700);font-weight:600;text-transform:none}

@media (min-width:760px){
  main.container>.tool-tabs{display:flex!important;flex-wrap:nowrap!important;width:100%!important;max-width:1320px!important;overflow:visible!important;gap:4px!important;padding:6px!important;margin:18px auto 15px!important;justify-content:stretch!important}
  main.container>.tool-tabs .tool-tab{flex:1 1 0!important;width:auto!important;min-width:0!important;min-height:48px!important;padding:7px 5px!important;font-size:clamp(9px,.72vw,12px)!important;line-height:1.12!important;white-space:normal!important;justify-content:center!important;text-align:center!important;gap:4px!important}
  main.container>.tool-tabs .tool-tab-icon{width:15px!important;height:15px!important;flex:0 0 15px!important}
  main.container>.tool-tabs .tool-tab-icon svg{width:15px!important;height:15px!important}
}
@media (max-width:1050px) and (min-width:760px){main.container>.tool-tabs .tool-tab-icon{display:none!important}main.container>.tool-tabs .tool-tab{font-size:10px!important;padding-inline:3px!important}}
@media (max-width:759px){main.container>.tool-tabs{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important;overflow:visible!important}.home-showcase{height:390px!important;min-height:390px!important}.employee-profile-head{grid-template-columns:100px minmax(0,1fr);padding:13px;gap:14px}.employee-photo-preview-head{width:96px;height:96px}.employee-profile-head-copy h2{font-size:19px}.home-banner-setting-row{grid-template-columns:36px 100px 1fr!important}.home-banner-upload-preview{width:100px;height:70px}.home-banner-setting-row>label:nth-of-type(2),.home-banner-setting-row>label:nth-of-type(3){grid-column:2/-1}}

/* R35.8 · Carrusel con imagen real y gestión de foto de empleado */
.home-showcase-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;display:block;z-index:0}
.home-showcase-image.is-error{display:none}
.home-showcase-shade{z-index:1}.home-showcase-caption{z-index:2}
.employee-photo-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:4px}
.employee-photo-actions .employee-photo-upload{margin-top:0!important}

/* R35 OT/client/date filters + employee labor billing client */
.r26-work-filters label:first-child{min-width:260px;flex:1 1 260px}.r26-work-filters label:nth-child(2){min-width:230px}.r26-work-filters label:nth-child(4),.r26-work-filters label:nth-child(5){min-width:145px}
.employee-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.employee-section-title h3{margin:0 0 4px}.employee-section-title p{margin:0;color:var(--grey-700);font-size:10px;max-width:720px}.employee-labor-filters{display:grid;grid-template-columns:160px 160px minmax(220px,1fr) auto;gap:8px;align-items:end;margin:10px 0}.employee-labor-filters label{display:grid;gap:4px;font-size:10px;font-weight:800}.employee-labor-filters input,.employee-labor-filters select{min-height:38px;border:1px solid var(--grey-300);border-radius:8px;padding:7px 9px;background:#fff;font:inherit}.employee-labor-table{min-width:720px}.employee-labor-row{grid-template-columns:90px 120px minmax(150px,.9fr) minmax(220px,1.5fr) 70px;align-items:center}.employee-labor-row.employee-labor-head{position:sticky;top:0;background:#fff;z-index:1;font-weight:900;color:var(--grey-700);border-bottom:1px solid var(--grey-300)}.employee-labor-client{font-weight:800;color:#2f3a44}
@media(max-width:760px){.employee-labor-filters{grid-template-columns:1fr 1fr}.employee-labor-filters label:nth-child(3),.employee-labor-filters button{grid-column:1/-1}.employee-labor-list{overflow:auto}.employee-labor-row{grid-template-columns:82px 100px 150px 220px 60px}}

/* R35.9 · paginación y rendimiento de órdenes de trabajo */
.r26-work-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 4px 2px;color:var(--grey-700);font-size:11px}.r26-work-pagination>div{display:flex;align-items:center;gap:8px}.r26-work-pagination button{min-height:34px;padding:6px 10px}.r26-work-pagination button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:680px){.r26-work-pagination{align-items:stretch;flex-direction:column}.r26-work-pagination>div{justify-content:space-between}}

/* R35.7 · Configuración > Actualizaciones */
.enterprise-update-version{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.enterprise-update-version>div{padding:14px 16px;border:1px solid var(--border,#d9dee7);border-radius:14px;background:rgba(255,255,255,.72)}.enterprise-update-version small{display:block;color:var(--muted,#687386);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.enterprise-update-version strong{display:block;margin-top:4px;font-size:1.15rem}.enterprise-update-info{margin:14px 0;padding:14px 16px;border-radius:14px;background:rgba(15,23,42,.04)}.enterprise-update-info:empty{display:none}.enterprise-update-info ul{margin:.5rem 0 0 1.2rem;padding:0}@media(max-width:720px){.enterprise-update-version{grid-template-columns:1fr}}
.license-module-hidden{display:none!important}


/* 36.6.1 · hotfix centrado, menú de cuenta y cabecera */
.topbar{display:flex;justify-content:center;overflow:visible}
.topbar-inner{width:min(calc(100% - 32px),1320px);margin:0 auto;overflow:visible}
.account-zone{display:flex;justify-content:flex-end;overflow:visible}
.account-menu{right:0;left:auto;min-width:190px;max-width:min(92vw,240px)}
main.container{width:min(calc(100% - 32px),1320px);margin-left:auto;margin-right:auto}
@media (max-width:759px){
  .topbar-inner,main.container{width:calc(100% - 18px)!important}
  .account-menu{right:0;left:auto;transform:none}
}


/* 36.6.13 · cambio de contraseña obligatorio */
body.password-change-required .tool-tabs,body.password-change-required .cart-toggle,body.password-change-required .account-toggle{pointer-events:none;opacity:.45}
body.password-change-required .account-overlay{display:grid!important}


/* =========================================================
   36.6.13 · LEGIBILIDAD DE FORMULARIOS + ANCHO DE ESCRITORIO
   Cambios exclusivamente visuales. No modifica lógica de negocio.
   ========================================================= */
:root{--yanmar-desktop-shell:1200px}

/* Mi perfil: el contenido dinámico ya no queda encerrado en media columna. */
.account-profile-data{display:grid!important;grid-template-columns:minmax(0,1fr)!important;min-width:0}
.account-profile-data>.profile-edit-form{width:100%;min-width:0}
.profile-edit-form,.profile-edit-grid,.profile-edit-grid label{min-width:0}
.profile-locked-grid-single{grid-template-columns:minmax(0,1fr)!important}
.profile-edit-grid input,.profile-edit-grid select{min-width:0;text-overflow:clip}

/* Presupuestos: controles suficientemente anchos para mostrar sus valores. */
.budget-commercial-grid{grid-template-columns:repeat(3,minmax(150px,1fr))!important;align-items:end}
.budget-commercial-grid label{min-width:0}
.budget-commercial-grid label>span{white-space:normal;overflow-wrap:anywhere;line-height:1.25}
.budget-commercial-grid input,.budget-commercial-grid select{min-width:0;padding-right:30px}
.budget-commercial-grid input:not([type="number"]){padding-right:10px}

/* Escritorio algo más estrecho para dejar laterales libres. */
@media (min-width:901px){
  main.container,.topbar-inner,.footer-inner.footer-custom,.app-version{
    width:min(calc(100% - 48px),var(--yanmar-desktop-shell))!important;
    max-width:var(--yanmar-desktop-shell)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  main.container>.tool-tabs{
    width:100%!important;
    max-width:var(--yanmar-desktop-shell)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
}
@media (max-width:1050px) and (min-width:701px){
  .budget-commercial-grid{grid-template-columns:repeat(2,minmax(160px,1fr))!important}
}
@media (max-width:700px){
  .budget-commercial-grid{grid-template-columns:1fr!important}
  .profile-edit-grid,.profile-locked-grid{grid-template-columns:1fr!important}
  .profile-wide{grid-column:auto!important}
}


/* =========================================================
   36.6.18 · DENSIDAD VISUAL + NAVEGACIÓN HORIZONTAL CONTINUA
   Solo presentación. La lógica funcional permanece intacta.
   ========================================================= */
:root{--yanmar-desktop-shell:1060px}
body{font-size:13px;line-height:1.42}
h1{font-size:28px!important;line-height:1.12!important}
h2{font-size:20px!important;line-height:1.18!important}
h3{font-size:15px!important;line-height:1.22!important}
p,.field label,label,.admin-form label{font-size:12.5px}
input,select,textarea,button{font-size:12.5px!important}
small,.helper,.hint,.muted{font-size:10.5px}
.hero{padding-top:32px}.hero h1{font-size:27px!important}.hero p{font-size:13.5px!important}
.settings-page-heading,.page-heading{margin-bottom:8px!important}

@media (min-width:901px){
  main.container,.topbar-inner,.footer-inner.footer-custom,.app-version{
    width:min(calc(100% - 64px),var(--yanmar-desktop-shell))!important;
    max-width:var(--yanmar-desktop-shell)!important;
  }
}

/* Menú principal: una sola línea, cada botón conserva su texto completo. */
main.container>.tool-tabs{
  display:flex!important;flex-wrap:nowrap!important;align-items:center!important;
  justify-content:space-between!important;gap:2px!important;overflow-x:auto!important;
  overflow-y:hidden!important;padding:5px!important;scrollbar-width:thin;
}
main.container>.tool-tabs .tool-tab{
  flex:0 0 auto!important;width:auto!important;min-width:max-content!important;
  min-height:40px!important;padding:6px 7px!important;font-size:9.5px!important;
  line-height:1!important;white-space:nowrap!important;text-align:center!important;gap:3px!important;
}
main.container>.tool-tabs .tool-tab-icon,
main.container>.tool-tabs .tool-tab-icon svg{width:12px!important;height:12px!important;flex-basis:12px!important}

/* Submenús: siempre horizontales y sin partir etiquetas. */
.module-subnav,.settings-subnav,.r26-subnav,.document-config-tabs,.article-subnav,
[data-budget-subnav],.budget-subnav,.admin-subnav{
  display:flex!important;flex-wrap:nowrap!important;align-items:center!important;
  gap:3px!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:thin;
}
.module-subnav button,.settings-subnav button,.r26-subnav button,.document-config-tabs button,
.article-subnav button,[data-settings-tab],[data-budget-subtab],[data-article-subtab],[data-purchase-subtab]{
  flex:0 0 auto!important;min-width:max-content!important;white-space:nowrap!important;
  font-size:9.5px!important;line-height:1!important;padding:7px 9px!important;min-height:34px!important;
}
.settings-subnav{position:sticky!important;top:68px!important}

/* Formularios y tarjetas algo más compactos sin perder legibilidad. */
.admin-card,.card,.selector-card{padding:18px}
.field select,.field input,.field textarea{font-size:13px!important;padding:10px 12px}


/* =========================================================
   36.6.18 · MENÚ SIN RECORTE + ESTADO GLOBAL + VERSIÓN CENTRADA
   ========================================================= */
@media (min-width:901px){
  main.container>.tool-tabs{
    display:flex!important;flex-wrap:nowrap!important;align-items:center!important;
    justify-content:space-between!important;gap:1px!important;
    overflow:visible!important;padding:5px 4px!important;
  }
  main.container>.tool-tabs .tool-tab{
    flex:0 0 auto!important;width:auto!important;min-width:0!important;max-width:none!important;
    min-height:38px!important;padding:6px 3px!important;font-size:8.6px!important;
    line-height:1!important;white-space:nowrap!important;overflow:visible!important;
    text-overflow:clip!important;gap:2px!important;
  }
  main.container>.tool-tabs .tool-tab-icon,
  main.container>.tool-tabs .tool-tab-icon svg{
    width:10px!important;height:10px!important;flex:0 0 10px!important;
  }
}
@media (max-width:900px){
  main.container>.tool-tabs{overflow-x:auto!important;overflow-y:hidden!important;justify-content:flex-start!important}
  main.container>.tool-tabs .tool-tab{white-space:nowrap!important;min-width:max-content!important}
}

/* Indicador de conectividad global: simétrico al reloj, abajo a la derecha. */
.global-connectivity{
  position:fixed!important;right:max(12px,env(safe-area-inset-right))!important;left:auto!important;
  bottom:max(12px,env(safe-area-inset-bottom))!important;z-index:245!important;
  min-height:34px!important;padding:7px 10px!important;margin:0!important;
  box-shadow:0 7px 24px rgba(20,24,28,.10)!important;backdrop-filter:blur(10px);
  background:rgba(244,251,246,.95)!important;pointer-events:none!important;
  transition:bottom .18s ease,transform .18s ease!important;
}
.global-connectivity.offline{background:rgba(255,250,240,.96)!important}
body.clock-clear-footer .global-connectivity{
  bottom:calc(var(--footer-visible-height,58px) + 12px + env(safe-area-inset-bottom))!important;
}
@media(max-width:700px){
  .global-connectivity{right:8px!important;bottom:8px!important;padding:6px 8px!important;font-size:9.5px!important}
  body.clock-clear-footer .global-connectivity{bottom:calc(var(--footer-visible-height,58px) + 8px + env(safe-area-inset-bottom))!important}
}
@media print{.global-connectivity{display:none!important}}

/* Versión: siempre centrada respecto a toda la página. */
.footer .app-version{
  display:block!important;width:100%!important;max-width:none!important;
  margin:8px auto 0!important;padding:0 12px 7px!important;
  text-align:center!important;align-self:center!important;justify-self:center!important;
  font-size:9.5px!important;line-height:1.3!important;color:#70757b!important;
}


/* =========================================================
   36.6.19 · UNIFICACION TIPOGRAFICA + SUBMENUS RESPONSIVE
   Correccion visual global sobre 36.6.18 estable.
   ========================================================= */
:root{
  --yanmar-desktop-shell:1200px;
  --yanmar-ui-font:13px;
  --yanmar-ui-small:11px;
  --yanmar-subnav-font:11.5px;
}
body{font-size:var(--yanmar-ui-font)!important;line-height:1.42}
input,select,textarea,button{font-size:12.5px!important}
small,.helper,.hint,.muted{font-size:10.5px!important}

/* Ancho de trabajo suficiente en escritorio; nunca permitir que un bloque hijo
   ensanche la pagina completa. */
@media (min-width:901px){
  main.container,.topbar-inner,.footer-inner.footer-custom,.app-version{
    width:min(calc(100% - 48px),var(--yanmar-desktop-shell))!important;
    max-width:var(--yanmar-desktop-shell)!important;
  }
}
main.container,.admin-card,.card,.selector-card,.module-subpanel{min-width:0}

/* Menú principal legible: no volver a reducirlo a 8-9px. Si el viewport no
   permite una sola línea, el propio contenedor desplaza horizontalmente. */
main.container>.tool-tabs{
  display:flex!important;flex-wrap:nowrap!important;align-items:center!important;
  justify-content:flex-start!important;gap:4px!important;padding:6px!important;
  overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:thin!important;
}
main.container>.tool-tabs .tool-tab{
  flex:1 1 auto!important;min-width:max-content!important;min-height:40px!important;
  padding:7px 8px!important;font-size:10.5px!important;line-height:1.15!important;
  white-space:nowrap!important;text-align:center!important;gap:4px!important;
}
main.container>.tool-tabs .tool-tab-icon,
main.container>.tool-tabs .tool-tab-icon svg{width:12px!important;height:12px!important;flex:0 0 12px!important}

/* Todos los submenús de módulos comparten exactamente la misma métrica. */
.module-subnav,.settings-subnav,.r26-subnav,.document-config-tabs,.article-subnav,
.purchase-subnav,.order-workspace-subnav,[data-budget-subnav],.budget-subnav,.admin-subnav{
  display:flex!important;flex-wrap:nowrap!important;align-items:center!important;
  gap:5px!important;max-width:100%!important;min-width:0!important;
  overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:thin!important;
  padding:6px!important;
}
.module-subnav button,.settings-subnav button,.r26-subnav button,.document-config-tabs button,
.article-subnav button,.purchase-subnav button,.order-workspace-subnav button,
[data-budget-subnav] button,.budget-subnav button,.admin-subnav button,
[data-settings-tab],[data-budget-subtab],[data-article-subtab],[data-purchase-subtab]{
  flex:0 0 auto!important;min-width:max-content!important;min-height:36px!important;
  padding:8px 11px!important;font-size:var(--yanmar-subnav-font)!important;
  line-height:1.15!important;white-space:nowrap!important;font-weight:800!important;
}

/* Stock: la fila de filtros nunca puede salirse de la tarjeta. En escritorio
   caben los siete controles principales; Limpiar filtros queda en segunda línea. */
.stock-filter-grid{
  width:100%!important;max-width:100%!important;min-width:0!important;
  display:grid!important;
  grid-template-columns:minmax(250px,2fr) repeat(4,minmax(105px,1fr)) minmax(170px,1.35fr) 76px!important;
  gap:9px!important;align-items:end!important;
}
.stock-filter-grid label{min-width:0!important;font-size:10.5px!important;line-height:1.2!important}
.stock-filter-grid label.wide{grid-column:auto!important}
.stock-filter-grid input,.stock-filter-grid select{width:100%!important;min-width:0!important;max-width:100%!important}
#stock-clear-filters{grid-column:1/-1!important;justify-self:start!important;min-height:32px!important;padding:6px 10px!important}

@media (max-width:1179px){
  .stock-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .stock-filter-grid label.wide{grid-column:span 2!important}
  #stock-clear-filters{grid-column:1/-1!important}
}
@media (max-width:820px){
  .stock-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .stock-filter-grid label.wide{grid-column:1/-1!important}
}
@media (max-width:560px){
  .stock-filter-grid{grid-template-columns:1fr!important}
  .stock-filter-grid label.wide,#stock-clear-filters{grid-column:auto!important}
  main.container>.tool-tabs .tool-tab{font-size:11px!important}
}
\n\n/* =========================================================
   36.6.21 · RESPONSIVE GLOBAL + MENÚ SIN SCROLL + SEMÁFORO
   ========================================================= */
:root{
  --yanmar-desktop-shell:1328px;
  --yanmar-ui-red:#E23B33;
  --yanmar-ui-bg:#f4f5f7;
  --yanmar-ui-line:#dcdfe4;
}
html,body{max-width:100%;overflow-x:hidden}
img,svg,video,canvas{max-width:100%}
main.container,.topbar-inner,.footer-inner.footer-custom,.app-version{
  width:min(calc(100% - 32px),var(--yanmar-desktop-shell))!important;
  max-width:var(--yanmar-desktop-shell)!important;
  margin-left:auto!important;margin-right:auto!important;
}

/* Escritorio ancho: una sola línea y sin barra de desplazamiento. */
@media (min-width:1241px){
  main.container>.tool-tabs{
    display:flex!important;flex-wrap:nowrap!important;align-items:center!important;
    justify-content:space-between!important;gap:2px!important;padding:6px!important;
    overflow:visible!important;width:100%!important;max-width:none!important;
  }
  main.container>.tool-tabs .tool-tab{
    flex:0 1 auto!important;min-width:0!important;width:auto!important;
    min-height:40px!important;padding:7px 7px!important;font-size:10.5px!important;
    line-height:1.12!important;white-space:nowrap!important;gap:3px!important;
  }
}

/* Ventanas medianas: el menú se reorganiza en filas, nunca crea scroll horizontal. */
@media (max-width:1240px){
  main.container>.tool-tabs{
    display:flex!important;flex-wrap:wrap!important;overflow:visible!important;
    justify-content:flex-start!important;gap:5px!important;padding:6px!important;
  }
  main.container>.tool-tabs .tool-tab{
    flex:1 1 135px!important;min-width:120px!important;max-width:none!important;
    min-height:40px!important;font-size:10.5px!important;padding:7px 9px!important;
    white-space:normal!important;line-height:1.15!important;
  }
}

/* Los submenús también responden al ancho en lugar de desplazarse. */
.module-subnav,.settings-subnav,.r26-subnav,.document-config-tabs,.article-subnav,
.purchase-subnav,.order-workspace-subnav,[data-budget-subnav],.budget-subnav,.admin-subnav{
  flex-wrap:wrap!important;overflow-x:visible!important;overflow-y:visible!important;
  width:100%!important;max-width:100%!important;
}
.module-subnav button,.settings-subnav button,.r26-subnav button,.document-config-tabs button,
.article-subnav button,.purchase-subnav button,.order-workspace-subnav button,
[data-budget-subnav] button,.budget-subnav button,.admin-subnav button,
[data-settings-tab],[data-budget-subtab],[data-article-subtab],[data-purchase-subtab]{
  flex:0 1 auto!important;min-width:0!important;font-size:11.5px!important;
}

/* Barras, cabeceras y herramientas: pueden saltar de línea sin desbordar. */
.admin-page-heading,.r26-heading,.r26-toolbar,.enterprise-top-tools,.stock-actions-row,
.article-admin-head,.section-head,.results-header{max-width:100%;min-width:0;flex-wrap:wrap!important}
.r34-warehouse-tools{display:flex!important;flex-wrap:wrap!important;max-width:100%}
.r34-warehouse-tools input{min-width:min(320px,100%)!important;flex:1 1 320px!important}
.r26-stock-value{flex-wrap:wrap!important}
.r26-table-wrap,.enterprise-table,.admin-table{max-width:100%;-webkit-overflow-scrolling:touch}

/* Semáforo: tarjetas accionables y estado seleccionado. */
button.r26-stock-summary{
  width:100%;margin:0;background:#fff!important;color:var(--ink)!important;
  text-align:left;cursor:pointer;font:inherit;border:1px solid #e6e9eb!important;
  box-shadow:none!important;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
}
button.r26-stock-summary:hover{border-color:#efaaa5!important;background:#fff9f8!important}
button.r26-stock-summary.active{
  border-color:var(--red)!important;background:#fff7f6!important;
  box-shadow:0 0 0 2px rgba(226,59,51,.10)!important;
}
button.r26-stock-summary:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.r26-stock-summary small{font-size:10.5px!important}

@media (max-width:1000px){
  main.container,.topbar-inner,.footer-inner.footer-custom,.app-version{width:calc(100% - 24px)!important}
  .topbar-inner{flex-wrap:wrap!important;gap:10px!important}
  .r26-grid-2{grid-template-columns:1fr!important}
}
@media (max-width:760px){
  main.container,.topbar-inner,.footer-inner.footer-custom,.app-version{width:calc(100% - 16px)!important}
  .hero h1,.admin-page-heading h1,.r26-heading h1{font-size:clamp(23px,7vw,28px)!important}
  main.container>.tool-tabs .tool-tab{flex:1 1 calc(50% - 5px)!important;min-width:0!important}
  .module-subnav button,.settings-subnav button,.r26-subnav button,.document-config-tabs button,
  .article-subnav button,.purchase-subnav button,.order-workspace-subnav button,
  [data-budget-subnav] button,.budget-subnav button,.admin-subnav button{
    flex:1 1 calc(50% - 5px)!important;text-align:center!important;
  }
  .r26-kpi-grid{grid-template-columns:1fr 1fr!important}
  .stock-filter-grid{grid-template-columns:1fr 1fr!important}
  .topbar-inner{padding-left:0!important;padding-right:0!important}
}
@media (max-width:480px){
  main.container>.tool-tabs .tool-tab{flex:1 1 100%!important}
  .module-subnav button,.settings-subnav button,.r26-subnav button,.document-config-tabs button,
  .article-subnav button,.purchase-subnav button,.order-workspace-subnav button,
  [data-budget-subnav] button,.budget-subnav button,.admin-subnav button{flex:1 1 100%!important}
  .r26-kpi-grid,.stock-filter-grid{grid-template-columns:1fr!important}
  .admin-card,.card,.selector-card,.r26-card{padding:13px!important}
}


/* =========================================================
   36.6.22 · AJUSTE SEMÁFORO + COSTE VALORADO
   ========================================================= */
/* El contador puede contener 6+ cifras sin invadir la etiqueta. */
.r26-stock-summary{
  grid-template-columns:13px minmax(64px,max-content) minmax(0,1fr)!important;
  column-gap:10px!important;min-width:0!important;
}
.r26-stock-summary b{
  min-width:64px!important;white-space:nowrap!important;
  font-variant-numeric:tabular-nums;line-height:1.1!important;
}
.r26-stock-summary small{
  min-width:0!important;overflow-wrap:anywhere;line-height:1.2!important;
}
.r26-cost-value{white-space:nowrap;color:#38414a}
.r26-cost-value:empty::after{content:'—';color:#8a929b}
@media(max-width:620px){
  .r26-stock-summary{grid-template-columns:13px minmax(54px,max-content) minmax(0,1fr)!important}
  .r26-stock-summary b{min-width:54px!important;font-size:15px!important}
}

/* =========================================================
   36.6.27 · TABLAS MANTENIMIENTO + SUMATORIO OT
   ========================================================= */
.maintenance-selector-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 14px}
.maintenance-selector-grid .selector-card{margin:0;min-width:0}
.maintenance-drive-selector{border-left:4px solid #4d7ea8}
.maintenance-admin-action-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:min(620px,58%)}
.maintenance-admin-action-group{border:1px solid #dfe5e1;border-radius:10px;background:#fff;padding:10px 12px;display:grid;gap:8px}
.maintenance-admin-action-group>strong{font-size:11px;color:#44505a}
.maintenance-admin-action-group .maintenance-admin-actions{justify-content:flex-start}
.r26-table tfoot .r26-work-total-row td{background:#f7f8fa;border-top:2px solid #d9dde2;font-weight:800}
.r26-work-total-label{text-align:right!important;text-transform:uppercase;letter-spacing:.5px;color:#4f5963;font-size:10px}
.r26-work-total-cell strong{font-size:14px;display:block;color:#17202a}
.r26-work-total-cell small{display:block;color:#67717b;font-weight:600;margin-top:2px}
@media(max-width:900px){.maintenance-admin-tools{display:grid}.maintenance-admin-action-groups{min-width:0;width:100%}}
@media(max-width:760px){.maintenance-selector-grid,.maintenance-admin-action-groups{grid-template-columns:1fr}.maintenance-admin-action-group .maintenance-admin-actions{display:grid;grid-template-columns:1fr}.maintenance-admin-action-group .maintenance-admin-actions button{width:100%}}

/* 36.6.32 · trazabilidad y adjuntos */
.trace-modal{position:fixed;inset:0;z-index:10050;background:rgba(20,24,28,.46);display:flex;align-items:center;justify-content:center;padding:24px}.trace-dialog{width:min(920px,96vw);max-height:90vh;overflow:hidden;background:#fff;border:1px solid #dfe3e7;border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,.22);display:flex;flex-direction:column}.trace-dialog>header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #e7eaed}.trace-dialog>header h2{margin:2px 0 0}.trace-dialog>header button{border:0;background:transparent;font-size:25px;cursor:pointer}.trace-body{padding:20px 22px;overflow:auto}.trace-loading,.trace-empty,.trace-error{padding:22px;border-radius:10px;background:#f5f6f7;color:#5d6369}.trace-error{background:#fff1f1;color:#a12626}.trace-timeline{display:grid;gap:0}.trace-timeline article{position:relative;display:grid;grid-template-columns:22px 1fr;gap:12px;padding:0 0 18px}.trace-timeline article:before{content:"";position:absolute;left:7px;top:14px;bottom:-3px;width:1px;background:#d8dde1}.trace-timeline article:last-child:before{display:none}.trace-dot{width:15px;height:15px;border-radius:50%;background:#e23b33;margin-top:3px;z-index:1}.trace-timeline strong{display:block}.trace-timeline small{display:block;color:#6c737a;margin-top:3px}.trace-changes{margin:9px 0 0;padding:9px 12px 9px 28px;background:#f6f7f8;border-radius:8px}.trace-changes li{margin:4px 0}.trace-changes em{font-style:normal;padding:0 7px;color:#8b9298}.trace-upload{display:grid;grid-template-columns:180px minmax(260px,1fr) auto;gap:10px;align-items:end;margin-top:18px;padding-top:18px;border-top:1px solid #e5e8eb}.trace-upload label{display:grid;gap:5px}.trace-upload small{grid-column:1/-1;color:#697178}.trace-files{display:grid;gap:8px}.trace-file{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:11px 12px;border:1px solid #e3e6e9;border-radius:9px}.trace-file>div:first-child{min-width:0}.trace-file strong,.trace-file span{display:block;overflow-wrap:anywhere}.trace-file span{font-size:11px;color:#737a80;margin-top:3px}.trace-file>div:last-child{display:flex;gap:6px;flex-wrap:wrap}.trace-link{text-decoration:none;display:inline-flex;align-items:center}.r26-crm-followup-actions{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}.r26-task-badge{display:inline-block;margin-top:4px;padding:3px 7px;border-radius:999px;background:#eef1f3;font-size:10px}.r26-task-badge.done{background:#e8f6ec;color:#2c6f3b}.r26-task-badge.overdue{background:#fff0ef;color:#aa2c25}@media(max-width:760px){.trace-upload{grid-template-columns:1fr}.trace-upload small{grid-column:auto}.trace-file{align-items:flex-start;flex-direction:column}.trace-modal{padding:10px}}

/* =========================================================
   36.6.34 · SISTEMA VISUAL UNIFICADO WEB / CONTROL CENTER
   Modales, X de cierre y jerarquía de botones.
   ========================================================= */
:root{
  --ui-modal-overlay:rgba(17,22,27,.62);
  --ui-modal-line:#e2e5e8;
  --ui-modal-radius:17px;
  --ui-modal-shadow:0 24px 80px rgba(0,0,0,.30);
  --ui-modal-hover:#f2f3f4;
}

/* La misma capa visual para todas las ventanas flotantes. */
.enterprise-modal,
.r26-modal,
.trace-modal,
.maintenance-editor-overlay,
.series-pin-overlay,
.legal-overlay,
.account-overlay,
.credit-request-overlay,
.shipping-cost-overlay{
  background:var(--ui-modal-overlay)!important;
  -webkit-backdrop-filter:blur(4px);
  backdrop-filter:blur(4px);
}

/* Una sola geometría de ventana. Se conserva el ancho específico de cada módulo. */
.enterprise-modal>section,
.r26-modal-dialog,
.trace-dialog,
.maintenance-editor-dialog,
.series-pin-dialog,
.legal-dialog,
.account-panel,
.credit-request-modal,
.shipping-cost-modal{
  border:1px solid var(--ui-modal-line)!important;
  border-radius:var(--ui-modal-radius)!important;
  background:#fff!important;
  box-shadow:var(--ui-modal-shadow)!important;
}

/* X común: neutra, sin círculo rojo y con hover gris. */
.modal-close-unified,
.enterprise-modal>section>header>button:last-child,
.r26-modal-dialog>header>[data-r26-close],
.trace-dialog>header>button,
.series-pin-close,
.legal-dialog>header .btn-icon,
.account-panel>header .btn-icon,
.credit-request-modal>header .btn-icon,
.shipping-cost-modal>header .btn-icon{
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  min-height:36px!important;
  flex:0 0 36px!important;
  display:inline-grid!important;
  place-items:center!important;
  padding:0!important;
  border:0!important;
  border-radius:9px!important;
  background:transparent!important;
  color:var(--ink)!important;
  font-size:25px!important;
  font-weight:500!important;
  line-height:1!important;
  text-decoration:none!important;
  box-shadow:none!important;
  cursor:pointer!important;
}
.modal-close-unified:hover,
.enterprise-modal>section>header>button:last-child:hover,
.r26-modal-dialog>header>[data-r26-close]:hover,
.trace-dialog>header>button:hover,
.series-pin-close:hover,
.legal-dialog>header .btn-icon:hover,
.account-panel>header .btn-icon:hover,
.credit-request-modal>header .btn-icon:hover,
.shipping-cost-modal>header .btn-icon:hover{
  background:var(--ui-modal-hover)!important;
  color:var(--ink)!important;
  box-shadow:none!important;
}

/* Cabeceras: mismo ritmo y separación visual. */
.r26-modal-dialog>header,
.trace-dialog>header,
.maintenance-editor-head,
.legal-dialog>header{
  min-height:64px;
  padding:14px 17px!important;
  border-bottom:1px solid var(--ui-modal-line)!important;
}
.enterprise-modal>section>header{
  gap:14px;
  padding-bottom:14px;
  border-bottom:1px solid var(--ui-modal-line);
}
.account-panel>header,
.credit-request-modal>header,
.shipping-cost-modal>header{
  gap:14px;
  padding-bottom:14px;
  border-bottom:1px solid var(--ui-modal-line)!important;
}

/* Botones de acción dentro de modales: primaria roja, secundaria blanca. */
:is(.enterprise-modal,.r26-modal,.trace-modal,.maintenance-editor-overlay,.series-pin-overlay,.legal-overlay,.account-overlay,.credit-request-overlay,.shipping-cost-overlay) .btn-primary{
  min-height:40px;
  padding:10px 15px;
  border:1px solid var(--red)!important;
  border-radius:9px!important;
  background:var(--red)!important;
  color:#fff!important;
  font-weight:800;
}
:is(.enterprise-modal,.r26-modal,.trace-modal,.maintenance-editor-overlay,.series-pin-overlay,.legal-overlay,.account-overlay,.credit-request-overlay,.shipping-cost-overlay) .btn-primary:hover{
  border-color:var(--red-dark)!important;
  background:var(--red-dark)!important;
  color:#fff!important;
}
:is(.enterprise-modal,.r26-modal,.trace-modal,.maintenance-editor-overlay,.series-pin-overlay,.legal-overlay,.account-overlay,.credit-request-overlay,.shipping-cost-overlay) .btn-secondary{
  min-height:40px;
  padding:10px 15px;
  border:1px solid var(--grey-300)!important;
  border-radius:9px!important;
  background:#fff!important;
  color:var(--ink)!important;
  font-weight:700;
}
:is(.enterprise-modal,.r26-modal,.trace-modal,.maintenance-editor-overlay,.series-pin-overlay,.legal-overlay,.account-overlay,.credit-request-overlay,.shipping-cost-overlay) .btn-secondary:hover{
  border-color:var(--red)!important;
  background:#fff!important;
  color:var(--red)!important;
}

/* Controles de formulario con la misma forma dentro de cualquier modal. */
:is(.enterprise-modal,.r26-modal,.trace-modal,.maintenance-editor-overlay,.series-pin-overlay,.account-overlay,.credit-request-overlay,.shipping-cost-overlay) input,
:is(.enterprise-modal,.r26-modal,.trace-modal,.maintenance-editor-overlay,.series-pin-overlay,.account-overlay,.credit-request-overlay,.shipping-cost-overlay) select,
:is(.enterprise-modal,.r26-modal,.trace-modal,.maintenance-editor-overlay,.series-pin-overlay,.account-overlay,.credit-request-overlay,.shipping-cost-overlay) textarea{
  border-radius:9px!important;
  border-color:var(--grey-300)!important;
}
:is(.enterprise-modal,.r26-modal,.trace-modal,.maintenance-editor-overlay,.series-pin-overlay,.account-overlay,.credit-request-overlay,.shipping-cost-overlay) input:focus,
:is(.enterprise-modal,.r26-modal,.trace-modal,.maintenance-editor-overlay,.series-pin-overlay,.account-overlay,.credit-request-overlay,.shipping-cost-overlay) select:focus,
:is(.enterprise-modal,.r26-modal,.trace-modal,.maintenance-editor-overlay,.series-pin-overlay,.account-overlay,.credit-request-overlay,.shipping-cost-overlay) textarea:focus{
  outline:none!important;
  border-color:var(--red)!important;
  box-shadow:0 0 0 2px rgba(226,59,51,.08)!important;
}

@media(max-width:640px){
  .enterprise-modal,.trace-modal,.legal-overlay,.account-overlay,.credit-request-overlay,.shipping-cost-overlay{padding:8px!important}
}

/* 36.6.35 · Clientes: separacion visual entre el bloque VISTAS y la linea de resumen/ayuda.
   No modifica el espaciado interno entre el contador y el texto "Vista compacta". */
#productivity-clients + .admin-client-list-help{margin-top:16px}


/* 36.6.36 · menu principal más ancho y preferencias de visibilidad */
@media (min-width:1180px){
  main.container>.tool-tabs{
    width:min(calc(100vw - 32px),1540px)!important;
    max-width:none!important;
    margin-left:50%!important;
    transform:translateX(-50%)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    padding:7px 8px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scrollbar-width:thin;
  }
  main.container>.tool-tabs .tool-tab{
    flex:0 1 auto!important;
    width:auto!important;
    min-width:max-content!important;
    min-height:42px!important;
    padding:8px 10px!important;
    font-size:11px!important;
    line-height:1.15!important;
    white-space:nowrap!important;
    gap:5px!important;
  }
  main.container>.tool-tabs .tool-tab-icon,
  main.container>.tool-tabs .tool-tab-icon svg{width:14px!important;height:14px!important;flex:0 0 14px!important}
}
.menu-visibility-settings-panel{display:block}
.menu-visibility-note{display:flex;flex-direction:column;gap:4px;padding:12px 14px;margin-bottom:14px;border:1px solid #dfe4e8;border-radius:12px;background:#f8fafb}
.menu-visibility-note span{font-size:12px;color:#65727d}
.menu-visibility-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0 16px}
.menu-visibility-option{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid #dde3e7;border-radius:12px;background:#fff;cursor:pointer;min-height:62px}
.menu-visibility-option:hover{background:#f7f9fa;border-color:#cbd3d9}
.menu-visibility-option.fixed{background:#f4f6f7;cursor:default}
.menu-visibility-option input{width:18px;height:18px;accent-color:#E23B33;flex:0 0 auto}
.menu-visibility-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.menu-visibility-copy strong{font-size:13px;color:#202a32}
.menu-visibility-copy small{font-size:11px;color:#6b7780}
@media(max-width:900px){.menu-visibility-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.menu-visibility-options{grid-template-columns:1fr}}


/* =========================================================
   36.6.39 · MENÚ PRINCIPAL ANCHO REAL · SIN DESPLAZAMIENTO
   La barra usa prácticamente todo el viewport en escritorio.
   No se permite scroll horizontal: los botones se distribuyen
   dinámicamente según el número de opciones visibles.
   ========================================================= */
@media (min-width:1180px){
  main.container>.tool-tabs{
    width:calc(100vw - 16px)!important;
    max-width:1800px!important;
    margin-left:50%!important;
    margin-right:0!important;
    transform:translateX(-50%)!important;
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:space-between!important;
    column-gap:8px!important;
    row-gap:0!important;
    padding:8px 10px!important;
    overflow-x:visible!important;
    overflow-y:visible!important;
    scrollbar-width:none!important;
  }
  main.container>.tool-tabs::-webkit-scrollbar{display:none!important}
  main.container>.tool-tabs .tool-tab:not(.hidden){
    flex:0 1 auto!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    min-height:42px!important;
    padding:8px 9px!important;
    font-size:10.5px!important;
    line-height:1.15!important;
    white-space:nowrap!important;
    gap:5px!important;
  }
  main.container>.tool-tabs .tool-tab-icon,
  main.container>.tool-tabs .tool-tab-icon svg{
    width:14px!important;height:14px!important;flex:0 0 14px!important;
  }
}
