/* Canonical admin stylesheet — include this file from all admin PHP views.
   This file is the single source-of-truth for admin styles. For production you
   may generate a minified `global.min.css` from this file. */

/* Modern select styles (kept here as part of the canonical stylesheet) */
.select-modern, select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: var(--paper);
  border: 1px solid var(--line);
  padding: 10px 38px 10px 12px;
  border-radius: 10px;
  font: 800 1rem var(--font-display);
  color: var(--ink);
  min-height: 44px;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--ink) 50%),
    linear-gradient(135deg, var(--ink) 50%, transparent 50%),
    linear-gradient(to right, var(--paper), var(--paper));
  background-position:
    calc(100% - 18px) calc(1em + 2px),
    calc(100% - 13px) calc(1em + 2px),
    100% 0;
  background-size:
    6px 6px,
    6px 6px,
    2.5em 2.5em;
  background-repeat: no-repeat;
  transition:
    box-shadow 0.15s ease,
    border-color 0.15s ease;
}

.select-modern:focus,
select:focus {
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--green) 10%, transparent);
  border-color: var(--green);
  outline: 0;
}

/* === Imported from: style.css === */
:root {
  --ink: #353236;
      --alert-success-bg: #e7f4e3;
      --alert-success-border: #b7dcae;
      --alert-success-color: #286a2b;
      --alert-error-bg: #fff0ed;
      --alert-error-border: #f4c1b8;
      --alert-error-color: #a73f32;
  --ink-soft: #68646a;
  --cream: #f8f4ec;
  --paper: #fffdf9;
  --green: #2f873d;
  --green-dark: #1f5f2b;
  --orange: #e88422;
  --danger: #d8412f;
  --gold: #f2bb43;
  --chart-color-1: #087a8a;
  --chart-color-2: #2563eb;
  --chart-color-3: #d97706;
  --chart-color-4: #be185d;
  --chart-color-5: #15803d;
  --chart-color-6: #7c3aed;
  --chart-color-7: #b45309;
  --chart-color-8: #0f766e;
  --line: #e4dccf;
  --shadow: 0 24px 70px rgba(61, 52, 39, 0.16);
  --sidebar-bg: #353236;
  --sidebar-ink: #fffdf9;
  --sidebar-muted: #bdcfc4;
  --sidebar-icon: #f2bb43;
  --sidebar-border: rgba(255, 255, 255, 0.18);
  --sidebar-hover: rgba(255, 255, 255, 0.12);
  --font-body: "DM Sans", sans-serif;
  --font-display: "Space Grotesk", sans-serif;
}
html[data-theme="dark"] {
  --ink: #eef1f6;
  --ink-soft: #9aa5b4;
  --cream: #101319;
  --paper: #171b22;
  --green: #4ade80;
  --green-dark: #86efac;
  --orange: #fb923c;
  --danger: #f87171;
  --gold: #fbbf24;
  --line: #2b323d;
  --shadow: 0 24px 70px rgba(0, 0, 0, 0.45);
  --sidebar-bg: #0c0f14;
  --sidebar-ink: #eef1f6;
  --sidebar-muted: #8b96a5;
  --sidebar-icon: #fbbf24;
  --sidebar-border: rgba(255, 255, 255, 0.14);
  --sidebar-hover: rgba(255, 255, 255, 0.1);
  /* Alert color tokens for dark theme */
  --alert-success-bg: #12281a;
  --alert-success-border: #1f4a2e;
  --alert-success-color: #8fd6a4;
  --alert-error-bg: #331413;
  --alert-error-border: #57201d;
  --alert-error-color: #ffb3a7;
  --date-picker-filter: invert(1) brightness(1.7);
  /* Map food dashboard variables to admin dark tokens */
  --bg: var(--paper);
  --surface: var(--paper);
  --surface-subtle: color-mix(in srgb, var(--paper) 92%, transparent);
  --text: var(--ink);
  --muted: var(--ink-soft);
  --border: var(--line);
  --card-bg: var(--paper);
}
* {
  box-sizing: border-box;
}
.notification-backdrop {
  align-items: center;
  background: rgba(24, 29, 25, 0.62);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 20px;
  position: fixed;
  z-index: 100;
}
.notification-modal {
  animation: notification-pop 0.3s cubic-bezier(0.2, 0.9, 0.3, 1.2);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.4);
  max-width: 480px;
  overflow: hidden;
  padding: 0;
  width: calc(100% - 40px);
}
.notification-modal::backdrop {
  background: rgba(10, 14, 22, 0.6);
  backdrop-filter: blur(4px);
}
@keyframes notification-pop {
  from { opacity: 0; transform: translateY(18px) scale(0.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.notification-modal__head {
  align-items: center;
  border-bottom: 3px solid var(--line);
  display: flex;
  gap: 12px;
  padding: 16px 22px 14px;
}
.notification-modal__head small {
  color: var(--ink-soft);
  display: block;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.notification-modal__icon {
  align-items: center;
  background: var(--ink-soft);
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 1.1rem;
  font-weight: 800;
  height: 38px;
  justify-content: center;
  width: 38px;
}
.notification-modal--success .notification-modal__head { border-bottom-color: #22c55e; }
.notification-modal--success .notification-modal__icon { background: #22c55e; }
.notification-modal--error .notification-modal__head { border-bottom-color: #ef4444; }
.notification-modal--error .notification-modal__icon { background: #ef4444; }
.attention-modal .notification-modal__head { border-bottom-color: #f59e0b; }
.attention-modal .notification-modal__icon { background: #f59e0b; }
.attention-modal.agency-notification--danger .notification-modal__head { border-bottom-color: #ef4444; }
.attention-modal.agency-notification--danger .notification-modal__icon { background: #ef4444; }
.attention-modal.agency-notification--success .notification-modal__head { border-bottom-color: #22c55e; }
.attention-modal.agency-notification--success .notification-modal__icon { background: #22c55e; }
.attention-modal.agency-notification--info .notification-modal__head { border-bottom-color: #3b82f6; }
.attention-modal.agency-notification--info .notification-modal__icon { background: #3b82f6; }
.notification-modal h2 {
  color: var(--ink);
  font: 600 1.05rem var(--font-display);
  margin: 2px 0 0;
}
.notification-modal p {
  color: var(--ink-soft);
  line-height: 1.55;
  margin: 0;
  padding: 20px 22px 6px;
}
.notification-modal .notification-modal__button,
.notification-modal > .submit-button {
  margin: 14px 22px 22px;
  min-height: 48px;
  width: calc(100% - 44px);
}
.notification-modal .weekly-product-modal__actions {
  padding: 14px 22px 22px;
}
.notification-modal .weekly-product-modal__actions .submit-button {
  flex: 1;
}

/* === Imported from: dashboard-app.css === */
.dashboard-header {
  display: none;
}
.dashboard-layout {
  min-height: 100vh !important;
}
.main-tools {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin: 0 0 24px auto;
  position: sticky;
  top: 16px;
  width: max-content;
  z-index: 5;
}
.main-tools .theme-toggle,
.main-tools .profile-button {
  background: var(--paper);
  border: 1px solid var(--line);
  color: var(--ink);
  min-height: 40px;
  padding: 8px 10px;
}
.main-tools .profile-button {
  border-radius: 999px;
}
.main-tools .profile-button span {
  color: var(--green);
}
.dashboard-main > * {
  margin-left: auto;
  margin-right: auto;
  max-width: 100%;
  width: 100%;
}
.dashboard-main > .main-tools {
  width: max-content;
}
.dashboard-main {
  margin: 0;
  max-width: none;
  padding: 24px clamp(18px, 3vw, 42px);
}

/* === Imported from: dashboard-layout.css === */
.dashboard-layout {
  min-height: 100vh;
}
.sidebar-menu-top {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 18px;
}
.sidebar-menu-top .sidebar-toggle {
  background: transparent;
  border-color: var(--sidebar-border);
  color: var(--sidebar-ink);
}
.dashboard-sidebar {
  min-height: 100vh;
}
.sidebar-tools {
  align-items: center;
  display: flex;
  gap: 8px;
  margin-bottom: 18px;
}

/* === Imported from: advances.css === */
.advances-page {
  max-width: 860px !important;
}
.advance-shortcut {
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--green) 8%, var(--paper)),
    var(--paper)
  );
  border: 1px solid color-mix(in srgb, var(--green) 28%, var(--line));
  border-radius: 16px;
  box-shadow: 0 18px 48px rgba(61, 52, 39, 0.1);
  display: grid;
  gap: 18px;
  margin: 0 auto;
  padding: clamp(20px, 6vw, 36px);
  width: 100%;
}
.advance-hero {
  align-items: center;
  display: grid;
  gap: 14px;
  grid-template-columns: auto minmax(0, 1fr);
}
.advance-hero > span {
  align-items: center;
  background: var(--green);
  border-radius: 14px;
  color: var(--paper);
  display: inline-flex;
  font: 900 1.8rem var(--font-display);
  height: 58px;
  justify-content: center;
  width: 58px;
}
.advance-hero h2 {
  font: 700 1.35rem var(--font-display);
  margin: 0 0 4px;
}
.advance-hero p {
  color: var(--ink-soft);
  font-size: 0.82rem;
  line-height: 1.45;
  margin: 0;
}
.advance-form,
.advance-agency-filter {
  display: grid;
  gap: 14px;
}
.advance-form {
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.6fr);
}
.advance-form label,
.advance-agency-filter label {
  background: color-mix(in srgb, var(--paper) 82%, transparent);
  border: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
  border-radius: 10px;
  color: var(--ink);
  display: grid;
  font-size: 0.76rem;
  font-weight: 800;
  gap: 8px;
  padding: 10px;
}
.advance-form input,
.advance-form select,
.advance-agency-filter select {
  background: var(--paper);
  border: 1px solid color-mix(in srgb, var(--green) 24%, var(--line));
  border-radius: 9px;
  color: var(--ink);
  font: 800 1.08rem var(--font-display);
  min-height: 54px;
  padding: 12px;
  width: 100%;
}

/* === Imported from: advance-entries.css === */
.advance-entry-list {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 10px;
  margin-top: 16px;
  padding: 12px;
}
.advance-entry-list h3 {
  font: 700 0.85rem var(--font-display);
  margin: 0 0 10px;
}
.advance-entry-list p {
  color: var(--ink-soft);
  font-size: 0.75rem;
  margin: 0;
}
.advance-entry-list .balance-table {
  font-size: 0.72rem;
}
.advance-entry-list .balance-table th {
  font-size: 0.62rem;
}
.advance-entry-list .balance-table td {
  padding: 7px;
}

/* === Imported from: password.css === */
.password-card {
  align-items: start;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 18px;
  display: grid;
  gap: 32px;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  margin-top: 16px;
  padding: 30px;
}
.password-card h2 {
  font: 600 clamp(1.5rem, 3vw, 2.5rem) var(--font-display);
  letter-spacing: -0.04em;
  margin: 0 0 8px;
}
.password-card p {
  color: var(--ink-soft);
}
.password-form {
  display: grid;
  gap: 12px;
}
.password-form label {
  display: grid;
  font-size: 0.78rem;
  font-weight: 700;
  gap: 6px;
}
.password-form input {
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  font: inherit;
  padding: 12px;
}
.success-alert {
  background: var(--alert-success-bg);
  border: 1px solid var(--alert-success-border);
  border-radius: 8px;
  color: var(--alert-success-color);
  font-size: 0.82rem;
  margin-top: 18px;
  padding: 10px;
}
.form-alert {
  background: var(--alert-error-bg);
  border: 1px solid var(--alert-error-border);
  border-radius: 8px;
  color: var(--alert-error-color);
  font-size: 0.8rem;
  margin-top: 16px;
  padding: 10px;
}
.utility-detail-rows.is-negative-amount .utility-detail-row,
.utility-detail-rows.is-negative-amount .utility-detail-row b,
.analytics-card strong.is-negative-amount + small {
  color: var(--alert-error-color);
}

/* === Imported from: notifications.css === */
.notification-link {
  position: relative;
}
.notification-link span[aria-hidden="true"] {
  align-items: center;
  background: color-mix(in srgb, var(--sidebar-icon) 22%, transparent);
  border: 1px solid color-mix(in srgb, var(--sidebar-icon) 38%, transparent);
  border-radius: 8px;
  display: inline-flex;
  height: 28px;
  justify-content: center;
  width: 28px;
}
.notification-count {
  align-items: center;
  background: linear-gradient(135deg, var(--danger), var(--orange));
  border: 2px solid var(--sidebar-bg);
  border-radius: 999px;
  box-shadow: 0 10px 24px rgba(216, 65, 47, 0.28);
  color: var(--sidebar-ink);
  display: inline-flex;
  font: 800 0.65rem var(--font-body);
  height: 20px;
  justify-content: center;
  margin-left: auto;
  min-width: 20px;
  padding: 0 6px;
}
/* Pagos moviles: ambar cuando todos los pendientes son recientes (<=7 dias);
   rojo (estilo base) solo cuando hay pendientes de mas de una semana. */
.notification-count--warn {
  background: linear-gradient(135deg, var(--orange), #f2c94c);
  box-shadow: 0 10px 24px rgba(242, 201, 76, 0.28);
}

/* === Imported from: login-mobile.css === */
@media (max-width: 480px) {
  .landing-body {
    min-width: 0;
    overflow-x: hidden;
  }
  .topbar {
    gap: 10px;
    padding: 16px;
  }
  .brand-logo-image {
    height: 40px;
    max-width: 145px;
  }
}

/* === Imported from: button-icons.css === */
.button-icon {
  align-items: center;
  background: color-mix(in srgb, currentColor 12%, transparent);
  border-radius: 7px;
  display: inline-flex;
  flex: 0 0 auto;
  font-family: var(--font-display);
  font-weight: 800;
  height: 1.65em;
  justify-content: center;
  line-height: 1;
  margin-right: 7px;
  min-width: 1em;
  width: 1.65em;
}
.print-button[data-daily-balance-whatsapp] .button-icon,
.print-button[data-weekly-product-whatsapp] .button-icon {
  background: #25d366;
  color: #fff;
}
.submit-button > span {
  align-items: center;
  display: inline-flex;
  gap: 8px;
}

/* === Imported from: balance.css === */
.balance-layout {
  align-items: start;
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(0, 1.75fr) minmax(270px, 320px);
}
.balance-layout > .balance-column:first-child {
  grid-column: 1;
  grid-row: 1 / span 2;
}
.balance-layout > .balance-totals {
  grid-column: 2;
  grid-row: 1;
}
.balance-layout > .balance-column:last-child {
  grid-column: 2;
  grid-row: 2;
}
.balance-column {
  background: color-mix(in srgb, var(--paper) 94%, transparent);
  border: 1px solid var(--line);
  border-radius: 16px;
  min-width: 0;
  padding: 20px;
}
.balance-column-head {
  align-items: flex-start;
  display: flex;
  justify-content: space-between;
  margin-bottom: 14px;
}
.balance-column-head h2,
.balance-column-head p {
  margin: 0;
}
.balance-column-head h2 {
  color: var(--ink);
  font: 700 1.1rem var(--font-display);
}
.balance-column-head p {
  color: var(--ink-soft);
  font-size: 0.76rem;
  line-height: 1.45;
  margin-top: 4px;
}
.balance-group {
  background: color-mix(in srgb, var(--paper) 92%, transparent);
  border: 1px solid var(--line);
  border-radius: 12px;
  margin: 10px 0;
  min-width: 0;
  overflow: hidden;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}
.balance-group:hover {
  border-color: color-mix(in srgb, var(--green) 48%, var(--line));
}
.balance-group[open] {
  background: var(--paper);
  border-color: color-mix(in srgb, var(--green) 55%, var(--line));
  box-shadow: 0 10px 24px color-mix(in srgb, var(--ink) 8%, transparent);
}
.balance-group > summary {
  align-items: center;
  color: var(--ink);
  cursor: pointer;
  display: flex;
  font: 800 0.88rem var(--font-display);
  gap: 12px;
  justify-content: space-between;
  list-style: none;
  min-height: 48px;
  padding: 12px 14px;
  user-select: none;
}
.balance-group > summary::-webkit-details-marker {
  display: none;
}
.balance-group > summary::after {
  border-bottom: 2px solid var(--green-dark);
  border-right: 2px solid var(--green-dark);
  content: "";
  flex: 0 0 9px;
  height: 9px;
  margin-right: 2px;
  transform: rotate(45deg) translateY(-2px);
  transition: transform 0.18s ease;
}
.balance-group[open] > summary {
  background: color-mix(in srgb, var(--green) 8%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--green) 24%, var(--line));
}
.balance-group[open] > summary::after {
  transform: rotate(225deg) translate(-1px, -1px);
}
.balance-group > summary:focus-visible {
  box-shadow: inset 0 0 0 3px color-mix(in srgb, var(--green) 28%, transparent);
  outline: 0;
}
.balance-items {
  display: grid;
  gap: 10px;
  min-width: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding: 12px;
}
.balance-item {
  background: color-mix(in srgb, var(--cream) 48%, var(--paper));
  border: 1px solid color-mix(in srgb, var(--line) 86%, transparent);
  border-radius: 10px;
  display: grid;
  gap: 8px 10px;
  grid-template-columns: minmax(120px, 1.15fr) repeat(4, minmax(0, 1fr));
  align-items: center;
  min-width: 0;
  padding: 10px 12px;
}
.balance-item > strong {
  align-self: center;
  color: var(--ink);
  font: 800 0.82rem var(--font-display);
  min-width: 0;
  overflow-wrap: break-word;
  word-break: break-word;
}
.balance-item > label {
  color: var(--ink-soft);
  display: grid;
  font-size: 0.68rem;
  font-weight: 800;
  gap: 4px;
  min-width: 0;
  width: 100%;
}
.balance-item input,
.balance-item textarea,
.balance-item select {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-sizing: border-box;
  color: var(--ink);
  font: 700 0.88rem var(--font-body);
  min-height: 38px;
  min-width: 0;
  padding: 7px 8px;
  width: 100%;
}
.balance-item textarea {
  min-height: 76px;
  resize: vertical;
}
.balance-item input:focus,
.balance-item textarea:focus,
.balance-item select:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--green) 18%, transparent);
  outline: 0;
}
.balance-item input[readonly],
.balance-item textarea[readonly],
.balance-item select:disabled {
  background: color-mix(in srgb, var(--line) 28%, var(--paper));
  cursor: not-allowed;
  opacity: 0.78;
}
.balance-item--cash {
  background: color-mix(in srgb, var(--gold) 10%, var(--paper));
  border: 1px solid color-mix(in srgb, var(--gold) 38%, var(--line));
  border-radius: 10px;
  display: grid;
  gap: 8px 10px;
  grid-template-columns: minmax(120px, 1.15fr) repeat(2, minmax(0, 1fr));
  align-items: center;
  min-width: 0;
  padding: 10px 12px;
}
.balance-item--cash > strong {
  color: var(--green-dark);
}
.balance-item--cash .section-summary {
  grid-column: 1 / -1;
  margin: 4px 0 0;
}
.balance-item--cash label:has(textarea),
.balance-item--cash label.advance-note-field,
.balance-item--cash textarea {
  grid-column: 1 / -1;
}

/* === Imported from: balance-advance.css === */
.advance-readonly-card {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 12px;
  margin-top: 16px;
  padding: 16px;
}
.advance-readonly-card h2 {
  font: 700 1rem var(--font-display);
  margin: 0;
}
.advance-readonly-card .balance-table {
  font-size: 0.74rem;
}

/* === Imported from: agency-comparison.css === */
.agency-comparison-section {
  margin: 24px 0;
}
.agency-comparison-section .report-head {
  margin-bottom: 16px;
}
.agency-comparison-section .report-head h2 {
  font: 600 1.5rem var(--font-display);
  margin: 0 0 6px;
}
.agencies-with-sidebar {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  min-height: 100vh;
}
.agencies-with-sidebar > .dashboard-main {
  min-width: 0;
}
.analytics-filter {
  align-items: end;
  display: flex;
  gap: 12px;
  margin: 0 0 20px;
}
.analytics-filter label {
  color: var(--ink-soft);
  display: grid;
  font-size: 0.72rem;
  font-weight: 800;
  gap: 6px;
}
.analytics-filter select {
  min-width: 220px;
}
.chart-type-control {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin: 12px 0;
}
.chart-type-control > span {
  color: var(--ink-soft);
  font-size: 0.7rem;
  font-weight: 800;
}
.chart-type-control > div {
  background: color-mix(in srgb, var(--line) 32%, transparent);
  border: 1px solid var(--line);
  border-radius: 9px;
  display: inline-flex;
  gap: 3px;
  padding: 3px;
}
.chart-type-control button {
  background: transparent;
  border: 0;
  border-radius: 6px;
  color: var(--ink-soft);
  cursor: pointer;
  font: 800 0.68rem var(--font-body);
  min-height: 30px;
  padding: 5px 9px;
}
.chart-type-control button:hover,
.chart-type-control button:focus-visible,
.chart-type-control button.is-active {
  background: var(--paper);
  box-shadow: 0 2px 8px color-mix(in srgb, var(--ink) 12%, transparent);
  color: var(--ink);
  outline: 0;
}
.potential-chart,
.agency-line-chart,
.agency-monthly-chart {
  height: 280px;
  position: relative;
}
.potential-chart canvas,
.agency-line-chart canvas,
.agency-monthly-chart canvas {
  height: 100% !important;
  width: 100% !important;
}
.total-card {
  background: color-mix(in srgb, var(--green) 7%, var(--paper));
  border: 1px solid color-mix(in srgb, var(--green) 24%, var(--line));
  border-radius: 10px;
  margin-top: 10px;
  padding: 13px;
}
.total-card h3 {
  color: var(--ink-soft);
  font-size: 0.72rem;
  margin: 0 0 7px;
}
.total-grid strong {
  color: var(--ink);
  font: 800 1.2rem var(--font-display);
}
.goal-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-bottom: 18px;
}
.goal-primary {
  grid-column: span 2;
}
.goal-progress {
  background: color-mix(in srgb, var(--line) 45%, transparent);
  border-radius: 999px;
  height: 10px;
  margin: 16px 0 8px;
  overflow: hidden;
}
.goal-progress span {
  background: linear-gradient(90deg, var(--green), var(--gold));
  border-radius: inherit;
  display: block;
  height: 100%;
  min-width: 4px;
}
.goal-settings-form {
  align-items: end;
  background: color-mix(in srgb, var(--gold) 8%, var(--paper));
  border: 1px solid color-mix(in srgb, var(--gold) 30%, var(--line));
  border-radius: 12px;
  display: flex;
  gap: 12px;
  margin-top: 14px;
  padding: 12px;
}
.goal-settings-form label {
  color: var(--ink-soft);
  display: grid;
  font-size: 0.7rem;
  font-weight: 800;
  gap: 6px;
  min-width: 220px;
}
.goal-settings-form input[type="number"] {
  appearance: textfield;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 9px;
  color: var(--ink);
  font: 800 1rem var(--font-display);
  min-height: 44px;
  padding: 9px 11px;
  width: 100%;
}
.goal-settings-form input[type="number"]::-webkit-inner-spin-button,
.goal-settings-form input[type="number"]::-webkit-outer-spin-button {
  appearance: none;
  margin: 0;
}
.goal-settings-form input[type="number"]:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--green) 18%, transparent);
  outline: 0;
}
.business-insights {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 18px 0;
}
.business-insights .chart-panel {
  min-width: 0;
  padding: 20px;
}
.business-insights .chart-panel > h2 {
  color: var(--ink);
  font: 800 1.15rem var(--font-display);
  margin: 0 0 6px;
}
.business-insights .chart-panel > p {
  color: var(--ink-soft);
  font-size: 0.76rem;
  line-height: 1.45;
  margin: 0 0 16px;
}
.business-insights .comparison {
  gap: 8px;
  margin-top: 0;
}
.business-insights .comparison-row {
  background: color-mix(in srgb, var(--cream) 46%, var(--paper));
  border: 1px solid color-mix(in srgb, var(--line) 76%, transparent);
  border-radius: 8px;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
  padding: 10px 11px;
}
.business-insights .comparison-row span {
  color: var(--ink-soft);
  font-size: 0.72rem;
  font-weight: 800;
}
.business-insights .comparison-row b {
  color: var(--ink);
  font: 800 0.82rem var(--font-display);
  overflow-wrap: anywhere;
  text-align: right;
}
.business-insights .comparison-row.urgent-loss,
.business-insights .comparison-row:has(.is-negative-amount) {
  background: color-mix(in srgb, var(--alert-error-bg) 68%, var(--paper));
  border-color: var(--alert-error-border);
}
.business-insights .comparison-row.urgent-loss span,
.business-insights .comparison-row.urgent-loss b,
.business-insights .comparison-row b.is-negative-amount {
  color: var(--alert-error-color);
}
.agency-card > form label,
.agency-card > .password-form label {
  color: var(--ink-soft);
  display: grid;
  font-size: 0.72rem;
  font-weight: 800;
  gap: 6px;
}
.agency-card > form input:not([type="hidden"]):not(.rate-input),
.agency-card > form select,
.agency-card > form textarea {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  font: 700 0.9rem var(--font-body);
  min-height: 42px;
  min-width: 0;
  padding: 9px 10px;
  width: 100%;
}
.agency-card > form input:not([type="hidden"]):not(.rate-input):focus,
.agency-card > form select:focus,
.agency-card > form textarea:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--green) 18%, transparent);
  outline: 0;
}
.agency-card > form textarea {
  min-height: 86px;
  resize: vertical;
}
.agency-card > form input[type="checkbox"] {
  accent-color: var(--green);
  min-height: auto;
  width: auto;
}
.advance-edit {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 14px 34px color-mix(in srgb, var(--ink) 8%, transparent);
  padding: 20px;
}
.advance-edit form {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.advance-edit label {
  color: var(--ink-soft);
  display: grid;
  font-size: 0.72rem;
  font-weight: 800;
  gap: 6px;
}
.advance-edit label input,
.advance-edit label select {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  min-height: 42px;
  padding: 9px 10px;
  width: 100%;
}
.advance-edit .advance-amount,
.advance-edit .advance-note-field,
.advance-edit form > div {
  grid-column: 1 / -1;
}
.login-card-top {
  align-items: center;
  display: flex;
  justify-content: space-between;
}
.lock-icon {
  align-items: center;
  background: color-mix(in srgb, var(--green) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--green) 30%, var(--line));
  border-radius: 9px;
  color: var(--green-dark);
  display: inline-flex;
  font-weight: 900;
  height: 32px;
  justify-content: center;
  width: 32px;
}
.agency-list h2 {
  font: 700 1rem var(--font-display);
  margin: 0 0 12px;
}
.profit-settings-card {
  padding: 18px;
}
.profit-settings-card .balance-table {
  min-width: 560px;
}
.profit-settings-card .balance-table th {
  color: var(--ink-soft);
  font-size: 0.7rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.profit-settings-card .balance-table td:first-child {
  color: var(--ink);
  font-weight: 800;
}
.profit-settings-card .balance-table th:nth-child(2),
.profit-settings-card .balance-table th:nth-child(3),
.profit-settings-card .balance-table td:nth-child(2),
.profit-settings-card .balance-table td:nth-child(3) {
  text-align: center;
  width: 190px;
}
.rate-input-wrap {
  align-items: center;
  background: color-mix(in srgb, var(--green) 7%, var(--paper));
  border: 1px solid color-mix(in srgb, var(--green) 26%, var(--line));
  border-radius: 9px;
  display: inline-flex;
  gap: 5px;
  max-width: 150px;
  min-height: 42px;
  padding: 0 10px;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
  width: 100%;
}
.rate-input-wrap:focus-within {
  background: var(--paper);
  border-color: var(--green);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--green) 18%, transparent);
}
.rate-input-wrap > span {
  color: var(--green-dark);
  font: 800 0.9rem var(--font-display);
}
.rate-input {
  appearance: textfield;
  background: transparent;
  border: 0;
  color: var(--ink);
  font: 800 0.95rem var(--font-display);
  min-width: 0;
  outline: 0;
  padding: 8px 0;
  text-align: right;
  width: 100%;
}
.rate-input::-webkit-inner-spin-button,
.rate-input::-webkit-outer-spin-button {
  appearance: none;
  margin: 0;
}
.rate-input--sales + span {
  color: var(--green-dark);
}
.rate-input--participation + span {
  color: var(--orange);
}

/* === End of merged CSS files — additional files can be appended below === */

/* === Imported from: ticket-print.css === */
.print-ticket {
  display: none;
}

@media print {
  @page {
    margin: 0;
    size: 58mm auto;
    orientation: portrait;
  }
  html,
  body {
    background: #fff !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    width: var(--ticket-width) !important;
  }
  body * {
    visibility: hidden !important;
  }
  .print-ticket,
  .print-ticket * {
    visibility: visible !important;
  }
  .print-ticket {
    color: #000 !important;
    display: block !important;
    font-family: monospace;
    font-size: var(--ticket-font-size, 10.5px);
    font-weight: 800 !important;
    left: 0;
    line-height: 1.35;
    margin: 0;
    padding: 3mm max(0.5mm, var(--ticket-margin-x, 0.5mm));
    position: absolute;
    top: 0;
    width: var(--ticket-width);
  }
  .print-ticket .is-negative-amount {
    color: #000 !important;
    font-weight: 900 !important;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
  }
  .print-ticket h1,
  .print-ticket p {
    margin: 0 0 5px;
    text-align: center;
  }
  .print-ticket h1 {
    font-size: 16px;
    font-weight: 900 !important;
  }
  .print-ticket::before {
    background: url('../images/LOGO%20RICACHON.png') center / contain no-repeat;
    content: '';
    display: block;
    height: 24mm;
    margin: 0 auto 5px;
    width: 48mm;
  }
}

.weekly-print-head::before {
  background: url('../images/LOGO%20RICACHON.png') center / contain no-repeat;
  content: '';
  display: block;
  height: 70px;
  margin-bottom: 10px;
  width: 220px;
}

/* === Imported from: interface-guides.css === */
.context-tip,
.section-summary,
.field-tip {
  color: var(--ink-soft);
  font-size: 0.72rem;
  line-height: 1.45;
  margin: 6px 0 0;
}
.context-tip,
.section-summary {
  align-items: flex-start;
  background: color-mix(in srgb, var(--green) 8%, transparent);
  border: 1px solid color-mix(in srgb, var(--green) 24%, var(--line));
  border-radius: 8px;
  display: flex;
  gap: 8px;
  padding: 9px 10px;
}
.context-tip::before,
.section-summary::before,
.field-tip::before {
  color: var(--green-dark);
  content: "i";
  font: 800 0.78rem var(--font-display);
}
.section-summary {
  margin-bottom: 12px;
}
.field-tip {
  display: block;
  font-size: 0.66rem;
}
.agency-card,
.chart-panel,
.balance-column,
.password-card,
.login-card {
  box-shadow: 0 14px 34px rgba(61, 52, 39, 0.07);
}

/* === Imported from: food/assets/css/dashboard.css === */
:root {
  --brand-primary: #f24e1e;
  --brand-primary-dark: #c63814;
  --brand-accent: #ff8800;
  --brand-on-primary: #ffffff;
  --brand-deep: #11223f;
  --brand-deep-rgb: 17, 34, 63;
  --brand-primary-rgb: 242, 78, 30;
  --brand-accent-rgb: 255, 136, 0;
  --bg: #f9fafc;
  --surface: #ffffff;
  --surface-subtle: #f1f5fa;
  --text: #11223f;
  --muted: #5c6b73;
  --border: #dce3ec;
  --card-bg: #ffffff;
  --font-family: "Manrope", sans-serif;
  --font-display: "Sora", "Manrope", sans-serif;
  --app-font-size: clamp(13px, 0.78vw, 15px);
}
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-family);
  font-size: var(--app-font-size);
  min-height: 100vh;
}
.app-dashboard {
  background:
    radial-gradient(
      circle at 7% 8%,
      rgba(var(--brand-primary-rgb), 0.1),
      transparent 24%
    ),
    radial-gradient(
      circle at 93% 2%,
      rgba(var(--brand-accent-rgb), 0.14),
      transparent 24%
    ),
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--bg) 82%, #fff) 0%,
      var(--bg) 100%
    );
}

