/* BRICO MG v1.4.8 - Reconstrucción UX, roles y PDF */
:root {
  --br148-green: #6c9700;
  --br148-green-dark: #476900;
  --br148-green-soft: #eef7d8;
  --br148-bg: #f7f9f2;
  --br148-card: #ffffff;
  --br148-ink: #151914;
  --br148-muted: #626d5d;
  --br148-line: rgba(93, 124, 45, .18);
  --br148-line-strong: rgba(93, 124, 45, .32);
  --br148-danger: #9a1818;
  --br148-warning: #9b6500;
  --br148-shadow: 0 22px 70px rgba(35, 48, 18, .18);
  --br148-radius: 18px;
}

html { background: var(--br148-bg); }
body.bricomg-v148-ready {
  background:
    radial-gradient(circle at top left, rgba(121, 164, 17, .08), transparent 340px),
    linear-gradient(180deg, #fbfcf7 0%, #f5f8ee 100%);
  color: var(--br148-ink);
}

/* Firma limpia */
#bricomg-v148-footer {
  width: min(1320px, calc(100vw - 28px));
  margin: 34px auto 18px;
  padding: 12px 14px calc(12px + env(safe-area-inset-bottom));
  text-align: center;
  color: rgba(49, 65, 38, .38);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .045em;
  user-select: none;
}

.bricomg-v148-version-inline { display: none !important; }

/* Accesos de navegación y menús */
.bricomg-v148-nav-action {
  border-radius: 14px !important;
  transition: transform .12s ease, box-shadow .12s ease, background .12s ease, border-color .12s ease;
}
.bricomg-v148-nav-action:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(40, 62, 13, .10);
}
.bricomg-v148-admin-active {
  background: var(--br148-green) !important;
  color: #fff !important;
  border-color: var(--br148-green) !important;
}

#bricomg-v148-admin-menu {
  position: fixed;
  z-index: 2147482700;
  width: min(390px, calc(100vw - 28px));
  max-height: min(640px, calc(100vh - 120px));
  overflow: auto;
  background: rgba(255,255,255,.98);
  border: 1px solid var(--br148-line);
  border-radius: 22px;
  box-shadow: var(--br148-shadow);
  backdrop-filter: blur(12px);
  display: none;
}
#bricomg-v148-admin-menu.is-open { display: block; }
.bricomg-v148-menu-head {
  padding: 17px 18px 13px;
  border-bottom: 1px solid var(--br148-line);
  background: linear-gradient(180deg, #f6faed, #fff);
}
.bricomg-v148-menu-head strong {
  display: block;
  font-size: 15px;
  line-height: 1.2;
}
.bricomg-v148-menu-head span {
  display: block;
  margin-top: 4px;
  color: var(--br148-muted);
  font-size: 12px;
  line-height: 1.35;
  font-weight: 650;
}
.bricomg-v148-menu-list {
  padding: 10px;
  display: grid;
  gap: 6px;
}
.bricomg-v148-menu-item {
  width: 100%;
  border: 0;
  background: transparent;
  border-radius: 15px;
  padding: 12px;
  display: grid;
  grid-template-columns: 36px 1fr auto;
  gap: 11px;
  align-items: center;
  text-align: left;
  cursor: pointer;
  color: var(--br148-ink);
}
.bricomg-v148-menu-item:hover,
.bricomg-v148-menu-item:focus-visible {
  outline: none;
  background: #f1f7e5;
}
.bricomg-v148-menu-icon {
  width: 36px;
  height: 36px;
  border-radius: 13px;
  display: grid;
  place-items: center;
  background: rgba(108,151,0,.10);
  color: var(--br148-green-dark);
  font-weight: 900;
}
.bricomg-v148-menu-label {
  display: block;
  font-weight: 950;
  line-height: 1.15;
}
.bricomg-v148-menu-desc {
  display: block;
  margin-top: 3px;
  color: var(--br148-muted);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.25;
}
.bricomg-v148-menu-badge {
  font-size: 11px;
  font-weight: 950;
  color: var(--br148-green-dark);
  background: var(--br148-green-soft);
  border: 1px solid var(--br148-line);
  border-radius: 999px;
  padding: 4px 8px;
}
.bricomg-v148-menu-sep { height: 1px; background: var(--br148-line); margin: 5px 8px; }

/* Barra móvil segura */
#bricomg-v148-mobilebar {
  display: none;
  position: fixed;
  left: 0; right: 0; top: 0;
  z-index: 2147482500;
  min-height: 56px;
  padding: calc(6px + env(safe-area-inset-top)) 12px 8px;
  background: rgba(255,255,255,.94);
  border-bottom: 1px solid var(--br148-line);
  backdrop-filter: blur(13px);
  box-shadow: 0 10px 28px rgba(32,48,12,.10);
  grid-template-columns: auto 1fr auto;
  gap: 10px;
  align-items: center;
}
.bricomg-v148-mobile-btn {
  border: 1px solid var(--br148-line-strong);
  background: #fff;
  border-radius: 999px;
  padding: 9px 12px;
  color: var(--br148-ink);
  font-weight: 950;
  cursor: pointer;
}
.bricomg-v148-mobile-brand {
  text-align: center;
  color: var(--br148-green-dark);
  font-weight: 950;
  letter-spacing: .04em;
  white-space: nowrap;
}
#bricomg-v148-mobile-drawer {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 2147482600;
  background: rgba(18, 27, 10, .44);
  padding: calc(70px + env(safe-area-inset-top)) 14px 20px;
  backdrop-filter: blur(8px);
}
#bricomg-v148-mobile-drawer.is-open { display: block; }
.bricomg-v148-mobile-panel {
  background: #fff;
  border: 1px solid var(--br148-line);
  border-radius: 24px;
  box-shadow: var(--br148-shadow);
  padding: 10px;
  max-height: calc(100vh - 100px);
  overflow: auto;
}
.bricomg-v148-mobile-row {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  border: 0;
  background: transparent;
  border-radius: 15px;
  padding: 14px;
  color: var(--br148-ink);
  font-weight: 950;
  font-size: 16px;
  text-align: left;
}
.bricomg-v148-mobile-row:hover { background: #f1f7e5; }

/* Modales */
.bricomg-v148-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2147482800;
  background: rgba(16, 24, 9, .48);
  backdrop-filter: blur(9px);
  padding: 26px;
  display: grid;
  place-items: center;
}
.bricomg-v148-modal {
  width: min(1180px, 100%);
  max-height: min(90vh, 980px);
  background: #fff;
  border: 1px solid var(--br148-line);
  border-radius: 26px;
  box-shadow: 0 30px 90px rgba(16, 24, 9, .28);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.bricomg-v148-modal-head {
  padding: 22px 26px 18px;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  border-bottom: 1px solid var(--br148-line);
  background: linear-gradient(135deg, #fff 0%, #f8fbef 100%);
}
.bricomg-v148-kicker {
  color: var(--br148-green-dark);
  font-size: 12px;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin: 0 0 6px;
}
.bricomg-v148-modal h2 { margin: 0; font-size: clamp(1.45rem, 2.4vw, 2.25rem); line-height: 1.1; }
.bricomg-v148-modal p { color: var(--br148-muted); line-height: 1.45; }
.bricomg-v148-close {
  width: 42px; height: 42px;
  border-radius: 14px;
  border: 1px solid var(--br148-line);
  background: #fff;
  font-size: 22px;
  cursor: pointer;
}
.bricomg-v148-modal-body { padding: 18px 22px 24px; overflow: auto; }
.bricomg-v148-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.bricomg-v148-tab {
  border: 1px solid var(--br148-line);
  background: #fff;
  border-radius: 999px;
  padding: 10px 15px;
  font-weight: 950;
  cursor: pointer;
}
.bricomg-v148-tab.is-active { background: var(--br148-green); border-color: var(--br148-green); color: #fff; }
.bricomg-v148-toolbar { display: flex; justify-content: space-between; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 14px; }
.bricomg-v148-input,
.bricomg-v148-select,
.bricomg-v148-textarea,
.bricomg-v148-file {
  width: 100%;
  border: 1px solid var(--br148-line-strong);
  background: #fff;
  color: var(--br148-ink);
  border-radius: 14px;
  padding: 11px 13px;
  font: inherit;
}
.bricomg-v148-textarea { min-height: 90px; resize: vertical; }
.bricomg-v148-input:focus,
.bricomg-v148-select:focus,
.bricomg-v148-textarea:focus {
  outline: none;
  border-color: var(--br148-green);
  box-shadow: 0 0 0 4px rgba(108,151,0,.12);
}
.bricomg-v148-btn {
  border: 1px solid var(--br148-line-strong);
  background: #fff;
  border-radius: 14px;
  padding: 11px 15px;
  font-weight: 950;
  cursor: pointer;
  color: var(--br148-ink);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  justify-content: center;
}
.bricomg-v148-btn:hover { background: #f1f7e5; }
.bricomg-v148-btn-primary { background: var(--br148-green); color: #fff; border-color: var(--br148-green); }
.bricomg-v148-btn-primary:hover { background: var(--br148-green-dark); }
.bricomg-v148-btn-danger { color: var(--br148-danger); border-color: rgba(154,24,24,.26); }
.bricomg-v148-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 14px; }
.bricomg-v148-col-3 { grid-column: span 3; }
.bricomg-v148-col-4 { grid-column: span 4; }
.bricomg-v148-col-6 { grid-column: span 6; }
.bricomg-v148-col-8 { grid-column: span 8; }
.bricomg-v148-col-12 { grid-column: span 12; }
.bricomg-v148-card {
  border: 1px solid var(--br148-line);
  border-radius: 20px;
  background: #fff;
  padding: 16px;
}
.bricomg-v148-card h3 { margin: 0 0 8px; }
.bricomg-v148-card p { margin: 0 0 12px; }
.bricomg-v148-table-wrap { border: 1px solid var(--br148-line); border-radius: 18px; overflow: auto; }
.bricomg-v148-table { width: 100%; border-collapse: collapse; min-width: 720px; background: #fff; }
.bricomg-v148-table th,
.bricomg-v148-table td { padding: 12px 13px; border-bottom: 1px solid var(--br148-line); text-align: left; vertical-align: middle; }
.bricomg-v148-table th { color: var(--br148-green-dark); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.bricomg-v148-perms { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.bricomg-v148-check {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  padding: 10px;
  border: 1px solid var(--br148-line);
  border-radius: 14px;
  background: #fff;
}
.bricomg-v148-check strong { display: block; font-size: 13px; }
.bricomg-v148-check small { display: block; color: var(--br148-muted); font-size: 11px; line-height: 1.25; margin-top: 2px; }
.bricomg-v148-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--br148-line);
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 900;
  color: var(--br148-green-dark);
  background: var(--br148-green-soft);
  font-size: 12px;
}
.bricomg-v148-pill.warn { color: var(--br148-warning); background: #fff4df; border-color: rgba(155,101,0,.25); }
.bricomg-v148-pill.danger { color: var(--br148-danger); background: #fff0f0; border-color: rgba(154,24,24,.22); }
.bricomg-v148-toast {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 2147483000;
  background: #17210e;
  color: #fff;
  border-radius: 16px;
  padding: 13px 16px;
  box-shadow: var(--br148-shadow);
  font-weight: 850;
  max-width: min(420px, calc(100vw - 40px));
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .18s ease, transform .18s ease;
}
.bricomg-v148-toast.is-visible { opacity: 1; transform: translateY(0); }

/* PDF */
#bricomg-v148-pdf-launch {
  position: fixed;
  right: 22px;
  bottom: calc(22px + env(safe-area-inset-bottom));
  z-index: 2147482100;
  border: 1px solid var(--br148-line-strong);
  background: #f5fae8;
  color: var(--br148-green-dark);
  border-radius: 18px;
  padding: 13px 17px;
  font-weight: 950;
  box-shadow: 0 18px 50px rgba(35,48,18,.16);
  cursor: pointer;
}
#bricomg-v148-pdf-launch small { display: block; color: var(--br148-muted); font-weight: 800; margin-top: 2px; }
.bricomg-v148-pdf-result {
  border: 1px solid var(--br148-line);
  border-radius: 20px;
  padding: 15px;
  background: #fff;
  display: grid;
  gap: 11px;
}
.bricomg-v148-pdf-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.bricomg-v148-pdf-title { font-size: 15px; font-weight: 950; line-height: 1.25; }
.bricomg-v148-pdf-meta { color: var(--br148-muted); font-size: 12px; font-weight: 750; margin-top: 4px; }
.bricomg-v148-field-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.bricomg-v148-field { background: #f8faf4; border-radius: 13px; padding: 10px; }
.bricomg-v148-field small { display: block; color: var(--br148-muted); text-transform: uppercase; font-size: 10px; font-weight: 950; letter-spacing: .05em; }
.bricomg-v148-field strong { display: block; margin-top: 3px; font-size: 13px; }
.bricomg-v148-warnings { background: #fff6e8; color: #714200; border-radius: 14px; padding: 10px 12px; font-size: 13px; line-height: 1.4; }
.bricomg-v148-warnings ul { margin: 0; padding-left: 18px; }

/* Ayuda contextual */
.bricomg-v148-helptext {
  line-height: 1.55 !important;
  letter-spacing: normal !important;
  word-spacing: normal !important;
}
.bricomg-v148-ready [role="tooltip"],
.bricomg-v148-ready .tooltip,
.bricomg-v148-ready .help-tooltip,
.bricomg-v148-ready [data-tooltip]::after {
  max-width: min(380px, calc(100vw - 32px)) !important;
  line-height: 1.5 !important;
  letter-spacing: normal !important;
  word-spacing: normal !important;
  padding: 12px 14px !important;
  border-radius: 14px !important;
}

/* Evitar paneles de parches anteriores si quedan en DOM por caché */
[id^="bricomg-admin-dropdown"],
[id^="bricomg-mobile-bar"],
[id^="bricomg-mobile-drawer"],
[class*="bricomg-v147-"]:not(.bricomg-v148-preserve) {
  /* No se oculta por defecto para no romper si el bundle lo usa; la limpieza real se hace en install. */
}

@media (max-width: 900px) {
  .bricomg-v148-grid { grid-template-columns: 1fr; }
  .bricomg-v148-col-3,
  .bricomg-v148-col-4,
  .bricomg-v148-col-6,
  .bricomg-v148-col-8,
  .bricomg-v148-col-12 { grid-column: 1; }
  .bricomg-v148-perms { grid-template-columns: 1fr; }
  .bricomg-v148-field-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  body.bricomg-v148-ready { padding-top: 64px; }
  #bricomg-v148-mobilebar { display: grid; }
  #bricomg-v148-pdf-launch { right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); padding: 11px 13px; }
  .bricomg-v148-backdrop { padding: 12px; align-items: start; padding-top: calc(76px + env(safe-area-inset-top)); }
  .bricomg-v148-modal { max-height: calc(100vh - 92px); border-radius: 22px; }
  .bricomg-v148-modal-head { padding: 18px 18px 14px; }
  .bricomg-v148-modal-body { padding: 14px; }
  #bricomg-v148-footer { margin-bottom: 82px; }
}