/* Global unified stylesheet for admin views - imports component files for consistency */

/* Global admin overrides and common rules */
/* Add project-wide admin styles below */

/* Landing / Topbar brand image rules: ensure consistent sizing and layout */
.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 24px;
  background: transparent;
}
.topbar .brand {
  display: flex;
  align-items: center;
  gap: 12px;
}
.brand-logo-image {
  height: 64px;
  max-width: 260px;
  width: auto;
  display: block;
}

@media (max-width: 680px) {
  .brand-logo-image {
    height: 56px;
    max-width: 200px;
  }
  .topbar {
    padding: 14px 18px;
  }
}

@media (max-width: 480px) {
  .brand-logo-image {
    height: 40px;
    max-width: 145px;
  }
  .topbar {
    gap: 10px;
    padding: 16px;
  }
}

/* Landing / Login page layout and controls */
.landing-body {
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--paper) 96%, var(--bg)),
    var(--bg)
  );
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
.topbar {
  background: transparent;
}
.landing-grid {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 28px;
  align-items: center;
  max-width: 1200px;
  margin: 48px auto;
  padding: 0 18px;
  width: 100%;
}
.landing-copy {
  max-width: 680px;
}
.landing-copy .eyebrow {
  font-weight: 800;
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  color: var(--ink-soft);
  margin: 0 0 8px;
}
.landing-copy h1 {
  font: 900 clamp(1.75rem, 4vw, 3.6rem) var(--font-display);
  margin: 0 0 10px;
}
.landing-copy .lead {
  color: var(--ink-soft);
  font-size: 1rem;
  line-height: 1.5;
  margin: 0 0 18px;
}
.landing-body {
  background-color: var(--cream);
  background-image:
    linear-gradient(color-mix(in srgb, var(--green) 7%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--green) 7%, transparent) 1px, transparent 1px),
    linear-gradient(135deg, color-mix(in srgb, var(--paper) 82%, var(--cream)), var(--cream));
  background-size: 42px 42px, 42px 42px, 100% 100%;
}
.landing-body::before {
  background: linear-gradient(115deg, transparent 0 42%, color-mix(in srgb, var(--orange) 11%, transparent) 42% 43%, transparent 43% 100%);
  content: "";
  inset: 0;
  pointer-events: none;
  position: fixed;
  z-index: 0;
}
.landing-body > * { position: relative; z-index: 1; }
.landing-grid { position: relative; }
.landing-activity {
  align-self: center;
  background: linear-gradient(145deg, color-mix(in srgb, var(--sidebar-bg) 96%, var(--green)), color-mix(in srgb, var(--paper) 82%, var(--cream)));
  border: 1px solid color-mix(in srgb, var(--green) 28%, var(--line));
  border-radius: 20px;
  box-shadow: 0 24px 60px color-mix(in srgb, var(--ink) 18%, transparent);
  color: var(--sidebar-ink);
  grid-column: 1 / 2;
  max-width: 520px;
  overflow: hidden;
  padding: 22px;
  position: relative;
  transform: translateY(12px);
}
.activity-gridline { background-image: linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px); background-size: 28px 28px; inset: 0; opacity: .55; pointer-events: none; position: absolute; }
.activity-head,.activity-main,.activity-chart,.activity-metrics { position: relative; z-index: 1; }
.activity-head { align-items: center; display: flex; justify-content: space-between; color: var(--sidebar-muted); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.activity-head i { color: var(--sidebar-icon); font-size: 1rem; }
.activity-head b { background: color-mix(in srgb, var(--green) 70%, transparent); border: 1px solid color-mix(in srgb, var(--green) 45%, white); border-radius: 999px; color: #fff; font-size: .6rem; padding: 4px 7px; }
.activity-main { display: grid; gap: 6px; margin-top: 28px; }
.activity-main small { color: var(--sidebar-muted); font-weight: 700; }
.activity-main strong { color: var(--sidebar-ink); font: 800 clamp(2.2rem, 5vw, 3.5rem)/1 var(--font-display); }
.activity-main span { color: var(--sidebar-muted); font-size: .78rem; }
.activity-main span i { color: var(--gold); }
.activity-chart { align-items: end; display: grid; gap: 8px; grid-template-columns: repeat(8, 1fr); height: 105px; margin-top: 20px; }
.activity-chart span { background: linear-gradient(180deg, var(--gold), var(--orange)); border-radius: 5px 5px 2px 2px; display: block; min-height: 8px; }
.activity-bar--32 { height: 32%; }.activity-bar--42 { height: 42%; }.activity-bar--48 { height: 48%; }.activity-bar--58 { height: 58%; }.activity-bar--66 { height: 66%; }.activity-bar--74 { height: 74%; }.activity-bar--82 { height: 82%; }.activity-bar--94 { height: 94%; }
.activity-metrics { border-top: 1px solid var(--sidebar-border); display: grid; gap: 10px; grid-template-columns: repeat(3, 1fr); margin-top: 18px; padding-top: 14px; }
.activity-metrics span { display: grid; gap: 3px; min-width: 0; }.activity-metrics small { color: var(--sidebar-muted); font-size: .65rem; text-transform: uppercase; }.activity-metrics b { color: var(--sidebar-ink); font-size: .76rem; overflow-wrap: anywhere; }
.proof-row {
  display: flex;
  gap: 12px;
  font-weight: 700;
  color: var(--ink-soft);
}

.login-card {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 26px;
  box-shadow: 0 12px 32px rgba(61, 52, 39, 0.06);
  width: 100%;
  max-width: 420px;
}
.landing-grid > .login-card { grid-column: 2; grid-row: 1 / span 2; justify-self: end; }
.login-card .card-kicker {
  display: inline-block;
  font-weight: 800;
  color: var(--green-dark);
  margin-bottom: 6px;
}
.login-card h2 {
  font: 700 1.35rem var(--font-display);
  margin: 6px 0 8px;
}
.login-form {
  display: grid;
  gap: 10px;
}
.login-form label:has(input[name="remember_me"]) {
  align-items: center;
  display: flex;
  font-size: 0.82rem;
  font-weight: 700;
  gap: 8px;
}
.login-form input[name="remember_me"] {
  accent-color: var(--green);
  height: 1.05rem;
  width: 1.05rem;
}
.login-form .field-tip {
  margin-top: 0;
}
.input-wrap {
  display: flex;
  align-items: center;
  border: 1px solid var(--line);
  background: var(--paper);
  border-radius: 10px;
  padding: 6px 10px;
}
.input-wrap input {
  border: 0;
  background: transparent;
  flex: 1;
  padding: 10px;
  font: 800 1rem var(--font-display);
  color: var(--ink);
  outline: 0;
}
.input-symbol {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 8px;
  margin-right: 8px;
  color: var(--ink-soft);
}
.password-toggle {
  background: transparent;
  border: 0;
  color: var(--ink-soft);
  font-weight: 700;
}
.submit-button {
  background: var(--green);
  box-shadow: 0 8px 18px color-mix(in srgb, var(--green) 22%, transparent);
  color: var(--paper);
  border: 0;
  border-radius: 10px;
  cursor: pointer;
  padding: 12px 14px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  justify-content: center;
  min-height: 44px;
  transition: background 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.submit-button:hover {
  background: var(--green-dark);
  box-shadow: 0 10px 24px color-mix(in srgb, var(--green) 30%, transparent);
  transform: translateY(-1px);
}
.submit-button:focus-visible,
.print-button:focus-visible,
.back-link:focus-visible {
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--green) 22%, transparent);
  outline: 0;
}
.submit-button:disabled,
.print-button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
  transform: none;
}
.print-button,
.back-link {
  align-items: center;
  border-radius: 10px;
  display: inline-flex;
  font: 800 0.78rem var(--font-body);
  gap: 8px;
  justify-content: center;
  min-height: 44px;
  padding: 10px 14px;
  text-decoration: none;
  transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, color 0.18s ease, transform 0.18s ease;
}
.print-button {
  background: color-mix(in srgb, var(--green) 10%, var(--paper));
  border: 1px solid color-mix(in srgb, var(--green) 48%, var(--line));
  color: var(--green-dark);
  box-shadow: 0 8px 18px color-mix(in srgb, var(--green) 12%, transparent);
}
.print-button:hover {
  background: var(--green);
  border-color: var(--green);
  box-shadow: 0 10px 24px color-mix(in srgb, var(--green) 25%, transparent);
  color: var(--paper);
  transform: translateY(-1px);
}
.back-link {
  background: transparent;
  border: 1px solid var(--line);
  color: var(--ink-soft);
}
.back-link:hover {
  background: color-mix(in srgb, var(--line) 24%, transparent);
  border-color: color-mix(in srgb, var(--ink-soft) 50%, var(--line));
  color: var(--ink);
}
.report-head > .print-button {
  flex: 0 0 auto;
}
.print-button .button-icon {
  background: color-mix(in srgb, currentColor 14%, transparent);
  font-size: 1.05rem;
  margin-right: 0;
}
.print-button[data-daily-balance-whatsapp]::before,
.print-button[data-weekly-product-whatsapp]::before {
  align-items: center;
  background: #25d366;
  border-radius: 7px;
  color: #fff;
  content: '☎';
  display: inline-flex;
  flex: 0 0 auto;
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 800;
  height: 1.65em;
  justify-content: center;
  line-height: 1;
  width: 1.65em;
}
.login-footer {
  color: var(--ink-soft);
  font-size: 0.86rem;
  margin-top: 12px;
}

.landing-footer {
  display: flex;
  justify-content: center;
  gap: 20px;
  padding: 24px 12px;
  color: var(--ink-soft);
}

@media (max-width: 900px) {
  .landing-grid {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 18px;
    margin: 28px auto;
  }
  .landing-copy {
    text-align: center;
  }
  .landing-grid > .login-card { grid-column: 1; grid-row: auto; justify-self: center; }
  .landing-activity { grid-column: 1; grid-row: auto; justify-self: center; width: min(100%, 520px); }
  .login-card {
    margin: 0 auto;
  }
}

/* Global admin components (shared across all admin views) */
.dashboard-body{background:linear-gradient(180deg,color-mix(in srgb,var(--paper) 96%,var(--bg)),var(--bg));min-height:100vh}
.dashboard-layout{display:flex;min-height:100vh}
.dashboard-sidebar{width:250px;background:var(--sidebar-bg);color:var(--sidebar-ink);padding:18px 14px;border-right:1px solid var(--sidebar-border)}
.dashboard-body.sidebar-is-collapsed .dashboard-sidebar{width:76px;padding-left:10px;padding-right:10px}
.dashboard-body.sidebar-is-collapsed .sidebar-link{justify-content:center;padding-left:8px;padding-right:8px}
.dashboard-body.sidebar-is-collapsed .sidebar-link b,.dashboard-body.sidebar-is-collapsed .sidebar-role{display:none}
.dashboard-body.sidebar-is-collapsed .sidebar-link > span[aria-hidden="true"]{margin:0}
.dashboard-body .dashboard-main{padding-top:24px}
.dashboard-body .main-toolbar{align-items:center;display:flex;gap:12px;justify-content:space-between;margin:0 0 24px;width:100%}
.dashboard-body .main-toolbar .main-tools{margin:0;position:static;width:auto}
.dashboard-body .main-sidebar-toggle{align-items:center;align-self:flex-start;background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 18px color-mix(in srgb,var(--ink) 14%,transparent);color:var(--ink);display:inline-flex;font-size:1.15rem;justify-content:center;min-height:42px;min-width:42px;padding:8px;position:relative;z-index:2}
.dashboard-body .main-sidebar-toggle:hover{background:var(--green);border-color:var(--green);box-shadow:0 10px 22px color-mix(in srgb,var(--green) 28%,transparent);color:var(--paper)}
.dashboard-body .main-sidebar-toggle:focus-visible{box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 24%,transparent),0 8px 18px color-mix(in srgb,var(--ink) 14%,transparent);outline:0}
.bcv-rate-card{background:color-mix(in srgb,var(--gold) 10%,var(--paper));border:1px solid color-mix(in srgb,var(--gold) 38%,var(--line));border-radius:10px;color:var(--ink-soft);font:700 .68rem/1.25 var(--font-body);padding:7px 10px;text-align:right}
.bcv-rate-card b{color:var(--ink);font:800 .76rem var(--font-display)}
.dashboard-sidebar{z-index:20}
.sidebar-brand img{max-width:180px;display:block}
.dashboard-body.sidebar-is-collapsed .sidebar-brand{align-items:center;display:flex;justify-content:center;min-height:42px}
.dashboard-body.sidebar-is-collapsed .sidebar-brand img{display:none}
.sidebar-link{align-items:center;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--sidebar-ink);display:flex;gap:10px;margin-bottom:6px;padding:10px;text-decoration:none;font:800 .86rem var(--font-body);text-align:left;width:100%}
.sidebar-link:hover{background:var(--sidebar-hover);border-color:var(--sidebar-border);color:var(--sidebar-ink)}
.sidebar-link:focus-visible{background:color-mix(in srgb,var(--sidebar-icon) 16%,var(--sidebar-bg));border-color:var(--sidebar-icon);box-shadow:0 0 0 3px color-mix(in srgb,var(--sidebar-icon) 24%,transparent);color:var(--sidebar-ink);outline:0}
.sidebar-link[data-profile-toggle]{cursor:pointer}
.sidebar-link[data-profile-toggle] > span[aria-hidden="true"]{align-items:center;background:color-mix(in srgb,var(--sidebar-icon) 16%,transparent);border:1px solid color-mix(in srgb,var(--sidebar-icon) 38%,transparent);border-radius:7px;color:var(--sidebar-icon);display:inline-flex;flex:0 0 28px;height:28px;justify-content:center;width:28px}
.sidebar-link[data-profile-toggle]:hover{background:color-mix(in srgb,var(--sidebar-icon) 18%,var(--sidebar-bg));border-color:color-mix(in srgb,var(--sidebar-icon) 48%,var(--sidebar-border));color:var(--sidebar-ink)}
.sidebar-link[data-profile-toggle]:hover > span[aria-hidden="true"]{background:var(--sidebar-icon);color:var(--sidebar-bg)}
.dashboard-sidebar .sidebar-link > span[aria-hidden="true"]{align-items:center;background:color-mix(in srgb,var(--sidebar-ink) 8%,transparent);border-radius:8px;display:inline-flex;flex:0 0 28px;font-size:1.15rem;height:28px;justify-content:center;line-height:1;width:28px}
.dashboard-sidebar .sidebar-link:hover > span[aria-hidden="true"]{background:color-mix(in srgb,var(--sidebar-icon) 22%,transparent);color:var(--sidebar-icon)}
.sidebar-link.is-active{background:linear-gradient(90deg,color-mix(in srgb,var(--sidebar-icon) 12%,transparent),transparent);border:1px solid var(--sidebar-border)}
.sidebar-bottom{margin-top:18px;display:flex;flex-direction:column;gap:8px}
.sidebar-role{font-size:.82rem;color:var(--sidebar-muted)}
.sidebar-toggle{background:transparent;border:1px solid var(--sidebar-border);color:var(--sidebar-ink);padding:8px;border-radius:8px}
.dashboard-main{flex:1;padding:28px;max-width:1200px;margin:0 auto}
.main-tools{display:flex;gap:8px;align-items:center}
.profile-button{background:var(--paper);border:1px solid var(--line);padding:8px 10px;border-radius:999px}
.theme-toggle,
.profile-button {
  align-items: center;
  color: var(--ink);
  cursor: pointer;
  display: inline-flex;
  font: 800 0.76rem var(--font-body);
  gap: 8px;
  justify-content: center;
  min-height: 42px;
  transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.theme-toggle {
  background: color-mix(in srgb, var(--gold) 12%, var(--paper));
  border: 1px solid color-mix(in srgb, var(--gold) 42%, var(--line));
  border-radius: 10px;
  padding: 8px 12px;
}
.theme-toggle:hover,
.profile-button:hover {
  background: color-mix(in srgb, var(--green) 9%, var(--paper));
  border-color: color-mix(in srgb, var(--green) 42%, var(--line));
  box-shadow: 0 8px 18px color-mix(in srgb, var(--ink) 10%, transparent);
  transform: translateY(-1px);
}
.theme-toggle:focus-visible,
.profile-button:focus-visible {
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--green) 22%, transparent);
  outline: 0;
}
.theme-toggle > span[aria-hidden="true"],
.profile-button > span[aria-hidden="true"] {
  align-items: center;
  background: color-mix(in srgb, currentColor 12%, transparent);
  border-radius: 7px;
  display: inline-flex;
  height: 24px;
  justify-content: center;
  width: 24px;
}
.report-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.report-head h1{font:700 1.4rem var(--font-display);margin:0}
.weekly-query-panel{margin-bottom:18px}
.weekly-query-form{align-items:end;display:flex;flex-wrap:wrap;gap:12px;margin:16px 0 18px}
.weekly-query-form label{color:var(--ink-soft);display:flex;flex:1 1 180px;flex-direction:column;font-size:.76rem;font-weight:800;gap:6px}
.weekly-query-form input{background:var(--paper);border:1px solid var(--line);border-radius:8px;color:var(--ink);font:700 .86rem var(--font-body);min-height:40px;padding:8px 10px}
.weekly-query-form .submit-button{align-self:end;min-height:40px}
.weekly-query-summary{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}
.weekly-result-card{background:color-mix(in srgb,var(--paper) 90%,var(--cream));border:1px solid var(--line);border-radius:8px;padding:15px}
.weekly-result-card h3{font:700 .92rem var(--font-display);margin:0 0 4px}
.weekly-result-card p{color:var(--ink-soft);font-size:.74rem;margin:0 0 10px}
.weekly-result-card>strong{display:block;font:800 1.35rem var(--font-display);margin-bottom:6px}
.weekly-result-card>span{color:var(--ink-soft);font-size:.76rem;font-weight:700}
.weekly-result-card--growth{background:color-mix(in srgb,var(--green) 8%,var(--paper))}
.weekly-results-table{overflow-x:auto}
.weekly-results-table table{min-width:1180px}
.weekly-results-table th{white-space:nowrap}
.weekly-results-table caption{caption-side:top;color:var(--ink);font:800 .92rem var(--font-display);padding:0 0 9px;text-align:left}
.weekly-results-table .is-selected-week{background:color-mix(in srgb,var(--green) 10%,var(--paper))}
.weekly-results-total-row{background:color-mix(in srgb,var(--gold) 12%,var(--paper));border-top:2px solid var(--green);font-weight:800}
.weekly-results-total-row td{color:var(--ink);white-space:nowrap}
.weekly-product-detail-link{color:inherit;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--green) 65%,transparent);text-underline-offset:3px}
.weekly-product-detail-link:hover{color:var(--green)}
.weekly-product-modal{background:var(--paper);border:1px solid var(--line);border-radius:12px;color:var(--ink);max-width:min(1180px,calc(100vw - 28px));padding:20px;width:calc(100vw - 28px)}
.weekly-product-modal::backdrop{background:color-mix(in srgb,var(--ink) 52%,transparent)}
.weekly-product-modal__head{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:16px}
.weekly-product-modal__head h2{font:800 1.15rem var(--font-display);margin:0 0 4px}
.weekly-product-modal__head p{color:var(--ink-soft);margin:0}
.weekly-product-modal__group-title{border-top:1px solid var(--line);font:800 .95rem var(--font-display);margin:18px 0 8px;padding-top:14px}
.weekly-product-modal .table-responsive{max-height:65vh;overflow:auto}
.weekly-product-modal table{min-width:980px}
.weekly-product-modal th{white-space:nowrap}
.weekly-product-modal__foot{align-items:center;border-top:1px solid var(--line);color:var(--ink-soft);display:flex;font-size:.75rem;gap:14px;justify-content:space-between;margin-top:16px;padding-top:12px}
.weekly-product-modal__actions{align-items:center;display:flex;gap:8px}
.weekly-product-print-frame{border:0;height:1px;opacity:0;pointer-events:none;position:fixed;right:0;top:0;width:1px}
@media(max-width:540px){.weekly-product-modal{padding:14px}.weekly-product-modal__foot{align-items:stretch;flex-direction:column}.weekly-product-modal__foot .submit-button{width:100%}}
@media print{body.printing-weekly-product-report>*:not(.weekly-product-modal){display:none!important}body.printing-weekly-product-report .weekly-product-modal,body.printing-weekly-product-report .weekly-product-modal[open]{background:#fff;border:0;display:block!important;height:auto;max-height:none;max-width:none;padding:0;position:static;width:100%}body.printing-weekly-product-report .weekly-product-modal::backdrop{display:none}body.printing-weekly-product-report .weekly-product-modal__actions,body.printing-weekly-product-report .weekly-product-modal .btn-close{display:none!important}body.printing-weekly-product-report .weekly-product-modal .table-responsive{max-height:none;overflow:visible}body.printing-weekly-product-report .weekly-product-modal table{min-width:0;width:100%}body.printing-weekly-product-report .weekly-product-modal th,body.printing-weekly-product-report .weekly-product-modal td{font-size:8pt}body.printing-weekly-product-report .weekly-product-modal__foot{border-top:1px solid #777}body.printing-weekly-product-report .weekly-product-modal__foot>span{color:#222}}
@media(max-width:900px){.weekly-query-summary{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.weekly-query-summary{grid-template-columns:1fr}.weekly-query-form .submit-button{width:100%}}
.report-message{background:color-mix(in srgb,var(--green) 6%,var(--paper));border:1px solid color-mix(in srgb,var(--green) 20%,var(--line));padding:10px;border-radius:8px;margin-bottom:12px}
.form-alert{background:var(--alert-error-bg);border:1px solid var(--alert-error-border);color:var(--alert-error-color);padding:10px;border-radius:8px}
.report-filters {
  align-items: end;
  background: color-mix(in srgb, var(--paper) 94%, var(--cream));
  border: 1px solid var(--line);
  border-radius: 14px;
  display: flex;
  gap: 12px;
  margin-bottom: 18px;
  padding: 12px;
}
.report-filters > label {
  color: var(--ink-soft);
  display: grid;
  font-size: 0.7rem;
  font-weight: 800;
  gap: 6px;
  min-width: 190px;
}
.report-filters input[type="date"] {
  appearance: none;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 9px;
  color: var(--ink);
  color-scheme: light;
  font: 800 0.88rem var(--font-display);
  min-height: 42px;
  min-width: 0;
  padding: 9px 11px;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
  width: 100%;
}
.report-filters input[type="date"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
  filter: var(--date-picker-filter, none);
  opacity: 0.72;
  padding: 3px;
}
.report-filters input[type="date"]:focus,
.report-filters select:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--green) 18%, transparent);
  outline: 0;
}
.report-filters input[type="date"][readonly] {
  background: color-mix(in srgb, var(--line) 25%, var(--paper));
  color: var(--ink-soft);
  cursor: not-allowed;
  opacity: 0.9;
}
.analytics-grid,.chart-grid,.agency-grid{display:grid;gap:16px}
.analytics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.chart-panel,.analytics-card,.agency-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px}
.analytics-grid .analytics-card {
  background: linear-gradient(145deg, color-mix(in srgb, var(--paper) 96%, var(--green)), var(--paper));
  border-color: color-mix(in srgb, var(--line) 88%, var(--green));
  min-height: 132px;
  padding: 18px;
}
.analytics-grid .analytics-card p {
  color: var(--ink-soft);
  font: 800 0.7rem var(--font-body);
  letter-spacing: 0.055em;
  margin: 0 0 10px;
  text-transform: uppercase;
}
.analytics-grid .analytics-card strong {
  color: var(--ink);
  display: block;
  font: 800 clamp(1.35rem, 2.5vw, 2rem) / 1.08 var(--font-display);
  letter-spacing: 0.01em;
  overflow-wrap: anywhere;
}
.analytics-grid .analytics-card strong.is-negative-amount {
  color: var(--alert-error-color);
}
.analytics-grid .analytics-card small {
  color: var(--ink-soft);
  display: block;
  font-size: 0.72rem;
  line-height: 1.4;
  margin-top: 10px;
}
.analytics-card.sales-spotlight {
  background: linear-gradient(145deg, color-mix(in srgb, var(--green) 11%, var(--paper)), var(--paper) 68%);
  border-color: color-mix(in srgb, var(--green) 32%, var(--line));
  box-shadow: 0 14px 30px color-mix(in srgb, var(--green) 12%, transparent);
  min-height: 148px;
  padding: 20px;
}
.analytics-card.sales-spotlight p {
  color: var(--green-dark);
  font: 800 0.72rem var(--font-body);
  letter-spacing: 0.07em;
  margin: 0 0 12px;
  text-transform: uppercase;
}
.analytics-card.sales-spotlight strong {
  color: var(--ink);
  display: block;
  font: 800 clamp(1.7rem, 3.2vw, 2.65rem) / 1.05 var(--font-display);
  letter-spacing: 0.01em;
  overflow-wrap: anywhere;
}
.analytics-card.sales-spotlight strong.is-negative-amount {
  color: var(--alert-error-color);
}
.balance-column{background:color-mix(in srgb,var(--paper) 94%,transparent);border:1px solid var(--line);border-radius:16px;padding:18px}
.agency-card{padding:18px}
.agency-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.password-form,.advance-form{display:grid;gap:12px}
.advance-shortcut{background:linear-gradient(135deg,color-mix(in srgb,var(--green) 6%,var(--paper)),var(--paper));border-radius:14px;padding:18px}
.advance-hero{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center}
.advance-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.advance-summary-grid > label {
  background: color-mix(in srgb, var(--cream) 58%, var(--paper));
  border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
  border-radius: 10px;
  color: var(--ink-soft);
  display: grid;
  font-size: 0.7rem;
  font-weight: 800;
  gap: 7px;
  min-width: 0;
  padding: 10px;
}
.advance-summary-input {
  appearance: none;
  background: color-mix(in srgb, var(--green) 7%, var(--paper));
  border: 1px solid color-mix(in srgb, var(--green) 28%, var(--line));
  border-radius: 8px;
  box-shadow: inset 0 1px 0 color-mix(in srgb, white 30%, transparent);
  color: var(--green-dark);
  cursor: default;
  font: 800 clamp(0.9rem, 1.6vw, 1.08rem) var(--font-display);
  letter-spacing: 0.01em;
  min-height: 44px;
  min-width: 0;
  outline: 0;
  padding: 9px 10px;
  width: 100%;
}
.advance-summary-input:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--green) 18%, transparent);
}
.advance-summary-input.advance-summary-total {
  background: linear-gradient(135deg, color-mix(in srgb, var(--green) 18%, var(--paper)), var(--paper));
  border-color: color-mix(in srgb, var(--green) 52%, var(--line));
  color: var(--green-dark);
  font-size: clamp(1rem, 1.8vw, 1.25rem);
}
.cash-flow-card { background: color-mix(in srgb, var(--green) 4%, var(--paper)); border: 2px solid color-mix(in srgb, var(--green) 45%, var(--line)); border-top: 6px solid var(--green); box-shadow: 0 12px 28px color-mix(in srgb, var(--green) 10%, transparent); }
.cash-flow-formula { background: color-mix(in srgb, var(--green) 10%, var(--paper)); border-left: 4px solid var(--green); border-radius: 6px; color: var(--green-dark); font-weight: 800; margin: 10px 0 6px; padding: 9px 12px; }
.cash-flow-grid > label { position: relative; }
.cash-flow-grid .cash-flow-positive { border-left: 6px solid #2f9e64; }
.cash-flow-grid .cash-flow-positive::before { color: #216d45; content: 'ENTRADA (+)'; font-size: .63rem; font-weight: 900; }
.cash-flow-grid .cash-flow-positive .advance-summary-input { background: color-mix(in srgb, #2f9e64 10%, var(--paper)); border-color: color-mix(in srgb, #2f9e64 35%, var(--line)); color: #216d45; }
.cash-flow-grid .cash-flow-negative { border-left: 6px solid #c94b4b; }
.cash-flow-grid .cash-flow-negative::before { color: #9b3030; content: 'SALIDA (-)'; font-size: .63rem; font-weight: 900; }
.cash-flow-grid .cash-flow-negative .advance-summary-input { background: color-mix(in srgb, #c94b4b 9%, var(--paper)); border-color: color-mix(in srgb, #c94b4b 32%, var(--line)); color: #9b3030; }
.cash-flow-grid .cash-flow-result { background: color-mix(in srgb, var(--green) 12%, var(--paper)); border: 3px solid var(--green); grid-column: 1 / -1; padding: 14px; }
.cash-flow-grid .cash-flow-result::before { color: var(--green-dark); content: 'RESULTADO DEL CUADRE'; font-size: .7rem; font-weight: 900; }
.cash-flow-grid .cash-flow-result .advance-summary-input { font-size: clamp(1.1rem, 2vw, 1.35rem); }
.cash-flow-grid .cash-flow-pending { border-left: 4px solid #d49a22; grid-column: 1 / -1; }
.cash-flow-grid .cash-flow-pending .advance-summary-input { background: color-mix(in srgb, #d49a22 12%, var(--paper)); border-color: color-mix(in srgb, #d49a22 38%, var(--line)); color: #8a6112; }
.advance-total{padding:12px;border-radius:10px;border:1px solid var(--line);background:var(--paper)}
.advance-entry-list{margin-top:12px}
.advances-page--awaiting-agency .advance-total,
.advances-page--awaiting-agency .advance-entry-list { display: none; }
.table-responsive{overflow-x:auto}
.balance-table{width:100%;border-collapse:collapse}
.balance-table th,.balance-table td{padding:8px;border-bottom:1px solid var(--line);text-align:left}

@media(max-width:900px){.dashboard-sidebar{display:none}.dashboard-main{padding:18px}}
@media(max-width:900px){
  .dashboard-body.sidebar-is-open{overflow:hidden}
  .dashboard-body.sidebar-is-open .dashboard-sidebar{background:var(--sidebar-bg);display:flex;flex-direction:column;height:100dvh;inset:0 auto 0 0;max-width:none;overflow-x:hidden;overflow-y:auto;padding:18px 14px 28px;position:fixed;width:100%;z-index:1045}
  .dashboard-body.sidebar-is-open .dashboard-sidebar .sidebar-brand{flex:0 0 auto}
  .dashboard-body.sidebar-is-open .dashboard-sidebar .sidebar-link{flex:0 0 auto}
  .dashboard-body.sidebar-is-open .dashboard-sidebar .sidebar-bottom{margin-top:auto;width:100%}
  .dashboard-body.sidebar-is-open::after{background:rgba(8,18,12,.48);content:"";inset:0;pointer-events:none;position:fixed;z-index:1040}
  .dashboard-body.sidebar-is-open .dashboard-main,.dashboard-body.sidebar-is-open .mobile-sidebar-toggle{position:relative;z-index:1041}
}
.mobile-sidebar-toggle{align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 18px rgba(0,0,0,.12);color:var(--ink);display:none;height:44px;justify-content:center;position:fixed;right:16px;top:16px;width:44px;z-index:1046}
@media(max-width:900px){.mobile-sidebar-toggle{display:inline-flex}}
@media(max-width:800px){
  .dashboard-body .main-toolbar{align-items:stretch;flex-direction:column}
  .dashboard-body .main-toolbar .main-tools{justify-content:flex-end;width:100%}
  .dashboard-body .main-sidebar-toggle{position:fixed;right:16px;top:16px;z-index:1050}
}
@media(max-width:480px){.dashboard-body .main-toolbar .main-tools{align-items:stretch;flex-wrap:wrap}.dashboard-body .main-toolbar .bcv-rate-card{flex:1 1 100%;text-align:left}.dashboard-body .main-toolbar .theme-toggle,.dashboard-body .main-toolbar .profile-button{flex:1 1 auto}}

@media (min-width: 1540px) {
  .balance-layout {
    grid-template-columns: minmax(0, 1.8fr) minmax(280px, 1fr) minmax(240px, 0.8fr);
  }
  .balance-layout > .balance-column:first-child {
    grid-column: auto;
    grid-row: auto;
  }
  .balance-layout > .balance-totals {
    grid-column: auto;
    grid-row: auto;
  }
  .balance-layout > .balance-column:last-child {
    grid-column: auto;
    grid-row: auto;
  }
}

@media (max-width: 1400px) {
  .balance-layout {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 310px);
  }
  .balance-item {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    padding: 10px;
  }
  .balance-item > strong {
    grid-column: 1 / -1;
    margin-bottom: 2px;
  }
  .balance-item--cash {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .balance-item--cash > strong {
    grid-column: 1 / -1;
  }
}

@media (max-width: 1024px) {
  .balance-layout {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }
  .balance-layout > .balance-column {
    width: 100%;
    margin-bottom: 0;
  }
}

@media (max-width: 680px) {
  .balance-item {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 10px;
  }
  .balance-item > strong {
    grid-column: 1 / -1;
  }
  .balance-item--cash {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  .balance-column {
    padding: 14px;
  }
  .balance-group > summary {
    font-size: 0.82rem;
    padding: 11px 12px;
  }
  .balance-items {
    padding: 8px;
    gap: 8px;
  }
  .balance-item {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 8px;
  }
  .balance-item input,
  .balance-item textarea,
  .balance-item select {
    font-size: 0.82rem;
    padding: 6px 8px;
  }
}

@media (max-width: 380px) {
  .balance-item {
    grid-template-columns: 1fr;
  }
}

/* Appended responsive-overrides.css (merged) */
/* Responsive guardrails shared by AJAX-loaded administration views. */
.advance-total {
  background: var(--paper);
  border: 1px solid color-mix(in srgb, var(--green) 30%, var(--line));
  border-radius: 12px;
  display: grid;
  gap: 8px;
  padding: 16px;
  width: 100%;
}
.advance-total label {
  color: var(--ink-soft);
  display: grid;
  font-size: 0.78rem;
  font-weight: 800;
  gap: 5px;
  min-width: 0;
}
.advance-total input {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--green-dark);
  font: 800 1rem var(--font-display);
  min-height: 42px;
  min-width: 0;
  padding: 9px;
  width: 100%;
}
.advance-total .advance-summary-input {
  background: color-mix(in srgb, var(--green) 7%, var(--paper));
  border-color: color-mix(in srgb, var(--green) 28%, var(--line));
  color: var(--green-dark);
}
.advance-total .advance-summary-input.advance-summary-total {
  background: linear-gradient(135deg, color-mix(in srgb, var(--green) 18%, var(--paper)), var(--paper));
  border-color: color-mix(in srgb, var(--green) 52%, var(--line));
}
.advance-total small {
  color: var(--ink-soft);
  font-size: 0.72rem;
  line-height: 1.4;
}
@media (max-width: 540px) {
  .advance-total {
    padding: 12px;
  }
  .advance-total input {
    font-size: 0.9rem;
    min-height: 40px;
  }
}
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}
.dashboard-main,
[data-page-content],
.balance-column,
.agency-card,
.chart-panel,
.analytics-card,
.advance-shortcut,
.password-card {
  min-width: 0;
  max-width: 100%;
}
.table-responsive {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.table-responsive table {
  min-width: 620px;
}
.report-head {
  min-width: 0;
}
.report-head > div {
  min-width: 0;
}
.report-head h1,
.report-head p {
  overflow-wrap: anywhere;
}
.advance-shortcut,
.password-card,
.agency-grid,
.balance-layout,
.analytics-grid,
.chart-grid,
.business-insights {
  width: 100%;
}
.advance-form label,
.advance-agency-filter label,
.password-form label,
.agency-card label {
  min-width: 0;
}
.advance-form input,
.advance-form select,
.advance-form textarea,
.advance-agency-filter select,
.password-form input,
.password-form select,
.password-form textarea,
.agency-card input,
.agency-card select,
.agency-card textarea {
  max-width: 100%;
  min-width: 0;
}
.balance-item--cash {
  min-width: 0;
}
.balance-item--cash label {
  min-width: 0;
}
.balance-item--cash input {
  min-width: 0;
}
.main-tools {
  max-width: 100%;
  flex-wrap: wrap;
}
.main-tools .profile-button b {
  max-width: 20ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 800px) {
  .dashboard-main {
    padding: 18px 14px;
  }
  .report-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }
  .report-head h1 {
    font-size: clamp(2rem, 11vw, 3.5rem);
  }
  .balance-layout,
  .chart-grid,
  .business-insights,
  .agency-grid,
  .password-card {
    display: block;
  }
  .balance-column,
  .agency-card,
  .password-card {
    margin-bottom: 14px;
  }
  .report-filters {
    grid-template-columns: 1fr !important;
  }
  .analytics-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .goal-grid {
    display: block;
  }
  .business-insights {
    display: block;
  }
  .business-insights .chart-panel {
    margin-bottom: 14px;
  }
  .goal-settings-form {
    align-items: stretch;
    flex-direction: column;
  }
  .goal-settings-form label {
    min-width: 0;
  }
  .goal-settings-form .submit-button {
    width: 100%;
  }
  .goal-grid .chart-panel {
    margin-bottom: 14px;
  }
  .chart-type-control {
    align-items: flex-start;
    flex-direction: column;
  }
  .chart-type-control > div {
    max-width: 100%;
    overflow-x: auto;
  }
  .potential-chart,
  .agency-line-chart,
  .agency-monthly-chart {
    height: 240px;
  }
  .advance-edit form {
    grid-template-columns: 1fr;
  }
  .report-filters {
    align-items: stretch;
    flex-direction: column;
  }
  .report-filters > label {
    min-width: 0;
    width: 100%;
  }
  .report-head > .print-button {
    width: 100%;
  }
  .advance-edit .advance-amount,
  .advance-edit .advance-note-field,
  .advance-edit form > div {
    grid-column: auto;
  }
  .advance-form {
    grid-template-columns: 1fr;
  }
  .advance-note-field,
  .advance-form .submit-button {
    grid-column: auto;
  }
  .advance-summary-grid {
    grid-template-columns: 1fr;
  }
  .main-tools {
    position: static;
    width: 100% !important;
  }
  .main-tools .profile-button b {
    max-width: 12ch;
  }
  .table-responsive table {
    min-width: 560px;
  }
}
@media (max-width: 480px) {
  .analytics-grid {
    grid-template-columns: 1fr;
  }
  .analytics-grid .analytics-card {
    min-height: 116px;
    padding: 15px;
  }
  .analytics-grid .analytics-card strong {
    font-size: clamp(1.3rem, 8vw, 1.8rem);
  }
  .analytics-card.sales-spotlight {
    min-height: 132px;
    padding: 16px;
  }
  .analytics-card.sales-spotlight strong {
    font-size: clamp(1.55rem, 9vw, 2.15rem);
  }
  .analytics-filter {
    display: block;
  }
  .analytics-filter select {
    min-width: 0;
    width: 100%;
  }
  .business-insights .chart-panel {
    padding: 15px;
  }
  .business-insights .comparison-row {
    grid-template-columns: 1fr;
    gap: 5px;
  }
  .business-insights .comparison-row b {
    text-align: left;
  }
  .profit-settings-card {
    padding: 12px;
  }
  .profit-settings-card .balance-table {
    min-width: 500px;
  }
  .profit-settings-card .balance-table th:nth-child(2),
  .profit-settings-card .balance-table th:nth-child(3),
  .profit-settings-card .balance-table td:nth-child(2),
  .profit-settings-card .balance-table td:nth-child(3) {
    width: 150px;
  }
  .rate-input-wrap {
    max-width: 132px;
  }
  .advance-edit {
    padding: 14px;
  }
  .advance-shortcut {
    padding: 16px;
  }
  .advance-hero {
    grid-template-columns: 1fr;
  }
  .advance-hero > span {
    height: 46px;
    width: 46px;
  }
  .advance-form input,
  .advance-form select,
  .advance-agency-filter select {
    min-height: 48px;
  }
  .advance-form .advance-amount input {
    font-size: 1.2rem;
  }
  .advance-entry-list {
    overflow-x: auto;
  }
  .advance-entry-list .table-responsive table {
    min-width: 620px;
  }
  .advance-summary-grid {
    gap: 8px;
  }
  .advance-summary-grid > label {
    padding: 9px;
  }
  .advance-summary-input {
    font-size: 0.9rem;
    min-height: 42px;
    padding-inline: 8px;
  }
  .balance-item--cash {
    padding: 10px;
  }
  .balance-item--cash input {
    font-size: 0.9rem;
  }
  .user-menu {
    gap: 7px;
  }
  .main-tools .profile-button {
    max-width: 45px;
    overflow: hidden;
  }
  .sidebar-brand img {
    max-width: 180px;
  }
}
@media (max-width: 760px) {
  .agencies-with-sidebar {
    display: block;
  }
  .agencies-with-sidebar > .dashboard-sidebar {
    display: none;
  }
  .agencies-with-sidebar.sidebar-is-open > .dashboard-sidebar {
    display: flex;
    inset: 0 25% 0 0;
    position: fixed;
    z-index: 20;
  }
}
@media print {
  .responsive-only-screen {
    display: none !important;
  }
}

.weekly-print-body {
  background: #eef1ed;
  color: #172019;
  margin: 0;
  overflow-x: auto;
  padding: 24px;
}
.weekly-print-page {
  background: #fff;
  border: 1px solid #cfd6d0;
  margin: 0 auto;
  max-width: 1400px;
  padding: 28px;
}
.weekly-print-head {
  align-items: flex-start;
  border-bottom: 2px solid #245c3d;
  display: flex;
  gap: 20px;
  justify-content: space-between;
  padding-bottom: 18px;
}
.weekly-print-head h1 {
  font: 800 1.55rem var(--font-display);
  margin: 2px 0 7px;
}
.weekly-print-head p {
  margin: 0;
}
.weekly-print-summary {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 18px 0;
}
.weekly-print-summary article {
  border: 1px solid #d8ddd9;
  border-radius: 6px;
  display: grid;
  gap: 5px;
  padding: 12px;
}
.weekly-print-summary span {
  color: #59625b;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}
.weekly-print-summary strong {
  font: 800 0.95rem var(--font-display);
}
.weekly-print-group {
  margin-top: 24px;
}
.weekly-print-group h2 {
  font: 800 1rem var(--font-display);
  margin: 0 0 9px;
}
.weekly-print-group table {
  min-width: 1080px;
}
.weekly-print-group th,
.weekly-print-group td {
  font-size: 0.72rem;
  padding: 7px;
}
.weekly-print-group tfoot td {
  background: #edf3ef;
  border-top: 2px solid #245c3d;
}
.weekly-print-note {
  color: #59625b;
  font-size: 0.74rem;
  margin: 18px 0 0;
}
.system-guide-modal {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 14px;
  color: var(--ink);
  max-height: min(88vh, 820px);
  max-width: min(980px, calc(100vw - 28px));
  padding: 22px;
  width: calc(100vw - 28px);
}
.mike-guide-fab {
  align-items: center;
  animation: mike-guide-enter .55s ease both;
  background: linear-gradient(135deg, var(--green), var(--gold));
  border: 2px solid rgba(255, 255, 255, .9);
  border-radius: 999px;
  box-shadow: 0 10px 26px rgba(31, 95, 43, .28);
  color: #fff;
  display: inline-flex;
  gap: 7px;
  min-height: 46px;
  padding: 5px 13px 5px 6px;
  position: fixed !important;
  right: 18px;
  top: 25vh;
  transition: transform .2s ease, box-shadow .2s ease;
  white-space: nowrap;
  z-index: 1200;
}
.mike-guide-fab:hover,
.mike-guide-fab:focus-visible {
  box-shadow: 0 14px 32px rgba(31, 95, 43, .38);
  transform: translateY(-2px) scale(1.03);
}
.mike-guide-avatar {
  align-items: center;
  background: #fff;
  border-radius: 50%;
  display: inline-flex;
  font-size: 3.45rem;
  height: 75px;
  justify-content: center;
  line-height: 1;
  width: 80px;
}
.mike-guide-image {
  border-radius: inherit;
  display: block;
  height: 100%;
  object-fit: contain;
  width: 100%;
}
.mike-guide-name {
  font-size: .82rem;
  font-weight: 800;
}
.mike-guide-pulse {
  background: #a7f36b;
  border: 2px solid var(--green);
  border-radius: 50%;
  height: 9px;
  position: absolute;
  right: 5px;
  top: 3px;
  width: 9px;
}
@keyframes mike-guide-enter {
  from { opacity: 0; transform: translateY(-12px) scale(.92); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@media (max-width: 650px) {
  .mike-guide-fab {
    right: 12px;
    top: 25vh;
  }
  .mike-guide-name {
    display: none;
  }
  .mike-guide-fab {
    padding-right: 6px;
  }
}
.system-guide-modal::backdrop {
  background: color-mix(in srgb, var(--ink) 52%, transparent);
}
.system-guide-modal__head,
.system-guide-modal__foot {
  align-items: flex-start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}
.system-guide-modal__head {
  border-bottom: 1px solid var(--line);
  margin-bottom: 16px;
  padding-bottom: 14px;
}
.system-guide-modal__head h2 {
  font: 800 1.35rem var(--font-display);
  margin: 0 0 5px;
}
.system-guide-modal__head p {
  color: var(--ink-soft);
  margin: 0;
}
.system-guide-search {
  color: var(--ink-soft);
  display: grid;
  font-size: 0.76rem;
  font-weight: 800;
  gap: 6px;
  margin-bottom: 15px;
}
.system-guide-search input {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  min-height: 42px;
  padding: 9px 11px;
  width: 100%;
}
.system-guide-search input:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--green) 18%, transparent);
  outline: 0;
}
.admin-ai-chat {
  margin-bottom: 12px;
  max-height: 230px;
}
.admin-ai-message {
  align-items: flex-start;
  display: flex;
  font-size: .8rem;
  gap: 8px;
  line-height: 1.45;
  max-width: 92%;
  padding: 9px 11px;
}
.admin-ai-message--assistant {
  background: color-mix(in srgb, var(--paper) 90%, var(--cream));
  border: 1px solid var(--line);
  border-radius: 4px 12px 12px 12px;
}
.admin-ai-message--user {
  background: color-mix(in srgb, var(--green) 12%, var(--paper));
  border-radius: 12px 4px 12px 12px;
  justify-self: end;
}
.admin-ai-avatar {
  align-items: center;
  background: color-mix(in srgb, var(--green) 16%, transparent);
  border-radius: 50%;
  color: var(--green-dark);
  display: inline-flex;
  flex: 0 0 22px;
  height: 22px;
  justify-content: center;
}
.admin-ai-form {
  align-items: end;
  display: flex;
  gap: 8px;
}
.admin-ai-form .system-guide-search {
  flex: 1;
  margin-bottom: 0;
}
.admin-ai-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 9px;
}
.mike-agent-panel .admin-ai-chat {
  max-height: 310px;
}
.mike-agent-status {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 10px;
}
.mike-agent-status span {
  background: color-mix(in srgb, var(--green) 9%, var(--paper));
  border: 1px solid color-mix(in srgb, var(--green) 18%, var(--line));
  border-radius: 999px;
  color: var(--ink-soft);
  font-size: .72rem;
  font-weight: 800;
  padding: 5px 9px;
}
.mike-agent-actions {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 12px;
}
.mike-agent-action {
  background: color-mix(in srgb, var(--paper) 94%, var(--cream));
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  display: grid;
  gap: 3px;
  padding: 10px 11px;
  text-align: left;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.mike-agent-action:hover,
.mike-agent-action:focus-visible {
  border-color: color-mix(in srgb, var(--green) 42%, var(--line));
  box-shadow: 0 10px 22px color-mix(in srgb, var(--green) 12%, transparent);
  outline: 0;
  transform: translateY(-1px);
}
.mike-agent-action strong {
  font: 800 .84rem var(--font-display);
}
.mike-agent-action small {
  color: var(--ink-soft);
  font-size: .72rem;
  line-height: 1.35;
}
.system-guide-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-height: 54vh;
  overflow: auto;
  padding: 2px;
}
.system-guide-grid article {
  background: color-mix(in srgb, var(--paper) 92%, var(--cream));
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: 13px;
}
.system-guide-grid article[hidden] {
  display: none;
}
.system-guide-grid h3 {
  align-items: center;
  display: flex;
  font: 800 0.9rem var(--font-display);
  gap: 8px;
  margin: 0 0 7px;
}
.system-guide-grid h3 span {
  align-items: center;
  background: color-mix(in srgb, var(--green) 14%, transparent);
  border-radius: 50%;
  color: var(--green-dark);
  display: inline-flex;
  flex: 0 0 23px;
  height: 23px;
  justify-content: center;
}
.system-guide-grid p,
.system-guide-grid small {
  color: var(--ink-soft);
  display: block;
  font-size: 0.76rem;
  line-height: 1.45;
  margin: 0;
}
.system-guide-grid p {
  color: var(--ink);
  margin-bottom: 7px;
}
.system-guide-modal__foot {
  align-items: center;
  border-top: 1px solid var(--line);
  color: var(--ink-soft);
  font-size: 0.72rem;
  margin-top: 15px;
  padding-top: 13px;
}
@media (max-width: 620px) {
  .system-guide-modal {
    padding: 15px;
  }
  .mike-agent-actions {
    grid-template-columns: 1fr;
  }
  .system-guide-grid {
    grid-template-columns: 1fr;
    max-height: 52vh;
  }
  .admin-ai-form {
    align-items: stretch;
    flex-direction: column;
  }
  .system-guide-modal__foot {
    align-items: stretch;
    flex-direction: column;
  }
  .system-guide-modal__foot .submit-button {
    width: 100%;
  }
}
@media (max-width: 760px) {
  .weekly-print-body {
    padding: 10px;
  }
  .weekly-print-page {
    padding: 14px;
  }
  .weekly-print-head {
    align-items: stretch;
    flex-direction: column;
  }
  .weekly-print-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .weekly-print-action {
    width: 100%;
  }
}
@media print {
  @page {
    margin: 8mm;
    size: A4 portrait;
    orientation: portrait;
  }
  html,
  body.weekly-print-body {
    height: auto !important;
    margin: 0 !important;
    width: auto !important;
  }
  body.weekly-print-body,
  body.weekly-print-body * {
    visibility: visible !important;
  }
  .weekly-print-body {
    background: #fff !important;
    padding: 0 !important;
  }
  .weekly-print-page {
    border: 0;
    max-width: none;
    padding: 0;
  }
  .weekly-print-action {
    display: none !important;
  }
  .weekly-print-head,
  .weekly-print-summary {
    break-inside: avoid;
  }
  .weekly-print-group .table-responsive {
    overflow: visible;
  }
  .weekly-print-group table {
    min-width: 0;
    width: 100%;
  }
  .weekly-print-group th,
  .weekly-print-group td {
    font-size: 6.8pt;
    padding: 4px;
  }
  .weekly-print-note {
    font-size: 7pt;
  }
}

/* ==== Fase 4B: tarjetas KPI con sparkline ==== */
.kpi-card .kpi-value {
  font: 600 1.55rem var(--font-display, inherit);
  display: block;
  margin: 2px 0;
}
.kpi-sparkline {
  width: 100%;
  height: 36px;
  display: block;
  margin-top: 8px;
}
.kpi-delta {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 800;
  margin-top: 2px;
}
.kpi-delta.up {
  color: var(--green);
}
.kpi-delta.down {
  color: var(--danger);
}

/* ==== Fase 4D: pulido visual global ==== */
:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--green) 70%, transparent);
  outline-offset: 2px;
  border-radius: 4px;
}
::selection {
  background: color-mix(in srgb, var(--green) 30%, transparent);
}
.page-load-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  z-index: 9999;
  background: linear-gradient(90deg, var(--green), var(--gold, #f2bb43));
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .25s ease, opacity .3s ease;
  opacity: 0;
  pointer-events: none;
}
.page-load-bar.is-active {
  transform: scaleX(1);
  opacity: 1;
  animation: page-load-pulse 1.2s ease-in-out infinite;
}
@keyframes page-load-pulse {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.35); }
}
.balance-table td[colspan] {
  text-align: center;
  color: var(--ink-soft);
  padding: 1.4rem 1rem;
  font-style: italic;
  background: color-mix(in srgb, var(--green) 4%, transparent);
}
@media (prefers-reduced-motion: reduce) {
  .page-load-bar.is-active {
    animation: none;
  }
}

/* === Ventas por mes: barras (regla .bar-chart omitida en la consolidacion de este archivo) === */
.bar-chart{align-items:end;border-bottom:1px solid var(--line);display:flex;gap:10px;height:220px;padding:18px 0 0}
.bar-column{align-items:center;display:flex;flex:1;flex-direction:column;height:100%;justify-content:flex-end;min-width:0}
.bar{background:var(--green);border-radius:5px 5px 0 0;min-height:3px;width:100%}
.bar.is-negative{background:var(--orange)}
.bar-column b{font-size:.65rem;margin-top:8px;text-align:center}
/* columnas de ancho fijo: que pocas barras no se estiren a lo ancho */
.bar-chart.monthly-chart{justify-content:center;gap:24px;overflow-x:auto;padding-left:6px;padding-right:6px}
.bar-chart.monthly-chart .bar-column{flex:0 0 72px;width:72px}
.bar-chart.monthly-chart .monthly-value{font-size:.62rem;color:var(--ink-soft);margin-bottom:6px;text-align:center;word-break:break-word}
@media(max-width:540px){.bar-chart.monthly-chart{gap:14px}.bar-chart.monthly-chart .bar-column{flex-basis:56px;width:56px}}

/* === Mike Clippy: personaje flotante (assets/js/mike-clippy.js) === */
.mike-clippy{position:fixed;right:18px;bottom:18px;z-index:1200;display:flex;flex-direction:column;align-items:flex-end;gap:8px;font-family:var(--font-body,Tahoma,sans-serif)}
.mike-clippy__stage{display:flex;flex-direction:column;align-items:center;cursor:pointer;user-select:none;-webkit-user-select:none}
.mike-clippy__img{width:150px;height:150px;object-fit:contain;display:block;filter:drop-shadow(0 6px 8px rgba(0,0,0,.35))}
.mike-clippy__shadow{width:110px;height:16px;margin-top:-12px;background:radial-gradient(ellipse at center,rgba(0,0,0,.45) 0%,rgba(0,0,0,0) 70%);transition:transform .3s ease}
@keyframes mike-idle{0%,100%{transform:translateY(0) scale(1,1)}50%{transform:translateY(-6px) scale(.98,1.02)}}
@keyframes mike-panic{0%{transform:translate(0,0) rotate(0)}20%{transform:translate(-12px,-8px) rotate(-6deg)}40%{transform:translate(14px,0) rotate(8deg)}60%{transform:translate(-10px,-6px) rotate(-5deg)}80%{transform:translate(12px,-2px) rotate(6deg)}100%{transform:translate(0,0) rotate(0)}}
@keyframes mike-knock{0%,100%{transform:scale(1)}20%{transform:scale(1.15) translate(0,-10px)}35%{transform:scale(1.25) translate(0,-15px)}45%{transform:scale(1.1) translate(0,0)}60%{transform:scale(1.22) translate(0,-12px)}75%{transform:scale(1)}}
@keyframes mike-eureka{0%{transform:scale(1) translateY(0)}30%{transform:scale(1.1) translateY(-20px)}60%{transform:scale(1.05) translateY(-14px)}100%{transform:scale(1) translateY(0)}}
@keyframes mike-tickle{0%,100%{transform:rotate(0) scale(1)}20%{transform:rotate(-12deg) scale(.92)}40%{transform:rotate(12deg) scale(1.08)}60%{transform:rotate(-10deg) scale(.95)}80%{transform:rotate(8deg) scale(1.05)}}
@keyframes mike-explain{0%,100%{transform:translateY(0) rotate(0)}25%{transform:translateY(-8px) rotate(3deg)}75%{transform:translateY(-4px) rotate(-3deg)}}
.mike-clippy__img.anim-idle{animation:mike-idle 2.8s ease-in-out infinite}
.mike-clippy__img.anim-panic{animation:mike-panic .35s linear infinite}
.mike-clippy__img.anim-knock{animation:mike-knock 1.2s ease-out}
.mike-clippy__img.anim-eureka{animation:mike-eureka 1.4s ease-out}
.mike-clippy__img.anim-tickle{animation:mike-tickle .4s ease-in-out infinite}
.mike-clippy__img.anim-explain{animation:mike-explain 1s ease-in-out infinite}
.mike-clippy__bubble{position:relative;background:#ffffcc;border:1.5px solid #000;box-shadow:3px 3px 0 rgba(0,0,0,.45);border-radius:6px;max-width:280px;padding:8px 10px 10px;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .3s ease,transform .3s ease}
.mike-clippy__bubble.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}
.mike-clippy__bubble::after{content:'';position:absolute;bottom:-12px;right:48px;width:0;height:0;border-left:10px solid transparent;border-right:10px solid transparent;border-top:12px solid #ffffcc;filter:drop-shadow(0 2px 0 #000)}
.mike-clippy__bubble::before{content:'';position:absolute;bottom:-15px;right:47px;width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-top:14px solid #000}
.mike-clippy__bubble-head{display:flex;align-items:center;gap:6px;border-bottom:1px solid rgba(0,0,0,.2);padding-bottom:4px;margin-bottom:6px}
.mike-clippy__bubble-name{font-weight:700;font-size:11px;color:#1e3a8a;text-transform:uppercase;letter-spacing:.05em;flex:1}
.mike-clippy__icon-btn{border:1px solid #999;background:#f5f5dc;font-size:11px;line-height:1;padding:2px 5px;cursor:pointer;border-radius:3px}
.mike-clippy__icon-btn:hover{background:#ffe9a8}
.mike-clippy__bubble-text{margin:0;font-size:13px;line-height:1.45;color:#111;min-height:36px}
/* Piel Clippy para el chat "Modo Agente" existente */
.mike-clippy-chat-skin{border:2px solid #000!important;border-radius:8px;box-shadow:4px 4px 0 rgba(0,0,0,.4)!important;background:#ffffef!important}
.mike-clippy-chat-skin .system-guide-modal__head{display:flex;align-items:flex-start;gap:10px;background:#ffffcc;border-bottom:2px solid #000;margin:-18px -18px 12px;padding:12px 14px;border-radius:6px 6px 0 0}
.mike-clippy-chat-skin__mascot{width:64px;height:64px;object-fit:contain;flex:0 0 auto}
@media(max-width:540px){.mike-clippy{right:8px;bottom:8px}.mike-clippy__img{width:110px;height:110px}.mike-clippy__bubble{max-width:230px}}


/* ============================================================
   Modal de actualizacion con detalles del changelog (2026-10-04)
   ============================================================ */
.system-update-notes {
  background: #fffbeb;
  border: 1px solid #f2e3b3;
  border-radius: 12px;
  padding: .75rem .9rem;
}

.system-update-note + .system-update-note {
  border-top: 1px dashed #e5cf8f;
  margin-top: .6rem;
  padding-top: .6rem;
}

.system-update-note-title {
  color: #12233d;
  font-size: .9rem;
  font-weight: 700;
  margin: 0 0 .1rem;
}

.system-update-note-date {
  color: #8a6d1a;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  margin: 0 0 .35rem;
  text-transform: uppercase;
}

.system-update-note-list {
  margin: 0;
  padding-left: 1.1rem;
}

.system-update-note-list li {
  color: #333;
  font-size: .82rem;
  margin-bottom: .15rem;
}

/* Enlace de accion dentro de la burbuja de Mike (agencias sin cuadre) */
.mike-clippy__bubble-link{display:inline-block;margin-top:6px;font-size:12px;font-weight:700;color:#1e3a8a;text-decoration:underline;cursor:pointer}
.mike-clippy__bubble-link:hover{color:#b91c1c}

/* Alerta persistente: agencias sin cuadre del dia (regla del dueño, 2026-10-11) */
.admin-persist-alert{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:10px 14px;border:1.5px solid #b91c1c;border-left:6px solid #b91c1c;border-radius:10px;background:#fef2f2;color:#7f1d1d;font-size:.9rem;font-weight:600;box-shadow:0 2px 8px rgba(185,28,28,.15)}
.admin-persist-alert[hidden]{display:none}
.admin-persist-alert__icon{font-size:1.1rem;flex:0 0 auto}
.admin-persist-alert__text{flex:1 1 260px;min-width:0}
.admin-persist-alert__link{flex:0 0 auto;font-weight:700;color:#b91c1c;text-decoration:underline;white-space:nowrap}
.admin-persist-alert__link:hover{color:#7f1d1d}
/* RG-CAJA: banner de caja siempre visible para admin/BOSS (verde = red al dia, rojo = faltan locaciones). */
.admin-persist-alert--cash{border-color:#15803d;border-left-color:#15803d;background:#f0fdf4;color:#14532d;box-shadow:0 2px 8px rgba(21,128,61,.15)}
.admin-persist-alert--cash .admin-persist-alert__link{color:#15803d}
.admin-persist-alert--cash .admin-persist-alert__link:hover{color:#14532d}
.admin-persist-alert--cash.admin-persist-alert--alert{border-color:#b91c1c;border-left-color:#b91c1c;background:#fef2f2;color:#7f1d1d;box-shadow:0 2px 8px rgba(185,28,28,.15)}
.admin-persist-alert--cash.admin-persist-alert--alert .admin-persist-alert__link{color:#b91c1c}
.admin-persist-alert--cash.admin-persist-alert--alert .admin-persist-alert__link:hover{color:#7f1d1d}
